Function at 0x4f48e0
Capabilities:
Check if file exists
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x224
mov eax, dword [0x5be9c0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0x14]
xor eax, eax
cmp dword [ebp + 8], 0x53c
mov dword [ebp - 0x224], ecx
mov dword [ebp - 0x21c], ebx
jne 0x4f4b7d
push 0x206
push eax
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20a]
push eax
call fcn.004c62d0
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0x208
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push str.ui_change.ini
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4f4b7b
push esi
push edi
mov edi, dword [ebp + 0xc]
mov eax, 0x400
test edi, edi
mov esi, 2
cmove edi, eax
xor ecx, ecx
mov eax, edi
mov dword [ebp + 0xc], edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
mov dword [ebp - 0x210], ecx
call fcn.004b0c55
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4f49c9
push dword [ebp - 0x210]
push 0
push ebx
call fcn.004c62d0
add esp, 0xc
jmp 0x4f49cb
xor ebx, ebx
xor ecx, ecx
mov eax, edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
mov dword [ebp - 0x210], ecx
call fcn.004b0c55
mov esi, eax
add esp, 4
test esi, esi
je 0x4f4a00
push dword [ebp - 0x210]
push 0
push esi
call fcn.004c62d0
add esp, 0xc
jmp 0x4f4a02
xor esi, esi
xor ecx, ecx
mov eax, edi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
mov dword [ebp - 0x210], ecx
call fcn.004b0c55
mov edi, eax
add esp, 4
mov dword [ebp - 0x214], edi
test edi, edi
je 0x4f4a42
push dword [ebp - 0x210]
push 0
push edi
call fcn.004c62d0
add esp, 0xc
jmp 0x4f4a4c
mov dword [ebp - 0x214], 0
mov edi, dword [ebp + 0xc]
lea eax, [ebp - 0x20c]
push eax
push edi
push ebx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov ecx, eax
mov dword [ebp - 0x220], ecx
test ecx, ecx
je 0x4f4b40
xor eax, eax
mov dword [ebp - 0x210], eax
test ecx, ecx
je 0x4f4b40
lea ebx, [ebx + eax*2]
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [ebp - 0x210]
inc ecx
add ecx, eax
lea eax, [ebp - 0x20c]
push eax
push edi
push esi
push 0
push 0
push ebx
mov dword [ebp - 0x210], ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x218], eax
test eax, eax
je 0x4f4b2e
xor edi, edi
test eax, eax
je 0x4f4b2b
lea esi, [esi + edi*2]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp + 0xc]
inc eax
push 0
push dword [ebp - 0x214]
add edi, eax
call fcn.004c62d0
add esp, 0xc
lea eax, [ebp - 0x20c]
push eax
push dword [ebp + 0xc]
push dword [ebp - 0x214]
push 0
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x4f4b23
mov ecx, dword [ebp - 0x224]
push ebx
lea ecx, [ecx + 0x34]
call sym.xIns.exe_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CPaintManagerUI::FindControl_wchar_t_const__const
test eax, eax
je 0x4f4b23
push dword [ebp - 0x214]
mov edx, dword [eax]
mov ecx, eax
push esi
call dword [edx + 0x110]
cmp edi, dword [ebp - 0x218]
jb 0x4f4ac1
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x210]
cmp eax, dword [ebp - 0x220]
jb 0x4f4a84
push ebx
call fcn.004b0c50
push esi
call fcn.004b0c50
push dword [ebp - 0x214]
call fcn.004b0c50
mov eax, dword [ebp - 0x21c]
add esp, 0xc
pop edi
pop esi
mov dword [eax], 0
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004c2ee0
mov esp, ebp
pop ebp
ret 0x10
xor eax, eax
mov ecx, dword [ebp - 4]
mov dword [ebx], 0
xor ecx, ebp
pop ebx
call fcn.004c2ee0
mov esp, ebp
pop ebp
ret 0x10