// File: yukioc[P]tscrpt/t-tscrpt.cpp
// Function: t_estrndup()
void t_estrndup(){/*{{{*/
	bool except;
	char* s;
	//! \test NULL ptr => NULL
	s=estrndup(NULL,1);
	mu_assert(s==NULL);

	//! \test zero => ""
	s=estrndup("hello",0);
	mu_assert(s!=NULL);
	mu_assert(strlen(s)==0);
	delete s;

	//! \test hello => hello
	s=estrndup("hello",5);
	mu_assert(s!=NULL);
	mu_assert(strlen(s)==5);
	mu_assert(strcmp(s,"hello")==0);
	delete s;

	//! \test hello,n=4 => hell
	s=estrndup("hello",4);
	mu_assert(s!=NULL);
	mu_assert(strlen(s)==4);
	mu_assert(strcmp(s,"hell")==0);
	delete s;

	//! \test first\\0second,n=12 => first
	s=estrndup("first\0second",12);
	mu_assert(s!=NULL);
	mu_assert(strlen(s)==5);
	mu_assert(strcmp(s,"first")==0);
	delete s;

	//! \test say "hello" => say "hello"
	s=estrndup("say \\\"hello\\\"",13);
	mu_assert(s!=NULL);
	mu_assert(strlen(s)==11);
	mu_assert(strcmp(s,"say \"hello\"")==0);
	delete s;

	//! \test esc chars => unescaped
	s=estrndup("\\a,\\b,\\f,\\n,\\r,\\t,\\v,\\?,\\\\,\\',\\\"$",33);
	mu_assert(s!=NULL);
	mu_assert(strlen(s)==22);
	mu_assert(strcmp(s,"\a,\b,\f,\n,\r,\t,\v,\?,\\,\',\"$")==0);
	delete s;

	//! \test \\x4Fh! => Oh!
	s=estrndup("\\x4Fh!",6);
	mu_assert(s!=NULL);
	mu_assert(strlen(s)==3);
	mu_assert(strcmp(s,"Oh!")==0);
	delete s;

	//! \test \\107ood => Good
	s=estrndup("\\107ood",7);
	mu_assert(s!=NULL);
	mu_assert(strlen(s)==4);
	mu_assert(strcmp(s,"Good")==0);
	delete s;

	//! \test FIRST\\0SECOND => FIRST\\0SECOND\\0
	s=estrndup("FIRST\\0SECOND",13);
	mu_assert(s!=NULL);
	mu_assert(strlen(s)==5);
	mu_assert(memcmp(s,"FIRST\0SECOND\0",13)==0);
	delete s;
	s=0;

	//! \test aaa"bbb => exception
	except=false;
	try {
		s=estrndup("aaa\"bbb",7);
	}catch(std::exception& e){
		except=true;
		mu_assert(typeid(e)==typeid(std::logic_error));
	}
	assert(except==true);

	//! \test \\z => exception
	except=false;
	try {
		s=estrndup("\\z",2);
	}catch(std::exception& e){
		except=true;
		mu_assert(typeid(e)==typeid(std::logic_error));
	}
	assert(except==true);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
xorl %eax, %eax
movl %eax, %edi
movl $0x1, %esi
callq 0x2e50
movq %rax, -0x10(%rbp)
movl 0x9189(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x9180(%rip)      # 0xe1fc
cmpq $0x0, -0x10(%rbp)
je 0x50b3
movl 0x916b(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x9162(%rip)      # 0xe1f4
leaq 0x5443(%rip), %rdi      # 0xa4dc
leaq 0x545a(%rip), %rsi      # 0xa4fa
movl $0x15, %edx
leaq 0x545b(%rip), %rcx      # 0xa507
movb $0x0, %al
callq 0x2040
jmp 0x50b5
leaq 0x5453(%rip), %rdi      # 0xa50f
xorl %eax, %eax
movl %eax, %esi
callq 0x2e50
movq %rax, -0x10(%rbp)
movl 0x912d(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x9124(%rip)      # 0xe1fc
cmpq $0x0, -0x10(%rbp)
jne 0x510f
movl 0x910f(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x9106(%rip)      # 0xe1f4
leaq 0x53e7(%rip), %rdi      # 0xa4dc
leaq 0x53fe(%rip), %rsi      # 0xa4fa
movl $0x19, %edx
leaq 0x540d(%rip), %rcx      # 0xa515
movb $0x0, %al
callq 0x2040
jmp 0x5111
jmp 0x5113
movl 0x90e3(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x90da(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
callq 0x2100
cmpq $0x0, %rax
je 0x5161
movl 0x90bd(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x90b4(%rip)      # 0xe1f4
leaq 0x5395(%rip), %rdi      # 0xa4dc
leaq 0x53ac(%rip), %rsi      # 0xa4fa
movl $0x1a, %edx
leaq 0x53c3(%rip), %rcx      # 0xa51d
movb $0x0, %al
callq 0x2040
jmp 0x5163
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
cmpq $0x0, %rax
je 0x517f
movq -0x38(%rbp), %rdi
movl $0x1, %esi
callq 0x21d0
leaq 0x5389(%rip), %rdi      # 0xa50f
movl $0x5, %esi
callq 0x2e50
movq %rax, -0x10(%rbp)
movl 0x9062(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x9059(%rip)      # 0xe1fc
cmpq $0x0, -0x10(%rbp)
jne 0x51da
movl 0x9044(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x903b(%rip)      # 0xe1f4
leaq 0x531c(%rip), %rdi      # 0xa4dc
leaq 0x5333(%rip), %rsi      # 0xa4fa
movl $0x1f, %edx
leaq 0x5342(%rip), %rcx      # 0xa515
movb $0x0, %al
callq 0x2040
jmp 0x51dc
jmp 0x51de
movl 0x9018(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x900f(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
callq 0x2100
cmpq $0x5, %rax
je 0x522c
movl 0x8ff2(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8fe9(%rip)      # 0xe1f4
leaq 0x52ca(%rip), %rdi      # 0xa4dc
leaq 0x52e1(%rip), %rsi      # 0xa4fa
movl $0x20, %edx
leaq 0x5305(%rip), %rcx      # 0xa52a
movb $0x0, %al
callq 0x2040
jmp 0x522e
jmp 0x5230
movl 0x8fc6(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8fbd(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
leaq 0x52c5(%rip), %rsi      # 0xa50f
callq 0x2290
cmpl $0x0, %eax
je 0x5284
movl 0x8f9a(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8f91(%rip)      # 0xe1f4
leaq 0x5272(%rip), %rdi      # 0xa4dc
leaq 0x5289(%rip), %rsi      # 0xa4fa
movl $0x21, %edx
leaq 0x52ba(%rip), %rcx      # 0xa537
movb $0x0, %al
callq 0x2040
jmp 0x5286
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
cmpq $0x0, %rax
je 0x52a2
movq -0x40(%rbp), %rdi
movl $0x1, %esi
callq 0x21d0
leaq 0x5266(%rip), %rdi      # 0xa50f
movl $0x4, %esi
callq 0x2e50
movq %rax, -0x10(%rbp)
movl 0x8f3f(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8f36(%rip)      # 0xe1fc
cmpq $0x0, -0x10(%rbp)
jne 0x52fd
movl 0x8f21(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8f18(%rip)      # 0xe1f4
leaq 0x51f9(%rip), %rdi      # 0xa4dc
leaq 0x5210(%rip), %rsi      # 0xa4fa
movl $0x26, %edx
leaq 0x521f(%rip), %rcx      # 0xa515
movb $0x0, %al
callq 0x2040
jmp 0x52ff
jmp 0x5301
movl 0x8ef5(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8eec(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
callq 0x2100
cmpq $0x4, %rax
je 0x534f
movl 0x8ecf(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8ec6(%rip)      # 0xe1f4
leaq 0x51a7(%rip), %rdi      # 0xa4dc
leaq 0x51be(%rip), %rsi      # 0xa4fa
movl $0x27, %edx
leaq 0x5204(%rip), %rcx      # 0xa54c
movb $0x0, %al
callq 0x2040
jmp 0x5351
jmp 0x5353
movl 0x8ea3(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8e9a(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
leaq 0x51ec(%rip), %rsi      # 0xa559
callq 0x2290
cmpl $0x0, %eax
je 0x53a7
movl 0x8e77(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8e6e(%rip)      # 0xe1f4
leaq 0x514f(%rip), %rdi      # 0xa4dc
leaq 0x5166(%rip), %rsi      # 0xa4fa
movl $0x28, %edx
leaq 0x51be(%rip), %rcx      # 0xa55e
movb $0x0, %al
callq 0x2040
jmp 0x53a9
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
cmpq $0x0, %rax
je 0x53c5
movq -0x48(%rbp), %rdi
movl $0x1, %esi
callq 0x21d0
leaq 0x57ae(%rip), %rdi      # 0xab7a
movl $0xc, %esi
callq 0x2e50
movq %rax, -0x10(%rbp)
movl 0x8e1c(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8e13(%rip)      # 0xe1fc
cmpq $0x0, -0x10(%rbp)
jne 0x5420
movl 0x8dfe(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8df5(%rip)      # 0xe1f4
leaq 0x50d6(%rip), %rdi      # 0xa4dc
leaq 0x50ed(%rip), %rsi      # 0xa4fa
movl $0x2d, %edx
leaq 0x50fc(%rip), %rcx      # 0xa515
movb $0x0, %al
callq 0x2040
jmp 0x5422
jmp 0x5424
movl 0x8dd2(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8dc9(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
callq 0x2100
cmpq $0x5, %rax
je 0x5472
movl 0x8dac(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8da3(%rip)      # 0xe1f4
leaq 0x5084(%rip), %rdi      # 0xa4dc
leaq 0x509b(%rip), %rsi      # 0xa4fa
movl $0x2e, %edx
leaq 0x50bf(%rip), %rcx      # 0xa52a
movb $0x0, %al
callq 0x2040
jmp 0x5474
jmp 0x5476
movl 0x8d80(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8d77(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
leaq 0x50e2(%rip), %rsi      # 0xa572
callq 0x2290
cmpl $0x0, %eax
je 0x54ca
movl 0x8d54(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8d4b(%rip)      # 0xe1f4
leaq 0x502c(%rip), %rdi      # 0xa4dc
leaq 0x5043(%rip), %rsi      # 0xa4fa
movl $0x2f, %edx
leaq 0x50b5(%rip), %rcx      # 0xa578
movb $0x0, %al
callq 0x2040
jmp 0x54cc
movq -0x10(%rbp), %rax
movq %rax, -0x50(%rbp)
cmpq $0x0, %rax
je 0x54e8
movq -0x50(%rbp), %rdi
movl $0x1, %esi
callq 0x21d0
leaq 0x509e(%rip), %rdi      # 0xa58d
movl $0xd, %esi
callq 0x2e50
movq %rax, -0x10(%rbp)
movl 0x8cf9(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8cf0(%rip)      # 0xe1fc
cmpq $0x0, -0x10(%rbp)
jne 0x5543
movl 0x8cdb(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8cd2(%rip)      # 0xe1f4
leaq 0x4fb3(%rip), %rdi      # 0xa4dc
leaq 0x4fca(%rip), %rsi      # 0xa4fa
movl $0x34, %edx
leaq 0x4fd9(%rip), %rcx      # 0xa515
movb $0x0, %al
callq 0x2040
jmp 0x5545
jmp 0x5547
movl 0x8caf(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8ca6(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
callq 0x2100
cmpq $0xb, %rax
je 0x5595
movl 0x8c89(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8c80(%rip)      # 0xe1f4
leaq 0x4f61(%rip), %rdi      # 0xa4dc
leaq 0x4f78(%rip), %rsi      # 0xa4fa
movl $0x35, %edx
leaq 0x500d(%rip), %rcx      # 0xa59b
movb $0x0, %al
callq 0x2040
jmp 0x5597
jmp 0x5599
movl 0x8c5d(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8c54(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
leaq 0x4ff6(%rip), %rsi      # 0xa5a9
callq 0x2290
cmpl $0x0, %eax
je 0x55ed
movl 0x8c31(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8c28(%rip)      # 0xe1f4
leaq 0x4f09(%rip), %rdi      # 0xa4dc
leaq 0x4f20(%rip), %rsi      # 0xa4fa
movl $0x36, %edx
leaq 0x4fcf(%rip), %rcx      # 0xa5b5
movb $0x0, %al
callq 0x2040
jmp 0x55ef
movq -0x10(%rbp), %rax
movq %rax, -0x58(%rbp)
cmpq $0x0, %rax
je 0x560b
movq -0x58(%rbp), %rdi
movl $0x1, %esi
callq 0x21d0
leaq 0x4fc0(%rip), %rdi      # 0xa5d2
movl $0x21, %esi
callq 0x2e50
movq %rax, -0x10(%rbp)
movl 0x8bd6(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8bcd(%rip)      # 0xe1fc
cmpq $0x0, -0x10(%rbp)
jne 0x5666
movl 0x8bb8(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8baf(%rip)      # 0xe1f4
leaq 0x4e90(%rip), %rdi      # 0xa4dc
leaq 0x4ea7(%rip), %rsi      # 0xa4fa
movl $0x3b, %edx
leaq 0x4eb6(%rip), %rcx      # 0xa515
movb $0x0, %al
callq 0x2040
jmp 0x5668
jmp 0x566a
movl 0x8b8c(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8b83(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
callq 0x2100
cmpq $0x16, %rax
je 0x56b8
movl 0x8b66(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8b5d(%rip)      # 0xe1f4
leaq 0x4e3e(%rip), %rdi      # 0xa4dc
leaq 0x4e55(%rip), %rsi      # 0xa4fa
movl $0x3c, %edx
leaq 0x4f43(%rip), %rcx      # 0xa5f4
movb $0x0, %al
callq 0x2040
jmp 0x56ba
jmp 0x56bc
movl 0x8b3a(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8b31(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
leaq 0x4f2c(%rip), %rsi      # 0xa602
callq 0x2290
cmpl $0x0, %eax
je 0x5710
movl 0x8b0e(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8b05(%rip)      # 0xe1f4
leaq 0x4de6(%rip), %rdi      # 0xa4dc
leaq 0x4dfd(%rip), %rsi      # 0xa4fa
movl $0x3d, %edx
leaq 0x4f10(%rip), %rcx      # 0xa619
movb $0x0, %al
callq 0x2040
jmp 0x5712
movq -0x10(%rbp), %rax
movq %rax, -0x60(%rbp)
cmpq $0x0, %rax
je 0x572e
movq -0x60(%rbp), %rdi
movl $0x1, %esi
callq 0x21d0
leaq 0x4f15(%rip), %rdi      # 0xa64a
movl $0x6, %esi
callq 0x2e50
movq %rax, -0x10(%rbp)
movl 0x8ab3(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8aaa(%rip)      # 0xe1fc
cmpq $0x0, -0x10(%rbp)
jne 0x5789
movl 0x8a95(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8a8c(%rip)      # 0xe1f4
leaq 0x4d6d(%rip), %rdi      # 0xa4dc
leaq 0x4d84(%rip), %rsi      # 0xa4fa
movl $0x42, %edx
leaq 0x4d93(%rip), %rcx      # 0xa515
movb $0x0, %al
callq 0x2040
jmp 0x578b
jmp 0x578d
movl 0x8a69(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8a60(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
callq 0x2100
cmpq $0x3, %rax
je 0x57db
movl 0x8a43(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8a3a(%rip)      # 0xe1f4
leaq 0x4d1b(%rip), %rdi      # 0xa4dc
leaq 0x4d32(%rip), %rsi      # 0xa4fa
movl $0x43, %edx
leaq 0x4e7d(%rip), %rcx      # 0xa651
movb $0x0, %al
callq 0x2040
jmp 0x57dd
jmp 0x57df
movl 0x8a17(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8a0e(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
leaq 0x4e65(%rip), %rsi      # 0xa65e
callq 0x2290
cmpl $0x0, %eax
je 0x5833
movl 0x89eb(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x89e2(%rip)      # 0xe1f4
leaq 0x4cc3(%rip), %rdi      # 0xa4dc
leaq 0x4cda(%rip), %rsi      # 0xa4fa
movl $0x44, %edx
leaq 0x4e36(%rip), %rcx      # 0xa662
movb $0x0, %al
callq 0x2040
jmp 0x5835
movq -0x10(%rbp), %rax
movq %rax, -0x68(%rbp)
cmpq $0x0, %rax
je 0x5851
movq -0x68(%rbp), %rdi
movl $0x1, %esi
callq 0x21d0
leaq 0x4e1d(%rip), %rdi      # 0xa675
movl $0x7, %esi
callq 0x2e50
movq %rax, -0x10(%rbp)
movl 0x8990(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8987(%rip)      # 0xe1fc
cmpq $0x0, -0x10(%rbp)
jne 0x58ac
movl 0x8972(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8969(%rip)      # 0xe1f4
leaq 0x4c4a(%rip), %rdi      # 0xa4dc
leaq 0x4c61(%rip), %rsi      # 0xa4fa
movl $0x49, %edx
leaq 0x4c70(%rip), %rcx      # 0xa515
movb $0x0, %al
callq 0x2040
jmp 0x58ae
jmp 0x58b0
movl 0x8946(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x893d(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
callq 0x2100
cmpq $0x4, %rax
je 0x58fe
movl 0x8920(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8917(%rip)      # 0xe1f4
leaq 0x4bf8(%rip), %rdi      # 0xa4dc
leaq 0x4c0f(%rip), %rsi      # 0xa4fa
movl $0x4a, %edx
leaq 0x4c55(%rip), %rcx      # 0xa54c
movb $0x0, %al
callq 0x2040
jmp 0x5900
jmp 0x5902
movl 0x88f4(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x88eb(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
leaq 0x4d61(%rip), %rsi      # 0xa67d
callq 0x2290
cmpl $0x0, %eax
je 0x5956
movl 0x88c8(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x88bf(%rip)      # 0xe1f4
leaq 0x4ba0(%rip), %rdi      # 0xa4dc
leaq 0x4bb7(%rip), %rsi      # 0xa4fa
movl $0x4b, %edx
leaq 0x4d33(%rip), %rcx      # 0xa682
movb $0x0, %al
callq 0x2040
jmp 0x5958
movq -0x10(%rbp), %rax
movq %rax, -0x70(%rbp)
cmpq $0x0, %rax
je 0x5974
movq -0x70(%rbp), %rdi
movl $0x1, %esi
callq 0x21d0
leaq 0x4d1b(%rip), %rdi      # 0xa696
movl $0xd, %esi
callq 0x2e50
movq %rax, -0x10(%rbp)
movl 0x886d(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x8864(%rip)      # 0xe1fc
cmpq $0x0, -0x10(%rbp)
jne 0x59cf
movl 0x884f(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8846(%rip)      # 0xe1f4
leaq 0x4b27(%rip), %rdi      # 0xa4dc
leaq 0x4b3e(%rip), %rsi      # 0xa4fa
movl $0x50, %edx
leaq 0x4b4d(%rip), %rcx      # 0xa515
movb $0x0, %al
callq 0x2040
jmp 0x59d1
jmp 0x59d3
movl 0x8823(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x881a(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
callq 0x2100
cmpq $0x5, %rax
je 0x5a21
movl 0x87fd(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x87f4(%rip)      # 0xe1f4
leaq 0x4ad5(%rip), %rdi      # 0xa4dc
leaq 0x4aec(%rip), %rsi      # 0xa4fa
movl $0x51, %edx
leaq 0x4b10(%rip), %rcx      # 0xa52a
movb $0x0, %al
callq 0x2040
jmp 0x5a23
jmp 0x5a25
movl 0x87d1(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x87c8(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
leaq 0x5148(%rip), %rsi      # 0xab87
movl $0xd, %edx
callq 0x2110
cmpl $0x0, %eax
je 0x5a7e
movl 0x87a0(%rip), %eax      # 0xe1f4
addl $0x1, %eax
movl %eax, 0x8797(%rip)      # 0xe1f4
leaq 0x4a78(%rip), %rdi      # 0xa4dc
leaq 0x4a8f(%rip), %rsi      # 0xa4fa
movl $0x52, %edx
leaq 0x4c2d(%rip), %rcx      # 0xa6a4
movb $0x0, %al
callq 0x2040
jmp 0x5a80
movq -0x10(%rbp), %rax
movq %rax, -0x78(%rbp)
cmpq $0x0, %rax
je 0x5a9c
movq -0x78(%rbp), %rdi
movl $0x1, %esi
callq 0x21d0
movq $0x0, -0x10(%rbp)
movb $0x0, -0x1(%rbp)
leaq 0x4c17(%rip), %rdi      # 0xa6c6
movl $0x7, %esi
callq 0x2e50
movq %rax, -0x80(%rbp)
jmp 0x5abf
movq -0x80(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x5b72
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x5cb2
movq -0x18(%rbp), %rdi
callq 0x20d0
movq %rax, -0x28(%rbp)
movb $0x1, -0x1(%rbp)
movl 0x86fd(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x86f4(%rip)      # 0xe1fc
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rax), %rdi
movq 0x84c6(%rip), %rsi      # 0xdfe0
callq 0x9950
testb $0x1, %al
jne 0x5b69
movl 0x86cb(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x86c3(%rip)      # 0xe1f4
leaq 0x49a4(%rip), %rdi      # 0xa4dc
leaq 0x49bb(%rip), %rsi      # 0xa4fa
leaq 0x4b88(%rip), %rcx      # 0xa6ce
xorl %eax, %eax
movl $0x5c, %edx
callq 0x2040
jmp 0x5b54
jmp 0x5b69
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
callq 0x22f0
jmp 0x5ba0
jmp 0x5b6b
jmp 0x5b6d
callq 0x22f0
movb -0x1(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x5b81
jmp 0x5ba5
leaq 0x4b6a(%rip), %rdi      # 0xa6f2
leaq 0x496b(%rip), %rsi      # 0xa4fa
movl $0x5e, %edx
leaq 0x4b64(%rip), %rcx      # 0xa6ff
callq 0x2140
jmp 0x5cb2
movb $0x0, -0x1(%rbp)
leaq 0x4b61(%rip), %rdi      # 0xa711
movl $0x2, %esi
callq 0x2e50
movq %rax, -0x88(%rbp)
jmp 0x5bc3
movq -0x88(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x5c79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x5cb2
movq -0x18(%rbp), %rdi
callq 0x20d0
movq %rax, -0x30(%rbp)
movb $0x1, -0x1(%rbp)
movl 0x85f6(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x85ed(%rip)      # 0xe1fc
movq -0x30(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rax), %rdi
movq 0x83bf(%rip), %rsi      # 0xdfe0
callq 0x9950
testb $0x1, %al
jne 0x5c70
movl 0x85c4(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x85bc(%rip)      # 0xe1f4
leaq 0x489d(%rip), %rdi      # 0xa4dc
leaq 0x48b4(%rip), %rsi      # 0xa4fa
leaq 0x4a81(%rip), %rcx      # 0xa6ce
xorl %eax, %eax
movl $0x66, %edx
callq 0x2040
jmp 0x5c5b
jmp 0x5c70
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
callq 0x22f0
jmp 0x5ca7
jmp 0x5c72
jmp 0x5c74
callq 0x22f0
movb -0x1(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x5c88
jmp 0x5ca9
leaq 0x4a63(%rip), %rdi      # 0xa6f2
leaq 0x4864(%rip), %rsi      # 0xa4fa
movl $0x68, %edx
leaq 0x4a5d(%rip), %rcx      # 0xa6ff
callq 0x2140
jmp 0x5cb2
addq $0x90, %rsp
popq %rbp
retq
movq -0x18(%rbp), %rdi
callq 0x2330
movq %rax, %rdi
callq 0x4240
nopw %cs:(%rax,%rax)