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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x20], rdi
mov dword [rax + 0x18], r8d
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x2c48]
mov eax, 0x2d20
call fcn.14007edb0
sub rsp, rax
mov eax, dword [0x1400b6a60]
mov r14, r9
mov rsi, rdx
inc eax
mov r12, rcx
mov dword [0x1400b6a60], eax
cmp eax, 0x30
jl 0x14000aef3
mov rax, qword [rbp + 0x2c70]
mov r8d, dword [rbp + 0x2c78]
lea r9, str.include_depth_exceeded.__Make_sure_there_are_no_recursive_includes
mov rdx, r14
mov qword [rsp + 0x20], rax
call fcn.14000a29c
dec dword [0x1400b6a60]
xor al, al
jmp 0x14000b2ad
xor ebx, ebx
lea rcx, [rsp + 0x40]
mov r13b, 1
mov edi, ebx
mov byte [rsp + 0x30], r13b
mov r15b, bl
call fcn.1400104b0
lea rcx, [rbp - 0x68]
mov rdx, rsi
call fcn.140001c28
lea rdx, [rbp - 0x68]
lea rcx, [rsp + 0x40]
mov r8d, 0x2000
call fcn.1400104f8
lea rcx, [rbp - 0x68]
test al, al
sete bl
call fcn.140001d20
test bl, bl
je 0x14000af6d
mov rax, qword [rbp + 0x2c70]
mov r8d, dword [rbp + 0x2c78]
lea r9, str.Error_opening_the_file
mov rdx, r14
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.14000a29c
xor ebx, ebx
mov r13b, bl
jmp 0x14000b274
mov ebx, 0x104
lea rdx, [rbp + 0x5f0]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea r9, [rbp - 0x70]
lea r8, [rbp - 0x40]
mov edx, ebx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
lea r11, [rbp + 0x2a10]
lea r9, [rbp + 0x2800]
lea r8, [rbp + 0x3e0]
lea rdx, [rsp + 0x38]
lea rcx, [rbp - 0x40]
mov qword [rsp + 0x20], r11
call fcn.140070abc
lea rdx, [rsp + 0x38]
lea rcx, [rbp + 0x1d0]
call fcn.14006f74c
lea rdx, [rbp + 0x3e0]
lea rcx, [rbp + 0x1d0]
call fcn.14006f720
lea rcx, [rbp + 0x1d0]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov al, byte [rsp + 0x30]
cmp al, 1
jne 0x14000b255
lea rdx, [rbp + 0x800]
lea rcx, [rsp + 0x40]
call fcn.140010c60
test al, al
je 0x14000b255
lea rcx, [rbp + 0x800]
inc edi
mov dword [rsp + 0x34], edi
call fcn.14000ac58
xor ecx, ecx
cmp word [rbp + 0x800], 0x23
mov ebx, ecx
lea rsi, [rbp + 0x800]
jne 0x14000b060
lea r8d, [rcx + 8]
lea rdx, str.include
lea rcx, [rbp + 0x800]
call fcn.14007038c
xor ecx, ecx
test eax, eax
je 0x14000b060
lea ebx, [rcx + 3]
lea rsi, [rbp + 0x802]
cmp word [rsi], cx
je 0x14000b0af
mov edx, 2
movzx eax, word [rsi]
cmp eax, 0x22
je 0x14000b09a
cmp eax, 0x27
je 0x14000b08a
cmp eax, 0x3b
jne 0x14000b0a7
test ebx, ebx
je 0x14000b085
cmp ebx, 3
jne 0x14000b0a7
mov word [rsi], cx
jmp 0x14000b0bc
cmp ebx, 1
je 0x14000b09e
test ebx, ebx
jne 0x14000b0a7
mov ebx, 1
jmp 0x14000b0a7
cmp ebx, edx
jne 0x14000b0a2
mov ebx, ecx
jmp 0x14000b0a7
test ebx, ebx
cmove ebx, edx
add rsi, rdx
cmp word [rsi], cx
jne 0x14000b06a
test ebx, ebx
je 0x14000b0bc
cmp ebx, 3
jne 0x14000b22f
lea rcx, [rbp + 0x800]
call fcn.14006f364
xor ebx, ebx
test eax, eax
je 0x14000b0dc
lea rcx, [rbp + 0x800]
mov edx, eax
call fcn.14000abe8
lea rcx, [rbp + 0x800]
mov sil, bl
call fcn.14006f364
mov ecx, 2
cmp eax, ecx
jle 0x14000b128
movsxd rbx, eax
movzx ecx, word [rbp + rbx*2 + 0x7fc]
and cx, 0x7f
call fcn.14007015c
xor r11d, r11d
test eax, eax
je 0x14000b126
cmp word [rbp + rbx*2 + 0x7fe], 0x5f
jne 0x14000b126
mov word [rbp + rbx*2 + 0x7fe], r11w
mov sil, 1
xor ebx, ebx
cmp r15b, 1
jne 0x14000b1b2
cmp dword [r12 + 0x20], ebx
je 0x14000b218
mov rcx, qword [r12 + 0x18]
mov rcx, qword [rcx]
call fcn.14006f364
lea rcx, [rbp + 0x800]
mov rbx, rax
call fcn.14006f364
lea rcx, [rax + rbx + 1]
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.14006f7d8
mov rdx, qword [r12 + 0x18]
mov rdx, qword [rdx]
mov rcx, rax
mov rbx, rax
call fcn.14006f74c
lea rdx, [rbp + 0x800]
mov rcx, rbx
call fcn.14006f720
mov rcx, qword [r12 + 0x18]
mov rcx, qword [rcx]
call fcn.14006f380
mov r11, qword [r12 + 0x18]
mov qword [r11], rbx
jmp 0x14000b218
lea rax, [rsp + 0x40]
lea r9, [rsp + 0x34]
lea r8, [rbp - 0x40]
lea rdx, [rbp + 0x800]
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.14000b2d0
test eax, eax
je 0x14000b211
cmp eax, 1
jle 0x14000b214
cmp eax, 3
jle 0x14000b1f3
cmp eax, 4
jne 0x14000b214
mov edi, dword [rsp + 0x34]
mov al, bl
mov byte [rsp + 0x30], bl
jmp 0x14000b21c
mov edi, dword [rsp + 0x34]
mov r9d, dword [rbp + 0x2c60]
lea r8, [rbp + 0x800]
mov edx, edi
mov rcx, r12
call fcn.14000a65c
jmp 0x14000b218
mov r13b, bl
mov edi, dword [rsp + 0x34]
mov al, byte [rsp + 0x30]
cmp sil, 1
sete r15b
cmp r13b, 1
jne 0x14000b255
jmp 0x14000aff1
lea rax, [rbp + 0x800]
lea r9, str.Unterminated_string
mov r8d, edi
mov rdx, r14
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.14000a29c
xor ebx, ebx
mov r13b, bl
lea rcx, [rsp + 0x40]
call fcn.140010f88
lea rcx, [rbp + 0x5f0]
mov qword [rbp - 0x7c], 0
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea rcx, [rsp + 0x40]
call fcn.140010f88
lea rcx, [rsp + 0x60]
mov qword [rbp - 0x7c], 0
call fcn.140001d20
lea rcx, [rsp + 0x40]
call fcn.140010f88
mov rcx, qword [rsp + 0x48]
call fcn.14006f380
dec dword [0x1400b6a60]
mov al, r13b
lea r11, [rsp + 0x2d20]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret