// File: /workspace/github_cpp_makefile_star2_O2/schaefed[P]Ndarray/test/test_ndarray.cpp
// Function: testSlicing()
void testSlicing(){

	array<size_t, 2> shape = {16, 16};
	vector<int64_t> basevec  = range(0, 16*16);
	auto array = ndarray<int64_t, 2>(basevec.data(), shape);

	auto sliced1 = array[0][Slice<>(1,8)];
	assert (sliced1.shape[0] == 7); // Slicing return wrong shape
	assert (sliced1[0] == 1); // Slicing test failed
	assert (sliced1[1] == 2); // Slicing test failed
	assert (sliced1[4] == 5); // Slicing test failed
	assert (sliced1[6] == 7); // Slicing test failed

	auto sliced2 = array[Slice<>(0,3)];
	assert (sliced2.shape[0] == 3); // Slicing return wrong shape
	assert (sliced2.shape[1] == 16); // Slicing return wrong shape
	assert (sliced2[0][0] == 0); // Slicing test failed
	assert (sliced2[0][7] == 7); // Slicing test failed
	assert (sliced2[0][15] == 15); // Slicing test failed
	assert (sliced2[1][0] == 16); // Slicing test failed
	assert (sliced2[1][7] == 23); // Slicing test failed
	assert (sliced2[1][15] == 31); // Slicing test failed
	assert (sliced2[2][0] == 32); // Slicing test failed
	assert (sliced2[2][7] == 39); // Slicing test failed
	assert (sliced2[2][15] == 47); // Slicing test failed

	auto sliced3 = array[0][Slice<>(1,11,2)];
	assert (sliced3.shape[0] == 5); // Slicing return wrong shape
	assert (sliced3[0] == 1); // Slicing test failed
	assert (sliced3[1] == 3); // Slicing test failed
	assert (sliced3[4] == 9); // Slicing test failed

	auto sliced4 = array[2][Slice<>(1,11,2)];
	assert (sliced4.shape[0] == 5); // Slicing return wrong shape
	assert (sliced4[0] == 32 + 1); // Slicing test failed
	assert (sliced4[1] == 32 + 3); // Slicing test failed
	assert (sliced4[4] == 32 + 9); // Slicing test failed

	auto sliced5 = array[-1];
	assert (sliced5[0] == 240); // negative integer slicing failed
	assert (sliced5[6] == 246); // negative integer slicing failed
	assert (sliced5[-10] == 246); // negative integer slicing failed
	assert (sliced5[-1] == 255); // negative integer slicing failed

	auto sliced6 = array[0][Slice<>(0,-3)];
	assert (sliced6[0] == 0); // negative integer slicing failed
	assert (sliced6[6] == 6); // negative integer slicing failed
	assert (sliced6[12] == 12); // negative integer slicing failed
	assert (sliced6[-1] == 12); // negative integer slicing failed

	auto sliced7 = array[-5][Slice<>(-12,-3,2)];
	assert (sliced7[0] == 180); // negative integer slicing failed
	assert (sliced7[2] == 184); // negative integer slicing failed
	assert (sliced7[-3] == 184); // negative integer slicing failed

	auto sliced8 = array[Slice<0>(0,-1,2)][Slice<1>(0,-1,2)];
	assert (sliced8[0][0] == 0);
	assert (sliced8[0][3] == 6);
	assert (sliced8[0][-1] == 14);
	assert (sliced8[-2][0] == 192);
	assert (sliced8[-2][3] == 198);
	assert (sliced8[-2][-1] == 206);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x378, %rsp            # imm = 0x378
leaq 0x340(%rsp), %r14
pushq $0x1
popq %rbx
movl $0x100, %edx            # imm = 0x100
movq %r14, %rdi
xorl %esi, %esi
movq %rbx, %rcx
callq 0x2355
leaq 0x358(%rsp), %r8
andq $0x0, 0x8(%r8)
movq (%r14), %rsi
leaq 0x1809(%rip), %rax      # 0x41af
movq %rax, (%r8)
leaq 0x2726(%rip), %rax      # 0x50d6
movq %rax, 0x18(%r8)
leaq 0x2723(%rip), %rax      # 0x50de
movq %rax, 0x10(%r8)
leaq 0x1e0(%rsp), %rdi
pushq $0x10
popq %rcx
movq %rcx, %rdx
callq 0x410d
leaq 0x358(%rsp), %rdi
callq 0x41b0
leaq 0xa0(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
xorl %edx, %edx
callq 0x41cc
movq %rbx, 0x1c0(%rsp)
movq $0x8, 0x1c8(%rsp)
movq %rbx, 0x1d0(%rsp)
andq $0x0, 0x1d8(%rsp)
movups 0x1c0(%rsp), %xmm0
movups 0x1d0(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x220(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x467c
leaq 0xb8(%rsp), %rdi
callq 0x4adc
cmpq $0x7, 0x240(%rsp)
jne 0x3367
leaq 0x220(%rsp), %rdi
xorl %esi, %esi
callq 0x4266
cmpq $0x1, (%rax)
jne 0x3383
leaq 0x220(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x4266
cmpq $0x2, (%rax)
jne 0x339f
leaq 0x220(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x4266
cmpq $0x5, (%rax)
jne 0x33bb
leaq 0x220(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x4266
cmpq $0x7, (%rax)
jne 0x33d7
andq $0x0, 0x1a0(%rsp)
movq $0x3, 0x1a8(%rsp)
movq $0x1, 0x1b0(%rsp)
andq $0x0, 0x1b8(%rsp)
movups 0x1a0(%rsp), %xmm0
movups 0x1b0(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0xa0(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
callq 0x477e
cmpq $0x3, 0xc0(%rsp)
jne 0x33f3
cmpq $0x10, 0xc8(%rsp)
jne 0x340f
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
xorl %edx, %edx
callq 0x41cc
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0x4266
cmpq $0x0, (%rax)
jne 0x342b
leaq 0x38(%rsp), %rdi
callq 0x4adc
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
xorl %edx, %edx
callq 0x41cc
leaq 0x20(%rsp), %rdi
pushq $0x7
popq %rsi
callq 0x4266
cmpq $0x7, (%rax)
jne 0x3447
leaq 0x38(%rsp), %rdi
callq 0x4adc
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
xorl %edx, %edx
callq 0x41cc
leaq 0x20(%rsp), %rdi
pushq $0xf
popq %rsi
callq 0x4266
cmpq $0xf, (%rax)
jne 0x3463
leaq 0x38(%rsp), %rdi
callq 0x4adc
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x41cc
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0x4266
cmpq $0x10, (%rax)
jne 0x347f
leaq 0x38(%rsp), %rdi
callq 0x4adc
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x41cc
leaq 0x20(%rsp), %rdi
pushq $0x7
popq %rsi
callq 0x4266
cmpq $0x17, (%rax)
jne 0x349b
leaq 0x38(%rsp), %rdi
callq 0x4adc
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x41cc
leaq 0x20(%rsp), %rdi
pushq $0xf
popq %rsi
callq 0x4266
cmpq $0x1f, (%rax)
jne 0x34b7
leaq 0x38(%rsp), %rdi
callq 0x4adc
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
pushq $0x2
popq %rdx
callq 0x41cc
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0x4266
cmpq $0x20, (%rax)
jne 0x34d3
leaq 0x38(%rsp), %rdi
callq 0x4adc
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
pushq $0x2
popq %rdx
callq 0x41cc
leaq 0x20(%rsp), %rdi
pushq $0x7
popq %rsi
callq 0x4266
cmpq $0x27, (%rax)
jne 0x34ef
leaq 0x38(%rsp), %rdi
callq 0x4adc
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
pushq $0x2
popq %rdx
callq 0x41cc
leaq 0x20(%rsp), %rdi
pushq $0xf
popq %rsi
callq 0x4266
cmpq $0x2f, (%rax)
jne 0x350b
leaq 0x38(%rsp), %rdi
callq 0x4adc
leaq 0x20(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
xorl %edx, %edx
callq 0x41cc
movq $0x1, 0x180(%rsp)
movq $0xb, 0x188(%rsp)
movq $0x2, 0x190(%rsp)
andq $0x0, 0x198(%rsp)
movups 0x180(%rsp), %xmm0
movups 0x190(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x2e0(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x467c
leaq 0x38(%rsp), %rdi
callq 0x4adc
cmpq $0x5, 0x300(%rsp)
jne 0x3527
leaq 0x2e0(%rsp), %rdi
xorl %esi, %esi
callq 0x4266
cmpq $0x1, (%rax)
jne 0x3543
leaq 0x2e0(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x4266
cmpq $0x3, (%rax)
jne 0x355f
leaq 0x2e0(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x4266
cmpq $0x9, (%rax)
jne 0x357b
leaq 0x20(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
pushq $0x2
popq %rdx
callq 0x41cc
movq $0x1, 0x160(%rsp)
movq $0xb, 0x168(%rsp)
movq $0x2, 0x170(%rsp)
andq $0x0, 0x178(%rsp)
movups 0x160(%rsp), %xmm0
movups 0x170(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x2b0(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x467c
leaq 0x38(%rsp), %rdi
callq 0x4adc
cmpq $0x5, 0x2d0(%rsp)
jne 0x3597
leaq 0x2b0(%rsp), %rdi
xorl %esi, %esi
callq 0x4266
cmpq $0x21, (%rax)
jne 0x35b3
leaq 0x2b0(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x4266
cmpq $0x23, (%rax)
jne 0x35cf
leaq 0x2b0(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x4266
cmpq $0x29, (%rax)
jne 0x35eb
leaq 0x280(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
pushq $-0x1
popq %rdx
callq 0x41cc
leaq 0x280(%rsp), %rdi
xorl %esi, %esi
callq 0x4266
cmpq $0xf0, (%rax)
jne 0x3607
leaq 0x280(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x4266
cmpq $0xf6, (%rax)
jne 0x3623
leaq 0x280(%rsp), %rdi
pushq $-0xa
popq %rsi
callq 0x4266
cmpq $0xf6, (%rax)
jne 0x363f
leaq 0x280(%rsp), %rdi
pushq $-0x1
popq %rsi
callq 0x4266
cmpq $0xff, (%rax)
jne 0x365b
leaq 0x20(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
xorl %edx, %edx
callq 0x41cc
andq $0x0, 0x140(%rsp)
movq $-0x3, 0x148(%rsp)
movq $0x1, 0x150(%rsp)
andq $0x0, 0x158(%rsp)
movups 0x140(%rsp), %xmm0
movups 0x150(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x250(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x467c
leaq 0x38(%rsp), %rdi
callq 0x4adc
leaq 0x250(%rsp), %rdi
xorl %esi, %esi
callq 0x4266
cmpq $0x0, (%rax)
jne 0x3677
leaq 0x250(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x4266
cmpq $0x6, (%rax)
jne 0x3693
leaq 0x250(%rsp), %rdi
pushq $0xc
popq %rsi
callq 0x4266
cmpq $0xc, (%rax)
jne 0x36af
leaq 0x250(%rsp), %rdi
pushq $-0x1
popq %rsi
callq 0x4266
cmpq $0xc, (%rax)
jne 0x36cb
leaq 0x20(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
pushq $-0x5
popq %rdx
callq 0x41cc
movq $-0xc, 0x120(%rsp)
movq $-0x3, 0x128(%rsp)
movq $0x2, 0x130(%rsp)
andq $0x0, 0x138(%rsp)
movups 0x120(%rsp), %xmm0
movups 0x130(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x310(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x467c
leaq 0x38(%rsp), %rdi
callq 0x4adc
leaq 0x310(%rsp), %rdi
xorl %esi, %esi
callq 0x4266
cmpq $0xb4, (%rax)
jne 0x36e7
leaq 0x310(%rsp), %rdi
pushq $0x2
popq %rsi
callq 0x4266
cmpq $0xb8, (%rax)
jne 0x3703
leaq 0x310(%rsp), %rdi
pushq $-0x3
popq %rsi
callq 0x4266
cmpq $0xb8, (%rax)
jne 0x371f
andq $0x0, 0x100(%rsp)
orq $-0x1, 0x108(%rsp)
movq $0x2, 0x110(%rsp)
andq $0x0, 0x118(%rsp)
movups 0x100(%rsp), %xmm0
movups 0x110(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x60(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
callq 0x477e
andq $0x0, 0xe0(%rsp)
orq $-0x1, 0xe8(%rsp)
movq $0x2, 0xf0(%rsp)
movq $0x1, 0xf8(%rsp)
movups 0xe0(%rsp), %xmm0
movups 0xf0(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x438a
leaq 0x78(%rsp), %rdi
callq 0x4adc
leaq 0x60(%rsp), %rdi
leaq 0x20(%rsp), %rsi
xorl %edx, %edx
callq 0x41cc
leaq 0x60(%rsp), %rdi
xorl %esi, %esi
callq 0x4266
cmpq $0x0, (%rax)
jne 0x373b
leaq 0x78(%rsp), %rdi
callq 0x4adc
leaq 0x60(%rsp), %rdi
leaq 0x20(%rsp), %rsi
xorl %edx, %edx
callq 0x41cc
leaq 0x60(%rsp), %rdi
pushq $0x3
popq %rsi
callq 0x4266
cmpq $0x6, (%rax)
jne 0x3754
leaq 0x78(%rsp), %rdi
callq 0x4adc
leaq 0x60(%rsp), %rdi
leaq 0x20(%rsp), %rsi
xorl %edx, %edx
callq 0x41cc
leaq 0x60(%rsp), %rdi
pushq $-0x1
popq %rsi
callq 0x4266
cmpq $0xe, (%rax)
jne 0x376d
leaq 0x78(%rsp), %rdi
callq 0x4adc
leaq 0x60(%rsp), %rdi
leaq 0x20(%rsp), %rsi
pushq $-0x2
popq %rdx
callq 0x41cc
leaq 0x60(%rsp), %rdi
xorl %esi, %esi
callq 0x4266
cmpq $0xc0, (%rax)
jne 0x3786
leaq 0x78(%rsp), %rdi
callq 0x4adc
leaq 0x60(%rsp), %rdi
leaq 0x20(%rsp), %rsi
pushq $-0x2
popq %rdx
callq 0x41cc
leaq 0x60(%rsp), %rdi
pushq $0x3
popq %rsi
callq 0x4266
cmpq $0xc6, (%rax)
jne 0x379f
leaq 0x78(%rsp), %rdi
callq 0x4adc
leaq 0x60(%rsp), %rdi
leaq 0x20(%rsp), %rsi
pushq $-0x2
popq %rdx
callq 0x41cc
leaq 0x60(%rsp), %rdi
pushq $-0x1
popq %rsi
callq 0x4266
cmpq $0xce, (%rax)
jne 0x37b8
leaq 0x78(%rsp), %rdi
callq 0x4adc
leaq 0x38(%rsp), %rdi
callq 0x4adc
leaq 0x328(%rsp), %rdi
callq 0x4adc
leaq 0x268(%rsp), %rdi
callq 0x4adc
leaq 0x298(%rsp), %rdi
callq 0x4adc
leaq 0x2c8(%rsp), %rdi
callq 0x4adc
leaq 0x2f8(%rsp), %rdi
callq 0x4adc
leaq 0xb8(%rsp), %rdi
callq 0x4adc
leaq 0x238(%rsp), %rdi
callq 0x4adc
leaq 0x1f8(%rsp), %rdi
callq 0x4adc
leaq 0x340(%rsp), %rdi
callq 0x4c0c
addq $0x378, %rsp            # imm = 0x378
popq %rbx
popq %r14
retq
leaq 0x2d81(%rip), %rdi      # 0x60ef
leaq 0x2cd3(%rip), %rsi      # 0x6048
leaq 0x2d89(%rip), %rcx      # 0x6105
pushq $0x3a
jmp 0x37cf
leaq 0x2d8e(%rip), %rdi      # 0x6118
leaq 0x2cb7(%rip), %rsi      # 0x6048
leaq 0x2d6d(%rip), %rcx      # 0x6105
pushq $0x3b
jmp 0x37cf
leaq 0x2d82(%rip), %rdi      # 0x6128
leaq 0x2c9b(%rip), %rsi      # 0x6048
leaq 0x2d51(%rip), %rcx      # 0x6105
pushq $0x3c
jmp 0x37cf
leaq 0x2d76(%rip), %rdi      # 0x6138
leaq 0x2c7f(%rip), %rsi      # 0x6048
leaq 0x2d35(%rip), %rcx      # 0x6105
pushq $0x3d
jmp 0x37cf
leaq 0x2d6a(%rip), %rdi      # 0x6148
leaq 0x2c63(%rip), %rsi      # 0x6048
leaq 0x2d19(%rip), %rcx      # 0x6105
pushq $0x3e
jmp 0x37cf
leaq 0x2d5e(%rip), %rdi      # 0x6158
leaq 0x2c47(%rip), %rsi      # 0x6048
leaq 0x2cfd(%rip), %rcx      # 0x6105
pushq $0x41
jmp 0x37cf
leaq 0x2d58(%rip), %rdi      # 0x616e
leaq 0x2c2b(%rip), %rsi      # 0x6048
leaq 0x2ce1(%rip), %rcx      # 0x6105
pushq $0x42
jmp 0x37cf
leaq 0x2d53(%rip), %rdi      # 0x6185
leaq 0x2c0f(%rip), %rsi      # 0x6048
leaq 0x2cc5(%rip), %rcx      # 0x6105
pushq $0x43
jmp 0x37cf
leaq 0x2d4a(%rip), %rdi      # 0x6198
leaq 0x2bf3(%rip), %rsi      # 0x6048
leaq 0x2ca9(%rip), %rcx      # 0x6105
pushq $0x44
jmp 0x37cf
leaq 0x2d41(%rip), %rdi      # 0x61ab
leaq 0x2bd7(%rip), %rsi      # 0x6048
leaq 0x2c8d(%rip), %rcx      # 0x6105
pushq $0x45
jmp 0x37cf
leaq 0x2d3a(%rip), %rdi      # 0x61c0
leaq 0x2bbb(%rip), %rsi      # 0x6048
leaq 0x2c71(%rip), %rcx      # 0x6105
pushq $0x46
jmp 0x37cf
leaq 0x2d32(%rip), %rdi      # 0x61d4
leaq 0x2b9f(%rip), %rsi      # 0x6048
leaq 0x2c55(%rip), %rcx      # 0x6105
pushq $0x47
jmp 0x37cf
leaq 0x2d2a(%rip), %rdi      # 0x61e8
leaq 0x2b83(%rip), %rsi      # 0x6048
leaq 0x2c39(%rip), %rcx      # 0x6105
pushq $0x48
jmp 0x37cf
leaq 0x2d23(%rip), %rdi      # 0x61fd
leaq 0x2b67(%rip), %rsi      # 0x6048
leaq 0x2c1d(%rip), %rcx      # 0x6105
pushq $0x49
jmp 0x37cf
leaq 0x2d1b(%rip), %rdi      # 0x6211
leaq 0x2b4b(%rip), %rsi      # 0x6048
leaq 0x2c01(%rip), %rcx      # 0x6105
pushq $0x4a
jmp 0x37cf
leaq 0x2d13(%rip), %rdi      # 0x6225
leaq 0x2b2f(%rip), %rsi      # 0x6048
leaq 0x2be5(%rip), %rcx      # 0x6105
pushq $0x4b
jmp 0x37cf
leaq 0x2d0c(%rip), %rdi      # 0x623a
leaq 0x2b13(%rip), %rsi      # 0x6048
leaq 0x2bc9(%rip), %rcx      # 0x6105
pushq $0x4e
jmp 0x37cf
leaq 0x2d06(%rip), %rdi      # 0x6250
leaq 0x2af7(%rip), %rsi      # 0x6048
leaq 0x2bad(%rip), %rcx      # 0x6105
pushq $0x4f
jmp 0x37cf
leaq 0x2cfa(%rip), %rdi      # 0x6260
leaq 0x2adb(%rip), %rsi      # 0x6048
leaq 0x2b91(%rip), %rcx      # 0x6105
pushq $0x50
jmp 0x37cf
leaq 0x2cee(%rip), %rdi      # 0x6270
leaq 0x2abf(%rip), %rsi      # 0x6048
leaq 0x2b75(%rip), %rcx      # 0x6105
pushq $0x51
jmp 0x37cf
leaq 0x2ce2(%rip), %rdi      # 0x6280
leaq 0x2aa3(%rip), %rsi      # 0x6048
leaq 0x2b59(%rip), %rcx      # 0x6105
pushq $0x54
jmp 0x37cf
leaq 0x2cdc(%rip), %rdi      # 0x6296
leaq 0x2a87(%rip), %rsi      # 0x6048
leaq 0x2b3d(%rip), %rcx      # 0x6105
pushq $0x55
jmp 0x37cf
leaq 0x2cd5(%rip), %rdi      # 0x62ab
leaq 0x2a6b(%rip), %rsi      # 0x6048
leaq 0x2b21(%rip), %rcx      # 0x6105
pushq $0x56
jmp 0x37cf
leaq 0x2cce(%rip), %rdi      # 0x62c0
leaq 0x2a4f(%rip), %rsi      # 0x6048
leaq 0x2b05(%rip), %rcx      # 0x6105
pushq $0x57
jmp 0x37cf
leaq 0x2cc7(%rip), %rdi      # 0x62d5
leaq 0x2a33(%rip), %rsi      # 0x6048
leaq 0x2ae9(%rip), %rcx      # 0x6105
pushq $0x5a
jmp 0x37cf
leaq 0x2cbd(%rip), %rdi      # 0x62e7
leaq 0x2a17(%rip), %rsi      # 0x6048
leaq 0x2acd(%rip), %rcx      # 0x6105
pushq $0x5b
jmp 0x37cf
leaq 0x2cb3(%rip), %rdi      # 0x62f9
leaq 0x29fb(%rip), %rsi      # 0x6048
leaq 0x2ab1(%rip), %rcx      # 0x6105
pushq $0x5c
jmp 0x37cf
leaq 0x2cab(%rip), %rdi      # 0x630d
leaq 0x29df(%rip), %rsi      # 0x6048
leaq 0x2a95(%rip), %rcx      # 0x6105
pushq $0x5d
jmp 0x37cf
leaq 0x2ca2(%rip), %rdi      # 0x6320
leaq 0x29c3(%rip), %rsi      # 0x6048
leaq 0x2a79(%rip), %rcx      # 0x6105
pushq $0x60
jmp 0x37cf
leaq 0x2c96(%rip), %rdi      # 0x6330
leaq 0x29a7(%rip), %rsi      # 0x6048
leaq 0x2a5d(%rip), %rcx      # 0x6105
pushq $0x61
jmp 0x37cf
leaq 0x2c8a(%rip), %rdi      # 0x6340
leaq 0x298b(%rip), %rsi      # 0x6048
leaq 0x2a41(%rip), %rcx      # 0x6105
pushq $0x62
jmp 0x37cf
leaq 0x2c80(%rip), %rdi      # 0x6352
leaq 0x296f(%rip), %rsi      # 0x6048
leaq 0x2a25(%rip), %rcx      # 0x6105
pushq $0x63
jmp 0x37cf
leaq 0x2c76(%rip), %rdi      # 0x6364
leaq 0x2953(%rip), %rsi      # 0x6048
leaq 0x2a09(%rip), %rcx      # 0x6105
pushq $0x66
jmp 0x37cf
leaq 0x2c6c(%rip), %rdi      # 0x6376
leaq 0x2937(%rip), %rsi      # 0x6048
leaq 0x29ed(%rip), %rcx      # 0x6105
pushq $0x67
jmp 0x37cf
leaq 0x2c62(%rip), %rdi      # 0x6388
leaq 0x291b(%rip), %rsi      # 0x6048
leaq 0x29d1(%rip), %rcx      # 0x6105
pushq $0x68
jmp 0x37cf
leaq 0x2c59(%rip), %rdi      # 0x639b
leaq 0x28ff(%rip), %rsi      # 0x6048
leaq 0x29b5(%rip), %rcx      # 0x6105
pushq $0x6b
jmp 0x37cf
leaq 0x2c53(%rip), %rdi      # 0x63ae
leaq 0x28e6(%rip), %rsi      # 0x6048
leaq 0x299c(%rip), %rcx      # 0x6105
pushq $0x6c
jmp 0x37cf
leaq 0x2c4d(%rip), %rdi      # 0x63c1
leaq 0x28cd(%rip), %rsi      # 0x6048
leaq 0x2983(%rip), %rcx      # 0x6105
pushq $0x6d
jmp 0x37cf
leaq 0x2c49(%rip), %rdi      # 0x63d6
leaq 0x28b4(%rip), %rsi      # 0x6048
leaq 0x296a(%rip), %rcx      # 0x6105
pushq $0x6e
jmp 0x37cf
leaq 0x2c46(%rip), %rdi      # 0x63ec
leaq 0x289b(%rip), %rsi      # 0x6048
leaq 0x2951(%rip), %rcx      # 0x6105
pushq $0x6f
jmp 0x37cf
leaq 0x2c43(%rip), %rdi      # 0x6402
leaq 0x2882(%rip), %rsi      # 0x6048
leaq 0x2938(%rip), %rcx      # 0x6105
pushq $0x70
popq %rdx
callq 0x20c0
jmp 0x37e9
jmp 0x37f8
jmp 0x37e9
jmp 0x37f8
jmp 0x37e9
jmp 0x37f8
jmp 0x37e9
jmp 0x37f8
jmp 0x37e9
jmp 0x37f8
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x4adc
jmp 0x37fb
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0x4adc
jmp 0x38ad
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
jmp 0x3800
jmp 0x38aa
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
jmp 0x38b5
jmp 0x38c6
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
jmp 0x38d1
jmp 0x3939
jmp 0x38bc
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
jmp 0x38eb
jmp 0x38c1
jmp 0x3872
jmp 0x387c
jmp 0x3872
jmp 0x387c
jmp 0x3872
jmp 0x387c
jmp 0x3872
jmp 0x387c
jmp 0x3872
jmp 0x387c
jmp 0x3872
jmp 0x387c
jmp 0x3872
jmp 0x387c
jmp 0x3872
jmp 0x387c
jmp 0x3872
jmp 0x387c
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
jmp 0x38f8
movq %rax, %rbx
jmp 0x38fd
jmp 0x393e
movq %rax, %rbx
leaq 0xb8(%rsp), %rdi
jmp 0x3912
movq %rax, %rbx
jmp 0x3917
movq %rax, %rbx
leaq 0x358(%rsp), %rdi
callq 0x41b0
jmp 0x3924
movq %rax, %rbx
leaq 0x328(%rsp), %rdi
callq 0x4adc
jmp 0x38c9
movq %rax, %rbx
jmp 0x38e3
movq %rax, %rbx
jmp 0x38f0
movq %rax, %rbx
leaq 0x268(%rsp), %rdi
callq 0x4adc
leaq 0x298(%rsp), %rdi
callq 0x4adc
leaq 0x2c8(%rsp), %rdi
callq 0x4adc
leaq 0x2f8(%rsp), %rdi
callq 0x4adc
leaq 0xb8(%rsp), %rdi
callq 0x4adc
leaq 0x238(%rsp), %rdi
callq 0x4adc
leaq 0x1f8(%rsp), %rdi
callq 0x4adc
leaq 0x340(%rsp), %rdi
callq 0x4c0c
movq %rbx, %rdi
callq 0x21c0
movq %rax, %rbx
jmp 0x38d6
movq %rax, %rbx
jmp 0x390a