Function at 0x46f2c0
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
Get startup folder
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47a8f0
mov eax, dword fs:[0]
push eax
mov eax, 0x2ae8
call fcn.0043ed20
mov eax, dword [0x49b7c0]
xor eax, ebp
mov dword [ebp - 0x68], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x29e0], ecx
mov dword [ebp - 0x29dc], 0
cmp dword [0x49f3b8], 1
jle 0x46f49e
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.00403620
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x48]
call fcn.00405cc0
push 0
push str._uinst
lea ecx, [ebp - 0x48]
call fcn.00401de0
cmp eax, 0xffffffff
je 0x46f355
mov ecx, dword [ebp - 0x29e0]
mov dword [ecx + 0xfc], 0
push 0
push 0x488cf0
lea ecx, [ebp - 0x48]
call fcn.00401de0
cmp eax, 0xffffffff
jne 0x46f37d
push 0
push 0x488cf8
lea ecx, [ebp - 0x48]
call fcn.00401de0
cmp eax, 0xffffffff
je 0x46f38d
mov edx, dword [ebp - 0x29e0]
mov dword [edx + 0x100], 1
push 0
push 0x488d00
lea ecx, [ebp - 0x48]
call fcn.00401de0
cmp eax, 0xffffffff
je 0x46f3c1
mov eax, dword [ebp - 0x29e0]
mov dword [eax + 0x104], 1
mov ecx, dword [ebp - 0x29e0]
mov dword [ecx + 0xfc], 1
push 0
push 0x488d10
lea ecx, [ebp - 0x48]
call fcn.00401de0
cmp eax, 0xffffffff
je 0x46f48f
push 0
push 0x488d18
lea ecx, [ebp - 0x48]
call fcn.00401de0
mov dword [ebp - 0x50], eax
mov edx, dword [ebp - 0x50]
add edx, 3
push edx
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x48]
call fcn.00405d30
mov byte [ebp - 4], 1
push 0
push 0x488d20
lea ecx, [ebp - 0x4c]
call fcn.00401de0
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0xffffffff
jne 0x46f431
lea ecx, [ebp - 0x4c]
push ecx
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x25c
call fcn.00403bb0
jmp 0x46f483
mov edx, dword [ebp - 0x50]
push edx
push 0
lea eax, [ebp - 0x2918]
push eax
lea ecx, [ebp - 0x4c]
call fcn.00405d70
mov dword [ebp - 0x29e4], eax
mov ecx, dword [ebp - 0x29e4]
mov dword [ebp - 0x29e8], ecx
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x29e8]
push edx
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x25c
call fcn.00403bb0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2918]
call fcn.00405f40
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x4c]
call fcn.00405f40
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.00405f40
mov eax, dword [ebp - 0x29e0]
cmp dword [eax + 0x104], 0
jne 0x46f54f
push 0x488d24
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov ecx, dword [ebp - 0x29e0]
mov dword [ecx + 0x254], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x46f54f
push ecx
mov ecx, esp
mov dword [ebp - 0x291c], esp
push 0x488d4c
call fcn.00403620
mov dword [ebp - 0x29ec], eax
mov ecx, 0x4a0408
call fcn.0046e4a0
push 0x488d78
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_FindWindowExW]
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x54]
push edx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x46f548
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x60], 0xa
mov dword [ebp - 0x58], 0
lea eax, [ebp - 0x60]
push eax
push 0
push 0x4a
mov ecx, dword [ebp - 0x54]
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x64], eax
xor eax, eax
jmp 0x470a91
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebp - 0x29e0]
mov dword [edx + 0x23c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 0x29e0]
mov dword [ecx + 0x240], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebp - 0x29e0]
mov dword [edx + 0x244], eax
mov eax, dword [ebp - 0x29e0]
add eax, 0x270
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 0x46f5d4
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 - 0x29e0]
mov dword [edx + 0x124], eax
push 0x58
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [0x4a0214], eax
push 0x5a
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [0x4a0210], eax
mov edx, dword [ebp - 0x10]
push edx
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
push 0x488d8c
push 0
call fcn.0043de13
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 - 0x2920]
push ecx
mov ecx, dword [ebp - 0x29e0]
call fcn.0046dea0
mov dword [ebp - 0x29f0], eax
mov edx, dword [ebp - 0x29f0]
mov dword [ebp - 0x29f4], edx
mov dword [ebp - 4], 3
mov eax, dword [ebp - 0x29f4]
push eax
mov ecx, 0x4a0500
call fcn.00403bb0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2920]
call fcn.00405f40
mov ecx, dword [ebp - 0x29e0]
call fcn.00426b4d
push 0
call fcn.00429309
add esp, 4
mov ecx, dword [ebp - 0x29e0]
call fcn.0046dae0
push 0x104
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xb4
call fcn.00401210
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xb4
call fcn.004035f0
push 0
push 0x19
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xac
call fcn.00401210
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xac
call fcn.004035f0
push 0
push 0
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xb0
call fcn.00401210
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xb0
call fcn.004035f0
push 0
push 2
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd8
call fcn.00401210
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd8
call fcn.004035f0
push 0
push 0x17
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xc4
call fcn.00401210
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xc4
call fcn.004035f0
push 0x104
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xcc
call fcn.00401210
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xcc
call fcn.004035f0
push 0
push 0x14
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xc0
call fcn.00401210
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xc0
call fcn.004035f0
push 0x5c
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xcc
call fcn.00404a80
add eax, 1
push eax
lea ecx, [ebp - 0x2924]
push ecx
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xcc
call fcn.00404b60
mov dword [ebp - 0x29f8], eax
mov edx, dword [ebp - 0x29f8]
mov dword [ebp - 0x29fc], edx
mov dword [ebp - 4], 4
mov eax, dword [ebp - 0x29fc]
push eax
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xb8
call fcn.00403bb0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2924]
call fcn.00405f40
push 0
push 0x1a
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd0
call fcn.00401210
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd0
call fcn.004035f0
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd4
call fcn.00401210
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd4
call fcn.004035f0
push 1
lea ecx, [ebp - 0x292c]
push ecx
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd4
call fcn.00404ad0
mov dword [ebp - 0x2a00], eax
push 0x488d90
mov edx, dword [ebp - 0x2a00]
push edx
call fcn.00405e50
add esp, 8
mov byte [ebp - 0x2925], al
lea ecx, [ebp - 0x292c]
call fcn.00405f40
movzx eax, byte [ebp - 0x2925]
test eax, eax
je 0x46f954
push 0x488d94
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd4
call fcn.00405a00
call fcn.00404e80
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd4
call fcn.00403e00
push eax
call fcn.0045c3f0
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x128
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x46fd22
lea ecx, [ebp - 0x278]
call fcn.004017f0
mov dword [ebp - 4], 5
mov edx, dword [ebp - 0x29e0]
cmp dword [edx + 0x12c], 6
jae 0x46fb4a
push 0x488d98
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x11c
call fcn.00403a20
push 0
push 0x23
lea eax, [ebp - 0x274]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea ecx, [ebp - 0x274]
push ecx
lea ecx, [ebp - 0x27c]
call fcn.00403620
mov byte [ebp - 4], 6
push str.QiYi
lea edx, [ebp - 0x27c]
push edx
lea eax, [ebp - 0x2930]
push eax
call fcn.00401e60
add esp, 0xc
mov dword [ebp - 0x2a04], eax
mov ecx, dword [ebp - 0x2a04]
mov dword [ebp - 0x2a08], ecx
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x2a08]
push edx
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xa8
call fcn.00403bb0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x2930]
call fcn.00405f40
push str.QiYiQiyiClientcache_
lea eax, [ebp - 0x27c]
push eax
lea ecx, [ebp - 0x2934]
push ecx
call fcn.00401e60
add esp, 0xc
mov dword [ebp - 0x2a0c], eax
mov edx, dword [ebp - 0x2a0c]
mov dword [ebp - 0x2a10], edx
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x2a10]
push eax
lea ecx, [ebp - 0x278]
call fcn.00403bb0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x2934]
call fcn.00405f40
mov ecx, dword [ebp - 0x29e0]
cmp dword [ecx + 0x12c], 5
jne 0x46fb11
mov edx, dword [ebp - 0x29e0]
cmp dword [edx + 0x130], 1
jne 0x46fad2
push str.windowsXP
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x120
call fcn.00403a20
jmp 0x46fb0f
mov eax, dword [ebp - 0x29e0]
cmp dword [eax + 0x130], 2
jne 0x46faf9
push str.windows2003
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x120
call fcn.00403a20
jmp 0x46fb0f
push str.windows2000
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x120
call fcn.00403a20
jmp 0x46fb36
mov ecx, dword [ebp - 0x29e0]
cmp dword [ecx + 0x12c], 5
jae 0x46fb36
push str.windows98
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x120
call fcn.00403a20
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x27c]
call fcn.00405f40
jmp 0x46fcff
push 0x488e34
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x11c
call fcn.00403a20
push 0x104
lea edx, [ebp - 0x274]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea eax, [ebp - 0x274]
push eax
lea ecx, [ebp - 0x280]
call fcn.00403620
mov byte [ebp - 4], 9
push 2
lea ecx, [ebp - 0x2938]
push ecx
lea ecx, [ebp - 0x280]
call fcn.00404b60
mov dword [ebp - 0x2a14], eax
mov edx, dword [ebp - 0x2a14]
mov dword [ebp - 0x2a18], edx
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x2a18]
push eax
lea ecx, [ebp - 0x280]
call fcn.00403bb0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x2938]
call fcn.00405f40
push str.UsersPublicQiYi
lea ecx, [ebp - 0x280]
push ecx
lea edx, [ebp - 0x293c]
push edx
call fcn.00401e60
add esp, 0xc
mov dword [ebp - 0x2a1c], eax
mov eax, dword [ebp - 0x2a1c]
mov dword [ebp - 0x2a20], eax
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x2a20]
push ecx
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xa8
call fcn.00403bb0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x293c]
call fcn.00405f40
push str.UsersPublicQiYiQiyiClientcache_
lea edx, [ebp - 0x280]
push edx
lea eax, [ebp - 0x2940]
push eax
call fcn.00401e60
add esp, 0xc
mov dword [ebp - 0x2a24], eax
mov ecx, dword [ebp - 0x2a24]
mov dword [ebp - 0x2a28], ecx
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x2a28]
push edx
lea ecx, [ebp - 0x278]
call fcn.00403bb0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x2940]
call fcn.00405f40
mov eax, dword [ebp - 0x29e0]
cmp dword [eax + 0x12c], 6
jne 0x46fcf0
mov ecx, dword [ebp - 0x29e0]
cmp dword [ecx + 0x130], 1
jne 0x46fcb3
push str.windows7
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x120
call fcn.00403a20
jmp 0x46fcf0
mov edx, dword [ebp - 0x29e0]
cmp dword [edx + 0x130], 2
jne 0x46fcda
push str.windows8
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x120
call fcn.00403a20
jmp 0x46fcf0
push str.windows_Vista
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x120
call fcn.00403a20
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x280]
call fcn.00405f40
lea ecx, [ebp - 0x278]
call fcn.00403e00
push eax
call fcn.0045c3f0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x278]
call fcn.00405f40
push 0x488ef8
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x11c
call fcn.00403a20
push str.install.ini
mov eax, dword [ebp - 0x29e0]
add eax, 0xb8
push eax
lea ecx, [ebp - 0x2944]
push ecx
call fcn.00401e60
add esp, 0xc
mov dword [ebp - 0x2a2c], eax
mov edx, dword [ebp - 0x2a2c]
mov dword [ebp - 0x2a30], edx
mov dword [ebp - 4], 0xd
mov eax, dword [ebp - 0x2a30]
push eax
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xbc
call fcn.00403bb0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2944]
call fcn.00405f40
push 0x488f18
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xb8
push ecx
lea edx, [ebp - 0x2948]
push edx
call fcn.00401e60
add esp, 0xc
mov dword [ebp - 0x2a34], eax
mov eax, dword [ebp - 0x2a34]
mov dword [ebp - 0x2a38], eax
mov dword [ebp - 4], 0xe
mov ecx, dword [ebp - 0x2a38]
push ecx
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xc8
call fcn.00403bb0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2948]
call fcn.00405f40
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xbc
call fcn.00403e00
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x46ff9f
push ecx
mov ecx, esp
mov dword [ebp - 0x2950], esp
push str.main_version
call fcn.00403620
mov dword [ebp - 0x2a3c], eax
lea edx, [ebp - 0x2954]
push edx
call fcn.0045c9d0
add esp, 8
mov dword [ebp - 0x2a40], eax
mov eax, dword [ebp - 0x2a40]
mov dword [ebp - 0x2a44], eax
mov dword [ebp - 4], 0xf
mov ecx, dword [ebp - 0x29dc]
or ecx, 1
mov dword [ebp - 0x29dc], ecx
mov ecx, dword [ebp - 0x2a44]
call fcn.00401fe0
movzx edx, al
test edx, edx
jne 0x46fee8
push ecx
mov ecx, esp
mov dword [ebp - 0x2958], esp
push 0x488f58
call fcn.00403620
mov dword [ebp - 0x2a48], eax
lea eax, [ebp - 0x295c]
push eax
call fcn.0045c9d0
add esp, 8
mov dword [ebp - 0x2a4c], eax
mov ecx, dword [ebp - 0x2a4c]
mov dword [ebp - 0x2a50], ecx
mov edx, dword [ebp - 0x29dc]
or edx, 2
mov dword [ebp - 0x29dc], edx
mov ecx, dword [ebp - 0x2a50]
call fcn.00401fe0
movzx eax, al
test eax, eax
jne 0x46fee8
mov dword [ebp - 0x2a54], 0
jmp 0x46fef2
mov dword [ebp - 0x2a54], 1
mov cl, byte [ebp - 0x2a54]
mov byte [ebp - 0x2949], cl
mov edx, dword [ebp - 0x29dc]
and edx, 2
je 0x46ff1b
and dword [ebp - 0x29dc], 0xfffffffd
lea ecx, [ebp - 0x295c]
call fcn.00405f40
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x29dc]
and eax, 1
je 0x46ff3f
and dword [ebp - 0x29dc], 0xfffffffe
lea ecx, [ebp - 0x2954]
call fcn.00405f40
movzx ecx, byte [ebp - 0x2949]
test ecx, ecx
je 0x46ff9f
mov edx, dword [ebp - 0x29e0]
add edx, 0xbc
push edx
push str.Invalid_Install.ini
lea eax, [ebp - 0x2960]
push eax
call fcn.00401f10
add esp, 0xc
mov dword [ebp - 0x2a58], eax
mov ecx, dword [ebp - 0x2a58]
call fcn.00403e00
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [ebp - 0x2960]
call fcn.00405f40
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xbc
call fcn.00403b40
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xbc
call fcn.00403e00
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x47028a
push 0x488f9c
push 0x320
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x284], eax
cmp dword [ebp - 0x284], 0
je 0x470275
push 0x488fa4
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd4
push ecx
lea edx, [ebp - 0x2964]
push edx
call fcn.00401e60
add esp, 0xc
mov dword [ebp - 0x2a5c], eax
mov ecx, dword [ebp - 0x2a5c]
call fcn.00403e00
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x2964]
call fcn.00405f40
mov eax, dword [ebp - 0x284]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x288], eax
cmp dword [ebp - 0x288], 0
je 0x470273
mov ecx, dword [ebp - 0x288]
push ecx
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x2a0], eax
mov edx, dword [ebp - 0x284]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x28c], eax
lea ecx, [ebp - 0x29c]
call fcn.00427b12
mov dword [ebp - 4], 0x10
push 0x488fc8
mov eax, dword [ebp - 0x29e0]
add eax, 0xd4
push eax
lea ecx, [ebp - 0x296c]
push ecx
call fcn.00401e60
add esp, 0xc
mov dword [ebp - 0x2a60], eax
mov edx, dword [ebp - 0x2a60]
mov dword [ebp - 0x2a64], edx
mov byte [ebp - 4], 0x11
push 0
push 0x1002
mov ecx, dword [ebp - 0x2a64]
call fcn.00403e00
push eax
lea ecx, [ebp - 0x29c]
call fcn.00427f91
mov dword [ebp - 0x2968], eax
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x296c]
call fcn.00405f40
cmp dword [ebp - 0x2968], 0
je 0x470254
mov eax, dword [ebp - 0x28c]
push eax
mov ecx, dword [ebp - 0x2a0]
push ecx
lea ecx, [ebp - 0x29c]
call fcn.00427860
lea ecx, [ebp - 0x29c]
call fcn.00427946
lea ecx, [ebp - 0x29c]
call fcn.00427ab0
push str.qiyi_install.ini
mov edx, dword [ebp - 0x29e0]
add edx, 0xd4
push edx
lea eax, [ebp - 0x2970]
push eax
call fcn.00401e60
add esp, 0xc
mov dword [ebp - 0x2a68], eax
mov ecx, dword [ebp - 0x2a68]
mov dword [ebp - 0x2a6c], ecx
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x2a6c]
push edx
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xbc
call fcn.00403bb0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x2970]
call fcn.00405f40
mov eax, dword [ebp - 0x29e0]
cmp dword [eax + 0xfc], 0
je 0x4701f6
push str.QiyiClientQiyiInstaller.log
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xa8
push ecx
lea edx, [ebp - 0x2974]
push edx
call fcn.00401e60
add esp, 0xc
mov dword [ebp - 0x2a70], eax
mov eax, dword [ebp - 0x2a70]
mov dword [ebp - 0x2a74], eax
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x2a74]
push ecx
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xc8
call fcn.00403bb0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x2974]
call fcn.00405f40
jmp 0x470254
push str.QiyiInstaller.log
mov edx, dword [ebp - 0x29e0]
add edx, 0xd4
push edx
lea eax, [ebp - 0x2978]
push eax
call fcn.00401e60
add esp, 0xc
mov dword [ebp - 0x2a78], eax
mov ecx, dword [ebp - 0x2a78]
mov dword [ebp - 0x2a7c], ecx
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x2a7c]
push edx
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xc8
call fcn.00403bb0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x2978]
call fcn.00405f40
mov eax, dword [ebp - 0x288]
push eax
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x29c]
call fcn.00427c1f
jmp 0x47028a
push 0
push 0
push str.b_rN0R
call fcn.00424025
xor eax, eax
jmp 0x470a91
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xc8
call fcn.00403e00
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0
push 0x1041
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xc8
call fcn.00403e00
push eax
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x260
mov edx, dword [ebp - 0x29e0]
mov eax, dword [edx + 0x260]
mov edx, dword [eax + 0x20]
call edx
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x260
call fcn.004068d0
mov byte [ebp - 0x18], 0xff
mov byte [ebp - 0x17], 0xfe
push 2
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x260
mov edx, dword [ebp - 0x29e0]
mov eax, dword [edx + 0x260]
mov edx, dword [eax + 0x38]
call edx
mov ecx, dword [ebp - 0x29e0]
call fcn.0046e5e0
push 0x489088
mov ecx, dword [ebp - 0x29e0]
call fcn.00427582
push 0x4890a8
push ecx
mov ecx, esp
mov dword [ebp - 0x2980], esp
push 0x4890ac
call fcn.00403620
mov dword [ebp - 0x2a80], eax
lea eax, [ebp - 0x2984]
push eax
call fcn.0045c9d0
add esp, 8
mov dword [ebp - 0x2a84], eax
mov ecx, dword [ebp - 0x2a84]
mov dword [ebp - 0x2a88], ecx
mov edx, dword [ebp - 0x2a88]
push edx
call fcn.00401fc0
add esp, 8
mov byte [ebp - 0x2979], al
lea ecx, [ebp - 0x2984]
call fcn.00405f40
movzx eax, byte [ebp - 0x2979]
test eax, eax
je 0x4703a9
mov ecx, dword [ebp - 0x29e0]
mov dword [ecx + 0x100], 1
push 0x4890bc
push ecx
mov ecx, esp
mov dword [ebp - 0x298c], esp
push 0x4890c0
call fcn.00403620
mov dword [ebp - 0x2a8c], eax
lea edx, [ebp - 0x2990]
push edx
call fcn.0045c9d0
add esp, 8
mov dword [ebp - 0x2a90], eax
mov eax, dword [ebp - 0x2a90]
mov dword [ebp - 0x2a94], eax
mov ecx, dword [ebp - 0x2a94]
push ecx
call fcn.00401fc0
add esp, 8
mov byte [ebp - 0x2985], al
lea ecx, [ebp - 0x2990]
call fcn.00405f40
movzx edx, byte [ebp - 0x2985]
test edx, edx
je 0x470423
mov eax, dword [ebp - 0x29e0]
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.00403620
mov dword [ebp - 4], 0x15
lea ecx, [ebp - 0x3c]
call fcn.00405cc0
push ecx
mov ecx, esp
mov dword [ebp - 0x2994], esp
push str.mincid
call fcn.00403620
mov dword [ebp - 0x2a98], eax
lea edx, [ebp - 0x38]
push edx
call fcn.0045c9d0
add esp, 8
mov dword [ebp - 0x2a9c], eax
mov byte [ebp - 4], 0x16
push ecx
mov ecx, esp
mov dword [ebp - 0x2998], esp
push str.maxcid
call fcn.00403620
mov dword [ebp - 0x2aa0], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0045c9d0
add esp, 8
mov dword [ebp - 0x2aa4], eax
mov byte [ebp - 4], 0x17
push 0
push str._cid
lea ecx, [ebp - 0x3c]
call fcn.00401de0
cmp eax, 0xffffffff
je 0x4706f8
push 0x4890fc
lea ecx, [ebp - 0x3c]
call fcn.00405a00
push 0
push 0x489100
lea ecx, [ebp - 0x3c]
call fcn.00401de0
add eax, 5
push eax
push 0
lea ecx, [ebp - 0x3c]
call fcn.00405a20
push 0
push 0x48910c
lea ecx, [ebp - 0x3c]
call fcn.00401de0
push eax
lea ecx, [ebp - 0x2a4]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.00404b60
mov byte [ebp - 4], 0x18
lea edx, [ebp - 0x38]
push edx
push 0x489120
lea eax, [ebp - 0x29a0]
push eax
call fcn.00401f10
add esp, 0xc
mov dword [ebp - 0x2aa8], eax
mov ecx, dword [ebp - 0x2aa8]
mov dword [ebp - 0x2aac], ecx
mov byte [ebp - 4], 0x19
push 0x489110
mov edx, dword [ebp - 0x2aac]
push edx
lea eax, [ebp - 0x29a4]
push eax
call fcn.00401e60
add esp, 0xc
mov dword [ebp - 0x2ab0], eax
mov ecx, dword [ebp - 0x2ab0]
mov dword [ebp - 0x2ab4], ecx
mov byte [ebp - 4], 0x1a
push ecx
mov edx, esp
mov dword [ebp - 0x299c], esp
lea eax, [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x2ab4]
push ecx
push edx
call fcn.00404be0
add esp, 0xc
mov dword [ebp - 0x2ab8], eax
mov ecx, dword [ebp - 0x29e0]
call fcn.0046e4a0
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x29a4]
call fcn.00405f40
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x29a0]
call fcn.00405f40
lea ecx, [ebp - 0x2a4]
call fcn.00401fe0
movzx edx, al
test edx, edx
jne 0x4706e4
lea ecx, [ebp - 0x2a4]
call fcn.00403e00
push eax
call fcn.0043c343
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x38]
call fcn.00403e00
push eax
call fcn.0043c343
add esp, 4
cmp esi, eax
jl 0x4706b5
lea ecx, [ebp - 0x2a4]
call fcn.00403e00
push eax
call fcn.0043c343
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x2c]
call fcn.00403e00
push eax
call fcn.0043c343
add esp, 4
cmp esi, eax
jg 0x4706b5
lea ecx, [ebp - 0x2a4]
call fcn.00405d10
push ecx
mov ecx, esp
mov dword [ebp - 0x29a8], esp
lea eax, [ebp - 0x2a4]
push eax
call fcn.00403480
mov dword [ebp - 0x2abc], eax
mov ecx, dword [ebp - 0x2abc]
mov dword [ebp - 0x2ac0], ecx
mov byte [ebp - 4], 0x1b
push ecx
mov ecx, esp
mov dword [ebp - 0x29ac], esp
push 0x489174
call fcn.00403620
mov dword [ebp - 0x2ac4], eax
mov byte [ebp - 4], 0x18
call fcn.0045c980
add esp, 8
push ecx
mov edx, esp
mov dword [ebp - 0x29b0], esp
lea eax, [ebp - 0x2a4]
push eax
push 0x489188
push edx
call fcn.00401f10
add esp, 0xc
mov dword [ebp - 0x2ac8], eax
mov ecx, dword [ebp - 0x29e0]
call fcn.0046e4a0
jmp 0x4706e4
push ecx
mov ecx, esp
mov dword [ebp - 0x29b4], esp
lea edx, [ebp - 0x2a4]
push edx
push 0x4891b8
push ecx
call fcn.00401f10
add esp, 0xc
mov dword [ebp - 0x2acc], eax
mov ecx, dword [ebp - 0x29e0]
call fcn.0046e4a0
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x2a4]
call fcn.00405f40
jmp 0x4709ab
lea ecx, [ebp - 0x38]
call fcn.00403e00
push eax
call fcn.0043c343
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x2c]
call fcn.00403e00
push eax
call fcn.0043c343
add esp, 4
cmp esi, eax
jge 0x4709ab
push 0
push 0x4891ec
lea ecx, [ebp - 0x3c]
call fcn.00401de0
cmp eax, 0xffffffff
je 0x4709ab
push 0x4891f0
push 0x4891f4
lea ecx, [ebp - 0x3c]
call fcn.00405ae0
push 0x5c
lea ecx, [ebp - 0x3c]
call fcn.00404a80
add eax, 1
push eax
push 0
lea ecx, [ebp - 0x3c]
call fcn.00405a20
push 0
push 0x4891f8
lea ecx, [ebp - 0x3c]
call fcn.00401de0
add eax, 1
push eax
push 0
lea ecx, [ebp - 0x3c]
call fcn.00405a20
push 0
push 0x4891fc
lea ecx, [ebp - 0x3c]
call fcn.00401de0
push eax
lea eax, [ebp - 0x2a8]
push eax
lea ecx, [ebp - 0x3c]
call fcn.00404b60
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x38]
push ecx
push str.Current_Installer_Channel_ID_Range_From
lea edx, [ebp - 0x29bc]
push edx
call fcn.00401f10
add esp, 0xc
mov dword [ebp - 0x2ad0], eax
mov eax, dword [ebp - 0x2ad0]
mov dword [ebp - 0x2ad4], eax
mov byte [ebp - 4], 0x1d
push 0x489200
mov ecx, dword [ebp - 0x2ad4]
push ecx
lea edx, [ebp - 0x29c0]
push edx
call fcn.00401e60
add esp, 0xc
mov dword [ebp - 0x2ad8], eax
mov eax, dword [ebp - 0x2ad8]
mov dword [ebp - 0x2adc], eax
mov byte [ebp - 4], 0x1e
push ecx
mov ecx, esp
mov dword [ebp - 0x29b8], esp
lea edx, [ebp - 0x2c]
push edx
mov eax, dword [ebp - 0x2adc]
push eax
push ecx
call fcn.00404be0
add esp, 0xc
mov dword [ebp - 0x2ae0], eax
mov ecx, dword [ebp - 0x29e0]
call fcn.0046e4a0
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x29c0]
call fcn.00405f40
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x29bc]
call fcn.00405f40
lea ecx, [ebp - 0x2a8]
call fcn.00401fe0
movzx ecx, al
test ecx, ecx
jne 0x47099c
lea ecx, [ebp - 0x2a8]
call fcn.00403e00
push eax
call fcn.0043c343
add esp, 4
test eax, eax
jle 0x47099c
lea ecx, [ebp - 0x2a8]
call fcn.00403e00
push eax
call fcn.0043c343
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x38]
call fcn.00403e00
push eax
call fcn.0043c343
add esp, 4
cmp esi, eax
jl 0x47096d
lea ecx, [ebp - 0x2a8]
call fcn.00403e00
push eax
call fcn.0043c343
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x2c]
call fcn.00403e00
push eax
call fcn.0043c343
add esp, 4
cmp esi, eax
jg 0x47096d
lea ecx, [ebp - 0x2a8]
call fcn.00405d10
push ecx
mov ecx, esp
mov dword [ebp - 0x29c4], esp
lea edx, [ebp - 0x2a8]
push edx
call fcn.00403480
mov dword [ebp - 0x2ae4], eax
mov eax, dword [ebp - 0x2ae4]
mov dword [ebp - 0x2ae8], eax
mov byte [ebp - 4], 0x1f
push ecx
mov ecx, esp
mov dword [ebp - 0x29c8], esp
push str.channelid
call fcn.00403620
mov dword [ebp - 0x2aec], eax
mov byte [ebp - 4], 0x1c
call fcn.0045c980
add esp, 8
push ecx
mov ecx, esp
mov dword [ebp - 0x29cc], esp
lea edx, [ebp - 0x2a8]
push edx
push str.Change_Channel_ID_To_:
push ecx
call fcn.00401f10
add esp, 0xc
mov dword [ebp - 0x2af0], eax
mov ecx, dword [ebp - 0x29e0]
call fcn.0046e4a0
jmp 0x47099c
push ecx
mov eax, esp
mov dword [ebp - 0x29d0], esp
lea ecx, [ebp - 0x2a8]
push ecx
push str.Channel_ID_Beyond_Range
push eax
call fcn.00401f10
add esp, 0xc
mov dword [ebp - 0x2af4], eax
mov ecx, dword [ebp - 0x29e0]
call fcn.0046e4a0
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x2a8]
call fcn.00405f40
lea edx, [ebp - 0x29d4]
push edx
mov ecx, dword [ebp - 0x29e0]
call fcn.0046f030
lea ecx, [ebp - 0x29d4]
call fcn.00405f40
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x29e0]
cmp dword [eax + 0xfc], 0
je 0x470a1d
push 0
lea ecx, [ebp - 0x163c]
call fcn.0046ba40
mov byte [ebp - 4], 0x20
mov ecx, dword [ebp - 0x29e0]
lea edx, [ebp - 0x163c]
mov dword [ecx + 0x20], edx
lea ecx, [ebp - 0x163c]
call fcn.004262ea
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x163c]
call fcn.004058b0
jmp 0x470a5a
push 0
lea ecx, [ebp - 0x2914]
call fcn.00475e10
mov byte [ebp - 4], 0x21
mov eax, dword [ebp - 0x29e0]
lea ecx, [ebp - 0x2914]
mov dword [eax + 0x20], ecx
lea ecx, [ebp - 0x2914]
call fcn.004262ea
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x2914]
call fcn.00475cc0
mov dword [ebp - 0x29d8], 0
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x2c]
call fcn.00405f40
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x38]
call fcn.00405f40
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3c]
call fcn.00405f40
mov eax, dword [ebp - 0x29d8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x68]
xor ecx, ebp
call fcn.0043bdb2
mov esp, ebp
pop ebp
ret