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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5dbc4e
mov eax, dword fs:[0]
push eax
sub esp, 0x6ac
mov eax, dword [0x66f33c]
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.0047be90
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.0047be90
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 0x12
push 0x5e28c4
call fcn.00403000
mov dword [ebp - 4], 0
call fcn.004544b9
test al, al
je 0x433f13
pop esi
push ebx
pop edi
push esi
pop edx
pop ecx
pop ebp
push eax
push ebx
pop ecx
pop ecx
pop edx
pop edx
pop esp
push ebx
push ebx
push esp
pop eax
pop ebp
push esi
pop eax
pop edx
pop edi
push eax
pop ebx
push ebp
push eax
pop esi
push eax
push 0x5e28c4
push str._shellexContextMenuHandlers_
lea eax, [ebp - 0x420]
push 0x5e60d0
push eax
call fcn.00407930
add esp, 0x10
call fcn.00454588
test al, al
je 0x433f59
pop esp
pop edx
push ecx
push esi
pop edx
pop ebx
pop edi
push esi
pop ebp
pop ecx
pop esp
push eax
pop ebp
pop edx
push ebp
pop ecx
push ebx
pop esi
pop eax
pop edx
push ebx
push esi
pop ecx
push ebp
push ebx
pop ebp
pop ecx
push edx
push edx
pop edi
push eax
call fcn.0045469c
test al, al
je 0x433f7f
pop ebx
push ecx
push ebp
pop edi
push edx
pop ecx
push esp
pop ebx
pop ecx
pop edi
push ebx
push ebx
push esp
pop edi
pop edx
push ebx
push ebx
pop edi
pop eax
pop ebp
pop esi
pop edi
pop ebx
push esp
pop ebp
pop eax
pop esi
pop edi
pop ecx
cmp dword [ebp - 0x674], 8
lea eax, [ebp - 0x688]
cmovae eax, dword [ebp - 0x688]
push eax
push str._shellexDragDropHandlers_
lea eax, [ebp - 0x628]
push 0x5e60d0
push eax
call fcn.00407930
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 0x5e6114
lea ecx, [ebp - 0x640]
mov dword [ebp - 0x62c], 7
mov dword [ebp - 0x630], 0
mov word [ebp - 0x640], ax
call fcn.00403000
lea eax, [ebp - 0x640]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x6b4]
call fcn.0040c6f0
mov eax, dword [ebp - 0x62c]
mov byte [ebp - 4], 1
cmp eax, 8
jb 0x434036
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.00403100
push 6
xor eax, eax
mov dword [ebp - 0x62c], 7
push 0x5e6118
lea ecx, [ebp - 0x640]
mov dword [ebp - 0x630], 0
mov word [ebp - 0x640], ax
call fcn.00403000
lea eax, [ebp - 0x640]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x6b4]
call fcn.0040c6f0
mov eax, dword [ebp - 0x62c]
mov byte [ebp - 4], 1
cmp eax, 8
jb 0x43409d
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.00403100
push 9
xor eax, eax
mov dword [ebp - 0x62c], 7
push 0x5e6128
lea ecx, [ebp - 0x640]
mov dword [ebp - 0x630], 0
mov word [ebp - 0x640], ax
call fcn.00403000
lea eax, [ebp - 0x640]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x6b4]
call fcn.0040c6f0
mov eax, dword [ebp - 0x62c]
mov byte [ebp - 4], 1
cmp eax, 8
jb 0x434104
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.00403100
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.00403000
lea eax, [ebp - 0x640]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x6b4]
call fcn.0040c6f0
mov eax, dword [ebp - 0x62c]
mov byte [ebp - 4], 1
cmp eax, 8
jb 0x43416b
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.00403100
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.00403000
lea eax, [ebp - 0x640]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x6b4]
call fcn.0040c6f0
mov eax, dword [ebp - 0x62c]
cmp eax, 8
jb 0x4341ce
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.00403100
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.0047be90
mov esi, dword [ebp - 0x6b4]
add esp, 0xc
mov dword [ebp - 0x6b8], esi
cmp esi, dword [ebp - 0x6b0]
je 0x4345c5
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
cmp dword [esi + 0x14], 8
jb 0x434232
mov edx, dword [esi]
jmp 0x434234
mov edx, esi
xor eax, eax
mov dword [ebp - 0x62c], 7
mov dword [ebp - 0x630], 0
mov word [ebp - 0x640], ax
cmp word [edx], ax
jne 0x43425a
xor ecx, ecx
jmp 0x434275
mov ecx, edx
lea edi, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x434260
sub ecx, edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x640]
call fcn.00403000
cmp word [ebp - 0x420], 0
mov byte [ebp - 4], 8
jne 0x434294
xor ecx, ecx
jmp 0x4342af
lea ecx, [ebp - 0x420]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4342a0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x640]
call fcn.00405290
cmp dword [esi + 0x14], 8
jb 0x4342cc
mov eax, dword [esi]
jmp 0x4342ce
mov eax, esi
push eax
lea ecx, [ebp - 0x670]
call fcn.00403740
cmp word [ebp - 0x628], 0
mov byte [ebp - 4], 9
jne 0x4342ec
xor ecx, ecx
jmp 0x434304
lea ecx, [ebp - 0x628]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4342f5
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x628]
push eax
lea ecx, [ebp - 0x670]
call fcn.00405290
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 SysReAllocString
call ebx
test eax, eax
jne 0x4343f5
push str.ED262B91_1251_40D8_AA54_414196DABA43
lea ecx, [ebp - 0x658]
call fcn.00403740
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 0x434385
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4343a0
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x218]
push eax
push 1
push 0
push 0x5e266c
push dword [ebp - 0x6a4]
call edi
push dword [ebp - 0x6a4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x644]
cmp eax, 8
jb 0x4343f5
inc eax
lea ecx, [ebp - 0x658]
push eax
push dword [ebp - 0x658]
call fcn.00403100
mov dword [ebp - 0x6a8], 0
call fcn.00454588
test al, al
je 0x434420
pop edx
pop edi
push edx
pop ebx
pop ebp
pop edx
push esp
pop edx
push esp
push ebp
pop ebp
pop edi
push eax
push esp
push esp
push ebx
pop edi
pop edi
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
call fcn.004547b0
test al, al
je 0x434444
push edi
push edi
push eax
push edi
pop ecx
push ebp
push esp
pop ebp
push ebp
push ebp
pop edi
pop ebp
push ebp
pop esp
pop ecx
push esp
push eax
pop esp
push esi
pop esp
push ebp
push esi
push eax
push edi
pop edx
push edx
push esp
call fcn.00454612
test al, al
je 0x43446b
pop edi
push edi
push ebx
push edx
pop esi
pop edi
push ebx
pop ebx
push esp
push eax
pop eax
push ebx
pop esi
push ebx
push ebx
push esp
pop ecx
pop ebx
mov esi, dword [ebp - 0x6b8]
mov ebx, 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 SysReAllocString
call ebx
test eax, eax
jne 0x43454d
push str.ED262B91_1251_40D8_AA54_414196DABA43
lea ecx, [ebp - 0x658]
call fcn.00403740
cmp dword [ebp - 0x644], 8
lea ecx, [ebp - 0x658]
lea edx, [ebp - 0x218]
cmovae ecx, dword [ebp - 0x658]
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x4344d0
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4344f0
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x218]
push eax
push 1
push 0
push 0x5e266c
push dword [ebp - 0x6a8]
call edi
push dword [ebp - 0x6a8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x644]
cmp eax, 8
jb 0x434553
inc eax
lea ecx, [ebp - 0x658]
push eax
push dword [ebp - 0x658]
call fcn.00403100
jmp 0x434553
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [ebp - 0x65c]
cmp eax, 8
jb 0x434571
inc eax
lea ecx, [ebp - 0x670]
push eax
push dword [ebp - 0x670]
call fcn.00403100
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 0x4345b0
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.00403100
add esi, 0x18
mov dword [ebp - 0x6b8], esi
cmp esi, dword [ebp - 0x6b0]
jne 0x434228
lea ecx, [ebp - 0x6b4]
call fcn.004055b0
mov eax, dword [ebp - 0x674]
cmp eax, 8
jb 0x4345ee
inc eax
lea ecx, [ebp - 0x688]
push eax
push dword [ebp - 0x688]
call fcn.00403100
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.0045132d
mov esp, ebp
pop ebp
ret