Function at 0x10040810
Capabilities:
Check if file exists
Create directory
Create process on windows
Create thread
Get common file path
Get file attributes
Inspect section memory permissions
Log keystrokes via polling
Self delete

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100f9bd2
mov eax, dword fs:[0]
push eax
mov eax, 0x338c
call fcn.100d5ce0
mov eax, dword [0x1013c014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x2bc0], edi
test byte [0x1014b4cc], 4
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x2bcc], eax
mov dword [ebp - 0x2c24], ecx
mov dword [ebp - 0x2bc4], esi
je 0x10040885
push dword [ebp + 0xc]
push eax
push edi
push str.Activate_Item__ptr_p__index_d__type_d
call fcn.1003bea0
mov eax, dword [ebp - 0x2bcc]
add esp, 0x10
test eax, eax
jns 0x100408cc
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x100408b4
test dword [edi + 0x3c], 0x400000
jne 0x100408a2
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_SetFocus]
push 0
push 0
push 0xffffffffffffffff
mov ecx, edi
call fcn.10059a50
jmp 0x100466cf
cmp eax, 5
jne 0x100466cf
xor eax, eax
mov dword [ebp + 0xc], 6
mov dword [ebp - 0x2bcc], eax
imul eax, eax, 0x54
lea ecx, [edi + 0xa0]
mov dword [ebp - 0x2c40], ecx
add eax, dword [ecx]
lea ecx, [ebp - 0x2ba0]
push eax
call fcn.10046980
mov dword [ebp - 4], 0
mov dword [ebp - 0x2bbc], 0
mov dword [ebp - 0x2bd0], 0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2bbc]
push dword [ebp - 0x2b68]
call fcn.10027f90
push dword [ebp - 0x2b64]
lea ecx, [ebp - 0x2bd0]
call fcn.10027f90
cmp dword [ebp + 0xc], 0
mov dword [ebp - 0x2b68], 0
mov dword [ebp - 0x2b64], 0
jne 0x10040b04
mov eax, dword [ebp - 0x2ba0]
cmp eax, 0x2f
jne 0x10040967
push dword [edi + 0x1a4]
call dword [sym.imp.USER32.dll_SetFocus]
push 0
push 0
push 0xffffffffffffffff
jmp 0x100409ac
cmp eax, 8
jne 0x10040980
mov eax, dword [edi + 0x1b8]
test eax, eax
je 0x10040980
mov eax, dword [eax + 8]
test eax, eax
je 0x10040980
push eax
jmp 0x1004099b
test dword [edi + 0x3c], 0x400000
jne 0x100409a1
cmp byte [edi + 0x30], 0
jne 0x10040998
cmp dword [0x1014b4d4], 2
je 0x100409a1
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_SetFocus]
mov ecx, dword [ebp - 0x2bcc]
push 1
push 0
push ecx
mov ecx, edi
call fcn.10059a50
cmp dword [edi + 0x17c], 0
mov ecx, dword [ebp - 0x2bcc]
jle 0x10040a7e
cmp ecx, dword [edi + 0x178]
jge 0x10040a7e
mov eax, dword [edi + 0x120]
movups xmm0, xmmword [ebp - 0x2b80]
neg eax
push eax
push 0
lea eax, [ebp - 0x2b4c]
push eax
movups xmmword [ebp - 0x2b4c], xmm0
call dword [sym.imp.USER32.dll_OffsetRect]
imul ecx, dword [edi + 0x178], 0x54
mov eax, dword [edi + 0xa0]
mov edx, dword [ebp - 0x2b48]
mov esi, dword [edi + 0x184]
sub edx, esi
mov ecx, dword [ecx + eax - 0x28]
sub ecx, dword [edi + 0x17c]
sub ecx, dword [edi + 0x120]
cmp dword [edi + 0x180], edx
jle 0x10040a33
mov esi, dword [edi + 0x180]
jmp 0x10040a4e
sub esi, dword [edi + 0x17c]
mov eax, dword [ebp - 0x2b40]
add eax, esi
mov esi, dword [edi + 0x180]
cmp esi, eax
mov edx, esi
cmovl edx, eax
xor eax, eax
test edx, edx
cmovns eax, edx
cmp eax, ecx
cmovle ecx, eax
cmp esi, ecx
je 0x10040a78
mov dword [edi + 0x180], ecx
mov ecx, edi
call fcn.10058e40
push 1
push 0
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [ebp - 0x2bcc]
mov esi, dword [edi + 0x1d4]
cmp dword [edi + 0x1d0], esi
jle 0x1004668d
mov eax, dword [edi + 0x1c8]
cmp ecx, eax
jl 0x1004668d
sub ecx, eax
mov eax, dword [edi + 0x1d8]
cmp eax, ecx
mov dword [ebp - 0x2bcc], ecx
mov edx, ecx
cmovle edx, eax
mov eax, dword [ebp - 0x2bcc]
inc eax
lea ecx, [esi + edx]
cmp ecx, eax
jge 0x10040aca
mov edx, dword [ebp - 0x2bcc]
sub edx, esi
inc edx
cmp dword [edi + 0x1d8], edx
je 0x1004668d
push 1
push edx
push 2
push dword [edi + 0x1dc]
call dword [sym.imp.USER32.dll_SetScrollPos]
mov dword [edi + 0x1d8], eax
lea eax, [edi + 0x11c]
push 1
push eax
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x1004668d
test esi, esi
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
je 0x10040b19
mov ecx, dword [ebp - 0x2bc4]
cmp byte [ecx], 0
jne 0x10040b29
push 0x10
call esi
mov byte [ebp - 0x2bd4], 1
test ax, ax
js 0x10040b30
mov byte [ebp - 0x2bd4], 0
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x10040b3f
cmp byte [eax], 0
jne 0x10040b4c
push 0x11
call esi
test ax, ax
jns 0x10040b4c
mov al, 1
jmp 0x10040b4e
xor al, al
mov esi, dword [ebp + 0xc]
mov byte [ebp - 0x2bc8], al
cmp esi, 1
je 0x10046629
cmp esi, 2
je 0x10046629
cmp esi, 3
je 0x10046629
cmp esi, 4
jne 0x10040ba5
cmp byte [ebp - 0x2bd4], 0
je 0x10040ba5
test al, al
jne 0x10040ba5
test byte [ebp - 0x2b6f], 4
je 0x10040b9c
call fcn.100b0560
mov ecx, 0xa00
cmp ax, cx
jb 0x10040ba5
mov byte [ebp - 0x2bc7], 1
jmp 0x10040bac
mov byte [ebp - 0x2bc7], 0
cmp dword [0x1014b50c], 0
mov byte [ebp - 0x2bc6], 0
je 0x10040c18
mov eax, dword [ebp - 0x2ba0]
cmp eax, 4
jne 0x10040bd0
mov byte [ebp - 0x2bc6], 1
jmp 0x10040c18
cmp byte [edi + 0x30], 0
je 0x10040bdf
test dword [edi + 0x3c], 0x40000
je 0x10040c18
test eax, eax
jne 0x10040c11
test byte [ebp - 0x2b70], 1
je 0x10040bf5
test byte [ebp - 0x2b6f], 2
je 0x10040c11
cmp dword [ebp - 0x2b9c], 0
jne 0x10040c11
mov eax, dword [ebp - 0x2b58]
and al, 0xf
mov byte [ebp - 0x2bc6], 1
cmp al, 2
jbe 0x10040c18
mov byte [ebp - 0x2bc6], 0
mov byte [ebp - 4], 4
call fcn.100215d0
push eax
lea ecx, [ebp - 0x2bdc]
mov byte [ebp - 4], 3
call fcn.1001fd70
mov byte [ebp - 4], 5
mov ecx, edi
test edi, edi
je 0x10040c64
nop dword [eax + eax]
cmp dword [ecx + 0x1a4], 0
jne 0x10040c52
mov ecx, dword [ecx + 0x44]
test ecx, ecx
jne 0x10040c40
jmp 0x10040c64
lea eax, [ebp - 0x2bdc]
add ecx, 0x1a4
push eax
call fcn.100491a0
cmp esi, 4
jne 0x100413c7
mov eax, dword [ebp - 0x2ba0]
cmp eax, 2
je 0x10040cad
cmp eax, 3
je 0x10040cad
mov cl, byte [ebp - 0x2b70]
test cl, 1
je 0x10040ccc
cmp dword [ebp - 0x2bbc], 0
je 0x10040ccc
test byte [ebp - 0x2b6f], 1
jne 0x10040ccc
push str.EnableExplorer
mov ecx, 0x1014e914
call fcn.100a5b00
test al, al
jne 0x10040cc0
mov ecx, dword [ebp - 0x2bdc]
lea ecx, [ecx - 0x10]
call fcn.10013920
jmp 0x1004668d
mov cl, byte [ebp - 0x2b70]
mov eax, dword [ebp - 0x2ba0]
cmp eax, 0x2f
jne 0x10040d0d
push dword [edi + 0x1a4]
call dword [sym.imp.USER32.dll_SetFocus]
mov edx, edi
mov ecx, 1
call fcn.1003e390
push 0x1010ca30
push dword [edi + 0x1a4]
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov ecx, dword [ebp - 0x2bdc]
lea ecx, [ecx - 0x10]
call fcn.10013920
jmp 0x1004668d
cmp eax, 0x30
jne 0x10040e3b
cmp byte [ebp - 0x2bc8], 0
jne 0x10040d74
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x10040d2f
cmp byte [eax + 3], 0
jne 0x10040d74
mov eax, dword [ebp - 0x2b58]
xor ecx, ecx
cmp dword [edi + 0x1b4], eax
cmove eax, ecx
mov dword [edi + 0x1b4], eax
mov eax, dword [0x1014b61c]
test eax, eax
je 0x10040e28
push ecx
push ecx
push 0x40a
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, dword [ebp - 0x2bdc]
lea ecx, [ecx - 0x10]
call fcn.10013920
jmp 0x1004668d
lea eax, [ebp - 0x2d88]
mov ecx, 0x1014c0ac
push eax
call fcn.10047770
mov ecx, 0x1014c0ac
mov esi, dword [eax]
lea eax, [ebp - 0x2bc0]
push eax
call fcn.10026750
cmp esi, dword [eax]
je 0x10040e28
mov eax, dword [ebp - 0x2b58]
cmp eax, dword [esi + 0xc]
je 0x10040dd5
mov esi, dword [esi]
lea eax, [ebp - 0x2bc0]
push eax
mov ecx, 0x1014c0ac
call fcn.10026750
cmp esi, dword [eax]
jne 0x10040da0
mov ecx, dword [ebp - 0x2bdc]
lea ecx, [ecx - 0x10]
call fcn.10013920
jmp 0x1004668d
cmp byte [ebp - 0x2bc7], 0
je 0x10040de8
push 1
call dword [sym.imp.USER32.dll_LockSetForegroundWindow]
jmp 0x10040e07
push 2
call dword [sym.imp.USER32.dll_LockSetForegroundWindow]
push dword [ebp - 0x2bcc]
mov ecx, edi
call fcn.10046f00
xor edx, edx
lea ecx, [edx + 1]
call fcn.1003e390
mov ecx, 2
call fcn.1005ea20
lea eax, [ebp - 0x2bdc]
mov ecx, 0x1014e940
push eax
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.100816a0
mov ecx, dword [ebp - 0x2bdc]
lea ecx, [ecx - 0x10]
call fcn.10013920
jmp 0x1004668d
cmp dword [ebp - 0x2b50], 0
jl 0x10040ef3
test eax, eax
jne 0x10040ec2
cmp byte [ebp - 0x2bc7], al
je 0x10040e5e
push 1
call dword [sym.imp.USER32.dll_LockSetForegroundWindow]
jmp 0x10040e7d
push 2
call dword [sym.imp.USER32.dll_LockSetForegroundWindow]
push dword [ebp - 0x2bcc]
mov ecx, edi
call fcn.10046f00
xor edx, edx
lea ecx, [edx + 1]
call fcn.1003e390
mov ecx, 2
call fcn.1005ea20
movzx eax, word [ebp - 0x2b50]
mov ecx, 0x1014c0bc
mov esi, dword [sym.ExplorerShellDLL32.dll_struct_HWND____g_OwnerWindow]
push eax
call fcn.10026a00
lea ecx, [eax + 0xc]
mov eax, dword [ebp - 0x2b50]
shr eax, 0x10
push eax
call fcn.1003a9f0
mov ecx, dword [0x1014b4d8]
mov edx, eax
push esi
call fcn.10039bf0
add esp, 4
lea ecx, [ebp - 0x2bdc]
call fcn.10012170
lea ecx, [ebp - 0x2bd0]
call fcn.10021720
lea ecx, [ebp - 0x2bbc]
call fcn.10021720
lea ecx, [ebp - 0x2ba0]
call fcn.10046b00
jmp 0x100466cf
mov eax, dword [0x1014b4cc]
test al, 2
je 0x1004124a
test al, 4
je 0x10040f67
movzx eax, cl
shr eax, 1
and eax, 1
push eax
push str.item.bLink:__d
call fcn.1003bea0
mov eax, dword [0x1014b4cc]
add esp, 8
test al, 4
je 0x10040f67
movzx eax, byte [ebp - 0x2b6f]
shr eax, 2
and eax, 1
push eax
push str.item.bMetroLink:__d
call fcn.1003bea0
mov eax, dword [0x1014b4cc]
add esp, 8
test al, 4
je 0x10040f67
movzx eax, byte [ebp - 0x2b6f]
shr eax, 3
and eax, 1
push eax
push str.item.bMetroApp:__d
call fcn.1003bea0
mov eax, dword [0x1014b4cc]
add esp, 8
cmp dword [ebp - 0x2b90], 0
jne 0x10040f8a
test al, 4
je 0x1004124a
push str.No_pItemInfo
call fcn.1003bea0
add esp, 4
jmp 0x1004124a
push 0
push 0
push 0x1014be70
lea ecx, [ebp - 0x2d2c]
call fcn.100233a0
mov byte [ebp - 4], 6
mov eax, dword [0x1014b4cc]
test al, 4
je 0x10041189
mov ecx, dword [ebp - 0x2b90]
call fcn.1003c030
xor ecx, ecx
test al, al
setne cl
push ecx
push str.bLink:__d
call fcn.1003bea0
mov eax, dword [0x1014b4cc]
add esp, 8
test al, 4
je 0x10041189
mov ecx, dword [ebp - 0x2b90]
call fcn.10023370
xor ecx, ecx
test al, al
setne cl
push ecx
push str.bMetroLink:__d
call fcn.1003bea0
mov eax, dword [0x1014b4cc]
add esp, 8
test al, 4
je 0x10041189
mov ecx, dword [ebp - 0x2b90]
call fcn.100281b0
xor ecx, ecx
test al, al
setne cl
push ecx
push str.bMetroApp:__d
call fcn.1003bea0
mov eax, dword [0x1014b4cc]
add esp, 8
test al, 4
je 0x10041189
mov ecx, dword [ebp - 0x2b90]
call fcn.10023380
xor ecx, ecx
test al, al
setne cl
push ecx
push str.bProtectedLink:__d
call fcn.1003bea0
mov eax, dword [0x1014b4cc]
add esp, 8
test al, 4
je 0x10041189
mov ecx, dword [ebp - 0x2b90]
call fcn.1003c040
xor ecx, ecx
test al, al
setne cl
push ecx
push str.bNoPin:__d
call fcn.1003bea0
mov eax, dword [0x1014b4cc]
add esp, 8
test al, 4
je 0x10041189
mov ecx, dword [ebp - 0x2b90]
call fcn.1003c050
xor ecx, ecx
test al, al
setne cl
push ecx
push str.bNoNew:__d
call fcn.1003bea0
mov eax, dword [0x1014b4cc]
add esp, 8
test al, 4
je 0x10041189
mov ecx, dword [ebp - 0x2b90]
call fcn.10023390
push dword [eax]
push str.path:__s
call fcn.1003bea0
mov eax, dword [0x1014b4cc]
add esp, 8
test al, 4
je 0x10041189
mov eax, dword [ebp - 0x2b90]
push dword [eax]
push str.PATH:__s
call fcn.1003bea0
mov eax, dword [0x1014b4cc]
add esp, 8
test al, 4
je 0x10041189
mov ecx, dword [ebp - 0x2b90]
call fcn.1003c070
push dword [eax]
push str.targetPATH:__s
call fcn.1003bea0
mov eax, dword [0x1014b4cc]
add esp, 8
test al, 4
je 0x10041189
mov ecx, dword [ebp - 0x2b90]
call fcn.10038230
push dword [eax]
push str.appid:__s
call fcn.1003bea0
mov eax, dword [0x1014b4cc]
add esp, 8
test al, 4
je 0x10041189
mov ecx, dword [ebp - 0x2b90]
call fcn.1003c080
push dword [eax]
push str.metroName:__s
call fcn.1003bea0
mov eax, dword [0x1014b4cc]
add esp, 8
test al, 4
je 0x10041189
mov ecx, dword [ebp - 0x2b90]
call fcn.1003c090
push dword [eax]
push str.iconPath:__s
call fcn.1003bea0
add esp, 8
lea ecx, [ebp - 0x2d2c]
mov byte [ebp - 4], 5
call fcn.100233f0
mov eax, dword [ebp - 0x2b90]
cmp dword [eax + 4], 0
je 0x100411f7
push 1
push 0
push 0x1014be70
lea ecx, [ebp - 0x2d70]
call fcn.100233a0
mov byte [ebp - 4], 7
test byte [0x1014b4cc], 4
je 0x100411e2
mov ecx, dword [ebp - 0x2b90]
mov ecx, dword [ecx + 4]
call fcn.1003c020
push dword [eax]
push str.smallIcon:__s
call fcn.1003bea0
add esp, 8
lea ecx, [ebp - 0x2d70]
mov byte [ebp - 4], 5
call fcn.100233f0
mov eax, dword [ebp - 0x2b90]
cmp dword [eax + 8], 0
je 0x1004124a
push 1
push 0
push 0x1014be70
lea ecx, [ebp - 0x2d68]
call fcn.100233a0
mov byte [ebp - 4], 8
test byte [0x1014b4cc], 4
je 0x1004123b
mov ecx, dword [ebp - 0x2b90]
mov ecx, dword [ecx + 8]
call fcn.1003c020
push dword [eax]
push str.largeIcon:__s
call fcn.1003bea0
add esp, 8
lea ecx, [ebp - 0x2d68]
mov byte [ebp - 4], 5
call fcn.100233f0
test byte [ebp - 0x2b6f], 4
je 0x10041337
push 2
call dword [sym.imp.USER32.dll_LockSetForegroundWindow]
push dword [ebp - 0x2bcc]
mov ecx, edi
call fcn.10046f00
mov ecx, 2
call fcn.1005ea20
mov ecx, dword [ebp - 0x2b90]
call fcn.100729e0
cmp byte [ebp - 0x2bc6], 0
je 0x100412f8
lea ecx, [ebp - 0x2bc4]
call fcn.1001fb10
push 0
push 0
push 0x1014be70
lea ecx, [ebp - 0x2d60]
mov byte [ebp - 4], 9
call fcn.100233a0
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x2b90]
call fcn.10023390
push eax
lea ecx, [ebp - 0x2bc4]
call fcn.10021ca0
lea ecx, [ebp - 0x2d60]
mov byte [ebp - 4], 9
call fcn.100233f0
lea ecx, [ebp - 0x2bc4]
call fcn.10010330
mov ecx, eax
call fcn.1005f410
lea ecx, [ebp - 0x2bc4]
mov byte [ebp - 4], 5
call fcn.10012170
push 0
push 0
lea ecx, [ebp - 0x2bbc]
call fcn.10010330
push eax
mov ecx, 0x1014be70
call fcn.1002c8d0
test byte [edi + 0x3c], 0x80
jne 0x10041328
push dword [ebp - 0x2b94]
mov ecx, 0x1014e940
call fcn.1007c400
xor edx, edx
lea ecx, [edx + 1]
call fcn.1003e390
jmp 0x10040ec2
lea ecx, [ebp - 0x2bbc]
call fcn.10010330
test eax, eax
jne 0x1004137c
mov ecx, dword [ebp - 0x2ba0]
cmp ecx, 9
jl 0x10040ec2
test byte [ebp - 0x2b70], 1
je 0x1004137c
mov eax, dword [ebp - 0x2b9c]
test eax, eax
je 0x1004137c
cmp dword [eax + 0x24], 0
je 0x1004137c
cmp dword [eax], 0
jne 0x1004137c
cmp ecx, 0x26
jne 0x10040ec2
cmp byte [ebp - 0x2bc7], 0
jne 0x1004142d
mov eax, dword [0x1014b4b0]
test eax, eax
je 0x100413ad
cmp byte [0x1014b4d0], 0
je 0x100413ad
push 0
push 0
push 0x10
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x1004142d
xor edx, edx
mov byte [0x1014b4ee], 1
lea ecx, [edx + 1]
call fcn.1003e390
mov byte [0x1014b4ee], 0
jmp 0x1004142d
cmp esi, 5
je 0x100413d1
cmp esi, 6
jne 0x1004142d
test dword [edi + 0x3c], 0x400000
jne 0x100413e1
mov ecx, edi
call fcn.1005a870
mov eax, dword [0x1014b4d4]
test eax, eax
jne 0x100413f8
mov edx, edi
xor ecx, ecx
call fcn.1003e390
mov eax, dword [0x1014b4d4]
cmp byte [edi + 0x108], 0
je 0x10041428
cmp eax, 3
jne 0x10041428
mov eax, dword [ebp - 0x2bcc]
cmp eax, dword [edi + 0x1c8]
jge 0x10041428
mov edx, edi
xor ecx, ecx
call fcn.1003e390
push 0
push 0
mov ecx, edi
call fcn.100603b0
cmp esi, 6
je 0x1004143e
push 0
push 0
push dword [ebp - 0x2bcc]
mov ecx, edi
call fcn.10059a50
mov eax, dword [ebp - 0x2b9c]
test eax, eax
je 0x10041454
mov eax, dword [eax]
test eax, eax
je 0x10041454
cmp word [eax], 0
jne 0x10041479
cmp dword [ebp - 0x2ba0], 0x31
je 0x10041479
test byte [ebp - 0x2b6f], 0x40
jne 0x10041479
lea ecx, [ebp - 0x2bbc]
call fcn.10010330
test eax, eax
je 0x10041479
xor al, al
jmp 0x1004147b
mov al, 1
cmp esi, 4
jne 0x10041853
test al, al
je 0x10041853
test byte [ebp - 0x2b6f], 0x40
je 0x100414c5
push 0
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_MonitorFromWindow]
push 0x57534d48
push 0xf130
push 0x112
push dword [0x1014b4a0]
mov dword [0x1014b49c], eax
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x10040ec2
cmp byte [ebp - 0x2bc7], 0
je 0x100414d8
push 1
call dword [sym.imp.USER32.dll_LockSetForegroundWindow]
jmp 0x1004154f
push 2
call dword [sym.imp.USER32.dll_LockSetForegroundWindow]
mov eax, dword [ebp - 0x2ba0]
cmp eax, 0x28
je 0x100414fd
cmp eax, 0x29
je 0x100414fd
push dword [ebp - 0x2bcc]
mov ecx, edi
call fcn.10046f00
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
lea eax, [ebp - 0x2e58]
push 1
push 0
push 0
push 0
push eax
call esi
test eax, eax
je 0x1004154f
nop dword [eax + eax]
lea eax, [ebp - 0x2e58]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x2e58]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 1
push 0
push 0
push 0
lea eax, [ebp - 0x2e58]
push eax
call esi
test eax, eax
jne 0x10041520
mov ecx, 2
call fcn.1005ea20
mov esi, dword [ebp - 0x2ba0]
cmp esi, 0x26
cmove esi, dword [0x1014b508]
lea eax, [esi - 0x1b]
cmp eax, 0x10
ja case.0x1004157c.28
movzx eax, byte [eax + 0x10046708]
jmp dword [eax*4 + 0x100466f4]
mov edx, str.SearchFilesCommand
lea ecx, [ebp - 0x2bac]
call fcn.100aa8e0
mov ecx, eax
call fcn.1001fb70
lea ecx, [ebp - 0x2bac]
mov byte [ebp - 0x2bc5], al
call fcn.10012170
cmp byte [ebp - 0x2bc5], 0
mov cl, byte [ebp - 0x2bd4]
jne 0x1004161a
mov esi, 0x36
jmp 0x1004161a
mov ecx, str.ConfirmLogOff
call fcn.100aa7f0
mov cl, byte [ebp - 0x2bd4]
test al, al
je 0x1004161a
mov esi, 0x37
jmp 0x1004161a
call fcn.100b0560
mov esi, 0x602
cmp ax, si
jb 0x100415fc
mov cl, byte [ebp - 0x2bd4]
test cl, cl
je 0x100415fc
mov esi, 0x38
jmp 0x1004161a
cmp byte [0x1014b4f2], 0
je 0x10041634
call fcn.100b0560
cmp ax, si
jb 0x10041634
mov esi, 0x39
mov cl, byte [ebp - 0x2bd4]
lea eax, [esi - 0x19]
cmp eax, 0x1d
ja case.0x1004162d.26
movzx eax, byte [eax + 0x10046734]
jmp dword [eax*4 + 0x1004671c]
mov esi, 0x3b
jmp case.0x1004157c.28
cmp byte [0x1014b4f2], 0
je 0x1004164b
mov esi, 0x3a
jmp case.0x1004157c.28
call fcn.100b0560
mov ecx, 0x602
cmp ax, cx
mov cl, byte [ebp - 0x2bd4]
jb 0x1004167f
test cl, cl
jne 0x1004167f
mov ecx, str.HybridShutdown
call fcn.100aa7f0
mov cl, byte [ebp - 0x2bd4]
test al, al
je 0x1004167f
mov esi, 0x3d
jmp 0x1004161a
mov esi, 0x3c
jmp 0x1004161a
push 0
push 0
call sym.ExplorerShellDLL32.dll_void___cdecl_EditSettings_bool__int_
add esp, 8
jmp 0x10040ec2
lea eax, [ebp - 0x2bdc]
mov ecx, 0x1014e940
push eax
push 0
push 0
call fcn.100816a0
jmp 0x10040ec2
lea eax, [ebp - 0x2bdc]
mov ecx, 0x1014e940
push eax
call fcn.10081d00
jmp 0x10040ec2
test cl, cl
je 0x100416f1
cmp byte [ebp - 0x2bc8], 0
je 0x100416f1
mov al, 1
lea ecx, [ebp - 0x2b98]
push 1
push eax
call fcn.10010330
push eax
mov ecx, edi
call fcn.1003dd50
jmp 0x10040ec2
xor al, al
lea ecx, [ebp - 0x2b98]
push 1
push eax
call fcn.10010330
push eax
mov ecx, edi
call fcn.1003dd50
jmp 0x10040ec2
test cl, cl
je 0x10041722
cmp byte [ebp - 0x2bc8], 0
mov byte [ebp - 0x2bd8], 1
jne 0x10041729
mov byte [ebp - 0x2bd8], 0
mov edx, str.SearchFilesCommand
lea ecx, [ebp - 0x2bf0]
call fcn.100aa8e0
push 1
mov byte [ebp - 4], 0xb
mov ecx, eax
push dword [ebp - 0x2bd8]
call fcn.10010330
push eax
mov ecx, edi
call fcn.1003dd50
lea ecx, [ebp - 0x2bf0]
call fcn.10012170
jmp 0x10040ec2
mov ecx, esi
call fcn.1003f970
test al, al
jne 0x10040ec2
mov eax, dword [ebp - 0x2b9c]
test eax, eax
je 0x10040ec2
mov eax, dword [eax]
test eax, eax
je 0x10040ec2
cmp word [eax], 0
je 0x10040ec2
push eax
mov edx, 0x400
lea ecx, [ebp - 0x2110]
call fcn.100a4780
add esp, 4
lea eax, [ebp - 0x2110]
push 0x400
push eax
call dword [sym.imp.SHELL32.dll_DoEnvironmentSubstW]
lea ecx, [ebp - 0x2bdc]
call fcn.1001fb70
test al, al
jne 0x10041811
mov edx, 0x10110c98
lea ecx, [ebp - 0x2110]
call fcn.10038220
test eax, eax
jne 0x100417f2
mov edx, 0x10110ca0
lea ecx, [ebp - 0x2110]
call fcn.10038220
test eax, eax
je 0x10041811
lea ecx, [ebp - 0x2bdc]
call fcn.10010330
push eax
mov edx, 0x400
lea ecx, [ebp - 0x2110]
call fcn.1003d9d0
add esp, 4
cmp byte [ebp - 0x2bd4], 0
je 0x1004183b
cmp byte [ebp - 0x2bc8], 0
je 0x1004183b
push 0
mov al, 1
mov ecx, edi
push eax
lea eax, [ebp - 0x2110]
push eax
call fcn.1003dd50
jmp 0x10040ec2
xor al, al
mov ecx, edi
push 0
push eax
lea eax, [ebp - 0x2110]
push eax
call fcn.1003dd50
jmp 0x10040ec2
lea ecx, [ebp - 0x2bbc]
call fcn.10010330
test eax, eax
jne 0x100418b1
cmp esi, 5
jne 0x10040ec2
mov eax, dword [ebp - 0x2ba0]
cmp eax, 2
je 0x100418b1
cmp eax, 3
je 0x100418b1
cmp eax, 0x30
je 0x100418b1
cmp eax, 0xa
jne 0x10040ec2
push 1
mov ecx, 0x1014be70
call fcn.1003c0d0
test al, al
jne 0x100418b1
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x10040ec2
cmp byte [eax + 1], 0
je 0x10040ec2
call fcn.10073030
lea ecx, [ebp - 0x2c14]
mov byte [ebp - 0x2ba1], al
mov byte [ebp - 0x2bb5], 0
mov byte [ebp - 0x2c00], 0
mov byte [ebp - 0x2bc5], 0
mov byte [ebp - 0x2be9], 0
call fcn.1001fb10
lea ecx, [ebp - 0x2be4]
mov dword [ebp - 0x2c34], 0
call fcn.1001fb10
mov byte [ebp - 4], 0xd
cmp dword [ebp - 0x2b90], 0
je 0x100419bc
cmp dword [ebp - 0x2ba0], 0xa
je 0x100419bc
push 0
push 0
push 0x1014be70
lea ecx, [ebp - 0x2d58]
call fcn.100233a0
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x2b90]
call fcn.10023380
mov ecx, dword [ebp - 0x2b90]
mov byte [ebp - 0x2bb5], al
call fcn.100281b0
mov ecx, dword [ebp - 0x2b90]
mov byte [ebp - 0x2c00], al
call fcn.10023390
push eax
lea ecx, [ebp - 0x2c14]
call fcn.10021ca0
mov ecx, dword [ebp - 0x2b90]
call fcn.1003c0a0
mov ecx, dword [ebp - 0x2b90]
mov dword [ebp - 0x2c34], eax
call fcn.10038230
push eax
lea ecx, [ebp - 0x2be4]
call fcn.10021ca0
mov ecx, dword [ebp - 0x2b90]
call fcn.1003c030
mov ecx, dword [ebp - 0x2b90]
mov byte [ebp - 0x2be9], al
call fcn.1003c060
lea ecx, [ebp - 0x2d58]
mov byte [ebp - 0x2bc5], al
call fcn.100233f0
lea ecx, [ebp - 0x2be8]
call fcn.10013a30
call dword [sym.imp.USER32.dll_CreatePopupMenu]
lea ecx, [ebp - 0x2c18]
mov dword [ebp - 0x2bac], eax
call fcn.10013a30
lea ecx, [ebp - 0x2bfc]
mov dword [ebp - 0x2c20], 0x11
call fcn.10013a30
or esi, 0xffffffff
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x2ba0]
or edx, esi
mov dword [ebp - 0x2bb4], esi
mov dword [ebp - 0x2be0], edx
cmp eax, 0xa
jne 0x10041ab7
push 1
mov ecx, 0x1014be70
mov dword [ebp - 0x2bb4], 0
call fcn.1003c0d0
test al, al
je 0x10041a67
mov edx, str.Remove_highlight
mov dword [ebp - 0x2bb4], 1
mov ecx, str.Menu.RemoveHighlight
call fcn.100a4f10
mov esi, dword [ebp - 0x2bac]
push eax
mov eax, dword [sym.imp.USER32.dll_InsertMenuW]
push 0xf
push 0x400
push 0
push esi
call eax
jmp 0x10041e41
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x10041a7b
cmp byte [eax + 1], 0
jne 0x10042efd
lea ecx, [ebp - 0x2bfc]
call fcn.1000f810
lea ecx, [ebp - 0x2c18]
call fcn.1000f810
lea ecx, [ebp - 0x2be8]
call fcn.1000f810
lea ecx, [ebp - 0x2be4]
call fcn.10012170
lea ecx, [ebp - 0x2c14]
call fcn.10012170
jmp 0x10040ec2
cmp eax, 2
je 0x10042f2a
cmp eax, 3
je 0x10042f2a
cmp eax, 0x30
je 0x10042f2a
cmp dword [ebp + 0xc], 6
je 0x10042f2a
mov eax, dword [ebp - 0x2b50]
test eax, eax
js 0x10041b44
movzx eax, ax
mov ecx, 0x1014c0bc
push eax
call fcn.10026a00
lea ecx, [eax + 0xc]
mov eax, dword [ebp - 0x2b50]
shr eax, 0x10
push eax
call fcn.1003a9f0
mov ecx, dword [ebp + 0xc]
cmp ecx, 5
je 0x10041b17
cmp ecx, 9
jne 0x10041cbd
mov ecx, dword [eax]
cmp ecx, 1
je 0x10041b31
cmp ecx, 2
jne 0x10041cbd
cmp byte [eax + 9], 0
jne 0x10041cbd
lea ecx, [ebp - 0x2c14]
call fcn.1001fb70
test al, al
jne 0x10041cbd
lea ecx, [ebp - 0x2bfc]
call fcn.10013a60
lea ecx, [ebp - 0x2bbc]
mov esi, eax
call fcn.10010330
push esi
push 0x10103e10
push eax
call dword [sym.imp.SHELL32.dll_SHCreateItemFromIDList]
lea ecx, [ebp - 0x2bfc]
call fcn.10010330
push eax
lea ecx, [ebp - 0x2c5c]
call fcn.10034ec0
lea ecx, [ebp - 0x2c5c]
mov byte [ebp - 4], 0x12
call fcn.10010330
test eax, eax
je 0x10041bc1
mov eax, dword [ebp - 0x2b58]
and eax, 0xf
cmp al, 5
jne 0x10041bae
mov ecx, str.CompatibilityFixes
call fcn.100aa870
test al, 0x10
je 0x10041bc1
lea ecx, [ebp - 0x2c5c]
call fcn.10010330
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
lea ecx, [ebp - 0x2bfc]
call fcn.100269f0
test al, al
jne 0x10042f0e
lea ecx, [ebp - 0x2bfc]
call fcn.10010330
mov edi, eax
mov ecx, dword [edi]
mov esi, dword [ecx + 0xc]
lea ecx, [ebp - 0x2be8]
call fcn.10013a60
push eax
push 0x101039e0
push 0x10103cc0
push 0
push edi
call esi
test eax, eax
js 0x10042f0e
mov eax, dword [ebp + 0xc]
mov esi, 1
cmp eax, 5
jne 0x10041c29
cmp byte [ebp - 0x2bd4], 0
lea esi, [eax + 0xb]
je 0x10041c5c
mov esi, 0x110
jmp 0x10041c5c
cmp eax, 8
je 0x10041c33
cmp eax, 9
jne 0x10041c35
xor esi, esi
cmp eax, 7
jne 0x10041c3f
lea esi, [eax + 9]
jmp 0x10041c5c
cmp eax, 4
jne 0x10041c5c
cmp byte [ebp - 0x2bd4], 0
je 0x10041c5c
cmp byte [ebp - 0x2bc8], 0
je 0x10041c5c
or esi, 0x100
lea ecx, [ebp - 0x2be8]
call fcn.10010330
push esi
mov esi, dword [ebp - 0x2bac]
push 0x7fff
mov ecx, dword [eax]
push 0x11
push 0
push esi
push eax
call dword [ecx + 0xc]
test eax, eax
jns 0x10041c99
push esi
call dword [sym.imp.USER32.dll_DestroyMenu]
lea ecx, [ebp - 0x2c5c]
call fcn.1000f810
jmp 0x10041a7b
movzx eax, ax
lea ecx, [ebp - 0x2c5c]
add eax, 0x1b
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x2c20], eax
call fcn.1000f810
mov edi, dword [ebp - 0x2bc0]
or esi, 0xffffffff
test byte [ebp - 0x2b70], 1
je 0x10041fca
lea ecx, [ebp - 0x2bd0]
call fcn.10010330
test eax, eax
je 0x10041fca
push dword [ebp - 0x2bac]
mov eax, dword [sym.imp.USER32.dll_GetMenuItemCount]
call eax
xor esi, esi
mov dword [ebp - 0x2ba8], eax
test eax, eax
jle 0x10042efd
mov edi, dword [ebp - 0x2bac]
push esi
push edi
call dword [sym.imp.USER32.dll_GetMenuItemID]
mov dword [ebp - 0x2bf0], eax
lea ecx, [eax - 0x11]
cmp ecx, 0x7fee
ja 0x10041d4a
lea ecx, [ebp - 0x2be8]
call fcn.10010330
push 0x100
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
lea ecx, [ebp - 0x4d8]
push ecx
mov ecx, dword [ebp - 0x2bf0]
push 0
push 0
add ecx, 0xffffffef
push ecx
push eax
call edx
test eax, eax
jns 0x10041d51
mov byte [ebp - 0x4d8], 0
lea eax, [ebp - 0x4d8]
push str.open
push eax
call fcn.100def63
add esp, 8
test eax, eax
jne 0x10041dcc
mov ecx, str.EnableExplorer
call fcn.100aa7f0
test al, al
je 0x10041faa
cmp byte [0x1014b4ef], 0
jne 0x10041da7
mov edx, str.Open_All_Users
mov ecx, str.Menu.OpenAll
call fcn.100a4f10
push eax
push 2
push 0x400
lea eax, [esi + 1]
push eax
mov eax, dword [sym.imp.USER32.dll_InsertMenuW]
push edi
call eax
push 0
push 0
push 0xc00
add esi, 2
push esi
push edi
call dword [sym.imp.USER32.dll_InsertMenuW]
mov eax, dword [ebp - 0x2ba8]
add eax, 2
mov dword [ebp - 0x2ba8], eax
jmp 0x10041e2c
lea eax, [ebp - 0x4d8]
push str.rename
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10041f9d
lea eax, [ebp - 0x4d8]
push str.delete
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10041f9d
lea eax, [ebp - 0x4d8]
push str.properties
push eax
call fcn.100def63
add esp, 8
test eax, eax
jne 0x10041faa
mov dword [ebp - 0x2bb4], esi
mov eax, dword [ebp - 0x2ba8]
inc esi
cmp esi, eax
jl 0x10041d00
mov edi, dword [ebp - 0x2bc0]
mov esi, dword [ebp - 0x2bac]
or edx, 0xffffffff
test byte [ebp - 0x2b6f], 4
je 0x10041ebb
cmp dword [ebp + 0xc], 5
jne 0x10041ebb
test edx, edx
js 0x10041ebb
lea ecx, [ebp - 0x2be4]
call fcn.10010330
mov edx, eax
lea ecx, [ebp - 0x2c44]
call fcn.10072dc0
push eax
lea ecx, [ebp - 0x2c18]
call fcn.100351c0
lea ecx, [ebp - 0x2c44]
call fcn.1000f810
lea ecx, [ebp - 0x2c18]
call fcn.10010330
test eax, eax
je 0x10041ebb
lea ecx, [ebp - 0x2c18]
call fcn.10010330
mov edx, dword [ebp - 0x2be0]
push 0
push 0x7fff
push dword [ebp - 0x2c20]
mov ecx, dword [eax]
push edx
push esi
push eax
call dword [ecx + 0xc]
call dword [sym.imp.USER32.dll_GetMessagePos]
mov ecx, dword [ebp + 0xc]
xor esi, esi
mov dword [0x1014b510], eax
mov dword [ebp - 0x2ba8], esi
cmp ecx, 4
jne 0x10042ff8
push esi
push esi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_GetMenuDefaultItem]
cmp byte [ebp - 0x2bd4], 0
mov esi, eax
mov dword [ebp - 0x2ba8], esi
je 0x10042fe9
cmp byte [ebp - 0x2bc8], 0
je 0x10042fe9
mov esi, dword [ebp - 0x2bac]
push esi
call dword [sym.imp.USER32.dll_GetMenuItemCount]
xor edi, edi
mov dword [ebp - 0x2c44], eax
test eax, eax
jle 0x10042f56
push edi
push esi
call dword [sym.imp.USER32.dll_GetMenuItemID]
mov esi, eax
mov dword [ebp - 0x2ba8], esi
lea eax, [esi - 0x11]
cmp eax, 0x7fee
ja 0x10041f88
lea ecx, [ebp - 0x2be8]
call fcn.10010330
push 0x100
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
lea ecx, [ebp - 0x1408]
push ecx
push 0
push 0
lea ecx, [esi - 0x11]
push ecx
push eax
call edx
test eax, eax
js 0x10041f88
lea eax, [ebp - 0x1408]
push str.runas
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042f4d
inc edi
cmp edi, dword [ebp - 0x2c44]
jge 0x10042f56
mov esi, dword [ebp - 0x2bac]
jmp 0x10041f27
cmp dword [ebp - 0x2ba0], 9
jne 0x10041e26
push 0x400
push esi
push edi
call dword [sym.imp.USER32.dll_DeleteMenu]
mov eax, dword [ebp - 0x2ba8]
dec esi
dec eax
mov dword [ebp - 0x2ba8], eax
jmp 0x10041e2c
cmp dword [ebp + 0xc], 5
jne 0x10042931
cmp dword [ebp - 0x2ba0], 4
jne 0x1004245c
push dword [ebp - 0x2bac]
mov eax, dword [sym.imp.USER32.dll_GetMenuItemCount]
mov byte [ebp - 0x2bad], 0
call eax
mov dword [ebp - 0x2ba8], eax
test eax, eax
jle 0x100420a0
xor edi, edi
nop word [eax + eax]
push edi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_GetMenuItemID]
mov dword [ebp - 0x2bf0], eax
lea ecx, [eax - 0x11]
cmp ecx, 0x7fee
ja 0x1004205f
lea ecx, [ebp - 0x2be8]
call fcn.10010330
push 0x100
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
lea ecx, [ebp - 0x110]
push ecx
mov ecx, dword [ebp - 0x2bf0]
push 0
push 0
add ecx, 0xffffffef
push ecx
push eax
call edx
test eax, eax
jns 0x10042066
mov byte [ebp - 0x110], 0
lea eax, [ebp - 0x110]
push str.properties
push eax
call fcn.100def63
add esp, 8
test eax, eax
jne 0x1004228d
mov esi, edi
mov eax, dword [ebp - 0x2ba8]
inc edi
cmp edi, eax
jl 0x10042010
mov edi, dword [ebp - 0x2bc0]
mov dword [ebp - 0x2bb4], esi
cmp esi, 0xffffffff
jne 0x100420ac
mov esi, dword [ebp - 0x2ba8]
mov dword [ebp - 0x2bb4], esi
mov al, byte [ebp - 0x2b6f]
test al, 4
je 0x1004216f
mov edx, str.Open
mov ecx, str.Menu.Open
call fcn.100a4f10
push eax
push 1
push 0x400
push 0
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_InsertMenuW]
mov eax, dword [sym.imp.USER32.dll_SetMenuDefaultItem]
push 1
push 0
push dword [ebp - 0x2bac]
call eax
inc esi
mov dword [ebp - 0x2bb4], esi
call fcn.100b0560
mov ecx, 0xa00
cmp ax, cx
jae 0x10042159
cmp byte [ebp - 0x2ba1], 0
je 0x10042159
cmp byte [ebp - 0x2bad], 0
jne 0x10042159
lea ecx, [ebp - 0x2be4]
call fcn.10010330
mov ecx, eax
call fcn.10072ff0
test al, al
jne 0x10042159
mov edx, 0x10110d74
mov ecx, str.Menu.Uninstall
call fcn.100a4f10
push eax
push 0x10
push 0x400
push esi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_InsertMenuW]
inc esi
mov dword [ebp - 0x2bb4], esi
inc dword [ebp - 0x2ba8]
mov al, byte [ebp - 0x2b6f]
mov dword [ebp - 0x2be0], 1
test al, 8
je 0x100421c6
call fcn.100b0650
test al, al
je 0x100421c6
cmp byte [ebp - 0x2bad], 0
jne 0x100421c6
lea ecx, [ebp - 0x2be4]
call fcn.10010330
mov ecx, eax
call fcn.100730f0
test al, al
je 0x100421c6
mov edx, 0x10110d74
mov ecx, str.Menu.Uninstall
call fcn.100a4f10
push eax
push 0x10
push 0x400
push esi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_InsertMenuW]
inc esi
mov dword [ebp - 0x2bb4], esi
cmp dword [ebp - 0x2ba8], 0
jle 0x100421ee
push 0
push 0
mov eax, esi
inc esi
push 0xc00
push eax
push dword [ebp - 0x2bac]
mov dword [ebp - 0x2bb4], esi
call dword [sym.imp.USER32.dll_InsertMenuW]
inc dword [ebp - 0x2bb4]
mov edx, str.Remove_from_this_list
mov ecx, str.Menu.RemoveList
call fcn.100a4f10
push eax
push 7
push 0x400
push esi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_InsertMenuW]
cmp dword [0x1014b50c], 1
jne 0x10042254
mov eax, dword [ebp - 0x2bb4]
mov edx, str.Clear_recent_items_list
mov esi, eax
mov ecx, str.Menu.RemoveAll
inc eax
mov dword [ebp - 0x2bb4], eax
call fcn.100a4f10
push eax
push 8
push 0x400
push esi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_InsertMenuW]
lea ecx, [ebp - 0x2bbc]
call fcn.10010330
test eax, eax
je 0x1004265a
mov ecx, str.EnableExplorer
call fcn.100aa7f0
test al, al
je 0x1004265a
mov eax, dword [ebp - 0x2bb4]
mov esi, eax
inc eax
mov dword [ebp - 0x2bb4], eax
jmp 0x10042636
test byte [ebp - 0x2b6f], 4
lea eax, [ebp - 0x110]
je 0x100422d3
push str.pin_classic
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042084
lea eax, [ebp - 0x110]
push str.properties
push eax
call fcn.100def63
add esp, 8
test eax, eax
jne 0x10042437
jmp 0x10042084
cmp byte [ebp - 0x2bd4], 0
je 0x10042313
push str.delete
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042437
lea eax, [ebp - 0x110]
push str.rename
push eax
call fcn.100def63
add esp, 8
test eax, eax
jne 0x10042084
jmp 0x10042437
push str.open
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042084
lea eax, [ebp - 0x110]
push str.opencontaining
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042084
lea eax, [ebp - 0x110]
push str.runas
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042084
lea eax, [ebp - 0x110]
push str.runasuser
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042084
lea eax, [ebp - 0x110]
push str.taskbarpin
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042084
lea eax, [ebp - 0x110]
push str.taskbarunpin
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042084
lea eax, [ebp - 0x110]
push str.pin_classic
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042084
lea eax, [ebp - 0x110]
push str.properties
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042084
lea eax, [ebp - 0x110]
push str.uninstall
push eax
call fcn.100def63
add esp, 8
test eax, eax
jne 0x10042437
test byte [ebp - 0x2b6f], 8
mov byte [ebp - 0x2bad], 1
je 0x10042437
cmp byte [ebp - 0x2ba1], al
je 0x10042437
lea ecx, [ebp - 0x2be4]
call fcn.10010330
mov ecx, eax
call fcn.10072ff0
test al, al
je 0x10042084
push 0x400
push edi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_DeleteMenu]
mov eax, dword [ebp - 0x2ba8]
dec edi
dec eax
mov dword [ebp - 0x2ba8], eax
jmp 0x1004208a
test byte [ebp - 0x2b6f], 4
je 0x1004268b
cmp byte [ebp - 0x2bb5], 0
jne 0x1004247f
test dword [edi + 0x3c], 0x2400000
je 0x1004268b
push dword [ebp - 0x2bac]
mov eax, dword [sym.imp.USER32.dll_GetMenuItemCount]
call eax
mov dword [ebp - 0x2bf4], eax
test eax, eax
jle 0x1004255f
xor edi, edi
nop dword [eax]
push edi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_GetMenuItemID]
mov dword [ebp - 0x2bf0], eax
lea ecx, [eax - 0x11]
cmp ecx, 0x7fee
ja 0x100424ef
lea ecx, [ebp - 0x2be8]
call fcn.10010330
push 0x100
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
lea ecx, [ebp - 0x8e0]
push ecx
mov ecx, dword [ebp - 0x2bf0]
push 0
push 0
add ecx, 0xffffffef
push ecx
push eax
call edx
test eax, eax
jns 0x100424f6
mov byte [ebp - 0x8e0], 0
lea eax, [ebp - 0x8e0]
push str.properties
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042548
lea eax, [ebp - 0x8e0]
push str.pin_classic
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042548
push 0x400
push edi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_DeleteMenu]
mov eax, dword [ebp - 0x2bf4]
dec edi
dec eax
mov dword [ebp - 0x2bf4], eax
jmp 0x10042550
mov eax, dword [ebp - 0x2bf4]
mov esi, edi
inc edi
cmp edi, eax
jl 0x100424a0
mov edi, dword [ebp - 0x2bc0]
mov edx, str.Open
mov ecx, str.Menu.Open
call fcn.100a4f10
push eax
push 1
push 0x400
push 0
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_InsertMenuW]
mov eax, dword [sym.imp.USER32.dll_SetMenuDefaultItem]
push 1
push 0
push dword [ebp - 0x2bac]
call eax
inc esi
mov dword [ebp - 0x2bb4], esi
call fcn.100b0560
mov ecx, 0xa00
cmp ax, cx
jae 0x100425f5
cmp byte [ebp - 0x2ba1], 0
je 0x100425f5
lea ecx, [ebp - 0x2be4]
call fcn.10010330
mov ecx, eax
call fcn.10072ff0
test al, al
jne 0x100425f5
mov edx, 0x10110d74
mov ecx, str.Menu.Uninstall
call fcn.100a4f10
push eax
push 0x10
push 0x400
push esi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_InsertMenuW]
inc esi
mov dword [ebp - 0x2bb4], esi
mov ecx, str.EnableExplorer
mov dword [ebp - 0x2be0], 1
call fcn.100aa7f0
test al, al
je 0x10042efd
push 0
push 0
mov eax, esi
inc esi
push 0xc00
push eax
push dword [ebp - 0x2bac]
mov dword [ebp - 0x2bb4], esi
call dword [sym.imp.USER32.dll_InsertMenuW]
inc dword [ebp - 0x2bb4]
mov edx, str.Explore
mov ecx, str.Menu.Explore
call fcn.100a4f10
push eax
push 9
push 0x400
push esi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_InsertMenuW]
mov esi, dword [ebp - 0x2bb4]
mov eax, esi
push 0
push 0
inc esi
push 0xc00
push eax
mov dword [ebp - 0x2bb4], esi
mov esi, dword [ebp - 0x2bac]
push esi
call dword [sym.imp.USER32.dll_InsertMenuW]
mov edx, dword [ebp - 0x2be0]
jmp 0x10041e44
test dword [edi + 0x3c], 0x400000
jne 0x100426b3
cmp dword [0x1014b4d4], 2
jne 0x10042931
mov eax, dword [ebp - 0x2bcc]
cmp eax, dword [edi + 0x1c8]
jle 0x10042931
push dword [ebp - 0x2bac]
mov eax, dword [sym.imp.USER32.dll_GetMenuItemCount]
call eax
mov dword [ebp - 0x2c08], eax
test eax, eax
jle 0x10042755
xor edi, edi
push edi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_GetMenuItemID]
mov dword [ebp - 0x2bf0], eax
lea ecx, [eax - 0x11]
cmp ecx, 0x7fee
ja 0x1004271f
lea ecx, [ebp - 0x2be8]
call fcn.10010330
push 0x100
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
lea ecx, [ebp - 0x5d8]
push ecx
mov ecx, dword [ebp - 0x2bf0]
push 0
push 0
add ecx, 0xffffffef
push ecx
push eax
call edx
test eax, eax
jns 0x10042726
mov byte [ebp - 0x5d8], 0
lea eax, [ebp - 0x5d8]
push str.properties
push eax
call fcn.100def63
add esp, 8
test eax, eax
jne 0x100427d9
mov esi, edi
mov eax, dword [ebp - 0x2c08]
inc edi
cmp edi, eax
jl 0x100426d0
mov edi, dword [ebp - 0x2bc0]
mov ecx, esi
mov esi, eax
mov eax, dword [ebp - 0x2b58]
cmp ecx, 0xffffffff
mov dword [ebp - 0x2bf0], ecx
cmovne esi, ecx
and eax, 0xf
lea ecx, [ebp - 0x2bbc]
mov dword [ebp - 0x2bd8], eax
mov dword [ebp - 0x2bb4], esi
call fcn.10010330
test eax, eax
je 0x10042efd
mov eax, dword [ebp - 0x2bd8]
cmp eax, 4
jbe 0x100427a7
mov dword [ebp - 0x2bb4], esi
cmp eax, 7
jne 0x10042efd
mov ecx, str.EnableExplorer
call fcn.100aa7f0
mov ecx, 0x1014e910
mov byte [ebp - 0x2bad], al
call fcn.1001fb70
test al, al
jne 0x10042832
mov eax, dword [ebp - 0x2bd8]
cmp eax, 2
je 0x100427d5
cmp eax, 3
jne 0x10042832
mov al, 1
jmp 0x10042834
lea eax, [ebp - 0x5d8]
push str.delete
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x1004280d
lea eax, [ebp - 0x5d8]
push str.rename
push eax
call fcn.100def63
add esp, 8
test eax, eax
jne 0x10042744
push 0x400
push edi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_DeleteMenu]
mov eax, dword [ebp - 0x2c08]
dec edi
dec eax
mov dword [ebp - 0x2c08], eax
jmp 0x1004274a
xor al, al
cmp byte [ebp - 0x2bad], 0
mov byte [ebp - 0x2ba1], al
jne 0x10042851
mov dword [ebp - 0x2bb4], esi
test al, al
je 0x10042efd
cmp dword [ebp - 0x2c08], 0
mov eax, esi
mov dword [ebp - 0x2bb4], eax
jle 0x10042887
push 0
push 0
push 0xc00
push esi
push dword [ebp - 0x2bac]
lea eax, [esi + 1]
mov dword [ebp - 0x2bb4], eax
call dword [sym.imp.USER32.dll_InsertMenuW]
mov eax, dword [ebp - 0x2bb4]
cmp byte [ebp - 0x2ba1], 0
je 0x100428bd
mov esi, eax
mov edx, str.Pin_to_Start_menu__Open_Shell_
inc eax
mov ecx, str.Menu.PinStartCs
mov dword [ebp - 0x2bb4], eax
call fcn.100a4f10
push eax
push 0xb
push 0x400
push esi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_InsertMenuW]
cmp byte [ebp - 0x2bad], 0
je 0x100428f9
mov eax, dword [ebp - 0x2bb4]
mov edx, str.Explore
mov esi, eax
mov ecx, str.Menu.Explore
inc eax
mov dword [ebp - 0x2bb4], eax
call fcn.100a4f10
push eax
push 9
push 0x400
push esi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_InsertMenuW]
cmp dword [ebp - 0x2bf0], 0xffffffff
je 0x10042efd
mov esi, dword [ebp - 0x2bb4]
mov eax, esi
push 0
push 0
inc esi
push 0xc00
push eax
mov dword [ebp - 0x2bb4], esi
mov esi, dword [ebp - 0x2bac]
push esi
call dword [sym.imp.USER32.dll_InsertMenuW]
jmp 0x10041e41
cmp dword [ebp - 0x2b50], 0
push dword [ebp - 0x2bac]
mov eax, dword [sym.imp.USER32.dll_GetMenuItemCount]
jl 0x10042b60
call eax
xor esi, esi
mov dword [ebp - 0x2c1c], eax
test eax, eax
jle 0x100429fc
mov edi, dword [ebp - 0x2bac]
push esi
push edi
call dword [sym.imp.USER32.dll_GetMenuItemID]
mov dword [ebp - 0x2bf0], eax
lea ecx, [eax - 0x11]
cmp ecx, 0x7fee
ja 0x100429ab
lea ecx, [ebp - 0x2be8]
call fcn.10010330
push 0x100
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
lea ecx, [ebp - 0xef8]
push ecx
mov ecx, dword [ebp - 0x2bf0]
push 0
push 0
add ecx, 0xffffffef
push ecx
push eax
call edx
test eax, eax
jns 0x100429b2
mov byte [ebp - 0xef8], 0
lea eax, [ebp - 0xef8]
push str.properties
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x100429e7
push 0x400
push esi
push edi
call dword [sym.imp.USER32.dll_DeleteMenu]
mov eax, dword [ebp - 0x2c1c]
dec esi
dec eax
mov dword [ebp - 0x2c1c], eax
jmp 0x100429ed
mov eax, dword [ebp - 0x2c1c]
inc esi
cmp esi, eax
jl 0x10042961
mov edi, dword [ebp - 0x2bc0]
movzx eax, word [ebp - 0x2b50]
mov ecx, 0x1014c0bc
push eax
call fcn.10026a00
mov edx, str.Open
mov dword [ebp - 0x2bd8], eax
mov ecx, str.Menu.Open
mov dword [ebp - 0x2bb4], 1
call fcn.100a4f10
mov esi, dword [ebp - 0x2bac]
push eax
push 1
push 0x400
push 0
push esi
call dword [sym.imp.USER32.dll_InsertMenuW]
mov eax, dword [sym.imp.USER32.dll_SetMenuDefaultItem]
push 1
push 0
push esi
call eax
mov eax, dword [ebp - 0x2bd8]
cmp dword [eax], 2
je 0x10042680
push 0
push 0
push 0xc00
push 1
push esi
call dword [sym.imp.USER32.dll_InsertMenuW]
mov eax, dword [ebp - 0x2bd8]
cmp dword [eax], 4
jne 0x10042aa2
mov esi, 3
mov edx, 0x10110ee0
mov ecx, str.JumpList.Unpin
mov dword [ebp - 0x2bb4], esi
call fcn.100a4f10
push eax
push 0xa
push 0x400
push 2
jmp 0x10042ae6
mov edx, 0x10110f2c
mov ecx, str.JumpList.Pin
call fcn.100a4f10
push eax
push 0xa
push 0x400
push 2
push esi
call dword [sym.imp.USER32.dll_InsertMenuW]
mov esi, 4
mov edx, str.Remove_from_this_list
mov ecx, str.JumpList.Remove
mov dword [ebp - 0x2bb4], esi
call fcn.100a4f10
push eax
push 7
push 0x400
push 3
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_InsertMenuW]
cmp dword [ebp - 0x2c1c], 0
jle 0x10042efd
push 0
push 0
mov eax, esi
inc esi
push 0xc00
push eax
push dword [ebp - 0x2bac]
mov dword [ebp - 0x2bb4], esi
call dword [sym.imp.USER32.dll_InsertMenuW]
mov ecx, str.EnableExplorer
call fcn.100aa7f0
test al, al
je 0x10042efd
inc dword [ebp - 0x2bb4]
mov edx, str.Explore
mov ecx, str.Menu.Explore
call fcn.100a4f10
push eax
push 9
push 0x400
push esi
mov esi, dword [ebp - 0x2bac]
push esi
call dword [sym.imp.USER32.dll_InsertMenuW]
jmp 0x10041e41
mov byte [ebp - 0x2bad], 0
call eax
mov dword [ebp - 0x2ba8], eax
test eax, eax
jle 0x10042db9
xor edi, edi
nop dword [eax]
push edi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_GetMenuItemID]
mov dword [ebp - 0x2bf0], eax
lea ecx, [eax - 0x11]
cmp ecx, 0x7fee
ja 0x10042bcf
lea ecx, [ebp - 0x2be8]
call fcn.10010330
push 0x100
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
lea ecx, [ebp - 0x210]
push ecx
mov ecx, dword [ebp - 0x2bf0]
push 0
push 0
add ecx, 0xffffffef
push ecx
push eax
call edx
test eax, eax
jns 0x10042bd6
mov byte [ebp - 0x210], 0
lea eax, [ebp - 0x210]
push str.properties
push eax
call fcn.100def63
add esp, 8
test eax, eax
jne 0x10042bf5
mov esi, edi
jmp 0x10042d99
cmp dword [ebp - 0x2b9c], 0
je 0x10042c36
lea eax, [ebp - 0x210]
push str.rename
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042d65
lea eax, [ebp - 0x210]
push str.delete
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042d65
test byte [ebp - 0x2b6f], 4
je 0x10042c5b
lea eax, [ebp - 0x210]
push str.rename
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042d65
lea eax, [ebp - 0x210]
push str.uninstall
push eax
call fcn.100def63
add esp, 8
test eax, eax
jne 0x10042cb2
test byte [ebp - 0x2b6f], 0xc
mov byte [ebp - 0x2bad], 1
je 0x10042d65
cmp byte [ebp - 0x2ba1], al
je 0x10042d65
lea ecx, [ebp - 0x2be4]
call fcn.10010330
mov ecx, eax
call fcn.10072ff0
test al, al
je 0x10042d99
jmp 0x10042d65
test byte [ebp - 0x2b6f], 0x40
je 0x10042d99
lea eax, [ebp - 0x210]
push str.rename
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042d87
lea eax, [ebp - 0x210]
push str.delete
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042d87
lea eax, [ebp - 0x210]
push str.pin_classic
push eax
call fcn.100def63
add esp, 8
test eax, eax
jne 0x10042d1d
mov ecx, str.StartScreenShortcut
call fcn.100aaa20
test al, al
jne 0x10042d87
lea eax, [ebp - 0x210]
push str.open
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042d65
lea eax, [ebp - 0x210]
push str.opencontaining
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10042d65
lea eax, [ebp - 0x210]
push str.runas
push eax
call fcn.100def63
add esp, 8
test eax, eax
jne 0x10042d99
push 0x400
push edi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_DeleteMenu]
mov eax, dword [ebp - 0x2ba8]
dec edi
dec eax
mov dword [ebp - 0x2ba8], eax
jmp 0x10042d9f
push 0x401
push edi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov eax, dword [ebp - 0x2ba8]
inc edi
cmp edi, eax
jl 0x10042b80
mov edi, dword [ebp - 0x2bc0]
mov dword [ebp - 0x2bb4], esi
cmp esi, 0xffffffff
jne 0x10042dc5
mov esi, dword [ebp - 0x2ba8]
mov dword [ebp - 0x2bb4], esi
test byte [ebp - 0x2b6f], 4
je 0x10042e87
mov edx, str.Open
mov ecx, str.Menu.Open
call fcn.100a4f10
push eax
push 1
push 0x400
push 0
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_InsertMenuW]
mov eax, dword [sym.imp.USER32.dll_SetMenuDefaultItem]
push 1
push 0
push dword [ebp - 0x2bac]
call eax
inc esi
mov dword [ebp - 0x2bb4], esi
call fcn.100b0560
mov ecx, 0xa00
cmp ax, cx
jae 0x10042e71
cmp byte [ebp - 0x2bad], 0
jne 0x10042e71
cmp byte [ebp - 0x2ba1], 0
je 0x10042e71
lea ecx, [ebp - 0x2be4]
call fcn.10010330
mov ecx, eax
call fcn.10072ff0
test al, al
jne 0x10042e71
mov edx, 0x10110d74
mov ecx, str.Menu.Uninstall
call fcn.100a4f10
push eax
push 0x10
push 0x400
push esi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_InsertMenuW]
inc esi
mov dword [ebp - 0x2bb4], esi
mov esi, dword [ebp - 0x2bac]
mov edx, 1
mov dword [ebp - 0x2be0], edx
jmp 0x10041e44
test byte [ebp - 0x2b6f], 8
je 0x10041e3b
cmp byte [ebp - 0x2bad], 0
jne 0x10042f3f
cmp byte [ebp - 0x2ba1], 0
je 0x10041e3b
call fcn.100b0650
test al, al
je 0x10042efd
lea ecx, [ebp - 0x2be4]
call fcn.10010330
mov ecx, eax
call fcn.100730f0
test al, al
je 0x10042efd
mov edx, 0x10110d74
mov ecx, str.Menu.Uninstall
call fcn.100a4f10
push eax
push 0x10
push 0x400
push esi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_InsertMenuW]
inc esi
mov dword [ebp - 0x2bb4], esi
jmp 0x10041e3b
mov esi, dword [ebp - 0x2bac]
mov edx, dword [ebp - 0x2be0]
jmp 0x10041e44
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_DestroyMenu]
lea ecx, [ebp - 0x2c5c]
call fcn.1000f810
jmp 0x10041a7b
mov esi, dword [ebp - 0x2bac]
mov dword [ebp - 0x2bb4], 0
jmp 0x10041e44
mov esi, dword [ebp - 0x2bac]
or edx, 0xffffffff
jmp 0x10041e44
cmp esi, 0xffffffff
jne 0x10042fe9
lea ecx, [ebp - 0x2c28]
call fcn.10013a30
lea ecx, [ebp - 0x2bfc]
mov byte [ebp - 4], 0x13
call fcn.10010330
mov edi, eax
mov ecx, dword [edi]
mov esi, dword [ecx + 0x14]
lea ecx, [ebp - 0x2c28]
call fcn.10013a60
push eax
push 0x80028000
push edi
call esi
lea ecx, [ebp - 0x2c28]
test eax, eax
js 0x10042fd3
push 0
push 1
call fcn.10010330
mov ecx, dword [ebp - 0x2bc0]
push eax
call fcn.1003dd50
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_DestroyMenu]
mov edi, dword [sym.imp.USER32.dll_GetMessagePos]
call edi
lea ecx, [ebp - 0x2c28]
mov dword [0x1014b510], eax
call fcn.10013a40
jmp 0x10041a7b
xor esi, esi
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x2ba8], esi
call fcn.10013a40
jmp 0x10043cf8
test esi, esi
jns 0x10043cf8
xor esi, esi
jmp 0x10043cf2
mov al, byte [ebp - 0x2b6f]
cmp ecx, 7
je 0x10043bc8
cmp ecx, 8
je 0x10043bc8
cmp ecx, 9
je 0x10043be9
mov ecx, str.EnableExplorer
call fcn.100aa7f0
test al, al
jne 0x1004310f
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_GetMenuItemCount]
xor esi, esi
mov dword [ebp - 0x2bf0], eax
test eax, eax
jle 0x1004310f
mov edi, dword [ebp - 0x2bac]
nop dword [eax]
push esi
push edi
call dword [sym.imp.USER32.dll_GetMenuItemID]
mov dword [ebp - 0x2c44], eax
lea ecx, [eax - 0x11]
cmp ecx, 0x7fee
ja 0x100430fc
lea ecx, [ebp - 0x2be8]
call fcn.10010330
push 0x100
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
lea ecx, [ebp - 0xbec]
push ecx
mov ecx, dword [ebp - 0x2c44]
push 0
push 0
add ecx, 0xffffffef
push ecx
push eax
call edx
test eax, eax
js 0x100430fc
test byte [ebp - 0x2b70], 1
je 0x100430d7
test byte [ebp - 0x2b6f], 1
jne 0x100430d7
lea ecx, [ebp - 0x2bbc]
call fcn.10010330
test eax, eax
je 0x100430d7
lea eax, [ebp - 0xbec]
push str.open
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x100430ef
lea eax, [ebp - 0xbec]
push str.opencontaining
push eax
call fcn.100def63
add esp, 8
test eax, eax
jne 0x100430fc
push 0x401
push esi
push edi
call dword [sym.imp.USER32.dll_EnableMenuItem]
inc esi
cmp esi, dword [ebp - 0x2bf0]
jl 0x10043050
mov edi, dword [ebp - 0x2bc0]
lea esi, [edi + 0xac]
lea ecx, [ebp - 0x2be8]
mov dword [ebp - 0x2c44], esi
call fcn.10010330
push eax
mov ecx, esi
call fcn.100476c0
lea esi, [edi + 0xb0]
lea ecx, [ebp - 0x2be8]
mov dword [ebp - 0x2bf0], esi
call fcn.10010330
push eax
mov ecx, esi
call fcn.10047640
xor eax, eax
mov dword [ebp - 0x2c3c], eax
mov dword [ebp - 0x2c30], eax
mov dword [ebp - 0x2c38], eax
mov eax, dword [ebp - 0x2ba0]
test eax, eax
je 0x10043199
cmp eax, 2
je 0x10043199
mov edx, dword [ebp + 0xc]
cmp edx, 6
je 0x10043199
cmp eax, 0xa
jne 0x10043786
mov ecx, dword [ebp - 0x2bc4]
test ecx, ecx
je 0x10043935
cmp byte [ecx + 1], 0
je 0x100438c2
cmp dword [ebp - 0x2b50], 0
jge 0x10043786
mov ecx, dword [ebp - 0x2bcc]
cmp ecx, dword [edi + 0x1c8]
jge 0x10043786
test dword [edi + 0x3c], 0x400
je 0x10043786
mov esi, dword [ebp - 0x2bb4]
mov eax, esi
mov ecx, dword [ebp - 0x2bac]
inc esi
push 0
push 0
push 0xc00
push eax
push ecx
mov dword [ebp - 0x2ba8], ecx
mov dword [ebp - 0x2bf4], 0xffffffff
mov dword [ebp - 0x2bb4], esi
call dword [sym.imp.USER32.dll_InsertMenuW]
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_GetMenuItemCount]
test eax, eax
jle 0x10043235
mov ecx, str.CascadingMenu
call fcn.100aa7f0
test al, al
je 0x10043235
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov dword [ebp - 0x2ba8], eax
mov dword [ebp - 0x2bf4], esi
mov dword [ebp - 0x2bb4], 0
mov esi, dword [ebp - 0x2bc4]
mov byte [ebp - 0x2c28], 0
mov byte [ebp - 0x2be0], 0
test esi, esi
je 0x10043296
cmp byte [esi + 1], 0
je 0x10043296
cmp dword [ebp - 0x2b90], 0
je 0x10043265
cmp dword [ebp - 0x2c34], 5
je 0x10043280
cmp byte [esi + 5], 0
jne 0x10043280
mov ecx, str.ShowNewFolder
call fcn.100aa7f0
mov byte [ebp - 0x2be0], 1
test al, al
jne 0x10043287
mov byte [ebp - 0x2be0], 0
mov al, byte [esi + 4]
mov byte [ebp - 0x2c28], 1
jmp 0x100433c2
lea eax, [ebp - 0x2cc8]
push eax
lea ecx, [edi + 0xa0]
call fcn.10026750
lea ecx, [edi + 0xa0]
mov eax, dword [eax]
mov dword [ebp - 0x2c2c], eax
lea eax, [ebp - 0x2c10]
push eax
call fcn.10035120
push eax
lea ecx, [ebp - 0x2c2c]
call fcn.1001fa20
test al, al
je 0x10043345
xor edi, edi
nop dword [eax]
nop dword [eax + eax]
lea ecx, [ebp - 0x2c2c]
mov esi, edi
call fcn.10010330
lea edi, [esi + 1]
lea ecx, [ebp - 0x2c2c]
cmp dword [eax], 0
cmovne edi, esi
call fcn.10047740
mov ecx, dword [ebp - 0x2c40]
lea eax, [ebp - 0x2c10]
push eax
call fcn.10035120
push eax
lea ecx, [ebp - 0x2c2c]
call fcn.1001fa20
test al, al
jne 0x100432e0
mov eax, dword [ebp - 0x2c28]
cmp edi, 1
mov edi, dword [ebp - 0x2bc0]
mov esi, 1
movzx eax, al
cmovg eax, esi
mov dword [ebp - 0x2c28], eax
jmp 0x1004334a
mov esi, 1
mov eax, dword [edi + 0x3c]
test eax, 0x2000000
jne 0x100433b7
cmp dword [ebp - 0x2b90], 0
je 0x10043366
cmp dword [ebp - 0x2c34], 5
je 0x100433b7
test eax, 0x100000
jne 0x100433b7
mov ecx, str.ShowNewFolder
call fcn.100aa7f0
test al, al
je 0x100433b7
xor ecx, ecx
lea eax, [ebp - 0x2318]
cmp byte [ebp - 0x2b6e], 2
push eax
sete cl
lea ecx, [ecx*4 + 0x68]
add ecx, edi
call fcn.10010330
push eax
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov ecx, dword [ebp - 0x2be0]
test eax, eax
movzx ecx, cl
cmovne ecx, esi
mov dword [ebp - 0x2be0], ecx
mov eax, dword [edi + 0x3c]
shr eax, 0xd
and eax, 0xffffff01
test byte [ebp - 0x2b6f], 0x20
mov dword [ebp - 0x2bd8], eax
je 0x100433e7
lea ecx, [ebp - 0x2bbc]
call fcn.10010330
mov byte [ebp - 0x2bb5], 1
test eax, eax
jne 0x100433ee
mov byte [ebp - 0x2bb5], 0
cmp byte [ebp - 0x2c28], 0
je 0x1004342d
mov eax, dword [ebp - 0x2bb4]
mov edx, str.Sort_by_Name
mov esi, eax
mov ecx, str.Menu.SortByName
inc eax
mov dword [ebp - 0x2bb4], eax
call fcn.100a4f10
push eax
push 3
push 0x400
push esi
mov esi, dword [ebp - 0x2ba8]
push esi
call dword [sym.imp.USER32.dll_InsertMenuW]
jmp 0x10043433
mov esi, dword [ebp - 0x2ba8]
cmp dword [edi + 0x60], 0
je 0x1004346d
mov eax, dword [ebp - 0x2bb4]
mov edx, str.Auto_Arrange
mov esi, eax
mov ecx, str.Menu.AutoArrange
inc eax
mov dword [ebp - 0x2bb4], eax
call fcn.100a4f10
push eax
push 4
push 0x400
push esi
mov esi, dword [ebp - 0x2ba8]
push esi
call dword [sym.imp.USER32.dll_InsertMenuW]
cmp byte [ebp - 0x2bd8], 0
je 0x1004348c
push 1
push 3
push esi
call dword [sym.imp.USER32.dll_EnableMenuItem]
push 8
push 4
push esi
call dword [sym.imp.USER32.dll_CheckMenuItem]
cmp byte [ebp - 0x2be0], 0
je 0x100434fb
mov eax, dword [ebp - 0x2bb4]
mov edx, str.New_Folder
mov esi, eax
mov ecx, str.Menu.NewFolder
inc eax
mov dword [ebp - 0x2bb4], eax
call fcn.100a4f10
push eax
push 5
push 0x400
push esi
push dword [ebp - 0x2ba8]
call dword [sym.imp.USER32.dll_InsertMenuW]
mov eax, dword [ebp - 0x2bb4]
mov edx, str.New_Shortcut
mov esi, eax
mov ecx, str.Menu.NewShortcut
inc eax
mov dword [ebp - 0x2bb4], eax
call fcn.100a4f10
push eax
push 6
push 0x400
push esi
push dword [ebp - 0x2ba8]
call dword [sym.imp.USER32.dll_InsertMenuW]
cmp byte [ebp - 0x2bb5], 0
je 0x10043537
mov eax, dword [ebp - 0x2bb4]
mov edx, str.Remove_highlight
mov esi, eax
mov ecx, str.Menu.RemoveHighlight
inc eax
mov dword [ebp - 0x2bb4], eax
call fcn.100a4f10
push eax
push 0xf
push 0x400
push esi
push dword [ebp - 0x2ba8]
call dword [sym.imp.USER32.dll_InsertMenuW]
mov esi, dword [ebp - 0x2bac]
mov eax, dword [ebp - 0x2ba8]
cmp esi, eax
je 0x10043568
push eax
call dword [sym.imp.USER32.dll_GetMenuItemCount]
test eax, eax
jne 0x10043568
push dword [ebp - 0x2ba8]
call dword [sym.imp.USER32.dll_DestroyMenu]
mov eax, esi
mov dword [ebp - 0x2ba8], eax
jmp 0x1004358e
mov ecx, dword [ebp - 0x2bb4]
mov eax, ecx
push 0
push 0
push 0xc00
push eax
inc ecx
push esi
mov dword [ebp - 0x2bb4], ecx
call dword [sym.imp.USER32.dll_InsertMenuW]
mov eax, dword [ebp - 0x2ba8]
cmp byte [ebp - 0x2be0], 0
jne 0x1004359f
cmp esi, eax
je 0x1004377e
push 0x31
call dword [sym.imp.USER32.dll_GetSystemMetrics]
cmp byte [ebp - 0x2be0], 0
mov dword [ebp - 0x2c04], eax
je 0x100436cc
push str.shell32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0
mov ecx, eax
mov eax, dword [ebp - 0x2c04]
push eax
push eax
push 1
push 0x13f
push ecx
mov dword [ebp - 0x2c10], ecx
call dword [sym.imp.USER32.dll_LoadImageW]
mov ecx, eax
test ecx, ecx
je 0x1004364a
mov edx, dword [ebp - 0x2c04]
push 1
push 0
call fcn.100af580
push 0x2c
mov dword [ebp - 0x2c30], eax
lea eax, [ebp - 0x2f30]
push 0
push eax
mov dword [ebp - 0x2f34], 0x30
call fcn.100d6eb0
mov eax, dword [ebp - 0x2c30]
add esp, 0x14
mov dword [ebp - 0x2f08], eax
lea eax, [ebp - 0x2f34]
mov dword [ebp - 0x2f30], 0x80
push eax
push 0
push 5
push dword [ebp - 0x2ba8]
call dword [sym.imp.USER32.dll_SetMenuItemInfoW]
mov eax, dword [ebp - 0x2c04]
push 0
push eax
push eax
push 1
push 0x4181
push dword [ebp - 0x2c10]
call dword [sym.imp.USER32.dll_LoadImageW]
mov ecx, eax
test ecx, ecx
je 0x100436cc
mov edx, dword [ebp - 0x2c04]
push 1
push 0
call fcn.100af580
push 0x2c
mov dword [ebp - 0x2c38], eax
lea eax, [ebp - 0x2f00]
push 0
push eax
mov dword [ebp - 0x2f04], 0x30
call fcn.100d6eb0
mov eax, dword [ebp - 0x2c38]
add esp, 0x14
mov dword [ebp - 0x2ed8], eax
lea eax, [ebp - 0x2f04]
mov dword [ebp - 0x2f00], 0x80
push eax
push 0
push 6
push dword [ebp - 0x2ba8]
call dword [sym.imp.USER32.dll_SetMenuItemInfoW]
cmp esi, dword [ebp - 0x2ba8]
je 0x1004377e
mov edx, str.Organize_Start_menu
mov ecx, str.Menu.Organize
call fcn.100a4f10
push eax
push dword [ebp - 0x2ba8]
push 0x410
push dword [ebp - 0x2bf4]
push esi
call dword [sym.imp.USER32.dll_InsertMenuW]
mov eax, dword [ebp - 0x2c04]
push 0
push eax
push eax
push 1
push 1
push dword [0x1014be3c]
call dword [sym.imp.USER32.dll_LoadImageW]
mov ecx, eax
test ecx, ecx
je 0x1004377e
mov edx, dword [ebp - 0x2c04]
push 1
push 0
call fcn.100af580
push 0x2c
mov dword [ebp - 0x2c3c], eax
lea eax, [ebp - 0x2ed0]
push 0
push eax
mov dword [ebp - 0x2ed4], 0x30
call fcn.100d6eb0
mov eax, dword [ebp - 0x2c3c]
add esp, 0x14
mov dword [ebp - 0x2ea8], eax
lea eax, [ebp - 0x2ed4]
mov dword [ebp - 0x2ed0], 0x80
push eax
push 1
push dword [ebp - 0x2bf4]
push esi
call dword [sym.imp.USER32.dll_SetMenuItemInfoW]
mov eax, dword [ebp - 0x2ba0]
jmp 0x1004378c
mov esi, dword [ebp - 0x2bac]
cmp eax, 0x30
jne 0x10043841
mov eax, dword [ebp - 0x2b58]
cmp eax, dword [edi + 0x1b4]
jne 0x100437af
mov edx, str.Collapse
mov ecx, str.Menu.Collapse
jmp 0x100437b9
mov edx, str.Expand
mov ecx, str.Menu.Expand
call fcn.100a4f10
push eax
push 0xc
push 0x400
push 0
push esi
call dword [sym.imp.USER32.dll_InsertMenuW]
cmp dword [ebp - 0x2b58], 4
jb 0x10043818
mov edx, str.See_more_results
mov ecx, str.Menu.MoreResults
call fcn.100a4f10
push eax
push str._s_t_CtrlEnter_
lea eax, [ebp - 0x1708]
push 0x100
push eax
call fcn.100a4830
add esp, 0x10
lea eax, [ebp - 0x1708]
push eax
push 9
push 0x400
push 1
push esi
call dword [sym.imp.USER32.dll_InsertMenuW]
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x1004382f
cmp byte [eax + 3], 0
je 0x1004382f
mov eax, 1
jmp 0x10043831
xor eax, eax
push 1
push eax
push esi
call dword [sym.imp.USER32.dll_SetMenuDefaultItem]
mov eax, dword [ebp - 0x2ba0]
cmp eax, 9
jne 0x100438bf
cmp byte [0x1014b4d1], 0
je 0x1004388a
call fcn.100b0560
mov ecx, 0x602
cmp ax, cx
jb 0x1004388a
mov ecx, str.AllProgramsMetro
call fcn.100aa7f0
test al, al
je 0x1004388a
push 1
mov ecx, 0x1014be70
call fcn.1003c0b0
test al, al
jne 0x1004389a
push 1
mov ecx, 0x1014be70
call fcn.1003c0d0
jmp 0x10043896
push 1
mov ecx, 0x1014be70
call fcn.1003c0b0
test al, al
je 0x100438bf
mov edx, str.Remove_highlight
mov ecx, str.Menu.RemoveHighlight
call fcn.100a4f10
push eax
mov eax, dword [ebp - 0x2bb4]
push 0xf
push 0x400
push eax
push esi
call dword [sym.imp.USER32.dll_InsertMenuW]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x10043935
cmp byte [eax + 1], 0
je 0x10043935
test byte [ebp - 0x2b70], 1
je 0x10043935
cmp edx, 5
jne 0x10043935
cmp byte [eax + 2], 0
je 0x100438f2
mov edx, str.Collapse
mov ecx, str.Menu.Collapse
jmp 0x100438fc
mov edx, str.Expand
mov ecx, str.Menu.Expand
call fcn.100a4f10
mov esi, dword [ebp - 0x2bac]
push eax
push 0xc
push 0x400
push 0
push esi
call dword [sym.imp.USER32.dll_InsertMenuW]
push 1
push 0
push esi
call dword [sym.imp.USER32.dll_SetMenuDefaultItem]
push 0
push 0
push 0xc00
push 1
push esi
call dword [sym.imp.USER32.dll_InsertMenuW]
push dword [ebp - 0x2bac]
mov byte [ebp - 0x2ba1], 1
call dword [sym.imp.USER32.dll_GetMenuItemCount]
xor esi, esi
mov dword [ebp - 0x2bf4], eax
test eax, eax
jle 0x10043a18
mov edi, dword [ebp - 0x2bac]
nop
lea eax, [ebp - 0x2de4]
mov dword [ebp - 0x2de4], 0x30
push eax
push 1
xorps xmm0, xmm0
mov dword [ebp - 0x2de0], 0x100
push esi
push edi
movups xmmword [ebp - 0x2ddc], xmm0
movups xmmword [ebp - 0x2dcc], xmm0
movq qword [ebp - 0x2dbc], xmm0
call dword [sym.imp.USER32.dll_GetMenuItemInfoW]
test eax, eax
je 0x100439e2
mov eax, dword [ebp - 0x2ddc]
cmp eax, 0x800
jne 0x100439d7
cmp byte [ebp - 0x2ba1], 0
je 0x100439d2
push 0x400
push esi
push edi
call dword [sym.imp.USER32.dll_DeleteMenu]
mov eax, dword [ebp - 0x2ddc]
dec esi
dec dword [ebp - 0x2bf4]
cmp eax, 0x800
sete cl
mov byte [ebp - 0x2ba1], cl
jmp 0x100439e8
mov cl, byte [ebp - 0x2ba1]
mov eax, dword [ebp - 0x2bf4]
inc esi
cmp esi, eax
jl 0x10043960
mov edi, dword [ebp - 0x2bc0]
test eax, eax
jle 0x10043a18
test cl, cl
je 0x10043a18
push 0x400
dec eax
push eax
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_DeleteMenu]
mov ecx, dword [ebp - 0x2c24]
xorps xmm0, xmm0
mov esi, dword [ebp - 0x2bcc]
mov dword [ebp - 0x2b2c], 0x14
mov dword [ebp - 0x2bd8], 0
movups xmmword [ebp - 0x2b28], xmm0
test ecx, ecx
je 0x10043a59
mov eax, dword [ecx]
mov dword [ebp - 0x2c4c], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x2c50], eax
jmp 0x10043a9d
lea eax, [ebp - 0x2b28]
mov ecx, edi
push eax
push esi
call fcn.10059640
lea eax, [ebp - 0x2b28]
push eax
lea ecx, [edi + 0xc]
push 0
call fcn.10010380
mov eax, dword [ebp - 0x2b28]
mov dword [ebp - 0x2c4c], eax
mov eax, dword [ebp - 0x2b24]
mov dword [ebp - 0x2c50], eax
lea eax, [ebp - 0x2b2c]
mov dword [ebp - 0x2bd8], eax
push esi
mov ecx, edi
call fcn.10059d70
push esi
mov ecx, edi
call fcn.10059a00
lea ecx, [edi + 0xc]
push 1
call fcn.10013360
push dword [ebp - 0x2bac]
xor esi, esi
mov dword [ebp - 0x2ba8], esi
call dword [sym.imp.USER32.dll_GetMenuItemCount]
test eax, eax
jle 0x10043b3c
test byte [0x1014b4cc], 4
je 0x10043ae6
push edi
push str.Open_context_menu__ptr_p
call fcn.1003bea0
add esp, 8
push dword [ebp - 0x2bd8]
cmp byte [0x10158d38], 0
mov ecx, 0x8142
push dword [edi + 0xc]
mov eax, 0x142
push dword [ebp - 0x2c50]
cmovne eax, ecx
push dword [ebp - 0x2c4c]
push eax
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_TrackPopupMenuEx]
test byte [0x1014b4cc], 4
mov esi, eax
mov dword [ebp - 0x2ba8], esi
je 0x10043b3c
push esi
push edi
push str.Select_context_menu__ptr_p__index_d
call fcn.1003bea0
add esp, 0xc
push 0xffffffffffffffff
mov ecx, edi
call fcn.10059d70
cmp dword [edi + 0x54], 0
jge 0x10043b62
cmp byte [edi + 0x31], 0
jne 0x10043b62
push 0
push 0
push dword [ebp - 0x2bcc]
mov ecx, edi
call fcn.10059a50
mov edi, dword [ebp - 0x2c44]
mov ecx, edi
call fcn.10010330
test eax, eax
je 0x10043b7a
mov ecx, edi
call fcn.100475f0
mov edi, dword [ebp - 0x2bf0]
mov ecx, edi
call fcn.10010330
test eax, eax
je 0x10043b92
mov ecx, edi
call fcn.100475f0
mov eax, dword [ebp - 0x2c30]
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
je 0x10043ba5
push eax
call edi
mov eax, dword [ebp - 0x2c38]
test eax, eax
je 0x10043bb2
push eax
call edi
mov eax, dword [ebp - 0x2c3c]
test eax, eax
je 0x10043cf8
push eax
call edi
jmp 0x10043cf8
test al, 0x40
je 0x10043bd3
xor esi, esi
jmp 0x10043cf2
cmp ecx, 8
jne 0x10043be9
cmp dword [ebp - 0x2ba0], 4
jne 0x10043bf3
lea esi, [ecx - 1]
jmp 0x10043cf2
cmp ecx, 7
je 0x10043bf3
cmp ecx, 8
jne 0x10043c10
test al, 4
je 0x10043c10
cmp byte [ebp - 0x2bb5], 0
jne 0x10043c09
test dword [edi + 0x3c], 0x2400000
je 0x10043c10
xor esi, esi
jmp 0x10043cf2
mov eax, ecx
sub eax, 7
je 0x10043c47
sub eax, 1
je 0x10043c3b
sub eax, 1
jne 0x10043c2d
mov dword [ebp - 0x2c2c], str.properties
jmp 0x10043c51
mov eax, dword [ebp - 0x2cc8]
mov dword [ebp - 0x2c2c], eax
jmp 0x10043c51
mov dword [ebp - 0x2c2c], str.delete
jmp 0x10043c51
mov dword [ebp - 0x2c2c], str.rename
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_GetMenuItemCount]
xor edi, edi
mov dword [ebp - 0x2c10], eax
test eax, eax
jle 0x10043cf8
nop dword [eax]
push edi
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_GetMenuItemID]
mov dword [ebp - 0x2bd8], eax
lea ecx, [eax - 0x11]
cmp ecx, 0x7fee
ja 0x10043cd8
lea ecx, [ebp - 0x2be8]
call fcn.10010330
push 0x100
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
lea ecx, [ebp - 0x1508]
push ecx
mov ecx, dword [ebp - 0x2bd8]
push 0
push 0
add ecx, 0xffffffef
push ecx
push eax
call edx
test eax, eax
js 0x10043cd8
push dword [ebp - 0x2c2c]
lea eax, [ebp - 0x1508]
push eax
call fcn.100def63
add esp, 8
test eax, eax
je 0x10043ce3
inc edi
cmp edi, dword [ebp - 0x2c10]
jl 0x10043c70
jmp 0x10043cf8
mov eax, dword [ebp - 0x2bd8]
xor ecx, ecx
test eax, eax
mov esi, eax
cmovs esi, ecx
mov dword [ebp - 0x2ba8], esi
lea ecx, [ebp - 0x2c09]
call fcn.1003f330
mov byte [ebp - 4], 0x14
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x10043d14
mov dword [eax + 0x10], esi
cmp dword [ebp + 0xc], 4
jne 0x10043d50
cmp byte [ebp - 0x2bc7], 0
je 0x10043d2d
push 1
call dword [sym.imp.USER32.dll_LockSetForegroundWindow]
jmp 0x10043d46
push 2
call dword [sym.imp.USER32.dll_LockSetForegroundWindow]
push dword [ebp - 0x2bcc]
mov ecx, dword [ebp - 0x2bc0]
call fcn.10046f00
mov ecx, 2
call fcn.1005ea20
cmp esi, 0xb
jne 0x10043e48
lea ecx, [ebp - 0x2c60]
call fcn.1001fb10
mov byte [ebp - 4], 0x15
cmp dword [ebp - 0x2b90], 0
je 0x10043de0
push 0
push 0
push 0x1014be70
lea ecx, [ebp - 0x2d50]
call fcn.100233a0
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x2b90]
push str..settingcontent_ms
call fcn.10023390
mov ecx, eax
call fcn.10010330
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
push eax
call fcn.100dc721
add esp, 8
test eax, eax
jne 0x10043dd1
lea ecx, [ebp - 0x2bb5]
mov byte [ebp - 0x2bb5], al
call fcn.10046760
push eax
lea ecx, [ebp - 0x2c60]
call fcn.10021c50
lea ecx, [ebp - 0x2d50]
mov byte [ebp - 4], 0x15
call fcn.100233f0
lea ecx, [ebp - 0x2c60]
call fcn.1001fb70
test al, al
je 0x10043df3
xor edi, edi
jmp 0x10043e00
lea ecx, [ebp - 0x2c60]
call fcn.10010330
mov edi, eax
lea ecx, [ebp - 0x2b98]
call fcn.10010330
lea ecx, [ebp - 0x2bbc]
mov esi, eax
call fcn.10010330
push 0
push edi
mov edx, esi
mov ecx, eax
call fcn.10040540
mov edi, dword [ebp - 0x2bc0]
lea ecx, [ebp - 0x2c60]
add esp, 8
mov byte [ebp - 4], 0x14
mov byte [edi + 0x33], 1
call fcn.10012170
mov esi, dword [ebp - 0x2ba8]
jmp 0x10043e4e
mov edi, dword [ebp - 0x2bc0]
mov eax, dword [ebp - 0x2b50]
test eax, eax
js 0x10043f3c
cmp esi, 9
je 0x10043f3c
cmp esi, 0x11
jge 0x10043f3c
cmp dword [ebp - 0x2ba0], 2
je 0x10043f3c
movzx eax, ax
mov ecx, 0x1014c0bc
push eax
call fcn.10026a00
mov edx, dword [ebp - 0x2b50]
shr edx, 0x10
push edx
lea ecx, [eax + 0xc]
mov dword [ebp - 0x2c10], eax
call fcn.1003a9f0
cmp esi, 1
jne 0x10043ebe
push dword [sym.ExplorerShellDLL32.dll_struct_HWND____g_OwnerWindow]
mov ecx, dword [0x1014b4d8]
mov edx, eax
call fcn.10039bf0
jmp 0x1004541a
cmp esi, 0xa
jne 0x10043f04
mov eax, dword [ebp - 0x2c10]
mov edx, 0x1014c0bc
mov ecx, dword [ebp - 0x2b50]
push 0xffffffffffffffff
cmp dword [eax], 4
setne al
movzx eax, al
push eax
mov eax, ecx
shr eax, 0x10
push eax
movzx eax, cx
mov ecx, dword [0x1014b4d8]
push eax
call fcn.1003a590
add esp, 0x10
mov ecx, edi
call fcn.1005a8c0
jmp 0x1004541d
cmp esi, 7
jne 0x1004541d
mov ecx, dword [ebp - 0x2b50]
mov edx, 0x1014c0bc
mov eax, ecx
shr eax, 0x10
push eax
movzx eax, cx
mov ecx, dword [0x1014b4d8]
push eax
call fcn.1003a360
add esp, 8
mov ecx, edi
call fcn.1005a8c0
jmp 0x1004541d
cmp esi, 1
jne 0x10043fb3
test byte [ebp - 0x2b6f], 4
je 0x10045425
mov ecx, dword [ebp - 0x2b90]
call fcn.100729e0
cmp byte [ebp - 0x2bc6], 0
je 0x10043f74
lea ecx, [ebp - 0x2c14]
call fcn.10010330
mov ecx, eax
call fcn.1005f410
push 0
push 0
lea ecx, [ebp - 0x2bbc]
call fcn.10010330
push eax
mov ecx, 0x1014be70
call fcn.1002c8d0
test byte [edi + 0x3c], 0x80
jne 0x10043fa4
push dword [ebp - 0x2b94]
mov ecx, 0x1014e940
call fcn.1007c400
xor edx, edx
lea ecx, [edx + 1]
call fcn.1003e390
jmp 0x1004541d
cmp esi, 2
jne 0x10044016
push 0x34
lea eax, [ebp - 0x2e9c]
mov dword [ebp - 0x2ea4], 0x3c
push 0
push eax
mov dword [ebp - 0x2ea0], 0xc
call fcn.100d6eb0
add esp, 0xc
mov dword [ebp - 0x2e98], 0x1010be30
lea ecx, [ebp - 0x2bd0]
call fcn.10010330
mov dword [ebp - 0x2e80], eax
lea eax, [ebp - 0x2ea4]
push eax
mov dword [ebp - 0x2e88], 1
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
jmp 0x1004541d
cmp esi, 3
jne 0x100441ab
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x1004409d
cmp byte [eax + 1], 0
je 0x1004409d
mov eax, dword [edi + 0x1b8]
mov dword [ebp - 0x2c10], eax
test eax, eax
je 0x1004409d
lea ecx, [ebp - 0x2df0]
call fcn.10010800
mov esi, eax
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x2bc4]
push dword [ecx + 8]
mov ecx, dword [edi + 0x1b8]
push 3
push 0x110a
push dword [ecx + 8]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp - 0x2c10]
push 1
push 0
push esi
push eax
mov eax, dword [ebp - 0x2bc4]
push dword [eax + 8]
call fcn.10079110
lea ecx, [ebp - 0x2df0]
mov byte [ebp - 4], 0x14
call fcn.10010820
jmp 0x1004541d
lea ecx, [ebp - 0x2ca8]
call fcn.10010800
xor esi, esi
mov byte [ebp - 4], 0x18
cmp dword [edi + 0x1c8], esi
jle 0x10044117
nop word [eax + eax]
push esi
lea ecx, [edi + 0xa0]
call fcn.10010300
cmp dword [eax], 0
jne 0x1004410e
push esi
lea ecx, [edi + 0xa0]
call fcn.10010300
push eax
lea ecx, [ebp - 0x2d94]
call fcn.10023410
lea eax, [ebp - 0x2d94]
mov byte [ebp - 4], 0x19
push eax
lea ecx, [ebp - 0x2ca8]
call fcn.100268c0
lea ecx, [ebp - 0x2d94]
mov byte [ebp - 4], 0x18
call fcn.10012170
inc esi
cmp esi, dword [edi + 0x1c8]
jl 0x100440c0
lea eax, [ebp - 0x2d84]
push eax
lea ecx, [ebp - 0x2ca8]
call fcn.10035120
lea ecx, [ebp - 0x2ca8]
mov esi, dword [eax]
lea eax, [ebp - 0x2d80]
push eax
call fcn.10026750
push esi
push dword [eax]
call fcn.10047930
add esp, 8
test dword [edi + 0x3c], 0x8000
je 0x10044182
lea eax, [ebp - 0x2d7c]
push eax
lea ecx, [ebp - 0x2ca8]
call fcn.10035120
lea ecx, [ebp - 0x2ca8]
mov esi, dword [eax]
lea eax, [ebp - 0x2d78]
push eax
call fcn.10026750
push esi
push dword [eax]
call fcn.10047960
add esp, 8
lea eax, [ebp - 0x2ca8]
mov ecx, edi
push eax
call fcn.1005ebb0
mov ecx, edi
call fcn.1005a8c0
lea ecx, [ebp - 0x2ca8]
mov byte [ebp - 4], 0x14
call fcn.10026970
jmp 0x1004541d
cmp esi, 0xf
jne 0x10044277
cmp dword [ebp - 0x2ba0], 0xa
jne 0x100441d7
push 1
push 0
mov ecx, 0x1014be70
call fcn.1002cb50
mov ecx, edi
call fcn.1005a8c0
jmp 0x10045425
cmp dword [ebp - 0x2ba0], 9
jne 0x10044234
cmp byte [0x1014b4d1], 0
je 0x1004420a
call fcn.100b0560
mov ecx, 0x602
cmp ax, cx
jb 0x1004420a
mov ecx, str.AllProgramsMetro
call fcn.100aa7f0
test al, al
je 0x1004420a
mov al, 1
jmp 0x1004420c
xor al, al
push eax
push 1
mov ecx, 0x1014be70
call fcn.1002cb50
mov ecx, dword [edi + 0x1b8]
test ecx, ecx
je 0x1004426b
call fcn.10075d40
mov ecx, edi
call fcn.1005a8c0
jmp 0x10045425
lea ecx, [ebp - 0x2bd0]
call fcn.10010330
lea ecx, [ebp - 0x2bbc]
mov esi, eax
call fcn.10010330
mov cl, byte [ebp - 0x2b70]
and cl, 1
movzx ecx, cl
push ecx
push esi
push eax
mov ecx, 0x1014be70
call fcn.1002c8d0
mov esi, dword [ebp - 0x2ba8]
mov ecx, edi
call fcn.1005a8c0
jmp 0x10045425
cmp esi, 4
jne 0x1004441c
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x10044307
cmp byte [eax + 1], 0
je 0x10044307
cmp byte [eax + 4], 0
lea ecx, [ebp - 0x2dfc]
mov edi, dword [edi + 0x1b8]
sete al
mov byte [ebp - 0x2c10], al
call fcn.10010800
mov esi, eax
mov byte [ebp - 4], 0x1a
mov eax, dword [ebp - 0x2bc4]
push dword [eax + 8]
mov eax, dword [ebp - 0x2bc0]
push 3
push 0x110a
mov ecx, dword [eax + 0x1b8]
push dword [ecx + 8]
call dword [sym.imp.USER32.dll_SendMessageW]
push 1
push dword [ebp - 0x2c10]
mov ecx, edi
push esi
push eax
mov eax, dword [ebp - 0x2bc4]
push dword [eax + 8]
call fcn.10079110
lea ecx, [ebp - 0x2dfc]
mov byte [ebp - 4], 0x14
call fcn.10010820
jmp 0x1004541d
cmp dword [edi + 0x60], 0
je 0x10044410
push 0
lea ecx, [ebp - 0x2c9c]
call fcn.10013310
push 0x2001f
push str.Software360WallPaperOpenShellStartMenuOrder
push SysReAllocString
lea ecx, [ebp - 0x2c9c]
mov byte [ebp - 4], 0x1b
call fcn.10013210
test eax, eax
je 0x10044362
push 0
push 0
push 0x2001f
push 0
push 0
push str.Software360WallPaperOpenShellStartMenuOrder
push SysReAllocString
lea ecx, [ebp - 0x2c9c]
call fcn.100380f0
push dword [edi + 0x60]
lea eax, [ebp - 0x3d8]
push str._08X
push 0x64
push eax
call fcn.100a4830
add esp, 0x10
lea ecx, [ebp - 0x2c9c]
test dword [edi + 0x3c], 0x2000
je 0x10044390
push 0
push 0
jmp 0x100443a3
push 4
lea eax, [ebp - 0x2cc0]
mov dword [ebp - 0x2cc0], 0x4155544f
push eax
lea eax, [ebp - 0x3d8]
push eax
call fcn.100380d0
mov eax, dword [edi + 0x64]
test eax, eax
je 0x10044401
push eax
push str._08X
lea eax, [ebp - 0x3d8]
push 0x64
push eax
call fcn.100a4830
add esp, 0x10
lea ecx, [ebp - 0x2c9c]
test dword [edi + 0x3c], 0x2000
je 0x100443e2
push 0
push 0
jmp 0x100443f5
push 4
lea eax, [ebp - 0x2cbc]
mov dword [ebp - 0x2cbc], 0x4155544f
push eax
lea eax, [ebp - 0x3d8]
push eax
call fcn.100380d0
lea ecx, [ebp - 0x2c9c]
mov byte [ebp - 4], 0x14
call fcn.100132f0
mov ecx, edi
call fcn.1005a8c0
jmp 0x1004541d
cmp esi, 5
jne 0x10044edb
lea eax, [ebp - 0x2b98]
mov ecx, 0x1014c060
push eax
call fcn.10021ca0
mov ecx, dword [ebp - 0x2c24]
test ecx, ecx
je 0x10044451
mov eax, dword [ecx]
mov dword [0x10158cec], eax
mov eax, dword [ecx + 4]
mov dword [0x10158cf0], eax
jmp 0x10044474
mov eax, dword [ebp - 0x2b80]
lea ecx, [edi + 0xc]
mov dword [0x10158cec], eax
mov eax, dword [ebp - 0x2b7c]
push 0x10158cec
mov dword [0x10158cf0], eax
call fcn.10049180
mov al, byte [0x1014b4d0]
mov ecx, 0x1014c064
mov byte [ebp - 0x2bb5], al
lea eax, [ebp - 0x2c64]
push eax
call fcn.1001fa60
lea eax, [ebp - 0x2c58]
mov ecx, 0x1014c064
push eax
call fcn.10010340
push eax
lea ecx, [ebp - 0x2c64]
call fcn.1001fa20
test al, al
je 0x100444f4
lea ecx, [ebp - 0x2c64]
call fcn.10010330
push 0
mov ecx, dword [eax]
add ecx, 0xc
call fcn.10027e40
lea ecx, [ebp - 0x2c64]
call fcn.100266b0
lea eax, [ebp - 0x2c58]
mov ecx, 0x1014c064
push eax
call fcn.10010340
push eax
lea ecx, [ebp - 0x2c64]
call fcn.1001fa20
test al, al
jne 0x100444b1
cmp byte [ebp - 0x2bb5], 0
je 0x1004450b
push 0
push dword [0x1014b4b0]
call dword [sym.imp.USER32.dll_EnableWindow]
lea ecx, [ebp - 0x2bb4]
call fcn.10013a30
lea ecx, [ebp - 0x2bbc]
mov byte [ebp - 4], 0x1c
call fcn.10010330
test eax, eax
je 0x1004455a
lea ecx, [ebp - 0x2bb4]
call fcn.10013a60
lea ecx, [ebp - 0x2bbc]
mov esi, eax
call fcn.10010330
lea ecx, [ebp - 0x2d74]
push ecx
push esi
push 0x10103af0
push eax
call dword [sym.imp.SHELL32.dll_SHBindToParent]
jmp 0x1004464f
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x100445d9
cmp byte [eax + 1], 0
je 0x100445d9
lea ecx, [ebp - 0x2c90]
call fcn.10013a30
lea ecx, [ebp - 0x2c90]
mov byte [ebp - 4], 0x1d
call fcn.10013a60
push eax
call dword [sym.imp.SHELL32.dll_SHGetDesktopFolder]
test eax, eax
js 0x100445d1
lea ecx, [ebp - 0x2c90]
call fcn.10010330
mov dword [ebp - 0x2c58], eax
mov ecx, dword [eax]
mov edi, dword [ecx + 0x14]
lea ecx, [ebp - 0x2bb4]
call fcn.10013a60
mov ecx, dword [ebp - 0x2bc4]
mov esi, eax
lea ecx, [ecx + 0xc]
call fcn.10010330
push esi
push 0x10103af0
push 0
push eax
push dword [ebp - 0x2c58]
call edi
lea ecx, [ebp - 0x2c90]
jmp 0x10044646
lea ecx, [ebp - 0x2c74]
call fcn.10013a30
lea ecx, [ebp - 0x2c74]
mov byte [ebp - 4], 0x1e
call fcn.10013a60
push eax
call dword [sym.imp.SHELL32.dll_SHGetDesktopFolder]
test eax, eax
js 0x10044640
lea ecx, [ebp - 0x2c74]
call fcn.10010330
mov dword [ebp - 0x2c58], eax
mov ecx, dword [eax]
mov edi, dword [ecx + 0x14]
lea ecx, [ebp - 0x2bb4]
call fcn.10013a60
mov ecx, dword [ebp - 0x2bc0]
mov esi, eax
lea ecx, [ecx + 0x68]
call fcn.10010330
push esi
push 0x10103af0
push 0
push eax
push dword [ebp - 0x2c58]
call edi
lea ecx, [ebp - 0x2c74]
mov byte [ebp - 4], 0x1c
call fcn.1000f810
lea ecx, [ebp - 0x2bb4]
call fcn.10010330
test eax, eax
je 0x10044eb0
lea ecx, [ebp - 0x2c6c]
call fcn.10013a30
call dword [sym.imp.USER32.dll_CreatePopupMenu]
lea ecx, [ebp - 0x2cd4]
mov dword [ebp - 0x2bd8], eax
call fcn.10010800
lea ecx, [ebp - 0x2c04]
call fcn.10013a30
lea ecx, [ebp - 0x2bb4]
mov byte [ebp - 4], 0x21
call fcn.10010330
mov edi, eax
mov ecx, dword [edi]
mov esi, dword [ecx + 0x10]
lea ecx, [ebp - 0x2c04]
call fcn.10013a60
push eax
push 0x20
push 0
push edi
call esi
test eax, eax
je 0x100446c9
push 0
lea ecx, [ebp - 0x2c04]
call fcn.1001f8e0
lea ecx, [ebp - 0x2c04]
call fcn.10010330
test eax, eax
je 0x100447be
mov esi, dword [sym.imp.SHELL32.dll_ILFree]
mov edi, dword [sym.imp.SHLWAPI.dll_StrRetToStrW]
nop dword [eax + eax]
lea ecx, [ebp - 0x2c04]
call fcn.10010330
push 0
lea edx, [ebp - 0x2c7c]
push edx
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0xc]
test eax, eax
jne 0x100447be
lea ecx, [ebp - 0x2bb4]
call fcn.10010330
lea edx, [ebp - 0x3398]
push edx
push 0x8001
push dword [ebp - 0x2c7c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2c]
test eax, eax
js 0x100447a3
lea ecx, [ebp - 0x2c78]
call fcn.10013a30
lea ecx, [ebp - 0x2c78]
mov byte [ebp - 4], 0x22
call fcn.10013a60
push eax
push dword [ebp - 0x2c7c]
lea eax, [ebp - 0x3398]
push eax
call edi
lea ecx, [ebp - 0x2c78]
call fcn.10010330
mov edx, 0x811c9dc5
mov ecx, eax
call fcn.100b3790
mov dword [ebp - 0x2cb8], eax
lea ecx, [ebp - 0x2cd4]
lea eax, [ebp - 0x2cb8]
push eax
call fcn.100352c0
lea ecx, [ebp - 0x2c78]
mov byte [ebp - 4], 0x21
call fcn.10013a40
push dword [ebp - 0x2c7c]
call esi
lea ecx, [ebp - 0x2c04]
call fcn.10010330
test eax, eax
jne 0x100446f0
lea ecx, [ebp - 0x2c04]
mov byte [ebp - 4], 0x20
call fcn.1000f810
lea ecx, [ebp - 0x2bb4]
mov byte [0x1014b4ee], 1
call fcn.10010330
mov edi, eax
mov ecx, dword [edi]
mov esi, dword [ecx + 0x20]
lea ecx, [ebp - 0x2c6c]
call fcn.10013a60
push eax
push 0x101039e0
push dword [sym.ExplorerShellDLL32.dll_struct_HWND____g_OwnerWindow]
push edi
call esi
test eax, eax
js 0x100448a3
lea ecx, [ebp - 0x2c6c]
call fcn.10010330
mov esi, dword [ebp - 0x2bd8]
push 0
push 0x7fff
mov ecx, dword [eax]
push 1
push 0
push esi
push eax
call dword [ecx + 0xc]
test eax, eax
js 0x100448a9
push 0x38
lea eax, [ebp - 0x2e34]
mov dword [ebp - 0x2e3c], 0x40
push 0
push eax
mov dword [ebp - 0x2e38], 0x4000
call fcn.100d6eb0
mov eax, dword [sym.ExplorerShellDLL32.dll_struct_HWND____g_OwnerWindow]
lea ecx, [ebp - 0x2c6c]
or dword [ebp - 0x2e38], 0x100
add esp, 0xc
mov dword [ebp - 0x2e30], 0x101112d4
mov dword [ebp - 0x2e14], str.NewFolder
mov dword [ebp - 0x2e24], 1
mov dword [ebp - 0x2e34], eax
call fcn.10010330
lea edx, [ebp - 0x2e3c]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
jmp 0x100448a9
mov esi, dword [ebp - 0x2bd8]
push esi
call dword [sym.imp.USER32.dll_DestroyMenu]
lea ecx, [ebp - 0x2c08]
mov byte [0x1014b4ee], 0
mov dword [ebp - 0x2ba8], 0
mov dword [ebp - 0x2bd8], 0
call fcn.10013a30
lea ecx, [ebp - 0x2bb4]
mov byte [ebp - 4], 0x23
call fcn.10010330
mov edi, eax
mov ecx, dword [edi]
mov esi, dword [ecx + 0x10]
lea ecx, [ebp - 0x2c08]
call fcn.10013a60
push eax
push 0x20
push 0
push edi
call esi
test eax, eax
je 0x10044910
push 0
lea ecx, [ebp - 0x2c08]
call fcn.1001f8e0
lea ecx, [ebp - 0x2c08]
call fcn.10010330
test eax, eax
je 0x10044a4e
lea ecx, [ebp - 0x2c08]
call fcn.10010330
push 0
lea edx, [ebp - 0x2c48]
push edx
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0xc]
test eax, eax
jne 0x10044a4e
lea ecx, [ebp - 0x2bb4]
call fcn.10010330
lea edx, [ebp - 0x3080]
push edx
push 0x8001
push dword [ebp - 0x2c48]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2c]
test eax, eax
js 0x10044a2f
lea ecx, [ebp - 0x2be0]
call fcn.10013a30
lea ecx, [ebp - 0x2be0]
mov byte [ebp - 4], 0x24
call fcn.10013a60
mov edi, dword [sym.imp.SHLWAPI.dll_StrRetToStrW]
push eax
push dword [ebp - 0x2c48]
lea eax, [ebp - 0x3080]
push eax
call edi
lea ecx, [ebp - 0x2be0]
call fcn.10010330
mov edx, 0x811c9dc5
mov ecx, eax
call fcn.100b3790
mov dword [ebp - 0x2cac], eax
lea ecx, [ebp - 0x2cd4]
lea eax, [ebp - 0x2d40]
push eax
call fcn.10035120
lea ecx, [ebp - 0x2cd4]
mov esi, dword [eax]
lea eax, [ebp - 0x2d44]
push eax
call fcn.10026750
push esi
lea edx, [ebp - 0x2cac]
lea ecx, [ebp - 0x2d30]
push dword [eax]
call fcn.10047a50
add esp, 8
lea ecx, [ebp - 0x2cd4]
mov esi, eax
lea eax, [ebp - 0x2cd8]
push eax
call fcn.10035120
push eax
mov ecx, esi
call fcn.10035600
test al, al
jne 0x10044b83
lea ecx, [ebp - 0x2be0]
mov byte [ebp - 4], 0x23
call fcn.10013a40
push dword [ebp - 0x2c48]
call dword [sym.imp.SHELL32.dll_ILFree]
lea ecx, [ebp - 0x2c08]
call fcn.10010330
test eax, eax
jne 0x10044923
xor edi, edi
lea ecx, [ebp - 0x2c08]
mov byte [ebp - 4], 0x20
call fcn.1000f810
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x10044a6f
cmp byte [eax + 1], 0
jne 0x10044a97
mov esi, dword [ebp - 0x2bc0]
mov ecx, esi
call fcn.1005a8c0
cmp byte [esi + 0x31], 0
jne 0x10044a97
push 0
push dword [ebp - 0x2bd8]
lea ecx, [esi + 0xc]
push 0x40b
call fcn.10010360
mov byte [0x1014b4ee], 1
test edi, edi
je 0x10044d87
xor eax, eax
cmp byte [0x1014b4f3], al
push 0
push 0x1003d7a0
push dword [sym.ExplorerShellDLL32.dll_struct_HWND____g_OwnerWindow]
setne al
add eax, 0x66
push eax
push dword [0x1014be3c]
call dword [sym.imp.USER32.dll_DialogBoxParamW]
test eax, eax
je 0x10044ca7
lea ecx, [ebp - 0x2bb4]
mov dword [ebp - 0x2bf8], 0
call fcn.10010330
mov edi, eax
mov ecx, dword [edi]
mov esi, dword [ecx + 0x30]
mov ecx, 0x1014c060
call fcn.10010330
lea ecx, [ebp - 0x2bf8]
push ecx
push 1
push eax
push dword [ebp - 0x2ba8]
push dword [sym.ExplorerShellDLL32.dll_struct_HWND____g_OwnerWindow]
push edi
call esi
test eax, eax
js 0x10044ca1
push dword [ebp - 0x2ba8]
call dword [sym.imp.SHELL32.dll_ILFree]
mov eax, dword [ebp - 0x2bc4]
mov edi, dword [ebp - 0x2bf8]
mov dword [ebp - 0x2ba8], edi
test eax, eax
je 0x10044b49
cmp byte [eax + 1], 0
jne 0x10044cad
mov esi, dword [ebp - 0x2bc0]
mov ecx, esi
call fcn.1005a8c0
mov ecx, 0x1014c060
call fcn.100b0e50
cmp byte [ebp - 0x2b6e], 2
jne 0x10044c73
mov edx, 0x811c9dc5
mov ecx, 0x1010fc7c
call fcn.100b3790
mov edi, eax
jmp 0x10044c78
lea ecx, [ebp - 0x2bb4]
call fcn.10010330
lea edx, [ebp - 0x3080]
push edx
push 0x1001
push dword [ebp - 0x2c48]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2c]
test eax, eax
js 0x10044bfb
lea ecx, [ebp - 0x2c80]
call fcn.10013a30
lea ecx, [ebp - 0x2c80]
mov byte [ebp - 4], 0x25
call fcn.10013a60
push eax
push dword [ebp - 0x2c48]
lea eax, [ebp - 0x3080]
push eax
call edi
lea ecx, [ebp - 0x2c80]
call fcn.10010330
push eax
mov ecx, 0x1014c060
call fcn.10021c50
lea ecx, [ebp - 0x2c80]
mov byte [ebp - 4], 0x24
call fcn.10013a40
jmp 0x10044c11
lea ecx, [ebp - 0x2be0]
call fcn.10010330
push eax
mov ecx, 0x1014c060
call fcn.10021c50
lea ecx, [ebp - 0x2be0]
call fcn.10021740
cmp byte [ebp - 0x2b6e], 2
jne 0x10044c38
mov edx, 0x811c9dc5
mov ecx, 0x1010fc7c
call fcn.100b3790
mov esi, eax
jmp 0x10044c3d
mov esi, 0x811c9dc5
lea ecx, [ebp - 0x2be0]
call fcn.10010330
mov edx, esi
mov ecx, eax
call fcn.100b3790
mov edi, dword [ebp - 0x2c48]
lea ecx, [ebp - 0x2be0]
mov dword [ebp - 0x2bd8], eax
mov dword [ebp - 0x2ba8], edi
call fcn.10013a40
jmp 0x10044a50
mov edi, 0x811c9dc5
mov ecx, 0x1014c060
call fcn.10010330
mov edx, edi
mov ecx, eax
call fcn.100b3790
cmp byte [esi + 0x31], 0
jne 0x10044ca1
push 0
push eax
lea ecx, [esi + 0xc]
push 0x40b
call fcn.10010360
mov edi, dword [ebp - 0x2ba8]
mov eax, dword [ebp - 0x2bc4]
test edi, edi
je 0x10044d87
test eax, eax
je 0x10044d80
cmp byte [eax + 1], 0
je 0x10044d80
lea ecx, [ebp - 0x2c68]
call fcn.10013a30
lea ecx, [ebp - 0x2c68]
mov byte [ebp - 4], 0x26
call fcn.10013a60
lea ecx, [ebp - 0x2bb4]
mov esi, eax
call fcn.10010330
push esi
push 0x10103e10
push edi
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateItemWithParent]
test eax, eax
js 0x10044d71
lea ecx, [ebp - 0x2c84]
call fcn.10013a30
lea ecx, [ebp - 0x2c84]
mov byte [ebp - 4], 0x27
call fcn.10013a60
lea ecx, [ebp - 0x2c68]
mov esi, eax
call fcn.10010330
push esi
push eax
call dword [sym.imp.SHELL32.dll_SHGetIDListFromObject]
test eax, eax
js 0x10044d66
lea ecx, [ebp - 0x2c84]
call fcn.10010330
lea ecx, [ebp - 0x2c68]
mov esi, eax
call fcn.10010330
push 0
push 0
push esi
push eax
mov ecx, 0x1014be70
call fcn.1002ac30
mov ecx, dword [ebp - 0x2bc4]
mov dword [ecx + 0x14], eax
lea ecx, [ebp - 0x2c84]
call fcn.10021720
lea ecx, [ebp - 0x2c68]
mov byte [ebp - 4], 0x20
call fcn.1000f810
push edi
call dword [sym.imp.SHELL32.dll_ILFree]
lea eax, [ebp - 0x2c1c]
mov ecx, 0x1014c064
push eax
call fcn.1001fa60
lea eax, [ebp - 0x2cb4]
mov ecx, 0x1014c064
push eax
call fcn.10010340
push eax
lea ecx, [ebp - 0x2c1c]
call fcn.1001fa20
test al, al
je 0x10044e16
nop dword [eax]
lea ecx, [ebp - 0x2c1c]
call fcn.10010330
mov eax, dword [eax]
cmp byte [eax + 0x31], 0
jne 0x10044dea
lea ecx, [ebp - 0x2c1c]
call fcn.10010330
push 1
mov ecx, dword [eax]
add ecx, 0xc
call fcn.10027e40
lea ecx, [ebp - 0x2c1c]
call fcn.100266b0
lea eax, [ebp - 0x2cb4]
mov ecx, 0x1014c064
push eax
call fcn.10010340
push eax
lea ecx, [ebp - 0x2c1c]
call fcn.1001fa20
test al, al
jne 0x10044dc0
cmp byte [ebp - 0x2bb5], 0
je 0x10044e2d
push 1
push dword [0x1014b4b0]
call dword [sym.imp.USER32.dll_EnableWindow]
mov edi, dword [ebp - 0x2bc0]
cmp byte [edi + 0x31], 0
jne 0x10044e8d
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, edi
call fcn.1005a870
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x10044e64
cmp byte [eax + 1], 0
je 0x10044e64
mov ecx, dword [edi + 0x1b8]
add ecx, 8
jmp 0x10044e67
lea ecx, [edi + 0xc]
call fcn.10027e30
push 1
lea ecx, [edi + 0xc]
call fcn.10049230
cmp dword [edi + 0x54], 0
jge 0x10044e8d
push 0
push 0
push dword [ebp - 0x2bcc]
mov ecx, edi
call fcn.10059a50
lea ecx, [ebp - 0x2cd4]
mov byte [0x1014b4ee], 0
call fcn.10010820
lea ecx, [ebp - 0x2c6c]
mov byte [ebp - 4], 0x1c
call fcn.1000f810
jmp 0x10044eb6
mov edi, dword [ebp - 0x2bc0]
push 0xffffffffffffffff
mov ecx, edi
call fcn.10059d70
xor esi, esi
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x2bb4]
mov dword [ebp - 0x2ba8], esi
call fcn.1000f810
jmp 0x1004542b
cmp esi, 6
jne 0x100451a6
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x10044f00
cmp byte [eax + 1], 0
je 0x10044f00
lea ecx, [ebp - 0xaec]
push ecx
lea ecx, [eax + 0xc]
jmp 0x10044f0a
lea eax, [ebp - 0xaec]
push eax
lea ecx, [edi + 0x68]
call fcn.10010330
push eax
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
lea ecx, [ebp - 0xaec]
call fcn.10027e60
lea eax, [eax*2 + 2]
cmp eax, 0x20a
jae 0x100466ec
mov esi, dword [sym.imp.SHELL32.dll_PathMakeUniqueName]
xor ecx, ecx
mov word [ebp + eax - 0xaec], cx
lea eax, [ebp - 0xaec]
push eax
push str.New_Shortcut.lnk
push str.scut.lnk
push 0x104
lea eax, [ebp - 0xdf8]
push eax
call esi
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileW]
lea eax, [ebp - 0xdf8]
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push eax
call edi
cmp eax, 0xffffffff
je 0x100450a0
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
call esi
lea eax, [ebp - 0xdf8]
push eax
push str.rundll32.exe_appwiz.cpl_NewLinkHere__s
lea eax, [ebp - 0x2b18]
push 0x400
push eax
call fcn.100a4830
push 0x40
lea eax, [ebp - 0x2f74]
mov dword [ebp - 0x2f78], 0x44
push 0
push eax
call fcn.100d6eb0
mov eax, dword [0x10110250]
xorps xmm0, xmm0
movups xmmword [ebp - 0x2da4], xmm0
mov dword [ebp - 0x7a8], eax
movups xmm0, xmmword [str._windir__system32_rundll32.exe]
mov ax, word [0x10110254]
push 0x1ca
movups xmmword [ebp - 0x7e0], xmm0
mov word [ebp - 0x7a4], ax
lea eax, [ebp - 0x7a2]
movups xmm0, xmmword [0x10110228]
push 0
push eax
movups xmmword [ebp - 0x7d0], xmm0
movups xmm0, xmmword [0x10110238]
movups xmmword [ebp - 0x7c0], xmm0
movq xmm0, qword [0x10110248]
movq qword [ebp - 0x7b0], xmm0
call fcn.100d6eb0
add esp, 0x28
lea eax, [ebp - 0x7e0]
push 0x104
push eax
call dword [sym.imp.SHELL32.dll_DoEnvironmentSubstW]
lea eax, [ebp - 0x2da4]
push eax
lea eax, [ebp - 0x2f78]
push eax
lea eax, [ebp - 0xaec]
push eax
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x2b18]
push eax
lea eax, [ebp - 0x7e0]
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x1004541d
push dword [ebp - 0x2da0]
call esi
push dword [ebp - 0x2da4]
call esi
jmp 0x1004541d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x1004541d
lea eax, [ebp - 0x1100]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0x1011132c
mov edx, 0x104
lea ecx, [ebp - 0x1100]
call fcn.100a47f0
add esp, 4
lea eax, [ebp - 0x1100]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [ebp - 0x1100]
push eax
push str.New_Shortcut.lnk
push str.scut.lnk
push 0x104
lea eax, [ebp - 0xdf8]
push eax
call esi
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
lea eax, [ebp - 0xdf8]
push eax
call edi
cmp eax, 0xffffffff
je 0x1004541d
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x61c
call fcn.100d4e1d
add esp, 4
mov dword [ebp - 0x2cd8], eax
mov ecx, eax
mov byte [ebp - 4], 0x28
call fcn.1003e0f0
mov byte [ebp - 4], 0x14
lea esi, [ebp - 0xaec]
mov edi, eax
mov ecx, 0x82
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x82
push 0
push 0
movsw word es:[edi], word [esi]
lea edi, [eax + 0x20a]
lea esi, [ebp - 0x1100]
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x412]
mov ecx, 0x82
lea esi, [ebp - 0xdf8]
rep movsd dword es:[edi], dword [esi]
push eax
push 0x1003e110
push 0
push 0
movsw word es:[edi], word [esi]
call dword [sym.imp.KERNEL32.dll_CreateThread]
jmp 0x1004541d
cmp esi, 7
jne 0x100452bc
cmp dword [ebp - 0x2ba0], 4
jne 0x10045425
mov eax, dword [0x1014b50c]
test eax, eax
je 0x100465c7
cmp eax, 1
jne 0x1004528a
lea ecx, [ebp - 0x2c88]
call fcn.10013a30
mov byte [ebp - 4], 0x29
cmp byte [ebp - 0x2c00], 0
je 0x10045225
lea ecx, [ebp - 0x2be4]
call fcn.10010330
mov ecx, eax
call fcn.1005f650
lea ecx, [ebp - 0x2c88]
mov byte [ebp - 4], 0x14
call fcn.10013a40
mov edi, dword [ebp - 0x2bc0]
mov ecx, edi
call fcn.1005a8c0
xor esi, esi
mov dword [ebp - 0x2ba8], esi
jmp 0x1004542b
lea ecx, [ebp - 0x2bfc]
call fcn.10010330
mov edi, eax
mov ecx, dword [edi]
mov esi, dword [ecx + 0x14]
lea ecx, [ebp - 0x2c88]
call fcn.10013a60
push eax
push 0x80028000
push edi
call esi
test eax, eax
js 0x10045261
lea ecx, [ebp - 0x2c88]
call fcn.10010330
mov ecx, eax
call fcn.1005f6a0
lea ecx, [ebp - 0x2c88]
mov byte [ebp - 4], 0x14
call fcn.10013a40
mov edi, dword [ebp - 0x2bc0]
mov ecx, edi
call fcn.1005a8c0
xor esi, esi
mov dword [ebp - 0x2ba8], esi
jmp 0x1004542b
cmp eax, 2
jne 0x100452a2
push dword [ebp - 0x2c00]
mov ecx, edi
push dword [ebp - 0x2b60]
call fcn.1005f960
mov edi, dword [ebp - 0x2bc0]
mov ecx, edi
call fcn.1005a8c0
xor esi, esi
mov dword [ebp - 0x2ba8], esi
jmp 0x1004542b
cmp esi, 8
jne 0x100452ee
cmp dword [ebp - 0x2ba0], 4
jne 0x10045425
cmp dword [0x1014b50c], 1
jne 0x100465c7
xor ecx, ecx
call fcn.1005f6a0
mov ecx, edi
call fcn.1005a8c0
jmp 0x1004541d
cmp esi, 9
jne 0x100453ef
cmp dword [ebp - 0x2ba0], 0x30
jne 0x100453d5
lea eax, [ebp - 0x2d48]
mov ecx, 0x1014c0ac
push eax
call fcn.10047770
mov ecx, 0x1014c0ac
mov eax, dword [eax]
mov dword [ebp - 0x2ba8], eax
lea eax, [ebp - 0x2cb0]
push eax
call fcn.10026750
push eax
lea ecx, [ebp - 0x2ba8]
call fcn.1001fa20
test al, al
je 0x1004541d
lea ecx, [ebp - 0x2ba8]
call fcn.10047760
mov ecx, dword [ebp - 0x2b58]
cmp ecx, dword [eax + 4]
je 0x10045389
lea ecx, [ebp - 0x2ba8]
call fcn.10047750
lea eax, [ebp - 0x2cb0]
mov ecx, 0x1014c0ac
push eax
call fcn.10026750
push eax
lea ecx, [ebp - 0x2ba8]
call fcn.1001fa20
test al, al
jne 0x10045342
jmp 0x1004541d
push dword [ebp - 0x2bcc]
mov ecx, edi
call fcn.10046f00
mov ecx, 2
call fcn.1005ea20
lea ecx, [ebp - 0x2ba8]
call fcn.10047760
lea ecx, [ebp - 0x2ba8]
mov esi, dword [eax + 4]
call fcn.10047760
mov ecx, eax
call fcn.10010330
lea ecx, [ebp - 0x2bdc]
push ecx
push esi
push eax
mov ecx, 0x1014e940
call fcn.100816a0
jmp 0x1004541d
push 0
push 0
push 0
lea ecx, [ebp - 0x2bbc]
call fcn.10010330
push eax
call dword [sym.imp.SHELL32.dll_SHOpenFolderAndSelectItems]
jmp 0x1004541d
cmp esi, 0x10
jne 0x10045425
lea ecx, [ebp - 0x2be4]
call fcn.10010330
lea ecx, [ebp - 0x2b98]
mov esi, eax
call fcn.10010330
mov ecx, dword [sym.ExplorerShellDLL32.dll_struct_HWND____g_OwnerWindow]
mov edx, eax
push esi
call fcn.100733e0
add esp, 4
xor esi, esi
mov dword [ebp - 0x2ba8], esi
mov edi, dword [ebp - 0x2bc0]
cmp dword [ebp - 0x2ba0], 0x30
jne 0x1004545c
cmp esi, 0xc
jne 0x1004545c
mov eax, dword [ebp - 0x2b58]
xor ecx, ecx
cmp dword [edi + 0x1b4], eax
cmove eax, ecx
mov dword [edi + 0x1b4], eax
call fcn.1005a3b0
xor esi, esi
jmp 0x100465c7
cmp esi, 0x11
jl 0x100465c7
lea ecx, [ebp - 0x2be8]
call fcn.10010330
push 0x100
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
lea ecx, [ebp - 0x310]
push ecx
push 0
push 0
lea ecx, [esi - 0x11]
push ecx
push eax
call edx
movzx ecx, byte [ebp - 0x310]
xor edx, edx
test eax, eax
lea eax, [ebp - 0x310]
push str.rename
cmovs ecx, edx
push eax
mov byte [ebp - 0x310], cl
call fcn.100def63
add esp, 8
test eax, eax
jne 0x10045cc3
lea ecx, [ebp - 0x2bd4]
call fcn.10013a30
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x2bd4]
mov byte [0x1014b4ee], 1
call fcn.10013a60
lea ecx, [ebp - 0x2bbc]
mov esi, eax
call fcn.10010330
lea ecx, [ebp - 0x2c4c]
push ecx
push esi
push 0x10103af0
push eax
call dword [sym.imp.SHELL32.dll_SHBindToParent]
test eax, eax
js 0x1004557e
lea ecx, [ebp - 0x2bd4]
call fcn.10010330
lea edx, [ebp - 0x3290]
push edx
push 0x1000
push dword [ebp - 0x2c4c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2c]
test eax, eax
js 0x1004557e
lea ecx, [ebp - 0x2c8c]
call fcn.10013a30
lea ecx, [ebp - 0x2c8c]
mov byte [ebp - 4], 0x2b
call fcn.10013a60
push eax
push dword [ebp - 0x2c4c]
lea eax, [ebp - 0x3290]
push eax
call dword [sym.imp.SHLWAPI.dll_StrRetToStrW]
lea ecx, [ebp - 0x2c8c]
call fcn.10010330
push eax
mov ecx, 0x1014c060
call fcn.10021c50
lea ecx, [ebp - 0x2c8c]
mov byte [ebp - 4], 0x2a
call fcn.10013a40
jmp 0x1004558f
lea eax, [ebp - 0x2b98]
mov ecx, 0x1014c060
push eax
call fcn.10021ca0
mov ecx, dword [ebp - 0x2c24]
test ecx, ecx
je 0x100455aa
mov eax, dword [ecx]
mov dword [0x10158cec], eax
mov eax, dword [ecx + 4]
mov dword [0x10158cf0], eax
jmp 0x100455cd
mov eax, dword [ebp - 0x2b80]
lea ecx, [edi + 0xc]
mov dword [0x10158cec], eax
mov eax, dword [ebp - 0x2b7c]
push 0x10158cec
mov dword [0x10158cf0], eax
call fcn.10049180
lea eax, [ebp - 0x2c70]
mov ecx, 0x1014c064
push eax
call fcn.1001fa60
lea eax, [ebp - 0x2cc4]
mov ecx, 0x1014c064
push eax
call fcn.10010340
push eax
lea ecx, [ebp - 0x2c70]
call fcn.1001fa20
test al, al
je 0x10045643
nop
lea ecx, [ebp - 0x2c70]
call fcn.10010330
push 0
mov ecx, dword [eax]
add ecx, 0xc
call fcn.10027e40
lea ecx, [ebp - 0x2c70]
call fcn.100266b0
lea eax, [ebp - 0x2cc4]
mov ecx, 0x1014c064
push eax
call fcn.10010340
push eax
lea ecx, [ebp - 0x2c70]
call fcn.1001fa20
test al, al
jne 0x10045600
mov al, byte [0x1014b4d0]
mov byte [ebp - 0x2bc6], al
test al, al
je 0x10045660
push 0
push dword [0x1014b4b0]
call dword [sym.imp.USER32.dll_EnableWindow]
mov esi, dword [ebp - 0x2bcc]
mov ecx, edi
push esi
call fcn.10059d70
push esi
mov ecx, edi
call fcn.10059a00
xor eax, eax
cmp byte [0x1014b4f3], al
push 0
push 0x1003d7a0
push dword [sym.ExplorerShellDLL32.dll_struct_HWND____g_OwnerWindow]
setne al
add eax, 0x66
push eax
push dword [0x1014be3c]
call dword [sym.imp.USER32.dll_DialogBoxParamW]
test eax, eax
mov ecx, edi
push 0xffffffffffffffff
setne byte [ebp - 0x2bb5]
call fcn.10059d70
cmp dword [edi + 0x54], 0
jge 0x100456c2
push 0
push 0
push esi
mov ecx, edi
call fcn.10059a50
cmp byte [ebp - 0x2bb5], 0
je 0x10045bb8
call fcn.100b0560
mov ecx, 0x602
cmp ax, cx
jb 0x10045711
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, edi
call fcn.1005a870
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x10045709
cmp byte [eax + 1], 0
je 0x10045709
mov ecx, dword [edi + 0x1b8]
add ecx, 8
jmp 0x1004570c
lea ecx, [edi + 0xc]
call fcn.10027e30
lea ecx, [ebp - 0x2bd4]
call fcn.10010330
mov edi, eax
mov ecx, 0x1014c060
mov edx, dword [edi]
mov esi, dword [edx + 0x30]
call fcn.10010330
lea ecx, [ebp - 0x2c00]
push ecx
push 1
push eax
push dword [ebp - 0x2c4c]
push dword [sym.ExplorerShellDLL32.dll_struct_HWND____g_OwnerWindow]
push edi
call esi
test eax, eax
js 0x10045b93
lea ecx, [ebp - 0x2bd4]
call fcn.10010330
lea edx, [ebp - 0x3188]
push edx
push 0x8001
push dword [ebp - 0x2c00]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2c]
test eax, eax
js 0x10045b87
lea ecx, [ebp - 0x2c20]
call fcn.10013a30
lea ecx, [ebp - 0x2c20]
mov byte [ebp - 4], 0x2c
call fcn.10013a60
mov edi, dword [sym.imp.SHLWAPI.dll_StrRetToStrW]
push eax
push dword [ebp - 0x2c00]
lea eax, [ebp - 0x3188]
push eax
call edi
lea ecx, [ebp - 0x2c20]
call fcn.10021740
mov ecx, dword [ebp - 0x2c40]
push 0x1014c060
push dword [ebp - 0x2bcc]
call fcn.10010300
lea ecx, [eax + 8]
call fcn.10021ca0
lea ecx, [ebp - 0x2c20]
call fcn.10010330
mov edx, 0x811c9dc5
mov ecx, eax
call fcn.100b3790
push dword [ebp - 0x2bcc]
mov ecx, dword [ebp - 0x2c40]
mov esi, eax
call fcn.10010300
mov dword [eax + 0xc], esi
mov esi, dword [ebp - 0x2bc0]
test dword [esi + 0x3c], 0x2000
jne 0x100458ba
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x10045826
cmp byte [eax + 1], 0
jne 0x100458ba
lea ecx, [ebp - 0x2ce4]
call fcn.10010800
xor edi, edi
mov byte [ebp - 4], 0x2d
cmp dword [esi + 0x1c8], edi
jle 0x10045897
nop
push edi
lea ecx, [esi + 0xa0]
call fcn.10010300
cmp dword [eax], 0
jne 0x1004588e
push edi
lea ecx, [esi + 0xa0]
call fcn.10010300
push eax
lea ecx, [ebp - 0x2d3c]
call fcn.10023410
lea eax, [ebp - 0x2d3c]
mov byte [ebp - 4], 0x2e
push eax
lea ecx, [ebp - 0x2ce4]
call fcn.100268c0
lea ecx, [ebp - 0x2d3c]
mov byte [ebp - 4], 0x2d
call fcn.10012170
inc edi
cmp edi, dword [esi + 0x1c8]
jl 0x10045840
lea eax, [ebp - 0x2ce4]
mov ecx, esi
push eax
call fcn.1005ebb0
lea ecx, [ebp - 0x2ce4]
mov byte [ebp - 4], 0x2c
call fcn.10026970
mov edi, dword [sym.imp.SHLWAPI.dll_StrRetToStrW]
cmp byte [esi + 0x30], 0
jne 0x10045ab0
cmp dword [ebp - 0x2ba0], 0
jne 0x10045ab0
call fcn.100b0560
mov ecx, 0x601
cmp ax, cx
ja 0x10045ab0
lea ecx, [ebp - 0x2be4]
call fcn.1001fb70
test al, al
jne 0x10045ab0
cmp byte [ebp - 0x2be9], al
je 0x10045ab0
cmp byte [ebp - 0x2bc5], al
jne 0x10045ab0
lea ecx, [ebp - 0x2bd4]
call fcn.10010330
lea edx, [ebp - 0x3188]
push edx
push 0x8000
push dword [ebp - 0x2c00]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2c]
test eax, eax
js 0x10045ab0
lea ecx, [ebp - 0x2c34]
call fcn.10013a30
lea ecx, [ebp - 0x2c34]
mov byte [ebp - 4], 0x2f
call fcn.10013a60
push eax
push dword [ebp - 0x2c00]
lea eax, [ebp - 0x3188]
push eax
call edi
lea ecx, [ebp - 0x2c30]
call fcn.10013a30
push 0x17
push 0
push 0x10103e70
lea ecx, [ebp - 0x2c30]
call fcn.100475d0
lea ecx, [ebp - 0x2c30]
call fcn.10010330
push eax
lea ecx, [ebp - 0x2c38]
call fcn.10047560
lea ecx, [ebp - 0x2c38]
mov byte [ebp - 4], 0x31
call fcn.10010330
test eax, eax
je 0x10045a8f
lea ecx, [ebp - 0x2c38]
call fcn.10010330
mov edi, eax
mov ecx, dword [edi]
mov esi, dword [ecx + 0x14]
lea ecx, [ebp - 0x2c34]
call fcn.10010330
push 2
push eax
push edi
call esi
test eax, eax
js 0x10045a8f
lea ecx, [ebp - 0x2c30]
call fcn.10010330
push eax
lea ecx, [ebp - 0x2c3c]
call fcn.10035030
lea ecx, [ebp - 0x2c3c]
mov byte [ebp - 4], 0x32
call fcn.10010330
test eax, eax
je 0x10045a84
lea ecx, [ebp - 0x2be4]
call fcn.10010330
lea edx, [ebp - 0x2db4]
mov ecx, eax
call fcn.1003d720
lea ecx, [ebp - 0x2c3c]
call fcn.10010330
lea edx, [ebp - 0x2db4]
push edx
push 0x10103ee0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
test eax, eax
js 0x10045a77
lea ecx, [ebp - 0x2c3c]
call fcn.10010330
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
test eax, eax
js 0x10045a77
lea ecx, [ebp - 0x2c38]
call fcn.10010330
mov edi, eax
mov ecx, dword [edi]
mov esi, dword [ecx + 0x18]
lea ecx, [ebp - 0x2c34]
call fcn.10010330
push 1
push eax
push edi
call esi
lea eax, [ebp - 0x2db4]
push eax
call dword [sym.imp.ole32.dll_PropVariantClear]
lea ecx, [ebp - 0x2c3c]
call fcn.1000f810
lea ecx, [ebp - 0x2c38]
call fcn.1000f810
lea ecx, [ebp - 0x2c30]
call fcn.1000f810
lea ecx, [ebp - 0x2c34]
call fcn.10013a40
cmp dword [ebp - 0x2bc4], 0
je 0x10045b78
lea ecx, [ebp - 0x2c24]
call fcn.10013a30
lea ecx, [ebp - 0x2c24]
mov byte [ebp - 4], 0x33
call fcn.10013a60
mov edi, dword [ebp - 0x2c00]
lea ecx, [ebp - 0x2bd4]
mov esi, eax
call fcn.10010330
push esi
push 0x10103e10
push edi
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateItemWithParent]
test eax, eax
js 0x10045b6d
lea ecx, [ebp - 0x2c40]
call fcn.10013a30
lea ecx, [ebp - 0x2c40]
mov byte [ebp - 4], 0x34
call fcn.10013a60
lea ecx, [ebp - 0x2c24]
mov esi, eax
call fcn.10010330
push esi
push eax
call dword [sym.imp.SHELL32.dll_SHGetIDListFromObject]
test eax, eax
js 0x10045b62
lea ecx, [ebp - 0x2c40]
call fcn.10010330
lea ecx, [ebp - 0x2c24]
mov esi, eax
call fcn.10010330
push 0
push 0
push esi
push eax
mov ecx, 0x1014be70
call fcn.1002ac30
mov ecx, dword [ebp - 0x2bc4]
mov dword [ecx + 0x14], eax
lea ecx, [ebp - 0x2c40]
call fcn.10021720
lea ecx, [ebp - 0x2c24]
call fcn.1000f810
lea ecx, [ebp - 0x2c20]
mov byte [ebp - 4], 0x2a
call fcn.10013a40
push dword [ebp - 0x2c00]
call dword [sym.imp.SHELL32.dll_ILFree]
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x10045ba3
cmp byte [eax + 1], 0
jne 0x10045bb2
mov edi, dword [ebp - 0x2bc0]
mov ecx, edi
call fcn.1005a8c0
jmp 0x10045bb8
mov edi, dword [ebp - 0x2bc0]
lea eax, [ebp - 0x2bcc]
mov ecx, 0x1014c064
push eax
call fcn.1001fa60
lea eax, [ebp - 0x2c54]
mov ecx, 0x1014c064
push eax
call fcn.10010340
push eax
lea ecx, [ebp - 0x2bcc]
call fcn.1001fa20
test al, al
je 0x10045c46
nop word [eax + eax]
lea ecx, [ebp - 0x2bcc]
call fcn.10010330
mov eax, dword [eax]
cmp byte [eax + 0x31], 0
jne 0x10045c1a
lea ecx, [ebp - 0x2bcc]
call fcn.10010330
push 1
mov ecx, dword [eax]
add ecx, 0xc
call fcn.10027e40
lea ecx, [ebp - 0x2bcc]
call fcn.100266b0
lea eax, [ebp - 0x2c54]
mov ecx, 0x1014c064
push eax
call fcn.10010340
push eax
lea ecx, [ebp - 0x2bcc]
call fcn.1001fa20
test al, al
jne 0x10045bf0
cmp byte [ebp - 0x2bc6], 0
je 0x10045c5d
push 1
push dword [0x1014b4b0]
call dword [sym.imp.USER32.dll_EnableWindow]
cmp byte [edi + 0x31], 0
jne 0x10045c96
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, edi
call fcn.1005a870
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x10045c8e
cmp byte [eax + 1], 0
je 0x10045c8e
mov ecx, dword [edi + 0x1b8]
add ecx, 8
jmp 0x10045c91
lea ecx, [edi + 0xc]
call fcn.10027e30
mov edi, dword [sym.imp.USER32.dll_GetMessagePos]
mov byte [0x1014b4ee], 0
call edi
lea ecx, [ebp - 0x2bd4]
mov dword [0x1014b510], eax
mov esi, 0xe
mov byte [ebp - 4], 0x14
call fcn.1000f810
jmp 0x100465cd
lea eax, [ebp - 0x310]
push str.uninstall
push eax
call fcn.100def63
add esp, 8
test eax, eax
jne 0x10045d26
cmp byte [ebp - 0x2c00], al
je 0x10045d26
lea ecx, [ebp - 0x2be4]
call fcn.1001fb70
test al, al
jne 0x10045d26
lea ecx, [ebp - 0x2be4]
call fcn.10010330
lea ecx, [ebp - 0x2b98]
mov esi, eax
call fcn.10010330
mov ecx, dword [sym.ExplorerShellDLL32.dll_struct_HWND____g_OwnerWindow]
mov edx, eax
push esi
call fcn.100733e0
mov esi, dword [ebp - 0x2ba8]
add esp, 4
jmp 0x100465c7
lea eax, [ebp - 0x310]
push str.pin_classic
push eax
call fcn.100def63
test eax, eax
lea eax, [ebp - 0x310]
push str.delete
push eax
sete byte [ebp - 0x2bad]
call fcn.100def63
add esp, 0x10
test eax, eax
je 0x10045d77
lea eax, [ebp - 0x310]
push str.link
push eax
call fcn.100def63
add esp, 8
mov byte [ebp - 0x2ba1], 0
test eax, eax
jne 0x10045d7e
mov byte [ebp - 0x2ba1], 1
test byte [ebp - 0x2b6f], 0x40
je 0x10045e1b
lea eax, [ebp - 0x310]
push str.pin_classic
push eax
call fcn.100def63
add esp, 8
test eax, eax
jne 0x10045e1b
lea ecx, [ebp - 0x2bc5]
call fcn.100a4fd0
mov ecx, str.StartScreenShortcut
mov byte [ebp - 4], 0x35
call fcn.100aa9b0
mov ecx, eax
mov dword [ebp - 0x2bf8], eax
call fcn.1003d700
test al, al
jne 0x10045e07
push 3
push 0
lea ecx, [ebp - 0x2e68]
call fcn.10049120
mov byte [ebp - 4], 0x36
mov ecx, dword [ebp - 0x2bf8]
push eax
add ecx, 0x38
call fcn.10049140
lea ecx, [ebp - 0x2e68]
call fcn.10049110
mov eax, dword [ebp - 0x2bf8]
and dword [eax + 0x20], 0xffffefff
lea ecx, [ebp - 0x2bc5]
mov byte [ebp - 4], 0x14
call fcn.100a4ff0
call fcn.100aa7c0
lea ecx, [ebp - 0x2be8]
call fcn.10010330
lea ecx, [ebp - 0x2c18]
mov dword [ebp - 0x2bd8], eax
mov dword [ebp - 0x2bf8], 0x11
call fcn.10010330
test eax, eax
je 0x10045e6a
cmp esi, dword [ebp - 0x2c20]
jl 0x10045e6a
lea ecx, [ebp - 0x2c18]
call fcn.10010330
mov dword [ebp - 0x2bd8], eax
mov eax, dword [ebp - 0x2c20]
mov dword [ebp - 0x2bf8], eax
push 0x38
lea eax, [ebp - 0x2d1c]
mov dword [ebp - 0x2d24], 0x40
push 0
push eax
mov dword [ebp - 0x2d20], 0x4004000
call fcn.100d6eb0
mov eax, esi
mov dword [ebp - 0x2d0c], 1
sub eax, dword [ebp - 0x2bf8]
lea ecx, [ebp - 0x2bbc]
movzx eax, ax
add esp, 0xc
mov dword [ebp - 0x2d18], eax
mov dword [ebp - 0x2cfc], eax
lea eax, [ebp - 0x1308]
mov byte [ebp - 0x2bc5], 0
push eax
call fcn.10010330
push eax
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
test eax, eax
je 0x10045f53
lea eax, [ebp - 0x310]
push str.open
push eax
call fcn.100def63
add esp, 8
test eax, eax
jne 0x10045f23
mov ecx, str.OpenTruePath
call fcn.100aa7f0
test al, al
je 0x10045f23
lea eax, [ebp - 0x1308]
mov edx, 0x104
push eax
lea ecx, [ebp - 0x1910]
call fcn.100b39c0
add esp, 4
test al, al
je 0x10045f23
mov byte [ebp - 0x2bc5], 1
jmp 0x10045f53
lea eax, [ebp - 0x1308]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x1308]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
lea ecx, [ebp - 0x1308]
cmove ecx, dword [ebp - 0x2cf4]
mov dword [ebp - 0x2cf4], ecx
mov edx, dword [ebp - 0x2c24]
mov ecx, dword [ebp - 0x2d20]
test edx, edx
je 0x10045f80
mov eax, dword [edx]
or ecx, 0x20000000
mov dword [ebp - 0x2cec], eax
mov eax, dword [edx + 4]
mov dword [ebp - 0x2d20], ecx
mov dword [ebp - 0x2ce8], eax
cmp dword [ebp + 0xc], 5
jne 0x10045fb0
cmp byte [ebp - 0x2bc8], 0
je 0x10045f9b
or ecx, 0x40000000
mov dword [ebp - 0x2d20], ecx
cmp byte [ebp - 0x2bd4], 0
je 0x10045fb0
or ecx, 0x10000000
mov dword [ebp - 0x2d20], ecx
cmp byte [ebp - 0x2ba1], 0
jne 0x10045fc2
cmp byte [ebp - 0x2bad], 0
je 0x10045fce
or ecx, 0x100
mov dword [ebp - 0x2d20], ecx
mov ecx, dword [ebp - 0x2b90]
test ecx, ecx
je 0x10045ffb
push 0x28
push str.::82E749ED_B971_4550_BAF7_06AA2BF7E836
call fcn.10010330
push eax
call fcn.100de413
add esp, 0xc
test eax, eax
jne 0x10045ffb
and dword [ebp - 0x2d20], 0xfbffffff
mov ecx, 0x1014c064
mov byte [0x1014b4ee], 1
call fcn.10026740
mov ecx, 0x1014c064
mov esi, eax
call fcn.10026730
mov ecx, eax
mov dword [ebp - 0x2bf8], 0
sub ecx, esi
xor edx, edx
add ecx, 3
shr ecx, 2
cmp esi, eax
cmova ecx, edx
mov dword [ebp - 0x2c54], ecx
test ecx, ecx
je 0x1004607c
mov edi, ecx
nop
mov ecx, dword [esi]
add ecx, 0xc
push 0
call fcn.10027e40
mov ecx, dword [esi]
push 0x13
push 0
push 0
push 0
push 0
add ecx, 0xc
push 0xfffffffffffffffe
call fcn.10013380
mov eax, dword [ebp - 0x2bf8]
lea esi, [esi + 4]
inc eax
mov dword [ebp - 0x2bf8], eax
cmp eax, edi
jne 0x10046040
mov edi, dword [ebp - 0x2bc0]
mov al, byte [0x1014b4d0]
mov byte [ebp - 0x2be9], al
test al, al
je 0x10046099
push 0
push dword [0x1014b4b0]
call dword [sym.imp.USER32.dll_EnableWindow]
mov eax, dword [sym.ExplorerShellDLL32.dll_struct_HWND____g_OwnerWindow]
lea ecx, [edi + 0xc]
mov dword [ebp - 0x2d1c], eax
lea eax, [ebp - 0x2b3c]
push eax
call fcn.100103a0
push dword [sym.ExplorerShellDLL32.dll_struct_HWND____g_OwnerWindow]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov eax, dword [ebp - 0x2b30]
mov edx, dword [ebp - 0x2b38]
sub eax, edx
mov ecx, dword [ebp - 0x2b3c]
push 0
push eax
mov eax, dword [ebp - 0x2b34]
sub eax, ecx
push eax
push edx
push ecx
push 0xffffffffffffffff
push dword [sym.ExplorerShellDLL32.dll_struct_HWND____g_OwnerWindow]
call dword [sym.imp.USER32.dll_SetWindowPos]
test byte [0x1014b4cc], 4
je 0x1004610d
lea eax, [ebp - 0x310]
push eax
push edi
push str.Invoke_command__ptr_p__command_S
call fcn.1003bea0
add esp, 0xc
cmp byte [ebp - 0x2bc5], 0
je 0x1004614f
push 1
push 0
push 0
lea eax, [ebp - 0x1910]
push eax
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
test byte [0x1014b4cc], 4
mov esi, eax
je 0x10046147
push esi
push edi
push str.Invoke_command__ptr_p__res_d
call fcn.1003bea0
add esp, 0xc
cmp esi, 0x20
setge al
jmp 0x10046181
mov ecx, dword [ebp - 0x2bd8]
lea edx, [ebp - 0x2d24]
push edx
push ecx
mov eax, dword [ecx]
call dword [eax + 0x10]
test byte [0x1014b4cc], 4
mov esi, eax
je 0x1004617c
push esi
push edi
push str.Invoke_command__ptr_p__res_d
call fcn.1003bea0
add esp, 0xc
test esi, esi
setns al
cmp dword [ebp + 0xc], 4
jne 0x1004633b
test al, al
je 0x1004633b
cmp byte [ebp - 0x2bc6], 0
je 0x10046243
cmp byte [ebp - 0x2c00], 0
je 0x100461c0
lea ecx, [ebp - 0x2be4]
call fcn.10010330
mov ecx, eax
call fcn.1005f3c0
jmp 0x10046243
lea ecx, [ebp - 0x2c14]
call fcn.1001fb70
test al, al
je 0x10046231
lea ecx, [ebp - 0x2c50]
call fcn.10013a30
lea ecx, [ebp - 0x2bfc]
mov byte [ebp - 4], 0x37
call fcn.10010330
mov edi, eax
mov ecx, dword [edi]
mov esi, dword [ecx + 0x14]
lea ecx, [ebp - 0x2c50]
call fcn.10013a60
push eax
push 0x80028000
push edi
call esi
test eax, eax
js 0x1004621a
lea ecx, [ebp - 0x2c50]
call fcn.10010330
mov ecx, eax
call fcn.1005f410
lea ecx, [ebp - 0x2c50]
mov byte [ebp - 4], 0x14
call fcn.10013a40
mov edi, dword [ebp - 0x2bc0]
jmp 0x10046243
lea ecx, [ebp - 0x2c14]
call fcn.10010330
mov ecx, eax
call fcn.1005f410
push 0
push 0
lea ecx, [ebp - 0x2bbc]
call fcn.10010330
push eax
mov ecx, 0x1014be70
call fcn.1002c8d0
test byte [edi + 0x3c], 0x80
jne 0x1004633b
lea ecx, [ebp - 0x2bf4]
call fcn.10013a30
mov byte [ebp - 4], 0x38
cmp byte [ebp - 0x2c00], 0
je 0x100462cf
lea eax, [ebp - 0x2be4]
push eax
lea ecx, [ebp - 0x2bd8]
call fcn.100220b0
lea ecx, [ebp - 0x2bd8]
mov byte [ebp - 4], 0x39
call fcn.10035510
lea ecx, [ebp - 0x2bd8]
call fcn.10010330
mov edx, 0x811c9dc5
mov ecx, eax
call fcn.100b3790
push eax
mov ecx, 0x1014e940
call fcn.1007c400
lea ecx, [ebp - 0x2bd8]
call fcn.10012170
jmp 0x1004632c
lea ecx, [ebp - 0x2bfc]
call fcn.10010330
mov edi, eax
mov ecx, dword [edi]
mov esi, dword [ecx + 0x14]
lea ecx, [ebp - 0x2bf4]
call fcn.10013a60
push eax
push 0x80018001
push edi
call esi
test eax, eax
js 0x10046326
lea ecx, [ebp - 0x2bf4]
call fcn.10021740
lea ecx, [ebp - 0x2bf4]
call fcn.10010330
mov edx, 0x811c9dc5
mov ecx, eax
call fcn.100b3790
push eax
mov ecx, 0x1014e940
call fcn.1007c400
mov edi, dword [ebp - 0x2bc0]
lea ecx, [ebp - 0x2bf4]
mov byte [ebp - 4], 0x14
call fcn.10013a40
mov ecx, 0x1014c064
call fcn.10026740
mov ecx, 0x1014c064
mov esi, eax
call fcn.10026730
mov dword [ebp - 0x2c54], eax
cmp esi, eax
je 0x10046395
nop dword [eax + eax]
mov ecx, dword [esi]
cmp byte [ecx + 0x31], 0
jne 0x1004638e
push 1
add ecx, 0xc
call fcn.10027e40
mov ecx, dword [esi]
push 0x13
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
add ecx, 0xc
call fcn.10013380
mov eax, dword [ebp - 0x2c54]
add esi, 4
cmp esi, eax
jne 0x10046360
cmp byte [ebp - 0x2be9], 0
je 0x100463ac
push 1
push dword [0x1014b4b0]
call dword [sym.imp.USER32.dll_EnableWindow]
mov al, byte [ebp - 0x2bad]
test al, al
je 0x100464e3
cmp byte [edi + 0x30], 0
je 0x100464e3
push 0
mov ecx, 0x1014c064
call fcn.1001fa40
mov eax, dword [eax]
mov dword [ebp - 0x2bf8], eax
cmp byte [eax + 0x30], 0
jne 0x1004641f
cmp byte [eax + 0x31], 0
jne 0x1004641f
push dword [eax + 0xc]
lea esi, [eax + 0xc]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, dword [ebp - 0x2bf8]
call fcn.1005a870
mov ecx, esi
call fcn.10027e30
mov edx, dword [ebp - 0x2bf8]
mov eax, 1
mov ecx, eax
call fcn.1003e390
mov ecx, dword [ebp - 0x2bf8]
call fcn.1005a8c0
mov cl, byte [ebp - 0x2ba1]
mov al, byte [ebp - 0x2bad]
lea esi, [edi + 0xc]
cmp byte [ebp - 0x2bc7], 0
mov byte [0x1014b4ee], 0
jne 0x10046481
test cl, cl
jne 0x10046481
test al, al
jne 0x10046481
call dword [sym.imp.USER32.dll_GetActiveWindow]
cmp eax, dword [esi]
je 0x10046481
cmp eax, dword [sym.ExplorerShellDLL32.dll_struct_HWND____g_OwnerWindow]
je 0x10046481
xor edx, edx
lea ecx, [edx + 1]
call fcn.1003e390
mov eax, dword [0x1014b4b0]
test eax, eax
je 0x10046481
cmp byte [0x1014b4d0], 0
je 0x10046481
push 0
push 0
push 0x10
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
lea eax, [ebp - 0x310]
push str.delete
push eax
call fcn.100def63
mov esi, dword [ebp - 0x2ba8]
add esp, 8
test eax, eax
mov ecx, 0xd
cmove esi, ecx
cmp byte [ebp - 0x2ba1], 0
je 0x100464c6
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x1004659b
cmp byte [eax + 1], 0
je 0x1004659b
mov al, byte [ebp - 0x2bad]
test al, al
je 0x100465c7
cmp byte [edi + 0x30], 0
jne 0x100465c7
jmp 0x100465a1
mov cl, byte [ebp - 0x2ba1]
test cl, cl
jne 0x100464fd
cmp byte [ebp - 0x2bc7], cl
jne 0x100464fd
test al, al
je 0x1004642b
cmp byte [edi + 0x31], 0
lea esi, [edi + 0xc]
jne 0x1004642e
push dword [esi]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, edi
call fcn.1005a870
test dword [edi + 0x3c], 0x400000
je 0x10046554
mov ecx, dword [edi + 0x44]
add ecx, 0x1a4
call fcn.10027e30
push 0x13
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
mov ecx, esi
call fcn.10013380
mov al, byte [ebp - 0x2bad]
mov cl, byte [ebp - 0x2ba1]
jmp 0x1004642e
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x10046583
cmp byte [eax + 1], 0
je 0x10046583
mov ecx, dword [edi + 0x1b8]
add ecx, 8
call fcn.10027e30
mov al, byte [ebp - 0x2bad]
mov cl, byte [ebp - 0x2ba1]
jmp 0x1004642e
mov ecx, esi
call fcn.10027e30
mov al, byte [ebp - 0x2bad]
mov cl, byte [ebp - 0x2ba1]
jmp 0x1004642e
mov al, byte [ebp - 0x2bad]
test al, al
je 0x100465c0
cmp byte [edi + 0x30], 0
jne 0x100465c0
mov eax, dword [0x1014b4d4]
cmp eax, 2
je 0x100465ba
cmp eax, 3
jne 0x100465c0
mov byte [edi + 0x33], 1
jmp 0x100465c7
mov ecx, edi
call fcn.1005a8c0
mov edi, dword [sym.imp.USER32.dll_GetMessagePos]
push dword [ebp - 0x2bac]
call dword [sym.imp.USER32.dll_DestroyMenu]
call edi
mov dword [0x1014b510], eax
mov eax, dword [ebp - 0x2bc4]
test eax, eax
je 0x100465f1
test esi, esi
je 0x100465f1
mov dword [eax + 0x10], esi
test byte [0x1014b4cc], 4
je 0x1004660e
mov eax, dword [ebp - 0x2bc0]
push eax
push str.Exit_activate__ptr_p
call fcn.1003bea0
add esp, 8
lea ecx, [ebp - 0x2c09]
call fcn.1003f350
lea ecx, [ebp - 0x2c09]
call fcn.1003f340
jmp 0x10041a7b
cmp dword [ebp - 0x2ba0], 0x2f
jne 0x10046637
cmp esi, 3
jne 0x1004668d
call dword [sym.imp.USER32.dll_GetMessagePos]
test byte [ebp - 0x2b70], 1
mov dword [0x1014b510], eax
jne 0x10046679
cmp dword [ebp - 0x2ba0], 0x2f
je 0x10046679
mov ecx, edi
call fcn.1005a870
mov edx, edi
xor ecx, ecx
call fcn.1003e390
push 0
push 0
push 0
push dword [ebp - 0x2bcc]
mov ecx, edi
call fcn.10040810
jmp 0x1004668d
push dword [ebp - 0x2bd4]
mov ecx, edi
push esi
push dword [ebp - 0x2bcc]
call fcn.1003e460
mov eax, dword [ebp - 0x2bd0]
mov esi, dword [sym.imp.SHELL32.dll_ILFree]
test eax, eax
je 0x100466a0
push eax
call esi
mov eax, dword [ebp - 0x2bbc]
mov dword [ebp - 0x2bd0], 0
test eax, eax
je 0x100466b7
push eax
call esi
mov ecx, dword [ebp - 0x2b98]
mov dword [ebp - 0x2bbc], 0
lea ecx, [ecx - 0x10]
call fcn.10013920
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100d4906
mov esp, ebp
pop ebp
ret 0x10
call fcn.100d5202
nop dword [eax]
adc dword [0x15c11004], 4
adc ah, bl
adc eax, 0x163b1004
add al, 0x10
adc al, 0x16
add al, 16
add byte [esp + eax], al
add al, 4
add al, 1
add al, 4
add al, 4
add al, 4
add al, 4
add al, byte [ebx]
nop dword [eax]
xchg byte [esi], dl
add al, 16
invalid