Function at 0x10017e4b
Capabilities:
Check if file exists
Create directory
Query environment variable

Disassembly:
push 0x494
mov eax, 0x100beb5b
call fcn.1008c851
mov edi, ecx
mov esi, str.TxdlService.exe
lea ebx, [edi + 0x3c]
push esi
call fcn.10001a48
pop ecx
push eax
push esi
mov ecx, ebx
call fcn.10001ddf
push 0x100f2514
lea esi, [edi + 0x6c]
call fcn.10001a48
pop ecx
push eax
push 0x100f2514
mov ecx, esi
call fcn.10001ddf
lea ecx, [ebp - 0x428]
call fcn.1001b2bf
and dword [ebp - 4], 0
lea ecx, [ebp - 0x488]
push dword [eax]
call fcn.100028c0
mov ecx, dword [ebp - 0x428]
lea ecx, [ecx - 0x10]
call fcn.100018f3
and dword [ebp - 0x460], 0
xor eax, eax
mov dword [ebp - 0x45c], 7
mov word [ebp - 0x470], ax
mov byte [ebp - 4], 3
call fcn.10018b84
add eax, 4
lea edx, [ebp - 0x470]
push 0x100d2a54
push edx
push str.ServiceExeName
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebp - 0x460], 0
je 0x10017f15
lea eax, [ebp - 0x470]
cmp ebx, eax
je 0x10017f15
push 0xffffffffffffffff
push 0
push eax
mov ecx, ebx
call fcn.10001b8f
and dword [ebp - 0x448], 0
xor eax, eax
mov dword [ebp - 0x444], 7
mov word [ebp - 0x458], ax
mov byte [ebp - 4], 4
call fcn.10018b84
add eax, 4
lea edx, [ebp - 0x458]
push 0x100d2a54
push edx
push str.ServiceInstallName
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebp - 0x448], 0
je 0x10017f71
lea eax, [ebp - 0x458]
cmp esi, eax
je 0x10017f71
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.10001b8f
xor esi, esi
mov dword [ebp - 0x42c], 7
xor eax, eax
mov dword [ebp - 0x430], esi
mov word [ebp - 0x440], ax
mov byte [ebp - 4], 5
call fcn.10018b84
add eax, 4
lea edx, [ebp - 0x440]
push 0x100d2a54
push edx
push str.ServiceExeDir
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebp - 0x430], esi
je 0x10018075
mov dword [ebp - 0x428], esi
call fcn.100017d6
push eax
lea ecx, [ebp - 0x428]
call fcn.10001572
push 0x412
lea eax, [ebp - 0x424]
mov byte [ebp - 4], 6
push esi
push eax
call fcn.1008f060
add esp, 0xc
lea ecx, [ebp - 0x424]
cmp dword [ebp - 0x42c], 8
lea eax, [ebp - 0x440]
cmovae eax, dword [ebp - 0x440]
push 0x208
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea eax, [ebp - 0x424]
push eax
call esi
test eax, eax
lea eax, [ebp - 0x424]
jne 0x10018049
push 0
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
lea eax, [ebp - 0x424]
push eax
call esi
test eax, eax
je 0x10018063
lea eax, [ebp - 0x424]
push eax
call fcn.10001a48
pop ecx
push eax
lea eax, [ebp - 0x424]
push eax
lea ecx, [ebp - 0x488]
call fcn.10001ddf
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x428]
add ecx, 0xfffffff0
call fcn.100018f3
push ecx
lea edx, [ebp - 0x488]
lea ecx, [ebp - 0x4a0]
call fcn.10016abb
pop ecx
push eax
lea ecx, [edi + 0x54]
call fcn.1000284a
push 0
push 1
lea ecx, [ebp - 0x4a0]
call fcn.10001f53
push 0xffffffffffffffff
push 0
push ebx
lea ecx, [edi + 0x54]
call fcn.10002aa5
xor ebx, ebx
cmp dword [edi + 0x4c], ebx
je 0x100180c3
cmp dword [edi + 0x7c], ebx
je 0x100180c3
cmp dword [edi + 0x64], ebx
je 0x100180c3
xor esi, esi
inc esi
jmp 0x100180c5
mov esi, ebx
push ebx
push 1
lea ecx, [ebp - 0x440]
call fcn.10001f53
push ebx
push 1
lea ecx, [ebp - 0x458]
call fcn.10001f53
push ebx
push 1
lea ecx, [ebp - 0x470]
call fcn.10001f53
push ebx
push 1
lea ecx, [ebp - 0x488]
call fcn.10001f53
mov eax, esi
call fcn.1008c7fb
ret