Function at 0x423150
Capabilities:
Get common file path
Get startup folder

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x58b437
mov eax, dword fs:[0]
push eax
sub esp, 0x434
mov eax, dword [0x5f0a00]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x440], esi
mov eax, dword [esi + 0x1c]
lea edi, [esi + 0x1c]
mov ecx, dword [edi + 4]
cmp eax, ecx
je 0x4231a6
push edi
push ecx
push eax
call fcn.0040b7e0
mov eax, dword [edi]
add esp, 0xc
mov dword [edi + 4], eax
push 0
push 0x1a
lea eax, [ebp - 0x424]
mov dword [ebp - 4], 0
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
cmp dword [esi + 0x164], 7
lea eax, [esi + 0x150]
jbe 0x4231d1
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x21c]
push 0x59b300
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
xorps xmm0, xmm0
mov dword [ebp - 0x42c], 0
lea ecx, [ebp - 0x21c]
mov dword [ebp - 0x428], 0
add esp, 0x10
lea edx, [ecx + 2]
movups xmmword [ebp - 0x43c], xmm0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x423215
sub ecx, edx
lea eax, [ebp - 0x21c]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x43c]
call fcn.0040b6c0
mov eax, dword [esi + 0x228]
mov byte [ebp - 4], 1
cmp eax, dword [esi + 0x22c]
je 0x423277
movups xmm0, xmmword [ebp - 0x43c]
mov ecx, 7
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x42c]
movq qword [eax + 0x10], xmm0
xor eax, eax
add dword [esi + 0x228], 0x18
mov word [ebp - 0x43c], ax
jmp 0x423290
lea ecx, [ebp - 0x43c]
push ecx
push eax
lea ecx, [esi + 0x224]
call fcn.0040bab0
mov ecx, dword [ebp - 0x428]
mov byte [ebp - 4], 0
cmp ecx, 7
jbe 0x4232ce
mov edx, dword [ebp - 0x43c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4232c4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x423863
push ecx
push edx
call fcn.0055241f
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x42c], 0
lea ecx, [ebp - 0x21c]
mov dword [ebp - 0x428], 0
movups xmmword [ebp - 0x43c], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4232f5
sub ecx, edx
lea eax, [ebp - 0x21c]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x43c]
call fcn.0040b6c0
mov eax, dword [edi + 4]
mov byte [ebp - 4], 2
cmp eax, dword [edi + 8]
je 0x42334e
movups xmm0, xmmword [ebp - 0x43c]
mov ecx, 7
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x42c]
movq qword [eax + 0x10], xmm0
xor eax, eax
add dword [edi + 4], 0x18
mov word [ebp - 0x43c], ax
jmp 0x423363
lea ecx, [ebp - 0x43c]
push ecx
push eax
mov ecx, edi
call fcn.0040bab0
mov ecx, dword [ebp - 0x428]
mov byte [ebp - 4], 0
cmp ecx, 7
jbe 0x4233a1
mov edx, dword [ebp - 0x43c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x423397
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x423863
push ecx
push edx
call fcn.0055241f
add esp, 8
push 0
push 0x10
lea eax, [ebp - 0x424]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea eax, [ebp - 0x424]
add esi, 0xe0
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp word [ebp + eax*2 - 0x426], 0x5c
jne 0x4233fa
cmp dword [esi + 0x14], 7
jbe 0x4233da
mov esi, dword [esi]
push esi
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x21c]
push 0x599ba0
push eax
mov eax, dword [sym.imp.USER32.dll_wsprintfW]
call eax
add esp, 0x10
jmp 0x423425
cmp dword [esi + 0x14], 7
jbe 0x423402
mov esi, dword [esi]
push esi
push 0x59b30c
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x21c]
push 0x59b310
push eax
mov eax, dword [sym.imp.USER32.dll_wsprintfW]
call eax
add esp, 0x14
xorps xmm0, xmm0
mov dword [ebp - 0x42c], 0
lea ecx, [ebp - 0x21c]
mov dword [ebp - 0x428], 0
movups xmmword [ebp - 0x43c], xmm0
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x423450
sub ecx, edx
lea eax, [ebp - 0x21c]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x43c]
call fcn.0040b6c0
mov esi, dword [ebp - 0x440]
mov byte [ebp - 4], 3
mov eax, dword [esi + 0x228]
cmp eax, dword [esi + 0x22c]
je 0x4234b8
movups xmm0, xmmword [ebp - 0x43c]
mov ecx, 7
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x42c]
movq qword [eax + 0x10], xmm0
xor eax, eax
add dword [esi + 0x228], 0x18
mov word [ebp - 0x43c], ax
jmp 0x4234d1
lea ecx, [ebp - 0x43c]
push ecx
push eax
lea ecx, [esi + 0x224]
call fcn.0040bab0
mov ecx, dword [ebp - 0x428]
mov byte [ebp - 4], 0
cmp ecx, 7
jbe 0x42350f
mov edx, dword [ebp - 0x43c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x423505
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x423863
push ecx
push edx
call fcn.0055241f
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x42c], 0
lea ecx, [ebp - 0x21c]
mov dword [ebp - 0x428], 0
movups xmmword [ebp - 0x43c], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x423536
sub ecx, edx
lea eax, [ebp - 0x21c]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x43c]
call fcn.0040b6c0
mov eax, dword [edi + 4]
mov byte [ebp - 4], 4
cmp eax, dword [edi + 8]
je 0x42358f
movups xmm0, xmmword [ebp - 0x43c]
mov ecx, 7
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x42c]
movq qword [eax + 0x10], xmm0
xor eax, eax
add dword [edi + 4], 0x18
mov word [ebp - 0x43c], ax
jmp 0x4235a4
lea ecx, [ebp - 0x43c]
push ecx
push eax
mov ecx, edi
call fcn.0040bab0
mov ecx, dword [ebp - 0x428]
mov byte [ebp - 4], 0
cmp ecx, 7
jbe 0x4235e2
mov edx, dword [ebp - 0x43c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4235d8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x423863
push ecx
push edx
call fcn.0055241f
add esp, 8
cmp dword [esi + 0x7c], 7
lea eax, [esi + 0x68]
jbe 0x4235ed
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x424]
push 0x59ae64
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [ebp - 0x424]
add esi, 0x104
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp word [ebp + eax*2 - 0x426], 0x5c
jne 0x423648
cmp dword [esi + 0x14], 7
jbe 0x423629
mov esi, dword [esi]
push esi
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x21c]
push 0x599ba0
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x423672
cmp dword [esi + 0x14], 7
jbe 0x423650
mov esi, dword [esi]
push esi
push 0x59b30c
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x21c]
push 0x59b310
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
xorps xmm0, xmm0
mov dword [ebp - 0x42c], 0
lea ecx, [ebp - 0x21c]
mov dword [ebp - 0x428], 0
movups xmmword [ebp - 0x43c], xmm0
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4236a0
sub ecx, edx
lea eax, [ebp - 0x21c]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x43c]
call fcn.0040b6c0
mov eax, dword [edi + 4]
mov byte [ebp - 4], 5
cmp eax, dword [edi + 8]
je 0x4236f9
movups xmm0, xmmword [ebp - 0x43c]
mov ecx, 7
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x42c]
movq qword [eax + 0x10], xmm0
xor eax, eax
add dword [edi + 4], 0x18
mov word [ebp - 0x43c], ax
jmp 0x42370e
lea ecx, [ebp - 0x43c]
push ecx
push eax
mov ecx, edi
call fcn.0040bab0
mov ecx, dword [ebp - 0x428]
mov byte [ebp - 4], 0
cmp ecx, 7
jbe 0x42374c
mov edx, dword [ebp - 0x43c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x423742
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x423863
push ecx
push edx
call fcn.0055241f
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x42c], 0
lea ecx, [ebp - 0x21c]
mov dword [ebp - 0x428], 0
movups xmmword [ebp - 0x43c], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x423773
sub ecx, edx
lea eax, [ebp - 0x21c]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x43c]
call fcn.0040b6c0
mov edx, dword [ebp - 0x440]
mov byte [ebp - 4], 6
mov eax, dword [edx + 0x228]
cmp eax, dword [edx + 0x22c]
je 0x4237db
movups xmm0, xmmword [ebp - 0x43c]
mov ecx, 7
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x42c]
movq qword [eax + 0x10], xmm0
xor eax, eax
add dword [edx + 0x228], 0x18
mov word [ebp - 0x43c], ax
jmp 0x4237f4
lea ecx, [ebp - 0x43c]
push ecx
push eax
lea ecx, [edx + 0x224]
call fcn.0040bab0
mov ecx, dword [ebp - 0x428]
cmp ecx, 7
jbe 0x42382a
mov edx, dword [ebp - 0x43c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x423820
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x423863
push ecx
push edx
call fcn.0055241f
add esp, 8
mov eax, 1
jmp 0x423847
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00551e44
mov esp, ebp
pop ebp
ret
call fcn.0055bf8b
int3