// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: g_greater_2
static s7_pointer g_greater_2(s7_scheme *sc, s7_pointer args)
    {
        /* ridiculous repetition, but overheads are killing this poor thing */
        s7_pointer x, y;
        x = car(args);
        y = cadr(args);
#if (!MS_WINDOWS)
        if (type(x) == type(y))
        {
            if (type(x) == T_INTEGER) return(make_boolean(sc, integer(x) > integer(y)));
            if (type(x) == T_REAL)	return(make_boolean(sc, real(x) > real(y)));
            if (type(x) == T_RATIO)	return(make_boolean(sc, fraction(x) > fraction(y)));
        }
#endif
        switch (type(x))
        {
            case T_INTEGER:
                switch (type(y))
                {
                    case T_INTEGER: return(make_boolean(sc, integer(x) > integer(y)));
                    case T_RATIO:   return(g_greater(sc, set_plist_2(sc, x, y)));
                    case T_REAL:    if (is_NaN(real(y))) return(sc->F); return(make_boolean(sc, integer(x) > real(y)));
                    default:        return(make_boolean(sc, gt_out_y(sc, x, y)));
                }
                break;

            case T_RATIO:       return(g_greater(sc, set_plist_2(sc, x, y)));

            case T_REAL:
                                switch (type(y))
                                {
                                    case T_INTEGER: if (is_NaN(real(x))) return(sc->F); return(make_boolean(sc, real(x) > integer(y)));
                                    case T_RATIO:   if (is_NaN(real(x))) return(sc->F); return(make_boolean(sc, real(x) > fraction(y)));
                                    case T_REAL:    if (is_NaN(real(x))) return(sc->F); return(make_boolean(sc, real(x) > real(y)));
                                    default:        return(make_boolean(sc, gt_out_y(sc, x, y)));
                                }
                                break;

            default:            return(make_boolean(sc, gt_out_x(sc, x, y)));
        }
        return(sc->T);
    }

