Function at 0x18001f4b0
Capabilities:
Accept command line arguments

Disassembly:
push rbp
push rbx
push rsi
lea rbp, [rsp - 0x47]
sub rsp, 0xd0
mov rax, qword [0x18007f080]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov rcx, 0xfffffffffffffffc
mov rsi, r8
call qword [sym.imp.USER32.dll_SetProcessDpiAwarenessContext]
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rcx, rax
lea rdx, str.OpenGlass_Client_Thread
call qword [sym.imp.KERNEL32.dll_SetThreadDescription]
mov ebx, eax
test eax, eax
jns 0x18001f50c
mov rcx, qword [rbp + 0x5f]
mov edx, ebx
call fcn.180011510
mov eax, ebx
jmp 0x18001f83f
lea rcx, str.OpenGlass.Client
call qword [sym.imp.SHELL32.dll_SetCurrentProcessExplicitAppUserModelID]
mov ebx, eax
test eax, eax
js 0x18001f4fa
mov qword [rsp + 0xf8], r12
mov r8, rsi
xor r12d, r12d
mov qword [rsp + 0xc0], r15
mov r15d, 0xffffffff
mov dword [rsp + 0x28], r12d
mov r9d, r15d
mov qword [rsp + 0x20], r12
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rbx, eax
test eax, eax
jne 0x18001f567
mov rcx, qword [rbp + 0x5f]
call fcn.180011020
jmp 0x18001f82f
mov rcx, rbx
mov qword [rsp + 0xf0], rdi
add rcx, rcx
mov qword [rsp + 0xc8], r14
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov rdi, rax
test rax, rax
je 0x18001f5a8
mov dword [rsp + 0x28], ebx
mov r9d, r15d
mov r8, rsi
mov qword [rsp + 0x20], rax
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jne 0x18001f5c1
mov rcx, qword [rbp + 0x5f]
call fcn.180011020
mov esi, eax
test rdi, rdi
je 0x18001f81d
jmp 0x18001f814
lea rdx, [rbp + 0x27]
mov dword [rbp + 0x27], r12d
mov rcx, rdi
call qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
xor sil, sil
mov r14d, r12d
mov rbx, rax
cmp dword [rbp + 0x27], r12d
jle 0x18001f6fd
nop word [rax + rax]
mov rcx, qword [rbx]
lea rdx, str._startup
call qword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
je 0x18001f618
mov rcx, qword [rbx]
lea rdx, str._startup
call qword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
jne 0x18001f61b
mov sil, 1
mov rcx, qword [rbx]
lea rdx, str._shutdown
call qword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
je 0x18001f643
mov rcx, qword [rbx]
lea rdx, str._shutdown
call qword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
jne 0x18001f646
mov sil, 2
mov rcx, qword [rbx]
lea rdx, [0x180068f58]
call qword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
je 0x18001f696
mov rcx, qword [rbx]
lea rdx, [0x180068f9c]
call qword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
je 0x18001f696
mov rcx, qword [rbx]
lea rdx, str._install
call qword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
je 0x18001f696
mov rcx, qword [rbx]
lea rdx, [0x180068fc0]
call qword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
jne 0x18001f699
mov sil, 3
mov rcx, qword [rbx]
lea rdx, [0x180068fa8]
call qword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
je 0x18001f6e9
mov rcx, qword [rbx]
lea rdx, [0x180068fe0]
call qword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
je 0x18001f6e9
mov rcx, qword [rbx]
lea rdx, str._uninstall
call qword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
je 0x18001f6e9
mov rcx, qword [rbx]
lea rdx, [0x180069018]
call qword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
jne 0x18001f6ec
mov sil, 4
inc r14d
add rbx, 8
cmp r14d, dword [rbp + 0x27]
jl 0x18001f5f0
cmp sil, 1
jne 0x18001f862
call sym.OpenGlass.dll_StartupService
mov esi, eax
test eax, eax
jns 0x18001f814
xor r8d, r8d
mov qword [rbp - 0x49], r12
mov edx, eax
mov dword [rbp - 0x41], 0xaabbccdd
lea rcx, [rbp - 0x49]
mov dword [rbp - 0x3d], eax
mov qword [rbp - 0x39], r12
call fcn.18000d1b0
lea rdx, [rbp - 9]
lea rcx, [rbp - 0x49]
call fcn.18002d100
cmp qword [rbp - 0x39], r12
je 0x18001f752
lea rcx, [rbp - 0x39]
call fcn.180008da0
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x18001f760
call sub.OLEAUT32.dll_SysStringLen
mov rbx, qword [rbp - 9]
test rbx, rbx
je 0x18001f76f
mov r14, qword [rbx + 0x10]
jmp 0x18001f776
lea r14, [0x18006762c]
xor r9d, r9d
mov qword [rbp - 1], r12
lea r8, [rbp - 1]
lea rcx, [0x180000000]
lea edx, [r9 + 0x6a]
call qword [sym.imp.USER32.dll_LoadStringW]
mov rdx, qword [rbp - 1]
lea rcx, [rbp + 7]
xorps xmm0, xmm0
movsxd r8, eax
xorps xmm1, xmm1
movups xmmword [rbp + 7], xmm0
movdqu xmmword [rbp + 0x17], xmm1
call fcn.18000b020
cmp qword [rbp + 0x1f], 7
lea r9, [rbp + 7]
mov qword [rsp + 0x38], r12
cmova r9, qword [rbp + 7]
xor r8d, r8d
mov qword [rsp + 0x30], 0xfffe
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], r14
call qword [sym.imp.COMCTL32.dll_Ordinal_344]
lea rcx, [rbp + 7]
call fcn.18000bb00
test rbx, rbx
je 0x18001f814
lock xadd dword [rbx + 0x18], r15d
sub r15d, 1
jne 0x18001f856
call sub.KERNEL32.dll_GetProcessHeap
mov r8, qword [rbp - 9]
mov rcx, rax
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rcx, rdi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov r14, qword [rsp + 0xc8]
mov eax, esi
mov rdi, qword [rsp + 0xf0]
mov r12, qword [rsp + 0xf8]
mov r15, qword [rsp + 0xc0]
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.18003efb0
add rsp, 0xd0
pop rsi
pop rbx
pop rbp
ret
test r15d, r15d
jns 0x18001f814
call qword [sym.imp.ucrtbase.dll_abort]
int3
cmp sil, 2
jne 0x18001f996
xorps xmm0, xmm0
mov dword [rbp + 7], 0xffffffff
lea rcx, [rbp + 7]
movdqu xmmword [rbp + 0xf], xmm0
call fcn.18000fbb0
movsxd rsi, eax
lea rcx, [rbp - 0x49]
mov edx, esi
mov qword [rbp - 0x49], r12
xor r8d, r8d
mov dword [rbp - 0x41], 0xaabbccdd
mov dword [rbp - 0x3d], esi
mov qword [rbp - 0x39], r12
call fcn.18000d1b0
lea rdx, [rbp - 1]
lea rcx, [rbp - 0x49]
call fcn.18002d100
cmp qword [rbp - 0x39], r12
je 0x18001f8c3
lea rcx, [rbp - 0x39]
call fcn.180008da0
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x18001f8d1
call sub.OLEAUT32.dll_SysStringLen
mov rbx, qword [rbp - 1]
test rbx, rbx
je 0x18001f8e0
mov r14, qword [rbx + 0x10]
jmp 0x18001f8e7
lea r14, [0x18006762c]
xor r9d, r9d
mov qword [rbp - 9], r12
lea r8, [rbp - 9]
lea rcx, [0x180000000]
lea edx, [r9 + 0x6a]
call qword [sym.imp.USER32.dll_LoadStringW]
mov rdx, qword [rbp - 9]
lea rcx, [rbp - 0x31]
xorps xmm0, xmm0
movsxd r8, eax
xorps xmm1, xmm1
movups xmmword [rbp - 0x31], xmm0
movdqu xmmword [rbp - 0x21], xmm1
call fcn.18000b020
cmp qword [rbp - 0x19], 7
lea r9, [rbp - 0x31]
mov qword [rsp + 0x38], r12
mov rax, rsi
cmova r9, qword [rbp - 0x31]
xor r8d, r8d
sar rax, 0x3f
xor edx, edx
and eax, 1
xor ecx, ecx
add rax, 0xfffd
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], r14
call qword [sym.imp.COMCTL32.dll_Ordinal_344]
lea rcx, [rbp - 0x31]
call fcn.18000bb00
test rbx, rbx
je 0x18001f814
lock xadd dword [rbx + 0x18], r15d
sub r15d, 1
je 0x18001fbc4
test r15d, r15d
jns 0x18001f814
call qword [sym.imp.ucrtbase.dll_abort]
int3
cmp sil, 3
jne 0x18001fab7
call sym.OpenGlass.dll_InstallApp
movsxd rsi, eax
lea rcx, [rbp - 0x49]
mov edx, esi
mov qword [rbp - 0x49], r12
xor r8d, r8d
mov dword [rbp - 0x41], 0xaabbccdd
mov dword [rbp - 0x3d], esi
mov qword [rbp - 0x39], r12
call fcn.18000d1b0
lea rdx, [rbp - 1]
lea rcx, [rbp - 0x49]
call fcn.18002d100
cmp qword [rbp - 0x39], r12
je 0x18001f9e4
lea rcx, [rbp - 0x39]
call fcn.180008da0
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x18001f9f2
call sub.OLEAUT32.dll_SysStringLen
mov rbx, qword [rbp - 1]
test rbx, rbx
je 0x18001fa01
mov r14, qword [rbx + 0x10]
jmp 0x18001fa08
lea r14, [0x18006762c]
xor r9d, r9d
mov qword [rbp - 9], r12
lea r8, [rbp - 9]
lea rcx, [0x180000000]
lea edx, [r9 + 0x6a]
call qword [sym.imp.USER32.dll_LoadStringW]
mov rdx, qword [rbp - 9]
lea rcx, [rbp - 0x31]
xorps xmm0, xmm0
movsxd r8, eax
xorps xmm1, xmm1
movups xmmword [rbp - 0x31], xmm0
movdqu xmmword [rbp - 0x21], xmm1
call fcn.18000b020
cmp qword [rbp - 0x19], 7
lea r9, [rbp - 0x31]
mov qword [rsp + 0x38], r12
mov rax, rsi
cmova r9, qword [rbp - 0x31]
xor r8d, r8d
sar rax, 0x3f
xor edx, edx
and eax, 1
xor ecx, ecx
add rax, 0xfffd
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], r14
call qword [sym.imp.COMCTL32.dll_Ordinal_344]
lea rcx, [rbp - 0x31]
call fcn.18000bb00
test rbx, rbx
je 0x18001f814
lock xadd dword [rbx + 0x18], r15d
sub r15d, 1
je 0x18001fbc4
test r15d, r15d
jns 0x18001f814
call qword [sym.imp.ucrtbase.dll_abort]
int3
cmp sil, 4
jne 0x18001fbe5
call sym.OpenGlass.dll_UninstallApp
movsxd rsi, eax
lea rcx, [rbp - 0x49]
mov edx, esi
mov qword [rbp - 0x49], r12
xor r8d, r8d
mov dword [rbp - 0x41], 0xaabbccdd
mov dword [rbp - 0x3d], esi
mov qword [rbp - 0x39], r12
call fcn.18000d1b0
lea rdx, [rbp - 1]
lea rcx, [rbp - 0x49]
call fcn.18002d100
cmp qword [rbp - 0x39], r12
je 0x18001fb05
lea rcx, [rbp - 0x39]
call fcn.180008da0
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x18001fb13
call sub.OLEAUT32.dll_SysStringLen
mov rbx, qword [rbp - 1]
test rbx, rbx
je 0x18001fb22
mov r14, qword [rbx + 0x10]
jmp 0x18001fb29
lea r14, [0x18006762c]
xor r9d, r9d
mov qword [rbp - 9], r12
lea r8, [rbp - 9]
lea rcx, [0x180000000]
lea edx, [r9 + 0x6a]
call qword [sym.imp.USER32.dll_LoadStringW]
mov rdx, qword [rbp - 9]
lea rcx, [rbp - 0x31]
xorps xmm0, xmm0
movsxd r8, eax
xorps xmm1, xmm1
movups xmmword [rbp - 0x31], xmm0
movdqu xmmword [rbp - 0x21], xmm1
call fcn.18000b020
cmp qword [rbp - 0x19], 7
lea r9, [rbp - 0x31]
mov qword [rsp + 0x38], r12
mov rax, rsi
cmova r9, qword [rbp - 0x31]
xor r8d, r8d
sar rax, 0x3f
xor edx, edx
and eax, 1
xor ecx, ecx
add rax, 0xfffd
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], r14
call qword [sym.imp.COMCTL32.dll_Ordinal_344]
lea rcx, [rbp - 0x31]
call fcn.18000bb00
test rbx, rbx
je 0x18001f814
lock xadd dword [rbx + 0x18], r15d
sub r15d, 1
jne 0x18001fbd5
call sub.KERNEL32.dll_GetProcessHeap
mov r8, qword [rbp - 1]
mov rcx, rax
jmp 0x18001f80d
test r15d, r15d
jns 0x18001f814
call qword [sym.imp.ucrtbase.dll_abort]
int3
xor r8d, r8d
mov qword [rbp - 0x49], r12
mov edx, 0x80070077
mov dword [rbp - 0x41], 0xaabbccdd
lea rcx, [rbp - 0x49]
mov dword [rbp - 0x3d], 0x80070077
mov esi, 0x80070077
mov qword [rbp - 0x39], r12
call fcn.18000d1b0
lea rdx, [rbp - 1]
lea rcx, [rbp - 0x49]
call fcn.18002d100
cmp qword [rbp - 0x39], r12
je 0x18001fc2d
lea rcx, [rbp - 0x39]
call fcn.180008da0
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x18001fc3b
call sub.OLEAUT32.dll_SysStringLen
mov rbx, qword [rbp - 1]
test rbx, rbx
je 0x18001fc4a
mov r14, qword [rbx + 0x10]
jmp 0x18001fc54
lea r14, [0x18006762c]
mov rbx, r12
xor r9d, r9d
mov qword [rbp - 9], r12
lea r8, [rbp - 9]
lea rcx, [0x180000000]
lea edx, [r9 + 0x6a]
call qword [sym.imp.USER32.dll_LoadStringW]
mov rdx, qword [rbp - 9]
lea rcx, [rbp - 0x31]
xorps xmm0, xmm0
movsxd r8, eax
xorps xmm1, xmm1
movups xmmword [rbp - 0x31], xmm0
movdqu xmmword [rbp - 0x21], xmm1
call fcn.18000b020
cmp qword [rbp - 0x19], 7
lea r9, [rbp - 0x31]
mov qword [rsp + 0x38], r12
cmova r9, qword [rbp - 0x31]
xor r8d, r8d
mov qword [rsp + 0x30], 0xfffe
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], r14
call qword [sym.imp.COMCTL32.dll_Ordinal_344]
lea rcx, [rbp - 0x31]
call fcn.18000bb00
test rbx, rbx
je 0x18001f814
lock xadd dword [rbx + 0x18], r15d
sub r15d, 1
jne 0x18001fcf3
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
mov r8, rbx
jmp 0x18001f80d
test r15d, r15d
jns 0x18001f814
call qword [sym.imp.ucrtbase.dll_abort]
int3