Function at 0x10002c20
Capabilities:
Check if file exists
Create directory
Delete file
Get common file path
Set file attributes

Disassembly:
mov eax, 0x1048
call fcn.100046f0
push ebx
push esi
push edi
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x16]
mov word [esp + 0x14], 0
mov word [esp + 0x834], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x836]
mov dx, word [0x1001e564]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x426]
mov word [esp + 0x424], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0xc46]
mov word [esp + 0xc44], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0xc44]
mov dword [esp + 0x10], 0
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov cx, word [0x1001e564]
xor eax, eax
mov word [esp + 0xe4c], cx
mov ecx, 0x81
lea edi, [esp + 0xe4e]
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
call ebx
lea edx, [esp + 0xc44]
push eax
push edx
push str._ws_d.txt
lea eax, [esp + 0xe58]
push 0x104
push eax
call fcn.10003870
lea ecx, [esp + 0x848]
push ecx
call fcn.10002450
mov eax, dword [esp + 0x1070]
add esp, 0x18
lea edx, [esp + 0x10]
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x424]
push ecx
push edx
call fcn.1000e4c0
xor eax, eax
mov edx, 0x104
lea ecx, [esp + 0x14]
cmp word [ecx], 0
je 0x10002d4c
add ecx, 2
dec edx
jne 0x10002d3e
jmp 0x10002d95
test edx, edx
je 0x10002d95
lea ecx, [esp + 0xc]
test ecx, ecx
je 0x10002d5f
mov eax, 0x104
sub eax, edx
mov edx, 0x104
sub edx, eax
lea eax, [esp + eax*2 + 0x14]
je 0x10002d95
lea esi, [esp + 0x834]
sub esi, eax
mov cx, word [esi + eax]
test cx, cx
je 0x10002d89
mov word [eax], cx
add eax, 2
dec edx
jne 0x10002d75
jmp 0x10002d8d
test edx, edx
jne 0x10002d90
sub eax, 2
mov word [eax], 0
mov dx, word [0x1001e564]
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0xa3e]
mov word [esp + 0xa3c], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x424]
test eax, eax
je 0x10002f99
lea ecx, [esp + 0xc]
push ecx
call fcn.100048cf
lea edx, [esp + 0x10]
push edx
call fcn.1000476f
add esp, 8
mov esi, eax
xor eax, eax
mov edx, 0x104
lea ecx, [esp + 0x14]
cmp word [ecx], 0
je 0x10002df7
add ecx, 2
dec edx
jne 0x10002de9
jmp 0x10002e3e
test edx, edx
je 0x10002e3e
lea ecx, [esp + 0xc]
test ecx, ecx
je 0x10002e0a
mov eax, 0x104
sub eax, edx
mov edx, 0x104
sub edx, eax
lea eax, [esp + eax*2 + 0x14]
je 0x10002e3e
mov edi, str.QQ_
sub edi, eax
mov cx, word [edi + eax]
test cx, cx
je 0x10002e32
mov word [eax], cx
add eax, 2
dec edx
jne 0x10002e1e
jmp 0x10002e36
test edx, edx
jne 0x10002e39
sub eax, 2
mov word [eax], 0
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x10002e59
push eax
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea ecx, [esp + 0x14]
push 6
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov dx, word [0x1001e564]
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x21e]
mov word [esp + 0x21c], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x834]
lea ecx, [esp + 0x21c]
push eax
push str._wsQQ.ini
push 0x104
push ecx
call fcn.10003870
add esp, 0x10
lea edx, [esp + 0x21c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10002ec9
lea eax, [esp + 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov cx, word [0x1001e564]
xor eax, eax
mov word [esp + 0x62c], cx
mov ecx, 0x81
lea edi, [esp + 0x62e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
push edx
mov edx, dword [esi + 0xc]
push eax
mov eax, dword [esi + 0x10]
push ecx
mov ecx, dword [esi + 0x14]
inc eax
push edx
add ecx, 0x76c
push eax
push ecx
push str._04d__d__02d__02d:_02d:_02d
lea edx, [esp + 0x648]
push 0x104
push edx
call fcn.10003870
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
add esp, 0x24
lea eax, [esp + 0x21c]
lea ecx, [esp + 0x424]
push eax
push ecx
push str.QQNumber
push 0x1001aef0
call edi
lea edx, [esp + 0x21c]
lea eax, [esp + 0x62c]
push edx
push eax
push str.EndTime
push 0x1001aef0
call edi
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
push ecx
inc eax
push edx
lea ecx, [esp + 0x42c]
push eax
lea edx, [esp + 0x20]
push ecx
push edx
push str._ws_ws__d__d__d_.txt
lea eax, [esp + 0xa54]
push 0x104
push eax
call fcn.10003870
add esp, 0x20
jmp 0x1000316b
lea ecx, [esp + 0xc]
push ecx
call fcn.100048cf
lea edx, [esp + 0x10]
push edx
call fcn.1000476f
add esp, 8
mov esi, eax
xor eax, eax
mov edx, 0x104
lea ecx, [esp + 0x14]
cmp word [ecx], 0
je 0x10002fcb
add ecx, 2
dec edx
jne 0x10002fbd
jmp 0x10003012
test edx, edx
je 0x10003012
lea ecx, [esp + 0xc]
test ecx, ecx
je 0x10002fde
mov eax, 0x104
sub eax, edx
mov edx, 0x104
sub edx, eax
lea eax, [esp + eax*2 + 0x14]
je 0x10003012
mov edi, str.QQ_
sub edi, eax
mov cx, word [edi + eax]
test cx, cx
je 0x10003006
mov word [eax], cx
add eax, 2
dec edx
jne 0x10002ff2
jmp 0x1000300a
test edx, edx
jne 0x1000300d
sub eax, 2
mov word [eax], 0
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x1000302d
push eax
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea ecx, [esp + 0x14]
push 6
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov dx, word [0x1001e564]
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x21e]
mov word [esp + 0x21c], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x834]
lea ecx, [esp + 0x21c]
push eax
push str._wsQQ.ini
push 0x104
push ecx
call fcn.10003870
add esp, 0x10
lea edx, [esp + 0x21c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1000309d
lea eax, [esp + 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov cx, word [0x1001e564]
xor eax, eax
mov word [esp + 0x62c], cx
mov ecx, 0x81
lea edi, [esp + 0x62e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
push edx
mov edx, dword [esi + 0xc]
push eax
mov eax, dword [esi + 0x10]
push ecx
mov ecx, dword [esi + 0x14]
inc eax
push edx
add ecx, 0x76c
push eax
push ecx
push str._04d__d__02d__02d:_02d:_02d
lea edx, [esp + 0x648]
push 0x104
push edx
call fcn.10003870
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
add esp, 0x24
lea eax, [esp + 0x21c]
lea ecx, [esp + 0x424]
push eax
push ecx
push str.QQNumber
push 0x1001aef0
call edi
lea edx, [esp + 0x21c]
lea eax, [esp + 0x62c]
push edx
push eax
push str.EndTime
push 0x1001aef0
call edi
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
push ecx
inc eax
push edx
lea ecx, [esp + 0x42c]
push eax
push ecx
call ebx
lea edx, [esp + 0x24]
push eax
push edx
push str._ws_d__d__d__d_.txt
lea eax, [esp + 0xa58]
push 0x104
push eax
call fcn.10003870
add esp, 0x24
mov eax, dword [esp + 0x105c]
lea edx, [esp + 0xa3c]
mov esi, 0x104
sub edx, eax
mov cx, word [edx + eax]
test cx, cx
je 0x10003194
mov word [eax], cx
add eax, 2
dec esi
jne 0x10003180
jmp 0x10003198
test esi, esi
jne 0x1000319b
sub eax, 2
mov word [eax], 0
mov eax, dword [esp + 0x1060]
lea edx, [esp + 0xe4c]
mov esi, 0x104
sub edx, eax
mov cx, word [edx + eax]
test cx, cx
je 0x100031c9
mov word [eax], cx
add eax, 2
dec esi
jne 0x100031b5
jmp 0x100031cd
test esi, esi
jne 0x100031d0
sub eax, 2
pop edi
mov word [eax], 0
pop esi
mov eax, 1
pop ebx
add esp, 0x1048
ret