Function at 0x410d00
Capabilities:
Check if file exists
Get file attributes
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43f298
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x44cb90]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], 0
mov eax, dword [eax]
sub eax, 0x10
call fcn.004023d0
lea esi, [eax + 0x10]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
lea eax, [esi - 0x10]
lea edx, [eax + 0xc]
mov edi, ecx
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x410d6c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
jne 0x410d94
mov esi, dword [ebp + 0xc]
push esi
mov ecx, str.Error:_Ini_File_Not_Exist
call fcn.00402a70
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
xor ecx, ecx
mov eax, 0x104
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004141b4
mov esi, eax
mov eax, dword [section..data]
mov edx, dword [eax + 0xc]
add esp, 4
mov ecx, section..data
call edx
add eax, 0x10
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov dword [ebp - 4], 0
mov eax, dword [eax]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push eax
push 0x104
push esi
push ebx
push ecx
push edx
call edi
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
push eax
push 0x104
push esi
push ebx
push ecx
push edx
call edi
cmp eax, 0x103
jb 0x410e8a
mov edi, 0x104
mov ecx, ebx
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x410e3a
test dx, dx
je 0x410e36
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x410e3a
add eax, 4
add ecx, 4
test dx, dx
jne 0x410e14
xor eax, eax
jmp 0x410e3f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x410e8a
push esi
call fcn.004285a1
add edi, 0x104
xor ecx, ecx
mov eax, edi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004141b4
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
add esp, 8
mov esi, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
push eax
push edi
push esi
push ebx
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [edi - 1]
cmp eax, ecx
jae 0x410e10
test esi, esi
jne 0x410e92
xor eax, eax
jmp 0x410ea6
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x410e97
sub eax, edx
sar eax, 1
push esi
lea edx, [ebp - 0x10]
push edx
mov ebx, eax
call fcn.00407550
push esi
call fcn.004285a1
mov esi, dword [ebp - 0x10]
add esi, 0xfffffff0
add esp, 4
mov eax, esi
call fcn.004023d0
mov edi, dword [ebp + 0xc]
add eax, 0x10
mov dword [edi], eax
mov dword [ebp - 4], 0xffffffff
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x410ef0
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10