Function at 0x58d3d0
Capabilities:
Get common file path

Disassembly:
push rbp
sub rsp, 0x90
mov rbp, rsp
mov qword [rbp + 0x30], 0
mov qword [rbp + 0x28], 0
mov qword [rbp + 0x38], 0
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x70], 0
mov qword [rbp + 0x48], rbp
mov qword [rbp + 0xa0], rcx
mov dword [rbp + 0xa8], edx
nop
mov rcx, qword [rbp + 0xa0]
call fcn.0040e670
nop
mov eax, dword [rbp + 0x6c]
add eax, dword [rbp + 0x6c]
mov dword [rbp + 0x54], eax
mov ecx, 0x200
call fcn.00409020
mov qword [rbp + 0x80], rax
mov eax, dword [rbp + 0x8c]
imul eax, eax, 0x212
mov dword [rbp + 0x58], eax
lea rcx, [rbp + 0x70]
call fcn.0040e5d0
mov eax, 0x57
sub eax, dword [rbp + 0x68]
cmp eax, 0xdd
jge 0x58d46c
mov eax, dword [rbp + 0x68]
add dword [rbp + 0x6c], eax
lea rcx, [rbp + 0x70]
mov rdx, qword [0x005d1cf0]
call fcn.0040fe40
mov eax, dword [rbp + 0x68]
sub dword [rbp + 0x6c], eax
lea rcx, [rbp + 0x70]
mov rdx, qword [0x005d1d10]
call fcn.0040fe40
mov eax, dword [rbp + 0x68]
add dword [rbp + 0x6c], eax
lea rcx, [rbp + 0x70]
mov rdx, qword [0x005d1ca8]
call fcn.0040fe40
mov dword [rbp + 0x6c], 0
lea rcx, [rbp + 0x70]
mov rdx, qword [0x005d1d28]
call fcn.0040fe40
mov eax, dword [rbp + 0x68]
add dword [rbp + 0x6c], eax
lea rcx, [rbp + 0x70]
mov rdx, qword [0x005d1d28]
call fcn.0040fe40
mov eax, dword [rbp + 0x68]
add dword [rbp + 0x6c], eax
lea rcx, [rbp + 0x40]
mov edx, 3
call fcn.0042be80
lea rcx, [rbp + 0x70]
mov rdx, qword [rbp + 0x40]
call fcn.0040fe40
mov eax, dword [rbp + 0x6c]
add eax, dword [rbp + 0x6c]
mov dword [rbp + 0x54], eax
lea rcx, [rbp + 0x38]
mov edx, 2
call fcn.0042be80
lea rcx, [rbp + 0x70]
mov rdx, qword [rbp + 0x38]
call fcn.0040fe40
mov eax, dword [rbp + 0x6c]
add dword [rbp + 0x6c], eax
lea rcx, [rbp + 0x70]
lea rdx, [0x0058d8c8]
call fcn.0040fe40
mov eax, dword [rbp + 0x6c]
imul eax, eax, 0x31e
mov dword [rbp + 0x54], eax
lea rcx, [rbp + 0x70]
mov rdx, qword [0x005d1cf8]
call fcn.0040fe40
mov eax, dword [rbp + 0x6c]
imul eax, eax, 0x2e2
mov dword [rbp + 0x54], eax
lea rcx, [rbp + 0x70]
mov rdx, qword [0x005d1d28]
call fcn.0040fe40
mov eax, dword [rbp + 0x6c]
sub eax, 0x2a6
mov dword [rbp + 0x8c], eax
lea rcx, [rbp + 0x70]
mov rdx, qword [0x005d1d28]
call fcn.0040fe40
mov eax, 0x124
sub eax, dword [rbp + 0x5c]
mov dword [rbp + 0x60], eax
mov eax, 0x188
sub eax, dword [rbp + 0x5c]
mov dword [rbp + 0x5c], eax
mov eax, dword [rbp + 0x58]
imul eax, eax, 0x1ad
mov dword [rbp + 0x5c], eax
mov eax, dword [rbp + 0x58]
imul eax, eax, 0x1b1
mov dword [rbp + 0x5c], eax
mov dword [rbp + 0x68], 0
mov eax, dword [rbp + 0x54]
sub eax, 0x2a9
mov dword [rbp + 0x8c], eax
mov eax, dword [rbp + 0x5c]
add eax, dword [rbp + 0x8c]
cmp eax, dword [rbp + 0x54]
jle 0x58d5e9
mov eax, dword [rbp + 0x58]
imul eax, eax, 0x1b1
mov dword [rbp + 0x5c], eax
mov eax, dword [rbp + 0x64]
sub eax, dword [rbp + 0x60]
mov ecx, dword [rbp + 0x5c]
sub ecx, dword [rbp + 0x58]
cmp eax, ecx
jle 0x58d605
mov eax, dword [rbp + 0x60]
add eax, 0x98
mov dword [rbp + 0x64], eax
mov eax, dword [rbp + 0x64]
imul eax, dword [rbp + 0x64]
mov dword [rbp + 0x6c], eax
mov eax, dword [rbp + 0x6c]
imul eax, dword [rbp + 0x64]
mov dword [rbp + 0x6c], eax
add dword [rbp + 0x68], 1
cmp dword [rbp + 0x68], 2
jne 0x58d5c0
nop
mov eax, dword [rbp + 0x68]
add eax, dword [rbp + 0x64]
mov ecx, dword [rbp + 0x60]
add ecx, dword [rbp + 0x5c]
cmp eax, ecx
jge 0x58d645
lea rcx, [rbp + 0x68]
lea rdx, [rbp + 0x64]
lea r8, [rbp + 0x60]
call fcn.00536410
mov eax, dword [rbp + 0x6c]
cmp eax, dword [rbp + 0x68]
jle 0x58d662
lea rcx, [rbp + 0x6c]
lea rdx, [rbp + 0x68]
lea r8, [rbp + 0x68]
lea r9, [rbp + 0x64]
call fcn.00582ac0
mov eax, 0x5b
sub eax, dword [rbp + 0x68]
cmp eax, 0xfb
jge 0x58d688
lea rcx, [rbp + 0x54]
lea rdx, [rbp + 0x6c]
lea r8, [rbp + 0x68]
lea r9, [rbp + 0x64]
call fcn.005771b0
xor ecx, ecx
mov edx, dword [rbp + 0xa8]
lea r8, [rbp + 0x78]
call sub.shell32.dll_SHGetSpecialFolderLocation
mov eax, dword [rbp + 0x58]
imul eax, eax, 0x192
mov dword [rbp + 0x5c], eax
mov eax, dword [rbp + 0x8c]
add eax, 0x1f7
mov dword [rbp + 0x58], eax
mov eax, dword [rbp + 0x54]
sub eax, 0x25b
mov dword [rbp + 0x8c], eax
mov eax, dword [rbp + 0x54]
sub eax, 0x2a0
mov dword [rbp + 0x8c], eax
mov eax, dword [rbp + 0x6c]
imul eax, eax, 0x2e4
mov dword [rbp + 0x54], eax
mov eax, dword [rbp + 0x58]
imul eax, eax, 0x1ba
mov dword [rbp + 0x5c], eax
mov eax, dword [rbp + 0x8c]
add eax, 0x1df
mov dword [rbp + 0x58], eax
mov eax, dword [rbp + 0x8c]
add eax, 0x223
mov dword [rbp + 0x58], eax
mov eax, dword [rbp + 0x8c]
add eax, 0x227
mov dword [rbp + 0x58], eax
sub dword [rbp + 0x8c], 0x24c
mov rcx, qword [rbp + 0x78]
mov rdx, qword [rbp + 0x80]
call sub.shell32.dll_SHGetPathFromIDListW
mov eax, dword [rbp + 0x8c]
add eax, 0x1c2
mov dword [rbp + 0x58], eax
mov rcx, qword [rbp + 0xa0]
mov rdx, qword [rbp + 0x80]
call fcn.0040f4a0
mov dword [rbp + 0x68], 0
cmp dword [rbp + 0x68], 1
jge 0x58d7b0
add dword [rbp + 0x68], 1
mov eax, dword [rbp + 0x5c]
add eax, dword [rbp + 0x8c]
cmp eax, dword [rbp + 0x54]
jle 0x58d77e
mov eax, dword [rbp + 0x58]
imul eax, eax, 0x1c8
mov dword [rbp + 0x5c], eax
mov eax, dword [rbp + 0x64]
sub eax, dword [rbp + 0x60]
mov ecx, dword [rbp + 0x60]
sub ecx, dword [rbp + 0x5c]
cmp eax, ecx
jle 0x58d794
mov eax, dword [rbp + 0x60]
mov dword [rbp + 0x64], eax
mov eax, dword [rbp + 0x64]
mov dword [rbp + 0x6c], eax
mov eax, dword [rbp + 0x6c]
imul eax, dword [rbp + 0x64]
mov dword [rbp + 0x6c], eax
mov eax, dword [rbp + 0x64]
sub dword [rbp + 0x6c], eax
cmp dword [rbp + 0x68], 1
jl 0x58d760
nop
mov eax, dword [rbp + 0x6c]
cmp eax, dword [rbp + 0x68]
jle 0x58d7ca
lea rcx, [rbp + 0x6c]
lea rdx, [rbp + 0x68]
lea r8, [rbp + 0x68]
call fcn.005820e0
lea rcx, [rbp + 0x6c]
lea rdx, [rbp + 0x6c]
call fcn.0057b360
mov eax, dword [rbp + 0x54]
sub eax, 0x26b
mov dword [rbp + 0x8c], eax
lea rcx, [rbp + 0x28]
mov rax, qword [rbp + 0xa0]
mov rdx, qword [rax]
call fcn.0040fc50
lea rcx, [rbp + 0x30]
mov rdx, qword [rbp + 0x28]
call fcn.0054f5e0
lea rcx, [rbp + 0x30]
lea rdx, [0x0058d8d8]
call fcn.0040fe40
mov rcx, qword [rbp + 0xa0]
mov rdx, qword [rbp + 0x30]
call fcn.0040fc80
mov eax, dword [rbp + 0x58]
imul eax, eax, 0x1d3
mov dword [rbp + 0x58], eax
mov rcx, qword [rbp + 0x80]
call fcn.00409050
jmp 0x58d852
nop
lea rcx, [rbp + 0x28]
mov edx, 4
call fcn.0040e6b0
lea rcx, [rbp + 0x70]
call fcn.0040e5d0
mov rax, qword [rbp + 0xa0]
lea rsp, [rbp + 0x90]
pop rbp
ret