// File: /workspace/github_c_makefile_star2_O3/alexj136[P]minijit/src/typecheck.c
// Function: TypeVector_shift
DEFINE_VECTORABLE(Type)

Type *Type_init(TypeForm form, Type *innerType, TypeVector *innerTypes) {
    Type *type = challoc(sizeof(type));
    type->form = form;
    type->innerType = innerType;
    type->innerTypes = innerTypes;
    return type;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x1f40, %rsp           # imm = 0x1F40
testq %rdi, %rdi
je 0x11528
movl %esi, %r14d
testl %esi, %esi
js 0x113dd
movq %rdi, %rbx
movl %r14d, %r12d
movq %rbx, %rdi
callq 0x10b44
cmpl %r12d, %eax
jle 0x11490
movq %rbx, %rdi
callq 0x10b44
decl %eax
cmpq %rax, %r12
je 0x11474
leaq 0x1(%r12), %r15
movq %rbx, %rdi
movl %r15d, %esi
callq 0x10dd7
movq 0x8(%rbx), %rcx
movq %rax, (%rcx,%r12,8)
movq %r15, %r12
testl %r14d, %r14d
jns 0x11399
leaq 0x9c20(%rip), %rdi      # 0x1b004
leaq 0xae0d(%rip), %rsi      # 0x1c1f8
leaq 0xae6f(%rip), %rcx      # 0x1c261
movl $0x9, %edx
xorl %eax, %eax
callq 0x6100
leaq 0x9c27(%rip), %rdi      # 0x1b02c
leaq 0x9cd4(%rip), %rsi      # 0x1b0e0
xorl %eax, %eax
callq 0x6100
leaq -0x1f60(%rbp), %rbx
movq %rbx, %rdi
movl $0x3e8, %esi            # imm = 0x3E8
callq 0x60e0
movl %eax, %r14d
movq %rbx, %rdi
movl %eax, %esi
callq 0x60b0
movq %rax, %rbx
leaq 0x9dd8(%rip), %rdi      # 0x1b216
callq 0x6070
testl %r14d, %r14d
jle 0x1151e
movl %r14d, %r15d
leaq 0x9bd6(%rip), %r14      # 0x1b02c
xorl %r12d, %r12d
movq (%rbx,%r12,8), %rsi
movq %r14, %rdi
xorl %eax, %eax
callq 0x6100
incq %r12
cmpq %r12, %r15
jne 0x11459
jmp 0x1151e
movq 0x8(%rbx), %rax
movq $0x0, (%rax,%r12,8)
addq $0x1f40, %rsp           # imm = 0x1F40
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x9b6d(%rip), %rdi      # 0x1b004
leaq 0xad5a(%rip), %rsi      # 0x1c1f8
leaq 0xadbc(%rip), %rcx      # 0x1c261
movl $0x9, %edx
xorl %eax, %eax
callq 0x6100
leaq 0x9b74(%rip), %rdi      # 0x1b02c
leaq 0x9c31(%rip), %rsi      # 0x1b0f0
xorl %eax, %eax
callq 0x6100
leaq -0x1f60(%rbp), %rbx
movq %rbx, %rdi
movl $0x3e8, %esi            # imm = 0x3E8
callq 0x60e0
movl %eax, %r14d
movq %rbx, %rdi
movl %eax, %esi
callq 0x60b0
movq %rax, %rbx
leaq 0x9d25(%rip), %rdi      # 0x1b216
callq 0x6070
testl %r14d, %r14d
jle 0x1151e
movl %r14d, %r15d
leaq 0x9b27(%rip), %r14      # 0x1b02c
xorl %r12d, %r12d
movq (%rbx,%r12,8), %rsi
movq %r14, %rdi
xorl %eax, %eax
callq 0x6100
incq %r12
cmpq %r12, %r15
jne 0x11508
movl $0x1, %edi
callq 0x61a0
leaq 0x9ad5(%rip), %rdi      # 0x1b004
leaq 0xacc2(%rip), %rsi      # 0x1c1f8
leaq 0xad24(%rip), %rcx      # 0x1c261
movl $0x9, %edx
xorl %eax, %eax
callq 0x6100
leaq 0x9adc(%rip), %rdi      # 0x1b02c
leaq 0x9b43(%rip), %rsi      # 0x1b09a
xorl %eax, %eax
callq 0x6100
leaq -0x1f60(%rbp), %rbx
movq %rbx, %rdi
movl $0x3e8, %esi            # imm = 0x3E8
callq 0x60e0
movl %eax, %r14d
movq %rbx, %rdi
movl %eax, %esi
callq 0x60b0
movq %rax, %rbx
leaq 0x9c8d(%rip), %rdi      # 0x1b216
callq 0x6070
testl %r14d, %r14d
jle 0x1151e
movl %r14d, %r15d
leaq 0x9a8f(%rip), %r14      # 0x1b02c
xorl %r12d, %r12d
movq (%rbx,%r12,8), %rsi
movq %r14, %rdi
xorl %eax, %eax
callq 0x6100
incq %r12
cmpq %r12, %r15
jne 0x115a0
jmp 0x1151e