Function at 0x1c429a0
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 [0x1d15014]
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 0x1c429e3
mov ecx, esp
push dword [eax + 4]
push dword [eax]
call fcn.01c3e110
jmp 0x1c429f3
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.01cbf900
xor edi, edi
push esi
push edi
push dword [ebp + 0xc]
call fcn.01c41250
add esp, 0xc
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], edi
cmp byte [esi + 0xb], 0
jns 0x1c42a30
mov esi, dword [esp + 0x28]
lea ebx, [esp + 0x18]
push ebx
push str.UserDataDir
push esi
push edi
push 1
call fcn.01c40e60
add esp, 0x14
test al, al
jne 0x1c42a72
cmp byte [esp + 0x33], 0
jns 0x1c42a57
mov eax, dword [esp + 0x28]
jmp 0x1c42a5b
lea eax, [esp + 0x28]
push ebx
push str.UserDataDir
push eax
push 0
push 2
call fcn.01c40e60
add esp, 0x14
test al, al
je 0x1c42aa5
lea eax, [esp + 0xc]
push ebx
push eax
call fcn.01c4b050
add esp, 8
cmp byte [esp + 0xb], 0
jns 0x1c42a92
push dword [esp]
call fcn.01c92c47
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 0x1c42ab8
push dword [esp + 0x18]
call fcn.01c92c47
add esp, 4
cmp byte [esp + 0x33], 0
jns 0x1c42acb
push dword [esp + 0x28]
call fcn.01c92c47
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 0x1c42b7f
mov ebx, edx
shr bl, 7
mov ecx, esp
test bl, 1
je 0x1c42b1e
test esi, esi
je 0x1c42dec
mov edx, dword [esp]
movzx edx, word [edx + esi*2 - 2]
cmp edx, 0x2f
je 0x1c42b0f
cmp edx, 0x5c
jne 0x1c42b6c
dec eax
jmp 0x1c42b15
dec eax
test bl, 1
je 0x1c42b39
mov edx, dword [esp]
mov dword [esp + 4], eax
jmp 0x1c42b48
test dl, dl
je 0x1c42dec
movzx edx, dl
movzx edx, word [esp + edx*2 - 2]
cmp edx, 0x2f
je 0x1c42b38
cmp edx, 0x5c
jne 0x1c42b6c
dec eax
cmp eax, 5
jae 0x1c42dbd
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 0x1c42aed
jmp 0x1c42b7f
mov eax, esp
push eax
call fcn.01c41d20
add esp, 4
test al, al
jne 0x1c42c1b
mov ecx, dword [ebp + 0x14]
mov ebx, esp
cmp ebx, ecx
mov edi, 0xffffffff
je 0x1c42bbf
cmp byte [ecx + 0xb], 0
movzx eax, byte [esp + 0xb]
js 0x1c42d0b
test al, al
jns 0x1c42baf
push dword [esp + 4]
push dword [esp + 4]
call fcn.01c3ea40
jmp 0x1c42bbf
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.01c41870
add esp, 8
movzx eax, byte [esi + 0xb]
test al, al
jns 0x1c42be7
mov eax, dword [esp + 0x2c]
jmp 0x1c42bea
and eax, 0x7f
test eax, eax
jne 0x1c42d35
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x1c42cb9
cmp byte [esp + 0x33], 0
jns 0x1c42c17
push dword [esp + 0x28]
call fcn.01c92c47
add esp, 4
test bl, bl
je 0x1c42c3e
lea edi, [esp + 0x28]
push 0x208
push 0xff
push edi
call fcn.01c96470
add esp, 0xc
cmp byte [esp + 0xb], 0
jns 0x1c42c42
mov eax, dword [esp]
jmp 0x1c42c44
xor ebx, ebx
jmp 0x1c42c8f
mov eax, esp
mov esi, dword [ebp + 0x10]
push 0x104
push eax
push edi
call fcn.01ca9c1e
add esp, 0xc
test eax, eax
jne 0x1c42cee
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], eax
cmp byte [esi + 0xb], 0
jns 0x1c42c7c
push dword [esi]
call fcn.01c92c47
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 0x1c42ca1
push dword [esp]
call fcn.01c92c47
add esp, 4
mov ecx, dword [esp + 0x230]
xor ecx, ebp
call fcn.01c93c03
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.01c711d0
cmp byte [esp + 0x33], 0
jns 0x1c42cd1
mov esi, dword [esp + 0x28]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
mov ebx, esp
je 0x1c42d04
movzx ecx, byte [esp + 0x33]
test cl, cl
jns 0x1c42cfd
mov ecx, dword [esp + 0x2c]
jmp 0x1c42d00
lea ecx, [esp + 0x18]
push edi
call fcn.01cbf900
jmp 0x1c42c6c
and ecx, 0x7f
cmp eax, ecx
jb 0x1c42d29
xor ebx, ebx
jmp 0x1c42c04
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.01c3e970
jmp 0x1c42bbf
lea ecx, [esp + 0x28]
push 0
push eax
call fcn.01c711d0
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 0x1c42d6e
mov eax, dword [esp + 4]
jmp 0x1c42d73
mov eax, ecx
and eax, 0x7f
test eax, eax
je 0x1c42ddb
test cl, cl
jns 0x1c42d7e
mov ebx, dword [esp]
cmp word [ebx + eax*2 - 2], 0x5c
je 0x1c42d8f
mov ecx, esp
push 0x5c
call fcn.01c70ef0
mov esi, esp
push esi
push 1
push dword [ebp + 0xc]
call fcn.01c41250
add esp, 0xc
mov ecx, esi
push 0x5c
call fcn.01c70ef0
mov ecx, esi
push 9
push str.User_Data
call fcn.01c3e6d0
mov bl, 1
jmp 0x1c42c04
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.01cc0890
push str.string_index_out_of_bounds
push str.__pos___size__
push 0x45b
jmp 0x1c42dcc
push str.string::back__:_string_is_empty
push str._empty__
push 0x4c8
jmp 0x1c42dcc