Function at 0x10016552
Capabilities:
Persist via contextmenuhandlers registry key
Set registry value

Disassembly:
push 0x34
mov eax, 0x1004fc8f
call fcn.10018691
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x1001656a
call fcn.100164bc
push str.CLSID_
lea ecx, [ebp - 0x28]
call fcn.1000ffac
and dword [ebp - 4], 0
lea ecx, [ebp - 0x28]
push str.7e0e922a_191b_5462_9499_38051fa71c94
call fcn.10010327
mov bl, byte [ebp + 8]
test bl, bl
je 0x10016654
and dword [ebp + 0x10], 0
lea eax, [ebp + 0x10]
push esi
push dword [ebp - 0x28]
push 0x80000000
push eax
call fcn.100164e2
mov edi, eax
add esp, 0x10
mov dword [ebp - 0x10], edi
test edi, edi
jne 0x10016611
push str.CloudZip_Shell_Extension
push eax
lea ecx, [ebp + 0x10]
call fcn.1001249e
and dword [ebp + 8], edi
lea eax, [ebp + 8]
push esi
push 0x10057c60
push dword [ebp + 0x10]
push eax
call fcn.100164e2
mov edi, eax
add esp, 0x10
mov dword [ebp - 0x10], edi
test edi, edi
jne 0x10016609
mov eax, dword [ebp + 0xc]
lea ecx, [ebp + 8]
push dword [eax]
push edi
call fcn.1001249e
push str.Apartment
mov edi, eax
lea ecx, [ebp + 8]
push str.ThreadingModel
mov dword [ebp - 0x10], edi
call fcn.1001249e
lea ecx, [ebp + 8]
call fcn.100122b2
lea ecx, [ebp + 0x10]
call fcn.100122b2
and dword [ebp + 8], 0
lea eax, [ebp + 8]
push esi
push str.SoftwareMicrosoftWindowsCurrentVersionShell_ExtensionsApproved
push 0x80000002
push eax
call fcn.100164e2
add esp, 0x10
test eax, eax
jne 0x1001664a
push str.CloudZip_Shell_Extension
push 0x10057b20
lea ecx, [ebp + 8]
call fcn.1001249e
lea ecx, [ebp + 8]
call fcn.100122b2
jmp 0x10016693
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x40]
call fcn.1000ff58
push str.InprocServer32
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 1
call fcn.10010327
push esi
push dword [ebp - 0x40]
call fcn.1001653a
push esi
push dword [ebp - 0x28]
call fcn.1001653a
push dword [ebp - 0x40]
mov edi, eax
mov dword [ebp - 0x10], edi
call fcn.10018644
add esp, 0x14
push dword [ebp - 0x28]
or dword [ebp - 4], 0xffffffff
call fcn.10018644
pop ecx
test bl, bl
je 0x100167b8
xor eax, eax
mov dword [ebp - 0x18], 2
mov ecx, 0x10057d78
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x14], ecx
test eax, eax
mov edi, str._shellexDragDropHandlersCloudZipShell
mov edx, str._shellexContextMenuHandlersCloudZipShell
cmovne edx, edi
mov edi, ecx
mov dword [ebp - 0x1c], edx
xor ebx, ebx
push dword [ebx + 0x1006e130]
lea ecx, [ebp - 0x34]
call fcn.1000ffac
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x34]
mov dword [ebp - 4], 2
call fcn.10010327
cmp byte [edi], 0
push esi
push dword [ebp - 0x34]
je 0x10016729
and dword [ebp + 8], 0
lea eax, [ebp + 8]
push 0x80000000
push eax
call fcn.100164e2
add esp, 0x10
lea ecx, [ebp + 8]
push 0x10057b20
push 0
call fcn.1001249e
lea ecx, [ebp + 8]
call fcn.100122b2
jmp 0x10016730
call fcn.1001653a
pop ecx
pop ecx
push dword [ebp - 0x34]
or dword [ebp - 4], 0xffffffff
call fcn.10018644
add ebx, 4
inc edi
pop ecx
cmp ebx, 0x18
jb 0x100166d2
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x14]
inc eax
add ecx, 5
mov dword [ebp + 0x10], eax
sub dword [ebp - 0x18], 1
mov dword [ebp - 0x14], ecx
jne 0x100166bc
lea ecx, [ebp - 0x40]
call fcn.1001002d
push str.SOFTWAREMicrosoftWindowsCurrentVersionExplorerShellIconOverlayIdentifiers_
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 3
call fcn.10010108
push str.CloudZip_Shell_Extension
lea ecx, [ebp - 0x40]
call fcn.10010376
mov esi, dword [ebp - 0x40]
mov ebx, 0x10057b20
push ebx
call fcn.10033e5f
pop ecx
add eax, eax
push eax
push ebx
push 1
push 0
push esi
push 0x80000002
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
push dword [ebp - 0x40]
call fcn.10018644
mov edi, dword [ebp - 0x10]
pop ecx
mov eax, edi
call fcn.1001865a
ret