Function at 0x300541eb
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x330
mov eax, dword [0x30001bc0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x32c]
push eax
push 0x70
push 0x64
push dword [0x300750cc]
mov dword [ebp - 0x328], ebx
call fcn.3003a5eb
test eax, eax
jne 0x3005446a
push esi
push edi
push dword [ebp - 0x32c]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test ebx, ebx
mov edi, eax
mov dword [ebp - 0x330], edi
mov esi, 0x106
je 0x300542c2
and dword [ebp - 0x324], 0
and dword [ebp - 0x320], 0
lea ebx, [edi + 0x11a]
cmp dword [ebp - 0x324], 0
jne 0x300542c2
push dword [ebp - 0x328]
push ebx
call dword [sym.imp.MSVCR80.dll__stricmp]
test eax, eax
pop ecx
pop ecx
jne 0x3005427f
mov dword [ebp - 0x324], 1
inc dword [ebp - 0x320]
add ebx, esi
cmp dword [ebp - 0x320], 4
jl 0x30054259
cmp dword [ebp - 0x324], 0
jne 0x300542c2
dec dword [edi + 0x10]
jns 0x300542a5
mov dword [edi + 0x10], 3
mov eax, dword [edi + 0x10]
push dword [ebp - 0x328]
imul eax, eax, 0x106
push esi
lea eax, [eax + edi + 0x11a]
push eax
call fcn.3003f6b8
push dword [0x30096384]
call dword [sym.imp.USER32.dll_GetMenuItemCount]
cmp eax, 9
jne 0x300542ea
push 0
push 0
push 0x800
push dword [0x30096384]
call dword [sym.imp.USER32.dll_AppendMenuA]
jmp 0x30054302
push 0x71
pop ebx
push 0
push ebx
push dword [0x30096384]
call dword [sym.imp.USER32.dll_DeleteMenu]
inc ebx
cmp ebx, 0x74
jle 0x300542ed
lea eax, [ebp - 0x31c]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push 0x30001850
push esi
lea eax, [ebp - 0x31c]
push eax
call fcn.30018d6b
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp - 0x31c]
push eax
call ebx
mov dword [ebp - 0x328], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x320], eax
mov dword [ebp - 0x324], 0x71
jmp 0x30054356
mov edi, dword [ebp - 0x330]
mov eax, dword [ebp - 0x320]
imul eax, eax, 0x106
lea edi, [eax + edi + 0x11a]
cmp byte [edi], 0
je 0x30054428
push dword [ebp - 0x328]
lea eax, [ebp - 0x31c]
push eax
push edi
call dword [sym.imp.MSVCR80.dll__strnicmp]
add esp, 0xc
neg eax
sbb eax, eax
not eax
and eax, dword [ebp - 0x328]
add eax, edi
push eax
push esi
lea eax, [ebp - 0x10c]
push eax
call fcn.3003f6b8
lea eax, [ebp - 0x10c]
push eax
call ebx
cmp eax, 0x28
jle 0x300543bf
push esi
lea edi, [ebp - 0x10c]
call fcn.30054129
lea eax, [ebp - 0x10c]
push eax
call ebx
xor ecx, ecx
xor edi, edi
test eax, eax
jle 0x300543f1
mov dl, byte [ebp + edi - 0x10c]
cmp dl, 0x26
mov byte [ebp + ecx - 0x214], dl
jne 0x300543eb
inc ecx
mov byte [ebp + ecx - 0x214], dl
inc ecx
inc edi
cmp edi, eax
jl 0x300543d0
lea eax, [ebp - 0x214]
push eax
push esi
lea eax, [ebp - 0x10c]
push eax
mov byte [ebp + ecx - 0x214], 0
call fcn.3003f6b8
lea eax, [ebp - 0x10c]
push eax
push dword [ebp - 0x324]
push 0
push dword [0x30096384]
call dword [sym.imp.USER32.dll_AppendMenuA]
inc dword [ebp - 0x320]
cmp dword [ebp - 0x320], 4
jl 0x3005443e
and dword [ebp - 0x320], 0
inc dword [ebp - 0x324]
cmp dword [ebp - 0x324], 0x74
jle 0x30054350
push dword [ebp - 0x32c]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push dword [ebp - 0x32c]
call fcn.3003bbfd
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.30071b52
leave
ret 4