// File: /workspace/github_cpp_makefile_star2_O1/Sherhang[P]redis-for-cpp/demo2.cpp
// Function: main
int main()
{
    Redis redis;
    string ip="127.0.0.1";
    int port = 6379;
    string password="";
    redis.init(ip, port, password);//init
    redis.connect();//connect
    vector<string> keys={"str1","str2","str3","str4","str5"};
    vector<string> values={"1s","2s","3s","4s","5s"};
    redis.mset(keys,values);//
    keys.clear();
    redis.keys("str?", keys);
    sort(keys.begin(),keys.end());
    cout<<"all keys are:"<<endl;
    copy(keys.begin(),keys.end(),ostream_iterator<string>(cout," "));
    cout<<endl;
    vector<string> v;
    redis.mget(keys,v);//
    cout<<"values ars"<<endl;
    copy(v.begin(), v.end(),ostream_iterator<string>(cout, " "));cout<<endl;
    cout<<"delete all keys like str?"<<endl;
    for(int i=0;i<keys.size();++i)
    {
        redis.del(keys[i]);//
    }
    string key = "str1";
    string t = redis.type(key);//
    cout<<"type of str1 is "<<t<<endl;
    {
        cout<<"hash操作："<<endl;
        vector<string> fields={"f1","f2","f3","f4","f5"};
        vector<string> values={"hv1","hv2","hv3","hv4","hv5"};
        redis.hmset("hash_test",fields,values);//
        map<string,string> hash;
        redis.hgetall("hash_test",hash);//
        for(map<string,string>::iterator it=hash.begin();it!=hash.end();++it)
        {
            cout<<it->first<<" "<<it->second<<endl;
        }
        cout<<endl;
        values.clear();
        redis.hmget("hash_test",fields,values);//
        cout<<"hmget"<<endl;
        copy(values.begin(),values.end(),ostream_iterator<string>(cout," "));cout<<endl;
        redis.del("hash_test");
    }
    cout<<"获取string类型的keys:"<<endl;
    vector<string> ks;
    redis.getKeys("strinG", "", 35,ks);//
    cout<<"共获取keys个数："<<ks.size()<<endl;
    copy(ks.begin(),ks.end(),ostream_iterator<string>(cout," "));cout<<endl;

    //while(1);
    redis.disconnect();
    redis.disconnect();//重复dis看看
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x228, %rsp            # imm = 0x228
leaq 0x1a0(%rsp), %rdi
callq 0x55dc
leaq 0x38(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1183a(%rip), %rsi     # 0x15004
leaq 0x1183c(%rip), %rdx     # 0x1500d
leaq 0x28(%rsp), %rdi
callq 0x4b0e
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x11b6b(%rip), %rdx     # 0x15356
leaq 0x8(%rsp), %rdi
movq %rdx, %rsi
callq 0x4b0e
leaq 0x1a0(%rsp), %rdi
leaq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rcx
movl $0x18eb, %edx           # imm = 0x18EB
callq 0x56a6
leaq 0x1a0(%rsp), %rdi
callq 0x56d2
leaq 0xc8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x117da(%rip), %rsi     # 0x1500e
leaq 0x117d7(%rip), %rdx     # 0x15012
leaq 0xb8(%rsp), %r15
movq %r15, %rdi
callq 0x4b0e
leaq 0xd8(%rsp), %r14
leaq 0xe8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x117ad(%rip), %rsi     # 0x15013
leaq 0x117aa(%rip), %rdx     # 0x15017
movq %r14, %rdi
callq 0x4b0e
leaq 0xf8(%rsp), %r14
leaq 0x108(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x11788(%rip), %rsi     # 0x15018
leaq 0x11785(%rip), %rdx     # 0x1501c
movq %r14, %rdi
callq 0x4b0e
leaq 0x118(%rsp), %r14
leaq 0x128(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x11762(%rip), %rsi     # 0x1501d
leaq 0x1175f(%rip), %rdx     # 0x15021
movq %r14, %rdi
callq 0x4b0e
leaq 0x138(%rsp), %r14
leaq 0x148(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x1173d(%rip), %rsi     # 0x15022
leaq 0x1173a(%rip), %rdx     # 0x15026
movq %r14, %rdi
callq 0x4b0e
leaq 0x68(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0x80(%rsp), %rcx
movl $0x5, %edx
callq 0x49fe
leaq 0x148(%rsp), %r13
xorl %ebx, %ebx
movq 0x138(%rsp,%rbx), %rdi
leaq (%rbx,%r13), %rax
cmpq %rdi, %rax
je 0x3933
callq 0x3340
addq $-0x20, %rbx
cmpq $-0xa0, %rbx
jne 0x391d
leaq 0xb8(%rsp), %r15
movq %rbp, (%r15)
leaq 0x116d5(%rip), %rsi     # 0x15027
leaq 0x116d0(%rip), %rdx     # 0x15029
movq %r15, %rdi
callq 0x4b0e
leaq 0xd8(%rsp), %r14
leaq 0xe8(%rsp), %rax
movq %rax, (%r14)
leaq 0x116af(%rip), %rsi     # 0x1502a
leaq 0x116aa(%rip), %rdx     # 0x1502c
movq %r14, %rdi
callq 0x4b0e
leaq 0xf8(%rsp), %r14
leaq 0x108(%rsp), %rax
movq %rax, (%r14)
leaq 0x11689(%rip), %rsi     # 0x1502d
leaq 0x11684(%rip), %rdx     # 0x1502f
movq %r14, %rdi
callq 0x4b0e
leaq 0x118(%rsp), %r14
movq %r12, (%r14)
leaq 0x1166b(%rip), %rsi     # 0x15030
leaq 0x11666(%rip), %rdx     # 0x15032
movq %r14, %rdi
callq 0x4b0e
leaq 0x138(%rsp), %r14
movq %r13, (%r14)
leaq 0x1164d(%rip), %rsi     # 0x15033
leaq 0x11648(%rip), %rdx     # 0x15035
movq %r14, %rdi
callq 0x4b0e
leaq 0x188(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0x80(%rsp), %rcx
movl $0x5, %edx
callq 0x49fe
leaq 0x148(%rsp), %r13
xorl %ebx, %ebx
movq 0x138(%rsp,%rbx), %rdi
leaq (%rbx,%r13), %rax
cmpq %rdi, %rax
je 0x3a37
callq 0x3340
addq $-0x20, %rbx
cmpq $-0xa0, %rbx
jne 0x3a21
leaq 0x1a0(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x188(%rsp), %rdx
callq 0x7436
movq 0x68(%rsp), %rbx
movq 0x70(%rsp), %r14
cmpq %rbx, %r14
je 0x3a8f
movq %rbx, %r15
movq (%r15), %rdi
addq $0x10, %r15
cmpq %r15, %rdi
je 0x3a81
callq 0x3340
addq $0x10, %r15
cmpq %r14, %r15
jne 0x3a70
movq %rbx, 0x70(%rsp)
leaq 0xb8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x115c3(%rip), %rsi     # 0x15064
leaq 0x115c0(%rip), %rdx     # 0x15068
callq 0x4b0e
leaq 0x1a0(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0x68(%rsp), %rdx
callq 0x60fe
movq 0xb8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x3ad9
callq 0x3340
movq 0x68(%rsp), %rbx
movq 0x70(%rsp), %r14
cmpq %r14, %rbx
je 0x3b15
movq %r14, %rax
subq %rbx, %rax
sarq $0x5, %rax
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4d60
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4e44
movq 0x174bc(%rip), %rbx     # 0x1afd8
leaq 0x11513(%rip), %rsi     # 0x15036
movl $0xd, %edx
movq %rbx, %rdi
callq 0x33d0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3360
movsbl %al, %esi
movq 0x1748a(%rip), %rbx     # 0x1afd8
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3270
movq 0x68(%rsp), %r14
movq 0x70(%rsp), %rbp
movq %rbx, 0xb8(%rsp)
leaq 0x1213b(%rip), %rax     # 0x15cb2
movq %rax, 0xc0(%rsp)
subq %r14, %rbp
sarq $0x5, %rbp
testq %rbp, %rbp
jle 0x3bae
incq %rbp
leaq 0xb8(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x5594
addq $0x20, %r14
decq %rbp
cmpq $0x1, %rbp
jg 0x3b96
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3360
movsbl %al, %esi
movq 0x1740c(%rip), %rdi     # 0x1afd8
callq 0x3030
movq %rax, %rdi
callq 0x3270
xorps %xmm0, %xmm0
leaq 0x170(%rsp), %rdx
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x1a0(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x7570
movq 0x173d0(%rip), %rbx     # 0x1afd8
leaq 0x11435(%rip), %rsi     # 0x15044
movl $0xa, %edx
movq %rbx, %rdi
callq 0x33d0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3360
movsbl %al, %esi
movq 0x1739e(%rip), %rbx     # 0x1afd8
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3270
movq 0x170(%rsp), %r14
movq 0x178(%rsp), %rbp
movq %rbx, 0xb8(%rsp)
leaq 0x12049(%rip), %rax     # 0x15cb2
movq %rax, 0xc0(%rsp)
subq %r14, %rbp
sarq $0x5, %rbp
testq %rbp, %rbp
jle 0x3ca0
incq %rbp
leaq 0xb8(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x5594
addq $0x20, %r14
decq %rbp
cmpq $0x1, %rbp
jg 0x3c88
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3360
leaq 0xc8(%rsp), %rbp
movsbl %al, %esi
movq 0x17312(%rip), %rdi     # 0x1afd8
callq 0x3030
movq %rax, %rdi
callq 0x3270
movq 0x172fe(%rip), %rbx     # 0x1afd8
leaq 0x1136e(%rip), %rsi     # 0x1504f
movl $0x19, %edx
movq %rbx, %rdi
callq 0x33d0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3360
movsbl %al, %esi
movq 0x172cc(%rip), %rdi     # 0x1afd8
callq 0x3030
movq %rax, %rdi
callq 0x3270
movq 0x68(%rsp), %rsi
cmpq %rsi, 0x70(%rsp)
je 0x3d5b
xorl %r14d, %r14d
leaq 0x1a0(%rsp), %rbx
xorl %r15d, %r15d
addq %r14, %rsi
movq %rbx, %rdi
callq 0x5a40
incq %r15
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rax
subq %rsi, %rax
sarq $0x5, %rax
addq $0x20, %r14
cmpq %r15, %rax
ja 0x3d33
leaq 0x90(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x112a0(%rip), %rsi     # 0x1500e
leaq 0x1129d(%rip), %rdx     # 0x15012
leaq 0x80(%rsp), %rdi
callq 0x4b0e
leaq 0x208(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
leaq 0x80(%rsp), %rdx
callq 0x6ed6
movq 0x17232(%rip), %rdi     # 0x1afd8
leaq 0x112bc(%rip), %rsi     # 0x15069
movl $0x10, %edx
callq 0x33d0
movq 0x208(%rsp), %rsi
movq 0x210(%rsp), %rdx
movq 0x1720a(%rip), %rdi     # 0x1afd8
callq 0x33d0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3360
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3270
movq 0x171d4(%rip), %rbx     # 0x1afd8
leaq 0x1126f(%rip), %rsi     # 0x1507a
movl $0xd, %edx
movq %rbx, %rdi
callq 0x33d0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3360
movsbl %al, %esi
movq 0x171a2(%rip), %rbx     # 0x1afd8
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3270
leaq 0xb8(%rsp), %r15
movq %rbp, (%r15)
leaq 0x11230(%rip), %rsi     # 0x15088
leaq 0x1122b(%rip), %rdx     # 0x1508a
movq %r15, %rdi
callq 0x4b0e
leaq 0xd8(%rsp), %r14
leaq 0xe8(%rsp), %rax
movq %rax, (%r14)
leaq 0x1120a(%rip), %rsi     # 0x1508b
leaq 0x11205(%rip), %rdx     # 0x1508d
movq %r14, %rdi
callq 0x4b0e
leaq 0xf8(%rsp), %r14
leaq 0x108(%rsp), %rax
movq %rax, (%r14)
leaq 0x111e4(%rip), %rsi     # 0x1508e
leaq 0x111df(%rip), %rdx     # 0x15090
movq %r14, %rdi
callq 0x4b0e
leaq 0x118(%rsp), %r14
movq %r12, (%r14)
leaq 0x111c6(%rip), %rsi     # 0x15091
leaq 0x111c1(%rip), %rdx     # 0x15093
movq %r14, %rdi
callq 0x4b0e
leaq 0x138(%rsp), %r14
movq %r13, (%r14)
leaq 0x111a8(%rip), %rsi     # 0x15094
leaq 0x111a3(%rip), %rdx     # 0x15096
movq %r14, %rdi
callq 0x4b0e
leaq 0xa0(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0x48(%rsp), %rcx
movl $0x5, %edx
callq 0x49fe
leaq 0x148(%rsp), %r13
xorl %r14d, %r14d
movq 0x138(%rsp,%r14), %rdi
leaq (%r14,%r13), %rax
cmpq %rdi, %rax
je 0x3f3b
callq 0x3340
addq $-0x20, %r14
cmpq $-0xa0, %r14
jne 0x3f25
leaq 0xb8(%rsp), %r15
movq %rbp, (%r15)
leaq 0x1113d(%rip), %rsi     # 0x15097
leaq 0x11139(%rip), %rdx     # 0x1509a
movq %r15, %rdi
callq 0x4b0e
leaq 0xd8(%rsp), %r14
leaq 0xe8(%rsp), %rax
movq %rax, (%r14)
leaq 0x11118(%rip), %rsi     # 0x1509b
leaq 0x11114(%rip), %rdx     # 0x1509e
movq %r14, %rdi
callq 0x4b0e
leaq 0xf8(%rsp), %r14
leaq 0x108(%rsp), %rax
movq %rax, (%r14)
leaq 0x110f3(%rip), %rsi     # 0x1509f
leaq 0x110ef(%rip), %rdx     # 0x150a2
movq %r14, %rdi
callq 0x4b0e
leaq 0x118(%rsp), %r14
movq %r12, (%r14)
leaq 0x110d6(%rip), %rsi     # 0x150a3
leaq 0x110d2(%rip), %rdx     # 0x150a6
movq %r14, %rdi
callq 0x4b0e
leaq 0x138(%rsp), %r14
movq %r13, (%r14)
leaq 0x110b9(%rip), %rsi     # 0x150a7
leaq 0x110b5(%rip), %rdx     # 0x150aa
movq %r14, %rdi
callq 0x4b0e
leaq 0x158(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0x48(%rsp), %rcx
movl $0x5, %edx
callq 0x49fe
leaq 0x148(%rsp), %r14
xorl %r15d, %r15d
movq 0x138(%rsp,%r15), %rdi
leaq (%r14,%r15), %rax
cmpq %rdi, %rax
je 0x403d
callq 0x3340
addq $-0x20, %r15
cmpq $-0xa0, %r15
jne 0x4027
leaq 0xb8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x1104f(%rip), %rsi     # 0x150ab
leaq 0x11051(%rip), %rdx     # 0x150b4
callq 0x4b0e
leaq 0x1a0(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0xa0(%rsp), %rdx
leaq 0x158(%rsp), %rcx
callq 0xa7ba
movq 0xb8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x409f
callq 0x3340
leaq 0xc0(%rsp), %rbp
movl $0x0, (%rbp)
xorl %eax, %eax
movq %rax, 0x8(%rbp)
movq %rbp, 0x10(%rbp)
movq %rbp, 0x18(%rbp)
movq %rax, 0x20(%rbp)
leaq 0x58(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x10fdb(%rip), %rsi     # 0x150ab
leaq 0x10fdd(%rip), %rdx     # 0x150b4
leaq 0x48(%rsp), %rdi
callq 0x4b0e
leaq 0x1a0(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0xac82
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x410a
callq 0x3340
movq 0xd0(%rsp), %r14
cmpq %rbp, %r14
je 0x4192
movq 0x16eba(%rip), %r15     # 0x1afd8
leaq 0x11b8d(%rip), %r12     # 0x15cb2
movq 0x20(%r14), %rsi
movq 0x28(%r14), %rdx
movq %r15, %rdi
callq 0x33d0
movq %rax, %r13
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x33d0
movq 0x40(%r14), %rsi
movq 0x48(%r14), %rdx
movq %r13, %rdi
callq 0x33d0
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x3360
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3270
movq %r14, %rdi
callq 0x3280
movq %rax, %r14
cmpq %rbp, %rax
jne 0x4125
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3360
leaq 0xc8(%rsp), %r13
movsbl %al, %esi
movq 0x16e20(%rip), %rdi     # 0x1afd8
callq 0x3030
movq %rax, %rdi
callq 0x3270
movq 0x158(%rsp), %rbx
movq 0x160(%rsp), %r14
cmpq %rbx, %r14
je 0x41ff
movq %rbx, %r15
movq (%r15), %rdi
addq $0x10, %r15
cmpq %r15, %rdi
je 0x41ee
callq 0x3340
addq $0x10, %r15
cmpq %r14, %r15
jne 0x41dd
movq %rbx, 0x160(%rsp)
leaq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %r14
movq %r14, (%rdi)
leaq 0x10e98(%rip), %rsi     # 0x150ab
leaq 0x10e9a(%rip), %rdx     # 0x150b4
callq 0x4b0e
leaq 0x1a0(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0xa0(%rsp), %rdx
leaq 0x158(%rsp), %rcx
callq 0xaada
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x4250
callq 0x3340
movq 0x16d81(%rip), %rbx     # 0x1afd8
leaq 0x10e57(%rip), %rsi     # 0x150b5
movl $0x5, %edx
movq %rbx, %rdi
callq 0x33d0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3360
movsbl %al, %esi
movq 0x16d4f(%rip), %rbx     # 0x1afd8
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3270
movq 0x158(%rsp), %r14
movq 0x160(%rsp), %r12
movq %rbx, 0x48(%rsp)
leaq 0x119fd(%rip), %rax     # 0x15cb2
movq %rax, 0x50(%rsp)
subq %r14, %r12
sarq $0x5, %r12
testq %r12, %r12
jle 0x42e6
incq %r12
leaq 0x48(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x5594
addq $0x20, %r14
decq %r12
cmpq $0x1, %r12
jg 0x42ce
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3360
movsbl %al, %esi
movq 0x16cd4(%rip), %rdi     # 0x1afd8
callq 0x3030
movq %rax, %rdi
callq 0x3270
leaq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %r14
movq %r14, (%rdi)
leaq 0x10d86(%rip), %rsi     # 0x150ab
leaq 0x10d88(%rip), %rdx     # 0x150b4
callq 0x4b0e
leaq 0x1a0(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x5a40
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x4352
callq 0x3340
leaq 0xb8(%rsp), %rdi
callq 0x4a8e
leaq 0x158(%rsp), %rdi
callq 0x4a40
leaq 0xa0(%rsp), %rdi
callq 0x4a40
movq 0x16c58(%rip), %rbx     # 0x1afd8
leaq 0x10d34(%rip), %rsi     # 0x150bb
movl $0x1a, %edx
movq %rbx, %rdi
callq 0x33d0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3360
movsbl %al, %esi
movq 0x16c26(%rip), %rdi     # 0x1afd8
callq 0x3030
movq %rax, %rdi
callq 0x3270
xorps %xmm0, %xmm0
movaps %xmm0, 0xa0(%rsp)
movq $0x0, 0xb0(%rsp)
leaq 0xb8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x10cee(%rip), %rsi     # 0x150d6
leaq 0x10ced(%rip), %rdx     # 0x150dc
callq 0x4b0e
leaq 0x48(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x10f53(%rip), %rdx     # 0x15356
movq %rdx, %rsi
callq 0x4b0e
leaq 0x1a0(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0x48(%rsp), %rdx
leaq 0xa0(%rsp), %r8
movl $0x23, %ecx
callq 0x681c
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x4441
callq 0x3340
movq 0xb8(%rsp), %rdi
cmpq %r13, %rdi
je 0x4453
callq 0x3340
movq 0x16b7e(%rip), %rdi     # 0x1afd8
leaq 0x10c7c(%rip), %rsi     # 0x150dd
movl $0x16, %edx
callq 0x33d0
movq 0xa8(%rsp), %rsi
subq 0xa0(%rsp), %rsi
sarq $0x5, %rsi
movq 0x16b52(%rip), %rbx     # 0x1afd8
movq %rbx, %rdi
callq 0x3260
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3360
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3270
movq 0xa0(%rsp), %r14
movq 0xa8(%rsp), %r12
movq %rbx, 0xb8(%rsp)
leaq 0x117db(%rip), %rax     # 0x15cb2
movq %rax, 0xc0(%rsp)
subq %r14, %r12
sarq $0x5, %r12
testq %r12, %r12
jle 0x450e
incq %r12
leaq 0xb8(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x5594
addq $0x20, %r14
decq %r12
cmpq $0x1, %r12
jg 0x44f6
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3360
movsbl %al, %esi
movq 0x16aac(%rip), %rdi     # 0x1afd8
callq 0x3030
movq %rax, %rdi
callq 0x3270
leaq 0x1a0(%rsp), %rdi
callq 0x59f4
leaq 0x1a0(%rsp), %rdi
callq 0x59f4
leaq 0xa0(%rsp), %rdi
callq 0x4a40
leaq 0x218(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4576
callq 0x3340
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
leaq 0x38(%rsp), %rbx
leaq 0x18(%rsp), %r14
je 0x459a
callq 0x3340
leaq 0x170(%rsp), %rdi
callq 0x4a40
leaq 0x188(%rsp), %rdi
callq 0x4a40
leaq 0x68(%rsp), %rdi
callq 0x4a40
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x45cd
callq 0x3340
movq 0x28(%rsp), %rdi
cmpq %rbx, %rdi
je 0x45dc
callq 0x3340
leaq 0x1a0(%rsp), %rdi
callq 0x5644
xorl %eax, %eax
addq $0x228, %rsp            # imm = 0x228
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x4614
callq 0x3340
jmp 0x4614
movq %rax, %rbx
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x48ff
callq 0x3340
jmp 0x48ff
jmp 0x48fc
jmp 0x464a
jmp 0x4942
jmp 0x464a
jmp 0x4942
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x4945
callq 0x3340
jmp 0x4945
jmp 0x4942
movq %rax, %rbx
movq 0xb8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4684
callq 0x3340
jmp 0x4684
movq %rax, %rbx
leaq 0x38(%rsp), %r14
leaq 0x18(%rsp), %r15
leaq 0x90(%rsp), %r12
jmp 0x4964
movq %rax, %rbx
movq $-0xa0, %r12
movq -0x10(%r13), %rdi
cmpq %rdi, %r13
je 0x46b3
callq 0x3340
addq $-0x20, %r13
addq $0x20, %r12
jne 0x46a5
movb $0x1, %al
jmp 0x46d6
jmp 0x46c7
jmp 0x46c7
jmp 0x46c7
movq %rax, %rbx
xorl %eax, %eax
jmp 0x46d6
movq %rax, %rbx
xorl %eax, %eax
movq %r15, %r14
cmpq %r14, %r15
sete %cl
orb %al, %cl
jne 0x470a
addq $-0x10, %r14
leaq 0xb8(%rsp), %r15
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x46fa
callq 0x3340
leaq -0x20(%r14), %rax
addq $-0x10, %r14
cmpq %r15, %r14
movq %rax, %r14
jne 0x46ec
leaq 0x38(%rsp), %r14
leaq 0x18(%rsp), %r15
leaq 0x90(%rsp), %r12
jmp 0x4971
movq %rax, %rbx
movq $-0xa0, %r12
movq -0x10(%r13), %rdi
cmpq %rdi, %r13
je 0x4739
callq 0x3340
addq $-0x20, %r13
addq $0x20, %r12
jne 0x472b
movb $0x1, %al
jmp 0x475c
jmp 0x474d
jmp 0x474d
jmp 0x474d
movq %rax, %rbx
xorl %eax, %eax
jmp 0x475c
movq %rax, %rbx
xorl %eax, %eax
movq %r15, %r14
cmpq %r14, %r15
sete %cl
orb %al, %cl
jne 0x490c
addq $-0x10, %r14
leaq 0xb8(%rsp), %r15
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x4784
callq 0x3340
leaq -0x20(%r14), %rax
addq $-0x10, %r14
cmpq %r15, %r14
movq %rax, %r14
jne 0x4776
jmp 0x490c
movq %rax, %rbx
leaq 0x38(%rsp), %r14
leaq 0x18(%rsp), %r15
leaq 0x90(%rsp), %r12
jmp 0x4994
jmp 0x4924
movq %rax, %rbx
movq 0xb8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4936
callq 0x3340
jmp 0x4936
jmp 0x4933
movq %rax, %rbx
movq $-0xa0, %r12
movq -0x10(%r13), %rdi
cmpq %rdi, %r13
je 0x47f3
callq 0x3340
addq $-0x20, %r13
addq $0x20, %r12
jne 0x47e5
movb $0x1, %al
jmp 0x4816
jmp 0x4807
jmp 0x4807
jmp 0x4807
movq %rax, %rbx
xorl %eax, %eax
jmp 0x4816
movq %rax, %rbx
xorl %eax, %eax
movq %r15, %r14
cmpq %r14, %r15
sete %cl
orb %al, %cl
jne 0x484a
addq $-0x10, %r14
leaq 0xb8(%rsp), %r15
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x483a
callq 0x3340
leaq -0x20(%r14), %rax
addq $-0x10, %r14
cmpq %r15, %r14
movq %rax, %r14
jne 0x482c
leaq 0x38(%rsp), %r14
leaq 0x18(%rsp), %r15
jmp 0x49c0
movq %rax, %rbx
movq $-0xa0, %r12
movq -0x10(%r13), %rdi
cmpq %rdi, %r13
je 0x4871
callq 0x3340
addq $-0x20, %r13
addq $0x20, %r12
jne 0x4863
movb $0x1, %al
jmp 0x4894
jmp 0x4885
jmp 0x4885
jmp 0x4885
movq %rax, %rbx
xorl %eax, %eax
jmp 0x4894
movq %rax, %rbx
xorl %eax, %eax
movq %r15, %r14
cmpq %r14, %r15
sete %cl
orb %al, %cl
jne 0x48c8
addq $-0x10, %r14
leaq 0xb8(%rsp), %r15
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x48b8
callq 0x3340
leaq -0x20(%r14), %rax
addq $-0x10, %r14
cmpq %r15, %r14
movq %rax, %r14
jne 0x48aa
leaq 0x38(%rsp), %r14
leaq 0x18(%rsp), %r15
jmp 0x49ca
movq %rax, %rbx
jmp 0x49d9
movq %rax, %rbx
jmp 0x49e8
movq %rax, %rbx
jmp 0x49ca
jmp 0x4933
jmp 0x48fc
jmp 0x4942
jmp 0x4924
movq %rax, %rbx
jmp 0x490c
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x4a40
leaq 0x38(%rsp), %r14
leaq 0x18(%rsp), %r15
leaq 0x90(%rsp), %r12
jmp 0x497e
jmp 0x4942
jmp 0x4924
movq %rax, %rbx
leaq 0x38(%rsp), %r14
leaq 0x18(%rsp), %r15
jmp 0x49a6
movq %rax, %rbx
leaq 0x38(%rsp), %r14
leaq 0x18(%rsp), %r15
jmp 0x49b3
movq %rax, %rbx
leaq 0x38(%rsp), %r14
leaq 0x18(%rsp), %r15
leaq 0x90(%rsp), %r12
leaq 0xb8(%rsp), %rdi
callq 0x4a8e
leaq 0x158(%rsp), %rdi
callq 0x4a40
leaq 0xa0(%rsp), %rdi
callq 0x4a40
leaq 0x218(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4994
callq 0x3340
movq 0x80(%rsp), %rdi
cmpq %r12, %rdi
je 0x49a6
callq 0x3340
leaq 0x170(%rsp), %rdi
callq 0x4a40
leaq 0x188(%rsp), %rdi
callq 0x4a40
leaq 0x68(%rsp), %rdi
callq 0x4a40
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x49d9
callq 0x3340
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0x49e8
callq 0x3340
leaq 0x1a0(%rsp), %rdi
callq 0x5644
movq %rbx, %rdi
callq 0x3570
nop