Function at 0x10023c46
Capabilities:
Check if file exists
Delete file

Disassembly:
mov eax, 0x1004a33c
call fcn.100464e0
sub esp, 0x2ac
push ebx
push esi
push edi
call fcn.1000149b
mov al, byte [ebp + 0x13]
xor ebx, ebx
push ebx
lea ecx, [ebp - 0x44]
mov byte [ebp - 0x44], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov esi, dword [sym.imp.MSVCRT.dll_wcslen]
mov edi, 0x1005c874
push edi
call esi
pop ecx
push eax
push edi
lea ecx, [ebp - 0x44]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::assign_unsigned_short_int_const___unsigned_int_]
lea eax, [ebp - 0x44]
lea ecx, [ebp - 0x68]
push eax
lea eax, [ebp - 0x1f]
push eax
push 0x1005c1c0
mov dword [ebp - 4], ebx
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
push eax
lea eax, [ebp - 0x1d]
push eax
push 0x1005dc74
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 1
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
push eax
lea eax, [ebp - 0x1e]
sub esp, 0x10
mov byte [ebp - 4], 2
mov ecx, esp
mov dword [ebp - 0x34], esp
push eax
push dword [ebp + 0x10]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea ecx, [ebp - 0xac]
call fcn.100292c3
push 1
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 6
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 5
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
push 1
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov dword [ebp - 0x18], ebx
call fcn.10015de5
mov dword [ebp + 0x10], eax
mov al, byte [ebp + 0x13]
push ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x30], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov edi, str.operator
push edi
call esi
pop ecx
push eax
push edi
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::assign_unsigned_short_int_const___unsigned_int_]
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0xac]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x30]
push eax
mov byte [ebp - 4], 7
call fcn.10024f10
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov al, byte [ebp + 0x13]
push ebx
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x14], ebx
mov byte [ebp - 0x30], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov edi, str.supplyid
push edi
call esi
pop ecx
push eax
push edi
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::assign_unsigned_short_int_const___unsigned_int_]
lea eax, [ebp - 0x14]
lea ecx, [ebp - 0xac]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x30]
push eax
mov byte [ebp - 4], 8
call fcn.10024f10
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x10023dcf
mov cl, byte [ebp - 0x18]
mov dword [eax + 0xc], 0xcaa
mov byte [eax], cl
mov ecx, dword [ebp - 0x14]
mov dword [eax + 4], ecx
call fcn.10015e37
mov ecx, eax
cmp ecx, ebx
mov dword [ebp - 0x10], ecx
je 0x1002409e
push dword [ebp - 0x14]
call fcn.1002308b
mov ecx, 0x82
xor eax, eax
lea edi, [ebp - 0x2b6]
mov word [ebp - 0x2b8], bx
rep stosd dword es:[edi], eax
mov eax, dword [0x100610b4]
cmp eax, ebx
jne 0x10023e22
push dword [ebp - 0x14]
lea eax, [ebp - 0x2b8]
push str.QQPCDownloader_PropData__d
push eax
call dword [sym.imp.MSVCRT.dll_swprintf]
add esp, 0xc
jmp 0x10023e3b
push eax
lea eax, [ebp - 0x2b8]
push dword [ebp - 0x14]
push str.QQPCDownloader_PropData__d__d
push eax
call dword [sym.imp.MSVCRT.dll_swprintf]
add esp, 0x10
lea eax, [ebp - 0x2b8]
push eax
call fcn.100223a2
mov edi, eax
pop ecx
cmp edi, ebx
je 0x10023e97
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x10023e97
cmp dword [ebp - 0x18], 2
jne 0x10023e6d
call fcn.100232ac
push ebx
push ebx
push 0x80fa
jmp 0x10023e83
cmp dword [ebp - 0x18], 3
jne 0x1002409e
call fcn.100232ac
push ebx
push ebx
push 0x80fb
push edi
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, dword [ebp - 0x10]
call fcn.1002336d
jmp 0x1002409e
mov eax, dword [ebp - 0x18]
cmp eax, 1
jne 0x10023ec3
call fcn.100232ac
mov esi, dword [ebp - 0x10]
mov ecx, esi
call fcn.100226f5
test eax, eax
je 0x1002409e
mov ecx, esi
call fcn.10023158
push ebx
jmp 0x10024073
cmp eax, 2
jne 0x10023f0a
mov edi, dword [ebp - 0x10]
mov ecx, edi
call fcn.100226f5
call fcn.100232ac
call fcn.10015de5
mov esi, eax
cmp esi, ebx
je 0x10023ee6
mov byte [esi + 2], 1
mov ecx, edi
call fcn.1002245c
cmp esi, ebx
je 0x10023ef7
mov al, byte [edi + 0xc]
mov byte [esi + 1], al
mov ecx, edi
call fcn.1002336d
mov ecx, edi
call fcn.1002279f
jmp 0x1002409e
cmp eax, 3
jne 0x10024056
call fcn.100232ac
mov eax, dword [0x10061030]
mov dword [ebp - 0x1c], eax
call fcn.10015de5
mov edi, eax
cmp edi, ebx
je 0x10023f35
mov al, byte [ebp - 0x1c]
mov byte [edi + 2], 4
mov byte [edi + 1], al
push ebx
push 0x10061098
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
cmp eax, 1
jne 0x10023f6b
cmp edi, ebx
je 0x10023f4e
mov byte [edi + 3], 0x11
mov edi, 0x10061018
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push edi
mov dword [0x10060f80], 0x11
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp - 0x2c]
call fcn.1001bfa9
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 9
call fcn.1001c21e
mov ecx, dword [ebp - 0x10]
call fcn.10023158
push 0x10060aec
lea ecx, [ebp + 0x10]
call sub.MFC42u.DLL_CString::CString_2
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 0xa
push eax
call fcn.10014742
pop ecx
push eax
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0xb
call fcn.100460f4
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0xa
call sub.MFC42u.DLL_CString::CString
lea eax, [ebp + 0x10]
push eax
call fcn.10023289
lea ecx, [ebp + 0x10]
mov dword [esp], str.Download_
call sub.MFC42u.DLL_CString::operator_1
lea ecx, [ebp + 0x10]
call fcn.100026db
sub esp, 0x10
mov dword [ebp - 0x1c], eax
mov al, byte [ebp + 0x13]
mov edi, esp
mov dword [ebp - 0x48], esp
push ebx
mov ecx, edi
mov byte [edi], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
push dword [ebp - 0x1c]
call esi
pop ecx
push eax
mov ecx, edi
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::assign_unsigned_short_int_const___unsigned_int_]
call fcn.10001682
add esp, 0x10
lea ecx, [ebp + 0x10]
push str.QQPCDownload.exe
call sub.MFC42u.DLL_CString::operator_1
push dword [ebp + 0x10]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10024034
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp - 0x10]
call fcn.1002336d
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 9
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
call fcn.1001c0ac
jmp 0x1002409e
cmp eax, 4
jne 0x1002409e
call fcn.100232ac
mov esi, dword [ebp - 0x10]
mov ecx, esi
call fcn.100226f5
mov ecx, esi
call fcn.10023158
push 1
mov ecx, esi
call fcn.100235ea
mov ecx, esi
call fcn.1002279f
mov ecx, esi
call fcn.10023c37
test eax, eax
je 0x10024093
push 0x12c
jmp 0x10024098
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac]
call fcn.100293e5
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
leave
ret 0x10