Function at 0x46df30
Capabilities:
Accept command line arguments
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 0x478838
mov eax, dword fs:[0]
push eax
mov eax, 0x2ad4
call fcn.0043def0
mov eax, dword [0x499750]
xor eax, ebp
mov dword [ebp - 0x60], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x29d4], ecx
mov dword [ebp - 0x29d0], 0
cmp dword [0x49d2f4], 1
jle 0x46e040
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
push eax
lea ecx, [ebp - 0x48]
call fcn.00402f90
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x48]
call fcn.004053b0
push 0
push str._uinst
lea ecx, [ebp - 0x48]
call fcn.004017b0
cmp eax, 0xffffffff
je 0x46dfc5
mov ecx, dword [ebp - 0x29d4]
mov dword [ecx + 0xfc], 0
push 0
push 0x486c54
lea ecx, [ebp - 0x48]
call fcn.004017b0
cmp eax, 0xffffffff
jne 0x46dfed
push 0
push 0x486c5c
lea ecx, [ebp - 0x48]
call fcn.004017b0
cmp eax, 0xffffffff
je 0x46dffd
mov edx, dword [ebp - 0x29d4]
mov dword [edx + 0x100], 1
push 0
push 0x486c64
lea ecx, [ebp - 0x48]
call fcn.004017b0
cmp eax, 0xffffffff
je 0x46e031
mov eax, dword [ebp - 0x29d4]
mov dword [eax + 0x104], 1
mov ecx, dword [ebp - 0x29d4]
mov dword [ecx + 0xfc], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.00405530
mov edx, dword [ebp - 0x29d4]
cmp dword [edx + 0x104], 0
jne 0x46e0f1
push str.Mutex_QiyiInstaller
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov ecx, dword [ebp - 0x29d4]
mov dword [ecx + 0x254], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x46e0f1
push ecx
mov ecx, esp
mov dword [ebp - 0x2910], esp
push 0x486c9c
call fcn.00402f90
mov dword [ebp - 0x29d8], eax
mov ecx, 0x49e320
call fcn.0046d240
push 0x486cc8
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_FindWindowExW]
mov dword [ebp - 0x4c], eax
mov edx, dword [ebp - 0x4c]
push edx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x46e0ea
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x58], 0xa
mov dword [ebp - 0x50], 0
lea eax, [ebp - 0x58]
push eax
push 0
push 0x4a
mov ecx, dword [ebp - 0x4c]
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x5c], eax
xor eax, eax
jmp 0x46f633
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebp - 0x29d4]
mov dword [edx + 0x23c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 0x29d4]
mov dword [ecx + 0x240], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebp - 0x29d4]
mov dword [edx + 0x244], eax
mov eax, dword [ebp - 0x29d4]
add eax, 0x268
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 0x46e176
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 - 0x29d4]
mov dword [edx + 0x124], eax
push 0x58
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [0x49e154], eax
push 0x5a
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [0x49e150], eax
mov edx, dword [ebp - 0x10]
push edx
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
push 0x486cdc
push 0
call fcn.0043c86e
add esp, 8
mov dword [ebp - 0x24], 8
mov dword [ebp - 0x20], 0xff
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
lea ecx, [ebp - 0x2914]
push ecx
mov ecx, dword [ebp - 0x29d4]
call fcn.0046cc40
mov dword [ebp - 0x29dc], eax
mov edx, dword [ebp - 0x29dc]
mov dword [ebp - 0x29e0], edx
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0x29e0]
push eax
mov ecx, 0x49e418
call fcn.00403530
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2914]
call fcn.00405530
mov ecx, dword [ebp - 0x29d4]
call fcn.004267e9
push 0
call fcn.004282c7
add esp, 4
mov ecx, dword [ebp - 0x29d4]
call fcn.0046c780
push 0x104
push 0x104
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xb4
call fcn.00402d00
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xb4
call fcn.00402cd0
push 0
push 0x19
push 0x104
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xac
call fcn.00402d00
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xac
call fcn.00402cd0
push 0
push 0
push 0x104
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xb0
call fcn.00402d00
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xb0
call fcn.00402cd0
push 0
push 2
push 0x104
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xd8
call fcn.00402d00
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xd8
call fcn.00402cd0
push 0
push 0x17
push 0x104
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xc4
call fcn.00402d00
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xc4
call fcn.00402cd0
push 0x104
push 0x104
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xcc
call fcn.00402d00
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xcc
call fcn.00402cd0
push 0
push 0x14
push 0x104
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xc0
call fcn.00402d00
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xc0
call fcn.00402cd0
push 0x5c
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xcc
call fcn.00404390
add eax, 1
push eax
lea ecx, [ebp - 0x2918]
push ecx
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xcc
call fcn.00404470
mov dword [ebp - 0x29e4], eax
mov edx, dword [ebp - 0x29e4]
mov dword [ebp - 0x29e8], edx
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0x29e8]
push eax
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xb8
call fcn.00403530
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2918]
call fcn.00405530
push 0
push 0x1a
push 0x104
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xd0
call fcn.00402d00
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xd0
call fcn.00402cd0
push 0x104
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xd4
call fcn.00402d00
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xd4
call fcn.00402cd0
push 1
lea ecx, [ebp - 0x2920]
push ecx
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xd4
call fcn.004043e0
mov dword [ebp - 0x29ec], eax
push 0x486ce0
mov edx, dword [ebp - 0x29ec]
push edx
call fcn.00405420
add esp, 8
mov byte [ebp - 0x2919], al
lea ecx, [ebp - 0x2920]
call fcn.00405530
movzx eax, byte [ebp - 0x2919]
test eax, eax
je 0x46e4f6
push 0x486ce4
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xd4
call fcn.004050f0
call fcn.00404790
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xd4
call fcn.004068a0
push eax
call fcn.0045b180
mov ecx, dword [ebp - 0x29d4]
add ecx, 0x128
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x46e8c4
lea ecx, [ebp - 0x270]
call fcn.00405510
mov dword [ebp - 4], 3
mov edx, dword [ebp - 0x29d4]
cmp dword [edx + 0x12c], 6
jae 0x46e6ec
push 0x486ce8
mov ecx, dword [ebp - 0x29d4]
add ecx, 0x11c
call fcn.00403370
push 0
push 0x23
lea eax, [ebp - 0x26c]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea ecx, [ebp - 0x26c]
push ecx
lea ecx, [ebp - 0x274]
call fcn.00402f90
mov byte [ebp - 4], 4
push str.QiYi
lea edx, [ebp - 0x274]
push edx
lea eax, [ebp - 0x2924]
push eax
call fcn.004018a0
add esp, 0xc
mov dword [ebp - 0x29f0], eax
mov ecx, dword [ebp - 0x29f0]
mov dword [ebp - 0x29f4], ecx
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x29f4]
push edx
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xa8
call fcn.00403530
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2924]
call fcn.00405530
push str.QiYiQiyiClientcache_
lea eax, [ebp - 0x274]
push eax
lea ecx, [ebp - 0x2928]
push ecx
call fcn.004018a0
add esp, 0xc
mov dword [ebp - 0x29f8], eax
mov edx, dword [ebp - 0x29f8]
mov dword [ebp - 0x29fc], edx
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x29fc]
push eax
lea ecx, [ebp - 0x270]
call fcn.00403530
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2928]
call fcn.00405530
mov ecx, dword [ebp - 0x29d4]
cmp dword [ecx + 0x12c], 5
jne 0x46e6b3
mov edx, dword [ebp - 0x29d4]
cmp dword [edx + 0x130], 1
jne 0x46e674
push str.windowsXP
mov ecx, dword [ebp - 0x29d4]
add ecx, 0x120
call fcn.00403370
jmp 0x46e6b1
mov eax, dword [ebp - 0x29d4]
cmp dword [eax + 0x130], 2
jne 0x46e69b
push str.windows2003
mov ecx, dword [ebp - 0x29d4]
add ecx, 0x120
call fcn.00403370
jmp 0x46e6b1
push str.windows2000
mov ecx, dword [ebp - 0x29d4]
add ecx, 0x120
call fcn.00403370
jmp 0x46e6d8
mov ecx, dword [ebp - 0x29d4]
cmp dword [ecx + 0x12c], 5
jae 0x46e6d8
push str.windows98
mov ecx, dword [ebp - 0x29d4]
add ecx, 0x120
call fcn.00403370
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x274]
call fcn.00405530
jmp 0x46e8a1
push 0x486d84
mov ecx, dword [ebp - 0x29d4]
add ecx, 0x11c
call fcn.00403370
push 0x104
lea edx, [ebp - 0x26c]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea eax, [ebp - 0x26c]
push eax
lea ecx, [ebp - 0x278]
call fcn.00402f90
mov byte [ebp - 4], 7
push 2
lea ecx, [ebp - 0x292c]
push ecx
lea ecx, [ebp - 0x278]
call fcn.00404470
mov dword [ebp - 0x2a00], eax
mov edx, dword [ebp - 0x2a00]
mov dword [ebp - 0x2a04], edx
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x2a04]
push eax
lea ecx, [ebp - 0x278]
call fcn.00403530
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x292c]
call fcn.00405530
push str.UsersPublicQiYi
lea ecx, [ebp - 0x278]
push ecx
lea edx, [ebp - 0x2930]
push edx
call fcn.004018a0
add esp, 0xc
mov dword [ebp - 0x2a08], eax
mov eax, dword [ebp - 0x2a08]
mov dword [ebp - 0x2a0c], eax
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x2a0c]
push ecx
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xa8
call fcn.00403530
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x2930]
call fcn.00405530
push str.UsersPublicQiYiQiyiClientcache_
lea edx, [ebp - 0x278]
push edx
lea eax, [ebp - 0x2934]
push eax
call fcn.004018a0
add esp, 0xc
mov dword [ebp - 0x2a10], eax
mov ecx, dword [ebp - 0x2a10]
mov dword [ebp - 0x2a14], ecx
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x2a14]
push edx
lea ecx, [ebp - 0x270]
call fcn.00403530
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x2934]
call fcn.00405530
mov eax, dword [ebp - 0x29d4]
cmp dword [eax + 0x12c], 6
jne 0x46e892
mov ecx, dword [ebp - 0x29d4]
cmp dword [ecx + 0x130], 1
jne 0x46e855
push str.windows7
mov ecx, dword [ebp - 0x29d4]
add ecx, 0x120
call fcn.00403370
jmp 0x46e892
mov edx, dword [ebp - 0x29d4]
cmp dword [edx + 0x130], 2
jne 0x46e87c
push str.windows8
mov ecx, dword [ebp - 0x29d4]
add ecx, 0x120
call fcn.00403370
jmp 0x46e892
push str.windows_Vista
mov ecx, dword [ebp - 0x29d4]
add ecx, 0x120
call fcn.00403370
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x278]
call fcn.00405530
lea ecx, [ebp - 0x270]
call fcn.004068a0
push eax
call fcn.0045b180
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x270]
call fcn.00405530
push 0x486e48
mov ecx, dword [ebp - 0x29d4]
add ecx, 0x11c
call fcn.00403370
push str.install.ini
mov eax, dword [ebp - 0x29d4]
add eax, 0xb8
push eax
lea ecx, [ebp - 0x2938]
push ecx
call fcn.004018a0
add esp, 0xc
mov dword [ebp - 0x2a18], eax
mov edx, dword [ebp - 0x2a18]
mov dword [ebp - 0x2a1c], edx
mov dword [ebp - 4], 0xb
mov eax, dword [ebp - 0x2a1c]
push eax
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xbc
call fcn.00403530
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2938]
call fcn.00405530
push 0x486e68
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xb8
push ecx
lea edx, [ebp - 0x293c]
push edx
call fcn.004018a0
add esp, 0xc
mov dword [ebp - 0x2a20], eax
mov eax, dword [ebp - 0x2a20]
mov dword [ebp - 0x2a24], eax
mov dword [ebp - 4], 0xc
mov ecx, dword [ebp - 0x2a24]
push ecx
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xc8
call fcn.00403530
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x293c]
call fcn.00405530
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xbc
call fcn.004068a0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x46eb41
push ecx
mov ecx, esp
mov dword [ebp - 0x2944], esp
push str.main_version
call fcn.00402f90
mov dword [ebp - 0x2a28], eax
lea edx, [ebp - 0x2948]
push edx
call fcn.0045b760
add esp, 8
mov dword [ebp - 0x2a2c], eax
mov eax, dword [ebp - 0x2a2c]
mov dword [ebp - 0x2a30], eax
mov dword [ebp - 4], 0xd
mov ecx, dword [ebp - 0x29d0]
or ecx, 1
mov dword [ebp - 0x29d0], ecx
mov ecx, dword [ebp - 0x2a30]
call fcn.00401a20
movzx edx, al
test edx, edx
jne 0x46ea8a
push ecx
mov ecx, esp
mov dword [ebp - 0x294c], esp
push 0x486ea8
call fcn.00402f90
mov dword [ebp - 0x2a34], eax
lea eax, [ebp - 0x2950]
push eax
call fcn.0045b760
add esp, 8
mov dword [ebp - 0x2a38], eax
mov ecx, dword [ebp - 0x2a38]
mov dword [ebp - 0x2a3c], ecx
mov edx, dword [ebp - 0x29d0]
or edx, 2
mov dword [ebp - 0x29d0], edx
mov ecx, dword [ebp - 0x2a3c]
call fcn.00401a20
movzx eax, al
test eax, eax
jne 0x46ea8a
mov dword [ebp - 0x2a40], 0
jmp 0x46ea94
mov dword [ebp - 0x2a40], 1
mov cl, byte [ebp - 0x2a40]
mov byte [ebp - 0x293d], cl
mov edx, dword [ebp - 0x29d0]
and edx, 2
je 0x46eabd
and dword [ebp - 0x29d0], 0xfffffffd
lea ecx, [ebp - 0x2950]
call fcn.00405530
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x29d0]
and eax, 1
je 0x46eae1
and dword [ebp - 0x29d0], 0xfffffffe
lea ecx, [ebp - 0x2948]
call fcn.00405530
movzx ecx, byte [ebp - 0x293d]
test ecx, ecx
je 0x46eb41
mov edx, dword [ebp - 0x29d4]
add edx, 0xbc
push edx
push str.Invalid_Install.ini
lea eax, [ebp - 0x2954]
push eax
call fcn.00401950
add esp, 0xc
mov dword [ebp - 0x2a44], eax
mov ecx, dword [ebp - 0x2a44]
call fcn.004068a0
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [ebp - 0x2954]
call fcn.00405530
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xbc
call fcn.00403490
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xbc
call fcn.004068a0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x46ee2c
push 0x486eec
push 0x320
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x27c], eax
cmp dword [ebp - 0x27c], 0
je 0x46ee17
push 0x486ef4
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xd4
push ecx
lea edx, [ebp - 0x2958]
push edx
call fcn.004018a0
add esp, 0xc
mov dword [ebp - 0x2a48], eax
mov ecx, dword [ebp - 0x2a48]
call fcn.004068a0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x2958]
call fcn.00405530
mov eax, dword [ebp - 0x27c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x280], eax
cmp dword [ebp - 0x280], 0
je 0x46ee15
mov ecx, dword [ebp - 0x280]
push ecx
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x298], eax
mov edx, dword [ebp - 0x27c]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x284], eax
lea ecx, [ebp - 0x294]
call fcn.004273ac
mov dword [ebp - 4], 0xe
push 0x486f18
mov eax, dword [ebp - 0x29d4]
add eax, 0xd4
push eax
lea ecx, [ebp - 0x2960]
push ecx
call fcn.004018a0
add esp, 0xc
mov dword [ebp - 0x2a4c], eax
mov edx, dword [ebp - 0x2a4c]
mov dword [ebp - 0x2a50], edx
mov byte [ebp - 4], 0xf
push 0
push 0x1002
mov ecx, dword [ebp - 0x2a50]
call fcn.004068a0
push eax
lea ecx, [ebp - 0x294]
call fcn.004277f0
mov dword [ebp - 0x295c], eax
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x2960]
call fcn.00405530
cmp dword [ebp - 0x295c], 0
je 0x46edf6
mov eax, dword [ebp - 0x284]
push eax
mov ecx, dword [ebp - 0x298]
push ecx
lea ecx, [ebp - 0x294]
call fcn.004270fa
lea ecx, [ebp - 0x294]
call fcn.004271e0
lea ecx, [ebp - 0x294]
call fcn.0042734a
push str.qiyi_install.ini
mov edx, dword [ebp - 0x29d4]
add edx, 0xd4
push edx
lea eax, [ebp - 0x2964]
push eax
call fcn.004018a0
add esp, 0xc
mov dword [ebp - 0x2a54], eax
mov ecx, dword [ebp - 0x2a54]
mov dword [ebp - 0x2a58], ecx
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x2a58]
push edx
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xbc
call fcn.00403530
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x2964]
call fcn.00405530
mov eax, dword [ebp - 0x29d4]
cmp dword [eax + 0xfc], 0
je 0x46ed98
push str.QiyiClientQiyiInstaller.log
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xa8
push ecx
lea edx, [ebp - 0x2968]
push edx
call fcn.004018a0
add esp, 0xc
mov dword [ebp - 0x2a5c], eax
mov eax, dword [ebp - 0x2a5c]
mov dword [ebp - 0x2a60], eax
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x2a60]
push ecx
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xc8
call fcn.00403530
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x2968]
call fcn.00405530
jmp 0x46edf6
push str.QiyiInstaller.log
mov edx, dword [ebp - 0x29d4]
add edx, 0xd4
push edx
lea eax, [ebp - 0x296c]
push eax
call fcn.004018a0
add esp, 0xc
mov dword [ebp - 0x2a64], eax
mov ecx, dword [ebp - 0x2a64]
mov dword [ebp - 0x2a68], ecx
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x2a68]
push edx
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xc8
call fcn.00403530
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x296c]
call fcn.00405530
mov eax, dword [ebp - 0x280]
push eax
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x294]
call fcn.004274b9
jmp 0x46ee2c
push 0
push 0
push str.b_rN0R
call fcn.00425149
xor eax, eax
jmp 0x46f633
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xc8
call fcn.004068a0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0
push 0x1041
mov ecx, dword [ebp - 0x29d4]
add ecx, 0xc8
call fcn.004068a0
push eax
mov ecx, dword [ebp - 0x29d4]
add ecx, 0x258
mov edx, dword [ebp - 0x29d4]
mov eax, dword [edx + 0x258]
mov edx, dword [eax + 0x20]
call edx
mov ecx, dword [ebp - 0x29d4]
add ecx, 0x258
call fcn.00405f40
mov byte [ebp - 0x18], 0xff
mov byte [ebp - 0x17], 0xfe
push 2
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x29d4]
add ecx, 0x258
mov edx, dword [ebp - 0x29d4]
mov eax, dword [edx + 0x258]
mov edx, dword [eax + 0x38]
call edx
mov ecx, dword [ebp - 0x29d4]
call fcn.0046d380
push 0x486fd8
mov ecx, dword [ebp - 0x29d4]
call fcn.0042883c
push 0x486ff8
push ecx
mov ecx, esp
mov dword [ebp - 0x2974], esp
push 0x486ffc
call fcn.00402f90
mov dword [ebp - 0x2a6c], eax
lea eax, [ebp - 0x2978]
push eax
call fcn.0045b760
add esp, 8
mov dword [ebp - 0x2a70], eax
mov ecx, dword [ebp - 0x2a70]
mov dword [ebp - 0x2a74], ecx
mov edx, dword [ebp - 0x2a74]
push edx
call fcn.00401a00
add esp, 8
mov byte [ebp - 0x296d], al
lea ecx, [ebp - 0x2978]
call fcn.00405530
movzx eax, byte [ebp - 0x296d]
test eax, eax
je 0x46ef4b
mov ecx, dword [ebp - 0x29d4]
mov dword [ecx + 0x100], 1
push 0x48700c
push ecx
mov ecx, esp
mov dword [ebp - 0x2980], esp
push 0x487010
call fcn.00402f90
mov dword [ebp - 0x2a78], eax
lea edx, [ebp - 0x2984]
push edx
call fcn.0045b760
add esp, 8
mov dword [ebp - 0x2a7c], eax
mov eax, dword [ebp - 0x2a7c]
mov dword [ebp - 0x2a80], eax
mov ecx, dword [ebp - 0x2a80]
push ecx
call fcn.00401a00
add esp, 8
mov byte [ebp - 0x2979], al
lea ecx, [ebp - 0x2984]
call fcn.00405530
movzx edx, byte [ebp - 0x2979]
test edx, edx
je 0x46efc5
mov eax, dword [ebp - 0x29d4]
mov dword [eax + 0x108], 1
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.00402f90
mov dword [ebp - 4], 0x13
lea ecx, [ebp - 0x3c]
call fcn.004053b0
push ecx
mov ecx, esp
mov dword [ebp - 0x2988], esp
push str.mincid
call fcn.00402f90
mov dword [ebp - 0x2a84], eax
lea edx, [ebp - 0x38]
push edx
call fcn.0045b760
add esp, 8
mov dword [ebp - 0x2a88], eax
mov byte [ebp - 4], 0x14
push ecx
mov ecx, esp
mov dword [ebp - 0x298c], esp
push str.maxcid
call fcn.00402f90
mov dword [ebp - 0x2a8c], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0045b760
add esp, 8
mov dword [ebp - 0x2a90], eax
mov byte [ebp - 4], 0x15
push 0
push str._cid
lea ecx, [ebp - 0x3c]
call fcn.004017b0
cmp eax, 0xffffffff
je 0x46f29a
push 0x48704c
lea ecx, [ebp - 0x3c]
call fcn.004050f0
push 0
push 0x487050
lea ecx, [ebp - 0x3c]
call fcn.004017b0
add eax, 5
push eax
push 0
lea ecx, [ebp - 0x3c]
call fcn.00405110
push 0
push 0x48705c
lea ecx, [ebp - 0x3c]
call fcn.004017b0
push eax
lea ecx, [ebp - 0x29c]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.00404470
mov byte [ebp - 4], 0x16
lea edx, [ebp - 0x38]
push edx
push 0x487070
lea eax, [ebp - 0x2994]
push eax
call fcn.00401950
add esp, 0xc
mov dword [ebp - 0x2a94], eax
mov ecx, dword [ebp - 0x2a94]
mov dword [ebp - 0x2a98], ecx
mov byte [ebp - 4], 0x17
push 0x487060
mov edx, dword [ebp - 0x2a98]
push edx
lea eax, [ebp - 0x2998]
push eax
call fcn.004018a0
add esp, 0xc
mov dword [ebp - 0x2a9c], eax
mov ecx, dword [ebp - 0x2a9c]
mov dword [ebp - 0x2aa0], ecx
mov byte [ebp - 4], 0x18
push ecx
mov edx, esp
mov dword [ebp - 0x2990], esp
lea eax, [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x2aa0]
push ecx
push edx
call fcn.004044f0
add esp, 0xc
mov dword [ebp - 0x2aa4], eax
mov ecx, dword [ebp - 0x29d4]
call fcn.0046d240
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x2998]
call fcn.00405530
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x2994]
call fcn.00405530
lea ecx, [ebp - 0x29c]
call fcn.00401a20
movzx edx, al
test edx, edx
jne 0x46f286
lea ecx, [ebp - 0x29c]
call fcn.004068a0
push eax
call fcn.0043b186
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x38]
call fcn.004068a0
push eax
call fcn.0043b186
add esp, 4
cmp esi, eax
jl 0x46f257
lea ecx, [ebp - 0x29c]
call fcn.004068a0
push eax
call fcn.0043b186
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x2c]
call fcn.004068a0
push eax
call fcn.0043b186
add esp, 4
cmp esi, eax
jg 0x46f257
lea ecx, [ebp - 0x29c]
call fcn.00405400
push ecx
mov ecx, esp
mov dword [ebp - 0x299c], esp
lea eax, [ebp - 0x29c]
push eax
call fcn.00402b50
mov dword [ebp - 0x2aa8], eax
mov ecx, dword [ebp - 0x2aa8]
mov dword [ebp - 0x2aac], ecx
mov byte [ebp - 4], 0x19
push ecx
mov ecx, esp
mov dword [ebp - 0x29a0], esp
push 0x4870c4
call fcn.00402f90
mov dword [ebp - 0x2ab0], eax
mov byte [ebp - 4], 0x16
call fcn.0045b710
add esp, 8
push ecx
mov edx, esp
mov dword [ebp - 0x29a4], esp
lea eax, [ebp - 0x29c]
push eax
push 0x4870d8
push edx
call fcn.00401950
add esp, 0xc
mov dword [ebp - 0x2ab4], eax
mov ecx, dword [ebp - 0x29d4]
call fcn.0046d240
jmp 0x46f286
push ecx
mov ecx, esp
mov dword [ebp - 0x29a8], esp
lea edx, [ebp - 0x29c]
push edx
push 0x487108
push ecx
call fcn.00401950
add esp, 0xc
mov dword [ebp - 0x2ab8], eax
mov ecx, dword [ebp - 0x29d4]
call fcn.0046d240
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x29c]
call fcn.00405530
jmp 0x46f54d
lea ecx, [ebp - 0x38]
call fcn.004068a0
push eax
call fcn.0043b186
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x2c]
call fcn.004068a0
push eax
call fcn.0043b186
add esp, 4
cmp esi, eax
jge 0x46f54d
push 0
push 0x48713c
lea ecx, [ebp - 0x3c]
call fcn.004017b0
cmp eax, 0xffffffff
je 0x46f54d
push 0x487140
push 0x487144
lea ecx, [ebp - 0x3c]
call fcn.004051d0
push 0x5c
lea ecx, [ebp - 0x3c]
call fcn.00404390
add eax, 1
push eax
push 0
lea ecx, [ebp - 0x3c]
call fcn.00405110
push 0
push 0x487148
lea ecx, [ebp - 0x3c]
call fcn.004017b0
add eax, 1
push eax
push 0
lea ecx, [ebp - 0x3c]
call fcn.00405110
push 0
push 0x48714c
lea ecx, [ebp - 0x3c]
call fcn.004017b0
push eax
lea eax, [ebp - 0x2a0]
push eax
lea ecx, [ebp - 0x3c]
call fcn.00404470
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x38]
push ecx
push str.Current_Installer_Channel_ID_Range_From
lea edx, [ebp - 0x29b0]
push edx
call fcn.00401950
add esp, 0xc
mov dword [ebp - 0x2abc], eax
mov eax, dword [ebp - 0x2abc]
mov dword [ebp - 0x2ac0], eax
mov byte [ebp - 4], 0x1b
push 0x487150
mov ecx, dword [ebp - 0x2ac0]
push ecx
lea edx, [ebp - 0x29b4]
push edx
call fcn.004018a0
add esp, 0xc
mov dword [ebp - 0x2ac4], eax
mov eax, dword [ebp - 0x2ac4]
mov dword [ebp - 0x2ac8], eax
mov byte [ebp - 4], 0x1c
push ecx
mov ecx, esp
mov dword [ebp - 0x29ac], esp
lea edx, [ebp - 0x2c]
push edx
mov eax, dword [ebp - 0x2ac8]
push eax
push ecx
call fcn.004044f0
add esp, 0xc
mov dword [ebp - 0x2acc], eax
mov ecx, dword [ebp - 0x29d4]
call fcn.0046d240
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x29b4]
call fcn.00405530
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x29b0]
call fcn.00405530
lea ecx, [ebp - 0x2a0]
call fcn.00401a20
movzx ecx, al
test ecx, ecx
jne 0x46f53e
lea ecx, [ebp - 0x2a0]
call fcn.004068a0
push eax
call fcn.0043b186
add esp, 4
test eax, eax
jle 0x46f53e
lea ecx, [ebp - 0x2a0]
call fcn.004068a0
push eax
call fcn.0043b186
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x38]
call fcn.004068a0
push eax
call fcn.0043b186
add esp, 4
cmp esi, eax
jl 0x46f50f
lea ecx, [ebp - 0x2a0]
call fcn.004068a0
push eax
call fcn.0043b186
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x2c]
call fcn.004068a0
push eax
call fcn.0043b186
add esp, 4
cmp esi, eax
jg 0x46f50f
lea ecx, [ebp - 0x2a0]
call fcn.00405400
push ecx
mov ecx, esp
mov dword [ebp - 0x29b8], esp
lea edx, [ebp - 0x2a0]
push edx
call fcn.00402b50
mov dword [ebp - 0x2ad0], eax
mov eax, dword [ebp - 0x2ad0]
mov dword [ebp - 0x2ad4], eax
mov byte [ebp - 4], 0x1d
push ecx
mov ecx, esp
mov dword [ebp - 0x29bc], esp
push str.channelid
call fcn.00402f90
mov dword [ebp - 0x2ad8], eax
mov byte [ebp - 4], 0x1a
call fcn.0045b710
add esp, 8
push ecx
mov ecx, esp
mov dword [ebp - 0x29c0], esp
lea edx, [ebp - 0x2a0]
push edx
push str.Change_Channel_ID_To_:
push ecx
call fcn.00401950
add esp, 0xc
mov dword [ebp - 0x2adc], eax
mov ecx, dword [ebp - 0x29d4]
call fcn.0046d240
jmp 0x46f53e
push ecx
mov eax, esp
mov dword [ebp - 0x29c4], esp
lea ecx, [ebp - 0x2a0]
push ecx
push str.Channel_ID_Beyond_Range
push eax
call fcn.00401950
add esp, 0xc
mov dword [ebp - 0x2ae0], eax
mov ecx, dword [ebp - 0x29d4]
call fcn.0046d240
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x2a0]
call fcn.00405530
lea edx, [ebp - 0x29c8]
push edx
mov ecx, dword [ebp - 0x29d4]
call fcn.0046dca0
lea ecx, [ebp - 0x29c8]
call fcn.00405530
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x29d4]
cmp dword [eax + 0xfc], 0
je 0x46f5bf
push 0
lea ecx, [ebp - 0x1634]
call fcn.0046a7a0
mov byte [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x29d4]
lea edx, [ebp - 0x1634]
mov dword [ecx + 0x20], edx
lea ecx, [ebp - 0x1634]
call fcn.00425e16
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x1634]
call fcn.00404fa0
jmp 0x46f5fc
push 0
lea ecx, [ebp - 0x290c]
call fcn.00473f10
mov byte [ebp - 4], 0x1f
mov eax, dword [ebp - 0x29d4]
lea ecx, [ebp - 0x290c]
mov dword [eax + 0x20], ecx
lea ecx, [ebp - 0x290c]
call fcn.00425e16
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x290c]
call fcn.00473dc0
mov dword [ebp - 0x29cc], 0
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x2c]
call fcn.00405530
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x38]
call fcn.00405530
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3c]
call fcn.00405530
mov eax, dword [ebp - 0x29cc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x60]
xor ecx, ebp
call fcn.0043adc4
mov esp, ebp
pop ebp
ret