Function at 0x1c43cd0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
mov eax, dword [0x1cff040]
xor eax, ebp
mov dword [ebp - 0x10], eax
xor eax, eax
dec eax
lea esi, [ebp - 0x1c]
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
push str.LOCALAPPDATA
push esi
call fcn.01c3d570
add esp, 8
movsx eax, byte [esi + 0xb]
test eax, eax
jns 0x1c43d0a
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x1c43e2c
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov cl, byte [ebp - 0x11]
test eax, eax
je 0x1c43d86
inc eax
test cl, cl
jns 0x1c43d4f
mov ebx, dword [ebp - 0x18]
mov edi, eax
sub edi, ebx
ja 0x1c43db5
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
lea ecx, [esi + eax*2]
mov word [ecx], 0
mov cl, byte [ebp - 0x11]
test cl, cl
js 0x1c43d5d
lea ecx, [ebp - 0x1c]
jmp 0x1c43d60
movzx ebx, cl
mov edi, eax
sub edi, ebx
ja 0x1c43da9
mov byte [ebp - 0x11], al
jmp 0x1c43d3b
mov ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov cl, byte [ebp - 0x11]
test eax, eax
je 0x1c43d84
movzx ebx, cl
test cl, cl
mov edx, dword [ebp - 0x18]
mov esi, ebx
cmovs esi, edx
cmp eax, esi
jb 0x1c43e0c
xor ebx, ebx
test cl, cl
jns 0x1c43d95
push dword [ebp - 0x1c]
call fcn.01c86cb6
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.01c87bd3
mov eax, ebx
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
je 0x1c43d46
mov dword [ebp - 0x20], eax
mov eax, 4
jmp 0x1c43dc8
je 0x1c43d46
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x14]
mov eax, ecx
and eax, 0x7fffffff
dec eax
shr ecx, 0x18
mov edx, eax
sub edx, ebx
cmp edx, edi
jb 0x1c43f10
test cl, cl
js 0x1c43ddd
lea esi, [ebp - 0x1c]
jmp 0x1c43de0
mov esi, dword [ebp - 0x1c]
lea eax, [esi + ebx*2]
lea ecx, [edi + edi]
push ecx
push 0
push eax
call fcn.01c8abb0
add esp, 0xc
add ebx, edi
cmp byte [ebp - 0x11], 0
jns 0x1c44028
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x20]
lea ecx, [esi + ebx*2]
jmp 0x1c43d3e
mov edi, eax
test cl, cl
jns 0x1c43f01
sub edi, edx
ja 0x1c43f43
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
lea eax, [ecx + eax*2]
mov word [eax], 0
mov esi, dword [ebp + 8]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
movsd xmm0, qword [ebp - 0x1c]
movsd qword [esi], xmm0
mov edi, dword [ebp - 0x14]
mov dword [esi + 8], edi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], edx
movsx eax, byte [esi + 0xb]
test eax, eax
js 0x1c43e5b
mov ecx, eax
jmp 0x1c43e5e
mov ecx, dword [esi + 4]
sub ecx, 1
jb 0x1c44019
mov edx, esi
test al, al
jns 0x1c43e6f
mov edx, dword [esi]
mov edi, dword [ebp + 0xc]
cmp word [edx + ecx*2], 0x5c
je 0x1c43ea4
test al, al
jns 0x1c43fe8
mov ebx, 0x7fffffff
and ebx, dword [esi + 8]
dec ebx
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x1c44002
mov ecx, dword [esi]
lea edx, [eax + 1]
mov dword [esi + 4], edx
mov dword [ecx + eax*2], 0x5c
movsx eax, byte [edi + 0xb]
test eax, eax
jns 0x1c43eb1
mov eax, dword [edi + 4]
mov edi, dword [edi]
mov ecx, esi
push eax
push edi
call fcn.01c66260
movsx eax, byte [esi + 0xb]
test eax, eax
jns 0x1c43fb7
mov edi, 0x7fffffff
and edi, dword [esi + 8]
dec edi
mov eax, dword [esi + 4]
cmp eax, edi
je 0x1c43fd1
mov ecx, dword [esi]
lea edx, [eax + 1]
mov dword [esi + 4], edx
mov dword [ecx + eax*2], 0x5c
mov ecx, esi
push 9
push 0x1cf0050
call fcn.01c66260
mov bl, 1
mov cl, byte [ebp - 0x11]
jmp 0x1c43d86
sub edi, ebx
ja 0x1c43f36
lea ecx, [ebp - 0x1c]
mov byte [ecx + 0xb], al
jmp 0x1c43e24
mov edx, edi
sub edx, eax
add edx, ebx
lea ecx, [ebp - 0x1c]
xor esi, esi
push esi
xor esi, esi
push esi
push ebx
push ebx
push edx
push eax
call fcn.01c5d1f0
lea eax, [ebp - 0x1c]
mov dword [eax + 4], ebx
mov cl, byte [eax + 0xb]
jmp 0x1c43dd4
je 0x1c43e2c
mov eax, 4
jmp 0x1c43f59
je 0x1c43e2c
mov ecx, dword [ebp - 0x14]
mov eax, ecx
and eax, 0x7fffffff
dec eax
shr ecx, 0x18
mov ebx, edx
mov edx, eax
sub edx, ebx
cmp edx, edi
jae 0x1c43f82
mov edx, edi
sub edx, eax
add edx, ebx
lea ecx, [ebp - 0x1c]
xor esi, esi
push esi
xor esi, esi
push esi
push ebx
push ebx
push edx
push eax
call fcn.01c5d1f0
lea eax, [ebp - 0x1c]
mov dword [eax + 4], ebx
mov cl, byte [eax + 0xb]
test cl, cl
jns 0x1c43f8b
mov esi, dword [ebp - 0x1c]
jmp 0x1c43f8e
lea esi, [ebp - 0x1c]
lea eax, [esi + ebx*2]
lea ecx, [edi + edi]
push ecx
push 0
push eax
call fcn.01c8abb0
add esp, 0xc
add ebx, edi
cmp byte [ebp - 0x11], 0
jns 0x1c44034
mov dword [ebp - 0x18], ebx
lea eax, [esi + ebx*2]
jmp 0x1c43e27
cmp al, 4
je 0x1c43fcc
mov ecx, eax
inc cl
and cl, 0x7f
mov byte [esi + 0xb], cl
mov ecx, esi
jmp 0x1c43ee2
mov edi, 4
xor eax, eax
mov ecx, esi
push eax
push eax
push edi
push edi
push 1
push edi
call fcn.01c5d1f0
mov eax, edi
jmp 0x1c43eda
cmp al, 4
je 0x1c43ffd
mov ecx, eax
inc cl
and cl, 0x7f
mov byte [esi + 0xb], cl
mov ecx, esi
jmp 0x1c43e9d
mov ebx, 4
xor eax, eax
mov ecx, esi
push eax
push eax
push ebx
push ebx
push 1
push ebx
call fcn.01c5d1f0
mov eax, ebx
jmp 0x1c43e95
push str....._third_partylibc_srcinclude_string:1249:_assertion___pos___size___failed:_string_index_out_of_bounds_n
push 0x1ce99e6
call fcn.01cb3fe0
mov eax, ebx
and al, 0x7f
mov byte [ebp - 0x11], al
jmp 0x1c43e01
mov eax, ebx
and al, 0x7f
mov byte [ebp - 0x11], al
jmp 0x1c43faf