Function at 0x140006380
Capabilities:
Link many functions at runtime
Query environment variable

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov rdi, rcx
lea rcx, vtable.CVICriticalSection.0
call fcn.140005f40
movzx r15d, al
mov byte [rsp + 0x88], al
lea rcx, vtable.CVICriticalSection.0
call fcn.140005f40
mov byte [rsp + 0x90], al
xor esi, esi
mov r12d, 0x80040000
mov qword [rsp + 0x20], rsi
xor ebx, ebx
mov qword [rsp + 0x28], rbx
cmp byte [0x14011de60], bl
je 0x1400063ef
lea r12d, [rsi + 1]
jmp 0x140006797
mov rax, qword [0x14011ddb8]
test rax, rax
jne 0x1400064fe
xor r8d, r8d
xor edx, edx
lea rcx, str._PROGRAMFILES_SonyVAIO_Improvement_
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x140006797
lea r14d, [rax - 1]
lea r13d, [r14 + 1]
movsxd rdi, r13d
mov eax, 2
mul rdi
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1400ca8e8
mov rsi, rax
mov qword [rsp + 0x20], rax
test rax, rax
je 0x140006797
lea rcx, [rdi + rdi]
mov rdi, rax
xor eax, eax
rep stosb byte [rdi], al
mov r8d, r13d
mov rdx, rsi
lea rcx, str._PROGRAMFILES_SonyVAIO_Improvement_
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x140006797
lea r13d, [r14 + 0x11]
movsxd rdi, r13d
mov eax, 2
mul rdi
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1400ca8e8
mov rbx, rax
mov qword [rsp + 0x28], rax
test rax, rax
je 0x140006797
lea rcx, [rdi + rdi]
mov rdi, rax
xor eax, eax
rep stosb byte [rdi], al
mov r8, rsi
movsxd rdx, r13d
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll_wcscpy_s]
sub r13d, r14d
movsxd rdx, r13d
movsxd rax, r14d
lea rcx, [rbx + rax*2]
lea r8, str.viaggregator.dll
call qword [sym.imp.MSVCR100.dll_wcscpy_s]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x14011ddb8], rax
test rax, rax
je 0x140006797
mov rdi, qword [rsp + 0x80]
lea rdx, str.SubmitStat
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011ddd0], rax
lea rdx, str.SubmitStatAsync
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011ddd8], rax
lea rdx, str.SubmitEvent
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011dde0], rax
lea rdx, str.SubmitEventAsync
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011dde8], rax
lea rdx, str.SubmitEventMAI
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011ddf0], rax
lea rdx, str.SubmitEventMAIAsync
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011ddf8], rax
lea rdx, str.SubmitSetting
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011de00], rax
lea rdx, str.SubmitSettingAsync
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011de08], rax
lea rdx, str.SubmitSettingMAI
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011de10], rax
lea rdx, str.SubmitSettingMAIAsync
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011de18], rax
lea rdx, str.SubmitSettingDiscrete
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011de20], rax
lea rdx, str.SubmitSettingDiscreteAsync
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011de28], rax
lea rdx, str.SubmitSettingDiscreteMAI
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011de30], rax
lea rdx, str.SubmitSettingDiscreteMAIAsync
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011de38], rax
lea rdx, str.WaitForTermination
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011de40], rax
lea rdx, str.TriggerUpload
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011de58], rax
lea rdx, str.VAIOCareIntelUpload
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011de48], rax
lea rdx, str.FlushQueue
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011de50], rax
lea rdx, str.Initialize
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011ddc0], rax
lea rdx, str.Finalize
mov rcx, qword [0x14011ddb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14011ddc8], rax
cmp qword [0x14011ddd0], 0
je 0x140006790
cmp qword [0x14011ddd8], 0
je 0x140006790
cmp qword [0x14011dde0], 0
je 0x140006790
cmp qword [0x14011dde8], 0
je 0x140006790
cmp qword [0x14011de00], 0
je 0x140006790
cmp qword [0x14011de08], 0
je 0x140006790
cmp qword [0x14011de20], 0
je 0x140006790
cmp qword [0x14011de28], 0
je 0x140006790
cmp qword [0x14011de40], 0
je 0x140006790
mov byte [0x14011de60], 1
xor r12d, r12d
mov rax, qword [0x14011ddc0]
test rax, rax
je 0x140006797
mov rcx, rdi
call rax
mov r12d, eax
jmp 0x140006797
mov byte [0x14011de60], 0
jmp 0x1400067b4
test rsi, rsi
je 0x1400067c1
mov rcx, rsi
call sub.MSVCR100.dll_void___cdecl_operator_delete___void____ptr64_
test rbx, rbx
je 0x1400067ce
mov rcx, rbx
call sub.MSVCR100.dll_void___cdecl_operator_delete___void____ptr64_
cmp byte [0x14011de60], 0
je 0x1400067dd
inc dword [0x14011de64]
cmp byte [rsp + 0x90], 0
je 0x1400067f4
lea rcx, [0x14011b0f0]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test r15b, r15b
je 0x140006806
lea rcx, [0x14011b0c0]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, r12d
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret