// File: /workspace/github_cpp_makefile_star2_O3/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 %r15
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rsi, %rbx
leaq 0x30(%rsp), %r14
movq %r14, -0x10(%r14)
movq $0x0, -0x8(%r14)
movb $0x0, (%r14)
cmpb $0x0, 0x2c(%rsi)
jne 0xa5d9
cmpb $0x4, 0x20(%rbx)
jbe 0xa5d9
movb 0x21(%rbx), %al
testb $0x1, %al
jne 0xa61e
xorl %ecx, %ecx
jmp 0xa674
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4d5b(%rip), %rdx      # 0xf344
movq %rsp, %rdi
movq %rdx, %rsi
callq 0x6a64
movq %rsp, %rdi
movq %rbx, %rsi
callq 0x752e
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xa847
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21c0
jmp 0xa847
leaq 0x574d(%rip), %rsi      # 0xfd72
leaq 0x20(%rsp), %rdi
callq 0x2320
movl 0x28(%rbx), %esi
movq %rsp, %rdi
movl $0x4, %edx
xorl %ecx, %ecx
callq 0x73f8
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x20(%rsp), %rdi
callq 0x2090
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa66f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21c0
movb 0x21(%rbx), %al
movb $0x1, %cl
testb $0x2, %al
je 0xa6e3
testb %cl, %cl
je 0xa68d
leaq 0x4b8f(%rip), %rsi      # 0xf212
leaq 0x20(%rsp), %rdi
callq 0x2320
leaq 0x56eb(%rip), %rsi      # 0xfd7f
leaq 0x20(%rsp), %rdi
callq 0x2320
movl 0x28(%rbx), %esi
movq %rsp, %rdi
movl $0x4, %edx
xorl %ecx, %ecx
callq 0x73f8
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x20(%rsp), %rdi
callq 0x2090
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa6de
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21c0
movb 0x21(%rbx), %al
movb $0x1, %cl
testb $0x4, %al
je 0xa712
testb %cl, %cl
je 0xa6fc
leaq 0x4b20(%rip), %rsi      # 0xf212
leaq 0x20(%rsp), %rdi
callq 0x2320
leaq 0x568b(%rip), %rsi      # 0xfd8e
leaq 0x20(%rsp), %rdi
callq 0x2320
movb 0x21(%rbx), %al
movb $0x1, %cl
testb $0x8, %al
je 0xa741
testb %cl, %cl
je 0xa72b
leaq 0x4af1(%rip), %rsi      # 0xf212
leaq 0x20(%rsp), %rdi
callq 0x2320
leaq 0x5668(%rip), %rsi      # 0xfd9a
leaq 0x20(%rsp), %rdi
callq 0x2320
movb 0x21(%rbx), %al
movb $0x1, %cl
testb $0x10, %al
je 0xa770
testb %cl, %cl
je 0xa75a
leaq 0x4ac2(%rip), %rsi      # 0xf212
leaq 0x20(%rsp), %rdi
callq 0x2320
leaq 0x5646(%rip), %rsi      # 0xfda7
leaq 0x20(%rsp), %rdi
callq 0x2320
movb 0x21(%rbx), %al
movb $0x1, %cl
testb $0x20, %al
je 0xa79f
testb %cl, %cl
je 0xa789
leaq 0x4a93(%rip), %rsi      # 0xf212
leaq 0x20(%rsp), %rdi
callq 0x2320
leaq 0x5621(%rip), %rsi      # 0xfdb1
leaq 0x20(%rsp), %rdi
callq 0x2320
movb 0x21(%rbx), %al
movb $0x1, %cl
testb $0x40, %al
je 0xa7ce
testb %cl, %cl
je 0xa7b8
leaq 0x4a64(%rip), %rsi      # 0xf212
leaq 0x20(%rsp), %rdi
callq 0x2320
leaq 0x55fd(%rip), %rsi      # 0xfdbc
leaq 0x20(%rsp), %rdi
callq 0x2320
movb 0x21(%rbx), %al
movb $0x1, %cl
testb %al, %al
jns 0xa7f8
testb %cl, %cl
je 0xa7e7
leaq 0x4a35(%rip), %rsi      # 0xf212
leaq 0x20(%rsp), %rdi
callq 0x2320
leaq 0x55d9(%rip), %rsi      # 0xfdc7
leaq 0x20(%rsp), %rdi
callq 0x2320
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x55c8(%rip), %rsi      # 0xfdd0
leaq 0x55c8(%rip), %rdx      # 0xfdd7
movq %rsp, %rdi
callq 0x6a64
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %rbx, %rdi
callq 0x75f4
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xa83d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21c0
movl $0xa, %edi
callq 0x2240
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xa85e
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x21c0
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0xa86c
jmp 0xa8a2
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0xa891
jmp 0xa8a5
jmp 0xa8a2
jmp 0xa885
jmp 0xa8a2
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xa8a5
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21c0
jmp 0xa8a5
jmp 0xa8a2
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xa8bc
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x21c0
movq %rbx, %rdi
callq 0x22c0