Function at 0x10006970
Capabilities:
Check if file exists
Copy file
Create directory
Delete file
Get common file path
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1003b881
mov eax, dword fs:[0]
push eax
sub esp, 0xcc0
mov eax, dword [0x1004f0a8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
xor eax, eax
mov ebx, ecx
push 0x206
push eax
lea ecx, [ebp - 0x626]
push ecx
mov dword [ebp - 0xccc], ebx
mov word [ebp - 0x628], ax
call fcn.1000ae30
xor edx, edx
push 0x206
push edx
lea eax, [ebp - 0x216]
push eax
mov word [ebp - 0x218], dx
call fcn.1000ae30
add esp, 0x18
push 0x103
push esi
mov dword [ebx + 0x1040], 0
call fcn.10028a90
add esp, 4
push eax
lea ecx, [ebp - 0x218]
push ecx
call fcn.1000c11c
push esi
call fcn.10028ab0
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
add esp, 0x10
push eax
lea edx, [ebp - 0x218]
push edx
call edi
push 0x104
lea eax, [ebx + 0x20c]
push eax
lea ecx, [ebp - 0x628]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
push esi
call fcn.10028ad0
add esp, 4
push eax
lea edx, [ebp - 0x628]
push edx
call edi
cmp esi, 0x28
jne 0x10006b12
lea eax, [ebp - 0x218]
push eax
push str.ft_SOSOUpdate:__s
call fcn.1001aca0
xor ecx, ecx
push 0x206
push ecx
lea edx, [ebp - 0x41e]
push edx
mov word [ebp - 0x420], cx
call fcn.1000ae30
lea eax, [ebp - 0x218]
push 0x5c
push eax
call fcn.1000b3b8
mov edi, eax
lea edx, [ebp - 0x218]
mov ecx, edi
sub ecx, edx
sar ecx, 1
inc ecx
push ecx
mov eax, edx
push eax
lea ecx, [ebp - 0x420]
push 0x104
push ecx
call fcn.1000c4b0
push 0x10041908
lea edx, [ebp - 0x420]
push 0x104
push edx
call fcn.1000c8da
add edi, 2
push edi
lea eax, [ebp - 0x420]
push 0x104
push eax
call fcn.1000c8da
add esp, 0x44
lea ecx, [ebp - 0x420]
push ecx
lea edx, [ebp - 0x218]
push 0x104
push edx
call fcn.1000c44d
lea eax, [ebp - 0x218]
push eax
push str.ft_SOSOUpdate:__s
call fcn.1001aca0
add esp, 0x14
jmp 0x10006c12
cmp esi, 0x66
jne 0x10006ca6
mov ecx, dword [0x10050de8]
mov dword [ebp - 0xcc8], ecx
push 0x104
push 0x104
lea ecx, [ebp - 0xcc8]
mov dword [ebp - 4], 0
call fcn.100020c0
push eax
call fcn.1001e9e0
add esp, 8
lea ecx, [ebp - 0xcc8]
call fcn.10002010
mov edi, dword [ebp - 0xcc8]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
push edi
call ebx
xor edx, edx
mov dword [edi - 8], eax
push str.TENCENTTBH_
mov word [edi + eax*2], dx
call ebx
push str.TENCENTTBH_
push eax
lea ecx, [ebp - 0xcc8]
call fcn.10002360
mov eax, dword [ebp - 0xcc8]
push 0
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
lea ecx, [ebp - 0x628]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov edi, eax
test edi, edi
je 0x10006bae
push edi
call ebx
push edi
push eax
lea ecx, [ebp - 0xcc8]
call fcn.10002360
push 0
lea ecx, [ebp - 0xcc8]
call fcn.100020c0
push eax
lea edx, [ebp - 0x218]
push 0x104
push edx
call fcn.1000c44d
mov eax, dword [ebp - 0xcc8]
lea ecx, [eax - 0xc]
add esp, 0xc
mov dword [ebp - 4], 0xffffffff
cmp ecx, dword [0x10050de4]
je 0x10006c0c
lea edi, [eax - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x10006c0c
push edi
call fcn.1000b015
add esp, 4
mov ebx, dword [ebp - 0xccc]
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10006e5f
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x10006e5f
xor edi, edi
mov edi, edi
xor eax, eax
push 0x206
push eax
lea ecx, [ebp - 0x41e]
push ecx
mov word [ebp - 0x420], ax
call fcn.1000ae30
push edi
lea edx, [ebp - 0x218]
push edx
push 0x100418d8
lea eax, [ebp - 0x420]
push 0x103
push eax
call dword [sym.imp.SHLWAPI.dll_wnsprintfW]
add esp, 0x20
push 1
lea ecx, [ebp - 0x420]
push ecx
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x10006e4e
inc edi
cmp edi, 0xa
jl 0x10006c40
jmp 0x10006e5f
cmp esi, 0x68
jne 0x10006db9
mov edx, dword [0x10050de8]
mov dword [ebp - 0xcc8], edx
push 0x104
push 0x104
lea ecx, [ebp - 0xcc8]
mov dword [ebp - 4], 1
call fcn.100020c0
push eax
call fcn.1001e9e0
add esp, 8
lea ecx, [ebp - 0xcc8]
call fcn.10002010
mov esi, dword [ebp - 0xcc8]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
call edi
xor ecx, ecx
mov dword [esi - 8], eax
push str.TENCENTTBH_
mov word [esi + eax*2], cx
call edi
push str.TENCENTTBH_
push eax
lea ecx, [ebp - 0xcc8]
call fcn.10002360
mov edx, dword [ebp - 0xcc8]
push 0
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov esi, eax
test esi, esi
je 0x10006d42
push esi
call edi
push esi
push eax
lea ecx, [ebp - 0xcc8]
call fcn.10002360
push 0
lea ecx, [ebp - 0xcc8]
call fcn.100020c0
push eax
lea ecx, [ebp - 0x218]
push 0x104
push ecx
call fcn.1000c44d
add esp, 0xc
push 1
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov eax, dword [ebp - 0xcc8]
lea ecx, [eax - 0xc]
cmp ecx, dword [0x10050de4]
je 0x10006daf
lea esi, [eax - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x10006daf
push esi
call fcn.1000b015
add esp, 4
mov eax, 1
jmp 0x10007160
cmp esi, 0x65
je 0x10006dc7
cmp esi, 0x64
jne 0x10006c12
xor edx, edx
push 0x206
push edx
lea eax, [ebp - 0x41e]
push eax
mov word [ebp - 0x420], dx
call fcn.1000ae30
add esp, 0xc
push 0
push 0x25
lea ecx, [ebp - 0x420]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x100418d4
lea edx, [ebp - 0x420]
push 0x104
push edx
call fcn.1000c8da
add esp, 0xc
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea ecx, [ebp - 0x420]
push 0x104
push ecx
call fcn.1000c8da
add esp, 0xc
push 0
lea edx, [ebp - 0x420]
push edx
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
jmp 0x10006c12
lea eax, [ebp - 0x420]
push 1
push eax
call fcn.1001cb20
add esp, 8
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10007001
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea edx, [ebp - 0x218]
push edx
call edi
test eax, eax
jne 0x10007001
lea eax, [ebp - 0x218]
push eax
call fcn.1001c920
add esp, 4
push 0x104
push esi
lea ecx, [ebp - 0x628]
push ecx
mov ecx, ebx
call fcn.10004ed0
xor edx, edx
push 0x206
push edx
lea eax, [ebp - 0x41e]
push eax
mov word [ebp - 0x420], dx
call fcn.1000ae30
lea ecx, [ebp - 0x420]
push 0x104
push ecx
call fcn.10025a10
add esp, 0x14
test eax, eax
je 0x10006fdb
push esi
call fcn.10028ab0
add esp, 4
push eax
lea edx, [ebp - 0x420]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x628]
push ecx
mov ecx, ebx
call fcn.10004d60
test eax, eax
je 0x10006fcb
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0x420]
push eax
call fcn.1001cac0
add esp, 8
test eax, eax
je 0x10006f43
lea ecx, [ebp - 0x628]
push ecx
call edi
jmp 0x1000705c
lea ecx, [ebp - 0xcc4]
call fcn.10025ae0
xor edx, edx
push 0x7e
push edx
lea eax, [ebp - 0x6a6]
push eax
mov dword [ebp - 4], 2
mov word [ebp - 0x6a8], dx
call fcn.1000ae30
push 0x7c
lea ecx, [ebp - 0x6a8]
push ecx
lea edx, [ebp - 0x420]
push edx
call fcn.1001bc30
add esp, 0x18
test eax, eax
je 0x10006fa3
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x6a8]
push ecx
push esi
lea ecx, [ebp - 0xcc4]
call fcn.10025800
lea edx, [ebp - 0x628]
push 1
push edx
call fcn.1001cb20
add esp, 8
lea ecx, [ebp - 0xcc4]
mov dword [ebp - 4], 0xffffffff
call fcn.100257f0
jmp 0x1000705c
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x628]
push ecx
jmp 0x10006fe9
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0x628]
push eax
call fcn.1001cac0
add esp, 8
test eax, eax
jne 0x1000705c
mov dword [ebx + 0x1040], 0x1004
jmp 0x1000705c
push 1
lea ecx, [ebp - 0x218]
push ecx
lea edx, [ebp - 0x628]
push edx
mov ecx, ebx
call fcn.10004d60
test eax, eax
jne 0x10007028
mov dword [ebx + 0x1040], 0x1004
jmp 0x1000704b
push 0x104
push esi
lea eax, [ebp - 0x628]
push eax
mov ecx, ebx
call fcn.10004ed0
lea ecx, [ebp - 0x218]
push ecx
call fcn.1001c920
add esp, 4
lea edx, [ebp - 0x628]
push 1
push edx
call fcn.1001cb20
add esp, 8
cmp dword [ebx + 0x1040], 0
jne 0x10007149
lea eax, [ebp - 0x218]
push eax
push esi
call fcn.10028af0
lea ecx, [ebp - 0x218]
push ecx
push esi
push str.Installed_file:__d_s
call fcn.1001aca0
add esp, 0x14
cmp dword [ebp + 0xc], 0
je 0x1000713c
cmp esi, 0x1e
je 0x10007114
cmp esi, 0x28
je 0x10007114
xor edx, edx
push 0x206
push edx
lea eax, [ebp - 0x8ae]
push eax
mov word [ebp - 0x8b0], dx
call fcn.1000ae30
lea ecx, [ebp - 0x218]
push ecx
lea edx, [ebp - 0x8b0]
push 0x104
push edx
call fcn.1000c44d
add esp, 0x18
lea eax, [ebp - 0x8b0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push str._sqlite3.dll
lea ecx, [ebp - 0x8b0]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0x8b0]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
lea eax, [ebp - 0x218]
push 1
push eax
call fcn.1001deb0
add esp, 8
jmp 0x1000713c
lea ecx, [ebp - 0xccc]
push ecx
push 0x64
push 0x64
push str._Register
lea edx, [ebp - 0x218]
push edx
mov ecx, ebx
mov dword [ebp - 0xccc], 0
call fcn.10004020
cmp dword [ebx + 0x1040], 0
je 0x10006daf
lea eax, [ebp - 0x218]
push eax
push esi
push str.Failed_to_Installed_file:__d_s
call fcn.1001aca0
add esp, 0xc
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1000ae1e
mov esp, ebp
pop ebp
ret 8