// File: /workspace/github_c_makefile_star2_O0/jech[P]dht/dht.c
// Function: send_get_peers
int
send_get_peers(const struct sockaddr *sa, int salen,
               unsigned char *tid, int tid_len, unsigned char *infohash,
               int want, int confirm)
{
    char buf[512];
    int i = 0, rc;

    rc = snprintf(buf + i, 512 - i, "d1:ad2:id20:"); INC(i, rc, 512);
    COPY(buf, i, myid, 20, 512);
    rc = snprintf(buf + i, 512 - i, "9:info_hash20:"); INC(i, rc, 512);
    COPY(buf, i, infohash, 20, 512);
    if(want > 0) {
        rc = snprintf(buf + i, 512 - i, "4:wantl%s%se",
                      (want & WANT4) ? "2:n4" : "",
                      (want & WANT6) ? "2:n6" : "");
        INC(i, rc, 512);
    }
    rc = snprintf(buf + i, 512 - i, "e1:q9:get_peers1:t%d:", tid_len);
    INC(i, rc, 512);
    COPY(buf, i, tid, tid_len, 512);
    ADD_V(buf, i, 512);
    rc = snprintf(buf + i, 512 - i, "1:y1:qe"); INC(i, rc, 512);
    return dht_send(buf, i, confirm ? MSG_CONFIRM : 0, sa, salen);

 fail:
    errno = ENOSPC;
    return -1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x250, %rsp            # imm = 0x250
movl 0x10(%rbp), %eax
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq %rdx, -0x20(%rbp)
movl %ecx, -0x24(%rbp)
movq %r8, -0x30(%rbp)
movl %r9d, -0x34(%rbp)
movl $0x0, -0x244(%rbp)
leaq -0x240(%rbp), %rdi
movslq -0x244(%rbp), %rax
addq %rax, %rdi
movl $0x200, %eax            # imm = 0x200
subl -0x244(%rbp), %eax
movslq %eax, %rsi
leaq 0x1c4a(%rip), %rdx      # 0xc68e
movb $0x0, %al
callq 0x2120
movl %eax, -0x248(%rbp)
cmpl $0x0, -0x248(%rbp)
jl 0xaa6d
movl -0x244(%rbp), %eax
addl -0x248(%rbp), %eax
cmpl $0x200, %eax            # imm = 0x200
jle 0xaa72
jmp 0xadcf
movl -0x248(%rbp), %eax
addl -0x244(%rbp), %eax
movl %eax, -0x244(%rbp)
movl -0x244(%rbp), %eax
addl $0x14, %eax
cmpl $0x200, %eax            # imm = 0x200
jle 0xaa99
jmp 0xadcf
movslq -0x244(%rbp), %rax
movq 0x6189(%rip), %rcx      # 0x10c30
movq %rcx, -0x240(%rbp,%rax)
movq 0x6182(%rip), %rcx      # 0x10c38
movq %rcx, -0x238(%rbp,%rax)
movl 0x617c(%rip), %ecx      # 0x10c40
movl %ecx, -0x230(%rbp,%rax)
movl -0x244(%rbp), %eax
addl $0x14, %eax
movl %eax, -0x244(%rbp)
leaq -0x240(%rbp), %rdi
movslq -0x244(%rbp), %rax
addq %rax, %rdi
movl $0x200, %eax            # imm = 0x200
subl -0x244(%rbp), %eax
movslq %eax, %rsi
leaq 0x1b9b(%rip), %rdx      # 0xc69b
movb $0x0, %al
callq 0x2120
movl %eax, -0x248(%rbp)
cmpl $0x0, -0x248(%rbp)
jl 0xab29
movl -0x244(%rbp), %eax
addl -0x248(%rbp), %eax
cmpl $0x200, %eax            # imm = 0x200
jle 0xab2e
jmp 0xadcf
movl -0x248(%rbp), %eax
addl -0x244(%rbp), %eax
movl %eax, -0x244(%rbp)
movl -0x244(%rbp), %eax
addl $0x14, %eax
cmpl $0x200, %eax            # imm = 0x200
jle 0xab55
jmp 0xadcf
movslq -0x244(%rbp), %rax
movq -0x30(%rbp), %rcx
movq (%rcx), %rdx
movq %rdx, -0x240(%rbp,%rax)
movq 0x8(%rcx), %rdx
movq %rdx, -0x238(%rbp,%rax)
movl 0x10(%rcx), %ecx
movl %ecx, -0x230(%rbp,%rax)
movl -0x244(%rbp), %eax
addl $0x14, %eax
movl %eax, -0x244(%rbp)
cmpl $0x0, -0x34(%rbp)
jle 0xac36
leaq -0x240(%rbp), %rdi
movslq -0x244(%rbp), %rax
addq %rax, %rdi
movl $0x200, %eax            # imm = 0x200
subl -0x244(%rbp), %eax
movslq %eax, %rsi
movl -0x34(%rbp), %edx
andl $0x1, %edx
leaq 0x1758(%rip), %rcx      # 0xc31e
leaq 0x1d06(%rip), %rax      # 0xc8d3
cmpl $0x0, %edx
cmovneq %rax, %rcx
movl -0x34(%rbp), %edx
andl $0x2, %edx
leaq 0x173d(%rip), %r8       # 0xc31e
leaq 0x1cf0(%rip), %rax      # 0xc8d8
cmpl $0x0, %edx
cmovneq %rax, %r8
leaq 0x1cd0(%rip), %rdx      # 0xc8c6
movb $0x0, %al
callq 0x2120
movl %eax, -0x248(%rbp)
cmpl $0x0, -0x248(%rbp)
jl 0xac1f
movl -0x244(%rbp), %eax
addl -0x248(%rbp), %eax
cmpl $0x200, %eax            # imm = 0x200
jle 0xac24
jmp 0xadcf
movl -0x248(%rbp), %eax
addl -0x244(%rbp), %eax
movl %eax, -0x244(%rbp)
leaq -0x240(%rbp), %rdi
movslq -0x244(%rbp), %rax
addq %rax, %rdi
movl $0x200, %eax            # imm = 0x200
subl -0x244(%rbp), %eax
movslq %eax, %rsi
movl -0x24(%rbp), %ecx
leaq 0x1c7e(%rip), %rdx      # 0xc8dd
movb $0x0, %al
callq 0x2120
movl %eax, -0x248(%rbp)
cmpl $0x0, -0x248(%rbp)
jl 0xac88
movl -0x244(%rbp), %eax
addl -0x248(%rbp), %eax
cmpl $0x200, %eax            # imm = 0x200
jle 0xac8d
jmp 0xadcf
movl -0x248(%rbp), %eax
addl -0x244(%rbp), %eax
movl %eax, -0x244(%rbp)
cmpl $0x0, -0x24(%rbp)
jl 0xacb5
movl -0x244(%rbp), %eax
addl -0x24(%rbp), %eax
cmpl $0x200, %eax            # imm = 0x200
jle 0xacba
jmp 0xadcf
leaq -0x240(%rbp), %rdi
movslq -0x244(%rbp), %rax
addq %rax, %rdi
movq -0x20(%rbp), %rsi
movslq -0x24(%rbp), %rdx
callq 0x2200
movl -0x24(%rbp), %eax
addl -0x244(%rbp), %eax
movl %eax, -0x244(%rbp)
cmpl $0x0, 0x5f8e(%rip)      # 0x10c7c
je 0xad3c
movslq -0x244(%rbp), %rax
addq $0x9, %rax
cmpq $0x200, %rax            # imm = 0x200
jbe 0xad08
jmp 0xadcf
movslq -0x244(%rbp), %rax
movq 0x5f5a(%rip), %rcx      # 0x10c70
movq %rcx, -0x240(%rbp,%rax)
movb 0x5f54(%rip), %cl       # 0x10c78
movb %cl, -0x238(%rbp,%rax)
movslq -0x244(%rbp), %rax
addq $0x9, %rax
movl %eax, -0x244(%rbp)
leaq -0x240(%rbp), %rdi
movslq -0x244(%rbp), %rax
addq %rax, %rdi
movl $0x200, %eax            # imm = 0x200
subl -0x244(%rbp), %eax
movslq %eax, %rsi
leaq 0x1978(%rip), %rdx      # 0xc6da
movb $0x0, %al
callq 0x2120
movl %eax, -0x248(%rbp)
cmpl $0x0, -0x248(%rbp)
jl 0xad8b
movl -0x244(%rbp), %eax
addl -0x248(%rbp), %eax
cmpl $0x200, %eax            # imm = 0x200
jle 0xad8d
jmp 0xadcf
movl -0x248(%rbp), %eax
addl -0x244(%rbp), %eax
movl %eax, -0x244(%rbp)
leaq -0x240(%rbp), %rdi
movslq -0x244(%rbp), %rsi
movl 0x10(%rbp), %ecx
xorl %edx, %edx
movl $0x800, %eax            # imm = 0x800
cmpl $0x0, %ecx
cmovnel %eax, %edx
movq -0x10(%rbp), %rcx
movl -0x14(%rbp), %r8d
callq 0xa110
movl %eax, -0x4(%rbp)
jmp 0xade1
callq 0x2060
movl $0x1c, (%rax)
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
addq $0x250, %rsp            # imm = 0x250
popq %rbp
retq
nopl (%rax)