Function at 0x4e5e38
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 0x3a
add esp, 0xfffff004
push eax
dec eax
jne 0x4e5e41
mov eax, dword [ebp - 4]
add esp, 0xfffff518
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x3aaec], ebx
mov dword [ebp - 0x3aae8], ebx
mov dword [ebp - 0x3aae4], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x28], ebx
mov esi, edx
lea edi, [ebp - 0xc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4e64b8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
call fcn.00404ebc
mov byte [ebp - 0x29], 1
mov ecx, dword [ebp - 4]
mov dl, 1
mov eax, dword [0x471760]
call fcn.00476c60
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x10], 0
je 0x4e5f6d
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x34]
call fcn.00474544
mov esi, eax
dec esi
test esi, esi
jl 0x4e5f5f
inc esi
xor ebx, ebx
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.00474554
call fcn.004e5d3c
mov edx, eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x34]
call fcn.004748c0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.00474554
call fcn.00474544
test eax, eax
jle 0x4e5f57
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.00474554
call fcn.00474544
mov edi, eax
dec edi
test edi, edi
jl 0x4e5f57
inc edi
mov dword [ebp - 0x20], 0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.00474554
mov edx, dword [ebp - 0x20]
call fcn.00474554
call fcn.004e5d3c
push eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.00474554
pop edx
call fcn.004748c0
inc dword [ebp - 0x20]
dec edi
jne 0x4e5f23
inc ebx
dec esi
jne 0x4e5ecd
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 0x48]
mov eax, dword [ebp - 0x24]
call fcn.00476104
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x4e5ff2
xor eax, eax
push ebp
push 0x4e5feb
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x3a9b4]
mov ecx, 0xea60
mov eax, dword [ebp - 4]
call fcn.004e5c74
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
mov edx, dword [eax]
call dword [edx + 0x14]
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x3aae4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov ecx, dword [ebp - 0x3aae4]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x30]
lea eax, [ebp - 0x28]
call fcn.004051e4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4e602c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
mov edx, dword [eax]
call dword [edx + 0x44]
ret
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.004e5408
mov dword [ebp - 0x3a9b4], eax
lea edx, [ebp - 0x3aae8]
mov eax, dword [ebp - 4]
call fcn.004e7254
mov ecx, dword [ebp - 0x3aae8]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x30]
lea eax, [ebp - 0x28]
call fcn.004051e4
mov dword [ebp - 0x1c], 1
xor eax, eax
push ebp
push 0x4e643c
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x14]
push eax
push 0
mov eax, dword [0x533c94]
push eax
lea eax, [ebp - 0x3a9b4]
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 4]
call fcn.004e59f8
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
push eax
mov eax, dword [eax]
call dword [eax + 0x28]
mov ebx, eax
mov eax, ebx
call fcn.0041833c
test al, al
je 0x4e63f0
mov eax, dword [ebp - 4]
add eax, 0x5c
call fcn.00406d9c
push eax
mov eax, dword [0x533aec]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [eax]
call dword [eax]
test eax, eax
je 0x4e60a0
mov eax, dword [ebp - 4]
add eax, 0x5c
call fcn.00406d9c
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x34]
test eax, eax
je 0x4e63f0
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
mov dword [eax + 0x60], edx
mov ebx, 4
mov eax, dword [ebp - 4]
cmp word [eax + 0x202], 0
je 0x4e60ce
add ebx, 0x10
mov eax, dword [ebp - 4]
cmp byte [eax + 0x219], 0
je 0x4e60de
xor esi, esi
jmp 0x4e60eb
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x34]
call fcn.00474544
mov esi, eax
push ebx
push 0xff
push 1
push esi
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x34]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
mov ebx, eax
mov eax, ebx
call fcn.0041833c
test al, al
je 0x4e63f0
mov eax, dword [ebp - 4]
push eax
push fcn.004e7578
call fcn.0042602c
mov dword [ebp - 0x30], eax
xor eax, eax
push ebp
push 0x4e63e9
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 0x10], 0
je 0x4e6152
mov eax, dword [ebp - 0x10]
cmp word [eax + 0x72], 0
je 0x4e6152
mov ebx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebx + 0x74]
call dword [ebx + 0x70]
push 0
mov eax, dword [ebp - 0x30]
push eax
push 0
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0x102
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x34]
push eax
call sub.user32.dll_TrackPopupMenu
mov word [ebp - 0x16], ax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x34]
call fcn.00474544
mov esi, eax
dec esi
test esi, esi
jl 0x4e6245
inc esi
xor ebx, ebx
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.00474554
mov ax, word [eax + 0x50]
cmp ax, word [ebp - 0x16]
jne 0x4e61c1
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.00474554
mov edx, dword [eax]
call dword [edx + 0x44]
mov word [ebp - 0x16], 0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.00474554
call fcn.00474544
test eax, eax
jle 0x4e623d
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.00474554
call fcn.00474544
mov edi, eax
dec edi
test edi, edi
jl 0x4e623d
inc edi
mov dword [ebp - 0x20], 0
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.00474554
mov edx, dword [ebp - 0x20]
call fcn.00474554
mov ax, word [eax + 0x50]
cmp ax, word [ebp - 0x16]
jne 0x4e6237
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.00474554
mov edx, dword [ebp - 0x20]
call fcn.00474554
mov edx, dword [eax]
call dword [edx + 0x44]
mov word [ebp - 0x16], 0
inc dword [ebp - 0x20]
dec edi
jne 0x4e61f8
inc ebx
dec esi
jne 0x4e6192
cmp word [ebp - 0x16], 0
jbe 0x4e63cd
push 0x104
lea eax, [ebp - 0x3aadd]
push eax
push 0
push 0
movzx eax, word [ebp - 0x16]
dec eax
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [eax]
call dword [eax + 0x14]
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x3aadd]
call fcn.004050b4
mov eax, dword [ebp - 4]
cmp word [eax + 0x20a], 0
je 0x4e62a3
lea ecx, [ebp - 0x29]
mov edx, dword [ebp + 8]
mov edx, dword [edx]
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + 0x20c]
call dword [ebx + 0x208]
jmp 0x4e62f1
mov eax, dword [ebp - 4]
cmp byte [eax + 0x211], 0
je 0x4e62ec
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov edx, 0x4e64d0
call fcn.00409760
test eax, eax
je 0x4e62e8
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov edx, 0x4e64e0
call fcn.00409760
test eax, eax
je 0x4e62e8
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov edx, 0x4e64ec
call fcn.00409760
test eax, eax
jne 0x4e62ec
xor eax, eax
jmp 0x4e62ee
mov al, 1
mov byte [ebp - 0x29], al
cmp byte [ebp - 0x29], 0
je 0x4e63c5
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov edx, 0x4e64fc
call fcn.00409760
test eax, eax
jne 0x4e6349
mov eax, dword [ebp - 4]
cmp word [eax + 0x202], 0
je 0x4e6349
cmp byte [ebp - 0x29], 0
je 0x4e6349
mov eax, dword [ebp - 4]
cmp word [eax + 0x202], 0
je 0x4e63cd
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x204]
call dword [ebx + 0x200]
jmp 0x4e63cd
mov dword [ebp - 0x3a9d8], 0x24
xor eax, eax
mov dword [ebp - 0x3a9d4], eax
mov eax, dword [ebp - 4]
call fcn.004e59f8
mov dword [ebp - 0x3a9d0], eax
movzx eax, word [ebp - 0x16]
dec eax
mov dword [ebp - 0x3a9cc], eax
xor eax, eax
mov dword [ebp - 0x3a9bc], eax
xor eax, eax
mov dword [ebp - 0x3a9b8], eax
mov dword [ebp - 0x3a9c0], 1
xor eax, eax
mov dword [ebp - 0x3a9c8], eax
xor eax, eax
mov dword [ebp - 0x3a9c4], eax
lea eax, [ebp - 0x3a9d8]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [eax]
call dword [eax + 0x10]
mov ebx, eax
mov eax, ebx
call fcn.0041833c
test al, al
jne 0x4e63cd
mov eax, dword [ebp + 8]
call fcn.00404ebc
jmp 0x4e63cd
mov eax, dword [ebp + 8]
call fcn.00404ebc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4e63f0
cmp dword [ebp - 0x30], 0
jbe 0x4e63e8
mov eax, dword [ebp - 0x30]
call fcn.004260e0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4e6443
mov eax, dword [ebp - 0x24]
call fcn.00403f6c
mov eax, dword [ebp - 4]
add eax, 0x5c
call fcn.00406d9c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x60], edx
mov esi, dword [ebp - 0x1c]
dec esi
test esi, esi
jl 0x4e643b
inc esi
lea ebx, [ebp - 0x3a9b4]
mov eax, dword [ebx]
push eax
mov eax, dword [0x54ec68]
push eax
mov eax, dword [eax]
call dword [eax + 0x14]
add ebx, 4
dec esi
jne 0x4e6427
ret