Function at 0x10696d5
Capabilities:
Get common file path

Disassembly:
mov eax, 0x1273855
call fcn.01160458
sub esp, 0x6e0
mov eax, dword [0x12cf8c8]
push ebx
push esi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x6e0], ecx
call fcn.010660d0
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 0x1069728
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.0107dbed
mov esi, eax
cmp esi, ebx
jl 0x106976f
mov eax, dword [ebp - 0x6a0]
cmp eax, ebx
je 0x1069785
mov ecx, dword [eax]
lea edx, [ebp - 0x69c]
push edx
push eax
call dword [ecx + 0x54]
mov esi, eax
cmp esi, ebx
jge 0x106977d
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x6a0]
jmp 0x106981e
cmp dword [ebp - 0x69c], ebx
jne 0x1069790
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x6a0]
jmp 0x10697d7
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x6a0]
cmp eax, ebx
je 0x10697a3
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.01061b1e
mov eax, dword [ebp - 0x6a8]
cmp eax, ebx
jne 0x10697ff
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x6a8]
cmp eax, ebx
je 0x10697e1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x69c]
cmp eax, ebx
je 0x10697f5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x80004003
jmp 0x1069fed
mov ecx, dword [eax]
lea edx, [ebp - 0x6dc]
push edx
push eax
call dword [ecx + 0x90]
mov esi, eax
cmp esi, ebx
jge 0x1069843
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x6a8]
cmp eax, ebx
je 0x1069828
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x69c]
cmp eax, ebx
je 0x106983c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, esi
jmp 0x1069fed
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 0x106988b
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 0x1069928
mov byte [ebp - 4], 2
push dword [ebp - 0x6b0]
call esi
jmp 0x1069fc3
lea ecx, [ebp - 0x6b4]
call fcn.01045169
mov byte [ebp - 4], 4
push 0xf043
lea ecx, [ebp - 0x6b4]
call fcn.01032a72
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x6a4]
call fcn.01046065
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x6a4]
call fcn.01045236
lea eax, [ebp - 0x6b4]
push eax
lea ecx, [ebp - 0x6a4]
call fcn.01044f22
push dword [ebp - 0x6a4]
lea ecx, [ebp - 0x6c0]
call fcn.01032b44
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x6b0]
call fcn.0106393e
mov byte [ebp - 4], 5
push dword [ebp - 0x6c0]
call esi
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x6a4]
call fcn.01045295
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x6b4]
call fcn.01045295
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.01032a72
push 0xf0e6
lea ecx, [ebp - 0x6c4]
call fcn.01032a72
mov eax, dword [ebp - 0x6bc]
mov edi, dword [eax - 8]
push ebx
lea ecx, [ebp - 0x6bc]
call fcn.0103297b
dec edi
cmp edi, ebx
mov dword [ebp - 0x6c0], eax
jl 0x1069994
cmp word [eax + edi*2], 0x7c
jne 0x1069991
mov word [eax + edi*2], bx
dec edi
jns 0x1069986
mov eax, dword [0x12ce0a0]
mov dword [ebp - 0x6cc], eax
mov byte [ebp - 4], 9
push 0xf0f2
lea ecx, [ebp - 0x6cc]
call fcn.01032a72
push ebx
push dword [ebp - 0x6c0]
lea ecx, [ebp - 0x698]
push 0x806
push dword [ebp - 0x6b0]
push dword [ebp - 0x6cc]
push ebx
call fcn.0106926f
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.0109021d
dec eax
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x6c0], eax
je 0x1069f78
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x6ac]
call fcn.01046065
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.01032a72
cmp eax, ebx
jne 0x1069aeb
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x6b8]
call fcn.010328fe
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x6ac]
call fcn.01045295
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x698]
call fcn.01067c54
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x6cc]
call fcn.010328fe
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x6c4]
call fcn.010328fe
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x6bc]
call fcn.010328fe
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 0x1069acd
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x69c]
cmp eax, ebx
je 0x1069ae1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x80004005
jmp 0x1069fec
push dword [ebp - 0x6b8]
lea ecx, [ebp - 0x6ac]
call fcn.01062042
test eax, eax
jne 0x1069b11
push dword [ebp - 0x6b8]
lea ecx, [ebp - 0x6ac]
call fcn.01063ab4
mov eax, dword [ebp - 0x6ac]
mov edi, dword [eax - 8]
push 0x1006d4c
lea ecx, [ebp - 0x6d4]
call fcn.01039a07
mov byte [ebp - 4], 0xd
push 0x1006d40
lea ecx, [ebp - 0x6d0]
call fcn.01039a07
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x6c8]
call fcn.01045169
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x6c8]
push eax
lea ecx, [ebp - 0x6ac]
call fcn.01047c47
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 0x1069cd0
mov eax, dword [0x12ce0a0]
mov dword [ebp - 0x6c0], eax
mov byte [ebp - 4], 0x10
push 0xf03d
lea ecx, [ebp - 0x6c0]
call fcn.01032a72
mov eax, dword [0x12ce0a0]
mov dword [ebp - 0x6a4], eax
mov byte [ebp - 4], 0x11
push 0xf006
lea ecx, [ebp - 0x6a4]
call fcn.01032a72
call fcn.0115cbdb
mov ecx, dword [ebp - 0x6e0]
push eax
push dword [ebp - 0x6a4]
add ecx, 0x14
push dword [ebp - 0x6c0]
call fcn.01061b7e
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x6a4]
call fcn.010328fe
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x6c0]
call fcn.010328fe
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x6c8]
call fcn.01045295
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x6d0]
call fcn.010328fe
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x6d4]
call fcn.010328fe
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x6b8]
call fcn.010328fe
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x6ac]
call fcn.01045295
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x698]
call fcn.01067c54
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x6cc]
call fcn.010328fe
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x6c4]
call fcn.010328fe
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x6bc]
call fcn.010328fe
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 0x1069cb2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x69c]
cmp eax, ebx
je 0x1069cc6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x80070057
jmp 0x1069fec
push dword [ebp - 0x6c8]
lea ecx, [ebp - 0x6a4]
call fcn.01032b44
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.0107dbed
mov edi, eax
cmp edi, ebx
jl 0x1069e47
mov eax, dword [ebp - 0x6d8]
cmp eax, ebx
jne 0x1069e30
mov byte [ebp - 4], 0x14
mov eax, dword [ebp - 0x6a0]
cmp eax, ebx
je 0x1069d40
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x6d8]
cmp eax, ebx
je 0x1069d54
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.01045295
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x6d0]
call fcn.010328fe
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x6d4]
call fcn.010328fe
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x6b8]
call fcn.010328fe
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x6ac]
call fcn.01045295
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x698]
call fcn.01067c54
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x6cc]
call fcn.010328fe
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x6c4]
call fcn.010328fe
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x6bc]
call fcn.010328fe
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 0x1069e12
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x69c]
cmp eax, ebx
je 0x1069e26
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x80004003
jmp 0x1069fec
mov ecx, dword [eax]
lea edx, [ebp - 0x6a0]
push edx
push eax
call dword [ecx + 0x54]
mov edi, eax
cmp edi, ebx
jge 0x1069ed7
mov byte [ebp - 4], 0x14
mov eax, dword [ebp - 0x6a0]
cmp eax, ebx
je 0x1069e5b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x6d8]
cmp eax, ebx
je 0x1069e6f
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.01045295
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x6d0]
call fcn.010328fe
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x6d4]
call fcn.010328fe
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x6b8]
call fcn.010328fe
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x6ac]
call fcn.01045295
jmp 0x1069f7b
mov eax, dword [ebp - 0x6a0]
cmp eax, ebx
je 0x1069d2c
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.0103f1d2
mov byte [ebp - 4], 0x16
push dword [ebp - 0x6ac]
lea ecx, [ebp - 0x6c0]
call fcn.01032b44
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 0x1069f50
mov ecx, dword [ebp - 0x6e0]
call fcn.0106475c
mov edi, eax
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x6ec]
call fcn.0103d6c4
cmp edi, ebx
jge 0x1069e47
push edi
call fcn.0116f4d6
pop ecx
mov edi, 0x80070057
jmp 0x1069e47
xor edi, edi
inc edi
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x698]
call fcn.01067c54
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x6cc]
call fcn.010328fe
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x6c4]
call fcn.010328fe
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x6bc]
call fcn.010328fe
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 0x1069fd6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x69c]
cmp eax, ebx
je 0x1069fea
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.0116015a
leave
ret