// File: /workspace/github_c_makefile_star2_O3/mbitsnbites[P]SoftFP/./softfptest_template.h
// Function: test_cvt_int_sf64
void test_cvt_int_sf(F_UINT a, RoundingModeEnum rm, int it)
{
    int32_t i32, i32_ref;
    int64_t i64, i64_ref;
    float_status st;
    uint32_t fflags;
    F_UINT a_ref;

    /* to int32 */
    fflags = 0;
    i32 = glue(glue(cvt_sf, F_SIZE), _i32)(a, rm, &fflags);

    softfloat_init_ctx(&st, rm);
    i32_ref = glue(glue(float, F_SIZE), _to_int32)(sf_to_softfloat(a), &st);
    if (i32 != i32_ref || softfloat_to_fflags(&st) != fflags) {
        printf("ERROR op=cvt_sf_i32 size=%d rm=%s it=%d:\n",
               F_SIZE, rm_to_str[rm], it);
        printf("a  = "); print_sf(a); printf("\n");
        printf("ref= %d", i32_ref);
        printf(" fflags=0x%02x\n", softfloat_to_fflags(&st));
        printf("r  = %d", i32); 
        printf(" fflags=0x%02x\n", fflags);
        exit(1);
    }

#if F_SIZE <= 64
    /* XXX: softfloat_to_uint32() not available */
    /* to uint32 */
    fflags = 0;
    i32 = glue(glue(cvt_sf, F_SIZE), _u32)(a, rm, &fflags);

    softfloat_init_ctx(&st, rm);
    i32_ref = glue(glue(float, F_SIZE), _to_uint32)(sf_to_softfloat(a), &st);
    if (i32 != i32_ref || softfloat_to_fflags(&st) != fflags) {
        printf("ERROR op=cvt_sf_u32 size=%d rm=%s it=%d:\n",
               F_SIZE, rm_to_str[rm], it);
        printf("a  = "); print_sf(a); printf("\n");
        printf("ref= %u", i32_ref);
        printf(" fflags=0x%02x\n", softfloat_to_fflags(&st));
        printf("r  = %u", i32); 
        printf(" fflags=0x%02x\n", fflags);
        exit(1);
    }
#endif

    /* to int64 */
    fflags = 0;
    i64 = glue(glue(cvt_sf, F_SIZE), _i64)(a, rm, &fflags);

    softfloat_init_ctx(&st, rm);
    i64_ref = glue(glue(float, F_SIZE), _to_int64)(sf_to_softfloat(a), &st);
    if (i64 != i64_ref || softfloat_to_fflags(&st) != fflags) {
        printf("ERROR op=cvt_sf_i64 size=%d rm=%s it=%d:\n",
               F_SIZE, rm_to_str[rm], it);
        printf("a  = "); print_sf(a); printf("\n");
        printf("ref= %" PRId64 , i64_ref);
        printf(" fflags=0x%02x\n", softfloat_to_fflags(&st));
        printf("r  = %" PRId64, i64); 
        printf(" fflags=0x%02x\n", fflags);
        exit(1);
    }

#if F_SIZE <= 64
    /* XXX: softfloat_to_uint64() not available */
    /* to uint64 */
    fflags = 0;
    i64 = glue(glue(cvt_sf, F_SIZE), _u64)(a, rm, &fflags);

    softfloat_init_ctx(&st, rm);
    i64_ref = glue(glue(float, F_SIZE), _to_uint64)(sf_to_softfloat(a), &st);
    if (i64 != i64_ref || softfloat_to_fflags(&st) != fflags) {
        printf("ERROR op=cvt_sf_u64 size=%d rm=%s it=%d:\n",
               F_SIZE, rm_to_str[rm], it);
        printf("a  = "); print_sf(a); printf("\n");
        printf("ref= %" PRIu64 , i64_ref);
        printf(" fflags=0x%02x\n", softfloat_to_fflags(&st));
        printf("r  = %" PRIu64, i64); 
        printf(" fflags=0x%02x\n", fflags);
        exit(1);
    }
#endif

    /* from int32 */
    i32 = rrandom_u32(32);

    fflags = 0;
    a = glue(cvt_i32_sf, F_SIZE)(i32, rm, &fflags);
    
    softfloat_init_ctx(&st, rm);
    a_ref = softfloat_to_sf(glue(int32_to_float, F_SIZE)(i32, &st));
    if (a != a_ref || softfloat_to_fflags(&st) != fflags) {
        printf("ERROR op=cvt_i32_sf size=%d rm=%s it=%d\n",
               F_SIZE, rm_to_str[rm], it);
        printf("a  = %d", i32); printf("\n");
        printf("ref= "); print_sf(a_ref);
        printf(" fflags=0x%02x\n", softfloat_to_fflags(&st));
        printf("r  = "); print_sf(a);
        printf(" fflags=0x%02x\n", fflags);
        exit(1);
    }

#if F_SIZE <= 64
    /* from uint32 */
    fflags = 0;
    a = glue(cvt_u32_sf, F_SIZE)(i32, rm, &fflags);
    
    softfloat_init_ctx(&st, rm);
    a_ref = softfloat_to_sf(glue(uint32_to_float, F_SIZE)(i32, &st));
    if (a != a_ref || softfloat_to_fflags(&st) != fflags) {
        printf("ERROR op=cvt_u32_sf size=%d rm=%s it=%d\n",
               F_SIZE, rm_to_str[rm], it);
        printf("a  = %ud", i32); printf("\n");
        printf("ref= "); print_sf(a_ref);
        printf(" fflags=0x%02x\n", softfloat_to_fflags(&st));
        printf("r  = "); print_sf(a);
        printf(" fflags=0x%02x\n", fflags);
        exit(1);
    }
#endif

    /* from int64 */
    i64 = rrandom_u64(64);

    fflags = 0;
    a = glue(cvt_i64_sf, F_SIZE)(i64, rm, &fflags);
    
    softfloat_init_ctx(&st, rm);
    a_ref = softfloat_to_sf(glue(int64_to_float, F_SIZE)(i64, &st));
    if (a != a_ref || softfloat_to_fflags(&st) != fflags) {
        printf("ERROR op=cvt_i64_sf size=%d rm=%s it=%d\n",
               F_SIZE, rm_to_str[rm], it);
        printf("a  = %" PRId64, i64); printf("\n");
        printf("ref= "); print_sf(a_ref);
        printf(" fflags=0x%02x\n", softfloat_to_fflags(&st));
        printf("r  = "); print_sf(a);
        printf(" fflags=0x%02x\n", fflags);
        exit(1);
    }

#if F_SIZE <= 64
    /* from uint64 */
    fflags = 0;
    a = glue(cvt_u64_sf, F_SIZE)(i64, rm, &fflags);
    
    softfloat_init_ctx(&st, rm);
    a_ref = softfloat_to_sf(glue(uint64_to_float, F_SIZE)(i64, &st));
    if (a != a_ref || softfloat_to_fflags(&st) != fflags) {
        printf("ERROR op=cvt_u64_sf size=%d rm=%s it=%d\n",
               F_SIZE, rm_to_str[rm], it);
        printf("a  = %" PRIu64, i64); printf("\n");
        printf("ref= "); print_sf(a_ref);
        printf(" fflags=0x%02x\n", softfloat_to_fflags(&st));
        printf("r  = "); print_sf(a);
        printf(" fflags=0x%02x\n", fflags);
        exit(1);
    }
#endif

#ifdef HAVE_INT128
    {
    int128_t i128, i128_ref;
    /* to/from int128 */
    /* XXX: no reference */
    fflags = 0;
    i128_ref = rrandom_u128(128) & (((uint128_t)1 << (MANT_SIZE + 1)) - 1);
    if (random() & 1)
        i128_ref = -i128_ref;
    a = glue(cvt_i128_sf, F_SIZE)(i128_ref, rm, &fflags);
    fflags = 0;
    i128 = glue(glue(cvt_sf, F_SIZE), _i128)(a, rm, &fflags);

    if (i128 != i128_ref) {
        printf("ERROR op=cvt_sf_i128 size=%d rm=%s it=%d:\n",
               F_SIZE, rm_to_str[rm], it);
        printf("a  = "); print_sf(a); printf("\n");
        printf("ref= "); print_u128(i128_ref); printf("\n");
        printf(" fflags=0x%02x\n", softfloat_to_fflags(&st));
        printf("r  = "); print_u128(i128); printf("\n");
        printf(" fflags=0x%02x\n", fflags);
        exit(1);
    }
    }
#endif
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl %edx, %r13d
movl %esi, %ebp
movq %rdi, %r14
xorl %ebx, %ebx
leaq 0xc(%rsp), %rdx
movl %ebx, (%rdx)
callq 0x72f6
movl %eax, %r15d
leaq 0x10(%rsp), %rsi
movl %ebx, (%rsi)
movw $0x0, 0x4(%rsi)
movl %ebp, %ecx
leaq 0x134b5(%rip), %rax     # 0x160d0
movq %rcx, 0x18(%rsp)
movb (%rax,%rcx,4), %bl
movb %bl, 0x1(%rsi)
movb $0x1, 0x6(%rsi)
movq %r14, %rdi
callq 0xce92
movl %eax, %r12d
cmpl %eax, %r15d
jne 0x308b
movb 0x12(%rsp), %al
movl %eax, %ecx
shlb $0x4, %cl
andb $0x10, %cl
leal (%rax,%rax), %edx
andb $0x8, %dl
orb %cl, %dl
movl %eax, %ecx
shrb %cl
andb $0x4, %cl
orb %dl, %cl
movl %eax, %edx
shrb $0x3, %dl
andb $0x2, %dl
orb %cl, %dl
shrb $0x5, %al
andb $0x1, %al
orb %dl, %al
movzbl %al, %eax
cmpl %eax, 0xc(%rsp)
jne 0x308b
xorl %r12d, %r12d
leaq 0xc(%rsp), %rdx
movl %r12d, (%rdx)
movq %r14, %rdi
movl %ebp, %esi
callq 0x7411
movl %eax, %r15d
leaq 0x10(%rsp), %rsi
movl %r12d, (%rsi)
movw $0x0, 0x4(%rsi)
movb %bl, 0x1(%rsi)
movb $0x1, 0x6(%rsi)
movq %r14, %rdi
callq 0x14295
movl %eax, %r12d
cmpl %eax, %r15d
jne 0x3108
movb 0x12(%rsp), %al
movl %eax, %ecx
shlb $0x4, %cl
andb $0x10, %cl
leal (%rax,%rax), %edx
andb $0x8, %dl
orb %cl, %dl
movl %eax, %ecx
shrb %cl
andb $0x4, %cl
orb %dl, %cl
movl %eax, %edx
shrb $0x3, %dl
andb $0x2, %dl
orb %cl, %dl
shrb $0x5, %al
andb $0x1, %al
orb %dl, %al
movzbl %al, %eax
cmpl %eax, 0xc(%rsp)
jne 0x3108
xorl %r12d, %r12d
leaq 0xc(%rsp), %rdx
movl %r12d, (%rdx)
movq %r14, %rdi
movl %ebp, %esi
callq 0x7447
movq %rax, %r15
leaq 0x10(%rsp), %rsi
movl %r12d, (%rsi)
movw $0x0, 0x4(%rsi)
movb %bl, 0x1(%rsi)
movb $0x1, 0x6(%rsi)
movq %r14, %rdi
callq 0xd0cc
movq %rax, %r12
cmpq %rax, %r15
jne 0x3192
movb 0x12(%rsp), %al
movl %eax, %ecx
shlb $0x4, %cl
andb $0x10, %cl
leal (%rax,%rax), %edx
andb $0x8, %dl
orb %cl, %dl
movl %eax, %ecx
shrb %cl
andb $0x4, %cl
orb %dl, %cl
movl %eax, %edx
shrb $0x3, %dl
andb $0x2, %dl
orb %cl, %dl
shrb $0x5, %al
andb $0x1, %al
orb %dl, %al
movzbl %al, %eax
cmpl %eax, 0xc(%rsp)
jne 0x3192
xorl %r12d, %r12d
leaq 0xc(%rsp), %rdx
movl %r12d, (%rdx)
movq %r14, %rdi
movl %ebp, %esi
callq 0x7583
movq %rax, %r15
leaq 0x10(%rsp), %rsi
movl %r12d, (%rsi)
movw $0x0, 0x4(%rsi)
movb %bl, 0x1(%rsi)
movb $0x1, 0x6(%rsi)
movq %r14, %rdi
callq 0x142c1
movq %rax, %r12
cmpq %rax, %r15
jne 0x320f
movb 0x12(%rsp), %al
movl %eax, %ecx
shlb $0x4, %cl
andb $0x10, %cl
leal (%rax,%rax), %edx
andb $0x8, %dl
orb %cl, %dl
movl %eax, %ecx
shrb %cl
andb $0x4, %cl
orb %dl, %cl
movl %eax, %edx
shrb $0x3, %dl
andb $0x2, %dl
orb %cl, %dl
shrb $0x5, %al
andb $0x1, %al
orb %dl, %al
movzbl %al, %eax
cmpl %eax, 0xc(%rsp)
jne 0x320f
movl $0x20, %edi
callq 0x11bc
movl %eax, %r14d
xorl %r12d, %r12d
leaq 0xc(%rsp), %rdx
movl %r12d, (%rdx)
movl %eax, %edi
movl %ebp, %esi
callq 0x741b
movq %rax, %r15
leaq 0x10(%rsp), %rsi
movl %r12d, (%rsi)
movw $0x0, 0x4(%rsi)
movb %bl, 0x1(%rsi)
movb $0x1, 0x6(%rsi)
movl %r14d, %edi
callq 0x9e05
movq %rax, %r12
cmpq %rax, %r15
jne 0x3299
movb 0x12(%rsp), %al
movl %eax, %ecx
shlb $0x4, %cl
andb $0x10, %cl
leal (%rax,%rax), %edx
andb $0x8, %dl
orb %cl, %dl
movl %eax, %ecx
shrb %cl
andb $0x4, %cl
orb %dl, %cl
movl %eax, %edx
shrb $0x3, %dl
andb $0x2, %dl
orb %cl, %dl
shrb $0x5, %al
andb $0x1, %al
orb %dl, %al
movzbl %al, %eax
cmpl %eax, 0xc(%rsp)
jne 0x3299
xorl %r12d, %r12d
leaq 0xc(%rsp), %rdx
movl %r12d, (%rdx)
movl %r14d, %edi
movl %ebp, %esi
callq 0x7434
movq %rax, %r15
leaq 0x10(%rsp), %rsi
movl %r12d, (%rsi)
movw $0x0, 0x4(%rsi)
movb %bl, 0x1(%rsi)
movb $0x1, 0x6(%rsi)
movl %r14d, %edi
callq 0x14171
movq %rax, %r12
cmpq %rax, %r15
jne 0x32c8
movb 0x12(%rsp), %al
movl %eax, %ecx
shlb $0x4, %cl
andb $0x10, %cl
leal (%rax,%rax), %edx
andb $0x8, %dl
orb %cl, %dl
movl %eax, %ecx
shrb %cl
andb $0x4, %cl
orb %dl, %cl
movl %eax, %edx
shrb $0x3, %dl
andb $0x2, %dl
orb %cl, %dl
shrb $0x5, %al
andb $0x1, %al
orb %dl, %al
movzbl %al, %eax
cmpl %eax, 0xc(%rsp)
jne 0x32c8
movl $0x40, %edi
callq 0x1eb4
movq %rax, %r14
xorl %r12d, %r12d
leaq 0xc(%rsp), %rdx
movl %r12d, (%rdx)
movq %rax, %rdi
movl %ebp, %esi
callq 0x758d
movq %rax, %r15
leaq 0x10(%rsp), %rsi
movl %r12d, (%rsi)
movw $0x0, 0x4(%rsi)
movb %bl, 0x1(%rsi)
movb $0x1, 0x6(%rsi)
movq %r14, %rdi
callq 0xa08a
movq %rax, %r12
cmpq %rax, %r15
jne 0x3301
movb 0x12(%rsp), %al
movl %eax, %ecx
shlb $0x4, %cl
andb $0x10, %cl
leal (%rax,%rax), %edx
andb $0x8, %dl
orb %cl, %dl
movl %eax, %ecx
shrb %cl
andb $0x4, %cl
orb %dl, %cl
movl %eax, %edx
shrb $0x3, %dl
andb $0x2, %dl
orb %cl, %dl
shrb $0x5, %al
andb $0x1, %al
orb %dl, %al
movzbl %al, %eax
cmpl %eax, 0xc(%rsp)
jne 0x3301
movl %r13d, 0x24(%rsp)
xorl %r12d, %r12d
leaq 0xc(%rsp), %rdx
movl %r12d, (%rdx)
movq %r14, %rdi
movl %ebp, %esi
callq 0x75c6
movq %rax, %r15
leaq 0x10(%rsp), %rsi
movl %r12d, (%rsi)
movw $0x0, 0x4(%rsi)
movb %bl, 0x1(%rsi)
movb $0x1, 0x6(%rsi)
movq %r14, %rdi
callq 0xa224
movq %rax, %r12
cmpq %rax, %r15
jne 0x3330
movb 0x12(%rsp), %al
movl %eax, %ecx
shlb $0x4, %cl
andb $0x10, %cl
leal (%rax,%rax), %edx
andb $0x8, %dl
orb %cl, %dl
movl %eax, %ecx
shrb %cl
andb $0x4, %cl
orb %dl, %cl
movl %eax, %edx
shrb $0x3, %dl
andb $0x2, %dl
orb %cl, %dl
shrb $0x5, %al
andb $0x1, %al
orb %dl, %al
movzbl %al, %eax
cmpl %eax, 0xc(%rsp)
jne 0x3330
xorl %r15d, %r15d
leaq 0xc(%rsp), %r14
movl %r15d, (%r14)
movl $0x80, %edi
callq 0x1f2d
movabsq $0x1fffffffffffff, %rbx # imm = 0x1FFFFFFFFFFFFF
andq %rax, %rbx
callq 0x1090
andl $0x1, %eax
movq %rax, %rcx
negq %rcx
movq %rbx, %r12
negq %r12
movl $0x0, %r13d
sbbq %r13, %r13
testq %rax, %rax
cmoveq %rbx, %r12
andq %rcx, %r13
movq %r12, %rdi
movq %r13, %rsi
movl %ebp, %edx
movq %r14, %rcx
callq 0x7781
movq %rax, %rbx
movl %r15d, (%r14)
movq %rax, %rdi
movl %ebp, %esi
movq %r14, %rdx
callq 0x75f3
movq %rax, %r14
xorq %r12, %rax
movq %rdx, %rcx
xorq %r13, %rcx
orq %rax, %rcx
jne 0x33d3
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x18d2e(%rip), %rax     # 0x1bdc0
movq 0x18(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x13120(%rip), %rdi     # 0x161c2
movl $0x40, %esi
movl %r13d, %ecx
xorl %eax, %eax
callq 0x1070
leaq 0x130e2(%rip), %rdi     # 0x1619a
xorl %eax, %eax
callq 0x1070
movq %r14, %rdi
callq 0x2970
movl $0xa, %edi
callq 0x1030
leaq 0x13114(%rip), %rdi     # 0x161ec
movl %r12d, %esi
xorl %eax, %eax
callq 0x1070
movzbl 0x12(%rsp), %edi
callq 0x13e1
leaq 0x130b9(%rip), %rbx     # 0x161ac
movq %rbx, %rdi
movl %eax, %esi
xorl %eax, %eax
callq 0x1070
leaq 0x130ee(%rip), %rdi     # 0x161f4
jmp 0x3183
leaq 0x18cb1(%rip), %rax     # 0x1bdc0
movq 0x18(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x130dd(%rip), %rdi     # 0x161fc
movl $0x40, %esi
movl %r13d, %ecx
xorl %eax, %eax
callq 0x1070
leaq 0x13065(%rip), %rdi     # 0x1619a
xorl %eax, %eax
callq 0x1070
movq %r14, %rdi
callq 0x2970
movl $0xa, %edi
callq 0x1030
leaq 0x130d1(%rip), %rdi     # 0x16226
movl %r12d, %esi
xorl %eax, %eax
callq 0x1070
movzbl 0x12(%rsp), %edi
callq 0x13e1
leaq 0x1303c(%rip), %rbx     # 0x161ac
movq %rbx, %rdi
movl %eax, %esi
xorl %eax, %eax
callq 0x1070
leaq 0x130ab(%rip), %rdi     # 0x1622e
movl %r15d, %esi
xorl %eax, %eax
callq 0x1070
jmp 0x33bb
leaq 0x18c27(%rip), %rax     # 0x1bdc0
movq 0x18(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x1308d(%rip), %rdi     # 0x16236
movl $0x40, %esi
movl %r13d, %ecx
xorl %eax, %eax
callq 0x1070
leaq 0x12fdb(%rip), %rdi     # 0x1619a
xorl %eax, %eax
callq 0x1070
movq %r14, %rdi
callq 0x2970
movl $0xa, %edi
callq 0x1030
leaq 0x13081(%rip), %rdi     # 0x16260
movq %r12, %rsi
xorl %eax, %eax
callq 0x1070
movzbl 0x12(%rsp), %edi
callq 0x13e1
leaq 0x12fb2(%rip), %rbx     # 0x161ac
movq %rbx, %rdi
movl %eax, %esi
xorl %eax, %eax
callq 0x1070
leaq 0x1305c(%rip), %rdi     # 0x16269
jmp 0x328a
leaq 0x18baa(%rip), %rax     # 0x1bdc0
movq 0x18(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x1304c(%rip), %rdi     # 0x16272
movl $0x40, %esi
movl %r13d, %ecx
xorl %eax, %eax
callq 0x1070
leaq 0x12f5e(%rip), %rdi     # 0x1619a
xorl %eax, %eax
callq 0x1070
movq %r14, %rdi
callq 0x2970
movl $0xa, %edi
callq 0x1030
leaq 0x13040(%rip), %rdi     # 0x1629c
movq %r12, %rsi
xorl %eax, %eax
callq 0x1070
movzbl 0x12(%rsp), %edi
callq 0x13e1
leaq 0x12f35(%rip), %rbx     # 0x161ac
movq %rbx, %rdi
movl %eax, %esi
xorl %eax, %eax
callq 0x1070
leaq 0x1301b(%rip), %rdi     # 0x162a5
movq %r15, %rsi
xorl %eax, %eax
callq 0x1070
jmp 0x33bb
leaq 0x18b20(%rip), %rax     # 0x1bdc0
movq 0x18(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x12ffe(%rip), %rdi     # 0x162ae
movl $0x40, %esi
movl %r13d, %ecx
xorl %eax, %eax
callq 0x1070
leaq 0x13011(%rip), %rdi     # 0x162d7
jmp 0x32f5
leaq 0x18af1(%rip), %rax     # 0x1bdc0
movq 0x18(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x13000(%rip), %rdi     # 0x162df
movl $0x40, %esi
movl %r13d, %ecx
xorl %eax, %eax
callq 0x1070
leaq 0x13013(%rip), %rdi     # 0x16308
movl %r14d, %esi
xorl %eax, %eax
callq 0x1070
jmp 0x3368
leaq 0x18ab8(%rip), %rax     # 0x1bdc0
movq 0x18(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x12ff9(%rip), %rdi     # 0x16311
movl $0x40, %esi
movl %r13d, %ecx
xorl %eax, %eax
callq 0x1070
leaq 0x1300c(%rip), %rdi     # 0x1633a
jmp 0x335e
leaq 0x18a89(%rip), %rax     # 0x1bdc0
movq 0x18(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x12ffc(%rip), %rdi     # 0x16343
movl $0x40, %esi
movl 0x24(%rsp), %ecx
xorl %eax, %eax
callq 0x1070
leaq 0x1300e(%rip), %rdi     # 0x1636c
movq %r14, %rsi
xorl %eax, %eax
callq 0x1070
movl $0xa, %edi
callq 0x1030
leaq 0x12e2d(%rip), %rdi     # 0x161a6
xorl %eax, %eax
callq 0x1070
movq %r12, %rdi
callq 0x2970
movzbl 0x12(%rsp), %edi
callq 0x13e1
leaq 0x12e13(%rip), %rbx     # 0x161ac
movq %rbx, %rdi
movl %eax, %esi
xorl %eax, %eax
callq 0x1070
leaq 0x12e10(%rip), %rdi     # 0x161bc
xorl %eax, %eax
callq 0x1070
movq %r15, %rdi
callq 0x2970
movl 0xc(%rsp), %esi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1070
movl $0x1, %edi
callq 0x10b0
movq %rdx, %r15
leaq 0x189e3(%rip), %rax     # 0x1bdc0
movq 0x18(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x12f88(%rip), %rdi     # 0x16375
movl $0x40, %esi
movl 0x24(%rsp), %ecx
xorl %eax, %eax
callq 0x1070
leaq 0x12d96(%rip), %rdi     # 0x1619a
xorl %eax, %eax
callq 0x1070
movq %rbx, %rdi
callq 0x2970
movl $0xa, %edi
callq 0x1030
leaq 0x12d82(%rip), %rdi     # 0x161a6
xorl %eax, %eax
callq 0x1070
movq %r12, %rdi
movq %r13, %rsi
callq 0x1fee
movl $0xa, %edi
callq 0x1030
movzbl 0x12(%rsp), %edi
callq 0x13e1
leaq 0x12d5b(%rip), %rbx     # 0x161ac
movq %rbx, %rdi
movl %eax, %esi
xorl %eax, %eax
callq 0x1070
leaq 0x12d58(%rip), %rdi     # 0x161bc
xorl %eax, %eax
callq 0x1070
movq %r14, %rdi
movq %r15, %rsi
callq 0x1fee
movl $0xa, %edi
callq 0x1030
jmp 0x33bb