// File: /workspace/github_cpp_makefile_star2_O1/ksherlock[P]wdc-utils/zrdz_disassembler.cpp
// Function: zrdz_disassembler::print_section(zrdz_disassembler::entry const&)
void zrdz_disassembler::print_section(const entry &e) {
	std::string attr;
	bool comma = false;


	if (e.processed || e.number < 5) {
		emit("", e.name);
		return;
	}

	if (e.flags & SEC_OFFSET) {
		if (comma) attr += ", ";
		attr += "SEC_OFFSET $";
		attr += to_x(e.org, 4);
		comma = true;
	}
	if (e.flags & SEC_INDIRECT) {
		if (comma) attr += ", ";
		attr += "SEC_INDIRECT $";
		attr += to_x(e.org, 4);
		comma = true;
	}
#define _(x) if (e.flags & x) { if (comma) attr += ", "; attr += #x; comma = true; }
	_(SEC_STACKED)
	_(SEC_REF_ONLY)
	_(SEC_CONST)
	_(SEC_DIRECT)
	_(SEC_NONAME)
	_(SEC_DATA)
#undef _

	emit(e.name, "section", attr);
	putchar('\n');
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x48, %rsp
movq %rsi, %rbx
leaq 0x38(%rsp), %r14
movq %r14, -0x10(%r14)
movq $0x0, -0x8(%r14)
movb $0x0, (%r14)
cmpb $0x0, 0x2c(%rsi)
jne 0xa75b
cmpb $0x4, 0x20(%rbx)
jbe 0xa75b
testb $0x1, 0x21(%rbx)
jne 0xa7a5
xorl %ebp, %ebp
jmp 0xa7fc
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4bd9(%rip), %rdx      # 0xf344
leaq 0x8(%rsp), %rdi
movq %rdx, %rsi
callq 0x6b90
leaq 0x8(%rsp), %rdi
movq %rbx, %rsi
callq 0x766e
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0xa9e0
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21c0
jmp 0xa9e0
leaq 0x55c6(%rip), %rsi      # 0xfd72
leaq 0x28(%rsp), %rdi
callq 0x2320
movl 0x28(%rbx), %esi
leaq 0x8(%rsp), %rdi
movl $0x4, %edx
xorl %ecx, %ecx
callq 0x7538
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x28(%rsp), %rdi
callq 0x2090
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa7f9
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21c0
movb $0x1, %bpl
testb $0x2, 0x21(%rbx)
je 0xa86f
testb %bpl, %bpl
je 0xa818
leaq 0x4a04(%rip), %rsi      # 0xf212
leaq 0x28(%rsp), %rdi
callq 0x2320
leaq 0x5560(%rip), %rsi      # 0xfd7f
leaq 0x28(%rsp), %rdi
callq 0x2320
movl 0x28(%rbx), %esi
leaq 0x8(%rsp), %rdi
movl $0x4, %edx
xorl %ecx, %ecx
callq 0x7538
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x28(%rsp), %rdi
callq 0x2090
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa86c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21c0
movb $0x1, %bpl
testb $0x4, 0x21(%rbx)
je 0xa89f
testb %bpl, %bpl
je 0xa88b
leaq 0x4991(%rip), %rsi      # 0xf212
leaq 0x28(%rsp), %rdi
callq 0x2320
movb $0x1, %bpl
leaq 0x54f9(%rip), %rsi      # 0xfd8e
leaq 0x28(%rsp), %rdi
callq 0x2320
testb $0x8, 0x21(%rbx)
je 0xa8cf
testb %bpl, %bpl
je 0xa8bb
leaq 0x4961(%rip), %rsi      # 0xf212
leaq 0x28(%rsp), %rdi
callq 0x2320
movb $0x1, %bpl
leaq 0x54d5(%rip), %rsi      # 0xfd9a
leaq 0x28(%rsp), %rdi
callq 0x2320
testb $0x10, 0x21(%rbx)
je 0xa8ff
testb %bpl, %bpl
je 0xa8eb
leaq 0x4931(%rip), %rsi      # 0xf212
leaq 0x28(%rsp), %rdi
callq 0x2320
movb $0x1, %bpl
leaq 0x54b2(%rip), %rsi      # 0xfda7
leaq 0x28(%rsp), %rdi
callq 0x2320
testb $0x20, 0x21(%rbx)
je 0xa92f
testb %bpl, %bpl
je 0xa91b
leaq 0x4901(%rip), %rsi      # 0xf212
leaq 0x28(%rsp), %rdi
callq 0x2320
movb $0x1, %bpl
leaq 0x548c(%rip), %rsi      # 0xfdb1
leaq 0x28(%rsp), %rdi
callq 0x2320
testb $0x40, 0x21(%rbx)
je 0xa95f
testb %bpl, %bpl
je 0xa94b
leaq 0x48d1(%rip), %rsi      # 0xf212
leaq 0x28(%rsp), %rdi
callq 0x2320
movb $0x1, %bpl
leaq 0x5467(%rip), %rsi      # 0xfdbc
leaq 0x28(%rsp), %rdi
callq 0x2320
cmpb $0x0, 0x21(%rbx)
jns 0xa98c
testb %bpl, %bpl
je 0xa97b
leaq 0x48a1(%rip), %rsi      # 0xf212
leaq 0x28(%rsp), %rdi
callq 0x2320
leaq 0x5445(%rip), %rsi      # 0xfdc7
leaq 0x28(%rsp), %rdi
callq 0x2320
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x5434(%rip), %rsi      # 0xfdd0
leaq 0x5434(%rip), %rdx      # 0xfdd7
leaq 0x8(%rsp), %rdi
callq 0x6b90
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
callq 0x7732
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0xa9d6
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21c0
movl $0xa, %edi
callq 0x2240
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0xa9f7
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x21c0
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0xaa06
jmp 0xaa3d
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0xaa2c
jmp 0xaa40
jmp 0xaa3d
jmp 0xaa1f
jmp 0xaa3d
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0xaa40
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21c0
jmp 0xaa40
jmp 0xaa3d
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0xaa57
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x21c0
movq %rbx, %rdi
callq 0x22c0
nop