Function at 0x14009a500
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1110]
mov eax, 0x1210
call fcn.1400cb1f0
sub rsp, rax
mov rax, qword [0x14011d8d0]
xor rax, rsp
mov qword [rbp + 0x1100], rax
lea rcx, str.Enter_interface_UpdateSoftware__
mov r15, r9
mov rbx, r8
mov r14, rdx
mov edi, 0x80004005
call fcn.1400191f0
lea rcx, str.UpdateSoftware:_bstrName_in_:__s
mov rdx, r14
call fcn.1400191f0
lea rcx, str.UpdateSoftware:_bstrPath_in_:__s
mov rdx, rbx
call fcn.1400191f0
lea rcx, str.UpdateSoftware:_bstrOption_in_:__s
mov rdx, r15
call fcn.1400191f0
lea r8, str.GlobalVAIO_Update_Offline_Mode_7FDE6909_32D8_48ad_A5C1_F6B18305F378
xor edx, edx
mov ecx, 0x100000
call qword [sym.imp.KERNEL32.dll_OpenMutexW]
test rax, rax
je 0x14009a5a4
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14009a89f
call fcn.1400a6550
test al, al
jne 0x14009a89a
call fcn.1400a66d0
test al, al
jne 0x14009a89a
call fcn.1400a6610
test al, al
jne 0x14009a89a
test r14, r14
je 0x14009a89f
mov rcx, r14
call qword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
test eax, eax
je 0x14009a89f
lea rcx, [rsp + 0x40]
call fcn.1400b09f0
mov rcx, qword [0x14011e220]
mov dword [rsp + 0x30], 4
mov rax, qword [rcx]
lea rdx, [rsp + 0x30]
call qword [rax + 0xb8]
mov rax, qword [0x14011d880]
lea rcx, [0x14011d880]
call qword [rax + 0x18]
xor r12d, r12d
or rsi, 0xffffffffffffffff
add rax, 0x18
mov qword [rsp + 0x28], rax
test rbx, rbx
je 0x14009a671
test rbx, 0xffffffffffff0000
jne 0x14009a65e
movzx edi, bx
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14009a684
lea rcx, [rsp + 0x28]
mov r8d, edi
mov rdx, rax
call fcn.140001f70
jmp 0x14009a684
xor eax, eax
mov rcx, rsi
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
dec rcx
jmp 0x14009a674
mov ecx, r12d
mov r8d, ecx
lea rcx, [rsp + 0x28]
mov rdx, rbx
call fcn.140001e80
xor eax, eax
lea rdi, [rbp + 0xb0]
mov ecx, 0x1048
rep stosb byte [rdi], al
mov rcx, qword [rsp + 0x28]
lea rdx, [rbp + 0xb0]
mov r8d, 0x824
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov rax, qword [0x14011d880]
lea rcx, [0x14011d880]
call qword [rax + 0x18]
lea rcx, [rbp + 0xb0]
lea rbx, [rax + 0x18]
lea rax, [rbp + 0xb0]
mov qword [rsp + 0x20], rbx
test rax, 0xffffffffffff0000
jne 0x14009a70b
movzx edi, cx
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14009a80f
lea rcx, [rsp + 0x20]
mov r8d, edi
mov rdx, rax
call fcn.140001f70
mov rbx, qword [rsp + 0x20]
jmp 0x14009a80f
xor eax, eax
lea rdi, [rbp + 0xb0]
mov rcx, rsi
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rdi, rcx
test ecx, ecx
jne 0x14009a787
mov rdi, qword [rbx - 0x18]
cmp dword [rbx - 0x10], eax
lea rdx, [rbx - 0x18]
je 0x14009a80f
cmp dword [rdx + 0x10], eax
jge 0x14009a75a
cmp dword [rbx - 0xc], eax
jge 0x14009a74d
mov ecx, 0x80070057
call fcn.140001000
int3
mov dword [rbx - 0x10], r12d
mov word [rbx], r12w
jmp 0x14009a80f
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14009a770
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x20], rbx
jmp 0x14009a80f
mov r13d, dword [rbx - 0x10]
lea r12, [rbp + 0xb0]
sub r12, rbx
sar r12, 1
test ecx, ecx
jns 0x14009a7a7
mov ecx, 0x80070057
call fcn.140001000
int3
mov eax, dword [rbx - 0xc]
mov ecx, 1
sub ecx, dword [rbx - 8]
sub eax, edi
or ecx, eax
jge 0x14009a7c9
lea rcx, [rsp + 0x20]
mov edx, edi
call fcn.140001c20
mov rbx, qword [rsp + 0x20]
movsxd rdx, dword [rbx - 0xc]
movsxd rax, edi
mov rcx, rbx
add rdx, rdx
cmp r12, r13
lea r13, [rax + rax]
mov r9, r13
ja 0x14009a7ee
lea r8, [rbx + r12*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x14009a7fb
lea r8, [rbp + 0xb0]
call qword [sym.imp.MSVCR100.dll_memcpy_s]
cmp edi, dword [rbx - 0xc]
jg 0x14009a88f
xor eax, eax
mov dword [rbx - 0x10], edi
mov word [r13 + rbx], ax
lea rcx, [rsp + 0x40]
mov r9, r15
mov r8, rbx
mov rdx, r14
call fcn.14000bfb0
lea rdx, [rbx - 0x18]
mov ecx, esi
mov edi, eax
lock xadd dword [rdx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14009a83e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x14009a85b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rcx, qword [rbp + 0xa8]
test rcx, rcx
je 0x14009a871
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
lea rcx, [rbp + 0x30]
call fcn.14004bd80
lea rcx, [rbp - 0x48]
call fcn.14004bd80
lea rcx, [rsp + 0x40]
call fcn.14004bd80
jmp 0x14009a89f
mov ecx, 0x80070057
call fcn.140001000
int3
mov edi, 0x8004020e
lea rcx, str.Return_value_is:__x
mov edx, edi
call fcn.1400191f0
lea rcx, str.Leave_interface_UpdateSoftware__
call fcn.1400191f0
mov eax, edi
mov rcx, qword [rbp + 0x1100]
xor rcx, rsp
call fcn.1400cafa0
mov rbx, qword [rsp + 0x1250]
add rsp, 0x1210
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret