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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x573d7e
mov eax, dword fs:[0]
push eax
mov eax, 0xd68c
call fcn.0054a430
mov eax, dword [0x5dbcc8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0xd568], edi
mov ebx, edx
mov dword [ebp - 4], 0
mov ecx, dword [edi + 0x24]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x4379ab
push 0x80004005
call fcn.0040d6e0
mov esi, dword [ebp + 8]
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4379d6
test dx, dx
je 0x4379d2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4379d6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4379b0
xor eax, eax
jmp 0x4379db
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
test al, al
je 0x4379f3
mov dword [ebp - 4], 0xffffffff
lea eax, [esi - 0x10]
jmp 0x43882f
mov ecx, dword [0x5e5028]
push str.SearchResultName
call dword [sym.imp.DuiLib_u.dll_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CPaintManagerUI::FindControl_wchar_t_const__const]
mov esi, eax
mov dword [ebp - 0xd584], esi
test esi, esi
je 0x438822
mov ecx, dword [0x5e5028]
push str.searchresultlist
push esi
call dword [sym.imp.DuiLib_u.dll_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CPaintManagerUI::FindSubControlByName_class_DuiLib::CControlUI___wchar_t_const__const]
mov dword [ebp - 0xd598], eax
test eax, eax
je 0x438822
push ebx
lea ecx, [ebp - 0xd698]
call fcn.005627e0
push 0
lea ecx, [ebp - 0xd698]
mov byte [ebp - 4], 1
call fcn.00563740
test al, al
je 0x4387c8
lea ecx, [ebp - 0xd698]
call fcn.00561e40
mov ecx, eax
call fcn.00561e40
mov dword [ebp - 0xd56c], eax
test eax, eax
je 0x4387c8
mov edx, dword [ebp - 0xd56c]
mov eax, dword [edx + 0x20]
mov ecx, str.data
add eax, 8
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x437ab0
test dl, dl
je 0x437aac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x437ab0
add eax, 2
add ecx, 2
test dl, dl
jne 0x437a90
xor eax, eax
jmp 0x437ab5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4387a3
mov ecx, dword [ebp - 0xd56c]
call fcn.00561e40
mov dword [ebp - 0xd570], eax
test eax, eax
je 0x4387a3
jmp 0x437ae0
mov ecx, dword [ebp - 0xd570]
mov esi, dword [ecx + 0x20]
mov edx, str.filmnum
lea eax, [esi + 8]
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x437b11
test bl, bl
je 0x437b0d
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x437b11
add eax, 2
add edx, 2
test bl, bl
jne 0x437af1
xor eax, eax
jmp 0x437b16
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x437bf0
mov edi, dword [ebp - 0xd568]
cmp dword [edi + 0x18], eax
jne 0x43878a
call fcn.00561f30
lea ecx, [ebp - 0xd588]
push ecx
mov ebx, eax
call fcn.004046c0
mov ebx, dword [eax]
add esp, 4
test ebx, ebx
je 0x437b92
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x437b92
lea edi, [eax + eax]
mov eax, edi
call fcn.0054bbf0
mov esi, esp
test esi, esi
je 0x437b8c
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push ebx
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edi, dword [ebp - 0xd568]
neg eax
sbb eax, eax
and eax, esi
jmp 0x437b94
mov edi, dword [ebp - 0xd568]
xor eax, eax
push eax
call fcn.0054762f
mov esi, eax
mov eax, dword [ebp - 0xd588]
add eax, 0xfffffff0
add esp, 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x437bc1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0x66666667
imul esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*4]
add ecx, ecx
add ecx, ecx
mov dword [edi + 0x1c], esi
sub esi, ecx
mov dword [edi + 0x18], eax
je 0x43878a
inc eax
mov dword [edi + 0x18], eax
jmp 0x43878a
mov edx, str.datalist
lea eax, [esi + 8]
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x437c18
test bl, bl
je 0x437c14
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x437c18
add eax, 2
add edx, 2
test bl, bl
jne 0x437bf8
xor eax, eax
jmp 0x437c1d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x43878a
call fcn.00561e40
mov dword [ebp - 0xd574], eax
test eax, eax
je 0x43878a
jmp 0x437c40
mov esi, dword [ebp - 0xd574]
mov eax, dword [esi + 0x20]
mov ecx, str.item
add eax, 8
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x437c71
test dl, dl
je 0x437c6d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x437c71
add eax, 2
add ecx, 2
test dl, dl
jne 0x437c51
xor eax, eax
jmp 0x437c76
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x438775
lea edx, [ebp - 0xd650]
push edx
call fcn.0040c1a0
push 6
push str.search
lea ecx, [ebp - 0xd5b8]
mov byte [ebp - 4], 2
call fcn.0040d560
push 0x5a55b8
lea ecx, [ebp - 0xd580]
call fcn.0040cf20
mov ecx, esi
mov byte [ebp - 4], 3
call fcn.00561e40
mov dword [ebp - 0xd564], eax
test eax, eax
je 0x4382d9
mov edi, dword [ebp - 0xd564]
mov esi, dword [edi + 0x20]
add esi, 8
mov ecx, str.description
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x437d00
test dl, dl
je 0x437cfc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x437d00
add eax, 2
add ecx, 2
test dl, dl
jne 0x437ce0
xor eax, eax
jmp 0x437d05
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x437e47
mov ecx, dword [ebp - 0xd564]
call fcn.00561f30
lea ecx, [ebp - 0xd5a4]
push ecx
mov ebx, eax
call fcn.004046c0
add esp, 4
mov byte [ebp - 4], 4
mov eax, dword [eax]
mov edi, dword [ebp - 0xd61c]
lea esi, [eax - 0x10]
add edi, 0xfffffff0
cmp esi, edi
je 0x437de7
cmp dword [edi + 0xc], 0
jl 0x437dd7
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x437dd7
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x437d78
cmp eax, dword [esi]
jne 0x437d78
mov ebx, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x437db3
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x43886c
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.0054703f
add esp, 0x10
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x437dcc
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add ebx, 0x10
mov dword [ebp - 0xd61c], ebx
jmp 0x437de7
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0xd61c]
call fcn.0040d560
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0xd5a4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437e0d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0xa
lea ecx, [ebp - 0xd61c]
call fcn.0040a280
push 0x5a537c
push 0x5a5380
lea ecx, [ebp - 0xd61c]
call fcn.00409f60
push 0x20
lea ecx, [ebp - 0xd61c]
call fcn.0040a280
mov edi, dword [ebp - 0xd564]
jmp 0x4382c4
mov ecx, 0x5a549c
mov eax, esi
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x437e70
test dl, dl
je 0x437e6c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x437e70
add eax, 2
add ecx, 2
test dl, dl
jne 0x437e50
xor eax, eax
jmp 0x437e75
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x437f1b
mov ecx, edi
call fcn.00561f30
lea ecx, [ebp - 0xd5ac]
push ecx
mov ebx, eax
call fcn.004046c0
add esp, 4
mov byte [ebp - 4], 5
mov ecx, dword [eax]
mov esi, dword [ebp - 0xd64c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x437efc
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x437eec
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x437eec
push eax
call fcn.0040d710
mov edi, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x437edb
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [ebp - 0xd64c], edi
mov edi, dword [ebp - 0xd564]
jmp 0x437efc
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0xd64c]
call fcn.0040d560
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0xd5ac]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x43824f
mov ecx, 0x5a54b0
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x437f42
test dl, dl
je 0x437f3e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x437f42
add eax, 2
add ecx, 2
test dl, dl
jne 0x437f22
xor eax, eax
jmp 0x437f47
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x437fed
mov ecx, edi
call fcn.00561f30
lea ecx, [ebp - 0xd5a8]
push ecx
mov ebx, eax
call fcn.004046c0
add esp, 4
mov byte [ebp - 4], 6
mov ecx, dword [eax]
mov esi, dword [ebp - 0xd624]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x437fce
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x437fbe
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x437fbe
push eax
call fcn.0040d710
mov edi, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x437fad
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [ebp - 0xd624], edi
mov edi, dword [ebp - 0xd564]
jmp 0x437fce
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0xd624]
call fcn.0040d560
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0xd5a8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x43824f
mov ecx, str.title
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x438014
test dl, dl
je 0x438010
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x438014
add eax, 2
add ecx, 2
test dl, dl
jne 0x437ff4
xor eax, eax
jmp 0x438019
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4380bf
mov ecx, edi
call fcn.00561f30
lea ecx, [ebp - 0xd5a0]
push ecx
mov ebx, eax
call fcn.004046c0
add esp, 4
mov byte [ebp - 4], 7
mov ecx, dword [eax]
mov esi, dword [ebp - 0xd62c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x4380a0
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x438090
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x438090
push eax
call fcn.0040d710
mov edi, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x43807f
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [ebp - 0xd62c], edi
mov edi, dword [ebp - 0xd564]
jmp 0x4380a0
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0xd62c]
call fcn.0040d560
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0xd5a0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x43824f
mov ecx, str.score
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4380e6
test dl, dl
je 0x4380e2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4380e6
add eax, 2
add ecx, 2
test dl, dl
jne 0x4380c6
xor eax, eax
jmp 0x4380eb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x438126
mov ecx, edi
call fcn.00561f30
lea ecx, [ebp - 0xd59c]
push ecx
mov ebx, eax
call fcn.004046c0
add esp, 4
push eax
lea ecx, [ebp - 0xd604]
mov byte [ebp - 4], 8
call fcn.0040d610
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0xd59c]
jmp 0x43823f
mov ecx, str.type
mov eax, esi
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x438150
test dl, dl
je 0x43814c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x438150
add eax, 2
add ecx, 2
test dl, dl
jne 0x438130
xor eax, eax
jmp 0x438155
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x438174
mov ecx, edi
call fcn.00561f30
push eax
call fcn.0054762f
add esp, 4
mov dword [ebp - 0xd5b0], eax
jmp 0x4382c4
mov ecx, str.actor
mov eax, esi
jmp 0x438180
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4381a0
test dl, dl
je 0x43819c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4381a0
add eax, 2
add ecx, 2
test dl, dl
jne 0x438180
xor eax, eax
jmp 0x4381a5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4381dd
mov ecx, edi
call fcn.00561f30
lea ecx, [ebp - 0xd57c]
push ecx
mov ebx, eax
call fcn.004046c0
add esp, 4
push eax
lea ecx, [ebp - 0xd608]
mov byte [ebp - 4], 9
call fcn.0040d610
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0xd57c]
jmp 0x43823f
mov ecx, str.director
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x438204
test dl, dl
je 0x438200
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x438204
add eax, 2
add ecx, 2
test dl, dl
jne 0x4381e4
xor eax, eax
jmp 0x438209
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x43825d
mov ecx, edi
call fcn.00561f30
lea ecx, [ebp - 0xd58c]
push ecx
mov ebx, eax
call fcn.004046c0
add esp, 4
push eax
lea ecx, [ebp - 0xd60c]
mov byte [ebp - 4], 0xa
call fcn.0040d610
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0xd58c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4382c4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4382c4
mov ecx, str.areas
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x438284
test dl, dl
je 0x438280
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x438284
add eax, 2
add ecx, 2
test dl, dl
jne 0x438264
xor eax, eax
jmp 0x438289
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4382c4
mov ecx, edi
call fcn.00561f30
lea ecx, [ebp - 0xd590]
push ecx
mov ebx, eax
call fcn.004046c0
add esp, 4
push eax
lea ecx, [ebp - 0xd5f8]
mov byte [ebp - 4], 0xb
call fcn.0040d610
lea ecx, [ebp - 0xd590]
mov byte [ebp - 4], 3
call fcn.0040d7a0
mov ecx, edi
call fcn.00561e70
mov dword [ebp - 0xd564], eax
test eax, eax
jne 0x437cc9
lea ecx, [ebp - 0x958]
call dword [sym.imp.DuiLib_u.dll_public:_void___thiscall_DuiLib::CDialogBuilder::constructor_void_]
mov byte [ebp - 4], 0xc
mov edx, dword [0x5e5028]
push 0
push edx
lea eax, [ebp - 0xd594]
push eax
push 0
push ecx
mov eax, esp
mov dword [ebp - 0xd594], 0x5ade7c
lea ecx, [ebp - 0x958]
mov dword [ebp - 0xd564], esp
mov dword [eax], str.SearchSkinSerachListItemXML.xml
call dword [sym.imp.DuiLib_u.dll_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CDialogBuilder::Create_class_DuiLib::STRINGorID__wchar_t_const___class_DuiLib::IDialogBuilderCallback___class_DuiLib::CPaintManagerUI___class_DuiLib::CControlUI__]
mov ebx, eax
test ebx, ebx
je 0x43872a
push 0x3ff
lea ecx, [ebp - 0x40f]
push 0
push ecx
mov byte [ebp - 0x410], 0
call fcn.00549e40
add esp, 0xc
lea edi, [ebp - 0x410]
mov esi, str.ListContainerElement
call fcn.00404fb0
call fcn.004457a5
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4379a1
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0xd564], eax
mov ecx, edi
mov byte [ebp - 4], 0xd
test ecx, 0xffff0000
jne 0x4383a9
mov edx, edi
movzx esi, dx
push esi
call fcn.00445d6e
test eax, eax
je 0x4383bb
push esi
push eax
lea ecx, [ebp - 0xd564]
call fcn.0040cd20
jmp 0x4383bb
lea eax, [ebp - 0x410]
push eax
lea ecx, [ebp - 0xd564]
call fcn.0040d2c0
mov byte [ebp - 4], 0xe
mov edx, dword [ebx]
mov esi, dword [ebp - 0xd564]
mov eax, dword [edx + 8]
push esi
mov ecx, ebx
call eax
lea eax, [esi - 0x10]
mov byte [ebp - 4], 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4383ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
sub esp, 0xa4
mov ecx, esp
mov dword [ebp - 0xd564], esp
push ecx
lea edi, [ebp - 0xd650]
call fcn.0040b230
mov ecx, ebx
call fcn.0043a030
mov ecx, dword [ebp - 0xd598]
mov edx, dword [ecx + 0x4a0]
mov eax, dword [edx + 0x10]
add ecx, 0x4a0
push ebx
call eax
mov ecx, dword [ebp - 0xd624]
cmp dword [ecx - 0xc], 0
je 0x43872a
push 0x3ff
lea edx, [ebp - 0x80f]
push 0
push edx
mov byte [ebp - 0x810], 0
call fcn.00549e40
add esp, 0xc
push 1
push 0x1c
lea eax, [ebp - 0x810]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov eax, dword [ebp - 0xd624]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0xd564], esp
mov esi, esp
push eax
call fcn.0040d710
add eax, 0x10
mov dword [esi], eax
add esp, 4
lea esi, [ebp - 0xd578]
call fcn.004045e0
add esp, 4
lea esi, [ebp - 0xd560]
mov byte [ebp - 4], 0xf
call fcn.00403050
mov eax, dword [ebp - 0xd624]
mov dword [ebp - 0xd560], 0x544547
mov edi, eax
test eax, eax
je 0x4384f8
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x4384f8
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0054bbf0
mov esi, esp
test esi, esi
je 0x4384f8
push 0
push 0
push ebx
push esi
push 0xffffffffffffffff
push edi
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
jmp 0x4384fa
xor eax, eax
lea edx, [ebp - 0xd160]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x438502
mov eax, dword [ebp - 0xd578]
mov ebx, eax
test eax, eax
jne 0x438520
mov dword [ebp - 0xd564], eax
jmp 0x438565
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x43855d
lea edi, [eax + eax]
mov eax, edi
call fcn.0054bbf0
mov esi, esp
test esi, esi
je 0x43855d
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push ebx
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
jmp 0x43855f
xor eax, eax
mov dword [ebp - 0xd564], eax
push 0x5a56b0
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x4385ac
lea edi, [eax + eax]
mov eax, edi
call fcn.0054bbf0
mov esi, esp
test esi, esi
je 0x4385ac
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push 0x5a56b0
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
mov ebx, eax
jmp 0x4385ae
xor ebx, ebx
push str.1905Cache1
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x4385f3
lea edi, [eax + eax]
mov eax, edi
call fcn.0054bbf0
mov esi, esp
test esi, esi
je 0x4385f3
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push str.1905Cache1
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
jmp 0x4385f5
xor eax, eax
mov ecx, dword [ebp - 0xd564]
push ecx
push ebx
push eax
lea edx, [ebp - 0x810]
push edx
push str._s_s_s_s
lea eax, [ebp - 0x8160]
push 0x2800
push eax
call fcn.005468fa
add esp, 0x1c
lea ecx, [ebp - 0x8160]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x4386cd
mov ecx, 0x5e5968
call dword [sym.imp.DuiLib_u.dll_public:_struct_HWND______thiscall_DuiLib::CWindowWnd::GetHWND_void_const]
mov edx, dword [ebp - 0xd568]
mov esi, dword [edx + 0x24]
mov dword [ebp - 0x3160], eax
mov dword [ebp - 0x315c], 0x402
test esi, esi
jne 0x43865f
xor eax, eax
jmp 0x438688
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x438672
xor eax, eax
jmp 0x438688
lea edi, [eax + eax]
mov eax, edi
call fcn.0054bbf0
mov eax, esp
push 3
push edi
push esi
push eax
call fcn.0040c9b0
lea ecx, [ebp - 0x8160]
push ecx
lea edx, [ebp - 0x410]
push edx
push eax
push 0x12
lea eax, [ebp - 0x3158]
push str.type_dkeyname_s_name_s_saveFile_s
push eax
call fcn.00546876
add esp, 0x18
mov eax, 0xcc08
lea esi, [ebp - 0xd560]
call fcn.0054a430
mov edi, esp
mov ecx, 0x3302
rep movsd dword es:[edi], dword [esi]
call fcn.004028a0
jmp 0x438704
mov edi, dword [ebp - 0xd568]
mov eax, dword [edi + 0x24]
lea ecx, [ebp - 0x8160]
push ecx
lea edx, [ebp - 0x410]
push edx
push ecx
sub eax, 0x10
mov dword [ebp - 0xd564], esp
mov esi, esp
push eax
call fcn.0040d710
add esp, 4
add eax, 0x10
push edi
mov dword [esi], eax
call fcn.00438880
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0xd578]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43872a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x958]
mov byte [ebp - 4], 3
call dword [sym.imp.DuiLib_u.dll_public:_void___thiscall_DuiLib::CDialogBuilder::destructor_void_]
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0xd580]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438760
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0xd650]
mov byte [ebp - 4], 1
call fcn.00406a80
mov esi, dword [ebp - 0xd574]
mov ecx, esi
call fcn.00561e70
mov dword [ebp - 0xd574], eax
test eax, eax
jne 0x437c40
mov ecx, dword [ebp - 0xd570]
call fcn.00561e70
mov dword [ebp - 0xd570], eax
test eax, eax
jne 0x437ae0
mov ecx, dword [ebp - 0xd56c]
call fcn.00561e70
mov dword [ebp - 0xd56c], eax
test eax, eax
jne 0x437a79
mov edi, dword [ebp - 0xd568]
mov esi, dword [ebp - 0xd584]
mov ecx, dword [0x5e5028]
push str.horizontalsearchresultLoading
push esi
mov dword [edi + 0x20], 0
call dword [sym.imp.DuiLib_u.dll_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CPaintManagerUI::FindSubControlByName_class_DuiLib::CControlUI___wchar_t_const__const]
test eax, eax
je 0x4387f3
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xcc]
push 0
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0xd664]
mov dword [ebp - method.TiXmlDocument.virtual_0], vtable.TiXmlDocument.0
cmp eax, 0x5e4810
je 0x438817
push eax
call fcn.00444c84
add esp, 4
lea ecx, [ebp - 0xd698]
call fcn.005624c0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438848
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esp, [ebp - 0xd6a8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00545eb2
mov esp, ebp
pop ebp
ret 4
call fcn.0040d700
int3