// File: /workspace/github_cpp_makefile_star2_O2/roberty65[P]bServer/frame/testClient/testEcho.cpp
// Function: main
int main(int argc, char **argv)
{
	if (argc < 2) {
		fprintf(stderr, "Usage: %s host(like tcp://127.0.0.1:5010) [cmd] [thread-cnt]\n", argv[0]);
		exit(0);
	}

	srandom(time(NULL));	
	setbuf(stdout, NULL);

	host = argv[1];
	if (argc >= 3) cmd = atoi(argv[2]);
	if (argc >= 4) tcnt = atoi(argv[3]);

	test001_sync_req_rsp();
	test002_async_req_rsp();
	test003_mt_sync_req_rsp();
	test004_mt_async_req_rsp();

	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %rbx
cmpl $0x1, %edi
jle 0x1633
movl %edi, %ebp
xorl %edi, %edi
callq 0x1150
movl %eax, %edi
callq 0x1060
movq 0x4c1b(%rip), %rax      # 0x5fc8
movq (%rax), %rdi
xorl %esi, %esi
callq 0x11e0
movq 0x8(%rbx), %rax
movq %rax, 0x4d8e(%rip)      # 0x6150
cmpl $0x2, %ebp
je 0x13ea
movq 0x10(%rbx), %rdi
callq 0x1220
movl %eax, 0x4d8a(%rip)      # 0x6160
cmpl $0x4, %ebp
jb 0x13ea
movq 0x18(%rbx), %rdi
callq 0x1220
movl %eax, 0x4d6e(%rip)      # 0x6158
movq 0x4bd7(%rip), %rax      # 0x5fc8
movq (%rax), %rdi
leaq 0x1c75(%rip), %rsi      # 0x3070
leaq 0x1c58(%rip), %rdx      # 0x305a
xorl %eax, %eax
callq 0x11f0
movq 0x4d40(%rip), %rdi      # 0x6150
movl $0x7530, %edx           # imm = 0x7530
movl $0x800, %esi            # imm = 0x800
callq 0x2397
testl %eax, %eax
js 0x1655
movl %eax, %ebx
leaq 0x1c2a(%rip), %r15      # 0x305a
movl $0x3e8, %r12d           # imm = 0x3E8
leaq 0x1c60(%rip), %rbp      # 0x309d
xorl %r13d, %r13d
cmpq $0x38, %r13
je 0x1505
leaq 0x1e7f(%rip), %rax      # 0x32d0
movl (%r13,%rax), %r14d
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x1240
movl 0x4cf8(%rip), %esi      # 0x6160
movl %ebx, %edi
movl %r14d, %edx
movq %r15, %rcx
callq 0x17be
leaq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0x1240
movl %ebx, %edi
movl %r14d, %esi
movq %r15, %rdx
callq 0x1870
leaq 0x28(%rsp), %rdi
xorl %esi, %esi
callq 0x1240
movq 0x4b27(%rip), %rax      # 0x5fc8
movq (%rax), %rdi
movq 0x8(%rsp), %rcx
movq %rcx, %rdx
subq 0x18(%rsp), %rdx
movq 0x10(%rsp), %rsi
movq %rsi, %rax
subq 0x20(%rsp), %rax
imulq $0x3e8, %rdx, %r8       # imm = 0x3E8
cqto
idivq %r12
addq %rax, %r8
movq 0x28(%rsp), %rdx
movq 0x30(%rsp), %rax
subq %rcx, %rdx
imulq $0x3e8, %rdx, %r9       # imm = 0x3E8
subq %rsi, %rax
cqto
idivq %r12
addq %rax, %r9
movq %rbp, %rsi
movq %r15, %rdx
movl %r14d, %ecx
xorl %eax, %eax
callq 0x11f0
addq $0x4, %r13
jmp 0x1440
movl %ebx, %edi
callq 0x1270
movq 0x4ab5(%rip), %rbx      # 0x5fc8
movq (%rbx), %rdi
leaq 0x1b77(%rip), %rsi      # 0x3094
leaq 0x1b36(%rip), %rdx      # 0x305a
xorl %eax, %eax
callq 0x11f0
movq (%rbx), %rdi
leaq 0x1b3b(%rip), %rsi      # 0x3070
leaq 0x1bed(%rip), %rdx      # 0x3129
xorl %eax, %eax
callq 0x11f0
movq 0x4c06(%rip), %rdi      # 0x6150
movl $0x7530, %edx           # imm = 0x7530
movl $0x800, %esi            # imm = 0x800
callq 0x2397
testl %eax, %eax
js 0x166f
movl %eax, %ebx
movl %eax, %r14d
leaq 0x36f(%rip), %rdx       # 0x18dc
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
movq %r14, %rcx
callq 0x1260
movl %eax, %ebp
callq 0x1040
movl %ebp, (%rax)
testl %ebp, %ebp
jne 0x1682
movq %rax, %r15
leaq 0x3fc(%rip), %rdx       # 0x1993
leaq 0x8(%rsp), %rdi
xorl %esi, %esi
movq %r14, %rcx
callq 0x1260
movl %eax, (%r15)
testl %eax, %eax
jne 0x1695
movq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x1140
movq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0x1140
movl %ebx, %edi
callq 0x1270
movq 0x49f1(%rip), %r15      # 0x5fc8
movq (%r15), %rdi
leaq 0x1ab3(%rip), %rbx      # 0x3094
leaq 0x1b41(%rip), %rdx      # 0x3129
movq %rbx, %rsi
xorl %eax, %eax
callq 0x11f0
callq 0x16bc
movq (%r15), %rdi
leaq 0x1a6f(%rip), %rsi      # 0x3070
leaq 0x1ca9(%rip), %r14      # 0x32b1
movq %r14, %rdx
xorl %eax, %eax
callq 0x11f0
movq (%r15), %rdi
movq %rbx, %rsi
movq %r14, %rdx
xorl %eax, %eax
callq 0x11f0
xorl %eax, %eax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x49a6(%rip), %rax      # 0x5fe0
movq (%rax), %rdi
movq (%rbx), %rdx
leaq 0x19bd(%rip), %rsi      # 0x3004
xorl %eax, %eax
callq 0x11f0
xorl %edi, %edi
callq 0x11a0
movq 0x496c(%rip), %rax      # 0x5fc8
movq (%rax), %rdi
leaq 0x1a17(%rip), %rsi      # 0x307d
leaq 0x19ed(%rip), %rdx      # 0x305a
jmp 0x16ad
movq 0x4952(%rip), %rax      # 0x5fc8
movq (%rax), %rdi
leaq 0x19fd(%rip), %rsi      # 0x307d
jmp 0x16a6
movq 0x493f(%rip), %rax      # 0x5fc8
movq (%rax), %rdi
leaq 0x1aad(%rip), %rsi      # 0x3140
jmp 0x16a6
movq 0x492c(%rip), %rax      # 0x5fc8
movq (%rax), %rdi
leaq 0x1ac2(%rip), %rsi      # 0x3168
leaq 0x1a7c(%rip), %rdx      # 0x3129
xorl %eax, %eax
callq 0x11f0
pushq $0x1
popq %rdi
callq 0x11a0