// File: billDrett[P]Bulletin-Boards/board.cpp
// Function: main
int main(int argc, char *argv[])
{
    pid_t serverPid = 1;
    string path, tmpPath, boardID;
    string line;
    int found;

    if(argc != 2)
    {
        cout<<"error arguments"<<endl;
        return - 2;
    }

    signal(SIGINT, SIG_IGN); //agnow to control c
    path = argv[1];
    found = path.find_last_of("/");
    if(found ==  string::npos)
    {
        boardID = path;
    }
    else
    {
        boardID = path.substr(found+1);
    }

    tmpPath = path + "/" + boardID + "_pid";

    if(open(tmpPath.c_str(), O_RDONLY, 0666) == -1)
    {
        //tmpPath = path + "/" +boardID;
        mkdir(path.c_str(), 0773);
        tmpPath = path + "/" +boardID + "_selfC2S";
        mkfifo(tmpPath.c_str(), 0666);
        tmpPath = path + "/" +boardID + "_selfS2C";
        mkfifo(tmpPath.c_str(), 0666);
        tmpPath = path + "/" +boardID + "_othersS2BP";
        mkfifo(tmpPath.c_str(), 0666);
        tmpPath = path + "/" +boardID + "_othersBP2S";
        mkfifo(tmpPath.c_str(), 0666);

        serverPid = fork();
        if(serverPid == -1)
        {
            perror("Failed to fork");
            exit(1);
        }
    }

    if(serverPid != 0) //boardClient process
    {
        cout<<"client proccess created"<<endl;
        string tmp1 = path + "/" + boardID + "_selfC2S", tmp2 = path + "/" + boardID + "_selfS2C";
        BoardClient* client = new BoardClient(tmp1, tmp2);
        while(!getline(cin, line).eof()) //eisodos apo pliktrologio
        {
            if(client->menu(line) == -1) break;
        }
        delete client;
        exit(0);
    }
    else //server process
    {
        char conver[32];
        chdir(path.c_str());
        tmpPath = boardID + "_pid";
        ofstream pidFile(tmpPath.c_str());

        pid_t currentPid = getpid();
        pidFile << currentPid;
        pidFile.close();
        cout<<"server process created"<<endl;

        string tmp1 = boardID + "_selfC2S", tmp2 = boardID + "_selfS2C", tmp3 = boardID + "_othersBP2S", tmp4 = boardID + "_othersS2BP";
        BoardServer* server = new BoardServer(tmp1, tmp2, tmp3, tmp4);
        server->parser();

        delete server;
        unlink(tmp1.c_str());
        unlink(tmp2.c_str());
        unlink(tmp3.c_str());
        unlink(tmp4.c_str());
        unlink(tmpPath.c_str());
        chdir("..");
        rmdir(path.c_str());
        exit(0);

    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x7c0, %rsp            # imm = 0x7C0
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x1, -0x14(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x33e0
leaq -0x58(%rbp), %rdi
callq 0x33e0
leaq -0x78(%rbp), %rdi
callq 0x33e0
leaq -0x98(%rbp), %rdi
callq 0x33e0
cmpl $0x2, -0x8(%rbp)
je 0x38f3
movq 0xb758(%rip), %rdi      # 0xefd0
leaq 0x7785(%rip), %rsi      # 0xb004
callq 0x32c0
movq %rax, -0x720(%rbp)
jmp 0x388d
movq -0x720(%rbp), %rdi
movq 0xb725(%rip), %rsi      # 0xefc0
callq 0x3300
jmp 0x38a2
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
leaq -0x98(%rbp), %rdi
callq 0x31f0
leaq -0x78(%rbp), %rdi
callq 0x31f0
leaq -0x58(%rbp), %rdi
callq 0x31f0
leaq -0x38(%rbp), %rdi
callq 0x31f0
movl -0x4(%rbp), %eax
addq $0x7c0, %rsp            # imm = 0x7C0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x4647
movl $0x2, %edi
movl $0x1, %esi
callq 0x3360
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0x38(%rbp), %rdi
callq 0x33d0
jmp 0x3915
leaq -0x38(%rbp), %rdi
leaq 0x76f4(%rip), %rsi      # 0xb014
movq $-0x1, %rdx
callq 0x32a0
movl %eax, -0x9c(%rbp)
movslq -0x9c(%rbp), %rax
cmpq $-0x1, %rax
jne 0x3950
leaq -0x78(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x3040
jmp 0x394e
jmp 0x3990
movl -0x9c(%rbp), %eax
incl %eax
movslq %eax, %rdx
leaq -0xd0(%rbp), %rdi
leaq -0x38(%rbp), %rsi
movq $-0x1, %rcx
callq 0x32f0
jmp 0x3974
leaq -0x78(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x3380
leaq -0xd0(%rbp), %rdi
callq 0x31f0
leaq 0x767d(%rip), %rdx      # 0xb014
leaq -0x130(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x4720
jmp 0x39a9
leaq -0x110(%rbp), %rdi
leaq -0x130(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x46d0
jmp 0x39c2
leaq 0x764d(%rip), %rdx      # 0xb016
leaq -0xf0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x4680
jmp 0x39de
leaq -0x58(%rbp), %rdi
movq %rdi, -0x730(%rbp)
leaq -0xf0(%rbp), %rsi
movq %rsi, -0x738(%rbp)
callq 0x3380
movq -0x738(%rbp), %rdi
callq 0x31f0
leaq -0x110(%rbp), %rdi
callq 0x31f0
leaq -0x130(%rbp), %rdi
callq 0x31f0
movq -0x730(%rbp), %rdi
callq 0x3130
movq %rax, %rdi
xorl %esi, %esi
movb %sil, %al
movl $0x1b6, %edx            # imm = 0x1B6
callq 0x3230
movl %eax, -0x724(%rbp)
jmp 0x3a46
movl -0x724(%rbp), %eax
cmpl $-0x1, %eax
jne 0x3e83
leaq -0x38(%rbp), %rdi
movq %rdi, -0x740(%rbp)
callq 0x3130
movq %rax, %rdi
movl $0x1fb, %esi            # imm = 0x1FB
callq 0x3190
movq -0x740(%rbp), %rsi
leaq 0x7594(%rip), %rdx      # 0xb014
leaq -0x190(%rbp), %rdi
callq 0x4720
jmp 0x3a8e
leaq -0x170(%rbp), %rdi
leaq -0x190(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x46d0
jmp 0x3aa7
leaq 0x756d(%rip), %rdx      # 0xb01b
leaq -0x150(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x4680
jmp 0x3ac3
leaq -0x58(%rbp), %rdi
movq %rdi, -0x748(%rbp)
leaq -0x150(%rbp), %rsi
movq %rsi, -0x750(%rbp)
callq 0x3380
movq -0x750(%rbp), %rdi
callq 0x31f0
leaq -0x170(%rbp), %rdi
callq 0x31f0
leaq -0x190(%rbp), %rdi
callq 0x31f0
movq -0x748(%rbp), %rdi
callq 0x3130
movq %rax, %rdi
movl $0x1b6, %esi            # imm = 0x1B6
callq 0x3080
leaq 0x74ef(%rip), %rdx      # 0xb014
leaq -0x1f0(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x4720
jmp 0x3b37
leaq -0x1d0(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x46d0
jmp 0x3b50
leaq 0x74cd(%rip), %rdx      # 0xb024
leaq -0x1b0(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x4680
jmp 0x3b6c
leaq -0x58(%rbp), %rdi
movq %rdi, -0x758(%rbp)
leaq -0x1b0(%rbp), %rsi
movq %rsi, -0x760(%rbp)
callq 0x3380
movq -0x760(%rbp), %rdi
callq 0x31f0
leaq -0x1d0(%rbp), %rdi
callq 0x31f0
leaq -0x1f0(%rbp), %rdi
callq 0x31f0
movq -0x758(%rbp), %rdi
callq 0x3130
movq %rax, %rdi
movl $0x1b6, %esi            # imm = 0x1B6
callq 0x3080
leaq 0x7446(%rip), %rdx      # 0xb014
leaq -0x250(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x4720
jmp 0x3be0
leaq -0x230(%rbp), %rdi
leaq -0x250(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x46d0
jmp 0x3bf9
leaq 0x742d(%rip), %rdx      # 0xb02d
leaq -0x210(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x4680
jmp 0x3c15
leaq -0x58(%rbp), %rdi
movq %rdi, -0x768(%rbp)
leaq -0x210(%rbp), %rsi
movq %rsi, -0x770(%rbp)
callq 0x3380
movq -0x770(%rbp), %rdi
callq 0x31f0
leaq -0x230(%rbp), %rdi
callq 0x31f0
leaq -0x250(%rbp), %rdi
callq 0x31f0
movq -0x768(%rbp), %rdi
callq 0x3130
movq %rax, %rdi
movl $0x1b6, %esi            # imm = 0x1B6
callq 0x3080
leaq 0x739d(%rip), %rdx      # 0xb014
leaq -0x2b0(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x4720
jmp 0x3c89
leaq -0x290(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x46d0
jmp 0x3ca2
leaq 0x7390(%rip), %rdx      # 0xb039
leaq -0x270(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x4680
jmp 0x3cbe
leaq -0x58(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x3380
leaq -0x270(%rbp), %rdi
callq 0x31f0
leaq -0x290(%rbp), %rdi
callq 0x31f0
leaq -0x2b0(%rbp), %rdi
callq 0x31f0
leaq -0x58(%rbp), %rdi
callq 0x3130
movq %rax, %rdi
movl $0x1b6, %esi            # imm = 0x1B6
callq 0x3080
callq 0x30e0
movl %eax, -0x14(%rbp)
cmpl $-0x1, -0x14(%rbp)
jne 0x3e81
leaq 0x7324(%rip), %rdi      # 0xb045
callq 0x3260
jmp 0x3d28
movl $0x1, %edi
callq 0x3370
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x3d64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x31f0
leaq -0x130(%rbp), %rdi
callq 0x31f0
jmp 0x4647
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x3da7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x31f0
leaq -0x190(%rbp), %rdi
callq 0x31f0
jmp 0x4647
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x3dea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x1d0(%rbp), %rdi
callq 0x31f0
leaq -0x1f0(%rbp), %rdi
callq 0x31f0
jmp 0x4647
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x3e2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x31f0
leaq -0x250(%rbp), %rdi
callq 0x31f0
jmp 0x4647
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x3e70
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x31f0
leaq -0x2b0(%rbp), %rdi
callq 0x31f0
jmp 0x4647
jmp 0x3e83
cmpl $0x0, -0x14(%rbp)
je 0x420f
movq 0xb13c(%rip), %rdi      # 0xefd0
leaq 0x71b9(%rip), %rsi      # 0xb054
callq 0x32c0
movq %rax, -0x778(%rbp)
jmp 0x3ea9
movq -0x778(%rbp), %rdi
movq 0xb109(%rip), %rsi      # 0xefc0
callq 0x3300
jmp 0x3ebe
leaq 0x714f(%rip), %rdx      # 0xb014
leaq -0x310(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x4720
jmp 0x3ed7
leaq -0x2f0(%rbp), %rdi
leaq -0x310(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x46d0
jmp 0x3ef0
leaq 0x7124(%rip), %rdx      # 0xb01b
leaq -0x2d0(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
callq 0x4680
jmp 0x3f0c
leaq -0x2f0(%rbp), %rdi
callq 0x31f0
leaq -0x310(%rbp), %rdi
callq 0x31f0
leaq 0x70e9(%rip), %rdx      # 0xb014
leaq -0x370(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x4720
jmp 0x3f3d
leaq -0x350(%rbp), %rdi
leaq -0x370(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x46d0
jmp 0x3f56
leaq 0x70c7(%rip), %rdx      # 0xb024
leaq -0x330(%rbp), %rdi
leaq -0x350(%rbp), %rsi
callq 0x4680
jmp 0x3f72
leaq -0x350(%rbp), %rdi
callq 0x31f0
leaq -0x370(%rbp), %rdi
callq 0x31f0
movl $0x8, %edi
callq 0x32d0
movq %rax, -0x780(%rbp)
jmp 0x3f9d
movb $0x1, -0x3b9(%rbp)
leaq -0x398(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x3150
jmp 0x3fb9
leaq -0x3b8(%rbp), %rdi
leaq -0x330(%rbp), %rsi
callq 0x3150
jmp 0x3fce
movq -0x780(%rbp), %rdi
leaq -0x398(%rbp), %rsi
leaq -0x3b8(%rbp), %rdx
callq 0x47a0
jmp 0x3fea
movb $0x0, -0x3b9(%rbp)
leaq -0x3b8(%rbp), %rdi
callq 0x31f0
leaq -0x398(%rbp), %rdi
callq 0x31f0
movq -0x780(%rbp), %rax
movq %rax, -0x378(%rbp)
movq 0xafc2(%rip), %rdi      # 0xefe0
leaq -0x98(%rbp), %rsi
callq 0x30b0
movq %rax, -0x788(%rbp)
jmp 0x4033
movq -0x788(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x34f0
movb %al, -0x789(%rbp)
jmp 0x4051
movb -0x789(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x4062
jmp 0x41ba
movq -0x378(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x5630
movl %eax, -0x790(%rbp)
jmp 0x407d
movl -0x790(%rbp), %eax
cmpl $-0x1, %eax
jne 0x41b5
jmp 0x41ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x40c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x2f0(%rbp), %rdi
callq 0x31f0
leaq -0x310(%rbp), %rdi
callq 0x31f0
jmp 0x4647
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x41fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x411d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x350(%rbp), %rdi
callq 0x31f0
leaq -0x370(%rbp), %rdi
callq 0x31f0
jmp 0x41fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x41f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x4197
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x418b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x3b8(%rbp), %rdi
callq 0x31f0
leaq -0x398(%rbp), %rdi
callq 0x31f0
testb $0x1, -0x3b9(%rbp)
jne 0x41a2
jmp 0x41b3
movq -0x780(%rbp), %rdi
movl $0x8, %esi
callq 0x32e0
jmp 0x41f2
jmp 0x4017
movq -0x378(%rbp), %rax
movq %rax, -0x798(%rbp)
cmpq $0x0, %rax
je 0x41eb
movq -0x798(%rbp), %rdi
callq 0x4830
movq -0x798(%rbp), %rdi
movl $0x8, %esi
callq 0x32e0
xorl %edi, %edi
callq 0x3370
leaq -0x330(%rbp), %rdi
callq 0x31f0
leaq -0x2d0(%rbp), %rdi
callq 0x31f0
jmp 0x4647
leaq -0x38(%rbp), %rdi
callq 0x3130
movq %rax, %rdi
callq 0x3430
leaq 0x6def(%rip), %rdx      # 0xb016
leaq -0x400(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x4720
jmp 0x4239
leaq -0x58(%rbp), %rdi
movq %rdi, -0x7a0(%rbp)
leaq -0x400(%rbp), %rsi
movq %rsi, -0x7a8(%rbp)
callq 0x3380
movq -0x7a8(%rbp), %rdi
callq 0x31f0
movq -0x7a0(%rbp), %rdi
callq 0x3130
movq %rax, %rsi
leaq -0x600(%rbp), %rdi
movl $0x10, %edx
callq 0x3330
jmp 0x4285
callq 0x3420
movl %eax, -0x604(%rbp)
movl -0x604(%rbp), %esi
leaq -0x600(%rbp), %rdi
callq 0x34a0
jmp 0x42a4
leaq -0x600(%rbp), %rdi
callq 0x33f0
jmp 0x42b2
movq 0xad17(%rip), %rdi      # 0xefd0
leaq 0x6dac(%rip), %rsi      # 0xb06c
callq 0x32c0
movq %rax, -0x7b0(%rbp)
jmp 0x42ce
movq -0x7b0(%rbp), %rdi
movq 0xace4(%rip), %rsi      # 0xefc0
callq 0x3300
jmp 0x42e3
leaq 0x6d31(%rip), %rdx      # 0xb01b
leaq -0x628(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x4720
jmp 0x42fc
leaq 0x6d21(%rip), %rdx      # 0xb024
leaq -0x648(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x4720
jmp 0x4315
leaq 0x6d1d(%rip), %rdx      # 0xb039
leaq -0x668(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x4720
jmp 0x432e
leaq 0x6cf8(%rip), %rdx      # 0xb02d
leaq -0x688(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x4720
jmp 0x4347
movl $0x38, %edi
callq 0x32d0
movq %rax, -0x7b8(%rbp)
jmp 0x435a
movb $0x1, -0x711(%rbp)
leaq -0x6b0(%rbp), %rdi
leaq -0x628(%rbp), %rsi
callq 0x3150
jmp 0x4376
leaq -0x6d0(%rbp), %rdi
leaq -0x648(%rbp), %rsi
callq 0x3150
jmp 0x438b
leaq -0x6f0(%rbp), %rdi
leaq -0x668(%rbp), %rsi
callq 0x3150
jmp 0x43a0
leaq -0x710(%rbp), %rdi
leaq -0x688(%rbp), %rsi
callq 0x3150
jmp 0x43b5
movq -0x7b8(%rbp), %rdi
leaq -0x6b0(%rbp), %rsi
leaq -0x6d0(%rbp), %rdx
leaq -0x6f0(%rbp), %rcx
leaq -0x710(%rbp), %r8
callq 0x5ab0
jmp 0x43df
movb $0x0, -0x711(%rbp)
leaq -0x710(%rbp), %rdi
callq 0x31f0
leaq -0x6f0(%rbp), %rdi
callq 0x31f0
leaq -0x6d0(%rbp), %rdi
callq 0x31f0
leaq -0x6b0(%rbp), %rdi
callq 0x31f0
movq -0x7b8(%rbp), %rax
movq %rax, -0x690(%rbp)
movq -0x690(%rbp), %rdi
callq 0x69a0
jmp 0x4432
movq -0x690(%rbp), %rax
movq %rax, -0x7c0(%rbp)
cmpq $0x0, %rax
je 0x4463
movq -0x7c0(%rbp), %rdi
callq 0x5c60
movq -0x7c0(%rbp), %rdi
movl $0x38, %esi
callq 0x32e0
leaq -0x628(%rbp), %rdi
callq 0x3130
movq %rax, %rdi
callq 0x31b0
leaq -0x648(%rbp), %rdi
callq 0x3130
movq %rax, %rdi
callq 0x31b0
leaq -0x668(%rbp), %rdi
callq 0x3130
movq %rax, %rdi
callq 0x31b0
leaq -0x688(%rbp), %rdi
callq 0x3130
movq %rax, %rdi
callq 0x31b0
leaq -0x58(%rbp), %rdi
callq 0x3130
movq %rax, %rdi
callq 0x31b0
leaq 0x6bb8(%rip), %rdi      # 0xb083
callq 0x3430
leaq -0x38(%rbp), %rdi
callq 0x3130
movq %rax, %rdi
callq 0x3140
xorl %edi, %edi
callq 0x3370
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x463b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x462f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x4623
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x4617
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x460b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x45ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x45e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x45d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x45c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x710(%rbp), %rdi
callq 0x31f0
leaq -0x6f0(%rbp), %rdi
callq 0x31f0
leaq -0x6d0(%rbp), %rdi
callq 0x31f0
leaq -0x6b0(%rbp), %rdi
callq 0x31f0
testb $0x1, -0x711(%rbp)
jne 0x45f8
jmp 0x4609
movq -0x7b8(%rbp), %rdi
movl $0x38, %esi
callq 0x32e0
jmp 0x460b
leaq -0x688(%rbp), %rdi
callq 0x31f0
leaq -0x668(%rbp), %rdi
callq 0x31f0
leaq -0x648(%rbp), %rdi
callq 0x31f0
leaq -0x628(%rbp), %rdi
callq 0x31f0
leaq -0x600(%rbp), %rdi
callq 0x3440
leaq -0x98(%rbp), %rdi
callq 0x31f0
leaq -0x78(%rbp), %rdi
callq 0x31f0
leaq -0x58(%rbp), %rdi
callq 0x31f0
leaq -0x38(%rbp), %rdi
callq 0x31f0
movq -0xa8(%rbp), %rdi
callq 0x34b0
nopw (%rax,%rax)