Function at 0x43f160
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4489e0
mov eax, dword fs:[0]
push eax
sub esp, 0x538
mov eax, dword [0x457040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp - 0x520]
mov ecx, 0x4675c8
mov dword [ebp - 0x518], 0
mov dword [ebp - 0x520], eax
mov dword [ebp - 0x520], 0x467560
mov dword [ebp - 0x51c], 0x467560
mov dword [0x467560], 0x44a5d8
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::constructor_void_]
push 0
push 0
mov dword [ebp - 4], 0
mov ecx, 0x467560
push 0x467564
mov dword [ebp - 0x518], 1
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char_____bool_]
mov dword [ebp - 4], 1
mov eax, dword [0x467560]
mov eax, dword [eax + 4]
mov dword [eax + 0x467560], 0x4501cc
mov eax, dword [0x467560]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ecx + 0x46755c], eax
mov ecx, 0x467564
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void_]
mov ecx, 0x467564
mov dword [0x467564], 0x4501d4
mov byte [0x4675ac], 0
mov byte [0x4675a1], 0
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void_]
mov eax, dword [0x467708]
mov ecx, dword [0x46770c]
mov dword [0x4675b0], 0
mov dword [0x4675a4], eax
mov dword [0x4675a8], ecx
mov dword [0x46759c], 0
push 0x410
lea eax, [ebp - 0x420]
mov dword [ebp - 4], 2
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x420]
push eax
push 0
push 0
push 5
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x43f6eb
xorps xmm0, xmm0
mov dword [ebp - 0x430], 0
lea ecx, [ebp - 0x420]
mov dword [ebp - 0x42c], 0
movups xmmword [ebp - 0x440], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43f2d3
sub ecx, edx
lea eax, [ebp - 0x420]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x440]
call fcn.004151b0
push str.ValidusBot_validus_auto_updater_file.txt
lea ecx, [ebp - 0x440]
mov byte [ebp - 4], 3
call fcn.00415880
cmp dword [ebp - 0x42c], 7
lea eax, [ebp - 0x440]
cmova eax, dword [ebp - 0x440]
cmp dword [0x4675b0], 0
jne 0x43f33a
push 0x40
push 0xa
push eax
call dword [sym.imp.MSVCP140.dll_struct__iobuf____cdecl_std::_Fiopen_wchar_t_const___int__int_]
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x43f35a
mov ecx, dword [0x467560]
add ecx, 4
push 0
push 2
mov ecx, dword [ecx]
add ecx, 0x467560
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool_]
jmp 0x43f47c
mov ecx, 0x467564
mov byte [0x4675ac], 1
mov byte [0x4675a1], 0
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void_]
lea eax, [ebp - 0x424]
mov dword [ebp - 0x518], 0
push eax
lea eax, [ebp - 0x51c]
mov dword [ebp - 0x51c], 0
push eax
lea eax, [ebp - 0x518]
mov dword [ebp - 0x424], 0
push eax
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__get_stream_buffer_pointers]
mov edx, dword [ebp - 0x424]
add esp, 0x10
mov ecx, dword [ebp - 0x51c]
mov eax, dword [ebp - 0x518]
push edx
push ecx
push eax
push edx
push ecx
push eax
mov ecx, 0x467564
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_char____char____int___char____char____int__]
mov eax, dword [0x467708]
mov ecx, dword [0x46770c]
mov dword [0x4675a4], eax
lea eax, [ebp - 0x528]
mov dword [0x4675a8], ecx
mov ecx, 0x467564
push eax
mov dword [0x4675b0], esi
mov dword [0x46759c], 0
call dword [sym.imp.MSVCP140.dll_public:_class_std::locale___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::getloc_void_]
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.00440730
mov esi, eax
mov ecx, esi
call dword [sym.imp.MSVCP140.dll_public:_bool___thiscall_std::codecvt_base::always_noconv_void_const]
test al, al
je 0x43f430
mov dword [0x46759c], 0
jmp 0x43f441
mov ecx, 0x467564
mov dword [0x46759c], esi
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void_]
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x524]
test ecx, ecx
je 0x43f464
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x43f464
mov ecx, dword [eax]
push 1
mov edx, dword [ecx]
mov ecx, eax
call edx
mov eax, dword [0x467560]
push 0
push 0
mov ecx, dword [eax + 4]
add ecx, 0x467560
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::clear_int__bool_]
cmp dword [0x4675b0], 0
je 0x43f6a9
mov edx, str.___Logging_started_at
mov ecx, 0x467560
call fcn.004019d0
push 0
mov esi, eax
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov dword [ebp - 0x428], eax
lea eax, [ebp - 0x428]
push eax
mov dword [ebp - 0x424], edx
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__localtime64]
push 0xb0
push 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x514], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ebp - 0x504], xmm0
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x4f4], eax
lea eax, [ebp - 0x4f0]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0x14
mov dword [ebp - 0x4f0], 0x44a5d8
lea ecx, [ebp - 0x488]
mov dword [ebp - 0x4e0], 0x44a5d0
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::constructor_void_]
push 0
lea eax, [ebp - 0x4d8]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x4f0]
mov dword [ebp - 0x518], 5
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_iostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char____]
mov dword [ebp - 4], 6
mov eax, dword [ebp - 0x4f0]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x4f0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x4f4], eax
lea ecx, [ebp - 0x4d8]
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void_]
mov dword [ebp - method.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov dword [ebp - 0x4a0], 0
mov dword [ebp - 0x49c], 0
mov byte [ebp - 4], 7
lea eax, [ebp - 0x514]
mov dword [ebp - 0x52c], eax
mov eax, str._Y__m__d__H:_M:_S
mov dword [ebp - 0x528], str._Y__m__d__H:_M:_S
mov dword [ebp - 0x524], str._Y__m__d__H:_M:_S
inc eax
cmp byte [eax], 0
jne 0x43f5b3
lea edx, [ebp - 0x52c]
mov dword [ebp - 0x524], eax
lea ecx, [ebp - 0x4e0]
call fcn.004404f0
lea eax, [ebp - 0x544]
push eax
lea ecx, [ebp - 0x4f0]
call fcn.004016f0
mov eax, dword [ebp - 0x4f0]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x4f0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x4f4], eax
lea ecx, [ebp - 0x4d8]
call fcn.004027b0
lea ecx, [ebp - 0x4d0]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x488]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov byte [ebp - 4], 8
lea edx, [ebp - 0x544]
cmp dword [ebp - 0x530], 0xf
mov ecx, esi
push dword [ebp - 0x534]
cmova edx, dword [ebp - 0x544]
call fcn.00401de0
add esp, 4
mov edx, 0x45016c
mov ecx, eax
call fcn.004019d0
push 0x4404c0
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_____]
mov ecx, dword [ebp - 0x530]
cmp ecx, 0xf
jbe 0x43f6a9
mov edx, dword [ebp - 0x544]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x43f69f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x43f69f
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00445a9b
add esp, 8
mov ecx, dword [ebp - 0x42c]
cmp ecx, 7
jbe 0x43f6eb
mov edx, dword [ebp - 0x440]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x43f6e1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x43f6e1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00445a9b
add esp, 8
mov eax, 0x467560
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00445a3a
mov esp, ebp
pop ebp
ret