// File: kipa00[P]AplusB-mc/compiler/analyze.cpp
// Function: analyze(world const&, int, int, int, std::vector<int, std::allocator<int>>&)
int analyze(const world &w, int x, int y, int z, vector<int> &result) {
	byte this_block = w.getXYZ(x, y, z);
	if ((this_block & BLOCK_ONLY) == REDSTONE_WIRE) {
		vector<int> side;
		for (int i=0; i<wide_len; ++i) {
			const int nx = x + wide_dx[i], ny = y + wide_dy[i], nz = z + wide_dz[i];
			byte fetched = w.getXYZ(nx, ny, nz);
			if ((fetched & BLOCK_ONLY) == REDSTONE_WIRE) {
				if (wide_dy[i] == 0 && abs(wide_dx[i]) + abs(wide_dz[i]) <= 1) {
					side.push_back(pack(nx, ny, nz));
				} else if (wide_dy[i] == 1 && !is_opaque(w.getXYZ(x, y + 1, z))) {
					side.push_back(pack(nx, ny, nz));
				} else if (wide_dy[i] == -1 && !is_opaque(w.getXYZ(nx, ny + 1, nz))) {
					side.push_back(pack(nx, ny, nz));
				}
			} else if ((fetched & BLOCK_ONLY) == REDSTONE_TORCH || (fetched & BLOCK_ONLY) == REDSTONE_WALL_TORCH) {
				if (
					abs(nx - x) + abs(ny - y) + abs(nz - z) <= 1 // direct connection
					|| (is_opaque(w.getXYZ(nx, ny + 1, nz)) && abs(nx - x) + abs(ny + 1 - y) + abs(nz - z) <= 1) // indirect connection
				) {
					result.push_back(pack(nx, ny, nz));
				}
			} else if (is_repeater(fetched) || (fetched & BLOCK_ONLY) == COMPARATOR) {
				if (test_opposite_facing(w, nx, ny, nz, [=] (const world &w, int xx, int yy, int zz) {
					return
						(xx == x && yy == y && zz == z) // direct connection
						|| (is_opaque(w.getXYZ(xx, yy, zz)) && abs(xx - x) + abs(yy - y) + abs(zz - z) <= 1); // indirect connection
					})
				) {
					result.push_back(pack(nx, ny, nz));
				}
			} else if ((fetched & BLOCK_ONLY) == LEVER) {
				if (
					abs(nx - x) + abs(ny - y) + abs(nz - z) <= 1 // direct connection
					|| test_opposite_facing(w, nx, ny, nz, [=] (const world &w, int xx, int yy, int zz) {
						return is_opaque(w.getXYZ(xx, yy, zz)) && abs(xx - x) + abs(yy - y) + abs(zz - z) <= 1;
					})
				) {
					result.push_back(pack(nx, ny, nz));
				}
			}
		}
		result.push_back(-1);
		for (const int &x : side) {
			result.push_back(x);
		}
		return 1;
	} else if ((this_block & BLOCK_ONLY) == REDSTONE_TORCH || (this_block & BLOCK_ONLY) == REDSTONE_WALL_TORCH) {
		int bx = x, by = y, bz = z;
		if ((this_block & BLOCK_ONLY) == REDSTONE_TORCH) --by;
		else switch (this_block & 3) {
			case EAST: --bx; break;
			case WEST: ++bx; break;
			case SOUTH: --bz; break;
			case NORTH: ++bz; break;
		}
		for (int i=0; i<wide_len; ++i) {
			const int nx = x + wide_dx[i], ny = y + wide_dy[i], nz = z + wide_dz[i];
			byte fetched = w.getXYZ(nx, ny, nz);
			if ((fetched & BLOCK_ONLY) == REDSTONE_WIRE) {
				if (redstone_into(w, nx, ny, nz, bx, by, bz)) {
					result.push_back(pack(nx, ny, nz));
				}
			} else if ((fetched & BLOCK_ONLY) == REDSTONE_TORCH || (fetched & BLOCK_ONLY) == REDSTONE_WALL_TORCH) {
				if (nx == bx && ny == by - 1 && nz == bz) {
					result.push_back(pack(nx, ny, nz));
				}
			} else if (is_repeater(fetched) || (fetched & BLOCK_ONLY) == COMPARATOR) {
				if (test_opposite_facing(w, nx, ny, nz, [=] (const world &w, int xx, int yy, int zz) {
					return bx == xx && by == yy && bz == zz;
				})) {
					result.push_back(pack(nx, ny, nz));
				}
			} else if ((fetched & BLOCK_ONLY) == LEVER) {
				if (test_opposite_facing(w, nx, ny, nz, [=] (const world &w, int xx, int yy, int zz) {
					return bx == xx && by == yy && bz == zz;
				})) {
					result.push_back(pack(nx, ny, nz));
				}
			}
		}
		return 2;
	} else if (is_repeater(this_block)) {
		test_facing(w, x, y, z, [&] (const world &w, int bx, int by, int bz) {
			byte facing = w.getXYZ(bx, by, bz);
			if (is_opaque(facing)) {
				for (int i=0; i<narrow_len; ++i) {
					const int nx = bx + narrow_dx[i], ny = by + narrow_dy[i], nz = bz + narrow_dz[i];
					byte fetched = w.getXYZ(nx, ny, nz);
					if ((fetched & BLOCK_ONLY) == REDSTONE_WIRE) {
						if (redstone_into(w, nx, ny, nz, bx, by, bz)) {
							result.push_back(pack(nx, ny, nz));
						}
					} else if ((fetched & BLOCK_ONLY) == REDSTONE_TORCH || (fetched & BLOCK_ONLY) == REDSTONE_WALL_TORCH) {
						if (ny - by == -1) {
							result.push_back(pack(nx, ny, nz));
						}
					} else if (is_repeater(fetched) || (fetched & BLOCK_ONLY) == COMPARATOR) {
						if (test_opposite_facing(w, nx, ny, nz, [=] (const world &w, int xx, int yy, int zz) {
							return bx == xx && by == yy && bz == zz;
						})) {
							result.push_back(pack(nx, ny, nz));
						}
					} else if ((fetched & BLOCK_ONLY) == LEVER) {
						if (test_opposite_facing(w, nx, ny, nz, [=] (const world &w, int xx, int yy, int zz) {
							return bx == xx && by == yy && bz == zz;
						})) {
							result.push_back(pack(nx, ny, nz));
						}
					}
				}
			} else switch (facing & BLOCK_ONLY) {
				case REDSTONE_WIRE:
				case REDSTONE_TORCH:
				case REDSTONE_WALL_TORCH:
				case LEVER:
					result.push_back(pack(bx, by, bz));
					break;
				default:
					if (is_repeater(facing) || (facing & BLOCK_ONLY) == COMPARATOR) {
						if ((facing & 3) == (this_block & 3)) {
							result.push_back(pack(bx, by, bz));
						}
					}
					break;
			}
			result.push_back(-1);
			int dsx = -1, dex = 1, dsz = -1, dez = 1;
			if (z == bz) {
				dsx = dex = 0;
			} else {
				dsz = dez = 0;
			}
			for (int dx = dsx; dx <= dex; dx += 2) {
				for (int dz = dsz; dz <= dez; dz += 2) {
					if (is_repeater(w.getXYZ(x + dx, y, z + dz)) && test_opposite_facing(w, x + dx, y, z + dz, [=] (const world &w, int bx, int by, int bz) {
						return bx == x && by == y && bz == z;
					})) {
						result.push_back(pack(x + dx, y, z + dz));
					}
				}
			}
			return true;
		});
		return 3 + ((this_block >> 3) & 3);
	} else if ((this_block & BLOCK_ONLY) == COMPARATOR) {
		test_facing(w, x, y, z, [&] (const world &w, int bx, int by, int bz) {
			byte facing = w.getXYZ(bx, by, bz);
			if (is_opaque(facing)) {
				for (int i=0; i<narrow_len; ++i) {
					const int nx = bx + narrow_dx[i], ny = by + narrow_dy[i], nz = bz + narrow_dz[i];
					byte fetched = w.getXYZ(nx, ny, nz);
					if ((fetched & BLOCK_ONLY) == REDSTONE_WIRE) {
						if (redstone_into(w, nx, ny, nz, bx, by, bz)) {
							result.push_back(pack(nx, ny, nz));
						}
					} else if ((fetched & BLOCK_ONLY) == REDSTONE_TORCH || (fetched & BLOCK_ONLY) == REDSTONE_WALL_TORCH) {
						if (ny - by == -1) {
							result.push_back(pack(nx, ny, nz));
						}
					} else if (is_repeater(fetched) || (fetched & BLOCK_ONLY) == COMPARATOR) {
						if (test_opposite_facing(w, nx, ny, nz, [=] (const world &w, int xx, int yy, int zz) {
							return bx == xx && by == yy && bz == zz;
						})) {
							result.push_back(pack(nx, ny, nz));
						}
					} else if ((fetched & BLOCK_ONLY) == LEVER) {
						if (test_opposite_facing(w, nx, ny, nz, [=] (const world &w, int xx, int yy, int zz) {
							return bx == xx && by == yy && bz == zz;
						})) {
							result.push_back(pack(nx, ny, nz));
						}
					}
				}
			} else switch (facing & BLOCK_ONLY) {
				case REDSTONE_WIRE:
				case REDSTONE_TORCH:
				case REDSTONE_WALL_TORCH:
				case LEVER:
					result.push_back(pack(bx, by, bz));
					break;
				default:
					if (is_repeater(facing) || (facing & BLOCK_ONLY) == COMPARATOR) {
						if ((facing & 3) == (this_block & 3)) {
							result.push_back(pack(bx, by, bz));
						}
					}
					break;
			}
			result.push_back(-1);
			int dsx = -1, dex = 1, dsz = -1, dez = 1;
			if (z == bz) {
				dsx = dex = 0;
			} else {
				dsz = dez = 0;
			}
			for (int dx = dsx; dx <= dex; dx += 2) {
				for (int dz = dsz; dz <= dez; dz += 2) {
					byte facing = w.getXYZ(x + dx, y, z + dz);
					if ((facing & BLOCK_ONLY) == REDSTONE_WIRE) {
						result.push_back(pack(x + dx, y, z + dz));
					} else if (is_repeater(facing) || (facing & BLOCK_ONLY) == COMPARATOR) {
						if (test_opposite_facing(w, x + dx, y, z + dz, [=] (const world &w, int bx, int by, int bz) {
							return bx == x && by == y && bz == z;
						})) {
							result.push_back(pack(x + dx, y, z + dz));
						}
					}
				}
			}
			return true;
		});
		return 7 + (this_block & SUBTRACT ? 1 : 0);
	} else if ((this_block & BLOCK_ONLY) == LEVER) {
		return 9;
	} else if ((this_block & BLOCK_ONLY) == REDSTONE_LAMP) {
		for (int i=0; i<narrow_len; ++i) {
			const int nx = x + narrow_dx[i], ny = y + narrow_dy[i], nz = z + narrow_dz[i];
			byte fetched = w.getXYZ(nx, ny, nz);
			if (is_opaque(fetched)) {
				for (int j=0; j<narrow_len; ++j) {
					const int bx = nx + narrow_dx[j], by = ny + narrow_dy[j], bz = nz + narrow_dz[j];
					byte facing = w.getXYZ(bx, by, bz);
					if ((facing & BLOCK_ONLY) == REDSTONE_WIRE) {
						if (redstone_into(w, bx, by, bz, nx, ny, nz)) {
							result.push_back(pack(bx, by, bz));
						}
					} else if ((facing & BLOCK_ONLY) == REDSTONE_TORCH || (facing & BLOCK_ONLY) == REDSTONE_WALL_TORCH) {
						if (by - ny == -1) {
							result.push_back(pack(bx, by, bz));
						}
					} else if (is_repeater(facing) || (facing & BLOCK_ONLY) == COMPARATOR) {
						if (test_opposite_facing(w, bx, by, bz, [=] (const world &w, int xx, int yy, int zz) {
							return nx == xx && ny == yy && nz == zz;
						})) {
							result.push_back(pack(bx, by, bz));
						}
					} else if ((facing & BLOCK_ONLY) == LEVER) {
						if (test_opposite_facing(w, bx, by, bz, [=] (const world &w, int xx, int yy, int zz) {
							return nx == xx && ny == yy && nz == zz;
						})) {
							result.push_back(pack(bx, by, bz));
						}
					}
				}
			} else if ((fetched & BLOCK_ONLY) == REDSTONE_WIRE) {
				if (redstone_into(w, nx, ny, nz, x, y, z)) {
					result.push_back(pack(nx, ny, nz));
				}
			} else if ((fetched & BLOCK_ONLY) == REDSTONE_TORCH || (fetched & BLOCK_ONLY) == REDSTONE_WALL_TORCH) {
				if (ny - y <= 0 || (fetched & BLOCK_ONLY) == REDSTONE_WALL_TORCH) {
					result.push_back(pack(nx, ny, nz));
				}
			} else if (is_repeater(fetched) || (fetched & BLOCK_ONLY) == COMPARATOR) {
				if (test_opposite_facing(w, nx, ny, nz, [=] (const world &w, int xx, int yy, int zz) {
					return x == xx && y == yy && z == zz;
				})) {
					result.push_back(pack(nx, ny, nz));
				}
			} else if ((fetched & BLOCK_ONLY) == LEVER) {
				if (test_opposite_facing(w, nx, ny, nz, [=] (const world &w, int xx, int yy, int zz) {
					return x == xx && y == yy && z == zz;
				})) {
					result.push_back(pack(nx, ny, nz));
				}
			}
		}
		return 10;
	}
	return 0;
}

