// File: /workspace/github_c_makefile_star2_O1/DeforaOS[P]libSystem/tests/string.c
// Function: main
int main(int argc, char * argv[])
{
	int ret = 0;
	String * s;
	(void) argc;

	/* test */
	if((s = string_new(argv[0])) == NULL)
		return 2;
	ret |= _test(s);
	string_delete(s);
	if((s = string_new_format("%s", argv[0])) == NULL)
		return 2;
	ret |= _test(s);
	string_delete(s);
	/* test2 */
	ret |= _test2("", NULL, 0);
	ret |= _test2(" ", NULL, 1);
	ret |= _test2("", "", 0);
	ret |= _test2("Y", "Y", 1);
	ret |= _test2("YYYY", NULL, 0);
	ret |= _test2("YYYY", "", 0);
	ret |= _test2("YYYY", "Y", 4);
	ret |= _test2("ZYYYY", "Z", 0);
	ret |= _test2("YYYYZ", "Z", 1);
	ret |= _test2("YYYYZZ", "Z", 2);
	ret |= _test2("YYYYZZ", "YZ", 6);
	/* test3 */
	ret |= _test3("", NULL, 0);
	ret |= _test3(" ", NULL, 1);
	ret |= _test3("", "", 0);
	ret |= _test3("Y", "Y", 1);
	ret |= _test3("YYYY", NULL, 0);
	ret |= _test3("YYYY", "", 0);
	ret |= _test3("YYYY", "Y", 4);
	ret |= _test3("YZZZZ", "Z", 0);
	ret |= _test3("YZZZZ", "Y", 1);
	ret |= _test3("YYZZZZ", "Y", 2);
	ret |= _test3("YYYYZZ", "YZ", 6);
	/* test4 */
	ret |= _test4("", NULL, 0);
	ret |= _test4(" ", NULL, 1);
	ret |= _test4("", "", 0);
	ret |= _test4("Y", "Y", 1);
	ret |= _test4("YYYY", NULL, 0);
	ret |= _test4("YYYY", "", 0);
	ret |= _test4("YYYY", "Y", 4);
	ret |= _test4("YYYYZ", "Z", 1);
	ret |= _test4("YYYYZZ", "Z", 2);
	ret |= _test4("YYYYZZ", "YZ", 6);
	ret |= _test4("ZZYYYYZZ", "YZ", 8);
	ret |= _test4("ZZYYYYZZ", "Y", 0);
	/* test5 */
	ret |= _test5("test", "", 4);
	ret |= _test5("test", "test", 0);
	ret |= _test5("test", "test2", -1);
	ret |= _test5("test2", "test", 0);
	ret |= _test5("2test", "test", 1);
	ret |= _test5("2test2", "test", 1);
	ret |= _test5("2test2test2", "test", 1);
	/* test6 */
	ret |= _test6("test", "", 4);
	ret |= _test6("test", "test", 0);
	ret |= _test6("test", "test2", -1);
	ret |= _test6("test2", "test", 0);
	ret |= _test6("2test", "test", 1);
	ret |= _test6("2test2", "test", 1);
	ret |= _test6("2test2test2", "test", 6);
	/* test7 */
	ret |= _test7(NULL, 0, "");
	ret |= _test7(NULL, 7, "");
	ret |= _test7("test", 0, "");
	ret |= _test7("test", 1, "t");
	ret |= _test7("test", 4, "test");
	ret |= _test7("test", 7, "test");
	/* test8 */
	ret |= _test8("abcABC", "abcabc");
	ret |= _test8("abcABC123", "abcabc123");
	/* test9 */
	ret |= _test9("abcABC", "ABCABC");
	ret |= _test9("abcABC123", "ABCABC123");
	return ret;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r15
movq (%rsi), %rdi
callq 0x1050
movl $0x2, %ebx
testq %rax, %rax
je 0x17d0
movq %rax, %r12
movq %rax, %rdi
callq 0x17e1
movl %eax, %r14d
movq %r12, %rdi
callq 0x1080
movq (%r15), %rsi
leaq 0xda4(%rip), %rdi       # 0x2004
xorl %eax, %eax
callq 0x1100
testq %rax, %rax
je 0x17d0
movq %rax, %r15
movq %rax, %rdi
callq 0x17e1
movl %eax, %ebp
orl %r14d, %ebp
movq %r15, %rdi
callq 0x1080
leaq 0xf48(%rip), %rbx       # 0x21d7
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x1875
movl %eax, %r14d
leaq 0xd62(%rip), %rdi       # 0x2007
xorl %esi, %esi
movl $0x1, %edx
callq 0x1875
movl %eax, %r15d
orl %r14d, %r15d
movq %rbx, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x1875
movl %eax, %r12d
orl %r15d, %r12d
leaq 0xd3c(%rip), %r14       # 0x200d
movq %r14, %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x1875
movl %eax, %r13d
orl %r12d, %r13d
leaq 0xd1c(%rip), %r15       # 0x200a
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x1875
movl %eax, %r12d
orl %r13d, %r12d
movq %r15, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x1875
movl %eax, %ebx
orl %r12d, %ebx
movq %r15, %rdi
movq %r14, %rsi
movl $0x4, %edx
callq 0x1875
movl %eax, %r13d
orl %ebx, %r13d
orl %ebp, %r13d
leaq 0xcd7(%rip), %rdi       # 0x2009
leaq 0xcda(%rip), %r12       # 0x2013
movq %r12, %rsi
xorl %edx, %edx
callq 0x1875
movl %eax, %ebx
leaq 0xcc3(%rip), %rdi       # 0x200f
movq %r12, %rsi
movl $0x1, %edx
callq 0x1875
movl %eax, %ebp
orl %ebx, %ebp
leaq 0xcba(%rip), %r15       # 0x201e
movq %r15, %rdi
movq %r12, %rsi
movl $0x2, %edx
callq 0x1875
movl %eax, %ebx
orl %ebp, %ebx
leaq 0xc93(%rip), %rsi       # 0x2012
movq %r15, %rdi
movl $0x6, %edx
callq 0x1875
movl %eax, %ebp
orl %ebx, %ebp
leaq 0xe40(%rip), %r12       # 0x21d7
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x1903
movl %eax, %ebx
orl %ebp, %ebx
leaq 0xc59(%rip), %rdi       # 0x2007
xorl %esi, %esi
movl $0x1, %edx
callq 0x1903
movl %eax, %ebp
orl %ebx, %ebp
movq %r12, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x1903
movl %eax, %ebx
orl %ebp, %ebx
movq %r14, %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x1903
movl %eax, %ebp
orl %ebx, %ebp
orl %r13d, %ebp
leaq 0xc1d(%rip), %r15       # 0x200a
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x1903
movl %eax, %ebx
movq %r15, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x1903
movl %eax, %r13d
orl %ebx, %r13d
movq %r15, %rdi
movq %r14, %rsi
movl $0x4, %edx
callq 0x1903
movl %eax, %ebx
orl %r13d, %ebx
leaq 0xbec(%rip), %r13       # 0x2016
movq %r13, %rdi
leaq 0xbdf(%rip), %rsi       # 0x2013
xorl %edx, %edx
callq 0x1903
movl %eax, %r12d
orl %ebx, %r12d
movq %r13, %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x1903
movl %eax, %ebx
orl %r12d, %ebx
leaq 0xbb8(%rip), %rdi       # 0x2015
movq %r14, %rsi
movl $0x2, %edx
callq 0x1903
movl %eax, %r12d
orl %ebx, %r12d
leaq 0xba7(%rip), %rdi       # 0x201e
leaq 0xb94(%rip), %rsi       # 0x2012
movl $0x6, %edx
callq 0x1903
movl %eax, %ebx
orl %r12d, %ebx
leaq 0xd43(%rip), %rdi       # 0x21d7
xorl %esi, %esi
xorl %edx, %edx
callq 0x1991
movl %eax, %r12d
orl %ebx, %r12d
leaq 0xb5d(%rip), %rdi       # 0x2007
xorl %esi, %esi
movl $0x1, %edx
callq 0x1991
movl %eax, %r13d
orl %r12d, %r13d
orl %ebp, %r13d
leaq 0xd11(%rip), %rdi       # 0x21d7
movq %rdi, %rsi
movq %rdi, %r12
xorl %edx, %edx
callq 0x1991
movl %eax, %ebx
movq %r14, %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x1991
movl %eax, %ebp
orl %ebx, %ebp
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x1991
movl %eax, %ebx
orl %ebp, %ebx
movq %r15, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x1991
movl %eax, %ebp
orl %ebx, %ebp
movq %r15, %rdi
movq %r14, %rsi
movl $0x4, %edx
callq 0x1991
movl %eax, %ebx
orl %ebp, %ebx
leaq 0xaea(%rip), %rdi       # 0x200f
leaq 0xae7(%rip), %r15       # 0x2013
movq %r15, %rsi
movl $0x1, %edx
callq 0x1991
movl %eax, %ebp
orl %ebx, %ebp
leaq 0xada(%rip), %r12       # 0x201e
movq %r12, %rdi
movq %r15, %rsi
movl $0x2, %edx
callq 0x1991
movl %eax, %ebx
orl %ebp, %ebx
movq %r12, %rdi
leaq 0xab0(%rip), %r15       # 0x2012
movq %r15, %rsi
movl $0x6, %edx
callq 0x1991
movl %eax, %ebp
orl %ebx, %ebp
leaq 0xaa2(%rip), %rbx       # 0x201c
movq %rbx, %rdi
movq %r15, %rsi
movl $0x8, %edx
callq 0x1991
movl %eax, %r12d
orl %ebp, %r12d
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x1991
movl %eax, %r15d
orl %r12d, %r15d
orl %r13d, %r15d
leaq 0xa79(%rip), %r14       # 0x2026
movl $0x4, %edx
movq %r14, %rdi
leaq 0xc1b(%rip), %r13       # 0x21d7
movq %r13, %rsi
callq 0x1a1f
movl %eax, %ebx
movq %r14, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x1a1f
movl %eax, %ebp
orl %ebx, %ebp
leaq 0xa53(%rip), %r12       # 0x2031
movq %r14, %rdi
movq %r12, %rsi
movq $-0x1, %rdx
callq 0x1a1f
movl %eax, %ebx
orl %ebp, %ebx
movq %r12, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x1a1f
movl %eax, %ebp
orl %ebx, %ebp
leaq 0xa19(%rip), %rdi       # 0x2025
movl $0x1, %edx
movq %r14, %rsi
callq 0x1a1f
movl %eax, %ebx
orl %ebp, %ebx
leaq 0xa0c(%rip), %rdi       # 0x2030
movl $0x1, %edx
movq %r14, %rsi
callq 0x1a1f
movl %eax, %ebp
orl %ebx, %ebp
leaq 0x9ef(%rip), %rdi       # 0x202b
movl $0x1, %edx
movq %r14, %rsi
callq 0x1a1f
movl %eax, %ebx
orl %ebp, %ebx
movl $0x4, %edx
movq %r14, %rdi
movq %r13, %rsi
callq 0x1a90
movl %eax, %ebp
orl %ebx, %ebp
movq %r14, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x1a90
movl %eax, %ebx
orl %ebp, %ebx
movq %r14, %rdi
movq %r12, %rsi
movq $-0x1, %rdx
callq 0x1a90
movl %eax, %r13d
orl %ebx, %r13d
movq %r12, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x1a90
movl %eax, %ebp
orl %r13d, %ebp
orl %r15d, %ebp
movl $0x1, %edx
leaq 0x97a(%rip), %rdi       # 0x2025
movq %r14, %rsi
callq 0x1a90
movl %eax, %ebx
movl $0x1, %edx
leaq 0x96f(%rip), %rdi       # 0x2030
movq %r14, %rsi
callq 0x1a90
movl %eax, %r15d
orl %ebx, %r15d
movl $0x6, %edx
leaq 0x950(%rip), %rdi       # 0x202b
movq %r14, %rsi
callq 0x1a90
movl %eax, %ebx
orl %r15d, %ebx
xorl %edi, %edi
xorl %esi, %esi
leaq 0xae4(%rip), %r12       # 0x21d7
movq %r12, %rdx
callq 0x1b01
movl %eax, %r15d
orl %ebx, %r15d
movl $0x7, %esi
xorl %edi, %edi
movq %r12, %rdx
callq 0x1b01
movl %eax, %ebx
orl %r15d, %ebx
movq %r14, %rdi
xorl %esi, %esi
movq %r12, %rdx
callq 0x1b01
movl %eax, %r15d
orl %ebx, %r15d
leaq 0x8fa(%rip), %rdx       # 0x2029
movl $0x1, %esi
movq %r14, %rdi
callq 0x1b01
movl %eax, %ebx
orl %r15d, %ebx
movl $0x4, %esi
movq %r14, %rdi
movq %r14, %rdx
callq 0x1b01
movl %eax, %r15d
orl %ebx, %r15d
movl $0x7, %esi
movq %r14, %rdi
movq %r14, %rdx
callq 0x1b01
movl %eax, %ebx
orl %r15d, %ebx
leaq 0x8c4(%rip), %r14       # 0x2037
leaq 0x8c4(%rip), %rsi       # 0x203e
movq %r14, %rdi
callq 0x1b92
movl %eax, %r15d
orl %ebx, %r15d
leaq 0x8b6(%rip), %rbx       # 0x2045
leaq 0x8b9(%rip), %rsi       # 0x204f
movq %rbx, %rdi
callq 0x1b92
movl %eax, %r12d
orl %r15d, %r12d
leaq 0x8ae(%rip), %rsi       # 0x2059
movq %r14, %rdi
callq 0x1c14
movl %eax, %r14d
orl %r12d, %r14d
orl %ebp, %r14d
leaq 0x89d(%rip), %rsi       # 0x2060
movq %rbx, %rdi
callq 0x1c14
movl %eax, %ebx
orl %r14d, %ebx
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq