Function at 0x46f630
Capabilities:
Accept command line arguments
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 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 [0x47e618]
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x54]
push edx
call dword [0x47e624]
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 [0x47e660]
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 [0x47e620]
mov dword [ebp - 0x10], eax
push 0x58
mov ecx, dword [ebp - 0x10]
push ecx
call dword [0x47e0c0]
test eax, eax
jle 0x46f944
push 0x58
mov edx, dword [ebp - 0x10]
push edx
call dword [0x47e0c0]
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 [0x47e0c0]
mov dword [0x4a21e4], eax
push 0x5a
mov ecx, dword [ebp - 0x10]
push ecx
call dword [0x47e0c0]
mov dword [0x4a21e0], eax
mov edx, dword [ebp - 0x10]
push edx
push 0
call dword [0x47e61c]
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 [0x47e058]
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 [0x47e440]
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 [0x47e440]
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 [0x47e440]
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 [0x47e440]
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 [0x47e440]
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 [0x47e440]
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 [0x47e440]
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 [0x47e45c]
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 [0x47e45c]
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