Function at 0x501080
Capabilities:
Get common file path

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2c8
xor eax, eax
mov r12, rcx
lea rdi, [rsp + 0xc0]
mov ecx, 0x3f
movzx r9d, r8b
rep stosq qword [rdi], rax
mov r8d, edx
lea r13, [rsp + 0xb0]
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
mov rdx, r13
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x5011a8
mov rcx, r13
lea rbx, [rsp + 0x50]
call sym.wcslen
mov r8, r13
xor edx, edx
mov ecx, 0xfde9
mov r9d, eax
mov dword [rsp + 0x28], 0
mov rsi, qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x20], 0
call rsi
xor r8d, r8d
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x40], rbx
movsxd rdx, eax
mov rdi, rdx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_unsigned_long_long__char_
mov rbp, qword [rsp + 0x40]
mov rcx, r13
call sym.wcslen
mov dword [rsp + 0x28], edi
mov r8, r13
xor edx, edx
mov qword [rsp + 0x20], rbp
mov r9d, eax
mov ecx, 0xfde9
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
call rsi
lea rax, [r12 + 0x10]
mov qword [r12], rax
mov rax, qword [rsp + 0x40]
cmp rax, rbx
je 0x501340
mov qword [r12], rax
mov rax, qword [rsp + 0x50]
mov qword [r12 + 0x10], rax
mov rax, qword [rsp + 0x48]
mov qword [r12 + 8], rax
jmp 0x5012d6
lea r13, [rsp + 0x40]
lea rax, str._home_biz_blur_src_common_util.cpp
mov edx, 1
mov dword [rsp + 0x48], 0x10
mov qword [rsp + 0x50], rax
lea rax, str.std::string_tools::get_special_folder_path_int__bool_
lea rbx, method.el::base::Writer.Writer__
mov rcx, r13
mov qword [rsp + 0x60], rax
xor eax, eax
lea r8, str.net.http
mov word [rsp + 0x68], ax
lea rax, [0x008a8997]
mov qword [rsp + 0x40], rbx
mov dword [rsp + 0x58], 0x205
mov qword [rsp + 0x70], 0
mov byte [rsp + 0x78], 0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x90], 2
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
call method.el::base::Writer.construct_int__char_const__..._
cmp byte [rax + 0x38], 0
mov rdi, rax
jne 0x5012f0
mov rcx, r13
mov qword [rsp + 0x40], rbx
call method.el::base::Writer.processDispatch__
mov rdi, qword [rsp + 0xa0]
mov r13, qword [rsp + 0x98]
cmp rdi, r13
je 0x5012ab
nop dword [rax + rax]
mov rcx, qword [r13]
lea rax, [r13 + 0x10]
cmp rcx, rax
je 0x50129a
call sym.operator_delete_void_
add r13, 0x20
cmp rdi, r13
jne 0x501288
mov r13, qword [rsp + 0x98]
test r13, r13
je 0x5012b8
mov rcx, r13
call sym.operator_delete_void_
lea rax, [r12 + 0x10]
lea r8, [0x008a8997]
xor r9d, r9d
mov rcx, r12
mov qword [r12], rax
mov rdx, r8
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char_const__char_const__char_const__std::forward_iterator_tag_
mov rax, r12
add rsp, 0x2c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov rax, qword [rax + 0x40]
mov r8d, 0x42
lea rdx, str.SHGetSpecialFolderPathW___failed__could_not_obtain_requested_path.
lea rcx, [rax + 0x78]
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov rax, qword [0x00939c20]
mov rax, qword [rax]
test byte [rax + 0x49], 0x20
je 0x501261
mov rcx, qword [rdi + 0x40]
mov r8d, 1
lea rdx, [0x008a8922]
add rcx, 0x78
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
jmp 0x501261
movdqu xmm0, xmmword [rsp + 0x50]
movups xmmword [r12 + 0x10], xmm0
jmp 0x501196