// File: /workspace/github_c_makefile_star2_O0/dalnefre[P]kernel_abe/kernel.c
// Function: env_type
static
BEH_DECL(env_type)
{
	CONS* state = MINE;
	CONS* parent;
	CONS* map;
	CONS* msg = WHAT;
	CONS* cust;
	CONS* req;

	DBUG_ENTER("env_type");
	ENSURE(is_pr(state));
	parent = hd(state);
	map = tl(state);
	ENSURE(is_pr(msg));
	cust = hd(msg);
	ENSURE(actorp(cust));
	req = tl(msg);

	DBUG_PRINT("parent", ("%s", cons_to_str(parent)));
	DBUG_PRINT("map", ("%s", cons_to_str(map)));
	DBUG_PRINT("cust", ("%s", cons_to_str(cust)));
	DBUG_PRINT("req", ("%s", cons_to_str(req)));
	if (is_pr(req)
	&& (hd(req) == ATOM("type_eq"))) {
		SEND(cust, ((tl(req) == MK_REF(env_type)) ? a_true : a_false));
	} else if (is_pr(req)
	&& (hd(req) == ATOM("lookup"))) {
		CONS* key = tl(req);
		CONS* binding = map_find(map, key);

		DBUG_PRINT("key", ("%s", cons_to_str(key)));
		DBUG_PRINT("binding", ("%s", cons_to_str(binding)));
		if (nilp(binding)) {
			if (nilp(parent)) {
				THROW(pr(ATOM("Undefined"), key));
			} else {
				SEND(parent, msg);
			}
		} else {
			SEND(cust, tl(binding));
		}
	} else if (is_pr(req) && is_pr(tl(req))
	&& (hd(req) == ATOM("bind"))) {
		CONS* key = hd(tl(req));
		CONS* value = tl(tl(req));
		CONS* binding = map_find(map, key);

		DBUG_PRINT("key", ("%s", cons_to_str(key)));
		DBUG_PRINT("value", ("%s", cons_to_str(value)));
		DBUG_PRINT("binding", ("%s", cons_to_str(binding)));
		if (nilp(binding)) {
			BECOME(env_type, pr(parent, map_put(map, key, value)));
		} else {
			rplacd(binding, value);
		}
		SEND(cust, a_inert);
	} else if (req == ATOM("write")) {
		SINK* sink = current_sink;
		SEND(cust, (sink->put_cstr)(sink, "#environment"));
	} else {
		object_type(CFG);  /* DELEGATE BEHAVIOR */
	}
	DBUG_RETURN;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x25380
movq %rax, %rdi
callq 0x1a600
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x25510
movq %rax, -0x28(%rbp)
leaq 0x13cca(%rip), %rax     # 0x29b8a
movq %rax, -0x60(%rbp)
leaq 0x19455(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x58(%rbp)
movl $0x620, -0x54(%rbp)     # imm = 0x620
leaq 0x13489(%rip), %rax     # 0x2936f
movq %rax, -0x50(%rbp)
leaq 0x1924f(%rip), %rax     # 0x2f140
movq %rax, -0x48(%rbp)
leaq 0x19424(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movq %rax, -0x40(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x28490
xorl %eax, %eax
cmpq $0x0, -0x10(%rbp)
movb %al, -0x91(%rbp)
je 0x15f34
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
sete %al
movb %al, -0x91(%rbp)
movb -0x91(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x15f82
leaq 0x19342(%rip), %rax     # 0x2f290
cmpq %rax, -0x10(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x15f82
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x1, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x16011
movq -0x8(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x10448(%rip), %rsi    # 0x5b50
leaq 0x192f1(%rip), %rdx     # 0x2f290
callq 0x1b6f0
movq %rax, -0xa0(%rbp)
leaq 0x135a6(%rip), %rdi     # 0x29558
callq 0x216e0
movq %rax, -0xb0(%rbp)
leaq 0x13057(%rip), %rdi     # 0x2901c
callq 0x216e0
movq %rax, %rdi
movl $0x1887, %esi           # imm = 0x1887
callq 0x25290
movq -0xb0(%rbp), %rdi
movq %rax, %rsi
callq 0x25290
movq -0xa8(%rbp), %rdi
movq -0xa0(%rbp), %rsi
movq %rax, %rdx
callq 0x1b810
movl $0x621, -0x54(%rbp)     # imm = 0x621
leaq -0x60(%rbp), %rdi
callq 0x28660
jmp 0x16b17
movq -0x10(%rbp), %rdi
callq 0x25380
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x25510
movq %rax, -0x20(%rbp)
xorl %eax, %eax
cmpq $0x0, -0x28(%rbp)
movb %al, -0xb1(%rbp)
je 0x1604f
movq -0x28(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
sete %al
movb %al, -0xb1(%rbp)
movb -0xb1(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x1609d
leaq 0x19227(%rip), %rax     # 0x2f290
cmpq %rax, -0x28(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x1609d
movq -0x28(%rbp), %rax
andq $0x3, %rax
cmpq $0x1, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x1612c
movq -0x8(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x10563(%rip), %rsi    # 0x5b50
leaq 0x191d6(%rip), %rdx     # 0x2f290
callq 0x1b6f0
movq %rax, -0xc0(%rbp)
leaq 0x1348b(%rip), %rdi     # 0x29558
callq 0x216e0
movq %rax, -0xd0(%rbp)
leaq 0x12f3c(%rip), %rdi     # 0x2901c
callq 0x216e0
movq %rax, %rdi
movl $0x1893, %esi           # imm = 0x1893
callq 0x25290
movq -0xd0(%rbp), %rdi
movq %rax, %rsi
callq 0x25290
movq -0xc8(%rbp), %rdi
movq -0xc0(%rbp), %rsi
movq %rax, %rdx
callq 0x1b810
movl $0x624, -0x54(%rbp)     # imm = 0x624
leaq -0x60(%rbp), %rdi
callq 0x28660
jmp 0x16b17
movq -0x28(%rbp), %rdi
callq 0x25380
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
andq $0x3, %rax
cmpq $0x1, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x161e8
movq -0x8(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x1061f(%rip), %rsi    # 0x5b50
leaq 0x1911a(%rip), %rdx     # 0x2f290
callq 0x1b6f0
movq %rax, -0xd8(%rbp)
leaq 0x133cf(%rip), %rdi     # 0x29558
callq 0x216e0
movq %rax, -0xe8(%rbp)
leaq 0x12e80(%rip), %rdi     # 0x2901c
callq 0x216e0
movq %rax, %rdi
movl $0x189b, %esi           # imm = 0x189B
callq 0x25290
movq -0xe8(%rbp), %rdi
movq %rax, %rsi
callq 0x25290
movq -0xe0(%rbp), %rdi
movq -0xd8(%rbp), %rsi
movq %rax, %rdx
callq 0x1b810
movl $0x626, -0x54(%rbp)     # imm = 0x626
leaq -0x60(%rbp), %rdi
callq 0x28660
jmp 0x16b17
movq -0x28(%rbp), %rdi
callq 0x25510
movq %rax, -0x38(%rbp)
leaq 0x19724(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x1625a
leaq 0x19118(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x137da(%rip), %rcx     # 0x299f0
movq %rcx, 0x10(%rax)
leaq 0x137cf(%rip), %rdi     # 0x299f0
callq 0x278a0
cmpl $0x0, %eax
je 0x1625a
leaq 0x190ee(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x629, 0xc(%rax)       # imm = 0x629
movq -0x18(%rbp), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0x14312(%rip), %rdi     # 0x2a565
movb $0x0, %al
callq 0x28540
jmp 0x1625c
jmp 0x1625e
leaq 0x196bb(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x162c3
leaq 0x190af(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x1336c(%rip), %rcx     # 0x295eb
movq %rcx, 0x10(%rax)
leaq 0x13361(%rip), %rdi     # 0x295eb
callq 0x278a0
cmpl $0x0, %eax
je 0x162c3
leaq 0x19085(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x62a, 0xc(%rax)       # imm = 0x62A
movq -0x20(%rbp), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0x142a9(%rip), %rdi     # 0x2a565
movb $0x0, %al
callq 0x28540
jmp 0x162c5
jmp 0x162c7
leaq 0x19652(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x1632c
leaq 0x19046(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x13273(%rip), %rcx     # 0x2955b
movq %rcx, 0x10(%rax)
leaq 0x13268(%rip), %rdi     # 0x2955b
callq 0x278a0
cmpl $0x0, %eax
je 0x1632c
leaq 0x1901c(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x62b, 0xc(%rax)       # imm = 0x62B
movq -0x30(%rbp), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0x14240(%rip), %rdi     # 0x2a565
movb $0x0, %al
callq 0x28540
jmp 0x1632e
jmp 0x16330
leaq 0x195e9(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x16395
leaq 0x18fdd(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x1320f(%rip), %rcx     # 0x29560
movq %rcx, 0x10(%rax)
leaq 0x13204(%rip), %rdi     # 0x29560
callq 0x278a0
cmpl $0x0, %eax
je 0x16395
leaq 0x18fb3(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x62c, 0xc(%rax)       # imm = 0x62C
movq -0x38(%rbp), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0x141d7(%rip), %rdi     # 0x2a565
movb $0x0, %al
callq 0x28540
jmp 0x16397
xorl %eax, %eax
cmpq $0x0, -0x38(%rbp)
movb %al, -0xe9(%rbp)
je 0x163bb
movq -0x38(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
sete %al
movb %al, -0xe9(%rbp)
movb -0xe9(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x164ac
leaq 0x18eb7(%rip), %rax     # 0x2f290
cmpq %rax, -0x38(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x164ac
movq -0x38(%rbp), %rax
andq $0x3, %rax
cmpq $0x1, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x164ac
movq -0x38(%rbp), %rdi
callq 0x25380
movq %rax, -0xf8(%rbp)
leaq 0x1318e(%rip), %rdi     # 0x295b6
callq 0x216e0
movq %rax, %rcx
movq -0xf8(%rbp), %rax
cmpq %rcx, %rax
jne 0x164ac
movq -0x8(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x100(%rbp)
movq -0x38(%rbp), %rdi
callq 0x25510
leaq -0x5e2(%rip), %rcx      # 0x15e80
shlq $0x2, %rcx
orq $0x3, %rcx
cmpq %rcx, %rax
jne 0x1647f
movq 0x18f02(%rip), %rax     # 0x2f378
movq %rax, -0x110(%rbp)
jmp 0x1648d
movq 0x18eea(%rip), %rax     # 0x2f370
movq %rax, -0x110(%rbp)
movq -0x100(%rbp), %rsi
movq -0x108(%rbp), %rdi
movq -0x110(%rbp), %rdx
callq 0x1b810
jmp 0x16b07
xorl %eax, %eax
cmpq $0x0, -0x38(%rbp)
movb %al, -0x111(%rbp)
je 0x164d0
movq -0x38(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
sete %al
movb %al, -0x111(%rbp)
movb -0x111(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x16723
leaq 0x18da2(%rip), %rax     # 0x2f290
cmpq %rax, -0x38(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x16723
movq -0x38(%rbp), %rax
andq $0x3, %rax
cmpq $0x1, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x16723
movq -0x38(%rbp), %rdi
callq 0x25380
movq %rax, -0x120(%rbp)
leaq 0x132bd(%rip), %rdi     # 0x297fa
callq 0x216e0
movq %rax, %rcx
movq -0x120(%rbp), %rax
cmpq %rcx, %rax
jne 0x16723
movq -0x38(%rbp), %rdi
callq 0x25510
movq %rax, -0x68(%rbp)
movq -0x20(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x25c00
movq %rax, -0x70(%rbp)
leaq 0x193a6(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x165d8
leaq 0x18d9a(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x135ff(%rip), %rcx     # 0x29b93
movq %rcx, 0x10(%rax)
leaq 0x135f4(%rip), %rdi     # 0x29b93
callq 0x278a0
cmpl $0x0, %eax
je 0x165d8
leaq 0x18d70(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x635, 0xc(%rax)       # imm = 0x635
movq -0x68(%rbp), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0x13f94(%rip), %rdi     # 0x2a565
movb $0x0, %al
callq 0x28540
jmp 0x165da
jmp 0x165dc
leaq 0x1933d(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x16641
leaq 0x18d31(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x1359a(%rip), %rcx     # 0x29b97
movq %rcx, 0x10(%rax)
leaq 0x1358f(%rip), %rdi     # 0x29b97
callq 0x278a0
cmpl $0x0, %eax
je 0x16641
leaq 0x18d07(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x636, 0xc(%rax)       # imm = 0x636
movq -0x70(%rbp), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0x13f2b(%rip), %rdi     # 0x2a565
movb $0x0, %al
callq 0x28540
jmp 0x16643
leaq 0x18c46(%rip), %rax     # 0x2f290
cmpq %rax, -0x70(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x166e9
leaq 0x18c27(%rip), %rax     # 0x2f290
cmpq %rax, -0x18(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x166d6
movq -0x8(%rbp), %rax
movq %rax, -0x130(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x10b43(%rip), %rsi    # 0x5b50
leaq 0x18bf6(%rip), %rdx     # 0x2f290
callq 0x1b6f0
movq %rax, -0x128(%rbp)
leaq 0x134f2(%rip), %rdi     # 0x29b9f
callq 0x216e0
movq %rax, %rdi
movq -0x68(%rbp), %rsi
callq 0x25290
movq -0x130(%rbp), %rdi
movq -0x128(%rbp), %rsi
movq %rax, %rdx
callq 0x1b810
jmp 0x166e7
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x1b810
jmp 0x1671e
movq -0x8(%rbp), %rax
movq %rax, -0x140(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x138(%rbp)
movq -0x70(%rbp), %rdi
callq 0x25510
movq -0x140(%rbp), %rdi
movq -0x138(%rbp), %rsi
movq %rax, %rdx
callq 0x1b810
jmp 0x16b05
xorl %eax, %eax
cmpq $0x0, -0x38(%rbp)
movb %al, -0x141(%rbp)
je 0x16747
movq -0x38(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
sete %al
movb %al, -0x141(%rbp)
movb -0x141(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x16a7b
leaq 0x18b2b(%rip), %rax     # 0x2f290
cmpq %rax, -0x38(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x16a7b
movq -0x38(%rbp), %rax
andq $0x3, %rax
cmpq $0x1, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x16a7b
movq -0x38(%rbp), %rdi
callq 0x25510
movq %rax, %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0x142(%rbp)
je 0x167d1
movq -0x38(%rbp), %rdi
callq 0x25510
andq $0x3, %rax
cmpq $0x0, %rax
sete %al
movb %al, -0x142(%rbp)
movb -0x142(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x16a7b
movq -0x38(%rbp), %rdi
callq 0x25510
leaq 0x18a98(%rip), %rcx     # 0x2f290
cmpq %rcx, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x16a7b
movq -0x38(%rbp), %rdi
callq 0x25510
andq $0x3, %rax
cmpq $0x1, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x16a7b
movq -0x38(%rbp), %rdi
callq 0x25380
movq %rax, -0x150(%rbp)
leaq 0x12fb6(%rip), %rdi     # 0x29801
callq 0x216e0
movq %rax, %rcx
movq -0x150(%rbp), %rax
cmpq %rcx, %rax
jne 0x16a7b
movq -0x38(%rbp), %rdi
callq 0x25510
movq %rax, %rdi
callq 0x25380
movq %rax, -0x78(%rbp)
movq -0x38(%rbp), %rdi
callq 0x25510
movq %rax, %rdi
callq 0x25510
movq %rax, -0x80(%rbp)
movq -0x20(%rbp), %rdi
movq -0x78(%rbp), %rsi
callq 0x25c00
movq %rax, -0x88(%rbp)
leaq 0x19078(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x16906
leaq 0x18a6c(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x132d1(%rip), %rcx     # 0x29b93
movq %rcx, 0x10(%rax)
leaq 0x132c6(%rip), %rdi     # 0x29b93
callq 0x278a0
cmpl $0x0, %eax
je 0x16906
leaq 0x18a42(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x646, 0xc(%rax)       # imm = 0x646
movq -0x78(%rbp), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0x13c66(%rip), %rdi     # 0x2a565
movb $0x0, %al
callq 0x28540
jmp 0x16908
jmp 0x1690a
leaq 0x1900f(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x1696f
leaq 0x18a03(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x147a9(%rip), %rcx     # 0x2b0d4
movq %rcx, 0x10(%rax)
leaq 0x1479e(%rip), %rdi     # 0x2b0d4
callq 0x278a0
cmpl $0x0, %eax
je 0x1696f
leaq 0x189d9(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x647, 0xc(%rax)       # imm = 0x647
movq -0x80(%rbp), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0x13bfd(%rip), %rdi     # 0x2a565
movb $0x0, %al
callq 0x28540
jmp 0x16971
jmp 0x16973
leaq 0x18fa6(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x169db
leaq 0x1899a(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x13203(%rip), %rcx     # 0x29b97
movq %rcx, 0x10(%rax)
leaq 0x131f8(%rip), %rdi     # 0x29b97
callq 0x278a0
cmpl $0x0, %eax
je 0x169db
leaq 0x18970(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x648, 0xc(%rax)       # imm = 0x648
movq -0x88(%rbp), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0x13b91(%rip), %rdi     # 0x2a565
movb $0x0, %al
callq 0x28540
jmp 0x169dd
leaq 0x188ac(%rip), %rax     # 0x2f290
cmpq %rax, -0x88(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x16a52
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x25380
movq %rax, -0x158(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x160(%rbp)
movq -0x20(%rbp), %rdi
movq -0x78(%rbp), %rsi
movq -0x80(%rbp), %rdx
callq 0x25e20
movq -0x160(%rbp), %rdi
movq %rax, %rsi
callq 0x25290
movq -0x158(%rbp), %rdi
movq %rax, %rdx
leaq -0xbcb(%rip), %rsi      # 0x15e80
callq 0x1aae0
jmp 0x16a62
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
callq 0x256d0
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq 0x18927(%rip), %rdx     # 0x2f398
callq 0x1b810
jmp 0x16b03
movq -0x38(%rbp), %rax
movq %rax, -0x168(%rbp)
leaq 0x12b68(%rip), %rdi     # 0x295f5
callq 0x216e0
movq %rax, %rcx
movq -0x168(%rbp), %rax
cmpq %rcx, %rax
jne 0x16af8
movq 0x18900(%rip), %rax     # 0x2f3a8
movq %rax, -0x90(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x178(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x170(%rbp)
movq -0x90(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x90(%rbp), %rdi
leaq 0x130cb(%rip), %rsi     # 0x29ba9
callq *%rax
movq -0x178(%rbp), %rdi
movq -0x170(%rbp), %rsi
movq %rax, %rdx
callq 0x1b810
jmp 0x16b01
movq -0x8(%rbp), %rdi
callq 0xa360
jmp 0x16b03
jmp 0x16b05
jmp 0x16b07
movl $0x655, -0x54(%rbp)     # imm = 0x655
leaq -0x60(%rbp), %rdi
callq 0x28660
addq $0x180, %rsp            # imm = 0x180
popq %rbp
retq