Function at 0x140080180
Capabilities:
Check if file exists
Get file size
Get installed programs
Move file
Query or enumerate registry key
Query or enumerate registry value
Read file on windows
Write file on windows

Disassembly:
mov r11, rsp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x970
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
mov rax, qword [0x14012a4f8]
xor rax, rsp
mov qword [rsp + 0x960], rax
mov r13, rcx
xor r14d, r14d
mov qword [rsp + 0x48], r14
mov qword [r11 - 0x8b0], 7
mov qword [r11 - 0x8b8], r14
mov word [r11 - 0x8c8], r14w
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r9d, 0x20219
xor r8d, r8d
lea rdx, str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x140080251
cmp qword [rsp + 0xe8], 8
jb 0x14008021d
mov rcx, qword [rsp + 0xd0]
call fcn.1400ad0b8
mov qword [rsp + 0xe8], 7
mov qword [rsp + 0xe0], r14
mov word [rsp + 0xd0], r14w
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x14008024a
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
jmp 0x1400807cd
mov r12d, r14d
mov word [rsp + 0x120], r14w
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x122]
call fcn.1400ad2f0
mov dword [rsp + 0x40], 0x104
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x120]
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp eax, 0x103
je 0x140080786
inc r12d
mov dword [rsp + 0x40], 0x104
lea rdx, str.PC_App_Store
lea rcx, [rsp + 0x120]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
lea rcx, [rsp + 0x120]
cmp rax, rcx
je 0x140080306
lea rdx, str.Baidu_App_Store
lea rcx, [rsp + 0x120]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
lea rcx, [rsp + 0x120]
cmp rax, rcx
jne 0x140080659
mov dword [rsp + 0x68], 0x104
mov qword [rsp + 0x58], r14
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, 0x20219
xor r8d, r8d
lea rdx, [rsp + 0x120]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140080649
lea rax, [rsp + 0x68]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x540]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x6c]
xor r8d, r8d
lea rdx, str.InstallDir
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140080649
lea r8, str.version.xml
lea rdx, [rsp + 0x540]
lea rcx, [rsp + 0x330]
call qword [sym.imp.SHLWAPI.dll_PathCombineW]
lea rcx, [rsp + 0x330]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x140080649
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
lea rcx, [rsp + 0x330]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
mov qword [rsp + 0x60], rax
cmp rax, 0xffffffffffffffff
je 0x140080639
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
mov qword [rsp + 0xc0], 0xf
mov qword [rsp + 0xb8], r14
mov byte [rsp + 0xa8], 0
mov edx, eax
xor r8d, r8d
lea rcx, [rsp + 0xa0]
call fcn.140065670
nop
mov dword [rsp + 0x50], r14d
lea rdx, [rsp + 0xa8]
cmp qword [rsp + 0xc0], 0x10
cmovae rdx, qword [rsp + 0xa8]
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x50]
mov r8d, edi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140080620
cmp dword [rsp + 0x50], edi
jne 0x140080620
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
or rbx, 0xffffffffffffffff
mov qword [rsp + 0x60], rbx
lea r9d, [rbx + 0xf]
xor r8d, r8d
lea rdx, str.__SignVersion_
lea rcx, [rsp + 0xa0]
call fcn.140072ed0
mov rsi, rax
cmp rax, rbx
je 0x140080620
mov r8, rax
mov dl, 0x3e
lea rcx, [rsp + 0xa0]
call fcn.1400799c0
mov rbp, rax
cmp rax, rbx
je 0x140080620
mov qword [rsp + 0x110], 7
mov qword [rsp + 0x108], r14
mov word [rsp + 0xf8], r14w
xor eax, eax
or rcx, rbx
mov rdi, r13
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rdx, r13
lea rcx, [rsp + 0xf0]
call fcn.140025a70
nop
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0xf0]
call fcn.14007f7a0
nop
sub rsi, rbp
lea rdx, [rbp + 1]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r14
mov r9, rax
lea r8, [rsi - 1]
lea rcx, [rsp + 0xa0]
call fcn.14007c770
nop
cmp qword [rsp + 0x98], 0x10
jb 0x140080559
mov rcx, qword [rsp + 0x80]
call fcn.1400ad0b8
lea r8, str.version_temp.xml
lea rdx, [rsp + 0x540]
lea rcx, [rsp + 0x750]
call qword [sym.imp.SHLWAPI.dll_PathCombineW]
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 2
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000000
lea rcx, [rsp + 0x750]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x140080607
mov dword [rsp + 0x60], r14d
lea rdx, [rsp + 0xa8]
cmp qword [rsp + 0xc0], 0x10
cmovae rdx, qword [rsp + 0xa8]
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x60]
mov r8d, dword [rsp + 0xb8]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1400805fd
mov eax, dword [rsp + 0x60]
cmp rax, qword [rsp + 0xb8]
je 0x140080698
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
cmp qword [rsp + 0x110], 8
jb 0x140080620
mov rcx, qword [rsp + 0xf8]
call fcn.1400ad0b8
nop
cmp qword [rsp + 0xc0], 0x10
jb 0x140080639
mov rcx, qword [rsp + 0xa8]
call fcn.1400ad0b8
nop
cmp rbx, 0xffffffffffffffff
je 0x140080649
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x140080659
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x120]
mov edx, r12d
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp eax, 0x103
je 0x140080786
jmp 0x1400802b3
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r8d, 9
lea rdx, [rsp + 0x330]
lea rcx, [rsp + 0x750]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov edi, eax
cmp qword [rsp + 0x110], 8
jb 0x1400806d7
mov rcx, qword [rsp + 0xf8]
call fcn.1400ad0b8
mov qword [rsp + 0x110], 7
mov qword [rsp + 0x108], r14
mov word [rsp + 0xf8], r14w
cmp qword [rsp + 0xc0], 0x10
jb 0x14008070c
mov rcx, qword [rsp + 0xa8]
call fcn.1400ad0b8
mov qword [rsp + 0xc0], 0xf
mov qword [rsp + 0xb8], r14
mov byte [rsp + 0xa8], 0
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14008073d
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x58], r14
cmp qword [rsp + 0xe8], 8
jb 0x140080755
mov rcx, qword [rsp + 0xd0]
call fcn.1400ad0b8
mov qword [rsp + 0xe8], 7
mov qword [rsp + 0xe0], r14
mov word [rsp + 0xd0], r14w
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140080782
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, edi
jmp 0x1400807cd
cmp qword [rsp + 0xe8], 8
jb 0x14008079e
mov rcx, qword [rsp + 0xd0]
call fcn.1400ad0b8
mov qword [rsp + 0xe8], 7
mov qword [rsp + 0xe0], r14
mov word [rsp + 0xd0], r14w
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x1400807cb
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov rcx, qword [rsp + 0x960]
xor rcx, rsp
call fcn.1400ad2c0
lea r11, [rsp + 0x970]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret