// File: /workspace/github_c_makefile_star2_O3/baskerville[P]bspwm/src/rule.c
// Function: parse_key_value
void parse_key_value(char *key, char *value, rule_consequence_t *csq)
{
	bool v;
	if (streq("monitor", key)) {
		snprintf(csq->monitor_desc, sizeof(csq->monitor_desc), "%s", value);
	} else if (streq("desktop", key)) {
		snprintf(csq->desktop_desc, sizeof(csq->desktop_desc), "%s", value);
	} else if (streq("node", key)) {
		snprintf(csq->node_desc, sizeof(csq->node_desc), "%s", value);
	} else if (streq("split_dir", key)) {
		direction_t dir;
		if (parse_direction(value, &dir)) {
			SET_CSQ_SPLIT_DIR(dir);
		}
	} else if (streq("state", key)) {
		client_state_t cst;
		if (parse_client_state(value, &cst)) {
			SET_CSQ_STATE(cst);
		}
	} else if (streq("layer", key)) {
		stack_layer_t lyr;
		if (parse_stack_layer(value, &lyr)) {
			SET_CSQ_LAYER(lyr);
		}
	} else if (streq("split_ratio", key)) {
		double rat;
		if (sscanf(value, "%lf", &rat) == 1 && rat > 0 && rat < 1) {
			csq->split_ratio = rat;
		}
	} else if (streq("rectangle", key)) {
		if (csq->rect == NULL) {
			csq->rect = calloc(1, sizeof(xcb_rectangle_t));
		}
		if (!parse_rectangle(value, csq->rect)) {
			free(csq->rect);
			csq->rect = NULL;
		}
	} else if (streq("honor_size_hints", key)) {
		if (!parse_honor_size_hints_mode(value, &csq->honor_size_hints)) {
			csq->honor_size_hints = HONOR_SIZE_HINTS_DEFAULT;
		}
	} else if (parse_bool(value, &v)) {
		if (streq("hidden", key)) {
			csq->hidden = v;
		}
#define SETCSQ(name) \
		else if (streq(#name, key)) { \
			csq->name = v; \
		}
		SETCSQ(sticky)
		SETCSQ(private)
		SETCSQ(locked)
		SETCSQ(marked)
		SETCSQ(center)
		SETCSQ(follow)
		SETCSQ(manage)
		SETCSQ(focus)
		SETCSQ(border)
#undef SETCSQ
	}
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
leaq 0x2f1d(%rip), %rdi      # 0x201d6
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d48b
leaq 0x2f19(%rip), %rdi      # 0x201e9
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d494
leaq 0x2f15(%rip), %rdi      # 0x201fc
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d49d
leaq 0x4279(%rip), %rdi      # 0x21577
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d4c6
leaq 0x2a71(%rip), %rdi      # 0x1fd86
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d503
leaq 0x2a30(%rip), %rdi      # 0x1fd5c
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d538
leaq 0x337e(%rip), %rdi      # 0x206c1
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d57b
leaq 0x2dcf(%rip), %rdi      # 0x20129
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d5be
leaq 0x3283(%rip), %rdi      # 0x205f4
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d60b
leaq 0x8(%rsp), %rsi
movq %r15, %rdi
callq 0x16884
testb %al, %al
je 0x1d571
leaq 0x391f(%rip), %rdi      # 0x20cbc
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d630
leaq 0x3910(%rip), %rdi      # 0x20cc4
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d63f
leaq 0x3901(%rip), %rdi      # 0x20ccc
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d64e
leaq 0x38f3(%rip), %rdi      # 0x20cd5
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d65d
leaq 0x38e4(%rip), %rdi      # 0x20cdd
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d66c
leaq 0x4171(%rip), %rdi      # 0x21581
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d67b
leaq 0x28ee(%rip), %rdi      # 0x1fd15
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d68a
leaq 0x414a(%rip), %rdi      # 0x21588
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d699
leaq 0x2870(%rip), %rdi      # 0x1fcc5
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
je 0x1d6a8
leaq 0x4123(%rip), %rdi      # 0x2158f
movq %r14, %rsi
callq 0x4820
testl %eax, %eax
jne 0x1d571
movb 0x8(%rsp), %al
movb %al, 0x62d(%rbx)
jmp 0x1d571
addq $0x300, %rbx            # imm = 0x300
jmp 0x1d4a4
addq $0x400, %rbx            # imm = 0x400
jmp 0x1d4a4
addq $0x500, %rbx            # imm = 0x500
leaq 0x1b9c(%rip), %rdx      # 0x1f047
movl $0x100, %esi            # imm = 0x100
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x4110
leaq 0x8(%rsp), %rsi
movq %r15, %rdi
callq 0x16ab6
testb %al, %al
je 0x1d571
movq 0x600(%rbx), %rax
testq %rax, %rax
jne 0x1d56b
movl $0x1, %edi
movl $0x4, %esi
callq 0x48b0
movq %rax, 0x600(%rbx)
jmp 0x1d56b
leaq 0x8(%rsp), %rsi
movq %r15, %rdi
callq 0x169d6
testb %al, %al
je 0x1d571
movq 0x618(%rbx), %rax
testq %rax, %rax
jne 0x1d56b
movl $0x1, %edi
movl $0x4, %esi
callq 0x48b0
movq %rax, 0x618(%rbx)
jmp 0x1d56b
leaq 0x8(%rsp), %rsi
movq %r15, %rdi
callq 0x16a53
testb %al, %al
je 0x1d571
movq 0x610(%rbx), %rax
testq %rax, %rax
jne 0x1d56b
movl $0x1, %edi
movl $0x4, %esi
callq 0x48b0
movq %rax, 0x610(%rbx)
movl 0x8(%rsp), %ecx
movl %ecx, (%rax)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
retq
leaq 0x289f(%rip), %rsi      # 0x1fe21
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
xorl %eax, %eax
callq 0x41c0
cmpl $0x1, %eax
jne 0x1d571
movsd 0x8(%rsp), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x1d571
movsd 0x205a(%rip), %xmm1     # 0x1f608
ucomisd %xmm0, %xmm1
jbe 0x1d571
movsd %xmm0, 0x608(%rbx)
jmp 0x1d571
movq 0x630(%rbx), %rsi
testq %rsi, %rsi
jne 0x1d5e3
movl $0x1, %edi
movl $0x8, %esi
callq 0x48b0
movq %rax, %rsi
movq %rax, 0x630(%rbx)
movq %r15, %rdi
callq 0x172df
testb %al, %al
jne 0x1d571
movq 0x630(%rbx), %rdi
callq 0x4460
movq $0x0, 0x630(%rbx)
jmp 0x1d571
addq $0x620, %rbx            # imm = 0x620
movq %r15, %rdi
movq %rbx, %rsi
callq 0x16fee
testb %al, %al
jne 0x1d571
movl $0x4, (%rbx)
jmp 0x1d571
movb 0x8(%rsp), %al
movb %al, 0x624(%rbx)
jmp 0x1d571
movb 0x8(%rsp), %al
movb %al, 0x625(%rbx)
jmp 0x1d571
movb 0x8(%rsp), %al
movb %al, 0x626(%rbx)
jmp 0x1d571
movb 0x8(%rsp), %al
movb %al, 0x627(%rbx)
jmp 0x1d571
movb 0x8(%rsp), %al
movb %al, 0x628(%rbx)
jmp 0x1d571
movb 0x8(%rsp), %al
movb %al, 0x629(%rbx)
jmp 0x1d571
movb 0x8(%rsp), %al
movb %al, 0x62a(%rbx)
jmp 0x1d571
movb 0x8(%rsp), %al
movb %al, 0x62b(%rbx)
jmp 0x1d571
movb 0x8(%rsp), %al
movb %al, 0x62c(%rbx)
jmp 0x1d571