// File: lunasorcery[P]succ/main.cpp
// Function: handleFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
static void handleFile(const std::string& file)
{
	const std::vector<std::string> lines = getFileLines(file);

	for (size_t i = 0; i < lines.size(); ++i) {
		const int lineNum = i+1;
		const std::string& line = lines[i];

		if (size_t pos = line.find("std::filesystem"); pos != std::string::npos) {
			fprintf(stderr, "%s%s:%d:%zu %serror:%s std::filesystem is unavailable: introduced in macOS 11.19%s\n", gColorBrightDefault, file.c_str(), lineNum, pos+1, gColorBrightRed, gColorBrightDefault, gColorReset);
			fprintf(stderr, "%s\n", replaceTabsWithSpaces(line).c_str());
			fprintf(stderr, "%s%s^%s%s\n", repeatChar(' ', computePositionAccountingForTabs(line, pos)).c_str(), gColorBrightGreen, repeatChar('~', 14).c_str(), gColorReset);
		}

		if (size_t pos = line.find("#include <C++>"); pos != std::string::npos) {
			fprintf(stderr, "%s%s:%d:%zu %sawesome:%s Heck yeah, inclusivity!%s\n", gColorBrightDefault, file.c_str(), lineNum, pos+1, gColorBrightGreen, gColorBrightDefault, gColorReset);
			fprintf(stderr, "%s\n", replaceTabsWithSpaces(line).c_str());
			fprintf(stderr, "%s%s^%s%s\n", repeatChar(' ', computePositionAccountingForTabs(line, pos)).c_str(), gColorBrightGreen, repeatChar('~', 13).c_str(), gColorReset);
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1d0, %rsp            # imm = 0x1D0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rsi
leaq -0x20(%rbp), %rdi
callq 0x6870
movq $0x0, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x120(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x244b0
movq %rax, %rcx
movq -0x120(%rbp), %rax
cmpq %rcx, %rax
jae 0x6164
movq -0x28(%rbp), %rax
addq $0x1, %rax
movl %eax, -0x2c(%rbp)
movq -0x28(%rbp), %rsi
leaq -0x20(%rbp), %rdi
callq 0x32910
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
leaq 0x2f329(%rip), %rsi     # 0x350ab
xorl %eax, %eax
movl %eax, %edx
callq 0x32930
movq %rax, -0x40(%rbp)
cmpq $-0x1, -0x40(%rbp)
je 0x5f65
movq 0x4721f(%rip), %rax     # 0x4cfc0
movq %rax, -0x130(%rbp)
movq (%rax), %rax
movq %rax, -0x140(%rbp)
movq 0x47927(%rip), %rax     # 0x4d6e0
movq %rax, -0x138(%rbp)
movq -0x8(%rbp), %rdi
callq 0x7770
movq -0x140(%rbp), %rdi
movq -0x138(%rbp), %rdx
movq %rax, %rcx
movl -0x2c(%rbp), %r8d
movq -0x40(%rbp), %r9
incq %r9
movq 0x478dc(%rip), %rsi     # 0x4d6c8
movq 0x478ed(%rip), %r10     # 0x4d6e0
movq 0x478d6(%rip), %r11     # 0x4d6d0
movq %rsp, %rax
movq %r11, 0x10(%rax)
movq %r10, 0x8(%rax)
movq %rsi, (%rax)
leaq 0x2f2ac(%rip), %rsi     # 0x350bb
xorl %eax, %eax
callq 0x5360
movq -0x130(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x128(%rbp)
movq -0x38(%rbp), %rsi
leaq -0x60(%rbp), %rdi
callq 0x6a00
jmp 0x5e36
leaq -0x60(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0x7770
movq -0x128(%rbp), %rdi
movq %rax, %rdx
leaq 0x2f302(%rip), %rsi     # 0x35159
xorl %eax, %eax
callq 0x5360
movq -0x158(%rbp), %rdi
callq 0x6df0
movq 0x4714f(%rip), %rax     # 0x4cfc0
movq (%rax), %rax
movq %rax, -0x150(%rbp)
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x6bd0
movq %rax, -0x148(%rbp)
jmp 0x5e91
movq -0x148(%rbp), %rdx
leaq -0x90(%rbp), %rdi
movl $0x20, %esi
callq 0x6b20
jmp 0x5eab
leaq -0x90(%rbp), %rdi
callq 0x7770
movq %rax, -0x168(%rbp)
movq 0x47823(%rip), %rax     # 0x4d6e8
movq %rax, -0x160(%rbp)
leaq -0xb0(%rbp), %rdi
movl $0x7e, %esi
movl $0xe, %edx
callq 0x6b20
jmp 0x5ee4
leaq -0xb0(%rbp), %rdi
callq 0x7770
movq -0x150(%rbp), %rdi
movq -0x168(%rbp), %rdx
movq -0x160(%rbp), %rcx
movq %rax, %r8
movq 0x477c1(%rip), %r9      # 0x4d6d0
leaq 0x2f1f9(%rip), %rsi     # 0x3510f
movb $0x0, %al
callq 0x5360
leaq -0xb0(%rbp), %rdi
callq 0x6df0
leaq -0x90(%rbp), %rdi
callq 0x6df0
jmp 0x5f65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x6176
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x6df0
jmp 0x6176
movq -0x38(%rbp), %rdi
leaq 0x2f1aa(%rip), %rsi     # 0x3511a
xorl %eax, %eax
movl %eax, %edx
callq 0x32930
movq %rax, -0xb8(%rbp)
cmpq $-0x1, -0xb8(%rbp)
je 0x6151
movq 0x4702b(%rip), %rax     # 0x4cfc0
movq %rax, -0x178(%rbp)
movq (%rax), %rax
movq %rax, -0x188(%rbp)
movq 0x47733(%rip), %rax     # 0x4d6e0
movq %rax, -0x180(%rbp)
movq -0x8(%rbp), %rdi
callq 0x7770
movq -0x188(%rbp), %rdi
movq -0x180(%rbp), %rdx
movq %rax, %rcx
movl -0x2c(%rbp), %r8d
movq -0xb8(%rbp), %r9
incq %r9
movq 0x47705(%rip), %rsi     # 0x4d6e8
movq 0x476f6(%rip), %r10     # 0x4d6e0
movq 0x476df(%rip), %r11     # 0x4d6d0
movq %rsp, %rax
movq %r11, 0x10(%rax)
movq %r10, 0x8(%rax)
movq %rsi, (%rax)
leaq 0x2f123(%rip), %rsi     # 0x35129
xorl %eax, %eax
callq 0x5360
movq -0x178(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x170(%rbp)
movq -0x38(%rbp), %rsi
leaq -0xd8(%rbp), %rdi
callq 0x6a00
jmp 0x6030
leaq -0xd8(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
callq 0x7770
movq -0x170(%rbp), %rdi
movq %rax, %rdx
leaq 0x2f105(%rip), %rsi     # 0x35159
xorl %eax, %eax
callq 0x5360
movq -0x1a0(%rbp), %rdi
callq 0x6df0
movq 0x46f52(%rip), %rax     # 0x4cfc0
movq (%rax), %rax
movq %rax, -0x198(%rbp)
movq -0x38(%rbp), %rdi
movq -0xb8(%rbp), %rsi
callq 0x6bd0
movq %rax, -0x190(%rbp)
jmp 0x6091
movq -0x190(%rbp), %rdx
leaq -0xf8(%rbp), %rdi
movl $0x20, %esi
callq 0x6b20
jmp 0x60ab
leaq -0xf8(%rbp), %rdi
callq 0x7770
movq %rax, -0x1b0(%rbp)
movq 0x47623(%rip), %rax     # 0x4d6e8
movq %rax, -0x1a8(%rbp)
leaq -0x118(%rbp), %rdi
movl $0x7e, %esi
movl $0xd, %edx
callq 0x6b20
jmp 0x60e4
leaq -0x118(%rbp), %rdi
callq 0x7770
movq -0x198(%rbp), %rdi
movq -0x1b0(%rbp), %rdx
movq -0x1a8(%rbp), %rcx
movq %rax, %r8
movq 0x475c1(%rip), %r9      # 0x4d6d0
leaq 0x2eff9(%rip), %rsi     # 0x3510f
movb $0x0, %al
callq 0x5360
leaq -0x118(%rbp), %rdi
callq 0x6df0
leaq -0xf8(%rbp), %rdi
callq 0x6df0
jmp 0x6151
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x6df0
jmp 0x6176
jmp 0x6153
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x5d34
leaq -0x20(%rbp), %rdi
callq 0x6c70
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbp
retq
leaq -0x20(%rbp), %rdi
callq 0x6c70
movq -0x68(%rbp), %rdi
callq 0x5430
nopl (%rax,%rax)