Function at 0x41aec0
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x220
mov eax, dword [0x4da6bc]
xor eax, esp
mov dword [esp + 0x21c], eax
push ebx
xor ebx, ebx
mov dword [esp + 0x1c], ecx
cmp byte [ecx + 0x30], bl
je 0x41b111
push ebp
push esi
push edi
call fcn.00403650
push 0x1fe
mov ebp, eax
lea ecx, [esp + 0x32]
xor eax, eax
push ebx
push ecx
mov word [esp + 0x38], ax
call fcn.0049e9f0
mov edx, dword [0x514540]
mov eax, dword [edx + 0xc]
add esp, 0xc
mov ecx, 0x514540
call eax
push ebp
push 0xbc614e
mov edi, eax
push str.Count
add edi, 0x10
push 0x4bb51c
mov dword [esp + 0x2c], edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [esp + 0x14], eax
cmp eax, 0xbc614e
jne 0x41af48
mov dword [esp + 0x14], ebx
mov eax, ebx
xor esi, esi
cmp eax, ebx
mov dword [esp + 0x20], esi
jle 0x41b0f2
push esi
lea ecx, [esp + 0x20]
push str.Marker_d
push ecx
call fcn.00402950
mov edi, dword [esp + 0x28]
add esp, 0xc
push ebp
push 0xff
lea edx, [esp + 0x34]
push edx
push ebx
push str.Text
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x41b0e3
push 0x14
call fcn.0049f1a2
add esp, 4
cmp eax, ebx
je 0x41afb1
mov ecx, eax
call fcn.004198f0
mov esi, eax
jmp 0x41afb3
xor esi, esi
cmp word [esp + 0x2c], 0x23
mov dword [esp + 0x18], esi
lea edx, [esp + 0x2e]
je 0x41afc7
lea edx, [esp + 0x2c]
cmp edx, ebx
jne 0x41afcf
xor eax, eax
jmp 0x41aff1
mov eax, edx
lea ecx, [eax + 2]
mov dword [esp + 0x24], ecx
jmp 0x41afe0
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41afe0
sub eax, dword [esp + 0x24]
sar eax, 1
push eax
push edx
lea ecx, [esi + 4]
call fcn.00402140
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x1b]
push edx
push str.Case
push edi
mov ecx, ebp
mov byte [esp + 0x27], bl
call fcn.00403f90
movzx eax, byte [esp + 0x13]
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x1b]
push ecx
push str.Word
push edi
mov ecx, ebp
mov byte [esi + 8], al
mov byte [esp + 0x27], bl
call fcn.00403f90
mov dl, byte [esp + 0x13]
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x1b]
push eax
push str.Regex
push edi
mov ecx, ebp
mov byte [esi + 0xa], dl
mov byte [esp + 0x27], bl
call fcn.00403f90
mov cl, byte [esp + 0x13]
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x1b]
push edx
push str.Enable
mov byte [esi + 9], cl
push edi
mov ecx, ebp
mov byte [esp + 0x27], bl
call fcn.00403f90
movzx eax, byte [esp + 0x13]
push ebp
push 0xbc614e
push str.Color
push edi
mov byte [esi + 0x10], al
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [esi + 0xc], eax
cmp eax, 0xbc614e
jne 0x41b09c
mov dword [esi + 0xc], ebx
mov eax, dword [esi + 0xc]
cmp eax, 0x14
jl 0x41b0a9
cmp eax, 0x1b
jle 0x41b0ce
mov eax, 0x24924925
mul esi
mov eax, esi
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 2
lea ecx, [eax*8]
sub ecx, eax
mov edx, esi
sub edx, ecx
add edx, 0x14
mov dword [esi + 0xc], edx
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x18]
push eax
add ecx, 0x34
call fcn.00442c80
mov esi, dword [esp + 0x20]
inc esi
cmp esi, dword [esp + 0x14]
mov dword [esp + 0x20], esi
jl 0x41af56
lea eax, [edi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
pop edi
pop esi
pop ebp
test edx, edx
jg 0x41b111
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x220]
pop ebx
xor ecx, esp
call fcn.0049e9d2
add esp, 0x220
ret