Function at 0x54eed0
Capabilities:
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6349b4
mov eax, dword fs:[0]
push eax
sub esp, 0x394
mov eax, dword [0x6b278c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x330], ecx
mov eax, dword [ebp - 0x330]
cmp dword [eax + 0xe98], 0
jne 0x54ef15
jmp 0x54f4cb
mov ecx, dword [ebp - 0x330]
mov dword [ecx + 0xe98], 0
push 0x656c50
mov ecx, dword [ebp - 0x330]
add ecx, 0x2c
call sym.demo.exe_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CPaintManagerUI::FindControl_wchar_t_const__const
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x54f03a
mov ecx, dword [ebp - 0x10]
call sym.demo.exe_public:_bool___thiscall_DuiLib::COptionUI::IsSelected_void_const
movzx edx, al
test edx, edx
jne 0x54f03a
push 0x656c68
mov eax, dword [ebp - 0x330]
add eax, 0x904
push eax
call fcn.00412570
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x54f035
mov edx, dword [ebp - 0x330]
cmp dword [edx + 0x494], 3
je 0x54f035
push 0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x2a8], esp
push 0x656c6c
call fcn.0040e4b0
mov dword [ebp - 0x334], eax
mov eax, dword [ebp - 0x334]
mov dword [ebp - 0x338], eax
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x330]
add ecx, 0x904
call fcn.0040e5d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x2ac], esp
push eax
call fcn.0040e4b0
mov dword [ebp - 0x33c], eax
mov ecx, dword [ebp - 0x33c]
mov dword [ebp - 0x340], ecx
mov byte [ebp - 4], 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x2b0], esp
push 0x656c70
call fcn.0040e4b0
mov dword [ebp - 0x344], eax
mov edx, dword [ebp - 0x344]
mov dword [ebp - 0x348], edx
mov byte [ebp - 4], 2
call fcn.00412530
mov dword [ebp - 4], 0xffffffff
mov ecx, eax
call fcn.0040b820
jmp 0x54f4cb
push 0
push 0x656c80
mov ecx, dword [ebp - 0x330]
add ecx, 0x7b4
call fcn.0040e5f0
cmp eax, dword [0x63f3a0]
je 0x54f128
push 0x656c88
mov eax, dword [ebp - 0x330]
add eax, 0x904
push eax
call fcn.00412570
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x54f128
push 0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x2b4], esp
push 0x656c8c
call fcn.0040e4b0
mov dword [ebp - 0x34c], eax
mov edx, dword [ebp - 0x34c]
mov dword [ebp - 0x350], edx
mov dword [ebp - 4], 3
mov ecx, dword [ebp - 0x330]
add ecx, 0x904
call fcn.0040e5d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x2b8], esp
push eax
call fcn.0040e4b0
mov dword [ebp - 0x354], eax
mov eax, dword [ebp - 0x354]
mov dword [ebp - 0x358], eax
mov byte [ebp - 4], 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x2bc], esp
push 0x656c90
call fcn.0040e4b0
mov dword [ebp - 0x35c], eax
mov ecx, dword [ebp - 0x35c]
mov dword [ebp - 0x360], ecx
mov byte [ebp - 4], 5
call fcn.00412530
mov dword [ebp - 4], 0xffffffff
mov ecx, eax
call fcn.0040b820
cmp dword [ebp + 8], 0
je 0x54f133
jmp 0x54f4cb
mov edx, dword [ebp - 0x330]
add edx, 0x494
push edx
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x2c0], esp
push 0x656ca0
call fcn.0040e3a0
mov dword [ebp - 0x364], eax
mov eax, dword [ebp - 0x364]
mov dword [ebp - 0x368], eax
mov dword [ebp - 4], 6
call fcn.00412590
mov dword [ebp - 4], 0xffffffff
mov ecx, eax
call fcn.0051f7b0
mov ecx, dword [ebp - 0x330]
cmp dword [ecx + 0x4c8], 0
je 0x54f331
xor edx, edx
mov word [ebp - 0x274], dx
push 0x206
push 0
lea eax, [ebp - 0x272]
push eax
call fcn.005b4de0
add esp, 0xc
push 0
push 0x19
lea ecx, [ebp - 0x274]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
jne 0x54f1dd
push 0
push 0x10
lea edx, [ebp - 0x274]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea eax, [ebp - 0x274]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x54f32c
push 0x656ca8
lea ecx, [ebp - 0x274]
push ecx
call fcn.005b4d90
add esp, 8
mov ecx, dword [ebp - 0x330]
add ecx, 0x840
call fcn.0040e5d0
push eax
lea edx, [ebp - 0x274]
push edx
call fcn.005b4d90
add esp, 8
lea eax, [ebp - 0x274]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x54f32c
lea ecx, [ebp - 0x2a4]
call fcn.0044a670
mov dword [ebp - 4], 7
lea ecx, [ebp - 0x274]
push ecx
lea ecx, [ebp - 0x2dc]
call fcn.0040e4b0
mov byte [ebp - 4], 8
push 0
lea edx, [ebp - 0x2dc]
push edx
lea eax, [ebp - 0x2f8]
push eax
call fcn.0043a030
add esp, 8
mov dword [ebp - 0x36c], eax
mov ecx, dword [ebp - 0x36c]
mov dword [ebp - 0x370], ecx
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x370]
call fcn.0040e460
push eax
mov edx, dword [ebp - 0x330]
add edx, 0x8b0
push edx
lea eax, [ebp - 0x314]
push eax
call fcn.0043a030
add esp, 8
mov dword [ebp - 0x374], eax
mov ecx, dword [ebp - 0x374]
mov dword [ebp - 0x378], ecx
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x378]
call fcn.0040e460
push eax
lea ecx, [ebp - 0x2a4]
call fcn.0044a9a0
mov dword [ebp - 0x278], eax
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x314]
call fcn.0040e3e0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x2f8]
call fcn.0040e3e0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x2dc]
call fcn.0040e530
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2a4]
call fcn.0044a6e0
jmp 0x54f4cb
lea ecx, [ebp - 0x6c]
call fcn.00546550
mov dword [ebp - 4], 0xb
push 0
push 0x656cac
mov ecx, dword [ebp - 0x330]
add ecx, 0x8b0
call fcn.0040e5f0
cmp eax, dword [0x63f3a0]
je 0x54f402
mov edx, dword [ebp - 0x330]
add edx, 0x8cc
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x318], esp
push edx
call fcn.0040e4f0
mov dword [ebp - 0x37c], eax
mov eax, dword [ebp - 0x37c]
mov dword [ebp - 0x380], eax
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x330]
add ecx, 0x8b0
sub esp, 0x1c
mov edx, esp
mov dword [ebp - 0x31c], esp
push ecx
mov ecx, edx
call fcn.0040e4f0
mov dword [ebp - 0x384], eax
mov eax, dword [ebp - 0x384]
mov dword [ebp - 0x388], eax
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x330]
add ecx, 0x840
sub esp, 0x1c
mov edx, esp
mov dword [ebp - 0x320], esp
push ecx
mov ecx, edx
call fcn.0040e4f0
mov dword [ebp - 0x38c], eax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x6c]
call fcn.00546d00
jmp 0x54f4bc
push 0
push 0x656cb8
mov ecx, dword [ebp - 0x330]
add ecx, 0x894
call fcn.0040e5f0
cmp eax, dword [0x63f3a0]
je 0x54f4bc
mov eax, dword [ebp - 0x330]
add eax, 0x894
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x324], esp
push eax
call fcn.0040e4f0
mov dword [ebp - 0x390], eax
mov ecx, dword [ebp - 0x390]
mov dword [ebp - 0x394], ecx
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x330]
add edx, 0x840
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x328], esp
push edx
call fcn.0040e4f0
mov dword [ebp - 0x398], eax
mov eax, dword [ebp - 0x398]
mov dword [ebp - 0x39c], eax
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x330]
add ecx, 0x760
sub esp, 0x1c
mov edx, esp
mov dword [ebp - 0x32c], esp
push ecx
mov ecx, edx
call fcn.0040e4f0
mov dword [ebp - 0x3a0], eax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x6c]
call fcn.00546630
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6c]
call fcn.005465c0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.005b4b30
mov esp, ebp
pop ebp
ret 4