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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x573a9f
mov eax, dword fs:[0]
push eax
mov eax, 0x1a588
call fcn.0054a430
mov eax, dword [0x5dbcc8]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov ebx, ecx
cmp dword [ebx + 0xa8], 0
mov dword [ebp - 0x1a584], eax
je 0x43ebe6
mov ecx, dword [ebx + 0x2c]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x43e00d
push 0x3ff
lea edx, [ebp - 0xc13]
push 0
push edx
mov byte [ebp - 0xc14], 0
call fcn.00549e40
add esp, 0xc
push 1
push 0x1c
lea eax, [ebp - 0xc14]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov eax, dword [ebx + 0x2c]
push ecx
sub eax, 0x10
mov dword [ebp - 0x1a588], esp
mov esi, esp
push eax
call fcn.0040d710
add eax, 0x10
mov dword [esi], eax
add esp, 4
lea esi, [ebp - 0x1a574]
call fcn.004045e0
add esp, 4
lea esi, [ebp - 0x1a56c]
mov dword [ebp - 4], 0
call fcn.00403050
mov esi, dword [ebx + 0x2c]
mov dword [ebp - 0x1a56c], 0x544547
test esi, esi
jne 0x43de4a
xor eax, eax
jmp 0x43de73
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x43de5d
xor eax, eax
jmp 0x43de73
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 edx, [ebp - 0x1a16c]
sub edx, eax
jmp 0x43de80
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x43de80
mov eax, dword [ebp - 0x1a574]
xor esi, esi
mov edi, eax
cmp eax, esi
jne 0x43dea0
mov dword [ebp - 0x1a57c], esi
jmp 0x43ded3
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x43deb7
mov dword [ebp - 0x1a57c], esi
jmp 0x43ded3
lea esi, [eax + eax]
mov eax, esi
call fcn.0054bbf0
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.0040c9b0
mov dword [ebp - 0x1a57c], eax
push 0x5a56b0
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x43deea
xor edi, edi
jmp 0x43df06
lea esi, [eax + eax]
mov eax, esi
call fcn.0054bbf0
mov eax, esp
push 3
push esi
push 0x5a56b0
push eax
call fcn.0040c9b0
mov edi, eax
push str.1905Cache1
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x43df1d
xor eax, eax
jmp 0x43df37
lea esi, [eax + eax]
mov eax, esi
call fcn.0054bbf0
mov eax, esp
push 3
push esi
push str.1905Cache1
push eax
call fcn.0040c9b0
mov ecx, dword [ebp - 0x1a57c]
push ecx
push edi
push eax
lea edx, [ebp - 0xc14]
push edx
push str._s_s_s_s
lea eax, [ebp - 0x1516c]
push 0x2800
push eax
call fcn.005468fa
add esp, 0x1c
lea ecx, [ebp - 0x1516c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x43dfd0
mov ecx, 0x5e5968
call dword [sym.imp.DuiLib_u.dll_public:_struct_HWND______thiscall_DuiLib::CWindowWnd::GetHWND_void_const]
lea edx, [ebp - 0x1516c]
push edx
mov dword [ebp - 0x1016c], eax
mov eax, dword [ebp - 0x1a584]
push eax
push 0xd
lea ecx, [ebp - 0x10164]
push str.type_did_s_saveFile_s
push ecx
mov dword [ebp - 0x10168], 0x402
call fcn.00546876
add esp, 0x14
mov eax, 0xcc08
lea esi, [ebp - 0x1a56c]
call fcn.0054a430
mov edi, esp
mov ecx, 0x3302
rep movsd dword es:[edi], dword [esi]
call fcn.004028a0
jmp 0x43dfe4
mov ecx, dword [ebp - 0x1a584]
lea edx, [ebp - 0x1516c]
push edx
mov esi, ebx
call fcn.00440110
or edi, 0xffffffff
mov dword [ebp - 4], edi
mov eax, dword [ebp - 0x1a574]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43e010
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x43e010
or edi, 0xffffffff
cmp dword [ebx + 0xac], 0
je 0x43e07e
lea esi, [ebx + 0x54]
push esi
push 0x5a55b8
call fcn.0040a5e0
add esp, 8
test al, al
je 0x43e07e
push 0x5af424
lea ecx, [ebp - 0x1a580]
push esi
push ecx
call fcn.0040d090
add esp, 0xc
mov dword [ebp - 4], 1
mov eax, dword [eax]
mov ecx, dword [ebx + 0xac]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x2c]
call eax
mov dword [ebp - 4], edi
mov eax, dword [ebp - 0x1a580]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43e07e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebx + 0xb0]
test ecx, ecx
je 0x43e093
mov eax, dword [ebx + 0x24]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x2c]
call eax
mov ecx, dword [ebx + 0xb4]
test ecx, ecx
je 0x43e0a8
mov eax, dword [ebx + 0x48]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x2c]
call eax
cmp dword [ebx + 0xb8], 0
je 0x43e104
push 0x5a537c
lea ecx, [ebx + 0x3c]
push ecx
lea edx, [ebp - 0x1a580]
push edx
call fcn.0040d090
add esp, 0xc
mov dword [ebp - 4], 2
mov eax, dword [eax]
mov ecx, dword [ebx + 0xb8]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x2c]
call eax
mov dword [ebp - 4], edi
mov eax, dword [ebp - 0x1a580]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43e104
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebx + 0xbc], 0
je 0x43e1ad
mov ecx, dword [ebx + 0x4c]
cmp dword [ecx - 0xc], 0
lea eax, [ebx + 0x4c]
je 0x43e1ad
push eax
lea edx, [ebp - 0x1a570]
push 0x5af430
push edx
call fcn.0041bb90
add esp, 0xc
push 0x5af428
push eax
lea eax, [ebp - 0x1a580]
push eax
mov dword [ebp - 4], 3
call fcn.0040d090
add esp, 0xc
mov byte [ebp - 4], 4
mov eax, dword [eax]
mov ecx, dword [ebx + 0xbc]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x2c]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x1a580]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43e18b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], edi
mov eax, dword [ebp - 0x1a570]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jg 0x43e1ad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebx + 0xc0]
test ecx, ecx
je 0x43e1c2
mov eax, dword [ebx + 0x40]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x2c]
call eax
mov ecx, dword [ebx + 0xc4]
test ecx, ecx
je 0x43e1d7
mov eax, dword [ebx + 0x44]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x2c]
call eax
mov ecx, dword [ebx + 0xc8]
test ecx, ecx
je 0x43e1ec
mov eax, dword [ebx + 0x38]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x2c]
call eax
mov ecx, dword [ebx + 0xcc]
test ecx, ecx
je 0x43e201
mov eax, dword [ebx + 0x30]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x2c]
call eax
mov ecx, dword [ebx + 0x74]
sub ecx, dword [ebx + 0x70]
xor edi, edi
sar ecx, 4
mov dword [ebp - 0x1a570], edi
test ecx, ecx
je 0x43e499
mov dword [ebp - 0x1a57c], edi
call fcn.004457a5
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x43e509
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1a578], eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x1a578]
push 0x5a55b0
mov dword [ebp - 4], 5
push ecx
mov dword [ebp - 0x1a574], eax
call fcn.0040cb10
add esp, 0xc
cmp edi, 5
jb 0x43e363
mov ecx, dword [ebx + 0xd0]
test ecx, ecx
je 0x43e44c
push str.TvDetailSkin__more_normal.png
call dword [sym.imp.DuiLib_u.dll_public:_void___thiscall_DuiLib::CControlUI::SetBkImage_wchar_t_const__]
mov ecx, dword [ebx + 0xd0]
mov edx, dword [ecx]
mov eax, dword [edx + 0xcc]
push 1
call eax
lea ecx, [ebp - 0xd5c]
call dword [sym.imp.DuiLib_u.dll_public:_void___thiscall_DuiLib::CDialogBuilder::constructor_void_]
mov byte [ebp - 4], 6
mov ecx, dword [0x5e5028]
push 0
push ecx
lea edx, [ebp - 0x1a580]
push edx
push 0
push ecx
mov eax, esp
mov dword [ebp - 0x1a580], 0x5afa10
lea ecx, [ebp - 0xd5c]
mov dword [ebp - 0x1a588], esp
mov dword [eax], str.TvDetailSkinTvThirdItemXML.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 edi, eax
test edi, edi
je 0x43e34e
push str.thirdSourceOption
mov ecx, edi
call dword [sym.imp.DuiLib_u.dll_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CContainerUI::FindSubControl_wchar_t_const__]
mov esi, eax
test esi, esi
je 0x43e34e
mov ecx, dword [ebp - 0x1a578]
mov eax, dword [esi]
mov edx, dword [eax + 0xbc]
push ecx
mov ecx, esi
call edx
mov eax, dword [ebx + 0x70]
mov ecx, dword [ebp - 0x1a57c]
mov eax, dword [ecx + eax + 4]
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x2c]
mov ecx, esi
call eax
mov ecx, dword [ebx + 0x348]
mov edx, dword [ecx + 0x4a0]
mov eax, dword [edx + 0x10]
add ecx, 0x4a0
push edi
call eax
mov edx, dword [ebp - 0x1a570]
mov ecx, ebx
call fcn.004402b0
lea ecx, [ebp - 0xd5c]
mov byte [ebp - 4], 5
call dword [sym.imp.DuiLib_u.dll_public:_void___thiscall_DuiLib::CDialogBuilder::destructor_void_]
jmp 0x43e44c
mov ecx, dword [ebp - 0x1a574]
push ecx
lea edx, [ebp - 0x1a578]
push str.source_option_d
push edx
call fcn.0040cb10
mov eax, dword [ebp - 0x1a578]
mov ecx, dword [0x5e5028]
add esp, 0xc
push eax
call dword [sym.imp.DuiLib_u.dll_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CPaintManagerUI::FindControl_wchar_t_const__const]
mov esi, eax
test esi, esi
je 0x43e43b
mov ecx, dword [ebp - 0x1a574]
push ecx
lea edx, [ebp - 0x1a578]
push 0x5a55b0
push edx
call fcn.0040cb10
mov ecx, dword [ebp - 0x1a578]
mov eax, dword [esi]
mov edx, dword [eax + 0xbc]
add esp, 0xc
push ecx
mov ecx, esi
call edx
mov eax, dword [ebx + 0x70]
mov ecx, dword [ebp - 0x1a57c]
mov eax, dword [ecx + eax + 4]
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x2c]
mov ecx, esi
call eax
mov eax, dword [ebx + 0x70]
add eax, dword [ebp - 0x1a57c]
push ecx
mov eax, dword [eax + 4]
sub eax, 0x10
mov dword [ebp - 0x1a588], esp
mov dword [ebp - 0x1a58c], esp
push eax
call fcn.0040d710
mov ecx, dword [ebp - 0x1a58c]
add esp, 4
add eax, 0x10
push 0xd
mov dword [ecx], eax
call fcn.004407b0
mov edx, dword [esi]
add eax, 0x34
push eax
mov eax, dword [edx + 0x5c]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0xcc]
push 1
mov ecx, esi
call eax
mov edx, edi
mov ecx, ebx
call fcn.004402b0
mov eax, 1
mov dword [ebx + 0x374], eax
mov dword [ebx + 0x384], eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1a578]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43e475
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebx + 0x74]
sub ecx, dword [ebx + 0x70]
mov edi, dword [ebp - 0x1a574]
add dword [ebp - 0x1a57c], 0x10
sar ecx, 4
mov dword [ebp - 0x1a570], edi
cmp edi, ecx
jb 0x43e220
call fcn.0043ed20
mov ecx, ebx
call fcn.00440940
mov ecx, dword [ebx + 0x94]
sub ecx, dword [ebx + 0x90]
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 6
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp dword [ebx + 0x360], 0
mov dword [ebp - 0x1a580], esi
je 0x43e58c
mov edx, dword [ebx + 0xa4]
mov ecx, dword [0x5e5028]
push str.tvdetailrelatenum
push edx
call dword [sym.imp.DuiLib_u.dll_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CPaintManagerUI::FindSubControlByName_class_DuiLib::CControlUI___wchar_t_const__const]
mov edi, eax
test edi, edi
je 0x43e57a
call fcn.004457a5
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x43e513
push 0x80004005
call fcn.0040d6e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1a574], eax
push esi
lea ecx, [ebp - 0x1a574]
push 0x5a79a0
push ecx
mov dword [ebp - 4], 7
call fcn.0040cb10
mov edx, dword [edi]
mov eax, dword [ebp - 0x1a574]
mov edx, dword [edx + 0x2c]
add esp, 0xc
push eax
mov ecx, edi
call edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1a574]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43e57a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebx + 0x360]
mov edx, dword [ecx]
mov eax, dword [edx + 0xcc]
push 1
call eax
xor eax, eax
cmp dword [ebx + 0x364], eax
je 0x43ebae
mov dword [ebp - 0x1a57c], eax
cmp esi, eax
jle 0x43ebae
mov dword [ebp - 0x1a578], eax
lea ecx, [ebp - 0xd5c]
call dword [sym.imp.DuiLib_u.dll_public:_void___thiscall_DuiLib::CDialogBuilder::constructor_void_]
mov dword [ebp - 4], 8
mov ecx, dword [0x5e5028]
push 0
push ecx
lea edx, [ebp - 0x1a590]
push edx
push 0
push ecx
mov eax, esp
mov dword [ebp - 0x1a590], 0x5afd30
lea ecx, [ebp - 0xd5c]
mov dword [ebp - 0x1a570], esp
mov dword [eax], str.TvDetailSkinTvRelateXML.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 dword [ebp - 0x1a570], eax
test eax, eax
je 0x43eb7f
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x5c]
push 0xd1
call edx
push 0x3ff
lea eax, [ebp - 0x413]
push 0
push eax
mov byte [ebp - 0x414], 0
call fcn.00549e40
add esp, 0xc
lea edi, [ebp - 0x414]
mov esi, str.ListContainerElement
call fcn.00404fb0
call fcn.004457a5
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x43e509
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1a574], eax
mov ecx, edi
mov byte [ebp - 4], 9
test ecx, 0xffff0000
jne 0x43e693
mov edx, edi
movzx esi, dx
push esi
call fcn.00445d6e
test eax, eax
je 0x43e6a5
push esi
push eax
lea ecx, [ebp - 0x1a574]
call fcn.0040cd20
jmp 0x43e6a5
lea eax, [ebp - 0x414]
push eax
lea ecx, [ebp - 0x1a574]
call fcn.0040d2c0
mov byte [ebp - 4], 0xa
mov esi, dword [ebp - 0x1a570]
mov edx, dword [esi]
mov edi, dword [ebp - 0x1a574]
mov eax, dword [edx + 8]
push edi
mov ecx, esi
call eax
lea eax, [edi - 0x10]
mov byte [ebp - 4], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43e6df
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x110]
push str.FilmDetailSkin_filmrelatedefault.png
push str.bkimage
mov ecx, esi
call eax
mov eax, dword [ebx + 0x90]
mov edi, dword [ebp - 0x1a578]
mov edx, dword [esi]
mov edx, dword [edx + 0xc4]
add eax, edi
push eax
mov ecx, esi
call edx
mov ecx, dword [0x5e5028]
push str.tvrelatetitle
push esi
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 0x43e73a
mov ecx, dword [ebx + 0x90]
mov edi, dword [ecx + edi + 0x10]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x2c]
push edi
call eax
mov ecx, dword [0x5e5028]
push str.tvrelatedisc
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 edi, eax
test edi, edi
je 0x43e7a5
mov eax, dword [ebx + 0x90]
add eax, dword [ebp - 0x1a578]
push 0x14
lea ecx, [ebp - 0x1a588]
push ecx
lea ecx, [eax + 0x1c]
call fcn.0040a440
mov byte [ebp - 4], 0xb
mov eax, dword [eax]
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x2c]
mov ecx, edi
call eax
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x1a588]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43e7a5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebx + 0x364]
mov edx, dword [ecx + 0x4a0]
mov eax, dword [edx + 0x10]
add ecx, 0x4a0
push esi
call eax
mov ecx, dword [ebp - 0x1a580]
dec ecx
cmp dword [ebp - 0x1a57c], ecx
je 0x43e822
push 0x4f4
call fcn.00444c55
mov esi, eax
add esp, 4
mov dword [ebp - 0x1a570], esi
mov byte [ebp - 4], 0xc
test esi, esi
je 0x43e7f9
mov ecx, esi
call dword [sym.imp.DuiLib_u.dll_public:_void___thiscall_DuiLib::CVerticalLayoutUI::constructor_void_]
mov dword [esi], vtable.DuiLib::CVerticalLayoutUI.0
jmp 0x43e7fb
xor esi, esi
mov byte [ebp - 4], 8
mov edx, dword [esi]
mov eax, dword [edx + 0x5c]
push 0x14
mov ecx, esi
call eax
mov ecx, dword [ebx + 0x364]
mov edx, dword [ecx + 0x4a0]
mov eax, dword [edx + 0x10]
add ecx, 0x4a0
push esi
call eax
mov ecx, dword [ebx + 0x90]
mov esi, dword [ebp - 0x1a578]
mov edx, dword [ecx + esi + 0x14]
cmp dword [edx - 0xc], 0
je 0x43eb67
push 0x3ff
lea eax, [ebp - 0x813]
push 0
push eax
mov byte [ebp - 0x814], 0
call fcn.00549e40
add esp, 0xc
push 1
push 0x1c
lea ecx, [ebp - 0x814]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov eax, dword [ebx + 0x90]
mov esi, dword [eax + esi + 0x14]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x1a570], esp
mov dword [ebp - 0x1a570], esp
call eax
cmp dword [esi - 4], 0
lea edx, [esi - 4]
jl 0x43e8a9
cmp eax, dword [esi - 0x10]
jne 0x43e8a9
lea edi, [esi - 0x10]
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x43e8e1
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x43ec0a
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.0054703f
add esp, 0x10
mov ecx, dword [ebp - 0x1a570]
add edi, 0x10
lea esi, [ebp - 0x1a58c]
mov dword [ecx], edi
call fcn.004045e0
add esp, 4
lea esi, [ebp - 0xd964]
mov byte [ebp - 4], 0xd
call fcn.00403050
mov edx, dword [ebx + 0x90]
mov eax, dword [ebp - 0x1a578]
mov dword [ebp - 0xd964], 0x544547
mov edi, dword [edx + eax + 0x14]
test edi, edi
je 0x43e96d
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x43e96d
add eax, eax
mov dword [ebp - 0x1a570], eax
call fcn.0054bbf0
mov esi, esp
test esi, esi
je 0x43e96d
mov ecx, dword [ebp - 0x1a570]
push 0
push 0
push ecx
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 0x43e96f
xor eax, eax
lea edx, [ebp - 0xd564]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x43e977
mov eax, dword [ebp - 0x1a58c]
mov dword [ebp - 0x1a570], eax
test eax, eax
jne 0x43e999
mov dword [ebp - 0x1a570], eax
jmp 0x43e9e4
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x43e9dc
lea edi, [eax + eax]
mov eax, edi
call fcn.0054bbf0
mov esi, esp
test esi, esi
je 0x43e9dc
mov edx, dword [ebp - 0x1a570]
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push edx
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
jmp 0x43e9de
xor eax, eax
mov dword [ebp - 0x1a570], eax
push 0x5a56b0
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x43ea2f
lea edi, [eax + eax]
mov eax, edi
call fcn.0054bbf0
mov esi, esp
test esi, esi
je 0x43ea2f
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 dword [ebp - 0x1a574], eax
jmp 0x43ea39
mov dword [ebp - 0x1a574], 0
push str.1905Cache1
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x43ea7e
lea edi, [eax + eax]
mov eax, edi
call fcn.0054bbf0
mov esi, esp
test esi, esi
je 0x43ea7e
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 0x43ea80
xor eax, eax
mov ecx, dword [ebp - 0x1a570]
mov edx, dword [ebp - 0x1a574]
push ecx
push edx
push eax
lea eax, [ebp - 0x814]
push eax
push str._s_s_s_s
lea ecx, [ebp - 0x8564]
push 0x2800
push ecx
call fcn.005468fa
add esp, 0x1c
lea edx, [ebp - 0x8564]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x43eb26
mov ecx, 0x5e5968
call dword [sym.imp.DuiLib_u.dll_public:_struct_HWND______thiscall_DuiLib::CWindowWnd::GetHWND_void_const]
mov edx, dword [ebp - 0x1a584]
mov dword [ebp - 0x3564], eax
lea eax, [ebp - 0x8564]
push eax
lea ecx, [ebp - 0x414]
push ecx
push edx
push 0xe
lea eax, [ebp - 0x355c]
push str.type_did_s_name_s_saveFile_s
push eax
mov dword [ebp - 0x3560], 0x402
call fcn.00546876
add esp, 0x18
mov eax, 0xcc08
lea esi, [ebp - 0xd964]
call fcn.0054a430
mov edi, esp
mov ecx, 0x3302
rep movsd dword es:[edi], dword [esi]
call fcn.004028a0
jmp 0x43eb41
lea ecx, [ebp - 0x8564]
push ecx
mov ecx, dword [ebp - 0x1a584]
lea edx, [ebp - 0x414]
push edx
mov edx, ebx
call fcn.004401a0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x1a58c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43eb67
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebx + 0x364]
mov edx, dword [ecx]
mov eax, dword [edx + 0xcc]
push 1
call eax
mov esi, dword [ebp - 0x1a580]
lea ecx, [ebp - 0xd5c]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.DuiLib_u.dll_public:_void___thiscall_DuiLib::CDialogBuilder::destructor_void_]
mov eax, dword [ebp - 0x1a57c]
add dword [ebp - 0x1a578], 0x5c
inc eax
mov dword [ebp - 0x1a57c], eax
cmp eax, esi
jl 0x43e5ae
mov ecx, dword [ebx + 0x368]
test ecx, ecx
je 0x43ebe6
cmp esi, 5
jl 0x43ebe6
cmp dword [ebx + 0x370], 0
je 0x43ebe6
mov edx, dword [ecx]
mov eax, dword [edx + 0xcc]
push 1
call eax
mov ebx, dword [ebx + 0x370]
mov edx, dword [ebx]
mov eax, dword [edx + 0xcc]
push 1
mov ecx, ebx
call eax
lea esp, [ebp - 0x1a5a4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00545eb2
mov esp, ebp
pop ebp
ret 4
call fcn.0040d700
int3