Function at 0x512b6c
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x98
push ebx
push esi
push edi
mov esi, ecx
call fcn.0051304c
test al, al
je 0x512ba9
push str.__typeassistant___uninstall_service
lea ecx, [ebp - 0x18]
call fcn.0040921d
push 0xffffffffffffffff
lea eax, [ebp - 0x18]
push eax
lea ecx, [esi + 0x864]
call fcn.0051e16b
lea ecx, [ebp - 0x18]
call fcn.00403f80
push str.serviceTsService.exe.new
lea ecx, [ebp - 0x18]
call fcn.0040921d
push 1
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x30]
push 1
push eax
call fcn.005ad360
add esp, 0x10
lea ecx, [ebp - 0x18]
call fcn.00403f80
sub esp, 0x18
lea eax, [ebp - 0x30]
mov ecx, esp
xor ebx, ebx
push eax
mov dword [ecx], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00408766
lea eax, [ebp - 0x60]
push eax
call fcn.00507881
mov ecx, eax
call fcn.005078b1
mov edi, eax
lea eax, [ebp - 0x30]
cmp eax, edi
je 0x512c13
mov ecx, eax
call fcn.00403f80
push edi
lea ecx, [ebp - 0x30]
call fcn.00444e92
lea ecx, [ebp - 0x60]
call fcn.00403f80
push str.TsService.exe
lea ecx, [ebp - 0x18]
call fcn.0040921d
push 1
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x48]
push ebx
push eax
call fcn.005ad360
add esp, 0x10
lea ecx, [ebp - 0x18]
call fcn.00403f80
lea ecx, [ebp - 0x98]
call fcn.005afe10
cmp dword [ebp - 0x34], 8
lea eax, [ebp - 0x48]
cmovae eax, dword [ebp - 0x48]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x512d0b
push str..new
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.0044a2d9
add esp, 0xc
lea eax, [ebp - 0x18]
push 1
sub esp, 0x18
mov ecx, esp
push eax
mov dword [ecx], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00408766
sub esp, 0x18
lea eax, [ebp - 0x30]
mov ecx, esp
push eax
mov dword [ecx], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00408766
lea ecx, [ebp - 0x98]
call fcn.005adef0
test eax, eax
je 0x512d01
push str.__typeassistant___install_service
lea ecx, [ebp - 0x60]
call fcn.0040921d
push 0xffffffffffffffff
lea eax, [ebp - 0x60]
push eax
lea ecx, [esi + 0x864]
call fcn.0051e16b
lea ecx, [ebp - 0x60]
call fcn.00403f80
sub esp, 0x18
lea eax, [ebp - 0x18]
mov ecx, esp
push eax
mov dword [ecx], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00408766
lea ecx, [ebp - 0x98]
call fcn.005adc60
lea ecx, [ebp - 0x18]
call fcn.00403f80
jmp 0x512d7c
sub esp, 0x18
lea eax, [ebp - 0x30]
mov ecx, esp
push eax
mov dword [ecx], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00408766
sub esp, 0x18
lea eax, [ebp - 0x48]
mov ecx, esp
push eax
mov dword [ecx], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00408766
call fcn.005af440
add esp, 0x30
test eax, eax
jns 0x512d7c
push 1
sub esp, 0x18
lea eax, [ebp - 0x48]
mov ecx, esp
push eax
mov dword [ecx], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00408766
sub esp, 0x18
lea eax, [ebp - 0x30]
mov ecx, esp
push eax
mov dword [ecx], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00408766
lea ecx, [ebp - 0x98]
call fcn.005adef0
lea ecx, [ebp - 0x98]
call fcn.005afd10
lea ecx, [ebp - 0x48]
call fcn.00403f80
lea ecx, [ebp - 0x30]
call fcn.00403f80
pop edi
pop esi
pop ebx
leave
ret