// File: /workspace/github_c_makefile_star2_O2/Ihsoh[P]ilang/string.c
// Function: rstr_test
void rstr_test(void) {
	ResizableString rstr1;

	rstr_init(&rstr1);
	MYASSERT(
		rstr1.size == 0 && rstr1.len == 0 && rstr1.buffer == NULL,
		"TEST rstr_init(...)"
	);

	#define	__CMP_RSTR_CSTR(rstr, cstr, msg)	{	\
		MYASSERT(	\
			sizeof((cstr)) - 1 == (rstr).len && strncmp((rstr).buffer, (cstr), sizeof((cstr)) - 1) == 0,	\
			(msg)	\
		);	\
	}

	// "" + "AB" => "AB"
	rstr_append_with_cstr(&rstr1, "AB");
	__CMP_RSTR_CSTR(rstr1, "AB", "TEST rstr_append_with_cstr(...)");

	// "AB" + "CD" => "ABCD"
	rstr_append_with_raw(&rstr1, "CD", sizeof("CD") - 1);
	__CMP_RSTR_CSTR(rstr1, "ABCD", "TEST rstr_append_with_raw(...)");

	// "ABCD" + "EF" => "ABCDEF"
	ResizableString rstr2;
	rstr_init(&rstr2);
	rstr_append_with_cstr(&rstr2, "EF");
	rstr_append_with_rstr(&rstr1, &rstr2);
	__CMP_RSTR_CSTR(rstr1, "ABCDEF", "TEST rstr_append_with_rstr(...)");
	rstr_free(&rstr2);
	MYASSERT(
		rstr2.size == 0 && rstr2.len == 0 && rstr2.buffer == NULL,
		"TEST rstr_free(...)"
	);

	// INSERT("ABCDEF", 1, "ab") => "AabBCDEF"
	rstr_insert_with_cstr(&rstr1, "ab", 1);
	__CMP_RSTR_CSTR(rstr1, "AabBCDEF", "TEST rstr_insert_with_cstr(...)");

	// INSERT("AabBCDEF", 4, "bc") => "AabBbcCDEF"
	rstr_insert_with_raw(&rstr1, "bc", sizeof("bc") - 1, 4);
	__CMP_RSTR_CSTR(rstr1, "AabBbcCDEF", "TEST rstr_insert_with_raw(...)");

	// INSERT("AabBbcCDEF", 7, "cd") => "AabBbcCcdDEF"
	ResizableString rstr3;
	rstr_init(&rstr3);
	rstr_append_with_cstr(&rstr3, "cd");
	rstr_insert_with_rstr(&rstr1, &rstr3, 7);
	__CMP_RSTR_CSTR(rstr1, "AabBbcCcdDEF", "TEST rstr_insert_with_rstr(...)");
	rstr_free(&rstr3);

	// "12" + "AabBbcCcdDEF" => "12AabBbcCcdDEF"
	rstr_prepend_with_cstr(&rstr1, "12");
	__CMP_RSTR_CSTR(rstr1, "12AabBbcCcdDEF", "TEST rstr_prepend_with_cstr(...)");

	// "34" + "12AabBbcCcdDEF" => "3412AabBbcCcdDEF"
	rstr_prepend_with_raw(&rstr1, "34", sizeof("34") - 1);
	__CMP_RSTR_CSTR(rstr1, "3412AabBbcCcdDEF", "TEST rstr_prepend_with_raw(...)");

	// "56" + "3412AabBbcCcdDEF" => "563412AabBbcCcdDEF"
	ResizableString rstr4;
	rstr_init(&rstr4);
	rstr_append_with_cstr(&rstr4, "56");
	rstr_prepend_with_rstr(&rstr1, &rstr4);
	rstr_free(&rstr4);
	__CMP_RSTR_CSTR(rstr1, "563412AabBbcCcdDEF", "TEST rstr_prepend_with_rstr(...)");

	rstr_free(&rstr1);

	rstr_init(&rstr1);

	// "" + 'A' + 'B' => "AB"
	rstr_append_with_char(&rstr1, 'A');
	rstr_append_with_char(&rstr1, 'B');
	__CMP_RSTR_CSTR(rstr1, "AB", "TEST rstr_append_with_char(...)");

	// INSERT("AB", 1, 'C') => "ACB"
	rstr_insert_with_char(&rstr1, 'C', 1);
	__CMP_RSTR_CSTR(rstr1, "ACB", "TEST rstr_insert_with_char(...)");

	// 'D' + "ACB" => "DACB"
	rstr_prepend_with_char(&rstr1, 'D');
	__CMP_RSTR_CSTR(rstr1, "DACB", "TEST rstr_prepend_with_char(...)");

	MYASSERT(
		rstr1.buffer[rstr1.len] == '\0',
		"TEST null-terminated character"
	);

	rstr_free(&rstr1);


	LinkedList llst1;

	// SPLIT(str = '', sep = ';', ignore_empty = true)
	rstr_init(&rstr1);
	llst_init(&llst1, NULL, (LinkedListReleaser) rstr_delete);
	rstr_append_with_cstr(&rstr1, "");
	rstr_split(&llst1, &rstr1, ";", true);
	MYASSERT(
		llst1.count == 0,
		"TEST rstr_split(..., '', ';', true)"
	);
	llst_free(&llst1, true);
	rstr_free(&rstr1);

	// SPLIT(str = '', sep = ';', ignore_empty = false)
	rstr_init(&rstr1);
	llst_init(&llst1, NULL, (LinkedListReleaser) rstr_delete);
	rstr_append_with_cstr(&rstr1, "");
	rstr_split(&llst1, &rstr1, ";", false);
	MYASSERT(
		llst1.count == 0,
		"TEST rstr_split(..., '', ';', false)"
	);
	llst_free(&llst1, true);
	rstr_free(&rstr1);

	// SPLIT(str = 'AB;CD;EF', sep = ';', ignore_empty = false)
	rstr_init(&rstr1);
	llst_init(&llst1, NULL, (LinkedListReleaser) rstr_delete);
	rstr_append_with_cstr(&rstr1, "AB;CD;EF");
	rstr_split(&llst1, &rstr1, ";", false);
	MYASSERT(
		llst1.count == 3,
		"TEST rstr_split(..., ..., ..., false)"
	);
	llst_free(&llst1, true);
	rstr_free(&rstr1);


	// INDEX_OF('a b c', ' ')
	rstr_init_with_cstr(&rstr1, "a b c");
	MYASSERT(
		rstr_index_of(&rstr1, " ") == 1,
		"TEST rstr_index_of(...)"
	);
	rstr_free(&rstr1);

	// LAST_INDEX_OF('a b c', ' ')
	rstr_init_with_cstr(&rstr1, "a b c");
	MYASSERT(
		rstr_last_index_of(&rstr1, " ") == 3,
		"TEST rstr_last_index_of(...)"
	);
	rstr_free(&rstr1);

	// SUB_STRING('abcdef', 1, 4) => 'bcde'
	rstr_init_with_cstr(&rstr1, "abcdef");
	ResizableString rstr5;
	rstr_init(&rstr5);
	rstr_sub_string(&rstr5, &rstr1, 1, 4);
	__CMP_RSTR_CSTR(rstr5, "bcde", "TEST rstr_sub_string(...)");
	rstr_free(&rstr5);
	rstr_free(&rstr1);

	// LTRAM('   abc  ', ' ')
	rstr_init_with_cstr(&rstr1, "   abc  ");
	ResizableString rstr7;
	rstr_init(&rstr7);
	rstr_ltrim(&rstr7, &rstr1, ' ');
	__CMP_RSTR_CSTR(rstr7, "abc  ", "TEST rstr_ltrim(...)");
	rstr_free(&rstr7);
	rstr_free(&rstr1);

	// RTRAM('   abc  ', ' ')
	rstr_init_with_cstr(&rstr1, "   abc  ");
	ResizableString rstr8;
	rstr_init(&rstr8);
	rstr_rtrim(&rstr8, &rstr1, ' ');
	__CMP_RSTR_CSTR(rstr8, "   abc", "TEST rstr_rtrim(...)");
	rstr_free(&rstr8);
	rstr_free(&rstr1);

	// TRAM('   abc  ', ' ')
	rstr_init_with_cstr(&rstr1, "   abc  ");
	ResizableString rstr9;
	rstr_init(&rstr9);
	rstr_trim(&rstr9, &rstr1, ' ');
	__CMP_RSTR_CSTR(rstr9, "abc", "TEST rstr_rtrim(...)");
	rstr_free(&rstr9);
	rstr_free(&rstr1);

	// "X" + STR(123456) => "X123456"
	rstr_init_with_cstr(&rstr1, "X");
	rstr_appendf(&rstr1, "%d", 123456);
	__CMP_RSTR_CSTR(rstr1, "X123456", "TEST rstr_appendf(...)");
	rstr_free(&rstr1);

	// INSERT("AB", 1, STR(123456)) => "A123456B"
	rstr_init_with_cstr(&rstr1, "AB");
	rstr_insertf(&rstr1, 1, "%d", 123456);
	__CMP_RSTR_CSTR(rstr1, "A123456B", "TEST rstr_insertf(...)");
	rstr_free(&rstr1);

	// STR(123456) + "X" => "123456X"
	rstr_init_with_cstr(&rstr1, "X");
	rstr_prependf(&rstr1, "%d", 123456);
	__CMP_RSTR_CSTR(rstr1, "123456X", "TEST rstr_prependf(...)");
	rstr_free(&rstr1);

	#undef	__CMP_RSTR_CSTR
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0xb0, %rsp
xorps %xmm0, %xmm0
leaq -0x20(%rbp), %rbx
movaps %xmm0, (%rbx)
leaq 0x1ec96(%rip), %rsi     # 0x2e097
movq %rbx, %rdi
callq 0xde99
cmpl $0x2, 0x4(%rbx)
jne 0xf41e
movq -0x18(%rbp), %rax
cmpb $0x41, (%rax)
jne 0xf41e
cmpb $0x42, 0x1(%rax)
je 0xf438
leaq 0x1e620(%rip), %rdi     # 0x2da45
leaq 0x1ec6e(%rip), %rdx     # 0x2e09a
movl $0x24b, %esi            # imm = 0x24B
xorl %eax, %eax
callq 0xcb84
leaq 0x1ec7d(%rip), %rsi     # 0x2e0bc
pushq $0x2
popq %rdx
movq %rbx, %rdi
callq 0xe00f
cmpl $0x4, 0x4(%rbx)
jne 0xf467
movq -0x18(%rbp), %rdi
leaq 0x1ec5f(%rip), %rsi     # 0x2e0ba
pushq $0x4
popq %rdx
callq 0xa040
testl %eax, %eax
je 0xf481
leaq 0x1e5d7(%rip), %rdi     # 0x2da45
leaq 0x1ec4a(%rip), %rdx     # 0x2e0bf
movl $0x24f, %esi            # imm = 0x24F
xorl %eax, %eax
callq 0xcb84
xorps %xmm0, %xmm0
leaq -0x30(%rbp), %rbx
movaps %xmm0, (%rbx)
leaq 0x1ee4e(%rip), %rsi     # 0x2e2e0
movq %rbx, %rdi
callq 0xde99
leaq -0x20(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0xe12e
cmpl $0x6, 0x4(%r14)
jne 0xf4c7
movq -0x18(%rbp), %rdi
leaq 0x1ec23(%rip), %rsi     # 0x2e0de
pushq $0x6
popq %rdx
callq 0xa040
testl %eax, %eax
je 0xf4e1
leaq 0x1e577(%rip), %rdi     # 0x2da45
leaq 0x1ec10(%rip), %rdx     # 0x2e0e5
movl $0x256, %esi            # imm = 0x256
xorl %eax, %eax
callq 0xcb84
movq %rbx, %rdi
callq 0xe2b9
cmpl $0x0, (%rbx)
jne 0xf4fb
cmpl $0x0, -0x2c(%rbp)
jne 0xf4fb
cmpq $0x0, -0x28(%rbp)
je 0xf515
leaq 0x1e543(%rip), %rdi     # 0x2da45
leaq 0x1ebfc(%rip), %rdx     # 0x2e105
movl $0x25b, %esi            # imm = 0x25B
xorl %eax, %eax
callq 0xcb84
leaq 0x1ebfd(%rip), %rsi     # 0x2e119
leaq -0x20(%rbp), %rbx
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0xe43d
cmpl $0x8, 0x4(%rbx)
jne 0xf548
movq -0x18(%rbp), %rdi
leaq 0x1ebe0(%rip), %rsi     # 0x2e11c
pushq $0x8
popq %rdx
callq 0xa040
testl %eax, %eax
je 0xf562
leaq 0x1e4f6(%rip), %rdi     # 0x2da45
leaq 0x1ebcf(%rip), %rdx     # 0x2e125
movl $0x25f, %esi            # imm = 0x25F
xorl %eax, %eax
callq 0xcb84
leaq 0x1ee23(%rip), %rsi     # 0x2e38c
pushq $0x2
popq %rdx
pushq $0x4
popq %rcx
movq %rbx, %rdi
callq 0xe56c
cmpl $0xa, 0x4(%rbx)
jne 0xf594
movq -0x18(%rbp), %rdi
leaq 0x1ebbd(%rip), %rsi     # 0x2e145
pushq $0xa
popq %rdx
callq 0xa040
testl %eax, %eax
je 0xf5ae
leaq 0x1e4aa(%rip), %rdi     # 0x2da45
leaq 0x1ebae(%rip), %rdx     # 0x2e150
movl $0x263, %esi            # imm = 0x263
xorl %eax, %eax
callq 0xcb84
xorps %xmm0, %xmm0
leaq -0x80(%rbp), %rbx
movaps %xmm0, (%rbx)
leaq 0x1ebb0(%rip), %rsi     # 0x2e16f
movq %rbx, %rdi
callq 0xde99
pushq $0x7
popq %rdx
movq %r14, %rdi
movq %rbx, %rsi
callq 0xe66a
cmpl $0xc, 0x4(%r14)
jne 0xf5f3
movq -0x18(%rbp), %rdi
leaq 0x1ebf5(%rip), %rsi     # 0x2e1dc
pushq $0xc
popq %rdx
callq 0xa040
testl %eax, %eax
je 0xf60d
leaq 0x1e44b(%rip), %rdi     # 0x2da45
leaq 0x1eb71(%rip), %rdx     # 0x2e172
movl $0x26a, %esi            # imm = 0x26A
xorl %eax, %eax
callq 0xcb84
leaq -0x80(%rbp), %rdi
callq 0xe2b9
leaq 0x20840(%rip), %rsi     # 0x2fe5d
leaq -0x20(%rbp), %rbx
movq %rbx, %rdi
callq 0xe808
cmpl $0xe, 0x4(%rbx)
jne 0xf646
movq -0x18(%rbp), %rdi
leaq 0x1eba0(%rip), %rsi     # 0x2e1da
pushq $0xe
popq %rdx
callq 0xa040
testl %eax, %eax
je 0xf660
leaq 0x1e3f8(%rip), %rdi     # 0x2da45
leaq 0x1eb3e(%rip), %rdx     # 0x2e192
movl $0x26f, %esi            # imm = 0x26F
xorl %eax, %eax
callq 0xcb84
leaq 0x1eb4c(%rip), %rsi     # 0x2e1b3
pushq $0x2
popq %rdx
movq %rbx, %rdi
callq 0xe835
cmpl $0x10, 0x4(%rbx)
jne 0xf68f
movq -0x18(%rbp), %rdi
leaq 0x1eb55(%rip), %rsi     # 0x2e1d8
pushq $0x10
popq %rdx
callq 0xa040
testl %eax, %eax
je 0xf6a9
leaq 0x1e3af(%rip), %rdi     # 0x2da45
leaq 0x1eb19(%rip), %rdx     # 0x2e1b6
movl $0x273, %esi            # imm = 0x273
xorl %eax, %eax
callq 0xcb84
xorps %xmm0, %xmm0
leaq -0xc0(%rbp), %rbx
movaps %xmm0, (%rbx)
leaq 0x1ecec(%rip), %rsi     # 0x2e3a9
movq %rbx, %rdi
callq 0xde99
movq %r14, %rdi
movq %rbx, %rsi
callq 0xe841
movq %rbx, %rdi
callq 0xe2b9
cmpl $0x12, 0x4(%r14)
jne 0xf6f6
movq -0x18(%rbp), %rdi
leaq 0x1eaec(%rip), %rsi     # 0x2e1d6
pushq $0x12
popq %rdx
callq 0xa040
testl %eax, %eax
je 0xf710
leaq 0x1e348(%rip), %rdi     # 0x2da45
leaq 0x1eae5(%rip), %rdx     # 0x2e1e9
movl $0x27b, %esi            # imm = 0x27B
xorl %eax, %eax
callq 0xcb84
leaq -0x20(%rbp), %rbx
movq %rbx, %rdi
callq 0xe2b9
xorps %xmm0, %xmm0
movaps %xmm0, (%rbx)
pushq $0x41
popq %rsi
movq %rbx, %rdi
callq 0xdf81
pushq $0x42
popq %rsi
movq %rbx, %rdi
callq 0xdf81
cmpl $0x2, 0x4(%rbx)
jne 0xf74d
movq -0x18(%rbp), %rax
cmpb $0x41, (%rax)
jne 0xf74d
cmpb $0x42, 0x1(%rax)
je 0xf767
leaq 0x1e2f1(%rip), %rdi     # 0x2da45
leaq 0x1eaaf(%rip), %rdx     # 0x2e20a
movl $0x284, %esi            # imm = 0x284
xorl %eax, %eax
callq 0xcb84
pushq $0x43
popq %rsi
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0xe54b
cmpl $0x3, 0x4(%rbx)
jne 0xf790
movq -0x18(%rbp), %rax
cmpb $0x41, (%rax)
jne 0xf790
cmpb $0x43, 0x1(%rax)
jne 0xf790
cmpb $0x42, 0x2(%rax)
je 0xf7aa
leaq 0x1e2ae(%rip), %rdi     # 0x2da45
leaq 0x1ea8c(%rip), %rdx     # 0x2e22a
movl $0x288, %esi            # imm = 0x288
xorl %eax, %eax
callq 0xcb84
pushq $0x44
popq %rsi
movq %rbx, %rdi
callq 0xe814
cmpl $0x4, 0x4(%rbx)
jne 0xf7d8
pushq $0x4
popq %rbx
movq -0x18(%rbp), %r14
leaq 0x1ea81(%rip), %rsi     # 0x2e24a
movq %r14, %rdi
movq %rbx, %rdx
callq 0xa040
testl %eax, %eax
je 0xf7fa
leaq 0x1e266(%rip), %rdi     # 0x2da45
leaq 0x1ea69(%rip), %rdx     # 0x2e24f
movl $0x28c, %esi            # imm = 0x28C
xorl %eax, %eax
callq 0xcb84
movq -0x18(%rbp), %r14
movslq -0x1c(%rbp), %rbx
cmpb $0x0, (%r14,%rbx)
je 0xf81b
leaq 0x1e23d(%rip), %rdi     # 0x2da45
leaq 0x1ea61(%rip), %rdx     # 0x2e270
movl $0x291, %esi            # imm = 0x291
xorl %eax, %eax
callq 0xcb84
leaq -0x20(%rbp), %rbx
movq %rbx, %rdi
callq 0xe2b9
xorps %xmm0, %xmm0
movaps %xmm0, (%rbx)
leaq -0x153a(%rip), %rdx     # 0xe2fa
leaq -0xa8(%rbp), %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0xba38
leaq 0x1df46(%rip), %rsi     # 0x2d792
movq %rbx, %rdi
callq 0xde99
leaq 0x1ea34(%rip), %rdx     # 0x2e28f
pushq $0x1
popq %rcx
movq %r14, %rdi
movq %rbx, %rsi
callq 0xe92b
cmpq $0x0, 0x10(%r14)
je 0xf88a
leaq 0x1e1ce(%rip), %rdi     # 0x2da45
leaq 0x1ea13(%rip), %rdx     # 0x2e291
movl $0x2a0, %esi            # imm = 0x2A0
xorl %eax, %eax
callq 0xcb84
leaq -0xa8(%rbp), %rbx
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xbad0
leaq -0x20(%rbp), %r14
movq %r14, %rdi
callq 0xe2b9
xorps %xmm0, %xmm0
movaps %xmm0, (%r14)
leaq -0x15bc(%rip), %rdx     # 0xe2fa
movq %rbx, %rdi
xorl %esi, %esi
callq 0xba38
leaq 0x1decb(%rip), %rsi     # 0x2d792
movq %r14, %rdi
callq 0xde99
leaq 0x1e9b9(%rip), %rdx     # 0x2e28f
movq %rbx, %rdi
movq %r14, %rsi
xorl %ecx, %ecx
callq 0xe92b
cmpq $0x0, 0x10(%rbx)
je 0xf904
leaq 0x1e154(%rip), %rdi     # 0x2da45
leaq 0x1e9bd(%rip), %rdx     # 0x2e2b5
movl $0x2ac, %esi            # imm = 0x2AC
xorl %eax, %eax
callq 0xcb84
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xbad0
movq %r14, %rdi
callq 0xe2b9
xorps %xmm0, %xmm0
movaps %xmm0, (%r14)
leaq -0x162b(%rip), %rdx     # 0xe2fa
movq %rbx, %rdi
xorl %esi, %esi
callq 0xba38
leaq 0x1e9a4(%rip), %rsi     # 0x2e2da
movq %r14, %rdi
callq 0xde99
leaq 0x1e94a(%rip), %rdx     # 0x2e28f
movq %rbx, %rdi
movq %r14, %rsi
xorl %ecx, %ecx
callq 0xe92b
cmpq $0x3, 0x10(%rbx)
je 0xf973
leaq 0x1e0e5(%rip), %rdi     # 0x2da45
leaq 0x1e97c(%rip), %rdx     # 0x2e2e3
movl $0x2b8, %esi            # imm = 0x2B8
xorl %eax, %eax
callq 0xcb84
leaq -0xa8(%rbp), %rdi
pushq $0x1
popq %rsi
callq 0xbad0
leaq -0x20(%rbp), %rbx
movq %rbx, %rdi
callq 0xe2b9
leaq 0x1e974(%rip), %rsi     # 0x2e309
movq %rbx, %rdi
callq 0xde49
leaq 0x1e9cd(%rip), %rsi     # 0x2e371
movq %rbx, %rdi
callq 0xeb16
cmpl $0x1, %eax
je 0xf9cb
leaq 0x1e08d(%rip), %rdi     # 0x2da45
leaq 0x1e950(%rip), %rdx     # 0x2e30f
movl $0x2c2, %esi            # imm = 0x2C2
xorl %eax, %eax
callq 0xcb84
movq %rbx, %rdi
callq 0xe2b9
leaq 0x1e92f(%rip), %rsi     # 0x2e309
movq %rbx, %rdi
callq 0xde49
leaq 0x1e988(%rip), %rsi     # 0x2e371
movq %rbx, %rdi
callq 0xebd4
cmpl $0x3, %eax
je 0xfa10
leaq 0x1e048(%rip), %rdi     # 0x2da45
leaq 0x1e923(%rip), %rdx     # 0x2e327
movl $0x2ca, %esi            # imm = 0x2CA
xorl %eax, %eax
callq 0xcb84
movq %rbx, %rdi
callq 0xe2b9
leaq 0x1e925(%rip), %rsi     # 0x2e344
movq %rbx, %rdi
callq 0xde49
xorps %xmm0, %xmm0
leaq -0x70(%rbp), %r14
movaps %xmm0, (%r14)
pushq $0x1
popq %rdx
pushq $0x4
popq %rcx
movq %r14, %rdi
movq %rbx, %rsi
callq 0xec93
cmpl $0x4, 0x4(%r14)
jne 0xfa61
movq -0x68(%rbp), %rdi
leaq 0x1e8f6(%rip), %rsi     # 0x2e34b
pushq $0x4
popq %rdx
callq 0xa040
testl %eax, %eax
je 0xfa7b
leaq 0x1dfdd(%rip), %rdi     # 0x2da45
leaq 0x1e8e1(%rip), %rdx     # 0x2e350
movl $0x2d2, %esi            # imm = 0x2D2
xorl %eax, %eax
callq 0xcb84
leaq -0x70(%rbp), %rdi
callq 0xe2b9
movq %rbx, %rdi
callq 0xe2b9
leaq 0x1e8d7(%rip), %rsi     # 0x2e36a
movq %rbx, %rdi
callq 0xde49
xorps %xmm0, %xmm0
leaq -0x60(%rbp), %r14
movaps %xmm0, (%r14)
pushq $0x20
popq %rdx
movq %r14, %rdi
movq %rbx, %rsi
callq 0xf147
cmpl $0x5, 0x4(%r14)
jne 0xfad2
movq -0x58(%rbp), %rdi
leaq 0x1e8a7(%rip), %rsi     # 0x2e36d
pushq $0x5
popq %rdx
callq 0xa040
testl %eax, %eax
je 0xfaec
leaq 0x1df6c(%rip), %rdi     # 0x2da45
leaq 0x1e893(%rip), %rdx     # 0x2e373
movl $0x2db, %esi            # imm = 0x2DB
xorl %eax, %eax
callq 0xcb84
leaq -0x60(%rbp), %rdi
callq 0xe2b9
movq %rbx, %rdi
callq 0xe2b9
leaq 0x1e866(%rip), %rsi     # 0x2e36a
movq %rbx, %rdi
callq 0xde49
xorps %xmm0, %xmm0
leaq -0x50(%rbp), %r14
movaps %xmm0, (%r14)
pushq $0x20
popq %rdx
movq %r14, %rdi
movq %rbx, %rsi
callq 0xf205
cmpl $0x6, 0x4(%r14)
jne 0xfb43
movq -0x48(%rbp), %rdi
leaq 0x1e851(%rip), %rsi     # 0x2e388
pushq $0x6
popq %rdx
callq 0xa040
testl %eax, %eax
je 0xfb5d
leaq 0x1defb(%rip), %rdi     # 0x2da45
leaq 0x1e83e(%rip), %rdx     # 0x2e38f
movl $0x2e4, %esi            # imm = 0x2E4
xorl %eax, %eax
callq 0xcb84
leaq -0x50(%rbp), %rdi
callq 0xe2b9
movq %rbx, %rdi
callq 0xe2b9
leaq 0x1e7f5(%rip), %rsi     # 0x2e36a
movq %rbx, %rdi
callq 0xde49
xorps %xmm0, %xmm0
leaq -0x40(%rbp), %r14
movaps %xmm0, (%r14)
pushq $0x20
popq %rdx
movq %r14, %rdi
movq %rbx, %rsi
callq 0xf2db
cmpl $0x3, 0x4(%r14)
jne 0xfbb2
movq -0x38(%rbp), %rax
cmpb $0x61, (%rax)
jne 0xfbb2
cmpb $0x62, 0x1(%rax)
jne 0xfbb2
cmpb $0x63, 0x2(%rax)
je 0xfbcc
leaq 0x1de8c(%rip), %rdi     # 0x2da45
leaq 0x1e7cf(%rip), %rdx     # 0x2e38f
movl $0x2ed, %esi            # imm = 0x2ED
xorl %eax, %eax
callq 0xcb84
leaq -0x40(%rbp), %rdi
callq 0xe2b9
movq %rbx, %rdi
callq 0xe2b9
leaq 0x20303(%rip), %rsi     # 0x2fee7
movq %rbx, %rdi
callq 0xde49
leaq 0x26087(%rip), %rsi     # 0x35c7a
movq %rbx, %rdi
movl $0x1e240, %edx          # imm = 0x1E240
xorl %eax, %eax
callq 0xe39a
cmpl $0x7, 0x4(%rbx)
jne 0xfc1f
movq -0x18(%rbp), %rdi
leaq 0x1e791(%rip), %rsi     # 0x2e3a4
pushq $0x7
popq %rdx
callq 0xa040
testl %eax, %eax
je 0xfc39
leaq 0x1de1f(%rip), %rdi     # 0x2da45
leaq 0x1e77f(%rip), %rdx     # 0x2e3ac
movl $0x2f4, %esi            # imm = 0x2F4
xorl %eax, %eax
callq 0xcb84
movq %rbx, %rdi
callq 0xe2b9
leaq 0x1e44f(%rip), %rsi     # 0x2e097
movq %rbx, %rdi
callq 0xde49
leaq 0x26023(%rip), %rdx     # 0x35c7a
pushq $0x1
popq %rsi
movq %rbx, %rdi
movl $0x1e240, %ecx          # imm = 0x1E240
xorl %eax, %eax
callq 0xe767
cmpl $0x8, 0x4(%rbx)
jne 0xfc86
movq -0x18(%rbp), %rdi
leaq 0x1e749(%rip), %rsi     # 0x2e3c3
pushq $0x8
popq %rdx
callq 0xa040
testl %eax, %eax
je 0xfca0
leaq 0x1ddb8(%rip), %rdi     # 0x2da45
leaq 0x1e738(%rip), %rdx     # 0x2e3cc
movl $0x2fa, %esi            # imm = 0x2FA
xorl %eax, %eax
callq 0xcb84
movq %rbx, %rdi
callq 0xe2b9
leaq 0x20238(%rip), %rsi     # 0x2fee7
movq %rbx, %rdi
callq 0xde49
leaq 0x25fbc(%rip), %rsi     # 0x35c7a
movq %rbx, %rdi
movl $0x1e240, %edx          # imm = 0x1E240
xorl %eax, %eax
callq 0xe84d
cmpl $0x7, 0x4(%rbx)
jne 0xfcea
movq -0x18(%rbp), %rdi
leaq 0x1e705(%rip), %rsi     # 0x2e3e3
pushq $0x7
popq %rdx
callq 0xa040
testl %eax, %eax
je 0xfd04
leaq 0x1dd54(%rip), %rdi     # 0x2da45
leaq 0x1e6f3(%rip), %rdx     # 0x2e3eb
movl $0x300, %esi            # imm = 0x300
xorl %eax, %eax
callq 0xcb84
leaq -0x20(%rbp), %rdi
callq 0xe2b9
addq $0xb0, %rsp
popq %rbx
popq %r14
popq %rbp
retq
nopl (%rax)