Function at 0x40baae
Capabilities:
Check if file exists
Create process on windows

Disassembly:
push 0xc4
mov eax, 0x41ac89
call fcn.00419274
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x40bacb
mov eax, dword [eax]
push ecx
push eax
lea eax, [ebp - 0x6c]
push eax
call dword [sym.imp.Common.dll_class_CTXStringA___cdecl_Util::Convert::Utf8FromWS_wchar_t_const___int_]
add esp, 0xc
xor ebx, ebx
lea ecx, [ebp - 0x6c]
mov dword [ebp - 4], ebx
call dword [sym.imp.Common.dll_public:_int___thiscall_CTXStringA::GetLength_void_const]
lea ecx, [ebp - 0x6c]
mov esi, eax
call dword [sym.imp.Common.dll_public:_char_const____thiscall_CTXStringA::GetString_void_const]
push 0xf
pop edi
push esi
push eax
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], edi
mov byte [ebp - 0x40], bl
call fcn.004083d7
push ebx
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 1
call fcn.004156f4
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x94]
call fcn.00415641
lea eax, [ebp - 0x94]
mov byte [ebp - 4], 3
push eax
push str.file_path
lea ecx, [ebp - 0x84]
call fcn.0041596f
mov ecx, eax
call fcn.00415843
lea ecx, [ebp - 0x94]
call fcn.004157ef
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], edi
mov byte [ebp - 0x58], bl
lea eax, [ebp - 0x84]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x58]
call fcn.004185ba
mov dword [ebp - 0x5c], ebx
mov byte [ebp - 4], 6
lea eax, [ebp - 0x5c]
cmp dword [ebp - 0x14], 0x10
lea edi, [ebp - 0x28]
mov esi, dword [ebp - 0x18]
cmovae edi, dword [ebp - 0x28]
push eax
call dword [sym.imp.Common.dll_int___cdecl_Util::Data::CreateTXBuffer_struct_ITXBuffer___]
mov eax, dword [ebp - 0x5c]
lea edx, [ebp - 0x74]
pop ecx
push edx
push esi
mov dword [ebp - 0x74], ebx
mov ecx, dword [eax]
push edi
push eax
call dword [ecx + 0x50]
lea eax, [ebp - 0x5c]
push 1
push eax
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.Common.dll_class_CTXStringW___cdecl_Util::Encode::Base64Encode_class_CTXBuffer_const___int_]
add esp, 0xc
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 7
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::constructor_void_]
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x70]
mov esi, dword [sym.imp.Common.dll_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const]
call esi
push eax
lea eax, [ebp - 0x64]
push str.__funcmethodDocx.LocalDocFileOnlinePreview___values_s
push eax
call dword [sym.imp.Common.dll_public:_void___cdecl_CTXStringW::Format_wchar_t_const__]
add esp, 0xc
lea ecx, [ebp - 0x64]
call esi
push eax
push str.LaunchTIMToOpenDocx_params__s_
push str.DocxPreviewRunner
push 2
push str.func
push 0x19c
push str.file
call fcn.00409fc2
lea eax, [ebp - 0x68]
push eax
call dword [sym.imp.Common.dll_class_CTXStringW___cdecl_Util::Sys::GetExeDir_void_]
add esp, 0x20
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 9
call dword [sym.imp.Common.dll_public:_bool___thiscall_CTXStringW::IsEmpty_void_const]
mov edi, dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::destructor_void_]
test al, al
je 0x40bc55
push str.GetExeDir_fail
push str.DocxPreviewRunner
push ecx
push ecx
mov edx, 0x1a0
call fcn.0040a1bc
add esp, 0x10
jmp 0x40bd79
push str.TIM.exe
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.Common.dll_class_CTXStringW___cdecl_operator_class_CTXStringW_const___wchar_t_const__]
add esp, 0xc
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0xb
call esi
push eax
push str.TIM.exe_path__s_
push str.DocxPreviewRunner
push 2
push str.func
push 0x1a4
push str.file
call fcn.00409fc2
add esp, 0x1c
lea ecx, [ebp - 0x60]
call esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40bcb4
push str.TIM.exe_not_found
mov edx, 0x1a6
jmp 0x40bd2b
push 0x3c
pop ebx
push ebx
lea eax, [ebp - 0xd0]
push 0
push eax
call dword [sym.imp.VCRUNTIME140.dll_memset]
add esp, 0xc
mov dword [ebp - 0xd0], ebx
xor ebx, ebx
mov dword [ebp - 0xcc], 0x100
lea ecx, [ebp - 0x60]
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0xc4], str.open
call esi
lea ecx, [ebp - 0x64]
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xb8], ebx
call esi
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb4], 1
call fcn.00414921
test eax, eax
jne 0x40bd3c
push str.DocxPreviewRunner::LaunchTIMToOpenDocx_IsTencentTrusted_return_FALSE
mov edx, 0x1b8
push str.DocxPreviewRunner
push ecx
push ecx
call fcn.0040a1bc
add esp, 0x10
jmp 0x40bd74
lea eax, [ebp - 0xd0]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov esi, eax
push esi
push str.ShellExecuteEx_return___d_
push str.DocxPreviewRunner
push 2
push str.func
push 0x1bd
push str.file
call fcn.00409fc2
add esp, 0x1c
test esi, esi
setne bl
lea ecx, [ebp - 0x60]
call edi
lea ecx, [ebp - 0x68]
call edi
lea ecx, [ebp - 0x64]
call edi
lea ecx, [ebp - 0x70]
call edi
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x40bd9d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [ebp - 0x5c], 0
lea ecx, [ebp - 0x28]
call fcn.004085df
lea ecx, [ebp - 0x58]
call fcn.004085df
lea ecx, [ebp - 0x84]
call fcn.004157ef
lea ecx, [ebp - 0x40]
call fcn.004085df
lea ecx, [ebp - 0x6c]
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringA::destructor_void_]
mov al, bl
call fcn.0041921e
ret 4