// File: /workspace/github_cpp_makefile_star2_O1/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 0x166a
movl %edi, %ebp
xorl %edi, %edi
callq 0x1150
movl %eax, %edi
callq 0x1060
movq 0x3beb(%rip), %r15      # 0x4fc8
movq (%r15), %rdi
xorl %esi, %esi
callq 0x11e0
movq 0x8(%rbx), %rax
movq %rax, 0x3d5e(%rip)      # 0x5150
cmpl $0x2, %ebp
je 0x1406
movq 0x10(%rbx), %rdi
callq 0x1220
movl %eax, 0x3d5a(%rip)      # 0x5160
cmpl $0x4, %ebp
jl 0x141a
movq 0x18(%rbx), %rdi
callq 0x1220
movl %eax, 0x3d3e(%rip)      # 0x5158
movq %r15, %rbp
movq (%r15), %rdi
leaq 0x1c49(%rip), %rsi      # 0x3070
leaq 0x1c2c(%rip), %rdx      # 0x305a
xorl %eax, %eax
callq 0x11f0
movq 0x3d14(%rip), %rdi      # 0x5150
movl $0x7530, %edx           # imm = 0x7530
movl $0x800, %esi            # imm = 0x800
callq 0x2547
testl %eax, %eax
js 0x1672
movl %eax, %ebx
leaq 0x1bfe(%rip), %r15      # 0x305a
movabsq $0x20c49ba5e353f7cf, %r12 # imm = 0x20C49BA5E353F7CF
xorl %r13d, %r13d
leaq 0x1e60(%rip), %rax      # 0x32d0
movl (%r13,%rax), %r14d
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x1240
movl 0x3cd9(%rip), %esi      # 0x5160
movl %ebx, %edi
movl %r14d, %edx
movq %r15, %rcx
callq 0x17cd
leaq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0x1240
movl %ebx, %edi
movl %r14d, %esi
movq %r15, %rdx
callq 0x189f
leaq 0x28(%rsp), %rdi
xorl %esi, %esi
callq 0x1240
movq (%rbp), %rdi
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rdx
movq 0x28(%rsp), %rsi
subq %rax, %rsi
movq %rax, %r8
subq 0x18(%rsp), %r8
movq 0x30(%rsp), %rcx
subq %rdx, %rcx
movq %rdx, %rax
subq 0x20(%rsp), %rax
imulq $0x3e8, %r8, %r9        # imm = 0x3E8
imulq %r12
movq %rdx, %r8
shrq $0x3f, %r8
sarq $0x7, %rdx
addq %rdx, %r8
addq %r9, %r8
imulq $0x3e8, %rsi, %rsi      # imm = 0x3E8
movq %rcx, %rax
imulq %r12
movq %rdx, %r9
shrq $0x3f, %r9
sarq $0x7, %rdx
addq %rdx, %r9
addq %rsi, %r9
leaq 0x1b76(%rip), %rsi      # 0x309d
movq %r15, %rdx
movl %r14d, %ecx
xorl %eax, %eax
callq 0x11f0
addq $0x4, %r13
cmpq $0x38, %r13
jne 0x1469
movl %ebx, %edi
callq 0x1270
movq (%rbp), %rdi
leaq 0x1b40(%rip), %rsi      # 0x3094
leaq 0x1aff(%rip), %rdx      # 0x305a
xorl %eax, %eax
callq 0x11f0
movq (%rbp), %rdi
leaq 0x1b03(%rip), %rsi      # 0x3070
leaq 0x1bb5(%rip), %rdx      # 0x3129
xorl %eax, %eax
callq 0x11f0
movq 0x3bce(%rip), %rdi      # 0x5150
movl $0x7530, %edx           # imm = 0x7530
movl $0x800, %esi            # imm = 0x800
callq 0x2547
testl %eax, %eax
movq %rbp, %r12
js 0x1686
movl %eax, %ebx
movl %eax, %r14d
leaq 0x365(%rip), %rdx       # 0x190d
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
movq %r14, %rcx
callq 0x1260
movl %eax, %ebp
callq 0x1040
movl %ebp, (%rax)
testl %ebp, %ebp
jne 0x1693
movq %rax, %r15
leaq 0x404(%rip), %rdx       # 0x19d6
leaq 0x8(%rsp), %rdi
xorl %esi, %esi
movq %r14, %rcx
callq 0x1260
movl %eax, (%r15)
testl %eax, %eax
jne 0x16a0
movq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x1140
movq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0x1140
movl %ebx, %edi
callq 0x1270
movq (%r12), %rdi
leaq 0x1a7e(%rip), %rbx      # 0x3094
leaq 0x1b0c(%rip), %rdx      # 0x3129
movq %rbx, %rsi
xorl %eax, %eax
callq 0x11f0
callq 0x16c3
movq (%r12), %rdi
leaq 0x1a39(%rip), %rsi      # 0x3070
leaq 0x1c73(%rip), %r14      # 0x32b1
movq %r14, %rdx
xorl %eax, %eax
callq 0x11f0
movq (%r12), %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 %rbx, %rdi
callq 0x1290
movq (%rbp), %rdi
leaq 0x1a00(%rip), %rsi      # 0x307d
leaq 0x19d6(%rip), %rdx      # 0x305a
jmp 0x16b2
movq (%r12), %rdi
leaq 0x19ec(%rip), %rsi      # 0x307d
jmp 0x16ab
movq (%r12), %rdi
leaq 0x1aa2(%rip), %rsi      # 0x3140
jmp 0x16ab
movq (%r12), %rdi
leaq 0x1abd(%rip), %rsi      # 0x3168
leaq 0x1a77(%rip), %rdx      # 0x3129
xorl %eax, %eax
callq 0x11f0
movl $0x1, %edi
callq 0x11a0