Function at 0x18d30360
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov byte [ebp - 9], 0
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x18d30390
jmp 0x18d305cc
mov eax, dword [0x18d38cb8]
add eax, 0x34
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp - 0x10]
lea edx, [ecx + eax + 0x10b]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
shl eax, 1
push eax
call fcn.18d33770
add esp, 4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x18d303d0
push 8
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x18d305cc
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp eax, dword [ebp - 0x10]
jbe 0x18d303f0
push 8
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x18d305cc
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
push eax
push 0x77796a86
push 7
push 0x18d34edc
call fcn.18d217f0
add esp, 0xc
push eax
push 0
mov ecx, dword [ebp - 4]
push ecx
call fcn.18d26ec0
add esp, 0x10
mov edx, dword [ebp + 8]
movzx eax, word [edx]
cmp eax, 0x20
je 0x18d30448
mov ecx, dword [ebp + 8]
movzx edx, word [ecx]
cmp edx, 0x22
jne 0x18d30453
mov eax, dword [ebp + 8]
add eax, 2
mov dword [ebp + 8], eax
jmp 0x18d30432
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
lea ecx, [eax + edx*2]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x1c], 0
je 0x18d30493
mov edx, dword [ebp - 0x18]
movzx eax, word [edx]
cmp eax, 0x5c
jne 0x18d3047f
jmp 0x18d30493
mov ecx, dword [ebp - 0x18]
sub ecx, 2
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x1c]
sub edx, 1
mov dword [ebp - 0x1c], edx
jmp 0x18d3046c
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.18d26a80
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x18d304b9
push 8
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x18d305cc
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.18d32520
add esp, 8
test eax, eax
setne cl
mov byte [ebp - 9], cl
movzx edx, byte [ebp - 9]
test edx, edx
jne 0x18d304de
jmp 0x18d305cc
mov eax, dword [ebp - 0x14]
push eax
push 0
push 0xd2d61642
push 7
push 0x18d34d48
call fcn.18d217f0
add esp, 0xc
push eax
call fcn.18d301f0
add esp, 0xc
mov byte [ebp - 9], al
movzx ecx, byte [ebp - 9]
test ecx, ecx
jne 0x18d30511
jmp 0x18d305cc
movzx edx, byte [0x18d38a36]
test edx, edx
je 0x18d30557
mov eax, dword [ebp - 0x14]
push eax
push 0x843cbace
push 0x20
push 0x18d34d14
call fcn.18d217f0
add esp, 0xc
push eax
push 0xf1725e2c
push 0xb
push 0x18d34d08
call fcn.18d217f0
add esp, 0xc
push eax
call fcn.18d301f0
add esp, 0xc
mov byte [ebp - 9], al
jmp 0x18d3057d
mov ecx, dword [ebp - 0x14]
push ecx
push 0
push 0xcd299614
push 0xc
push 0x18d34d38
call fcn.18d217f0
add esp, 0xc
push eax
call fcn.18d301f0
add esp, 0xc
mov byte [ebp - 9], al
movzx edx, byte [ebp - 9]
test edx, edx
jne 0x18d30587
jmp 0x18d305cc
cmp dword [ebp - 4], 0
jne 0x18d3058f
jmp 0x18d305cc
push 0xc8c8b15f
push 0xa
push 0x18d34ee4
call fcn.18d217f0
add esp, 0xc
push eax
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push 0
mov ecx, dword [ebp - 4]
push ecx
call fcn.18d32850
add esp, 8
test eax, eax
setne dl
mov byte [ebp - 9], dl
xor eax, eax
jne 0x18d30378
mov ecx, dword [ebp - 4]
push ecx
call fcn.18d33970
add esp, 4
mov edx, dword [ebp - 8]
push edx
call fcn.18d33970
add esp, 4
mov al, byte [ebp - 9]
mov esp, ebp
pop ebp
ret