Function at 0x4e13d0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
lea ebp, [esp - 0x328]
sub esp, 0x328
push 0xfffffffffffffffe
push 0x587310
push 0x549210
mov eax, dword fs:[0]
push eax
sub esp, 0x148
mov eax, dword [0x596f48]
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 [0x58a654], 0
je 0x4e193b
mov ecx, dword [esi + 0x180]
push ecx
call fcn.004b78e0
push esi
call fcn.004c9da0
mov dword [ebp - 0x24], edi
cmp dword [0x5981a4], edi
je 0x4e1460
cmp dword [0x5981a8], edi
jne 0x4e146a
mov ebx, 1
mov dword [ebp - 0x24], ebx
jmp 0x4e146f
mov ebx, 1
cmp byte [0x597e64], 0
je 0x4e147b
mov dword [ebp - 0x24], ebx
push esi
call fcn.0050fdd0
mov dword [ebp - 0x20], eax
cmp eax, ebx
jne 0x4e148b
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.00519790
cmp eax, edi
jl 0x4e193b
lea eax, [ebp + 0x214]
push eax
call fcn.00522730
push 2
push esi
call fcn.005100d0
mov edi, eax
push edi
push esi
call fcn.0050fe90
test eax, eax
je 0x4e152c
lea ecx, [ebp + 0x214]
push ecx
push edi
push esi
call fcn.0050ff70
push edi
push esi
call fcn.0050ff30
mov ebx, eax
push edi
push esi
call fcn.0050ff50
jmp 0x4e154d
lea edx, [ebp + 0x214]
push edx
push 0
push esi
call fcn.005100b0
push 0
push esi
call fcn.0050fed0
mov ebx, eax
push 0
push esi
call fcn.0050fef0
test eax, eax
je 0x4e155a
mov dword [ebp - 0x24], 1
jmp 0x4e15b1
cmp dword [ebp - 0x24], 0
jne 0x4e15b1
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.004e11f0
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test ebx, ebx
je 0x4e1591
lea ecx, [ebp - 0x60]
push ecx
push str.Folder
jmp 0x4e159a
lea edx, [ebp - 0x60]
push edx
push 0x554698
push closesocket
call edi
lea eax, [ebp - 0x5c]
push eax
push str.AllFilesystemObjects
push closesocket
call edi
cmp byte [0x58a610], 0
je 0x4e1685
lea ecx, [ebp]
push ecx
call fcn.00522730
mov edx, dword [ebp + 0x21c]
push edx
lea eax, [ebp]
push eax
call fcn.00526830
mov ecx, dword [ebp + 8]
push ecx
push str.ParseDisplayName__S_n
call fcn.0048f0a0
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 0x4e1640
lea eax, [ebp]
push eax
call fcn.00401260
test edi, edi
jl 0x4e168a
mov dword [ebp - 4], 1
cmp dword [ebp - 0x24], 0
je 0x4e1962
push 0
lea ecx, [ebp - 0x58]
push ecx
push 0x585f88
mov edx, dword [ebp - 0x50]
push edx
call dword [0x58dea8]
test eax, eax
jge 0x4e1962
push str.os_sh_bind_to_parent_on_desktop_failed_n
jmp 0x4e2506
mov edi, 0x80004001
push edi
push str.no_menu__d_n
call fcn.0048f0a0
add esp, 8
cmp dword [ebp + 0x340], 0
jne 0x4e18f0
cmp dword [ebp - 0x2c], 0
jne 0x4e18f0
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov edi, eax
mov dword [ebp - 0x2c], 1
push esi
call fcn.0050fdd0
mov dword [ebp - 0x30], eax
xor ebx, ebx
test eax, eax
jle 0x4e16e6
lea ecx, [ecx]
push ebx
push esi
call fcn.0050fed0
test eax, eax
jne 0x4e16de
mov dword [ebp - 0x2c], eax
add ebx, 1
cmp ebx, dword [ebp - 0x30]
jl 0x4e16d0
cmp byte [0x58a64f], 0
je 0x4e17b0
mov edx, dword [0x58de7c]
mov eax, dword [edx + 0x2a0]
push eax
push 0xa028
push 0
push edi
call fcn.004a9f20
push 1
movsx ecx, byte [0x58a6b6]
push ecx
call fcn.004c2cd0
test eax, eax
je 0x4e173a
mov edx, dword [0x58de7c]
mov eax, dword [edx + 0x29c]
push eax
push 0xa02b
push 0
push edi
call fcn.004a9f20
mov ebx, 6
cmp dword [0x598120], ebx
sbb ecx, ecx
neg ecx
push ecx
movsx edx, byte [0x58a6b7]
push edx
call fcn.004c2cd0
test eax, eax
je 0x4e177a
cmp dword [ebp - 0x2c], 0
je 0x4e177a
mov eax, dword [0x58de7c]
mov ecx, dword [eax + 0x298]
push ecx
push 0xa029
push 0
push edi
call fcn.004a9f20
cmp dword [0x598120], ebx
sbb edx, edx
neg edx
push edx
movsx eax, byte [0x58a6b8]
push eax
call fcn.004c2cd0
test eax, eax
je 0x4e17b0
mov ecx, dword [0x58de7c]
mov edx, dword [ecx + 0x294]
push edx
push 0xa02a
push 0
push edi
call fcn.004a9f20
push 0
movsx eax, byte [0x58a69b]
push eax
call fcn.004c2cd0
test eax, eax
je 0x4e17dd
mov ecx, dword [0x58de7c]
mov edx, dword [ecx + 0x17cc]
push edx
push 0xa033
push 0
push edi
call fcn.004a9f20
push 0
movsx eax, byte [0x58a6b4]
push eax
call fcn.004c2cd0
test eax, eax
je 0x4e180a
mov ecx, dword [0x58de7c]
mov edx, dword [ecx + 0x28c]
push edx
push 0xa030
push 0
push edi
call fcn.004a9f20
push 1
movsx eax, byte [0x58a6b5]
push eax
call fcn.004c2cd0
test eax, eax
je 0x4e1837
mov ecx, dword [0x58de7c]
mov edx, dword [ecx + 0x290]
push edx
push 0xa02f
push 0
push edi
call fcn.004a9f20
push edi
call fcn.004a9fb0
cmp byte [0x58a6c7], 0
je 0x4e1865
mov eax, dword [0x58de7c]
mov ecx, dword [eax + 0x1280]
push ecx
push 0xa06c
push 0
push edi
call fcn.004a9f20
push edi
call fcn.004a9fb0
cmp byte [0x58a655], 0
je 0x4e1888
mov edx, dword [0x58de7c]
mov eax, dword [edx + 0x9c0]
push eax
push 0xa02c
push 0
push edi
call fcn.004a9f20
cmp byte [0x58a656], 0
je 0x4e18ab
mov ecx, dword [0x58de7c]
mov edx, dword [ecx + 0x9c8]
push edx
push 0xa02e
push 0
push edi
call fcn.004a9f20
push edi
call fcn.004a9fb0
mov eax, dword [0x58de7c]
mov ecx, dword [eax + 0x9b4]
push ecx
push 0xa068
push 0
push edi
call fcn.004a9f20
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 0x4e1924
mov eax, dword [ebp - 0x68]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x4e1906
push eax
call esi
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x4e1910
push eax
call esi
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x4e191a
push eax
call esi
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x4e1924
push eax
call esi
lea edx, [ebp + 0x214]
push edx
call fcn.00401260
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.0054899c
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.004a3fd0
mov dword [ebp - 0x4c], eax
push edi
call fcn.004a3fd0
mov dword [ebp - 0x38], eax
xor ebx, ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x48], ebx
jmp 0x4e1990
mov edi, dword [ebp - 0x48]
cmp edi, dword [ebp - 0x20]
jge 0x4e1b24
push edi
push esi
call fcn.0050fed0
test eax, eax
jne 0x4e19ae
mov dword [ebp - 0x54], 1
lea eax, [ebp + 0x214]
push eax
push edi
push esi
call fcn.005100b0
lea ecx, [ebp]
push ecx
call fcn.00522730
mov edx, dword [ebp + 0x21c]
push edx
lea eax, [ebp]
push eax
call fcn.00526830
mov ecx, dword [ebp + 8]
push ecx
push str.parse_display_name__S_n
call fcn.0048f0a0
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 0x4e1ac9
push str.parse_display_name_OK_n
call fcn.0048f0a0
add esp, 4
mov dword [ebp - 4], 3
push str.bind_to_parent_n
call fcn.0048f0a0
add esp, 4
mov ecx, dword [ebp - 0x38]
lea edx, [ecx + ebx*4]
push edx
lea eax, [ebp - 0x30]
push eax
push 0x585f88
mov ecx, dword [edi]
push ecx
call dword [0x58dea8]
test eax, eax
jl 0x4e1a65
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.00401260
add dword [ebp - 0x48], 1
jmp 0x4e1990
push str.ParseDisplayName_failed_n
call fcn.0048f0a0
add esp, 4
mov dword [ebp - 4], 1
lea ecx, [ebp]
push ecx
call fcn.00401260
add dword [ebp - 0x48], 1
jmp 0x4e1990
push ebx
mov edx, dword [ebp - 0x34]
push edx
push str.get_menu__d__d_n
call fcn.0048f0a0
add esp, 0xc
mov dword [ebp - 4], 4
cmp dword [ebp - 0x24], 0
je 0x4e1b62
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax]
lea edx, [ebp - 0x20]
push edx
push 0
push 0x585f98
mov edx, dword [ebp - 0x38]
push edx
push ebx
push 0
push eax
mov eax, dword [ecx + 0x28]
call eax
jmp 0x4e1b89
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x68]
push edx
push 4
push 0x4e1190
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 [0x5981a4]
mov dword [ebp - 0x1c], eax
test eax, eax
jl 0x4e24b3
mov eax, dword [ebp - 0x20]
push eax
push str.got_menu__d_n
call fcn.0048f0a0
add esp, 8
cmp dword [ebp - 0x20], 0
je 0x4e24b3
push str.got_menu_1_n
call fcn.0048f0a0
add esp, 4
mov al, byte [0x597e23]
test al, al
je 0x4e1bc9
cmp al, 3
jl 0x4e1bef
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
lea edx, [esi + 0x420]
push edx
push 0x585f38
push eax
mov eax, dword [ecx]
call eax
test eax, eax
jne 0x4e1bea
push str.menu_type_3_n
jmp 0x4e1c16
mov al, byte [0x597e23]
test al, al
je 0x4e1bf7
cmp al, 2
jl 0x4e1c1e
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
lea edx, [esi + 0x41c]
push edx
push 0x585f68
push eax
mov eax, dword [ecx]
call eax
test eax, eax
jne 0x4e1c1e
push str.menu_type_2_n
call fcn.0048f0a0
add esp, 4
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov ebx, eax
mov dword [ebp - 0x30], ebx
test ebx, ebx
je 0x4e2451
mov dword [ebp - 4], 5
mov edi, 0x10
mov dword [ebp - 0x70], edi
push edi
call fcn.004ad9f0
test eax, eax
je 0x4e1c52
mov edi, 0x110
mov dword [ebp - 0x70], edi
push str.QueryContextMenu..._n
call fcn.0048f0a0
add esp, 4
mov eax, dword [esi + 0x420]
test eax, eax
jne 0x4e1c76
mov eax, dword [esi + 0x41c]
test eax, eax
jne 0x4e1c76
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 0x4e1cce
test eax, eax
jl 0x4e244a
push eax
push str.QueryContextMenu__08x_n
call fcn.0048f0a0
add esp, 8
mov edi, 0x8000
mov dword [ebp - 0x28], edi
cmp byte [0x58a6c7], 0
je 0x4e1d34
push 0
push 0
push 0xc00
push 0
push ebx
call dword [0x597d8c]
mov dword [esi + 0x400], edi
mov edi, 0x8001
mov dword [ebp - 0x28], edi
mov ecx, dword [0x58de7c]
mov edx, dword [ecx + 0x1280]
push edx
push 0x8000
push 0x400
push 0
push ebx
call fcn.004aba00
push 0
push 0
push 0xc00
push 0
push ebx
call dword [0x597d8c]
push 0
movsx eax, byte [0x58a69b]
push eax
call fcn.004c2cd0
test eax, eax
je 0x4e1d86
mov dword [esi + 0x3f8], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov ecx, dword [0x58de7c]
mov edx, dword [ecx + 0x17cc]
push edx
mov eax, dword [esi + 0x3f8]
push eax
push 0x400
push 0
push ebx
call fcn.004aba00
push 0
movsx ecx, byte [0x58a6b4]
push ecx
call fcn.004c2cd0
test eax, eax
je 0x4e1dc6
mov dword [esi + 0x3fc], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov edx, dword [0x58de7c]
mov eax, dword [edx + 0x28c]
push eax
mov ecx, dword [esi + 0x3fc]
push ecx
push 0x400
push 0
push ebx
call fcn.004aba00
push 1
movsx edx, byte [0x58a6b5]
push edx
call fcn.004c2cd0
test eax, eax
je 0x4e1e05
mov dword [esi + 0x3f4], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov eax, dword [0x58de7c]
mov ecx, dword [eax + 0x290]
push ecx
mov edx, dword [esi + 0x3f4]
push edx
push 0x400
push 0
push ebx
call fcn.004aba00
cmp byte [0x58a64f], 0
je 0x4e1f19
cmp dword [0x598120], 6
sbb eax, eax
neg eax
push eax
movsx ecx, byte [0x58a6b8]
push ecx
call fcn.004c2cd0
test eax, eax
je 0x4e1e5c
mov dword [esi + 0x3f0], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov edx, dword [0x58de7c]
mov eax, dword [edx + 0x294]
push eax
mov ecx, dword [esi + 0x3f0]
push ecx
push 0x400
push 0
push ebx
call fcn.004aba00
cmp dword [0x598120], 6
sbb edx, edx
neg edx
push edx
movsx eax, byte [0x58a6b7]
push eax
call fcn.004c2cd0
test eax, eax
je 0x4e1eac
cmp dword [ebp - 0x54], 0
jne 0x4e1eac
mov dword [esi + 0x3ec], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov ecx, dword [0x58de7c]
mov edx, dword [ecx + 0x298]
push edx
mov eax, dword [esi + 0x3ec]
push eax
push 0x400
push 0
push ebx
call fcn.004aba00
push 1
movsx ecx, byte [0x58a6b6]
push ecx
call fcn.004c2cd0
test eax, eax
je 0x4e1eec
mov dword [esi + 0x3e8], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov edx, dword [0x58de7c]
mov eax, dword [edx + 0x29c]
push eax
mov ecx, dword [esi + 0x3e8]
push ecx
push 0x400
push 0
push ebx
call fcn.004aba00
mov dword [esi + 0x3e4], edi
add edi, 1
mov dword [ebp - 0x28], edi
mov edx, dword [0x58de7c]
mov eax, dword [edx + 0x2a0]
push eax
mov ecx, dword [esi + 0x3e4]
push ecx
push 0x400
push 0
push ebx
call fcn.004aba00
cmp dword [ebp + 0x340], 0
je 0x4e2017
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.0048f0a0
push 0x40
push 0
lea edx, [ebp - 0x118]
push edx
call fcn.00549090
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.004ad9f0
test eax, eax
je 0x4e1fb4
or dword [ebp - 0x114], 0x10000000
push 0x11
call fcn.004ad9f0
test eax, eax
je 0x4e1fc9
or dword [ebp - 0x114], 0x40000000
mov eax, dword [esi + 0x420]
lea edx, [ebp - 0x118]
push edx
test eax, eax
je 0x4e1fea
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x1c], eax
jmp 0x4e244a
mov eax, dword [esi + 0x41c]
test eax, eax
je 0x4e2004
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x1c], eax
jmp 0x4e244a
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x1c], eax
jmp 0x4e244a
cmp dword [ebp - 0x2c], 0
je 0x4e2120
lea ecx, [ebp]
push ecx
call fcn.00522730
mov edi, dword [ebp - 0x2c]
push edi
lea edx, [ebp]
push edx
call fcn.00526830
push 0x40
push 0
lea eax, [ebp - 0xd8]
push eax
call fcn.00549090
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.004ad9f0
test eax, eax
je 0x4e20ad
or dword [ebp - 0xd4], 0x10000000
push 0x11
call fcn.004ad9f0
test eax, eax
je 0x4e20c2
or dword [ebp - 0xd4], 0x40000000
push edi
push str.invoke__s_n
call fcn.0048f0a0
add esp, 8
mov eax, dword [esi + 0x420]
test eax, eax
je 0x4e20eb
mov edx, dword [eax]
lea ecx, [ebp - 0xd8]
push ecx
push eax
mov edx, dword [edx + 0x10]
call edx
jmp 0x4e2107
mov eax, dword [esi + 0x41c]
lea edx, [ebp - 0xd8]
push edx
test eax, eax
jne 0x4e20ff
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.00401260
push edi
push str._08x_n
jmp 0x4e2442
cmp byte [0x58a64f], 0
je 0x4e2139
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.0048f0c0
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.0048f0c0
add esp, 0xc
test edi, edi
jbe 0x4e244a
cmp edi, dword [esi + 0x3e4]
jne 0x4e21bf
movsx eax, byte [0x597e81]
push eax
push 0
push 0
push 0
push esi
call fcn.004cba20
jmp 0x4e244a
cmp edi, dword [esi + 0x3ec]
jne 0x4e21d8
mov eax, dword [0x597e38]
cmp byte [eax], 0
jne 0x4e221e
mov eax, str._exec___SystemRoot_explorer.exe___n__e___1__
jmp 0x4e221e
cmp edi, dword [esi + 0x3f0]
jne 0x4e2207
mov eax, dword [0x597e40]
cmp byte [eax], 0
jne 0x4e21ef
mov eax, str._exec___SystemRoot_explorer.exe___n__e__select___1__
movsx edx, byte [0x597e81]
push edx
push 0
push 0
push eax
push esi
call fcn.004cba20
jmp 0x4e244a
cmp edi, dword [esi + 0x3e8]
jne 0x4e2236
mov eax, dword [0x597e3c]
cmp byte [eax], 0
jne 0x4e221e
mov eax, str._openpath___1__
movsx ecx, byte [0x597e81]
push ecx
push 0
push 0
push eax
push esi
call fcn.004cba20
jmp 0x4e244a
cmp edi, dword [esi + 0x3f8]
jne 0x4e224b
push 0
push esi
call fcn.004ca1d0
jmp 0x4e244a
cmp edi, dword [esi + 0x3f4]
jne 0x4e2260
push 2
push esi
call fcn.004ca1d0
jmp 0x4e244a
cmp edi, dword [esi + 0x3fc]
jne 0x4e2275
push 1
push esi
call fcn.004ca1d0
jmp 0x4e244a
cmp edi, dword [esi + 0x414]
jne 0x4e22a2
push 0x10
call fcn.004ad9f0
test eax, eax
je 0x4e2295
push 0
push esi
call fcn.004ca360
jmp 0x4e244a
push 1
push esi
call fcn.004ca360
jmp 0x4e244a
cmp edi, dword [esi + 0x404]
jne 0x4e22b5
push esi
call fcn.004f68a0
jmp 0x4e244a
cmp edi, dword [esi + 0x408]
jne 0x4e22c8
push esi
call fcn.004cb570
jmp 0x4e244a
cmp edi, dword [esi + 0x40c]
jne 0x4e22db
push esi
call fcn.004cb430
jmp 0x4e244a
cmp edi, dword [esi + 0x410]
jne 0x4e22ee
push esi
call fcn.004c1680
jmp 0x4e244a
cmp edi, dword [esi + 0x400]
jne 0x4e2301
push esi
call fcn.00515e20
jmp 0x4e244a
lea edx, [edi - 1]
cmp edx, 0x7ffe
ja 0x4e244a
push str.using_shell_implementation_n
call fcn.0048f0a0
push 0x40
push 0
lea eax, [ebp - 0x158]
push eax
call fcn.00549090
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 0x4e238f
mov eax, dword [esi + 0x41c]
test eax, eax
jne 0x4e238f
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.0048f0a0
add esp, 8
cmp dword [ebp - 0x1c], 0x80070057
jne 0x4e244a
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 0x4e242a
mov eax, dword [esi + 0x41c]
test eax, eax
jne 0x4e242a
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.0048f0a0
add esp, 8
push ebx
call dword [sym.imp.USER32.dll_DestroyMenu]
mov eax, dword [esi + 0x420]
xor edi, edi
cmp eax, edi
je 0x4e2478
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 0x4e24b3
mov eax, dword [esi + 0x41c]
cmp eax, edi
je 0x4e2490
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 0x4e24b3
mov dword [ebp - 4], 1
xor esi, esi
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x6c], esi
cmp esi, dword [ebp - 0x34]
jge 0x4e24d6
mov eax, dword [edi + esi*4]
push eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
add esi, 1
jmp 0x4e24bf
push edi
call fcn.004a4030
mov ecx, dword [ebp - 0x38]
push ecx
call fcn.004a4030
cmp dword [ebp - 0x24], 0
je 0x4e250e
mov eax, dword [ebp - 0x58]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
jmp 0x4e250e
call fcn.0048f0a0
add esp, 4
mov dword [ebp - 4], 0xfffffffe
mov ecx, dword [ebp - 0x50]
push ecx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
jmp 0x4e18f0