Function at 0x10069800
Capabilities:
Get common file path
Get startup folder
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x100e45b5
mov eax, dword fs:[0]
push eax
sub esp, 0x290
mov eax, dword [0x1010bb90]
xor eax, esp
mov dword [esp + 0x28c], eax
push ebx
push ebp
push esi
mov eax, dword [0x1010bb90]
xor eax, esp
push eax
lea eax, [esp + 0x2a0]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x88], edi
mov dword [edi], ebx
mov dword [esp + 0x2a8], ebx
lea esi, [edi + 4]
call fcn.1006c520
mov dword [esi + 4], eax
mov byte [eax + 0x29], 1
mov eax, dword [esi + 4]
mov dword [eax + 4], eax
mov eax, dword [esi + 4]
mov dword [eax], eax
mov eax, dword [esi + 4]
mov dword [eax + 8], eax
mov dword [esi + 8], ebx
mov byte [esp + 0x2a8], 1
lea ebp, [edi + 0x10]
call fcn.1006c520
mov dword [ebp + 4], eax
mov byte [eax + 0x29], 1
mov eax, dword [ebp + 4]
mov dword [eax + 4], eax
mov eax, dword [ebp + 4]
mov dword [eax], eax
mov eax, dword [ebp + 4]
mov dword [eax + 8], eax
mov dword [ebp + 8], ebx
mov eax, 0xf
mov dword [edi + 0x34], eax
mov dword [edi + 0x30], ebx
mov byte [edi + 0x20], bl
mov dword [edi + 0x50], eax
mov dword [edi + 0x4c], ebx
mov byte [edi + 0x3c], bl
mov dword [edi + 0x6c], eax
mov dword [edi + 0x68], ebx
mov byte [edi + 0x58], bl
mov dword [edi + 0x88], eax
mov dword [edi + 0x84], ebx
mov byte [edi + 0x74], bl
lea eax, [edi + 0x90]
push eax
mov byte [esp + 0x2ac], 6
call fcn.1006c5c0
mov eax, 7
xor ecx, ecx
mov dword [edi + 0xd4], eax
mov dword [edi + 0xd0], ebx
mov word [edi + 0xc0], cx
xor edx, edx
mov dword [edi + 0xf0], eax
mov dword [edi + 0xec], ebx
mov word [edi + 0xdc], dx
lea eax, [esp + 0x94]
push eax
push ebx
push ebx
push 0x1a
mov byte [esp + 0x2b8], 9
push ebx
mov dword [edi + 0x8c], ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jl 0x10069a4a
push 0x100f57d8
lea ecx, [esp + 0x98]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
adc byte [ebx], dh
ror byte [ebp + 0x942484], cl
add byte [eax], al
mov word [esp + 0x20], dx
mov dword [esp + 0x34], 7
mov dword [esp + 0x30], ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x10069965
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x98]
push eax
lea ecx, [esp + 0x24]
call fcn.1000c5b0
push ebx
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x40]
push edx
mov byte [esp + 0x2b4], 0xa
call fcn.100ac070
mov eax, dword [eax]
add esp, 0xc
cmp eax, ebx
je 0x100699b3
cmp eax, 1
je 0x100699b3
mov eax, 1
jmp 0x100699b5
xor eax, eax
cmp al, bl
sete byte [esp + 0x1b]
mov byte [esp + 0x2a8], 9
cmp dword [esp + 0x34], 8
jb 0x100699d8
mov eax, dword [esp + 0x20]
push eax
call fcn.100c14d4
add esp, 4
cmp byte [esp + 0x1b], bl
je 0x10069a21
lea ecx, [esp + 0x94]
push ecx
lea ecx, [esp + 0x20]
call fcn.100083f0
lea edx, [esp + 0x1c]
push ebx
push edx
mov byte [esp + 0x2b0], 0xb
call fcn.100ac320
add esp, 8
mov byte [esp + 0x2a8], 9
cmp dword [esp + 0x34], 8
jb 0x10069a21
mov eax, dword [esp + 0x20]
push eax
call fcn.100c14d4
add esp, 4
lea eax, [esp + 0x94]
lea edx, [eax + 2]
jmp 0x10069a30
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x10069a30
sub eax, edx
sar eax, 1
push eax
lea ecx, [esp + 0x98]
push ecx
jmp 0x10069a51
push 1
push 0x100f5800
lea ecx, [edi + 0xd8]
call fcn.1000c5b0
mov dword [esp + 0x3c], str..afc
mov dword [esp + 0x40], str..aif
mov dword [esp + 0x44], str..aifc
mov dword [esp + 0x48], str..aiff
mov dword [esp + 0x4c], 0x100f37b4
mov dword [esp + 0x50], str..mo3
mov dword [esp + 0x54], str..mod
mov dword [esp + 0x58], str..mp1
mov dword [esp + 0x5c], str..mp2
mov dword [esp + 0x60], str..mp3
mov dword [esp + 0x64], str..mtm
mov dword [esp + 0x68], str..oga
mov dword [esp + 0x6c], str..ogg
mov dword [esp + 0x70], str..s3m
mov dword [esp + 0x74], str..umx
mov dword [esp + 0x78], str..wav
mov dword [esp + 0x7c], str..wave
mov dword [esp + 0x80], 0x100f37e0
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + edx*4 + 0x3c]
mov eax, ecx
lea edx, [eax + 1]
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
mov dword [esp + 0x38], edx
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x10069b14
sub eax, dword [esp + 0x38]
push eax
push ecx
lea ecx, [esp + 0x24]
call fcn.10009fb0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x90]
push ecx
push esi
mov byte [esp + 0x2b4], 0xc
call fcn.1006bfc0
mov byte [esp + 0x2a8], 9
cmp dword [esp + 0x34], 0x10
jb 0x10069b61
mov edx, dword [esp + 0x20]
push edx
call fcn.100c14d4
add esp, 4
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, 0x12
jb 0x10069af3
mov dword [esp + 0x3c], 0x100f57d4
mov dword [esp + 0x40], 0x100f2e40
mov dword [esp + 0x44], 0x100f585c
mov dword [esp + 0x48], 0x100f4258
mov dword [esp + 0x4c], 0x100f422c
mov dword [esp + 0x50], 0x100f5860
mov dword [esp + 0x54], 0x100f5864
mov dword [esp + 0x58], 0x100f4230
mov dword [esp + 0x5c], str..lacisyhPvrD
mov dword [esp + 0x60], 0x100f5868
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + eax*4 + 0x3c]
mov eax, esi
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x10069be0
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x24]
call fcn.10009fb0
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x90]
push edx
push ebp
mov byte [esp + 0x2b4], 0xd
call fcn.1006bfc0
mov byte [esp + 0x2a8], 9
cmp dword [esp + 0x34], 0x10
jb 0x10069c2b
mov eax, dword [esp + 0x20]
push eax
call fcn.100c14d4
add esp, 4
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, 0xa
jb 0x10069bc3
push 0x54
call fcn.100c1988
add esp, 4
mov esi, 0xf
cmp eax, ebx
je 0x10069c8b
mov dword [eax + 0x34], esi
mov dword [eax + 0x30], ebx
mov byte [eax + 0x20], bl
mov dword [eax + 0x50], esi
mov dword [eax + 0x4c], ebx
mov byte [eax + 0x3c], bl
mov byte [eax], 1
mov dword [eax + 4], 0xa
mov dword [eax + 8], 0x2710
mov dword [eax + 0xc], 0x1388
mov byte [eax + 0x10], 1
mov dword [eax + 0x14], 0x4e20
mov byte [eax + 0x18], 1
mov byte [eax + 0x19], 1
jmp 0x10069c8d
xor eax, eax
mov ebp, dword [edi]
mov dword [edi], eax
cmp ebp, ebx
je 0x10069cd4
cmp dword [ebp + 0x50], 0x10
jb 0x10069ca7
mov eax, dword [ebp + 0x3c]
push eax
call fcn.100c14d4
add esp, 4
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x4c], ebx
mov byte [ebp + 0x3c], bl
cmp dword [ebp + 0x34], 0x10
jb 0x10069cc2
mov eax, dword [ebp + 0x20]
push eax
call fcn.100c14d4
add esp, 4
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x30], ebx
push ebp
mov byte [ebp + 0x20], bl
call fcn.100c14d4
add esp, 4
mov ecx, edi
call fcn.1006a520
push ebx
push 0x20
push 0x1f
push 0x1e
push 0x1d
push 0x1c
push 0x1b
push 0x1a
push 0x7d
push 0x7d
push 0x7b
push 0x77
push 0xffffffffffffff84
push 0xffffffffffffff80
push 0x33
push 0xffffffffffffff80
push 0x7a
push 0x77
push 0xffffffffffffff84
push 0x7a
push 0x5d
push 0x2c
push 0x7a
push 0x73
push 0x6d
push 0x7d
push 0x48
push 0x26
push 0x55
push 0x51
push 0x30
push 0x43
push 0x54
lea esi, [esp + 0xc0]
call fcn.10070600
add esp, 0x84
mov ebp, 0x10
mov byte [esp + 0x2a8], 0xe
cmp dword [eax + 0x18], ebp
jb 0x10069d45
mov esi, dword [eax + 4]
jmp 0x10069d48
lea esi, [eax + 4]
mov eax, esi
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x10069d60
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x24]
call fcn.10009fb0
lea edx, [esp + 0x1c]
mov ecx, edi
mov byte [esp + 0x2a8], 0xf
call fcn.1006abd0
cmp dword [esp + 0x34], ebp
jb 0x10069d9a
mov ecx, dword [esp + 0x20]
push ecx
call fcn.100c14d4
add esp, 4
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
cmp dword [esp + 0x54], ebp
jb 0x10069dbd
mov edx, dword [esp + 0x40]
push edx
call fcn.100c14d4
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x2a0]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x28c]
xor ecx, esp
call fcn.100bfcbc
add esp, 0x29c
ret