Function at 0x101c486
Capabilities:
Get common file path

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x160
push ebx
push esi
push edi
xor ebx, ebx
push 0x118
lea eax, [ebp - 0x15c]
push ebx
or esi, 0xffffffff
push eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x160], ebx
call sub.msvcrt.dll_memset
push 8
mov dword [ebp - 0x44], ebx
pop ecx
xor eax, eax
mov dword [ebp - 0x20], ebx
lea edi, [ebp - 0x40]
mov dword [ebp - 0xc], ebx
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.msvcrt.dll_malloc]
mov ebx, 0x10000
push ebx
call edi
add esp, 0x10
mov dword [ebp - 8], eax
test eax, eax
je 0x101c8eb
push ebx
push 0
push eax
call sub.msvcrt.dll_memset
push ebx
call edi
add esp, 0x10
mov dword [ebp - 4], eax
test eax, eax
je 0x101c8d3
push ebx
push 0
push eax
call sub.msvcrt.dll_memset
push 0x18
call edi
add esp, 0x10
mov dword [ebp - 0xc], eax
test eax, eax
je 0x101c8d3
mov edi, dword [ebp - 0xc]
push 6
pop ecx
xor eax, eax
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x20]
push eax
push 0x18
push dword [ebp - 0xc]
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [0x1021e74]
mov edi, dword [ebp + 0xc]
push 0x25e
push esi
push 0x1005d9c
push edi
call fcn.0100edeb
mov eax, dword [ebp + 8]
push dword [eax + 0x28]
push esi
push 0x1005d90
push edi
call fcn.0100ee97
mov eax, dword [ebp + 8]
push dword [eax + 0x38]
push esi
push 0x1005d80
push edi
call fcn.0100ee97
add esp, 0x30
lea eax, [ebp - 0x160]
push eax
mov dword [ebp - 0x160], 0x11c
call dword [0x1021e38]
push dword [ebp - 0x15c]
push esi
push 0x1005d60
push edi
call fcn.0100edeb
push dword [ebp - 0x158]
push esi
push 0x1005d40
push edi
call fcn.0100edeb
push dword [ebp - 0x154]
push esi
push 0x1005d24
push edi
call fcn.0100edeb
push dword [ebp - 0x4c]
push esi
push 0x1005cfc
push edi
call fcn.0100ed43
add esp, 0x40
push dword [ebp - 0x4a]
push esi
push 0x1005cd4
push edi
call fcn.0100ed43
push dword [ebp - 0x150]
push esi
push 0x1005cb8
push edi
call fcn.0100edeb
movzx eax, word [ebp - 0x48]
push eax
push esi
push 0x1005ca0
push edi
call fcn.0100edeb
movzx eax, byte [ebp - 0x46]
push eax
push esi
push 0x1005c84
push edi
call fcn.0100edeb
add esp, 0x40
lea eax, [ebp - 0x44]
push eax
call dword [0x1021e44]
push 9
pop eax
push esi
cmp ax, word [ebp - 0x44]
jne 0x101c63e
push 0x1005c7c
jmp 0x101c643
push 0x1005c70
push esi
push 0x1005c60
push edi
call fcn.0100ee3f
add esp, 0x14
push esi
push 0x1005c54
push esi
push 0x1005c40
push edi
call fcn.0100ee3f
push esi
push 0x1005c30
push esi
push 0x1005c14
push edi
call fcn.0100ee3f
push esi
push 0x1005c70
push esi
push 0x1005c08
push edi
call fcn.0100ee3f
add esp, 0x3c
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_IsWow64Process]
push dword [ebp - 0x14]
push esi
push 0x1005bfc
push edi
call fcn.0100ee97
push esi
push 0x1005c70
push esi
push 0x1005be0
push edi
call fcn.0100ee3f
push esi
push 0x1005bd4
push esi
push 0x1005bc8
push edi
call fcn.01012fae
push esi
push 0x1005bbc
push esi
push 0x1005bb0
push edi
call fcn.01012fae
add esp, 0x4c
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push esi
push 0x1005ba8
push edi
call fcn.0100edeb
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push esi
push 0x1005ba0
push edi
call fcn.0100edeb
mov eax, dword [ebp - 0xc]
push dword [eax + 0x14]
push esi
push 0x1005b94
push edi
call fcn.0100edeb
mov eax, dword [ebp - 0xc]
push dword [eax + 4]
push esi
push 0x1005b7c
push edi
call fcn.0101bbd0
push ebx
push 0
push dword [ebp - 8]
call sub.msvcrt.dll_memset
push ebx
push 0
push dword [ebp - 4]
call sub.msvcrt.dll_memset
mov eax, dword [ebp + 8]
add esp, 0x48
push 0x8000
push dword [ebp - 8]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [0x1021e50]
test eax, eax
je 0x101c777
push 1
push dword [ebp - 8]
push 0x8000
push dword [ebp - 4]
call eax
jmp 0x101c783
push dword [ebp - 8]
push dword [ebp - 4]
call dword [sym.imp.SHLWAPI.dll_PathCanonicalizeW]
push esi
push dword [ebp - 4]
push esi
push 0x1005b68
push edi
call fcn.0100ee3f
add esp, 0x14
cmp dword [0x1021e58], 0
push dword [ebp - 4]
je 0x101c7b4
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
push dword [ebp - 4]
call dword [0x1021e58]
jmp 0x101c7ba
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push esi
push dword [ebp - 4]
push esi
push 0x1005b4c
push edi
call fcn.0100ee3f
push esi
push 0x1002e28
push esi
push 0x1005b3c
push edi
call fcn.0100ee3f
push ebx
push 0
push dword [ebp - 8]
call sub.msvcrt.dll_memset
push ebx
push 0
push dword [ebp - 4]
call sub.msvcrt.dll_memset
mov eax, dword [ebp + 8]
add esp, 0x40
push 0x8000
push dword [ebp - 8]
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [0x1021e50]
test eax, eax
je 0x101c823
push 1
push dword [ebp - 8]
push 0x8000
push dword [ebp - 4]
call eax
jmp 0x101c82f
push dword [ebp - 8]
push dword [ebp - 4]
call dword [sym.imp.SHLWAPI.dll_PathCanonicalizeW]
push esi
push dword [ebp - 4]
push esi
push 0x1005b24
push edi
call fcn.0100ee3f
add esp, 0x14
cmp dword [0x1021e58], 0
push dword [ebp - 4]
je 0x101c860
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
push dword [ebp - 4]
call dword [0x1021e58]
jmp 0x101c866
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push esi
push dword [ebp - 4]
push esi
push 0x1005b04
push edi
call fcn.0100ee3f
push ebx
push 0
push dword [ebp - 4]
call sub.msvcrt.dll_memset
add esp, 0x20
push dword [ebp - 4]
push 0x8000
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push esi
push dword [ebp - 4]
push esi
push 0x1005ae0
push edi
call fcn.0100ee3f
add esp, 0x14
lea eax, [ebp - 0x10]
push eax
call fcn.0100aa24
test eax, eax
jne 0x101c8d3
push dword [ebp - 0x10]
push dword [ebp + 8]
call fcn.0100ffbb
push dword [ebp - 0x10]
push esi
push 0x1005ad8
push edi
call fcn.0100ebcc
add esp, 0x18
and dword [ebp - 0x18], 0
push dword [ebp - 8]
mov esi, dword [sym.imp.msvcrt.dll_free]
call esi
cmp dword [ebp - 4], 0
pop ecx
je 0x101c8eb
push dword [ebp - 4]
call esi
pop ecx
cmp dword [ebp - 0x10], 0
pop edi
pop esi
pop ebx
je 0x101c904
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x10]
call fcn.0100a7dc
and dword [ebp - 0x10], 0
cmp dword [ebp - 0xc], 0
je 0x101c914
push dword [ebp - 0xc]
call dword [sym.imp.msvcrt.dll_free]
pop ecx
mov eax, dword [ebp - 0x18]
leave
ret