Function at 0x4f3050
Capabilities:
Accept command line arguments
Check for time delay via gettickcount
Check if file exists
Check mutex on windows
Check os version
Delete file
Extract resource via kernel32 functions
Get common file path
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x501504
mov eax, dword fs:[0]
push eax
sub esp, 0x8e4
mov eax, dword [0x54eb90]
xor eax, ebp
mov dword [ebp - 0x18], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x7e0], ecx
mov dword [ebp - 0x7dc], 0
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ecx, dword [ebp - 0x7e0]
mov dword [ecx + 0x280], eax
cmp dword [0x552fb0], 1
jle 0x4f3249
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x4c8], eax
lea ecx, [ebp - 0x4c4]
call fcn.004f9860
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x4c8]
push edx
lea ecx, [ebp - 0x4c4]
call fcn.004f99a0
push str.uinst
lea ecx, [ebp - 0x4c4]
call fcn.004f95b0
test eax, eax
je 0x4f3101
mov eax, dword [ebp - 0x7e0]
mov dword [eax + 0x10c], 0
push 0x51b72c
lea ecx, [ebp - 0x4c4]
call fcn.004f95b0
test eax, eax
je 0x4f3125
mov ecx, dword [ebp - 0x7e0]
mov dword [ecx + 0x110], 1
push 0x51b730
lea ecx, [ebp - 0x4c4]
call fcn.004f95b0
test eax, eax
je 0x4f3159
mov edx, dword [ebp - 0x7e0]
mov dword [edx + 0x114], 1
mov eax, dword [ebp - 0x7e0]
mov dword [eax + 0x10c], 1
push 0x51b740
lea ecx, [ebp - 0x4c4]
call fcn.004f95b0
mov dword [ebp - 0x490], eax
cmp dword [ebp - 0x490], 0
je 0x4f3197
push 0
mov ecx, dword [ebp - 0x490]
call fcn.004f9570
push eax
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x274
call fcn.00403800
push 0x51b744
lea ecx, [ebp - 0x4c4]
call fcn.004f95b0
mov dword [ebp - 0x490], eax
cmp dword [ebp - 0x490], 0
je 0x4f31d5
push 0
mov ecx, dword [ebp - 0x490]
call fcn.004f9570
push eax
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x104
call fcn.00403800
push str.setuplog
lea ecx, [ebp - 0x4c4]
call fcn.004f95b0
mov dword [ebp - 0x490], eax
cmp dword [ebp - 0x490], 0
je 0x4f3213
push 0
mov ecx, dword [ebp - 0x490]
call fcn.004f9570
push eax
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x108
call fcn.00403800
push str.deleteuserdata
lea ecx, [ebp - 0x4c4]
call fcn.004f95b0
test eax, eax
je 0x4f3237
mov ecx, dword [ebp - 0x7e0]
mov dword [ecx + 0x11c], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4c4]
call fcn.004f97f0
mov edx, dword [ebp - 0x7e0]
cmp dword [edx + 0x114], 0
jne 0x4f3316
push str.Mutex_QiyiInstaller
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov ecx, dword [ebp - 0x7e0]
mov dword [ecx + 0x270], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4f3316
push ecx
mov ecx, esp
mov dword [ebp - 0x718], esp
push 0x51b7b0
call fcn.00403820
mov dword [ebp - 0x7e4], eax
mov ecx, 0x553e48
call fcn.004f2090
push 0x51b7dc
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_FindWindowExW]
mov dword [ebp - 0x4cc], eax
mov edx, dword [ebp - 0x4cc]
push edx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4f330f
mov dword [ebp - 0x4d4], 0
mov dword [ebp - 0x4d8], 0xa
mov dword [ebp - 0x4d0], 0
lea eax, [ebp - 0x4d8]
push eax
push 0
push 0x4a
mov ecx, dword [ebp - 0x4cc]
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x4dc], eax
xor eax, eax
jmp 0x4f4931
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebp - 0x7e0]
mov dword [edx + 0x258], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 0x7e0]
mov dword [ecx + 0x25c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebp - 0x7e0]
mov dword [edx + 0x260], eax
mov eax, dword [ebp - 0x7e0]
add eax, 0x294
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x10], eax
push 0x58
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
test eax, eax
jle 0x4f339b
push 0x58
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov ecx, eax
mov eax, 0x3c0
cdq
idiv ecx
mov edx, dword [ebp - 0x7e0]
mov dword [edx + 0x140], eax
push 0x58
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [0x553e04], eax
push 0x5a
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [0x553e00], eax
mov edx, dword [ebp - 0x10]
push edx
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
push 0x51b7f0
push 0
call fcn.004bfc4c
add esp, 8
mov dword [ebp - 0x470], 8
mov dword [ebp - 0x46c], 0xff
lea eax, [ebp - 0x470]
push eax
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
lea ecx, [ebp - 0x71c]
push ecx
mov ecx, dword [ebp - 0x7e0]
call fcn.004f24b0
mov dword [ebp - 0x7e8], eax
mov edx, dword [ebp - 0x7e8]
mov dword [ebp - 0x7ec], edx
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0x7ec]
push eax
mov ecx, 0x553f48
call fcn.00402e60
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x71c]
call fcn.00402e80
push 0
call fcn.004a1fdf
add esp, 4
mov ecx, dword [ebp - 0x7e0]
call fcn.004f1850
mov ecx, dword [ebp - 0x7e0]
call fcn.004f17d0
push 0x104
push 0x104
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xb8
call fcn.004035b0
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xb8
call fcn.00405f20
push 0
push 0x19
push 0x104
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xb0
call fcn.004035b0
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xb0
call fcn.00405f20
push 0
push 0
push 0x104
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xb4
call fcn.004035b0
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xb4
call fcn.00405f20
push 0
push 2
push 0x104
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xe0
call fcn.004035b0
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xe0
call fcn.00405f20
push 0
push 0x17
push 0x104
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xcc
call fcn.004035b0
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xcc
call fcn.00405f20
push 0x104
push 0x104
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xd4
call fcn.004035b0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xd4
call fcn.00405f20
push 0
push 0x14
push 0x104
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xc4
call fcn.004035b0
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xc4
call fcn.00405f20
push 0x5c
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xd4
call fcn.00404020
add eax, 1
push eax
lea ecx, [ebp - 0x720]
push ecx
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xd4
call fcn.004041b0
mov dword [ebp - 0x7f0], eax
mov edx, dword [ebp - 0x7f0]
mov dword [ebp - 0x7f4], edx
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0x7f4]
push eax
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xbc
call fcn.00402e60
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x720]
call fcn.00402e80
push 0
push 0x1a
push 0x104
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xd8
call fcn.004035b0
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xd8
call fcn.00405f20
push 0x104
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xdc
call fcn.004035b0
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xdc
call fcn.00405f20
push 1
lea ecx, [ebp - 0x728]
push ecx
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xdc
call fcn.00404120
mov dword [ebp - 0x7f8], eax
push 0x51b7f4
mov edx, dword [ebp - 0x7f8]
push edx
call fcn.004043d0
add esp, 8
mov byte [ebp - 0x721], al
lea ecx, [ebp - 0x728]
call fcn.00402e80
movzx eax, byte [ebp - 0x721]
test eax, eax
je 0x4f3724
push 0x51b7f8
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xdc
call fcn.00403d40
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xdc
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call fcn.004e0ff0
push 0x51b7fc
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xd8
push ecx
lea edx, [ebp - 0x72c]
push edx
call fcn.00404230
add esp, 0xc
mov dword [ebp - 0x7fc], eax
mov eax, dword [ebp - 0x7fc]
mov dword [ebp - 0x800], eax
mov dword [ebp - 4], 3
mov ecx, dword [ebp - 0x800]
push ecx
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xa8
call fcn.00402e60
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x72c]
call fcn.00402e80
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xa8
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call fcn.004e0ff0
call fcn.004038f0
mov dword [ebp - 0x480], eax
mov edx, dword [ebp - 0x7e0]
add edx, 0x144
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x4f3aa3
mov eax, dword [ebp - 0x7e0]
cmp dword [eax + 0x148], 6
jae 0x4f393a
push 0x51b818
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x138
call fcn.00403800
push 0
push 0x23
lea ecx, [ebp - 0x6e4]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea edx, [ebp - 0x6e4]
push edx
lea ecx, [ebp - 0x6e8]
call fcn.00403820
mov dword [ebp - 4], 4
push str.QiYi
lea eax, [ebp - 0x6e8]
push eax
lea ecx, [ebp - 0x730]
push ecx
call fcn.00404230
add esp, 0xc
mov dword [ebp - 0x804], eax
mov edx, dword [ebp - 0x804]
mov dword [ebp - 0x808], edx
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x808]
push eax
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xac
call fcn.00402e60
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x730]
call fcn.00402e80
mov ecx, dword [ebp - 0x7e0]
cmp dword [ecx + 0x148], 5
jne 0x4f38fe
mov edx, dword [ebp - 0x7e0]
cmp dword [edx + 0x14c], 1
jne 0x4f38bf
push str.windowsXP
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x13c
call fcn.00403800
jmp 0x4f38fc
mov eax, dword [ebp - 0x7e0]
cmp dword [eax + 0x14c], 2
jne 0x4f38e6
push str.windows2003
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x13c
call fcn.00403800
jmp 0x4f38fc
push str.windows2000
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x13c
call fcn.00403800
jmp 0x4f3923
mov ecx, dword [ebp - 0x7e0]
cmp dword [ecx + 0x148], 5
jae 0x4f3923
push str.windows98
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x13c
call fcn.00403800
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6e8]
call fcn.00402e80
jmp 0x4f3aa3
push 0x51b884
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x138
call fcn.00403800
push 0x104
lea edx, [ebp - 0x6e4]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea eax, [ebp - 0x6e4]
push eax
lea ecx, [ebp - 0x6ec]
call fcn.00403820
mov dword [ebp - 4], 6
push 2
lea ecx, [ebp - 0x734]
push ecx
lea ecx, [ebp - 0x6ec]
call fcn.004041b0
mov dword [ebp - 0x80c], eax
mov edx, dword [ebp - 0x80c]
mov dword [ebp - 0x810], edx
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x810]
push eax
lea ecx, [ebp - 0x6ec]
call fcn.00402e60
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x734]
call fcn.00402e80
push str.UsersPublicQiYi
lea ecx, [ebp - 0x6ec]
push ecx
lea edx, [ebp - 0x738]
push edx
call fcn.00404230
add esp, 0xc
mov dword [ebp - 0x814], eax
mov eax, dword [ebp - 0x814]
mov dword [ebp - 0x818], eax
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x818]
push ecx
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xac
call fcn.00402e60
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x738]
call fcn.00402e80
mov edx, dword [ebp - 0x7e0]
cmp dword [edx + 0x148], 6
jne 0x4f3a91
mov eax, dword [ebp - 0x7e0]
cmp dword [eax + 0x14c], 1
jne 0x4f3a54
push str.windows7
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x13c
call fcn.00403800
jmp 0x4f3a91
mov ecx, dword [ebp - 0x7e0]
cmp dword [ecx + 0x14c], 2
jne 0x4f3a7b
push str.windows8
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x13c
call fcn.00403800
jmp 0x4f3a91
push str.windows_Vista
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x13c
call fcn.00403800
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6ec]
call fcn.00402e80
push 0x51b8fc
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x138
call fcn.00403800
push str.install.ini
mov edx, dword [ebp - 0x7e0]
add edx, 0xbc
push edx
lea eax, [ebp - 0x73c]
push eax
call fcn.00404230
add esp, 0xc
mov dword [ebp - 0x81c], eax
mov ecx, dword [ebp - 0x81c]
mov dword [ebp - 0x820], ecx
mov dword [ebp - 4], 9
mov edx, dword [ebp - 0x820]
push edx
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xc0
call fcn.00402e60
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x73c]
call fcn.00402e80
push 0x51b91c
mov eax, dword [ebp - 0x7e0]
add eax, 0xbc
push eax
lea ecx, [ebp - 0x740]
push ecx
call fcn.00404230
add esp, 0xc
mov dword [ebp - 0x824], eax
mov edx, dword [ebp - 0x824]
mov dword [ebp - 0x828], edx
mov dword [ebp - 4], 0xa
mov eax, dword [ebp - 0x828]
push eax
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xd0
call fcn.00402e60
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x740]
call fcn.00402e80
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xc0
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4f3d20
push ecx
mov ecx, esp
mov dword [ebp - 0x748], esp
push str.main_version
call fcn.00403820
mov dword [ebp - 0x82c], eax
lea ecx, [ebp - 0x74c]
push ecx
call fcn.004e15d0
add esp, 8
mov dword [ebp - 0x830], eax
mov edx, dword [ebp - 0x830]
mov dword [ebp - 0x834], edx
mov dword [ebp - 4], 0xb
mov eax, dword [ebp - 0x7dc]
or eax, 1
mov dword [ebp - 0x7dc], eax
mov ecx, dword [ebp - 0x834]
call fcn.00404430
movzx ecx, al
test ecx, ecx
jne 0x4f3c69
push ecx
mov ecx, esp
mov dword [ebp - 0x750], esp
push 0x51b95c
call fcn.00403820
mov dword [ebp - 0x838], eax
lea edx, [ebp - 0x754]
push edx
call fcn.004e15d0
add esp, 8
mov dword [ebp - 0x83c], eax
mov eax, dword [ebp - 0x83c]
mov dword [ebp - 0x840], eax
mov ecx, dword [ebp - 0x7dc]
or ecx, 2
mov dword [ebp - 0x7dc], ecx
mov ecx, dword [ebp - 0x840]
call fcn.00404430
movzx edx, al
test edx, edx
jne 0x4f3c69
mov dword [ebp - 0x844], 0
jmp 0x4f3c73
mov dword [ebp - 0x844], 1
mov al, byte [ebp - 0x844]
mov byte [ebp - 0x741], al
mov ecx, dword [ebp - 0x7dc]
and ecx, 2
je 0x4f3c9c
and dword [ebp - 0x7dc], 0xfffffffd
lea ecx, [ebp - 0x754]
call fcn.00402e80
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x7dc]
and edx, 1
je 0x4f3cc0
and dword [ebp - 0x7dc], 0xfffffffe
lea ecx, [ebp - 0x74c]
call fcn.00402e80
movzx eax, byte [ebp - 0x741]
test eax, eax
je 0x4f3d20
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xc0
push ecx
push str.Invalid_Install.ini
lea edx, [ebp - 0x758]
push edx
call fcn.004042e0
add esp, 0xc
mov dword [ebp - 0x848], eax
mov ecx, dword [ebp - 0x848]
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [ebp - 0x758]
call fcn.00402e80
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xc0
call fcn.00403270
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xc0
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4f402c
push 0x51b9a0
push 0x320
mov eax, dword [ebp - 0x7e0]
mov ecx, dword [eax + 0x280]
push ecx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x6f0], eax
cmp dword [ebp - 0x6f0], 0
je 0x4f4017
push 0x51b9a8
mov edx, dword [ebp - 0x7e0]
add edx, 0xdc
push edx
lea eax, [ebp - 0x75c]
push eax
call fcn.00404230
add esp, 0xc
mov dword [ebp - 0x84c], eax
mov ecx, dword [ebp - 0x84c]
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x75c]
call fcn.00402e80
mov ecx, dword [ebp - 0x6f0]
push ecx
mov edx, dword [ebp - 0x7e0]
mov eax, dword [edx + 0x280]
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x6f4], eax
cmp dword [ebp - 0x6f4], 0
je 0x4f4015
mov ecx, dword [ebp - 0x6f4]
push ecx
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x70c], eax
mov edx, dword [ebp - 0x6f0]
push edx
mov eax, dword [ebp - 0x7e0]
mov ecx, dword [eax + 0x280]
push ecx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x6f8], eax
lea ecx, [ebp - 0x708]
call fcn.004a0f0c
mov dword [ebp - 4], 0xc
push 0x51b9cc
mov edx, dword [ebp - 0x7e0]
add edx, 0xdc
push edx
lea eax, [ebp - 0x764]
push eax
call fcn.00404230
add esp, 0xc
mov dword [ebp - 0x850], eax
mov ecx, dword [ebp - 0x850]
mov dword [ebp - 0x854], ecx
mov byte [ebp - 4], 0xd
push 0
push 0x1002
mov ecx, dword [ebp - 0x854]
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
lea ecx, [ebp - 0x708]
call fcn.004a1395
mov dword [ebp - 0x760], eax
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x764]
call fcn.00402e80
cmp dword [ebp - 0x760], 0
je 0x4f3ff6
mov edx, dword [ebp - 0x6f8]
push edx
mov eax, dword [ebp - 0x70c]
push eax
lea ecx, [ebp - 0x708]
call fcn.004a0c42
lea ecx, [ebp - 0x708]
call fcn.004a0d2e
lea ecx, [ebp - 0x708]
call fcn.004a0ea6
push 0x51b9f0
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xdc
push ecx
lea edx, [ebp - 0x768]
push edx
call fcn.00404230
add esp, 0xc
mov dword [ebp - 0x858], eax
mov eax, dword [ebp - 0x858]
mov dword [ebp - 0x85c], eax
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x85c]
push ecx
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xc0
call fcn.00402e60
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x768]
call fcn.00402e80
mov edx, dword [ebp - 0x7e0]
cmp dword [edx + 0x10c], 0
je 0x4f3f98
push str.PStyleQiyiInstaller.log
mov eax, dword [ebp - 0x7e0]
add eax, 0xa8
push eax
lea ecx, [ebp - 0x76c]
push ecx
call fcn.00404230
add esp, 0xc
mov dword [ebp - 0x860], eax
mov edx, dword [ebp - 0x860]
mov dword [ebp - 0x864], edx
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x864]
push eax
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xd0
call fcn.00402e60
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x76c]
call fcn.00402e80
jmp 0x4f3ff6
push str.QiyiInstaller.log
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xdc
push ecx
lea edx, [ebp - 0x770]
push edx
call fcn.00404230
add esp, 0xc
mov dword [ebp - 0x868], eax
mov eax, dword [ebp - 0x868]
mov dword [ebp - 0x86c], eax
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x86c]
push ecx
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xd0
call fcn.00402e60
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x770]
call fcn.00402e80
mov edx, dword [ebp - 0x6f4]
push edx
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x708]
call fcn.004a1025
jmp 0x4f402c
push 0
push 0
push str.b_rN0R
call fcn.0049f9bc
xor eax, eax
jmp 0x4f4931
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xd0
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x5c
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xd0
call fcn.00404020
add eax, 1
push eax
lea eax, [ebp - 0x460]
push eax
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xd0
call fcn.004041b0
mov dword [ebp - 4], 0x11
lea ecx, [ebp - 0x460]
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call fcn.004e0ff0
push 0
push 0x1041
mov ecx, dword [ebp - 0x7e0]
add ecx, 0xd0
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x284
mov edx, dword [ebp - 0x7e0]
mov eax, dword [edx + 0x284]
mov edx, dword [eax + 0x20]
call edx
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x284
call fcn.00407ac0
mov byte [ebp - 0x464], 0xff
mov byte [ebp - 0x463], 0xfe
push 2
lea eax, [ebp - 0x464]
push eax
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x284
mov edx, dword [ebp - 0x7e0]
mov eax, dword [edx + 0x284]
mov edx, dword [eax + 0x38]
call edx
mov ecx, dword [ebp - 0x7e0]
call fcn.004f2930
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x104
call fcn.00404430
movzx eax, al
test eax, eax
jne 0x4f4181
mov ecx, dword [ebp - 0x7e0]
add ecx, 0x104
push ecx
mov edx, esp
mov dword [ebp - 0x774], esp
push ecx
mov ecx, edx
call fcn.00402120
mov dword [ebp - 0x870], eax
mov eax, dword [ebp - 0x870]
mov dword [ebp - 0x874], eax
mov byte [ebp - 4], 0x12
push ecx
mov ecx, esp
mov dword [ebp - 0x778], esp
push str.forcerun_param
call fcn.00403820
mov dword [ebp - 0x878], eax
mov byte [ebp - 4], 0x11
call fcn.004e1580
add esp, 8
push 0x51baa4
mov ecx, dword [ebp - 0x7e0]
call fcn.004a24b2
push 0x51bac4
push ecx
mov ecx, esp
mov dword [ebp - 0x780], esp
push 0x51bac8
call fcn.00403820
mov dword [ebp - 0x87c], eax
lea ecx, [ebp - 0x784]
push ecx
call fcn.004e15d0
add esp, 8
mov dword [ebp - 0x880], eax
mov edx, dword [ebp - 0x880]
mov dword [ebp - 0x884], edx
mov eax, dword [ebp - 0x884]
push eax
call fcn.004043b0
add esp, 8
mov byte [ebp - 0x779], al
lea ecx, [ebp - 0x784]
call fcn.00402e80
movzx ecx, byte [ebp - 0x779]
test ecx, ecx
je 0x4f421a
mov edx, dword [ebp - 0x7e0]
cmp dword [edx + 0x10c], 0
je 0x4f421a
mov eax, dword [ebp - 0x7e0]
mov dword [eax + 0x110], 1
push 0x51bad8
push ecx
mov ecx, esp
mov dword [ebp - 0x78c], esp
push 0x51badc
call fcn.00403820
mov dword [ebp - 0x888], eax
lea ecx, [ebp - 0x790]
push ecx
call fcn.004e15d0
add esp, 8
mov dword [ebp - 0x88c], eax
mov edx, dword [ebp - 0x88c]
mov dword [ebp - 0x890], edx
mov eax, dword [ebp - 0x890]
push eax
call fcn.004043b0
add esp, 8
mov byte [ebp - 0x785], al
lea ecx, [ebp - 0x790]
call fcn.00402e80
movzx ecx, byte [ebp - 0x785]
test ecx, ecx
je 0x4f4294
mov edx, dword [ebp - 0x7e0]
mov dword [edx + 0x118], 1
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x47c], eax
mov eax, dword [ebp - 0x47c]
push eax
lea ecx, [ebp - 0x488]
call fcn.00403820
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x488]
call fcn.00401060
push ecx
mov ecx, esp
mov dword [ebp - 0x794], esp
push str.mincid
call fcn.00403820
mov dword [ebp - 0x894], eax
lea ecx, [ebp - 0x484]
push ecx
call fcn.004e15d0
add esp, 8
mov dword [ebp - 0x898], eax
mov byte [ebp - 4], 0x14
push ecx
mov ecx, esp
mov dword [ebp - 0x798], esp
push str.maxcid
call fcn.00403820
mov dword [ebp - 0x89c], eax
lea edx, [ebp - 0x478]
push edx
call fcn.004e15d0
add esp, 8
mov dword [ebp - 0x8a0], eax
mov byte [ebp - 4], 0x15
push 0
push str._cid
lea ecx, [ebp - 0x488]
call fcn.00403fa0
cmp eax, 0xffffffff
je 0x4f4596
push 0x51bb18
lea ecx, [ebp - 0x488]
call fcn.00403d40
push 0
push 0x51bb1c
lea ecx, [ebp - 0x488]
call fcn.00403fa0
add eax, 5
push eax
push 0
lea ecx, [ebp - 0x488]
call fcn.00407030
push 0
push 0x51bb28
lea ecx, [ebp - 0x488]
call fcn.00403fa0
push eax
lea eax, [ebp - 0x710]
push eax
lea ecx, [ebp - 0x488]
call fcn.004041b0
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x484]
push ecx
push 0x51bb38
lea edx, [ebp - 0x7a0]
push edx
call fcn.004042e0
add esp, 0xc
mov dword [ebp - 0x8a4], eax
mov eax, dword [ebp - 0x8a4]
mov dword [ebp - 0x8a8], eax
mov byte [ebp - 4], 0x17
push 0x51bb2c
mov ecx, dword [ebp - 0x8a8]
push ecx
lea edx, [ebp - 0x7a4]
push edx
call fcn.00404230
add esp, 0xc
mov dword [ebp - 0x8ac], eax
mov eax, dword [ebp - 0x8ac]
mov dword [ebp - 0x8b0], eax
mov byte [ebp - 4], 0x18
push ecx
mov ecx, esp
mov dword [ebp - 0x79c], esp
lea edx, [ebp - 0x478]
push edx
mov eax, dword [ebp - 0x8b0]
push eax
push ecx
call fcn.00406b00
add esp, 0xc
mov dword [ebp - 0x8b4], eax
mov ecx, dword [ebp - 0x7e0]
call fcn.004f2090
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x7a4]
call fcn.00402e80
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x7a0]
call fcn.00402e80
lea ecx, [ebp - 0x710]
call fcn.00404430
movzx ecx, al
test ecx, ecx
jne 0x4f4582
lea ecx, [ebp - 0x710]
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call fcn.004bfdd2
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x484]
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call fcn.004bfdd2
add esp, 4
cmp esi, eax
jl 0x4f4553
lea ecx, [ebp - 0x710]
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call fcn.004bfdd2
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x478]
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call fcn.004bfdd2
add esp, 4
cmp esi, eax
jg 0x4f4553
lea ecx, [ebp - 0x710]
call fcn.004070f0
push ecx
mov ecx, esp
mov dword [ebp - 0x7a8], esp
lea edx, [ebp - 0x710]
push edx
call fcn.00402120
mov dword [ebp - 0x8b8], eax
mov eax, dword [ebp - 0x8b8]
mov dword [ebp - 0x8bc], eax
mov byte [ebp - 4], 0x19
push ecx
mov ecx, esp
mov dword [ebp - 0x7ac], esp
push 0x51bb8c
call fcn.00403820
mov dword [ebp - 0x8c0], eax
mov byte [ebp - 4], 0x16
call fcn.004e1580
add esp, 8
push ecx
mov ecx, esp
mov dword [ebp - 0x7b0], esp
lea edx, [ebp - 0x710]
push edx
push 0x51bba0
push ecx
call fcn.004042e0
add esp, 0xc
mov dword [ebp - 0x8c4], eax
mov ecx, dword [ebp - 0x7e0]
call fcn.004f2090
jmp 0x4f4582
push ecx
mov eax, esp
mov dword [ebp - 0x7b4], esp
lea ecx, [ebp - 0x710]
push ecx
push 0x51bbd0
push eax
call fcn.004042e0
add esp, 0xc
mov dword [ebp - 0x8c8], eax
mov ecx, dword [ebp - 0x7e0]
call fcn.004f2090
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x710]
call fcn.00402e80
jmp 0x4f4873
lea ecx, [ebp - 0x484]
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call fcn.004bfdd2
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x478]
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call fcn.004bfdd2
add esp, 4
cmp esi, eax
jge 0x4f4873
push 0
push 0x51bc04
lea ecx, [ebp - 0x488]
call fcn.00403fa0
cmp eax, 0xffffffff
je 0x4f4873
push 0x51bc08
push 0x51bc0c
lea ecx, [ebp - 0x488]
call fcn.00403dc0
push 0x5c
lea ecx, [ebp - 0x488]
call fcn.00404020
add eax, 1
push eax
push 0
lea ecx, [ebp - 0x488]
call fcn.00407030
push 0
push 0x51bc10
lea ecx, [ebp - 0x488]
call fcn.00403fa0
add eax, 1
push eax
push 0
lea ecx, [ebp - 0x488]
call fcn.00407030
push 0
push 0x51bc14
lea ecx, [ebp - 0x488]
call fcn.00403fa0
push eax
lea edx, [ebp - 0x714]
push edx
lea ecx, [ebp - 0x488]
call fcn.004041b0
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0x484]
push eax
push str.Current_Installer_Channel_ID_Range_From
lea ecx, [ebp - 0x7bc]
push ecx
call fcn.004042e0
add esp, 0xc
mov dword [ebp - 0x8cc], eax
mov edx, dword [ebp - 0x8cc]
mov dword [ebp - 0x8d0], edx
mov byte [ebp - 4], 0x1b
push 0x51bc18
mov eax, dword [ebp - 0x8d0]
push eax
lea ecx, [ebp - 0x7c0]
push ecx
call fcn.00404230
add esp, 0xc
mov dword [ebp - 0x8d4], eax
mov edx, dword [ebp - 0x8d4]
mov dword [ebp - 0x8d8], edx
mov byte [ebp - 4], 0x1c
push ecx
mov eax, esp
mov dword [ebp - 0x7b8], esp
lea ecx, [ebp - 0x478]
push ecx
mov edx, dword [ebp - 0x8d8]
push edx
push eax
call fcn.00406b00
add esp, 0xc
mov dword [ebp - 0x8dc], eax
mov ecx, dword [ebp - 0x7e0]
call fcn.004f2090
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x7c0]
call fcn.00402e80
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x7bc]
call fcn.00402e80
lea ecx, [ebp - 0x714]
call fcn.00404430
movzx eax, al
test eax, eax
jne 0x4f4864
lea ecx, [ebp - 0x714]
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call fcn.004bfdd2
add esp, 4
test eax, eax
jle 0x4f4864
lea ecx, [ebp - 0x714]
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call fcn.004bfdd2
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x484]
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call fcn.004bfdd2
add esp, 4
cmp esi, eax
jl 0x4f4835
lea ecx, [ebp - 0x714]
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call fcn.004bfdd2
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x478]
call sym.QiyiInstaller.exe_public:_char_const____thiscall_Json::StaticString::operator_char_const__void_const
push eax
call fcn.004bfdd2
add esp, 4
cmp esi, eax
jg 0x4f4835
lea ecx, [ebp - 0x714]
call fcn.004070f0
push ecx
mov ecx, esp
mov dword [ebp - 0x7c4], esp
lea edx, [ebp - 0x714]
push edx
call fcn.00402120
mov dword [ebp - 0x8e0], eax
mov eax, dword [ebp - 0x8e0]
mov dword [ebp - 0x8e4], eax
mov byte [ebp - 4], 0x1d
push ecx
mov ecx, esp
mov dword [ebp - 0x7c8], esp
push str.channelid
call fcn.00403820
mov dword [ebp - 0x8e8], eax
mov byte [ebp - 4], 0x1a
call fcn.004e1580
add esp, 8
push ecx
mov ecx, esp
mov dword [ebp - 0x7cc], esp
lea edx, [ebp - 0x714]
push edx
push 0x51bc90
push ecx
call fcn.004042e0
add esp, 0xc
mov dword [ebp - 0x8ec], eax
mov ecx, dword [ebp - 0x7e0]
call fcn.004f2090
jmp 0x4f4864
push ecx
mov eax, esp
mov dword [ebp - 0x7d0], esp
lea ecx, [ebp - 0x714]
push ecx
push str.Channel_ID_Beyond_Range
push eax
call fcn.004042e0
add esp, 0xc
mov dword [ebp - 0x8f0], eax
mov ecx, dword [ebp - 0x7e0]
call fcn.004f2090
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x714]
call fcn.00402e80
mov ecx, dword [ebp - 0x7e0]
call fcn.004f1710
mov edx, dword [ebp - 0x7e0]
mov byte [edx + 0x278], al
lea eax, [ebp - 0x7d4]
push eax
mov ecx, dword [ebp - 0x7e0]
call fcn.004f26a0
lea ecx, [ebp - 0x7d4]
call fcn.00402e80
mov dword [ebp - 0x468], 0
push 0
lea ecx, [ebp - 0x45c]
call fcn.004f1020
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x45c]
call fcn.004a2de8
mov dword [ebp - 0x468], eax
mov dword [ebp - 0x7d8], 0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x45c]
call fcn.004f0f70
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x478]
call fcn.00402e80
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x484]
call fcn.00402e80
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x488]
call fcn.00402e80
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x460]
call fcn.00402e80
mov eax, dword [ebp - 0x7d8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.004bd72f
mov esp, ebp
pop ebp
ret 8