// File: jvanns[P]verbatim/sub/lmdb/libraries/liblmdb/mdb.c
// Function: mdb_node_move
static int
mdb_node_move(MDB_cursor *csrc, MDB_cursor *cdst)
{
	MDB_node		*srcnode;
	MDB_val		 key, data;
	pgno_t	srcpg;
	MDB_cursor mn;
	int			 rc;
	unsigned short flags;

	DKBUF;

	/* Mark src and dst as dirty. */
	if ((rc = mdb_page_touch(csrc)) ||
	    (rc = mdb_page_touch(cdst)))
		return rc;

	if (IS_LEAF2(csrc->mc_pg[csrc->mc_top])) {
		key.mv_size = csrc->mc_db->md_pad;
		key.mv_data = LEAF2KEY(csrc->mc_pg[csrc->mc_top], csrc->mc_ki[csrc->mc_top], key.mv_size);
		data.mv_size = 0;
		data.mv_data = NULL;
		srcpg = 0;
		flags = 0;
	} else {
		srcnode = NODEPTR(csrc->mc_pg[csrc->mc_top], csrc->mc_ki[csrc->mc_top]);
		mdb_cassert(csrc, !((size_t)srcnode & 1));
		srcpg = NODEPGNO(srcnode);
		flags = srcnode->mn_flags;
		if (csrc->mc_ki[csrc->mc_top] == 0 && IS_BRANCH(csrc->mc_pg[csrc->mc_top])) {
			unsigned int snum = csrc->mc_snum;
			MDB_node *s2;
			/* must find the lowest key below src */
			rc = mdb_page_search_lowest(csrc);
			if (rc)
				return rc;
			if (IS_LEAF2(csrc->mc_pg[csrc->mc_top])) {
				key.mv_size = csrc->mc_db->md_pad;
				key.mv_data = LEAF2KEY(csrc->mc_pg[csrc->mc_top], 0, key.mv_size);
			} else {
				s2 = NODEPTR(csrc->mc_pg[csrc->mc_top], 0);
				key.mv_size = NODEKSZ(s2);
				key.mv_data = NODEKEY(s2);
			}
			csrc->mc_snum = snum--;
			csrc->mc_top = snum;
		} else {
			key.mv_size = NODEKSZ(srcnode);
			key.mv_data = NODEKEY(srcnode);
		}
		data.mv_size = NODEDSZ(srcnode);
		data.mv_data = NODEDATA(srcnode);
	}
	if (IS_BRANCH(cdst->mc_pg[cdst->mc_top]) && cdst->mc_ki[cdst->mc_top] == 0) {
		unsigned int snum = cdst->mc_snum;
		MDB_node *s2;
		MDB_val bkey;
		/* must find the lowest key below dst */
		mdb_cursor_copy(cdst, &mn);
		rc = mdb_page_search_lowest(&mn);
		if (rc)
			return rc;
		if (IS_LEAF2(mn.mc_pg[mn.mc_top])) {
			bkey.mv_size = mn.mc_db->md_pad;
			bkey.mv_data = LEAF2KEY(mn.mc_pg[mn.mc_top], 0, bkey.mv_size);
		} else {
			s2 = NODEPTR(mn.mc_pg[mn.mc_top], 0);
			bkey.mv_size = NODEKSZ(s2);
			bkey.mv_data = NODEKEY(s2);
		}
		mn.mc_snum = snum--;
		mn.mc_top = snum;
		mn.mc_ki[snum] = 0;
		rc = mdb_update_key(&mn, &bkey);
		if (rc)
			return rc;
	}

	DPRINTF(("moving %s node %u [%s] on page %"Z"u to node %u on page %"Z"u",
	    IS_LEAF(csrc->mc_pg[csrc->mc_top]) ? "leaf" : "branch",
	    csrc->mc_ki[csrc->mc_top],
		DKEY(&key),
	    csrc->mc_pg[csrc->mc_top]->mp_pgno,
	    cdst->mc_ki[cdst->mc_top], cdst->mc_pg[cdst->mc_top]->mp_pgno));

	/* Add the node to the destination page.
	 */
	rc = mdb_node_add(cdst, cdst->mc_ki[cdst->mc_top], &key, &data, srcpg, flags);
	if (rc != MDB_SUCCESS)
		return rc;

	/* Delete the node from the source page.
	 */
	mdb_node_del(csrc, key.mv_size);

	{
		/* Adjust other cursors pointing to mp */
		MDB_cursor *m2, *m3;
		MDB_dbi dbi = csrc->mc_dbi;
		MDB_page *mp = csrc->mc_pg[csrc->mc_top];

		for (m2 = csrc->mc_txn->mt_cursors[dbi]; m2; m2=m2->mc_next) {
			if (csrc->mc_flags & C_SUB)
				m3 = &m2->mc_xcursor->mx_cursor;
			else
				m3 = m2;
			if (m3 == csrc) continue;
			if (m3->mc_pg[csrc->mc_top] == mp && m3->mc_ki[csrc->mc_top] ==
				csrc->mc_ki[csrc->mc_top]) {
				m3->mc_pg[csrc->mc_top] = cdst->mc_pg[cdst->mc_top];
				m3->mc_ki[csrc->mc_top] = cdst->mc_ki[cdst->mc_top];
			}
		}
	}

	/* Update the parent separators.
	 */
	if (csrc->mc_ki[csrc->mc_top] == 0) {
		if (csrc->mc_ki[csrc->mc_top-1] != 0) {
			if (IS_LEAF2(csrc->mc_pg[csrc->mc_top])) {
				key.mv_data = LEAF2KEY(csrc->mc_pg[csrc->mc_top], 0, key.mv_size);
			} else {
				srcnode = NODEPTR(csrc->mc_pg[csrc->mc_top], 0);
				key.mv_size = NODEKSZ(srcnode);
				key.mv_data = NODEKEY(srcnode);
			}
			DPRINTF(("update separator for source page %"Z"u to [%s]",
				csrc->mc_pg[csrc->mc_top]->mp_pgno, DKEY(&key)));
			mdb_cursor_copy(csrc, &mn);
			mn.mc_snum--;
			mn.mc_top--;
			if ((rc = mdb_update_key(&mn, &key)) != MDB_SUCCESS)
				return rc;
		}
		if (IS_BRANCH(csrc->mc_pg[csrc->mc_top])) {
			MDB_val	 nullkey;
			indx_t	ix = csrc->mc_ki[csrc->mc_top];
			nullkey.mv_size = 0;
			csrc->mc_ki[csrc->mc_top] = 0;
			rc = mdb_update_key(csrc, &nullkey);
			csrc->mc_ki[csrc->mc_top] = ix;
			mdb_cassert(csrc, rc == MDB_SUCCESS);
		}
	}

	if (cdst->mc_ki[cdst->mc_top] == 0) {
		if (cdst->mc_ki[cdst->mc_top-1] != 0) {
			if (IS_LEAF2(csrc->mc_pg[csrc->mc_top])) {
				key.mv_data = LEAF2KEY(cdst->mc_pg[cdst->mc_top], 0, key.mv_size);
			} else {
				srcnode = NODEPTR(cdst->mc_pg[cdst->mc_top], 0);
				key.mv_size = NODEKSZ(srcnode);
				key.mv_data = NODEKEY(srcnode);
			}
			DPRINTF(("update separator for destination page %"Z"u to [%s]",
				cdst->mc_pg[cdst->mc_top]->mp_pgno, DKEY(&key)));
			mdb_cursor_copy(cdst, &mn);
			mn.mc_snum--;
			mn.mc_top--;
			if ((rc = mdb_update_key(&mn, &key)) != MDB_SUCCESS)
				return rc;
		}
		if (IS_BRANCH(cdst->mc_pg[cdst->mc_top])) {
			MDB_val	 nullkey;
			indx_t	ix = cdst->mc_ki[cdst->mc_top];
			nullkey.mv_size = 0;
			cdst->mc_ki[cdst->mc_top] = 0;
			rc = mdb_update_key(cdst, &nullkey);
			cdst->mc_ki[cdst->mc_top] = ix;
			mdb_cassert(cdst, rc == MDB_SUCCESS);
		}
	}

	return MDB_SUCCESS;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x260, %rsp            # imm = 0x260
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0xf430
movl %eax, -0x1d4(%rbp)
cmpl $0x0, %eax
jne 0x1119b
movq -0x18(%rbp), %rdi
callq 0xf430
movl %eax, -0x1d4(%rbp)
cmpl $0x0, %eax
je 0x111a9
movl -0x1d4(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x11b93
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
movzwl 0xa(%rax), %eax
andl $0x20, %eax
cmpl $0x20, %eax
jne 0x1122f
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movl (%rax), %eax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
addq $0x10, %rax
movq -0x10(%rbp), %rcx
movq -0x10(%rbp), %rdx
movzwl 0x42(%rdx), %edx
movzwl 0x148(%rcx,%rdx,2), %ecx
imulq -0x30(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq $0x0, -0x40(%rbp)
movq $0x0, -0x38(%rbp)
movq $0x0, -0x48(%rbp)
movw $0x0, -0x1d6(%rbp)
jmp 0x11474
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
movq -0x10(%rbp), %rcx
movq -0x10(%rbp), %rdx
movzwl 0x42(%rdx), %edx
movq 0x48(%rcx,%rdx,8), %rcx
movq -0x10(%rbp), %rdx
movq -0x10(%rbp), %rsi
movzwl 0x42(%rsi), %esi
movzwl 0x148(%rdx,%rsi,2), %edx
movzwl 0x10(%rcx,%rdx,2), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
jne 0x11284
jmp 0x112b0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rdi
leaq 0x6970(%rip), %rsi      # 0x17c07
leaq 0x6980(%rip), %rdx      # 0x17c1e
leaq 0x616a(%rip), %rcx      # 0x1740f
movl $0x1d92, %r8d           # imm = 0x1D92
callq 0x133a0
movq -0x20(%rbp), %rax
movzwl (%rax), %eax
movq -0x20(%rbp), %rcx
movzwl 0x2(%rcx), %ecx
shlq $0x10, %rcx
orq %rcx, %rax
movq -0x20(%rbp), %rcx
movzwl 0x4(%rcx), %ecx
shlq $0x20, %rcx
orq %rcx, %rax
movq %rax, -0x48(%rbp)
movq -0x20(%rbp), %rax
movw 0x4(%rax), %ax
movw %ax, -0x1d6(%rbp)
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movzwl 0x148(%rax,%rcx,2), %eax
cmpl $0x0, %eax
jne 0x11428
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
movzwl 0xa(%rax), %eax
andl $0x1, %eax
cmpl $0x1, %eax
jne 0x11428
movq -0x10(%rbp), %rax
movzwl 0x40(%rax), %eax
movl %eax, -0x1dc(%rbp)
movq -0x10(%rbp), %rdi
callq 0x121a0
movl %eax, -0x1d4(%rbp)
cmpl $0x0, -0x1d4(%rbp)
je 0x1135a
movl -0x1d4(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x11b93
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
movzwl 0xa(%rax), %eax
andl $0x20, %eax
cmpl $0x20, %eax
jne 0x113a8
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movl (%rax), %eax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
addq $0x10, %rax
imulq $0x0, -0x30(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
jmp 0x113f9
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
movq -0x10(%rbp), %rcx
movq -0x10(%rbp), %rdx
movzwl 0x42(%rdx), %edx
movq 0x48(%rcx,%rdx,8), %rcx
movzwl 0x10(%rcx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movzwl 0x6(%rax), %eax
movq %rax, -0x30(%rbp)
movq -0x1e8(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x28(%rbp)
movl -0x1dc(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x1dc(%rbp)
movw %ax, %cx
movq -0x10(%rbp), %rax
movw %cx, 0x40(%rax)
movl -0x1dc(%rbp), %eax
movw %ax, %cx
movq -0x10(%rbp), %rax
movw %cx, 0x42(%rax)
jmp 0x11440
movq -0x20(%rbp), %rax
movzwl 0x6(%rax), %eax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movzwl (%rax), %eax
movq -0x20(%rbp), %rcx
movzwl 0x2(%rcx), %ecx
shll $0x10, %ecx
orl %ecx, %eax
movl %eax, %eax
movq %rax, -0x40(%rbp)
movq -0x20(%rbp), %rax
addq $0x8, %rax
movq -0x20(%rbp), %rcx
movzwl 0x6(%rcx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
movzwl 0xa(%rax), %eax
andl $0x1, %eax
cmpl $0x1, %eax
jne 0x11605
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movzwl 0x148(%rax,%rcx,2), %eax
cmpl $0x0, %eax
jne 0x11605
movq -0x18(%rbp), %rax
movzwl 0x40(%rax), %eax
movl %eax, -0x1ec(%rbp)
movq -0x18(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x11080
leaq -0x1d0(%rbp), %rdi
callq 0x121a0
movl %eax, -0x1d4(%rbp)
cmpl $0x0, -0x1d4(%rbp)
je 0x114f9
movl -0x1d4(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x11b93
movzwl -0x18e(%rbp), %eax
movq -0x188(%rbp,%rax,8), %rax
movzwl 0xa(%rax), %eax
andl $0x20, %eax
cmpl $0x20, %eax
jne 0x1154b
movq -0x1a8(%rbp), %rax
movl (%rax), %eax
movq %rax, -0x208(%rbp)
movzwl -0x18e(%rbp), %eax
movq -0x188(%rbp,%rax,8), %rax
addq $0x10, %rax
imulq $0x0, -0x208(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x200(%rbp)
jmp 0x1159e
movzwl -0x18e(%rbp), %eax
movq -0x188(%rbp,%rax,8), %rax
movzwl -0x18e(%rbp), %ecx
movq -0x188(%rbp,%rcx,8), %rcx
movzwl 0x10(%rcx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x1f8(%rbp)
movq -0x1f8(%rbp), %rax
movzwl 0x6(%rax), %eax
movq %rax, -0x208(%rbp)
movq -0x1f8(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x200(%rbp)
movl -0x1ec(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x1ec(%rbp)
movw %ax, -0x190(%rbp)
movl -0x1ec(%rbp), %eax
movw %ax, -0x18e(%rbp)
movl -0x1ec(%rbp), %eax
movw $0x0, -0x88(%rbp,%rax,2)
leaq -0x1d0(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x9d50
movl %eax, -0x1d4(%rbp)
cmpl $0x0, -0x1d4(%rbp)
je 0x11603
movl -0x1d4(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x11b93
jmp 0x11605
movq -0x18(%rbp), %rdi
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movw 0x148(%rax,%rcx,2), %ax
movq -0x48(%rbp), %r8
movzwl -0x1d6(%rbp), %r9d
leaq -0x30(%rbp), %rdx
leaq -0x40(%rbp), %rcx
movzwl %ax, %esi
callq 0xc5d0
movl %eax, -0x1d4(%rbp)
cmpl $0x0, -0x1d4(%rbp)
je 0x11656
movl -0x1d4(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x11b93
movq -0x10(%rbp), %rdi
movq -0x30(%rbp), %rax
movl %eax, %esi
callq 0xa4b0
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
movl %eax, -0x21c(%rbp)
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
movq %rax, -0x228(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x68(%rax), %rax
movl -0x21c(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movq %rax, -0x210(%rbp)
cmpq $0x0, -0x210(%rbp)
je 0x117ac
movq -0x10(%rbp), %rax
movl 0x44(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x116d8
movq -0x210(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x218(%rbp)
jmp 0x116e6
movq -0x210(%rbp), %rax
movq %rax, -0x218(%rbp)
movq -0x218(%rbp), %rax
cmpq -0x10(%rbp), %rax
jne 0x116f8
jmp 0x11796
movq -0x218(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
cmpq -0x228(%rbp), %rax
jne 0x11794
movq -0x218(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movzwl 0x148(%rax,%rcx,2), %eax
movq -0x10(%rbp), %rcx
movq -0x10(%rbp), %rdx
movzwl 0x42(%rdx), %edx
movzwl 0x148(%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jne 0x11794
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rdx
movq -0x218(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq %rdx, 0x48(%rax,%rcx,8)
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movw 0x148(%rax,%rcx,2), %dx
movq -0x218(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movw %dx, 0x148(%rax,%rcx,2)
jmp 0x11796
movq -0x210(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x210(%rbp)
jmp 0x116a7
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movzwl 0x148(%rax,%rcx,2), %eax
cmpl $0x0, %eax
jne 0x1199c
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movzwl 0x148(%rax,%rcx,2), %eax
cmpl $0x0, %eax
je 0x118d3
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
movzwl 0xa(%rax), %eax
andl $0x20, %eax
cmpl $0x20, %eax
jne 0x1182c
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
addq $0x10, %rax
imulq $0x0, -0x30(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
jmp 0x11874
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
movq -0x10(%rbp), %rcx
movq -0x10(%rbp), %rdx
movzwl 0x42(%rdx), %edx
movq 0x48(%rcx,%rdx,8), %rcx
movzwl 0x10(%rcx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movzwl 0x6(%rax), %eax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x11080
movw -0x190(%rbp), %ax
addw $-0x1, %ax
movw %ax, -0x190(%rbp)
movw -0x18e(%rbp), %ax
addw $-0x1, %ax
movw %ax, -0x18e(%rbp)
leaq -0x1d0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x9d50
movl %eax, -0x1d4(%rbp)
cmpl $0x0, %eax
je 0x118d1
movl -0x1d4(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x11b93
jmp 0x118d3
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
movzwl 0xa(%rax), %eax
andl $0x1, %eax
cmpl $0x1, %eax
jne 0x1199a
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movw 0x148(%rax,%rcx,2), %ax
movw %ax, -0x23a(%rbp)
movq $0x0, -0x238(%rbp)
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movw $0x0, 0x148(%rax,%rcx,2)
movq -0x10(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x9d50
movl %eax, -0x1d4(%rbp)
movw -0x23a(%rbp), %dx
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movw %dx, 0x148(%rax,%rcx,2)
cmpl $0x0, -0x1d4(%rbp)
jne 0x1196c
jmp 0x11998
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rdi
leaq 0x62ad(%rip), %rsi      # 0x17c2c
leaq 0x6298(%rip), %rdx      # 0x17c1e
leaq 0x5a82(%rip), %rcx      # 0x1740f
movl $0x1e05, %r8d           # imm = 0x1E05
callq 0x133a0
jmp 0x1199a
jmp 0x1199c
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movzwl 0x148(%rax,%rcx,2), %eax
cmpl $0x0, %eax
jne 0x11b8c
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movzwl 0x148(%rax,%rcx,2), %eax
cmpl $0x0, %eax
je 0x11ac3
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
movzwl 0xa(%rax), %eax
andl $0x20, %eax
cmpl $0x20, %eax
jne 0x11a1c
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
addq $0x10, %rax
imulq $0x0, -0x30(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
jmp 0x11a64
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
movq -0x18(%rbp), %rcx
movq -0x18(%rbp), %rdx
movzwl 0x42(%rdx), %edx
movq 0x48(%rcx,%rdx,8), %rcx
movzwl 0x10(%rcx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movzwl 0x6(%rax), %eax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x11080
movw -0x190(%rbp), %ax
addw $-0x1, %ax
movw %ax, -0x190(%rbp)
movw -0x18e(%rbp), %ax
addw $-0x1, %ax
movw %ax, -0x18e(%rbp)
leaq -0x1d0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x9d50
movl %eax, -0x1d4(%rbp)
cmpl $0x0, %eax
je 0x11ac1
movl -0x1d4(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x11b93
jmp 0x11ac3
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movq 0x48(%rax,%rcx,8), %rax
movzwl 0xa(%rax), %eax
andl $0x1, %eax
cmpl $0x1, %eax
jne 0x11b8a
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movw 0x148(%rax,%rcx,2), %ax
movw %ax, -0x252(%rbp)
movq $0x0, -0x250(%rbp)
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movw $0x0, 0x148(%rax,%rcx,2)
movq -0x18(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0x9d50
movl %eax, -0x1d4(%rbp)
movw -0x252(%rbp), %dx
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movzwl 0x42(%rcx), %ecx
movw %dx, 0x148(%rax,%rcx,2)
cmpl $0x0, -0x1d4(%rbp)
jne 0x11b5c
jmp 0x11b88
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rdi
leaq 0x60bd(%rip), %rsi      # 0x17c2c
leaq 0x60a8(%rip), %rdx      # 0x17c1e
leaq 0x5892(%rip), %rcx      # 0x1740f
movl $0x1e21, %r8d           # imm = 0x1E21
callq 0x133a0
jmp 0x11b8a
jmp 0x11b8c
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x260, %rsp            # imm = 0x260
popq %rbp
retq
nop