Function at 0x1800917c0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x350]
sub rsp, 0x450
movzx ebx, byte [rbp + 0x398]
lea esi, [rdx + 0x10]
mov r13, r9
mov dword [rsp + 0x60], esi
cmp edx, esi
mov r9, r8
mov r15d, edx
mov r12, rcx
jae case.0x18009183d.42
xor r10d, r10d
lea eax, [r15 - 0x28]
lea rdx, [0x1800aad4c]
lea r11, [0x180000000]
cmp eax, 0x57
ja case.0x18009183d.56
movzx eax, byte [r11 + rax + 0x92148]
mov ecx, dword [r11 + rax*4 + 0x92104]
add rcx, r11
jmp rcx
mov rax, 0xffffffffffffffff
inc rax
cmp byte [r9 + rax], 0
jne 0x180091846
mov qword [rsp + 0x30], r9
xor edx, edx
mov dword [rsp + 0x58], eax
xor r9d, r9d
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], r10
mov r8d, 0x88
mov qword [rsp + 0x20], rax
mov rcx, r12
call fcn.180090d80
mov r9, qword [rbp + 0x3a0]
inc r15d
cmp r15d, esi
jmp 0x180091805
mov r9d, dword [rsp + 0x64]
lea rax, [rbp + 0x40]
mov r8, qword [rbp - 0x70]
mov edx, dword [rsp + 0x68]
mov rcx, qword [rbp - 0x58]
mov qword [rsp + 0x20], rax
call qword [sym.imp.SHELL32.dll_SHGetFolderPathA]
mov r9, qword [rbp + 0x3a0]
inc r15d
mov dword [rbp - 0x78], eax
cmp r15d, esi
jmp 0x180091805
cmp dword [rbp - 0x78], 0
mov ecx, r10d
movzx eax, byte [rbp + 0x398]
cmove ecx, eax
mov byte [rbp + 0x398], cl
cmp cl, 0
je 0x1800918f5
mov r8d, dword [rsp + 0x64]
lea r9, [rbp + 0x40]
mov rdx, qword [rbp - 0x70]
mov ecx, dword [rsp + 0x68]
call qword [sym.imp.SHELL32.dll_SHSetFolderPathA]
mov r13, qword [rbp - 0x68]
mov edi, 0x115
mov esi, 0x496e
cmp edi, 0xb6dd
ja 0x1800919b3
je 0x1800919ac
cmp edi, 0x115
je 0x1800919a5
cmp edi, 0x3dad
je 0x18009196d
cmp edi, 0x7a45
jne 0x180091a0b
mov r8d, 1
mov byte [rsp + 0x78], 0
lea rdx, [0x1800ec8d1]
lea rcx, [rsp + 0x70]
call fcn.1800b13c0
mov r8d, 4
lea rdx, [0x1800ec8ea]
lea rcx, [rsp + 0x79]
call fcn.1800b1570
jmp 0x180091a0b
mov r8d, 2
lea rdx, [0x1800ec94c]
lea rcx, [rsp + 0x70]
call fcn.1800b13c0
mov r8d, 2
lea rdx, [0x1800ec997]
lea rcx, [rsp + 0x70]
call fcn.1800b13c0
mov dword [rsp + 0x74], 0x56656c69
jmp 0x180091a0b
mov byte [rsp + 0x70], 0
jmp 0x180091a0b
mov word [rsp + 0x7d], si
jmp 0x180091a0b
cmp edi, 0xf375
je 0x180091a06
cmp edi, 0x1300d
je 0x1800919e1
cmp edi, 0x16ca5
jne 0x180091a0b
mov r8, r13
lea rdx, [rsp + 0x70]
lea rcx, [rbp + 0x150]
call fcn.1800aabd0
jmp 0x180091a0b
mov r8d, 2
mov dword [rsp + 0x7f], 0x206f666e
lea rdx, [0x1800ec9d4]
mov byte [rbp - 0x7d], 0
lea rcx, [rsp + 0x70]
call fcn.1800b13c0
jmp 0x180091a0b
mov byte [rsp + 0x7f], 0
add edi, 0x3c98
cmp edi, 0x1a828
jbe 0x180091903
mov esi, dword [rsp + 0x60]
inc r15d
mov r13, qword [rbp + 0x3a8]
cmp r15d, esi
mov r9, qword [rbp + 0x3a0]
jmp 0x180091805
mov rax, qword [r12 + 0x18]
inc r15d
cmp r15d, esi
mov byte [rax], 0x21
jmp 0x180091805
movzx eax, byte [r13]
xor bl, bl
test al, al
je 0x180091b8b
cmp al, 1
jne 0x180091aa0
mov eax, dword [r9]
lea rdx, [rsp + 0x58]
mov qword [rsp + 0x30], r10
xor r9d, r9d
mov qword [rsp + 0x28], r10
mov r8, r12
xor ecx, ecx
mov dword [rsp + 0x20], 0x12b
mov dword [rsp + 0x58], eax
call fcn.18003b180
mov r9, qword [rbp + 0x3a0]
inc r15d
cmp r15d, esi
mov rbx, rax
jmp 0x180091805
mov r14d, 0xe
mov eax, r14d
sub eax, 0xe
je 0x180091b0c
cmp eax, 1
jne 0x180091b74
cmp byte [r13], 0
mov esi, r10d
jbe 0x180091b74
mov rdi, r9
mov eax, dword [rdi]
test eax, eax
je 0x180091afb
mov qword [rsp + 0x30], r10
lea rdx, [rsp + 0x58]
mov qword [rsp + 0x28], r10
xor r9d, r9d
mov r8, r12
mov dword [rsp + 0x20], 0x12b
xor ecx, ecx
mov dword [rsp + 0x58], eax
call fcn.18003b180
add bl, al
xor r10d, r10d
movzx eax, byte [r13]
inc esi
add rdi, 4
cmp esi, eax
jl 0x180091ac8
jmp 0x180091b6d
movzx r8d, byte [r13]
xor dl, dl
sub r8, 1
js 0x180091b3b
nop dword [rax]
add dl, dl
movzx ecx, dl
movzx eax, cl
or al, 1
cmp dword [r9 + r8*4], 0
movzx edx, al
cmove edx, ecx
sub r8, 1
jns 0x180091b20
mov qword [rsp + 0x40], r10
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x38], r10
xor r9d, r9d
mov byte [rsp + 0x50], dl
xor edx, edx
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r10
lea r8d, [r9 + 0x11]
mov qword [rsp + 0x20], r10
call fcn.180031e70
add bl, al
mov r9, qword [rbp + 0x3a0]
inc r14d
mov r10d, 0
cmp r14d, 0x10
jb 0x180091aa6
mov esi, dword [rsp + 0x60]
mov r9, qword [rbp + 0x3a0]
inc r15d
cmp r15d, esi
jmp 0x180091805
movzx ecx, byte [0x1801074ee]
sub ecx, 2
je 0x180091c26
sub ecx, 1
je 0x180091cba
sub ecx, 3
je 0x180091cd7
sub ecx, 0xc
je 0x180091d45
cmp ecx, 0x1e
jne case.0x18009183d.45
mov r10d, 0xbf
xor r14d, r14d
nop word [rax + rax]
cmp r10d, 0xbc
jbe case.0x18009183d.45
mov eax, r10d
sub eax, 0xbd
je 0x180091e74
sub eax, 1
je 0x180091db6
cmp eax, 1
jne 0x180091e6c
mov rax, qword [r12 + 0x18]
dec r10d
mov byte [rax], 0x49
movzx eax, byte [0x180107504]
mov byte [r12 + 0x5e], al
jmp 0x180091be0
mov ecx, 0x44
nop dword [rax + rax]
cmp ecx, 0x44
je 0x180091c95
cmp ecx, 0x2b90
je 0x180091c5c
cmp ecx, 0x56dc
je 0x180091c53
cmp ecx, 0x8228
je 0x180091ea3
jmp 0x180091ca8
mov byte [0x1801074f3], 1
jmp 0x180091ca8
mov eax, dword [0x180107508]
mov dword [r12 + 0x40], eax
mov eax, 0x66666667
imul dword [0x180107510]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov word [r12 + 0x58], dx
jmp 0x180091ca8
mov rax, qword [r12 + 0x18]
mov byte [rax], 0x50
mov eax, dword [0x180107504]
mov dword [r12 + 0x44], eax
add ecx, 0x2b4c
cmp ecx, 0xad30
jbe 0x180091c30
mov eax, reloc.SHELL32.dll_SHGetNewLinkInfoA
nop
cmp eax, 0xb3
je 0x180091e7d
add eax, 0x2728
cmp eax, 0x2728
jbe 0x180091cc0
mov ecx, 0x87
nop dword [rax]
mov eax, ecx
sub eax, 0x87
je 0x180091d32
sub eax, 0x1c
je 0x180091cf9
cmp eax, 0x1c
je 0x180091ea3
jmp 0x180091d3a
test byte [0x18010750b], 1
je 0x180091d0f
cmp byte [0x18010750a], 3
jne 0x180091d0f
mov al, 1
jmp 0x180091d11
xor al, al
mov byte [0x1801074ef], al
movzx eax, byte [0x18010752f]
mov byte [r12 + 0x48], al
movzx eax, word [0x18010752c]
mov word [r12 + 0x4a], ax
jmp 0x180091d3a
mov rax, qword [r12 + 0x18]
mov byte [rax], 0x4f
add ecx, 0x1c
cmp ecx, 0xdb
jb 0x180091ce0
mov ecx, 0x3c
nop word [rax + rax]
cmp ecx, 0x3c
je 0x180091d8e
cmp ecx, 0xa8c
je 0x180091d71
cmp ecx, 0x14dc
jne 0x180091da3
mov byte [0x1801074f6], 1
jmp 0x180091ea3
mov eax, 0x68db8bad
imul dword [0x180107518]
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add edx, eax
mov word [r12 + 0x5c], dx
jmp 0x180091da3
mov rax, qword [r12 + 0x18]
mov byte [rax], 0x56
movzx eax, word [0x180107514]
mov word [r12 + 0x5a], ax
add ecx, 0xa50
cmp ecx, 0x1ef0
jbe 0x180091d50
jmp 0x180091bcd
movzx eax, byte [r12 + 0x5e]
cmp al, 0x10
jbe 0x180091dc8
mov byte [r12 + 0x5e], 0x10
mov al, 0x10
mov r9d, r14d
test al, al
je 0x180091e67
mov eax, 0xbe
cmp eax, 0xbe
je 0x180091e34
cmp eax, 0x8890
je 0x180091e07
cmp eax, 0x11062
jne 0x180091e49
mov edx, r9d
lea rcx, [rdx + rdx*2]
movzx ecx, byte [r11 + rcx*4 + 0x10750c]
mov byte [rdx + r12 + 0x8f], cl
jmp 0x180091e49
mov edx, r9d
lea rcx, [rdx + rdx*2]
lea r8, [rcx*4]
movzx ecx, byte [r8 + r11 + 0x107509]
mov byte [rdx + r12 + 0x6f], cl
movzx ecx, byte [r8 + r11 + 0x10750b]
mov byte [rdx + r12 + 0x7f], cl
jmp 0x180091e49
mov edx, r9d
lea rcx, [rdx + rdx*2]
movzx ecx, byte [r11 + rcx*4 + 0x107508]
mov byte [rdx + r12 + 0x5f], cl
add eax, 0x87d2
cmp eax, 0x19776
jbe 0x180091dd8
movzx eax, byte [r12 + 0x5e]
inc r9d
cmp r9d, eax
jb 0x180091dd3
inc dword [r12 + 0x54]
dec r10d
jmp 0x180091be0
mov r9, qword [rbp + 0x3a0]
jmp 0x180091ea3
mov rax, qword [r12 + 0x18]
mov byte [rax], 0x53
test byte [0x180107505], 1
je 0x180091e9b
cmp byte [0x180107504], 3
jne 0x180091e9b
mov al, 1
jmp 0x180091e9d
xor al, al
mov byte [0x1801074ef], al
cmp byte [0x1801074f3], 0
mov r15d, 0x49
je case.0x18009183d.56
cmp byte [0x1801074f6], 0
je case.0x18009183d.56
mov ecx, 0x45
nop dword [rax + rax]
mov eax, ecx
sub eax, 0x44
je 0x1800920dc
cmp eax, 1
jne 0x180091eee
mov byte [0x1801074f3], 0
mov byte [0x1801074f6], 0
dec ecx
cmp ecx, 0x43
ja 0x180091ed0
inc r15d
cmp r15d, esi
jmp 0x180091805
inc r15d
mov qword [rbp - 0x70], r10
cmp r15d, esi
jmp 0x180091805
inc r15d
mov dword [rsp + 0x64], r10d
cmp r15d, esi
jmp 0x180091805
inc r15d
mov qword [rbp - 0x68], rdx
cmp r15d, esi
jmp 0x180091805
lea rdx, [rbp - 0x48]
mov dword [rbp - 0x50], r10d
lea rcx, [r12 + 8]
mov qword [rbp - 0x38], r10
mov qword [rbp - 0x30], 0xf
mov byte [rbp - 0x48], 0
mov qword [rbp - 0x18], r10
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov qword [rbp + 8], r10
mov qword [rbp + 0x10], 0xf
mov byte [rbp - 8], 0
mov qword [rbp + 0x18], r10
mov qword [rbp + 0x20], 0xffffffffffffffff
mov qword [rbp + 0x28], r10
mov qword [rbp + 0x30], r10
mov qword [rbp + 0x38], r10
mov dword [r12], r10d
call fcn.180004e90
lea rcx, [r12 + 0x28]
lea rdx, [rbp - 0x28]
call fcn.180004e90
lea rcx, [r12 + 0x48]
lea rdx, [rbp - 8]
call fcn.180004e90
mov rax, qword [rbp + 0x18]
lea rcx, [rbp - 0x48]
mov qword [r12 + 0x68], rax
mov rax, qword [rbp + 0x20]
mov qword [r12 + 0x70], rax
mov rax, qword [rbp + 0x28]
mov qword [r12 + 0x78], rax
mov rax, qword [rbp + 0x30]
mov qword [r12 + 0x80], rax
mov rax, qword [rbp + 0x38]
mov qword [r12 + 0x88], rax
call fcn.180004b30
mov r9, qword [rbp + 0x3a0]
inc r15d
cmp r15d, esi
jmp 0x180091805
mov rcx, qword [r12 + 0x78]
test rcx, rcx
je case.0x18009183d.56
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r9, qword [rbp + 0x3a0]
inc r15d
cmp r15d, esi
jmp 0x180091805
inc dword [r12]
inc r15d
cmp r15d, esi
jmp 0x180091805
test r12, r12
je case.0x18009183d.56
mov r13, qword [rbp - 0x60]
mov edi, 0x3a
xor r14d, r14d
mov eax, edi
sub eax, 0x3a
je 0x180092083
sub eax, 1
je 0x18009207c
cmp eax, 1
jne 0x18009209a
mov r8, r12
lea edx, [rax + 0x68]
mov rcx, r13
call fcn.180017200
xor r8d, r8d
mov qword [rsp + 0x28], r14
mov r9, r13
mov qword [rsp + 0x20], r14
xor ecx, ecx
lea edx, [r8 + 0x36]
call fcn.18008b6e0
jmp 0x18009209a
mov r8, qword [r12 + 0x10]
jmp 0x18009208d
mov r13, qword [r12 + 0x18]
mov r8, qword [r12 + 8]
mov edx, 0x69
mov rcx, r13
call fcn.180017200
inc edi
cmp edi, 0x3d
jb 0x180092040
mov r9, qword [rbp + 0x3a0]
inc r15d
mov qword [rbp - 0x60], r13
cmp r15d, esi
mov r13, qword [rbp + 0x3a8]
jmp 0x180091805
mov byte [rbp + 0x398], 1
mov qword [rbp - 0x58], r10
mov dword [rsp + 0x68], 0x36
inc r15d
cmp r15d, esi
jmp 0x180091805
mov al, 1
jmp 0x1800920e7
xor al, al
jmp 0x1800920e7
movzx eax, bl
mov rbx, qword [rsp + 0x490]
add rsp, 0x450
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret