Function at 0x541832
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb8
push ebx
push esi
xor ebx, ebx
lea esi, [ecx + 0x860]
push edi
cmp dword [ecx + 0x750], ebx
je 0x541870
push str.__typeassistant___uninstall_service
lea ecx, [ebp - 0x20]
call fcn.00408981
push 0xffffffffffffffff
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
call fcn.0054c508
lea ecx, [ebp - 0x20]
call fcn.00403730
push str.QBServiceExeName
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], 7
call fcn.00408981
sub esp, 0x18
mov ecx, esp
push str.TsService.exe
call fcn.00408981
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x20]
push eax
push 2
call fcn.004c7d70
add esp, 0x24
lea ecx, [ebp - 0x20]
call fcn.00403730
push str.serviceTsService.exe.new
lea ecx, [ebp - 0x20]
call fcn.00408981
push 1
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
push 1
push eax
call fcn.004ca5a0
add esp, 0x10
lea ecx, [ebp - 0x20]
call fcn.00403730
sub esp, 0x18
lea eax, [ebp - 0x38]
mov ecx, esp
push eax
mov dword [ecx], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00407eca
lea eax, [ebp - 0x80]
push eax
call fcn.00538737
mov ecx, eax
call fcn.00538767
mov edi, eax
lea eax, [ebp - 0x38]
cmp eax, edi
je 0x54191b
mov ecx, eax
call fcn.00403730
push edi
lea ecx, [ebp - 0x38]
call fcn.00444b1d
lea ecx, [ebp - 0x80]
call fcn.00403730
push str.TsService.exe
lea ecx, [ebp - 0x20]
call fcn.00408981
push 1
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.004ca5a0
add esp, 0x10
lea ecx, [ebp - 0x20]
call fcn.00403730
lea ecx, [ebp - 0xb8]
call fcn.004cf8b0
cmp dword [ebp - 0x3c], 8
lea eax, [ebp - 0x50]
cmovae eax, dword [ebp - 0x50]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x541a0f
push str..new
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0044c79e
add esp, 0xc
lea eax, [ebp - 0x20]
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.00407eca
sub esp, 0x18
lea eax, [ebp - 0x38]
mov ecx, esp
push eax
mov dword [ecx], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00407eca
lea ecx, [ebp - 0xb8]
call fcn.004d5430
test eax, eax
je 0x541a05
push str.__typeassistant___install_service
lea ecx, [ebp - 0x80]
call fcn.00408981
push 0xffffffffffffffff
lea eax, [ebp - 0x80]
mov ecx, esi
push eax
call fcn.0054c508
lea ecx, [ebp - 0x80]
call fcn.00403730
sub esp, 0x18
lea eax, [ebp - 0x20]
mov ecx, esp
push eax
mov dword [ecx], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00407eca
lea ecx, [ebp - 0xb8]
call fcn.004d60d0
lea ecx, [ebp - 0x20]
call fcn.00403730
jmp 0x541a80
sub esp, 0x18
lea eax, [ebp - 0x38]
mov ecx, esp
push eax
mov dword [ecx], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00407eca
sub esp, 0x18
lea eax, [ebp - 0x50]
mov ecx, esp
push eax
mov dword [ecx], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00407eca
call fcn.004d1930
add esp, 0x30
test eax, eax
jns 0x541a80
push 1
sub esp, 0x18
lea eax, [ebp - 0x50]
mov ecx, esp
push eax
mov dword [ecx], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00407eca
sub esp, 0x18
lea eax, [ebp - 0x38]
mov ecx, esp
push eax
mov dword [ecx], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00407eca
lea ecx, [ebp - 0xb8]
call fcn.004d5430
lea ecx, [ebp - 0xb8]
call fcn.004cf960
lea ecx, [ebp - 0x50]
call fcn.00403730
lea ecx, [ebp - 0x38]
call fcn.00403730
mov eax, dword [ebp - 0x54]
cmp eax, 8
jb 0x541ad8
mov ecx, dword [ebp - 0x68]
lea eax, [eax*2 + 2]
mov dword [ebp - 4], eax
mov dword [ebp - 8], ecx
cmp eax, 0x1000
jb 0x541acf
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
call fcn.0040379f
mov eax, dword [ebp - 4]
pop ecx
pop ecx
mov ecx, dword [ebp - 8]
push eax
push ecx
call fcn.0056d0c8
pop ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret