#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
char *_s2_f2cstr(char *, long);
int /*<<< orphan*/ free(char *);
int /*<<< orphan*/ s2qtxtxyf(float *, float *, float *, float *, float, float,
                             float, float, float, char *, float);
void s2qtxtxyf_(float *x1, float *x2, float *y1, float *y2, float *x, float *y,
                float *z, float *flipx, float *flipy, char *text, float *pad,
                long int textlen) {
  char *t1 = _s2_f2cstr(text, textlen);
  s2qtxtxyf(x1, x2, y1, y2, *x, *y, *z, *flipx, *flipy, t1, *pad);
  free(t1);
}


x86 assembly (clang, -O0):
<s2qtxtxyf_>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
mov    0x38(%rbp),%rax
mov    0x30(%rbp),%rax
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
mov    0x28(%rbp),%rdi
mov    0x38(%rbp),%rsi
call   1050 <_s2_f2cstr@plt>
mov    %rax,-0x38(%rbp)
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rdx
mov    -0x20(%rbp),%rcx
mov    -0x28(%rbp),%rax
movss  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm1
mov    0x10(%rbp),%rax
movss  (%rax),%xmm2
mov    0x18(%rbp),%rax
movss  (%rax),%xmm3
mov    0x20(%rbp),%rax
movss  (%rax),%xmm4
mov    -0x38(%rbp),%r8
mov    0x30(%rbp),%rax
movss  (%rax),%xmm5
call   1040 <s2qtxtxyf@plt>
mov    -0x38(%rbp),%rdi
call   1030 <free@plt>
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<s2qtxtxyf_>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x28,%rsp
mov    %r9,(%rsp)
mov    %r8,%rbx
mov    %rcx,0x20(%rsp)
mov    %rdx,0x18(%rsp)
mov    %rsi,0x10(%rsp)
mov    %rdi,0x8(%rsp)
mov    0x80(%rsp),%r12
mov    0x70(%rsp),%r13
mov    0x68(%rsp),%rbp
mov    0x60(%rsp),%r14
mov    0x78(%rsp),%rdi
mov    0x88(%rsp),%rsi
call   1050 <_s2_f2cstr@plt>
mov    %rax,%r15
movss  (%rbx),%xmm0
mov    (%rsp),%rax
movss  (%rax),%xmm1
movss  (%r14),%xmm2
movss  0x0(%rbp),%xmm3
movss  0x0(%r13),%xmm4
movss  (%r12),%xmm5
mov    0x8(%rsp),%rdi
mov    0x10(%rsp),%rsi
mov    0x18(%rsp),%rdx
mov    0x20(%rsp),%rcx
mov    %r15,%r8
call   1040 <s2qtxtxyf@plt>
mov    %r15,%rdi
add    $0x28,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1030 <free@plt>

LLVM IR (-O0):
define void @s2qtxtxyf_(float* %0, float* %1, float* %2, float* %3, float* %4, float* %5, float* %6, float* %7, float* %8, i8* %9, float* %10, i64 %11) {
%13 = alloca float*
%14 = alloca float*
%15 = alloca float*
%16 = alloca float*
%17 = alloca float*
%18 = alloca float*
%19 = alloca float*
%20 = alloca float*
%21 = alloca float*
%22 = alloca i8*
%23 = alloca float*
%24 = alloca i64
%25 = alloca i8*
store float* %0, float** %13
store float* %1, float** %14
store float* %2, float** %15
store float* %3, float** %16
store float* %4, float** %17
store float* %5, float** %18
store float* %6, float** %19
store float* %7, float** %20
store float* %8, float** %21
store i8* %9, i8** %22
store float* %10, float** %23
store i64 %11, i64* %24
%26 = load i8*, i8** %22
%27 = load i64, i64* %24
%28 = call i8* @_s2_f2cstr(i8* %26, i64 %27)
store i8* %28, i8** %25
%29 = load float*, float** %13
%30 = load float*, float** %14
%31 = load float*, float** %15
%32 = load float*, float** %16
%33 = load float*, float** %17
%34 = load float, float* %33
%35 = load float*, float** %18
%36 = load float, float* %35
%37 = load float*, float** %19
%38 = load float, float* %37
%39 = load float*, float** %20
%40 = load float, float* %39
%41 = load float*, float** %21
%42 = load float, float* %41
%43 = load i8*, i8** %25
%44 = load float*, float** %23
%45 = load float, float* %44
%46 = call i32 @s2qtxtxyf(float* %29, float* %30, float* %31, float* %32, float %34, float %36, float %38, float %40, float %42, i8* %43, float %45)
%47 = load i8*, i8** %25
%48 = call i32 @free(i8* %47)
ret void
}

LLVM IR (-O2):
define void @s2qtxtxyf_(float* %0, float* %1, float* %2, float* %3, float* nocapture %4, float* nocapture %5, float* nocapture %6, float* nocapture %7, float* nocapture %8, i8* %9, float* nocapture %10, i64 %11) {
%13 = tail call i8* @_s2_f2cstr(i8* %9, i64 %11)
%14 = load float, float* %4
%15 = load float, float* %5
%16 = load float, float* %6
%17 = load float, float* %7
%18 = load float, float* %8
%19 = load float, float* %10
%20 = tail call i32 @s2qtxtxyf(float* %0, float* %1, float* %2, float* %3, float %14, float %15, float %16, float %17, float %18, i8* %13, float %19)
%21 = tail call i32 @free(i8* %13)
ret void
}