// File: /workspace/github_c_makefile_star2_O3/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 0x27a19
movl $0x5, %esi
movq %rax, %rdi
callq 0xe83a
testl %eax, %eax
jne 0x31677
movq -0x38(%rbp), %rdi
leaq -0x30(%rbp), %r12
movq %rbx, %rsi
movq %r12, %rdx
callq 0x27aea
movq (%r12), %rdi
xorl %r13d, %r13d
cmpq %rax, 0x10e3dc3(%rip)   # 0x11153f8
leaq 0x1(%rax), %rbx
cmovbeq %r13, %rbx
leaq -0x40(%rbp), %r12
movq %rbx, %rsi
movq %r12, %rdx
callq 0x27ce4
cmpq %rax, 0x10e3da5(%rip)   # 0x11153f8
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 0x27a19
movl $0x5, %esi
movq %rax, %rdi
callq 0xe83a
testl %eax, %eax
jns 0x316e2
movq 0x10e3f5f(%rip), %rdx   # 0x1115608
testq %rdx, %rdx
jne 0x31720
movl $0x1c, %edi
callq 0xf5e4
movq %rax, %rdx
movq $0x1c, 0x10(%rax)
movups 0xb3164(%rip), %xmm0    # 0xe482e
movups %xmm0, 0x18(%rax)
movups 0xb3165(%rip), %xmm0    # 0xe483a
movups %xmm0, 0x24(%rax)
movq %rax, 0x10e3f28(%rip)   # 0x1115608
jmp 0x31720
movq 0x10e3f27(%rip), %rdx   # 0x1115610
testq %rdx, %rdx
jne 0x31720
movl $0x1d, %edi
callq 0xf5e4
movq %rax, %rdx
movq $0x1d, 0x10(%rax)
movups 0xb3141(%rip), %xmm0    # 0xe484b
movups %xmm0, 0x18(%rax)
movups 0xb3143(%rip), %xmm0    # 0xe4858
movups %xmm0, 0x25(%rax)
movq %rax, 0x10e3ef0(%rip)   # 0x1115610
andq %rdx, %r14
sete %al
testb $0x3, %dl
setne %cl
orb %al, %cl
jne 0x31733
incl (%r14)
movq -0x30(%rbp), %rdi
movq %rbx, %rsi
callq 0x27183