Function at 0x7ef70aa8
Capabilities:
Get common file path

Disassembly:
mov eax, 0x7ef94304
call fcn.7ef890d8
sub esp, 0x308
mov dword [ebp - 0xa0], 0x94
lea eax, [ebp - 0xa0]
push eax
call dword [0x7ef960a4]
cmp dword [ebp - 0x90], 2
jb 0x7ef70b17
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
mov dword [eax + 8], ecx
cmp dword [0x7efa5f30], 0
je 0x7ef70b12
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [ebp - 0x2fc], eax
mov eax, dword [ebp + 0x10]
push dword [eax + 0x18]
push 0
push dword [ebp - 0x2fc]
mov eax, dword [0x7efa5f30]
mov eax, dword [eax]
mov ecx, dword [0x7efa5f30]
call dword [eax]
jmp 0x7ef70f6b
lea eax, [ebp - 0x2ac]
push eax
push 0x104
call dword [0x7ef960dc]
lea eax, [ebp - 0x1a4]
push eax
push 0
push str.thsmod
lea eax, [ebp - 0x2ac]
push eax
call dword [0x7ef96210]
lea eax, [ebp - 0x1a4]
push eax
mov ecx, dword [ebp + 0x10]
add ecx, 4
call fcn.7ef86086
cmp dword [0x7efa5f30], 0
je 0x7ef70b97
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x300], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [ebp - 0x304], eax
mov eax, dword [ebp + 0x10]
push dword [eax + 0x18]
push dword [ebp - 0x300]
push dword [ebp - 0x304]
mov eax, dword [0x7efa5f30]
mov eax, dword [eax]
mov ecx, dword [0x7efa5f30]
call dword [eax]
mov dword [ebp - 0x1a8], 0x7efa25b8
mov eax, dword [ebp + 0x10]
cmp dword [eax + 8], 0
jne 0x7ef70f6b
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x2d8], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0x2d8]
mov ecx, dword [ecx + 0x3c]
lea eax, [eax + ecx + 4]
mov dword [ebp - 0x2b8], eax
mov eax, dword [ebp - 0x2b8]
add eax, 0x14
mov dword [ebp - 0x2c4], eax
mov eax, dword [ebp - 0x1a8]
mov dword [ebp - 0x2e4], eax
mov eax, dword [ebp - 0x2e4]
mov eax, dword [eax + 0x3c]
mov ecx, dword [ebp - 0x1a8]
lea eax, [ecx + eax + 4]
mov dword [ebp - 0x2c0], eax
mov eax, dword [ebp - 0x2c0]
add eax, 0x14
mov dword [ebp - 0x2d0], eax
mov eax, dword [ebp - 0x2d0]
add eax, 0xe0
mov dword [ebp - 0x2d4], eax
mov eax, dword [ebp - 0x2e4]
mov eax, dword [eax + 0x3c]
add eax, 0x120
mov dword [ebp - 0x2cc], eax
mov eax, dword [ebp - 0x2c4]
mov eax, dword [eax + 0x70]
mov dword [ebp - 0x2c8], eax
mov eax, dword [ebp - 0x2c4]
mov eax, dword [eax + 0x74]
mov dword [ebp - 0x2bc], eax
cmp dword [ebp - 0x2c8], 0
jne 0x7ef70c69
and dword [ebp - 0x2bc], 0
mov eax, dword [ebp - 0x2bc]
add eax, 0x1018
mov dword [ebp - 0x2b0], eax
mov eax, dword [ebp - 0x2d0]
mov eax, dword [eax + 0x20]
mov ecx, dword [ebp - 0x2b0]
lea eax, [ecx + eax - 1]
mov ecx, dword [ebp - 0x2d0]
mov ecx, dword [ecx + 0x20]
dec ecx
not ecx
and eax, ecx
mov dword [ebp - 0x2b0], eax
push 2
push 0x2000
push dword [ebp - 0x2b0]
push 0
call dword [0x7ef96048]
mov dword [ebp - 0x2e0], eax
mov eax, dword [ebp - 0x2d0]
mov ecx, dword [ebp - 0x2e0]
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x2dc], 0x1018
mov eax, dword [ebp - 0x2c8]
neg eax
sbb eax, eax
and eax, dword [ebp - 0x2dc]
mov ecx, dword [ebp - 0x2d0]
mov dword [ecx + 0x70], eax
mov eax, dword [ebp - 0x2d0]
mov ecx, dword [ebp - 0x2bc]
mov dword [eax + 0x74], ecx
mov eax, dword [ebp - 0x2d0]
and dword [eax + 0x10], 0
mov eax, dword [ebp - 0x2d0]
mov ecx, dword [ebp - 0x2b0]
mov dword [eax + 0x38], ecx
mov eax, dword [ebp - 0x2d0]
mov eax, dword [eax + 0x20]
mov ecx, dword [ebp - 0x2bc]
lea eax, [ecx + eax + 0x17]
mov ecx, dword [ebp - 0x2d0]
mov ecx, dword [ecx + 0x20]
dec ecx
not ecx
and eax, ecx
mov ecx, dword [ebp - 0x2d4]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x2bc]
add eax, 0x18
mov ecx, dword [ebp - 0x2d4]
mov dword [ecx + 0x10], eax
lea eax, [ebp - 0x1a4]
push eax
call fcn.7ef865bd
pop ecx
mov dword [ebp - 0x2f0], eax
and dword [ebp - 4], 0
push 0x2a
lea eax, [ebp - 0x2f0]
push eax
call fcn.7ef87bbe
pop ecx
pop ecx
mov dword [ebp - 0x2b4], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2f0]
call fcn.7ef86114
mov eax, dword [0x7efa2154]
mov eax, dword [eax]
and eax, 0x40000
neg eax
sbb eax, eax
neg eax
movzx eax, al
test eax, eax
je 0x7ef70dd5
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [ebp - 0x308], eax
push dword [ebp + 8]
push dword [ebp - 0x2e0]
push dword [ebp - 0x308]
lea eax, [ebp - 0x1a4]
push eax
push str.creating_95_98_ME_dll_stub__s_for__s___module_address___x__contents___x__n
call fcn.7ef54190
add esp, 0x14
push 0x218
push dword [ebp - 0x1a8]
mov eax, dword [ebp - 0x2b4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x2b4]
call dword [eax + 4]
cmp dword [ebp - 0x2c8], 0
je 0x7ef70ed1
push dword [ebp - 0x2bc]
call fcn.7ef871a5
pop ecx
mov dword [ebp - 0x2ec], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x18]
add eax, dword [ebp - 0x2c8]
mov dword [ebp - 0x2e8], eax
push dword [ebp - 0x2bc]
push dword [ebp - 0x2e8]
push dword [ebp - 0x2ec]
call fcn.7ef89190
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x30c], eax
mov eax, dword [ebp - 0x30c]
sub eax, dword [ebp - 0x2e0]
push eax
push dword [ebp - 0x2ec]
push dword [ebp - 0x2ec]
call fcn.7ef70f77
add esp, 0xc
mov eax, dword [ebp - 0x2b4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x2b4]
call dword [eax + 0x10]
mov ecx, dword [ebp - 0x2d4]
cmp eax, dword [ecx + 0x14]
jae 0x7ef70ea8
and byte [ebp - 0x310], 0
push 1
lea eax, [ebp - 0x310]
push eax
mov eax, dword [ebp - 0x2b4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x2b4]
call dword [eax + 4]
jmp 0x7ef70e69
push dword [ebp - 0x2bc]
push dword [ebp - 0x2ec]
mov eax, dword [ebp - 0x2b4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x2b4]
call dword [eax + 4]
push dword [ebp - 0x2ec]
call fcn.7ef8726e
pop ecx
mov eax, dword [ebp - 0x2b4]
mov dword [ebp - 0x2f8], eax
mov eax, dword [ebp - 0x2f8]
mov dword [ebp - 0x2f4], eax
cmp dword [ebp - 0x2f4], 0
je 0x7ef70f0d
push 1
mov eax, dword [ebp - 0x2f4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x2f4]
call dword [eax + 0x20]
mov dword [ebp - 0x314], eax
jmp 0x7ef70f14
and dword [ebp - 0x314], 0
push 0x8000
push 0
push dword [ebp - 0x2e0]
call dword [0x7ef96200]
lea eax, [ebp - 0x1a4]
push eax
call dword [0x7ef962bc]
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 0x10]
cmp dword [eax + 8], 0
je 0x7ef70f66
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 8]
and al, 0xfe
cmp eax, dword [ebp - 0x2e0]
je 0x7ef70f66
mov eax, dword [ebp + 0x10]
push dword [eax + 8]
call dword [0x7ef9620c]
mov eax, dword [ebp + 0x10]
and dword [eax + 8], 0
jmp 0x7ef70ba1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
leave
ret