Function at 0x140025110
Capabilities:
Check if file exists
Get common file path
Get file attributes

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xd0]
sub rsp, 0x1d0
mov rdi, rdx
mov rsi, rcx
xor r13d, r13d
mov dword [rbp + 0x120], r13d
mov r12b, 1
mov qword [rbp + 0x128], r13
lea r9, [rbp + 0x128]
xor r8d, r8d
xor edx, edx
lea rcx, [0x1400b3970]
call sub.SHELL32.dll_SHGetKnownFolderPath
mov qword [rsp + 0x20], r13
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], 7
mov word [rsp + 0x20], r13w
mov rdx, qword [rbp + 0x128]
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp word [rdx + r8*2], r13w
jne 0x140025190
lea rcx, [rsp + 0x20]
call fcn.14000ad50
nop
mov r8d, 0x10
lea rdx, str.Tempexploit.py
lea rcx, [rsp + 0x20]
call fcn.1400272a0
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x70], r13
mov qword [rsp + 0x78], r13
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x70], xmm1
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], 7
mov word [rax], r13w
mov rdx, qword [rsp + 0x38]
cmp rdx, 8
jb 0x14002522e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140025229
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140025803
call fcn.14007bbb4
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], 7
mov word [rsp + 0x20], r13w
lea rcx, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140025292
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x58], 7
mov r8d, 0x19
lea rdx, str.Copied_.py_file_not_found
lea rcx, [rsp + 0x40]
call fcn.14000ad50
lea rcx, [rsp + 0x40]
call fcn.14000a500
lea rcx, [0x140000000]
lea rax, [rcx + 0xa7ca0]
mov qword [rbp - 0x70], rax
lea rax, [rcx + 0xa7ca8]
mov qword [rbp - 0x60], rax
mov qword [rbp + 0x30], r13
mov qword [rbp + 0x58], r13
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x60], xmm0
lea rax, vtable.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.0
mov qword [rbp + 0x28], rax
mov dword [rbp + 0x120], 3
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp - 0x58]
lea rcx, [rbp - 0x70]
call fcn.14000bf20
nop
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__.0
mov qword [rbp + rcx - 0x60], rax
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rbp + rcx - 0x64], edx
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_iostream_wchar_t__struct_std::char_traits_wchar_t__.0
mov qword [rbp + rcx - 0x70], rax
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x20]
mov dword [rbp + rcx - 0x74], edx
mov rax, qword [rbp - 0x70]
movsxd rdx, dword [rax + 4]
lea rax, vtable.std::basic_stringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov qword [rbp + rdx - 0x70], rax
mov rax, qword [rbp - 0x70]
movsxd rdx, dword [rax + 4]
lea r8d, [rdx - 0x98]
mov dword [rbp + rdx - 0x74], r8d
lea rax, vtable.std::basic_streambuf_wchar_t__struct_std::char_traits_wchar_t__.0
mov qword [rbp - 0x58], rax
mov ecx, 0x10
call fcn.14007bb78
mov rbx, rax
test rax, rax
je 0x140025380
mov cl, 1
call fcn.14007a170
mov qword [rbx + 8], rax
jmp 0x140025383
mov rbx, r13
mov qword [rbp + 8], rbx
lea rax, [rbp - 0x50]
mov qword [rbp - 0x40], rax
lea rax, [rbp - 0x48]
mov qword [rbp - 0x38], rax
lea rax, [rbp - 0x30]
mov qword [rbp - 0x20], rax
lea rax, [rbp - 0x28]
mov qword [rbp - 0x18], rax
lea rax, [rbp - 0x10]
mov qword [rbp - 8], rax
lea rax, [rbp - 0xc]
mov qword [rbp], rax
mov qword [rbp - 0x48], r13
mov qword [rbp - 0x28], r13
mov qword [rbp - 0x10], r13
mov qword [rbp - 0x50], r13
mov qword [rbp - 0x30], r13
lea rax, vtable.std::basic_stringbuf_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov qword [rbp - 0x58], rax
mov qword [rbp + 0x10], r13
mov dword [rbp + 0x18], r13d
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
mov eax, dword [rbp + rcx - 0x48]
and eax, 0xfffff9ff
bts eax, 0xb
mov dword [rbp + rcx - 0x48], eax
mov rdx, rsi
lea rcx, [rbp - 0x60]
call fcn.14000d580
mov rcx, rax
lea rdx, [0x1400a7b00]
call fcn.14000b160
mov r8, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
mov eax, dword [rcx + r8 + 0x18]
and eax, 0xfffff9ff
bts eax, 0xb
mov dword [rcx + r8 + 0x18], eax
mov rdx, rdi
mov rcx, r8
call fcn.14000d580
nop
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], r13w
mov dword [rbp + 0x120], 0x23
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], rax
mov ecx, dword [rbp + 0x18]
mov eax, ecx
and al, 0x22
cmp al, 2
je 0x14002549c
mov rax, qword [rbp - 0x18]
mov r8, qword [rax]
test r8, r8
je 0x14002549c
mov rax, qword [rbp - 0x38]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0x10]
cmovb r8, qword [rbp + 0x10]
sub r8, rdx
sar r8, 1
jmp 0x1400254d3
test cl, 4
jne 0x1400254c9
mov rax, qword [rbp - 0x20]
mov rcx, qword [rax]
test rcx, rcx
je 0x1400254c9
mov rax, qword [rbp - 0x40]
mov rdx, qword [rax]
mov rax, qword [rbp - 8]
movsxd r8, dword [rax]
add r8, r8
sub r8, rdx
add r8, rcx
sar r8, 1
jmp 0x1400254d3
mov r8, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x20]
test rdx, rdx
je 0x1400254e3
lea rcx, [rsp + 0x40]
call fcn.14000ad50
nop
mov r14, qword [rsp + 0x70]
movabs rcx, 0x7ffffffffffffffe
mov rax, rcx
sub rax, r14
cmp rax, 7
jb 0x140025809
lea r15, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae r15, qword [rsp + 0x60]
mov qword [rsp + 0x20], r13
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], r13
lea rsi, [r14 + 7]
mov edi, 7
lea rbx, [rsp + 0x20]
cmp rsi, rdi
jbe 0x1400255c3
mov rdi, rsi
or rdi, 7
cmp rdi, rcx
jbe 0x140025551
mov rdi, rcx
mov rcx, 0xfffffffffffffffe
jmp 0x140025580
mov eax, 0xa
cmp rdi, rax
cmovb rdi, rax
lea rcx, [rdi + 1]
movabs rax, 0x7fffffffffffffff
cmp rcx, rax
ja 0x140025815
add rcx, rcx
cmp rcx, 0x1000
jb 0x1400255ac
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140025815
mov rcx, rax
call fcn.14007bb78
test rax, rax
je 0x14002581b
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x1400255be
test rcx, rcx
je 0x1400255bb
call fcn.14007bb78
mov rbx, rax
jmp 0x1400255be
mov rbx, r13
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rdi
movsd xmm0, qword [str.python]
movsd qword [rbx], xmm0
mov eax, dword [0x1400a7d18]
mov dword [rbx + 8], eax
movzx eax, word [0x1400a7d1c]
mov word [rbx + 0xc], ax
lea rcx, [rbx + 0xe]
lea r8, [r14 + r14]
mov rdx, r15
call fcn.14007dab0
mov word [rbx + rsi*2], r13w
mov r8d, 1
lea rdx, [0x1400a7b00]
lea rcx, [rsp + 0x20]
call fcn.1400272a0
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x90], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xa0], xmm1
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], 7
mov word [rax], r13w
lea r9, [rsp + 0x40]
lea r8, [rbp + 0x90]
movzx edx, byte [rbp + 0x120]
lea rcx, [rbp + 0xb0]
call fcn.14000c1d0
lea rcx, [rbp + 0xb0]
call fcn.140006c00
test al, al
sete bl
mov rdx, qword [rbp + 0xa8]
cmp rdx, 8
jb 0x1400256b5
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x90]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400256af
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002580f
call fcn.14007bbb4
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, 8
jb 0x1400256f7
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400256f2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002581b
call fcn.14007bbb4
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], 7
mov word [rsp + 0x20], r13w
mov rdx, qword [rsp + 0x58]
cmp rdx, 8
jb 0x14002574d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140025748
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140025821
call fcn.14007bbb4
test bl, bl
je 0x140025788
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x58], 7
mov r8d, 0x34
lea rdx, str.Failed_to_write_data._Check_if_Python_3_is_installed
lea rcx, [rsp + 0x40]
call fcn.14000ad50
lea rcx, [rsp + 0x40]
call fcn.14000a500
xor r12b, r12b
mov rcx, qword [rbp + 0x128]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop
lea rcx, [rbp - 0x70]
call fcn.14000d7a0
nop
mov rdx, qword [rsp + 0x78]
cmp rdx, 8
jb 0x1400257de
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400257d9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400257fd
call fcn.14007bbb4
movzx eax, r12b
mov rbx, qword [rsp + 0x210]
add rsp, 0x1d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140082148
nop
call fcn.140082148
nop
call fcn.14000acc0
nop
call fcn.140082148
nop
call fcn.14000aca0
int3
call fcn.140082148
nop
call fcn.140082148
int3