Function at 0x10057eff
Capabilities:
Get common file path

Disassembly:
mov eax, 0x100a3ee7
call fcn.1007c8b4
sub esp, 0x178
push ebx
xor ecx, ecx
push esi
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp + 8]
push edi
push 0xf
pop esi
mov dword [eax], ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], esi
mov byte [eax], cl
xor edi, edi
mov dword [ebp - 4], ecx
push 3
push dword [ebp + 0xc]
inc edi
lea eax, [ebp - 0x100]
mov ebx, edi
mov dword [ebp - 0x104], eax
lea ecx, [ebp - 0x104]
mov dword [ebp - 0x1c], ebx
call fcn.10040640
mov ecx, dword [ebp - 0x104]
xor eax, eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 4], edi
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], esi
lea edx, [ecx + 1]
mov byte [ebp - 0x80], al
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10057f68
sub ecx, edx
push ecx
push dword [ebp - 0x104]
lea ecx, [ebp - 0x80]
call fcn.10002936
lea eax, [ebp - 0x100]
mov byte [ebp - 4], 3
cmp dword [ebp - 0x104], eax
je 0x10057f9e
push dword [ebp - 0x104]
call fcn.1008582f
pop ecx
cmp dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x80]
mov eax, dword [ebp - 0x70]
lea edi, [ebp - 0x80]
cmovae ecx, dword [ebp - 0x80]
lea esi, [ebp - 0x80]
cmovae edi, dword [ebp - 0x80]
add eax, ecx
cmp dword [ebp - 0x6c], 0x10
cmovae esi, dword [ebp - 0x80]
cmp esi, eax
je 0x10057fdd
sub edi, esi
mov ebx, eax
movsx eax, byte [esi]
push eax
call fcn.10082001
mov byte [esi + edi], al
inc esi
pop ecx
cmp esi, ebx
jne 0x10057fc8
mov ebx, dword [ebp - 0x1c]
xor eax, eax
mov dword [ebp - 0x3c], 0xf
push 0xc
mov dword [ebp - 0x50], eax
lea ecx, [ebp - 0x50]
push str.windowsapps
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x50], al
call fcn.10002936
cmp dword [ebp - 0x3c], 0x10
lea esi, [ebp - 0x50]
mov edi, dword [ebp - 0x70]
lea edx, [ebp - 0x80]
cmovae esi, dword [ebp - 0x50]
cmp dword [ebp - 0x6c], 0x10
mov ecx, dword [ebp - 0x40]
cmovae edx, dword [ebp - 0x80]
mov byte [ebp - 4], 4
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x18], edx
cmp ecx, edi
ja 0x10058091
test ecx, ecx
jne 0x10058033
xor esi, esi
jmp 0x10058279
mov eax, edx
sub eax, ecx
movsx ecx, byte [esi]
inc eax
mov dword [ebp - 0x20], ecx
add eax, edi
mov dword [ebp - 0x14], eax
sub eax, edx
push eax
push ecx
push edx
call fcn.1007fb70
mov esi, eax
add esp, 0xc
test esi, esi
je 0x10058091
mov edi, dword [ebp - 0x40]
push edi
push dword [ebp - 0x10]
push esi
call fcn.1007e3f0
add esp, 0xc
test eax, eax
je 0x10058085
mov eax, dword [ebp - 0x14]
inc esi
sub eax, esi
push eax
push dword [ebp - 0x20]
push esi
call fcn.1007fb70
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x10058059
jmp 0x10058091
sub esi, dword [ebp - 0x18]
cmp esi, 0xffffffff
jne 0x10058276
mov esi, 0x104
lea eax, [ebp - 0x184]
push esi
xor ebx, ebx
push ebx
push eax
call fcn.1007f880
add esp, 0xc
lea eax, [ebp - 0x184]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
je 0x10058189
lea ecx, [ebp - 0x184]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100580c8
sub ecx, edx
lea eax, [ebp - 0x184]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.10002936
cmp dword [ebp - 0x3c], 0x10
lea edx, [ebp - 0x50]
mov eax, dword [ebp - 0x40]
cmovae edx, dword [ebp - 0x50]
test eax, eax
je 0x10058197
dec eax
or esi, 0xffffffff
cmp eax, esi
mov ecx, esi
cmovb ecx, eax
add ecx, edx
jmp 0x1005810f
cmp ecx, edx
je 0x10058197
dec ecx
cmp byte [ecx], 0x3a
jne 0x10058106
sub ecx, edx
cmp ecx, esi
je 0x10058197
lea eax, [ecx + 1]
mov dword [ebp - 0x38], ebx
push esi
push eax
lea eax, [ebp - 0x50]
mov dword [ebp - 0x28], ebx
push eax
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x24], 0xf
call fcn.1000600f
push 3
pop esi
mov byte [ebp - 0x18], bl
lea eax, [ebp - 0x38]
push dword [ebp - 0x18]
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x1c], esi
push eax
call fcn.10005e62
mov eax, dword [ebp - 0x24]
cmp eax, 0x10
jb 0x10058197
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ecx
cmp eax, 0x1000
jb 0x1005817e
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.10001c26
mov eax, dword [ebp - 0x14]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x10]
push eax
push ecx
call fcn.1007c382
pop ecx
pop ecx
jmp 0x10058197
push ebx
push 0x100ba8ca
lea ecx, [ebp - 0x50]
call fcn.10002936
push 0xb
push str._systemapps
lea ecx, [ebp - 0x50]
call fcn.10002784
mov ebx, dword [ebp - 0x3c]
lea eax, [ebp - 0x50]
mov edi, dword [ebp - 0x50]
lea edx, [ebp - 0x50]
mov ecx, dword [ebp - 0x40]
lea esi, [ebp - 0x50]
cmp ebx, 0x10
cmovae eax, edi
cmovae edx, edi
add eax, ecx
cmp ebx, 0x10
cmovae esi, edi
cmp esi, eax
je 0x100581ee
sub edx, esi
mov ebx, eax
mov edi, edx
movsx eax, byte [esi]
push eax
call fcn.10082001
mov byte [esi + edi], al
inc esi
pop ecx
cmp esi, ebx
jne 0x100581d3
mov ebx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x40]
cmp ebx, 0x10
lea esi, [ebp - 0x50]
lea edx, [ebp - 0x80]
cmovae esi, edi
cmp dword [ebp - 0x6c], 0x10
mov dword [ebp - 0x18], esi
cmovae edx, dword [ebp - 0x80]
mov dword [ebp - 0x14], edx
cmp ecx, dword [ebp - 0x70]
ja 0x10058542
test ecx, ecx
jne 0x1005821c
mov ebx, dword [ebp - 0x1c]
xor esi, esi
jmp 0x10058279
mov eax, edx
sub eax, ecx
mov ecx, dword [ebp - 0x70]
inc ecx
add eax, ecx
movsx ecx, byte [esi]
mov dword [ebp - 0x20], eax
sub eax, edx
push eax
push ecx
mov dword [ebp - 0x10], ecx
push edx
jmp 0x10058254
push dword [ebp - 0x40]
push dword [ebp - 0x18]
push esi
call fcn.1007e3f0
add esp, 0xc
test eax, eax
je 0x10058267
mov eax, dword [ebp - 0x20]
inc esi
sub eax, esi
push eax
push dword [ebp - 0x10]
push esi
call fcn.1007fb70
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x10058236
jmp 0x10058542
sub esi, dword [ebp - 0x14]
cmp esi, 0xffffffff
je 0x10058542
mov ebx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x40]
and dword [ebp - 0x68], 0
and dword [ebp - 0x58], 0
push 0xf
pop eax
mov dword [ebp - 0x54], eax
mov byte [ebp - 0x68], 0
and dword [ebp - 0x38], 0
and dword [ebp - 0x28], 0
mov dword [ebp - 0x24], eax
lea eax, [ecx + esi]
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x38]
call fcn.1000600f
mov byte [ebp - 0x18], 0
lea eax, [ebp - 0x38]
push dword [ebp - 0x18]
or ebx, 4
lea ecx, [ebp - 0x68]
push eax
mov dword [ebp - 0x1c], ebx
call fcn.10005e62
mov eax, dword [ebp - 0x24]
cmp eax, 0x10
jb 0x100582fc
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
cmp eax, 0x1000
jb 0x100582f3
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10001c26
mov eax, dword [ebp - 0x10]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x14]
push eax
push ecx
call fcn.1007c382
pop ecx
pop ecx
mov edi, dword [ebp - 0x54]
lea ecx, [ebp - 0x68]
mov esi, dword [ebp - 0x68]
cmp edi, 0x10
mov eax, dword [ebp - 0x58]
cmovae ecx, esi
mov dword [ebp - 0x20], ecx
cmp eax, 1
jb 0x1005850a
lea edx, [ecx + eax]
mov dword [ebp - 0x18], edx
jmp 0x1005833c
movzx eax, byte [ecx]
cmp al, 0x5c
jne 0x1005832d
xor eax, eax
jmp 0x10058332
sbb eax, eax
or eax, 1
test eax, eax
je 0x10058353
mov eax, dword [ebp - 0x18]
inc ecx
sub eax, ecx
push eax
push 0x5c
push ecx
call fcn.1007fb70
mov ecx, eax
add esp, 0xc
test ecx, ecx
jne 0x10058322
jmp 0x1005850a
sub ecx, dword [ebp - 0x20]
cmp ecx, 0xffffffff
je 0x1005850a
inc ecx
lea edx, [ebp - 0x68]
cmp edi, 0x10
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x58]
cmovae edx, esi
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0x18], edx
cmp ecx, 1
jb 0x100583b8
lea eax, [ecx - 1]
cmp esi, eax
ja 0x100583b8
lea edi, [edx + ecx]
lea ecx, [edx + esi]
jmp 0x100583a2
movzx eax, byte [ecx]
cmp al, 0x5c
jne 0x10058394
xor eax, eax
jmp 0x10058399
sbb eax, eax
or eax, 1
test eax, eax
je 0x10058487
inc ecx
mov eax, edi
sub eax, ecx
push eax
push 0x5c
push ecx
call fcn.1007fb70
mov ecx, eax
add esp, 0xc
test ecx, ecx
jne 0x10058389
and dword [ebp - 0x38], 0
lea eax, [ebp - 0x68]
and dword [ebp - 0x28], 0
lea ecx, [ebp - 0x38]
push 0xffffffffffffffff
push esi
push eax
mov dword [ebp - 0x24], 0xf
call fcn.1000600f
or ebx, 0x10
mov byte [ebp - 0x18], 0
lea eax, [ebp - 0x38]
push dword [ebp - 0x18]
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x1c], ebx
push eax
call fcn.10005e62
mov eax, dword [ebp - 0x24]
cmp eax, 0x10
jb 0x10058426
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], eax
cmp eax, 0x1000
jb 0x1005841d
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10001c26
mov eax, dword [ebp - 0x10]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x14]
push eax
push ecx
call fcn.1007c382
pop ecx
pop ecx
mov edi, dword [ebp - 0x54]
lea eax, [ebp - 0x68]
mov esi, dword [ebp - 0x68]
cmp edi, 0x10
mov ebx, dword [ebp - 0x58]
cmovae eax, esi
mov dword [ebp - 0x18], eax
test ebx, ebx
je 0x1005850a
push ebx
push 0x5f
push eax
call fcn.1007fb70
add esp, 0xc
test eax, eax
je 0x1005850a
sub eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], eax
cmp eax, 0xffffffff
je 0x1005850a
cmp edi, 0x10
lea ecx, [ebp - 0x68]
cmovae ecx, esi
mov dword [ebp - 0x20], ecx
cmp ebx, 2
jb 0x100584ed
lea eax, [ebx - 1]
add eax, ecx
mov dword [ebp - 0x18], eax
sub eax, ecx
push eax
push 0x5f
push ecx
jmp 0x100584dc
sub ecx, dword [ebp - 0x18]
cmp ecx, 0xffffffff
je 0x100583b8
and dword [ebp - 0x38], 0
lea eax, [ebp - 0x68]
and dword [ebp - 0x28], 0
sub ecx, esi
push ecx
push esi
push eax
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x24], 0xf
call fcn.1000600f
or ebx, 8
jmp 0x100583d9
push 2
push 0x100aa028
push ebx
call fcn.1007e3f0
add esp, 0xc
test eax, eax
je 0x100585cc
mov eax, dword [ebp - 0x18]
inc ebx
sub eax, ebx
push eax
push 0x5f
push ebx
call fcn.1007fb70
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x100584ba
mov ebx, dword [ebp - 0x58]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x68]
cmp ecx, eax
je 0x1005850a
cmp edi, 0x10
push ebx
cmovae eax, esi
push eax
call fcn.10002936
mov esi, dword [ebp - 0x68]
mov edi, dword [ebp - 0x54]
cmp edi, 0x10
jb 0x1005853c
inc edi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], edi
cmp edi, 0x1000
jb 0x10058533
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10001c26
mov edi, dword [ebp - 0x10]
mov esi, dword [ebp - 0x14]
pop ecx
pop ecx
push edi
push esi
call fcn.1007c382
pop ecx
pop ecx
mov edi, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x3c]
cmp ebx, 0x10
jb 0x10058574
inc ebx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], ebx
cmp ebx, 0x1000
jb 0x1005856b
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10001c26
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
pop ecx
pop ecx
push ebx
push edi
call fcn.1007c382
pop ecx
pop ecx
and dword [ebp - 0x40], 0
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
pop edi
pop esi
pop ebx
cmp eax, 0x10
jb 0x100585bd
mov ecx, dword [ebp - 0x80]
inc eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
cmp eax, 0x1000
jb 0x100585b4
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10001c26
mov eax, dword [ebp - 0x10]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x14]
push eax
push ecx
call fcn.1007c382
pop ecx
pop ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
leave
ret
sub ebx, dword [ebp - 0x20]
cmp ebx, 0xffffffff
je 0x100584ea
and dword [ebp - 0x38], 0
lea eax, [ebp - 0x68]
and dword [ebp - 0x28], 0
mov ecx, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 0x24], 0xf
cmp dword [ebp - 0x58], ecx
cmovb ecx, dword [ebp - 0x58]
cmp edi, 0x10
push ecx
cmovae eax, esi
lea ecx, [ebp - 0x38]
push eax
call fcn.10002936
mov esi, dword [ebp - 0x1c]
lea eax, [ebp - 0x38]
mov edi, dword [ebp + 8]
or esi, 0x20
push eax
mov ecx, edi
mov dword [ebp - 0x1c], esi
call fcn.10005e08
mov eax, dword [ebp - 0x24]
cmp eax, 0x10
jb 0x10058653
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ecx
cmp eax, 0x1000
jb 0x1005864a
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.10001c26
mov eax, dword [ebp - 0x14]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x10]
push eax
push ecx
call fcn.1007c382
pop ecx
pop ecx
and dword [ebp - 0x38], 0
lea eax, [ebx + 2]
and dword [ebp - 0x28], 0
lea ecx, [ebp - 0x38]
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x68]
mov dword [ebp - 0x24], 0xf
push eax
call fcn.1000600f
mov byte [ebp - 0x18], 0
lea eax, [ebp - 0x38]
push dword [ebp - 0x18]
or esi, 0x40
lea ecx, [ebp - 0x68]
push eax
mov dword [ebp - 0x1c], esi
call fcn.10005e62
mov eax, dword [ebp - 0x24]
cmp eax, 0x10
jb 0x100586c4
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
cmp eax, 0x1000
jb 0x100586bb
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10001c26
mov eax, dword [ebp - 0x10]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x14]
push eax
push ecx
call fcn.1007c382
pop ecx
pop ecx
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
push dword [ebp - 0x58]
cmovae eax, dword [ebp - 0x68]
mov ecx, edi
push eax
call fcn.10002784
jmp 0x10058504