Function at 0x4e2200
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
lea ebp, [esp - 0x328]
sub esp, 0x328
push 0xfffffffffffffffe
push 0x587c50
push 0x549fc0
mov eax, dword fs:[0]
push eax
sub esp, 0x148
mov eax, dword [0x596fb8]
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 [0x58a69e], 0
je 0x4e276b
mov ecx, dword [esi + 0x180]
push ecx
call fcn.004b8290
push esi
call fcn.004cae90
mov dword [ebp - 0x24], edi
cmp dword [0x598230], edi
je 0x4e2290
cmp dword [0x598234], edi
jne 0x4e229a
mov ebx, 1
mov dword [ebp - 0x24], ebx
jmp 0x4e229f
mov ebx, 1
cmp byte [0x597ee4], 0
je 0x4e22ab
mov dword [ebp - 0x24], ebx
push esi
call fcn.00510a40
mov dword [ebp - 0x20], eax
cmp eax, ebx
jne 0x4e22bb
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.0051a3f0
cmp eax, edi
jl 0x4e276b
lea eax, [ebp + 0x214]
push eax
call fcn.00401210
push 2
push esi
call fcn.00510d40
mov edi, eax
push edi
push esi
call fcn.00510b00
test eax, eax
je 0x4e235c
lea ecx, [ebp + 0x214]
push ecx
push edi
push esi
call fcn.00510be0
push edi
push esi
call fcn.00510ba0
mov ebx, eax
push edi
push esi
call fcn.00510bc0
jmp 0x4e237d
lea edx, [ebp + 0x214]
push edx
push 0
push esi
call fcn.00510d20
push 0
push esi
call fcn.00510b40
mov ebx, eax
push 0
push esi
call fcn.00510b60
test eax, eax
je 0x4e238a
mov dword [ebp - 0x24], 1
jmp 0x4e23e1
cmp dword [ebp - 0x24], 0
jne 0x4e23e1
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.004e2020
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test ebx, ebx
je 0x4e23c1
lea ecx, [ebp - 0x60]
push ecx
push str.Folder
jmp 0x4e23ca
lea edx, [ebp - 0x60]
push edx
push 0x5547b8
push closesocket
call edi
lea eax, [ebp - 0x5c]
push eax
push str.AllFilesystemObjects
push closesocket
call edi
cmp byte [0x58a658], 0
je 0x4e24b5
lea ecx, [ebp]
push ecx
call fcn.00401210
mov edx, dword [ebp + 0x21c]
push edx
lea eax, [ebp]
push eax
call fcn.00527550
mov ecx, dword [ebp + 8]
push ecx
push str.ParseDisplayName__S_n
call fcn.0048f0d0
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 0x4e2470
lea eax, [ebp]
push eax
call fcn.00401230
test edi, edi
jl 0x4e24ba
mov dword [ebp - 4], 1
cmp dword [ebp - 0x24], 0
je 0x4e2792
push 0
lea ecx, [ebp - 0x58]
push ecx
push 0x5868f0
mov edx, dword [ebp - 0x50]
push edx
call dword [0x58df18]
test eax, eax
jge 0x4e2792
push str.os_sh_bind_to_parent_on_desktop_failed_n
jmp 0x4e3336
mov edi, 0x80004001
push edi
push str.no_menu__d_n
call fcn.0048f0d0
add esp, 8
cmp dword [ebp + 0x340], 0
jne 0x4e2720
cmp dword [ebp - 0x2c], 0
jne 0x4e2720
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov edi, eax
mov dword [ebp - 0x2c], 1
push esi
call fcn.00510a40
mov dword [ebp - 0x30], eax
xor ebx, ebx
test eax, eax
jle 0x4e2516
lea ecx, [ecx]
push ebx
push esi
call fcn.00510b40
test eax, eax
jne 0x4e250e
mov dword [ebp - 0x2c], eax
add ebx, 1
cmp ebx, dword [ebp - 0x30]
jl 0x4e2500
cmp byte [0x58a69d], 0
je 0x4e25e0
mov edx, dword [0x58deec]
mov eax, dword [edx + 0x2a0]
push eax
push 0xa028
push 0
push edi
call fcn.004aa520
push 1
movsx ecx, byte [0x58a700]
push ecx
call fcn.004c39a0
test eax, eax
je 0x4e256a
mov edx, dword [0x58deec]
mov eax, dword [edx + 0x29c]
push eax
push 0xa02b
push 0
push edi
call fcn.004aa520
mov ebx, 6
cmp dword [0x5981a4], ebx
sbb ecx, ecx
neg ecx
push ecx
movsx edx, byte [0x58a701]
push edx
call fcn.004c39a0
test eax, eax
je 0x4e25aa
cmp dword [ebp - 0x2c], 0
je 0x4e25aa
mov eax, dword [0x58deec]
mov ecx, dword [eax + 0x298]
push ecx
push 0xa029
push 0
push edi
call fcn.004aa520
cmp dword [0x5981a4], ebx
sbb edx, edx
neg edx
push edx
movsx eax, byte [0x58a702]
push eax
call fcn.004c39a0
test eax, eax
je 0x4e25e0
mov ecx, dword [0x58deec]
mov edx, dword [ecx + 0x294]
push edx
push 0xa02a
push 0
push edi
call fcn.004aa520
push 0
movsx eax, byte [0x58a6fd]
push eax
call fcn.004c39a0
test eax, eax
je 0x4e260d
mov ecx, dword [0x58deec]
mov edx, dword [ecx + 0x17cc]
push edx
push 0xa033
push 0
push edi
call fcn.004aa520
push 0
movsx eax, byte [0x58a6fe]
push eax
call fcn.004c39a0
test eax, eax
je 0x4e263a
mov ecx, dword [0x58deec]
mov edx, dword [ecx + 0x28c]
push edx
push 0xa030
push 0
push edi
call fcn.004aa520
push 1
movsx eax, byte [0x58a6ff]
push eax
call fcn.004c39a0
test eax, eax
je 0x4e2667
mov ecx, dword [0x58deec]
mov edx, dword [ecx + 0x290]
push edx
push 0xa02f
push 0
push edi
call fcn.004aa520
push edi
call fcn.004aa5b0
cmp byte [0x58a711], 0
je 0x4e2695
mov eax, dword [0x58deec]
mov ecx, dword [eax + 0x1280]
push ecx
push 0xa06c
push 0
push edi
call fcn.004aa520
push edi
call fcn.004aa5b0
cmp byte [0x58a69f], 0
je 0x4e26b8
mov edx, dword [0x58deec]
mov eax, dword [edx + 0x9c0]
push eax
push 0xa02c
push 0
push edi
call fcn.004aa520
cmp byte [0x58a6a0], 0
je 0x4e26db
mov ecx, dword [0x58deec]
mov edx, dword [ecx + 0x9c8]
push edx
push 0xa02e
push 0
push edi
call fcn.004aa520
push edi
call fcn.004aa5b0
mov eax, dword [0x58deec]
mov ecx, dword [eax + 0x9b4]
push ecx
push 0xa068
push 0
push edi
call fcn.004aa520
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 0x4e2754
mov eax, dword [ebp - 0x68]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x4e2736
push eax
call esi
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x4e2740
push eax
call esi
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x4e274a
push eax
call esi
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x4e2754
push eax
call esi
lea edx, [ebp + 0x214]
push edx
call fcn.00401230
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.00549750
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.004a49a0
mov dword [ebp - 0x4c], eax
push edi
call fcn.004a49a0
mov dword [ebp - 0x38], eax
xor ebx, ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x48], ebx
jmp 0x4e27c0
mov edi, dword [ebp - 0x48]
cmp edi, dword [ebp - 0x20]
jge 0x4e2954
push edi
push esi
call fcn.00510b40
test eax, eax
jne 0x4e27de
mov dword [ebp - 0x54], 1
lea eax, [ebp + 0x214]
push eax
push edi
push esi
call fcn.00510d20
lea ecx, [ebp]
push ecx
call fcn.00401210
mov edx, dword [ebp + 0x21c]
push edx
lea eax, [ebp]
push eax
call fcn.00527550
mov ecx, dword [ebp + 8]
push ecx
push str.parse_display_name__S_n
call fcn.0048f0d0
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 0x4e28f9
push str.parse_display_name_OK_n
call fcn.0048f0d0
add esp, 4
mov dword [ebp - 4], 3
push str.bind_to_parent_n
call fcn.0048f0d0
add esp, 4
mov ecx, dword [ebp - 0x38]
lea edx, [ecx + ebx*4]
push edx
lea eax, [ebp - 0x30]
push eax
push 0x5868f0
mov ecx, dword [edi]
push ecx
call dword [0x58df18]
test eax, eax
jl 0x4e2895
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.00401230
add dword [ebp - 0x48], 1
jmp 0x4e27c0
push str.ParseDisplayName_failed_n
call fcn.0048f0d0
add esp, 4
mov dword [ebp - 4], 1
lea ecx, [ebp]
push ecx
call fcn.00401230
add dword [ebp - 0x48], 1
jmp 0x4e27c0
push ebx
mov edx, dword [ebp - 0x34]
push edx
push str.get_menu__d__d_n
call fcn.0048f0d0
add esp, 0xc
mov dword [ebp - 4], 4
cmp dword [ebp - 0x24], 0
je 0x4e2992
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax]
lea edx, [ebp - 0x20]
push edx
push 0
push 0x586900
mov edx, dword [ebp - 0x38]
push edx
push ebx
push 0
push eax
mov eax, dword [ecx + 0x28]
call eax
jmp 0x4e29b9
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x68]
push edx
push 4
push 0x4e1fc0
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 [0x598230]
mov dword [ebp - 0x1c], eax
test eax, eax
jl 0x4e32e3
mov eax, dword [ebp - 0x20]
push eax
push str.got_menu__d_n
call fcn.0048f0d0
add esp, 8
cmp dword [ebp - 0x20], 0
je 0x4e32e3
push str.got_menu_1_n
call fcn.0048f0d0
add esp, 4
mov al, byte [0x597ea3]
test al, al
je 0x4e29f9
cmp al, 3
jl 0x4e2a1f
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
lea edx, [esi + 0x420]
push edx
push 0x5868a0
push eax
mov eax, dword [ecx]
call eax
test eax, eax
jne 0x4e2a1a
push str.menu_type_3_n
jmp 0x4e2a46
mov al, byte [0x597ea3]
test al, al
je 0x4e2a27
cmp al, 2
jl 0x4e2a4e
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
lea edx, [esi + 0x41c]
push edx
push 0x5868d0
push eax
mov eax, dword [ecx]
call eax
test eax, eax
jne 0x4e2a4e
push str.menu_type_2_n
call fcn.0048f0d0
add esp, 4
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov ebx, eax
mov dword [ebp - 0x30], ebx
test ebx, ebx
je 0x4e3281
mov dword [ebp - 4], 5
mov edi, 0x10
mov dword [ebp - 0x70], edi
push edi
call fcn.004ade80
test eax, eax
je 0x4e2a82
mov edi, 0x110
mov dword [ebp - 0x70], edi
push str.QueryContextMenu..._n
call fcn.0048f0d0
add esp, 4
mov eax, dword [esi + 0x420]
test eax, eax
jne 0x4e2aa6
mov eax, dword [esi + 0x41c]
test eax, eax
jne 0x4e2aa6
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 0x4e2afe
test eax, eax
jl 0x4e327a
push eax
push str.QueryContextMenu__08x_n
call fcn.0048f0d0
add esp, 8
mov edi, 0x8000
mov dword [ebp - 0x28], edi
cmp byte [0x58a711], 0
je 0x4e2b64
push 0
push 0
push 0xc00
push 0
push ebx
call dword [0x597dfc]
mov dword [esi + 0x400], edi
mov edi, 0x8001
mov dword [ebp - 0x28], edi
mov ecx, dword [0x58deec]
mov edx, dword [ecx + 0x1280]
push edx
push 0x8000
push 0x400
push 0
push ebx
call fcn.004abee0
push 0
push 0
push 0xc00
push 0
push ebx
call dword [0x597dfc]
push 0
movsx eax, byte [0x58a6fd]
push eax
call fcn.004c39a0
test eax, eax
je 0x4e2bb6
mov dword [esi + 0x3f8], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov ecx, dword [0x58deec]
mov edx, dword [ecx + 0x17cc]
push edx
mov eax, dword [esi + 0x3f8]
push eax
push 0x400
push 0
push ebx
call fcn.004abee0
push 0
movsx ecx, byte [0x58a6fe]
push ecx
call fcn.004c39a0
test eax, eax
je 0x4e2bf6
mov dword [esi + 0x3fc], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov edx, dword [0x58deec]
mov eax, dword [edx + 0x28c]
push eax
mov ecx, dword [esi + 0x3fc]
push ecx
push 0x400
push 0
push ebx
call fcn.004abee0
push 1
movsx edx, byte [0x58a6ff]
push edx
call fcn.004c39a0
test eax, eax
je 0x4e2c35
mov dword [esi + 0x3f4], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov eax, dword [0x58deec]
mov ecx, dword [eax + 0x290]
push ecx
mov edx, dword [esi + 0x3f4]
push edx
push 0x400
push 0
push ebx
call fcn.004abee0
cmp byte [0x58a69d], 0
je 0x4e2d49
cmp dword [0x5981a4], 6
sbb eax, eax
neg eax
push eax
movsx ecx, byte [0x58a702]
push ecx
call fcn.004c39a0
test eax, eax
je 0x4e2c8c
mov dword [esi + 0x3f0], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov edx, dword [0x58deec]
mov eax, dword [edx + 0x294]
push eax
mov ecx, dword [esi + 0x3f0]
push ecx
push 0x400
push 0
push ebx
call fcn.004abee0
cmp dword [0x5981a4], 6
sbb edx, edx
neg edx
push edx
movsx eax, byte [0x58a701]
push eax
call fcn.004c39a0
test eax, eax
je 0x4e2cdc
cmp dword [ebp - 0x54], 0
jne 0x4e2cdc
mov dword [esi + 0x3ec], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov ecx, dword [0x58deec]
mov edx, dword [ecx + 0x298]
push edx
mov eax, dword [esi + 0x3ec]
push eax
push 0x400
push 0
push ebx
call fcn.004abee0
push 1
movsx ecx, byte [0x58a700]
push ecx
call fcn.004c39a0
test eax, eax
je 0x4e2d1c
mov dword [esi + 0x3e8], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov edx, dword [0x58deec]
mov eax, dword [edx + 0x29c]
push eax
mov ecx, dword [esi + 0x3e8]
push ecx
push 0x400
push 0
push ebx
call fcn.004abee0
mov dword [esi + 0x3e4], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov edx, dword [0x58deec]
mov eax, dword [edx + 0x2a0]
push eax
mov ecx, dword [esi + 0x3e4]
push ecx
push 0x400
push 0
push ebx
call fcn.004abee0
cmp dword [ebp + 0x340], 0
je 0x4e2e47
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.0048f0d0
push 0x40
push 0
lea edx, [ebp - 0x118]
push edx
call fcn.00549e40
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.004ade80
test eax, eax
je 0x4e2de4
or dword [ebp - 0x114], 0x10000000
push 0x11
call fcn.004ade80
test eax, eax
je 0x4e2df9
or dword [ebp - 0x114], 0x40000000
mov eax, dword [esi + 0x420]
lea edx, [ebp - 0x118]
push edx
test eax, eax
je 0x4e2e1a
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x1c], eax
jmp 0x4e327a
mov eax, dword [esi + 0x41c]
test eax, eax
je 0x4e2e34
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x1c], eax
jmp 0x4e327a
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x1c], eax
jmp 0x4e327a
cmp dword [ebp - 0x2c], 0
je 0x4e2f50
lea ecx, [ebp]
push ecx
call fcn.00401210
mov edi, dword [ebp - 0x2c]
push edi
lea edx, [ebp]
push edx
call fcn.00527550
push 0x40
push 0
lea eax, [ebp - 0xd8]
push eax
call fcn.00549e40
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.004ade80
test eax, eax
je 0x4e2edd
or dword [ebp - 0xd4], 0x10000000
push 0x11
call fcn.004ade80
test eax, eax
je 0x4e2ef2
or dword [ebp - 0xd4], 0x40000000
push edi
push str.invoke__s_n
call fcn.0048f0d0
add esp, 8
mov eax, dword [esi + 0x420]
test eax, eax
je 0x4e2f1b
mov edx, dword [eax]
lea ecx, [ebp - 0xd8]
push ecx
push eax
mov edx, dword [edx + 0x10]
call edx
jmp 0x4e2f37
mov eax, dword [esi + 0x41c]
lea edx, [ebp - 0xd8]
push edx
test eax, eax
jne 0x4e2f2f
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.00401230
push edi
push str._08x_n
jmp 0x4e3272
cmp byte [0x58a69d], 0
je 0x4e2f69
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.0048f0f0
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.0048f0f0
add esp, 0xc
test edi, edi
jbe 0x4e327a
cmp edi, dword [esi + 0x3e4]
jne 0x4e2fef
movsx eax, byte [0x597f01]
push eax
push 0
push 0
push 0
push esi
call fcn.004ccea0
jmp 0x4e327a
cmp edi, dword [esi + 0x3ec]
jne 0x4e3008
mov eax, dword [0x597eb8]
cmp byte [eax], 0
jne 0x4e304e
mov eax, str._exec___SystemRoot_explorer.exe___n__e___1__
jmp 0x4e304e
cmp edi, dword [esi + 0x3f0]
jne 0x4e3037
mov eax, dword [0x597ec0]
cmp byte [eax], 0
jne 0x4e301f
mov eax, str._exec___SystemRoot_explorer.exe___n__e__select___1__
movsx edx, byte [0x597f01]
push edx
push 0
push 0
push eax
push esi
call fcn.004ccea0
jmp 0x4e327a
cmp edi, dword [esi + 0x3e8]
jne 0x4e3066
mov eax, dword [0x597ebc]
cmp byte [eax], 0
jne 0x4e304e
mov eax, str._openpath___1__
movsx ecx, byte [0x597f01]
push ecx
push 0
push 0
push eax
push esi
call fcn.004ccea0
jmp 0x4e327a
cmp edi, dword [esi + 0x3f8]
jne 0x4e307b
push 0
push esi
call fcn.004cb2c0
jmp 0x4e327a
cmp edi, dword [esi + 0x3f4]
jne 0x4e3090
push 2
push esi
call fcn.004cb2c0
jmp 0x4e327a
cmp edi, dword [esi + 0x3fc]
jne 0x4e30a5
push 1
push esi
call fcn.004cb2c0
jmp 0x4e327a
cmp edi, dword [esi + 0x414]
jne 0x4e30d2
push 0x10
call fcn.004ade80
test eax, eax
je 0x4e30c5
push 0
push esi
call fcn.004cb450
jmp 0x4e327a
push 1
push esi
call fcn.004cb450
jmp 0x4e327a
cmp edi, dword [esi + 0x404]
jne 0x4e30e5
push esi
call fcn.004f76d0
jmp 0x4e327a
cmp edi, dword [esi + 0x408]
jne 0x4e30f8
push esi
call fcn.004cccc0
jmp 0x4e327a
cmp edi, dword [esi + 0x40c]
jne 0x4e310b
push esi
call fcn.004ccb80
jmp 0x4e327a
cmp edi, dword [esi + 0x410]
jne 0x4e311e
push esi
call fcn.004c2350
jmp 0x4e327a
cmp edi, dword [esi + 0x400]
jne 0x4e3131
push esi
call fcn.00516a60
jmp 0x4e327a
lea edx, [edi - 1]
cmp edx, 0x7ffe
ja 0x4e327a
push str.using_shell_implementation_n
call fcn.0048f0d0
push 0x40
push 0
lea eax, [ebp - 0x158]
push eax
call fcn.00549e40
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 0x4e31bf
mov eax, dword [esi + 0x41c]
test eax, eax
jne 0x4e31bf
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.0048f0d0
add esp, 8
cmp dword [ebp - 0x1c], 0x80070057
jne 0x4e327a
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 0x4e325a
mov eax, dword [esi + 0x41c]
test eax, eax
jne 0x4e325a
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.0048f0d0
add esp, 8
push ebx
call dword [sym.imp.USER32.dll_DestroyMenu]
mov eax, dword [esi + 0x420]
xor edi, edi
cmp eax, edi
je 0x4e32a8
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 0x4e32e3
mov eax, dword [esi + 0x41c]
cmp eax, edi
je 0x4e32c0
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 0x4e32e3
mov dword [ebp - 4], 1
xor esi, esi
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x6c], esi
cmp esi, dword [ebp - 0x34]
jge 0x4e3306
mov eax, dword [edi + esi*4]
push eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
add esi, 1
jmp 0x4e32ef
push edi
call fcn.004a4a00
mov ecx, dword [ebp - 0x38]
push ecx
call fcn.004a4a00
cmp dword [ebp - 0x24], 0
je 0x4e333e
mov eax, dword [ebp - 0x58]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
jmp 0x4e333e
call fcn.0048f0d0
add esp, 4
mov dword [ebp - 4], 0xfffffffe
mov ecx, dword [ebp - 0x50]
push ecx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
jmp 0x4e2720