// Assembly:
subq $0xd8, %rsp
movq %rdi, 0xc8(%rsp)
movq %rsi, 0xc0(%rsp)
movq 0xc0(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0xb8(%rsp)
movq 0xc0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0xb0(%rsp)
movq 0xb8(%rsp), %rax
movzbl (%rax), %eax
movq 0xb0(%rsp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x10726b
movq 0xb8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0xb, %eax
jne 0x107147
movq 0xb8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0xb0(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jle 0x107121
movq 0xc8(%rsp), %rax
movq 0x118(%rax), %rax
movq %rax, 0x78(%rsp)
jmp 0x107135
movq 0xc8(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0x78(%rsp)
movq 0x78(%rsp), %rax
movq %rax, 0xd0(%rsp)
jmp 0x10775e
movq 0xb8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0xd, %eax
jne 0x1071af
movq 0xb8(%rsp), %rax
movsd 0x8(%rax), %xmm0
movq 0xb0(%rsp), %rax
ucomisd 0x8(%rax), %xmm0
jbe 0x107189
movq 0xc8(%rsp), %rax
movq 0x118(%rax), %rax
movq %rax, 0x70(%rsp)
jmp 0x10719d
movq 0xc8(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0x70(%rsp)
movq 0x70(%rsp), %rax
movq %rax, 0xd0(%rsp)
jmp 0x10775e
movq 0xb8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0xc, %eax
jne 0x107269
movq 0xb8(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rax), %rax
movq %rcx, 0x88(%rsp)
fildll 0x88(%rsp)
movq %rax, 0x80(%rsp)
fildll 0x80(%rsp)
fdivrp %st, %st(1)
movq 0xb0(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rax), %rax
movq %rcx, 0x98(%rsp)
fildll 0x98(%rsp)
movq %rax, 0x90(%rsp)
fildll 0x90(%rsp)
fdivrp %st, %st(1)
fxch %st(1)
fucompi %st(1), %st
fstp %st(0)
jbe 0x107243
jmp 0x10722d
movq 0xc8(%rsp), %rax
movq 0x118(%rax), %rax
movq %rax, 0x68(%rsp)
jmp 0x107257
movq 0xc8(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq %rax, 0xd0(%rsp)
jmp 0x10775e
jmp 0x10726b
movq 0xb8(%rsp), %rax
movzbl (%rax), %eax
movl %eax, 0x64(%rsp)
subl $0xb, %eax
je 0x1072a2
jmp 0x107281
movl 0x64(%rsp), %eax
subl $0xc, %eax
je 0x10745b
jmp 0x107290
movl 0x64(%rsp), %eax
subl $0xd, %eax
je 0x10749f
jmp 0x107704
movq 0xb0(%rsp), %rax
movzbl (%rax), %eax
movl %eax, 0x60(%rsp)
subl $0xb, %eax
je 0x1072d5
jmp 0x1072b8
movl 0x60(%rsp), %eax
subl $0xc, %eax
je 0x10732b
jmp 0x1072c3
movl 0x60(%rsp), %eax
subl $0xd, %eax
je 0x10736f
jmp 0x1073fc
movq 0xb8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0xb0(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jle 0x107305
movq 0xc8(%rsp), %rax
movq 0x118(%rax), %rax
movq %rax, 0x58(%rsp)
jmp 0x107319
movq 0xc8(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0x58(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0xd0(%rsp)
jmp 0x10775e
movq 0xc8(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0xc8(%rsp), %rdi
movq 0xb8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
callq 0x36f70
movq 0x50(%rsp), %rdi
movq %rax, %rsi
callq 0x84200
movq %rax, 0xd0(%rsp)
jmp 0x10775e
movq 0xb0(%rsp), %rax
movsd 0x8(%rax), %xmm0
callq 0x13860
testb $0x1, %al
jne 0x107387
jmp 0x1073a3
movq 0xc8(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0xd0(%rsp)
jmp 0x10775e
movq 0xb8(%rsp), %rax
cvtsi2sdq 0x8(%rax), %xmm0
movq 0xb0(%rsp), %rax
ucomisd 0x8(%rax), %xmm0
jbe 0x1073d6
movq 0xc8(%rsp), %rax
movq 0x118(%rax), %rax
movq %rax, 0x48(%rsp)
jmp 0x1073ea
movq 0xc8(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0x48(%rsp)
movq 0x48(%rsp), %rax
movq %rax, 0xd0(%rsp)
jmp 0x10775e
movq 0xc8(%rsp), %rdi
movq 0xb8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
callq 0x10f080
testb $0x1, %al
jne 0x10741f
jmp 0x107435
movq 0xc8(%rsp), %rax
movq 0x118(%rax), %rax
movq %rax, 0x40(%rsp)
jmp 0x107449
movq 0xc8(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0xd0(%rsp)
jmp 0x10775e
movq 0xc8(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0xc8(%rsp), %rdi
movq 0xb8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
callq 0x36f70
movq 0x38(%rsp), %rdi
movq %rax, %rsi
callq 0x84200
movq %rax, 0xd0(%rsp)
jmp 0x10775e
movq 0xb0(%rsp), %rax
movzbl (%rax), %eax
movl %eax, 0x34(%rsp)
subl $0xb, %eax
je 0x1074d6
jmp 0x1074b5
movl 0x34(%rsp), %eax
subl $0xc, %eax
je 0x107567
jmp 0x1074c4
movl 0x34(%rsp), %eax
subl $0xd, %eax
je 0x10761c
jmp 0x1076a8
movq 0xb8(%rsp), %rax
movsd 0x8(%rax), %xmm0
callq 0x13860
testb $0x1, %al
jne 0x1074ee
jmp 0x10750a
movq 0xc8(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0xd0(%rsp)
jmp 0x10775e
movq 0xb8(%rsp), %rax
movsd 0x8(%rax), %xmm0
movq 0xb0(%rsp), %rax
cvtsi2sdq 0x8(%rax), %xmm1
ucomisd %xmm1, %xmm0
jbe 0x107541
movq 0xc8(%rsp), %rax
movq 0x118(%rax), %rax
movq %rax, 0x28(%rsp)
jmp 0x107555
movq 0xc8(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0xd0(%rsp)
jmp 0x10775e
movq 0xb8(%rsp), %rax
movsd 0x8(%rax), %xmm0
callq 0x13860
testb $0x1, %al
jne 0x10757f
jmp 0x10759b
movq 0xc8(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0xd0(%rsp)
jmp 0x10775e
movq 0xb8(%rsp), %rax
fldl 0x8(%rax)
movq 0xb0(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rax), %rax
movq %rcx, 0xa8(%rsp)
fildll 0xa8(%rsp)
movq %rax, 0xa0(%rsp)
fildll 0xa0(%rsp)
fdivrp %st, %st(1)
fxch %st(1)
fucompi %st(1), %st
fstp %st(0)
jbe 0x1075f6
jmp 0x1075e0
movq 0xc8(%rsp), %rax
movq 0x118(%rax), %rax
movq %rax, 0x20(%rsp)
jmp 0x10760a
movq 0xc8(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0xd0(%rsp)
jmp 0x10775e
movq 0xb8(%rsp), %rax
movsd 0x8(%rax), %xmm0
callq 0x13860
testb $0x1, %al
jne 0x107634
jmp 0x107650
movq 0xc8(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0xd0(%rsp)
jmp 0x10775e
movq 0xb8(%rsp), %rax
movsd 0x8(%rax), %xmm0
movq 0xb0(%rsp), %rax
ucomisd 0x8(%rax), %xmm0
jbe 0x107682
movq 0xc8(%rsp), %rax
movq 0x118(%rax), %rax
movq %rax, 0x18(%rsp)
jmp 0x107696
movq 0xc8(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0xd0(%rsp)
jmp 0x10775e
movq 0xc8(%rsp), %rdi
movq 0xb8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
callq 0x10f080
testb $0x1, %al
jne 0x1076cb
jmp 0x1076e1
movq 0xc8(%rsp), %rax
movq 0x118(%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0x1076f5
movq 0xc8(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0xd0(%rsp)
jmp 0x10775e
movq 0xc8(%rsp), %rdi
movq 0xb8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
callq 0x10f360
testb $0x1, %al
jne 0x107727
jmp 0x10773d
movq 0xc8(%rsp), %rax
movq 0x118(%rax), %rax
movq %rax, 0x8(%rsp)
jmp 0x107751
movq 0xc8(%rsp), %rax
movq 0x120(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0xd0(%rsp)
movq 0xd0(%rsp), %rax
addq $0xd8, %rsp
retq
nop