Function at 0x42c8c0
Capabilities:
Get common file path

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xac
mov edi, dword [esp + 0xc0]
mov eax, dword [0x567b10]
xor eax, esp
mov dword [esp + 0xa8], eax
mov eax, dword [edi + 4]
test eax, eax
je 0x42cdd3
mov ecx, dword [edi]
lea esi, [ecx + eax]
cmp dword [esp + 0xc4], 1
jne 0x42c91b
test eax, eax
jle 0x42cdd3
lea ebp, [ecx + 1]
cmp esi, ebp
cmova ebp, esi
sub ebp, ecx
cmp ebp, 0x10
jae 0x42cbe5
mov edx, ecx
jmp 0x42cd67
cmp eax, 0x10
jae 0x42c927
mov edx, ecx
jmp 0x42cbdb
mov edi, eax
and edi, 0xfffffff0
lea edx, [ecx + edi]
xor ebp, ebp
movdqa xmm0, xmmword [0x538540]
jmp 0x42c94b
add ebp, 0x10
cmp edi, ebp
je 0x42ca98
movq xmm1, qword [ecx + ebp]
pcmpeqb xmm1, xmm0
movd ebx, xmm1
test bl, 1
je 0x42c961
mov byte [ecx + ebp], 0x5c
movdqa xmm2, xmm1
pslld xmm2, 8
movd ebx, xmm2
shr ebx, 0x10
test bl, 1
je 0x42c97b
mov byte [ecx + ebp + 1], 0x5c
pextrw ebx, xmm1, 1
test bl, 1
je 0x42c98a
mov byte [ecx + ebp + 2], 0x5c
movdqa xmm2, xmm1
psllq xmm2, 0x18
pextrw ebx, xmm2, 3
test bl, 1
je 0x42c9a2
mov byte [ecx + ebp + 3], 0x5c
pextrw ebx, xmm1, 2
test bl, 1
je 0x42c9b1
mov byte [ecx + ebp + 4], 0x5c
movdqa xmm2, xmm1
pslldq xmm2, 5
pextrw ebx, xmm2, 5
test bl, 1
je 0x42c9c9
mov byte [ecx + ebp + 5], 0x5c
pextrw ebx, xmm1, 3
test bl, 1
je 0x42c9d8
mov byte [ecx + ebp + 6], 0x5c
pslldq xmm1, 7
pextrw ebx, xmm1, 7
test bl, 1
je 0x42c9ec
mov byte [ecx + ebp + 7], 0x5c
movq xmm1, qword [ecx + ebp + 8]
pcmpeqb xmm1, xmm0
movd ebx, xmm1
test bl, 1
je 0x42ca04
mov byte [ecx + ebp + 8], 0x5c
movdqa xmm2, xmm1
pslld xmm2, 8
movd ebx, xmm2
shr ebx, 0x10
test bl, 1
je 0x42ca1e
mov byte [ecx + ebp + 9], 0x5c
pextrw ebx, xmm1, 1
test bl, 1
je 0x42ca2d
mov byte [ecx + ebp + 0xa], 0x5c
movdqa xmm2, xmm1
psllq xmm2, 0x18
pextrw ebx, xmm2, 3
test bl, 1
je 0x42ca45
mov byte [ecx + ebp + 0xb], 0x5c
pextrw ebx, xmm1, 2
test bl, 1
je 0x42ca54
mov byte [ecx + ebp + 0xc], 0x5c
movdqa xmm2, xmm1
pslldq xmm2, 5
pextrw ebx, xmm2, 5
test bl, 1
je 0x42ca6c
mov byte [ecx + ebp + 0xd], 0x5c
pextrw ebx, xmm1, 3
test bl, 1
je 0x42ca7b
mov byte [ecx + ebp + 0xe], 0x5c
pslldq xmm1, 7
pextrw ebx, xmm1, 7
test bl, 1
je 0x42c940
mov byte [ecx + ebp + 0xf], 0x5c
jmp 0x42c940
cmp eax, edi
mov edi, dword [esp + 0xc0]
jne 0x42cbdb
mov eax, dword [edi]
cmp byte [eax], 0x7e
jne 0x42cdd3
cmp dword [edi + 4], 1
je 0x42cac7
mov al, byte [eax + 1]
cmp al, 0x5c
je 0x42cac7
cmp al, 0x2f
jne 0x42cdd3
lea eax, [esp + 0x18]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0x80
movdqu xmm0, xmmword [0x5608a0]
movdqu xmmword [esp + 0x98], xmm0
mov dword [esp + 8], 0
lea eax, [esp + 8]
lea ecx, [esp + 0x98]
push eax
push 0
push 0x8000
push ecx
call sub.SHELL32.dll_SHGetKnownFolderPath
test eax, eax
jne 0x42cb47
mov esi, dword [esp + 8]
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcslen]
add esp, 4
mov ebx, edi
lea edi, [esp + 0xc]
mov ecx, esp
mov edx, 0xfde9
push edi
mov edi, ebx
push eax
push esi
call fcn.00433320
add esp, 0xc
push dword [esp + 8]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov ebp, dword [edi]
mov esi, edi
mov edi, dword [edi + 4]
lea ebx, [edi - 1]
mov eax, dword [esp + 0x10]
add eax, ebx
cmp dword [esp + 0x14], eax
jae 0x42cb6e
lea ecx, [esp + 0xc]
push 1
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00424880
cmp edi, 1
je 0x42cb89
add ebp, 1
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x10]
push ebx
push ebp
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, dword [esp + 0x10]
mov dword [esp + 0x10], ebx
lea eax, [esp + 0xc]
cmp eax, esi
je 0x42cdbd
mov ebp, dword [esi + 4]
cmp ebp, ebx
jae 0x42cd71
cmp dword [esi + 8], ebx
jae 0x42cd83
mov dword [esi + 4], 0
lea eax, [esi + 0xc]
mov ecx, esi
push 1
push ebx
push eax
call fcn.00424880
jmp 0x42cd98
add edx, 1
cmp esi, edx
je 0x42caa7
cmp byte [edx], 0x2f
jne 0x42cbd0
mov byte [edx], 0x5c
jmp 0x42cbd0
mov edi, ebp
and edi, 0xfffffff0
lea edx, [ecx + edi]
xor ebx, ebx
movdqa xmm0, xmmword [str._]
jmp 0x42cc0b
add ebx, 0x10
cmp edi, ebx
je 0x42cd48
movq xmm1, qword [ecx + ebx]
pcmpeqb xmm1, xmm0
movd eax, xmm1
test al, 1
je 0x42cc20
mov byte [ecx + ebx], 0x2f
movdqa xmm2, xmm1
pslld xmm2, 8
movd eax, xmm2
shr eax, 0x10
test al, 1
je 0x42cc39
mov byte [ecx + ebx + 1], 0x2f
pextrw eax, xmm1, 1
test al, 1
je 0x42cc47
mov byte [ecx + ebx + 2], 0x2f
movdqa xmm2, xmm1
psllq xmm2, 0x18
pextrw eax, xmm2, 3
test al, 1
je 0x42cc5e
mov byte [ecx + ebx + 3], 0x2f
pextrw eax, xmm1, 2
test al, 1
je 0x42cc6c
mov byte [ecx + ebx + 4], 0x2f
movdqa xmm2, xmm1
pslldq xmm2, 5
pextrw eax, xmm2, 5
test al, 1
je 0x42cc83
mov byte [ecx + ebx + 5], 0x2f
pextrw eax, xmm1, 3
test al, 1
je 0x42cc91
mov byte [ecx + ebx + 6], 0x2f
pslldq xmm1, 7
pextrw eax, xmm1, 7
test al, 1
je 0x42cca4
mov byte [ecx + ebx + 7], 0x2f
movq xmm1, qword [ecx + ebx + 8]
pcmpeqb xmm1, xmm0
movd eax, xmm1
test al, 1
je 0x42ccbb
mov byte [ecx + ebx + 8], 0x2f
movdqa xmm2, xmm1
pslld xmm2, 8
movd eax, xmm2
shr eax, 0x10
test al, 1
je 0x42ccd4
mov byte [ecx + ebx + 9], 0x2f
pextrw eax, xmm1, 1
test al, 1
je 0x42cce2
mov byte [ecx + ebx + 0xa], 0x2f
movdqa xmm2, xmm1
psllq xmm2, 0x18
pextrw eax, xmm2, 3
test al, 1
je 0x42ccf9
mov byte [ecx + ebx + 0xb], 0x2f
pextrw eax, xmm1, 2
test al, 1
je 0x42cd07
mov byte [ecx + ebx + 0xc], 0x2f
movdqa xmm2, xmm1
pslldq xmm2, 5
pextrw eax, xmm2, 5
test al, 1
je 0x42cd1e
mov byte [ecx + ebx + 0xd], 0x2f
pextrw eax, xmm1, 3
test al, 1
je 0x42cd2c
mov byte [ecx + ebx + 0xe], 0x2f
pslldq xmm1, 7
pextrw eax, xmm1, 7
test al, 1
je 0x42cc00
mov byte [ecx + ebx + 0xf], 0x2f
jmp 0x42cc00
cmp ebp, edi
jne 0x42cd67
jmp 0x42cdd3
add edx, 1
cmp edx, esi
jae 0x42cdd3
cmp byte [edx], 0x5c
jne 0x42cd60
mov byte [edx], 0x2f
jmp 0x42cd60
test ebx, ebx
je 0x42cdba
push ebx
push dword [esp + 0x10]
push dword [esi]
call sub.VCRUNTIME140.dll_memmove
jmp 0x42cdb7
test ebp, ebp
je 0x42cd98
push ebp
push dword [esp + 0x10]
push dword [esi]
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
jmp 0x42cd9a
xor ebp, ebp
mov eax, dword [esp + 0x10]
cmp ebp, eax
je 0x42cdba
mov ecx, dword [esp + 0xc]
lea edx, [ecx + ebp]
add eax, ecx
add ebp, dword [esi]
sub eax, edx
push eax
push edx
push ebp
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esi + 4], ebx
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x18]
cmp eax, ecx
je 0x42cdd3
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov ecx, dword [esp + 0xa8]
xor ecx, esp
call fcn.00533ace
add esp, 0xac
pop esi
pop edi
pop ebx
pop ebp
ret