// File: /workspace/github_c_makefile_star2_O0/niuyuling[P]CProxy/httpudp.c
// Function: margeClient
static int margeClient(info_t * client)
{
    int i;

    for (i = 0; i < MAX_CLIENT_INFO; i++) {
        if (client != client_info_list + i && client_info_list[i].server_fd > -1 && memcmp(((char *)&client->toaddr) + 2, ((char *)&client_info_list[i].toaddr) + 2, 6) == 0 && memcmp(((char *)&client->inaddr) + 2, ((char *)&client_info_list[i].inaddr) + 2, 6) == 0) {
            info_t *lastInfo;
            for (lastInfo = client_info_list + i; lastInfo->next; lastInfo = lastInfo->next) ;
            lastInfo->next = client;
            client->server_fd = -2; //保证下次调用margeClient()不匹配到这个结构体  并且不被其他客户端连接使用
            client->client_data_sent_len = sizeof(struct sockaddr_in); //不再发送UDP目标地址
            //没有收到服务端回应前不发送UDP的数据
            if (client_info_list[i].http_request_sent_len > udp.http_request_len) {
                udp_ev.events = EPOLLIN | EPOLLOUT | EPOLLET;
                udp_ev.data.ptr = client_info_list + i;
                epoll_ctl(udp_efd, EPOLL_CTL_MOD, client_info_list[i].server_fd, &udp_ev);
            }
            return 0;
        }
    }

    return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
cmpl $0x200, -0x14(%rbp)     # imm = 0x200
jge 0x9a81
movq -0x10(%rbp), %rax
movslq -0x14(%rbp), %rdx
leaq 0x5d0c1(%rip), %rcx     # 0x66990
imulq $0x10068, %rdx, %rdx    # imm = 0x10068
addq %rdx, %rcx
cmpq %rcx, %rax
je 0x9a71
movslq -0x14(%rbp), %rcx
leaq 0x5d0a3(%rip), %rax     # 0x66990
imulq $0x10068, %rcx, %rcx    # imm = 0x10068
addq %rcx, %rax
cmpl $-0x1, 0x1005c(%rax)
jle 0x9a71
movq -0x10(%rbp), %rdi
addq $0x10024, %rdi          # imm = 0x10024
addq $0x2, %rdi
movslq -0x14(%rbp), %rax
leaq 0x5d072(%rip), %rsi     # 0x66990
imulq $0x10068, %rax, %rax    # imm = 0x10068
addq %rax, %rsi
addq $0x10024, %rsi          # imm = 0x10024
addq $0x2, %rsi
movl $0x6, %edx
callq 0x2280
cmpl $0x0, %eax
jne 0x9a71
movq -0x10(%rbp), %rdi
addq $0x10014, %rdi          # imm = 0x10014
addq $0x2, %rdi
movslq -0x14(%rbp), %rax
leaq 0x5d030(%rip), %rsi     # 0x66990
imulq $0x10068, %rax, %rax    # imm = 0x10068
addq %rax, %rsi
addq $0x10014, %rsi          # imm = 0x10014
addq $0x2, %rsi
movl $0x6, %edx
callq 0x2280
cmpl $0x0, %eax
jne 0x9a71
movslq -0x14(%rbp), %rcx
leaq 0x5cffd(%rip), %rax     # 0x66990
imulq $0x10068, %rcx, %rcx    # imm = 0x10068
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x10038(%rax)
je 0x99c2
jmp 0x99b1
movq -0x20(%rbp), %rax
movq 0x10038(%rax), %rax
movq %rax, -0x20(%rbp)
jmp 0x99a1
movq -0x10(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x10038(%rax)
movq -0x10(%rbp), %rax
movl $0xfffffffe, 0x1005c(%rax) # imm = 0xFFFFFFFE
movq -0x10(%rbp), %rax
movl $0x10, 0x1004c(%rax)
movslq -0x14(%rbp), %rcx
leaq 0x5cf98(%rip), %rax     # 0x66990
imulq $0x10068, %rcx, %rcx    # imm = 0x10068
addq %rcx, %rax
movl 0x10050(%rax), %eax
cmpl 0x206cfca(%rip), %eax   # 0x20769d8
jle 0x9a68
movl $0x80000005, 0x2069f7a(%rip) # imm = 0x80000005
movslq -0x14(%rbp), %rcx
leaq 0x5cf6b(%rip), %rax     # 0x66990
imulq $0x10068, %rcx, %rcx    # imm = 0x10068
addq %rcx, %rax
movq %rax, 0x2069f62(%rip)   # 0x2073998
movl 0x2069f54(%rip), %edi   # 0x2073990
movslq -0x14(%rbp), %rcx
leaq 0x5cf49(%rip), %rax     # 0x66990
imulq $0x10068, %rcx, %rcx    # imm = 0x10068
addq %rcx, %rax
movl 0x1005c(%rax), %edx
movl $0x3, %esi
leaq 0x2069f31(%rip), %rcx   # 0x2073994
callq 0x2240
movl $0x0, -0x4(%rbp)
jmp 0x9a88
jmp 0x9a73
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x98b3
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)