Function at 0x3ab1568e
Capabilities:
Get common file path

Disassembly:
push 0x864
mov eax, 0x3ab3f6d0
call fcn.3ab359d8
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x860], ebx
cmp eax, ebx
jne 0x3ab156b6
xor eax, eax
call fcn.3ab35a6a
ret 8
mov dword [ebp - 0x868], ebx
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x868]
push ecx
push eax
call fcn.3aac1c7d
cmp eax, ebx
jge 0x3ab156e9
mov ebx, eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x868]
call fcn.3aa94881
mov eax, ebx
jmp 0x3ab156ae
mov esi, dword [ebp - 0x868]
push 0x3aa540a4
lea ecx, [ebp - 0x864]
call fcn.3ab3c1f6
mov dword [ebp - 0x86c], eax
mov byte [ebp - 4], 2
mov edi, 0x3aa53e9c
push edi
lea ecx, [ebp - 0x870]
call fcn.3ab3c1f6
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x86c]
mov ecx, dword [ecx]
mov eax, dword [eax]
mov edx, dword [esi]
push ebx
push ecx
push eax
push esi
call dword [edx + 0x30]
mov byte [ebp - 4], 2
push dword [ebp - 0x870]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call esi
mov byte [ebp - 4], 1
push dword [ebp - 0x864]
call esi
xor eax, eax
push 0x208
mov word [ebp - 0x840], ax
lea eax, [ebp - 0x83e]
push ebx
push eax
call fcn.3ab033f0
add esp, 0xc
push 0x104
lea eax, [ebp - 0x840]
push eax
call dword [sym.imp.kernel32.dll_GetSystemDirectoryW]
push 0x3aa54088
lea eax, [ebp - 0x840]
push 0x105
push eax
call fcn.3ab3c1f6
lea eax, [ebp - 0x840]
push ebx
push eax
call fcn.3ab3c1f6
add esp, 0x14
test eax, eax
je 0x3ab15815
mov eax, dword [ebp - 0x868]
push 0x3aa54050
lea ecx, [ebp - 0x860]
mov dword [ebp - 0x870], eax
call fcn.3ab3c1f6
mov dword [ebp - 0x864], eax
mov byte [ebp - 4], 4
push edi
lea ecx, [ebp - 0x86c]
call fcn.3ab3c1f6
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x864]
mov ecx, dword [ecx]
mov eax, dword [eax]
mov edx, dword [ebp - 0x870]
mov edi, dword [edx]
push ebx
push ecx
push eax
push edx
call dword [edi + 0x30]
mov byte [ebp - 4], 4
push dword [ebp - 0x86c]
call esi
mov byte [ebp - 4], 1
push dword [ebp - 0x860]
call esi
jmp 0x3ab156d6
lea ecx, [ebp - 0x85c]
call fcn.3aa95baf
mov byte [ebp - 4], 6
lea eax, [ebp - 0x85c]
push eax
call fcn.3ab1bbe3
test eax, eax
jne 0x3ab158b2
mov eax, dword [ebp - 0x868]
push 0x3aa54018
lea ecx, [ebp - 0x860]
mov dword [ebp - 0x870], eax
call fcn.3ab3c1f6
mov dword [ebp - 0x864], eax
mov byte [ebp - 4], 7
push edi
lea ecx, [ebp - 0x86c]
call fcn.3ab3c1f6
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x864]
mov ecx, dword [ecx]
mov eax, dword [eax]
mov edx, dword [ebp - 0x870]
mov edi, dword [edx]
push ebx
push ecx
push eax
push edx
call dword [edi + 0x30]
mov byte [ebp - 4], 7
push dword [ebp - 0x86c]
call esi
mov byte [ebp - 4], 6
push dword [ebp - 0x860]
call esi
mov byte [ebp - 4], 1
push ebx
push 1
lea ecx, [ebp - 0x85c]
call fcn.3ab3c1f6
jmp 0x3ab156d6
xor eax, eax
push 0x208
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21a]
push ebx
push eax
call fcn.3ab033f0
add esp, 0xc
push 0x104
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.kernel32.dll_GetWindowsDirectoryW]
cmp eax, 1
jbe 0x3ab15ad7
lea eax, [ebp + eax*2 - 0x21e]
cmp word [eax], 0x5c
jne 0x3ab158fd
xor ecx, ecx
mov word [eax], cx
xor eax, eax
push 0x208
mov word [ebp - 0x634], ax
lea eax, [ebp - 0x632]
push ebx
push eax
call fcn.3ab033f0
xor eax, eax
push 0x208
mov word [ebp - 0x428], ax
lea eax, [ebp - 0x426]
push ebx
push eax
call fcn.3ab033f0
add esp, 0x18
mov dword [ebp - 0x860], ebx
cmp dword [ebp + 0xc], ebx
jne 0x3ab1594d
mov dword [ebp - 0x860], 0x3aa5400c
jmp 0x3ab1595d
cmp dword [ebp + 0xc], 1
jne 0x3ab1595d
mov dword [ebp - 0x860], 0x3aa53ff8
cmp dword [ebp - 0x844], 8
mov eax, dword [ebp - 0x858]
jae 0x3ab15972
lea eax, [ebp - 0x858]
push eax
lea eax, [ebp - 0x21c]
push eax
push 0x3aa53fa8
push 0xffffffffffffffff
lea eax, [ebp - 0x634]
push 0x104
push eax
call fcn.3ab3c1f6
lea eax, [ebp - 0x634]
push ebx
push eax
call fcn.3ab3c1f6
add esp, 0x20
test eax, eax
je 0x3ab159b1
xor eax, eax
mov word [ebp - 0x634], ax
jmp 0x3ab159d0
push dword [ebp - 0x860]
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x634]
push eax
push dword [ebp - 0x868]
call fcn.3ab13a5e
cmp dword [ebp - 0x844], 8
mov eax, dword [ebp - 0x858]
jae 0x3ab159e5
lea eax, [ebp - 0x858]
push eax
lea eax, [ebp - 0x21c]
push eax
push 0x3aa53f50
push 0xffffffffffffffff
lea eax, [ebp - 0x428]
push 0x104
push eax
call fcn.3ab3c1f6
lea eax, [ebp - 0x428]
push ebx
push eax
call fcn.3ab3c1f6
add esp, 0x20
test eax, eax
je 0x3ab15a24
xor eax, eax
mov word [ebp - 0x428], ax
jmp 0x3ab15a43
push dword [ebp - 0x860]
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x428]
push eax
push dword [ebp - 0x868]
call fcn.3ab13a5e
lea eax, [ebp - 0x634]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x3ab15a4c
sub eax, edx
sar eax, 1
jne 0x3ab15acd
lea eax, [ebp - 0x428]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x3ab15a65
sub eax, edx
sar eax, 1
jne 0x3ab15acd
mov eax, dword [ebp - 0x868]
push 0x3aa53f20
lea ecx, [ebp - 0x860]
mov dword [ebp - 0x870], eax
call fcn.3ab3c1f6
mov dword [ebp - 0x864], eax
mov byte [ebp - 4], 9
push edi
lea ecx, [ebp - 0x86c]
call fcn.3ab3c1f6
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x864]
mov ecx, dword [ecx]
mov eax, dword [eax]
mov edx, dword [ebp - 0x870]
mov edi, dword [edx]
push ebx
push ecx
push eax
push edx
call dword [edi + 0x30]
mov byte [ebp - 4], 9
jmp 0x3ab15887
mov dword [ebp - 0x860], 1
mov byte [ebp - 4], 1
push ebx
push 1
lea ecx, [ebp - 0x85c]
call fcn.3ab3c1f6
mov ebx, dword [ebp - 0x860]
jmp 0x3ab156d6