// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x20, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x1050
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x125f
movl $0x2, -0x4(%rbp)
jmp 0x18ff
movq -0x20(%rbp), %rdi
callq 0x1910
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x20(%rbp), %rdi
callq 0x1080
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0xd7f(%rip), %rdi       # 0x2004
movb $0x0, %al
callq 0x1100
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x12a2
movl $0x2, -0x4(%rbp)
jmp 0x18ff
movq -0x20(%rbp), %rdi
callq 0x1910
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x20(%rbp), %rdi
callq 0x1080
leaq 0xf16(%rip), %rdi       # 0x21d7
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x19e0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xd2e(%rip), %rdi       # 0x2007
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0x19e0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xee3(%rip), %rsi       # 0x21d7
xorl %edx, %edx
movq %rsi, %rdi
callq 0x19e0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xd02(%rip), %rsi       # 0x200d
movl $0x1, %edx
movq %rsi, %rdi
callq 0x19e0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xce5(%rip), %rdi       # 0x200a
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x19e0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xccd(%rip), %rdi       # 0x200a
leaq 0xe93(%rip), %rsi       # 0x21d7
xorl %edx, %edx
callq 0x19e0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xcb2(%rip), %rdi       # 0x200a
leaq 0xcae(%rip), %rsi       # 0x200d
movl $0x4, %edx
callq 0x19e0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xc93(%rip), %rdi       # 0x2009
leaq 0xc96(%rip), %rsi       # 0x2013
xorl %edx, %edx
callq 0x19e0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xc7e(%rip), %rdi       # 0x200f
leaq 0xc7b(%rip), %rsi       # 0x2013
movl $0x1, %edx
callq 0x19e0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xc6f(%rip), %rdi       # 0x201e
leaq 0xc5d(%rip), %rsi       # 0x2013
movl $0x2, %edx
callq 0x19e0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xc51(%rip), %rdi       # 0x201e
leaq 0xc3e(%rip), %rsi       # 0x2012
movl $0x6, %edx
callq 0x19e0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xdec(%rip), %rdi       # 0x21d7
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x1a90
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xc04(%rip), %rdi       # 0x2007
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0x1a90
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xdb9(%rip), %rsi       # 0x21d7
xorl %edx, %edx
movq %rsi, %rdi
callq 0x1a90
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xbd8(%rip), %rsi       # 0x200d
movl $0x1, %edx
movq %rsi, %rdi
callq 0x1a90
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xbbb(%rip), %rdi       # 0x200a
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x1a90
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xba3(%rip), %rdi       # 0x200a
leaq 0xd69(%rip), %rsi       # 0x21d7
xorl %edx, %edx
callq 0x1a90
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xb88(%rip), %rdi       # 0x200a
leaq 0xb84(%rip), %rsi       # 0x200d
movl $0x4, %edx
callq 0x1a90
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xb76(%rip), %rdi       # 0x2016
leaq 0xb6c(%rip), %rsi       # 0x2013
xorl %edx, %edx
callq 0x1a90
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xb5b(%rip), %rdi       # 0x2016
leaq 0xb4b(%rip), %rsi       # 0x200d
movl $0x1, %edx
callq 0x1a90
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xb3c(%rip), %rdi       # 0x2015
leaq 0xb2d(%rip), %rsi       # 0x200d
movl $0x2, %edx
callq 0x1a90
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xb27(%rip), %rdi       # 0x201e
leaq 0xb14(%rip), %rsi       # 0x2012
movl $0x6, %edx
callq 0x1a90
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xcc2(%rip), %rdi       # 0x21d7
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x1b40
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xada(%rip), %rdi       # 0x2007
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0x1b40
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xc8f(%rip), %rsi       # 0x21d7
xorl %edx, %edx
movq %rsi, %rdi
callq 0x1b40
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xaae(%rip), %rsi       # 0x200d
movl $0x1, %edx
movq %rsi, %rdi
callq 0x1b40
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xa91(%rip), %rdi       # 0x200a
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x1b40
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xa79(%rip), %rdi       # 0x200a
leaq 0xc3f(%rip), %rsi       # 0x21d7
xorl %edx, %edx
callq 0x1b40
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xa5e(%rip), %rdi       # 0x200a
leaq 0xa5a(%rip), %rsi       # 0x200d
movl $0x4, %edx
callq 0x1b40
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xa45(%rip), %rdi       # 0x200f
leaq 0xa42(%rip), %rsi       # 0x2013
movl $0x1, %edx
callq 0x1b40
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xa36(%rip), %rdi       # 0x201e
leaq 0xa24(%rip), %rsi       # 0x2013
movl $0x2, %edx
callq 0x1b40
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xa18(%rip), %rdi       # 0x201e
leaq 0xa05(%rip), %rsi       # 0x2012
movl $0x6, %edx
callq 0x1b40
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x9f8(%rip), %rdi       # 0x201c
leaq 0x9e7(%rip), %rsi       # 0x2012
movl $0x8, %edx
callq 0x1b40
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x9da(%rip), %rdi       # 0x201c
leaq 0x9c4(%rip), %rsi       # 0x200d
xorl %edx, %edx
callq 0x1b40
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x9c9(%rip), %rdi       # 0x2026
leaq 0xb73(%rip), %rsi       # 0x21d7
movl $0x4, %edx
callq 0x1bf0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x9ab(%rip), %rsi       # 0x2026
xorl %eax, %eax
movl %eax, %edx
movq %rsi, %rdi
callq 0x1bf0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x992(%rip), %rdi       # 0x2026
leaq 0x996(%rip), %rsi       # 0x2031
movq $-0x1, %rdx
callq 0x1bf0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x97d(%rip), %rdi       # 0x2031
leaq 0x96b(%rip), %rsi       # 0x2026
xorl %eax, %eax
movl %eax, %edx
callq 0x1bf0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x954(%rip), %rdi       # 0x2025
leaq 0x94e(%rip), %rsi       # 0x2026
movl $0x1, %edx
callq 0x1bf0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x941(%rip), %rdi       # 0x2030
leaq 0x930(%rip), %rsi       # 0x2026
movl $0x1, %edx
callq 0x1bf0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x91e(%rip), %rdi       # 0x202b
leaq 0x912(%rip), %rsi       # 0x2026
movl $0x1, %edx
callq 0x1bf0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x8fb(%rip), %rdi       # 0x2026
leaq 0xaa5(%rip), %rsi       # 0x21d7
movl $0x4, %edx
callq 0x1c80
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x8dd(%rip), %rsi       # 0x2026
xorl %eax, %eax
movl %eax, %edx
movq %rsi, %rdi
callq 0x1c80
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x8c4(%rip), %rdi       # 0x2026
leaq 0x8c8(%rip), %rsi       # 0x2031
movq $-0x1, %rdx
callq 0x1c80
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x8af(%rip), %rdi       # 0x2031
leaq 0x89d(%rip), %rsi       # 0x2026
xorl %eax, %eax
movl %eax, %edx
callq 0x1c80
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x886(%rip), %rdi       # 0x2025
leaq 0x880(%rip), %rsi       # 0x2026
movl $0x1, %edx
callq 0x1c80
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x873(%rip), %rdi       # 0x2030
leaq 0x862(%rip), %rsi       # 0x2026
movl $0x1, %edx
callq 0x1c80
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x850(%rip), %rdi       # 0x202b
leaq 0x844(%rip), %rsi       # 0x2026
movl $0x6, %edx
callq 0x1c80
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq 0x9da(%rip), %rdx       # 0x21d7
movq %rsi, %rdi
callq 0x1d10
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
xorl %eax, %eax
movl %eax, %edi
movl $0x7, %esi
leaq 0x9bc(%rip), %rdx       # 0x21d7
callq 0x1d10
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x7f9(%rip), %rdi       # 0x2026
xorl %eax, %eax
movl %eax, %esi
leaq 0x99f(%rip), %rdx       # 0x21d7
callq 0x1d10
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x7dc(%rip), %rdi       # 0x2026
movl $0x1, %esi
leaq 0x7d3(%rip), %rdx       # 0x2029
callq 0x1d10
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x7be(%rip), %rdx       # 0x2026
movl $0x4, %esi
movq %rdx, %rdi
callq 0x1d10
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x7a4(%rip), %rdx       # 0x2026
movl $0x7, %esi
movq %rdx, %rdi
callq 0x1d10
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x79b(%rip), %rdi       # 0x2037
leaq 0x79b(%rip), %rsi       # 0x203e
callq 0x1dc0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x790(%rip), %rdi       # 0x2045
leaq 0x793(%rip), %rsi       # 0x204f
callq 0x1dc0
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x769(%rip), %rdi       # 0x2037
leaq 0x784(%rip), %rsi       # 0x2059
callq 0x1e70
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x75e(%rip), %rdi       # 0x2045
leaq 0x772(%rip), %rsi       # 0x2060
callq 0x1e70
orl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)