Function at 0x4016b0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x405e3d
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
mov eax, dword [0x40a040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x34], esi
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x34], esi
push eax
push 0
push 0
push 0x4072d0
call dword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
test eax, eax
je 0x401727
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
mov edx, str.Error_getting_Local_AppData_path.
call fcn.004044e0
push 0x404700
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
push 0x407369
mov ecx, esi
call fcn.00403d90
jmp 0x40188e
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x28]
call fcn.00403b40
mov dword [ebp - 4], 0
push dword [ebp - 0x2c]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x28]
mov edi, dword [ebp - 0x28]
lea edx, [ebp - 0x28]
cmp eax, 7
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x18]
xorps xmm0, xmm0
cmova ecx, edi
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x30]
cmp eax, 7
mov dword [ebp - 0x34], ecx
cmova edx, edi
mov dword [ebp - 0x30], edx
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
cmp edx, ecx
jne 0x40179a
mov byte [esi], 0
jmp 0x401858
mov edi, ecx
sub edi, edx
sar edi, 1
cmp edi, 0x7fffffff
ja 0x4018ab
cmp edi, 0xf
jbe 0x401824
or edi, 0xf
cmp edi, 0x7fffffff
jbe 0x4017ea
mov ecx, 0x80000000
mov edi, 0x7fffffff
add ecx, 0x23
push ecx
call fcn.00405064
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x40187e
mov edx, dword [ebp - 0x30]
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x40181f
mov eax, 0x16
cmp edi, eax
cmovb edi, eax
lea eax, [edi + 1]
cmp eax, 0x1000
jb 0x40180b
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4018b0
jmp 0x4017c9
test eax, eax
je 0x40181d
push eax
call fcn.00405064
mov edx, dword [ebp - 0x30]
add esp, 4
jmp 0x40181f
xor eax, eax
mov dword [esi], eax
mov dword [esi + 0x14], edi
cmp dword [esi + 0x14], 0xf
mov edi, esi
jbe 0x40182e
mov edi, dword [esi]
mov ecx, dword [esi + 0x10]
mov al, byte [edx]
add edx, 2
mov byte [edi + ecx], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp edx, dword [ebp - 0x34]
jne 0x401824
cmp dword [esi + 0x14], 0xf
mov ecx, esi
jbe 0x40184e
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
cmp eax, 7
jbe 0x40188e
lea ecx, [eax*2 + 2]
mov eax, edi
cmp ecx, 0x1000
jb 0x401884
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x401884
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edi
call fcn.00405099
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00405056
mov esp, ebp
pop ebp
ret
call fcn.00401170
call fcn.004010d0
int3