Function at 0x43d240
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ce6d0
mov eax, dword fs:[0]
push eax
sub esp, 0x48
push ebx
push esi
push edi
mov eax, dword [0x528f34]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
xor ebx, ebx
cmp esi, ebx
je 0x43d298
push esi
lea ecx, [ebp - 0x10]
call sym.QQProtectUpd.exe_public:_void___thiscall_CTXStringW::constructor_wchar_t_const__
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], ebx
call sym.QQProtectUpd.exe_public:_int___thiscall_CTXStringW::GetLength_void_const
cmp eax, ebx
lea ecx, [ebp - 0x10]
jg 0x43d2ac
mov dword [ebp - 4], 0xffffffff
call sym.QQProtectUpd.exe_public:_void___thiscall_CTXStringW::destructor_void_
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edi, [eax - 1]
push edi
call sym.QQProtectUpd.exe_public:_wchar_t___thiscall_CTXStringW::GetAt_int_const
cmp ax, 0x5c
jne 0x43d2c6
push 1
push edi
lea ecx, [ebp - 0x10]
call sym.QQProtectUpd.exe_public:_int___thiscall_CTXStringW::Delete_int__int_
lea ecx, [ebp - 0x10]
call sym.QQProtectUpd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edi, eax
cmp edi, 0xffffffff
je 0x43d2e8
test edi, 0x10
jne 0x43d437
mov esi, dword [ebp + 0xc]
push esi
push str.CheckDirectory_CreateIfNotExist:__d
push str.QPUPDATE
push 2
push str.WinFS::CheckDirectory
push 0x290
push str.F:_svn_codeQPUpd_v137SourceUtilAppUitl.cpp
call fcn.00442b40
add esp, 0x1c
cmp esi, ebx
lea ecx, [ebp - 0x10]
je 0x43d28c
push 0x5c
call sym.QQProtectUpd.exe_public:_int___thiscall_CTXStringW::ReverseFind_wchar_t_const
cmp eax, 0xffffffff
jne 0x43d3b8
mov dword [ebp + 8], str.CheckDirectory__not_found
mov dword [ebp - 0x20], str.F:_svn_codeQPUpd_v137SourceUtilAppUitl.cpp
mov dword [ebp - 0x1c], str.WinFS::CheckDirectory
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x4c], 0x297
mov dword [ebp - 0x48], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x50], 2
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x34]
push eax
mov dword [ebp - 0x3c], ebx
call dword [sym.imp.MSVCR80.dll__time64]
lea ecx, [ebp + 8]
push ecx
push 0x4dd0ec
lea edx, [ebp - 0x54]
push str.QPUPDATE
push edx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
call sym.QQProtectUpd.exe_void___cdecl_TXLog_DoTXLogVW_struct_tagLogObj___wchar_t_const___wchar_t_const___char__
add esp, 0x14
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call sym.QQProtectUpd.exe_public:_void___thiscall_CTXStringW::destructor_void_
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push eax
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x10]
call sym.QQProtectUpd.exe_public:_class_CTXStringW___thiscall_CTXStringW::Left_int_
push esi
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 1
call sym.QQProtectUpd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
call fcn.0043d240
add esp, 8
push ebx
lea ecx, [ebp - 0x10]
call sym.QQProtectUpd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x43d429
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CheckDirectory__CreateDirectory_error:__u
push str.QPUPDATE
push 2
push str.WinFS::CheckDirectory
push 0x2a0
push str.F:_svn_codeQPUpd_v137SourceUtilAppUitl.cpp
call fcn.00442b40
add esp, 0x1c
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], bl
call sym.QQProtectUpd.exe_public:_void___thiscall_CTXStringW::destructor_void_
jmp 0x43d395
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], bl
call sym.QQProtectUpd.exe_public:_void___thiscall_CTXStringW::destructor_void_
mov esi, dword [ebp + 8]
push esi
push edi
push str.CheckDirectory_ok:__u___s
push str.QPUPDATE
push 2
push str.WinFS::CheckDirectory
push 0x2a5
push str.F:_svn_codeQPUpd_v137SourceUtilAppUitl.cpp
call fcn.00442b40
add esp, 0x20
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call sym.QQProtectUpd.exe_public:_void___thiscall_CTXStringW::destructor_void_
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret