Function at 0x41def0
Capabilities:
Get common file path
Read .ini file

Disassembly:
push ebx
push ebp
push esi
push edi
mov ebp, ecx
push 0x104
call sub.MFC42.DLL_operatornew
add esp, 4
mov ebx, eax
push 0x100
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x41df32
push 0x424220
push ebx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
jne 0x41df3e
push ebx
push 0x100
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov edi, str._setdz.mdb
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x14]
mov ecx, edx
and ecx, 3
cmp eax, 1
rep movsb byte es:[edi], byte [esi]
jne 0x41df8c
mov eax, dword [esp + 0x18]
push ebx
push eax
push str.LASTLOG
push str.PLAYERRLOG
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
jmp 0x41e136
cmp eax, 2
jne 0x41dfb0
mov edi, dword [esp + 0x18]
push ebx
push 0x1e
push edi
push 0
push str.LASTLOG
push str.PLAYERRLOG
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
jmp 0x41e076
cmp eax, 3
jne 0x41dfd0
mov ecx, dword [esp + 0x18]
push ebx
push ecx
push str.ERRORFILE
push str.PLAYERRLOG
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
jmp 0x41e136
cmp eax, 4
jne 0x41e098
mov edi, dword [esp + 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push ebx
push 0xa
push edi
push 0
push str.IFNOTFILE
push str.PLAYERRLOG
call esi
mov al, byte [edi]
push 0
cmp al, 0x31
jne 0x41e01a
mov edx, dword [ebp + 0x218]
push 1
push 0xf1
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp + 0x64], 1
jmp 0x41e035
mov eax, dword [ebp + 0x218]
push 0
push 0xf1
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp + 0x64], 0
push ebx
push 0xa
push edi
push 0
push str.ERRORFILE
push str.PLAYERRLOG
call esi
mov eax, dword [ebp + 0x64]
test eax, eax
jne 0x41e076
mov edi, 0x424d50
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x41e136
push ebx
call sub.MFC42.DLL_operatordelete
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 8
cmp eax, 5
jne 0x41e136
mov eax, dword [ebp + 0x218]
push 0
push 0
push 0xf0
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 1
push ebx
jne 0x41e0f5
push 0x4242ac
push str.IFNOTFILE
push str.PLAYERRLOG
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push ebx
push 0xa
push 0x4254d4
push 0
push str.ERRORFILE
push str.PLAYERRLOG
mov dword [ebp + 0x64], 1
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
jmp 0x41e136
push 0x424330
push str.IFNOTFILE
push str.PLAYERRLOG
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov edi, 0x424d50
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp + 0x64], 0
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x4254d4
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push ebx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
ret 8