// File: /workspace/github_c_makefile_star2_O0/icebert[P]pblat/htslib/cram/cram_encode.c
// Function: cram_encode_aux
static char *cram_encode_aux(cram_fd *fd, bam_seq_t *b, cram_container *c,
			     cram_slice *s, cram_record *cr) {
    char *aux, *orig, *tmp, *rg = NULL;
    int aux_size = bam_get_l_aux(b);
    cram_block *td_b = c->comp_hdr->TD_blk;
    int TD_blk_size = BLOCK_SIZE(td_b), new;
    char *key;
    khint_t k;


    /* Worst case is 1 nul char on every ??:Z: string, so +33% */
    BLOCK_GROW(s->aux_blk, aux_size*1.34+1);
    tmp = (char *)BLOCK_END(s->aux_blk);


    orig = aux = (char *)bam_aux(b);

    // Copy aux keys to td_b and aux values to s->aux_blk
    while (aux - orig < aux_size && aux[0] != 0) {
	uint32_t i32;
	int r;

	// RG:Z
	if (aux[0] == 'R' && aux[1] == 'G' && aux[2] == 'Z') {
	    rg = &aux[3];
	    while (*aux++);
	    continue;
	}

	// MD:Z
	if (aux[0] == 'M' && aux[1] == 'D' && aux[2] == 'Z') {
	    if (cr->len && !fd->no_ref && !(cr->flags & BAM_FUNMAP)) {
		while (*aux++);
		continue;
	    }
	}

	// NM:i
	if (aux[0] == 'N' && aux[1] == 'M') {
	    if (cr->len && !fd->no_ref && !(cr->flags & BAM_FUNMAP)) {
		switch(aux[2]) {
		case 'A': case 'C': case 'c': aux+=4; break;
		case 'S': case 's':           aux+=5; break;
		case 'I': case 'i': case 'f': aux+=7; break;
		default:
		    fprintf(stderr, "Unhandled type code for NM tag\n");
		    return NULL;
		}
		continue;
	    }
	}

	BLOCK_APPEND(td_b, aux, 3);

	i32 = (aux[0]<<16) | (aux[1]<<8) | aux[2];
	kh_put(s_i2i, c->tags_used, i32, &r);
	if (-1 == r)
	    return NULL;

	// BQ:Z
	if (aux[0] == 'B' && aux[1] == 'Q' && aux[2] == 'Z') {
	    char *tmp;
	    if (!s->aux_BQ_blk)
		if (!(s->aux_BQ_blk = cram_new_block(EXTERNAL, DS_aux_BQ)))
		    return NULL;
	    BLOCK_GROW(s->aux_BQ_blk, aux_size*1.34+1);
	    tmp = (char *)BLOCK_END(s->aux_BQ_blk);
	    aux += 3;
	    while ((*tmp++=*aux++));
	    *tmp++ = '\t';
	    BLOCK_SIZE(s->aux_BQ_blk) = (uc *)tmp - BLOCK_DATA(s->aux_BQ_blk);
	    continue;
	}

	// BD:Z
	if (aux[0] == 'B' && aux[1]=='D' && aux[2] == 'Z') {
	    char *tmp;
	    if (!s->aux_BD_blk)
		if (!(s->aux_BD_blk = cram_new_block(EXTERNAL, DS_aux_BD)))
		    return NULL;
	    BLOCK_GROW(s->aux_BD_blk, aux_size*1.34+1);
	    tmp = (char *)BLOCK_END(s->aux_BD_blk);
	    aux += 3;
	    while ((*tmp++=*aux++));
	    *tmp++ = '\t';
	    BLOCK_SIZE(s->aux_BD_blk) = (uc *)tmp - BLOCK_DATA(s->aux_BD_blk);
	    continue;
	}

	// BI:Z
	if (aux[0] == 'B' && aux[1]=='I' && aux[2] == 'Z') {
	    char *tmp;
	    if (!s->aux_BI_blk)
		if (!(s->aux_BI_blk = cram_new_block(EXTERNAL, DS_aux_BI)))
		    return NULL;
	    BLOCK_GROW(s->aux_BI_blk, aux_size*1.34+1);
	    tmp = (char *)BLOCK_END(s->aux_BI_blk);
	    aux += 3;
	    while ((*tmp++=*aux++));
	    *tmp++ = '\t';
	    BLOCK_SIZE(s->aux_BI_blk) = (uc *)tmp - BLOCK_DATA(s->aux_BI_blk);
	    continue;
	}

	// OQ:Z:
	if (aux[0] == 'O' && aux[1] == 'Q' && aux[2] == 'Z') {
	    char *tmp;
	    if (!s->aux_OQ_blk)
		if (!(s->aux_OQ_blk = cram_new_block(EXTERNAL, DS_aux_OQ)))
		    return NULL;
	    BLOCK_GROW(s->aux_OQ_blk, aux_size*1.34+1);
	    tmp = (char *)BLOCK_END(s->aux_OQ_blk);
	    aux += 3;
	    while ((*tmp++=*aux++));
	    *tmp++ = '\t';
	    BLOCK_SIZE(s->aux_OQ_blk) = (uc *)tmp - BLOCK_DATA(s->aux_OQ_blk);
	    continue;
	}

	// FZ:B or ZM:B
	if ((aux[0] == 'F' && aux[1] == 'Z' && aux[2] == 'B') ||
	    (aux[0] == 'Z' && aux[1] == 'M' && aux[2] == 'B')) {
	    int type = aux[3], blen;
	    uint32_t count = (uint32_t)((((unsigned char *)aux)[4]<< 0) +
					(((unsigned char *)aux)[5]<< 8) +
					(((unsigned char *)aux)[6]<<16) +
					(((unsigned char *)aux)[7]<<24));
	    char *tmp;
	    if (!s->aux_FZ_blk)
		if (!(s->aux_FZ_blk = cram_new_block(EXTERNAL, DS_aux_FZ)))
		    return NULL;
	    BLOCK_GROW(s->aux_FZ_blk, aux_size*1.34+1);
	    tmp = (char *)BLOCK_END(s->aux_FZ_blk);

	    // skip TN field
	    aux+=3;

	    // We use BYTE_ARRAY_LEN with external length, so store that first
	    switch (type) {
	    case 'c': case 'C':
		blen = count;
		break;
	    case 's': case 'S':
		blen = 2*count;
		break;
	    case 'i': case 'I': case 'f':
		blen = 4*count;
		break;
	    default:
		fprintf(stderr, "Unknown sub-type '%c' for aux type 'B'\n",
			type);
		return NULL;
		    
	    }

	    blen += 5; // sub-type & length
	    tmp += itf8_put(tmp, blen);

	    // The tag data itself
	    memcpy(tmp, aux, blen); tmp += blen; aux += blen;

	    BLOCK_SIZE(s->aux_FZ_blk) = (uc *)tmp - BLOCK_DATA(s->aux_FZ_blk);
	    continue;
	}

	// Other quality data - {Q2,E2,U2,CQ}:Z and similar
	if (((aux[0] == 'Q' && aux[1] == '2') ||
	     (aux[0] == 'U' && aux[1] == '2') ||
	     (aux[0] == 'Q' && aux[1] == 'T') ||
	     (aux[0] == 'C' && aux[1] == 'Q')) && aux[2] == 'Z') {
	    char *tmp;
	    if (!s->aux_oq_blk)
		if (!(s->aux_oq_blk = cram_new_block(EXTERNAL, DS_aux_oq)))
		    return NULL;
	    BLOCK_GROW(s->aux_oq_blk, aux_size*1.34+1);
	    tmp = (char *)BLOCK_END(s->aux_oq_blk);
	    aux += 3;
	    while ((*tmp++=*aux++));
	    *tmp++ = '\t';
	    BLOCK_SIZE(s->aux_oq_blk) = (uc *)tmp - BLOCK_DATA(s->aux_oq_blk);
	    continue;
	}

	// Other sequence data - {R2,E2,CS,BC,RT}:Z and similar
	if (((aux[0] == 'R' && aux[1] == '2') ||
	     (aux[0] == 'E' && aux[1] == '2') ||
	     (aux[0] == 'C' && aux[1] == 'S') ||
	     (aux[0] == 'B' && aux[1] == 'C') ||
	     (aux[0] == 'R' && aux[1] == 'T')) && aux[2] == 'Z') {
	    char *tmp;
	    if (!s->aux_os_blk)
		if (!(s->aux_os_blk = cram_new_block(EXTERNAL, DS_aux_os)))
		    return NULL;
	    BLOCK_GROW(s->aux_os_blk, aux_size*1.34+1);
	    tmp = (char *)BLOCK_END(s->aux_os_blk);
	    aux += 3;
	    while ((*tmp++=*aux++));
	    *tmp++ = '\t';
	    BLOCK_SIZE(s->aux_os_blk) = (uc *)tmp - BLOCK_DATA(s->aux_os_blk);
	    continue;
	}


	switch(aux[2]) {
	case 'A': case 'C': case 'c':
	    aux+=3;
	    *tmp++=*aux++;
	    break;

	case 'S': case 's':
	    aux+=3;
	    *tmp++=*aux++; *tmp++=*aux++;
	    break;

	case 'I': case 'i': case 'f':
	    aux+=3;
	    *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++;
	    break;

	case 'd':
	    aux+=3; //*tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++;
	    *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++;
	    *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++;
	    break;

	case 'Z': case 'H':
	    {
		char *tmp;
		if (!s->aux_oz_blk)
		    if (!(s->aux_oz_blk = cram_new_block(EXTERNAL, DS_aux_oz)))
			return NULL;
		BLOCK_GROW(s->aux_oz_blk, aux_size*1.34+1);
		tmp = (char *)BLOCK_END(s->aux_oz_blk);
		aux += 3;
		while ((*tmp++=*aux++));
		*tmp++ = '\t';
		BLOCK_SIZE(s->aux_oz_blk) = (uc *)tmp -
		    BLOCK_DATA(s->aux_oz_blk);
	    }
	    break;

	case 'B': {
	    int type = aux[3], blen;
	    uint32_t count = (uint32_t)((((unsigned char *)aux)[4]<< 0) +
					(((unsigned char *)aux)[5]<< 8) +
					(((unsigned char *)aux)[6]<<16) +
					(((unsigned char *)aux)[7]<<24));
	    // skip TN field
	    aux+=3;

	    // We use BYTE_ARRAY_LEN with external length, so store that first
	    switch (type) {
	    case 'c': case 'C':
		blen = count;
		break;
	    case 's': case 'S':
		blen = 2*count;
		break;
	    case 'i': case 'I': case 'f':
		blen = 4*count;
		break;
	    default:
		fprintf(stderr, "Unknown sub-type '%c' for aux type 'B'\n",
			type);
		return NULL;
		    
	    }

	    blen += 5; // sub-type & length
	    tmp += itf8_put(tmp, blen);

	    // The tag data itself
	    memcpy(tmp, aux, blen); tmp += blen; aux += blen;

	    //cram_stats_add(c->aux_B_stats, blen);
	    break;
	}
	default:
	    fprintf(stderr, "Unknown aux type '%c'\n", aux[2]);
	    return NULL;
	}
    }

    // FIXME: sort BLOCK_DATA(td_b) by char[3] triples
    
    // And and increment TD hash entry
    BLOCK_APPEND_CHAR(td_b, 0);

    // Duplicate key as BLOCK_DATA() can be realloced to a new pointer.
    key = string_ndup(c->comp_hdr->TD_keys, 
		      (char *)BLOCK_DATA(td_b) + TD_blk_size,
		      BLOCK_SIZE(td_b) - TD_blk_size);
    k = kh_put(m_s2i, c->comp_hdr->TD_hash, key, &new);
    if (new < 0) {
	return NULL;
    } else if (new == 0) {
	BLOCK_SIZE(td_b) = TD_blk_size;
    } else {
	kh_val(c->comp_hdr->TD_hash, k) = c->comp_hdr->nTL;
	c->comp_hdr->nTL++;
    }

    cr->TL = kh_val(c->comp_hdr->TD_hash, k);
    cram_stats_add(c->stats[DS_TL], cr->TL);

    cr->aux = BLOCK_SIZE(s->aux_blk);
    cr->aux_size = (uc *)tmp - (BLOCK_DATA(s->aux_blk) + cr->aux);
    BLOCK_SIZE(s->aux_blk) = (uc *)tmp - BLOCK_DATA(s->aux_blk);
    assert(s->aux_blk->byte <= s->aux_blk->alloc);

    return rg;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq $0x0, -0x50(%rbp)
movq -0x18(%rbp), %rax
movl 0x20(%rax), %eax
movq -0x18(%rbp), %rcx
movq 0x8(%rcx), %rcx
shrq $0x30, %rcx
shll $0x2, %ecx
subl %ecx, %eax
movq -0x18(%rbp), %rcx
movq 0x8(%rcx), %rcx
shrq $0x18, %rcx
andq $0xff, %rcx
subl %ecx, %eax
movq -0x18(%rbp), %rcx
subl 0x10(%rcx), %eax
movq -0x18(%rbp), %rcx
movl 0x10(%rcx), %ecx
addl $0x1, %ecx
sarl %ecx
subl %ecx, %eax
movl %eax, -0x54(%rbp)
movq -0x20(%rbp), %rax
movq 0x40(%rax), %rax
movq 0x50(%rax), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq 0x30(%rax), %rax
movl %eax, -0x64(%rbp)
jmp 0xc6559
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rax
movq 0x28(%rax), %xmm1
movaps 0xfab0(%rip), %xmm3     # 0xd6020
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
movapd 0xfab4(%rip), %xmm2     # 0xd6030
subpd %xmm2, %xmm1
movaps %xmm1, %xmm0
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm0, %xmm1
movq 0x30(%rax), %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movaps %xmm0, %xmm2
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm2, %xmm0
cvtsi2sdl -0x54(%rbp), %xmm2
movsd 0x1e800(%rip), %xmm3    # 0xe4db0
mulsd %xmm3, %xmm2
movsd 0x112cc(%rip), %xmm3    # 0xd7888
addsd %xmm3, %xmm2
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jb 0xc66b1
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rax
cmpq $0x0, 0x28(%rax)
je 0xc6628
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rax
movq 0x28(%rax), %xmm0
movaps 0xfa29(%rip), %xmm1     # 0xd6020
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0xfa2d(%rip), %xmm1     # 0xd6030
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x14056(%rip), %xmm1    # 0xda670
mulsd %xmm1, %xmm0
movsd %xmm0, -0xe8(%rbp)
jmp 0xc663a
movsd 0x1c588(%rip), %xmm0    # 0xe2bb8
movsd %xmm0, -0xe8(%rbp)
jmp 0xc663a
movsd -0xe8(%rbp), %xmm0
movsd 0x1ba0e(%rip), %xmm2    # 0xe2058
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rax
movq %rcx, 0x28(%rax)
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rax
movq 0x20(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rax
movq 0x28(%rax), %rsi
callq 0x6c80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rax
movq %rcx, 0x20(%rax)
jmp 0xc6559
jmp 0xc66b3
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rax
movq 0x20(%rax), %rax
movq -0x28(%rbp), %rcx
movq 0x88(%rcx), %rcx
addq 0x30(%rcx), %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x18(%rbp), %rcx
movq 0x8(%rcx), %rcx
shrq $0x30, %rcx
shll $0x2, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq -0x18(%rbp), %rcx
movq 0x8(%rcx), %rcx
shrq $0x18, %rcx
andq $0xff, %rcx
movslq %ecx, %rcx
addq %rcx, %rax
movq -0x18(%rbp), %rcx
movl 0x10(%rcx), %ecx
addl $0x1, %ecx
sarl %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq -0x18(%rbp), %rcx
movslq 0x10(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rcx
movq -0x40(%rbp), %rax
subq %rax, %rcx
movslq -0x54(%rbp), %rdx
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, -0xe9(%rbp)
jge 0xc675f
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
setne %al
movb %al, -0xe9(%rbp)
movb -0xe9(%rbp), %al
testb $0x1, %al
jne 0xc676e
jmp 0xc87df
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x52, %eax
jne 0xc67bb
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x47, %eax
jne 0xc67bb
movq -0x38(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x5a, %eax
jne 0xc67bb
movq -0x38(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x50(%rbp)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
cmpb $0x0, (%rax)
je 0xc67b6
jmp 0xc67a0
jmp 0xc6730
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x4d, %eax
jne 0xc6826
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x44, %eax
jne 0xc6826
movq -0x38(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x5a, %eax
jne 0xc6826
movq -0x30(%rbp), %rax
cmpl $0x0, 0x14(%rax)
je 0xc6824
movq -0x10(%rbp), %rax
cmpl $0x0, 0x20c(%rax)
jne 0xc6824
movq -0x30(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
jne 0xc6824
jmp 0xc6809
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
cmpb $0x0, (%rax)
je 0xc681f
jmp 0xc6809
jmp 0xc6730
jmp 0xc6826
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x4e, %eax
jne 0xc693f
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x4d, %eax
jne 0xc693f
movq -0x30(%rbp), %rax
cmpl $0x0, 0x14(%rax)
je 0xc693d
movq -0x10(%rbp), %rax
cmpl $0x0, 0x20c(%rax)
jne 0xc693d
movq -0x30(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
jne 0xc693d
movq -0x38(%rbp), %rax
movsbl 0x2(%rax), %eax
movl %eax, -0xf0(%rbp)
subl $0x41, %eax
je 0xc68e9
jmp 0xc688e
movl -0xf0(%rbp), %eax
subl $0x43, %eax
je 0xc68e9
jmp 0xc689b
movl -0xf0(%rbp), %eax
subl $0x49, %eax
je 0xc6905
jmp 0xc68a8
movl -0xf0(%rbp), %eax
subl $0x53, %eax
je 0xc68f7
jmp 0xc68b5
movl -0xf0(%rbp), %eax
subl $0x63, %eax
je 0xc68e9
jmp 0xc68c2
movl -0xf0(%rbp), %eax
subl $0x66, %eax
je 0xc6905
jmp 0xc68cf
movl -0xf0(%rbp), %eax
subl $0x69, %eax
je 0xc6905
jmp 0xc68dc
movl -0xf0(%rbp), %eax
subl $0x73, %eax
je 0xc68f7
jmp 0xc6913
movq -0x38(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x38(%rbp)
jmp 0xc6938
movq -0x38(%rbp), %rax
addq $0x5, %rax
movq %rax, -0x38(%rbp)
jmp 0xc6938
movq -0x38(%rbp), %rax
addq $0x7, %rax
movq %rax, -0x38(%rbp)
jmp 0xc6938
movq 0x3e6b6(%rip), %rax     # 0x104fd0
movq (%rax), %rdi
leaq 0x1ecfe(%rip), %rsi     # 0xe5622
movb $0x0, %al
callq 0x6a80
movq $0x0, -0x8(%rbp)
jmp 0xc8a6a
jmp 0xc6730
jmp 0xc693f
jmp 0xc6941
jmp 0xc6943
jmp 0xc6945
movq -0x60(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x60(%rbp), %rcx
movq 0x30(%rcx), %rcx
addq $0x3, %rcx
cmpq %rcx, %rax
ja 0xc6a1b
movq -0x60(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0xc69ae
movq -0x60(%rbp), %rax
movq 0x28(%rax), %xmm0
movaps 0xf6a3(%rip), %xmm1     # 0xd6020
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0xf6a7(%rip), %xmm1     # 0xd6030
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x13cd0(%rip), %xmm1    # 0xda670
mulsd %xmm1, %xmm0
movsd %xmm0, -0xf8(%rbp)
jmp 0xc69c0
movsd 0x1c202(%rip), %xmm0    # 0xe2bb8
movsd %xmm0, -0xf8(%rbp)
jmp 0xc69c0
movsd -0xf8(%rbp), %xmm0
movsd 0x1b688(%rip), %xmm2    # 0xe2058
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x60(%rbp), %rax
movq 0x20(%rax), %rdi
movq -0x60(%rbp), %rax
movq 0x28(%rax), %rsi
callq 0x6c80
movq %rax, %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x20(%rax)
jmp 0xc6945
jmp 0xc6a1d
movq -0x60(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x60(%rbp), %rcx
movq 0x30(%rcx), %rcx
movq -0x38(%rbp), %rdx
movw (%rdx), %si
movw %si, (%rax,%rcx)
movb 0x2(%rdx), %dl
movb %dl, 0x2(%rax,%rcx)
movq -0x60(%rbp), %rax
movq 0x30(%rax), %rcx
addq $0x3, %rcx
movq %rcx, 0x30(%rax)
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
shll $0x10, %eax
movq -0x38(%rbp), %rcx
movsbl 0x1(%rcx), %ecx
shll $0x8, %ecx
orl %ecx, %eax
movq -0x38(%rbp), %rcx
movsbl 0x2(%rcx), %ecx
orl %ecx, %eax
movl %eax, -0x78(%rbp)
movq -0x20(%rbp), %rax
movq 0x238(%rax), %rdi
movl -0x78(%rbp), %esi
leaq -0x7c(%rbp), %rdx
callq 0xca0d0
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl -0x7c(%rbp), %eax
jne 0xc6aa1
movq $0x0, -0x8(%rbp)
jmp 0xc8a6a
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x42, %eax
jne 0xc6d12
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x51, %eax
jne 0xc6d12
movq -0x38(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x5a, %eax
jne 0xc6d12
movq -0x28(%rbp), %rax
cmpq $0x0, 0x98(%rax)
jne 0xc6b10
movl $0x4, %edi
movl $0x3, %esi
callq 0x7e1a0
movq -0x28(%rbp), %rcx
movq %rax, 0x98(%rcx)
cmpq $0x0, %rax
jne 0xc6b0e
movq $0x0, -0x8(%rbp)
jmp 0xc8a6a
jmp 0xc6b10
jmp 0xc6b12
jmp 0xc6b14
movq -0x28(%rbp), %rax
movq 0x98(%rax), %rax
movq 0x28(%rax), %xmm1
movaps 0xf4f5(%rip), %xmm3     # 0xd6020
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
movapd 0xf4f9(%rip), %xmm2     # 0xd6030
subpd %xmm2, %xmm1
movaps %xmm1, %xmm0
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm0, %xmm1
movq 0x30(%rax), %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movaps %xmm0, %xmm2
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm2, %xmm0
cvtsi2sdl -0x54(%rbp), %xmm2
movsd 0x1e245(%rip), %xmm3    # 0xe4db0
mulsd %xmm3, %xmm2
movsd 0x10d11(%rip), %xmm3    # 0xd7888
addsd %xmm3, %xmm2
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jb 0xc6c6c
movq -0x28(%rbp), %rax
movq 0x98(%rax), %rax
cmpq $0x0, 0x28(%rax)
je 0xc6be3
movq -0x28(%rbp), %rax
movq 0x98(%rax), %rax
movq 0x28(%rax), %xmm0
movaps 0xf46e(%rip), %xmm1     # 0xd6020
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0xf472(%rip), %xmm1     # 0xd6030
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x13a9b(%rip), %xmm1    # 0xda670
mulsd %xmm1, %xmm0
movsd %xmm0, -0x100(%rbp)
jmp 0xc6bf5
movsd 0x1bfcd(%rip), %xmm0    # 0xe2bb8
movsd %xmm0, -0x100(%rbp)
jmp 0xc6bf5
movsd -0x100(%rbp), %xmm0
movsd 0x1b453(%rip), %xmm2    # 0xe2058
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0x98(%rax), %rax
movq %rcx, 0x28(%rax)
movq -0x28(%rbp), %rax
movq 0x98(%rax), %rax
movq 0x20(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0x98(%rax), %rax
movq 0x28(%rax), %rsi
callq 0x6c80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0x98(%rax), %rax
movq %rcx, 0x20(%rax)
jmp 0xc6b14
jmp 0xc6c6e
movq -0x28(%rbp), %rax
movq 0x98(%rax), %rax
movq 0x20(%rax), %rax
movq -0x28(%rbp), %rcx
movq 0x98(%rcx), %rcx
addq 0x30(%rcx), %rax
movq %rax, -0x88(%rbp)
movq -0x38(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %al
movq -0x88(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0x88(%rbp)
movb %al, (%rcx)
cmpb $0x0, %al
je 0xc6ccd
jmp 0xc6c9f
movq -0x88(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x88(%rbp)
movb $0x9, (%rax)
movq -0x88(%rbp), %rcx
movq -0x28(%rbp), %rax
movq 0x98(%rax), %rax
movq 0x20(%rax), %rax
subq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0x98(%rax), %rax
movq %rcx, 0x30(%rax)
jmp 0xc6730
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x42, %eax
jne 0xc6f80
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x44, %eax
jne 0xc6f80
movq -0x38(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x5a, %eax
jne 0xc6f80
movq -0x28(%rbp), %rax
cmpq $0x0, 0xa0(%rax)
jne 0xc6d7e
movl $0x4, %esi
movl %esi, %edi
callq 0x7e1a0
movq -0x28(%rbp), %rcx
movq %rax, 0xa0(%rcx)
cmpq $0x0, %rax
jne 0xc6d7c
movq $0x0, -0x8(%rbp)
jmp 0xc8a6a
jmp 0xc6d7e
jmp 0xc6d80
jmp 0xc6d82
movq -0x28(%rbp), %rax
movq 0xa0(%rax), %rax
movq 0x28(%rax), %xmm1
movaps 0xf287(%rip), %xmm3     # 0xd6020
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
movapd 0xf28b(%rip), %xmm2     # 0xd6030
subpd %xmm2, %xmm1
movaps %xmm1, %xmm0
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm0, %xmm1
movq 0x30(%rax), %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movaps %xmm0, %xmm2
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm2, %xmm0
cvtsi2sdl -0x54(%rbp), %xmm2
movsd 0x1dfd7(%rip), %xmm3    # 0xe4db0
mulsd %xmm3, %xmm2
movsd 0x10aa3(%rip), %xmm3    # 0xd7888
addsd %xmm3, %xmm2
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jb 0xc6eda
movq -0x28(%rbp), %rax
movq 0xa0(%rax), %rax
cmpq $0x0, 0x28(%rax)
je 0xc6e51
movq -0x28(%rbp), %rax
movq 0xa0(%rax), %rax
movq 0x28(%rax), %xmm0
movaps 0xf200(%rip), %xmm1     # 0xd6020
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0xf204(%rip), %xmm1     # 0xd6030
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x1382d(%rip), %xmm1    # 0xda670
mulsd %xmm1, %xmm0
movsd %xmm0, -0x108(%rbp)
jmp 0xc6e63
movsd 0x1bd5f(%rip), %xmm0    # 0xe2bb8
movsd %xmm0, -0x108(%rbp)
jmp 0xc6e63
movsd -0x108(%rbp), %xmm0
movsd 0x1b1e5(%rip), %xmm2    # 0xe2058
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xa0(%rax), %rax
movq %rcx, 0x28(%rax)
movq -0x28(%rbp), %rax
movq 0xa0(%rax), %rax
movq 0x20(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0xa0(%rax), %rax
movq 0x28(%rax), %rsi
callq 0x6c80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xa0(%rax), %rax
movq %rcx, 0x20(%rax)
jmp 0xc6d82
jmp 0xc6edc
movq -0x28(%rbp), %rax
movq 0xa0(%rax), %rax
movq 0x20(%rax), %rax
movq -0x28(%rbp), %rcx
movq 0xa0(%rcx), %rcx
addq 0x30(%rcx), %rax
movq %rax, -0x90(%rbp)
movq -0x38(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %al
movq -0x90(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0x90(%rbp)
movb %al, (%rcx)
cmpb $0x0, %al
je 0xc6f3b
jmp 0xc6f0d
movq -0x90(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x90(%rbp)
movb $0x9, (%rax)
movq -0x90(%rbp), %rcx
movq -0x28(%rbp), %rax
movq 0xa0(%rax), %rax
movq 0x20(%rax), %rax
subq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xa0(%rax), %rax
movq %rcx, 0x30(%rax)
jmp 0xc6730
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x42, %eax
jne 0xc71f1
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x49, %eax
jne 0xc71f1
movq -0x38(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x5a, %eax
jne 0xc71f1
movq -0x28(%rbp), %rax
cmpq $0x0, 0xa8(%rax)
jne 0xc6fef
movl $0x4, %edi
movl $0x5, %esi
callq 0x7e1a0
movq -0x28(%rbp), %rcx
movq %rax, 0xa8(%rcx)
cmpq $0x0, %rax
jne 0xc6fed
movq $0x0, -0x8(%rbp)
jmp 0xc8a6a
jmp 0xc6fef
jmp 0xc6ff1
jmp 0xc6ff3
movq -0x28(%rbp), %rax
movq 0xa8(%rax), %rax
movq 0x28(%rax), %xmm1
movaps 0xf016(%rip), %xmm3     # 0xd6020
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
movapd 0xf01a(%rip), %xmm2     # 0xd6030
subpd %xmm2, %xmm1
movaps %xmm1, %xmm0
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm0, %xmm1
movq 0x30(%rax), %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movaps %xmm0, %xmm2
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm2, %xmm0
cvtsi2sdl -0x54(%rbp), %xmm2
movsd 0x1dd66(%rip), %xmm3    # 0xe4db0
mulsd %xmm3, %xmm2
movsd 0x10832(%rip), %xmm3    # 0xd7888
addsd %xmm3, %xmm2
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jb 0xc714b
movq -0x28(%rbp), %rax
movq 0xa8(%rax), %rax
cmpq $0x0, 0x28(%rax)
je 0xc70c2
movq -0x28(%rbp), %rax
movq 0xa8(%rax), %rax
movq 0x28(%rax), %xmm0
movaps 0xef8f(%rip), %xmm1     # 0xd6020
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0xef93(%rip), %xmm1     # 0xd6030
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x135bc(%rip), %xmm1    # 0xda670
mulsd %xmm1, %xmm0
movsd %xmm0, -0x110(%rbp)
jmp 0xc70d4
movsd 0x1baee(%rip), %xmm0    # 0xe2bb8
movsd %xmm0, -0x110(%rbp)
jmp 0xc70d4
movsd -0x110(%rbp), %xmm0
movsd 0x1af74(%rip), %xmm2    # 0xe2058
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xa8(%rax), %rax
movq %rcx, 0x28(%rax)
movq -0x28(%rbp), %rax
movq 0xa8(%rax), %rax
movq 0x20(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0xa8(%rax), %rax
movq 0x28(%rax), %rsi
callq 0x6c80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xa8(%rax), %rax
movq %rcx, 0x20(%rax)
jmp 0xc6ff3
jmp 0xc714d
movq -0x28(%rbp), %rax
movq 0xa8(%rax), %rax
movq 0x20(%rax), %rax
movq -0x28(%rbp), %rcx
movq 0xa8(%rcx), %rcx
addq 0x30(%rcx), %rax
movq %rax, -0x98(%rbp)
movq -0x38(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %al
movq -0x98(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0x98(%rbp)
movb %al, (%rcx)
cmpb $0x0, %al
je 0xc71ac
jmp 0xc717e
movq -0x98(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x98(%rbp)
movb $0x9, (%rax)
movq -0x98(%rbp), %rcx
movq -0x28(%rbp), %rax
movq 0xa8(%rax), %rax
movq 0x20(%rax), %rax
subq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xa8(%rax), %rax
movq %rcx, 0x30(%rax)
jmp 0xc6730
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x4f, %eax
jne 0xc7462
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x51, %eax
jne 0xc7462
movq -0x38(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x5a, %eax
jne 0xc7462
movq -0x28(%rbp), %rax
cmpq $0x0, 0x90(%rax)
jne 0xc7260
movl $0x4, %edi
movl $0x2, %esi
callq 0x7e1a0
movq -0x28(%rbp), %rcx
movq %rax, 0x90(%rcx)
cmpq $0x0, %rax
jne 0xc725e
movq $0x0, -0x8(%rbp)
jmp 0xc8a6a
jmp 0xc7260
jmp 0xc7262
jmp 0xc7264
movq -0x28(%rbp), %rax
movq 0x90(%rax), %rax
movq 0x28(%rax), %xmm1
movaps 0xeda5(%rip), %xmm3     # 0xd6020
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
movapd 0xeda9(%rip), %xmm2     # 0xd6030
subpd %xmm2, %xmm1
movaps %xmm1, %xmm0
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm0, %xmm1
movq 0x30(%rax), %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movaps %xmm0, %xmm2
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm2, %xmm0
cvtsi2sdl -0x54(%rbp), %xmm2
movsd 0x1daf5(%rip), %xmm3    # 0xe4db0
mulsd %xmm3, %xmm2
movsd 0x105c1(%rip), %xmm3    # 0xd7888
addsd %xmm3, %xmm2
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jb 0xc73bc
movq -0x28(%rbp), %rax
movq 0x90(%rax), %rax
cmpq $0x0, 0x28(%rax)
je 0xc7333
movq -0x28(%rbp), %rax
movq 0x90(%rax), %rax
movq 0x28(%rax), %xmm0
movaps 0xed1e(%rip), %xmm1     # 0xd6020
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0xed22(%rip), %xmm1     # 0xd6030
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x1334b(%rip), %xmm1    # 0xda670
mulsd %xmm1, %xmm0
movsd %xmm0, -0x118(%rbp)
jmp 0xc7345
movsd 0x1b87d(%rip), %xmm0    # 0xe2bb8
movsd %xmm0, -0x118(%rbp)
jmp 0xc7345
movsd -0x118(%rbp), %xmm0
movsd 0x1ad03(%rip), %xmm2    # 0xe2058
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0x90(%rax), %rax
movq %rcx, 0x28(%rax)
movq -0x28(%rbp), %rax
movq 0x90(%rax), %rax
movq 0x20(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0x90(%rax), %rax
movq 0x28(%rax), %rsi
callq 0x6c80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0x90(%rax), %rax
movq %rcx, 0x20(%rax)
jmp 0xc7264
jmp 0xc73be
movq -0x28(%rbp), %rax
movq 0x90(%rax), %rax
movq 0x20(%rax), %rax
movq -0x28(%rbp), %rcx
movq 0x90(%rcx), %rcx
addq 0x30(%rcx), %rax
movq %rax, -0xa0(%rbp)
movq -0x38(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %al
movq -0xa0(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0xa0(%rbp)
movb %al, (%rcx)
cmpb $0x0, %al
je 0xc741d
jmp 0xc73ef
movq -0xa0(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0xa0(%rbp)
movb $0x9, (%rax)
movq -0xa0(%rbp), %rcx
movq -0x28(%rbp), %rax
movq 0x90(%rax), %rax
movq 0x20(%rax), %rax
subq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0x90(%rax), %rax
movq %rcx, 0x30(%rax)
jmp 0xc6730
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x46, %eax
jne 0xc7488
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x5a, %eax
jne 0xc7488
movq -0x38(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x42, %eax
je 0xc74ba
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5a, %eax
jne 0xc7a37
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x4d, %eax
jne 0xc7a37
movq -0x38(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x42, %eax
jne 0xc7a37
movq -0x38(%rbp), %rax
movsbl 0x3(%rax), %eax
movl %eax, -0xa4(%rbp)
movq -0x38(%rbp), %rax
movzbl 0x4(%rax), %eax
shll $0x0, %eax
movq -0x38(%rbp), %rcx
movzbl 0x5(%rcx), %ecx
shll $0x8, %ecx
addl %ecx, %eax
movq -0x38(%rbp), %rcx
movzbl 0x6(%rcx), %ecx
shll $0x10, %ecx
addl %ecx, %eax
movq -0x38(%rbp), %rcx
movzbl 0x7(%rcx), %ecx
shll $0x18, %ecx
addl %ecx, %eax
movl %eax, -0xac(%rbp)
movq -0x28(%rbp), %rax
cmpq $0x0, 0xb0(%rax)
jne 0xc753d
movl $0x4, %edi
movl $0x6, %esi
callq 0x7e1a0
movq -0x28(%rbp), %rcx
movq %rax, 0xb0(%rcx)
cmpq $0x0, %rax
jne 0xc753b
movq $0x0, -0x8(%rbp)
jmp 0xc8a6a
jmp 0xc753d
jmp 0xc753f
jmp 0xc7541
movq -0x28(%rbp), %rax
movq 0xb0(%rax), %rax
movq 0x28(%rax), %xmm1
movaps 0xeac8(%rip), %xmm3     # 0xd6020
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
movapd 0xeacc(%rip), %xmm2     # 0xd6030
subpd %xmm2, %xmm1
movaps %xmm1, %xmm0
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm0, %xmm1
movq 0x30(%rax), %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movaps %xmm0, %xmm2
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm2, %xmm0
cvtsi2sdl -0x54(%rbp), %xmm2
movsd 0x1d818(%rip), %xmm3    # 0xe4db0
mulsd %xmm3, %xmm2
movsd 0x102e4(%rip), %xmm3    # 0xd7888
addsd %xmm3, %xmm2
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jb 0xc7699
movq -0x28(%rbp), %rax
movq 0xb0(%rax), %rax
cmpq $0x0, 0x28(%rax)
je 0xc7610
movq -0x28(%rbp), %rax
movq 0xb0(%rax), %rax
movq 0x28(%rax), %xmm0
movaps 0xea41(%rip), %xmm1     # 0xd6020
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0xea45(%rip), %xmm1     # 0xd6030
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x1306e(%rip), %xmm1    # 0xda670
mulsd %xmm1, %xmm0
movsd %xmm0, -0x120(%rbp)
jmp 0xc7622
movsd 0x1b5a0(%rip), %xmm0    # 0xe2bb8
movsd %xmm0, -0x120(%rbp)
jmp 0xc7622
movsd -0x120(%rbp), %xmm0
movsd 0x1aa26(%rip), %xmm2    # 0xe2058
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xb0(%rax), %rax
movq %rcx, 0x28(%rax)
movq -0x28(%rbp), %rax
movq 0xb0(%rax), %rax
movq 0x20(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0xb0(%rax), %rax
movq 0x28(%rax), %rsi
callq 0x6c80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xb0(%rax), %rax
movq %rcx, 0x20(%rax)
jmp 0xc7541
jmp 0xc769b
movq -0x28(%rbp), %rax
movq 0xb0(%rax), %rcx
movq 0x20(%rcx), %rax
movq 0x30(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movq -0x38(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x38(%rbp)
movl -0xa4(%rbp), %eax
movl %eax, -0x124(%rbp)
subl $0x43, %eax
je 0xc7725
jmp 0xc76d7
movl -0x124(%rbp), %eax
subl $0x49, %eax
je 0xc7743
jmp 0xc76e4
movl -0x124(%rbp), %eax
subl $0x53, %eax
je 0xc7733
jmp 0xc76f1
movl -0x124(%rbp), %eax
subl $0x63, %eax
je 0xc7725
jmp 0xc76fe
movl -0x124(%rbp), %eax
subl $0x66, %eax
je 0xc7743
jmp 0xc770b
movl -0x124(%rbp), %eax
subl $0x69, %eax
je 0xc7743
jmp 0xc7718
movl -0x124(%rbp), %eax
subl $0x73, %eax
je 0xc7733
jmp 0xc7754
movl -0xac(%rbp), %eax
movl %eax, -0xa8(%rbp)
jmp 0xc777f
movl -0xac(%rbp), %eax
shll %eax
movl %eax, -0xa8(%rbp)
jmp 0xc777f
movl -0xac(%rbp), %eax
shll $0x2, %eax
movl %eax, -0xa8(%rbp)
jmp 0xc777f
movq 0x3d875(%rip), %rax     # 0x104fd0
movq (%rax), %rdi
movl -0xa4(%rbp), %edx
leaq 0x1ded7(%rip), %rsi     # 0xe5642
movb $0x0, %al
callq 0x6a80
movq $0x0, -0x8(%rbp)
jmp 0xc8a6a
movl -0xa8(%rbp), %eax
addl $0x5, %eax
movl %eax, -0xa8(%rbp)
movl -0xa8(%rbp), %eax
andl $-0x80, %eax
cmpl $0x0, %eax
jne 0xc77bd
movl -0xa8(%rbp), %eax
movb %al, %cl
movq -0xb8(%rbp), %rax
movb %cl, (%rax)
movl $0x1, %eax
movl %eax, -0x128(%rbp)
jmp 0xc79ab
movl -0xa8(%rbp), %eax
andl $0xffffc000, %eax       # imm = 0xFFFFC000
cmpl $0x0, %eax
jne 0xc780d
movl -0xa8(%rbp), %eax
sarl $0x8, %eax
orl $0x80, %eax
movb %al, %cl
movq -0xb8(%rbp), %rax
movb %cl, (%rax)
movl -0xa8(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0xb8(%rbp), %rax
movb %cl, 0x1(%rax)
movl $0x2, %eax
movl %eax, -0x12c(%rbp)
jmp 0xc799f
movl -0xa8(%rbp), %eax
andl $0xffe00000, %eax       # imm = 0xFFE00000
cmpl $0x0, %eax
jne 0xc7877
movl -0xa8(%rbp), %eax
sarl $0x10, %eax
orl $0xc0, %eax
movb %al, %cl
movq -0xb8(%rbp), %rax
movb %cl, (%rax)
movl -0xa8(%rbp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0xb8(%rbp), %rax
movb %cl, 0x1(%rax)
movl -0xa8(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0xb8(%rbp), %rax
movb %cl, 0x2(%rax)
movl $0x3, %eax
movl %eax, -0x130(%rbp)
jmp 0xc7993
movl -0xa8(%rbp), %eax
andl $0xf0000000, %eax       # imm = 0xF0000000
cmpl $0x0, %eax
jne 0xc78fb
movl -0xa8(%rbp), %eax
sarl $0x18, %eax
orl $0xe0, %eax
movb %al, %cl
movq -0xb8(%rbp), %rax
movb %cl, (%rax)
movl -0xa8(%rbp), %eax
sarl $0x10, %eax
andl $0xff, %eax
movb %al, %cl
movq -0xb8(%rbp), %rax
movb %cl, 0x1(%rax)
movl -0xa8(%rbp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0xb8(%rbp), %rax
movb %cl, 0x2(%rax)
movl -0xa8(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0xb8(%rbp), %rax
movb %cl, 0x3(%rax)
movl $0x4, %eax
movl %eax, -0x134(%rbp)
jmp 0xc7987
movl -0xa8(%rbp), %eax
sarl $0x1c, %eax
andl $0xff, %eax
orl $0xf0, %eax
movb %al, %cl
movq -0xb8(%rbp), %rax
movb %cl, (%rax)
movl -0xa8(%rbp), %eax
sarl $0x14, %eax
andl $0xff, %eax
movb %al, %cl
movq -0xb8(%rbp), %rax
movb %cl, 0x1(%rax)
movl -0xa8(%rbp), %eax
sarl $0xc, %eax
andl $0xff, %eax
movb %al, %cl
movq -0xb8(%rbp), %rax
movb %cl, 0x2(%rax)
movl -0xa8(%rbp), %eax
sarl $0x4, %eax
andl $0xff, %eax
movb %al, %cl
movq -0xb8(%rbp), %rax
movb %cl, 0x3(%rax)
movl -0xa8(%rbp), %eax
andl $0xf, %eax
movb %al, %cl
movq -0xb8(%rbp), %rax
movb %cl, 0x4(%rax)
movl $0x5, %eax
movl %eax, -0x134(%rbp)
movl -0x134(%rbp), %eax
movl %eax, -0x130(%rbp)
movl -0x130(%rbp), %eax
movl %eax, -0x12c(%rbp)
movl -0x12c(%rbp), %eax
movl %eax, -0x128(%rbp)
movl -0x128(%rbp), %ecx
movq -0xb8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rdi
movq -0x38(%rbp), %rsi
movslq -0xa8(%rbp), %rdx
callq 0x6570
movl -0xa8(%rbp), %ecx
movq -0xb8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movl -0xa8(%rbp), %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0xb8(%rbp), %rcx
movq -0x28(%rbp), %rax
movq 0xb0(%rax), %rax
movq 0x20(%rax), %rax
subq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xb0(%rax), %rax
movq %rcx, 0x30(%rax)
jmp 0xc6730
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x51, %eax
jne 0xc7a50
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x32, %eax
je 0xc7aa3
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x55, %eax
jne 0xc7a69
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x32, %eax
je 0xc7aa3
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x51, %eax
jne 0xc7a82
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x54, %eax
je 0xc7aa3
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x43, %eax
jne 0xc7cf3
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x51, %eax
jne 0xc7cf3
movq -0x38(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x5a, %eax
jne 0xc7cf3
movq -0x28(%rbp), %rax
cmpq $0x0, 0xb8(%rax)
jne 0xc7af1
movl $0x4, %edi
movl $0x7, %esi
callq 0x7e1a0
movq -0x28(%rbp), %rcx
movq %rax, 0xb8(%rcx)
cmpq $0x0, %rax
jne 0xc7aef
movq $0x0, -0x8(%rbp)
jmp 0xc8a6a
jmp 0xc7af1
jmp 0xc7af3
jmp 0xc7af5
movq -0x28(%rbp), %rax
movq 0xb8(%rax), %rax
movq 0x28(%rax), %xmm1
movaps 0xe514(%rip), %xmm3     # 0xd6020
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
movapd 0xe518(%rip), %xmm2     # 0xd6030
subpd %xmm2, %xmm1
movaps %xmm1, %xmm0
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm0, %xmm1
movq 0x30(%rax), %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movaps %xmm0, %xmm2
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm2, %xmm0
cvtsi2sdl -0x54(%rbp), %xmm2
movsd 0x1d264(%rip), %xmm3    # 0xe4db0
mulsd %xmm3, %xmm2
movsd 0xfd30(%rip), %xmm3     # 0xd7888
addsd %xmm3, %xmm2
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jb 0xc7c4d
movq -0x28(%rbp), %rax
movq 0xb8(%rax), %rax
cmpq $0x0, 0x28(%rax)
je 0xc7bc4
movq -0x28(%rbp), %rax
movq 0xb8(%rax), %rax
movq 0x28(%rax), %xmm0
movaps 0xe48d(%rip), %xmm1     # 0xd6020
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0xe491(%rip), %xmm1     # 0xd6030
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x12aba(%rip), %xmm1    # 0xda670
mulsd %xmm1, %xmm0
movsd %xmm0, -0x140(%rbp)
jmp 0xc7bd6
movsd 0x1afec(%rip), %xmm0    # 0xe2bb8
movsd %xmm0, -0x140(%rbp)
jmp 0xc7bd6
movsd -0x140(%rbp), %xmm0
movsd 0x1a472(%rip), %xmm2    # 0xe2058
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xb8(%rax), %rax
movq %rcx, 0x28(%rax)
movq -0x28(%rbp), %rax
movq 0xb8(%rax), %rax
movq 0x20(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0xb8(%rax), %rax
movq 0x28(%rax), %rsi
callq 0x6c80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xb8(%rax), %rax
movq %rcx, 0x20(%rax)
jmp 0xc7af5
jmp 0xc7c4f
movq -0x28(%rbp), %rax
movq 0xb8(%rax), %rax
movq 0x20(%rax), %rax
movq -0x28(%rbp), %rcx
movq 0xb8(%rcx), %rcx
addq 0x30(%rcx), %rax
movq %rax, -0xc0(%rbp)
movq -0x38(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %al
movq -0xc0(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0xc0(%rbp)
movb %al, (%rcx)
cmpb $0x0, %al
je 0xc7cae
jmp 0xc7c80
movq -0xc0(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0xc0(%rbp)
movb $0x9, (%rax)
movq -0xc0(%rbp), %rcx
movq -0x28(%rbp), %rax
movq 0xb8(%rax), %rax
movq 0x20(%rax), %rax
subq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xb8(%rax), %rax
movq %rcx, 0x30(%rax)
jmp 0xc6730
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x52, %eax
jne 0xc7d0c
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x32, %eax
je 0xc7d78
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x45, %eax
jne 0xc7d25
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x32, %eax
je 0xc7d78
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x43, %eax
jne 0xc7d3e
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x53, %eax
je 0xc7d78
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x42, %eax
jne 0xc7d57
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x43, %eax
je 0xc7d78
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x52, %eax
jne 0xc7fc8
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x54, %eax
jne 0xc7fc8
movq -0x38(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x5a, %eax
jne 0xc7fc8
movq -0x28(%rbp), %rax
cmpq $0x0, 0xc0(%rax)
jne 0xc7dc6
movl $0x4, %edi
movl $0x8, %esi
callq 0x7e1a0
movq -0x28(%rbp), %rcx
movq %rax, 0xc0(%rcx)
cmpq $0x0, %rax
jne 0xc7dc4
movq $0x0, -0x8(%rbp)
jmp 0xc8a6a
jmp 0xc7dc6
jmp 0xc7dc8
jmp 0xc7dca
movq -0x28(%rbp), %rax
movq 0xc0(%rax), %rax
movq 0x28(%rax), %xmm1
movaps 0xe23f(%rip), %xmm3     # 0xd6020
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
movapd 0xe243(%rip), %xmm2     # 0xd6030
subpd %xmm2, %xmm1
movaps %xmm1, %xmm0
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm0, %xmm1
movq 0x30(%rax), %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movaps %xmm0, %xmm2
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm2, %xmm0
cvtsi2sdl -0x54(%rbp), %xmm2
movsd 0x1cf8f(%rip), %xmm3    # 0xe4db0
mulsd %xmm3, %xmm2
movsd 0xfa5b(%rip), %xmm3     # 0xd7888
addsd %xmm3, %xmm2
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jb 0xc7f22
movq -0x28(%rbp), %rax
movq 0xc0(%rax), %rax
cmpq $0x0, 0x28(%rax)
je 0xc7e99
movq -0x28(%rbp), %rax
movq 0xc0(%rax), %rax
movq 0x28(%rax), %xmm0
movaps 0xe1b8(%rip), %xmm1     # 0xd6020
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0xe1bc(%rip), %xmm1     # 0xd6030
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x127e5(%rip), %xmm1    # 0xda670
mulsd %xmm1, %xmm0
movsd %xmm0, -0x148(%rbp)
jmp 0xc7eab
movsd 0x1ad17(%rip), %xmm0    # 0xe2bb8
movsd %xmm0, -0x148(%rbp)
jmp 0xc7eab
movsd -0x148(%rbp), %xmm0
movsd 0x1a19d(%rip), %xmm2    # 0xe2058
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xc0(%rax), %rax
movq %rcx, 0x28(%rax)
movq -0x28(%rbp), %rax
movq 0xc0(%rax), %rax
movq 0x20(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0xc0(%rax), %rax
movq 0x28(%rax), %rsi
callq 0x6c80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xc0(%rax), %rax
movq %rcx, 0x20(%rax)
jmp 0xc7dca
jmp 0xc7f24
movq -0x28(%rbp), %rax
movq 0xc0(%rax), %rax
movq 0x20(%rax), %rax
movq -0x28(%rbp), %rcx
movq 0xc0(%rcx), %rcx
addq 0x30(%rcx), %rax
movq %rax, -0xc8(%rbp)
movq -0x38(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %al
movq -0xc8(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0xc8(%rbp)
movb %al, (%rcx)
cmpb $0x0, %al
je 0xc7f83
jmp 0xc7f55
movq -0xc8(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0xc8(%rbp)
movb $0x9, (%rax)
movq -0xc8(%rbp), %rcx
movq -0x28(%rbp), %rax
movq 0xc0(%rax), %rax
movq 0x20(%rax), %rax
subq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xc0(%rax), %rax
movq %rcx, 0x30(%rax)
jmp 0xc6730
movq -0x38(%rbp), %rax
movsbl 0x2(%rax), %eax
addl $-0x41, %eax
movl %eax, %ecx
movq %rcx, -0x150(%rbp)
subl $0x32, %eax
ja 0xc87ad
movq -0x150(%rbp), %rax
leaq 0x1d049(%rip), %rcx     # 0xe503c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x38(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %cl
movq -0x48(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x48(%rbp)
movb %cl, (%rax)
jmp 0xc87da
movq -0x38(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %cl
movq -0x48(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x48(%rbp)
movb %cl, (%rax)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %cl
movq -0x48(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x48(%rbp)
movb %cl, (%rax)
jmp 0xc87da
movq -0x38(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %cl
movq -0x48(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x48(%rbp)
movb %cl, (%rax)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %cl
movq -0x48(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x48(%rbp)
movb %cl, (%rax)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %cl
movq -0x48(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x48(%rbp)
movb %cl, (%rax)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %cl
movq -0x48(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x48(%rbp)
movb %cl, (%rax)
jmp 0xc87da
movq -0x38(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %cl
movq -0x48(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x48(%rbp)
movb %cl, (%rax)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %cl
movq -0x48(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x48(%rbp)
movb %cl, (%rax)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %cl
movq -0x48(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x48(%rbp)
movb %cl, (%rax)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %cl
movq -0x48(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x48(%rbp)
movb %cl, (%rax)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %cl
movq -0x48(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x48(%rbp)
movb %cl, (%rax)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %cl
movq -0x48(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x48(%rbp)
movb %cl, (%rax)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %cl
movq -0x48(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x48(%rbp)
movb %cl, (%rax)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %cl
movq -0x48(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x48(%rbp)
movb %cl, (%rax)
jmp 0xc87da
movq -0x28(%rbp), %rax
cmpq $0x0, 0xc8(%rax)
jne 0xc827b
movl $0x4, %edi
movl $0x9, %esi
callq 0x7e1a0
movq -0x28(%rbp), %rcx
movq %rax, 0xc8(%rcx)
cmpq $0x0, %rax
jne 0xc8279
movq $0x0, -0x8(%rbp)
jmp 0xc8a6a
jmp 0xc827b
jmp 0xc827d
jmp 0xc827f
movq -0x28(%rbp), %rax
movq 0xc8(%rax), %rax
movq 0x28(%rax), %xmm1
movaps 0xdd8a(%rip), %xmm3     # 0xd6020
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
movapd 0xdd8e(%rip), %xmm2     # 0xd6030
subpd %xmm2, %xmm1
movaps %xmm1, %xmm0
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm0, %xmm1
movq 0x30(%rax), %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movaps %xmm0, %xmm2
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm2, %xmm0
cvtsi2sdl -0x54(%rbp), %xmm2
movsd 0x1cada(%rip), %xmm3    # 0xe4db0
mulsd %xmm3, %xmm2
movsd 0xf5a6(%rip), %xmm3     # 0xd7888
addsd %xmm3, %xmm2
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jb 0xc83d7
movq -0x28(%rbp), %rax
movq 0xc8(%rax), %rax
cmpq $0x0, 0x28(%rax)
je 0xc834e
movq -0x28(%rbp), %rax
movq 0xc8(%rax), %rax
movq 0x28(%rax), %xmm0
movaps 0xdd03(%rip), %xmm1     # 0xd6020
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0xdd07(%rip), %xmm1     # 0xd6030
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x12330(%rip), %xmm1    # 0xda670
mulsd %xmm1, %xmm0
movsd %xmm0, -0x158(%rbp)
jmp 0xc8360
movsd 0x1a862(%rip), %xmm0    # 0xe2bb8
movsd %xmm0, -0x158(%rbp)
jmp 0xc8360
movsd -0x158(%rbp), %xmm0
movsd 0x19ce8(%rip), %xmm2    # 0xe2058
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xc8(%rax), %rax
movq %rcx, 0x28(%rax)
movq -0x28(%rbp), %rax
movq 0xc8(%rax), %rax
movq 0x20(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0xc8(%rax), %rax
movq 0x28(%rax), %rsi
callq 0x6c80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xc8(%rax), %rax
movq %rcx, 0x20(%rax)
jmp 0xc827f
jmp 0xc83d9
movq -0x28(%rbp), %rax
movq 0xc8(%rax), %rax
movq 0x20(%rax), %rax
movq -0x28(%rbp), %rcx
movq 0xc8(%rcx), %rcx
addq 0x30(%rcx), %rax
movq %rax, -0xd0(%rbp)
movq -0x38(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %al
movq -0xd0(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0xd0(%rbp)
movb %al, (%rcx)
cmpb $0x0, %al
je 0xc8438
jmp 0xc840a
movq -0xd0(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0xd0(%rbp)
movb $0x9, (%rax)
movq -0xd0(%rbp), %rcx
movq -0x28(%rbp), %rax
movq 0xc8(%rax), %rax
movq 0x20(%rax), %rax
subq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0xc8(%rax), %rax
movq %rcx, 0x30(%rax)
jmp 0xc87da
movq -0x38(%rbp), %rax
movsbl 0x3(%rax), %eax
movl %eax, -0xd4(%rbp)
movq -0x38(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0xdc(%rbp)
movq -0x38(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x38(%rbp)
movl -0xd4(%rbp), %eax
movl %eax, -0x15c(%rbp)
subl $0x43, %eax
je 0xc8505
jmp 0xc84b7
movl -0x15c(%rbp), %eax
subl $0x49, %eax
je 0xc8523
jmp 0xc84c4
movl -0x15c(%rbp), %eax
subl $0x53, %eax
je 0xc8513
jmp 0xc84d1
movl -0x15c(%rbp), %eax
subl $0x63, %eax
je 0xc8505
jmp 0xc84de
movl -0x15c(%rbp), %eax
subl $0x66, %eax
je 0xc8523
jmp 0xc84eb
movl -0x15c(%rbp), %eax
subl $0x69, %eax
je 0xc8523
jmp 0xc84f8
movl -0x15c(%rbp), %eax
subl $0x73, %eax
je 0xc8513
jmp 0xc8534
movl -0xdc(%rbp), %eax
movl %eax, -0xd8(%rbp)
jmp 0xc855f
movl -0xdc(%rbp), %eax
shll %eax
movl %eax, -0xd8(%rbp)
jmp 0xc855f
movl -0xdc(%rbp), %eax
shll $0x2, %eax
movl %eax, -0xd8(%rbp)
jmp 0xc855f
movq 0x3ca95(%rip), %rax     # 0x104fd0
movq (%rax), %rdi
movl -0xd4(%rbp), %edx
leaq 0x1d0f7(%rip), %rsi     # 0xe5642
movb $0x0, %al
callq 0x6a80
movq $0x0, -0x8(%rbp)
jmp 0xc8a6a
movl -0xd8(%rbp), %eax
addl $0x5, %eax
movl %eax, -0xd8(%rbp)
movl -0xd8(%rbp), %eax
andl $-0x80, %eax
cmpl $0x0, %eax
jne 0xc859a
movl -0xd8(%rbp), %eax
movb %al, %cl
movq -0x48(%rbp), %rax
movb %cl, (%rax)
movl $0x1, %eax
movl %eax, -0x160(%rbp)
jmp 0xc875b
movl -0xd8(%rbp), %eax
andl $0xffffc000, %eax       # imm = 0xFFFFC000
cmpl $0x0, %eax
jne 0xc85e4
movl -0xd8(%rbp), %eax
sarl $0x8, %eax
orl $0x80, %eax
movb %al, %cl
movq -0x48(%rbp), %rax
movb %cl, (%rax)
movl -0xd8(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x48(%rbp), %rax
movb %cl, 0x1(%rax)
movl $0x2, %eax
movl %eax, -0x164(%rbp)
jmp 0xc874f
movl -0xd8(%rbp), %eax
andl $0xffe00000, %eax       # imm = 0xFFE00000
cmpl $0x0, %eax
jne 0xc8645
movl -0xd8(%rbp), %eax
sarl $0x10, %eax
orl $0xc0, %eax
movb %al, %cl
movq -0x48(%rbp), %rax
movb %cl, (%rax)
movl -0xd8(%rbp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x48(%rbp), %rax
movb %cl, 0x1(%rax)
movl -0xd8(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x48(%rbp), %rax
movb %cl, 0x2(%rax)
movl $0x3, %eax
movl %eax, -0x168(%rbp)
jmp 0xc8743
movl -0xd8(%rbp), %eax
andl $0xf0000000, %eax       # imm = 0xF0000000
cmpl $0x0, %eax
jne 0xc86ba
movl -0xd8(%rbp), %eax
sarl $0x18, %eax
orl $0xe0, %eax
movb %al, %cl
movq -0x48(%rbp), %rax
movb %cl, (%rax)
movl -0xd8(%rbp), %eax
sarl $0x10, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x48(%rbp), %rax
movb %cl, 0x1(%rax)
movl -0xd8(%rbp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x48(%rbp), %rax
movb %cl, 0x2(%rax)
movl -0xd8(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x48(%rbp), %rax
movb %cl, 0x3(%rax)
movl $0x4, %eax
movl %eax, -0x16c(%rbp)
jmp 0xc8737
movl -0xd8(%rbp), %eax
sarl $0x1c, %eax
andl $0xff, %eax
orl $0xf0, %eax
movb %al, %cl
movq -0x48(%rbp), %rax
movb %cl, (%rax)
movl -0xd8(%rbp), %eax
sarl $0x14, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x48(%rbp), %rax
movb %cl, 0x1(%rax)
movl -0xd8(%rbp), %eax
sarl $0xc, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x48(%rbp), %rax
movb %cl, 0x2(%rax)
movl -0xd8(%rbp), %eax
sarl $0x4, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x48(%rbp), %rax
movb %cl, 0x3(%rax)
movl -0xd8(%rbp), %eax
andl $0xf, %eax
movb %al, %cl
movq -0x48(%rbp), %rax
movb %cl, 0x4(%rax)
movl $0x5, %eax
movl %eax, -0x16c(%rbp)
movl -0x16c(%rbp), %eax
movl %eax, -0x168(%rbp)
movl -0x168(%rbp), %eax
movl %eax, -0x164(%rbp)
movl -0x164(%rbp), %eax
movl %eax, -0x160(%rbp)
movl -0x160(%rbp), %ecx
movq -0x48(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rdi
movq -0x38(%rbp), %rsi
movslq -0xd8(%rbp), %rdx
callq 0x6570
movl -0xd8(%rbp), %ecx
movq -0x48(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x48(%rbp)
movl -0xd8(%rbp), %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
jmp 0xc87da
movq 0x3c81c(%rip), %rax     # 0x104fd0
movq (%rax), %rdi
movq -0x38(%rbp), %rax
movsbl 0x2(%rax), %edx
leaq 0x1cea4(%rip), %rsi     # 0xe566a
movb $0x0, %al
callq 0x6a80
movq $0x0, -0x8(%rbp)
jmp 0xc8a6a
jmp 0xc6730
jmp 0xc87e1
jmp 0xc87e3
jmp 0xc87e5
movq -0x60(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x60(%rbp), %rcx
movq 0x30(%rcx), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
ja 0xc88bb
movq -0x60(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0xc884e
movq -0x60(%rbp), %rax
movq 0x28(%rax), %xmm0
movaps 0xd803(%rip), %xmm1     # 0xd6020
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0xd807(%rip), %xmm1     # 0xd6030
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x11e30(%rip), %xmm1    # 0xda670
mulsd %xmm1, %xmm0
movsd %xmm0, -0x178(%rbp)
jmp 0xc8860
movsd 0x1a362(%rip), %xmm0    # 0xe2bb8
movsd %xmm0, -0x178(%rbp)
jmp 0xc8860
movsd -0x178(%rbp), %xmm0
movsd 0x197e8(%rip), %xmm2    # 0xe2058
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x60(%rbp), %rax
movq 0x20(%rax), %rdi
movq -0x60(%rbp), %rax
movq 0x28(%rax), %rsi
callq 0x6c80
movq %rax, %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x20(%rax)
jmp 0xc87e5
jmp 0xc88bd
movq -0x60(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x60(%rbp), %rdx
movq 0x30(%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, 0x30(%rdx)
movb $0x0, (%rax,%rcx)
movq -0x20(%rbp), %rax
movq 0x40(%rax), %rax
movq 0x70(%rax), %rdi
movq -0x60(%rbp), %rax
movq 0x20(%rax), %rsi
movslq -0x64(%rbp), %rax
addq %rax, %rsi
movq -0x60(%rbp), %rax
movq 0x30(%rax), %rdx
movslq -0x64(%rbp), %rax
subq %rax, %rdx
callq 0x981f0
movq %rax, -0x70(%rbp)
movq -0x20(%rbp), %rax
movq 0x40(%rax), %rax
movq 0x68(%rax), %rdi
movq -0x70(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0xc9d70
movl %eax, -0x74(%rbp)
cmpl $0x0, -0x68(%rbp)
jge 0xc893e
movq $0x0, -0x8(%rbp)
jmp 0xc8a6a
cmpl $0x0, -0x68(%rbp)
jne 0xc8952
movslq -0x64(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x30(%rax)
jmp 0xc8984
movq -0x20(%rbp), %rax
movq 0x40(%rax), %rax
movl 0x58(%rax), %edx
movq -0x20(%rbp), %rax
movq 0x40(%rax), %rax
movq 0x68(%rax), %rax
movq 0x20(%rax), %rax
movl -0x74(%rbp), %ecx
movl %edx, (%rax,%rcx,4)
movq -0x20(%rbp), %rax
movq 0x40(%rax), %rax
movl 0x58(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x58(%rax)
jmp 0xc8986
movq -0x20(%rbp), %rax
movq 0x40(%rax), %rax
movq 0x68(%rax), %rax
movq 0x20(%rax), %rax
movl -0x74(%rbp), %ecx
movl (%rax,%rcx,4), %ecx
movq -0x30(%rbp), %rax
movl %ecx, 0x48(%rax)
movq -0x20(%rbp), %rax
movq 0x1c0(%rax), %rdi
movq -0x30(%rbp), %rax
movl 0x48(%rax), %esi
callq 0x8c870
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rax
movq 0x30(%rax), %rax
movl %eax, %ecx
movq -0x30(%rbp), %rax
movl %ecx, 0x3c(%rax)
movq -0x48(%rbp), %rax
movq -0x28(%rbp), %rcx
movq 0x88(%rcx), %rcx
movq 0x20(%rcx), %rcx
movq -0x30(%rbp), %rdx
movslq 0x3c(%rdx), %rdx
addq %rdx, %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x30(%rbp), %rax
movl %ecx, 0x40(%rax)
movq -0x48(%rbp), %rcx
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rax
movq 0x20(%rax), %rax
subq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rax
movq %rcx, 0x30(%rax)
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rax
movq 0x30(%rax), %rax
movq -0x28(%rbp), %rcx
movq 0x88(%rcx), %rcx
cmpq 0x28(%rcx), %rax
ja 0xc8a43
jmp 0xc8a62
leaq 0x1cc37(%rip), %rdi     # 0xe5681
leaq 0x1ca27(%rip), %rsi     # 0xe5478
movl $0x919, %edx            # imm = 0x919
leaq 0x1ccab(%rip), %rcx     # 0xe5708
callq 0x6450
movq -0x50(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x180, %rsp            # imm = 0x180
popq %rbp
retq
nopw (%rax,%rax)