Function at 0x3aab4560
Capabilities:
Get common file path

Disassembly:
push 0x498
mov eax, 0x3ab4d160
call fcn.3ab359d8
xor eax, eax
push 0x208
push eax
mov word [ebp - 0x428], ax
lea eax, [ebp - 0x426]
push eax
call fcn.3ab033f0
add esp, 0xc
push 0x104
lea edi, [ebp - 0x428]
call fcn.3aa9cef1
mov eax, edi
push eax
call fcn.3ab3c1f6
pop ecx
lea eax, [ebx + 0x304]
lea esi, [ebx + 0x1118]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x34c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x38c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x3cc]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x40c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x44c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x48c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x4cc]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea edi, [ebx + 0x50c]
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x480]
push ecx
push eax
mov ecx, esi
mov dword [ebp - 0x480], edi
call fcn.3ab3c1f6
lea eax, [ebx + 0x54c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x80c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x58c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x5cc]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x60c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x64c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x68c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x6cc]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x70c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x74c]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x480]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x78c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x7cc]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x88c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x90c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x8cc]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x94c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x98c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x9cc]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xa0c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xa4c]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x480]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xa8c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xacc]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xb0c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xb4c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xb8c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xbcc]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xc0c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xc4c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xc8c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xccc]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x480]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xd0c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xd4c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xd8c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xdcc]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xe0c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xe4c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xe8c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xecc]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xf0c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xf8c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xf4c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0xfcc]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x100c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x104c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x84c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x108c]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
lea eax, [ebx + 0x10cc]
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x480], eax
mov eax, dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.3ab3c1f6
mov eax, dword [ebx + 0x111c]
mov esi, dword [eax]
cmp esi, eax
je 0x3aab4c5b
mov eax, dword [esi + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
mov esi, dword [esi]
cmp esi, dword [ebx + 0x111c]
jne 0x3aab4c48
push 0x3aa63a54
lea ecx, [ebp - 0x47c]
call fcn.3ab3c1f6
and dword [ebp - 4], 0
lea eax, [ebp - 0x4a4]
push eax
call fcn.3ab16b44
mov byte [ebp - 4], 1
cmp dword [ebp - 0x464], 8
mov ecx, dword [ebp - 0x478]
jae 0x3aab4c94
lea ecx, [ebp - 0x478]
push ecx
push eax
lea eax, [ebp - 0x460]
push eax
call fcn.3aaa357c
add esp, 0xc
push 0
push 1
lea ecx, [ebp - 0x4a4]
mov byte [ebp - 4], 3
call fcn.3ab3c1f6
cmp dword [ebp - 0x448], 8
mov eax, dword [ebp - 0x45c]
jae 0x3aab4ccd
lea eax, [ebp - 0x45c]
push eax
lea ecx, [ebp - 0x480]
call fcn.3ab3c1f6
mov byte [ebp - 4], 4
mov eax, dword [eax]
mov ecx, dword [edi]
push eax
push edi
call dword [ecx + 0x28]
mov byte [ebp - 4], 3
push dword [ebp - 0x480]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call esi
mov edi, 0x3aa65528
push edi
lea ecx, [ebp - 0x480]
call fcn.3ab3c1f6
mov byte [ebp - 4], 5
mov ecx, dword [eax]
lea eax, [ebx + 0x54c]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x28]
mov byte [ebp - 4], 3
push dword [ebp - 0x480]
call esi
push edi
lea ecx, [ebp - 0x480]
call fcn.3ab3c1f6
mov byte [ebp - 4], 6
mov ecx, dword [eax]
lea eax, [ebx + 0x38c]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x28]
mov byte [ebp - 4], 3
push dword [ebp - 0x480]
call esi
push edi
lea ecx, [ebp - 0x480]
call fcn.3ab3c1f6
mov byte [ebp - 4], 7
mov ecx, dword [eax]
lea eax, [ebx + 0x90c]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x28]
mov byte [ebp - 4], 3
push dword [ebp - 0x480]
call esi
push edi
lea ecx, [ebp - 0x480]
call fcn.3ab3c1f6
mov byte [ebp - 4], 8
mov ecx, dword [eax]
lea eax, [ebx + 0x8cc]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x28]
mov byte [ebp - 4], 3
push dword [ebp - 0x480]
call esi
push 0x3aa614f0
lea ecx, [ebp - 0x480]
call fcn.3ab3c1f6
mov byte [ebp - 4], 9
mov ecx, dword [eax]
lea eax, [ebx + 0xb8c]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x28]
mov byte [ebp - 4], 3
push dword [ebp - 0x480]
call esi
push 0x3aa614f0
lea ecx, [ebp - 0x480]
call fcn.3ab3c1f6
mov byte [ebp - 4], 0xa
mov ecx, dword [eax]
lea eax, [ebx + 0xbcc]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x28]
mov byte [ebp - 4], 3
push dword [ebp - 0x480]
call esi
push 0x3aa61344
lea ecx, [ebp - 0x480]
call fcn.3ab3c1f6
mov byte [ebp - 4], 0xb
mov ecx, dword [eax]
lea eax, [ebx + 0xc0c]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x28]
mov byte [ebp - 4], 3
push dword [ebp - 0x480]
call esi
push edi
lea ecx, [ebp - 0x480]
call fcn.3ab3c1f6
mov byte [ebp - 4], 0xc
mov ecx, dword [eax]
lea eax, [ebx + 0xc4c]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x28]
mov byte [ebp - 4], 3
push dword [ebp - 0x480]
call esi
push 0x3aa6c2f8
lea ecx, [ebp - 0x480]
call fcn.3ab3c1f6
mov byte [ebp - 4], 0xd
mov ecx, dword [eax]
lea eax, [ebx + 0xc8c]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x28]
mov byte [ebp - 4], 3
push dword [ebp - 0x480]
call esi
push edi
lea ecx, [ebp - 0x480]
call fcn.3ab3c1f6
mov byte [ebp - 4], 0xe
mov ecx, dword [eax]
lea eax, [ebx + 0xf0c]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x28]
mov byte [ebp - 4], 3
push dword [ebp - 0x480]
call esi
push edi
lea ecx, [ebp - 0x480]
call fcn.3ab3c1f6
mov byte [ebp - 4], 0xf
mov ecx, dword [eax]
lea eax, [ebx + 0xf8c]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x28]
mov byte [ebp - 4], 3
push dword [ebp - 0x480]
call esi
push edi
lea ecx, [ebp - 0x480]
call fcn.3ab3c1f6
mov byte [ebp - 4], 0x10
mov ecx, dword [eax]
lea eax, [ebx + 0x100c]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x28]
mov byte [ebp - 4], 3
push dword [ebp - 0x480]
call esi
mov edi, 0x3aa614f0
push edi
lea ecx, [ebp - 0x480]
call fcn.3ab3c1f6
mov byte [ebp - 4], 0x11
mov ecx, dword [eax]
lea eax, [ebx + 0xacc]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x28]
mov byte [ebp - 4], 3
push dword [ebp - 0x480]
call esi
push edi
lea ecx, [ebp - 0x444]
call fcn.3ab3c1f6
xor eax, eax
push 0x208
mov byte [ebp - 4], 0x12
push eax
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21a]
push eax
call fcn.3ab033f0
add esp, 0xc
push 0x104
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.kernel32.dll_GetWindowsDirectoryW]
xor eax, eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x480]
call fcn.3ab3c1f6
mov byte [ebp - 4], 0x13
mov ecx, dword [eax]
lea eax, [ebx + 0xb0c]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x28]
mov byte [ebp - 4], 0x12
push dword [ebp - 0x480]
call esi
lea eax, [ebp - 0x4a4]
push eax
call fcn.3ab16b44
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x444]
mov byte [ebp - 4], 0x14
call fcn.3ab3c1f6
mov byte [ebp - 4], 0x12
push 0
push 1
lea ecx, [ebp - 0x4a4]
call fcn.3ab3c1f6
cmp dword [ebp - 0x42c], 8
mov eax, dword [ebp - 0x440]
jae 0x3aab5003
lea eax, [ebp - 0x440]
push eax
lea ecx, [ebp - 0x488]
call fcn.3ab3c1f6
mov byte [ebp - 4], 0x15
mov ecx, dword [eax]
lea eax, [ebx + 0xb4c]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x28]
mov byte [ebp - 4], 0x12
push dword [ebp - 0x488]
call esi
and dword [ebx + 0x2dc], 0
push edi
lea ecx, [ebx + 0x1130]
call fcn.3ab3c1f6
push edi
lea ecx, [ebx + 0x1d4]
call fcn.3ab3c1f6
push edi
lea ecx, [ebx + 0x20c]
call fcn.3ab3c1f6
mov ecx, dword [ebx]
lea eax, [ebx + 0x28]
push eax
push ebx
call dword [ecx + 0x1c]
mov edi, ebx
call fcn.3ab3c1f6
xor esi, esi
mov dword [ebp - 0x484], esi
lea eax, [ebp - 0x484]
push eax
mov eax, ebx
mov byte [ebp - 4], 0x16
call fcn.3ab3c1f6
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x484]
cmp eax, esi
je 0x3aab5098
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push esi
push 1
lea ecx, [ebp - 0x444]
call fcn.3ab3c1f6
push esi
push 1
lea ecx, [ebp - 0x460]
call fcn.3ab3c1f6
push esi
push 1
lea ecx, [ebp - 0x47c]
call fcn.3ab3c1f6
xor eax, eax
call fcn.3ab35a6a
ret