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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6048de
mov eax, dword fs:[0]
push eax
sub esp, 0x6ac
mov eax, dword [0x69cef4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.005d4520
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.005d4520
add esp, 0x18
mov dword [ebp - 0x674], 7
xor eax, eax
mov dword [ebp - 0x678], 0
lea ecx, [ebp - 0x688]
mov word [ebp - 0x688], ax
push 7
push 0x608b1c
call fcn.00407280
mov dword [ebp - 4], 0
call fcn.0048bb30
test al, al
je 0x476202
pop eax
pop esi
pop edx
pop ebp
pop eax
push ebx
pop ebx
push eax
push ecx
push esp
pop edi
push edi
push edx
pop edx
push eax
push edi
push ebx
push edx
pop edx
push ebp
pop eax
push edx
pop esi
push esi
pop ebp
push ebx
push eax
push esp
push 0x608b1c
push str._shellexContextMenuHandlers_
lea eax, [ebp - 0x420]
push 0x608b88
push eax
call fcn.0040fd00
add esp, 0x10
call fcn.0048bf20
test al, al
je 0x476247
push esi
pop esi
pop eax
pop ecx
push ecx
pop esi
pop eax
push esi
push esp
push ebp
pop ebx
push eax
push edi
push esp
pop ebx
pop esp
pop edx
push edi
pop esp
push esi
push edx
push ebx
pop edi
push eax
pop ecx
push esp
pop ecx
push ecx
pop esi
push ebx
call fcn.0048b580
test al, al
je 0x476269
pop esi
push eax
push esi
push edx
push ebx
pop edx
push edx
pop esi
pop esp
push ebx
pop edx
push edx
pop edi
pop edx
pop esp
push ebp
pop esi
push ebx
push ebx
push esp
pop edx
push edi
push ebp
push edi
push esp
call fcn.0048b6d0
test al, al
je 0x47628b
pop eax
push ebp
pop ebp
push ebp
push edi
push eax
pop esp
push ecx
push edi
push esi
push edx
pop ebx
push ebp
pop ebp
pop edx
pop ebp
push esp
pop ebx
push ecx
push eax
pop ecx
pop ebp
push eax
pop esp
push esi
cmp dword [ebp - 0x674], 8
lea eax, [ebp - 0x688]
cmovae eax, dword [ebp - 0x688]
push eax
push str._shellexDragDropHandlers_
lea eax, [ebp - 0x628]
push 0x608b88
push eax
call fcn.0040fd00
add esp, 0x10
mov dword [ebp - 0x6b4], 0
mov dword [ebp - 0x6b0], 0
mov dword [ebp - 0x6ac], 0
push 1
xor eax, eax
mov byte [ebp - 4], 1
push 0x60ae20
lea ecx, [ebp - 0x640]
mov dword [ebp - 0x62c], 7
mov dword [ebp - 0x630], 0
mov word [ebp - 0x640], ax
call fcn.00407280
lea eax, [ebp - 0x640]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x6b4]
call fcn.0041d9e0
mov eax, dword [ebp - 0x62c]
mov byte [ebp - 4], 1
cmp eax, 8
jb 0x476342
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.00407380
push 6
xor eax, eax
mov dword [ebp - 0x62c], 7
push str.Folder
lea ecx, [ebp - 0x640]
mov dword [ebp - 0x630], 0
mov word [ebp - 0x640], ax
call fcn.00407280
lea eax, [ebp - 0x640]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x6b4]
call fcn.0041d9e0
mov eax, dword [ebp - 0x62c]
mov byte [ebp - 4], 1
cmp eax, 8
jb 0x4763a9
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.00407380
push 9
xor eax, eax
mov dword [ebp - 0x62c], 7
push 0x610420
lea ecx, [ebp - 0x640]
mov dword [ebp - 0x630], 0
mov word [ebp - 0x640], ax
call fcn.00407280
lea eax, [ebp - 0x640]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x6b4]
call fcn.0041d9e0
mov eax, dword [ebp - 0x62c]
mov byte [ebp - 4], 1
cmp eax, 8
jb 0x476410
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.00407380
push 5
xor eax, eax
mov dword [ebp - 0x62c], 7
push str.Drive
lea ecx, [ebp - 0x640]
mov dword [ebp - 0x630], 0
mov word [ebp - 0x640], ax
call fcn.00407280
lea eax, [ebp - 0x640]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x6b4]
call fcn.0041d9e0
mov eax, dword [ebp - 0x62c]
mov byte [ebp - 4], 1
cmp eax, 8
jb 0x476477
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.00407380
push 7
xor eax, eax
mov dword [ebp - 0x62c], 7
push str.lnkfile
lea ecx, [ebp - 0x640]
mov dword [ebp - 0x630], 0
mov word [ebp - 0x640], ax
call fcn.00407280
lea eax, [ebp - 0x640]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x6b4]
call fcn.0041d9e0
mov eax, dword [ebp - 0x62c]
cmp eax, 8
jb 0x4764da
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.00407380
xor eax, eax
mov dword [ebp - 0x68c], 7
mov dword [ebp - 0x690], 0
mov word [ebp - 0x6a0], ax
push 0x208
push eax
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 7
push eax
call fcn.005d4520
mov ebx, dword [ebp - 0x6b4]
add esp, 0xc
mov edi, dword [ebp - 0x6b0]
mov dword [ebp - 0x6b8], ebx
cmp ebx, edi
je 0x476897
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
cmp dword [ebx + 0x14], 8
jb 0x47653a
mov edx, dword [ebx]
jmp 0x47653c
mov edx, ebx
xor eax, eax
mov dword [ebp - 0x62c], 7
mov dword [ebp - 0x630], 0
mov word [ebp - 0x640], ax
cmp word [edx], ax
jne 0x476562
xor ecx, ecx
jmp 0x47657c
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x476567
sub ecx, esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x640]
call fcn.00407280
cmp word [ebp - 0x420], 0
mov byte [ebp - 4], 8
jne 0x47659b
xor ecx, ecx
jmp 0x4765b3
lea ecx, [ebp - 0x420]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4765a4
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x640]
call fcn.0040fbd0
cmp dword [ebx + 0x14], 8
jb 0x4765d0
mov eax, dword [ebx]
jmp 0x4765d2
mov eax, ebx
push eax
lea ecx, [ebp - 0x670]
call fcn.00405d50
cmp word [ebp - 0x628], 0
mov byte [ebp - 4], 9
jne 0x4765f0
xor ecx, ecx
jmp 0x47660f
lea ecx, [ebp - 0x628]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x476600
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x628]
push eax
lea ecx, [ebp - 0x670]
call fcn.0040fbd0
cmp dword [ebp - 0x62c], 8
lea ecx, [ebp - 0x6a4]
push 0
push ecx
push 0
push 0xf013f
push 0
push 0
lea eax, [ebp - 0x640]
mov dword [ebp - 0x6a4], 0
cmovae eax, dword [ebp - 0x640]
push 0
push eax
push accept
call esi
test eax, eax
jne 0x476709
push str.99DBFBB4_9D93_4F50_94F7_74A39CBBEE52
lea ecx, [ebp - 0x658]
call fcn.00405d50
cmp dword [ebp - 0x644], 8
lea ecx, [ebp - 0x658]
lea edx, [ebp - 0x218]
cmovae ecx, dword [ebp - 0x658]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x476690
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4766b0
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x218]
push eax
push 1
push 0
push 0x6087e8
push dword [ebp - 0x6a4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 0x6a4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x644]
cmp eax, 8
jb 0x476709
inc eax
lea ecx, [ebp - 0x658]
push eax
push dword [ebp - 0x658]
call fcn.00407380
mov dword [ebp - 0x6a8], 0
call fcn.0048bc80
test al, al
je 0x476749
push esi
push esp
push ecx
pop ebp
push ecx
pop ecx
pop edi
push edx
pop edx
push ecx
pop esi
push ecx
push esp
push ecx
push esp
pop ebx
push esp
push ebp
pop ebx
push esi
pop esi
pop eax
push eax
push ebp
push ebp
push edx
push edx
mov ebx, dword [ebp - 0x6b8]
mov edi, dword [ebp - 0x6b0]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
cmp dword [ebp - 0x65c], 8
lea ecx, [ebp - 0x6a8]
push 0
push ecx
push 0
push 0xf013f
push 0
push 0
lea eax, [ebp - 0x670]
cmovae eax, dword [ebp - 0x670]
push 0
push eax
push accept
call esi
test eax, eax
jne 0x476829
push str.99DBFBB4_9D93_4F50_94F7_74A39CBBEE52
lea ecx, [ebp - 0x658]
call fcn.00405d50
cmp dword [ebp - 0x644], 8
lea ecx, [ebp - 0x658]
lea edx, [ebp - 0x218]
cmovae ecx, dword [ebp - 0x658]
nop dword [eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x4767b0
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4767d0
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x218]
push eax
push 1
push 0
push 0x6087e8
push dword [ebp - 0x6a8]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 0x6a8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x644]
cmp eax, 8
jb 0x476829
inc eax
lea ecx, [ebp - 0x658]
push eax
push dword [ebp - 0x658]
call fcn.00407380
mov eax, dword [ebp - 0x65c]
cmp eax, 8
jb 0x476847
inc eax
lea ecx, [ebp - 0x670]
push eax
push dword [ebp - 0x670]
call fcn.00407380
xor eax, eax
mov dword [ebp - 0x65c], 7
mov word [ebp - 0x670], ax
mov eax, dword [ebp - 0x62c]
mov dword [ebp - 0x660], 0
mov byte [ebp - 4], 7
cmp eax, 8
jb 0x476886
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.00407380
add ebx, 0x18
mov dword [ebp - 0x6b8], ebx
cmp ebx, edi
jne 0x476530
lea ecx, [ebp - 0x6b4]
call fcn.00413a30
mov eax, dword [ebp - 0x674]
cmp eax, 8
jb 0x4768c0
inc eax
lea ecx, [ebp - 0x688]
push eax
push dword [ebp - 0x688]
call fcn.00407380
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005ca59c
mov esp, ebp
pop ebp
ret