// File: /workspace/github_c_makefile_star2_O0/niuyuling[P]CProxy/httpudp.c
// Function: http_udp_req_init
static void http_udp_req_init()
{
    char dest[22];

    sprintf(dest, "%s:%u", inet_ntoa(udp.dst.sin_addr), ntohs(udp.dst.sin_port));
    if (udp.http_request) {
        udp.http_request_len = strlen(udp.http_request) + 2;
        udp.http_request = (char *)realloc(udp.http_request, udp.http_request_len + 1);
        if (udp.http_request == NULL)
            errors("httpudp http request initializate failed.");
        strcat(udp.http_request, "\r\n");
        udp.http_request = replace(udp.http_request, &udp.http_request_len, "[V]", 3, "HTTP/1.1", 8);
        udp.http_request = replace(udp.http_request, &udp.http_request_len, "[H]", 3, dest, strlen(dest));
        udp.http_request = replace(udp.http_request, &udp.http_request_len, "\\0", 2, "\0", 1);
        udp.http_request = replace(udp.http_request, &udp.http_request_len, "[M]", 3, "CONNECT", 7);
        udp.http_request = replace(udp.http_request, &udp.http_request_len, "[url]", 5, "/", 1);
        udp.http_request = replace(udp.http_request, &udp.http_request_len, "[U]", 3, "/", 1);
    } else {                    /* 默认使用CONNECT请求 */
        if (https.encodeCode) {
            dataEncode(dest, strlen(dest), https.encodeCode);
            udp.httpsProxy_encodeCode = https.encodeCode;
        }
        udp.http_request_len = default_ssl_request_len;
        copy_new_mem(default_ssl_request, default_ssl_request_len, &udp.http_request);
        udp.http_request = replace(udp.http_request, &udp.http_request_len, "[H]", 3, dest, strlen(dest));
        memcpy(&udp.dst, &https.dst, sizeof(udp.dst));
    }
    if (udp.http_request == NULL)
        errors("out of memory.");
    /* 保存原始生成的请求头，配合usr_hdr使用 */
    if (saveHdrs) {
        if (copy_new_mem(udp.http_request, udp.http_request_len, &udp.original_http_request) != 0)
            errors("out of memory.");
        udp.original_http_request_len = udp.http_request_len;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
leaq -0x20(%rbp), %rax
movq %rax, -0x30(%rbp)
movl 0x206d6e6(%rip), %edi   # 0x20769bc
callq 0x20f0
movq %rax, -0x28(%rbp)
movzwl 0x206d6d4(%rip), %edi   # 0x20769ba
callq 0x2400
movq -0x30(%rbp), %rdi
movq -0x28(%rbp), %rdx
movzwl %ax, %ecx
leaq 0x319a(%rip), %rsi      # 0xc497
movb $0x0, %al
callq 0x24d0
cmpq $0x0, 0x206d6bc(%rip)   # 0x20769c8
je 0x94d2
movq 0x206d6af(%rip), %rdi   # 0x20769c8
callq 0x2130
addq $0x2, %rax
movl %eax, 0x206d6b0(%rip)   # 0x20769d8
movq 0x206d699(%rip), %rdi   # 0x20769c8
movl 0x206d6a3(%rip), %eax   # 0x20769d8
addl $0x1, %eax
movslq %eax, %rsi
callq 0x23e0
movq %rax, 0x206d681(%rip)   # 0x20769c8
cmpq $0x0, 0x206d679(%rip)   # 0x20769c8
jne 0x935d
leaq 0x3180(%rip), %rdi      # 0xc4d8
callq 0x4c50
movq 0x206d664(%rip), %rdi   # 0x20769c8
leaq 0x30c7(%rip), %rsi      # 0xc432
callq 0x24b0
movq 0x206d651(%rip), %rdi   # 0x20769c8
leaq 0x206d63a(%rip), %rsi   # 0x20769b8
addq $0x20, %rsi
leaq 0x30ce(%rip), %rdx      # 0xc457
movl $0x3, %ecx
leaq 0x3118(%rip), %r8       # 0xc4ad
movl $0x8, %r9d
callq 0x4d00
movq %rax, 0x206d621(%rip)   # 0x20769c8
movq 0x206d61a(%rip), %rax   # 0x20769c8
movq %rax, -0x40(%rbp)
leaq -0x20(%rbp), %rax
movq %rax, -0x38(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x2130
movq -0x40(%rbp), %rdi
movq -0x38(%rbp), %r8
movl %eax, %r9d
leaq 0x206d5e3(%rip), %rsi   # 0x20769b8
addq $0x20, %rsi
leaq 0x3093(%rip), %rdx      # 0xc473
movl $0x3, %ecx
callq 0x4d00
movq %rax, 0x206d5d7(%rip)   # 0x20769c8
movq 0x206d5d0(%rip), %rdi   # 0x20769c8
leaq 0x206d5b9(%rip), %rsi   # 0x20769b8
addq $0x20, %rsi
leaq 0x30ac(%rip), %rdx      # 0xc4b6
movl $0x2, %ecx
leaq 0x30fc(%rip), %r8       # 0xc512
movl $0x1, %r9d
callq 0x4d00
movq %rax, 0x206d5a0(%rip)   # 0x20769c8
movq 0x206d599(%rip), %rdi   # 0x20769c8
leaq 0x206d582(%rip), %rsi   # 0x20769b8
addq $0x20, %rsi
leaq 0x3005(%rip), %rdx      # 0xc446
movl $0x3, %ecx
leaq 0x2f7d(%rip), %r8       # 0xc3ca
movl $0x7, %r9d
callq 0x4d00
movq %rax, 0x206d569(%rip)   # 0x20769c8
movq 0x206d562(%rip), %rdi   # 0x20769c8
leaq 0x206d54b(%rip), %rsi   # 0x20769b8
addq $0x20, %rsi
leaq 0x3007(%rip), %rdx      # 0xc47f
movl $0x5, %ecx
leaq 0x2fbe(%rip), %r8       # 0xc442
movl $0x1, %r9d
callq 0x4d00
movq %rax, 0x206d532(%rip)   # 0x20769c8
movq 0x206d52b(%rip), %rdi   # 0x20769c8
leaq 0x206d514(%rip), %rsi   # 0x20769b8
addq $0x20, %rsi
leaq 0x2fa4(%rip), %rdx      # 0xc453
movl $0x3, %ecx
leaq 0x2f87(%rip), %r8       # 0xc442
movl $0x1, %r9d
callq 0x4d00
movq %rax, 0x206d4fb(%rip)   # 0x20769c8
jmp 0x95ad
leaq 0x12f17(%rip), %rax     # 0x1c3f0
cmpl $0x0, 0x18(%rax)
je 0x9515
leaq -0x20(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x2130
movq -0x48(%rbp), %rdi
movl %eax, %esi
leaq 0x12ef3(%rip), %rax     # 0x1c3f0
movl 0x18(%rax), %edx
callq 0x3e20
leaq 0x12ee4(%rip), %rax     # 0x1c3f0
movl 0x18(%rax), %eax
movl %eax, 0x206d4cf(%rip)   # 0x20769e4
leaq 0x13064(%rip), %rax     # 0x1c580
movl (%rax), %eax
movl %eax, 0x206d4b4(%rip)   # 0x20769d8
leaq 0x1304d(%rip), %rax     # 0x1c578
movq (%rax), %rdi
leaq 0x1304b(%rip), %rax     # 0x1c580
movl (%rax), %esi
leaq 0x206d47a(%rip), %rdx   # 0x20769b8
addq $0x10, %rdx
callq 0x4c90
movq 0x206d47a(%rip), %rax   # 0x20769c8
movq %rax, -0x58(%rbp)
leaq -0x20(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x2130
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %r8
movl %eax, %r9d
leaq 0x206d443(%rip), %rsi   # 0x20769b8
addq $0x20, %rsi
leaq 0x2ef3(%rip), %rdx      # 0xc473
movl $0x3, %ecx
callq 0x4d00
movq %rax, 0x206d437(%rip)   # 0x20769c8
leaq 0x12e58(%rip), %rax     # 0x1c3f0
movq (%rax), %rcx
movq %rcx, 0x206d416(%rip)   # 0x20769b8
movq 0x8(%rax), %rax
movq %rax, 0x206d413(%rip)   # 0x20769c0
cmpq $0x0, 0x206d413(%rip)   # 0x20769c8
jne 0x95c3
leaq 0x2bbd(%rip), %rdi      # 0xc17b
callq 0x4c50
leaq 0x12e46(%rip), %rax     # 0x1c410
cmpq $0x0, (%rax)
je 0x960d
movq 0x206d3f1(%rip), %rdi   # 0x20769c8
movl 0x206d3fb(%rip), %esi   # 0x20769d8
leaq 0x206d3d4(%rip), %rdx   # 0x20769b8
addq $0x18, %rdx
callq 0x4c90
movsbl %al, %eax
cmpl $0x0, %eax
je 0x9601
leaq 0x2b7f(%rip), %rdi      # 0xc17b
callq 0x4c50
movl 0x206d3d1(%rip), %eax   # 0x20769d8
movl %eax, 0x206d3cf(%rip)   # 0x20769dc
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)