Function at 0x4060c8
Capabilities:
Check if file exists
Create directory
Create process on windows
Create shortcut via ishelllink
Delete directory
Delete file
Get common file path
Get file size
Persist via lnk shortcut
Read file on windows
Set registry value
Write and execute a file
Write file on windows

Disassembly:
push 0x8b8
mov eax, 0x44d1ac
call fcn.00439970
mov eax, dword [ebp + 8]
mov dword [ebp - 0x77c], eax
lea eax, [ebp - 0x798]
push eax
lea eax, [ebp - 0x7d8]
mov esi, ecx
push eax
mov dword [ebp - 0x784], esi
call fcn.004048c9
pop ecx
pop ecx
xor ebx, ebx
mov dword [ebp - 4], ebx
mov ecx, dword [ebp - 0x7d8]
mov eax, dword [ecx - 0xc]
cmp eax, ebx
je 0x406147
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x406147
mov eax, dword [ebp - 0x7d8]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x798], esp
mov edi, esp
call fcn.00402e21
add eax, 0x10
mov ecx, esi
mov dword [edi], eax
call fcn.004082e9
mov dword [esi + 0x9f0], 3
lea esi, [ebp - 0x7d0]
mov dword [ebp - 0x7d4], ebx
mov dword [ebp - 0x7ac], ebx
call fcn.00426770
push ebx
push 0x80
push 3
push ebx
push 1
push closesocket
mov byte [ebp - 4], 1
push dword [ebp - 0x7d0]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x4061fe
push ebx
push edi
mov dword [ebp - 0x788], ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push 0x3e
mov dword [ebp - 0x7d4], eax
lea eax, [ebp - 0x6da]
push ebx
push eax
mov word [ebp - 0x6dc], bx
call fcn.00434800
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
add esp, 0xc
push ebx
lea eax, [ebp - 0x788]
push eax
push 0x40
lea eax, [ebp - 0x6dc]
push eax
push edi
call esi
test eax, eax
je 0x4061f7
mov eax, dword [ebp - 0x6a0]
push ebx
push ebx
add eax, 0xfffffffc
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebx
lea eax, [ebp - 0x788]
push eax
push 4
lea eax, [ebp - 0x7ac]
push eax
push edi
call esi
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x7ac]
cmp eax, ebx
jbe 0x408127
cmp eax, dword [ebp - 0x7d4]
ja 0x408127
push 0xf
pop esi
push ebx
lea ecx, [ebp - 0x638]
mov dword [ebp - 0x620], esi
call fcn.00401353
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x7d0]
lea edi, [ebp - 0x638]
call fcn.00426420
test eax, eax
jne 0x40627a
push 2
pop esi
push ebx
push 1
lea ecx, [ebp - 0x638]
call fcn.00401308
mov eax, dword [ebp - 0x7d0]
add eax, 0xfffffff0
call fcn.00402f9a
mov eax, dword [ebp - 0x7d8]
add eax, 0xfffffff0
call fcn.00402f9a
mov eax, esi
jmp 0x408146
cmp dword [ebp - 0x620], 0x10
mov eax, dword [ebp - 0x634]
mov dword [ebp - 0x7b4], ebx
jae 0x406295
lea eax, [ebp - 0x634]
mov ecx, dword [ebp - 0x7ac]
add eax, ecx
push 4
push eax
lea eax, [ebp - 0x7b4]
push eax
call fcn.00434880
mov eax, dword [ebp - 0x7d4]
sub eax, dword [ebp - 0x7ac]
add esp, 0xc
cmp dword [ebp - 0x7b4], eax
jbe 0x4062c7
push 3
jmp 0x406248
push ebx
lea ecx, [ebp - 0x694]
mov dword [ebp - 0x67c], esi
call fcn.00401353
mov byte [ebp - 4], 3
cmp dword [ebp - 0x620], 0x10
mov eax, dword [ebp - 0x634]
jae 0x4062f2
lea eax, [ebp - 0x634]
mov ecx, dword [ebp - 0x7ac]
push dword [ebp - 0x7b4]
lea eax, [eax + ecx + 4]
push eax
lea eax, [ebp - 0x694]
call fcn.00404b75
fldz
fstp qword [ebp - 0x7cc]
mov dword [ebp - 0x7c4], ebx
lea eax, [ebp - 0x694]
lea esi, [ebp - 0x7cc]
mov byte [ebp - 4], 4
call fcn.00427de0
test al, al
jne 0x406355
mov ecx, esi
mov byte [ebp - 4], 3
call fcn.00427210
push ebx
push 1
lea ecx, [ebp - 0x694]
call fcn.00401308
push 4
jmp 0x406248
cmp dword [ebp - 0x620], 0x10
mov eax, dword [ebp - 0x634]
mov dword [ebp - 0x7b8], ebx
jae 0x406370
lea eax, [ebp - 0x634]
mov ecx, dword [ebp - 0x7b4]
add eax, ecx
mov ecx, dword [ebp - 0x7ac]
lea eax, [eax + ecx + 4]
push 4
push eax
lea eax, [ebp - 0x7b8]
push eax
call fcn.00434880
mov eax, dword [ebp - 0x7d4]
sub eax, dword [ebp - 0x7b4]
add esp, 0xc
sub eax, dword [ebp - 0x7ac]
sub eax, 4
cmp dword [ebp - 0x7b8], eax
jbe 0x4063d5
lea ecx, [ebp - 0x7cc]
mov byte [ebp - 4], 3
call fcn.00427210
push ebx
push 1
lea ecx, [ebp - 0x694]
call fcn.00401308
push 5
jmp 0x406248
mov eax, dword [0x45fb34]
mov ecx, 0x45fb34
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x7a4], eax
lea esi, [ebp - 0x78c]
mov byte [ebp - 4], 5
call fcn.00426680
mov esi, eax
push str..zip
push ecx
mov byte [ebp - 4], 6
call fcn.0042dc70
pop ecx
push edx
push eax
push dword [esi]
lea eax, [ebp - 0x7a4]
push str._s_016I64X_s
push eax
call fcn.00402dc0
mov eax, dword [ebp - 0x78c]
add esp, 0x18
add eax, 0xfffffff0
call fcn.00402f9a
push ebx
lea ecx, [ebp - 0x678]
mov dword [ebp - 0x660], 0xf
call fcn.00401353
mov byte [ebp - 4], 7
cmp dword [ebp - 0x620], 0x10
mov eax, dword [ebp - 0x634]
jae 0x406461
lea eax, [ebp - 0x634]
mov ecx, dword [ebp - 0x7b4]
push dword [ebp - 0x7b8]
add eax, ecx
mov ecx, dword [ebp - 0x7ac]
lea eax, [eax + ecx + 8]
push eax
lea eax, [ebp - 0x678]
call fcn.00404b75
mov edi, dword [ebp - 0x7a4]
lea esi, [ebp - 0x678]
mov eax, edi
call fcn.00426230
test eax, eax
jne 0x4064d2
push ebx
push 1
mov ecx, esi
call fcn.00401308
lea eax, [edi - 0x10]
call fcn.00402f9a
lea ecx, [ebp - 0x7cc]
mov byte [ebp - 4], 3
call fcn.00427210
push ebx
push 1
lea ecx, [ebp - 0x694]
call fcn.00401308
push 6
jmp 0x406248
lea eax, [ebp - 0x81c]
push eax
call fcn.0042d1c0
lea eax, [ebp - 0x850]
push eax
mov byte [ebp - 4], 8
call fcn.0042d1c0
mov esi, dword [ebp - 0x784]
add esi, 0x470
mov byte [ebp - 4], 9
mov eax, dword [esi]
cmp dword [eax - 0xc], ebx
jne 0x40655b
lea esi, [ebp - 0x850]
call fcn.0042d210
lea edi, [ebp - 0x81c]
call fcn.0042c530
push ebx
push 1
lea ecx, [ebp - 0x678]
call fcn.00401308
mov eax, dword [ebp - 0x7a4]
add eax, 0xfffffff0
call fcn.00402f9a
lea ecx, [ebp - 0x7cc]
mov byte [ebp - 4], 3
call fcn.00427210
push ebx
push 1
lea ecx, [ebp - 0x694]
call fcn.00401308
push 9
jmp 0x406248
cmp dword [ebp - 0x660], 0x10
mov edx, dword [ebp - 0x674]
jae 0x406570
lea edx, [ebp - 0x674]
push dword [ebp - 0x664]
lea ecx, [ebp - 0x774]
call fcn.0040580a
push ebx
push eax
lea eax, [ebp - 0x81c]
push eax
call fcn.0042c640
mov edi, dword [ebp - 0x77c]
push eax
push edi
call fcn.004031ed
push dword [edi]
push esi
call fcn.00402c6d
test eax, eax
jne 0x406505
fldz
mov dword [ebp - 0x788], ebx
fstp qword [ebp - 0x7fc]
mov dword [ebp - 0x77c], ebx
mov dword [ebp - 0x7f4], ebx
mov byte [ebp - 4], 0xa
mov eax, dword [0x45fb34]
mov ecx, 0x45fb34
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x7a8], eax
push 0xa
lea eax, [ebp - 0x7a8]
push str.ck_W_rY6R
push eax
mov byte [ebp - 4], 0xb
call fcn.00402dc0
mov esi, dword [ebp - 0x784]
mov edi, dword [ebp - 0x7a8]
add esp, 0xc
push dword [esi + 0x440]
call fcn.0041e430
mov ecx, dword [esi + 0x444]
push 0xa
pop eax
call fcn.0041f630
mov eax, dword [ebp - 0x7a4]
call fcn.0042ff40
cmp eax, ebx
mov dword [ebp - 0x794], eax
jne 0x4066af
push dword [ebp - 0x7a4]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, edi
add eax, 0xfffffff0
call fcn.00402f9a
lea ecx, [ebp - 0x7fc]
mov byte [ebp - 4], 9
call fcn.00427210
lea esi, [ebp - 0x850]
call fcn.0042d210
lea edi, [ebp - 0x81c]
call fcn.0042c530
push ebx
push 1
lea ecx, [ebp - 0x678]
call fcn.00401308
mov eax, dword [ebp - 0x7a4]
add eax, 0xfffffff0
call fcn.00402f9a
lea ecx, [ebp - 0x7cc]
mov byte [ebp - 4], 3
call fcn.00427210
push ebx
push 1
lea ecx, [ebp - 0x694]
call fcn.00401308
push 7
jmp 0x406248
mov esi, dword [ebp - 0x794]
mov dword [ebp - 0x790], 1
call fcn.00430ae0
cmp eax, ebx
jne 0x406d6d
push 0x50
lea eax, [ebp - 0x8c4]
push ebx
push eax
call fcn.00434800
add esp, 0xc
push 0x3ff
lea eax, [ebp - 0x61b]
push ebx
push eax
mov byte [ebp - 0x61c], bl
call fcn.00434800
add esp, 0xc
push dword [ebp - 0x794]
lea eax, [ebp - 0x61c]
lea esi, [ebp - 0x8c4]
call fcn.00430a20
test eax, eax
pop ecx
jne 0x406fd8
lea eax, [ebp - 0x6b8]
push eax
call fcn.0042d1c0
push ebx
lea eax, [ebp - 0x61c]
push eax
lea eax, [ebp - 0x6b8]
push eax
mov byte [ebp - 4], 0xc
call fcn.0042c640
lea ecx, [ebp - 0x778]
push ecx
mov ecx, eax
call fcn.00403216
lea eax, [ebp - 0x778]
mov byte [ebp - 4], 0xd
call fcn.00404ac3
mov ecx, dword [ebp - 0x778]
cmp dword [ecx - 0xc], ebx
je 0x406ffd
mov edi, dword [ebp - 0x784]
cmp dword [edi + 0xa3c], ebx
je 0x40679a
push 0x4535f4
lea esi, [ebp - 0x778]
call fcn.00401cda
cmp eax, 0xffffffff
jne 0x4067af
cmp dword [edi + 0xa3c], ebx
mov ecx, dword [ebp - 0x778]
jne 0x4067e4
push 0x4535fc
lea esi, [ebp - 0x778]
call fcn.00401cda
cmp eax, 0xffffffff
je 0x4067de
mov esi, dword [ebp - 0x794]
call fcn.00430b40
mov esi, eax
mov eax, dword [ebp - 0x778]
add eax, 0xfffffff0
call fcn.00402f9a
lea edi, [ebp - 0x6b8]
mov byte [ebp - 4], 0xb
call fcn.0042c530
jmp 0x406d65
mov ecx, dword [ebp - 0x778]
mov eax, dword [ecx - 0xc]
lea edx, [eax - 1]
cmp edx, ebx
jl 0x40711a
cmp edx, eax
jg 0x40711a
movzx ecx, word [ecx + edx*2]
cmp cx, 0x2f
jne 0x4068cf
lea ecx, [ebp - 0x778]
dec eax
push ecx
call fcn.0040a329
mov eax, dword [edi + 0x464]
sub eax, 0x10
call fcn.00402e21
add eax, 0x10
mov dword [ebp - 0x780], eax
mov byte [ebp - 4], 0xe
push dword [ebp - 0x778]
lea ecx, [ebp - 0x780]
push 0x453604
call fcn.00404f2a
mov esi, dword [ebp - 0x780]
pop ecx
pop ecx
push ebx
push esi
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
cmp eax, ebx
je 0x406866
cmp eax, 0xb7
jne 0x40703b
push esi
lea eax, [ebp - 0x6b8]
call fcn.0042c620
lea ecx, [ebp - 0x850]
push ecx
call fcn.0042d3a0
push eax
lea ebx, [ebp - 0x7ec]
call fcn.004271a0
push str.folders
lea ecx, [ebp - 0x7fc]
mov byte [ebp - 4], 0xf
call fcn.00427700
mov edx, eax
mov eax, dword [ebp - 0x77c]
call fcn.004275e0
mov edi, ebx
call fcn.004273f0
mov ecx, ebx
mov byte [ebp - 4], 0xe
call fcn.00427210
inc dword [ebp - 0x77c]
mov byte [ebp - 4], 0xd
lea eax, [esi - 0x10]
jmp 0x406d34
mov eax, dword [0x45fb34]
mov ecx, 0x45fb34
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x7a0], eax
mov byte [ebp - 4], 0x10
push dword [ebp - 0x778]
lea eax, [ebp - 0x7a0]
push dword [edi + 0x464]
push str._s_s
push eax
call fcn.00402dc0
add esp, 0x10
cmp dword [edi + 0xa3c], ebx
mov eax, str.x64
jne 0x40691b
mov eax, str.x86
push 0x453370
push eax
lea eax, [ebp - 0x7a0]
push eax
call fcn.0040a3b1
mov eax, dword [ebp - 0x7a0]
add eax, 0xfffffff0
mov dword [ebp - 0x798], eax
call fcn.00402e21
add eax, 0x10
mov dword [ebp - 0x7b0], eax
lea esi, [ebp - 0x7b0]
mov byte [ebp - 4], 0x11
call fcn.00404b5e
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
mov esi, dword [ebp - 0x7b0]
je 0x4069f9
cmp esi, ebx
jne 0x406976
xor eax, eax
jmp 0x40697d
push esi
call fcn.00434f36
pop ecx
lea edx, [ebp - 0x7b0]
call fcn.00402f31
push ebx
push esi
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
cmp eax, ebx
je 0x4069a0
cmp eax, 0xb7
jne 0x407068
push esi
lea eax, [ebp - 0x6b8]
call fcn.0042c620
lea ecx, [ebp - 0x850]
push ecx
call fcn.0042d3a0
push eax
lea ebx, [ebp - 0x654]
call fcn.004271a0
push str.folders
lea ecx, [ebp - 0x7fc]
mov byte [ebp - 4], 0x12
call fcn.00427700
mov edx, eax
mov eax, dword [ebp - 0x77c]
call fcn.004275e0
mov edi, ebx
call fcn.004273f0
mov ecx, ebx
mov byte [ebp - 4], 0x11
call fcn.00427210
xor ebx, ebx
push dword [ebp - 0x794]
call fcn.00430e80
cmp eax, ebx
pop ecx
jne 0x406cc0
test byte [0x4608c8], 1
mov edi, 0x45fb34
jne 0x406a3f
mov eax, dword [0x45fb34]
or dword [0x4608c8], 1
mov ecx, edi
call dword [eax + 0xc]
add eax, 0x10
push 0x44d3db
mov dword [0x4608c4], eax
call fcn.0043704f
pop ecx
push 0x4536a4
push dword [ebp - 0x7a0]
lea eax, [ebp - 0x79c]
push eax
mov dword [ebp - 0x79c], ebx
call fcn.004371d8
add esp, 0xc
cmp dword [ebp - 0x79c], ebx
jne 0x406bfa
mov eax, dword [0x45fb34]
mov ecx, edi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x780], eax
mov byte [ebp - 4], 0x13
push dword [ebp - 0x7a0]
lea ecx, [ebp - 0x780]
call fcn.004092ce
test eax, eax
je 0x406b31
mov eax, dword [0x45fb34]
mov ecx, edi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x78c], eax
mov byte [ebp - 4], 0x14
push dword [ebp - 0x780]
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea eax, [ebp - 0x78c]
push 0x4536b0
push eax
call fcn.00402dc0
mov edi, dword [ebp - 0x78c]
mov eax, dword [ebp - 0x784]
add esp, 0xc
push 0x24
push 0x4536fc
push edi
push dword [eax + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x406b25
push dword [ebp - 0x780]
call fcn.004091a8
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x4536a4
push dword [ebp - 0x7a0]
lea eax, [ebp - 0x79c]
push eax
call fcn.004371d8
add esp, 0xc
lea eax, [edi - 0x10]
mov byte [ebp - 4], 0x13
call fcn.00402f9a
cmp dword [ebp - 0x79c], ebx
jne 0x406be8
push dword [ebp - 0x7a0]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x406bc2
mov edi, str..old
lea eax, [ebp - 0x820]
push edi
push eax
lea ecx, [ebp - 0x7a0]
call fcn.00401d56
mov byte [ebp - 4], 0x15
mov eax, dword [eax]
push dword [ebp - 0x7a0]
mov ecx, eax
call fcn.00426960
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x820]
add esp, 0xc
add eax, 0xfffffff0
call fcn.00402f9a
lea eax, [ebp - 0x824]
push edi
push eax
lea ecx, [ebp - 0x7a0]
call fcn.00401d56
pop ecx
pop ecx
mov edi, 0x4608c4
mov byte [ebp - 4], 0x16
call fcn.00404a69
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x824]
add eax, 0xfffffff0
call fcn.00402f9a
push 0x4536a4
push dword [ebp - 0x7a0]
lea eax, [ebp - 0x79c]
push eax
call fcn.004371d8
add esp, 0xc
cmp dword [ebp - 0x79c], ebx
je 0x40709e
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x780]
add eax, 0xfffffff0
call fcn.00402f9a
push 0x80000
call fcn.004351d9
pop ecx
mov dword [ebp - 0x780], eax
push eax
jmp 0x406c2f
push dword [ebp - 0x79c]
push edi
push 1
push dword [ebp - 0x780]
call fcn.00437387
add esp, 0x10
cmp edi, eax
jne 0x406c43
push dword [ebp - 0x780]
mov eax, dword [ebp - 0x794]
call fcn.00431050
mov edi, eax
cmp edi, ebx
pop ecx
jg 0x406c0e
jmp 0x406c64
mov eax, dword [ebp - 0x784]
push ebx
push str.write_file_failed
push dword [ebp - 0x778]
mov dword [ebp - 0x790], ebx
push dword [eax + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
push dword [ebp - 0x780]
call fcn.00434d1f
pop ecx
push dword [ebp - 0x79c]
call fcn.0043747b
mov ebx, dword [ebp - 0x794]
pop ecx
call fcn.00431300
push dword [0x4608c4]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x406cb3
push dword [0x4608c4]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, 0x4608c4
call fcn.00402ef1
mov esi, dword [ebp - 0x7b0]
cmp dword [ebp - 0x790], 0
je 0x407113
push dword [ebp - 0x7a0]
lea eax, [ebp - 0x6b8]
call fcn.0042c620
lea ecx, [ebp - 0x850]
push ecx
call fcn.0042d3a0
push eax
lea ebx, [ebp - 0x86c]
call fcn.004271a0
push str.files
lea ecx, [ebp - 0x7fc]
mov byte [ebp - 4], 0x17
call fcn.00427700
mov edx, eax
mov eax, dword [ebp - 0x788]
call fcn.004275e0
mov edi, ebx
call fcn.004273f0
mov ecx, ebx
mov byte [ebp - 4], 0x11
call fcn.00427210
inc dword [ebp - 0x788]
lea eax, [esi - 0x10]
call fcn.00402f9a
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x798]
call fcn.00402f9a
mov esi, dword [ebp - 0x794]
call fcn.00430b40
mov esi, eax
mov eax, dword [ebp - 0x778]
add eax, 0xfffffff0
call fcn.00402f9a
lea edi, [ebp - 0x6b8]
mov byte [ebp - 4], 0xb
call fcn.0042c530
xor ebx, ebx
cmp esi, ebx
je 0x4066cc
mov eax, dword [ebp - 0x794]
call fcn.00430540
mov edi, dword [ebp - 0x784]
lea eax, [edi + 0x464]
mov dword [ebp - 0x79c], eax
mov eax, dword [eax]
sub eax, 0x10
call fcn.00402e21
add eax, 0x10
mov dword [ebp - 0x7b0], eax
mov byte [ebp - 4], 0x18
cmp dword [edi + 0xa3c], ebx
mov eax, str.x64
jne 0x406db3
mov eax, str.x86
push eax
push 0x453604
lea ecx, [ebp - 0x7b0]
call fcn.00404f2a
mov esi, dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
pop ecx
pop ecx
push dword [ebp - 0x7b0]
call esi
push dword [ebp - 0x7a4]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [ebp - 0x790], ebx
jne 0x407124
push str.files
lea ecx, [ebp - 0x7fc]
call fcn.00427700
push eax
lea ecx, [ebp - 0x7ec]
call fcn.004271f0
mov byte [ebp - 4], 0x19
lea eax, [ebp - 0x7ec]
mov dword [ebp - 0x77c], ebx
call fcn.004275b0
test eax, eax
mov edi, 0xfde9
jbe 0x406e97
mov ecx, dword [ebp - 0x77c]
lea edx, [ebp - 0x7ec]
call fcn.00427600
call fcn.00427590
lea ecx, [ebp - 0x850]
push ecx
call fcn.0042d5a0
push edi
push eax
lea eax, [ebp - 0x81c]
push eax
call fcn.0042c640
lea ecx, [ebp - 0x78c]
push ecx
mov ecx, eax
call fcn.00403216
push dword [ebp - 0x78c]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [ebp - 0x78c]
add eax, 0xfffffff0
call fcn.00402f9a
inc dword [ebp - 0x77c]
lea eax, [ebp - 0x7ec]
call fcn.004275b0
cmp dword [ebp - 0x77c], eax
jb 0x406e26
push str.folders
lea ecx, [ebp - 0x7fc]
call fcn.00427700
push eax
lea ecx, [ebp - 0x654]
call fcn.004271f0
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0x654]
mov dword [ebp - 0x77c], ebx
call fcn.004275b0
test eax, eax
jbe 0x406f39
mov ecx, dword [ebp - 0x77c]
lea edx, [ebp - 0x654]
call fcn.00427600
call fcn.00427590
lea ecx, [ebp - 0x850]
push ecx
call fcn.0042d5a0
push edi
push eax
lea eax, [ebp - 0x81c]
push eax
call fcn.0042c640
lea ecx, [ebp - 0x78c]
push ecx
mov ecx, eax
call fcn.00403216
push dword [ebp - 0x78c]
call esi
mov eax, dword [ebp - 0x78c]
add eax, 0xfffffff0
call fcn.00402f9a
inc dword [ebp - 0x77c]
lea eax, [ebp - 0x654]
call fcn.004275b0
cmp dword [ebp - 0x77c], eax
jb 0x406ecc
lea ecx, [ebp - 0x654]
mov byte [ebp - 4], 0x19
call fcn.00427210
lea ecx, [ebp - 0x7ec]
mov byte [ebp - 4], 0x18
call fcn.00427210
mov eax, dword [ebp - 0x7b0]
add eax, 0xfffffff0
call fcn.00402f9a
mov eax, dword [ebp - 0x7a8]
add eax, 0xfffffff0
call fcn.00402f9a
lea ecx, [ebp - 0x7fc]
mov byte [ebp - 4], 9
call fcn.00427210
lea esi, [ebp - 0x850]
call fcn.0042d210
lea edi, [ebp - 0x81c]
call fcn.0042c530
push ebx
push 1
lea ecx, [ebp - 0x678]
call fcn.00401308
mov eax, dword [ebp - 0x7a4]
add eax, 0xfffffff0
call fcn.00402f9a
lea ecx, [ebp - 0x7cc]
mov byte [ebp - 4], 3
call fcn.00427210
push ebx
push 1
lea ecx, [ebp - 0x694]
call fcn.00401308
push 8
jmp 0x406248
mov eax, dword [ebp - 0x784]
push ebx
push str.unzGetCurrentFileInfo
push 0x453370
push dword [eax + 4]
mov dword [ebp - 0x790], ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x406d6d
mov eax, dword [ebp - 0x784]
push ebx
push str.path_not_exist
push ecx
push dword [eax + 4]
mov dword [ebp - 0x790], ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [ebp - 0x778]
add eax, 0xfffffff0
call fcn.00402f9a
lea edi, [ebp - 0x6b8]
mov byte [ebp - 4], 0xb
call fcn.0042c530
jmp 0x406d6d
mov eax, dword [ebp - 0x784]
push ebx
push str.folder_ERROR_ALREADY_EXISTS
push dword [ebp - 0x778]
mov dword [ebp - 0x790], ebx
push dword [eax + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
add esi, 0xfffffff0
mov eax, esi
call fcn.00402f9a
jmp 0x407019
mov eax, dword [ebp - 0x784]
push ebx
push str.file_ERROR_ALREADY_EXISTS
push dword [ebp - 0x778]
mov dword [ebp - 0x790], ebx
push dword [eax + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
add esi, 0xfffffff0
mov eax, esi
call fcn.00402f9a
mov eax, dword [ebp - 0x7a0]
add eax, 0xfffffff0
jmp 0x407061
mov dword [ebp - 0x790], ebx
mov ebx, dword [ebp - 0x794]
call fcn.00431300
mov eax, dword [ebp - 0x784]
push 0
push str.touch_file_failed
push dword [ebp - 0x778]
push dword [eax + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [ebp - 0x780]
add eax, 0xfffffff0
call fcn.00402f9a
lea eax, [esi - 0x10]
call fcn.00402f9a
mov eax, dword [ebp - 0x7a0]
add eax, 0xfffffff0
call fcn.00402f9a
mov eax, dword [ebp - 0x778]
add eax, 0xfffffff0
call fcn.00402f9a
lea edi, [ebp - 0x6b8]
mov byte [ebp - 4], 0xb
call fcn.0042c530
xor ebx, ebx
jmp 0x406d6d
add esi, 0xfffffff0
mov eax, esi
jmp 0x4070dc
push 0x80070057
call fcn.00403502
mov ecx, dword [edi + 0x444]
push 0x3c
pop eax
call fcn.0041f630
cmp dword [edi + 0x450], ebx
mov esi, 0x4537b0
je 0x4072ef
push 0x41
lea eax, [ebp - 0x7a8]
push 0x453764
push eax
call fcn.00402dc0
mov eax, dword [ebp - 0x784]
mov edi, dword [ebp - 0x7a8]
add esp, 0xc
push dword [eax + 0x440]
call fcn.0041e430
mov ecx, dword [ebp - 0x784]
mov ecx, dword [ecx + 0x444]
push 0x46
pop eax
call fcn.0041f630
push str.desktop
push str.shortcut
lea ecx, [ebp - 0x7cc]
call fcn.00427700
mov ecx, eax
call fcn.00427700
mov dword [ebp - 0x77c], eax
xor edi, edi
call fcn.004275b0
test eax, eax
jbe 0x4072ef
mov edx, dword [ebp - 0x77c]
push str.name
mov ecx, edi
call fcn.00427600
mov ecx, eax
call fcn.00427700
call fcn.00427590
push ebx
push eax
lea eax, [ebp - 0x81c]
push eax
call fcn.0042c640
lea ecx, [ebp - 0x788]
push ecx
mov ecx, eax
call fcn.00403216
mov byte [ebp - 4], 0x1b
mov edx, dword [ebp - 0x77c]
push str.file
mov ecx, edi
call fcn.00427600
mov ecx, eax
call fcn.00427700
call fcn.00427590
push ebx
push eax
lea eax, [ebp - 0x81c]
push eax
call fcn.0042c640
lea ecx, [ebp - 0x78c]
push ecx
mov ecx, eax
call fcn.00403216
mov byte [ebp - 4], 0x1c
mov eax, dword [0x45fb34]
mov ecx, 0x45fb34
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x780], eax
mov byte [ebp - 4], 0x1d
push dword [ebp - 0x78c]
mov eax, dword [ebp - 0x79c]
push dword [eax]
lea eax, [ebp - 0x780]
push str._s_s
push eax
call fcn.00402dc0
add esp, 0x10
push 0x4537ac
push esi
lea eax, [ebp - 0x780]
push eax
call fcn.0040a3b1
mov eax, dword [ebp - 0x788]
cmp dword [eax - 0xc], ebx
je 0x4072ad
push dword [ebp - 0x780]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4072ad
push dword [ebp - 0x780]
push dword [ebp - 0x788]
call fcn.0042def0
pop ecx
pop ecx
mov eax, dword [ebp - 0x780]
add eax, 0xfffffff0
call fcn.00402f9a
mov eax, dword [ebp - 0x78c]
add eax, 0xfffffff0
call fcn.00402f9a
mov byte [ebp - 4], 0x18
mov eax, dword [ebp - 0x788]
add eax, 0xfffffff0
call fcn.00402f9a
mov eax, dword [ebp - 0x77c]
inc edi
call fcn.004275b0
cmp edi, eax
jb 0x4071b5
mov edi, dword [ebp - 0x784]
mov ecx, dword [edi + 0x444]
push 0x4b
pop eax
call fcn.0041f630
cmp dword [edi + 0x454], ebx
je 0x40752c
push 0x4b
lea eax, [ebp - 0x7a8]
push 0x4537b4
push eax
call fcn.00402dc0
mov eax, edi
mov edi, dword [ebp - 0x7a8]
add esp, 0xc
push dword [eax + 0x440]
call fcn.0041e430
push str.taskbar
push str.shortcut
lea ecx, [ebp - 0x7cc]
call fcn.00427700
mov ecx, eax
call fcn.00427700
mov dword [ebp - 0x790], eax
xor edi, edi
call fcn.004275b0
test eax, eax
jbe 0x40752c
mov edx, dword [ebp - 0x790]
push str.name
mov ecx, edi
call fcn.00427600
mov ecx, eax
call fcn.00427700
call fcn.00427590
push ebx
push eax
lea eax, [ebp - 0x81c]
push eax
call fcn.0042c640
lea ecx, [ebp - 0x77c]
push ecx
mov ecx, eax
call fcn.00403216
mov byte [ebp - 4], 0x1e
mov edx, dword [ebp - 0x790]
push str.file
mov ecx, edi
call fcn.00427600
mov ecx, eax
call fcn.00427700
call fcn.00427590
push ebx
push eax
lea eax, [ebp - 0x81c]
push eax
call fcn.0042c640
lea ecx, [ebp - 0x78c]
push ecx
mov ecx, eax
call fcn.00403216
mov byte [ebp - 4], 0x1f
mov eax, dword [0x45fb34]
mov ecx, 0x45fb34
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x780], eax
mov byte [ebp - 4], 0x20
push dword [ebp - 0x78c]
mov eax, dword [ebp - 0x79c]
push dword [eax]
lea eax, [ebp - 0x780]
push str._s_s
push eax
call fcn.00402dc0
add esp, 0x10
push 0x4537ac
push esi
lea eax, [ebp - 0x780]
push eax
call fcn.0040a3b1
mov eax, dword [ebp - 0x77c]
cmp dword [eax - 0xc], ebx
je 0x4074ea
push dword [ebp - 0x780]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4074ea
push dword [ebp - 0x780]
push dword [ebp - 0x77c]
call fcn.0042e170
pop ecx
pop ecx
call fcn.00408e53
test eax, eax
je 0x4074ea
mov eax, dword [0x45fb34]
mov ecx, 0x45fb34
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x788], eax
lea eax, [ebp - 0x798]
push eax
mov byte [ebp - 4], 0x21
call fcn.00426cd0
pop ecx
mov byte [ebp - 4], 0x22
push dword [ebp - 0x77c]
push dword [eax]
lea eax, [ebp - 0x788]
push str._s_s.lnk
push eax
call fcn.00402dc0
mov eax, dword [ebp - 0x798]
add esp, 0x10
add eax, 0xfffffff0
call fcn.00402f9a
push ebx
push ebx
push ebx
push dword [ebp - 0x788]
push str.taskbarpin
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov eax, dword [ebp - 0x788]
add eax, 0xfffffff0
call fcn.00402f9a
mov eax, dword [ebp - 0x780]
add eax, 0xfffffff0
call fcn.00402f9a
mov eax, dword [ebp - 0x78c]
add eax, 0xfffffff0
call fcn.00402f9a
mov byte [ebp - 4], 0x18
mov eax, dword [ebp - 0x77c]
add eax, 0xfffffff0
call fcn.00402f9a
mov eax, dword [ebp - 0x790]
inc edi
call fcn.004275b0
cmp edi, eax
jb 0x407369
mov eax, dword [ebp - 0x784]
cmp dword [eax + 0x458], ebx
je 0x40777b
push 0x4b
lea eax, [ebp - 0x7a8]
push str.ck_WeR
push eax
call fcn.00402dc0
mov eax, dword [ebp - 0x784]
mov edi, dword [ebp - 0x7a8]
add esp, 0xc
push dword [eax + 0x440]
call fcn.0041e430
mov eax, dword [0x45fb34]
mov ecx, 0x45fb34
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x794], edi
push str.desktop
push str.shortcut
lea ecx, [ebp - 0x7cc]
mov byte [ebp - 4], 0x23
call fcn.00427700
mov ecx, eax
call fcn.00427700
mov dword [ebp - 0x78c], eax
mov dword [ebp - 0x77c], ebx
call fcn.004275b0
test eax, eax
jbe 0x407617
mov edi, 0xfde9
mov ecx, dword [ebp - 0x77c]
mov edx, dword [ebp - 0x78c]
push str.file
call fcn.00427600
mov ecx, eax
call fcn.00427700
call fcn.00427590
push edi
push eax
lea eax, [ebp - 0x81c]
push eax
call fcn.0042c640
push eax
lea eax, [ebp - 0x794]
push eax
call fcn.004031ed
mov eax, dword [ebp - 0x78c]
inc dword [ebp - 0x77c]
call fcn.004275b0
cmp dword [ebp - 0x77c], eax
jb 0x4075bb
mov edi, dword [ebp - 0x794]
mov eax, dword [0x45fb34]
mov ecx, 0x45fb34
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x788], eax
mov byte [ebp - 4], 0x24
mov eax, dword [ebp - 0x79c]
push edi
push dword [eax]
lea eax, [ebp - 0x788]
push str._s_s
push eax
call fcn.00402dc0
add esp, 0x10
push 0x4537ac
push esi
lea eax, [ebp - 0x788]
push eax
call fcn.0040a3b1
lea esi, [ebp - 0x790]
call fcn.00426dc0
lea eax, [ebp - 0x798]
push 0x452f54
push eax
mov ecx, esi
mov byte [ebp - 4], 0x25
call fcn.00401d56
mov eax, dword [eax]
pop ecx
pop ecx
call fcn.00426660
mov eax, dword [ebp - 0x798]
add eax, 0xfffffff0
call fcn.00402f9a
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [ebp - 0x780]
push eax
push 0x44e538
push 1
push ebx
push 0x44e548
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
mov esi, dword [ebp - 0x788]
jl 0x407759
mov eax, dword [ebp - 0x780]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x50]
mov eax, dword [ebp - 0x780]
mov ecx, dword [eax]
push 0x4530dc
push eax
call dword [ecx + 0x1c]
mov eax, dword [ebp - 0x780]
mov ecx, dword [eax]
lea edx, [ebp - 0x78c]
push edx
push 0x44e558
push eax
call dword [ecx]
cmp eax, ebx
jl 0x40774d
lea eax, [ebp - 0x798]
push str.iTools_3iTools.lnk
push eax
lea ecx, [ebp - 0x790]
call fcn.00401d56
pop ecx
pop ecx
mov byte [ebp - 4], 0x26
mov eax, dword [eax]
mov ecx, dword [ebp - 0x78c]
mov edx, dword [ecx]
push 1
push eax
push ecx
call dword [edx + 0x18]
mov byte [ebp - 4], 0x25
mov eax, dword [ebp - 0x798]
add eax, 0xfffffff0
call fcn.00402f9a
mov eax, dword [ebp - 0x78c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x780]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x790]
add eax, 0xfffffff0
call fcn.00402f9a
lea eax, [esi - 0x10]
call fcn.00402f9a
lea eax, [edi - 0x10]
mov byte [ebp - 4], 0x18
call fcn.00402f9a
mov eax, dword [0x45fb34]
mov ecx, 0x45fb34
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x794], eax
push ebx
lea ecx, [ebp - 0x6b4]
mov dword [ebp - 0x69c], 0xf
call fcn.00401353
mov byte [ebp - 4], 0x28
cmp dword [ebp - 0x620], 0x10
mov eax, dword [ebp - 0x634]
jae 0x4077c0
lea eax, [ebp - 0x634]
push dword [ebp - 0x7ac]
push eax
lea eax, [ebp - 0x6b4]
call fcn.00404b75
mov dword [ebp - 0x7e4], 1
mov dword [ebp - 0x7ec], ebx
mov dword [ebp - 0x7e8], ebx
push str.mode
lea ecx, [ebp - 0x7fc]
mov byte [ebp - 4], 0x29
call fcn.00427700
lea edi, [ebp - 0x7ec]
call fcn.004273f0
mov ecx, edi
mov byte [ebp - 4], 0x28
call fcn.00427210
mov esi, str.shortcut
push esi
lea ecx, [ebp - 0x7cc]
call fcn.00427700
push esi
mov esi, str.setup
push esi
lea ecx, [ebp - 0x7fc]
mov edi, eax
call fcn.00427700
mov ecx, eax
call fcn.00427700
call fcn.004273f0
mov eax, dword [ebp - 0x79c]
push dword [eax]
lea eax, [ebp - 0x81c]
call fcn.0042c620
lea ecx, [ebp - 0x850]
push ecx
call fcn.0042d3a0
push eax
lea ebx, [ebp - 0x86c]
call fcn.004271a0
push str.root
push esi
lea ecx, [ebp - 0x7fc]
mov byte [ebp - 4], 0x2a
call fcn.00427700
mov ecx, eax
call fcn.00427700
mov edi, ebx
call fcn.004273f0
mov ecx, ebx
mov byte [ebp - 4], 0x28
call fcn.00427210
mov eax, dword [ebp - 0x784]
mov eax, dword [eax + 0x9f8]
xor esi, esi
cdq
inc esi
mov dword [ebp - 0x7e4], esi
mov dword [ebp - 0x7ec], eax
mov dword [ebp - 0x7e8], edx
push str.channel
lea ecx, [ebp - 0x7fc]
mov byte [ebp - 4], 0x2b
call fcn.00427700
lea edi, [ebp - 0x7ec]
call fcn.004273f0
mov ecx, edi
mov byte [ebp - 4], 0x28
call fcn.00427210
mov ebx, str.uninstrun
mov ecx, ebx
lea edx, [ebp - 0x7cc]
call fcn.00427ac0
test al, al
je 0x40791d
push ebx
lea ecx, [ebp - 0x7cc]
call fcn.00427700
push ebx
lea ecx, [ebp - 0x7fc]
mov edi, eax
call fcn.00427700
call fcn.004273f0
xor ebx, ebx
push ebx
lea ecx, [ebp - 0x65c]
mov dword [ebp - 0x644], 0xf
call fcn.00401353
lea eax, [ebp - 0x7fc]
push eax
lea edi, [ebp - 0x874]
mov byte [ebp - 4], 0x2c
call fcn.00427cd0
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x65c]
mov byte [ebp - 4], 0x2d
call fcn.00401038
push ebx
push esi
mov ecx, edi
mov byte [ebp - 4], 0x2c
call fcn.00401308
mov eax, dword [ebp - 0x648]
mov dword [ebp - 0x798], eax
push 4
lea eax, [ebp - 0x798]
push eax
lea eax, [ebp - 0x6b4]
call fcn.00404b75
cmp dword [ebp - 0x644], 0x10
mov eax, dword [ebp - 0x658]
jae 0x4079a0
lea eax, [ebp - 0x658]
push dword [ebp - 0x648]
push eax
lea eax, [ebp - 0x6b4]
call fcn.00404b75
mov edi, dword [ebp - 0x79c]
push dword [edi]
lea eax, [ebp - 0x794]
push str._sunins000.exe
push eax
call fcn.00402dc0
mov eax, dword [ebp - 0x794]
add esp, 0xc
lea esi, [ebp - 0x6b4]
call fcn.00426230
push ebx
push 1
lea ecx, [ebp - 0x65c]
call fcn.00401308
push ebx
push 1
mov ecx, esi
mov byte [ebp - 4], 0x27
call fcn.00401308
push str.lastrun
lea ecx, [ebp - 0x7cc]
call fcn.00427700
call fcn.00427590
push ebx
push eax
lea eax, [ebp - 0x81c]
push eax
call fcn.0042c640
push eax
push dword [edi]
mov edi, dword [ebp - 0x784]
lea eax, [edi + 0x468]
push str._s_s
push eax
call fcn.00402dc0
mov esi, str.instrun
add esp, 0x10
mov ecx, esi
lea edx, [ebp - 0x7cc]
call fcn.00427ac0
test al, al
je 0x407a74
push esi
lea ecx, [ebp - 0x7cc]
call fcn.00427700
mov ecx, edi
add ecx, 0xa18
mov edi, eax
mov eax, ecx
call fcn.004273f0
mov edi, dword [ebp - 0x784]
push 0x206
lea eax, [ebp - 0x21a]
push ebx
push eax
mov word [ebp - 0x21c], bx
call fcn.00434800
add esp, 0xc
push 1
push 0x1a
lea eax, [ebp - 0x21c]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x407c86
lea eax, [ebp - 0x788]
push eax
lea ecx, [ebp - 0x21c]
call fcn.00403216
mov esi, str.ThinkSkyiToolsConfigiTools.cfg
push esi
mov byte [ebp - 4], 0x2e
call fcn.00434f36
pop ecx
push eax
push esi
lea eax, [ebp - 0x788]
call fcn.00404ed9
push dword [ebp - 0x788]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x407c74
mov edi, str.instoptions
mov ecx, edi
lea edx, [ebp - 0x7cc]
call fcn.00427ac0
test al, al
je 0x407c6e
push edi
lea ecx, [ebp - 0x7cc]
call fcn.00427700
cmp dword [eax + 8], 4
jne 0x407c6e
push edi
lea ecx, [ebp - 0x7cc]
call fcn.00427700
call fcn.004275b0
test eax, eax
jbe 0x407c6e
push edi
lea ecx, [ebp - 0x7cc]
mov dword [ebp - 0x77c], ebx
call fcn.00427700
call fcn.004275b0
test eax, eax
jbe 0x407c6e
mov eax, dword [0x45fb34]
mov ecx, 0x45fb34
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x790], eax
push edi
lea ecx, [ebp - 0x7cc]
mov byte [ebp - 4], 0x2f
call fcn.00427700
mov ecx, dword [ebp - 0x77c]
mov edx, eax
call fcn.00427600
call fcn.00427590
push ebx
push eax
lea eax, [ebp - 0x81c]
push eax
call fcn.0042c640
push eax
mov eax, dword [ebp - 0x79c]
push dword [eax]
lea eax, [ebp - 0x790]
push str._s_s
push eax
call fcn.00402dc0
push 0x44
lea eax, [ebp - 0x6dc]
push ebx
push eax
call fcn.00434800
add esp, 0x1c
push 0x10
lea eax, [ebp - 0x7ec]
push ebx
push eax
call fcn.00434800
add esp, 0xc
lea eax, [ebp - 0x7ec]
push eax
lea eax, [ebp - 0x6dc]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea esi, [ebp - 0x790]
call fcn.00404b5e
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
cmp dword [ebp - 0x790], ebx
jne 0x407c0c
xor eax, eax
jmp 0x407c18
push dword [ebp - 0x790]
call fcn.00434f36
pop ecx
lea edx, [ebp - 0x790]
call fcn.00402f31
push dword [ebp - 0x7ec]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x7e8]
call esi
mov byte [ebp - 4], 0x2e
mov eax, dword [ebp - 0x790]
add eax, 0xfffffff0
call fcn.00402f9a
inc dword [ebp - 0x77c]
push edi
lea ecx, [ebp - 0x7cc]
call fcn.00427700
call fcn.004275b0
cmp dword [ebp - 0x77c], eax
jb 0x407b55
mov edi, dword [ebp - 0x784]
mov byte [ebp - 4], 0x27
mov eax, dword [ebp - 0x788]
add eax, 0xfffffff0
call fcn.00402f9a
lea esi, [ebp - 0x830]
call fcn.00401e5e
lea eax, [ebp - 0x798]
mov byte [ebp - 4], 0x30
mov ecx, dword [ebp - 0x79c]
push str.iTools.exe
push eax
call fcn.00401d56
mov byte [ebp - 4], 0x31
mov eax, dword [eax]
mov ecx, esi
push ecx
mov ecx, eax
call fcn.0042dcc0
mov byte [ebp - 4], 0x30
mov eax, dword [ebp - 0x798]
add esp, 0xc
add eax, 0xfffffff0
call fcn.00402f9a
lea eax, [ebp - 0x78c]
push eax
mov ecx, str.PrivateBuild
call fcn.00403216
mov eax, esi
push eax
lea ecx, [ebp - 0x78c]
mov byte [ebp - 4], 0x32
call fcn.00401e81
push dword [eax]
call fcn.0043530b
mov dword [edi + 0x9f4], eax
mov eax, dword [ebp - 0x78c]
pop ecx
add eax, 0xfffffff0
call fcn.00402f9a
mov dword [ebp - 0x778], ebx
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstallThinkSky
lea esi, [ebp - 0x778]
mov byte [ebp - 4], 0x33
call fcn.0040b23d
test eax, eax
jne 0x407e0a
push 0x4530dc
push str.DisplayName
mov eax, esi
push eax
call fcn.0040b203
push dword [ebp - 0x794]
mov eax, esi
push str.DisplayIcon
push eax
call fcn.0040b203
push str.http:__www.itools.cn
push str.HelpLink
mov eax, esi
push eax
call fcn.0040b203
push dword [ebp - 0x794]
mov eax, esi
push str.UninstallString
push eax
call fcn.0040b203
push 0x45398c
push str.Publisher
mov eax, esi
push eax
call fcn.0040b203
push str.2052
push str.Lang
mov eax, esi
push eax
call fcn.0040b203
mov eax, dword [edi + 0x9f8]
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 4
mov dword [ebp - 0x798], eax
lea eax, [ebp - 0x798]
push eax
push 4
push ebx
push str.Channel
push dword [ebp - 0x778]
call esi
mov eax, dword [edi + 0x9f4]
push 4
mov dword [ebp - 0x798], eax
lea eax, [ebp - 0x798]
push eax
push 4
push ebx
push str.Version
push dword [ebp - 0x778]
call esi
cmp dword [ebp - 0x778], ebx
je 0x407e0a
push dword [ebp - 0x778]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x778], ebx
mov ecx, dword [edi + 0x444]
push 0x5f
pop eax
call fcn.0041f630
cmp dword [edi + 0x460], ebx
je 0x40803a
call fcn.0042e4a0
test eax, eax
jne 0x40803a
cmp dword [ebp - 0x620], 0x10
mov eax, dword [ebp - 0x634]
mov dword [ebp - 0x788], ebx
jae 0x407e4c
lea eax, [ebp - 0x634]
mov ecx, dword [ebp - 0x7b8]
add eax, ecx
add eax, dword [ebp - 0x7b4]
mov ecx, dword [ebp - 0x7ac]
lea eax, [eax + ecx + 8]
push 4
push eax
lea eax, [ebp - 0x788]
push eax
call fcn.00434880
mov eax, dword [ebp - 0x7d4]
sub eax, dword [ebp - 0x7b8]
add esp, 0xc
sub eax, dword [ebp - 0x7b4]
sub eax, dword [ebp - 0x7ac]
sub eax, 0xc
cmp dword [ebp - 0x788], eax
ja 0x40803a
lea esi, [ebp - 0x798]
call fcn.00426680
mov esi, eax
push str..zip
push ecx
mov byte [ebp - 4], 0x34
call fcn.0042dc70
pop ecx
push edx
push eax
push dword [esi]
lea eax, [ebp - 0x7a4]
push str._s_016I64X_s
push eax
call fcn.00402dc0
mov eax, dword [ebp - 0x798]
add esp, 0x18
add eax, 0xfffffff0
call fcn.00402f9a
push ebx
lea ecx, [ebp - 0x6b4]
mov dword [ebp - 0x69c], 0xf
call fcn.00401353
mov byte [ebp - 4], 0x35
cmp dword [ebp - 0x620], 0x10
mov eax, dword [ebp - 0x634]
jae 0x407f0f
lea eax, [ebp - 0x634]
mov ecx, dword [ebp - 0x7b8]
push dword [ebp - 0x788]
add eax, ecx
add eax, dword [ebp - 0x7b4]
mov ecx, dword [ebp - 0x7ac]
lea eax, [eax + ecx + 0xc]
push eax
lea eax, [ebp - 0x6b4]
call fcn.00404b75
mov eax, dword [ebp - 0x7a4]
lea esi, [ebp - 0x6b4]
call fcn.00426230
test eax, eax
je 0x407f6b
mov edi, dword [ebp - 0x784]
add edi, 0x46c
lea eax, [ebp - 0x7a4]
call fcn.00404a69
mov edi, dword [ebp - 0x784]
lea eax, [edi + 0x474]
mov edx, edi
call fcn.0042cdd0
push ebx
push 1
lea ecx, [ebp - 0x6b4]
call fcn.00401308
cmp dword [ebp - 0x778], ebx
je 0x407f9a
push dword [ebp - 0x778]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x830]
mov byte [ebp - 4], 0x27
call fcn.004023ce
mov eax, dword [ebp - 0x794]
add eax, 0xfffffff0
call fcn.00402f9a
mov eax, dword [ebp - 0x7b0]
add eax, 0xfffffff0
call fcn.00402f9a
mov eax, dword [ebp - 0x7a8]
add eax, 0xfffffff0
call fcn.00402f9a
lea ecx, [ebp - 0x7fc]
mov byte [ebp - 4], 9
call fcn.00427210
lea esi, [ebp - 0x850]
call fcn.0042d210
lea edi, [ebp - 0x81c]
call fcn.0042c530
push ebx
push 1
lea ecx, [ebp - 0x678]
call fcn.00401308
mov eax, dword [ebp - 0x7a4]
add eax, 0xfffffff0
call fcn.00402f9a
lea ecx, [ebp - 0x7cc]
mov byte [ebp - 4], 3
call fcn.00427210
push ebx
push 1
lea ecx, [ebp - 0x694]
call fcn.00401308
xor esi, esi
xor ebx, ebx
jmp 0x406249
push ebx
push ebx
push 1
push ebx
push ebx
push 0x8401
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
cmp dword [ebp - 0x778], ebx
je 0x408062
push dword [ebp - 0x778]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x830]
mov byte [ebp - 4], 0x27
call fcn.004023ce
mov eax, dword [ebp - 0x794]
add eax, 0xfffffff0
call fcn.00402f9a
mov eax, dword [ebp - 0x7b0]
add eax, 0xfffffff0
call fcn.00402f9a
mov eax, dword [ebp - 0x7a8]
add eax, 0xfffffff0
call fcn.00402f9a
lea ecx, [ebp - 0x7fc]
mov byte [ebp - 4], 9
call fcn.00427210
lea esi, [ebp - 0x850]
call fcn.0042d210
lea edi, [ebp - 0x81c]
call fcn.0042c530
push ebx
push 1
lea ecx, [ebp - 0x678]
call fcn.00401308
mov eax, dword [ebp - 0x7a4]
add eax, 0xfffffff0
call fcn.00402f9a
lea ecx, [ebp - 0x7cc]
mov byte [ebp - 4], 3
call fcn.00427210
push ebx
push 1
lea ecx, [ebp - 0x694]
call fcn.00401308
push ebx
push 1
lea ecx, [ebp - 0x638]
call fcn.00401308
mov eax, dword [ebp - 0x7d0]
add eax, 0xfffffff0
call fcn.00402f9a
mov eax, dword [ebp - 0x7d8]
add eax, 0xfffffff0
call fcn.00402f9a
xor eax, eax
jmp 0x408146
mov eax, dword [ebp - 0x7d0]
add eax, 0xfffffff0
call fcn.00402f9a
mov eax, dword [ebp - 0x7d8]
add eax, 0xfffffff0
call fcn.00402f9a
xor eax, eax
inc eax
call fcn.004399ba
ret 4