Function at 0x46f630
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 0x47ac6b
mov eax, dword fs:[0]
push eax
mov eax, 0x2ae8
call fcn.0043ed00
mov eax, dword [0x49d7a0]
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 [0x4a1384], 1
jle 0x46f80e
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.00402e90
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x48]
call fcn.004053d0
push 0
push str._uinst
lea ecx, [ebp - 0x48]
call fcn.00401db0
cmp eax, 0xffffffff
je 0x46f6c5
mov ecx, dword [ebp - 0x29e0]
mov dword [ecx + 0xfc], 0
push 0
push 0x489d98
lea ecx, [ebp - 0x48]
call fcn.00401db0
cmp eax, 0xffffffff
jne 0x46f6ed
push 0
push 0x489da0
lea ecx, [ebp - 0x48]
call fcn.00401db0
cmp eax, 0xffffffff
je 0x46f6fd
mov edx, dword [ebp - 0x29e0]
mov dword [edx + 0x100], 1
push 0
push 0x489da8
lea ecx, [ebp - 0x48]
call fcn.00401db0
cmp eax, 0xffffffff
je 0x46f731
mov eax, dword [ebp - 0x29e0]
mov dword [eax + 0x104], 1
mov ecx, dword [ebp - 0x29e0]
mov dword [ecx + 0xfc], 1
push 0
push 0x489db8
lea ecx, [ebp - 0x48]
call fcn.00401db0
cmp eax, 0xffffffff
je 0x46f7ff
push 0
push 0x489dc0
lea ecx, [ebp - 0x48]
call fcn.00401db0
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.00405440
mov byte [ebp - 4], 1
push 0
push 0x489dc8
lea ecx, [ebp - 0x4c]
call fcn.00401db0
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0xffffffff
jne 0x46f7a1
lea ecx, [ebp - 0x4c]
push ecx
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x25c
call fcn.00403410
jmp 0x46f7f3
mov edx, dword [ebp - 0x50]
push edx
push 0
lea eax, [ebp - 0x2918]
push eax
lea ecx, [ebp - 0x4c]
call fcn.00405480
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.00403410
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2918]
call fcn.00405670
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x4c]
call fcn.00405670
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.00405670
mov eax, dword [ebp - 0x29e0]
cmp dword [eax + 0x104], 0
jne 0x46f8bf
push 0x489dcc
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 0x46f8bf
push ecx
mov ecx, esp
mov dword [ebp - 0x291c], esp
push 0x489df4
call fcn.00402e90
mov dword [ebp - 0x29ec], eax
mov ecx, 0x4a23d8
call fcn.0046e810
push 0x489e20
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 0x46f8b8
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 0x470e01
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 0x46f944
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 [0x4a21e4], eax
push 0x5a
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [0x4a21e0], eax
mov edx, dword [ebp - 0x10]
push edx
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
push 0x489e34
push 0
call fcn.0043d843
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.0046e210
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, 0x4a24d0
call fcn.00403410
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2920]
call fcn.00405670
mov ecx, dword [ebp - 0x29e0]
call fcn.0042745c
push 0
call fcn.0042846d
add esp, 4
mov ecx, dword [ebp - 0x29e0]
call fcn.0046dca0
push 0x104
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xb4
call fcn.00401230
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xb4
call fcn.00402e60
push 0
push 0x19
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xac
call fcn.00401230
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xac
call fcn.00402e60
push 0
push 0
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xb0
call fcn.00401230
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xb0
call fcn.00402e60
push 0
push 2
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd8
call fcn.00401230
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd8
call fcn.00402e60
push 0
push 0x17
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xc4
call fcn.00401230
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xc4
call fcn.00402e60
push 0x104
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xcc
call fcn.00401230
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xcc
call fcn.00402e60
push 0
push 0x14
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xc0
call fcn.00401230
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xc0
call fcn.00402e60
push 0x5c
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xcc
call fcn.00404270
add eax, 1
push eax
lea ecx, [ebp - 0x2924]
push ecx
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xcc
call fcn.00404350
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.00403410
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2924]
call fcn.00405670
push 0
push 0x1a
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd0
call fcn.00401230
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd0
call fcn.00402e60
push 0x104
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd4
call fcn.00401230
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd4
call fcn.00402e60
push 1
lea ecx, [ebp - 0x292c]
push ecx
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd4
call fcn.004042c0
mov dword [ebp - 0x2a00], eax
push 0x489e38
mov edx, dword [ebp - 0x2a00]
push edx
call fcn.00405560
add esp, 8
mov byte [ebp - 0x2925], al
lea ecx, [ebp - 0x292c]
call fcn.00405670
movzx eax, byte [ebp - 0x2925]
test eax, eax
je 0x46fcc4
push 0x489e3c
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd4
call fcn.004050a0
call fcn.00404690
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd4
call fcn.00401560
push eax
call fcn.0045c3e0
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x128
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x470092
lea ecx, [ebp - 0x278]
call fcn.00405650
mov dword [ebp - 4], 5
mov edx, dword [ebp - 0x29e0]
cmp dword [edx + 0x12c], 6
jae 0x46feba
push 0x489e40
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x11c
call fcn.00403280
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.00402e90
mov byte [ebp - 4], 6
push str.QiYi
lea edx, [ebp - 0x27c]
push edx
lea eax, [ebp - 0x2930]
push eax
call fcn.00401e30
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.00403410
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x2930]
call fcn.00405670
push str.QiYiQiyiClientcache_
lea eax, [ebp - 0x27c]
push eax
lea ecx, [ebp - 0x2934]
push ecx
call fcn.00401e30
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.00403410
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x2934]
call fcn.00405670
mov ecx, dword [ebp - 0x29e0]
cmp dword [ecx + 0x12c], 5
jne 0x46fe81
mov edx, dword [ebp - 0x29e0]
cmp dword [edx + 0x130], 1
jne 0x46fe42
push str.windowsXP
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x120
call fcn.00403280
jmp 0x46fe7f
mov eax, dword [ebp - 0x29e0]
cmp dword [eax + 0x130], 2
jne 0x46fe69
push str.windows2003
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x120
call fcn.00403280
jmp 0x46fe7f
push str.windows2000
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x120
call fcn.00403280
jmp 0x46fea6
mov ecx, dword [ebp - 0x29e0]
cmp dword [ecx + 0x12c], 5
jae 0x46fea6
push str.windows98
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x120
call fcn.00403280
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x27c]
call fcn.00405670
jmp 0x47006f
push 0x489edc
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x11c
call fcn.00403280
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.00402e90
mov byte [ebp - 4], 9
push 2
lea ecx, [ebp - 0x2938]
push ecx
lea ecx, [ebp - 0x280]
call fcn.00404350
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.00403410
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x2938]
call fcn.00405670
push str.UsersPublicQiYi
lea ecx, [ebp - 0x280]
push ecx
lea edx, [ebp - 0x293c]
push edx
call fcn.00401e30
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.00403410
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x293c]
call fcn.00405670
push str.UsersPublicQiYiQiyiClientcache_
lea edx, [ebp - 0x280]
push edx
lea eax, [ebp - 0x2940]
push eax
call fcn.00401e30
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.00403410
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x2940]
call fcn.00405670
mov eax, dword [ebp - 0x29e0]
cmp dword [eax + 0x12c], 6
jne 0x470060
mov ecx, dword [ebp - 0x29e0]
cmp dword [ecx + 0x130], 1
jne 0x470023
push str.windows7
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x120
call fcn.00403280
jmp 0x470060
mov edx, dword [ebp - 0x29e0]
cmp dword [edx + 0x130], 2
jne 0x47004a
push str.windows8
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x120
call fcn.00403280
jmp 0x470060
push str.windows_Vista
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x120
call fcn.00403280
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x280]
call fcn.00405670
lea ecx, [ebp - 0x278]
call fcn.00401560
push eax
call fcn.0045c3e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x278]
call fcn.00405670
push 0x489fa0
mov ecx, dword [ebp - 0x29e0]
add ecx, 0x11c
call fcn.00403280
push str.install.ini
mov eax, dword [ebp - 0x29e0]
add eax, 0xb8
push eax
lea ecx, [ebp - 0x2944]
push ecx
call fcn.00401e30
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.00403410
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2944]
call fcn.00405670
push 0x489fc0
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xb8
push ecx
lea edx, [ebp - 0x2948]
push edx
call fcn.00401e30
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.00403410
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2948]
call fcn.00405670
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xbc
call fcn.00401560
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x47030f
push ecx
mov ecx, esp
mov dword [ebp - 0x2950], esp
push str.main_version
call fcn.00402e90
mov dword [ebp - 0x2a3c], eax
lea edx, [ebp - 0x2954]
push edx
call fcn.0045c9c0
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.00401fb0
movzx edx, al
test edx, edx
jne 0x470258
push ecx
mov ecx, esp
mov dword [ebp - 0x2958], esp
push 0x48a000
call fcn.00402e90
mov dword [ebp - 0x2a48], eax
lea eax, [ebp - 0x295c]
push eax
call fcn.0045c9c0
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.00401fb0
movzx eax, al
test eax, eax
jne 0x470258
mov dword [ebp - 0x2a54], 0
jmp 0x470262
mov dword [ebp - 0x2a54], 1
mov cl, byte [ebp - 0x2a54]
mov byte [ebp - 0x2949], cl
mov edx, dword [ebp - 0x29dc]
and edx, 2
je 0x47028b
and dword [ebp - 0x29dc], 0xfffffffd
lea ecx, [ebp - 0x295c]
call fcn.00405670
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x29dc]
and eax, 1
je 0x4702af
and dword [ebp - 0x29dc], 0xfffffffe
lea ecx, [ebp - 0x2954]
call fcn.00405670
movzx ecx, byte [ebp - 0x2949]
test ecx, ecx
je 0x47030f
mov edx, dword [ebp - 0x29e0]
add edx, 0xbc
push edx
push str.Invalid_Install.ini
lea eax, [ebp - 0x2960]
push eax
call fcn.00401ee0
add esp, 0xc
mov dword [ebp - 0x2a58], eax
mov ecx, dword [ebp - 0x2a58]
call fcn.00401560
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [ebp - 0x2960]
call fcn.00405670
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xbc
call fcn.004033a0
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xbc
call fcn.00401560
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4705fa
push 0x48a044
push 0x320
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x284], eax
cmp dword [ebp - 0x284], 0
je 0x4705e5
push 0x48a04c
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xd4
push ecx
lea edx, [ebp - 0x2964]
push edx
call fcn.00401e30
add esp, 0xc
mov dword [ebp - 0x2a5c], eax
mov ecx, dword [ebp - 0x2a5c]
call fcn.00401560
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x2964]
call fcn.00405670
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 0x4705e3
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.00429500
mov dword [ebp - 4], 0x10
push 0x48a070
mov eax, dword [ebp - 0x29e0]
add eax, 0xd4
push eax
lea ecx, [ebp - 0x296c]
push ecx
call fcn.00401e30
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.00401560
push eax
lea ecx, [ebp - 0x29c]
call fcn.0042997f
mov dword [ebp - 0x2968], eax
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x296c]
call fcn.00405670
cmp dword [ebp - 0x2968], 0
je 0x4705c4
mov eax, dword [ebp - 0x28c]
push eax
mov ecx, dword [ebp - 0x2a0]
push ecx
lea ecx, [ebp - 0x29c]
call fcn.0042924e
lea ecx, [ebp - 0x29c]
call fcn.00429334
lea ecx, [ebp - 0x29c]
call fcn.0042949e
push str.qiyi_install.ini
mov edx, dword [ebp - 0x29e0]
add edx, 0xd4
push edx
lea eax, [ebp - 0x2970]
push eax
call fcn.00401e30
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.00403410
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x2970]
call fcn.00405670
mov eax, dword [ebp - 0x29e0]
cmp dword [eax + 0xfc], 0
je 0x470566
push str.QiyiClientQiyiInstaller.log
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xa8
push ecx
lea edx, [ebp - 0x2974]
push edx
call fcn.00401e30
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.00403410
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x2974]
call fcn.00405670
jmp 0x4705c4
push str.QiyiInstaller.log
mov edx, dword [ebp - 0x29e0]
add edx, 0xd4
push edx
lea eax, [ebp - 0x2978]
push eax
call fcn.00401e30
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.00403410
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x2978]
call fcn.00405670
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.0042960d
jmp 0x4705fa
push 0
push 0
push str.b_rN0R
call fcn.00424028
xor eax, eax
jmp 0x470e01
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xc8
call fcn.00401560
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0
push 0x1041
mov ecx, dword [ebp - 0x29e0]
add ecx, 0xc8
call fcn.00401560
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.00406110
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.0046e950
push 0x48a130
mov ecx, dword [ebp - 0x29e0]
call fcn.0042a224
push 0x48a150
push ecx
mov ecx, esp
mov dword [ebp - 0x2980], esp
push 0x48a154
call fcn.00402e90
mov dword [ebp - 0x2a80], eax
lea eax, [ebp - 0x2984]
push eax
call fcn.0045c9c0
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.00401f90
add esp, 8
mov byte [ebp - 0x2979], al
lea ecx, [ebp - 0x2984]
call fcn.00405670
movzx eax, byte [ebp - 0x2979]
test eax, eax
je 0x470719
mov ecx, dword [ebp - 0x29e0]
mov dword [ecx + 0x100], 1
push 0x48a164
push ecx
mov ecx, esp
mov dword [ebp - 0x298c], esp
push 0x48a168
call fcn.00402e90
mov dword [ebp - 0x2a8c], eax
lea edx, [ebp - 0x2990]
push edx
call fcn.0045c9c0
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.00401f90
add esp, 8
mov byte [ebp - 0x2985], al
lea ecx, [ebp - 0x2990]
call fcn.00405670
movzx edx, byte [ebp - 0x2985]
test edx, edx
je 0x470793
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.00402e90
mov dword [ebp - 4], 0x15
lea ecx, [ebp - 0x3c]
call fcn.004053d0
push ecx
mov ecx, esp
mov dword [ebp - 0x2994], esp
push str.mincid
call fcn.00402e90
mov dword [ebp - 0x2a98], eax
lea edx, [ebp - 0x38]
push edx
call fcn.0045c9c0
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.00402e90
mov dword [ebp - 0x2aa0], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0045c9c0
add esp, 8
mov dword [ebp - 0x2aa4], eax
mov byte [ebp - 4], 0x17
push 0
push str._cid
lea ecx, [ebp - 0x3c]
call fcn.00401db0
cmp eax, 0xffffffff
je 0x470a68
push 0x48a1a4
lea ecx, [ebp - 0x3c]
call fcn.004050a0
push 0
push 0x48a1a8
lea ecx, [ebp - 0x3c]
call fcn.00401db0
add eax, 5
push eax
push 0
lea ecx, [ebp - 0x3c]
call fcn.004050c0
push 0
push 0x48a1b4
lea ecx, [ebp - 0x3c]
call fcn.00401db0
push eax
lea ecx, [ebp - 0x2a4]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.00404350
mov byte [ebp - 4], 0x18
lea edx, [ebp - 0x38]
push edx
push 0x48a1c8
lea eax, [ebp - 0x29a0]
push eax
call fcn.00401ee0
add esp, 0xc
mov dword [ebp - 0x2aa8], eax
mov ecx, dword [ebp - 0x2aa8]
mov dword [ebp - 0x2aac], ecx
mov byte [ebp - 4], 0x19
push 0x48a1b8
mov edx, dword [ebp - 0x2aac]
push edx
lea eax, [ebp - 0x29a4]
push eax
call fcn.00401e30
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.004043d0
add esp, 0xc
mov dword [ebp - 0x2ab8], eax
mov ecx, dword [ebp - 0x29e0]
call fcn.0046e810
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x29a4]
call fcn.00405670
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x29a0]
call fcn.00405670
lea ecx, [ebp - 0x2a4]
call fcn.00401fb0
movzx edx, al
test edx, edx
jne 0x470a54
lea ecx, [ebp - 0x2a4]
call fcn.00401560
push eax
call fcn.0043c323
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x38]
call fcn.00401560
push eax
call fcn.0043c323
add esp, 4
cmp esi, eax
jl 0x470a25
lea ecx, [ebp - 0x2a4]
call fcn.00401560
push eax
call fcn.0043c323
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x2c]
call fcn.00401560
push eax
call fcn.0043c323
add esp, 4
cmp esi, eax
jg 0x470a25
lea ecx, [ebp - 0x2a4]
call fcn.00405420
push ecx
mov ecx, esp
mov dword [ebp - 0x29a8], esp
lea eax, [ebp - 0x2a4]
push eax
call fcn.00402cf0
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 0x48a21c
call fcn.00402e90
mov dword [ebp - 0x2ac4], eax
mov byte [ebp - 4], 0x18
call fcn.0045c970
add esp, 8
push ecx
mov edx, esp
mov dword [ebp - 0x29b0], esp
lea eax, [ebp - 0x2a4]
push eax
push 0x48a230
push edx
call fcn.00401ee0
add esp, 0xc
mov dword [ebp - 0x2ac8], eax
mov ecx, dword [ebp - 0x29e0]
call fcn.0046e810
jmp 0x470a54
push ecx
mov ecx, esp
mov dword [ebp - 0x29b4], esp
lea edx, [ebp - 0x2a4]
push edx
push 0x48a260
push ecx
call fcn.00401ee0
add esp, 0xc
mov dword [ebp - 0x2acc], eax
mov ecx, dword [ebp - 0x29e0]
call fcn.0046e810
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x2a4]
call fcn.00405670
jmp 0x470d1b
lea ecx, [ebp - 0x38]
call fcn.00401560
push eax
call fcn.0043c323
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x2c]
call fcn.00401560
push eax
call fcn.0043c323
add esp, 4
cmp esi, eax
jge 0x470d1b
push 0
push 0x48a294
lea ecx, [ebp - 0x3c]
call fcn.00401db0
cmp eax, 0xffffffff
je 0x470d1b
push 0x48a298
push 0x48a29c
lea ecx, [ebp - 0x3c]
call fcn.00405180
push 0x5c
lea ecx, [ebp - 0x3c]
call fcn.00404270
add eax, 1
push eax
push 0
lea ecx, [ebp - 0x3c]
call fcn.004050c0
push 0
push 0x48a2a0
lea ecx, [ebp - 0x3c]
call fcn.00401db0
add eax, 1
push eax
push 0
lea ecx, [ebp - 0x3c]
call fcn.004050c0
push 0
push 0x48a2a4
lea ecx, [ebp - 0x3c]
call fcn.00401db0
push eax
lea eax, [ebp - 0x2a8]
push eax
lea ecx, [ebp - 0x3c]
call fcn.00404350
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.00401ee0
add esp, 0xc
mov dword [ebp - 0x2ad0], eax
mov eax, dword [ebp - 0x2ad0]
mov dword [ebp - 0x2ad4], eax
mov byte [ebp - 4], 0x1d
push 0x48a2a8
mov ecx, dword [ebp - 0x2ad4]
push ecx
lea edx, [ebp - 0x29c0]
push edx
call fcn.00401e30
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.004043d0
add esp, 0xc
mov dword [ebp - 0x2ae0], eax
mov ecx, dword [ebp - 0x29e0]
call fcn.0046e810
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x29c0]
call fcn.00405670
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x29bc]
call fcn.00405670
lea ecx, [ebp - 0x2a8]
call fcn.00401fb0
movzx ecx, al
test ecx, ecx
jne 0x470d0c
lea ecx, [ebp - 0x2a8]
call fcn.00401560
push eax
call fcn.0043c323
add esp, 4
test eax, eax
jle 0x470d0c
lea ecx, [ebp - 0x2a8]
call fcn.00401560
push eax
call fcn.0043c323
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x38]
call fcn.00401560
push eax
call fcn.0043c323
add esp, 4
cmp esi, eax
jl 0x470cdd
lea ecx, [ebp - 0x2a8]
call fcn.00401560
push eax
call fcn.0043c323
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x2c]
call fcn.00401560
push eax
call fcn.0043c323
add esp, 4
cmp esi, eax
jg 0x470cdd
lea ecx, [ebp - 0x2a8]
call fcn.00405420
push ecx
mov ecx, esp
mov dword [ebp - 0x29c4], esp
lea edx, [ebp - 0x2a8]
push edx
call fcn.00402cf0
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.00402e90
mov dword [ebp - 0x2aec], eax
mov byte [ebp - 4], 0x1c
call fcn.0045c970
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.00401ee0
add esp, 0xc
mov dword [ebp - 0x2af0], eax
mov ecx, dword [ebp - 0x29e0]
call fcn.0046e810
jmp 0x470d0c
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.00401ee0
add esp, 0xc
mov dword [ebp - 0x2af4], eax
mov ecx, dword [ebp - 0x29e0]
call fcn.0046e810
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x2a8]
call fcn.00405670
lea edx, [ebp - 0x29d4]
push edx
mov ecx, dword [ebp - 0x29e0]
call fcn.0046f3a0
lea ecx, [ebp - 0x29d4]
call fcn.00405670
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x29e0]
cmp dword [eax + 0xfc], 0
je 0x470d8d
push 0
lea ecx, [ebp - 0x163c]
call fcn.0046bbf0
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.004262f3
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x163c]
call fcn.00404f50
jmp 0x470dca
push 0
lea ecx, [ebp - 0x2914]
call fcn.00476190
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.004262f3
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x2914]
call fcn.00476040
mov dword [ebp - 0x29d8], 0
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x2c]
call fcn.00405670
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x38]
call fcn.00405670
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3c]
call fcn.00405670
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.0043bd9a
mov esp, ebp
pop ebp
ret