Function at 0x100035a0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001a7ae
mov eax, dword fs:[0]
push eax
sub esp, 0x270
mov eax, dword [0x100272d0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp dword [0x100286a0], 0
mov esi, dword [ebp + 8]
mov dword [ebp - 0x260], esi
mov dword [ebp - 0x274], 0
je 0x100035fd
cmp dword [0x10028698], 0
je 0x100035fd
mov dword [ebp - 4], 0
jmp 0x10003871
mov eax, dword [0x100297e8]
test eax, eax
jne 0x10003618
cmp dword [0x100297e0], eax
jne 0x1000361d
call fcn.100032f0
mov eax, dword [0x100297e8]
cmp eax, 6
jae 0x10003674
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21a]
push eax
call fcn.10010460
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
push 0
push 0
push 0x801c
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x10003668
lea eax, [ebp - 0x21c]
push eax
mov ecx, 0x10028694
call fcn.10004bc0
mov dword [ebp - 4], 1
jmp 0x10003871
mov dword [ebp - method.CUtils.virtual_0], vtable.CUtils.0
mov dword [ebp - 4], 2
mov eax, dword [0x100297b0]
test eax, eax
jne 0x1000369f
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
call fcn.10002080
mov dword [0x100297b0], eax
cmp eax, 4
jne 0x10003865
call fcn.10003940
test eax, eax
jne 0x10003865
lea eax, [ebp - 0x23c]
push eax
call fcn.10003fb0
mov byte [ebp - 4], 3
cmp dword [ebp - 0x230], 0
je 0x1000384b
cmp dword [ebp - 0x238], 0
je 0x1000384b
lea eax, [ebp - 0x23c]
push eax
mov ecx, 0x10028694
call fcn.10004c50
push str.AppDataLocalLow
mov ecx, 0x10028694
call fcn.10004e30
push ecx
push 0x1002174c
lea ecx, [ebp - 0x25c]
call fcn.100048e0
push ecx
push 0x1002174c
lea ecx, [ebp - 0x24c]
mov byte [ebp - 4], 4
call fcn.100048e0
mov dword [ebp - method.CStringBufferW.virtual_0], vtable.CStringBufferW.0
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x224], 0
mov dword [ebp - 0x228], 0
lea eax, [ebp - 0x270]
push eax
mov byte [ebp - 4], 6
call fcn.10003d40
push eax
lea ecx, [ebp - 0x22c]
mov byte [ebp - 4], 7
call fcn.10004c50
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 6
call fcn.10004950
push dword [ebp - 0x220]
lea ecx, [ebp - 0x25c]
call fcn.10004ca0
push 0x1002174c
lea ecx, [ebp - 0x25c]
call fcn.10004ca0
push 0
push 0
lea eax, [ebp - 0x270]
push eax
call fcn.100041b0
push eax
lea ecx, [ebp - 0x22c]
mov byte [ebp - 4], 8
call fcn.10004c50
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 6
call fcn.10004950
mov eax, dword [ebp - 0x220]
test eax, eax
je 0x10003811
cmp dword [ebp - 0x228], 0
je 0x10003811
push eax
lea ecx, [ebp - 0x24c]
call fcn.10004ca0
push 0x1002174c
lea ecx, [ebp - 0x24c]
call fcn.10004ca0
push dword [ebp - 0x240]
mov ecx, 0x10028694
push dword [ebp - 0x250]
call fcn.10005040
push 0x10028694
mov ecx, esi
call fcn.10004990
lea ecx, [ebp - 0x22c]
call fcn.10004950
lea ecx, [ebp - 0x24c]
call fcn.10004950
lea ecx, [ebp - 0x25c]
call fcn.10004950
lea ecx, [ebp - 0x23c]
call fcn.10004950
jmp 0x1000389f
push ecx
push 0x100216f8
mov ecx, esi
call fcn.100048e0
lea ecx, [ebp - 0x23c]
call fcn.10004950
jmp 0x1000389f
sub esp, 8
call fcn.100038c0
mov byte [ebp - 4], 9
mov dword [esi], vtable.CStringBufferW.0
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
mov dword [esi + 4], 0
push dword [0x10028698]
mov ecx, esi
push dword [0x100286a0]
call fcn.10004b40
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10009545
mov esp, ebp
pop ebp
ret 4