Function at 0x196c0360
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 0x196c0390
jmp 0x196c05cc
mov eax, dword [0x196c8cb8]
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.196c3770
add esp, 4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x196c03d0
push 8
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x196c05cc
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 0x196c03f0
push 8
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x196c05cc
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 0x196c4edc
call fcn.196b17f0
add esp, 0xc
push eax
push 0
mov ecx, dword [ebp - 4]
push ecx
call fcn.196b6ec0
add esp, 0x10
mov edx, dword [ebp + 8]
movzx eax, word [edx]
cmp eax, 0x20
je 0x196c0448
mov ecx, dword [ebp + 8]
movzx edx, word [ecx]
cmp edx, 0x22
jne 0x196c0453
mov eax, dword [ebp + 8]
add eax, 2
mov dword [ebp + 8], eax
jmp 0x196c0432
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 0x196c0493
mov edx, dword [ebp - 0x18]
movzx eax, word [edx]
cmp eax, 0x5c
jne 0x196c047f
jmp 0x196c0493
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 0x196c046c
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.196b6a80
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x196c04b9
push 8
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x196c05cc
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.196c2520
add esp, 8
test eax, eax
setne cl
mov byte [ebp - 9], cl
movzx edx, byte [ebp - 9]
test edx, edx
jne 0x196c04de
jmp 0x196c05cc
mov eax, dword [ebp - 0x14]
push eax
push 0
push 0xd2d61642
push 7
push 0x196c4d48
call fcn.196b17f0
add esp, 0xc
push eax
call fcn.196c01f0
add esp, 0xc
mov byte [ebp - 9], al
movzx ecx, byte [ebp - 9]
test ecx, ecx
jne 0x196c0511
jmp 0x196c05cc
movzx edx, byte [0x196c8a36]
test edx, edx
je 0x196c0557
mov eax, dword [ebp - 0x14]
push eax
push 0x843cbace
push 0x20
push 0x196c4d14
call fcn.196b17f0
add esp, 0xc
push eax
push 0xf1725e2c
push 0xb
push 0x196c4d08
call fcn.196b17f0
add esp, 0xc
push eax
call fcn.196c01f0
add esp, 0xc
mov byte [ebp - 9], al
jmp 0x196c057d
mov ecx, dword [ebp - 0x14]
push ecx
push 0
push 0xcd299614
push 0xc
push 0x196c4d38
call fcn.196b17f0
add esp, 0xc
push eax
call fcn.196c01f0
add esp, 0xc
mov byte [ebp - 9], al
movzx edx, byte [ebp - 9]
test edx, edx
jne 0x196c0587
jmp 0x196c05cc
cmp dword [ebp - 4], 0
jne 0x196c058f
jmp 0x196c05cc
push 0xc8c8b15f
push 0xa
push 0x196c4ee4
call fcn.196b17f0
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.196c2850
add esp, 8
test eax, eax
setne dl
mov byte [ebp - 9], dl
xor eax, eax
jne 0x196c0378
mov ecx, dword [ebp - 4]
push ecx
call fcn.196c3970
add esp, 4
mov edx, dword [ebp - 8]
push edx
call fcn.196c3970
add esp, 4
mov al, byte [ebp - 9]
mov esp, ebp
pop ebp
ret