// File: /workspace/github_c_makefile_star2_O0/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
subq $0xb0, %rsp
leaq -0x10(%rbp), %rdi
callq 0xfca0
cmpl $0x0, -0x10(%rbp)
jne 0x11da7
cmpl $0x0, -0xc(%rbp)
jne 0x11da7
cmpq $0x0, -0x8(%rbp)
je 0x11dc1
leaq 0x35d76(%rip), %rdi     # 0x47b24
movl $0x240, %esi            # imm = 0x240
leaq 0x363bc(%rip), %rdx     # 0x48176
movb $0x0, %al
callq 0xe240
leaq -0x10(%rbp), %rdi
leaq 0x363be(%rip), %rsi     # 0x4818a
callq 0xfd80
movslq -0xc(%rbp), %rcx
movl $0x2, %eax
cmpq %rcx, %rax
jne 0x11df9
movq -0x8(%rbp), %rdi
leaq 0x363a0(%rip), %rsi     # 0x4818a
movl $0x2, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x11e13
leaq 0x35d24(%rip), %rdi     # 0x47b24
movl $0x24b, %esi            # imm = 0x24B
leaq 0x36381(%rip), %rdx     # 0x4818d
movb $0x0, %al
callq 0xe240
leaq -0x10(%rbp), %rdi
leaq 0x36391(%rip), %rsi     # 0x481af
movl $0x2, %edx
callq 0xffa0
movslq -0xc(%rbp), %rcx
movl $0x4, %eax
cmpq %rcx, %rax
jne 0x11e50
movq -0x8(%rbp), %rdi
leaq 0x3636c(%rip), %rsi     # 0x481ad
movl $0x4, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x11e6a
leaq 0x35ccd(%rip), %rdi     # 0x47b24
movl $0x24f, %esi            # imm = 0x24F
leaq 0x3634f(%rip), %rdx     # 0x481b2
movb $0x0, %al
callq 0xe240
leaq -0x20(%rbp), %rdi
callq 0xfca0
leaq -0x20(%rbp), %rdi
leaq 0x36555(%rip), %rsi     # 0x483d3
callq 0xfd80
leaq -0x10(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x10110
movslq -0xc(%rbp), %rcx
movl $0x6, %eax
cmpq %rcx, %rax
jne 0x11eb8
movq -0x8(%rbp), %rdi
leaq 0x36328(%rip), %rsi     # 0x481d1
movl $0x6, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x11ed2
leaq 0x35c65(%rip), %rdi     # 0x47b24
movl $0x256, %esi            # imm = 0x256
leaq 0x3630d(%rip), %rdx     # 0x481d8
movb $0x0, %al
callq 0xe240
leaq -0x20(%rbp), %rdi
callq 0x10320
cmpl $0x0, -0x20(%rbp)
jne 0x11eee
cmpl $0x0, -0x1c(%rbp)
jne 0x11eee
cmpq $0x0, -0x18(%rbp)
je 0x11f08
leaq 0x35c2f(%rip), %rdi     # 0x47b24
movl $0x25b, %esi            # imm = 0x25B
leaq 0x362f7(%rip), %rdx     # 0x481f8
movb $0x0, %al
callq 0xe240
leaq -0x10(%rbp), %rdi
leaq 0x362f9(%rip), %rsi     # 0x4820c
movl $0x1, %edx
callq 0x105c0
movslq -0xc(%rbp), %rcx
movl $0x8, %eax
cmpq %rcx, %rax
jne 0x11f45
movq -0x8(%rbp), %rdi
leaq 0x362d9(%rip), %rsi     # 0x4820f
movl $0x8, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x11f5f
leaq 0x35bd8(%rip), %rdi     # 0x47b24
movl $0x25f, %esi            # imm = 0x25F
leaq 0x362c0(%rip), %rdx     # 0x48218
movb $0x0, %al
callq 0xe240
leaq -0x10(%rbp), %rdi
leaq 0x36515(%rip), %rsi     # 0x4847f
movl $0x2, %edx
movl $0x4, %ecx
callq 0x10740
movslq -0xc(%rbp), %rcx
movl $0xa, %eax
cmpq %rcx, %rax
jne 0x11fa1
movq -0x8(%rbp), %rdi
leaq 0x362a6(%rip), %rsi     # 0x48238
movl $0xa, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x11fbb
leaq 0x35b7c(%rip), %rdi     # 0x47b24
movl $0x263, %esi            # imm = 0x263
leaq 0x3628f(%rip), %rdx     # 0x48243
movb $0x0, %al
callq 0xe240
leaq -0x30(%rbp), %rdi
callq 0xfca0
leaq -0x30(%rbp), %rdi
leaq 0x36293(%rip), %rsi     # 0x48262
callq 0xfd80
leaq -0x10(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0x7, %edx
callq 0x10890
movslq -0xc(%rbp), %rcx
movl $0xc, %eax
cmpq %rcx, %rax
jne 0x1200e
movq -0x8(%rbp), %rdi
leaq 0x362d0(%rip), %rsi     # 0x482cf
movl $0xc, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x12028
leaq 0x35b0f(%rip), %rdi     # 0x47b24
movl $0x26a, %esi            # imm = 0x26A
leaq 0x36244(%rip), %rdx     # 0x48265
movb $0x0, %al
callq 0xe240
leaq -0x30(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
leaq 0x381ed(%rip), %rsi     # 0x4a229
callq 0x10ab0
movslq -0xc(%rbp), %rcx
movl $0xe, %eax
cmpq %rcx, %rax
jne 0x12069
movq -0x8(%rbp), %rdi
leaq 0x36273(%rip), %rsi     # 0x482cd
movl $0xe, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x12083
leaq 0x35ab4(%rip), %rdi     # 0x47b24
movl $0x26f, %esi            # imm = 0x26F
leaq 0x36209(%rip), %rdx     # 0x48285
movb $0x0, %al
callq 0xe240
leaq -0x10(%rbp), %rdi
leaq 0x36218(%rip), %rsi     # 0x482a6
movl $0x2, %edx
callq 0x10b20
movslq -0xc(%rbp), %rcx
movl $0x10, %eax
cmpq %rcx, %rax
jne 0x120c0
movq -0x8(%rbp), %rdi
leaq 0x3621a(%rip), %rsi     # 0x482cb
movl $0x10, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x120da
leaq 0x35a5d(%rip), %rdi     # 0x47b24
movl $0x273, %esi            # imm = 0x273
leaq 0x361d6(%rip), %rdx     # 0x482a9
movb $0x0, %al
callq 0xe240
leaq -0x40(%rbp), %rdi
callq 0xfca0
leaq -0x40(%rbp), %rdi
leaq 0x363ae(%rip), %rsi     # 0x4849c
callq 0xfd80
leaq -0x10(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x10b50
leaq -0x40(%rbp), %rdi
callq 0x10320
movslq -0xc(%rbp), %rcx
movl $0x12, %eax
cmpq %rcx, %rax
jne 0x12131
movq -0x8(%rbp), %rdi
leaq 0x361a7(%rip), %rsi     # 0x482c9
movl $0x12, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x1214b
leaq 0x359ec(%rip), %rdi     # 0x47b24
movl $0x27b, %esi            # imm = 0x27B
leaq 0x36198(%rip), %rdx     # 0x482dc
movb $0x0, %al
callq 0xe240
leaq -0x10(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
callq 0xfca0
leaq -0x10(%rbp), %rdi
movl $0x41, %esi
callq 0xfeb0
leaq -0x10(%rbp), %rdi
movl $0x42, %esi
callq 0xfeb0
movslq -0xc(%rbp), %rcx
movl $0x2, %eax
cmpq %rcx, %rax
jne 0x121a1
movq -0x8(%rbp), %rdi
leaq 0x35ff8(%rip), %rsi     # 0x4818a
movl $0x2, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x121bb
leaq 0x3597c(%rip), %rdi     # 0x47b24
movl $0x284, %esi            # imm = 0x284
leaq 0x36149(%rip), %rdx     # 0x482fd
movb $0x0, %al
callq 0xe240
leaq -0x10(%rbp), %rdi
movl $0x43, %esi
movl $0x1, %edx
callq 0x106f0
movslq -0xc(%rbp), %rcx
movl $0x3, %eax
cmpq %rcx, %rax
jne 0x121f6
movq -0x8(%rbp), %rdi
leaq 0x36157(%rip), %rsi     # 0x4833e
movl $0x3, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x12210
leaq 0x35927(%rip), %rdi     # 0x47b24
movl $0x288, %esi            # imm = 0x288
leaq 0x36114(%rip), %rdx     # 0x4831d
movb $0x0, %al
callq 0xe240
leaq -0x10(%rbp), %rdi
movl $0x44, %esi
callq 0x10ae0
movslq -0xc(%rbp), %rcx
movl $0x4, %eax
cmpq %rcx, %rax
jne 0x12246
movq -0x8(%rbp), %rdi
leaq 0x36106(%rip), %rsi     # 0x4833d
movl $0x4, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x12260
leaq 0x358d7(%rip), %rdi     # 0x47b24
movl $0x28c, %esi            # imm = 0x28C
leaq 0x360e9(%rip), %rdx     # 0x48342
movb $0x0, %al
callq 0xe240
movq -0x8(%rbp), %rax
movslq -0xc(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
je 0x1228b
leaq 0x358ac(%rip), %rdi     # 0x47b24
movl $0x291, %esi            # imm = 0x291
leaq 0x360df(%rip), %rdx     # 0x48363
movb $0x0, %al
callq 0xe240
leaq -0x10(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
callq 0xfca0
leaq -0x68(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
leaq -0x1f0c(%rip), %rdx     # 0x103a0
callq 0xc760
leaq -0x10(%rbp), %rdi
leaq 0x355cb(%rip), %rsi     # 0x47887
callq 0xfd80
leaq -0x68(%rbp), %rdi
leaq -0x10(%rbp), %rsi
leaq 0x360b2(%rip), %rdx     # 0x48382
movl $0x1, %ecx
callq 0x10ce0
cmpq $0x0, -0x58(%rbp)
je 0x122fb
leaq 0x3583c(%rip), %rdi     # 0x47b24
movl $0x2a0, %esi            # imm = 0x2A0
leaq 0x36090(%rip), %rdx     # 0x48384
movb $0x0, %al
callq 0xe240
leaq -0x68(%rbp), %rdi
movl $0x1, %esi
callq 0xc870
leaq -0x10(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
callq 0xfca0
leaq -0x68(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
leaq -0x1f8a(%rip), %rdx     # 0x103a0
callq 0xc760
leaq -0x10(%rbp), %rdi
leaq 0x3554d(%rip), %rsi     # 0x47887
callq 0xfd80
leaq -0x68(%rbp), %rdi
leaq -0x10(%rbp), %rsi
leaq 0x36034(%rip), %rdx     # 0x48382
xorl %ecx, %ecx
callq 0x10ce0
cmpq $0x0, -0x58(%rbp)
je 0x12376
leaq 0x357c1(%rip), %rdi     # 0x47b24
movl $0x2ac, %esi            # imm = 0x2AC
leaq 0x36039(%rip), %rdx     # 0x483a8
movb $0x0, %al
callq 0xe240
leaq -0x68(%rbp), %rdi
movl $0x1, %esi
callq 0xc870
leaq -0x10(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
callq 0xfca0
leaq -0x68(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
leaq -0x2005(%rip), %rdx     # 0x103a0
callq 0xc760
leaq -0x10(%rbp), %rdi
leaq 0x36018(%rip), %rsi     # 0x483cd
callq 0xfd80
leaq -0x68(%rbp), %rdi
leaq -0x10(%rbp), %rsi
leaq 0x35fb9(%rip), %rdx     # 0x48382
xorl %ecx, %ecx
callq 0x10ce0
cmpq $0x3, -0x58(%rbp)
je 0x123f1
leaq 0x35746(%rip), %rdi     # 0x47b24
movl $0x2b8, %esi            # imm = 0x2B8
leaq 0x35fec(%rip), %rdx     # 0x483d6
movb $0x0, %al
callq 0xe240
leaq -0x68(%rbp), %rdi
movl $0x1, %esi
callq 0xc870
leaq -0x10(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
leaq 0x35fe9(%rip), %rsi     # 0x483fc
callq 0xfd00
leaq -0x10(%rbp), %rdi
leaq 0x36041(%rip), %rsi     # 0x48464
callq 0x11000
cmpl $0x1, %eax
je 0x12447
leaq 0x356f0(%rip), %rdi     # 0x47b24
movl $0x2c2, %esi            # imm = 0x2C2
leaq 0x35fc2(%rip), %rdx     # 0x48402
movb $0x0, %al
callq 0xe240
leaq -0x10(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
leaq 0x35fa1(%rip), %rsi     # 0x483fc
callq 0xfd00
leaq -0x10(%rbp), %rdi
leaq 0x35ff9(%rip), %rsi     # 0x48464
callq 0x11130
cmpl $0x3, %eax
je 0x1248f
leaq 0x356a8(%rip), %rdi     # 0x47b24
movl $0x2ca, %esi            # imm = 0x2CA
leaq 0x35f92(%rip), %rdx     # 0x4841a
movb $0x0, %al
callq 0xe240
leaq -0x10(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
leaq 0x35f94(%rip), %rsi     # 0x48437
callq 0xfd00
leaq -0x78(%rbp), %rdi
callq 0xfca0
leaq -0x78(%rbp), %rdi
leaq -0x10(%rbp), %rsi
movl $0x1, %edx
movl $0x4, %ecx
callq 0x11230
movslq -0x74(%rbp), %rcx
movl $0x4, %eax
cmpq %rcx, %rax
jne 0x124f0
movq -0x70(%rbp), %rdi
leaq 0x35f5d(%rip), %rsi     # 0x4843e
movl $0x4, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x1250a
leaq 0x3562d(%rip), %rdi     # 0x47b24
movl $0x2d2, %esi            # imm = 0x2D2
leaq 0x35f40(%rip), %rdx     # 0x48443
movb $0x0, %al
callq 0xe240
leaq -0x78(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
leaq 0x35f36(%rip), %rsi     # 0x4845d
callq 0xfd00
leaq -0x88(%rbp), %rdi
callq 0xfca0
leaq -0x88(%rbp), %rdi
leaq -0x10(%rbp), %rsi
movl $0x20, %edx
callq 0x11930
movslq -0x84(%rbp), %rcx
movl $0x5, %eax
cmpq %rcx, %rax
jne 0x12578
movq -0x80(%rbp), %rdi
leaq 0x35ef7(%rip), %rsi     # 0x48460
movl $0x5, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x12592
leaq 0x355a5(%rip), %rdi     # 0x47b24
movl $0x2db, %esi            # imm = 0x2DB
leaq 0x35edb(%rip), %rdx     # 0x48466
movb $0x0, %al
callq 0xe240
leaq -0x88(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
leaq 0x35eab(%rip), %rsi     # 0x4845d
callq 0xfd00
leaq -0x98(%rbp), %rdi
callq 0xfca0
leaq -0x98(%rbp), %rdi
leaq -0x10(%rbp), %rsi
movl $0x20, %edx
callq 0x11a70
movslq -0x94(%rbp), %rcx
movl $0x6, %eax
cmpq %rcx, %rax
jne 0x12606
movq -0x90(%rbp), %rdi
leaq 0x35e84(%rip), %rsi     # 0x4847b
movl $0x6, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x12620
leaq 0x35517(%rip), %rdi     # 0x47b24
movl $0x2e4, %esi            # imm = 0x2E4
leaq 0x35e69(%rip), %rdx     # 0x48482
movb $0x0, %al
callq 0xe240
leaq -0x98(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
leaq 0x35e1d(%rip), %rsi     # 0x4845d
callq 0xfd00
leaq -0xa8(%rbp), %rdi
callq 0xfca0
leaq -0xa8(%rbp), %rdi
leaq -0x10(%rbp), %rsi
movl $0x20, %edx
callq 0x11bb0
movslq -0xa4(%rbp), %rcx
movl $0x3, %eax
cmpq %rcx, %rax
jne 0x12694
movq -0xa0(%rbp), %rdi
leaq 0x35df9(%rip), %rsi     # 0x4847e
movl $0x3, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x126ae
leaq 0x35489(%rip), %rdi     # 0x47b24
movl $0x2ed, %esi            # imm = 0x2ED
leaq 0x35ddb(%rip), %rdx     # 0x48482
movb $0x0, %al
callq 0xe240
leaq -0xa8(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
leaq 0x37be5(%rip), %rsi     # 0x4a2b3
callq 0xfd00
leaq -0x10(%rbp), %rdi
leaq 0x3dead(%rip), %rsi     # 0x5058b
movl $0x1e240, %edx          # imm = 0x1E240
movb $0x0, %al
callq 0x104e0
movslq -0xc(%rbp), %rcx
movl $0x7, %eax
cmpq %rcx, %rax
jne 0x12712
movq -0x8(%rbp), %rdi
leaq 0x35d94(%rip), %rsi     # 0x48497
movl $0x7, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x1272c
leaq 0x3540b(%rip), %rdi     # 0x47b24
movl $0x2f4, %esi            # imm = 0x2F4
leaq 0x35d7a(%rip), %rdx     # 0x4849f
movb $0x0, %al
callq 0xe240
leaq -0x10(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
leaq 0x35a4a(%rip), %rsi     # 0x4818a
callq 0xfd00
leaq -0x10(%rbp), %rdi
movl $0x1, %esi
leaq 0x3de36(%rip), %rdx     # 0x5058b
movl $0x1e240, %ecx          # imm = 0x1E240
movb $0x0, %al
callq 0x109d0
movslq -0xc(%rbp), %rcx
movl $0x8, %eax
cmpq %rcx, %rax
jne 0x12789
movq -0x8(%rbp), %rdi
leaq 0x35d3c(%rip), %rsi     # 0x484b6
movl $0x8, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x127a3
leaq 0x35394(%rip), %rdi     # 0x47b24
movl $0x2fa, %esi            # imm = 0x2FA
leaq 0x35d23(%rip), %rdx     # 0x484bf
movb $0x0, %al
callq 0xe240
leaq -0x10(%rbp), %rdi
callq 0x10320
leaq -0x10(%rbp), %rdi
leaq 0x37afc(%rip), %rsi     # 0x4a2b3
callq 0xfd00
leaq -0x10(%rbp), %rdi
leaq 0x3ddc4(%rip), %rsi     # 0x5058b
movl $0x1e240, %edx          # imm = 0x1E240
movb $0x0, %al
callq 0x10b80
movslq -0xc(%rbp), %rcx
movl $0x7, %eax
cmpq %rcx, %rax
jne 0x127fb
movq -0x8(%rbp), %rdi
leaq 0x35cea(%rip), %rsi     # 0x484d6
movl $0x7, %edx
callq 0xa040
cmpl $0x0, %eax
je 0x12815
leaq 0x35322(%rip), %rdi     # 0x47b24
movl $0x300, %esi            # imm = 0x300
leaq 0x35cd0(%rip), %rdx     # 0x484de
movb $0x0, %al
callq 0xe240
leaq -0x10(%rbp), %rdi
callq 0x10320
addq $0xb0, %rsp
popq %rbp
retq
nopw (%rax,%rax)