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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5741b6
mov eax, dword fs:[0]
push eax
mov eax, 0xd48c
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
push 0x3ff
lea eax, [ebp - 0x40f]
mov edi, ecx
push 0
push eax
mov dword [ebp - 0xd438], edi
mov esi, edx
mov dword [ebp - 0xd440], 1
mov byte [ebp - 0x410], 0
call fcn.00549e40
lea ecx, [ebp - 0x410]
add esp, 0xc
push ecx
call fcn.00404dc0
add esp, 4
push str.cooperationacctilelayout
lea ecx, [edi + 0x2c]
call dword [sym.imp.DuiLib_u.dll_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CPaintManagerUI::FindControl_wchar_t_const__const]
mov edi, eax
push esi
lea ecx, [ebp - 0xd498]
mov dword [ebp - 0xd44c], edi
call fcn.005627e0
push 0
lea ecx, [ebp - 0xd498]
mov dword [ebp - 4], 0
call fcn.00563740
test al, al
je 0x428b6b
test edi, edi
je 0x428b6b
lea ecx, [ebp - 0xd498]
call fcn.00561e40
mov ecx, eax
call fcn.00561e40
mov dword [ebp - 0xd424], eax
test eax, eax
je 0x428b6b
mov ecx, eax
jmp 0x428426
mov ecx, dword [ebp - 0xd424]
mov eax, dword [ecx + 0x20]
mov edx, str.data
add eax, 8
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x428451
test bl, bl
je 0x42844d
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x428451
add eax, 2
add edx, 2
test bl, bl
jne 0x428431
xor eax, eax
jmp 0x428456
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x428b52
call fcn.00561e40
mov dword [ebp - 0xd434], eax
test eax, eax
je 0x428b52
mov ebx, dword [ebp - 0xd434]
mov eax, dword [ebx + 0x20]
mov ecx, str.item
add eax, 8
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4284a2
test dl, dl
je 0x42849e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4284a2
add eax, 2
add ecx, 2
test dl, dl
jne 0x428482
xor eax, eax
jmp 0x4284a7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x428b39
call fcn.004457a5
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x428bbf
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0xd420], eax
mov esi, dword [ebp - 0xd440]
push esi
lea ecx, [ebp - 0xd420]
push str.thirdloginbtn_d
push ecx
mov byte [ebp - 4], 1
call fcn.0040cb10
add esp, 0xc
inc esi
push 0x958
mov dword [ebp - 0xd440], esi
call fcn.00444c55
mov esi, eax
add esp, 4
mov dword [ebp - 0xd430], esi
mov byte [ebp - 4], 2
test esi, esi
je 0x42852e
mov ecx, esi
call dword [sym.imp.DuiLib_u.dll_public:_void___thiscall_DuiLib::CButtonUI::constructor_void_]
mov dword [esi], vtable.DuiLib::CButtonUI.0
mov dword [ebp - 0xd42c], esi
jmp 0x42853e
mov dword [ebp - 0xd42c], 0
mov esi, dword [ebp - 0xd42c]
mov byte [ebp - 4], 1
call fcn.004457a5
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x428bbf
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0xd41c], eax
lea ecx, [ebp - 0x410]
mov byte [ebp - 4], 3
test ecx, 0xffff0000
jne 0x428598
mov edx, ecx
movzx edi, dx
push edi
call fcn.00445d6e
test eax, eax
je 0x4285aa
push edi
push eax
lea ecx, [ebp - 0xd41c]
call fcn.0040cd20
jmp 0x4285aa
lea eax, [ebp - 0x410]
push eax
lea ecx, [ebp - 0xd41c]
call fcn.0040d2c0
mov byte [ebp - 4], 4
mov edi, dword [ebp - 0xd41c]
push edi
mov ecx, esi
call dword [sym.imp.DuiLib_u.dll_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CControlUI::ApplyAttributeList_wchar_t_const__]
lea eax, [edi - 0x10]
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4285dd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esi]
mov eax, dword [ebp - 0xd420]
mov edx, dword [edx + 8]
push eax
mov ecx, esi
call edx
mov ecx, dword [ebp - 0xd44c]
mov eax, dword [ecx + 0x4a0]
mov edx, dword [eax + 0x10]
add ecx, 0x4a0
push esi
call edx
mov ecx, ebx
call fcn.00561e40
mov dword [ebp - 0xd41c], eax
test eax, eax
je 0x428b13
lea ebx, [ebx]
mov edi, dword [ebp - 0xd41c]
mov esi, dword [edi + 0x20]
add esi, 8
mov ecx, 0x5a53f8
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x428653
test dl, dl
je 0x42864f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x428653
add eax, 2
add ecx, 2
test dl, dl
jne 0x428633
xor eax, eax
jmp 0x428658
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x42869a
mov ecx, edi
call fcn.00561f30
lea ecx, [ebp - 0xd444]
push ecx
mov ebx, eax
call fcn.004046c0
add esp, 4
mov ecx, dword [ebp - 0xd42c]
mov byte [ebp - 4], 5
mov eax, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0xbc]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0xd444]
jmp 0x428ae2
mov ecx, str.title
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4286c1
test dl, dl
je 0x4286bd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4286c1
add eax, 2
add ecx, 2
test dl, dl
jne 0x4286a1
xor eax, eax
jmp 0x4286c6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x428705
mov ecx, edi
call fcn.00561f30
lea ecx, [ebp - 0xd448]
push ecx
mov ebx, eax
call fcn.004046c0
add esp, 4
mov ecx, dword [ebp - 0xd42c]
mov byte [ebp - 4], 6
mov eax, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x2c]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0xd448]
jmp 0x428ae2
mov ecx, str.icon
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x428730
test dl, dl
je 0x42872c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x428730
add eax, 2
add ecx, 2
test dl, dl
jne 0x428710
xor eax, eax
jmp 0x428735
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x428afe
mov ecx, edi
call fcn.00561f30
lea ecx, [ebp - 0xd428]
push ecx
mov ebx, eax
call fcn.004046c0
add esp, 4
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0xd428]
cmp dword [edx - 0xc], 0
je 0x428ad8
push 0x3ff
lea eax, [ebp - 0x80f]
push 0
push eax
mov byte [ebp - 0x810], 0
call fcn.00549e40
add esp, 0xc
push 1
push 0x1c
lea ecx, [ebp - 0x810]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov esi, dword [ebp - 0xd428]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xd430], esp
mov edi, esp
call eax
cmp dword [esi - 4], 0
lea edx, [esi - 4]
jl 0x4287ce
cmp eax, dword [esi - 0x10]
jne 0x4287ce
lea ebx, [esi - 0x10]
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x428806
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x428bc9
mov eax, dword [esi - 0xc]
mov dword [ebx + 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, [ebx + 0x10]
push eax
call fcn.0054703f
add esp, 0x10
add ebx, 0x10
lea esi, [ebp - 0xd43c]
mov dword [edi], ebx
call fcn.004045e0
add esp, 4
lea esi, [ebp - 0xd418]
mov byte [ebp - 4], 8
call fcn.00403050
mov eax, dword [ebp - 0xd428]
mov dword [ebp - 0xd418], 0x544547
mov edi, eax
test eax, eax
je 0x42887b
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x42887b
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0054bbf0
mov esi, esp
test esi, esi
je 0x42887b
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 0x42887d
xor eax, eax
lea edx, [ebp - 0xd018]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x428885
mov eax, dword [ebp - 0xd43c]
mov edi, eax
test eax, eax
jne 0x4288a3
mov dword [ebp - 0xd430], eax
jmp 0x4288e8
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x4288e0
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0054bbf0
mov esi, esp
test esi, esi
je 0x4288e0
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 0x4288e2
xor eax, eax
mov dword [ebp - 0xd430], eax
push 0x5a56b0
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x42892f
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0054bbf0
mov esi, esp
test esi, esi
je 0x42892f
push 0
push 0
push ebx
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 edi, eax
jmp 0x428931
xor edi, edi
push str.1905Cache1
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x428976
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0054bbf0
mov esi, esp
test esi, esi
je 0x428976
push 0
push 0
push ebx
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 0x428978
xor eax, eax
mov ecx, dword [ebp - 0xd430]
push ecx
push edi
push eax
lea edx, [ebp - 0x810]
push edx
push str._s_s_s_s
lea eax, [ebp - 0x8018]
push 0x2800
push eax
call fcn.005468fa
add esp, 0x1c
lea ecx, [ebp - 0x8018]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
mov edi, dword [ebp - 0xd420]
test eax, eax
jne 0x428a56
mov edx, dword [ebp - 0xd438]
mov eax, dword [edx + 4]
mov dword [ebp - 0x3018], eax
mov dword [ebp - 0x3014], 0x402
test edi, edi
je 0x428a16
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x428a16
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0054bbf0
mov esi, esp
test esi, esi
je 0x428a16
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 0x428a18
xor eax, eax
lea ecx, [ebp - 0x8018]
push ecx
push eax
push 0x1f
lea edx, [ebp - 0x3010]
push str.type_dname_s_saveFile_s
push edx
call fcn.00546876
add esp, 0x14
mov eax, 0xcc08
lea esi, [ebp - 0xd418]
call fcn.0054a430
mov edi, esp
mov ecx, 0x3302
rep movsd dword es:[edi], dword [esi]
call fcn.004028a0
jmp 0x428aac
test edi, edi
je 0x428a97
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x428a97
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0054bbf0
mov esi, esp
test esi, esi
je 0x428a97
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 0x428a99
xor eax, eax
push eax
mov eax, dword [ebp - 0xd438]
push eax
lea ecx, [ebp - 0x8018]
call fcn.00428c00
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0xd43c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x428ad2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp - 0xd41c]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0xd428]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x428afe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, edi
call fcn.00561e70
mov dword [ebp - 0xd41c], eax
test eax, eax
jne 0x428620
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0xd420]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x428b39
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0xd434]
call fcn.00561e70
mov dword [ebp - 0xd434], eax
test eax, eax
jne 0x428471
mov ecx, dword [ebp - 0xd424]
call fcn.00561e70
mov dword [ebp - 0xd424], eax
test eax, eax
jne 0x428420
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xd464]
mov dword [ebp - method.TiXmlDocument.virtual_0], vtable.TiXmlDocument.0
cmp eax, 0x5e4810
je 0x428b92
push eax
call fcn.00444c84
add esp, 4
lea ecx, [ebp - 0xd498]
call fcn.005624c0
lea esp, [ebp - 0xd4a8]
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
push 0x80004005
call fcn.0040d6e0
call fcn.0040d700
int3