Function at 0x18009af40
Capabilities:
Get common file path
Get program files directory

Disassembly:
push rbp
push rsi
push r12
lea rbp, [rsp - 0x100]
sub rsp, 0x200
mov rax, qword [0x180126010]
xor rax, rsp
mov qword [rbp + 0xe0], rax
xor r9d, r9d
lea rax, [rbp - 0x30]
mov r12, rcx
mov qword [rsp + 0x20], rax
xor r8d, r8d
xor ecx, ecx
lea edx, [r9 + 0x26]
call qword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xor esi, esi
mov qword [rsp + 0x48], 0xf
mov qword [rsp + 0x30], rsi
lea rax, [rbp - 0x30]
mov qword [rsp + 0x40], rsi
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], sil
jne 0x18009afa3
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x30]
call fcn.1800bfba0
mov r8d, 0x14
lea rdx, str.Mozilla_Thunderbird
lea rcx, [rsp + 0x30]
call fcn.1800bf270
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], 0xf
mov byte [rax], sil
mov rdx, qword [rsp + 0x48]
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm1
cmp rdx, 0x10
jb 0x18009b02c
mov rcx, qword [rsp + 0x30]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18009b027
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009b5f4
call fcn.1800cd2cc
mov qword [rsp + 0x228], rbx
movabs rax, 0x7fffffffffffffff
mov qword [rsp + 0x230], rdi
mov rdi, qword [rbp - 0x40]
mov qword [rsp + 0x238], r13
mov r13, qword [rbp - 0x38]
mov qword [rsp + 0x1f8], r14
cmp r13, 0x10
mov qword [rsp + 0x1f0], r15
lea r14, [rbp - 0x50]
mov r15, qword [rbp - 0x50]
cmovae r14, r15
cmp rdi, 0x10
jae 0x18009b09d
movups xmm0, xmmword [r14]
mov qword [rsp + 0x40], rdi
lea rsi, [rsp + 0x30]
mov qword [rsp + 0x48], 0xf
movups xmmword [rsp + 0x30], xmm0
jmp 0x18009b126
mov rbx, rdi
or rbx, 0xf
cmp rbx, rax
cmova rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x18009b0e4
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18009b5fa
mov rcx, rax
call fcn.1800cd2d4
test rax, rax
je 0x18009b600
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x18009b0f1
test rcx, rcx
je 0x18009b0f1
call fcn.1800cd2d4
mov rsi, rax
lea r8, [rdi + 1]
mov qword [rsp + 0x30], rsi
mov rdx, r14
mov rcx, rsi
call fcn.1800d03a0
mov qword [rsp + 0x40], rdi
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x48], rbx
cmp rbx, 0x10
jb 0x18009b123
lea r14, [rsi + rdi]
mov rbx, rsi
jmp 0x18009b133
mov rsi, rcx
lea r14, [rsp + 0x30]
add r14, rdi
lea rbx, [rsp + 0x30]
cmp rbx, r14
je 0x18009b153
sub rsi, rbx
nop dword [rax + rax]
movzx ecx, byte [rbx]
call fcn.1800d9390
mov byte [rsi + rbx], al
inc rbx
cmp rbx, r14
jne 0x18009b140
movups xmm0, xmmword [rsp + 0x30]
lea rdx, [0x180129998]
movups xmm1, xmmword [rsp + 0x40]
lea rcx, [rsp + 0x70]
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm1
call fcn.1800bf440
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.18008c5f0
test eax, eax
jg 0x18009b51f
cmp r13, 0x10
lea rsi, [rbp - 0x50]
cmovae rsi, r15
cmp rdi, 0x10
jae 0x18009b1b2
movups xmm0, xmmword [rsi]
mov qword [rsp + 0x48], 0xf
movups xmmword [rsp + 0x30], xmm0
jmp 0x18009b22d
movabs rax, 0x7fffffffffffffff
mov rbx, rdi
or rbx, 0xf
cmp rbx, rax
cmova rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x18009b206
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18009b606
mov rcx, rax
call fcn.1800cd2d4
mov rcx, rax
test rax, rax
je 0x18009b60c
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x18009b214
test rcx, rcx
je 0x18009b212
call fcn.1800cd2d4
jmp 0x18009b214
xor eax, eax
lea r8, [rdi + 1]
mov qword [rsp + 0x30], rax
mov rdx, rsi
mov rcx, rax
call fcn.1800d03a0
mov qword [rsp + 0x48], rbx
mov rdx, r12
mov qword [rsp + 0x40], rdi
lea rcx, [rbp - 0x70]
call fcn.1800bf440
mov r8, rax
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.180098a90
cmp qword [0x180129610], 0x10
lea r8, [0x1801295f8]
mov r9, qword [0x180129608]
mov rcx, rax
cmovae r8, qword [0x1801295f8]
call fcn.1800c44c0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [0x180129610]
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rsp + 0x30], xmm1
cmp rdx, 0x10
jb 0x18009b2e5
mov rcx, qword [0x1801295f8]
inc rdx
cmp rdx, 0x1000
jb 0x18009b2d6
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18009b60c
mov rcx, r8
call fcn.1800cd2cc
movups xmm0, xmmword [rsp + 0x70]
movups xmm1, xmmword [rsp + 0x30]
mov rdx, qword [rsp + 0x68]
movups xmmword [0x1801295f8], xmm0
movups xmmword [0x180129608], xmm1
cmp rdx, 0x10
jb 0x18009b330
mov rcx, qword [rsp + 0x50]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18009b32b
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009b60c
call fcn.1800cd2cc
cmp r13, 0x10
lea r14, [rbp - 0x50]
cmovae r14, r15
cmp rdi, 0x10
jae 0x18009b36b
movups xmm0, xmmword [r14]
lea rbx, [rsp + 0x30]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x48], 0xf
lea rsi, [rsp + 0x30]
movups xmmword [rsp + 0x30], xmm0
add rdi, rbx
jmp 0x18009b409
movabs rax, 0x7fffffffffffffff
mov rbx, rdi
or rbx, 0xf
cmp rbx, rax
cmova rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x18009b3bc
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18009b612
mov rcx, rax
call fcn.1800cd2d4
test rax, rax
je 0x18009b5e8
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x18009b3cd
test rcx, rcx
je 0x18009b3cb
call fcn.1800cd2d4
mov rsi, rax
jmp 0x18009b3cd
xor esi, esi
lea r8, [rdi + 1]
mov qword [rsp + 0x30], rsi
mov rdx, r14
mov rcx, rsi
call fcn.1800d03a0
mov qword [rsp + 0x40], rdi
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x48], rbx
cmp rbx, 0x10
jb 0x18009b3fe
add rdi, rsi
mov rbx, rsi
jmp 0x18009b40e
lea rax, [rsp + 0x30]
mov rsi, rcx
add rdi, rax
lea rbx, [rsp + 0x30]
cmp rbx, rdi
je 0x18009b429
sub rsi, rbx
movzx ecx, byte [rbx]
call fcn.1800d9390
mov byte [rbx + rsi], al
inc rbx
cmp rbx, rdi
jne 0x18009b416
movups xmm0, xmmword [rsp + 0x30]
cmp qword [0x1801299b0], 0x10
lea r8, [0x180129998]
movups xmm1, xmmword [rsp + 0x40]
cmovae r8, qword [0x180129998]
lea rcx, [rsp + 0x50]
mov r9, qword [0x1801299a8]
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm1
call fcn.1800c44c0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [0x1801299b0]
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x70], xmm1
cmp rdx, 0x10
jb 0x18009b4d4
mov rcx, qword [0x180129998]
inc rdx
cmp rdx, 0x1000
jb 0x18009b4c5
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18009b5e8
mov rcx, r8
call fcn.1800cd2cc
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x70]
mov rdx, qword [rsp + 0x68]
movups xmmword [0x180129998], xmm0
movups xmmword [0x1801299a8], xmm1
cmp rdx, 0x10
jb 0x18009b51f
mov rcx, qword [rsp + 0x50]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18009b51a
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009b5e8
call fcn.1800cd2cc
cmp r13, 0x10
jb 0x18009b556
lea rdx, [r13 + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x18009b54e
mov r15, qword [r15 - 8]
add rdx, 0x27
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009b5ee
mov rcx, r15
call fcn.1800cd2cc
mov rdx, qword [r12 + 0x18]
cmp rdx, 0x10
jb 0x18009b58e
mov rcx, qword [r12]
inc rdx
cmp rdx, 0x1000
jb 0x18009b589
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18009b5ee
mov rcx, r8
call fcn.1800cd2cc
mov r14, qword [rsp + 0x1f8]
mov r13, qword [rsp + 0x238]
mov rdi, qword [rsp + 0x230]
mov rbx, qword [rsp + 0x228]
mov r15, qword [rsp + 0x1f0]
mov qword [r12 + 0x10], 0
mov qword [r12 + 0x18], 0xf
mov byte [r12], 0
mov rcx, qword [rbp + 0xe0]
xor rcx, rsp
call fcn.1800cd010
add rsp, 0x200
pop r12
pop rsi
pop rbp
ret
call fcn.1800dc358
int3
call fcn.1800dc358
int3
call fcn.1800dc358
int3
call fcn.180088bc0
int3
call fcn.1800dc358
int3
call fcn.180088bc0
int3
call fcn.1800dc358
int3
call fcn.180088bc0
int3