Function at 0x4e24c0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
lea ebp, [esp - 0x328]
sub esp, 0x328
push 0xfffffffffffffffe
push 0x588bb0
push 0x54a170
mov eax, dword fs:[0]
push eax
sub esp, 0x148
mov eax, dword [0x597fa8]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp + 0x324], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov esi, dword [ebp + 0x330]
mov dword [ebp - 0x40], esi
mov eax, dword [ebp + 0x33c]
mov dword [ebp - 0x2c], eax
xor edi, edi
mov dword [ebp - 0x54], edi
cmp byte [0x58b69d], 0
je 0x4e2a2b
mov ecx, dword [esi + 0x180]
push ecx
call fcn.004b84b0
push esi
call fcn.004cae20
mov dword [ebp - 0x24], edi
cmp dword [0x599210], edi
je 0x4e2550
cmp dword [0x599214], edi
jne 0x4e255a
mov ebx, 1
mov dword [ebp - 0x24], ebx
jmp 0x4e255f
mov ebx, 1
cmp byte [0x598ec4], 0
je 0x4e256b
mov dword [ebp - 0x24], ebx
push esi
call fcn.00510c80
mov dword [ebp - 0x20], eax
cmp eax, ebx
jne 0x4e257b
mov dword [ebp - 0x24], ebx
mov dword [esi + 0x404], edi
mov dword [esi + 0x408], edi
mov dword [esi + 0x40c], edi
mov dword [esi + 0x410], edi
mov dword [esi + 0x3f0], edi
mov dword [esi + 0x3e8], edi
mov dword [esi + 0x3ec], edi
mov dword [esi + 0x3e4], edi
mov dword [esi + 0x3f4], edi
mov dword [esi + 0x3f8], edi
mov dword [esi + 0x3fc], edi
mov dword [esi + 0x414], edi
mov dword [esi + 0x400], edi
lea edx, [ebp - 0x3c]
push edx
push esi
call fcn.0051a6b0
cmp eax, edi
jl 0x4e2a2b
lea eax, [ebp + 0x214]
push eax
call fcn.00523650
push 2
push esi
call fcn.00510f80
mov edi, eax
push edi
push esi
call fcn.00510d40
test eax, eax
je 0x4e261c
lea ecx, [ebp + 0x214]
push ecx
push edi
push esi
call fcn.00510e20
push edi
push esi
call fcn.00510de0
mov ebx, eax
push edi
push esi
call fcn.00510e00
jmp 0x4e263d
lea edx, [ebp + 0x214]
push edx
push 0
push esi
call fcn.00510f60
push 0
push esi
call fcn.00510d80
mov ebx, eax
push 0
push esi
call fcn.00510da0
test eax, eax
je 0x4e264a
mov dword [ebp - 0x24], 1
jmp 0x4e26a1
cmp dword [ebp - 0x24], 0
jne 0x4e26a1
mov eax, dword [ebp + 0x214]
push eax
mov ecx, dword [ebp + 0x21c]
push ecx
push ebx
lea edx, [ebp - 0x64]
push edx
lea eax, [ebp - 0x68]
push eax
call fcn.004e22e0
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test ebx, ebx
je 0x4e2681
lea ecx, [ebp - 0x60]
push ecx
push str.Folder
jmp 0x4e268a
lea edx, [ebp - 0x60]
push edx
push 0x5556f8
push closesocket
call edi
lea eax, [ebp - 0x5c]
push eax
push str.AllFilesystemObjects
push closesocket
call edi
cmp byte [0x58b658], 0
je 0x4e2775
lea ecx, [ebp]
push ecx
call fcn.00523650
mov edx, dword [ebp + 0x21c]
push edx
lea eax, [ebp]
push eax
call fcn.005277a0
mov ecx, dword [ebp + 8]
push ecx
push str.ParseDisplayName__S_n
call fcn.0048f080
add esp, 8
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax]
push 0
lea ecx, [ebp - 0x50]
push ecx
push 0
mov ecx, dword [ebp + 8]
push ecx
push 0
push 0
push eax
mov edx, dword [edx + 0xc]
call edx
mov edi, eax
mov dword [ebp - 0x1c], edi
mov dword [ebp - 4], 0xfffffffe
jmp 0x4e2730
lea eax, [ebp]
push eax
call fcn.00401210
test edi, edi
jl 0x4e277a
mov dword [ebp - 4], 1
cmp dword [ebp - 0x24], 0
je 0x4e2a52
push 0
lea ecx, [ebp - 0x58]
push ecx
push 0x587858
mov edx, dword [ebp - 0x50]
push edx
call dword [0x58ef08]
test eax, eax
jge 0x4e2a52
push str.os_sh_bind_to_parent_on_desktop_failed_n
jmp 0x4e35f6
mov edi, 0x80004001
push edi
push str.no_menu__d_n
call fcn.0048f080
add esp, 8
cmp dword [ebp + 0x340], 0
jne 0x4e29e0
cmp dword [ebp - 0x2c], 0
jne 0x4e29e0
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov edi, eax
mov dword [ebp - 0x2c], 1
push esi
call fcn.00510c80
mov dword [ebp - 0x30], eax
xor ebx, ebx
test eax, eax
jle 0x4e27d6
lea ecx, [ecx]
push ebx
push esi
call fcn.00510d80
test eax, eax
jne 0x4e27ce
mov dword [ebp - 0x2c], eax
add ebx, 1
cmp ebx, dword [ebp - 0x30]
jl 0x4e27c0
cmp byte [0x58b69c], 0
je 0x4e28a0
mov edx, dword [0x58eedc]
mov eax, dword [edx + 0x2a0]
push eax
push 0xa028
push 0
push edi
call fcn.004aa7e0
push 1
movsx ecx, byte [0x58b6ff]
push ecx
call fcn.004c3c60
test eax, eax
je 0x4e282a
mov edx, dword [0x58eedc]
mov eax, dword [edx + 0x29c]
push eax
push 0xa02b
push 0
push edi
call fcn.004aa7e0
mov ebx, 6
cmp dword [0x599184], ebx
sbb ecx, ecx
neg ecx
push ecx
movsx edx, byte [0x58b700]
push edx
call fcn.004c3c60
test eax, eax
je 0x4e286a
cmp dword [ebp - 0x2c], 0
je 0x4e286a
mov eax, dword [0x58eedc]
mov ecx, dword [eax + 0x298]
push ecx
push 0xa029
push 0
push edi
call fcn.004aa7e0
cmp dword [0x599184], ebx
sbb edx, edx
neg edx
push edx
movsx eax, byte [0x58b701]
push eax
call fcn.004c3c60
test eax, eax
je 0x4e28a0
mov ecx, dword [0x58eedc]
mov edx, dword [ecx + 0x294]
push edx
push 0xa02a
push 0
push edi
call fcn.004aa7e0
push 0
movsx eax, byte [0x58b6fc]
push eax
call fcn.004c3c60
test eax, eax
je 0x4e28cd
mov ecx, dword [0x58eedc]
mov edx, dword [ecx + 0x17cc]
push edx
push 0xa033
push 0
push edi
call fcn.004aa7e0
push 0
movsx eax, byte [0x58b6fd]
push eax
call fcn.004c3c60
test eax, eax
je 0x4e28fa
mov ecx, dword [0x58eedc]
mov edx, dword [ecx + 0x28c]
push edx
push 0xa030
push 0
push edi
call fcn.004aa7e0
push 1
movsx eax, byte [0x58b6fe]
push eax
call fcn.004c3c60
test eax, eax
je 0x4e2927
mov ecx, dword [0x58eedc]
mov edx, dword [ecx + 0x290]
push edx
push 0xa02f
push 0
push edi
call fcn.004aa7e0
push edi
call fcn.004aa870
cmp byte [0x58b710], 0
je 0x4e2955
mov eax, dword [0x58eedc]
mov ecx, dword [eax + 0x1280]
push ecx
push 0xa06c
push 0
push edi
call fcn.004aa7e0
push edi
call fcn.004aa870
cmp byte [0x58b69e], 0
je 0x4e2978
mov edx, dword [0x58eedc]
mov eax, dword [edx + 0x9c0]
push eax
push 0xa02c
push 0
push edi
call fcn.004aa7e0
cmp byte [0x58b69f], 0
je 0x4e299b
mov ecx, dword [0x58eedc]
mov edx, dword [ecx + 0x9c8]
push edx
push 0xa02e
push 0
push edi
call fcn.004aa7e0
push edi
call fcn.004aa870
mov eax, dword [0x58eedc]
mov ecx, dword [eax + 0x9b4]
push ecx
push 0xa068
push 0
push edi
call fcn.004aa7e0
push 0
mov edx, dword [esi + 0x60]
push edx
push 0
mov eax, dword [ebp + 0x338]
push eax
mov ecx, dword [ebp + 0x334]
push ecx
push 0
push edi
call dword [sym.imp.USER32.dll_TrackPopupMenu]
push edi
call dword [sym.imp.USER32.dll_DestroyMenu]
cmp dword [ebp - 0x24], 0
jne 0x4e2a14
mov eax, dword [ebp - 0x68]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x4e29f6
push eax
call esi
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x4e2a00
push eax
call esi
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x4e2a0a
push eax
call esi
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x4e2a14
push eax
call esi
lea edx, [ebp + 0x214]
push edx
call fcn.00401210
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 8]
call edx
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x324]
xor ecx, ebp
call fcn.005498fd
add ebp, 0x328
mov esp, ebp
pop ebp
ret 0x14
mov edi, dword [ebp - 0x20]
add edi, edi
add edi, edi
push edi
call fcn.004a47b0
mov dword [ebp - 0x4c], eax
push edi
call fcn.004a47b0
mov dword [ebp - 0x38], eax
xor ebx, ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x48], ebx
jmp 0x4e2a80
mov edi, dword [ebp - 0x48]
cmp edi, dword [ebp - 0x20]
jge 0x4e2c14
push edi
push esi
call fcn.00510d80
test eax, eax
jne 0x4e2a9e
mov dword [ebp - 0x54], 1
lea eax, [ebp + 0x214]
push eax
push edi
push esi
call fcn.00510f60
lea ecx, [ebp]
push ecx
call fcn.00523650
mov edx, dword [ebp + 0x21c]
push edx
lea eax, [ebp]
push eax
call fcn.005277a0
mov ecx, dword [ebp + 8]
push ecx
push str.parse_display_name__S_n
call fcn.0048f080
add esp, 8
mov dword [ebp - 4], 2
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x34]
lea edi, [edx + eax*4]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
push 0
push edi
push 0
mov edx, dword [ebp + 8]
push edx
push 0
push 0
push eax
mov eax, dword [ecx + 0xc]
call eax
test eax, eax
jl 0x4e2bb9
push str.parse_display_name_OK_n
call fcn.0048f080
add esp, 4
mov dword [ebp - 4], 3
push str.bind_to_parent_n
call fcn.0048f080
add esp, 4
mov ecx, dword [ebp - 0x38]
lea edx, [ecx + ebx*4]
push edx
lea eax, [ebp - 0x30]
push eax
push 0x587858
mov ecx, dword [edi]
push ecx
call dword [0x58ef08]
test eax, eax
jl 0x4e2b55
add ebx, 1
mov dword [ebp - 0x44], ebx
mov eax, dword [ebp - 0x30]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [ebp - 4], 2
add dword [ebp - 0x34], 1
mov dword [ebp - 4], 1
lea ecx, [ebp]
push ecx
call fcn.00401210
add dword [ebp - 0x48], 1
jmp 0x4e2a80
push str.ParseDisplayName_failed_n
call fcn.0048f080
add esp, 4
mov dword [ebp - 4], 1
lea ecx, [ebp]
push ecx
call fcn.00401210
add dword [ebp - 0x48], 1
jmp 0x4e2a80
push ebx
mov edx, dword [ebp - 0x34]
push edx
push str.get_menu__d__d_n
call fcn.0048f080
add esp, 0xc
mov dword [ebp - 4], 4
cmp dword [ebp - 0x24], 0
je 0x4e2c52
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax]
lea edx, [ebp - 0x20]
push edx
push 0
push 0x587868
mov edx, dword [ebp - 0x38]
push edx
push ebx
push 0
push eax
mov eax, dword [ecx + 0x28]
call eax
jmp 0x4e2c79
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x68]
push edx
push 4
push 0x4e2280
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x38]
push ecx
push ebx
mov edx, dword [esi + 0x2e4]
push edx
push 0
call dword [0x599210]
mov dword [ebp - 0x1c], eax
test eax, eax
jl 0x4e35a3
mov eax, dword [ebp - 0x20]
push eax
push str.got_menu__d_n
call fcn.0048f080
add esp, 8
cmp dword [ebp - 0x20], 0
je 0x4e35a3
push str.got_menu_1_n
call fcn.0048f080
add esp, 4
mov al, byte [0x598e83]
test al, al
je 0x4e2cb9
cmp al, 3
jl 0x4e2cdf
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
lea edx, [esi + 0x420]
push edx
push 0x587808
push eax
mov eax, dword [ecx]
call eax
test eax, eax
jne 0x4e2cda
push str.menu_type_3_n
jmp 0x4e2d06
mov al, byte [0x598e83]
test al, al
je 0x4e2ce7
cmp al, 2
jl 0x4e2d0e
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
lea edx, [esi + 0x41c]
push edx
push 0x587838
push eax
mov eax, dword [ecx]
call eax
test eax, eax
jne 0x4e2d0e
push str.menu_type_2_n
call fcn.0048f080
add esp, 4
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov ebx, eax
mov dword [ebp - 0x30], ebx
test ebx, ebx
je 0x4e3541
mov dword [ebp - 4], 5
mov edi, 0x10
mov dword [ebp - 0x70], edi
push edi
call fcn.004ae120
test eax, eax
je 0x4e2d42
mov edi, 0x110
mov dword [ebp - 0x70], edi
push str.QueryContextMenu..._n
call fcn.0048f080
add esp, 4
mov eax, dword [esi + 0x420]
test eax, eax
jne 0x4e2d66
mov eax, dword [esi + 0x41c]
test eax, eax
jne 0x4e2d66
mov eax, dword [ebp - 0x20]
push edi
push 0x7fff
push 1
push 0
push ebx
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 0xc]
call edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 4
jmp 0x4e2dbe
test eax, eax
jl 0x4e353a
push eax
push str.QueryContextMenu__08x_n
call fcn.0048f080
add esp, 8
mov edi, 0x8000
mov dword [ebp - 0x28], edi
cmp byte [0x58b710], 0
je 0x4e2e24
push 0
push 0
push 0xc00
push 0
push ebx
call dword [0x598dec]
mov dword [esi + 0x400], edi
mov edi, 0x8001
mov dword [ebp - 0x28], edi
mov ecx, dword [0x58eedc]
mov edx, dword [ecx + 0x1280]
push edx
push 0x8000
push 0x400
push 0
push ebx
call fcn.004ac110
push 0
push 0
push 0xc00
push 0
push ebx
call dword [0x598dec]
push 0
movsx eax, byte [0x58b6fc]
push eax
call fcn.004c3c60
test eax, eax
je 0x4e2e76
mov dword [esi + 0x3f8], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov ecx, dword [0x58eedc]
mov edx, dword [ecx + 0x17cc]
push edx
mov eax, dword [esi + 0x3f8]
push eax
push 0x400
push 0
push ebx
call fcn.004ac110
push 0
movsx ecx, byte [0x58b6fd]
push ecx
call fcn.004c3c60
test eax, eax
je 0x4e2eb6
mov dword [esi + 0x3fc], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov edx, dword [0x58eedc]
mov eax, dword [edx + 0x28c]
push eax
mov ecx, dword [esi + 0x3fc]
push ecx
push 0x400
push 0
push ebx
call fcn.004ac110
push 1
movsx edx, byte [0x58b6fe]
push edx
call fcn.004c3c60
test eax, eax
je 0x4e2ef5
mov dword [esi + 0x3f4], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov eax, dword [0x58eedc]
mov ecx, dword [eax + 0x290]
push ecx
mov edx, dword [esi + 0x3f4]
push edx
push 0x400
push 0
push ebx
call fcn.004ac110
cmp byte [0x58b69c], 0
je 0x4e3009
cmp dword [0x599184], 6
sbb eax, eax
neg eax
push eax
movsx ecx, byte [0x58b701]
push ecx
call fcn.004c3c60
test eax, eax
je 0x4e2f4c
mov dword [esi + 0x3f0], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov edx, dword [0x58eedc]
mov eax, dword [edx + 0x294]
push eax
mov ecx, dword [esi + 0x3f0]
push ecx
push 0x400
push 0
push ebx
call fcn.004ac110
cmp dword [0x599184], 6
sbb edx, edx
neg edx
push edx
movsx eax, byte [0x58b700]
push eax
call fcn.004c3c60
test eax, eax
je 0x4e2f9c
cmp dword [ebp - 0x54], 0
jne 0x4e2f9c
mov dword [esi + 0x3ec], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov ecx, dword [0x58eedc]
mov edx, dword [ecx + 0x298]
push edx
mov eax, dword [esi + 0x3ec]
push eax
push 0x400
push 0
push ebx
call fcn.004ac110
push 1
movsx ecx, byte [0x58b6ff]
push ecx
call fcn.004c3c60
test eax, eax
je 0x4e2fdc
mov dword [esi + 0x3e8], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov edx, dword [0x58eedc]
mov eax, dword [edx + 0x29c]
push eax
mov ecx, dword [esi + 0x3e8]
push ecx
push 0x400
push 0
push ebx
call fcn.004ac110
mov dword [esi + 0x3e4], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov edx, dword [0x58eedc]
mov eax, dword [edx + 0x2a0]
push eax
mov ecx, dword [esi + 0x3e4]
push ecx
push 0x400
push 0
push ebx
call fcn.004ac110
cmp dword [ebp + 0x340], 0
je 0x4e3107
push 0
push 0
push ebx
call dword [sym.imp.USER32.dll_GetMenuDefaultItem]
mov edi, eax
mov dword [ebp - 0x30], edi
push edi
push str.default__08x_n
call fcn.0048f080
push 0x40
push 0
lea edx, [ebp - 0x118]
push edx
call fcn.00549ff0
add esp, 0x14
mov dword [ebp - 0x118], 0x40
mov dword [ebp - 0x114], 0x20000000
mov eax, dword [esi + 0x60]
mov dword [ebp - 0x110], eax
add edi, 0xffffffff
movzx ecx, di
mov dword [ebp - 0x10c], ecx
mov dword [ebp - 0x100], 1
mov edx, dword [ebp + 0x334]
mov dword [ebp - 0xe0], edx
mov eax, dword [ebp + 0x338]
mov dword [ebp - 0xdc], eax
push 0x10
call fcn.004ae120
test eax, eax
je 0x4e30a4
or dword [ebp - 0x114], 0x10000000
push 0x11
call fcn.004ae120
test eax, eax
je 0x4e30b9
or dword [ebp - 0x114], 0x40000000
mov eax, dword [esi + 0x420]
lea edx, [ebp - 0x118]
push edx
test eax, eax
je 0x4e30da
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x1c], eax
jmp 0x4e353a
mov eax, dword [esi + 0x41c]
test eax, eax
je 0x4e30f4
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x1c], eax
jmp 0x4e353a
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x1c], eax
jmp 0x4e353a
cmp dword [ebp - 0x2c], 0
je 0x4e3210
lea ecx, [ebp]
push ecx
call fcn.00523650
mov edi, dword [ebp - 0x2c]
push edi
lea edx, [ebp]
push edx
call fcn.005277a0
push 0x40
push 0
lea eax, [ebp - 0xd8]
push eax
call fcn.00549ff0
add esp, 0xc
mov dword [ebp - 0xd8], 0x40
mov dword [ebp - 0xd4], 0x20004000
mov ecx, dword [esi + 0x60]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], edi
mov edx, dword [ebp + 8]
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0xc0], 1
mov eax, dword [ebp + 0x334]
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp + 0x338]
mov dword [ebp - 0x9c], ecx
push 0x10
call fcn.004ae120
test eax, eax
je 0x4e319d
or dword [ebp - 0xd4], 0x10000000
push 0x11
call fcn.004ae120
test eax, eax
je 0x4e31b2
or dword [ebp - 0xd4], 0x40000000
push edi
push str.invoke__s_n
call fcn.0048f080
add esp, 8
mov eax, dword [esi + 0x420]
test eax, eax
je 0x4e31db
mov edx, dword [eax]
lea ecx, [ebp - 0xd8]
push ecx
push eax
mov edx, dword [edx + 0x10]
call edx
jmp 0x4e31f7
mov eax, dword [esi + 0x41c]
lea edx, [ebp - 0xd8]
push edx
test eax, eax
jne 0x4e31ef
mov eax, dword [ebp - 0x20]
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
call eax
mov edi, eax
mov dword [ebp - 0x1c], edi
lea ecx, [ebp]
push ecx
call fcn.00401210
push edi
push str._08x_n
jmp 0x4e3532
cmp byte [0x58b69c], 0
je 0x4e3229
push 0
mov edx, dword [esi + 0x3e4]
push edx
push ebx
call dword [sym.imp.USER32.dll_SetMenuDefaultItem]
push ebx
push str.track_menu__p_n
push 0xff00ffff
call fcn.0048f0a0
add esp, 0xc
mov dword [esi + 0x418], ebx
push 0
mov eax, dword [esi + 0x60]
push eax
push 0
mov ecx, dword [ebp + 0x338]
push ecx
mov edx, dword [ebp + 0x334]
push edx
push 0x102
push ebx
call dword [sym.imp.USER32.dll_TrackPopupMenu]
mov edi, eax
mov dword [ebp - 0x2c], edi
mov dword [esi + 0x418], 0
push edi
push str.idCommand__d_n
push 0xff00ffff
call fcn.0048f0a0
add esp, 0xc
test edi, edi
jbe 0x4e353a
cmp edi, dword [esi + 0x3e4]
jne 0x4e32af
movsx eax, byte [0x598ee1]
push eax
push 0
push 0
push 0
push esi
call fcn.004cca90
jmp 0x4e353a
cmp edi, dword [esi + 0x3ec]
jne 0x4e32c8
mov eax, dword [0x598e98]
cmp byte [eax], 0
jne 0x4e330e
mov eax, str._exec___SystemRoot_explorer.exe___n__e___1__
jmp 0x4e330e
cmp edi, dword [esi + 0x3f0]
jne 0x4e32f7
mov eax, dword [0x598ea0]
cmp byte [eax], 0
jne 0x4e32df
mov eax, str._exec___SystemRoot_explorer.exe___n__e__select___1__
movsx edx, byte [0x598ee1]
push edx
push 0
push 0
push eax
push esi
call fcn.004cca90
jmp 0x4e353a
cmp edi, dword [esi + 0x3e8]
jne 0x4e3326
mov eax, dword [0x598e9c]
cmp byte [eax], 0
jne 0x4e330e
mov eax, str._openpath___1__
movsx ecx, byte [0x598ee1]
push ecx
push 0
push 0
push eax
push esi
call fcn.004cca90
jmp 0x4e353a
cmp edi, dword [esi + 0x3f8]
jne 0x4e333b
push 0
push esi
call fcn.004cb250
jmp 0x4e353a
cmp edi, dword [esi + 0x3f4]
jne 0x4e3350
push 2
push esi
call fcn.004cb250
jmp 0x4e353a
cmp edi, dword [esi + 0x3fc]
jne 0x4e3365
push 1
push esi
call fcn.004cb250
jmp 0x4e353a
cmp edi, dword [esi + 0x414]
jne 0x4e3392
push 0x10
call fcn.004ae120
test eax, eax
je 0x4e3385
push 0
push esi
call fcn.004cb3e0
jmp 0x4e353a
push 1
push esi
call fcn.004cb3e0
jmp 0x4e353a
cmp edi, dword [esi + 0x404]
jne 0x4e33a5
push esi
call fcn.004f7980
jmp 0x4e353a
cmp edi, dword [esi + 0x408]
jne 0x4e33b8
push esi
call fcn.004cc5e0
jmp 0x4e353a
cmp edi, dword [esi + 0x40c]
jne 0x4e33cb
push esi
call fcn.004cc4a0
jmp 0x4e353a
cmp edi, dword [esi + 0x410]
jne 0x4e33de
push esi
call fcn.004c2600
jmp 0x4e353a
cmp edi, dword [esi + 0x400]
jne 0x4e33f1
push esi
call fcn.00516cc0
jmp 0x4e353a
lea edx, [edi - 1]
cmp edx, 0x7ffe
ja 0x4e353a
push str.using_shell_implementation_n
call fcn.0048f080
push 0x40
push 0
lea eax, [ebp - 0x158]
push eax
call fcn.00549ff0
add esp, 0x10
mov dword [ebp - 0x158], 0x40
mov dword [ebp - 0x154], 0x20000000
mov ecx, dword [esi + 0x60]
mov dword [ebp - 0x150], ecx
add edi, 0xffffffff
movzx edi, di
mov dword [ebp - 0x14c], edi
mov dword [ebp - 0x140], 1
mov edx, dword [ebp + 0x334]
mov dword [ebp - 0x120], edx
mov eax, dword [ebp + 0x338]
mov dword [ebp - 0x11c], eax
mov eax, dword [esi + 0x420]
test eax, eax
jne 0x4e347f
mov eax, dword [esi + 0x41c]
test eax, eax
jne 0x4e347f
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x158]
push edx
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x1c], eax
mov ecx, eax
push ecx
push str.invoke_hres__08x_n
call fcn.0048f080
add esp, 8
cmp dword [ebp - 0x1c], 0x80070057
jne 0x4e353a
xor eax, eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x98], 0x24
mov dword [ebp - 0x94], eax
mov edx, dword [esi + 0x60]
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0x80], 1
mov eax, dword [esi + 0x420]
test eax, eax
jne 0x4e351a
mov eax, dword [esi + 0x41c]
test eax, eax
jne 0x4e351a
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x98]
push edx
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x1c], eax
push eax
push str.invoke_hres_non_ex__08x_n
call fcn.0048f080
add esp, 8
push ebx
call dword [sym.imp.USER32.dll_DestroyMenu]
mov eax, dword [esi + 0x420]
xor edi, edi
cmp eax, edi
je 0x4e3568
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 8]
call edx
mov dword [esi + 0x420], edi
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 8]
call edx
jmp 0x4e35a3
mov eax, dword [esi + 0x41c]
cmp eax, edi
je 0x4e3580
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 8]
call edx
mov dword [esi + 0x41c], edi
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 8]
call edx
jmp 0x4e35a3
mov dword [ebp - 4], 1
xor esi, esi
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x6c], esi
cmp esi, dword [ebp - 0x34]
jge 0x4e35c6
mov eax, dword [edi + esi*4]
push eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
add esi, 1
jmp 0x4e35af
push edi
call fcn.004a4810
mov ecx, dword [ebp - 0x38]
push ecx
call fcn.004a4810
cmp dword [ebp - 0x24], 0
je 0x4e35fe
mov eax, dword [ebp - 0x58]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
jmp 0x4e35fe
call fcn.0048f080
add esp, 4
mov dword [ebp - 4], 0xfffffffe
mov ecx, dword [ebp - 0x50]
push ecx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
jmp 0x4e29e0