// File: /workspace/github_c_makefile_star2_O0/DReichLab[P]adna/sam.c
// Function: sam_format1
int sam_format1(const bam_hdr_t *h, const bam1_t *b, kstring_t *str)
{
	int i;
	uint8_t *s;
	const bam1_core_t *c = &b->core;

	str->l = 0;
	kputsn(bam_get_qname(b), c->l_qname-1, str); kputc('\t', str); // query name
	kputw(c->flag, str); kputc('\t', str); // flag
	if (c->tid >= 0) { // chr
		kputs(h->target_name[c->tid] , str);
		kputc('\t', str);
	} else kputsn("*\t", 2, str);
	kputw(c->pos + 1, str); kputc('\t', str); // pos
	kputw(c->qual, str); kputc('\t', str); // qual
	if (c->n_cigar) { // cigar
		uint32_t *cigar = bam_get_cigar(b);
		for (i = 0; i < c->n_cigar; ++i) {
			kputw(bam_cigar_oplen(cigar[i]), str);
			kputc(bam_cigar_opchr(cigar[i]), str);
		}
	} else kputc('*', str);
	kputc('\t', str);
	if (c->mtid < 0) kputsn("*\t", 2, str); // mate chr
	else if (c->mtid == c->tid) kputsn("=\t", 2, str);
	else {
		kputs(h->target_name[c->mtid], str);
		kputc('\t', str);
	}
	kputw(c->mpos + 1, str); kputc('\t', str); // mate pos
	kputw(c->isize, str); kputc('\t', str); // template len
	if (c->l_qseq) { // seq and qual
		uint8_t *s = bam_get_seq(b);
		for (i = 0; i < c->l_qseq; ++i) kputc("=ACMGRSVTWYHKDBN"[bam_seqi(s, i)], str);
		kputc('\t', str);
		s = bam_get_qual(b);
		if (s[0] == 0xff) kputc('*', str);
		else for (i = 0; i < c->l_qseq; ++i) kputc(s[i] + 33, str);
	} else kputsn("*\t*", 3, str);
	s = bam_get_aux(b); // aux
	while (s < b->data + b->l_data) {
		uint8_t type, key[2];
		key[0] = s[0]; key[1] = s[1];
		s += 2; type = *s++;
		kputc('\t', str); kputsn((char*)key, 2, str); kputc(':', str);
		if (type == 'A') { kputsn("A:", 2, str); kputc(*s, str); ++s; }
		else if (type == 'C') { kputsn("i:", 2, str); kputw(*s, str); ++s; }
		else if (type == 'c') { kputsn("i:", 2, str); kputw(*(int8_t*)s, str); ++s; }
		else if (type == 'S') { kputsn("i:", 2, str); kputw(*(uint16_t*)s, str); s += 2; }
		else if (type == 's') { kputsn("i:", 2, str); kputw(*(int16_t*)s, str); s += 2; }
		else if (type == 'I') { kputsn("i:", 2, str); kputuw(*(uint32_t*)s, str); s += 4; }
		else if (type == 'i') { kputsn("i:", 2, str); kputw(*(int32_t*)s, str); s += 4; }
		else if (type == 'f') { ksprintf(str, "f:%g", *(float*)s); s += 4; }
		else if (type == 'd') { ksprintf(str, "d:%g", *(double*)s); s += 8; }
		else if (type == 'Z' || type == 'H') { kputc(type, str); kputc(':', str); while (*s) kputc(*s++, str); ++s; }
		else if (type == 'B') {
			uint8_t sub_type = *(s++);
			int32_t n;
			memcpy(&n, s, 4);
			s += 4; // no point to the start of the array
			kputsn("B:", 2, str); kputc(sub_type, str); // write the typing
			for (i = 0; i < n; ++i) { // FIXME: for better performance, put the loop after "if"
				kputc(',', str);
				if ('c' == sub_type)      { kputw(*(int8_t*)s, str); ++s; }
				else if ('C' == sub_type) { kputw(*(uint8_t*)s, str); ++s; }
				else if ('s' == sub_type) { kputw(*(int16_t*)s, str); s += 2; }
				else if ('S' == sub_type) { kputw(*(uint16_t*)s, str); s += 2; }
				else if ('i' == sub_type) { kputw(*(int32_t*)s, str); s += 4; }
				else if ('I' == sub_type) { kputuw(*(uint32_t*)s, str); s += 4; }
				else if ('f' == sub_type) { ksprintf(str, "%g", *(float*)s); s += 4; }
			}
		}
	}
	return str->l;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rax
movq $0x0, (%rax)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
shrq $0x18, %rax
andq $0xff, %rax
movl %eax, %esi
subl $0x1, %esi
movq -0x18(%rbp), %rdx
callq 0xe050
movq -0x18(%rbp), %rsi
movl $0x9, %edi
callq 0xe1a0
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
shrq $0x20, %rax
andq $0xffff, %rax           # imm = 0xFFFF
movl %eax, %edi
movq -0x18(%rbp), %rsi
callq 0xe470
movq -0x18(%rbp), %rsi
movl $0x9, %edi
callq 0xe1a0
movq -0x30(%rbp), %rax
cmpl $0x0, (%rax)
jl 0xff6d
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x30(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x18(%rbp), %rsi
callq 0xe430
movq -0x18(%rbp), %rsi
movl $0x9, %edi
callq 0xe1a0
jmp 0xff82
movq -0x18(%rbp), %rdx
leaq 0x377c(%rip), %rdi      # 0x136f4
movl $0x2, %esi
callq 0xe050
movq -0x30(%rbp), %rax
movl 0x4(%rax), %edi
addl $0x1, %edi
movq -0x18(%rbp), %rsi
callq 0xe470
movq -0x18(%rbp), %rsi
movl $0x9, %edi
callq 0xe1a0
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
shrq $0x10, %rax
andq $0xff, %rax
movl %eax, %edi
movq -0x18(%rbp), %rsi
callq 0xe470
movq -0x18(%rbp), %rsi
movl $0x9, %edi
callq 0xe1a0
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
shrq $0x30, %rax
cmpl $0x0, %eax
je 0x1006c
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rcx), %rcx
shrq $0x18, %rcx
andq $0xff, %rcx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x30(%rbp), %rcx
movq 0x8(%rcx), %rcx
shrq $0x30, %rcx
cmpl %ecx, %eax
jge 0x1006a
movq -0x38(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movl (%rax,%rcx,4), %edi
shrl $0x4, %edi
movq -0x18(%rbp), %rsi
callq 0xe470
movq -0x38(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movl (%rax,%rcx,4), %eax
andl $0xf, %eax
movl %eax, %eax
movl %eax, %ecx
leaq 0x3454(%rip), %rax      # 0x134a6
movsbl (%rax,%rcx), %edi
movq -0x18(%rbp), %rsi
callq 0xe1a0
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x1000f
jmp 0x1007a
movq -0x18(%rbp), %rsi
movl $0x2a, %edi
callq 0xe1a0
movq -0x18(%rbp), %rsi
movl $0x9, %edi
callq 0xe1a0
movq -0x30(%rbp), %rax
cmpl $0x0, 0x14(%rax)
jge 0x100a9
movq -0x18(%rbp), %rdx
leaq 0x3657(%rip), %rdi      # 0x136f4
movl $0x2, %esi
callq 0xe050
jmp 0x100fc
movq -0x30(%rbp), %rax
movl 0x14(%rax), %eax
movq -0x30(%rbp), %rcx
cmpl (%rcx), %eax
jne 0x100cf
movq -0x18(%rbp), %rdx
leaq 0x3634(%rip), %rdi      # 0x136f7
movl $0x2, %esi
callq 0xe050
jmp 0x100fa
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x30(%rbp), %rcx
movslq 0x14(%rcx), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x18(%rbp), %rsi
callq 0xe430
movq -0x18(%rbp), %rsi
movl $0x9, %edi
callq 0xe1a0
jmp 0x100fc
movq -0x30(%rbp), %rax
movl 0x18(%rax), %edi
addl $0x1, %edi
movq -0x18(%rbp), %rsi
callq 0xe470
movq -0x18(%rbp), %rsi
movl $0x9, %edi
callq 0xe1a0
movq -0x30(%rbp), %rax
movl 0x1c(%rax), %edi
movq -0x18(%rbp), %rsi
callq 0xe470
movq -0x18(%rbp), %rsi
movl $0x9, %edi
callq 0xe1a0
movq -0x30(%rbp), %rax
cmpl $0x0, 0x10(%rax)
je 0x1028b
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rcx), %rcx
shrq $0x30, %rcx
shll $0x2, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rcx), %rcx
shrq $0x18, %rcx
andq $0xff, %rcx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x40(%rbp)
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x30(%rbp), %rcx
cmpl 0x10(%rcx), %eax
jge 0x101d9
movq -0x40(%rbp), %rax
movl -0x1c(%rbp), %ecx
sarl %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
movl -0x1c(%rbp), %ecx
xorl $-0x1, %ecx
andl $0x1, %ecx
shll $0x2, %ecx
sarl %cl, %eax
andl $0xf, %eax
movslq %eax, %rcx
leaq 0x3539(%rip), %rax      # 0x136fa
movsbl (%rax,%rcx), %edi
movq -0x18(%rbp), %rsi
callq 0xe1a0
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x1018a
movq -0x18(%rbp), %rsi
movl $0x9, %edi
callq 0xe1a0
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rcx), %rcx
shrq $0x30, %rcx
shll $0x2, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rcx), %rcx
shrq $0x18, %rcx
andq $0xff, %rcx
movslq %ecx, %rcx
addq %rcx, %rax
movq -0x10(%rbp), %rcx
movl 0x10(%rcx), %ecx
addl $0x1, %ecx
sarl %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movzbl (%rax), %eax
cmpl $0xff, %eax
jne 0x10251
movq -0x18(%rbp), %rsi
movl $0x2a, %edi
callq 0xe1a0
jmp 0x10289
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x30(%rbp), %rcx
cmpl 0x10(%rcx), %eax
jge 0x10287
movq -0x40(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %edi
addl $0x21, %edi
movq -0x18(%rbp), %rsi
callq 0xe1a0
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x10258
jmp 0x10289
jmp 0x102a0
movq -0x18(%rbp), %rdx
leaq 0x3475(%rip), %rdi      # 0x1370b
movl $0x3, %esi
callq 0xe050
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rcx), %rcx
shrq $0x30, %rcx
shll $0x2, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rcx), %rcx
shrq $0x18, %rcx
andq $0xff, %rcx
movslq %ecx, %rcx
addq %rcx, %rax
movq -0x10(%rbp), %rcx
movl 0x10(%rcx), %ecx
addl $0x1, %ecx
sarl %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq -0x10(%rbp), %rcx
movslq 0x10(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x10(%rbp), %rcx
movq 0x28(%rcx), %rcx
movq -0x10(%rbp), %rdx
movslq 0x20(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jae 0x107f2
movq -0x28(%rbp), %rax
movb (%rax), %al
movb %al, -0x43(%rbp)
movq -0x28(%rbp), %rax
movb 0x1(%rax), %al
movb %al, -0x42(%rbp)
movq -0x28(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x28(%rbp)
movb (%rax), %al
movb %al, -0x41(%rbp)
movq -0x18(%rbp), %rsi
movl $0x9, %edi
callq 0xe1a0
leaq -0x43(%rbp), %rdi
movq -0x18(%rbp), %rdx
movl $0x2, %esi
callq 0xe050
movq -0x18(%rbp), %rsi
movl $0x3a, %edi
callq 0xe1a0
movzbl -0x41(%rbp), %eax
cmpl $0x41, %eax
jne 0x103b7
movq -0x18(%rbp), %rdx
leaq 0x3383(%rip), %rdi      # 0x1370f
movl $0x2, %esi
callq 0xe050
movq -0x28(%rbp), %rax
movzbl (%rax), %edi
movq -0x18(%rbp), %rsi
callq 0xe1a0
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x107ed
movzbl -0x41(%rbp), %eax
cmpl $0x43, %eax
jne 0x103f6
movq -0x18(%rbp), %rdx
leaq 0x3347(%rip), %rdi      # 0x13712
movl $0x2, %esi
callq 0xe050
movq -0x28(%rbp), %rax
movzbl (%rax), %edi
movq -0x18(%rbp), %rsi
callq 0xe470
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x107eb
movzbl -0x41(%rbp), %eax
cmpl $0x63, %eax
jne 0x10435
movq -0x18(%rbp), %rdx
leaq 0x3308(%rip), %rdi      # 0x13712
movl $0x2, %esi
callq 0xe050
movq -0x28(%rbp), %rax
movsbl (%rax), %edi
movq -0x18(%rbp), %rsi
callq 0xe470
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x107e9
movzbl -0x41(%rbp), %eax
cmpl $0x53, %eax
jne 0x10474
movq -0x18(%rbp), %rdx
leaq 0x32c9(%rip), %rdi      # 0x13712
movl $0x2, %esi
callq 0xe050
movq -0x28(%rbp), %rax
movzwl (%rax), %edi
movq -0x18(%rbp), %rsi
callq 0xe470
movq -0x28(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x28(%rbp)
jmp 0x107e7
movzbl -0x41(%rbp), %eax
cmpl $0x73, %eax
jne 0x104b3
movq -0x18(%rbp), %rdx
leaq 0x328a(%rip), %rdi      # 0x13712
movl $0x2, %esi
callq 0xe050
movq -0x28(%rbp), %rax
movswl (%rax), %edi
movq -0x18(%rbp), %rsi
callq 0xe470
movq -0x28(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x28(%rbp)
jmp 0x107e5
movzbl -0x41(%rbp), %eax
cmpl $0x49, %eax
jne 0x104f1
movq -0x18(%rbp), %rdx
leaq 0x324b(%rip), %rdi      # 0x13712
movl $0x2, %esi
callq 0xe050
movq -0x28(%rbp), %rax
movl (%rax), %edi
movq -0x18(%rbp), %rsi
callq 0x10800
movq -0x28(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x28(%rbp)
jmp 0x107e3
movzbl -0x41(%rbp), %eax
cmpl $0x69, %eax
jne 0x1052f
movq -0x18(%rbp), %rdx
leaq 0x320d(%rip), %rdi      # 0x13712
movl $0x2, %esi
callq 0xe050
movq -0x28(%rbp), %rax
movl (%rax), %edi
movq -0x18(%rbp), %rsi
callq 0xe470
movq -0x28(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x28(%rbp)
jmp 0x107e1
movzbl -0x41(%rbp), %eax
cmpl $0x66, %eax
jne 0x10567
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movss (%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x31c6(%rip), %rsi      # 0x13715
movb $0x1, %al
callq 0x109d0
movq -0x28(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x28(%rbp)
jmp 0x107df
movzbl -0x41(%rbp), %eax
cmpl $0x64, %eax
jne 0x1059b
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
leaq 0x3197(%rip), %rsi      # 0x1371a
movb $0x1, %al
callq 0x109d0
movq -0x28(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x28(%rbp)
jmp 0x107dd
movzbl -0x41(%rbp), %eax
cmpl $0x5a, %eax
je 0x105ad
movzbl -0x41(%rbp), %eax
cmpl $0x48, %eax
jne 0x105ff
movzbl -0x41(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0xe1a0
movq -0x18(%rbp), %rsi
movl $0x3a, %edi
callq 0xe1a0
movq -0x28(%rbp), %rax
cmpb $0x0, (%rax)
je 0x105ee
movq -0x28(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x28(%rbp)
movzbl (%rax), %edi
movq -0x18(%rbp), %rsi
callq 0xe1a0
jmp 0x105c8
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x107db
movzbl -0x41(%rbp), %eax
cmpl $0x42, %eax
jne 0x107d9
movq -0x28(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x28(%rbp)
movb (%rax), %al
movb %al, -0x44(%rbp)
movq -0x28(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x48(%rbp)
movq -0x28(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdx
leaq 0x30df(%rip), %rdi      # 0x1371f
movl $0x2, %esi
callq 0xe050
movzbl -0x44(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0xe1a0
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x48(%rbp), %eax
jge 0x107d7
movq -0x18(%rbp), %rsi
movl $0x2c, %edi
callq 0xe1a0
movzbl -0x44(%rbp), %ecx
movl $0x63, %eax
cmpl %ecx, %eax
jne 0x106a6
movq -0x28(%rbp), %rax
movsbl (%rax), %edi
movq -0x18(%rbp), %rsi
callq 0xe470
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x107c7
movzbl -0x44(%rbp), %ecx
movl $0x43, %eax
cmpl %ecx, %eax
jne 0x106d4
movq -0x28(%rbp), %rax
movzbl (%rax), %edi
movq -0x18(%rbp), %rsi
callq 0xe470
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x107c5
movzbl -0x44(%rbp), %ecx
movl $0x73, %eax
cmpl %ecx, %eax
jne 0x10702
movq -0x28(%rbp), %rax
movswl (%rax), %edi
movq -0x18(%rbp), %rsi
callq 0xe470
movq -0x28(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x28(%rbp)
jmp 0x107c3
movzbl -0x44(%rbp), %ecx
movl $0x53, %eax
cmpl %ecx, %eax
jne 0x10730
movq -0x28(%rbp), %rax
movzwl (%rax), %edi
movq -0x18(%rbp), %rsi
callq 0xe470
movq -0x28(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x28(%rbp)
jmp 0x107c1
movzbl -0x44(%rbp), %ecx
movl $0x69, %eax
cmpl %ecx, %eax
jne 0x1075a
movq -0x28(%rbp), %rax
movl (%rax), %edi
movq -0x18(%rbp), %rsi
callq 0xe470
movq -0x28(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x28(%rbp)
jmp 0x107bf
movzbl -0x44(%rbp), %ecx
movl $0x49, %eax
cmpl %ecx, %eax
jne 0x10784
movq -0x28(%rbp), %rax
movl (%rax), %edi
movq -0x18(%rbp), %rsi
callq 0x10800
movq -0x28(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x28(%rbp)
jmp 0x107bd
movzbl -0x44(%rbp), %ecx
movl $0x66, %eax
cmpl %ecx, %eax
jne 0x107bb
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movss (%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x2f74(%rip), %rsi      # 0x1371c
movb $0x1, %al
callq 0x109d0
movq -0x28(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x28(%rbp)
jmp 0x107bd
jmp 0x107bf
jmp 0x107c1
jmp 0x107c3
jmp 0x107c5
jmp 0x107c7
jmp 0x107c9
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x1065e
jmp 0x107d9
jmp 0x107db
jmp 0x107dd
jmp 0x107df
jmp 0x107e1
jmp 0x107e3
jmp 0x107e5
jmp 0x107e7
jmp 0x107e9
jmp 0x107eb
jmp 0x107ed
jmp 0x102f7
movq -0x18(%rbp), %rax
movq (%rax), %rax
addq $0x50, %rsp
popq %rbp
retq
nop