Function at 0x10690c6
Capabilities:
Get common file path

Disassembly:
mov eax, 0x1273709
call fcn.01160168
sub esp, 0x6e0
mov eax, dword [0x12cf8c8]
push ebx
push esi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x6e0], ecx
call fcn.01065b98
mov esi, dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea eax, [ebp - 0x218]
push eax
xor ebx, ebx
push ebx
push ebx
push 0x800e
push ebx
call esi
cmp eax, ebx
jge 0x1069119
lea eax, [ebp - 0x218]
push eax
push ebx
push ebx
push 0x8005
push ebx
call esi
mov dword [ebp - 0x69c], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x6a0], ebx
mov byte [ebp - 4], 1
lea eax, [ebp - 0x6a0]
push eax
mov ecx, 0x12d2398
call fcn.0107d39e
mov esi, eax
cmp esi, ebx
jl 0x1069160
mov eax, dword [ebp - 0x6a0]
cmp eax, ebx
je 0x1069176
mov ecx, dword [eax]
lea edx, [ebp - 0x69c]
push edx
push eax
call dword [ecx + 0x54]
mov esi, eax
cmp esi, ebx
jge 0x106916e
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x6a0]
jmp 0x106920f
cmp dword [ebp - 0x69c], ebx
jne 0x1069181
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x6a0]
jmp 0x10691c8
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x6a0]
cmp eax, ebx
je 0x1069194
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x6a8], ebx
mov byte [ebp - 4], 2
push 0x100461c
push dword [ebp - 0x69c]
lea eax, [ebp - 0x6a8]
push eax
call fcn.010615e7
mov eax, dword [ebp - 0x6a8]
cmp eax, ebx
jne 0x10691f0
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x6a8]
cmp eax, ebx
je 0x10691d2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x69c]
cmp eax, ebx
je 0x10691e6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x80004003
jmp 0x10699de
mov ecx, dword [eax]
lea edx, [ebp - 0x6dc]
push edx
push eax
call dword [ecx + 0x90]
mov esi, eax
cmp esi, ebx
jge 0x1069234
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x6a8]
cmp eax, ebx
je 0x1069219
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x69c]
cmp eax, ebx
je 0x106922d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, esi
jmp 0x10699de
push edi
mov dword [ebp - 0x6b0], ebx
mov byte [ebp - 4], 3
cmp word [ebp - 0x6dc], bx
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
jne 0x106927c
mov eax, dword [ebp - 0x69c]
mov ecx, dword [eax]
lea edx, [ebp - 0x6b0]
push edx
push eax
call dword [ecx + 0x6c]
mov edi, eax
cmp edi, ebx
jge 0x1069319
mov byte [ebp - 4], 2
push dword [ebp - 0x6b0]
call esi
jmp 0x10699b4
lea ecx, [ebp - 0x6b4]
call fcn.01044ec9
mov byte [ebp - 4], 4
push 0xf043
lea ecx, [ebp - 0x6b4]
call fcn.01032a95
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x6a4]
call fcn.01045d3e
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x6a4]
call fcn.01044f6f
lea eax, [ebp - 0x6b4]
push eax
lea ecx, [ebp - 0x6a4]
call fcn.01044c82
push dword [ebp - 0x6a4]
lea ecx, [ebp - 0x6c0]
call fcn.01257752
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x6b0]
call fcn.010633b6
mov byte [ebp - 4], 5
push dword [ebp - 0x6c0]
call esi
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x6a4]
call fcn.010454b8
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x6b4]
call fcn.010454b8
mov eax, dword [0x12ce0a0]
mov dword [ebp - 0x6bc], eax
mov byte [ebp - 4], 7
mov eax, dword [0x12ce0a0]
mov dword [ebp - 0x6c4], eax
mov byte [ebp - 4], 8
push 0xf102
lea ecx, [ebp - 0x6bc]
call fcn.01032a95
push 0xf0e6
lea ecx, [ebp - 0x6c4]
call fcn.01032a95
mov eax, dword [ebp - 0x6bc]
mov edi, dword [eax - 8]
push ebx
lea ecx, [ebp - 0x6bc]
call fcn.0103299e
dec edi
cmp edi, ebx
mov dword [ebp - 0x6c0], eax
jl 0x1069385
cmp word [eax + edi*2], 0x7c
jne 0x1069382
mov word [eax + edi*2], bx
dec edi
jns 0x1069377
mov eax, dword [0x12ce0a0]
mov dword [ebp - 0x6cc], eax
mov byte [ebp - 4], 9
push 0xf0f2
lea ecx, [ebp - 0x6cc]
call fcn.01032a95
push ebx
push dword [ebp - 0x6c0]
lea ecx, [ebp - 0x698]
push 0x806
push dword [ebp - 0x6b0]
push dword [ebp - 0x6cc]
push ebx
call fcn.01068c6a
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x6c4]
mov dword [ebp - 0x64c], eax
lea eax, [ebp - 0x218]
mov dword [ebp - 0x650], eax
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x698]
call fcn.01065cb1
dec eax
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x6c0], eax
je 0x1069969
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x6ac]
call fcn.01045d3e
mov byte [ebp - 4], 0xb
mov eax, dword [0x12ce0a0]
mov dword [ebp - 0x6b8], eax
mov byte [ebp - 4], 0xc
push 0xf0ef
lea ecx, [ebp - 0x6b8]
call fcn.01032a95
cmp eax, ebx
jne 0x10694dc
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x6b8]
call fcn.010328fa
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x6ac]
call fcn.010454b8
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x698]
call fcn.0106772f
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x6cc]
call fcn.010328fa
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x6c4]
call fcn.010328fa
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x6bc]
call fcn.010328fa
mov byte [ebp - 4], 2
push dword [ebp - 0x6b0]
call esi
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x6a8]
cmp eax, ebx
je 0x10694be
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x69c]
cmp eax, ebx
je 0x10694d2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x80004005
jmp 0x10699dd
push dword [ebp - 0x6b8]
lea ecx, [ebp - 0x6ac]
call fcn.01061b0b
test eax, eax
jne 0x1069502
push dword [ebp - 0x6b8]
lea ecx, [ebp - 0x6ac]
call fcn.0106352c
mov eax, dword [ebp - 0x6ac]
mov edi, dword [eax - 8]
push 0x1006d4c
lea ecx, [ebp - 0x6d4]
call fcn.0103966b
mov byte [ebp - 4], 0xd
push 0x1006d40
lea ecx, [ebp - 0x6d0]
call fcn.0103966b
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x6c8]
call fcn.01044ec9
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x6c8]
push eax
lea ecx, [ebp - 0x6ac]
call fcn.01047723
mov eax, dword [ebp - 0x6d4]
mov edx, dword [eax - 8]
mov eax, dword [ebp - 0x6d0]
mov ecx, dword [ebp - 0x6c8]
mov ecx, dword [ecx - 8]
mov eax, dword [eax - 8]
add ecx, eax
add ecx, edx
add edi, ecx
cmp edi, 0x104
jl 0x10696c1
mov eax, dword [0x12ce0a0]
mov dword [ebp - 0x6c0], eax
mov byte [ebp - 4], 0x10
push 0xf03d
lea ecx, [ebp - 0x6c0]
call fcn.01032a95
mov eax, dword [0x12ce0a0]
mov dword [ebp - 0x6a4], eax
mov byte [ebp - 4], 0x11
push 0xf006
lea ecx, [ebp - 0x6a4]
call fcn.01032a95
call fcn.0115c814
mov ecx, dword [ebp - 0x6e0]
push eax
push dword [ebp - 0x6a4]
add ecx, 0x14
push dword [ebp - 0x6c0]
call fcn.01061647
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x6a4]
call fcn.010328fa
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x6c0]
call fcn.010328fa
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x6c8]
call fcn.010454b8
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x6d0]
call fcn.010328fa
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x6d4]
call fcn.010328fa
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x6b8]
call fcn.010328fa
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x6ac]
call fcn.010454b8
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x698]
call fcn.0106772f
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x6cc]
call fcn.010328fa
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x6c4]
call fcn.010328fa
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x6bc]
call fcn.010328fa
mov byte [ebp - 4], 2
push dword [ebp - 0x6b0]
call esi
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x6a8]
cmp eax, ebx
je 0x10696a3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x69c]
cmp eax, ebx
je 0x10696b7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x80070057
jmp 0x10699dd
push dword [ebp - 0x6c8]
lea ecx, [ebp - 0x6a4]
call fcn.01257752
mov byte [ebp - 4], 0x12
mov dword [ebp - 0x6b4], ebx
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x6d8], ebx
mov byte [ebp - 4], 0x14
mov dword [ebp - 0x6a0], ebx
mov byte [ebp - 4], 0x15
lea eax, [ebp - 0x6d8]
push eax
mov ecx, 0x12d2398
call fcn.0107d39e
mov edi, eax
cmp edi, ebx
jl 0x1069838
mov eax, dword [ebp - 0x6d8]
cmp eax, ebx
jne 0x1069821
mov byte [ebp - 4], 0x14
mov eax, dword [ebp - 0x6a0]
cmp eax, ebx
je 0x1069731
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x6d8]
cmp eax, ebx
je 0x1069745
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x12
push dword [ebp - 0x6b4]
call esi
mov byte [ebp - 4], 0xf
push dword [ebp - 0x6a4]
call esi
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x6c8]
call fcn.010454b8
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x6d0]
call fcn.010328fa
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x6d4]
call fcn.010328fa
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x6b8]
call fcn.010328fa
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x6ac]
call fcn.010454b8
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x698]
call fcn.0106772f
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x6cc]
call fcn.010328fa
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x6c4]
call fcn.010328fa
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x6bc]
call fcn.010328fa
mov byte [ebp - 4], 2
push dword [ebp - 0x6b0]
call esi
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x6a8]
cmp eax, ebx
je 0x1069803
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x69c]
cmp eax, ebx
je 0x1069817
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x80004003
jmp 0x10699dd
mov ecx, dword [eax]
lea edx, [ebp - 0x6a0]
push edx
push eax
call dword [ecx + 0x54]
mov edi, eax
cmp edi, ebx
jge 0x10698c8
mov byte [ebp - 4], 0x14
mov eax, dword [ebp - 0x6a0]
cmp eax, ebx
je 0x106984c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x6d8]
cmp eax, ebx
je 0x1069860
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x12
push dword [ebp - 0x6b4]
call esi
mov byte [ebp - 4], 0xf
push dword [ebp - 0x6a4]
call esi
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x6c8]
call fcn.010454b8
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x6d0]
call fcn.010328fa
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x6d4]
call fcn.010328fa
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x6b8]
call fcn.010328fa
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x6ac]
call fcn.010454b8
jmp 0x106996c
mov eax, dword [ebp - 0x6a0]
cmp eax, ebx
je 0x106971d
mov ecx, dword [eax]
lea edx, [ebp - 0x6b4]
push edx
push eax
call dword [ecx + 0x84]
push 1
push 0x7f02
push 1
lea ecx, [ebp - 0x6ec]
call fcn.0103ef07
mov byte [ebp - 4], 0x16
push dword [ebp - 0x6ac]
lea ecx, [ebp - 0x6c0]
call fcn.01257752
mov byte [ebp - 4], 0x17
mov eax, dword [eax]
mov ecx, dword [ebp - 0x6a0]
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x60]
mov edi, eax
mov byte [ebp - 4], 0x16
push dword [ebp - 0x6c0]
call esi
cmp edi, ebx
jl 0x1069941
mov ecx, dword [ebp - 0x6e0]
call fcn.01064224
mov edi, eax
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x6ec]
call fcn.0103d38e
cmp edi, ebx
jge 0x1069838
push edi
call fcn.0116f1b4
pop ecx
mov edi, 0x80070057
jmp 0x1069838
xor edi, edi
inc edi
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x698]
call fcn.0106772f
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x6cc]
call fcn.010328fa
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x6c4]
call fcn.010328fa
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x6bc]
call fcn.010328fa
mov byte [ebp - 4], 2
push dword [ebp - 0x6b0]
call esi
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x6a8]
cmp eax, ebx
je 0x10699c7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x69c]
cmp eax, ebx
je 0x10699db
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, edi
pop edi
mov ecx, dword [ebp - 0xc]
pop esi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop ebx
call fcn.0115fe73
leave
ret