Function at 0x140054140
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x860]
sub rsp, 0x960
mov rax, qword [0x1400c4a20]
xor rax, rsp
mov qword [rbp + 0x850], rax
mov rsi, r9
mov rbx, r8
mov rdi, rdx
mov r14, rcx
test rdx, rdx
je 0x140054492
test rbx, rbx
je 0x140054492
xor edx, edx
lea rcx, [rbp + 0x50]
mov r8d, 0x400
call main
mov r8, rdi
lea rcx, [rbp + 0x50]
mov edx, 0x3ff
call fcn.140066bc8
mov r8, rbx
lea rcx, [rbp + 0x50]
mov edx, 0x3ff
call fcn.140066d00
lea rcx, [rbp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140054492
test al, 0x10
je 0x140054492
mov eax, dword [r14 + 0x50]
lea rcx, [rbp + 0x50]
cmp eax, 1
jne 0x1400542a7
lea rdx, str.RoomConnector.exe
call fcn.140053f10
lea rdx, str.gateway_conf_client.dll
mov ebx, eax
lea rcx, [rbp + 0x50]
call fcn.140053f10
lea rdx, str.gmcm.dll
mov r14d, eax
lea rcx, [rbp + 0x50]
call fcn.140053f10
lea rdx, str.gviper.dll
mov edi, eax
lea rcx, [rbp + 0x50]
call fcn.140053f10
test ebx, ebx
je 0x140054492
test r14d, r14d
je 0x140054492
test edi, edi
je 0x140054492
test eax, eax
je 0x140054492
xor ebx, ebx
lea rcx, [rsp + 0x38]
xor edx, edx
mov dword [rsp + 0x30], ebx
mov r8d, 0x104
mov byte [rbp + 0x3c], bl
mov qword [rbp + 0x3e], rbx
mov dword [rbp + 0x48], ebx
call main
mov edx, 0x104
mov dword [rsp + 0x34], 1
lea rcx, [rbp + 0x50]
call fcn.140065e94
inc rax
cmp rax, 0x104
jae 0x1400543b9
lea r8, [rbp + 0x50]
mov edx, 0x104
lea rcx, [rsp + 0x38]
call fcn.140066bc8
jmp 0x140054485
cmp eax, 2
jne 0x1400542e3
lea rdx, str.Controller.exe
call fcn.140053f10
lea rdx, str.Cmmlib.dll
mov ebx, eax
lea rcx, [rbp + 0x50]
call fcn.140053f10
lea rdx, str.zrc_sdk.dll
mov edi, eax
lea rcx, [rbp + 0x50]
call fcn.140053f10
test ebx, ebx
jmp 0x140054232
lea rdx, [0x1400a7f38]
mov qword [rsp + 0x990], r15
call fcn.140053f10
lea rdx, str.zPTApp.dll
mov r15d, eax
lea rcx, [rbp + 0x50]
call fcn.140053f10
xor ebx, ebx
test eax, eax
jne 0x140054326
lea rdx, str.zChatApp.dll
lea rcx, [rbp + 0x50]
call fcn.140053f10
mov edi, ebx
test eax, eax
je 0x14005432b
mov edi, 1
lea rdx, str.zVideoApp.dll
lea rcx, [rbp + 0x50]
call fcn.140053f10
lea rdx, str.Cmmlib.dll
mov r14d, eax
lea rcx, [rbp + 0x50]
call fcn.140053f10
test r15d, r15d
mov r15, qword [rsp + 0x990]
je 0x140054492
test edi, edi
je 0x140054492
test r14d, r14d
je 0x140054492
test eax, eax
je 0x140054492
xor edx, edx
mov dword [rsp + 0x30], ebx
mov r8d, 0x104
mov byte [rbp + 0x3c], bl
lea rcx, [rsp + 0x38]
mov qword [rbp + 0x3e], rbx
mov dword [rbp + 0x48], ebx
call main
mov edx, 0x104
mov dword [rsp + 0x34], 1
lea rcx, [rbp + 0x50]
call fcn.140065e94
inc rax
cmp rax, 0x104
jb 0x1400543c0
xor eax, eax
jmp 0x140054497
lea r8, [rbp + 0x50]
mov edx, 0x104
lea rcx, [rsp + 0x38]
call fcn.140066bc8
cmp dword [rbp + 0x8b0], ebx
je 0x140054485
xor edx, edx
lea rcx, [rbp + 0x450]
mov r8d, 0x400
call main
lea r8, [rsp + 0x38]
mov edx, 0x3ff
lea rcx, [rbp + 0x450]
call fcn.140066bc8
lea r8, [0x1400a4fd4]
mov edx, 0x3ff
lea rcx, [rbp + 0x450]
call fcn.140066d00
lea r8, [0x1400a7f38]
mov edx, 0x3ff
lea rcx, [rbp + 0x450]
call fcn.140066d00
lea rcx, [rbp + 0x450]
call fcn.140059400
mov rbx, rax
lea r9, [rbp + 0x42]
lea rax, [rbp + 0x44]
mov rcx, rbx
lea r8, [rbp + 0x40]
mov qword [rsp + 0x20], rax
lea rdx, [rbp + 0x3e]
call fcn.140051a90
movzx edi, al
test rbx, rbx
je 0x140054481
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [rbp + 0x3c], dil
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.140054ab0
mov eax, 1
mov rcx, qword [rbp + 0x850]
xor rcx, rsp
call fcn.140080bf0
add rsp, 0x960
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret