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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x604e5e
mov eax, dword fs:[0]
push eax
sub esp, 0x6ac
mov eax, dword [0x69def4]
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.005d4b40
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.005d4b40
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 0x609b1c
call fcn.004072f0
mov dword [ebp - 4], 0
call fcn.0048c150
test al, al
je 0x476be2
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 0x609b1c
push str._shellexContextMenuHandlers_
lea eax, [ebp - 0x420]
push 0x609b88
push eax
call fcn.0040fd80
add esp, 0x10
call fcn.0048c540
test al, al
je 0x476c27
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.0048bba0
test al, al
je 0x476c49
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.0048bcf0
test al, al
je 0x476c6b
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 0x609b88
push eax
call fcn.0040fd80
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 0x60be20
lea ecx, [ebp - 0x640]
mov dword [ebp - 0x62c], 7
mov dword [ebp - 0x630], 0
mov word [ebp - 0x640], ax
call fcn.004072f0
lea eax, [ebp - 0x640]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x6b4]
call fcn.0041db20
mov eax, dword [ebp - 0x62c]
mov byte [ebp - 4], 1
cmp eax, 8
jb 0x476d22
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.004073f0
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.004072f0
lea eax, [ebp - 0x640]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x6b4]
call fcn.0041db20
mov eax, dword [ebp - 0x62c]
mov byte [ebp - 4], 1
cmp eax, 8
jb 0x476d89
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.004073f0
push 9
xor eax, eax
mov dword [ebp - 0x62c], 7
push 0x611440
lea ecx, [ebp - 0x640]
mov dword [ebp - 0x630], 0
mov word [ebp - 0x640], ax
call fcn.004072f0
lea eax, [ebp - 0x640]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x6b4]
call fcn.0041db20
mov eax, dword [ebp - 0x62c]
mov byte [ebp - 4], 1
cmp eax, 8
jb 0x476df0
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.004073f0
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.004072f0
lea eax, [ebp - 0x640]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x6b4]
call fcn.0041db20
mov eax, dword [ebp - 0x62c]
mov byte [ebp - 4], 1
cmp eax, 8
jb 0x476e57
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.004073f0
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.004072f0
lea eax, [ebp - 0x640]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x6b4]
call fcn.0041db20
mov eax, dword [ebp - 0x62c]
cmp eax, 8
jb 0x476eba
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.004073f0
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.005d4b40
mov ebx, dword [ebp - 0x6b4]
add esp, 0xc
mov edi, dword [ebp - 0x6b0]
mov dword [ebp - 0x6b8], ebx
cmp ebx, edi
je 0x477277
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
cmp dword [ebx + 0x14], 8
jb 0x476f1a
mov edx, dword [ebx]
jmp 0x476f1c
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 0x476f42
xor ecx, ecx
jmp 0x476f5c
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x476f47
sub ecx, esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x640]
call fcn.004072f0
cmp word [ebp - 0x420], 0
mov byte [ebp - 4], 8
jne 0x476f7b
xor ecx, ecx
jmp 0x476f93
lea ecx, [ebp - 0x420]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x476f84
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x640]
call fcn.0040fc50
cmp dword [ebx + 0x14], 8
jb 0x476fb0
mov eax, dword [ebx]
jmp 0x476fb2
mov eax, ebx
push eax
lea ecx, [ebp - 0x670]
call fcn.00405d50
cmp word [ebp - 0x628], 0
mov byte [ebp - 4], 9
jne 0x476fd0
xor ecx, ecx
jmp 0x476fef
lea ecx, [ebp - 0x628]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x476fe0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x628]
push eax
lea ecx, [ebp - 0x670]
call fcn.0040fc50
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 0x4770e9
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 0x477070
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x477090
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x218]
push eax
push 1
push 0
push 0x6097e8
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 0x4770e9
inc eax
lea ecx, [ebp - 0x658]
push eax
push dword [ebp - 0x658]
call fcn.004073f0
mov dword [ebp - 0x6a8], 0
call fcn.0048c2a0
test al, al
je 0x477129
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 0x477209
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 0x477190
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4771b0
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x218]
push eax
push 1
push 0
push 0x6097e8
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 0x477209
inc eax
lea ecx, [ebp - 0x658]
push eax
push dword [ebp - 0x658]
call fcn.004073f0
mov eax, dword [ebp - 0x65c]
cmp eax, 8
jb 0x477227
inc eax
lea ecx, [ebp - 0x670]
push eax
push dword [ebp - 0x670]
call fcn.004073f0
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 0x477266
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.004073f0
add ebx, 0x18
mov dword [ebp - 0x6b8], ebx
cmp ebx, edi
jne 0x476f10
lea ecx, [ebp - 0x6b4]
call fcn.004274b0
mov eax, dword [ebp - 0x674]
cmp eax, 8
jb 0x4772a0
inc eax
lea ecx, [ebp - 0x688]
push eax
push dword [ebp - 0x688]
call fcn.004073f0
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.005cabbc
mov esp, ebp
pop ebp
ret