Function at 0x419b10
Capabilities:
Get common file path

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x445a03
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xc0
mov eax, dword [0x459020]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x68], esi
mov edi, dword [ebx + 0xc]
xor eax, eax
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 4], eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
lea eax, [esi + 0xc]
mov dword [eax], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0xf
mov byte [esi + 0x24], 0
lea ecx, [esi + 0x3c]
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
lea edx, [ebx + 0x20]
mov byte [ebp - 4], 4
cmp ecx, edx
je 0x419bdd
cmp dword [ebx + 0x34], 0x10
mov eax, edx
push dword [ebx + 0x30]
cmovae eax, dword [ebx + 0x20]
push eax
call fcn.004018a0
lea eax, [esi + 0xc]
cmp eax, edi
je 0x419bf6
cmp dword [edi + 0x14], 0x10
mov ecx, edi
jb 0x419beb
mov ecx, dword [edi]
push dword [edi + 0x10]
push ecx
mov ecx, eax
call fcn.004018a0
cmp byte [ebx + 0x10], 0
mov eax, dword [ebx + 8]
mov dword [esi + 0x54], eax
mov al, byte [ebx + 0x14]
mov byte [esi + 0x58], al
mov eax, dword [ebx + 0x18]
mov dword [esi + 0x5c], eax
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0x60], eax
jne 0x419d17
mov edx, 3
lea ecx, [ebp - 0x9c]
call fcn.00411db0
mov ecx, 1
mov byte [ebp - 4], 5
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x68], ecx
mov ecx, edi
push eax
call fcn.00409b80
test eax, eax
je 0x419c68
mov edx, 7
lea ecx, [ebp - 0x2c]
call fcn.00411db0
mov ecx, 3
mov dword [ebp - 0x60], ecx
mov ecx, edi
push eax
call fcn.00409b80
mov byte [ebp - 0x61], 0
test eax, eax
jne 0x419c6c
mov byte [ebp - 0x61], 1
mov eax, dword [ebp - 0x60]
test al, 2
je 0x419cc2
mov edx, dword [ebp - 0x18]
and eax, 0xfffffffd
mov dword [ebp - 0x60], eax
cmp edx, 0x10
jb 0x419cb0
mov ecx, dword [ebp - 0x2c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x419ca3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a63b
push edx
push ecx
call fcn.00423b44
mov eax, dword [ebp - 0x60]
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov dword [ebp - 4], 4
test al, 1
je 0x419d0d
mov edx, dword [ebp - 0x88]
and eax, 0xfffffffe
mov dword [ebp - 0x60], eax
cmp edx, 0x10
jb 0x419d0d
mov ecx, dword [ebp - 0x9c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x419d03
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a63b
push edx
push ecx
call fcn.00423b44
add esp, 8
cmp byte [ebp - 0x61], 0
jne 0x41a5e9
mov edx, 3
lea ecx, [ebp - 0x9c]
call fcn.00411db0
or dword [ebp - 0x60], 4
mov ecx, edi
push eax
call fcn.00409b80
test eax, eax
jne 0x419d40
mov byte [ebp - 0x61], 1
cmp byte [ebx + 0x14], al
jne 0x419d44
mov byte [ebp - 0x61], 0
mov eax, dword [ebp - 0x60]
test al, 4
je 0x419d8b
mov edx, dword [ebp - 0x88]
and eax, 0xfffffffb
mov dword [ebp - 0x60], eax
cmp edx, 0x10
jb 0x419d8b
mov ecx, dword [ebp - 0x9c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x419d81
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a640
push edx
push ecx
call fcn.00423b44
add esp, 8
cmp byte [ebp - 0x61], 0
je 0x41a0cb
lea eax, [ebp - 0x60]
mov dword [ebp - 0x60], 0
push eax
push 0
push 0
push 0x4472f0
call dword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
test eax, eax
jne 0x41a5e9
mov edx, dword [ebp - 0x60]
mov ecx, edx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x34], eax
mov word [ebp - 0x44], ax
lea eax, [ecx + 2]
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x68], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x419dd3
sub ecx, dword [ebp - 0x68]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x44]
call fcn.00417b70
mov byte [ebp - 4], 6
push dword [ebp - 0x60]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea edx, [ebp - 0x44]
lea ecx, [ebp - 0x2c]
call fcn.00419a10
mov edx, 0xa
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xcc]
call fcn.00411db0
mov dword [ebp - 0x68], eax
mov byte [ebp - 4], 8
mov eax, 0x7fffffff
mov ecx, dword [ebp - 0x1c]
sub eax, ecx
cmp eax, 1
jb 0x41a645
cmp dword [ebp - 0x18], 0x10
lea eax, [ebp - 0x2c]
push 1
cmovae eax, dword [ebp - 0x2c]
push ecx
push ecx
push eax
push ecx
push dword [ebp - 0x6c]
lea ecx, [ebp - 0x9c]
call fcn.0040e570
mov byte [ebp - 4], 9
lea eax, [ebp - 0x9c]
push dword [ebp - 0x68]
lea ecx, [ebp - 0x5c]
push eax
push dword [ebp - 0x6c]
call fcn.0040e380
push 0x453788
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0xa
call fcn.004023f0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x84], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x74], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push edi
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0xb
call fcn.00409c20
movups xmm0, xmmword [eax]
movq xmm1, qword [eax + 0x10]
movups xmmword [ebp - 0xb4], xmm0
mov dword [eax + 0x10], 0
movq qword [ebp - 0xa4], xmm1
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0xc
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
je 0x419f0b
movups xmmword [eax], xmm0
movq qword [eax + 0x10], xmm1
add dword [esi + 4], 0x18
jmp 0x419f54
lea ecx, [ebp - 0xb4]
push ecx
push eax
mov ecx, esi
call fcn.0041acb0
mov edx, dword [ebp - 0xa0]
cmp edx, 0x10
jb 0x419f54
mov ecx, dword [ebp - 0xb4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x419f4a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a64a
push edx
push ecx
call fcn.00423b44
add esp, 8
mov edx, dword [ebp - 0x70]
cmp edx, 0x10
jb 0x419f8b
mov ecx, dword [ebp - 0x84]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x419f81
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a64a
push edx
push ecx
call fcn.00423b44
add esp, 8
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0xf
mov byte [ebp - 0x84], 0
cmp edx, 0x10
jb 0x419fd4
mov ecx, dword [ebp - 0x5c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x419fca
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a64a
push edx
push ecx
call fcn.00423b44
add esp, 8
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xf
mov byte [ebp - 0x5c], 0
cmp edx, 0x10
jb 0x41a020
mov ecx, dword [ebp - 0x9c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41a016
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a64a
push edx
push ecx
call fcn.00423b44
add esp, 8
mov edx, dword [ebp - 0xb8]
cmp edx, 0x10
jb 0x41a05a
mov ecx, dword [ebp - 0xcc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41a050
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a64a
push edx
push ecx
call fcn.00423b44
add esp, 8
mov edx, dword [ebp - 0x18]
cmp edx, 0x10
jb 0x41a08e
mov ecx, dword [ebp - 0x2c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41a084
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a64f
push edx
push ecx
call fcn.00423b44
add esp, 8
mov edx, dword [ebp - 0x30]
cmp edx, 8
jb 0x41a5e9
mov ecx, dword [ebp - 0x44]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41a5df
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a64f
jmp 0x41a5df
mov edx, 2
lea ecx, [ebp - 0xcc]
call fcn.00411db0
or dword [ebp - 0x60], 8
mov ecx, edi
push eax
call fcn.00409b80
test eax, eax
jne 0x41a0f4
mov byte [ebp - 0x61], 1
cmp byte [ebx + 0x14], al
jne 0x41a0f8
mov byte [ebp - 0x61], 0
mov ecx, dword [ebp - 0x60]
test cl, 8
je 0x41a13a
mov edx, dword [ebp - 0xb8]
cmp edx, 0x10
jb 0x41a13a
mov ecx, dword [ebp - 0xcc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41a130
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a654
push edx
push ecx
call fcn.00423b44
add esp, 8
cmp byte [ebp - 0x61], 0
lea eax, [ebp - 0x60]
push eax
push 0
mov dword [ebp - 0x60], 0
push 0
je 0x41a2f6
push 0x447300
call dword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
test eax, eax
jne 0x41a5e9
mov edx, dword [ebp - 0x60]
mov ecx, edx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x34], eax
mov word [ebp - 0x44], ax
lea eax, [ecx + 2]
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x68], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41a182
sub ecx, dword [ebp - 0x68]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x44]
call fcn.00417b70
mov byte [ebp - 4], 0xd
push dword [ebp - 0x60]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea edx, [ebp - 0x44]
lea ecx, [ebp - 0x2c]
call fcn.00419a10
mov byte [ebp - 4], 0xe
mov eax, 0x7fffffff
mov ecx, dword [ebp - 0x1c]
sub eax, ecx
cmp eax, 1
jb 0x41a659
cmp dword [ebp - 0x18], 0x10
lea eax, [ebp - 0x2c]
push 1
cmovae eax, dword [ebp - 0x2c]
push ecx
push ecx
push eax
push ecx
push dword [ebp - 0x6c]
lea ecx, [ebp - 0x9c]
call fcn.0040e570
push edi
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 0xf
call fcn.00409c20
movups xmm0, xmmword [eax]
movq xmm1, qword [eax + 0x10]
movups xmmword [ebp - 0xb4], xmm0
mov dword [eax + 0x10], 0
movq qword [ebp - 0xa4], xmm1
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x10
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
je 0x41a23c
movups xmmword [eax], xmm0
movq qword [eax + 0x10], xmm1
add dword [esi + 4], 0x18
jmp 0x41a285
lea ecx, [ebp - 0xb4]
push ecx
push eax
mov ecx, esi
call fcn.0041acb0
mov edx, dword [ebp - 0xa0]
cmp edx, 0x10
jb 0x41a285
mov ecx, dword [ebp - 0xb4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41a27b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a65e
push edx
push ecx
call fcn.00423b44
add esp, 8
mov edx, dword [ebp - 0x88]
cmp edx, 0x10
jb 0x41a2bf
mov ecx, dword [ebp - 0x9c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41a2b5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a65e
push edx
push ecx
call fcn.00423b44
add esp, 8
mov edx, dword [ebp - 0x18]
cmp edx, 0x10
jb 0x41a08e
mov ecx, dword [ebp - 0x2c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41a084
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a64f
jmp 0x41a084
push 0x4472e0
call dword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
test eax, eax
jne 0x41a5e9
mov edx, dword [ebp - 0x60]
mov ecx, edx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x34], eax
mov word [ebp - 0x44], ax
lea eax, [ecx + 2]
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x68], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41a325
sub ecx, dword [ebp - 0x68]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x44]
call fcn.00417b70
mov byte [ebp - 4], 0x11
push dword [ebp - 0x60]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea edx, [ebp - 0x44]
lea ecx, [ebp - 0x5c]
call fcn.00419a10
mov edx, 9
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0xcc]
call fcn.00411db0
mov dword [ebp - 0x68], eax
mov byte [ebp - 4], 0x13
mov eax, 0x7fffffff
mov ecx, dword [ebp - 0x4c]
sub eax, ecx
cmp eax, 1
jb 0x41a663
cmp dword [ebp - 0x48], 0x10
lea eax, [ebp - 0x5c]
push 1
cmovae eax, dword [ebp - 0x5c]
push ecx
push ecx
push eax
push ecx
push dword [ebp - 0x6c]
lea ecx, [ebp - 0x9c]
call fcn.0040e570
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0x9c]
push dword [ebp - 0x68]
lea ecx, [ebp - 0x2c]
push eax
push dword [ebp - 0x6c]
call fcn.0040e380
push 0x453788
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x15
call fcn.004023f0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x84], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x74], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push edi
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x16
call fcn.00409c20
movups xmm0, xmmword [eax]
movq xmm1, qword [eax + 0x10]
movups xmmword [ebp - 0xb4], xmm0
mov dword [eax + 0x10], 0
movq qword [ebp - 0xa4], xmm1
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x17
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
je 0x41a45d
movups xmmword [eax], xmm0
movq qword [eax + 0x10], xmm1
add dword [esi + 4], 0x18
jmp 0x41a4a6
lea ecx, [ebp - 0xb4]
push ecx
push eax
mov ecx, esi
call fcn.0041acb0
mov edx, dword [ebp - 0xa0]
cmp edx, 0x10
jb 0x41a4a6
mov ecx, dword [ebp - 0xb4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41a49c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a64f
push edx
push ecx
call fcn.00423b44
add esp, 8
mov edx, dword [ebp - 0x70]
cmp edx, 0x10
jb 0x41a4dd
mov ecx, dword [ebp - 0x84]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41a4d3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a64f
push edx
push ecx
call fcn.00423b44
add esp, 8
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0xf
mov byte [ebp - 0x84], 0
cmp edx, 0x10
jb 0x41a526
mov ecx, dword [ebp - 0x2c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41a51c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a64f
push edx
push ecx
call fcn.00423b44
add esp, 8
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
cmp edx, 0x10
jb 0x41a572
mov ecx, dword [ebp - 0x9c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41a568
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a64f
push edx
push ecx
call fcn.00423b44
add esp, 8
mov edx, dword [ebp - 0xb8]
cmp edx, 0x10
jb 0x41a5ac
mov ecx, dword [ebp - 0xcc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41a5a2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a64f
push edx
push ecx
call fcn.00423b44
add esp, 8
mov edx, dword [ebp - 0x48]
cmp edx, 0x10
jb 0x41a08e
mov ecx, dword [ebp - 0x5c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41a084
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a64f
jmp 0x41a084
push edx
push ecx
call fcn.00423b44
add esp, 8
mov edx, dword [ebx + 0x34]
cmp edx, 0x10
jb 0x41a619
mov ecx, dword [ebx + 0x20]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41a60f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a64f
push edx
push ecx
call fcn.00423b44
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00423b13
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x30
call fcn.0042823f
call fcn.0042823f
call fcn.004017f0
call fcn.0042823f
call fcn.0042823f
call fcn.0042823f
call fcn.004017f0
call fcn.0042823f
call fcn.004017f0
int3