Function at 0x407fe7
Capabilities:
Check if file exists
Check os version
Create directory
Create process on windows
Create shortcut via ishelllink
Delete directory
Delete file
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 0x7c8
mov eax, 0x450163
call fcn.0044b8c8
mov eax, dword [ebp + 8]
mov dword [ebp - 0x728], eax
lea eax, [ebp - 0x720]
push eax
lea eax, [ebp - 0x770]
mov esi, ecx
push eax
mov dword [ebp - 0x748], esi
call fcn.004066f8
pop ecx
pop ecx
xor ebx, ebx
mov dword [ebp - 4], ebx
mov ecx, dword [ebp - 0x770]
cmp dword [ecx - 0xc], ebx
je 0x408063
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x408063
mov eax, dword [ebp - 0x770]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x720], esp
mov edi, esp
call fcn.00404e00
add eax, 0x10
push esi
mov dword [edi], eax
call fcn.0040a5cd
mov dword [esi + 0x12cc], 3
lea esi, [ebp - 0x774]
mov dword [ebp - 0x778], ebx
mov dword [ebp - 0x73c], ebx
call fcn.0041dfa0
push ebx
push 0x80
push 3
push ebx
push 1
push closesocket
mov byte [ebp - 4], 1
push dword [ebp - 0x774]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x40811c
push ebx
push edi
mov dword [ebp - 0x710], ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x778], eax
xor eax, eax
push 0x3e
mov word [ebp - 0x4ec], ax
lea eax, [ebp - 0x4ea]
push ebx
push eax
call fcn.00437620
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
add esp, 0xc
push ebx
lea eax, [ebp - 0x710]
push eax
push 0x40
lea eax, [ebp - 0x4ec]
push eax
push edi
call esi
test eax, eax
je 0x408115
mov eax, dword [ebp - 0x4b0]
push ebx
push ebx
add eax, 0xfffffffc
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebx
lea eax, [ebp - 0x710]
push eax
push 4
lea eax, [ebp - 0x73c]
push eax
push edi
call esi
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x73c]
cmp eax, ebx
jbe 0x40a413
cmp eax, dword [ebp - 0x778]
ja 0x40a413
push 0xf
pop edi
mov dword [ebp - 0x43c], edi
mov dword [ebp - 0x440], ebx
mov byte [ebp - 0x450], bl
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x774]
lea esi, [ebp - 0x450]
call fcn.0041da90
test eax, eax
jne 0x408199
push 2
pop ebx
push 1
xor edi, edi
lea esi, [ebp - 0x450]
call fcn.00401614
mov eax, dword [ebp - 0x774]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x770]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, ebx
jmp 0x40a432
cmp dword [ebp - 0x43c], 0x10
mov eax, dword [ebp - 0x450]
mov dword [ebp - 0x744], ebx
jae 0x4081b4
lea eax, [ebp - 0x450]
add eax, dword [ebp - 0x73c]
push 4
push eax
lea eax, [ebp - 0x744]
push eax
call fcn.004376a0
mov eax, dword [ebp - 0x778]
mov ecx, dword [ebp - 0x73c]
sub eax, ecx
add esp, 0xc
cmp dword [ebp - 0x744], eax
jbe 0x4081e6
push 3
jmp 0x408166
mov dword [ebp - 0x494], edi
mov dword [ebp - 0x498], ebx
mov byte [ebp - 0x4a8], bl
mov byte [ebp - 4], 3
cmp dword [ebp - 0x43c], 0x10
mov eax, dword [ebp - 0x450]
jae 0x408211
lea eax, [ebp - 0x450]
mov edi, dword [ebp - 0x744]
lea eax, [eax + ecx + 4]
push eax
lea eax, [ebp - 0x4a8]
call fcn.004069a3
fldz
fstp qword [ebp - 0x76c]
mov dword [ebp - 0x764], ebx
mov byte [ebp - 4], 4
cmp dword [ebp - 0x494], 0x10
mov ecx, dword [ebp - 0x4a8]
jae 0x40824e
lea ecx, [ebp - 0x4a8]
lea edi, [ebp - 0x76c]
call fcn.00418da0
test al, al
jne 0x40827e
mov ecx, edi
mov byte [ebp - 4], 3
call fcn.00418190
push 1
xor edi, edi
lea esi, [ebp - 0x4a8]
call fcn.00401614
push 4
jmp 0x408166
cmp dword [ebp - 0x43c], 0x10
mov eax, dword [ebp - 0x450]
mov dword [ebp - 0x74c], ebx
jae 0x408299
lea eax, [ebp - 0x450]
add eax, dword [ebp - 0x744]
mov ecx, dword [ebp - 0x73c]
lea eax, [eax + ecx + 4]
push 4
push eax
lea eax, [ebp - 0x74c]
push eax
call fcn.004376a0
mov eax, dword [ebp - 0x778]
sub eax, dword [ebp - 0x744]
add esp, 0xc
sub eax, dword [ebp - 0x73c]
sub eax, 4
cmp dword [ebp - 0x74c], eax
jbe 0x4082fd
lea ecx, [ebp - 0x76c]
mov byte [ebp - 4], 3
call fcn.00418190
push 1
xor edi, edi
lea esi, [ebp - 0x4a8]
call fcn.00401614
push 5
jmp 0x408166
mov eax, dword [section..data]
mov ecx, section..data
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x738], eax
lea esi, [ebp - 0x710]
mov byte [ebp - 4], 5
call fcn.0041dd70
mov esi, eax
push str..zip
mov byte [ebp - 4], 6
call fcn.0041efc0
push edx
push eax
push dword [esi]
lea eax, [ebp - 0x738]
push str._s_016I64X_s
push eax
call fcn.00404457
mov eax, dword [ebp - 0x710]
add esp, 0x18
add eax, 0xfffffff0
call fcn.0040507e
mov dword [ebp - 0x478], 0xf
mov dword [ebp - 0x47c], ebx
mov byte [ebp - 0x48c], bl
mov byte [ebp - 4], 7
cmp dword [ebp - 0x43c], 0x10
mov eax, dword [ebp - 0x450]
jae 0x408387
lea eax, [ebp - 0x450]
add eax, dword [ebp - 0x744]
mov ecx, dword [ebp - 0x73c]
mov edi, dword [ebp - 0x74c]
lea eax, [eax + ecx + 8]
push eax
lea eax, [ebp - 0x48c]
call fcn.004069a3
mov eax, dword [ebp - 0x738]
lea esi, [ebp - 0x48c]
call fcn.0041d880
test eax, eax
jne 0x4083f8
push 1
xor edi, edi
call fcn.00401614
mov eax, dword [ebp - 0x738]
add eax, 0xfffffff0
call fcn.0040507e
lea ecx, [ebp - 0x76c]
mov byte [ebp - 4], 3
call fcn.00418190
push 1
lea esi, [ebp - 0x4a8]
call fcn.00401614
push 6
jmp 0x408166
mov dword [ebp - 0x7c0], ebx
mov dword [ebp - 0x7bc], ebx
mov dword [ebp - 0x7b8], ebx
mov dword [ebp - 0x7b0], ebx
mov dword [ebp - 0x7ac], ebx
mov dword [ebp - 0x7a8], ebx
mov dword [ebp - 0x4cc], ebx
mov dword [ebp - 0x4c8], ebx
mov dword [ebp - 0x4c4], ebx
mov dword [ebp - 0x4bc], ebx
mov dword [ebp - 0x4b8], ebx
mov dword [ebp - 0x4b4], ebx
mov esi, dword [ebp - 0x748]
add esi, 0x47c
mov byte [ebp - 4], 9
mov eax, dword [esi]
cmp dword [eax - 0xc], ebx
jne 0x4084ad
lea esi, [ebp - 0x4cc]
call fcn.00420250
lea esi, [ebp - 0x7c0]
call fcn.0041ead0
push 1
xor edi, edi
lea esi, [ebp - 0x48c]
call fcn.00401614
mov eax, dword [ebp - 0x738]
add eax, 0xfffffff0
call fcn.0040507e
lea ecx, [ebp - 0x76c]
mov byte [ebp - 4], 3
call fcn.00418190
push 1
lea esi, [ebp - 0x4a8]
call fcn.00401614
push 9
jmp 0x408166
cmp dword [ebp - 0x478], 0x10
mov edx, dword [ebp - 0x48c]
jae 0x4084c2
lea edx, [ebp - 0x48c]
push dword [ebp - 0x47c]
lea ecx, [ebp - 0x70c]
call fcn.0040766c
push ebx
lea ecx, [ebp - 0x7c0]
push ecx
mov ebx, eax
call fcn.0041ebc0
mov edi, dword [ebp - 0x728]
push eax
push edi
call fcn.00404f36
push dword [edi]
push esi
call fcn.00404167
test eax, eax
jne 0x408457
fldz
mov dword [ebp - 0x710], eax
fstp qword [ebp - 0x79c]
mov dword [ebp - 0x718], eax
mov dword [ebp - 0x794], eax
mov byte [ebp - 4], 0xa
mov eax, dword [section..data]
mov ecx, section..data
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x750], eax
push 0xa
lea eax, [ebp - 0x750]
push str.ck_W_rY6R
push eax
mov byte [ebp - 4], 0xb
call fcn.00404457
mov ebx, dword [ebp - 0x750]
pop ecx
pop ecx
add ebx, 0xfffffff0
mov eax, ebx
mov dword [ebp - 0x720], esp
mov esi, esp
mov dword [ebp - 0x758], ebx
call fcn.00404e00
mov edi, dword [ebp - 0x748]
add eax, 0x10
push edi
mov dword [esi], eax
call fcn.0040c9f1
push 0xa
mov eax, edi
call fcn.0040c8f7
mov eax, dword [ebp - 0x738]
call fcn.00432c20
mov dword [ebp - 0x730], eax
test eax, eax
jne 0x408611
push dword [ebp - 0x738]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, ebx
call fcn.0040507e
lea ecx, [ebp - 0x79c]
mov byte [ebp - 4], 9
call fcn.00418190
lea esi, [ebp - 0x4cc]
call fcn.00420250
lea esi, [ebp - 0x7c0]
call fcn.0041ead0
push 1
xor edi, edi
lea esi, [ebp - 0x48c]
call fcn.00401614
mov eax, dword [ebp - 0x738]
add eax, 0xfffffff0
call fcn.0040507e
lea ecx, [ebp - 0x76c]
mov byte [ebp - 4], 3
call fcn.00418190
push 1
lea esi, [ebp - 0x4a8]
call fcn.00401614
push 7
jmp 0x408166
mov esi, eax
mov dword [ebp - 0x734], 1
call fcn.004337d0
test eax, eax
jne 0x408d4c
push 0x50
xor ebx, ebx
lea eax, [ebp - 0x55c]
push ebx
push eax
call fcn.00437620
add esp, 0xc
push 0x3ff
lea eax, [ebp - 0x413]
push ebx
push eax
mov byte [ebp - 0x414], bl
call fcn.00437620
add esp, 0xc
push dword [ebp - 0x730]
lea eax, [ebp - 0x414]
lea esi, [ebp - 0x55c]
call fcn.00433730
pop ecx
test eax, eax
jne 0x408f91
mov dword [ebp - 0x470], eax
mov dword [ebp - 0x46c], eax
mov dword [ebp - 0x468], eax
mov dword [ebp - 0x460], eax
mov dword [ebp - 0x45c], eax
mov dword [ebp - 0x458], eax
push eax
lea eax, [ebp - 0x470]
push eax
lea ebx, [ebp - 0x414]
mov byte [ebp - 4], 0xc
call fcn.0041ebc0
lea ecx, [ebp - 0x71c]
push ecx
mov ecx, eax
call fcn.00404da4
lea eax, [ebp - 0x71c]
mov byte [ebp - 4], 0xd
call fcn.004068ee
mov ecx, dword [ebp - 0x71c]
cmp dword [ecx - 0xc], 0
je 0x408fb0
cmp dword [edi + 0x1320], 0
je 0x40870e
push 0x456f80
lea esi, [ebp - 0x71c]
call fcn.00403839
cmp eax, 0xffffffff
jne 0x408723
cmp dword [edi + 0x1320], 0
mov ecx, dword [ebp - 0x71c]
jne 0x408758
push 0x456f88
lea esi, [ebp - 0x71c]
call fcn.00403839
cmp eax, 0xffffffff
je 0x408752
mov esi, dword [ebp - 0x730]
call fcn.00433830
mov ebx, eax
mov eax, dword [ebp - 0x71c]
add eax, 0xfffffff0
call fcn.0040507e
lea esi, [ebp - 0x470]
mov byte [ebp - 4], 0xb
call fcn.0041ead0
jmp 0x408d44
mov ecx, dword [ebp - 0x71c]
mov eax, dword [ecx - 0xc]
lea edx, [eax - 1]
xor ebx, ebx
cmp edx, ebx
jl 0x40906e
cmp edx, eax
jg 0x40906e
movzx ecx, word [ecx + edx*2]
push 0x2f
pop edx
cmp dx, cx
jne 0x408857
lea ecx, [ebp - 0x71c]
dec eax
push ecx
call fcn.0040cc34
mov eax, dword [edi + 0x470]
sub eax, 0x10
call fcn.00404e00
add eax, 0x10
mov dword [ebp - 0x728], eax
mov byte [ebp - 4], 0xe
push dword [ebp - 0x71c]
lea ecx, [ebp - 0x728]
push 0x456f90
call fcn.00406d57
mov esi, dword [ebp - 0x728]
pop ecx
pop ecx
push ebx
push esi
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
cmp eax, ebx
je 0x4087de
cmp eax, 0xb7
jne 0x408fea
push 0xfde9
lea eax, [ebp - 0x470]
push eax
mov ebx, esi
call fcn.0041ec40
push eax
lea eax, [ebp - 0x4cc]
push eax
call fcn.00420350
push eax
lea ebx, [ebp - 0x78c]
call fcn.00417f70
mov edx, str.folders
lea ecx, [ebp - 0x79c]
mov byte [ebp - 4], 0xf
call fcn.00418710
mov edx, eax
mov eax, dword [ebp - 0x718]
call fcn.00418530
mov edi, ebx
mov esi, eax
call fcn.004182c0
mov ecx, ebx
mov byte [ebp - 4], 0xe
call fcn.00418190
inc dword [ebp - 0x718]
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x728]
add eax, 0xfffffff0
jmp 0x408d0f
mov eax, dword [section..data]
mov esi, section..data
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x72c], eax
mov byte [ebp - 4], 0x10
push dword [ebp - 0x71c]
lea eax, [ebp - 0x72c]
push dword [edi + 0x470]
push str._s_s
push eax
call fcn.00404457
add esp, 0x10
mov eax, str.x64
cmp dword [edi + 0x1320], ebx
jne 0x4088a5
mov eax, str.x86
push 0x456c24
push eax
lea eax, [ebp - 0x72c]
push eax
call fcn.0040ccbc
mov eax, dword [ebp - 0x72c]
add eax, 0xfffffff0
mov dword [ebp - 0x720], eax
call fcn.00404e00
lea ebx, [eax + 0x10]
mov dword [ebp - 0x724], ebx
mov byte [ebp - 4], 0x11
cmp dword [ebx - 4], 1
jle 0x4088f3
push dword [ebx - 0xc]
lea eax, [ebp - 0x724]
push eax
call fcn.00404f5f
mov ebx, dword [ebp - 0x724]
push ebx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
je 0x408997
lea esi, [ebp - 0x724]
call fcn.00406c56
push 0
push ebx
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
test eax, eax
je 0x408927
cmp eax, 0xb7
jne 0x40900f
mov ebx, dword [ebp - 0x724]
push 0xfde9
lea eax, [ebp - 0x470]
push eax
call fcn.0041ec40
push eax
lea eax, [ebp - 0x4cc]
push eax
call fcn.00420350
push eax
lea ebx, [ebp - 0x42c]
call fcn.00417f70
mov edx, str.folders
lea ecx, [ebp - 0x79c]
mov byte [ebp - 4], 0x12
call fcn.00418710
mov edx, eax
mov eax, dword [ebp - 0x718]
call fcn.00418530
mov edi, ebx
mov esi, eax
call fcn.004182c0
mov ecx, ebx
mov byte [ebp - 4], 0x11
call fcn.00418190
mov edi, dword [ebp - 0x748]
mov esi, section..data
push dword [ebp - 0x730]
call fcn.00433b50
pop ecx
test eax, eax
jne 0x408c8c
test byte [0x4663c8], 1
jne 0x4089d8
mov eax, dword [section..data]
or dword [0x4663c8], 1
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
push 0x45061b
mov dword [0x4663c4], eax
call fcn.0043a103
pop ecx
and dword [ebp - 0x740], 0
mov ebx, 0x457030
push ebx
push dword [ebp - 0x72c]
lea eax, [ebp - 0x740]
push eax
call fcn.0043a2fc
add esp, 0xc
cmp dword [ebp - 0x740], 0
jne 0x408be4
mov eax, dword [section..data]
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x714], eax
mov byte [ebp - 4], 0x13
push dword [ebp - 0x72c]
lea ecx, [ebp - 0x714]
call fcn.0040b7fa
test eax, eax
je 0x408ac3
mov eax, dword [section..data]
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x728], eax
mov byte [ebp - 4], 0x14
push dword [ebp - 0x714]
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea eax, [ebp - 0x728]
push 0x457038
push eax
call fcn.00404457
mov esi, dword [ebp - 0x728]
add esp, 0xc
push 0x24
push 0x457084
push esi
push dword [edi + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x408ab7
push dword [ebp - 0x714]
call fcn.0040b6cd
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
push dword [ebp - 0x72c]
lea eax, [ebp - 0x740]
push eax
call fcn.0043a2fc
add esp, 0xc
lea eax, [esi - 0x10]
mov byte [ebp - 4], 0x13
call fcn.0040507e
cmp dword [ebp - 0x740], 0
jne 0x408bd2
push dword [ebp - 0x72c]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x408b5e
mov edi, str..old
lea eax, [ebp - 0x7c4]
push edi
push eax
lea ecx, [ebp - 0x72c]
call fcn.004038cf
mov byte [ebp - 4], 0x15
push dword [ebp - 0x72c]
mov ecx, dword [eax]
call fcn.0041e2b0
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x7c4]
add esp, 0xc
add eax, 0xfffffff0
call fcn.0040507e
lea eax, [ebp - 0x7a0]
push edi
push eax
lea ecx, [ebp - 0x72c]
call fcn.004038cf
pop ecx
pop ecx
mov edi, 0x4663c4
mov byte [ebp - 4], 0x16
call fcn.004068ad
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x7a0]
add eax, 0xfffffff0
call fcn.0040507e
mov edi, dword [ebp - 0x748]
mov ebx, 0x457030
push ebx
push dword [ebp - 0x72c]
lea eax, [ebp - 0x740]
push eax
call fcn.0043a2fc
add esp, 0xc
cmp dword [ebp - 0x740], 0
jne 0x408bd2
mov ebx, dword [ebp - 0x730]
and dword [ebp - 0x734], 0
call fcn.00433fa0
push str.Extensions_iToolsBHO.dll
lea eax, [ebp - 0x71c]
push eax
call fcn.00406d30
test eax, eax
je 0x408bd2
push str.Extensions_iToolsBHO64.dll
lea eax, [ebp - 0x71c]
push eax
call fcn.00406d30
test eax, eax
je 0x408bd2
push str.Extensions_npiTools.dll
lea eax, [ebp - 0x71c]
push eax
call fcn.00406d30
test eax, eax
jne 0x40903f
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x714]
add eax, 0xfffffff0
call fcn.0040507e
push 0x80000
call fcn.0043803c
pop ecx
mov ebx, eax
jmp 0x408c09
push dword [ebp - 0x740]
push esi
push 1
push ebx
call fcn.0043a49a
add esp, 0x10
cmp esi, eax
jne 0x408c1e
mov eax, dword [ebp - 0x730]
push ebx
call fcn.00433d10
mov esi, eax
pop ecx
test esi, esi
jg 0x408bf3
jmp 0x408c3b
and dword [ebp - 0x734], 0
push 0
push str.write_file_failed
push dword [ebp - 0x71c]
push dword [edi + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
push ebx
call fcn.004380d0
pop ecx
push dword [ebp - 0x740]
call fcn.0043a581
mov ebx, dword [ebp - 0x730]
pop ecx
call fcn.00433fa0
push dword [0x4663c4]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x408c7f
push dword [0x4663c4]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, 0x4663c4
call fcn.00404e5c
cmp dword [ebp - 0x734], 0
je 0x409063
mov ebx, dword [ebp - 0x72c]
push 0xfde9
lea eax, [ebp - 0x470]
push eax
call fcn.0041ec40
push eax
lea eax, [ebp - 0x4cc]
push eax
call fcn.00420350
push eax
lea ebx, [ebp - 0x504]
call fcn.00417f70
mov edx, str.files
lea ecx, [ebp - 0x79c]
mov byte [ebp - 4], 0x17
call fcn.00418710
mov edx, eax
mov eax, dword [ebp - 0x710]
call fcn.00418530
mov edi, ebx
mov esi, eax
call fcn.004182c0
mov ecx, ebx
mov byte [ebp - 4], 0x11
call fcn.00418190
mov eax, dword [ebp - 0x724]
inc dword [ebp - 0x710]
add eax, 0xfffffff0
call fcn.0040507e
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x720]
call fcn.0040507e
mov esi, dword [ebp - 0x730]
call fcn.00433830
mov ebx, eax
mov eax, dword [ebp - 0x71c]
add eax, 0xfffffff0
call fcn.0040507e
lea esi, [ebp - 0x470]
mov byte [ebp - 4], 0xb
call fcn.0041ead0
mov edi, dword [ebp - 0x748]
test ebx, ebx
je 0x40862a
mov eax, dword [ebp - 0x730]
call fcn.00433260
lea eax, [edi + 0x470]
mov dword [ebp - 0x730], eax
mov eax, dword [eax]
sub eax, 0x10
call fcn.00404e00
add eax, 0x10
mov dword [ebp - 0x740], eax
xor ebx, ebx
mov byte [ebp - 4], 0x18
mov eax, str.x64
cmp dword [edi + 0x1320], ebx
jne 0x408d8e
mov eax, str.x86
push eax
push 0x456f90
lea ecx, [ebp - 0x740]
call fcn.00406d57
pop ecx
pop ecx
push dword [ebp - 0x740]
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
push dword [ebp - 0x738]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
call esi
cmp dword [ebp - 0x734], ebx
jne 0x409078
mov edx, str.files
lea ecx, [ebp - 0x79c]
call fcn.00418710
push eax
lea ecx, [ebp - 0x78c]
call fcn.00418030
lea eax, [ebp - 0x78c]
mov byte [ebp - 4], 0x19
xor edi, edi
call fcn.00418500
test eax, eax
je 0x408e5c
push edi
lea eax, [ebp - 0x78c]
push eax
call fcn.00418550
call fcn.004184e0
lea ecx, [ebp - 0x4cc]
call fcn.00420590
push 0xfde9
lea ecx, [ebp - 0x7c0]
push ecx
mov ebx, eax
call fcn.0041ebc0
lea ecx, [ebp - 0x710]
push ecx
mov ecx, eax
call fcn.00404da4
push dword [ebp - 0x710]
call esi
mov eax, dword [ebp - 0x710]
add eax, 0xfffffff0
call fcn.0040507e
lea eax, [ebp - 0x78c]
inc edi
call fcn.00418500
cmp edi, eax
jb 0x408df8
mov edx, str.folders
lea ecx, [ebp - 0x79c]
call fcn.00418710
push eax
lea ecx, [ebp - 0x42c]
call fcn.00418030
lea eax, [ebp - 0x42c]
mov byte [ebp - 4], 0x1a
xor esi, esi
call fcn.00418500
test eax, eax
je 0x408ef5
push esi
lea eax, [ebp - 0x42c]
push eax
call fcn.00418550
call fcn.004184e0
lea ecx, [ebp - 0x4cc]
call fcn.00420590
push 0xfde9
lea ecx, [ebp - 0x7c0]
push ecx
mov ebx, eax
call fcn.0041ebc0
lea ecx, [ebp - 0x710]
push ecx
mov ecx, eax
call fcn.00404da4
push dword [ebp - 0x710]
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov eax, dword [ebp - 0x710]
add eax, 0xfffffff0
call fcn.0040507e
lea eax, [ebp - 0x42c]
inc esi
call fcn.00418500
cmp esi, eax
jb 0x408e8d
lea ecx, [ebp - 0x42c]
mov byte [ebp - 4], 0x19
call fcn.00418190
lea ecx, [ebp - 0x78c]
mov byte [ebp - 4], 0x18
call fcn.00418190
mov eax, dword [ebp - 0x740]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x758]
call fcn.0040507e
lea ecx, [ebp - 0x79c]
mov byte [ebp - 4], 9
call fcn.00418190
lea esi, [ebp - 0x4cc]
call fcn.00420250
lea esi, [ebp - 0x7c0]
call fcn.0041ead0
push 1
xor edi, edi
lea esi, [ebp - 0x48c]
call fcn.00401614
mov eax, dword [ebp - 0x738]
add eax, 0xfffffff0
call fcn.0040507e
lea ecx, [ebp - 0x76c]
mov byte [ebp - 4], 3
call fcn.00418190
push 1
lea esi, [ebp - 0x4a8]
call fcn.00401614
push 8
jmp 0x408166
push ebx
push str.unzGetCurrentFileInfo
push 0x456c24
push dword [edi + 4]
mov dword [ebp - 0x734], ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x408d4c
and dword [ebp - 0x734], 0
push 0
push str.path_not_exist
push ecx
push dword [edi + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [ebp - 0x71c]
add eax, 0xfffffff0
call fcn.0040507e
lea esi, [ebp - 0x470]
mov byte [ebp - 4], 0xb
call fcn.0041ead0
jmp 0x408d4c
push ebx
push str.folder_ERROR_ALREADY_EXISTS
push dword [ebp - 0x71c]
mov dword [ebp - 0x734], ebx
push dword [edi + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
lea eax, [esi - 0x10]
call fcn.0040507e
jmp 0x408fc8
and dword [ebp - 0x734], 0
push 0
push str.file_ERROR_ALREADY_EXISTS
push dword [ebp - 0x71c]
push dword [edi + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
lea eax, [ebx - 0x10]
call fcn.0040507e
mov eax, dword [ebp - 0x72c]
add eax, 0xfffffff0
jmp 0x409008
push 0
push str.touch_file_failed
push dword [ebp - 0x71c]
push dword [edi + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [ebp - 0x714]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x724]
add eax, 0xfffffff0
jmp 0x40902f
push 0x80070057
call fcn.004050e3
push 0x3c
mov eax, edi
call fcn.0040c8f7
mov esi, 0x4571d0
cmp dword [edi + 0x458], ebx
je 0x409253
push 0x41
lea eax, [ebp - 0x750]
push 0x457188
push eax
call fcn.00404457
mov eax, dword [ebp - 0x750]
pop ecx
pop ecx
add eax, 0xfffffff0
mov dword [ebp - 0x720], esp
mov ebx, esp
mov dword [ebp - 0x758], eax
call fcn.00404e00
add eax, 0x10
push edi
mov dword [ebx], eax
call fcn.0040c9f1
push 0x46
mov eax, edi
call fcn.0040c8f7
mov edx, str.shortcut
lea ecx, [ebp - 0x76c]
call fcn.00418710
mov edx, str.desktop
mov ecx, eax
call fcn.00418710
and dword [ebp - 0x714], 0
mov dword [ebp - 0x718], eax
call fcn.00418500
test eax, eax
je 0x409253
push dword [ebp - 0x714]
push dword [ebp - 0x718]
call fcn.00418550
mov edx, str.name
mov ecx, eax
call fcn.00418710
call fcn.004184e0
push 0
lea ecx, [ebp - 0x7c0]
push ecx
mov ebx, eax
call fcn.0041ebc0
lea ecx, [ebp - 0x728]
push ecx
mov ecx, eax
call fcn.00404da4
mov byte [ebp - 4], 0x1b
push dword [ebp - 0x714]
push dword [ebp - 0x718]
call fcn.00418550
mov edx, str.file
mov ecx, eax
call fcn.00418710
call fcn.004184e0
push 0
lea ecx, [ebp - 0x7c0]
push ecx
mov ebx, eax
call fcn.0041ebc0
lea ecx, [ebp - 0x724]
push ecx
mov ecx, eax
call fcn.00404da4
mov byte [ebp - 4], 0x1c
mov eax, dword [section..data]
mov ecx, section..data
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x710], eax
mov eax, dword [ebp - 0x730]
mov byte [ebp - 4], 0x1d
push dword [ebp - 0x724]
push dword [eax]
lea eax, [ebp - 0x710]
push str._s_s
push eax
call fcn.00404457
add esp, 0x10
push 0x457c7c
push esi
lea eax, [ebp - 0x710]
push eax
call fcn.0040ccbc
mov eax, dword [ebp - 0x728]
cmp dword [eax - 0xc], 0
mov ebx, dword [ebp - 0x710]
je 0x40920e
push ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40920e
push ebx
push dword [ebp - 0x728]
call fcn.00420170
pop ecx
pop ecx
lea eax, [ebx - 0x10]
call fcn.0040507e
mov eax, dword [ebp - 0x724]
add eax, 0xfffffff0
call fcn.0040507e
mov byte [ebp - 4], 0x18
mov eax, dword [ebp - 0x728]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x718]
inc dword [ebp - 0x714]
call fcn.00418500
cmp dword [ebp - 0x714], eax
jb 0x40910d
push 0x4b
mov eax, edi
call fcn.0040c8f7
cmp dword [edi + 0x45c], 0
je 0x4094e6
lea eax, [ebp - 0x674]
push eax
mov dword [ebp - 0x674], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x40929a
cmp dword [ebp - 0x664], 2
jne 0x40929a
cmp dword [ebp - 0x670], 0xa
je 0x4094e6
push 0x4b
lea eax, [ebp - 0x750]
push 0x4571d4
push eax
call fcn.00404457
mov eax, dword [ebp - 0x750]
pop ecx
pop ecx
add eax, 0xfffffff0
mov dword [ebp - 0x720], esp
mov ebx, esp
mov dword [ebp - 0x758], eax
call fcn.00404e00
add eax, 0x10
push edi
mov dword [ebx], eax
call fcn.0040c9f1
mov edx, str.shortcut
lea ecx, [ebp - 0x76c]
call fcn.00418710
mov edx, str.taskbar
mov ecx, eax
call fcn.00418710
and dword [ebp - 0x724], 0
mov dword [ebp - 0x728], eax
call fcn.00418500
test eax, eax
je 0x4094e6
push dword [ebp - 0x724]
push dword [ebp - 0x728]
call fcn.00418550
mov edx, str.name
mov ecx, eax
call fcn.00418710
call fcn.004184e0
push 0
lea ecx, [ebp - 0x7c0]
push ecx
mov ebx, eax
call fcn.0041ebc0
lea ecx, [ebp - 0x718]
push ecx
mov ecx, eax
call fcn.00404da4
mov byte [ebp - 4], 0x1e
push dword [ebp - 0x724]
push dword [ebp - 0x728]
call fcn.00418550
mov edx, str.file
mov ecx, eax
call fcn.00418710
call fcn.004184e0
push 0
lea ecx, [ebp - 0x7c0]
push ecx
mov ebx, eax
call fcn.0041ebc0
lea ecx, [ebp - 0x734]
push ecx
mov ecx, eax
call fcn.00404da4
mov byte [ebp - 4], 0x1f
mov eax, dword [section..data]
mov ecx, section..data
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x714], eax
mov eax, dword [ebp - 0x730]
mov byte [ebp - 4], 0x20
push dword [ebp - 0x734]
push dword [eax]
lea eax, [ebp - 0x714]
push str._s_s
push eax
call fcn.00404457
add esp, 0x10
push 0x457c7c
push esi
lea eax, [ebp - 0x714]
push eax
call fcn.0040ccbc
mov eax, dword [ebp - 0x718]
xor ebx, ebx
cmp dword [eax - 0xc], ebx
je 0x40949b
push dword [ebp - 0x714]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40949b
push dword [ebp - 0x714]
push dword [ebp - 0x718]
call fcn.0041f3d0
pop ecx
pop ecx
call fcn.004065e3
test eax, eax
je 0x40949b
mov eax, dword [section..data]
mov ecx, section..data
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x710], eax
lea eax, [ebp - 0x720]
push eax
mov byte [ebp - 4], 0x21
call fcn.0041e830
pop ecx
mov byte [ebp - 4], 0x22
push dword [ebp - 0x718]
push dword [eax]
lea eax, [ebp - 0x710]
push str._s_s.lnk
push eax
call fcn.00404457
mov eax, dword [ebp - 0x720]
add esp, 0x10
add eax, 0xfffffff0
call fcn.0040507e
push ebx
push ebx
push ebx
push dword [ebp - 0x710]
push str.taskbarpin
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov eax, dword [ebp - 0x710]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x714]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x734]
add eax, 0xfffffff0
call fcn.0040507e
mov byte [ebp - 4], 0x18
mov eax, dword [ebp - 0x718]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x728]
inc dword [ebp - 0x724]
call fcn.00418500
cmp dword [ebp - 0x724], eax
jb 0x40930c
cmp dword [edi + 0x460], 0
je 0x409735
push 0x4b
lea eax, [ebp - 0x750]
push str.ck_WeR
push eax
call fcn.00404457
mov eax, dword [ebp - 0x750]
pop ecx
pop ecx
add eax, 0xfffffff0
mov dword [ebp - 0x720], esp
mov ebx, esp
mov dword [ebp - 0x758], eax
call fcn.00404e00
add eax, 0x10
push edi
mov dword [ebx], eax
call fcn.0040c9f1
mov eax, dword [section..data]
mov ecx, section..data
call dword [eax + 0xc]
lea ebx, [eax + 0x10]
mov dword [ebp - 0x724], ebx
mov edx, str.shortcut
lea ecx, [ebp - 0x76c]
mov byte [ebp - 4], 0x23
call fcn.00418710
mov edx, str.desktop
mov ecx, eax
call fcn.00418710
and dword [ebp - 0x718], 0
mov edi, eax
call fcn.00418500
test eax, eax
je 0x4095cf
push dword [ebp - 0x718]
push edi
call fcn.00418550
mov edx, str.file
mov ecx, eax
call fcn.00418710
call fcn.004184e0
push 0xfde9
lea ecx, [ebp - 0x7c0]
push ecx
mov ebx, eax
call fcn.0041ebc0
push eax
lea eax, [ebp - 0x724]
push eax
call fcn.00404f36
inc dword [ebp - 0x718]
mov eax, edi
call fcn.00418500
cmp dword [ebp - 0x718], eax
jb 0x409577
mov ebx, dword [ebp - 0x724]
mov eax, dword [section..data]
mov ecx, section..data
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x710], eax
mov eax, dword [ebp - 0x730]
push ebx
mov byte [ebp - 4], 0x24
push dword [eax]
lea eax, [ebp - 0x710]
push str._s_s
push eax
call fcn.00404457
add esp, 0x10
push 0x457c7c
push esi
lea eax, [ebp - 0x710]
push eax
call fcn.0040ccbc
lea esi, [ebp - 0x728]
call fcn.0041e8b0
lea eax, [ebp - 0x720]
push 0x4567d0
push eax
mov ecx, esi
mov byte [ebp - 4], 0x25
call fcn.004038cf
mov eax, dword [eax]
pop ecx
pop ecx
call fcn.0041dd50
mov eax, dword [ebp - 0x720]
add eax, 0xfffffff0
call fcn.0040507e
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [ebp - 0x714]
push eax
push 0x451548
push 1
push 0
push 0x451558
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov esi, dword [ebp - 0x710]
test eax, eax
js 0x409713
mov eax, dword [ebp - 0x714]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x50]
mov eax, dword [ebp - 0x714]
mov ecx, dword [eax]
push 0x456684
push eax
call dword [ecx + 0x1c]
mov eax, dword [ebp - 0x714]
mov ecx, dword [eax]
lea edx, [ebp - 0x718]
push edx
push 0x451568
push eax
call dword [ecx]
test eax, eax
js 0x409707
lea eax, [ebp - 0x720]
push str.iTools_3iTools.lnk
push eax
lea ecx, [ebp - 0x728]
call fcn.004038cf
pop ecx
pop ecx
mov byte [ebp - 4], 0x26
mov eax, dword [eax]
mov ecx, dword [ebp - 0x718]
mov edx, dword [ecx]
push 1
push eax
push ecx
call dword [edx + 0x18]
mov byte [ebp - 4], 0x25
mov eax, dword [ebp - 0x720]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x718]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x714]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x728]
add eax, 0xfffffff0
call fcn.0040507e
lea eax, [esi - 0x10]
call fcn.0040507e
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 0x18
call fcn.0040507e
mov eax, dword [section..data]
mov ecx, section..data
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x724], eax
and dword [ebp - 0x45c], 0
mov dword [ebp - 0x458], 0xf
mov byte [ebp - 0x46c], 0
mov byte [ebp - 4], 0x28
cmp dword [ebp - 0x43c], 0x10
mov eax, dword [ebp - 0x450]
jae 0x40977c
lea eax, [ebp - 0x450]
mov edi, dword [ebp - 0x73c]
push eax
lea eax, [ebp - 0x46c]
call fcn.004069a3
and dword [ebp - 0x78c], 0
and dword [ebp - 0x788], 0
mov dword [ebp - 0x784], 1
mov edx, str.mode
lea ecx, [ebp - 0x79c]
mov byte [ebp - 4], 0x29
call fcn.00418710
lea edi, [ebp - 0x78c]
mov esi, eax
call fcn.004182c0
mov ecx, edi
mov byte [ebp - 4], 0x28
call fcn.00418190
mov esi, str.shortcut
mov edx, esi
lea ecx, [ebp - 0x76c]
call fcn.00418710
mov edx, str.setup
lea ecx, [ebp - 0x79c]
mov edi, eax
call fcn.00418710
mov edx, esi
mov ecx, eax
call fcn.00418710
mov esi, eax
call fcn.004182c0
mov eax, dword [ebp - 0x730]
mov ebx, dword [eax]
push 0xfde9
lea eax, [ebp - 0x7c0]
push eax
call fcn.0041ec40
push eax
lea eax, [ebp - 0x4cc]
push eax
call fcn.00420350
push eax
lea ebx, [ebp - 0x504]
call fcn.00417f70
mov edx, str.setup
lea ecx, [ebp - 0x79c]
mov byte [ebp - 4], 0x2a
call fcn.00418710
mov edx, str.root
mov ecx, eax
call fcn.00418710
mov edi, ebx
mov esi, eax
call fcn.004182c0
mov ecx, ebx
mov byte [ebp - 4], 0x28
call fcn.00418190
mov eax, dword [ebp - 0x748]
mov eax, dword [eax + 0x12d4]
cdq
mov dword [ebp - 0x784], 1
mov dword [ebp - 0x78c], eax
mov dword [ebp - 0x788], edx
mov edx, str.channel
lea ecx, [ebp - 0x79c]
mov byte [ebp - 4], 0x2b
call fcn.00418710
lea edi, [ebp - 0x78c]
mov esi, eax
call fcn.004182c0
mov ecx, edi
mov byte [ebp - 4], 0x28
call fcn.00418190
mov esi, str.uninstrun
mov edx, esi
lea ecx, [ebp - 0x76c]
call fcn.00418980
test al, al
je 0x4098f4
mov edx, esi
lea ecx, [ebp - 0x76c]
call fcn.00418710
mov edx, esi
lea ecx, [ebp - 0x79c]
mov edi, eax
call fcn.00418710
mov esi, eax
call fcn.004182c0
and dword [ebp - 0x424], 0
mov dword [ebp - 0x420], 0xf
mov byte [ebp - 0x434], 0
lea eax, [ebp - 0x79c]
push eax
lea ecx, [ebp - 0x50c]
mov byte [ebp - 4], 0x2c
call fcn.00418c90
mov ebx, eax
lea eax, [ebp - 0x434]
mov byte [ebp - 4], 0x2d
call fcn.0040d437
push 1
xor edi, edi
lea esi, [ebp - 0x50c]
mov byte [ebp - 4], 0x2c
call fcn.00401614
mov eax, dword [ebp - 0x424]
mov dword [ebp - 0x720], eax
lea eax, [ebp - 0x720]
push eax
push 4
pop edi
lea eax, [ebp - 0x46c]
call fcn.004069a3
cmp dword [ebp - 0x420], 0x10
mov eax, dword [ebp - 0x434]
jae 0x40997c
lea eax, [ebp - 0x434]
mov edi, dword [ebp - 0x424]
push eax
lea eax, [ebp - 0x46c]
call fcn.004069a3
mov eax, dword [ebp - 0x730]
push dword [eax]
lea eax, [ebp - 0x724]
push str._sunins000.exe
push eax
call fcn.00404457
mov eax, dword [ebp - 0x724]
add esp, 0xc
lea esi, [ebp - 0x46c]
call fcn.0041d880
push 1
xor edi, edi
lea esi, [ebp - 0x434]
call fcn.00401614
push 1
lea esi, [ebp - 0x46c]
mov byte [ebp - 4], 0x27
call fcn.00401614
mov edx, str.lastrun
lea ecx, [ebp - 0x76c]
call fcn.00418710
call fcn.004184e0
push edi
lea ecx, [ebp - 0x7c0]
push ecx
mov ebx, eax
call fcn.0041ebc0
mov ebx, dword [ebp - 0x748]
push eax
mov eax, dword [ebp - 0x730]
push dword [eax]
lea eax, [ebx + 0x474]
push str._s_s
push eax
call fcn.00404457
mov esi, str.instrun
add esp, 0x10
mov edx, esi
lea ecx, [ebp - 0x76c]
call fcn.00418980
test al, al
je 0x409a52
mov edx, esi
lea ecx, [ebp - 0x76c]
call fcn.00418710
lea esi, [ebx + 0x12f8]
mov edi, eax
call fcn.004182c0
lea eax, [ebp - 0x754]
push eax
call fcn.0041f820
pop ecx
mov byte [ebp - 4], 0x2e
mov eax, dword [ebp - 0x754]
call fcn.0041dd50
mov eax, dword [section..data]
mov edi, section..data
mov ecx, edi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x728], eax
mov byte [ebp - 4], 0x2f
push dword [ebp - 0x754]
lea eax, [ebp - 0x728]
push str._sConfig
push eax
call fcn.00404457
mov eax, dword [ebp - 0x728]
add esp, 0xc
call fcn.0041dd50
mov eax, dword [section..data]
mov ecx, edi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x71c], eax
mov byte [ebp - 4], 0x30
push dword [ebp - 0x754]
lea eax, [ebp - 0x71c]
push str._sPlugin
push eax
call fcn.00404457
mov eax, dword [ebp - 0x71c]
add esp, 0xc
call fcn.0041dd50
mov eax, dword [section..data]
mov ecx, edi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x72c], eax
mov byte [ebp - 4], 0x31
push dword [ebp - 0x754]
lea eax, [ebp - 0x72c]
push str._sDevice
push eax
call fcn.00404457
mov eax, dword [ebp - 0x72c]
add esp, 0xc
call fcn.0041dd50
mov eax, dword [ebp - 0x730]
mov esi, dword [eax]
call fcn.0041f6a0
test eax, eax
je 0x409b3f
mov ecx, esi
call fcn.0040ca29
mov esi, dword [ebp - 0x754]
call fcn.0041f6a0
test eax, eax
je 0x409b55
mov ecx, esi
call fcn.0040ca29
mov eax, dword [ebp - 0x754]
add eax, 0xfffffff0
call fcn.00404e00
add eax, 0x10
mov dword [ebp - 0x734], eax
push str.ConfigiTools.cfg
lea eax, [ebp - 0x734]
push eax
mov byte [ebp - 4], 0x32
call fcn.00406d0a
push dword [ebp - 0x734]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x409d20
mov esi, str.instoptions
mov edx, esi
lea ecx, [ebp - 0x76c]
call fcn.00418980
test al, al
je 0x409d20
mov edx, esi
lea ecx, [ebp - 0x76c]
call fcn.00418710
cmp dword [eax + 8], 4
jne 0x409d20
mov edx, esi
lea ecx, [ebp - 0x76c]
call fcn.00418710
call fcn.00418500
test eax, eax
je 0x409d20
and dword [ebp - 0x718], 0
mov edx, esi
lea ecx, [ebp - 0x76c]
call fcn.00418710
call fcn.00418500
test eax, eax
je 0x409d20
mov eax, dword [section..data]
mov ecx, edi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x714], eax
mov byte [ebp - 4], 0x33
push dword [ebp - 0x718]
mov edx, str.instoptions
lea ecx, [ebp - 0x76c]
call fcn.00418710
push eax
call fcn.00418550
call fcn.004184e0
push 0
lea ecx, [ebp - 0x7c0]
push ecx
mov ebx, eax
call fcn.0041ebc0
push eax
mov eax, dword [ebp - 0x730]
push dword [eax]
lea eax, [ebp - 0x714]
push str._s_s
push eax
call fcn.00404457
push 0x44
xor esi, esi
lea eax, [ebp - 0x554]
push esi
push eax
call fcn.00437620
add esp, 0x1c
push 0x10
lea eax, [ebp - 0x78c]
push esi
push eax
call fcn.00437620
mov ebx, dword [ebp - 0x714]
add esp, 0xc
cmp dword [ebx - 4], 1
jle 0x409caa
push dword [ebx - 0xc]
lea eax, [ebp - 0x714]
push eax
call fcn.00404f5f
mov ebx, dword [ebp - 0x714]
lea eax, [ebp - 0x78c]
push eax
lea eax, [ebp - 0x554]
push eax
push esi
push esi
push esi
push esi
push esi
push esi
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
lea esi, [ebp - 0x714]
call fcn.00406c56
push dword [ebp - 0x78c]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x788]
call esi
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 0x32
call fcn.0040507e
inc dword [ebp - 0x718]
mov edx, str.instoptions
lea ecx, [ebp - 0x76c]
call fcn.00418710
call fcn.00418500
cmp dword [ebp - 0x718], eax
jb 0x409c01
mov ebx, dword [ebp - 0x748]
lea esi, [ebp - 0x7d4]
call fcn.00403b0a
mov ecx, dword [ebp - 0x730]
lea eax, [ebp - 0x720]
push str.iTools.exe
push eax
mov byte [ebp - 4], 0x34
call fcn.004038cf
mov byte [ebp - 4], 0x35
mov eax, dword [eax]
mov ecx, esi
push ecx
mov ecx, eax
call fcn.0041f010
mov byte [ebp - 4], 0x34
mov eax, dword [ebp - 0x720]
add esp, 0xc
add eax, 0xfffffff0
call fcn.0040507e
lea eax, [ebp - 0x710]
push eax
mov ecx, str.PrivateBuild
call fcn.00404da4
mov eax, esi
push eax
lea ecx, [ebp - 0x710]
mov byte [ebp - 4], 0x36
call fcn.00403b35
push dword [eax]
call fcn.00439a7e
mov dword [ebx + 0x12d0], eax
mov eax, dword [ebp - 0x710]
pop ecx
add eax, 0xfffffff0
call fcn.0040507e
xor eax, eax
mov dword [ebp - 0x424], eax
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x41c], eax
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstallThinkSky
push closesocket
lea eax, [ebp - 0x424]
mov byte [ebp - 4], 0x37
call fcn.0040d608
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x409e9c
push 0x456684
push str.DisplayName
lea eax, [ebp - 0x424]
push eax
call fcn.0040d564
push dword [ebp - 0x724]
lea eax, [ebp - 0x424]
push str.DisplayIcon
push eax
call fcn.0040d564
push str.http:__www.itools.cn
push str.HelpLink
lea eax, [ebp - 0x424]
push eax
call fcn.0040d564
push dword [ebp - 0x724]
lea eax, [ebp - 0x424]
push str.UninstallString
push eax
call fcn.0040d564
push 0x4573c8
push str.Publisher
lea eax, [ebp - 0x424]
push eax
call fcn.0040d564
push str.2052
push str.Lang
lea eax, [ebp - 0x424]
push eax
call fcn.0040d564
mov eax, dword [ebx + 0x12d0]
push 4
mov dword [ebp - 0x720], eax
lea eax, [ebp - 0x720]
push eax
push 4
push 0
push str.Version
push dword [ebp - 0x424]
call edi
lea esi, [ebp - 0x424]
call fcn.00406c3a
push str.SOFTWAREThinkSkyiTools3
push closesocket
lea eax, [ebp - 0x424]
call fcn.0040d608
test eax, eax
jne 0x409f10
mov eax, dword [ebx + 0x12d4]
push 4
pop esi
push esi
mov dword [ebp - 0x720], eax
lea eax, [ebp - 0x720]
push eax
push esi
push 0
push str.Channel
push dword [ebp - 0x424]
call edi
xor eax, eax
inc eax
cmp dword [ebx + 0x12dc], eax
jne 0x409f05
push esi
mov dword [ebp - 0x720], eax
lea eax, [ebp - 0x720]
push eax
push esi
push 0
push str.NoAutorunTray
push dword [ebp - 0x424]
call edi
lea esi, [ebp - 0x424]
call fcn.00406c3a
push 0x5f
mov eax, ebx
call fcn.0040c8f7
xor esi, esi
xor edi, edi
cmp dword [ebx + 0x46c], esi
je 0x40a075
cmp dword [ebp - 0x43c], 0x10
mov eax, dword [ebp - 0x450]
mov dword [ebp - 0x710], esi
jae 0x409f44
lea eax, [ebp - 0x450]
add eax, dword [ebp - 0x74c]
mov ecx, dword [ebp - 0x73c]
add eax, dword [ebp - 0x744]
push 4
lea eax, [eax + ecx + 8]
push eax
lea eax, [ebp - 0x710]
push eax
call fcn.004376a0
mov eax, dword [ebp - 0x710]
mov ecx, eax
sub ecx, dword [ebp - 0x74c]
add esp, 0xc
sub ecx, dword [ebp - 0x744]
sub ecx, dword [ebp - 0x73c]
sub ecx, 0xc
cmp eax, ecx
ja 0x40a075
add eax, 4
lea esi, [ebp - 0x718]
mov dword [ebp - 0x7a0], eax
call fcn.0041dd70
mov byte [ebp - 4], 0x38
call fcn.0041efc0
push edx
push eax
push str._016I64X.dll
mov ecx, esi
call fcn.00406d57
and dword [ebp - 0x45c], 0
add esp, 0xc
mov dword [ebp - 0x458], 0xf
mov byte [ebp - 0x46c], 0
mov byte [ebp - 4], 0x39
cmp dword [ebp - 0x43c], 0x10
mov eax, dword [ebp - 0x450]
jae 0x409ff0
lea eax, [ebp - 0x450]
add eax, dword [ebp - 0x74c]
mov ecx, dword [ebp - 0x718]
add eax, dword [ebp - 0x744]
mov edi, dword [ebp - 0x710]
mov dword [ebp - 0x720], ecx
mov ecx, dword [ebp - 0x73c]
lea eax, [eax + ecx + 0xc]
push eax
lea eax, [ebp - 0x46c]
call fcn.004069a3
mov esi, eax
mov eax, dword [ebp - 0x720]
call fcn.0041d880
push 1
xor edi, edi
lea esi, [ebp - 0x46c]
mov byte [ebp - 4], 0x38
call fcn.00401614
push dword [ebp - 0x718]
add ebx, 0x4e8
call fcn.0040e577
mov byte [ebp - 4], 0x37
mov eax, dword [ebp - 0x718]
add eax, 0xfffffff0
call fcn.0040507e
mov ebx, dword [ebp - 0x748]
mov edi, dword [ebp - 0x7a0]
xor esi, esi
cmp dword [ebx + 0x468], esi
je 0x40a2ca
call fcn.0041f9b0
test eax, eax
jne 0x40a2ca
cmp dword [ebp - 0x43c], 0x10
mov eax, dword [ebp - 0x450]
mov dword [ebp - 0x714], esi
jae 0x40a0a9
lea eax, [ebp - 0x450]
mov ecx, dword [ebp - 0x73c]
add eax, edi
add eax, dword [ebp - 0x74c]
push 4
add eax, dword [ebp - 0x744]
lea eax, [eax + ecx + 8]
push eax
lea eax, [ebp - 0x714]
push eax
call fcn.004376a0
mov eax, dword [ebp - 0x778]
sub eax, edi
sub eax, dword [ebp - 0x74c]
add esp, 0xc
sub eax, dword [ebp - 0x744]
sub eax, dword [ebp - 0x73c]
sub eax, 0xc
cmp dword [ebp - 0x714], eax
ja 0x40a2ca
lea esi, [ebp - 0x720]
call fcn.0041dd70
mov esi, eax
push str..zip
mov byte [ebp - 4], 0x3a
call fcn.0041efc0
push edx
push eax
push dword [esi]
lea eax, [ebp - 0x738]
push str._s_016I64X_s
push eax
call fcn.00404457
mov eax, dword [ebp - 0x720]
add esp, 0x18
add eax, 0xfffffff0
call fcn.0040507e
and dword [ebp - 0x45c], 0
mov dword [ebp - 0x458], 0xf
mov byte [ebp - 0x46c], 0
mov byte [ebp - 4], 0x3b
cmp dword [ebp - 0x43c], 0x10
mov eax, dword [ebp - 0x450]
jae 0x40a16e
lea eax, [ebp - 0x450]
mov ecx, dword [ebp - 0x73c]
add eax, edi
add eax, dword [ebp - 0x74c]
mov edi, dword [ebp - 0x714]
add eax, dword [ebp - 0x744]
lea eax, [eax + ecx + 0xc]
push eax
lea eax, [ebp - 0x46c]
call fcn.004069a3
mov eax, dword [ebp - 0x738]
lea esi, [ebp - 0x46c]
call fcn.0041d880
test eax, eax
je 0x40a1be
lea edi, [ebx + 0x478]
lea eax, [ebp - 0x738]
call fcn.004068ad
push 0x40a43a
lea eax, [ebx + 0x480]
mov edx, ebx
call fcn.0041d520
push 1
xor edi, edi
lea esi, [ebp - 0x46c]
call fcn.00401614
lea esi, [ebp - 0x424]
call fcn.00406c3a
lea eax, [ebp - 0x7d4]
push eax
mov byte [ebp - 4], 0x32
call fcn.00401f80
mov eax, dword [ebp - 0x734]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x72c]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x71c]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x728]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x754]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x724]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x740]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x758]
call fcn.0040507e
lea ecx, [ebp - 0x79c]
mov byte [ebp - 4], 9
call fcn.00418190
lea esi, [ebp - 0x4cc]
call fcn.00420250
lea esi, [ebp - 0x7c0]
call fcn.0041ead0
push 1
lea esi, [ebp - 0x48c]
call fcn.00401614
mov eax, dword [ebp - 0x738]
add eax, 0xfffffff0
call fcn.0040507e
lea ecx, [ebp - 0x76c]
mov byte [ebp - 4], 3
call fcn.00418190
push 1
lea esi, [ebp - 0x4a8]
call fcn.00401614
xor ebx, ebx
jmp 0x408167
push 0x64
mov eax, ebx
call fcn.0040c8f7
push esi
push esi
cmp dword [ebx + 0x464], esi
je 0x40a2ee
mov eax, dword [ebx]
push 0x8401
mov ecx, ebx
call dword [eax + 0xe0]
jmp 0x40a300
push 1
push esi
push esi
push 0x8401
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
lea esi, [ebp - 0x424]
call fcn.00406c3a
lea eax, [ebp - 0x7d4]
push eax
mov byte [ebp - 4], 0x32
call fcn.00401f80
mov eax, dword [ebp - 0x734]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x72c]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x71c]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x728]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x754]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x724]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x740]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x758]
call fcn.0040507e
lea ecx, [ebp - 0x79c]
mov byte [ebp - 4], 9
call fcn.00418190
lea esi, [ebp - 0x4cc]
call fcn.00420250
lea esi, [ebp - 0x7c0]
call fcn.0041ead0
push 1
xor edi, edi
lea esi, [ebp - 0x48c]
call fcn.00401614
mov eax, dword [ebp - 0x738]
add eax, 0xfffffff0
call fcn.0040507e
lea ecx, [ebp - 0x76c]
mov byte [ebp - 4], 3
call fcn.00418190
push 1
lea esi, [ebp - 0x4a8]
call fcn.00401614
push 1
lea esi, [ebp - 0x450]
call fcn.00401614
mov eax, dword [ebp - 0x774]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x770]
add eax, 0xfffffff0
call fcn.0040507e
xor eax, eax
jmp 0x40a432
mov eax, dword [ebp - 0x774]
add eax, 0xfffffff0
call fcn.0040507e
mov eax, dword [ebp - 0x770]
add eax, 0xfffffff0
call fcn.0040507e
xor eax, eax
inc eax
call fcn.0044b912
ret 4