// File: girdhari9[P]mTORRENT/ClientConnection.cpp
// Function: GetSeedersDetails(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void GetSeedersDetails(int sock,string SHA){
    char recvBuffer[BUFFER_SIZE]; 
    memset(&recvBuffer, '\0',BUFFER_SIZE);

    cout<<"[+]system connected...\n";
    printf("> recieving seeders details...\n");

    int DataLength, RequestType = 0;
    send(sock , &RequestType , sizeof(int) , 0 );

    send(sock, SHA.c_str(), SHA_DIGEST_LENGTH, 0 );
    read(sock, &DataLength, sizeof(int));

    // if(DataLength < 3){
    //     close(sock);
    //     return ;
    // }
    read(sock, recvBuffer, DataLength);
    string Seeders = (string)recvBuffer;

    stringstream seeder(Seeders); // Used for breaking words 
    string IP,Port,FilePath; // to store individual words 
    while(seeder >> IP){
        ConDetail.push_back(IP);
        seeder >> Port;
        ConDetail.push_back(Port);
        seeder >> FilePath;
        ConDetail.push_back(FilePath);
    }
    return ;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa50, %rsp            # imm = 0xA50
movq %rsi, -0xa30(%rbp)
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x7e0(%rbp), %rdi
movq %rdi, -0xa18(%rbp)
xorl %esi, %esi
movl %esi, -0xa24(%rbp)
movl $0x7d0, %edx            # imm = 0x7D0
callq 0x4260
movq 0x14868(%rip), %rdi     # 0x20fc8
leaq 0x9cd9(%rip), %rsi      # 0x16440
callq 0x43f0
movl -0xa24(%rbp), %eax
leaq 0x9cdf(%rip), %rdi      # 0x16458
callq 0x4070
movl -0xa24(%rbp), %ecx
movl $0x0, -0x7e8(%rbp)
movl -0x4(%rbp), %edi
leaq -0x7e8(%rbp), %rsi
movl $0x4, %edx
movq %rdx, -0xa20(%rbp)
callq 0x4230
movq -0xa30(%rbp), %rdi
movl -0x4(%rbp), %eax
movl %eax, -0xa28(%rbp)
callq 0x41f0
movl -0xa28(%rbp), %edi
movl -0xa24(%rbp), %ecx
movq %rax, %rsi
movl $0x14, %edx
callq 0x4230
movq -0xa20(%rbp), %rdx
movl -0x4(%rbp), %edi
leaq -0x7e4(%rbp), %rsi
callq 0x45c0
movq -0xa18(%rbp), %rsi
movl -0x4(%rbp), %edi
movslq -0x7e4(%rbp), %rdx
callq 0x45c0
leaq -0x809(%rbp), %rdi
movq %rdi, -0xa10(%rbp)
callq 0x4710
movq -0xa18(%rbp), %rsi
movq -0xa10(%rbp), %rdx
leaq -0x808(%rbp), %rdi
callq 0x6d90
jmp 0xc832
leaq -0x809(%rbp), %rdi
callq 0x4450
movl $0x10, %edi
movl $0x8, %esi
callq 0x7490
movl %eax, -0xa34(%rbp)
jmp 0xc855
movl -0xa34(%rbp), %edx
leaq -0x9a8(%rbp), %rdi
leaq -0x808(%rbp), %rsi
callq 0x4640
jmp 0xc870
leaq -0x9c8(%rbp), %rdi
callq 0x45a0
leaq -0x9e8(%rbp), %rdi
callq 0x45a0
leaq -0xa08(%rbp), %rdi
callq 0x45a0
leaq -0x9a8(%rbp), %rdi
leaq -0x9c8(%rbp), %rsi
callq 0x4540
movq %rax, -0xa40(%rbp)
jmp 0xc8b0
movq -0xa40(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x4510
movb %al, -0xa41(%rbp)
jmp 0xc8ce
movb -0xa41(%rbp), %al
testb $0x1, %al
jne 0xc8dd
jmp 0xc9c9
leaq 0x1509c(%rip), %rdi     # 0x21980
leaq -0x9c8(%rbp), %rsi
callq 0x6eb0
jmp 0xc8f2
leaq -0x9a8(%rbp), %rdi
leaq -0x9e8(%rbp), %rsi
callq 0x4540
jmp 0xc907
leaq 0x15072(%rip), %rdi     # 0x21980
leaq -0x9e8(%rbp), %rsi
callq 0x6eb0
jmp 0xc91c
leaq -0x9a8(%rbp), %rdi
leaq -0xa08(%rbp), %rsi
callq 0x4540
jmp 0xc931
leaq 0x15048(%rip), %rdi     # 0x21980
leaq -0xa08(%rbp), %rsi
callq 0x6eb0
jmp 0xc946
jmp 0xc894
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x818(%rbp)
movl %eax, -0x81c(%rbp)
leaq -0x809(%rbp), %rdi
callq 0x4450
jmp 0xca1a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x818(%rbp)
movl %eax, -0x81c(%rbp)
jmp 0xca0e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x818(%rbp)
movl %eax, -0x81c(%rbp)
leaq -0xa08(%rbp), %rdi
callq 0x47e8
leaq -0x9e8(%rbp), %rdi
callq 0x47e8
leaq -0x9c8(%rbp), %rdi
callq 0x47e8
leaq -0x9a8(%rbp), %rdi
callq 0x4320
jmp 0xca0e
leaq -0xa08(%rbp), %rdi
callq 0x47e8
leaq -0x9e8(%rbp), %rdi
callq 0x47e8
leaq -0x9c8(%rbp), %rdi
callq 0x47e8
leaq -0x9a8(%rbp), %rdi
callq 0x4320
leaq -0x808(%rbp), %rdi
callq 0x47e8
addq $0xa50, %rsp            # imm = 0xA50
popq %rbp
retq
leaq -0x808(%rbp), %rdi
callq 0x47e8
movq -0x818(%rbp), %rdi
callq 0x4700
nopw %cs:(%rax,%rax)