// Assembly:
subq $0x538, %rsp            # imm = 0x538
movq %rdi, 0x528(%rsp)
movl %esi, 0x524(%rsp)
movl %edx, 0x520(%rsp)
movl %ecx, 0x51c(%rsp)
movq %r8, 0x510(%rsp)
movq 0x528(%rsp), %rdi
movl 0x524(%rsp), %esi
movl 0x520(%rsp), %edx
movl 0x51c(%rsp), %ecx
callq 0xa120
movb %al, 0x50f(%rsp)
movzbl 0x50f(%rsp), %eax
andl $0xf0, %eax
cmpl $0x40, %eax
jne 0xb467
leaq 0x4f0(%rsp), %rdi
callq 0x4750
movl $0x0, 0x4ec(%rsp)
cmpl $0x19, 0x4ec(%rsp)
jge 0xb384
movl 0x524(%rsp), %eax
movslq 0x4ec(%rsp), %rdx
leaq 0x8bd9(%rip), %rcx      # 0x137d0
movl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movl %eax, 0x4e8(%rsp)
movl 0x520(%rsp), %eax
movslq 0x4ec(%rsp), %rdx
leaq 0x8c17(%rip), %rcx      # 0x13830
movl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movl %eax, 0x4e4(%rsp)
movl 0x51c(%rsp), %eax
movslq 0x4ec(%rsp), %rdx
leaq 0x8c55(%rip), %rcx      # 0x13890
movl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movl %eax, 0x4e0(%rsp)
movq 0x528(%rsp), %rdi
movl 0x4e8(%rsp), %esi
movl 0x4e4(%rsp), %edx
movl 0x4e0(%rsp), %ecx
callq 0xa120
movb %al, 0x21f(%rsp)
jmp 0xac72
movb 0x21f(%rsp), %al
movb %al, 0x4df(%rsp)
movzbl 0x4df(%rsp), %eax
andl $0xf0, %eax
cmpl $0x40, %eax
jne 0xae94
movslq 0x4ec(%rsp), %rcx
leaq 0x8b8b(%rip), %rax      # 0x13830
cmpl $0x0, (%rax,%rcx,4)
jne 0xad3e
movslq 0x4ec(%rsp), %rcx
leaq 0x8b12(%rip), %rax      # 0x137d0
movl (%rax,%rcx,4), %eax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
movslq 0x4ec(%rsp), %rdx
leaq 0x8bb9(%rip), %rcx      # 0x13890
movl (%rcx,%rdx,4), %ecx
movl %ecx, %edx
negl %edx
cmovnsl %edx, %ecx
addl %ecx, %eax
cmpl $0x1, %eax
jg 0xad3e
movl 0x4e8(%rsp), %edi
movl 0x4e4(%rsp), %esi
movl 0x4e0(%rsp), %edx
callq 0xa400
movl %eax, 0x4c8(%rsp)
leaq 0x4f0(%rsp), %rdi
leaq 0x4c8(%rsp), %rsi
callq 0x11f90
jmp 0xad20
jmp 0xae8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4d0(%rsp)
movl %eax, 0x4cc(%rsp)
jmp 0xb455
movslq 0x4ec(%rsp), %rcx
leaq 0x8ae3(%rip), %rax      # 0x13830
cmpl $0x1, (%rax,%rcx,4)
jne 0xade6
movq 0x528(%rsp), %rdi
movl 0x524(%rsp), %esi
movl 0x520(%rsp), %edx
incl %edx
movl 0x51c(%rsp), %ecx
callq 0xa120
movb %al, 0x21e(%rsp)
jmp 0xad84
movb 0x21e(%rsp), %al
movzbl %al, %edi
callq 0x12a70
movb %al, 0x21d(%rsp)
jmp 0xad9c
movb 0x21d(%rsp), %al
testb $0x1, %al
jne 0xade6
jmp 0xada9
movl 0x4e8(%rsp), %edi
movl 0x4e4(%rsp), %esi
movl 0x4e0(%rsp), %edx
callq 0xa400
movl %eax, 0x4c4(%rsp)
leaq 0x4f0(%rsp), %rdi
leaq 0x4c4(%rsp), %rsi
callq 0x11f90
jmp 0xade1
jmp 0xae8d
movslq 0x4ec(%rsp), %rcx
leaq 0x8a3b(%rip), %rax      # 0x13830
cmpl $-0x1, (%rax,%rcx,4)
jne 0xae8b
movq 0x528(%rsp), %rdi
movl 0x4e8(%rsp), %esi
movl 0x4e4(%rsp), %edx
incl %edx
movl 0x4e0(%rsp), %ecx
callq 0xa120
movb %al, 0x21c(%rsp)
jmp 0xae2c
movb 0x21c(%rsp), %al
movzbl %al, %edi
callq 0x12a70
movb %al, 0x21b(%rsp)
jmp 0xae44
movb 0x21b(%rsp), %al
testb $0x1, %al
jne 0xae8b
jmp 0xae51
movl 0x4e8(%rsp), %edi
movl 0x4e4(%rsp), %esi
movl 0x4e0(%rsp), %edx
callq 0xa400
movl %eax, 0x4c0(%rsp)
leaq 0x4f0(%rsp), %rdi
leaq 0x4c0(%rsp), %rsi
callq 0x11f90
jmp 0xae89
jmp 0xae8b
jmp 0xae8d
jmp 0xae8f
jmp 0xb36c
movzbl 0x4df(%rsp), %eax
andl $0xf0, %eax
cmpl $0x50, %eax
je 0xaebc
movzbl 0x4df(%rsp), %eax
andl $0xf0, %eax
cmpl $0x60, %eax
jne 0xaff7
movl 0x4e8(%rsp), %eax
subl 0x524(%rsp), %eax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
movl 0x4e4(%rsp), %ecx
subl 0x520(%rsp), %ecx
movl %ecx, %edx
negl %edx
cmovnsl %edx, %ecx
addl %ecx, %eax
movl 0x4e0(%rsp), %ecx
subl 0x51c(%rsp), %ecx
movl %ecx, %edx
negl %edx
cmovnsl %edx, %ecx
addl %ecx, %eax
cmpl $0x1, %eax
jle 0xafa8
movq 0x528(%rsp), %rdi
movl 0x4e8(%rsp), %esi
movl 0x4e4(%rsp), %edx
incl %edx
movl 0x4e0(%rsp), %ecx
callq 0xa120
movb %al, 0x21a(%rsp)
jmp 0xaf35
movb 0x21a(%rsp), %al
movzbl %al, %edi
callq 0x12a70
movb %al, 0x219(%rsp)
jmp 0xaf4d
movb 0x219(%rsp), %al
testb $0x1, %al
jne 0xaf5d
jmp 0xaff2
movl 0x4e8(%rsp), %eax
subl 0x524(%rsp), %eax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
movl 0x4e4(%rsp), %ecx
addl $0x1, %ecx
subl 0x520(%rsp), %ecx
movl %ecx, %edx
negl %edx
cmovnsl %edx, %ecx
addl %ecx, %eax
movl 0x4e0(%rsp), %ecx
subl 0x51c(%rsp), %ecx
movl %ecx, %edx
negl %edx
cmovnsl %edx, %ecx
addl %ecx, %eax
cmpl $0x1, %eax
jg 0xaff2
movq 0x510(%rsp), %rax
movq %rax, 0x210(%rsp)
movl 0x4e8(%rsp), %edi
movl 0x4e4(%rsp), %esi
movl 0x4e0(%rsp), %edx
callq 0xa400
movq 0x210(%rsp), %rdi
movl %eax, 0x4bc(%rsp)
leaq 0x4bc(%rsp), %rsi
callq 0x11f90
jmp 0xaff0
jmp 0xaff2
jmp 0xb36a
movzbl 0x4df(%rsp), %edi
callq 0x12a50
movb %al, 0x20f(%rsp)
jmp 0xb00d
movb 0x20f(%rsp), %al
testb $0x1, %al
jne 0xb030
jmp 0xb01a
movzbl 0x4df(%rsp), %eax
andl $0xf0, %eax
cmpl $0x70, %eax
jne 0xb173
movq 0x528(%rsp), %rax
movq %rax, 0x1e8(%rsp)
movl 0x4e8(%rsp), %eax
movl %eax, 0x1f4(%rsp)
movl 0x4e4(%rsp), %eax
movl %eax, 0x1f8(%rsp)
movl 0x4e0(%rsp), %eax
movl %eax, 0x1fc(%rsp)
movl 0x524(%rsp), %eax
movl %eax, 0x48c(%rsp)
movl 0x520(%rsp), %eax
movl %eax, 0x490(%rsp)
movl 0x51c(%rsp), %eax
movl %eax, 0x494(%rsp)
leaq 0x498(%rsp), %rdi
movq %rdi, 0x200(%rsp)
leaq 0x48c(%rsp), %rsi
callq 0xc640
movq 0x1e8(%rsp), %rdi
movl 0x1f4(%rsp), %esi
movl 0x1f8(%rsp), %edx
movl 0x1fc(%rsp), %ecx
movq 0x200(%rsp), %r8
callq 0xa540
movb %al, 0x20e(%rsp)
jmp 0xb0e4
leaq 0x498(%rsp), %rdi
callq 0x11fc0
movb 0x20e(%rsp), %al
testb $0x1, %al
jne 0xb0fe
jmp 0xb16e
movq 0x510(%rsp), %rax
movq %rax, 0x1e0(%rsp)
movl 0x4e8(%rsp), %edi
movl 0x4e4(%rsp), %esi
movl 0x4e0(%rsp), %edx
callq 0xa400
movq 0x1e0(%rsp), %rdi
movl %eax, 0x488(%rsp)
leaq 0x488(%rsp), %rsi
callq 0x11f90
jmp 0xb146
jmp 0xb16e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4d0(%rsp)
movl %eax, 0x4cc(%rsp)
leaq 0x498(%rsp), %rdi
callq 0x11fc0
jmp 0xb455
jmp 0xb368
movzbl 0x4df(%rsp), %eax
andl $0xf0, %eax
cmpl $0xb0, %eax
jne 0xb366
movl 0x4e8(%rsp), %ecx
subl 0x524(%rsp), %ecx
movl %ecx, %eax
negl %eax
cmovnsl %eax, %ecx
movl 0x4e4(%rsp), %eax
subl 0x520(%rsp), %eax
movl %eax, %edx
negl %edx
cmovnsl %edx, %eax
addl %eax, %ecx
movl 0x4e0(%rsp), %eax
subl 0x51c(%rsp), %eax
movl %eax, %edx
negl %edx
cmovnsl %edx, %eax
addl %eax, %ecx
movb $0x0, 0x45b(%rsp)
movb $0x1, %al
cmpl $0x1, %ecx
movb %al, 0x1df(%rsp)
jle 0xb2b4
movq 0x528(%rsp), %rax
movq %rax, 0x1b8(%rsp)
movl 0x4e8(%rsp), %eax
movl %eax, 0x1c4(%rsp)
movl 0x4e4(%rsp), %eax
movl %eax, 0x1c8(%rsp)
movl 0x4e0(%rsp), %eax
movl %eax, 0x1cc(%rsp)
movl 0x524(%rsp), %eax
movl %eax, 0x45c(%rsp)
movl 0x520(%rsp), %eax
movl %eax, 0x460(%rsp)
movl 0x51c(%rsp), %eax
movl %eax, 0x464(%rsp)
leaq 0x468(%rsp), %rdi
movq %rdi, 0x1d0(%rsp)
leaq 0x45c(%rsp), %rsi
callq 0xc6d0
movq 0x1b8(%rsp), %rdi
movl 0x1c4(%rsp), %esi
movl 0x1c8(%rsp), %edx
movl 0x1cc(%rsp), %ecx
movq 0x1d0(%rsp), %r8
movb $0x1, 0x45b(%rsp)
callq 0xa540
movb %al, 0x1de(%rsp)
jmp 0xb2a4
movb 0x1de(%rsp), %al
movb %al, 0x1df(%rsp)
jmp 0xb2b4
movb 0x1df(%rsp), %al
movb %al, 0x1b7(%rsp)
testb $0x1, 0x45b(%rsp)
jne 0xb2ce
jmp 0xb2db
leaq 0x468(%rsp), %rdi
callq 0x11fc0
movb 0x1b7(%rsp), %al
testb $0x1, %al
jne 0xb2e8
jmp 0xb364
movq 0x510(%rsp), %rax
movq %rax, 0x1a8(%rsp)
movl 0x4e8(%rsp), %edi
movl 0x4e4(%rsp), %esi
movl 0x4e0(%rsp), %edx
callq 0xa400
movq 0x1a8(%rsp), %rdi
movl %eax, 0x454(%rsp)
leaq 0x454(%rsp), %rsi
callq 0x11f90
jmp 0xb330
jmp 0xb364
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4d0(%rsp)
movl %eax, 0x4cc(%rsp)
testb $0x1, 0x45b(%rsp)
jne 0xb352
jmp 0xb35f
leaq 0x468(%rsp), %rdi
callq 0x11fc0
jmp 0xb455
jmp 0xb366
jmp 0xb368
jmp 0xb36a
jmp 0xb36c
jmp 0xb36e
movl 0x4ec(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4ec(%rsp)
jmp 0xabd3
movq 0x510(%rsp), %rdi
movl $0xffffffff, 0x450(%rsp) # imm = 0xFFFFFFFF
leaq 0x450(%rsp), %rsi
callq 0x11f90
jmp 0xb3a6
leaq 0x4f0(%rsp), %rax
movq %rax, 0x448(%rsp)
movq 0x448(%rsp), %rdi
callq 0x4950
movq %rax, 0x440(%rsp)
movq 0x448(%rsp), %rdi
callq 0x4980
movq %rax, 0x438(%rsp)
leaq 0x440(%rsp), %rdi
leaq 0x438(%rsp), %rsi
callq 0x49b0
testb $0x1, %al
jne 0xb3fb
jmp 0xb438
leaq 0x440(%rsp), %rdi
callq 0x49f0
movq %rax, 0x430(%rsp)
movq 0x510(%rsp), %rdi
movq 0x430(%rsp), %rsi
callq 0x4820
jmp 0xb427
jmp 0xb429
leaq 0x440(%rsp), %rdi
callq 0x4a90
jmp 0xb3e0
movl $0x1, 0x534(%rsp)
leaq 0x4f0(%rsp), %rdi
callq 0x4b10
jmp 0xc621
leaq 0x4f0(%rsp), %rdi
callq 0x4b10
jmp 0xc630
movzbl 0x50f(%rsp), %eax
andl $0xf0, %eax
cmpl $0x50, %eax
je 0xb48f
movzbl 0x50f(%rsp), %eax
andl $0xf0, %eax
cmpl $0x60, %eax
jne 0xba35
movl 0x524(%rsp), %eax
movl %eax, 0x42c(%rsp)
movl 0x520(%rsp), %eax
movl %eax, 0x428(%rsp)
movl 0x51c(%rsp), %eax
movl %eax, 0x424(%rsp)
movzbl 0x50f(%rsp), %eax
andl $0xf0, %eax
cmpl $0x50, %eax
jne 0xb4de
movl 0x428(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x428(%rsp)
jmp 0xb55c
movzbl 0x50f(%rsp), %eax
andl $0x3, %eax
movl %eax, %ecx
movq %rcx, 0x1a0(%rsp)
subl $0x3, %eax
ja 0xb55a
movq 0x1a0(%rsp), %rax
leaq 0x81b9(%rip), %rcx      # 0x136c0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0x42c(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x42c(%rsp)
jmp 0xb55a
movl 0x42c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x42c(%rsp)
jmp 0xb55a
movl 0x424(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x424(%rsp)
jmp 0xb55a
movl 0x424(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x424(%rsp)
jmp 0xb55c
movl $0x0, 0x420(%rsp)
cmpl $0x19, 0x420(%rsp)
jge 0xba25
movl 0x524(%rsp), %eax
movslq 0x420(%rsp), %rdx
leaq 0x8245(%rip), %rcx      # 0x137d0
addl (%rcx,%rdx,4), %eax
movl %eax, 0x41c(%rsp)
movl 0x520(%rsp), %eax
movslq 0x420(%rsp), %rdx
leaq 0x8285(%rip), %rcx      # 0x13830
addl (%rcx,%rdx,4), %eax
movl %eax, 0x418(%rsp)
movl 0x51c(%rsp), %eax
movslq 0x420(%rsp), %rdx
leaq 0x82c5(%rip), %rcx      # 0x13890
addl (%rcx,%rdx,4), %eax
movl %eax, 0x414(%rsp)
movq 0x528(%rsp), %rdi
movl 0x41c(%rsp), %esi
movl 0x418(%rsp), %edx
movl 0x414(%rsp), %ecx
callq 0xa120
movb %al, 0x413(%rsp)
movzbl 0x413(%rsp), %eax
andl $0xf0, %eax
cmpl $0x40, %eax
jne 0xb6a1
movq 0x528(%rsp), %rdi
movl 0x41c(%rsp), %esi
movl 0x418(%rsp), %edx
movl 0x414(%rsp), %ecx
movl 0x42c(%rsp), %r8d
movl 0x428(%rsp), %r9d
movl 0x424(%rsp), %eax
movl %eax, (%rsp)
callq 0xa600
testb $0x1, %al
jne 0xb656
jmp 0xb69c
movq 0x510(%rsp), %rax
movq %rax, 0x198(%rsp)
movl 0x41c(%rsp), %edi
movl 0x418(%rsp), %esi
movl 0x414(%rsp), %edx
callq 0xa400
movq 0x198(%rsp), %rdi
movl %eax, 0x40c(%rsp)
leaq 0x40c(%rsp), %rsi
callq 0x11f90
jmp 0xba0d
movzbl 0x413(%rsp), %eax
andl $0xf0, %eax
cmpl $0x50, %eax
je 0xb6c9
movzbl 0x413(%rsp), %eax
andl $0xf0, %eax
cmpl $0x60, %eax
jne 0xb749
movl 0x41c(%rsp), %eax
cmpl 0x42c(%rsp), %eax
jne 0xb744
movl 0x418(%rsp), %eax
movl 0x428(%rsp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jne 0xb744
movl 0x414(%rsp), %eax
cmpl 0x424(%rsp), %eax
jne 0xb744
movq 0x510(%rsp), %rax
movq %rax, 0x190(%rsp)
movl 0x41c(%rsp), %edi
movl 0x418(%rsp), %esi
movl 0x414(%rsp), %edx
callq 0xa400
movq 0x190(%rsp), %rdi
movl %eax, 0x408(%rsp)
leaq 0x408(%rsp), %rsi
callq 0x11f90
jmp 0xba0b
movzbl 0x413(%rsp), %edi
callq 0x12a50
testb $0x1, %al
jne 0xb770
movzbl 0x413(%rsp), %eax
andl $0xf0, %eax
cmpl $0x70, %eax
jne 0xb8b1
movq 0x528(%rsp), %rax
movq %rax, 0x168(%rsp)
movl 0x41c(%rsp), %eax
movl %eax, 0x174(%rsp)
movl 0x418(%rsp), %eax
movl %eax, 0x178(%rsp)
movl 0x414(%rsp), %eax
movl %eax, 0x17c(%rsp)
movl 0x42c(%rsp), %eax
movl %eax, 0x3dc(%rsp)
movl 0x428(%rsp), %eax
movl %eax, 0x3e0(%rsp)
movl 0x424(%rsp), %eax
movl %eax, 0x3e4(%rsp)
leaq 0x3e8(%rsp), %rdi
movq %rdi, 0x180(%rsp)
leaq 0x3dc(%rsp), %rsi
callq 0xc760
movq 0x168(%rsp), %rdi
movl 0x174(%rsp), %esi
movl 0x178(%rsp), %edx
movl 0x17c(%rsp), %ecx
movq 0x180(%rsp), %r8
callq 0xa540
movb %al, 0x18f(%rsp)
jmp 0xb824
leaq 0x3e8(%rsp), %rdi
callq 0x11fc0
movb 0x18f(%rsp), %al
testb $0x1, %al
jne 0xb83e
jmp 0xb8ac
movq 0x510(%rsp), %rax
movq %rax, 0x160(%rsp)
movl 0x41c(%rsp), %edi
movl 0x418(%rsp), %esi
movl 0x414(%rsp), %edx
callq 0xa400
movq 0x160(%rsp), %rdi
movl %eax, 0x3d8(%rsp)
leaq 0x3d8(%rsp), %rsi
callq 0x11f90
jmp 0xb8ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4d0(%rsp)
movl %eax, 0x4cc(%rsp)
leaq 0x3e8(%rsp), %rdi
callq 0x11fc0
jmp 0xc630
jmp 0xba09
movzbl 0x413(%rsp), %eax
andl $0xf0, %eax
cmpl $0xb0, %eax
jne 0xba07
movq 0x528(%rsp), %rax
movq %rax, 0x138(%rsp)
movl 0x41c(%rsp), %eax
movl %eax, 0x144(%rsp)
movl 0x418(%rsp), %eax
movl %eax, 0x148(%rsp)
movl 0x414(%rsp), %eax
movl %eax, 0x14c(%rsp)
movl 0x42c(%rsp), %eax
movl %eax, 0x3ac(%rsp)
movl 0x428(%rsp), %eax
movl %eax, 0x3b0(%rsp)
movl 0x424(%rsp), %eax
movl %eax, 0x3b4(%rsp)
leaq 0x3b8(%rsp), %rdi
movq %rdi, 0x150(%rsp)
leaq 0x3ac(%rsp), %rsi
callq 0xc7f0
movq 0x138(%rsp), %rdi
movl 0x144(%rsp), %esi
movl 0x148(%rsp), %edx
movl 0x14c(%rsp), %ecx
movq 0x150(%rsp), %r8
callq 0xa540
movb %al, 0x15f(%rsp)
jmp 0xb97d
leaq 0x3b8(%rsp), %rdi
callq 0x11fc0
movb 0x15f(%rsp), %al
testb $0x1, %al
jne 0xb997
jmp 0xba05
movq 0x510(%rsp), %rax
movq %rax, 0x130(%rsp)
movl 0x41c(%rsp), %edi
movl 0x418(%rsp), %esi
movl 0x414(%rsp), %edx
callq 0xa400
movq 0x130(%rsp), %rdi
movl %eax, 0x3a8(%rsp)
leaq 0x3a8(%rsp), %rsi
callq 0x11f90
jmp 0xba05
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4d0(%rsp)
movl %eax, 0x4cc(%rsp)
leaq 0x3b8(%rsp), %rdi
callq 0x11fc0
jmp 0xc630
jmp 0xba07
jmp 0xba09
jmp 0xba0b
jmp 0xba0d
jmp 0xba0f
movl 0x420(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x420(%rsp)
jmp 0xb567
movl $0x2, 0x534(%rsp)
jmp 0xc621
movzbl 0x50f(%rsp), %edi
callq 0x12a50
testb $0x1, %al
jne 0xba4b
jmp 0xbb6e
movq 0x528(%rsp), %rax
movq %rax, 0x110(%rsp)
movl 0x524(%rsp), %eax
movl %eax, 0x11c(%rsp)
movl 0x520(%rsp), %eax
movl %eax, 0x120(%rsp)
movl 0x51c(%rsp), %eax
movl %eax, 0x124(%rsp)
movq 0x510(%rsp), %rax
movq %rax, 0x360(%rsp)
leaq 0x50f(%rsp), %rax
movq %rax, 0x368(%rsp)
leaq 0x51c(%rsp), %rax
movq %rax, 0x370(%rsp)
leaq 0x524(%rsp), %rax
movq %rax, 0x378(%rsp)
leaq 0x520(%rsp), %rax
movq %rax, 0x380(%rsp)
leaq 0x388(%rsp), %rdi
movq %rdi, 0x128(%rsp)
leaq 0x360(%rsp), %rsi
callq 0xc880
movq 0x110(%rsp), %rdi
movl 0x11c(%rsp), %esi
movl 0x120(%rsp), %edx
movl 0x124(%rsp), %ecx
movq 0x128(%rsp), %r8
callq 0xa480
jmp 0xbb1e
leaq 0x388(%rsp), %rdi
callq 0x11fc0
movzbl 0x50f(%rsp), %eax
sarl $0x3, %eax
andl $0x3, %eax
addl $0x3, %eax
movl %eax, 0x534(%rsp)
jmp 0xc621
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4d0(%rsp)
movl %eax, 0x4cc(%rsp)
leaq 0x388(%rsp), %rdi
callq 0x11fc0
jmp 0xc630
movzbl 0x50f(%rsp), %eax
andl $0xf0, %eax
cmpl $0x70, %eax
jne 0xbcb1
movq 0x528(%rsp), %rax
movq %rax, 0xf0(%rsp)
movl 0x524(%rsp), %eax
movl %eax, 0xfc(%rsp)
movl 0x520(%rsp), %eax
movl %eax, 0x100(%rsp)
movl 0x51c(%rsp), %eax
movl %eax, 0x104(%rsp)
movq 0x510(%rsp), %rax
movq %rax, 0x318(%rsp)
leaq 0x50f(%rsp), %rax
movq %rax, 0x320(%rsp)
leaq 0x51c(%rsp), %rax
movq %rax, 0x328(%rsp)
leaq 0x524(%rsp), %rax
movq %rax, 0x330(%rsp)
leaq 0x520(%rsp), %rax
movq %rax, 0x338(%rsp)
leaq 0x340(%rsp), %rdi
movq %rdi, 0x108(%rsp)
leaq 0x318(%rsp), %rsi
callq 0xc930
movq 0xf0(%rsp), %rdi
movl 0xfc(%rsp), %esi
movl 0x100(%rsp), %edx
movl 0x104(%rsp), %ecx
movq 0x108(%rsp), %r8
callq 0xa480
jmp 0xbc57
leaq 0x340(%rsp), %rdi
callq 0x11fc0
movzbl 0x50f(%rsp), %edx
andl $0x8, %edx
xorl %eax, %eax
movl $0x1, %ecx
cmpl $0x0, %edx
cmovnel %ecx, %eax
addl $0x7, %eax
movl %eax, 0x534(%rsp)
jmp 0xc621
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4d0(%rsp)
movl %eax, 0x4cc(%rsp)
leaq 0x340(%rsp), %rdi
callq 0x11fc0
jmp 0xc630
movzbl 0x50f(%rsp), %eax
andl $0xf0, %eax
cmpl $0xb0, %eax
jne 0xbcd5
movl $0x9, 0x534(%rsp)
jmp 0xc621
movzbl 0x50f(%rsp), %eax
andl $0xf0, %eax
cmpl $0xa0, %eax
jne 0xc60c
movl $0x0, 0x314(%rsp)
cmpl $0x6, 0x314(%rsp)
jge 0xc5ff
movl 0x524(%rsp), %eax
movslq 0x314(%rsp), %rdx
leaq 0x7bd4(%rip), %rcx      # 0x138f0
addl (%rcx,%rdx,4), %eax
movl %eax, 0x310(%rsp)
movl 0x520(%rsp), %eax
movslq 0x314(%rsp), %rdx
leaq 0x7bd4(%rip), %rcx      # 0x13910
addl (%rcx,%rdx,4), %eax
movl %eax, 0x30c(%rsp)
movl 0x51c(%rsp), %eax
movslq 0x314(%rsp), %rdx
leaq 0x7bd4(%rip), %rcx      # 0x13930
addl (%rcx,%rdx,4), %eax
movl %eax, 0x308(%rsp)
movq 0x528(%rsp), %rdi
movl 0x310(%rsp), %esi
movl 0x30c(%rsp), %edx
movl 0x308(%rsp), %ecx
callq 0xa120
movb %al, 0x307(%rsp)
movzbl 0x307(%rsp), %edi
callq 0x12a70
testb $0x1, %al
jne 0xbda5
jmp 0xc24d
movl $0x0, 0x300(%rsp)
cmpl $0x6, 0x300(%rsp)
jge 0xc248
movl 0x310(%rsp), %eax
movslq 0x300(%rsp), %rdx
leaq 0x7b1c(%rip), %rcx      # 0x138f0
addl (%rcx,%rdx,4), %eax
movl %eax, 0x2fc(%rsp)
movl 0x30c(%rsp), %eax
movslq 0x300(%rsp), %rdx
leaq 0x7b1c(%rip), %rcx      # 0x13910
addl (%rcx,%rdx,4), %eax
movl %eax, 0x2f8(%rsp)
movl 0x308(%rsp), %eax
movslq 0x300(%rsp), %rdx
leaq 0x7b1c(%rip), %rcx      # 0x13930
addl (%rcx,%rdx,4), %eax
movl %eax, 0x2f4(%rsp)
movq 0x528(%rsp), %rdi
movl 0x2fc(%rsp), %esi
movl 0x2f8(%rsp), %edx
movl 0x2f4(%rsp), %ecx
callq 0xa120
movb %al, 0x2f3(%rsp)
movzbl 0x2f3(%rsp), %eax
andl $0xf0, %eax
cmpl $0x40, %eax
jne 0xbeea
movq 0x528(%rsp), %rdi
movl 0x2fc(%rsp), %esi
movl 0x2f8(%rsp), %edx
movl 0x2f4(%rsp), %ecx
movl 0x310(%rsp), %r8d
movl 0x30c(%rsp), %r9d
movl 0x308(%rsp), %eax
movl %eax, (%rsp)
callq 0xa600
testb $0x1, %al
jne 0xbe9f
jmp 0xbee5
movq 0x510(%rsp), %rax
movq %rax, 0xe8(%rsp)
movl 0x2fc(%rsp), %edi
movl 0x2f8(%rsp), %esi
movl 0x2f4(%rsp), %edx
callq 0xa400
movq 0xe8(%rsp), %rdi
movl %eax, 0x2ec(%rsp)
leaq 0x2ec(%rsp), %rsi
callq 0x11f90
jmp 0xc230
movzbl 0x2f3(%rsp), %eax
andl $0xf0, %eax
cmpl $0x50, %eax
je 0xbf0e
movzbl 0x2f3(%rsp), %eax
andl $0xf0, %eax
cmpl $0x60, %eax
jne 0xbf6c
movl 0x2f8(%rsp), %eax
subl 0x30c(%rsp), %eax
cmpl $-0x1, %eax
jne 0xbf67
movq 0x510(%rsp), %rax
movq %rax, 0xe0(%rsp)
movl 0x2fc(%rsp), %edi
movl 0x2f8(%rsp), %esi
movl 0x2f4(%rsp), %edx
callq 0xa400
movq 0xe0(%rsp), %rdi
movl %eax, 0x2e8(%rsp)
leaq 0x2e8(%rsp), %rsi
callq 0x11f90
jmp 0xc22e
movzbl 0x2f3(%rsp), %edi
callq 0x12a50
testb $0x1, %al
jne 0xbf93
movzbl 0x2f3(%rsp), %eax
andl $0xf0, %eax
cmpl $0x70, %eax
jne 0xc0d4
movq 0x528(%rsp), %rax
movq %rax, 0xb8(%rsp)
movl 0x2fc(%rsp), %eax
movl %eax, 0xc4(%rsp)
movl 0x2f8(%rsp), %eax
movl %eax, 0xc8(%rsp)
movl 0x2f4(%rsp), %eax
movl %eax, 0xcc(%rsp)
movl 0x310(%rsp), %eax
movl %eax, 0x2bc(%rsp)
movl 0x30c(%rsp), %eax
movl %eax, 0x2c0(%rsp)
movl 0x308(%rsp), %eax
movl %eax, 0x2c4(%rsp)
leaq 0x2c8(%rsp), %rdi
movq %rdi, 0xd0(%rsp)
leaq 0x2bc(%rsp), %rsi
callq 0xc9e0
movq 0xb8(%rsp), %rdi
movl 0xc4(%rsp), %esi
movl 0xc8(%rsp), %edx
movl 0xcc(%rsp), %ecx
movq 0xd0(%rsp), %r8
callq 0xa540
movb %al, 0xdf(%rsp)
jmp 0xc047
leaq 0x2c8(%rsp), %rdi
callq 0x11fc0
movb 0xdf(%rsp), %al
testb $0x1, %al
jne 0xc061
jmp 0xc0cf
movq 0x510(%rsp), %rax
movq %rax, 0xb0(%rsp)
movl 0x2fc(%rsp), %edi
movl 0x2f8(%rsp), %esi
movl 0x2f4(%rsp), %edx
callq 0xa400
movq 0xb0(%rsp), %rdi
movl %eax, 0x2b8(%rsp)
leaq 0x2b8(%rsp), %rsi
callq 0x11f90
jmp 0xc0cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4d0(%rsp)
movl %eax, 0x4cc(%rsp)
leaq 0x2c8(%rsp), %rdi
callq 0x11fc0
jmp 0xc630
jmp 0xc22c
movzbl 0x2f3(%rsp), %eax
andl $0xf0, %eax
cmpl $0xb0, %eax
jne 0xc22a
movq 0x528(%rsp), %rax
movq %rax, 0x88(%rsp)
movl 0x2fc(%rsp), %eax
movl %eax, 0x94(%rsp)
movl 0x2f8(%rsp), %eax
movl %eax, 0x98(%rsp)
movl 0x2f4(%rsp), %eax
movl %eax, 0x9c(%rsp)
movl 0x310(%rsp), %eax
movl %eax, 0x28c(%rsp)
movl 0x30c(%rsp), %eax
movl %eax, 0x290(%rsp)
movl 0x308(%rsp), %eax
movl %eax, 0x294(%rsp)
leaq 0x298(%rsp), %rdi
movq %rdi, 0xa0(%rsp)
leaq 0x28c(%rsp), %rsi
callq 0xca70
movq 0x88(%rsp), %rdi
movl 0x94(%rsp), %esi
movl 0x98(%rsp), %edx
movl 0x9c(%rsp), %ecx
movq 0xa0(%rsp), %r8
callq 0xa540
movb %al, 0xaf(%rsp)
jmp 0xc1a0
leaq 0x298(%rsp), %rdi
callq 0x11fc0
movb 0xaf(%rsp), %al
testb $0x1, %al
jne 0xc1ba
jmp 0xc228
movq 0x510(%rsp), %rax
movq %rax, 0x80(%rsp)
movl 0x2fc(%rsp), %edi
movl 0x2f8(%rsp), %esi
movl 0x2f4(%rsp), %edx
callq 0xa400
movq 0x80(%rsp), %rdi
movl %eax, 0x288(%rsp)
leaq 0x288(%rsp), %rsi
callq 0x11f90
jmp 0xc228
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4d0(%rsp)
movl %eax, 0x4cc(%rsp)
leaq 0x298(%rsp), %rdi
callq 0x11fc0
jmp 0xc630
jmp 0xc22a
jmp 0xc22c
jmp 0xc22e
jmp 0xc230
jmp 0xc232
movl 0x300(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x300(%rsp)
jmp 0xbdb0
jmp 0xc5e7
movzbl 0x307(%rsp), %eax
andl $0xf0, %eax
cmpl $0x40, %eax
jne 0xc2ea
movq 0x528(%rsp), %rdi
movl 0x310(%rsp), %esi
movl 0x30c(%rsp), %edx
movl 0x308(%rsp), %ecx
movl 0x524(%rsp), %r8d
movl 0x520(%rsp), %r9d
movl 0x51c(%rsp), %eax
movl %eax, (%rsp)
callq 0xa600
testb $0x1, %al
jne 0xc2a5
jmp 0xc2e5
movq 0x510(%rsp), %rax
movq %rax, 0x78(%rsp)
movl 0x310(%rsp), %edi
movl 0x30c(%rsp), %esi
movl 0x308(%rsp), %edx
callq 0xa400
movq 0x78(%rsp), %rdi
movl %eax, 0x284(%rsp)
leaq 0x284(%rsp), %rsi
callq 0x11f90
jmp 0xc5e5
movzbl 0x307(%rsp), %eax
andl $0xf0, %eax
cmpl $0x50, %eax
je 0xc30e
movzbl 0x307(%rsp), %eax
andl $0xf0, %eax
cmpl $0x60, %eax
jne 0xc378
movl 0x30c(%rsp), %eax
subl 0x520(%rsp), %eax
cmpl $0x0, %eax
jle 0xc333
movzbl 0x307(%rsp), %eax
andl $0xf0, %eax
cmpl $0x60, %eax
jne 0xc373
movq 0x510(%rsp), %rax
movq %rax, 0x70(%rsp)
movl 0x310(%rsp), %edi
movl 0x30c(%rsp), %esi
movl 0x308(%rsp), %edx
callq 0xa400
movq 0x70(%rsp), %rdi
movl %eax, 0x280(%rsp)
leaq 0x280(%rsp), %rsi
callq 0x11f90
jmp 0xc5e3
movzbl 0x307(%rsp), %edi
callq 0x12a50
testb $0x1, %al
jne 0xc39f
movzbl 0x307(%rsp), %eax
andl $0xf0, %eax
cmpl $0x70, %eax
jne 0xc4b6
movq 0x528(%rsp), %rax
movq %rax, 0x48(%rsp)
movl 0x310(%rsp), %eax
movl %eax, 0x54(%rsp)
movl 0x30c(%rsp), %eax
movl %eax, 0x58(%rsp)
movl 0x308(%rsp), %eax
movl %eax, 0x5c(%rsp)
movl 0x524(%rsp), %eax
movl %eax, 0x254(%rsp)
movl 0x520(%rsp), %eax
movl %eax, 0x258(%rsp)
movl 0x51c(%rsp), %eax
movl %eax, 0x25c(%rsp)
leaq 0x260(%rsp), %rdi
movq %rdi, 0x60(%rsp)
leaq 0x254(%rsp), %rsi
callq 0xcb00
movq 0x48(%rsp), %rdi
movl 0x54(%rsp), %esi
movl 0x58(%rsp), %edx
movl 0x5c(%rsp), %ecx
movq 0x60(%rsp), %r8
callq 0xa540
movb %al, 0x6f(%rsp)
jmp 0xc432
leaq 0x260(%rsp), %rdi
callq 0x11fc0
movb 0x6f(%rsp), %al
testb $0x1, %al
jne 0xc449
jmp 0xc4b1
movq 0x510(%rsp), %rax
movq %rax, 0x40(%rsp)
movl 0x310(%rsp), %edi
movl 0x30c(%rsp), %esi
movl 0x308(%rsp), %edx
callq 0xa400
movq 0x40(%rsp), %rdi
movl %eax, 0x250(%rsp)
leaq 0x250(%rsp), %rsi
callq 0x11f90
jmp 0xc4b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4d0(%rsp)
movl %eax, 0x4cc(%rsp)
leaq 0x260(%rsp), %rdi
callq 0x11fc0
jmp 0xc630
jmp 0xc5e1
movzbl 0x307(%rsp), %eax
andl $0xf0, %eax
cmpl $0xb0, %eax
jne 0xc5df
movq 0x528(%rsp), %rax
movq %rax, 0x18(%rsp)
movl 0x310(%rsp), %eax
movl %eax, 0x24(%rsp)
movl 0x30c(%rsp), %eax
movl %eax, 0x28(%rsp)
movl 0x308(%rsp), %eax
movl %eax, 0x2c(%rsp)
movl 0x524(%rsp), %eax
movl %eax, 0x224(%rsp)
movl 0x520(%rsp), %eax
movl %eax, 0x228(%rsp)
movl 0x51c(%rsp), %eax
movl %eax, 0x22c(%rsp)
leaq 0x230(%rsp), %rdi
movq %rdi, 0x30(%rsp)
leaq 0x224(%rsp), %rsi
callq 0xcb90
movq 0x18(%rsp), %rdi
movl 0x24(%rsp), %esi
movl 0x28(%rsp), %edx
movl 0x2c(%rsp), %ecx
movq 0x30(%rsp), %r8
callq 0xa540
movb %al, 0x3f(%rsp)
jmp 0xc561
leaq 0x230(%rsp), %rdi
callq 0x11fc0
movb 0x3f(%rsp), %al
testb $0x1, %al
jne 0xc578
jmp 0xc5dd
movq 0x510(%rsp), %rax
movq %rax, 0x10(%rsp)
movl 0x310(%rsp), %edi
movl 0x30c(%rsp), %esi
movl 0x308(%rsp), %edx
callq 0xa400
movq 0x10(%rsp), %rdi
movl %eax, 0x220(%rsp)
leaq 0x220(%rsp), %rsi
callq 0x11f90
jmp 0xc5dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4d0(%rsp)
movl %eax, 0x4cc(%rsp)
leaq 0x230(%rsp), %rdi
callq 0x11fc0
jmp 0xc630
jmp 0xc5df
jmp 0xc5e1
jmp 0xc5e3
jmp 0xc5e5
jmp 0xc5e7
jmp 0xc5e9
movl 0x314(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x314(%rsp)
jmp 0xbcf8
movl $0xa, 0x534(%rsp)
jmp 0xc621
jmp 0xc60e
jmp 0xc610
jmp 0xc612
jmp 0xc614
jmp 0xc616
movl $0x0, 0x534(%rsp)
movl 0x534(%rsp), %eax
addq $0x538, %rsp            # imm = 0x538
retq
movq 0x4d0(%rsp), %rdi
callq 0x2300
nopl (%rax)