// File: /workspace/github_c_makefile_star2_O0/snow1eo[P]IPsec_IKEv2/ike.c
// Function: ike_auth_resp
int ike_auth_resp (void)
{
    IDr.ID_type = ID_IPV4_ADDR;
    IDr.reserved = 0;
    uint32_t id_len = get_id_len (ID_IPV4_ADDR);
    IDr.identification_data = calloc (1, id_len);
    IDr.identification_data[0] = 127;
    IDr.identification_data[1] = 0;
    IDr.identification_data[2] = 0;
    IDr.identification_data[3] = 2;
    IDr.header.next_payload = PL_AUTH;
    IDr.header.critical = 0;
    IDr.header.payload_length = 8 + id_len;

    AUTH.auth_method = DSS_DS;
    AUTH.reserved = 0;
    free (AUTH.authentication_data);
    AUTH.authentication_data = calloc (1, integ_key_len);
    integ_func (SK_pr, integ_key_len,
                ike_sa_init_resp, ike_sa_init_resp_len,
                AUTH.authentication_data);
    AUTH.header.next_payload = PL_SA;
    AUTH.header.critical = 0;
    AUTH.header.payload_length = 8 + integ_key_len;

    SAr2 = SAr1;
    SAr2.header.next_payload = PL_TSi;

    TSi.number_of_TSs = 1;
    TSi.reserved = 0;
    free (TSi.traffic_selectors);
    TSi.traffic_selectors =
        calloc (TSi.number_of_TSs, sizeof (traffic_selector));
    TSi.traffic_selectors[0].TS_type = TS_IPV4_ADDR_RAN;
    TSi.traffic_selectors[0].IP_protocol_ID = ALL_PROT;
    uint8_t addr_len = get_addr_len (TSi.traffic_selectors[0].TS_type);
    TSi.traffic_selectors[0].selector_length =
        sizeof (generic_payload_header) + 4 + 2*addr_len;
    TSi.traffic_selectors[0].start_port = 0;
    TSi.traffic_selectors[0].end_port = 65535;
    // free (TSi.traffic_selectors[0].starting_address);
    TSi.traffic_selectors[0].starting_address =
        calloc (1, get_addr_len (TSi.traffic_selectors[0].TS_type));
    // free (TSi.traffic_selectors[0].ending_address);
    TSi.traffic_selectors[0].ending_address =
        calloc (1, get_addr_len (TSi.traffic_selectors[0].TS_type));
    TSi.traffic_selectors[0].starting_address[0] = 127;
    TSi.traffic_selectors[0].starting_address[1] = 0;
    TSi.traffic_selectors[0].starting_address[2] = 0;
    TSi.traffic_selectors[0].starting_address[3] = 1;
    TSi.traffic_selectors[0].ending_address[0] = 127;
    TSi.traffic_selectors[0].ending_address[1] = 0;
    TSi.traffic_selectors[0].ending_address[2] = 0;
    TSi.traffic_selectors[0].ending_address[3] = 2;
    TSi.header.next_payload = PL_TSr;
    TSi.header.critical = 0;
    TSi.header.payload_length = 8;
    for (int i = 0; i < TSi.number_of_TSs; i++)
        TSi.header.payload_length += TSi.traffic_selectors[i].selector_length;

    TSr.number_of_TSs = 1;
    TSr.reserved = 0;
    free (TSr.traffic_selectors);
    TSr.traffic_selectors =
        calloc (TSr.number_of_TSs, sizeof (traffic_selector));
    TSr.traffic_selectors[0].TS_type = TS_IPV4_ADDR_RAN;
    TSr.traffic_selectors[0].IP_protocol_ID = ALL_PROT;
    addr_len = get_addr_len (TSr.traffic_selectors[0].TS_type);
    TSr.traffic_selectors[0].selector_length =
        sizeof (generic_payload_header) + 4 + 2*addr_len;
    TSr.traffic_selectors[0].start_port = 0;
    TSr.traffic_selectors[0].end_port = 65535;
    free (TSr.traffic_selectors[0].starting_address);
    TSr.traffic_selectors[0].starting_address =
        calloc (1, get_addr_len (TSr.traffic_selectors[0].TS_type));
    free (TSr.traffic_selectors[0].ending_address);
    TSr.traffic_selectors[0].ending_address =
        calloc (1, get_addr_len (TSr.traffic_selectors[0].TS_type));
    TSr.traffic_selectors[0].starting_address[0] = 127;
    TSr.traffic_selectors[0].starting_address[1] = 0;
    TSr.traffic_selectors[0].starting_address[2] = 0;
    TSr.traffic_selectors[0].starting_address[3] = 1;
    TSr.traffic_selectors[0].ending_address[0] = 127;
    TSr.traffic_selectors[0].ending_address[1] = 0;
    TSr.traffic_selectors[0].ending_address[2] = 0;
    TSr.traffic_selectors[0].ending_address[3] = 2;
    TSr.header.next_payload = NO_NEXT_PL;
    TSr.header.critical = 0;
    TSr.header.payload_length = 8;
    for (int i = 0; i < TSr.number_of_TSs; i++)
        TSr.header.payload_length += TSr.traffic_selectors[i].selector_length;

    uint32_t data_len = 
        IDr.header.payload_length +
        AUTH.header.payload_length +
        SAr2.header.payload_length +
        TSi.header.payload_length +
        TSr.header.payload_length;
    uint8_t pad_len = (encr_block_len - (data_len+1 % encr_block_len)) % encr_block_len;

    SK.header.next_payload = PL_IDr;
    SK.header.critical = 0;
    SK.header.payload_length =
        sizeof (SK.header) +
        encr_block_len +
        data_len +
        pad_len+1 +
        integ_key_len;

    free (SK.iv);
    SK.iv = calloc (1, iv_len);
    for (int i = 0; i < iv_len; i++)
        SK.iv[i] = rand ();

    uint8_t *data = calloc (1, data_len + pad_len+1);
    uint32_t offset = 0;
    offset += id_pl2char   (&IDr,  data + offset);
    offset += auth_pl2char (&AUTH, data + offset);
    offset += sa_pl2char   (&SAi2, data + offset);
    offset += ts_pl2char   (&TSi,  data + offset);
    offset += ts_pl2char   (&TSr,  data + offset);
    data[data_len + pad_len] = pad_len;

    free (SK.enc_data);
    SK.enc_data = calloc (1, data_len + pad_len+1);
    encr_func (SK.enc_data,
               data,
               data_len + pad_len+1,
               SK_er,
               SK.iv);

    free (SK.icv);
    SK.icv = calloc (1, integ_key_len);

    ike_header HDR;
    memcpy (&HDR.init_SPI, SPIi, sizeof (uint64_t));
    memcpy (&HDR.resp_SPI, SPIr, sizeof (uint64_t));
    HDR.next_payload = PL_SK;
    HDR.versions = VERSIONS;
    HDR.exchange_type = IKE_AUTH;
    HDR.flags = XXI;
    HDR.message_ID = MID;
    HDR.length = 
        sizeof (ike_header) +
        SK.header.payload_length;

    // free (buff);
    buff = calloc (1, HDR.length);
    offset = 0;
    offset += ike_hdr2char (&HDR, buff + offset);
    offset += enc_pl2char  (&SK,  buff + offset,
                            iv_len, integ_key_len);
    offset -= integ_key_len;
    integ_func (SK_ai, integ_key_len,
                buff, offset,
                SK.icv);
    memcpy (buff + offset, SK.icv, integ_key_len);
    offset += integ_key_len;
    return offset;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movb $0x1, 0xb5bd(%rip)      # 0x1249c
movb $0x0, 0xb5b9(%rip)      # 0x1249f
movw $0x0, 0xb5ae(%rip)      # 0x1249d
movl $0x1, %edi
callq 0x3550
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
movl %eax, %esi
movl $0x1, %edi
movq %rdi, -0x50(%rbp)
callq 0x3250
movq %rax, 0xb58a(%rip)      # 0x124a0
movq 0xb583(%rip), %rax      # 0x124a0
movb $0x7f, (%rax)
movq 0xb579(%rip), %rax      # 0x124a0
movb $0x0, 0x1(%rax)
movq 0xb56e(%rip), %rax      # 0x124a0
movb $0x0, 0x2(%rax)
movq 0xb563(%rip), %rax      # 0x124a0
movb $0x2, 0x3(%rax)
movb $0x27, 0xb550(%rip)     # 0x12498
movb $0x0, 0xb54a(%rip)      # 0x12499
movl -0x4(%rbp), %eax
addl $0x8, %eax
movw %ax, 0xb53e(%rip)       # 0x1249a
movb $0x3, 0xb549(%rip)      # 0x124ac
movb $0x0, 0xb545(%rip)      # 0x124af
movw $0x0, 0xb53a(%rip)      # 0x124ad
movq 0xb536(%rip), %rdi      # 0x124b0
callq 0x3060
movq -0x50(%rbp), %rdi
movzwl 0xb676(%rip), %eax      # 0x12600
movl %eax, %esi
callq 0x3250
movq %rax, 0xb518(%rip)      # 0x124b0
movq 0xb689(%rip), %rdi      # 0x12628
movzwl 0xb65a(%rip), %esi      # 0x12600
movq 0xb64b(%rip), %rdx      # 0x125f8
movl 0xb63d(%rip), %ecx      # 0x125f0
movq 0xb4f6(%rip), %r8       # 0x124b0
callq 0x3040
movb $0x21, 0xb4e2(%rip)     # 0x124a8
movb $0x0, 0xb4dc(%rip)      # 0x124a9
movzwl 0xb62c(%rip), %eax      # 0x12600
addl $0x8, %eax
movw %ax, 0xb4cc(%rip)       # 0x124aa
movl 0xb470(%rip), %eax      # 0x12454
movl %eax, 0xb476(%rip)      # 0x12460
movq 0xb45b(%rip), %rax      # 0x1244c
movq %rax, 0xb460(%rip)      # 0x12458
movb $0x2c, 0xb459(%rip)     # 0x12458
movb $0x1, 0xb4ce(%rip)      # 0x124d4
movb $0x0, 0xb4ca(%rip)      # 0x124d7
movw $0x0, 0xb4bf(%rip)      # 0x124d5
movq 0xb4bb(%rip), %rdi      # 0x124d8
callq 0x3060
movzbl 0xb4ab(%rip), %eax      # 0x124d4
movl %eax, %edi
movl $0x18, %esi
callq 0x3250
movq %rax, 0xb49c(%rip)      # 0x124d8
movq 0xb495(%rip), %rax      # 0x124d8
movb $0x7, (%rax)
movq 0xb48b(%rip), %rax      # 0x124d8
movb $0x0, 0x1(%rax)
movq 0xb480(%rip), %rax      # 0x124d8
movzbl (%rax), %edi
callq 0x3470
movb %al, -0x5(%rbp)
movzbl -0x5(%rbp), %eax
shll %eax
cltq
addq $0x8, %rax
movw %ax, %cx
movq 0xb45f(%rip), %rax      # 0x124d8
movw %cx, 0x2(%rax)
movq 0xb454(%rip), %rax      # 0x124d8
movw $0x0, 0x4(%rax)
movq 0xb447(%rip), %rax      # 0x124d8
movw $0xffff, 0x6(%rax)      # imm = 0xFFFF
movq 0xb43a(%rip), %rax      # 0x124d8
movzbl (%rax), %edi
callq 0x3470
movslq %eax, %rsi
movl $0x1, %edi
callq 0x3250
movq %rax, %rcx
movq 0xb41b(%rip), %rax      # 0x124d8
movq %rcx, 0x8(%rax)
movq 0xb410(%rip), %rax      # 0x124d8
movzbl (%rax), %edi
callq 0x3470
movslq %eax, %rsi
movl $0x1, %edi
callq 0x3250
movq %rax, %rcx
movq 0xb3f1(%rip), %rax      # 0x124d8
movq %rcx, 0x10(%rax)
movq 0xb3e6(%rip), %rax      # 0x124d8
movq 0x8(%rax), %rax
movb $0x7f, (%rax)
movq 0xb3d8(%rip), %rax      # 0x124d8
movq 0x8(%rax), %rax
movb $0x0, 0x1(%rax)
movq 0xb3c9(%rip), %rax      # 0x124d8
movq 0x8(%rax), %rax
movb $0x0, 0x2(%rax)
movq 0xb3ba(%rip), %rax      # 0x124d8
movq 0x8(%rax), %rax
movb $0x1, 0x3(%rax)
movq 0xb3ab(%rip), %rax      # 0x124d8
movq 0x10(%rax), %rax
movb $0x7f, (%rax)
movq 0xb39d(%rip), %rax      # 0x124d8
movq 0x10(%rax), %rax
movb $0x0, 0x1(%rax)
movq 0xb38e(%rip), %rax      # 0x124d8
movq 0x10(%rax), %rax
movb $0x0, 0x2(%rax)
movq 0xb37f(%rip), %rax      # 0x124d8
movq 0x10(%rax), %rax
movb $0x2, 0x3(%rax)
movb $0x2d, 0xb368(%rip)     # 0x124d0
movb $0x0, 0xb362(%rip)      # 0x124d1
movw $0x8, 0xb35a(%rip)      # 0x124d2
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
movzbl 0xb34b(%rip), %ecx      # 0x124d4
cmpl %ecx, %eax
jge 0x71be
movq 0xb344(%rip), %rax      # 0x124d8
movslq -0xc(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movzwl 0x2(%rax), %ecx
movzwl 0xb328(%rip), %eax      # 0x124d2
addl %ecx, %eax
movw %ax, 0xb31f(%rip)       # 0x124d2
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x717f
movb $0x1, 0xb31f(%rip)      # 0x124e4
movb $0x0, 0xb31b(%rip)      # 0x124e7
movw $0x0, 0xb310(%rip)      # 0x124e5
movq 0xb30c(%rip), %rdi      # 0x124e8
callq 0x3060
movzbl 0xb2fc(%rip), %eax      # 0x124e4
movl %eax, %edi
movl $0x18, %esi
callq 0x3250
movq %rax, 0xb2ed(%rip)      # 0x124e8
movq 0xb2e6(%rip), %rax      # 0x124e8
movb $0x7, (%rax)
movq 0xb2dc(%rip), %rax      # 0x124e8
movb $0x0, 0x1(%rax)
movq 0xb2d1(%rip), %rax      # 0x124e8
movzbl (%rax), %edi
callq 0x3470
movb %al, -0x5(%rbp)
movzbl -0x5(%rbp), %eax
shll %eax
cltq
addq $0x8, %rax
movw %ax, %cx
movq 0xb2b0(%rip), %rax      # 0x124e8
movw %cx, 0x2(%rax)
movq 0xb2a5(%rip), %rax      # 0x124e8
movw $0x0, 0x4(%rax)
movq 0xb298(%rip), %rax      # 0x124e8
movw $0xffff, 0x6(%rax)      # imm = 0xFFFF
movq 0xb28b(%rip), %rax      # 0x124e8
movq 0x8(%rax), %rdi
callq 0x3060
movq 0xb27b(%rip), %rax      # 0x124e8
movzbl (%rax), %edi
callq 0x3470
movslq %eax, %rsi
movl $0x1, %edi
callq 0x3250
movq %rax, %rcx
movq 0xb25c(%rip), %rax      # 0x124e8
movq %rcx, 0x8(%rax)
movq 0xb251(%rip), %rax      # 0x124e8
movq 0x10(%rax), %rdi
callq 0x3060
movq 0xb241(%rip), %rax      # 0x124e8
movzbl (%rax), %edi
callq 0x3470
movslq %eax, %rsi
movl $0x1, %edi
callq 0x3250
movq %rax, %rcx
movq 0xb222(%rip), %rax      # 0x124e8
movq %rcx, 0x10(%rax)
movq 0xb217(%rip), %rax      # 0x124e8
movq 0x8(%rax), %rax
movb $0x7f, (%rax)
movq 0xb209(%rip), %rax      # 0x124e8
movq 0x8(%rax), %rax
movb $0x0, 0x1(%rax)
movq 0xb1fa(%rip), %rax      # 0x124e8
movq 0x8(%rax), %rax
movb $0x0, 0x2(%rax)
movq 0xb1eb(%rip), %rax      # 0x124e8
movq 0x8(%rax), %rax
movb $0x1, 0x3(%rax)
movq 0xb1dc(%rip), %rax      # 0x124e8
movq 0x10(%rax), %rax
movb $0x7f, (%rax)
movq 0xb1ce(%rip), %rax      # 0x124e8
movq 0x10(%rax), %rax
movb $0x0, 0x1(%rax)
movq 0xb1bf(%rip), %rax      # 0x124e8
movq 0x10(%rax), %rax
movb $0x0, 0x2(%rax)
movq 0xb1b0(%rip), %rax      # 0x124e8
movq 0x10(%rax), %rax
movb $0x2, 0x3(%rax)
movb $0x0, 0xb199(%rip)      # 0x124e0
movb $0x0, 0xb193(%rip)      # 0x124e1
movw $0x8, 0xb18b(%rip)      # 0x124e2
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
movzbl 0xb17c(%rip), %ecx      # 0x124e4
cmpl %ecx, %eax
jge 0x739d
movq 0xb175(%rip), %rax      # 0x124e8
movslq -0x10(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movzwl 0x2(%rax), %ecx
movzwl 0xb159(%rip), %eax      # 0x124e2
addl %ecx, %eax
movw %ax, 0xb150(%rip)       # 0x124e2
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x735e
movzwl 0xb0f6(%rip), %eax      # 0x1249a
movzwl 0xb0ff(%rip), %ecx      # 0x124aa
addl %ecx, %eax
movzwl 0xb0a6(%rip), %ecx      # 0x1245a
addl %ecx, %eax
movzwl 0xb115(%rip), %ecx      # 0x124d2
addl %ecx, %eax
movzwl 0xb11c(%rip), %ecx      # 0x124e2
addl %ecx, %eax
movl %eax, -0x14(%rbp)
movzwl 0xb23e(%rip), %eax      # 0x12610
movl %eax, -0x54(%rbp)
movl -0x14(%rbp), %ecx
movzwl 0xb231(%rip), %esi      # 0x12610
movl $0x1, %eax
cltd
idivl %esi
movl -0x54(%rbp), %eax
addl %edx, %ecx
subl %ecx, %eax
movzwl 0xb21b(%rip), %ecx      # 0x12610
xorl %edx, %edx
divl %ecx
movb %dl, %al
movb %al, -0x15(%rbp)
movb $0x24, 0xb0eb(%rip)     # 0x124f0
movb $0x0, 0xb0e5(%rip)      # 0x124f1
movzwl 0xb1fd(%rip), %eax      # 0x12610
addq $0x4, %rax
movl -0x14(%rbp), %ecx
addq %rcx, %rax
movzbl -0x15(%rbp), %ecx
addq %rcx, %rax
addq $0x1, %rax
movzwl 0xb1d1(%rip), %ecx      # 0x12600
addq %rcx, %rax
movw %ax, 0xb0b9(%rip)       # 0x124f2
movq 0xb0b4(%rip), %rdi      # 0x124f4
callq 0x3060
movzwl 0xb1c6(%rip), %eax      # 0x12612
movl %eax, %esi
movl $0x1, %edi
callq 0x3250
movq %rax, 0xb095(%rip)      # 0x124f4
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movzwl 0xb1a2(%rip), %ecx      # 0x12612
cmpl %ecx, %eax
jge 0x7494
callq 0x3600
movb %al, %dl
movq 0xb072(%rip), %rax      # 0x124f4
movslq -0x1c(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x7466
movl -0x14(%rbp), %eax
movzbl -0x15(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
movl $0x1, %edi
callq 0x3250
movq %rax, -0x28(%rbp)
movl $0x0, -0x2c(%rbp)
movq -0x28(%rbp), %rsi
movl -0x2c(%rbp), %eax
addq %rax, %rsi
leaq 0xafce(%rip), %rdi      # 0x12498
callq 0x33a0
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
movq -0x28(%rbp), %rsi
movl -0x2c(%rbp), %eax
addq %rax, %rsi
leaq 0xafc2(%rip), %rdi      # 0x124a8
callq 0x32e0
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
movq -0x28(%rbp), %rsi
movl -0x2c(%rbp), %eax
addq %rax, %rsi
leaq 0xaf3e(%rip), %rdi      # 0x12440
callq 0x33f0
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
movq -0x28(%rbp), %rsi
movl -0x2c(%rbp), %eax
addq %rax, %rsi
leaq 0xafb2(%rip), %rdi      # 0x124d0
callq 0x3310
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
movq -0x28(%rbp), %rsi
movl -0x2c(%rbp), %eax
addq %rax, %rsi
leaq 0xafa6(%rip), %rdi      # 0x124e0
callq 0x3310
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
movb -0x15(%rbp), %dl
movq -0x28(%rbp), %rax
movl -0x14(%rbp), %ecx
movzbl -0x15(%rbp), %esi
addl %esi, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq 0xaf9b(%rip), %rdi      # 0x124fc
callq 0x3060
movl -0x14(%rbp), %eax
movzbl -0x15(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
movl $0x1, %edi
callq 0x3250
movq %rax, 0xaf75(%rip)      # 0x124fc
movq 0xaf6e(%rip), %rdi      # 0x124fc
movq -0x28(%rbp), %rsi
movl -0x14(%rbp), %edx
movzbl -0x15(%rbp), %eax
addl %eax, %edx
addl $0x1, %edx
movq 0xb08b(%rip), %rcx      # 0x12630
movq 0xaf48(%rip), %r8       # 0x124f4
callq 0x34e0
movq 0xaf4c(%rip), %rdi      # 0x12504
callq 0x3060
movzwl 0xb03c(%rip), %eax      # 0x12600
movl %eax, %esi
movl $0x1, %edi
callq 0x3250
movq %rax, 0xaf2d(%rip)      # 0x12504
movq 0xae42(%rip), %rax      # 0x12420
movq (%rax), %rax
movq %rax, -0x48(%rbp)
movq 0xae3c(%rip), %rax      # 0x12428
movq (%rax), %rax
movq %rax, -0x40(%rbp)
movb $0x2e, -0x38(%rbp)
movb $0x20, -0x37(%rbp)
movb $0x23, -0x36(%rbp)
movb $0x8, -0x35(%rbp)
movl 0xae27(%rip), %eax      # 0x12430
movl %eax, -0x34(%rbp)
movzwl 0xaedf(%rip), %eax      # 0x124f2
addq $0x1c, %rax
movl %eax, -0x30(%rbp)
movl -0x30(%rbp), %eax
movl %eax, %esi
movl $0x1, %edi
callq 0x3250
movq %rax, 0xaf70(%rip)      # 0x125a0
movl $0x0, -0x2c(%rbp)
movq 0xaf62(%rip), %rsi      # 0x125a0
movl -0x2c(%rbp), %eax
addq %rax, %rsi
leaq -0x48(%rbp), %rdi
callq 0x3490
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
movq 0xaf46(%rip), %rsi      # 0x125a0
movl -0x2c(%rbp), %eax
addq %rax, %rsi
movzwl 0xafab(%rip), %edx      # 0x12612
movzwl 0xaf92(%rip), %ecx      # 0x12600
leaq 0xae7b(%rip), %rdi      # 0x124f0
callq 0x30e0
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
movzwl 0xaf79(%rip), %ecx      # 0x12600
movl -0x2c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x2c(%rbp)
movq 0xaf8a(%rip), %rdi      # 0x12620
movzwl 0xaf63(%rip), %esi      # 0x12600
movq 0xaefc(%rip), %rdx      # 0x125a0
movl -0x2c(%rbp), %ecx
movq 0xae56(%rip), %r8       # 0x12504
callq 0x3040
movq 0xaee6(%rip), %rdi      # 0x125a0
movl -0x2c(%rbp), %eax
addq %rax, %rdi
movq 0xae3d(%rip), %rsi      # 0x12504
movzwl 0xaf32(%rip), %eax      # 0x12600
movl %eax, %edx
callq 0x32c0
movzwl 0xaf24(%rip), %eax      # 0x12600
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax,%rax)