// File: /workspace/github_cpp_makefile_star2_O2/jvanns[P]verbatim/sub/lmdb/libraries/liblmdb/mtest.c
// Function: main
int main(int argc,char * argv[])
{
	int i = 0, j = 0, rc;
	MDB_env *env;
	MDB_dbi dbi;
	MDB_val key, data;
	MDB_txn *txn;
	MDB_stat mst;
	MDB_cursor *cursor, *cur2;
	MDB_cursor_op op;
	int count;
	int *values;
	char sval[32] = "";

	srand(time(NULL));

	    count = (rand()%384) + 64;
	    values = (int *)malloc(count*sizeof(int));

	    for(i = 0;i<count;i++) {
			values[i] = rand()%1024;
	    }
    
		E(mdb_env_create(&env));
		E(mdb_env_set_maxreaders(env, 1));
		E(mdb_env_set_mapsize(env, 10485760));
		E(mdb_env_open(env, "./testdb", MDB_FIXEDMAP /*|MDB_NOSYNC*/, 0664));

		E(mdb_txn_begin(env, NULL, 0, &txn));
		E(mdb_dbi_open(txn, NULL, 0, &dbi));
   
		key.mv_size = sizeof(int);
		key.mv_data = sval;

		printf("Adding %d values\n", count);
	    for (i=0;i<count;i++) {	
			sprintf(sval, "%03x %d foo bar", values[i], values[i]);
			/* Set <data> in each iteration, since MDB_NOOVERWRITE may modify it */
			data.mv_size = sizeof(sval);
			data.mv_data = sval;
			if (RES(MDB_KEYEXIST, mdb_put(txn, dbi, &key, &data, MDB_NOOVERWRITE))) {
				j++;
				data.mv_size = sizeof(sval);
				data.mv_data = sval;
			}
	    }
		if (j) printf("%d duplicates skipped\n", j);
		E(mdb_txn_commit(txn));
		E(mdb_env_stat(env, &mst));

		E(mdb_txn_begin(env, NULL, MDB_RDONLY, &txn));
		E(mdb_cursor_open(txn, dbi, &cursor));
		while ((rc = mdb_cursor_get(cursor, &key, &data, MDB_NEXT)) == 0) {
			printf("key: %p %.*s, data: %p %.*s\n",
				key.mv_data,  (int) key.mv_size,  (char *) key.mv_data,
				data.mv_data, (int) data.mv_size, (char *) data.mv_data);
		}
		CHECK(rc == MDB_NOTFOUND, "mdb_cursor_get");
		mdb_cursor_close(cursor);
		mdb_txn_abort(txn);

		j=0;
		key.mv_data = sval;
	    for (i= count - 1; i > -1; i-= (rand()%5)) {
			j++;
			txn=NULL;
			E(mdb_txn_begin(env, NULL, 0, &txn));
			sprintf(sval, "%03x ", values[i]);
			if (RES(MDB_NOTFOUND, mdb_del(txn, dbi, &key, NULL))) {
				j--;
				mdb_txn_abort(txn);
			} else {
				E(mdb_txn_commit(txn));
			}
	    }
	    free(values);
		printf("Deleted %d values\n", j);

		E(mdb_env_stat(env, &mst));
		E(mdb_txn_begin(env, NULL, MDB_RDONLY, &txn));
		E(mdb_cursor_open(txn, dbi, &cursor));
		printf("Cursor next\n");
		while ((rc = mdb_cursor_get(cursor, &key, &data, MDB_NEXT)) == 0) {
			printf("key: %.*s, data: %.*s\n",
				(int) key.mv_size,  (char *) key.mv_data,
				(int) data.mv_size, (char *) data.mv_data);
		}
		CHECK(rc == MDB_NOTFOUND, "mdb_cursor_get");
		printf("Cursor last\n");
		E(mdb_cursor_get(cursor, &key, &data, MDB_LAST));
		printf("key: %.*s, data: %.*s\n",
			(int) key.mv_size,  (char *) key.mv_data,
			(int) data.mv_size, (char *) data.mv_data);
		printf("Cursor prev\n");
		while ((rc = mdb_cursor_get(cursor, &key, &data, MDB_PREV)) == 0) {
			printf("key: %.*s, data: %.*s\n",
				(int) key.mv_size,  (char *) key.mv_data,
				(int) data.mv_size, (char *) data.mv_data);
		}
		CHECK(rc == MDB_NOTFOUND, "mdb_cursor_get");
		printf("Cursor last/prev\n");
		E(mdb_cursor_get(cursor, &key, &data, MDB_LAST));
			printf("key: %.*s, data: %.*s\n",
				(int) key.mv_size,  (char *) key.mv_data,
				(int) data.mv_size, (char *) data.mv_data);
		E(mdb_cursor_get(cursor, &key, &data, MDB_PREV));
			printf("key: %.*s, data: %.*s\n",
				(int) key.mv_size,  (char *) key.mv_data,
				(int) data.mv_size, (char *) data.mv_data);

		mdb_cursor_close(cursor);
		mdb_txn_abort(txn);

		printf("Deleting with cursor\n");
		E(mdb_txn_begin(env, NULL, 0, &txn));
		E(mdb_cursor_open(txn, dbi, &cur2));
		for (i=0; i<50; i++) {
			if (RES(MDB_NOTFOUND, mdb_cursor_get(cur2, &key, &data, MDB_NEXT)))
				break;
			printf("key: %p %.*s, data: %p %.*s\n",
				key.mv_data,  (int) key.mv_size,  (char *) key.mv_data,
				data.mv_data, (int) data.mv_size, (char *) data.mv_data);
			E(mdb_del(txn, dbi, &key, NULL));
		}

		printf("Restarting cursor in txn\n");
		for (op=MDB_FIRST, i=0; i<=32; op=MDB_NEXT, i++) {
			if (RES(MDB_NOTFOUND, mdb_cursor_get(cur2, &key, &data, op)))
				break;
			printf("key: %p %.*s, data: %p %.*s\n",
				key.mv_data,  (int) key.mv_size,  (char *) key.mv_data,
				data.mv_data, (int) data.mv_size, (char *) data.mv_data);
		}
		mdb_cursor_close(cur2);
		E(mdb_txn_commit(txn));

		printf("Restarting cursor outside txn\n");
		E(mdb_txn_begin(env, NULL, 0, &txn));
		E(mdb_cursor_open(txn, dbi, &cursor));
		for (op=MDB_FIRST, i=0; i<=32; op=MDB_NEXT, i++) {
			if (RES(MDB_NOTFOUND, mdb_cursor_get(cursor, &key, &data, op)))
				break;
			printf("key: %p %.*s, data: %p %.*s\n",
				key.mv_data,  (int) key.mv_size,  (char *) key.mv_data,
				data.mv_data, (int) data.mv_size, (char *) data.mv_data);
		}
		mdb_cursor_close(cursor);
		mdb_txn_abort(txn);

		mdb_dbi_close(env, dbi);
		mdb_env_close(env);

	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
xorps %xmm0, %xmm0
movaps %xmm0, 0x60(%rsp)
movaps %xmm0, 0x50(%rsp)
xorl %r15d, %r15d
xorl %edi, %edi
callq 0x2250
movl %eax, %edi
callq 0x21d0
callq 0x2420
movl $0x180, %ecx            # imm = 0x180
cltd
idivl %ecx
movl %edx, %ebx
leal 0x40(%rbx), %ebp
movslq %edx, %rax
leaq 0x100(,%rax,4), %rdi
callq 0x2280
movq %rax, %r14
testl %ebp, %ebp
movl $0x0, %r13d
cmovgl %ebp, %r13d
movl $0x400, %r12d           # imm = 0x400
cmpq %r15, %r13
je 0x25b9
callq 0x2420
cltd
idivl %r12d
movl %edx, (%r14,%r15,4)
incq %r15
jmp 0x25a2
leaq 0x28(%rsp), %rdi
callq 0xbc53
testl %eax, %eax
jne 0x2ebc
movq 0x28(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0xbe17
testl %eax, %eax
jne 0x2ee9
movq 0x28(%rsp), %rdi
movl $0xa00000, %esi         # imm = 0xA00000
callq 0xbcb4
testl %eax, %eax
jne 0x2f16
movq 0x28(%rsp), %rdi
leaq 0xba6f(%rip), %rsi      # 0xe072
pushq $0x1
popq %rdx
movl $0x1b4, %ecx            # imm = 0x1B4
callq 0xbe47
testl %eax, %eax
jne 0x2f43
movq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rcx
xorl %esi, %esi
xorl %edx, %edx
callq 0x372b
testl %eax, %eax
jne 0x2f70
movq 0x8(%rsp), %rdi
leaq 0x14(%rsp), %rcx
xorl %esi, %esi
xorl %edx, %edx
callq 0x949b
testl %eax, %eax
jne 0x2f9d
leaq 0x38(%rsp), %rcx
movq $0x4, (%rcx)
leaq 0x50(%rsp), %rax
movq %rax, 0x8(%rcx)
leaq 0xba87(%rip), %rdi      # 0xe0f1
movl %ebp, %esi
xorl %eax, %eax
callq 0x2130
xorl %r15d, %r15d
xorl %ebp, %ebp
cmpq %r15, %r13
je 0x26e8
movl (%r14,%r15,4), %ecx
leaq 0x50(%rsp), %r12
movq %r12, %rdi
leaq 0xba73(%rip), %rsi      # 0xe103
movl %ecx, %edx
xorl %eax, %eax
callq 0x2380
movq $0x20, 0x18(%rsp)
movq %r12, 0x20(%rsp)
movq 0x8(%rsp), %rdi
movl 0x14(%rsp), %esi
leaq 0x38(%rsp), %rdx
leaq 0x18(%rsp), %rcx
pushq $0x10
popq %r8
callq 0x9400
cmpl $0xffff87b1, %eax       # imm = 0xFFFF87B1
je 0x26d3
testl %eax, %eax
je 0x26e3
jmp 0x2d9a
incl %ebp
movq $0x20, 0x18(%rsp)
movq %r12, 0x20(%rsp)
incq %r15
jmp 0x2678
testl %ebp, %ebp
je 0x26fc
leaq 0xba50(%rip), %rdi      # 0xe143
movl %ebp, %esi
xorl %eax, %eax
callq 0x2130
movq 0x8(%rsp), %rdi
callq 0x3d46
testl %eax, %eax
jne 0x2fca
movq 0x28(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0xcfdc
testl %eax, %eax
jne 0x2ff7
movq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rcx
xorl %esi, %esi
movl $0x20000, %edx          # imm = 0x20000
callq 0x372b
testl %eax, %eax
jne 0x3024
movq 0x8(%rsp), %rdi
movl 0x14(%rsp), %esi
leaq 0x30(%rsp), %rdx
callq 0x90e0
testl %eax, %eax
jne 0x3051
leaq 0x38(%rsp), %r15
leaq 0x18(%rsp), %r12
pushq $0x8
popq %rbp
leaq 0xba62(%rip), %r13      # 0xe1d4
movq 0x30(%rsp), %rdi
movq %r15, %rsi
movq %r12, %rdx
movl %ebp, %ecx
callq 0x60ab
testl %eax, %eax
jne 0x27ae
movq 0x40(%rsp), %rcx
movl 0x38(%rsp), %edx
movq 0x20(%rsp), %r8
movl 0x18(%rsp), %r9d
movq %r8, (%rsp)
movq %r13, %rdi
movq %rcx, %rsi
xorl %eax, %eax
callq 0x2130
jmp 0x2772
cmpl $0xffff87b2, %eax       # imm = 0xFFFF87B2
jne 0x2ce9
movq 0x30(%rsp), %rdi
callq 0x928a
leaq 0x8(%rsp), %rax
movq (%rax), %rdi
callq 0x3d20
leaq 0x38(%rsp), %r13
leaq 0x50(%rsp), %rax
movq %rax, 0x8(%r13)
addl $0x3f, %ebx
leaq 0xba18(%rip), %r12      # 0xe200
pushq $0x5
popq %r15
xorl %ebp, %ebp
testl %ebx, %ebx
js 0x287e
andq $0x0, 0x8(%rsp)
movq 0x28(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x8(%rsp), %rcx
callq 0x372b
testl %eax, %eax
jne 0x2d16
movl %ebx, %eax
movl (%r14,%rax,4), %edx
leaq 0x50(%rsp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x2380
movq 0x8(%rsp), %rdi
movl 0x14(%rsp), %esi
movq %r13, %rdx
xorl %ecx, %ecx
callq 0x92ee
cmpl $0xffff87b2, %eax       # imm = 0xFFFF87B2
je 0x2864
testl %eax, %eax
jne 0x2dc4
movq 0x8(%rsp), %rdi
callq 0x3d46
testl %eax, %eax
jne 0x2dee
incl %ebp
jmp 0x286e
movq 0x8(%rsp), %rdi
callq 0x3d20
callq 0x2420
cltd
idivl %r15d
subl %edx, %ebx
jmp 0x27ee
movq %r14, %rdi
callq 0x2030
leaq 0xb997(%rip), %rdi      # 0xe224
movl %ebp, %esi
xorl %eax, %eax
callq 0x2130
movq 0x28(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0xcfdc
testl %eax, %eax
jne 0x307e
movq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rcx
xorl %esi, %esi
movl $0x20000, %edx          # imm = 0x20000
callq 0x372b
testl %eax, %eax
jne 0x30ab
movq 0x8(%rsp), %rdi
movl 0x14(%rsp), %esi
leaq 0x30(%rsp), %rdx
callq 0x90e0
testl %eax, %eax
jne 0x30d8
leaq 0xba58(%rip), %rdi      # 0xe345
callq 0x20a0
leaq 0x38(%rsp), %rbx
leaq 0x18(%rsp), %r14
pushq $0x8
popq %rbp
leaq 0xb931(%rip), %r15      # 0xe237
movq 0x30(%rsp), %rdi
movq %rbx, %rsi
movq %r14, %rdx
movl %ebp, %ecx
callq 0x60ab
testl %eax, %eax
jne 0x293a
movl 0x38(%rsp), %esi
movq 0x40(%rsp), %rdx
movl 0x18(%rsp), %ecx
movq 0x20(%rsp), %r8
movq %r15, %rdi
xorl %eax, %eax
callq 0x2130
jmp 0x2906
cmpl $0xffff87b2, %eax       # imm = 0xFFFF87B2
jne 0x2d43
leaq 0xba05(%rip), %rdi      # 0xe351
callq 0x20a0
movq 0x30(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x18(%rsp), %rdx
pushq $0x6
popq %rcx
callq 0x60ab
testl %eax, %eax
jne 0x3105
leaq 0x38(%rsp), %rbx
movl (%rbx), %esi
movq 0x8(%rbx), %rdx
leaq 0x18(%rsp), %r14
movl (%r14), %ecx
movq 0x8(%r14), %r8
leaq 0xb8a9(%rip), %r15      # 0xe237
movq %r15, %rdi
xorl %eax, %eax
callq 0x2130
leaq 0xb9be(%rip), %rdi      # 0xe35d
callq 0x20a0
pushq $0xc
popq %rbp
movq 0x30(%rsp), %rdi
movq %rbx, %rsi
movq %r14, %rdx
movl %ebp, %ecx
callq 0x60ab
testl %eax, %eax
jne 0x29db
movl 0x38(%rsp), %esi
movq 0x40(%rsp), %rdx
movl 0x18(%rsp), %ecx
movq 0x20(%rsp), %r8
movq %r15, %rdi
xorl %eax, %eax
callq 0x2130
jmp 0x29a7
cmpl $0xffff87b2, %eax       # imm = 0xFFFF87B2
jne 0x2d70
leaq 0xb97c(%rip), %rdi      # 0xe369
callq 0x20a0
movq 0x30(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x18(%rsp), %rdx
pushq $0x6
popq %rcx
callq 0x60ab
testl %eax, %eax
jne 0x3132
leaq 0x38(%rsp), %rbx
movl (%rbx), %esi
movq 0x8(%rbx), %rdx
leaq 0x18(%rsp), %r14
movl (%r14), %ecx
movq 0x8(%r14), %r8
leaq 0xb808(%rip), %rdi      # 0xe237
xorl %eax, %eax
callq 0x2130
movq 0x30(%rsp), %rdi
pushq $0xc
popq %rcx
movq %rbx, %rsi
movq %r14, %rdx
callq 0x60ab
testl %eax, %eax
jne 0x315f
movl 0x38(%rsp), %esi
movq 0x40(%rsp), %rdx
movl 0x18(%rsp), %ecx
movq 0x20(%rsp), %r8
leaq 0xb7cd(%rip), %rdi      # 0xe237
xorl %eax, %eax
callq 0x2130
movq 0x30(%rsp), %rdi
callq 0x928a
leaq 0x8(%rsp), %rbx
movq (%rbx), %rdi
callq 0x3d20
leaq 0xb8eb(%rip), %rdi      # 0xe37a
callq 0x20a0
movq 0x28(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x372b
testl %eax, %eax
jne 0x3192
movq 0x8(%rsp), %rdi
movl 0x14(%rsp), %esi
leaq 0x48(%rsp), %rdx
callq 0x90e0
testl %eax, %eax
jne 0x31c5
pushq $0x33
popq %rbp
leaq 0x38(%rsp), %r14
leaq 0x18(%rsp), %r15
pushq $0x8
popq %rbx
leaq 0xb6f5(%rip), %r12      # 0xe1d4
decl %ebp
je 0x2b76
movq 0x48(%rsp), %rdi
movq %r14, %rsi
movq %r15, %rdx
movl %ebx, %ecx
callq 0x60ab
testl %eax, %eax
jne 0x2b6b
movq 0x40(%rsp), %rcx
movl 0x38(%rsp), %edx
movq 0x20(%rsp), %r8
movl 0x18(%rsp), %r9d
movq %r8, (%rsp)
movq %r12, %rdi
movq %rcx, %rsi
xorl %eax, %eax
callq 0x2130
movq 0x8(%rsp), %rdi
movl 0x14(%rsp), %esi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x92ee
testl %eax, %eax
je 0x2adf
movq 0x104b9(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb4b4(%rip), %rsi      # 0xe004
leaq 0xb4bc(%rip), %rdx      # 0xe013
leaq 0xb6a8(%rip), %r8       # 0xe206
movq %rbx, %rdi
movl $0x92, %ecx
jmp 0x2e1a
cmpl $0xffff87b2, %eax       # imm = 0xFFFF87B2
jne 0x2e29
leaq 0xb812(%rip), %rdi      # 0xe38f
callq 0x20a0
pushq $0x21
popq %rbp
leaq 0x38(%rsp), %r14
leaq 0x18(%rsp), %r15
leaq 0xb63e(%rip), %r12      # 0xe1d4
xorl %ecx, %ecx
subl $0x1, %ebp
jb 0x2be4
movq 0x48(%rsp), %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x60ab
testl %eax, %eax
jne 0x2bd9
movq 0x40(%rsp), %rcx
movl 0x38(%rsp), %edx
movq 0x20(%rsp), %r8
movl 0x18(%rsp), %r9d
movq %r8, (%rsp)
movq %r12, %rdi
movq %rcx, %rsi
xorl %eax, %eax
callq 0x2130
movl %ebx, %ecx
jmp 0x2b98
cmpl $0xffff87b2, %eax       # imm = 0xFFFF87B2
jne 0x2e59
movq 0x48(%rsp), %rdi
callq 0x928a
movq 0x8(%rsp), %rdi
callq 0x3d46
testl %eax, %eax
jne 0x31f8
leaq 0xb7a1(%rip), %rdi      # 0xe3a8
callq 0x20a0
movq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rcx
xorl %esi, %esi
xorl %edx, %edx
callq 0x372b
testl %eax, %eax
jne 0x322b
movq 0x8(%rsp), %rdi
movl 0x14(%rsp), %esi
leaq 0x30(%rsp), %rdx
callq 0x90e0
testl %eax, %eax
jne 0x325e
pushq $0x21
popq %rbp
leaq 0x38(%rsp), %rbx
leaq 0x18(%rsp), %r14
leaq 0xb57e(%rip), %r15      # 0xe1d4
pushq $0x8
popq %r12
xorl %ecx, %ecx
subl $0x1, %ebp
jb 0x2ca9
movq 0x30(%rsp), %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x60ab
testl %eax, %eax
jne 0x2c9e
movq 0x40(%rsp), %rcx
movl 0x38(%rsp), %edx
movq 0x20(%rsp), %r8
movl 0x18(%rsp), %r9d
movq %r8, (%rsp)
movq %r15, %rdi
movq %rcx, %rsi
xorl %eax, %eax
callq 0x2130
movl %r12d, %ecx
jmp 0x2c5c
cmpl $0xffff87b2, %eax       # imm = 0xFFFF87B2
jne 0x2e89
movq 0x30(%rsp), %rdi
callq 0x928a
movq 0x8(%rsp), %rdi
callq 0x3d20
movq 0x28(%rsp), %rdi
movl 0x14(%rsp), %esi
callq 0x97f2
movq 0x28(%rsp), %rdi
callq 0xc929
xorl %eax, %eax
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x10308(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb303(%rip), %rsi      # 0xe004
leaq 0xb30b(%rip), %rdx      # 0xe013
leaq 0xb4e2(%rip), %r8       # 0xe1f1
pushq $0x51
jmp 0x2e16
movq 0x102db(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb2d6(%rip), %rsi      # 0xe004
leaq 0xb2de(%rip), %rdx      # 0xe013
leaq 0xb372(%rip), %r8       # 0xe0ae
pushq $0x5a
jmp 0x2e16
movq 0x102ae(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb2a9(%rip), %rsi      # 0xe004
leaq 0xb2b1(%rip), %rdx      # 0xe013
leaq 0xb488(%rip), %r8       # 0xe1f1
pushq $0x6f
jmp 0x2e16
movq 0x10281(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb27c(%rip), %rsi      # 0xe004
leaq 0xb284(%rip), %rdx      # 0xe013
leaq 0xb45b(%rip), %r8       # 0xe1f1
pushq $0x7b
jmp 0x2e16
movq 0x10257(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb252(%rip), %rsi      # 0xe004
leaq 0xb25a(%rip), %rdx      # 0xe013
leaq 0xb353(%rip), %r8       # 0xe113
pushq $0x40
jmp 0x2e16
movq 0x1022d(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb228(%rip), %rsi      # 0xe004
leaq 0xb230(%rip), %rdx      # 0xe013
leaq 0xb41c(%rip), %r8       # 0xe206
pushq $0x5c
jmp 0x2e16
movq 0x10203(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb1fe(%rip), %rsi      # 0xe004
leaq 0xb206(%rip), %rdx      # 0xe013
leaq 0xb346(%rip), %r8       # 0xe15a
pushq $0x60
popq %rcx
movq %rbx, %rdi
movq %rax, %r9
xorl %eax, %eax
callq 0x2220
callq 0x2040
movq 0x101c8(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb1c3(%rip), %rsi      # 0xe004
leaq 0xb1cb(%rip), %rdx      # 0xe013
leaq 0xb47c(%rip), %r8       # 0xe2cb
movq %rbx, %rdi
movl $0x8d, %ecx
jmp 0x2e1a
movq 0x10198(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb193(%rip), %rsi      # 0xe004
leaq 0xb19b(%rip), %rdx      # 0xe013
leaq 0xb478(%rip), %r8       # 0xe2f7
movq %rbx, %rdi
movl $0x97, %ecx
jmp 0x2e1a
movq 0x10168(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb163(%rip), %rsi      # 0xe004
leaq 0xb16b(%rip), %rdx      # 0xe013
leaq 0xb46e(%rip), %r8       # 0xe31d
movq %rbx, %rdi
movl $0xa4, %ecx
jmp 0x2e1a
movq 0x10135(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb130(%rip), %rsi      # 0xe004
leaq 0xb138(%rip), %rdx      # 0xe013
leaq 0xb139(%rip), %r8       # 0xe01b
pushq $0x2f
jmp 0x2e16
movq 0x10108(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb103(%rip), %rsi      # 0xe004
leaq 0xb10b(%rip), %rdx      # 0xe013
leaq 0xb121(%rip), %r8       # 0xe030
pushq $0x30
jmp 0x2e16
movq 0x100db(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb0d6(%rip), %rsi      # 0xe004
leaq 0xb0de(%rip), %rdx      # 0xe013
leaq 0xb113(%rip), %r8       # 0xe04f
pushq $0x31
jmp 0x2e16
movq 0x100ae(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb0a9(%rip), %rsi      # 0xe004
leaq 0xb0b1(%rip), %rdx      # 0xe013
leaq 0xb112(%rip), %r8       # 0xe07b
pushq $0x32
jmp 0x2e16
movq 0x10081(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb07c(%rip), %rsi      # 0xe004
leaq 0xb084(%rip), %rdx      # 0xe013
leaq 0xb118(%rip), %r8       # 0xe0ae
pushq $0x34
jmp 0x2e16
movq 0x10054(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb04f(%rip), %rsi      # 0xe004
leaq 0xb057(%rip), %rdx      # 0xe013
leaq 0xb10d(%rip), %r8       # 0xe0d0
pushq $0x35
jmp 0x2e16
movq 0x10027(%rip), %rcx     # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xb022(%rip), %rsi      # 0xe004
leaq 0xb02a(%rip), %rdx      # 0xe013
leaq 0xb16a(%rip), %r8       # 0xe15a
pushq $0x47
jmp 0x2e16
movq 0xfffa(%rip), %rcx      # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xaff5(%rip), %rsi      # 0xe004
leaq 0xaffd(%rip), %rdx      # 0xe013
leaq 0xb151(%rip), %r8       # 0xe16e
pushq $0x48
jmp 0x2e16
movq 0xffcd(%rip), %rcx      # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xafc8(%rip), %rsi      # 0xe004
leaq 0xafd0(%rip), %rdx      # 0xe013
leaq 0xb13c(%rip), %r8       # 0xe186
pushq $0x4a
jmp 0x2e16
movq 0xffa0(%rip), %rcx      # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xaf9b(%rip), %rsi      # 0xe004
leaq 0xafa3(%rip), %rdx      # 0xe013
leaq 0xb13a(%rip), %r8       # 0xe1b1
pushq $0x4b
jmp 0x2e16
movq 0xff73(%rip), %rcx      # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xaf6e(%rip), %rsi      # 0xe004
leaq 0xaf76(%rip), %rdx      # 0xe013
leaq 0xb0ca(%rip), %r8       # 0xe16e
pushq $0x66
jmp 0x2e16
movq 0xff46(%rip), %rcx      # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xaf41(%rip), %rsi      # 0xe004
leaq 0xaf49(%rip), %rdx      # 0xe013
leaq 0xb0b5(%rip), %r8       # 0xe186
pushq $0x67
jmp 0x2e16
movq 0xff19(%rip), %rcx      # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xaf14(%rip), %rsi      # 0xe004
leaq 0xaf1c(%rip), %rdx      # 0xe013
leaq 0xb0b3(%rip), %r8       # 0xe1b1
pushq $0x68
jmp 0x2e16
movq 0xfeec(%rip), %rcx      # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xaee7(%rip), %rsi      # 0xe004
leaq 0xaeef(%rip), %rdx      # 0xe013
leaq 0xb123(%rip), %r8       # 0xe24e
pushq $0x71
jmp 0x2e16
movq 0xfebf(%rip), %rcx      # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xaeba(%rip), %rsi      # 0xe004
leaq 0xaec2(%rip), %rdx      # 0xe013
leaq 0xb0f6(%rip), %r8       # 0xe24e
pushq $0x7d
jmp 0x2e16
movq 0xfe92(%rip), %rcx      # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xae8d(%rip), %rsi      # 0xe004
leaq 0xae95(%rip), %rdx      # 0xe013
leaq 0xb0f7(%rip), %r8       # 0xe27c
movq %rbx, %rdi
movl $0x81, %ecx
jmp 0x2e1a
movq 0xfe5f(%rip), %rcx      # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xae5a(%rip), %rsi      # 0xe004
leaq 0xae62(%rip), %rdx      # 0xe013
leaq 0xaef6(%rip), %r8       # 0xe0ae
movq %rbx, %rdi
movl $0x8a, %ecx
jmp 0x2e1a
movq 0xfe2c(%rip), %rcx      # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xae27(%rip), %rsi      # 0xe004
leaq 0xae2f(%rip), %rdx      # 0xe013
leaq 0xb0bf(%rip), %r8       # 0xe2aa
movq %rbx, %rdi
movl $0x8b, %ecx
jmp 0x2e1a
movq 0xfdf9(%rip), %rcx      # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xadf4(%rip), %rsi      # 0xe004
leaq 0xadfc(%rip), %rdx      # 0xe013
leaq 0xaf3c(%rip), %r8       # 0xe15a
movq %rbx, %rdi
movl $0x9e, %ecx
jmp 0x2e1a
movq 0xfdc6(%rip), %rcx      # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xadc1(%rip), %rsi      # 0xe004
leaq 0xadc9(%rip), %rdx      # 0xe013
leaq 0xae5d(%rip), %r8       # 0xe0ae
movq %rbx, %rdi
movl $0xa1, %ecx
jmp 0x2e1a
movq 0xfd93(%rip), %rcx      # 0x12ff8
movq (%rcx), %rbx
movl %eax, %edi
callq 0x3294
leaq 0xad8e(%rip), %rsi      # 0xe004
leaq 0xad96(%rip), %rdx      # 0xe013
leaq 0xaf2d(%rip), %r8       # 0xe1b1
movq %rbx, %rdi
movl $0xa2, %ecx
jmp 0x2e1a
nopl (%rax)