// File: /workspace/github_c_makefile_star2_O0/mikebdp2[P]AtomDis/main.c
// Function: do_diss
void do_diss (uint8_t *data, int off, int size, const char *addrformat)
{
    int j, len;
    uint8_t  *d = data + off;
    char buf[256];

    for (d = data + off; d < data+size; d += len) {
	if (optable[*d].process) {
	    len = optable[*d].process (d, buf);
	} else {
	    sprintf (buf, "<unknown> %02x", *d);
	    len = 1;
	}
	fputs ("  ", stdout);
	fprintf (stdout, addrformat, d - data);
	for (j = 0; j < len; j++) {
	    if (j && ! (j & 31))
		fprintf (stdout, "\n        ");
	    fprintf (stdout, "%02x", d[j]);
	}
	fputs (&"                "[j>8?16:j<<1], stdout);
	fprintf (stdout, "  %s\n", buf);
    }
    putc ('\n', stdout);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x140, %rsp            # imm = 0x140
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movslq -0xc(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movslq -0xc(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x8(%rbp), %rcx
movslq -0x10(%rbp), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jae 0x617c
movq -0x28(%rbp), %rax
movzbl (%rax), %eax
movl %eax, %ecx
leaq 0x5bdc1(%rip), %rax     # 0x61dd0
shlq $0x5, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0x6048
movq -0x28(%rbp), %rax
movzbl (%rax), %eax
movl %eax, %ecx
leaq 0x5bda4(%rip), %rax     # 0x61dd0
shlq $0x5, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq -0x28(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq *%rax
movl %eax, -0x20(%rbp)
jmp 0x606b
leaq -0x130(%rbp), %rdi
movq -0x28(%rbp), %rax
movzbl (%rax), %edx
leaq 0x46731(%rip), %rsi     # 0x4c78e
movb $0x0, %al
callq 0x41b0
movl $0x1, -0x20(%rbp)
movq 0x5df4e(%rip), %rax     # 0x63fc0
movq (%rax), %rsi
leaq 0x46402(%rip), %rdi     # 0x4c47e
callq 0x40a0
movq 0x5df38(%rip), %rax     # 0x63fc0
movq (%rax), %rdi
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq -0x8(%rbp), %rax
subq %rax, %rdx
movb $0x0, %al
callq 0x4130
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x20(%rbp), %eax
jge 0x6108
cmpl $0x0, -0x1c(%rbp)
je 0x60d9
movl -0x1c(%rbp), %eax
andl $0x1f, %eax
cmpl $0x0, %eax
jne 0x60d9
movq 0x5def8(%rip), %rax     # 0x63fc0
movq (%rax), %rdi
leaq 0x466cb(%rip), %rsi     # 0x4c79d
movb $0x0, %al
callq 0x4130
movq 0x5dee0(%rip), %rax     # 0x63fc0
movq (%rax), %rdi
movq -0x28(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %edx
leaq 0x46343(%rip), %rsi     # 0x4c439
movb $0x0, %al
callq 0x4130
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x60a8
cmpl $0x8, -0x1c(%rbp)
jle 0x611b
movl $0x10, %eax
movl %eax, -0x134(%rbp)
jmp 0x6126
movl -0x1c(%rbp), %eax
shll %eax
movl %eax, -0x134(%rbp)
movl -0x134(%rbp), %eax
cltq
leaq 0x46a6b(%rip), %rdi     # 0x4cba0
addq %rax, %rdi
movq 0x5de81(%rip), %rax     # 0x63fc0
movq (%rax), %rsi
callq 0x40a0
movq 0x5de72(%rip), %rax     # 0x63fc0
movq (%rax), %rdi
leaq -0x130(%rbp), %rdx
leaq 0x46648(%rip), %rsi     # 0x4c7a7
movb $0x0, %al
callq 0x4130
movl -0x20(%rbp), %ecx
movq -0x28(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
jmp 0x5fe7
movq 0x5de3d(%rip), %rax     # 0x63fc0
movq (%rax), %rsi
movl $0xa, %edi
callq 0x4120
addq $0x140, %rsp            # imm = 0x140
popq %rbp
retq
nopl (%rax)