Function at 0x1c427e0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x238
mov eax, dword [ebp + 8]
mov ecx, dword [0x1d12014]
xor ecx, ebp
mov dword [esp + 0x230], ecx
xor edi, edi
dec edi
mov dword [esp], edi
mov dword [esp + 4], edi
mov dword [esp + 8], edi
cmp byte [eax + 0xb], 0
jns 0x1c42823
mov ecx, esp
push dword [eax + 4]
push dword [eax]
call fcn.01c3df50
jmp 0x1c42833
mov ecx, dword [eax + 8]
mov dword [esp + 8], ecx
movsd xmm0, qword [eax]
movsd qword [esp], xmm0
lea esi, [esp + 0x28]
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov ecx, esi
push str.SOFTWAREPolicies_
call fcn.01cbdfa0
xor edi, edi
push esi
push edi
push dword [ebp + 0xc]
call fcn.01c41090
add esp, 0xc
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], edi
cmp byte [esi + 0xb], 0
jns 0x1c42870
mov esi, dword [esp + 0x28]
lea ebx, [esp + 0x18]
push ebx
push str.UserDataDir
push esi
push edi
push 1
call fcn.01c40ca0
add esp, 0x14
test al, al
jne 0x1c428b2
cmp byte [esp + 0x33], 0
jns 0x1c42897
mov eax, dword [esp + 0x28]
jmp 0x1c4289b
lea eax, [esp + 0x28]
push ebx
push str.UserDataDir
push eax
push 0
push 2
call fcn.01c40ca0
add esp, 0x14
test al, al
je 0x1c428e5
lea eax, [esp + 0xc]
push ebx
push eax
call fcn.01c4ae80
add esp, 8
cmp byte [esp + 0xb], 0
jns 0x1c428d2
push dword [esp]
call fcn.01c92027
add esp, 4
mov eax, dword [esp + 0x14]
mov dword [esp + 8], eax
movsd xmm0, qword [esp + 0xc]
movsd qword [esp], xmm0
cmp byte [esp + 0x23], 0
jns 0x1c428f8
push dword [esp + 0x18]
call fcn.01c92027
add esp, 4
cmp byte [esp + 0x33], 0
jns 0x1c4290b
push dword [esp + 0x28]
call fcn.01c92027
add esp, 4
movzx edx, byte [esp + 0xb]
mov eax, edx
and eax, 0x7f
test dl, dl
mov esi, dword [esp + 4]
cmovs eax, esi
test eax, eax
je 0x1c429bf
mov ebx, edx
shr bl, 7
mov ecx, esp
test bl, 1
je 0x1c4295e
test esi, esi
je 0x1c42c2c
mov edx, dword [esp]
movzx edx, word [edx + esi*2 - 2]
cmp edx, 0x2f
je 0x1c4294f
cmp edx, 0x5c
jne 0x1c429ac
dec eax
jmp 0x1c42955
dec eax
test bl, 1
je 0x1c42979
mov edx, dword [esp]
mov dword [esp + 4], eax
jmp 0x1c42988
test dl, dl
je 0x1c42c2c
movzx edx, dl
movzx edx, word [esp + edx*2 - 2]
cmp edx, 0x2f
je 0x1c42978
cmp edx, 0x5c
jne 0x1c429ac
dec eax
cmp eax, 5
jae 0x1c42bfd
mov byte [esp + 0xb], al
mov edx, ecx
mov word [edx + eax*2], 0
movzx edx, byte [esp + 0xb]
mov ebx, edx
shr bl, 7
mov eax, edx
and eax, 0x7f
test dl, dl
mov esi, dword [esp + 4]
cmovs eax, esi
test eax, eax
jne 0x1c4292d
jmp 0x1c429bf
mov eax, esp
push eax
call fcn.01c41b60
add esp, 4
test al, al
jne 0x1c42a5b
mov ecx, dword [ebp + 0x14]
mov ebx, esp
cmp ebx, ecx
mov edi, 0xffffffff
je 0x1c429ff
cmp byte [ecx + 0xb], 0
movzx eax, byte [esp + 0xb]
js 0x1c42b4b
test al, al
jns 0x1c429ef
push dword [esp + 4]
push dword [esp + 4]
call fcn.01c3e880
jmp 0x1c429ff
mov eax, dword [esp + 8]
mov dword [ecx + 8], eax
movsd xmm0, qword [esp]
movsd qword [ecx], xmm0
lea esi, [esp + 0x28]
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esi + 8], edi
push str.LOCALAPPDATA
push esi
call fcn.01c416b0
add esp, 8
movzx eax, byte [esi + 0xb]
test al, al
jns 0x1c42a27
mov eax, dword [esp + 0x2c]
jmp 0x1c42a2a
and eax, 0x7f
test eax, eax
jne 0x1c42b75
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x1c42af9
cmp byte [esp + 0x33], 0
jns 0x1c42a57
push dword [esp + 0x28]
call fcn.01c92027
add esp, 4
test bl, bl
je 0x1c42a7e
lea edi, [esp + 0x28]
push 0x208
push 0xff
push edi
call fcn.01c95850
add esp, 0xc
cmp byte [esp + 0xb], 0
jns 0x1c42a82
mov eax, dword [esp]
jmp 0x1c42a84
xor ebx, ebx
jmp 0x1c42acf
mov eax, esp
mov esi, dword [ebp + 0x10]
push 0x104
push eax
push edi
call 0x1ca82be
add esp, 0xc
test eax, eax
jne 0x1c42b2e
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], eax
cmp byte [esi + 0xb], 0
jns 0x1c42abc
push dword [esi]
call fcn.01c92027
add esp, 4
mov eax, dword [esp + 0x20]
mov dword [esi + 8], eax
movsd xmm0, qword [esp + 0x18]
movsd qword [esi], xmm0
mov bl, 1
cmp byte [esp + 0xb], 0
jns 0x1c42ae1
push dword [esp]
call fcn.01c92027
add esp, 4
mov ecx, dword [esp + 0x230]
xor ecx, ebp
call fcn.01c92fe3
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, eax
inc edi
mov ecx, esi
push 0
push edi
call fcn.01c70940
cmp byte [esp + 0x33], 0
jns 0x1c42b11
mov esi, dword [esp + 0x28]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
mov ebx, esp
je 0x1c42b44
movzx ecx, byte [esp + 0x33]
test cl, cl
jns 0x1c42b3d
mov ecx, dword [esp + 0x2c]
jmp 0x1c42b40
lea ecx, [esp + 0x18]
push edi
call fcn.01cbdfa0
jmp 0x1c42aac
and ecx, 0x7f
cmp eax, ecx
jb 0x1c42b69
xor ebx, ebx
jmp 0x1c42a44
mov edx, eax
and edx, 0x7f
test al, al
cmovs edx, dword [esp + 4]
mov eax, dword [esp]
cmovns eax, ebx
push edx
push eax
call fcn.01c3e7b0
jmp 0x1c429ff
lea ecx, [esp + 0x28]
push 0
push eax
call fcn.01c70940
mov eax, dword [esp]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x30]
mov dword [esp + 8], esi
movsd xmm0, qword [esp + 0x28]
movsd qword [esp], xmm0
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
movzx ecx, byte [esp + 0xb]
test cl, cl
jns 0x1c42bae
mov eax, dword [esp + 4]
jmp 0x1c42bb3
mov eax, ecx
and eax, 0x7f
test eax, eax
je 0x1c42c1b
test cl, cl
jns 0x1c42bbe
mov ebx, dword [esp]
cmp word [ebx + eax*2 - 2], 0x5c
je 0x1c42bcf
mov ecx, esp
push 0x5c
call fcn.01c70660
mov esi, esp
push esi
push 1
push dword [ebp + 0xc]
call fcn.01c41090
add esp, 0xc
mov ecx, esi
push 0x5c
call fcn.01c70660
mov ecx, esi
push 9
push str.User_Data
call fcn.01c3e510
mov bl, 1
jmp 0x1c42a44
push str.__s_should_never_be_greater_than_or_equal_to_the_short_string_capacity
push str.__s_____min_cap
push 0x6cf
push str....._buildtools_third_partylibc_trunkinclude_string
push str._s:_d:_assertion__s_failed:__s
call fcn.01cbef30
push str.string_index_out_of_bounds
push str.__pos___size__
push 0x45b
jmp 0x1c42c0c
push str.string::back__:_string_is_empty
push str._empty__
push 0x4c8
jmp 0x1c42c0c