Function at 0x10021388
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa50
push ebx
push edi
mov edi, dword [0x10064078]
push 0x1ac4
call fcn.1001c2a3
mov ebx, eax
pop ecx
test ebx, ebx
je 0x10021720
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [ebx + 0x1640], eax
mov eax, dword [0x10064060]
call dword [eax + 0xa8]
lea ecx, [ebx + 0x648]
push ecx
mov ecx, dword [ebx + 0x1640]
add ecx, eax
push ecx
call fcn.1003929a
mov eax, dword [0x10064060]
lea esi, [ebx + 0x1644]
pop ecx
pop ecx
push 0x105
push esi
push 0
call dword [eax + 0x124]
test eax, eax
je 0x10021407
mov ecx, esi
call fcn.1001cc74
mov dword [ebx + 0x1854], eax
mov eax, dword [0x10064060]
call dword [eax + 0x128]
mov ecx, eax
call fcn.1001fcd6
mov dword [ebx + 0x110], eax
mov ecx, dword [eax]
call fcn.1001fe51
test eax, eax
je 0x10021436
mov dword [ebx + 0x214], 3
jmp 0x10021449
call fcn.1001fd26
xor ecx, ecx
test eax, eax
setg cl
inc ecx
mov dword [ebx + 0x214], ecx
lea ecx, [ebx + 0x220]
call fcn.100227ce
mov dword [ebx + 0x218], eax
call fcn.10022793
lea ecx, [ebp - 0xc]
mov dword [ebx + 0x21c], eax
push ecx
lea ecx, [ebp - 4]
mov dword [ebx + 0x224], edi
push ecx
lea ecx, [ebp - 0x28c]
mov dword [ebp - 8], 0x80
push ecx
lea ecx, [ebp - 8]
mov dword [ebp - 4], 0x100
push ecx
lea eax, [ebx + 0x114]
push eax
mov eax, dword [ebx + 0x110]
push dword [eax]
mov eax, dword [0x10064068]
push 0
call dword [eax + 0x6c]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x100214b1
call esi
mov eax, dword [0x10064070]
push 0x1000
call dword [eax + 0x3c]
xor ecx, ecx
lea edi, [ebx + 0x228]
test eax, eax
push 0x105
setg cl
mov dword [ebx + 0x1850], ecx
mov eax, dword [0x10064060]
push edi
push dword [ebx + 0x224]
call dword [eax + 0x124]
call esi
mov ecx, edi
call fcn.1001cc74
lea ecx, [ebx + 0x114]
mov dword [ebx + 0x434], eax
call fcn.1001fb26
lea esi, [ebx + 0xb0]
mov dword [ebx + 0xac], eax
push ecx
mov edx, esi
mov ecx, eax
call fcn.1001f919
lea edx, [ebx + 0xd0]
mov ecx, esi
call fcn.1001d060
pop ecx
lea edx, [ebx + 0x438]
mov ecx, edi
call fcn.1001cc8e
push 0
push esi
call fcn.10020662
pop ecx
mov edx, eax
mov ecx, esi
call fcn.10021724
pop ecx
lea edx, [ebx + 0x100c]
mov ecx, eax
call fcn.1001fb3c
mov eax, dword [0x10064060]
call dword [eax + 0x128]
mov ecx, eax
call fcn.1001fea3
mov esi, 0x9c
movsx eax, al
push esi
push 0
push ebx
mov dword [ebx + 0x101c], eax
call fcn.1001c3ee
add esp, 0xc
mov dword [ebx], esi
push ebx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
call fcn.1002129b
mov ecx, eax
mov dword [ebx + 0xa8], eax
call fcn.100212c4
push 0x104
lea edi, [ebx + 0x1020]
mov word [ebx + 0x9c], ax
push edi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push 0x2e4
call fcn.1001d42d
mov ecx, dword [0x10064060]
mov esi, eax
mov dword [esp], 0x104
lea eax, [ebp - 0x298]
push eax
push esi
mov dword [ebp - 4], esi
call dword [ecx + 0xe8]
test eax, eax
jne 0x100215ee
mov eax, dword [0x10064060]
push edi
push esi
call dword [eax + 0x104]
lea eax, [ebp - 4]
push eax
call fcn.1001c274
mov eax, dword [0x10064060]
lea esi, [ebx + 0x1434]
mov dword [esp], 0x209
push esi
push str.USERPROFILE
call dword [eax + 0xe8]
test eax, eax
jne 0x10021643
push 0x1005beb4
push edi
push str._s_s
push 0x105
push esi
call fcn.1001d48c
mov eax, dword [0x10064060]
add esp, 0x14
push esi
push str.USERPROFILE
call dword [eax + 0x104]
push 0x20a
lea eax, [ebx + 0x122a]
mov edi, str.TEMP
push eax
mov eax, dword [0x10064060]
push edi
call dword [eax + 0xe8]
test eax, eax
jne 0x10021671
mov eax, dword [0x10064060]
push esi
push edi
call dword [eax + 0x104]
push 0x40
lea eax, [ebp - 0x8c]
mov esi, str.SystemDrive
push eax
mov eax, dword [0x10064060]
push esi
call dword [eax + 0xe8]
test eax, eax
jne 0x100216a0
mov eax, dword [0x10064060]
push 0x1005bed4
push esi
call dword [eax + 0x104]
lea eax, [ebp - 4]
mov dword [ebp - 4], 0x7f
push eax
lea eax, [ebx + 0x199c]
push eax
mov eax, dword [0x10064060]
call dword [eax + 0xb8]
lea eax, [ebp - 0xa50]
push eax
push 0
lea esi, [ebx + 0x100c]
push esi
call fcn.10020662
pop ecx
mov edx, eax
mov ecx, esi
call fcn.10021724
pop ecx
push eax
call fcn.1003929a
push 0x20
lea eax, [ebx + 0x1858]
push eax
lea eax, [ebp - 0xa50]
push eax
call fcn.1003926c
lea eax, [ebp - 0xa50]
push eax
push 0x1e
push 0x14
lea ecx, [ebx + 0x1878]
pop edx
call fcn.1001cd5b
add esp, 0x1c
call fcn.10021045
mov dword [ebx + 0x1898], eax
mov eax, ebx
pop esi
pop edi
pop ebx
leave
ret