Function at 0x1000378b
Capabilities:
Accept command line arguments
Delete file
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x150
cmp dword [0x10060c14], 0xea89
jne 0x100037a7
or dword [0x10060f5c], 0x10
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
cmp esi, ebx
push edi
jne 0x10003c26
lea ecx, [ebp - 8]
mov dword [ebp - 0x14], ebx
call sub.MFC42u.DLL_CString::CString_1
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x1000380e
push 1
pop edi
cmp dword [ebp - 0x14], edi
jle 0x10003805
lea esi, [eax + 4]
push dword [esi]
lea ecx, [ebp - 8]
call sub.MFC42u.DLL_CString::operator_1
push 0x1005c874
lea ecx, [ebp - 8]
call sub.MFC42u.DLL_CString::operator_1
inc edi
add esi, 4
cmp edi, dword [ebp - 0x14]
jl 0x100037e5
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 0x10060b48
push dword [ebp - 8]
call fcn.100017ff
lea eax, [ebp - 0x18]
push ebx
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
push eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x18], ebx
call fcn.10001874
add esp, 0x1c
xor eax, eax
lea edi, [ebp - 0x14f]
mov byte [ebp - 0x150], bl
push 0x41
pop ecx
push dword [ebp - 0x18]
rep stosd dword es:[edi], eax
push dword [ebp - 0x28]
lea eax, [ebp - 0x150]
push dword [ebp - 0x24]
push dword [ebp - 0x1c]
push str._d._d._d._d
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
lea eax, [ebp - 0x150]
push eax
call sub.MSVCRT.dll_strlen
add esp, 0x1c
mov ecx, 0x10060b38
push eax
lea eax, [ebp - 0x150]
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov edi, 0xcaa
mov dword [0x10060b30], edi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.10001b81
push 0x10060b58
push dword [ebp - 0x20]
call fcn.100017ff
add esp, 0x10
lea ecx, [ebp - 0xc]
call sub.MFC42u.DLL_CString::CString_1
lea eax, [ebp - 0xc]
push eax
call fcn.10015a13
pop ecx
call fcn.1000a13a
push dword [ebp - 0xc]
mov dword [ebp - 4], eax
push 0x8c
call fcn.1001544d
push eax
call fcn.100098d2
mov al, byte [ebp + 0xb]
mov esi, dword [ebp - 0xc]
add esp, 0xc
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x38], al
push ebx
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 esi
call dword [sym.imp.MSVCRT.dll_wcslen]
pop ecx
push eax
push esi
lea ecx, [ebp - 0x38]
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_]
push dword [ebp - 4]
push 1
lea eax, [ebp - 0x38]
push eax
call fcn.1003212c
mov ecx, eax
call fcn.10032256
push 1
lea ecx, [ebp - 0x38]
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 [0x10060b28]
call fcn.1003212c
mov dword [eax + 0x18], esi
mov esi, 0x10060b28
push 0x1665
mov dword [eax + 8], edi
push esi
mov dword [eax + 0xc], ebx
call fcn.1003212c
mov ecx, eax
call fcn.1000517f
mov eax, dword [0x10060f7c]
mov dword [0x10060f78], edi
cmp eax, 5
je 0x10003974
cmp eax, 1
jne 0x100039a3
mov edi, 0x1005c864
push edi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push edi
mov ecx, 0x10060fcc
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push 0x166b
push 0x10060f70
call fcn.1003212c
mov ecx, eax
call fcn.100054ec
mov dword [ebp - 4], ebx
mov dword [ebp - 0x10], 0x10060b68
push 7
xor eax, eax
pop ecx
lea edi, [ebp - 0x47]
mov byte [ebp - 0x48], bl
push dword [ebp + 0xc]
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x10]
stosw word es:[edi], ax
stosb byte es:[edi], al
call fcn.1000986f
lea eax, [ebp - 0x48]
push 0xa
push eax
push dword [ebp - 4]
call dword [sym.imp.MSVCRT.dll__itoa]
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
add esp, 0x10
mov ecx, 0x10060b48
push eax
push edi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push 0x1665
push esi
call fcn.1003212c
mov ecx, eax
call fcn.1000517f
push 0x20
lea eax, [ebp - 0x48]
push ebx
push eax
call sub.MSVCRT.dll_memset
add dword [ebp - 0x10], 0x28
add esp, 0xc
inc dword [ebp - 4]
cmp dword [ebp - 0x10], 0x10060c08
jb 0x100039ad
mov edi, 0x1005c860
push edi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push edi
mov ecx, 0x10060b38
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push 0x1665
push esi
call fcn.1003212c
mov ecx, eax
call fcn.1000517f
push 0x10061018
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebp + 0xc]
push eax
call fcn.10014742
lea ecx, [ebp + 0xc]
mov dword [esp], 0x1005c838
call sub.MFC42u.DLL_CString::operator_1
mov esi, 0x1005c834
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
mov ecx, 0x10060fcc
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push dword [ebp + 0xc]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edi, str.QQPCDownload
push ebx
push str.DoDownloadReuslt
push edi
call esi
push dword [ebp + 0xc]
mov dword [0x10060f94], eax
push ebx
push str.DoInStallPackVer
push edi
call esi
push dword [ebp + 0xc]
mov dword [0x10060f98], eax
push ebx
push str.DoDownloadVer
push edi
call esi
push dword [ebp + 0xc]
mov dword [0x10060f9c], eax
push ebx
push str.DoDownloadType
push edi
call esi
push dword [ebp + 0xc]
mov dword [0x10060f88], eax
push ebx
push str.DoServerEnableInstall
push edi
call esi
push dword [ebp + 0xc]
mov dword [0x10060fe4], eax
push ebx
push str.DoIsShowTips
push edi
call esi
push dword [ebp + 0xc]
mov dword [0x10060fa0], eax
push ebx
push str.DoErrDetail
push edi
call esi
push dword [ebp + 0xc]
mov dword [0x10060fb4], eax
push ebx
push str.DoIsInStallNow
push edi
call esi
push dword [ebp + 0xc]
mov dword [0x10060fa4], eax
push ebx
push str.DoRetryDownloadTimes
push edi
call esi
push dword [ebp + 0xc]
mov dword [0x10060fa8], eax
push ebx
push str.DoRetryInstallTimes
push edi
call esi
push dword [ebp + 0xc]
mov dword [0x10060fac], eax
push ebx
push str.DoErrorCode
push edi
call esi
push dword [ebp + 0xc]
mov dword [0x10060fb0], eax
push ebx
push str.QQPCMgrPacketType
push edi
call esi
push dword [ebp + 0xc]
mov dword [0x1006100c], eax
push ebx
push str.IsRunQQPCMgr
push edi
call esi
test eax, eax
je 0x10003b75
or dword [0x10060f8c], 4
push dword [ebp + 0xc]
push ebx
push str.RunQQPCMgrErrorCode
push edi
call esi
mov dword [0x10060fb8], eax
call fcn.10002387
test eax, eax
je 0x10003b99
mov dword [0x10060fe8], 1
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp + 0xc]
call sub.MFC42u.DLL_CString::CString
push 0x10061018
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x166b
mov edi, 0x10060f70
push esi
push edi
call fcn.1003212c
mov ecx, eax
call fcn.100054ec
push esi
push edi
call fcn.1003212c
mov ecx, eax
call fcn.100054ec
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
push edi
call fcn.1003212c
mov ecx, eax
call fcn.100054ec
push esi
push edi
call fcn.1003212c
mov ecx, eax
call fcn.100054ec
lea ecx, [ebp - 0xc]
mov dword [ebp + 0xc], 1
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x20]
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 8]
call sub.MFC42u.DLL_CString::CString
mov esi, dword [ebp + 8]
jmp 0x10003c4a
cmp esi, 5
jae 0x10003c47
cmp esi, 1
jl 0x10003c47
push dword [ebp + 0xc]
lea eax, [esi + esi*4]
lea ecx, [eax*8 + 0x10060b40]
call fcn.1000986f
mov dword [ebp + 0xc], eax
jmp 0x10003c4a
mov dword [ebp + 0xc], ebx
mov ecx, dword [0x10060c1c]
cmp ecx, ebx
je 0x10003c71
mov eax, dword [ecx]
push 0xffffffffffffffff
call dword [eax + 4]
mov ecx, dword [0x10060c1c]
cmp ecx, ebx
je 0x10003c6b
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [0x10060c1c], ebx
xor edi, edi
call fcn.1003212c
mov ecx, eax
call fcn.100328d9
test eax, eax
jne 0x10003c89
inc edi
cmp edi, 0xa
jl 0x10003c73
cmp dword [0x10060c10], ebx
je 0x10003ca6
cmp esi, ebx
jne 0x10003ca6
cmp dword [0x100610b4], ebx
jne 0x10003ca6
push ebx
push ebx
call fcn.100021ab
pop ecx
pop ecx
mov eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
leave
ret 8