Function at 0x180012970
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x30
cmp dword [0x1801df0a0], 0
mov esi, edx
mov rdi, rcx
je 0x1800129b3
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], rcx
lea r9, str._IMHAInit___DealWnd:0x_08x___IMType:0x_08x_
lea rcx, [0x1801de7b8]
lea r8, str.IMHookAPI
or edx, 0xffffffff
call fcn.18008da50
test rdi, rdi
jne 0x1800129c4
lea rcx, [0x1801dd740]
call fcn.180072470
mov qword [0x1801c9590], rdi
mov dword [0x1801c958c], esi
cmp esi, 0x8000000
je 0x1800129e1
cmp esi, 0x80
jne 0x1800129ef
test byte [0x1801cb96c], 0x20
je 0x1800129ef
call fcn.18003fa80
lea rcx, [0x1801dd740]
mov edx, esi
call fcn.180071ea0
lea rcx, [0x1801cb5a0]
xor edx, edx
mov r8d, 0x208
call fcn.1800a1250
xor r9d, r9d
lea rdx, [0x1801cb5a0]
lea r8d, [r9 + 0x1a]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov ebx, dword [0x1801c958c]
cmp ebx, 0x80000
je 0x180012b64
cmp ebx, 0x10000000
je 0x180012b64
cmp ebx, 0x800
je 0x180012b64
cmp ebx, 2
je 0x180012b64
cmp ebx, 0x20000000
je 0x180012b1f
cmp ebx, 0x1000000
je 0x180012b1f
cmp ebx, 0x1000
je 0x180012b1f
cmp ebx, 1
je 0x180012b1f
cmp ebx, 0x22
jne 0x180012ad6
xor eax, eax
lea rdi, [0x1801cb5a0]
or rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rax, qword [str.TencentTIMTemp]
mov qword [rdi - 2], rax
mov rax, qword [0x180141a80]
mov qword [rdi + 6], rax
mov rax, qword [0x180141a88]
mov qword [rdi + 0xe], rax
mov rax, qword [0x180141a90]
mov qword [rdi + 0x16], rax
mov eax, dword [0x180141a98]
mov dword [rdi + 0x1e], eax
jmp 0x180012bc8
cmp ebx, 0x40
jne 0x180012b06
xor eax, eax
lea rdi, [0x1801cb5a0]
or rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rax, qword [str.Fetion]
mov qword [rdi - 2], rax
mov rax, qword [0x180141a70]
mov qword [rdi + 6], rax
jmp 0x180012bc8
lea rcx, [0x1801cb5a0]
xor edx, edx
mov r8d, 0x208
call fcn.1800a1250
jmp 0x180012bab
xor eax, eax
lea rdi, [0x1801cb5a0]
or rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rax, qword [str.TencentTMTemp]
mov qword [rdi - 2], rax
mov rax, qword [0x180141a48]
mov qword [rdi + 6], rax
mov rax, qword [0x180141a50]
mov qword [rdi + 0xe], rax
mov rax, qword [0x180141a58]
mov qword [rdi + 0x16], rax
movzx eax, word [0x180141a60]
jmp 0x180012ba7
xor eax, eax
lea rdi, [0x1801cb5a0]
or rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rax, qword [str.TencentQQTemp]
mov qword [rdi - 2], rax
mov rax, qword [0x180141a20]
mov qword [rdi + 6], rax
mov rax, qword [0x180141a28]
mov qword [rdi + 0xe], rax
mov rax, qword [0x180141a30]
mov qword [rdi + 0x16], rax
movzx eax, word [0x180141a38]
mov word [rdi + 0x1e], ax
cmp ebx, 4
jne 0x180012bbb
call fcn.180078700
mov ebx, dword [0x1801c958c]
cmp ebx, 0x4000
jne 0x180012bc8
call fcn.18003dcd0
call fcn.18000c8d0
mov edx, dword [0x1801c958c]
mov rcx, rax
call fcn.18000cd10
call fcn.18000bda0
call fcn.1800126b0
test eax, eax
je 0x180012bee
call fcn.18000f0b0
call fcn.180064810
mov ecx, esi
call fcn.180062070
mov ecx, esi
call fcn.18005ea30
mov ecx, esi
call fcn.180012910
test rax, rax
je 0x180012c16
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x28]
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret