Function at 0xf727af5
Capabilities:
Get common file path
Hide graphical window
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x414
push ebx
push esi
push edi
mov eax, dword [ebp + 0xc]
xor edi, edi
mov ecx, dword [eax]
mov dword [ebp - 4], edi
mov dword [ebp - 8], edi
mov esi, dword [ecx + 0x3c]
mov dword [ebp - 0x108], edi
test esi, esi
jne 0xf727b9f
push 0x104
lea eax, [ebp - 0x414]
push eax
push dword [0xf7ae6d8]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0xf741322
test esi, esi
jne 0xf727b9f
lea ebx, [ebp - 0x310]
lea eax, [ebp - 0x414]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [ebp - 0x310], 0
jne 0xf727beb
lea eax, [ebp - 0x310]
push eax
push 4
push 0
push 4
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov dword [0xf7ae6fc], eax
test eax, eax
je 0xf741322
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 0xb7
cmp eax, 1
sbb eax, eax
neg eax
mov dword [0xf7ae71c], eax
push 0x8001
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push pe_nt_image_headers32
lea eax, [ebp - 0x20c]
push eax
push dword [0xf7ae6d4]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ebx, [ebp + eax - 0x20c]
cmp byte [ebx], 0x5c
je 0xf727bf2
cmp byte [ebx], 0x3a
je 0xf727c04
dec ebx
jmp 0xf727bc9
mov byte [ebx], 0x3f
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
cmp byte [eax], 0
mov ebx, eax
je 0xf727b64
cmp byte [ebx], 0x5c
jne 0xf727bd9
jmp 0xf727bd6
push ebx
lea eax, [ebp - 0x20c]
push eax
call fcn.0f731024
cmp eax, 1
jne 0xf727bce
mov eax, dword [0xf7ae730]
lea ecx, [ebp - 0x20c]
mov byte [ebx + 1], 0
add eax, 6
push eax
push ecx
call fcn.0f727592
test eax, eax
je 0xf741263
mov edx, dword [0xf7ae730]
mov ecx, dword [edx + 0x24]
mov dword [0xf7b9538], ecx
mov dword [0xf7ae6b8], eax
test eax, eax
je 0xf7412cf
mov dword [ebp - 0x108], 1
call fcn.0f72e6f3
test eax, eax
je 0xf741322
mov ecx, dword [0xf7ae270]
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0xf7412f7
mov eax, dword [ecx + 0x8c]
test eax, eax
jne 0xf741313
call fcn.0f729e3d
test eax, eax
je 0xf741322
push 0x2cec
call fcn.0f72c943
mov dword [0xf7b8990], eax
test eax, eax
je 0xf741322
push 0x800
call fcn.0f72c943
mov dword [0xf7b86b0], eax
test eax, eax
je 0xf741322
test esi, esi
jne 0xf727ccd
call fcn.0f727ac5
cmp eax, 1
je 0xf741546
cmp eax, 2
je 0xf741322
push 0xf7ae6f8
push 1
call dword [sym.imp.ole32.dll_CoGetMalloc]
push 1
mov ebx, dword [ebp + 8]
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push dword [0xf7b8990]
call fcn.0f72c825
mov edi, eax
test edi, edi
je 0xf7414cf
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [0xf7ae730]
cmp word [eax + 4], 0x976
jne 0xf74136d
test esi, esi
jne 0xf727d64
push 0
lea ecx, [ebp - 0x414]
push ecx
mov ecx, 0xf7ae580
push dword [eax + 0x5c]
call fcn.0f7289f4
mov dword [ebp - 4], eax
test eax, eax
jne 0xf72816a
test esi, esi
jne 0xf727d64
lea eax, [ebp - 0x108]
push eax
push edi
call fcn.0f72785a
mov dword [ebp - 4], eax
test eax, eax
jne 0xf72816a
cmp dword [ebp - 0x108], 0
jne 0xf741546
call fcn.0f727a20
mov dword [ebp - 4], eax
test eax, eax
jne 0xf72816a
lea eax, [ebp - 0x20c]
mov ecx, 0xf7ae230
push eax
call fcn.0f72e818
test eax, eax
je 0xf7414cf
cmp dword [0xf7ae518], 0
jne 0xf727e32
push 0x104
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push str.ctl3d32.dll
lea ecx, [ebp - 0x310]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebx, eax
test ebx, ebx
je 0xf741379
push str.Ctl3dGetVer
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0xf727df1
call eax
cmp ax, 0x229
jae 0xf7413b9
mov dword [0xf7ae718], 0
mov dword [0xf7ae704], 0
mov dword [0xf7ae70c], 0
mov dword [0xf7ae6e8], 0
mov dword [0xf7ae714], 0
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor ebx, ebx
mov dword [0xf7b9544], ebx
mov eax, dword [0xf7ae6d8]
mov ecx, dword [0xf7ae704]
test ecx, ecx
jne 0xf741499
push str.VBM_FHwndIsHctlRt
mov ebx, dword [sym.imp.USER32.dll_RegisterWindowMessageA]
call ebx
mov dword [0xf7ae700], eax
test eax, eax
je 0xf7414f1
push str.OCM_GETID_RT
call ebx
mov dword [0xf7ae6ec], eax
test eax, eax
je 0xf7414f1
call fcn.0f72a1a0
push 0
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [0xf7ae708], eax
test eax, eax
je 0xf7414cf
push 0
push 1
push 1
push 1
push 1
call dword [sym.imp.GDI32.dll_CreateBitmap]
mov ebx, eax
test ebx, ebx
je 0xf7414cf
push ebx
mov eax, dword [0xf7ae708]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [0xf7ae404], eax
test eax, eax
je 0xf727eca
push eax
push dword [0xf7ae708]
call dword [sym.imp.GDI32.dll_SelectObject]
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp dword [0xf7ae404], 0
je 0xf7414cf
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push dword [0xf7ae6d8]
push 0xf782344
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_SetWindowsHookExA]
mov dword [0xf7b93f0], eax
test esi, esi
jne 0xf727f3f
push 1
mov eax, dword [0xf7b8990]
push 0x18
push eax
call fcn.0f72c825
mov ecx, eax
test ecx, ecx
je 0xf7414a1
call fcn.0f72891e
mov ecx, eax
mov dword [0xf7b953c], ecx
test ecx, ecx
je 0xf7414cf
call fcn.0f72894a
mov dword [ebp - 4], eax
test eax, eax
jne 0xf72816a
call fcn.0f730ec0
test eax, eax
je 0xf7414f1
call fcn.0f72a6d6
mov dword [0xf7ae6a4], eax
test eax, eax
je 0xf7414cf
mov dword [ebp - 8], 1
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov dword [0xf7ae6a0], eax
test eax, eax
je 0xf7414f1
call fcn.0f72b41a
test eax, eax
je 0xf7414f1
mov eax, dword [0xf7ae730]
movzx eax, word [eax + 0x4e]
mov dword [0xf7ae558], eax
call fcn.0f728fbf
mov dword [ebp - 4], eax
test eax, eax
jne 0xf7414f1
mov eax, dword [0xf7ae730]
add eax, 0x34
push eax
call fcn.0f7241db
test eax, eax
je 0xf7414f1
call fcn.0f728ef8
mov dword [ebp - 4], eax
test eax, eax
jne 0xf7414f1
push str.Link
mov ebx, dword [sym.imp.USER32.dll_RegisterClipboardFormatA]
call ebx
mov dword [0xf7b31fc], eax
test eax, eax
je 0xf7414f1
push str.Rich_Text_Format
call ebx
mov dword [0xf7b3200], eax
test eax, eax
je 0xf7414f1
mov dword [0xf7ae6bc], 0
sub esp, 4
mov dword [ebp - 0x108], esp
push 0
mov ecx, dword [ebp - 0x108]
call fcn.0f72fcbc
call fcn.0f727538
mov dword [0xf7b96d0], eax
test eax, eax
je 0xf7414cf
push 0xff
call dword [sym.imp.KERNEL32.dll_SetHandleCount]
push 0
push 0
push 0
push 0
push 0
push 0xf72be79
push str.VBFocusRT
call fcn.0f72818e
test eax, eax
je 0xf7414f1
push 0
mov eax, dword [0xf7ae6d4]
push eax
push 0
push dword [0xf7ae6a4]
push 0
push 0
push 0
push 0
push 0x40000000
push 0xf7b9530
push str.VBFocusRT
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [0xf7b8848], eax
test eax, eax
je 0xf7414cf
push 0
mov eax, dword [0xf7b9538]
and ax, 0x3ff
push 0
push eax
mov edx, dword [ebp + 0xc]
push dword [0xf7ae6b8]
push dword [edx + 4]
call fcn.0f72429c
mov dword [ebp - 4], eax
test eax, eax
jne 0xf7414a8
push 0x1c
lea eax, [ebp - 0x108]
push eax
lea ecx, [ebp - 4]
mov dword [0xf7b9470], 1
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
mov eax, dword [ebp - 0x104]
add eax, 0x8000
cmp dword [0xf7ae510], 0
jne 0xf7414db
push eax
call fcn.0f72438b
mov dword [ebp - 4], eax
test eax, eax
jne 0xf728108
call fcn.0f729713
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0xf7414e5
mov byte [0xf7b9540], 1
call fcn.0f72c9a4
call fcn.0f728542
test eax, eax
je 0xf7414f1
mov eax, dword [0xf7ae730]
push eax
push edi
call fcn.0f72787e
test eax, eax
jne 0xf7414f1
push dword [ebp + 0xc]
call fcn.0f72170f
mov dword [ebp - 4], eax
test eax, eax
jne 0xf7414fd
test esi, esi
jne 0xf741504
mov eax, dword [0xf7ae270]
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0xf741517
test edi, edi
je 0xf728176
push edi
call fcn.0f72c7eb
xor edi, edi
cmp dword [ebp - 4], 0
jne 0xf741523
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [0xf7ae730]
mov dword [0xf7ae6b8], eax
lea ecx, [edx + 0x14]
cmp byte [ecx], 0x7e
je 0xf727c2b
push ecx
lea eax, [ebp - 0x20c]
push eax
call fcn.0f727592
mov edx, dword [0xf7ae730]
mov dword [0xf7ae6b8], eax
test eax, eax
jne 0xf7412c7
lea eax, [edx + 0x14]
add edx, 6
push eax
lea ecx, [ebp - 0x108]
push edx
push str.The_language_DLL__s_or__s_could_not_be_found.
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea ecx, [ebp - 0x108]
push esi
push ecx
call fcn.0f782607
xor eax, eax
jmp 0xf728185
mov ecx, dword [edx + 0x28]
jmp 0xf727c2e
add edx, 6
lea eax, [ebp - 0x108]
push edx
push str.The_language_DLL__s_could_not_be_found.
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x108]
push esi
push eax
call fcn.0f782607
jmp 0xf7412c0
push 0x18
push 0xf7b48a0
push 0xf7b48b8
call eax
add esp, 0xc
mov ecx, dword [0xf7ae270]
jmp 0xf727c69
push 0xf7ae710
call eax
add esp, 4
jmp 0xf727c77
test esi, esi
jne 0xf7412c0
cmp dword [ebp - 0x108], 0
jne 0xf74133c
push esi
push str.Unexpected_critical_error:_cant_start_program
call fcn.0f782607
jmp 0xf7412c0
cmp dword [0xf7b86cc], 0
jne 0xf74134a
call fcn.0f76126d
mov eax, dword [0xf7ae278]
push 0x1010
movzx ecx, word [eax + 2]
add eax, ecx
push 0xf7b9530
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0xf7412c0
mov dword [ebp - 4], 0xc354
jmp 0xf72816a
push 0x104
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push str.ctl3d32.dll
lea ecx, [ebp - 0x310]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebx, eax
test ebx, ebx
jne 0xf727dd5
jmp 0xf727e2c
push str.Ctl3dEnabled
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xf7ae6f0], eax
test eax, eax
je 0xf727df1
push str.Ctl3dRegister
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xf7ae718], eax
test eax, eax
je 0xf727df1
push str.Ctl3dAutoSubclass
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xf7ae704], eax
test eax, eax
je 0xf727df1
push str.Ctl3dColorChange
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xf7ae70c], eax
test eax, eax
je 0xf727df1
push str.Ctl3dUnregister
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xf7ae6e8], eax
test eax, eax
je 0xf727df1
push str.Ctl3dWinIniChange
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xf7ae714], eax
test eax, eax
je 0xf727df1
call dword [0xf7ae6f0]
mov dword [ebp - 0x108], eax
test eax, eax
jne 0xf74147d
mov eax, dword [0xf7ae6d8]
mov ecx, dword [0xf7ae718]
test ecx, ecx
je 0xf727df1
push eax
call ecx
test eax, eax
je 0xf727df1
cmp dword [ebp - 0x108], 0
jne 0xf727e2c
mov dword [0xf7b9548], 1
jmp 0xf727e2c
push eax
call ecx
jmp 0xf727e45
xor ecx, ecx
jmp 0xf727f21
cmp eax, 7
je 0xf7414cf
cmp eax, 0x9cfe
jne 0xf7414f1
mov dword [ebp - 4], 0x170
push str.VBA232.DLL
push 0x170
call fcn.0f7829ef
jmp 0xf72816a
mov dword [ebp - 4], 0xc352
jmp 0xf72816a
add eax, 0x18000
jmp 0xf7280f3
test esi, esi
jne 0xf7414f1
push dword [ebp - 4]
call fcn.0f7840ec
mov dword [ebp - 4], 0xc351
jmp 0xf72816a
test esi, esi
jne 0xf7414f1
push eax
jmp 0xf7414ec
push 0
mov eax, dword [0xf7ae6a4]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0xf72815a
push 0
call eax
add esp, 4
jmp 0xf72816a
cmp dword [ebp - 4], 7
jne 0xf741530
mov dword [ebp - 4], 0xc352
test esi, esi
jne 0xf74153c
push dword [ebp - 4]
call fcn.0f782944
cmp dword [ebp - 4], 0
je 0xf728180
test edi, edi
je 0xf741550
push edi
call fcn.0f72c7eb
cmp dword [ebp - 8], 0
je 0xf741588
call fcn.0f72b36e
test eax, eax
je 0xf74156c
push 1
call fcn.0f72b36e
push eax
call fcn.0f72b380
mov eax, dword [0xf7ae6a4]
push eax
call fcn.0f72a315
mov eax, dword [0xf7ae6a4]
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0xf7412c0
call fcn.0f7275b4
jmp 0xf7412c0