// File: /workspace/github_c_makefile_star2_O1/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_token_Token_argsze2
static uint64_t mw_mirth_token_Token_argsze2 (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3, uint64_t *out_Token_5) {
	struct mirth_mirth_zaMirth* v6;
	INT v7 = mw_mirth_token_Token_numzeargs(in_zaMirth_1, in_Token_2, &v6);
	INT v8 = WRAP_I63(2LL);
	INT v9 = v8;
	INT v10 = v7;
	bool v11 = int_eq(v10, v9);
	uint64_t branch_Token_12;
	struct mirth_mirth_zaMirth* branch_zaMirth_13;
	uint64_t branch_Token_14;
	if (v11) {
		struct mirth_mirth_zaMirth* v15;
		uint64_t v16 = mw_mirth_token_Token_argszestart(v6, in_Token_2, &v15);
		struct mirth_mirth_zaMirth* v17;
		uint64_t v18 = mw_mirth_token_Token_succ(v15, v16, &v17);
		struct mirth_mirth_zaMirth* v19;
		uint64_t v20 = mw_mirth_token_Token_nextzeargzeend(v17, v18, &v19);
		struct mirth_mirth_zaMirth* v21;
		uint64_t v22 = mw_mirth_token_Token_succ(v19, v20, &v21);
		branch_Token_14 = v22;
		branch_zaMirth_13 = v21;
		branch_Token_12 = v18;
	} else {
		struct mirth_mirth_zaMirth* v23;
		INT v24 = mw_mirth_token_Token_numzeargs(v6, in_Token_2, &v23);
		INT v25 = WRAP_I63(2LL);
		INT v26 = v25;
		INT v27 = v24;
		bool v28 = int_lt(v27, v26);
		uint64_t branch_Token_29;
		struct mirth_mirth_zaMirth* branch_zaMirth_30;
		uint64_t branch_Token_31;
		if (v28) {
			STR* v32;
			STRLIT(v32, "expected 2 args, got too few", 28);
			mw_mirth_mirth_zaMirth_emitzefatalzeerrorzx(v23, in_Token_2, v32);
		} else {
			STR* v36;
			STRLIT(v36, "expected 2 args, got too many", 29);
			mw_mirth_mirth_zaMirth_emitzefatalzeerrorzx(v23, in_Token_2, v36);
		}
	}
	*out_Token_5 = branch_Token_14;
	*out_zaMirth_3 = branch_zaMirth_13;
	return branch_Token_12;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rcx, %r15
movq %rdx, %r14
movq %rsi, %rbx
leaq -0x38(%rbp), %rdx
callq 0x2801e
movl $0x5, %esi
movq %rax, %rdi
callq 0xec04
testl %eax, %eax
jne 0x32652
movq -0x38(%rbp), %rdi
leaq -0x30(%rbp), %r12
movq %rbx, %rsi
movq %r12, %rdx
callq 0x280ef
movq (%r12), %rdi
xorl %r13d, %r13d
cmpq %rax, 0x10e6de8(%rip)   # 0x11193f8
leaq 0x1(%rax), %rbx
cmovbeq %r13, %rbx
leaq -0x40(%rbp), %r12
movq %rbx, %rsi
movq %r12, %rdx
callq 0x282ee
cmpq %rax, 0x10e6dca(%rip)   # 0x11193f8
leaq 0x1(%rax), %rax
cmovbeq %r13, %rax
movq (%r12), %rcx
movq %rax, (%r15)
movq %rcx, (%r14)
movq %rbx, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movabsq $0xfffffffffffc, %r14   # imm = 0xFFFFFFFFFFFC
movq -0x38(%rbp), %rdi
leaq -0x30(%rbp), %rdx
movq %rbx, %rsi
callq 0x2801e
movl $0x5, %esi
movq %rax, %rdi
callq 0xec04
testl %eax, %eax
jns 0x326bf
cmpq $0x0, 0x10e6f83(%rip)   # 0x1119608
jne 0x326b6
movl $0x1c, %edi
callq 0xf9f7
movq $0x1c, 0x10(%rax)
movups 0xb628d(%rip), %xmm0    # 0xe892d
movups %xmm0, 0x18(%rax)
movups 0xb628e(%rip), %xmm0    # 0xe8939
movups %xmm0, 0x24(%rax)
movq %rax, 0x10e6f52(%rip)   # 0x1119608
movq 0x10e6f4b(%rip), %rdx   # 0x1119608
jmp 0x326ff
cmpq $0x0, 0x10e6f49(%rip)   # 0x1119610
jne 0x326f8
movl $0x1d, %edi
callq 0xf9f7
movq $0x1d, 0x10(%rax)
movups 0xb6268(%rip), %xmm0    # 0xe894a
movups %xmm0, 0x18(%rax)
movups 0xb626a(%rip), %xmm0    # 0xe8957
movups %xmm0, 0x25(%rax)
movq %rax, 0x10e6f18(%rip)   # 0x1119610
movq 0x10e6f11(%rip), %rdx   # 0x1119610
andq %rdx, %r14
sete %al
testb $0x3, %dl
setne %cl
orb %al, %cl
jne 0x32712
incl (%r14)
movq -0x30(%rbp), %rdi
movq %rbx, %rsi
callq 0x2778c