; ModuleID = 'mcsema/test.proposed.ll' source_filename = "llvm-link" target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-pc-linux-gnu-elf" %union.anon = type { i64 } %seg_400388__init_type = type <{ [23 x i8] }> %seg_4003a0__text_type = type <{ [354 x i8] }> %seg_400504__fini_type = type <{ [9 x i8] }> %seg_400510__rodata_type = type <{ [4 x i8] }> %seg_400514__eh_frame_hdr_type = type <{ [52 x i8] }> %seg_400548__eh_frame_type = type <{ [208 x i8] }> %seg_601018__data_type = type <{ [16 x i8] }> %__bss_start_type = type <{ [8 x i8] }> %seg_400514__fini_type = type <{ [9 x i8] }> %seg_400520__rodata_type = type <{ [4 x i8] }> %seg_400524__eh_frame_hdr_type = type <{ [52 x i8] }> %seg_400558__eh_frame_type = type <{ [208 x i8] }> %G_0x86b8b4_type = type <{ [4 x i8] }> %G__0x429cd1_type = type <{ [8 x i8] }> %G__0x63ae50_type = type <{ [8 x i8] }> %struct.State = type { %struct.ArchState, [32 x %union.VectorReg], %struct.ArithFlags, %union.anon, %struct.Segments, %struct.AddressSpace, %struct.GPR, %struct.X87Stack, %struct.MMX, %struct.FPUStatusFlags, %union.anon, %union.FPU, %struct.SegmentCaches } %struct.ArchState = type { i32, i32, %union.anon } %union.VectorReg = type { %union.vec512_t } %union.vec512_t = type { %struct.uint64v8_t } %struct.uint64v8_t = type { [8 x i64] } %struct.ArithFlags = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } %struct.Segments = type { i16, %union.SegmentSelector, i16, %union.SegmentSelector, i16, %union.SegmentSelector, i16, %union.SegmentSelector, i16, %union.SegmentSelector, i16, %union.SegmentSelector } %union.SegmentSelector = type { i16 } %struct.AddressSpace = type { i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg } %struct.Reg = type { %union.anon } %struct.GPR = type { i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg, i64, %struct.Reg } %struct.X87Stack = type { [8 x %struct.anon.3] } %struct.anon.3 = type { i64, double } %struct.MMX = type { [8 x %struct.anon.4] } %struct.anon.4 = type { i64, %union.vec64_t } %union.vec64_t = type { %struct.uint64v1_t } %struct.uint64v1_t = type { [1 x i64] } %struct.FPUStatusFlags = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [4 x i8] } %union.FPU = type { %struct.anon.13 } %struct.anon.13 = type { %struct.FpuFXSAVE, [96 x i8] } %struct.FpuFXSAVE = type { %union.SegmentSelector, %union.SegmentSelector, %union.FPUAbridgedTagWord, i8, i16, i32, %union.SegmentSelector, i16, i32, %union.SegmentSelector, i16, %union.FPUControlStatus, %union.FPUControlStatus, [8 x %struct.FPUStackElem], [16 x %union.vec128_t] } %union.FPUAbridgedTagWord = type { i8 } %union.FPUControlStatus = type { i32 } %struct.FPUStackElem = type { %union.anon.11, [6 x i8] } %union.anon.11 = type { %struct.float80_t } %struct.float80_t = type { [10 x i8] } %union.vec128_t = type { %struct.uint128v1_t } %struct.uint128v1_t = type { [1 x i128] } %struct.SegmentCaches = type { %struct.SegmentShadow, %struct.SegmentShadow, %struct.SegmentShadow, %struct.SegmentShadow, %struct.SegmentShadow, %struct.SegmentShadow } %struct.SegmentShadow = type { %union.anon, i32, i32 } %struct.Memory = type opaque @switch.table = private unnamed_addr constant [4 x i32] [i32 2048, i32 3072, i32 0, i32 1024] @DR0 = external global i64, align 8 @DR1 = external global i64, align 8 @DR2 = external global i64, align 8 @DR3 = external global i64, align 8 @DR4 = external global i64, align 8 @DR5 = external global i64, align 8 @DR6 = external global i64, align 8 @DR7 = external global i64, align 8 @gCR0 = external global %union.anon, align 1 @gCR1 = external global %union.anon, align 1 @gCR2 = external global %union.anon, align 1 @gCR3 = external global %union.anon, align 1 @gCR4 = external global %union.anon, align 1 @gCR8 = external global %union.anon, align 1 @seg_400388__init = internal constant %seg_400388__init_type <{ [23 x i8] c"H\83\EC\08H\8B\05e\0C \00H\85\C0t\02\FF\D0H\83\C4\08\C3" }> @seg_4003a0__text = internal constant %seg_4003a0__text_type <{ [354 x i8] c"1\EDI\89\D1^H\89\E2H\83\E4\F0PTI\C7\C0\00\05@\00H\C7\C1\90\04@\00H\C7\C7\88\04@\00\FF\15&\0C \00\F4\0F\1FD\00\00\F3\C3f.\0F\1F\84\00\00\00\00\00\0F\1F@\00U\B8(\10`\00H=(\10`\00H\89\E5t\17\B8\00\00\00\00H\85\C0t\0D]\BF(\10`\00\FF\E0\0F\1FD\00\00]\C3f\0F\1FD\00\00\BE(\10`\00UH\81\EE(\10`\00H\89\E5H\C1\FE\03H\89\F0H\C1\E8?H\01\C6H\D1\FEt\15\B8\00\00\00\00H\85\C0t\0B]\BF(\10`\00\FF\E0\0F\1F\00]\C3f\0F\1FD\00\00\80=\D1\0B \00\00u\17UH\89\E5\E8~\FF\FF\FF\C6\05\BF\0B \00\01]\C3\0F\1FD\00\00\F3\C3\0F\1F@\00f.\0F\1F\84\00\00\00\00\00UH\89\E5]\EB\89\90U\C3f\0F\1FD\00\00AWAVI\89\D7AUATL\8D%\9E\09 \00UH\8D-\9E\09 \00SA\89\FDI\89\F6L)\E5H\83\EC\08H\C1\FD\03\E8\C7\FE\FF\FFH\85\EDt 1\DB\0F\1F\84\00\00\00\00\00L\89\FAL\89\F6D\89\EFA\FF\14\DCH\83\C3\01H9\DDu\EAH\83\C4\08[]A\5CA]A^A_\C3\90f.\0F\1F\84\00\00\00\00\00\F3\C3" }> @seg_400504__fini = internal constant %seg_400504__fini_type <{ [9 x i8] c"H\83\EC\08H\83\C4\08\C3" }> @seg_400510__rodata = internal constant %seg_400510__rodata_type <{ [4 x i8] c"\01\00\02\00" }> @seg_400514__eh_frame_hdr = internal constant %seg_400514__eh_frame_hdr_type <{ [52 x i8] c"\01\1B\03;0\00\00\00\05\00\00\00\8C\FE\FF\FFL\00\00\00\BC\FE\FF\FFx\00\00\00t\FF\FF\FF\8C\00\00\00|\FF\FF\FF\A4\00\00\00\EC\FF\FF\FF\EC\00\00\00" }> @seg_400548__eh_frame = internal constant %seg_400548__eh_frame_type <{ [208 x i8] c"\14\00\00\00\00\00\00\00\01zR\00\01x\10\01\1B\0C\07\08\90\01\07\10\10\00\00\00\1C\00\00\008\FE\FF\FF+\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\01zR\00\01x\10\01\1B\0C\07\08\90\01\00\00\10\00\00\00\1C\00\00\00<\FE\FF\FF\02\00\00\00\00\00\00\00\14\00\00\000\00\00\00\E0\FE\FF\FF\02\00\00\00\00\00\00\00\00\00\00\00D\00\00\00H\00\00\00\D0\FE\FF\FFe\00\00\00\00B\0E\10\8F\02B\0E\18\8E\03E\0E \8D\04B\0E(\8C\05H\0E0\86\06H\0E8\83\07M\0E@r\0E8A\0E0A\0E(B\0E B\0E\18B\0E\10B\0E\08\00\10\00\00\00\90\00\00\00\F8\FE\FF\FF\02\00\00\00\00\00\00\00\00\00\00\00" }> @seg_601018__data = internal global %seg_601018__data_type zeroinitializer @__bss_start = global %__bss_start_type zeroinitializer @0 = internal global i1 false @seg_400514__fini = internal constant %seg_400514__fini_type <{ [9 x i8] c"H\83\EC\08H\83\C4\08\C3" }> @seg_400520__rodata = internal constant %seg_400520__rodata_type <{ [4 x i8] c"\01\00\02\00" }> @seg_400524__eh_frame_hdr = internal constant %seg_400524__eh_frame_hdr_type <{ [52 x i8] c"\01\1B\03;0\00\00\00\05\00\00\00|\FE\FF\FFL\00\00\00\AC\FE\FF\FFx\00\00\00d\FF\FF\FF\8C\00\00\00|\FF\FF\FF\A4\00\00\00\EC\FF\FF\FF\EC\00\00\00" }> @seg_400558__eh_frame = internal constant %seg_400558__eh_frame_type <{ [208 x i8] c"\14\00\00\00\00\00\00\00\01zR\00\01x\10\01\1B\0C\07\08\90\01\07\10\10\00\00\00\1C\00\00\00(\FE\FF\FF+\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\01zR\00\01x\10\01\1B\0C\07\08\90\01\00\00\10\00\00\00\1C\00\00\00,\FE\FF\FF\02\00\00\00\00\00\00\00\14\00\00\000\00\00\00\D0\FE\FF\FF\0B\00\00\00\00\00\00\00\00\00\00\00D\00\00\00H\00\00\00\D0\FE\FF\FFe\00\00\00\00B\0E\10\8F\02B\0E\18\8E\03E\0E \8D\04B\0E(\8C\05H\0E0\86\06H\0E8\83\07M\0E@r\0E8A\0E0A\0E(B\0E B\0E\18B\0E\10B\0E\08\00\10\00\00\00\90\00\00\00\F8\FE\FF\FF\02\00\00\00\00\00\00\00\00\00\00\00" }> @G_0x86b8b4 = global %G_0x86b8b4_type zeroinitializer @G__0x429cd1 = global %G__0x429cd1_type zeroinitializer @G__0x63ae50 = global %G__0x63ae50_type zeroinitializer declare %struct.Memory* @__remill_error(%struct.State* dereferenceable(3376), i64, %struct.Memory*) declare i32 @__remill_fpu_exception_test_and_clear(i32, i32) ; Function Attrs: argmemonly nounwind declare void @llvm.lifetime.start(i64, i8* nocapture) #0 ; Function Attrs: argmemonly nounwind declare void @llvm.lifetime.end(i64, i8* nocapture) #0 ; Function Attrs: nounwind readnone declare i32 @llvm.ctpop.i32(i32) #1 ; Function Attrs: nounwind readnone declare i32 @llvm.bswap.i32(i32) #1 ; Function Attrs: nounwind readnone declare i64 @llvm.bswap.i64(i64) #1 ; Function Attrs: nounwind readnone declare i32 @llvm.cttz.i32(i32, i1) #1 ; Function Attrs: nounwind readnone declare i64 @llvm.cttz.i64(i64, i1) #1 ; Function Attrs: nounwind readnone declare i32 @llvm.ctlz.i32(i32, i1) #1 ; Function Attrs: nounwind readnone declare i64 @llvm.ctlz.i64(i64, i1) #1 ; Function Attrs: argmemonly nounwind declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1) #0 ; Function Attrs: nounwind readnone declare double @llvm.nearbyint.f64(double) #1 ; Function Attrs: nounwind readnone declare double @llvm.fabs.f64(double) #1 ; Function Attrs: nounwind readnone declare <4 x double> @llvm.nearbyint.v4f64(<4 x double>) #1 ; Function Attrs: nounwind readnone declare <4 x double> @llvm.fabs.v4f64(<4 x double>) #1 ; Function Attrs: nounwind readnone declare double @llvm.trunc.f64(double) #1 ; Function Attrs: nounwind readnone declare <4 x double> @llvm.trunc.v4f64(<4 x double>) #1 ; Function Attrs: nounwind readnone declare float @llvm.nearbyint.f32(float) #1 ; Function Attrs: nounwind readnone declare float @llvm.fabs.f32(float) #1 ; Function Attrs: nounwind readnone declare <4 x float> @llvm.nearbyint.v4f32(<4 x float>) #1 ; Function Attrs: nounwind readnone declare <4 x float> @llvm.fabs.v4f32(<4 x float>) #1 ; Function Attrs: nounwind readnone declare float @llvm.trunc.f32(float) #1 ; Function Attrs: nounwind readnone declare <4 x float> @llvm.trunc.v4f32(<4 x float>) #1 ; Function Attrs: argmemonly nounwind declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i32, i1) #0 declare double @atan(double) local_unnamed_addr declare double @cos(double) local_unnamed_addr declare double @sin(double) local_unnamed_addr declare double @sqrt(double) local_unnamed_addr declare double @tan(double) local_unnamed_addr declare extern_weak x86_64_sysvcc i64 @abort() declare extern_weak x86_64_sysvcc i64 @abs(i64) declare extern_weak x86_64_sysvcc i64 @asin(i64) declare extern_weak x86_64_sysvcc i64 @atof(i64) declare extern_weak x86_64_sysvcc i64 @atoi(i64) declare extern_weak x86_64_sysvcc i64 @atol(i64) declare extern_weak x86_64_sysvcc i64 @calloc(i64, i64) declare extern_weak x86_64_sysvcc i64 @clock() declare extern_weak x86_64_sysvcc i64 @cosf(i64) declare extern_weak x86_64_sysvcc i64 @exit(i64) declare extern_weak x86_64_sysvcc i64 @exp(i64) declare extern_weak x86_64_sysvcc i64 @fflush(i64) declare extern_weak x86_64_sysvcc i64 @floor(i64) declare extern_weak x86_64_sysvcc i64 @fprintf(i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64) declare extern_weak x86_64_sysvcc i64 @fputs(i64, i64) declare extern_weak x86_64_sysvcc i64 @free(i64) declare extern_weak x86_64_sysvcc i64 @fwrite(i64, i64, i64, i64) declare extern_weak x86_64_sysvcc i64 @getchar() declare extern_weak x86_64_sysvcc i64 @gettimeofday(i64, i64) declare extern_weak x86_64_sysvcc i64 @__isoc99_fscanf(i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64) declare extern_weak x86_64_sysvcc i64 @__isoc99_scanf(i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64) declare extern_weak x86_64_sysvcc i64 @__isoc99_sscanf(i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64) declare extern_weak x86_64_sysvcc i64 @log(i64) declare extern_weak x86_64_sysvcc i64 @lrand48() declare extern_weak x86_64_sysvcc i64 @malloc(i64) declare extern_weak x86_64_sysvcc i64 @memalign(i64, i64) declare extern_weak x86_64_sysvcc i64 @memcpy(i64, i64, i64) declare extern_weak x86_64_sysvcc i64 @memset(i64, i64, i64) declare extern_weak x86_64_sysvcc i64 @perror(i64) declare extern_weak x86_64_sysvcc i64 @posix_memalign(i64, i64, i64) declare extern_weak x86_64_sysvcc i64 @pow(i64, i64) declare extern_weak x86_64_sysvcc i64 @printf(i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64) declare extern_weak x86_64_sysvcc i64 @putchar(i64) declare extern_weak x86_64_sysvcc i64 @puts(i64) declare extern_weak x86_64_sysvcc i64 @rand() declare extern_weak x86_64_sysvcc i64 @random() declare extern_weak x86_64_sysvcc i64 @realloc(i64, i64) declare extern_weak x86_64_sysvcc i64 @seed48(i64) declare extern_weak x86_64_sysvcc i64 @sinf(i64) declare extern_weak x86_64_sysvcc i64 @sprintf(i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64) declare extern_weak x86_64_sysvcc i64 @srand(i64) declare extern_weak x86_64_sysvcc i64 @strcat(i64, i64) declare extern_weak x86_64_sysvcc i64 @strcmp(i64, i64) declare extern_weak x86_64_sysvcc i64 @strcpy(i64, i64) declare extern_weak x86_64_sysvcc i64 @strdup(i64) declare extern_weak x86_64_sysvcc i64 @strlen(i64) declare extern_weak x86_64_sysvcc i64 @strncmp(i64, i64, i64) declare extern_weak x86_64_sysvcc i64 @strtoll(i64, i64, i64) declare extern_weak x86_64_sysvcc i64 @time(i64) declare extern_weak x86_64_sysvcc i64 @ungetc(i64, i64) declare extern_weak x86_64_sysvcc i64 @pthread_join(i64, i64) declare extern_weak x86_64_sysvcc i64 @pthread_create(i64, i64, i64, i64) declare %struct.Memory* @__remill_function_call(%struct.State* dereferenceable(3376), i64, %struct.Memory*) declare %struct.Memory* @ext_sqrt(%struct.State* noalias dereferenceable(3376), i64, %struct.Memory* noalias) declare %struct.Memory* @ext_atan(%struct.State* noalias dereferenceable(3376), i64, %struct.Memory* noalias) declare %struct.Memory* @ext_cos(%struct.State* noalias dereferenceable(3376), i64, %struct.Memory* noalias) declare %struct.Memory* @ext_tan(%struct.State* noalias dereferenceable(3376), i64, %struct.Memory* noalias) declare %struct.Memory* @ext_sin(%struct.State* noalias dereferenceable(3376), i64, %struct.Memory* noalias) declare %struct.Memory* @sub_421970.comp_to_san(%struct.State* noalias dereferenceable(3376), i64, %struct.Memory* noalias readnone returned) declare %struct.Memory* @sub_40b730.make(%struct.State* noalias dereferenceable(3376), i64, %struct.Memory* noalias readnone returned) declare %struct.Memory* @sub_423140.hash_extract_pv(%struct.State* noalias dereferenceable(3376), i64, %struct.Memory* noalias readnone returned) declare %struct.Memory* @sub_40c7a0.unmake(%struct.State* noalias dereferenceable(3376), i64, %struct.Memory* noalias readnone returned) ; Function Attrs: alwaysinline define %struct.Memory* @stringize_pv(%struct.State* noalias, i64, %struct.Memory* noalias) #2 { entry: %3 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 33, i32 0, i32 0 store i64 %1, i64* %3, align 8 %BRANCH_TAKEN = alloca i8, align 1 store i8 0, i8* %BRANCH_TAKEN, align 1 %MEMORY = alloca %struct.Memory*, align 8 store %struct.Memory* %2, %struct.Memory** %MEMORY, align 8 %loadMem_4232b0 = load %struct.Memory*, %struct.Memory** %MEMORY %4 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %5 = getelementptr inbounds %struct.GPR, %struct.GPR* %4, i32 0, i32 33 %6 = getelementptr inbounds %struct.Reg, %struct.Reg* %5, i32 0, i32 0 %PC.i = bitcast %union.anon* %6 to i64* %7 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %8 = getelementptr inbounds %struct.GPR, %struct.GPR* %7, i32 0, i32 15 %9 = getelementptr inbounds %struct.Reg, %struct.Reg* %8, i32 0, i32 0 %RBP.i = bitcast %union.anon* %9 to i64* %10 = load i64, i64* %RBP.i %11 = load i64, i64* %PC.i %12 = add i64 %11, 1 store i64 %12, i64* %PC.i %13 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 13, i32 0, i32 0 %14 = load i64, i64* %13, align 8 %15 = add i64 %14, -8 %16 = inttoptr i64 %15 to i64* store i64 %10, i64* %16 store i64 %15, i64* %13, align 8 store %struct.Memory* %loadMem_4232b0, %struct.Memory** %MEMORY %loadMem_4232b1 = load %struct.Memory*, %struct.Memory** %MEMORY %17 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %18 = getelementptr inbounds %struct.GPR, %struct.GPR* %17, i32 0, i32 33 %19 = getelementptr inbounds %struct.Reg, %struct.Reg* %18, i32 0, i32 0 %PC.i54 = bitcast %union.anon* %19 to i64* %20 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %21 = getelementptr inbounds %struct.GPR, %struct.GPR* %20, i32 0, i32 13 %22 = getelementptr inbounds %struct.Reg, %struct.Reg* %21, i32 0, i32 0 %RSP.i55 = bitcast %union.anon* %22 to i64* %23 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %24 = getelementptr inbounds %struct.GPR, %struct.GPR* %23, i32 0, i32 15 %25 = getelementptr inbounds %struct.Reg, %struct.Reg* %24, i32 0, i32 0 %RBP.i56 = bitcast %union.anon* %25 to i64* %26 = load i64, i64* %RSP.i55 %27 = load i64, i64* %PC.i54 %28 = add i64 %27, 3 store i64 %28, i64* %PC.i54 store i64 %26, i64* %RBP.i56, align 8 store %struct.Memory* %loadMem_4232b1, %struct.Memory** %MEMORY %loadMem_4232b4 = load %struct.Memory*, %struct.Memory** %MEMORY %29 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %30 = getelementptr inbounds %struct.GPR, %struct.GPR* %29, i32 0, i32 33 %31 = getelementptr inbounds %struct.Reg, %struct.Reg* %30, i32 0, i32 0 %PC.i66 = bitcast %union.anon* %31 to i64* %32 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %33 = getelementptr inbounds %struct.GPR, %struct.GPR* %32, i32 0, i32 13 %34 = getelementptr inbounds %struct.Reg, %struct.Reg* %33, i32 0, i32 0 %RSP.i67 = bitcast %union.anon* %34 to i64* %35 = load i64, i64* %RSP.i67 %36 = load i64, i64* %PC.i66 %37 = add i64 %36, 7 store i64 %37, i64* %PC.i66 %38 = sub i64 %35, 320 store i64 %38, i64* %RSP.i67, align 8 %39 = icmp ult i64 %35, 320 %40 = zext i1 %39 to i8 %41 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 %40, i8* %41, align 1 %42 = trunc i64 %38 to i32 %43 = and i32 %42, 255 %44 = call i32 @llvm.ctpop.i32(i32 %43) %45 = trunc i32 %44 to i8 %46 = and i8 %45, 1 %47 = xor i8 %46, 1 %48 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %47, i8* %48, align 1 %49 = xor i64 320, %35 %50 = xor i64 %49, %38 %51 = lshr i64 %50, 4 %52 = trunc i64 %51 to i8 %53 = and i8 %52, 1 %54 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 %53, i8* %54, align 1 %55 = icmp eq i64 %38, 0 %56 = zext i1 %55 to i8 %57 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %56, i8* %57, align 1 %58 = lshr i64 %38, 63 %59 = trunc i64 %58 to i8 %60 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %59, i8* %60, align 1 %61 = lshr i64 %35, 63 %62 = xor i64 %58, %61 %63 = add i64 %62, %61 %64 = icmp eq i64 %63, 2 %65 = zext i1 %64 to i8 %66 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 %65, i8* %66, align 1 store %struct.Memory* %loadMem_4232b4, %struct.Memory** %MEMORY %loadMem_4232bb = load %struct.Memory*, %struct.Memory** %MEMORY %67 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %68 = getelementptr inbounds %struct.GPR, %struct.GPR* %67, i32 0, i32 33 %69 = getelementptr inbounds %struct.Reg, %struct.Reg* %68, i32 0, i32 0 %PC.i135 = bitcast %union.anon* %69 to i64* %70 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %71 = getelementptr inbounds %struct.GPR, %struct.GPR* %70, i32 0, i32 9 %72 = getelementptr inbounds %struct.Reg, %struct.Reg* %71, i32 0, i32 0 %ESI.i136 = bitcast %union.anon* %72 to i32* %73 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %74 = getelementptr inbounds %struct.GPR, %struct.GPR* %73, i32 0, i32 9 %75 = getelementptr inbounds %struct.Reg, %struct.Reg* %74, i32 0, i32 0 %RSI.i137 = bitcast %union.anon* %75 to i64* %76 = load i64, i64* %RSI.i137 %77 = load i32, i32* %ESI.i136 %78 = zext i32 %77 to i64 %79 = load i64, i64* %PC.i135 %80 = add i64 %79, 2 store i64 %80, i64* %PC.i135 %81 = xor i64 %78, %76 %82 = trunc i64 %81 to i32 %83 = and i64 %81, 4294967295 store i64 %83, i64* %RSI.i137, align 8 %84 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 0, i8* %84, align 1 %85 = and i32 %82, 255 %86 = call i32 @llvm.ctpop.i32(i32 %85) %87 = trunc i32 %86 to i8 %88 = and i8 %87, 1 %89 = xor i8 %88, 1 %90 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %89, i8* %90, align 1 %91 = icmp eq i32 %82, 0 %92 = zext i1 %91 to i8 %93 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %92, i8* %93, align 1 %94 = lshr i32 %82, 31 %95 = trunc i32 %94 to i8 %96 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %95, i8* %96, align 1 %97 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 0, i8* %97, align 1 %98 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 0, i8* %98, align 1 store %struct.Memory* %loadMem_4232bb, %struct.Memory** %MEMORY %loadMem_4232bd = load %struct.Memory*, %struct.Memory** %MEMORY %99 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %100 = getelementptr inbounds %struct.GPR, %struct.GPR* %99, i32 0, i32 33 %101 = getelementptr inbounds %struct.Reg, %struct.Reg* %100, i32 0, i32 0 %PC.i147 = bitcast %union.anon* %101 to i64* %102 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %103 = getelementptr inbounds %struct.GPR, %struct.GPR* %102, i32 0, i32 1 %104 = getelementptr inbounds %struct.Reg, %struct.Reg* %103, i32 0, i32 0 %RAX.i148 = bitcast %union.anon* %104 to i64* %105 = load i64, i64* %PC.i147 %106 = add i64 %105, 5 store i64 %106, i64* %PC.i147 store i64 256, i64* %RAX.i148, align 8 store %struct.Memory* %loadMem_4232bd, %struct.Memory** %MEMORY %loadMem_4232c2 = load %struct.Memory*, %struct.Memory** %MEMORY %107 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %108 = getelementptr inbounds %struct.GPR, %struct.GPR* %107, i32 0, i32 33 %109 = getelementptr inbounds %struct.Reg, %struct.Reg* %108, i32 0, i32 0 %PC.i145 = bitcast %union.anon* %109 to i64* %110 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %111 = getelementptr inbounds %struct.GPR, %struct.GPR* %110, i32 0, i32 1 %112 = getelementptr inbounds %struct.Reg, %struct.Reg* %111, i32 0, i32 0 %EAX.i146 = bitcast %union.anon* %112 to i32* %113 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %114 = getelementptr inbounds %struct.GPR, %struct.GPR* %113, i32 0, i32 7 %115 = getelementptr inbounds %struct.Reg, %struct.Reg* %114, i32 0, i32 0 %RDX.i = bitcast %union.anon* %115 to i64* %116 = load i32, i32* %EAX.i146 %117 = zext i32 %116 to i64 %118 = load i64, i64* %PC.i145 %119 = add i64 %118, 2 store i64 %119, i64* %PC.i145 %120 = and i64 %117, 4294967295 store i64 %120, i64* %RDX.i, align 8 store %struct.Memory* %loadMem_4232c2, %struct.Memory** %MEMORY %loadMem_4232c4 = load %struct.Memory*, %struct.Memory** %MEMORY %121 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %122 = getelementptr inbounds %struct.GPR, %struct.GPR* %121, i32 0, i32 33 %123 = getelementptr inbounds %struct.Reg, %struct.Reg* %122, i32 0, i32 0 %PC.i142 = bitcast %union.anon* %123 to i64* %124 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %125 = getelementptr inbounds %struct.GPR, %struct.GPR* %124, i32 0, i32 11 %126 = getelementptr inbounds %struct.Reg, %struct.Reg* %125, i32 0, i32 0 %RDI.i143 = bitcast %union.anon* %126 to i64* %127 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %128 = getelementptr inbounds %struct.GPR, %struct.GPR* %127, i32 0, i32 15 %129 = getelementptr inbounds %struct.Reg, %struct.Reg* %128, i32 0, i32 0 %RBP.i144 = bitcast %union.anon* %129 to i64* %130 = load i64, i64* %RBP.i144 %131 = sub i64 %130, 8 %132 = load i64, i64* %RDI.i143 %133 = load i64, i64* %PC.i142 %134 = add i64 %133, 4 store i64 %134, i64* %PC.i142 %135 = inttoptr i64 %131 to i64* store i64 %132, i64* %135 store %struct.Memory* %loadMem_4232c4, %struct.Memory** %MEMORY %loadMem_4232c8 = load %struct.Memory*, %struct.Memory** %MEMORY %136 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %137 = getelementptr inbounds %struct.GPR, %struct.GPR* %136, i32 0, i32 33 %138 = getelementptr inbounds %struct.Reg, %struct.Reg* %137, i32 0, i32 0 %PC.i139 = bitcast %union.anon* %138 to i64* %139 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %140 = getelementptr inbounds %struct.GPR, %struct.GPR* %139, i32 0, i32 11 %141 = getelementptr inbounds %struct.Reg, %struct.Reg* %140, i32 0, i32 0 %RDI.i140 = bitcast %union.anon* %141 to i64* %142 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %143 = getelementptr inbounds %struct.GPR, %struct.GPR* %142, i32 0, i32 15 %144 = getelementptr inbounds %struct.Reg, %struct.Reg* %143, i32 0, i32 0 %RBP.i141 = bitcast %union.anon* %144 to i64* %145 = load i64, i64* %RBP.i141 %146 = sub i64 %145, 8 %147 = load i64, i64* %PC.i139 %148 = add i64 %147, 4 store i64 %148, i64* %PC.i139 %149 = inttoptr i64 %146 to i64* %150 = load i64, i64* %149 store i64 %150, i64* %RDI.i140, align 8 store %struct.Memory* %loadMem_4232c8, %struct.Memory** %MEMORY %loadMem1_4232cc = load %struct.Memory*, %struct.Memory** %MEMORY %151 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %152 = getelementptr inbounds %struct.GPR, %struct.GPR* %151, i32 0, i32 33 %153 = getelementptr inbounds %struct.Reg, %struct.Reg* %152, i32 0, i32 0 %PC.i138 = bitcast %union.anon* %153 to i64* %154 = load i64, i64* %PC.i138 %155 = add i64 %154, -140796 %156 = load i64, i64* %PC.i138 %157 = add i64 %156, 5 %158 = load i64, i64* %PC.i138 %159 = add i64 %158, 5 store i64 %159, i64* %PC.i138 %160 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 13, i32 0, i32 0 %161 = load i64, i64* %160, align 8 %162 = add i64 %161, -8 %163 = inttoptr i64 %162 to i64* store i64 %157, i64* %163 store i64 %162, i64* %160, align 8 %164 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 33, i32 0, i32 0 store i64 %155, i64* %164, align 8 store %struct.Memory* %loadMem1_4232cc, %struct.Memory** %MEMORY %loadMem2_4232cc = load %struct.Memory*, %struct.Memory** %MEMORY %loadPC_4232cc = load i64, i64* %3 %165 = call %struct.Memory* @__remill_function_call(%struct.State* %0, i64 ptrtoint (i64 (i64, i64, i64)* @memset to i64), %struct.Memory* %loadMem2_4232cc) store %struct.Memory* %165, %struct.Memory** %MEMORY %loadMem_4232d1 = load %struct.Memory*, %struct.Memory** %MEMORY %166 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %167 = getelementptr inbounds %struct.GPR, %struct.GPR* %166, i32 0, i32 33 %168 = getelementptr inbounds %struct.Reg, %struct.Reg* %167, i32 0, i32 0 %PC.i133 = bitcast %union.anon* %168 to i64* %169 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %170 = getelementptr inbounds %struct.GPR, %struct.GPR* %169, i32 0, i32 15 %171 = getelementptr inbounds %struct.Reg, %struct.Reg* %170, i32 0, i32 0 %RBP.i134 = bitcast %union.anon* %171 to i64* %172 = load i64, i64* %RBP.i134 %173 = sub i64 %172, 276 %174 = load i64, i64* %PC.i133 %175 = add i64 %174, 10 store i64 %175, i64* %PC.i133 %176 = inttoptr i64 %173 to i32* store i32 1, i32* %176 store %struct.Memory* %loadMem_4232d1, %struct.Memory** %MEMORY br label %block_.L_4232db block_.L_4232db: ; preds = %block_4232ee, %entry %loadMem_4232db = load %struct.Memory*, %struct.Memory** %MEMORY %177 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %178 = getelementptr inbounds %struct.GPR, %struct.GPR* %177, i32 0, i32 33 %179 = getelementptr inbounds %struct.Reg, %struct.Reg* %178, i32 0, i32 0 %PC.i130 = bitcast %union.anon* %179 to i64* %180 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %181 = getelementptr inbounds %struct.GPR, %struct.GPR* %180, i32 0, i32 1 %182 = getelementptr inbounds %struct.Reg, %struct.Reg* %181, i32 0, i32 0 %RAX.i131 = bitcast %union.anon* %182 to i64* %183 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %184 = getelementptr inbounds %struct.GPR, %struct.GPR* %183, i32 0, i32 15 %185 = getelementptr inbounds %struct.Reg, %struct.Reg* %184, i32 0, i32 0 %RBP.i132 = bitcast %union.anon* %185 to i64* %186 = load i64, i64* %RBP.i132 %187 = sub i64 %186, 276 %188 = load i64, i64* %PC.i130 %189 = add i64 %188, 6 store i64 %189, i64* %PC.i130 %190 = inttoptr i64 %187 to i32* %191 = load i32, i32* %190 %192 = zext i32 %191 to i64 store i64 %192, i64* %RAX.i131, align 8 store %struct.Memory* %loadMem_4232db, %struct.Memory** %MEMORY %loadMem_4232e1 = load %struct.Memory*, %struct.Memory** %MEMORY %193 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %194 = getelementptr inbounds %struct.GPR, %struct.GPR* %193, i32 0, i32 33 %195 = getelementptr inbounds %struct.Reg, %struct.Reg* %194, i32 0, i32 0 %PC.i128 = bitcast %union.anon* %195 to i64* %196 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %197 = getelementptr inbounds %struct.GPR, %struct.GPR* %196, i32 0, i32 1 %198 = getelementptr inbounds %struct.Reg, %struct.Reg* %197, i32 0, i32 0 %EAX.i129 = bitcast %union.anon* %198 to i32* %199 = load i32, i32* %EAX.i129 %200 = zext i32 %199 to i64 %201 = load i64, i64* %PC.i128 %202 = add i64 %201, 7 store i64 %202, i64* %PC.i128 %203 = load i32, i32* bitcast (%G_0x86b8b4_type* @G_0x86b8b4 to i32*) %204 = sub i32 %199, %203 %205 = icmp ult i32 %199, %203 %206 = zext i1 %205 to i8 %207 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 %206, i8* %207, align 1 %208 = and i32 %204, 255 %209 = call i32 @llvm.ctpop.i32(i32 %208) %210 = trunc i32 %209 to i8 %211 = and i8 %210, 1 %212 = xor i8 %211, 1 %213 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %212, i8* %213, align 1 %214 = xor i32 %203, %199 %215 = xor i32 %214, %204 %216 = lshr i32 %215, 4 %217 = trunc i32 %216 to i8 %218 = and i8 %217, 1 %219 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 %218, i8* %219, align 1 %220 = icmp eq i32 %204, 0 %221 = zext i1 %220 to i8 %222 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %221, i8* %222, align 1 %223 = lshr i32 %204, 31 %224 = trunc i32 %223 to i8 %225 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %224, i8* %225, align 1 %226 = lshr i32 %199, 31 %227 = lshr i32 %203, 31 %228 = xor i32 %227, %226 %229 = xor i32 %223, %226 %230 = add i32 %229, %228 %231 = icmp eq i32 %230, 2 %232 = zext i1 %231 to i8 %233 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 %232, i8* %233, align 1 store %struct.Memory* %loadMem_4232e1, %struct.Memory** %MEMORY %loadMem_4232e8 = load %struct.Memory*, %struct.Memory** %MEMORY %234 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %235 = getelementptr inbounds %struct.GPR, %struct.GPR* %234, i32 0, i32 33 %236 = getelementptr inbounds %struct.Reg, %struct.Reg* %235, i32 0, i32 0 %PC.i127 = bitcast %union.anon* %236 to i64* %237 = load i64, i64* %PC.i127 %238 = add i64 %237, 182 %239 = load i64, i64* %PC.i127 %240 = add i64 %239, 6 %241 = load i64, i64* %PC.i127 %242 = add i64 %241, 6 store i64 %242, i64* %PC.i127 %243 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 %244 = load i8, i8* %243, align 1 %245 = icmp ne i8 %244, 0 %246 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 %247 = load i8, i8* %246, align 1 %248 = icmp ne i8 %247, 0 %249 = xor i1 %245, %248 %250 = xor i1 %249, true %251 = zext i1 %250 to i8 store i8 %251, i8* %BRANCH_TAKEN, align 1 %252 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 33, i32 0, i32 0 %253 = select i1 %249, i64 %240, i64 %238 store i64 %253, i64* %252, align 8 store %struct.Memory* %loadMem_4232e8, %struct.Memory** %MEMORY %loadBr_4232e8 = load i8, i8* %BRANCH_TAKEN %cmpBr_4232e8 = icmp eq i8 %loadBr_4232e8, 1 br i1 %cmpBr_4232e8, label %block_.L_42339e, label %block_4232ee block_4232ee: ; preds = %block_.L_4232db %loadMem_4232ee = load %struct.Memory*, %struct.Memory** %MEMORY %254 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %255 = getelementptr inbounds %struct.GPR, %struct.GPR* %254, i32 0, i32 33 %256 = getelementptr inbounds %struct.Reg, %struct.Reg* %255, i32 0, i32 0 %PC.i124 = bitcast %union.anon* %256 to i64* %257 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %258 = getelementptr inbounds %struct.GPR, %struct.GPR* %257, i32 0, i32 11 %259 = getelementptr inbounds %struct.Reg, %struct.Reg* %258, i32 0, i32 0 %RDI.i125 = bitcast %union.anon* %259 to i64* %260 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %261 = getelementptr inbounds %struct.GPR, %struct.GPR* %260, i32 0, i32 15 %262 = getelementptr inbounds %struct.Reg, %struct.Reg* %261, i32 0, i32 0 %RBP.i126 = bitcast %union.anon* %262 to i64* %263 = load i64, i64* %RBP.i126 %264 = sub i64 %263, 272 %265 = load i64, i64* %PC.i124 %266 = add i64 %265, 7 store i64 %266, i64* %PC.i124 store i64 %264, i64* %RDI.i125, align 8 store %struct.Memory* %loadMem_4232ee, %struct.Memory** %MEMORY %loadMem_4232f5 = load %struct.Memory*, %struct.Memory** %MEMORY %267 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %268 = getelementptr inbounds %struct.GPR, %struct.GPR* %267, i32 0, i32 33 %269 = getelementptr inbounds %struct.Reg, %struct.Reg* %268, i32 0, i32 0 %PC.i122 = bitcast %union.anon* %269 to i64* %270 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %271 = getelementptr inbounds %struct.GPR, %struct.GPR* %270, i32 0, i32 1 %272 = getelementptr inbounds %struct.Reg, %struct.Reg* %271, i32 0, i32 0 %RAX.i123 = bitcast %union.anon* %272 to i64* %273 = load i64, i64* %PC.i122 %274 = add i64 %273, 10 store i64 %274, i64* %PC.i122 store i64 ptrtoint (%G__0x63ae50_type* @G__0x63ae50 to i64), i64* %RAX.i123, align 8 store %struct.Memory* %loadMem_4232f5, %struct.Memory** %MEMORY %loadMem_4232ff = load %struct.Memory*, %struct.Memory** %MEMORY %275 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %276 = getelementptr inbounds %struct.GPR, %struct.GPR* %275, i32 0, i32 33 %277 = getelementptr inbounds %struct.Reg, %struct.Reg* %276, i32 0, i32 0 %PC.i120 = bitcast %union.anon* %277 to i64* %278 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %279 = getelementptr inbounds %struct.GPR, %struct.GPR* %278, i32 0, i32 1 %280 = getelementptr inbounds %struct.Reg, %struct.Reg* %279, i32 0, i32 0 %RAX.i121 = bitcast %union.anon* %280 to i64* %281 = load i64, i64* %RAX.i121 %282 = load i64, i64* %PC.i120 %283 = add i64 %282, 6 store i64 %283, i64* %PC.i120 %284 = add i64 7200, %281 store i64 %284, i64* %RAX.i121, align 8 %285 = icmp ult i64 %284, %281 %286 = icmp ult i64 %284, 7200 %287 = or i1 %285, %286 %288 = zext i1 %287 to i8 %289 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 %288, i8* %289, align 1 %290 = trunc i64 %284 to i32 %291 = and i32 %290, 255 %292 = call i32 @llvm.ctpop.i32(i32 %291) %293 = trunc i32 %292 to i8 %294 = and i8 %293, 1 %295 = xor i8 %294, 1 %296 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %295, i8* %296, align 1 %297 = xor i64 7200, %281 %298 = xor i64 %297, %284 %299 = lshr i64 %298, 4 %300 = trunc i64 %299 to i8 %301 = and i8 %300, 1 %302 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 %301, i8* %302, align 1 %303 = icmp eq i64 %284, 0 %304 = zext i1 %303 to i8 %305 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %304, i8* %305, align 1 %306 = lshr i64 %284, 63 %307 = trunc i64 %306 to i8 %308 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %307, i8* %308, align 1 %309 = lshr i64 %281, 63 %310 = xor i64 %306, %309 %311 = add i64 %310, %306 %312 = icmp eq i64 %311, 2 %313 = zext i1 %312 to i8 %314 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 %313, i8* %314, align 1 store %struct.Memory* %loadMem_4232ff, %struct.Memory** %MEMORY %loadMem_423305 = load %struct.Memory*, %struct.Memory** %MEMORY %315 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %316 = getelementptr inbounds %struct.GPR, %struct.GPR* %315, i32 0, i32 33 %317 = getelementptr inbounds %struct.Reg, %struct.Reg* %316, i32 0, i32 0 %PC.i117 = bitcast %union.anon* %317 to i64* %318 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %319 = getelementptr inbounds %struct.GPR, %struct.GPR* %318, i32 0, i32 5 %320 = getelementptr inbounds %struct.Reg, %struct.Reg* %319, i32 0, i32 0 %RCX.i118 = bitcast %union.anon* %320 to i64* %321 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %322 = getelementptr inbounds %struct.GPR, %struct.GPR* %321, i32 0, i32 15 %323 = getelementptr inbounds %struct.Reg, %struct.Reg* %322, i32 0, i32 0 %RBP.i119 = bitcast %union.anon* %323 to i64* %324 = load i64, i64* %RBP.i119 %325 = sub i64 %324, 276 %326 = load i64, i64* %PC.i117 %327 = add i64 %326, 7 store i64 %327, i64* %PC.i117 %328 = inttoptr i64 %325 to i32* %329 = load i32, i32* %328 %330 = sext i32 %329 to i64 store i64 %330, i64* %RCX.i118, align 8 store %struct.Memory* %loadMem_423305, %struct.Memory** %MEMORY %loadMem_42330c = load %struct.Memory*, %struct.Memory** %MEMORY %331 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %332 = getelementptr inbounds %struct.GPR, %struct.GPR* %331, i32 0, i32 33 %333 = getelementptr inbounds %struct.Reg, %struct.Reg* %332, i32 0, i32 0 %PC.i115 = bitcast %union.anon* %333 to i64* %334 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %335 = getelementptr inbounds %struct.GPR, %struct.GPR* %334, i32 0, i32 5 %336 = getelementptr inbounds %struct.Reg, %struct.Reg* %335, i32 0, i32 0 %RCX.i116 = bitcast %union.anon* %336 to i64* %337 = load i64, i64* %RCX.i116 %338 = load i64, i64* %PC.i115 %339 = add i64 %338, 4 store i64 %339, i64* %PC.i115 %340 = sext i64 %337 to i128 %341 = and i128 %340, -18446744073709551616 %342 = zext i64 %337 to i128 %343 = or i128 %341, %342 %344 = mul i128 24, %343 %345 = trunc i128 %344 to i64 store i64 %345, i64* %RCX.i116, align 8 %346 = sext i64 %345 to i128 %347 = icmp ne i128 %346, %344 %348 = zext i1 %347 to i8 %349 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 %348, i8* %349, align 1 %350 = trunc i128 %344 to i32 %351 = and i32 %350, 255 %352 = call i32 @llvm.ctpop.i32(i32 %351) %353 = trunc i32 %352 to i8 %354 = and i8 %353, 1 %355 = xor i8 %354, 1 %356 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %355, i8* %356, align 1 %357 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 0, i8* %357, align 1 %358 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 0, i8* %358, align 1 %359 = lshr i64 %345, 63 %360 = trunc i64 %359 to i8 %361 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %360, i8* %361, align 1 %362 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 %348, i8* %362, align 1 store %struct.Memory* %loadMem_42330c, %struct.Memory** %MEMORY %loadMem_423310 = load %struct.Memory*, %struct.Memory** %MEMORY %363 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %364 = getelementptr inbounds %struct.GPR, %struct.GPR* %363, i32 0, i32 33 %365 = getelementptr inbounds %struct.Reg, %struct.Reg* %364, i32 0, i32 0 %PC.i112 = bitcast %union.anon* %365 to i64* %366 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %367 = getelementptr inbounds %struct.GPR, %struct.GPR* %366, i32 0, i32 1 %368 = getelementptr inbounds %struct.Reg, %struct.Reg* %367, i32 0, i32 0 %RAX.i113 = bitcast %union.anon* %368 to i64* %369 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %370 = getelementptr inbounds %struct.GPR, %struct.GPR* %369, i32 0, i32 5 %371 = getelementptr inbounds %struct.Reg, %struct.Reg* %370, i32 0, i32 0 %RCX.i114 = bitcast %union.anon* %371 to i64* %372 = load i64, i64* %RAX.i113 %373 = load i64, i64* %RCX.i114 %374 = load i64, i64* %PC.i112 %375 = add i64 %374, 3 store i64 %375, i64* %PC.i112 %376 = add i64 %373, %372 store i64 %376, i64* %RAX.i113, align 8 %377 = icmp ult i64 %376, %372 %378 = icmp ult i64 %376, %373 %379 = or i1 %377, %378 %380 = zext i1 %379 to i8 %381 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 %380, i8* %381, align 1 %382 = trunc i64 %376 to i32 %383 = and i32 %382, 255 %384 = call i32 @llvm.ctpop.i32(i32 %383) %385 = trunc i32 %384 to i8 %386 = and i8 %385, 1 %387 = xor i8 %386, 1 %388 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %387, i8* %388, align 1 %389 = xor i64 %373, %372 %390 = xor i64 %389, %376 %391 = lshr i64 %390, 4 %392 = trunc i64 %391 to i8 %393 = and i8 %392, 1 %394 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 %393, i8* %394, align 1 %395 = icmp eq i64 %376, 0 %396 = zext i1 %395 to i8 %397 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %396, i8* %397, align 1 %398 = lshr i64 %376, 63 %399 = trunc i64 %398 to i8 %400 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %399, i8* %400, align 1 %401 = lshr i64 %372, 63 %402 = lshr i64 %373, 63 %403 = xor i64 %398, %401 %404 = xor i64 %398, %402 %405 = add i64 %403, %404 %406 = icmp eq i64 %405, 2 %407 = zext i1 %406 to i8 %408 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 %407, i8* %408, align 1 store %struct.Memory* %loadMem_423310, %struct.Memory** %MEMORY %loadMem_423313 = load %struct.Memory*, %struct.Memory** %MEMORY %409 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %410 = getelementptr inbounds %struct.GPR, %struct.GPR* %409, i32 0, i32 33 %411 = getelementptr inbounds %struct.Reg, %struct.Reg* %410, i32 0, i32 0 %PC.i109 = bitcast %union.anon* %411 to i64* %412 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %413 = getelementptr inbounds %struct.GPR, %struct.GPR* %412, i32 0, i32 1 %414 = getelementptr inbounds %struct.Reg, %struct.Reg* %413, i32 0, i32 0 %RAX.i110 = bitcast %union.anon* %414 to i64* %415 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %416 = getelementptr inbounds %struct.GPR, %struct.GPR* %415, i32 0, i32 5 %417 = getelementptr inbounds %struct.Reg, %struct.Reg* %416, i32 0, i32 0 %RCX.i111 = bitcast %union.anon* %417 to i64* %418 = load i64, i64* %RAX.i110 %419 = load i64, i64* %PC.i109 %420 = add i64 %419, 3 store i64 %420, i64* %PC.i109 %421 = inttoptr i64 %418 to i64* %422 = load i64, i64* %421 store i64 %422, i64* %RCX.i111, align 8 store %struct.Memory* %loadMem_423313, %struct.Memory** %MEMORY %loadMem_423316 = load %struct.Memory*, %struct.Memory** %MEMORY %423 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %424 = getelementptr inbounds %struct.GPR, %struct.GPR* %423, i32 0, i32 33 %425 = getelementptr inbounds %struct.Reg, %struct.Reg* %424, i32 0, i32 0 %PC.i106 = bitcast %union.anon* %425 to i64* %426 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %427 = getelementptr inbounds %struct.GPR, %struct.GPR* %426, i32 0, i32 5 %428 = getelementptr inbounds %struct.Reg, %struct.Reg* %427, i32 0, i32 0 %RCX.i107 = bitcast %union.anon* %428 to i64* %429 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %430 = getelementptr inbounds %struct.GPR, %struct.GPR* %429, i32 0, i32 13 %431 = getelementptr inbounds %struct.Reg, %struct.Reg* %430, i32 0, i32 0 %RSP.i108 = bitcast %union.anon* %431 to i64* %432 = load i64, i64* %RSP.i108 %433 = load i64, i64* %RCX.i107 %434 = load i64, i64* %PC.i106 %435 = add i64 %434, 4 store i64 %435, i64* %PC.i106 %436 = inttoptr i64 %432 to i64* store i64 %433, i64* %436 store %struct.Memory* %loadMem_423316, %struct.Memory** %MEMORY %loadMem_42331a = load %struct.Memory*, %struct.Memory** %MEMORY %437 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %438 = getelementptr inbounds %struct.GPR, %struct.GPR* %437, i32 0, i32 33 %439 = getelementptr inbounds %struct.Reg, %struct.Reg* %438, i32 0, i32 0 %PC.i103 = bitcast %union.anon* %439 to i64* %440 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %441 = getelementptr inbounds %struct.GPR, %struct.GPR* %440, i32 0, i32 1 %442 = getelementptr inbounds %struct.Reg, %struct.Reg* %441, i32 0, i32 0 %RAX.i104 = bitcast %union.anon* %442 to i64* %443 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %444 = getelementptr inbounds %struct.GPR, %struct.GPR* %443, i32 0, i32 5 %445 = getelementptr inbounds %struct.Reg, %struct.Reg* %444, i32 0, i32 0 %RCX.i105 = bitcast %union.anon* %445 to i64* %446 = load i64, i64* %RAX.i104 %447 = add i64 %446, 8 %448 = load i64, i64* %PC.i103 %449 = add i64 %448, 4 store i64 %449, i64* %PC.i103 %450 = inttoptr i64 %447 to i64* %451 = load i64, i64* %450 store i64 %451, i64* %RCX.i105, align 8 store %struct.Memory* %loadMem_42331a, %struct.Memory** %MEMORY %loadMem_42331e = load %struct.Memory*, %struct.Memory** %MEMORY %452 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %453 = getelementptr inbounds %struct.GPR, %struct.GPR* %452, i32 0, i32 33 %454 = getelementptr inbounds %struct.Reg, %struct.Reg* %453, i32 0, i32 0 %PC.i100 = bitcast %union.anon* %454 to i64* %455 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %456 = getelementptr inbounds %struct.GPR, %struct.GPR* %455, i32 0, i32 5 %457 = getelementptr inbounds %struct.Reg, %struct.Reg* %456, i32 0, i32 0 %RCX.i101 = bitcast %union.anon* %457 to i64* %458 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %459 = getelementptr inbounds %struct.GPR, %struct.GPR* %458, i32 0, i32 13 %460 = getelementptr inbounds %struct.Reg, %struct.Reg* %459, i32 0, i32 0 %RSP.i102 = bitcast %union.anon* %460 to i64* %461 = load i64, i64* %RSP.i102 %462 = add i64 %461, 8 %463 = load i64, i64* %RCX.i101 %464 = load i64, i64* %PC.i100 %465 = add i64 %464, 5 store i64 %465, i64* %PC.i100 %466 = inttoptr i64 %462 to i64* store i64 %463, i64* %466 store %struct.Memory* %loadMem_42331e, %struct.Memory** %MEMORY %loadMem_423323 = load %struct.Memory*, %struct.Memory** %MEMORY %467 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %468 = getelementptr inbounds %struct.GPR, %struct.GPR* %467, i32 0, i32 33 %469 = getelementptr inbounds %struct.Reg, %struct.Reg* %468, i32 0, i32 0 %PC.i98 = bitcast %union.anon* %469 to i64* %470 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %471 = getelementptr inbounds %struct.GPR, %struct.GPR* %470, i32 0, i32 1 %472 = getelementptr inbounds %struct.Reg, %struct.Reg* %471, i32 0, i32 0 %RAX.i99 = bitcast %union.anon* %472 to i64* %473 = load i64, i64* %RAX.i99 %474 = add i64 %473, 16 %475 = load i64, i64* %PC.i98 %476 = add i64 %475, 4 store i64 %476, i64* %PC.i98 %477 = inttoptr i64 %474 to i64* %478 = load i64, i64* %477 store i64 %478, i64* %RAX.i99, align 8 store %struct.Memory* %loadMem_423323, %struct.Memory** %MEMORY %loadMem_423327 = load %struct.Memory*, %struct.Memory** %MEMORY %479 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %480 = getelementptr inbounds %struct.GPR, %struct.GPR* %479, i32 0, i32 33 %481 = getelementptr inbounds %struct.Reg, %struct.Reg* %480, i32 0, i32 0 %PC.i95 = bitcast %union.anon* %481 to i64* %482 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %483 = getelementptr inbounds %struct.GPR, %struct.GPR* %482, i32 0, i32 1 %484 = getelementptr inbounds %struct.Reg, %struct.Reg* %483, i32 0, i32 0 %RAX.i96 = bitcast %union.anon* %484 to i64* %485 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %486 = getelementptr inbounds %struct.GPR, %struct.GPR* %485, i32 0, i32 13 %487 = getelementptr inbounds %struct.Reg, %struct.Reg* %486, i32 0, i32 0 %RSP.i97 = bitcast %union.anon* %487 to i64* %488 = load i64, i64* %RSP.i97 %489 = add i64 %488, 16 %490 = load i64, i64* %RAX.i96 %491 = load i64, i64* %PC.i95 %492 = add i64 %491, 5 store i64 %492, i64* %PC.i95 %493 = inttoptr i64 %489 to i64* store i64 %490, i64* %493 store %struct.Memory* %loadMem_423327, %struct.Memory** %MEMORY %loadMem1_42332c = load %struct.Memory*, %struct.Memory** %MEMORY %494 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %495 = getelementptr inbounds %struct.GPR, %struct.GPR* %494, i32 0, i32 33 %496 = getelementptr inbounds %struct.Reg, %struct.Reg* %495, i32 0, i32 0 %PC.i94 = bitcast %union.anon* %496 to i64* %497 = load i64, i64* %PC.i94 %498 = add i64 %497, -6588 %499 = load i64, i64* %PC.i94 %500 = add i64 %499, 5 %501 = load i64, i64* %PC.i94 %502 = add i64 %501, 5 store i64 %502, i64* %PC.i94 %503 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 13, i32 0, i32 0 %504 = load i64, i64* %503, align 8 %505 = add i64 %504, -8 %506 = inttoptr i64 %505 to i64* store i64 %500, i64* %506 store i64 %505, i64* %503, align 8 %507 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 33, i32 0, i32 0 store i64 %498, i64* %507, align 8 store %struct.Memory* %loadMem1_42332c, %struct.Memory** %MEMORY %loadMem2_42332c = load %struct.Memory*, %struct.Memory** %MEMORY %loadPC_42332c = load i64, i64* %3 %call2_42332c = call %struct.Memory* @sub_421970.comp_to_san(%struct.State* %0, i64 %loadPC_42332c, %struct.Memory* %loadMem2_42332c) store %struct.Memory* %call2_42332c, %struct.Memory** %MEMORY %loadMem_423331 = load %struct.Memory*, %struct.Memory** %MEMORY %508 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %509 = getelementptr inbounds %struct.GPR, %struct.GPR* %508, i32 0, i32 33 %510 = getelementptr inbounds %struct.Reg, %struct.Reg* %509, i32 0, i32 0 %PC.i91 = bitcast %union.anon* %510 to i64* %511 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %512 = getelementptr inbounds %struct.GPR, %struct.GPR* %511, i32 0, i32 9 %513 = getelementptr inbounds %struct.Reg, %struct.Reg* %512, i32 0, i32 0 %ESI.i92 = bitcast %union.anon* %513 to i32* %514 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %515 = getelementptr inbounds %struct.GPR, %struct.GPR* %514, i32 0, i32 9 %516 = getelementptr inbounds %struct.Reg, %struct.Reg* %515, i32 0, i32 0 %RSI.i93 = bitcast %union.anon* %516 to i64* %517 = load i64, i64* %RSI.i93 %518 = load i32, i32* %ESI.i92 %519 = zext i32 %518 to i64 %520 = load i64, i64* %PC.i91 %521 = add i64 %520, 2 store i64 %521, i64* %PC.i91 %522 = xor i64 %519, %517 %523 = trunc i64 %522 to i32 %524 = and i64 %522, 4294967295 store i64 %524, i64* %RSI.i93, align 8 %525 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 0, i8* %525, align 1 %526 = and i32 %523, 255 %527 = call i32 @llvm.ctpop.i32(i32 %526) %528 = trunc i32 %527 to i8 %529 = and i8 %528, 1 %530 = xor i8 %529, 1 %531 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %530, i8* %531, align 1 %532 = icmp eq i32 %523, 0 %533 = zext i1 %532 to i8 %534 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %533, i8* %534, align 1 %535 = lshr i32 %523, 31 %536 = trunc i32 %535 to i8 %537 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %536, i8* %537, align 1 %538 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 0, i8* %538, align 1 %539 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 0, i8* %539, align 1 store %struct.Memory* %loadMem_423331, %struct.Memory** %MEMORY %loadMem_423333 = load %struct.Memory*, %struct.Memory** %MEMORY %540 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %541 = getelementptr inbounds %struct.GPR, %struct.GPR* %540, i32 0, i32 33 %542 = getelementptr inbounds %struct.Reg, %struct.Reg* %541, i32 0, i32 0 %PC.i89 = bitcast %union.anon* %542 to i64* %543 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %544 = getelementptr inbounds %struct.GPR, %struct.GPR* %543, i32 0, i32 1 %545 = getelementptr inbounds %struct.Reg, %struct.Reg* %544, i32 0, i32 0 %RAX.i90 = bitcast %union.anon* %545 to i64* %546 = load i64, i64* %PC.i89 %547 = add i64 %546, 10 store i64 %547, i64* %PC.i89 store i64 ptrtoint (%G__0x63ae50_type* @G__0x63ae50 to i64), i64* %RAX.i90, align 8 store %struct.Memory* %loadMem_423333, %struct.Memory** %MEMORY %loadMem_42333d = load %struct.Memory*, %struct.Memory** %MEMORY %548 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %549 = getelementptr inbounds %struct.GPR, %struct.GPR* %548, i32 0, i32 33 %550 = getelementptr inbounds %struct.Reg, %struct.Reg* %549, i32 0, i32 0 %PC.i87 = bitcast %union.anon* %550 to i64* %551 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %552 = getelementptr inbounds %struct.GPR, %struct.GPR* %551, i32 0, i32 1 %553 = getelementptr inbounds %struct.Reg, %struct.Reg* %552, i32 0, i32 0 %RAX.i88 = bitcast %union.anon* %553 to i64* %554 = load i64, i64* %RAX.i88 %555 = load i64, i64* %PC.i87 %556 = add i64 %555, 6 store i64 %556, i64* %PC.i87 %557 = add i64 7200, %554 store i64 %557, i64* %RAX.i88, align 8 %558 = icmp ult i64 %557, %554 %559 = icmp ult i64 %557, 7200 %560 = or i1 %558, %559 %561 = zext i1 %560 to i8 %562 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 %561, i8* %562, align 1 %563 = trunc i64 %557 to i32 %564 = and i32 %563, 255 %565 = call i32 @llvm.ctpop.i32(i32 %564) %566 = trunc i32 %565 to i8 %567 = and i8 %566, 1 %568 = xor i8 %567, 1 %569 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %568, i8* %569, align 1 %570 = xor i64 7200, %554 %571 = xor i64 %570, %557 %572 = lshr i64 %571, 4 %573 = trunc i64 %572 to i8 %574 = and i8 %573, 1 %575 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 %574, i8* %575, align 1 %576 = icmp eq i64 %557, 0 %577 = zext i1 %576 to i8 %578 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %577, i8* %578, align 1 %579 = lshr i64 %557, 63 %580 = trunc i64 %579 to i8 %581 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %580, i8* %581, align 1 %582 = lshr i64 %554, 63 %583 = xor i64 %579, %582 %584 = add i64 %583, %579 %585 = icmp eq i64 %584, 2 %586 = zext i1 %585 to i8 %587 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 %586, i8* %587, align 1 store %struct.Memory* %loadMem_42333d, %struct.Memory** %MEMORY %loadMem_423343 = load %struct.Memory*, %struct.Memory** %MEMORY %588 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %589 = getelementptr inbounds %struct.GPR, %struct.GPR* %588, i32 0, i32 33 %590 = getelementptr inbounds %struct.Reg, %struct.Reg* %589, i32 0, i32 0 %PC.i84 = bitcast %union.anon* %590 to i64* %591 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %592 = getelementptr inbounds %struct.GPR, %struct.GPR* %591, i32 0, i32 5 %593 = getelementptr inbounds %struct.Reg, %struct.Reg* %592, i32 0, i32 0 %RCX.i85 = bitcast %union.anon* %593 to i64* %594 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %595 = getelementptr inbounds %struct.GPR, %struct.GPR* %594, i32 0, i32 15 %596 = getelementptr inbounds %struct.Reg, %struct.Reg* %595, i32 0, i32 0 %RBP.i86 = bitcast %union.anon* %596 to i64* %597 = load i64, i64* %RBP.i86 %598 = sub i64 %597, 276 %599 = load i64, i64* %PC.i84 %600 = add i64 %599, 7 store i64 %600, i64* %PC.i84 %601 = inttoptr i64 %598 to i32* %602 = load i32, i32* %601 %603 = sext i32 %602 to i64 store i64 %603, i64* %RCX.i85, align 8 store %struct.Memory* %loadMem_423343, %struct.Memory** %MEMORY %loadMem_42334a = load %struct.Memory*, %struct.Memory** %MEMORY %604 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %605 = getelementptr inbounds %struct.GPR, %struct.GPR* %604, i32 0, i32 33 %606 = getelementptr inbounds %struct.Reg, %struct.Reg* %605, i32 0, i32 0 %PC.i82 = bitcast %union.anon* %606 to i64* %607 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %608 = getelementptr inbounds %struct.GPR, %struct.GPR* %607, i32 0, i32 5 %609 = getelementptr inbounds %struct.Reg, %struct.Reg* %608, i32 0, i32 0 %RCX.i83 = bitcast %union.anon* %609 to i64* %610 = load i64, i64* %RCX.i83 %611 = load i64, i64* %PC.i82 %612 = add i64 %611, 4 store i64 %612, i64* %PC.i82 %613 = sext i64 %610 to i128 %614 = and i128 %613, -18446744073709551616 %615 = zext i64 %610 to i128 %616 = or i128 %614, %615 %617 = mul i128 24, %616 %618 = trunc i128 %617 to i64 store i64 %618, i64* %RCX.i83, align 8 %619 = sext i64 %618 to i128 %620 = icmp ne i128 %619, %617 %621 = zext i1 %620 to i8 %622 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 %621, i8* %622, align 1 %623 = trunc i128 %617 to i32 %624 = and i32 %623, 255 %625 = call i32 @llvm.ctpop.i32(i32 %624) %626 = trunc i32 %625 to i8 %627 = and i8 %626, 1 %628 = xor i8 %627, 1 %629 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %628, i8* %629, align 1 %630 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 0, i8* %630, align 1 %631 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 0, i8* %631, align 1 %632 = lshr i64 %618, 63 %633 = trunc i64 %632 to i8 %634 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %633, i8* %634, align 1 %635 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 %621, i8* %635, align 1 store %struct.Memory* %loadMem_42334a, %struct.Memory** %MEMORY %loadMem_42334e = load %struct.Memory*, %struct.Memory** %MEMORY %636 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %637 = getelementptr inbounds %struct.GPR, %struct.GPR* %636, i32 0, i32 33 %638 = getelementptr inbounds %struct.Reg, %struct.Reg* %637, i32 0, i32 0 %PC.i79 = bitcast %union.anon* %638 to i64* %639 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %640 = getelementptr inbounds %struct.GPR, %struct.GPR* %639, i32 0, i32 1 %641 = getelementptr inbounds %struct.Reg, %struct.Reg* %640, i32 0, i32 0 %RAX.i80 = bitcast %union.anon* %641 to i64* %642 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %643 = getelementptr inbounds %struct.GPR, %struct.GPR* %642, i32 0, i32 5 %644 = getelementptr inbounds %struct.Reg, %struct.Reg* %643, i32 0, i32 0 %RCX.i81 = bitcast %union.anon* %644 to i64* %645 = load i64, i64* %RAX.i80 %646 = load i64, i64* %RCX.i81 %647 = load i64, i64* %PC.i79 %648 = add i64 %647, 3 store i64 %648, i64* %PC.i79 %649 = add i64 %646, %645 store i64 %649, i64* %RAX.i80, align 8 %650 = icmp ult i64 %649, %645 %651 = icmp ult i64 %649, %646 %652 = or i1 %650, %651 %653 = zext i1 %652 to i8 %654 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 %653, i8* %654, align 1 %655 = trunc i64 %649 to i32 %656 = and i32 %655, 255 %657 = call i32 @llvm.ctpop.i32(i32 %656) %658 = trunc i32 %657 to i8 %659 = and i8 %658, 1 %660 = xor i8 %659, 1 %661 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %660, i8* %661, align 1 %662 = xor i64 %646, %645 %663 = xor i64 %662, %649 %664 = lshr i64 %663, 4 %665 = trunc i64 %664 to i8 %666 = and i8 %665, 1 %667 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 %666, i8* %667, align 1 %668 = icmp eq i64 %649, 0 %669 = zext i1 %668 to i8 %670 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %669, i8* %670, align 1 %671 = lshr i64 %649, 63 %672 = trunc i64 %671 to i8 %673 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %672, i8* %673, align 1 %674 = lshr i64 %645, 63 %675 = lshr i64 %646, 63 %676 = xor i64 %671, %674 %677 = xor i64 %671, %675 %678 = add i64 %676, %677 %679 = icmp eq i64 %678, 2 %680 = zext i1 %679 to i8 %681 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 %680, i8* %681, align 1 store %struct.Memory* %loadMem_42334e, %struct.Memory** %MEMORY %loadMem_423351 = load %struct.Memory*, %struct.Memory** %MEMORY %682 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %683 = getelementptr inbounds %struct.GPR, %struct.GPR* %682, i32 0, i32 33 %684 = getelementptr inbounds %struct.Reg, %struct.Reg* %683, i32 0, i32 0 %PC.i76 = bitcast %union.anon* %684 to i64* %685 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %686 = getelementptr inbounds %struct.GPR, %struct.GPR* %685, i32 0, i32 1 %687 = getelementptr inbounds %struct.Reg, %struct.Reg* %686, i32 0, i32 0 %RAX.i77 = bitcast %union.anon* %687 to i64* %688 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %689 = getelementptr inbounds %struct.GPR, %struct.GPR* %688, i32 0, i32 11 %690 = getelementptr inbounds %struct.Reg, %struct.Reg* %689, i32 0, i32 0 %RDI.i78 = bitcast %union.anon* %690 to i64* %691 = load i64, i64* %RAX.i77 %692 = load i64, i64* %PC.i76 %693 = add i64 %692, 3 store i64 %693, i64* %PC.i76 store i64 %691, i64* %RDI.i78, align 8 store %struct.Memory* %loadMem_423351, %struct.Memory** %MEMORY %loadMem1_423354 = load %struct.Memory*, %struct.Memory** %MEMORY %694 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %695 = getelementptr inbounds %struct.GPR, %struct.GPR* %694, i32 0, i32 33 %696 = getelementptr inbounds %struct.Reg, %struct.Reg* %695, i32 0, i32 0 %PC.i75 = bitcast %union.anon* %696 to i64* %697 = load i64, i64* %PC.i75 %698 = add i64 %697, -97316 %699 = load i64, i64* %PC.i75 %700 = add i64 %699, 5 %701 = load i64, i64* %PC.i75 %702 = add i64 %701, 5 store i64 %702, i64* %PC.i75 %703 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 13, i32 0, i32 0 %704 = load i64, i64* %703, align 8 %705 = add i64 %704, -8 %706 = inttoptr i64 %705 to i64* store i64 %700, i64* %706 store i64 %705, i64* %703, align 8 %707 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 33, i32 0, i32 0 store i64 %698, i64* %707, align 8 store %struct.Memory* %loadMem1_423354, %struct.Memory** %MEMORY %loadMem2_423354 = load %struct.Memory*, %struct.Memory** %MEMORY %loadPC_423354 = load i64, i64* %3 %call2_423354 = call %struct.Memory* @sub_40b730.make(%struct.State* %0, i64 %loadPC_423354, %struct.Memory* %loadMem2_423354) store %struct.Memory* %call2_423354, %struct.Memory** %MEMORY %loadMem_423359 = load %struct.Memory*, %struct.Memory** %MEMORY %708 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %709 = getelementptr inbounds %struct.GPR, %struct.GPR* %708, i32 0, i32 33 %710 = getelementptr inbounds %struct.Reg, %struct.Reg* %709, i32 0, i32 0 %PC.i72 = bitcast %union.anon* %710 to i64* %711 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %712 = getelementptr inbounds %struct.GPR, %struct.GPR* %711, i32 0, i32 9 %713 = getelementptr inbounds %struct.Reg, %struct.Reg* %712, i32 0, i32 0 %RSI.i73 = bitcast %union.anon* %713 to i64* %714 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %715 = getelementptr inbounds %struct.GPR, %struct.GPR* %714, i32 0, i32 15 %716 = getelementptr inbounds %struct.Reg, %struct.Reg* %715, i32 0, i32 0 %RBP.i74 = bitcast %union.anon* %716 to i64* %717 = load i64, i64* %RBP.i74 %718 = sub i64 %717, 272 %719 = load i64, i64* %PC.i72 %720 = add i64 %719, 7 store i64 %720, i64* %PC.i72 store i64 %718, i64* %RSI.i73, align 8 store %struct.Memory* %loadMem_423359, %struct.Memory** %MEMORY %loadMem_423360 = load %struct.Memory*, %struct.Memory** %MEMORY %721 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %722 = getelementptr inbounds %struct.GPR, %struct.GPR* %721, i32 0, i32 33 %723 = getelementptr inbounds %struct.Reg, %struct.Reg* %722, i32 0, i32 0 %PC.i69 = bitcast %union.anon* %723 to i64* %724 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %725 = getelementptr inbounds %struct.GPR, %struct.GPR* %724, i32 0, i32 11 %726 = getelementptr inbounds %struct.Reg, %struct.Reg* %725, i32 0, i32 0 %RDI.i70 = bitcast %union.anon* %726 to i64* %727 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %728 = getelementptr inbounds %struct.GPR, %struct.GPR* %727, i32 0, i32 15 %729 = getelementptr inbounds %struct.Reg, %struct.Reg* %728, i32 0, i32 0 %RBP.i71 = bitcast %union.anon* %729 to i64* %730 = load i64, i64* %RBP.i71 %731 = sub i64 %730, 8 %732 = load i64, i64* %PC.i69 %733 = add i64 %732, 4 store i64 %733, i64* %PC.i69 %734 = inttoptr i64 %731 to i64* %735 = load i64, i64* %734 store i64 %735, i64* %RDI.i70, align 8 store %struct.Memory* %loadMem_423360, %struct.Memory** %MEMORY %loadMem1_423364 = load %struct.Memory*, %struct.Memory** %MEMORY %736 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %737 = getelementptr inbounds %struct.GPR, %struct.GPR* %736, i32 0, i32 33 %738 = getelementptr inbounds %struct.Reg, %struct.Reg* %737, i32 0, i32 0 %PC.i68 = bitcast %union.anon* %738 to i64* %739 = load i64, i64* %PC.i68 %740 = add i64 %739, -140708 %741 = load i64, i64* %PC.i68 %742 = add i64 %741, 5 %743 = load i64, i64* %PC.i68 %744 = add i64 %743, 5 store i64 %744, i64* %PC.i68 %745 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 13, i32 0, i32 0 %746 = load i64, i64* %745, align 8 %747 = add i64 %746, -8 %748 = inttoptr i64 %747 to i64* store i64 %742, i64* %748 store i64 %747, i64* %745, align 8 %749 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 33, i32 0, i32 0 store i64 %740, i64* %749, align 8 store %struct.Memory* %loadMem1_423364, %struct.Memory** %MEMORY %loadMem2_423364 = load %struct.Memory*, %struct.Memory** %MEMORY %loadPC_423364 = load i64, i64* %3 %750 = call %struct.Memory* @__remill_function_call(%struct.State* %0, i64 ptrtoint (i64 (i64, i64)* @strcat to i64), %struct.Memory* %loadMem2_423364) store %struct.Memory* %750, %struct.Memory** %MEMORY %loadMem_423369 = load %struct.Memory*, %struct.Memory** %MEMORY %751 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %752 = getelementptr inbounds %struct.GPR, %struct.GPR* %751, i32 0, i32 33 %753 = getelementptr inbounds %struct.Reg, %struct.Reg* %752, i32 0, i32 0 %PC.i64 = bitcast %union.anon* %753 to i64* %754 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %755 = getelementptr inbounds %struct.GPR, %struct.GPR* %754, i32 0, i32 9 %756 = getelementptr inbounds %struct.Reg, %struct.Reg* %755, i32 0, i32 0 %RSI.i65 = bitcast %union.anon* %756 to i64* %757 = load i64, i64* %PC.i64 %758 = add i64 %757, 10 store i64 %758, i64* %PC.i64 store i64 ptrtoint (%G__0x429cd1_type* @G__0x429cd1 to i64), i64* %RSI.i65, align 8 store %struct.Memory* %loadMem_423369, %struct.Memory** %MEMORY %loadMem_423373 = load %struct.Memory*, %struct.Memory** %MEMORY %759 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %760 = getelementptr inbounds %struct.GPR, %struct.GPR* %759, i32 0, i32 33 %761 = getelementptr inbounds %struct.Reg, %struct.Reg* %760, i32 0, i32 0 %PC.i61 = bitcast %union.anon* %761 to i64* %762 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %763 = getelementptr inbounds %struct.GPR, %struct.GPR* %762, i32 0, i32 11 %764 = getelementptr inbounds %struct.Reg, %struct.Reg* %763, i32 0, i32 0 %RDI.i62 = bitcast %union.anon* %764 to i64* %765 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %766 = getelementptr inbounds %struct.GPR, %struct.GPR* %765, i32 0, i32 15 %767 = getelementptr inbounds %struct.Reg, %struct.Reg* %766, i32 0, i32 0 %RBP.i63 = bitcast %union.anon* %767 to i64* %768 = load i64, i64* %RBP.i63 %769 = sub i64 %768, 8 %770 = load i64, i64* %PC.i61 %771 = add i64 %770, 4 store i64 %771, i64* %PC.i61 %772 = inttoptr i64 %769 to i64* %773 = load i64, i64* %772 store i64 %773, i64* %RDI.i62, align 8 store %struct.Memory* %loadMem_423373, %struct.Memory** %MEMORY %loadMem_423377 = load %struct.Memory*, %struct.Memory** %MEMORY %774 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %775 = getelementptr inbounds %struct.GPR, %struct.GPR* %774, i32 0, i32 33 %776 = getelementptr inbounds %struct.Reg, %struct.Reg* %775, i32 0, i32 0 %PC.i58 = bitcast %union.anon* %776 to i64* %777 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %778 = getelementptr inbounds %struct.GPR, %struct.GPR* %777, i32 0, i32 1 %779 = getelementptr inbounds %struct.Reg, %struct.Reg* %778, i32 0, i32 0 %RAX.i59 = bitcast %union.anon* %779 to i64* %780 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %781 = getelementptr inbounds %struct.GPR, %struct.GPR* %780, i32 0, i32 15 %782 = getelementptr inbounds %struct.Reg, %struct.Reg* %781, i32 0, i32 0 %RBP.i60 = bitcast %union.anon* %782 to i64* %783 = load i64, i64* %RBP.i60 %784 = sub i64 %783, 288 %785 = load i64, i64* %RAX.i59 %786 = load i64, i64* %PC.i58 %787 = add i64 %786, 7 store i64 %787, i64* %PC.i58 %788 = inttoptr i64 %784 to i64* store i64 %785, i64* %788 store %struct.Memory* %loadMem_423377, %struct.Memory** %MEMORY %loadMem1_42337e = load %struct.Memory*, %struct.Memory** %MEMORY %789 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %790 = getelementptr inbounds %struct.GPR, %struct.GPR* %789, i32 0, i32 33 %791 = getelementptr inbounds %struct.Reg, %struct.Reg* %790, i32 0, i32 0 %PC.i57 = bitcast %union.anon* %791 to i64* %792 = load i64, i64* %PC.i57 %793 = add i64 %792, -140734 %794 = load i64, i64* %PC.i57 %795 = add i64 %794, 5 %796 = load i64, i64* %PC.i57 %797 = add i64 %796, 5 store i64 %797, i64* %PC.i57 %798 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 13, i32 0, i32 0 %799 = load i64, i64* %798, align 8 %800 = add i64 %799, -8 %801 = inttoptr i64 %800 to i64* store i64 %795, i64* %801 store i64 %800, i64* %798, align 8 %802 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 33, i32 0, i32 0 store i64 %793, i64* %802, align 8 store %struct.Memory* %loadMem1_42337e, %struct.Memory** %MEMORY %loadMem2_42337e = load %struct.Memory*, %struct.Memory** %MEMORY %loadPC_42337e = load i64, i64* %3 %803 = call %struct.Memory* @__remill_function_call(%struct.State* %0, i64 ptrtoint (i64 (i64, i64)* @strcat to i64), %struct.Memory* %loadMem2_42337e) store %struct.Memory* %803, %struct.Memory** %MEMORY %loadMem_423383 = load %struct.Memory*, %struct.Memory** %MEMORY %804 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %805 = getelementptr inbounds %struct.GPR, %struct.GPR* %804, i32 0, i32 33 %806 = getelementptr inbounds %struct.Reg, %struct.Reg* %805, i32 0, i32 0 %PC.i51 = bitcast %union.anon* %806 to i64* %807 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %808 = getelementptr inbounds %struct.GPR, %struct.GPR* %807, i32 0, i32 1 %809 = getelementptr inbounds %struct.Reg, %struct.Reg* %808, i32 0, i32 0 %RAX.i52 = bitcast %union.anon* %809 to i64* %810 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %811 = getelementptr inbounds %struct.GPR, %struct.GPR* %810, i32 0, i32 15 %812 = getelementptr inbounds %struct.Reg, %struct.Reg* %811, i32 0, i32 0 %RBP.i53 = bitcast %union.anon* %812 to i64* %813 = load i64, i64* %RBP.i53 %814 = sub i64 %813, 296 %815 = load i64, i64* %RAX.i52 %816 = load i64, i64* %PC.i51 %817 = add i64 %816, 7 store i64 %817, i64* %PC.i51 %818 = inttoptr i64 %814 to i64* store i64 %815, i64* %818 store %struct.Memory* %loadMem_423383, %struct.Memory** %MEMORY %loadMem_42338a = load %struct.Memory*, %struct.Memory** %MEMORY %819 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %820 = getelementptr inbounds %struct.GPR, %struct.GPR* %819, i32 0, i32 33 %821 = getelementptr inbounds %struct.Reg, %struct.Reg* %820, i32 0, i32 0 %PC.i48 = bitcast %union.anon* %821 to i64* %822 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %823 = getelementptr inbounds %struct.GPR, %struct.GPR* %822, i32 0, i32 1 %824 = getelementptr inbounds %struct.Reg, %struct.Reg* %823, i32 0, i32 0 %RAX.i49 = bitcast %union.anon* %824 to i64* %825 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %826 = getelementptr inbounds %struct.GPR, %struct.GPR* %825, i32 0, i32 15 %827 = getelementptr inbounds %struct.Reg, %struct.Reg* %826, i32 0, i32 0 %RBP.i50 = bitcast %union.anon* %827 to i64* %828 = load i64, i64* %RBP.i50 %829 = sub i64 %828, 276 %830 = load i64, i64* %PC.i48 %831 = add i64 %830, 6 store i64 %831, i64* %PC.i48 %832 = inttoptr i64 %829 to i32* %833 = load i32, i32* %832 %834 = zext i32 %833 to i64 store i64 %834, i64* %RAX.i49, align 8 store %struct.Memory* %loadMem_42338a, %struct.Memory** %MEMORY %loadMem_423390 = load %struct.Memory*, %struct.Memory** %MEMORY %835 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %836 = getelementptr inbounds %struct.GPR, %struct.GPR* %835, i32 0, i32 33 %837 = getelementptr inbounds %struct.Reg, %struct.Reg* %836, i32 0, i32 0 %PC.i46 = bitcast %union.anon* %837 to i64* %838 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %839 = getelementptr inbounds %struct.GPR, %struct.GPR* %838, i32 0, i32 1 %840 = getelementptr inbounds %struct.Reg, %struct.Reg* %839, i32 0, i32 0 %RAX.i47 = bitcast %union.anon* %840 to i64* %841 = load i64, i64* %RAX.i47 %842 = load i64, i64* %PC.i46 %843 = add i64 %842, 3 store i64 %843, i64* %PC.i46 %844 = trunc i64 %841 to i32 %845 = add i32 1, %844 %846 = zext i32 %845 to i64 store i64 %846, i64* %RAX.i47, align 8 %847 = icmp ult i32 %845, %844 %848 = icmp ult i32 %845, 1 %849 = or i1 %847, %848 %850 = zext i1 %849 to i8 %851 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 %850, i8* %851, align 1 %852 = and i32 %845, 255 %853 = call i32 @llvm.ctpop.i32(i32 %852) %854 = trunc i32 %853 to i8 %855 = and i8 %854, 1 %856 = xor i8 %855, 1 %857 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %856, i8* %857, align 1 %858 = xor i64 1, %841 %859 = trunc i64 %858 to i32 %860 = xor i32 %859, %845 %861 = lshr i32 %860, 4 %862 = trunc i32 %861 to i8 %863 = and i8 %862, 1 %864 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 %863, i8* %864, align 1 %865 = icmp eq i32 %845, 0 %866 = zext i1 %865 to i8 %867 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %866, i8* %867, align 1 %868 = lshr i32 %845, 31 %869 = trunc i32 %868 to i8 %870 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %869, i8* %870, align 1 %871 = lshr i32 %844, 31 %872 = xor i32 %868, %871 %873 = add i32 %872, %868 %874 = icmp eq i32 %873, 2 %875 = zext i1 %874 to i8 %876 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 %875, i8* %876, align 1 store %struct.Memory* %loadMem_423390, %struct.Memory** %MEMORY %loadMem_423393 = load %struct.Memory*, %struct.Memory** %MEMORY %877 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %878 = getelementptr inbounds %struct.GPR, %struct.GPR* %877, i32 0, i32 33 %879 = getelementptr inbounds %struct.Reg, %struct.Reg* %878, i32 0, i32 0 %PC.i43 = bitcast %union.anon* %879 to i64* %880 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %881 = getelementptr inbounds %struct.GPR, %struct.GPR* %880, i32 0, i32 1 %882 = getelementptr inbounds %struct.Reg, %struct.Reg* %881, i32 0, i32 0 %EAX.i44 = bitcast %union.anon* %882 to i32* %883 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %884 = getelementptr inbounds %struct.GPR, %struct.GPR* %883, i32 0, i32 15 %885 = getelementptr inbounds %struct.Reg, %struct.Reg* %884, i32 0, i32 0 %RBP.i45 = bitcast %union.anon* %885 to i64* %886 = load i64, i64* %RBP.i45 %887 = sub i64 %886, 276 %888 = load i32, i32* %EAX.i44 %889 = zext i32 %888 to i64 %890 = load i64, i64* %PC.i43 %891 = add i64 %890, 6 store i64 %891, i64* %PC.i43 %892 = inttoptr i64 %887 to i32* store i32 %888, i32* %892 store %struct.Memory* %loadMem_423393, %struct.Memory** %MEMORY %loadMem_423399 = load %struct.Memory*, %struct.Memory** %MEMORY %893 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %894 = getelementptr inbounds %struct.GPR, %struct.GPR* %893, i32 0, i32 33 %895 = getelementptr inbounds %struct.Reg, %struct.Reg* %894, i32 0, i32 0 %PC.i42 = bitcast %union.anon* %895 to i64* %896 = load i64, i64* %PC.i42 %897 = add i64 %896, -190 %898 = load i64, i64* %PC.i42 %899 = add i64 %898, 5 store i64 %899, i64* %PC.i42 %900 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 33, i32 0, i32 0 store i64 %897, i64* %900, align 8 store %struct.Memory* %loadMem_423399, %struct.Memory** %MEMORY br label %block_.L_4232db block_.L_42339e: ; preds = %block_.L_4232db %loadMem_42339e = load %struct.Memory*, %struct.Memory** %MEMORY %901 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %902 = getelementptr inbounds %struct.GPR, %struct.GPR* %901, i32 0, i32 33 %903 = getelementptr inbounds %struct.Reg, %struct.Reg* %902, i32 0, i32 0 %PC.i40 = bitcast %union.anon* %903 to i64* %904 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %905 = getelementptr inbounds %struct.GPR, %struct.GPR* %904, i32 0, i32 11 %906 = getelementptr inbounds %struct.Reg, %struct.Reg* %905, i32 0, i32 0 %RDI.i41 = bitcast %union.anon* %906 to i64* %907 = load i64, i64* %PC.i40 %908 = add i64 %907, 5 store i64 %908, i64* %PC.i40 store i64 7, i64* %RDI.i41, align 8 store %struct.Memory* %loadMem_42339e, %struct.Memory** %MEMORY %loadMem_4233a3 = load %struct.Memory*, %struct.Memory** %MEMORY %909 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %910 = getelementptr inbounds %struct.GPR, %struct.GPR* %909, i32 0, i32 33 %911 = getelementptr inbounds %struct.Reg, %struct.Reg* %910, i32 0, i32 0 %PC.i37 = bitcast %union.anon* %911 to i64* %912 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %913 = getelementptr inbounds %struct.GPR, %struct.GPR* %912, i32 0, i32 9 %914 = getelementptr inbounds %struct.Reg, %struct.Reg* %913, i32 0, i32 0 %RSI.i38 = bitcast %union.anon* %914 to i64* %915 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %916 = getelementptr inbounds %struct.GPR, %struct.GPR* %915, i32 0, i32 15 %917 = getelementptr inbounds %struct.Reg, %struct.Reg* %916, i32 0, i32 0 %RBP.i39 = bitcast %union.anon* %917 to i64* %918 = load i64, i64* %RBP.i39 %919 = sub i64 %918, 8 %920 = load i64, i64* %PC.i37 %921 = add i64 %920, 4 store i64 %921, i64* %PC.i37 %922 = inttoptr i64 %919 to i64* %923 = load i64, i64* %922 store i64 %923, i64* %RSI.i38, align 8 store %struct.Memory* %loadMem_4233a3, %struct.Memory** %MEMORY %loadMem1_4233a7 = load %struct.Memory*, %struct.Memory** %MEMORY %924 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %925 = getelementptr inbounds %struct.GPR, %struct.GPR* %924, i32 0, i32 33 %926 = getelementptr inbounds %struct.Reg, %struct.Reg* %925, i32 0, i32 0 %PC.i36 = bitcast %union.anon* %926 to i64* %927 = load i64, i64* %PC.i36 %928 = add i64 %927, -615 %929 = load i64, i64* %PC.i36 %930 = add i64 %929, 5 %931 = load i64, i64* %PC.i36 %932 = add i64 %931, 5 store i64 %932, i64* %PC.i36 %933 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 13, i32 0, i32 0 %934 = load i64, i64* %933, align 8 %935 = add i64 %934, -8 %936 = inttoptr i64 %935 to i64* store i64 %930, i64* %936 store i64 %935, i64* %933, align 8 %937 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 33, i32 0, i32 0 store i64 %928, i64* %937, align 8 store %struct.Memory* %loadMem1_4233a7, %struct.Memory** %MEMORY %loadMem2_4233a7 = load %struct.Memory*, %struct.Memory** %MEMORY %loadPC_4233a7 = load i64, i64* %3 %call2_4233a7 = call %struct.Memory* @sub_423140.hash_extract_pv(%struct.State* %0, i64 %loadPC_4233a7, %struct.Memory* %loadMem2_4233a7) store %struct.Memory* %call2_4233a7, %struct.Memory** %MEMORY %loadMem_4233ac = load %struct.Memory*, %struct.Memory** %MEMORY %938 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %939 = getelementptr inbounds %struct.GPR, %struct.GPR* %938, i32 0, i32 33 %940 = getelementptr inbounds %struct.Reg, %struct.Reg* %939, i32 0, i32 0 %PC.i34 = bitcast %union.anon* %940 to i64* %941 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %942 = getelementptr inbounds %struct.GPR, %struct.GPR* %941, i32 0, i32 11 %943 = getelementptr inbounds %struct.Reg, %struct.Reg* %942, i32 0, i32 0 %RDI.i35 = bitcast %union.anon* %943 to i64* %944 = load i64, i64* %PC.i34 %945 = add i64 %944, 7 store i64 %945, i64* %PC.i34 %946 = load i32, i32* bitcast (%G_0x86b8b4_type* @G_0x86b8b4 to i32*) %947 = zext i32 %946 to i64 store i64 %947, i64* %RDI.i35, align 8 store %struct.Memory* %loadMem_4233ac, %struct.Memory** %MEMORY %loadMem_4233b3 = load %struct.Memory*, %struct.Memory** %MEMORY %948 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %949 = getelementptr inbounds %struct.GPR, %struct.GPR* %948, i32 0, i32 33 %950 = getelementptr inbounds %struct.Reg, %struct.Reg* %949, i32 0, i32 0 %PC.i32 = bitcast %union.anon* %950 to i64* %951 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %952 = getelementptr inbounds %struct.GPR, %struct.GPR* %951, i32 0, i32 11 %953 = getelementptr inbounds %struct.Reg, %struct.Reg* %952, i32 0, i32 0 %RDI.i33 = bitcast %union.anon* %953 to i64* %954 = load i64, i64* %RDI.i33 %955 = load i64, i64* %PC.i32 %956 = add i64 %955, 3 store i64 %956, i64* %PC.i32 %957 = trunc i64 %954 to i32 %958 = sub i32 %957, 1 %959 = zext i32 %958 to i64 store i64 %959, i64* %RDI.i33, align 8 %960 = icmp ult i32 %957, 1 %961 = zext i1 %960 to i8 %962 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 %961, i8* %962, align 1 %963 = and i32 %958, 255 %964 = call i32 @llvm.ctpop.i32(i32 %963) %965 = trunc i32 %964 to i8 %966 = and i8 %965, 1 %967 = xor i8 %966, 1 %968 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %967, i8* %968, align 1 %969 = xor i64 1, %954 %970 = trunc i64 %969 to i32 %971 = xor i32 %970, %958 %972 = lshr i32 %971, 4 %973 = trunc i32 %972 to i8 %974 = and i8 %973, 1 %975 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 %974, i8* %975, align 1 %976 = icmp eq i32 %958, 0 %977 = zext i1 %976 to i8 %978 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %977, i8* %978, align 1 %979 = lshr i32 %958, 31 %980 = trunc i32 %979 to i8 %981 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %980, i8* %981, align 1 %982 = lshr i32 %957, 31 %983 = xor i32 %979, %982 %984 = add i32 %983, %982 %985 = icmp eq i32 %984, 2 %986 = zext i1 %985 to i8 %987 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 %986, i8* %987, align 1 store %struct.Memory* %loadMem_4233b3, %struct.Memory** %MEMORY %loadMem_4233b6 = load %struct.Memory*, %struct.Memory** %MEMORY %988 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %989 = getelementptr inbounds %struct.GPR, %struct.GPR* %988, i32 0, i32 33 %990 = getelementptr inbounds %struct.Reg, %struct.Reg* %989, i32 0, i32 0 %PC.i30 = bitcast %union.anon* %990 to i64* %991 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %992 = getelementptr inbounds %struct.GPR, %struct.GPR* %991, i32 0, i32 11 %993 = getelementptr inbounds %struct.Reg, %struct.Reg* %992, i32 0, i32 0 %EDI.i = bitcast %union.anon* %993 to i32* %994 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %995 = getelementptr inbounds %struct.GPR, %struct.GPR* %994, i32 0, i32 15 %996 = getelementptr inbounds %struct.Reg, %struct.Reg* %995, i32 0, i32 0 %RBP.i31 = bitcast %union.anon* %996 to i64* %997 = load i64, i64* %RBP.i31 %998 = sub i64 %997, 276 %999 = load i32, i32* %EDI.i %1000 = zext i32 %999 to i64 %1001 = load i64, i64* %PC.i30 %1002 = add i64 %1001, 6 store i64 %1002, i64* %PC.i30 %1003 = inttoptr i64 %998 to i32* store i32 %999, i32* %1003 store %struct.Memory* %loadMem_4233b6, %struct.Memory** %MEMORY br label %block_.L_4233bc block_.L_4233bc: ; preds = %block_4233c9, %block_.L_42339e %loadMem_4233bc = load %struct.Memory*, %struct.Memory** %MEMORY %1004 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1005 = getelementptr inbounds %struct.GPR, %struct.GPR* %1004, i32 0, i32 33 %1006 = getelementptr inbounds %struct.Reg, %struct.Reg* %1005, i32 0, i32 0 %PC.i28 = bitcast %union.anon* %1006 to i64* %1007 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1008 = getelementptr inbounds %struct.GPR, %struct.GPR* %1007, i32 0, i32 15 %1009 = getelementptr inbounds %struct.Reg, %struct.Reg* %1008, i32 0, i32 0 %RBP.i29 = bitcast %union.anon* %1009 to i64* %1010 = load i64, i64* %RBP.i29 %1011 = sub i64 %1010, 276 %1012 = load i64, i64* %PC.i28 %1013 = add i64 %1012, 7 store i64 %1013, i64* %PC.i28 %1014 = inttoptr i64 %1011 to i32* %1015 = load i32, i32* %1014 %1016 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 0, i8* %1016, align 1 %1017 = and i32 %1015, 255 %1018 = call i32 @llvm.ctpop.i32(i32 %1017) %1019 = trunc i32 %1018 to i8 %1020 = and i8 %1019, 1 %1021 = xor i8 %1020, 1 %1022 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %1021, i8* %1022, align 1 %1023 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 0, i8* %1023, align 1 %1024 = icmp eq i32 %1015, 0 %1025 = zext i1 %1024 to i8 %1026 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %1025, i8* %1026, align 1 %1027 = lshr i32 %1015, 31 %1028 = trunc i32 %1027 to i8 %1029 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %1028, i8* %1029, align 1 %1030 = lshr i32 %1015, 31 %1031 = xor i32 %1027, %1030 %1032 = add i32 %1031, %1030 %1033 = icmp eq i32 %1032, 2 %1034 = zext i1 %1033 to i8 %1035 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 %1034, i8* %1035, align 1 store %struct.Memory* %loadMem_4233bc, %struct.Memory** %MEMORY %loadMem_4233c3 = load %struct.Memory*, %struct.Memory** %MEMORY %1036 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1037 = getelementptr inbounds %struct.GPR, %struct.GPR* %1036, i32 0, i32 33 %1038 = getelementptr inbounds %struct.Reg, %struct.Reg* %1037, i32 0, i32 0 %PC.i27 = bitcast %union.anon* %1038 to i64* %1039 = load i64, i64* %PC.i27 %1040 = add i64 %1039, 66 %1041 = load i64, i64* %PC.i27 %1042 = add i64 %1041, 6 %1043 = load i64, i64* %PC.i27 %1044 = add i64 %1043, 6 store i64 %1044, i64* %PC.i27 %1045 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 %1046 = load i8, i8* %1045, align 1 %1047 = icmp ne i8 %1046, 0 %1048 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 %1049 = load i8, i8* %1048, align 1 %1050 = icmp ne i8 %1049, 0 %1051 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 %1052 = load i8, i8* %1051, align 1 %1053 = icmp ne i8 %1052, 0 %1054 = xor i1 %1050, %1053 %1055 = or i1 %1047, %1054 %1056 = zext i1 %1055 to i8 store i8 %1056, i8* %BRANCH_TAKEN, align 1 %1057 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 33, i32 0, i32 0 %1058 = select i1 %1055, i64 %1040, i64 %1042 store i64 %1058, i64* %1057, align 8 store %struct.Memory* %loadMem_4233c3, %struct.Memory** %MEMORY %loadBr_4233c3 = load i8, i8* %BRANCH_TAKEN %cmpBr_4233c3 = icmp eq i8 %loadBr_4233c3, 1 br i1 %cmpBr_4233c3, label %block_.L_423405, label %block_4233c9 block_4233c9: ; preds = %block_.L_4233bc %loadMem_4233c9 = load %struct.Memory*, %struct.Memory** %MEMORY %1059 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1060 = getelementptr inbounds %struct.GPR, %struct.GPR* %1059, i32 0, i32 33 %1061 = getelementptr inbounds %struct.Reg, %struct.Reg* %1060, i32 0, i32 0 %PC.i26 = bitcast %union.anon* %1061 to i64* %1062 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1063 = getelementptr inbounds %struct.GPR, %struct.GPR* %1062, i32 0, i32 9 %1064 = getelementptr inbounds %struct.Reg, %struct.Reg* %1063, i32 0, i32 0 %ESI.i = bitcast %union.anon* %1064 to i32* %1065 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1066 = getelementptr inbounds %struct.GPR, %struct.GPR* %1065, i32 0, i32 9 %1067 = getelementptr inbounds %struct.Reg, %struct.Reg* %1066, i32 0, i32 0 %RSI.i = bitcast %union.anon* %1067 to i64* %1068 = load i64, i64* %RSI.i %1069 = load i32, i32* %ESI.i %1070 = zext i32 %1069 to i64 %1071 = load i64, i64* %PC.i26 %1072 = add i64 %1071, 2 store i64 %1072, i64* %PC.i26 %1073 = xor i64 %1070, %1068 %1074 = trunc i64 %1073 to i32 %1075 = and i64 %1073, 4294967295 store i64 %1075, i64* %RSI.i, align 8 %1076 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 0, i8* %1076, align 1 %1077 = and i32 %1074, 255 %1078 = call i32 @llvm.ctpop.i32(i32 %1077) %1079 = trunc i32 %1078 to i8 %1080 = and i8 %1079, 1 %1081 = xor i8 %1080, 1 %1082 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %1081, i8* %1082, align 1 %1083 = icmp eq i32 %1074, 0 %1084 = zext i1 %1083 to i8 %1085 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %1084, i8* %1085, align 1 %1086 = lshr i32 %1074, 31 %1087 = trunc i32 %1086 to i8 %1088 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %1087, i8* %1088, align 1 %1089 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 0, i8* %1089, align 1 %1090 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 0, i8* %1090, align 1 store %struct.Memory* %loadMem_4233c9, %struct.Memory** %MEMORY %loadMem_4233cb = load %struct.Memory*, %struct.Memory** %MEMORY %1091 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1092 = getelementptr inbounds %struct.GPR, %struct.GPR* %1091, i32 0, i32 33 %1093 = getelementptr inbounds %struct.Reg, %struct.Reg* %1092, i32 0, i32 0 %PC.i24 = bitcast %union.anon* %1093 to i64* %1094 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1095 = getelementptr inbounds %struct.GPR, %struct.GPR* %1094, i32 0, i32 1 %1096 = getelementptr inbounds %struct.Reg, %struct.Reg* %1095, i32 0, i32 0 %RAX.i25 = bitcast %union.anon* %1096 to i64* %1097 = load i64, i64* %PC.i24 %1098 = add i64 %1097, 10 store i64 %1098, i64* %PC.i24 store i64 ptrtoint (%G__0x63ae50_type* @G__0x63ae50 to i64), i64* %RAX.i25, align 8 store %struct.Memory* %loadMem_4233cb, %struct.Memory** %MEMORY %loadMem_4233d5 = load %struct.Memory*, %struct.Memory** %MEMORY %1099 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1100 = getelementptr inbounds %struct.GPR, %struct.GPR* %1099, i32 0, i32 33 %1101 = getelementptr inbounds %struct.Reg, %struct.Reg* %1100, i32 0, i32 0 %PC.i22 = bitcast %union.anon* %1101 to i64* %1102 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1103 = getelementptr inbounds %struct.GPR, %struct.GPR* %1102, i32 0, i32 1 %1104 = getelementptr inbounds %struct.Reg, %struct.Reg* %1103, i32 0, i32 0 %RAX.i23 = bitcast %union.anon* %1104 to i64* %1105 = load i64, i64* %RAX.i23 %1106 = load i64, i64* %PC.i22 %1107 = add i64 %1106, 6 store i64 %1107, i64* %PC.i22 %1108 = add i64 7200, %1105 store i64 %1108, i64* %RAX.i23, align 8 %1109 = icmp ult i64 %1108, %1105 %1110 = icmp ult i64 %1108, 7200 %1111 = or i1 %1109, %1110 %1112 = zext i1 %1111 to i8 %1113 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 %1112, i8* %1113, align 1 %1114 = trunc i64 %1108 to i32 %1115 = and i32 %1114, 255 %1116 = call i32 @llvm.ctpop.i32(i32 %1115) %1117 = trunc i32 %1116 to i8 %1118 = and i8 %1117, 1 %1119 = xor i8 %1118, 1 %1120 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %1119, i8* %1120, align 1 %1121 = xor i64 7200, %1105 %1122 = xor i64 %1121, %1108 %1123 = lshr i64 %1122, 4 %1124 = trunc i64 %1123 to i8 %1125 = and i8 %1124, 1 %1126 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 %1125, i8* %1126, align 1 %1127 = icmp eq i64 %1108, 0 %1128 = zext i1 %1127 to i8 %1129 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %1128, i8* %1129, align 1 %1130 = lshr i64 %1108, 63 %1131 = trunc i64 %1130 to i8 %1132 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %1131, i8* %1132, align 1 %1133 = lshr i64 %1105, 63 %1134 = xor i64 %1130, %1133 %1135 = add i64 %1134, %1130 %1136 = icmp eq i64 %1135, 2 %1137 = zext i1 %1136 to i8 %1138 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 %1137, i8* %1138, align 1 store %struct.Memory* %loadMem_4233d5, %struct.Memory** %MEMORY %loadMem_4233db = load %struct.Memory*, %struct.Memory** %MEMORY %1139 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1140 = getelementptr inbounds %struct.GPR, %struct.GPR* %1139, i32 0, i32 33 %1141 = getelementptr inbounds %struct.Reg, %struct.Reg* %1140, i32 0, i32 0 %PC.i19 = bitcast %union.anon* %1141 to i64* %1142 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1143 = getelementptr inbounds %struct.GPR, %struct.GPR* %1142, i32 0, i32 5 %1144 = getelementptr inbounds %struct.Reg, %struct.Reg* %1143, i32 0, i32 0 %RCX.i20 = bitcast %union.anon* %1144 to i64* %1145 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1146 = getelementptr inbounds %struct.GPR, %struct.GPR* %1145, i32 0, i32 15 %1147 = getelementptr inbounds %struct.Reg, %struct.Reg* %1146, i32 0, i32 0 %RBP.i21 = bitcast %union.anon* %1147 to i64* %1148 = load i64, i64* %RBP.i21 %1149 = sub i64 %1148, 276 %1150 = load i64, i64* %PC.i19 %1151 = add i64 %1150, 7 store i64 %1151, i64* %PC.i19 %1152 = inttoptr i64 %1149 to i32* %1153 = load i32, i32* %1152 %1154 = sext i32 %1153 to i64 store i64 %1154, i64* %RCX.i20, align 8 store %struct.Memory* %loadMem_4233db, %struct.Memory** %MEMORY %loadMem_4233e2 = load %struct.Memory*, %struct.Memory** %MEMORY %1155 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1156 = getelementptr inbounds %struct.GPR, %struct.GPR* %1155, i32 0, i32 33 %1157 = getelementptr inbounds %struct.Reg, %struct.Reg* %1156, i32 0, i32 0 %PC.i17 = bitcast %union.anon* %1157 to i64* %1158 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1159 = getelementptr inbounds %struct.GPR, %struct.GPR* %1158, i32 0, i32 5 %1160 = getelementptr inbounds %struct.Reg, %struct.Reg* %1159, i32 0, i32 0 %RCX.i18 = bitcast %union.anon* %1160 to i64* %1161 = load i64, i64* %RCX.i18 %1162 = load i64, i64* %PC.i17 %1163 = add i64 %1162, 4 store i64 %1163, i64* %PC.i17 %1164 = sext i64 %1161 to i128 %1165 = and i128 %1164, -18446744073709551616 %1166 = zext i64 %1161 to i128 %1167 = or i128 %1165, %1166 %1168 = mul i128 24, %1167 %1169 = trunc i128 %1168 to i64 store i64 %1169, i64* %RCX.i18, align 8 %1170 = sext i64 %1169 to i128 %1171 = icmp ne i128 %1170, %1168 %1172 = zext i1 %1171 to i8 %1173 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 %1172, i8* %1173, align 1 %1174 = trunc i128 %1168 to i32 %1175 = and i32 %1174, 255 %1176 = call i32 @llvm.ctpop.i32(i32 %1175) %1177 = trunc i32 %1176 to i8 %1178 = and i8 %1177, 1 %1179 = xor i8 %1178, 1 %1180 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %1179, i8* %1180, align 1 %1181 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 0, i8* %1181, align 1 %1182 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 0, i8* %1182, align 1 %1183 = lshr i64 %1169, 63 %1184 = trunc i64 %1183 to i8 %1185 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %1184, i8* %1185, align 1 %1186 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 %1172, i8* %1186, align 1 store %struct.Memory* %loadMem_4233e2, %struct.Memory** %MEMORY %loadMem_4233e6 = load %struct.Memory*, %struct.Memory** %MEMORY %1187 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1188 = getelementptr inbounds %struct.GPR, %struct.GPR* %1187, i32 0, i32 33 %1189 = getelementptr inbounds %struct.Reg, %struct.Reg* %1188, i32 0, i32 0 %PC.i15 = bitcast %union.anon* %1189 to i64* %1190 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1191 = getelementptr inbounds %struct.GPR, %struct.GPR* %1190, i32 0, i32 1 %1192 = getelementptr inbounds %struct.Reg, %struct.Reg* %1191, i32 0, i32 0 %RAX.i16 = bitcast %union.anon* %1192 to i64* %1193 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1194 = getelementptr inbounds %struct.GPR, %struct.GPR* %1193, i32 0, i32 5 %1195 = getelementptr inbounds %struct.Reg, %struct.Reg* %1194, i32 0, i32 0 %RCX.i = bitcast %union.anon* %1195 to i64* %1196 = load i64, i64* %RAX.i16 %1197 = load i64, i64* %RCX.i %1198 = load i64, i64* %PC.i15 %1199 = add i64 %1198, 3 store i64 %1199, i64* %PC.i15 %1200 = add i64 %1197, %1196 store i64 %1200, i64* %RAX.i16, align 8 %1201 = icmp ult i64 %1200, %1196 %1202 = icmp ult i64 %1200, %1197 %1203 = or i1 %1201, %1202 %1204 = zext i1 %1203 to i8 %1205 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 %1204, i8* %1205, align 1 %1206 = trunc i64 %1200 to i32 %1207 = and i32 %1206, 255 %1208 = call i32 @llvm.ctpop.i32(i32 %1207) %1209 = trunc i32 %1208 to i8 %1210 = and i8 %1209, 1 %1211 = xor i8 %1210, 1 %1212 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %1211, i8* %1212, align 1 %1213 = xor i64 %1197, %1196 %1214 = xor i64 %1213, %1200 %1215 = lshr i64 %1214, 4 %1216 = trunc i64 %1215 to i8 %1217 = and i8 %1216, 1 %1218 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 %1217, i8* %1218, align 1 %1219 = icmp eq i64 %1200, 0 %1220 = zext i1 %1219 to i8 %1221 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %1220, i8* %1221, align 1 %1222 = lshr i64 %1200, 63 %1223 = trunc i64 %1222 to i8 %1224 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %1223, i8* %1224, align 1 %1225 = lshr i64 %1196, 63 %1226 = lshr i64 %1197, 63 %1227 = xor i64 %1222, %1225 %1228 = xor i64 %1222, %1226 %1229 = add i64 %1227, %1228 %1230 = icmp eq i64 %1229, 2 %1231 = zext i1 %1230 to i8 %1232 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 %1231, i8* %1232, align 1 store %struct.Memory* %loadMem_4233e6, %struct.Memory** %MEMORY %loadMem_4233e9 = load %struct.Memory*, %struct.Memory** %MEMORY %1233 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1234 = getelementptr inbounds %struct.GPR, %struct.GPR* %1233, i32 0, i32 33 %1235 = getelementptr inbounds %struct.Reg, %struct.Reg* %1234, i32 0, i32 0 %PC.i13 = bitcast %union.anon* %1235 to i64* %1236 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1237 = getelementptr inbounds %struct.GPR, %struct.GPR* %1236, i32 0, i32 1 %1238 = getelementptr inbounds %struct.Reg, %struct.Reg* %1237, i32 0, i32 0 %RAX.i14 = bitcast %union.anon* %1238 to i64* %1239 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1240 = getelementptr inbounds %struct.GPR, %struct.GPR* %1239, i32 0, i32 11 %1241 = getelementptr inbounds %struct.Reg, %struct.Reg* %1240, i32 0, i32 0 %RDI.i = bitcast %union.anon* %1241 to i64* %1242 = load i64, i64* %RAX.i14 %1243 = load i64, i64* %PC.i13 %1244 = add i64 %1243, 3 store i64 %1244, i64* %PC.i13 store i64 %1242, i64* %RDI.i, align 8 store %struct.Memory* %loadMem_4233e9, %struct.Memory** %MEMORY %loadMem1_4233ec = load %struct.Memory*, %struct.Memory** %MEMORY %1245 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1246 = getelementptr inbounds %struct.GPR, %struct.GPR* %1245, i32 0, i32 33 %1247 = getelementptr inbounds %struct.Reg, %struct.Reg* %1246, i32 0, i32 0 %PC.i12 = bitcast %union.anon* %1247 to i64* %1248 = load i64, i64* %PC.i12 %1249 = add i64 %1248, -93260 %1250 = load i64, i64* %PC.i12 %1251 = add i64 %1250, 5 %1252 = load i64, i64* %PC.i12 %1253 = add i64 %1252, 5 store i64 %1253, i64* %PC.i12 %1254 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 13, i32 0, i32 0 %1255 = load i64, i64* %1254, align 8 %1256 = add i64 %1255, -8 %1257 = inttoptr i64 %1256 to i64* store i64 %1251, i64* %1257 store i64 %1256, i64* %1254, align 8 %1258 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 33, i32 0, i32 0 store i64 %1249, i64* %1258, align 8 store %struct.Memory* %loadMem1_4233ec, %struct.Memory** %MEMORY %loadMem2_4233ec = load %struct.Memory*, %struct.Memory** %MEMORY %loadPC_4233ec = load i64, i64* %3 %call2_4233ec = call %struct.Memory* @sub_40c7a0.unmake(%struct.State* %0, i64 %loadPC_4233ec, %struct.Memory* %loadMem2_4233ec) store %struct.Memory* %call2_4233ec, %struct.Memory** %MEMORY %loadMem_4233f1 = load %struct.Memory*, %struct.Memory** %MEMORY %1259 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1260 = getelementptr inbounds %struct.GPR, %struct.GPR* %1259, i32 0, i32 33 %1261 = getelementptr inbounds %struct.Reg, %struct.Reg* %1260, i32 0, i32 0 %PC.i9 = bitcast %union.anon* %1261 to i64* %1262 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1263 = getelementptr inbounds %struct.GPR, %struct.GPR* %1262, i32 0, i32 1 %1264 = getelementptr inbounds %struct.Reg, %struct.Reg* %1263, i32 0, i32 0 %RAX.i10 = bitcast %union.anon* %1264 to i64* %1265 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1266 = getelementptr inbounds %struct.GPR, %struct.GPR* %1265, i32 0, i32 15 %1267 = getelementptr inbounds %struct.Reg, %struct.Reg* %1266, i32 0, i32 0 %RBP.i11 = bitcast %union.anon* %1267 to i64* %1268 = load i64, i64* %RBP.i11 %1269 = sub i64 %1268, 276 %1270 = load i64, i64* %PC.i9 %1271 = add i64 %1270, 6 store i64 %1271, i64* %PC.i9 %1272 = inttoptr i64 %1269 to i32* %1273 = load i32, i32* %1272 %1274 = zext i32 %1273 to i64 store i64 %1274, i64* %RAX.i10, align 8 store %struct.Memory* %loadMem_4233f1, %struct.Memory** %MEMORY %loadMem_4233f7 = load %struct.Memory*, %struct.Memory** %MEMORY %1275 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1276 = getelementptr inbounds %struct.GPR, %struct.GPR* %1275, i32 0, i32 33 %1277 = getelementptr inbounds %struct.Reg, %struct.Reg* %1276, i32 0, i32 0 %PC.i8 = bitcast %union.anon* %1277 to i64* %1278 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1279 = getelementptr inbounds %struct.GPR, %struct.GPR* %1278, i32 0, i32 1 %1280 = getelementptr inbounds %struct.Reg, %struct.Reg* %1279, i32 0, i32 0 %RAX.i = bitcast %union.anon* %1280 to i64* %1281 = load i64, i64* %RAX.i %1282 = load i64, i64* %PC.i8 %1283 = add i64 %1282, 3 store i64 %1283, i64* %PC.i8 %1284 = trunc i64 %1281 to i32 %1285 = add i32 -1, %1284 %1286 = zext i32 %1285 to i64 store i64 %1286, i64* %RAX.i, align 8 %1287 = icmp ult i32 %1285, %1284 %1288 = icmp ult i32 %1285, -1 %1289 = or i1 %1287, %1288 %1290 = zext i1 %1289 to i8 %1291 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 %1290, i8* %1291, align 1 %1292 = and i32 %1285, 255 %1293 = call i32 @llvm.ctpop.i32(i32 %1292) %1294 = trunc i32 %1293 to i8 %1295 = and i8 %1294, 1 %1296 = xor i8 %1295, 1 %1297 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %1296, i8* %1297, align 1 %1298 = xor i64 -1, %1281 %1299 = trunc i64 %1298 to i32 %1300 = xor i32 %1299, %1285 %1301 = lshr i32 %1300, 4 %1302 = trunc i32 %1301 to i8 %1303 = and i8 %1302, 1 %1304 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 %1303, i8* %1304, align 1 %1305 = icmp eq i32 %1285, 0 %1306 = zext i1 %1305 to i8 %1307 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %1306, i8* %1307, align 1 %1308 = lshr i32 %1285, 31 %1309 = trunc i32 %1308 to i8 %1310 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %1309, i8* %1310, align 1 %1311 = lshr i32 %1284, 31 %1312 = xor i32 %1308, %1311 %1313 = xor i32 %1308, 1 %1314 = add i32 %1312, %1313 %1315 = icmp eq i32 %1314, 2 %1316 = zext i1 %1315 to i8 %1317 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 %1316, i8* %1317, align 1 store %struct.Memory* %loadMem_4233f7, %struct.Memory** %MEMORY %loadMem_4233fa = load %struct.Memory*, %struct.Memory** %MEMORY %1318 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1319 = getelementptr inbounds %struct.GPR, %struct.GPR* %1318, i32 0, i32 33 %1320 = getelementptr inbounds %struct.Reg, %struct.Reg* %1319, i32 0, i32 0 %PC.i6 = bitcast %union.anon* %1320 to i64* %1321 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1322 = getelementptr inbounds %struct.GPR, %struct.GPR* %1321, i32 0, i32 1 %1323 = getelementptr inbounds %struct.Reg, %struct.Reg* %1322, i32 0, i32 0 %EAX.i = bitcast %union.anon* %1323 to i32* %1324 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1325 = getelementptr inbounds %struct.GPR, %struct.GPR* %1324, i32 0, i32 15 %1326 = getelementptr inbounds %struct.Reg, %struct.Reg* %1325, i32 0, i32 0 %RBP.i7 = bitcast %union.anon* %1326 to i64* %1327 = load i64, i64* %RBP.i7 %1328 = sub i64 %1327, 276 %1329 = load i32, i32* %EAX.i %1330 = zext i32 %1329 to i64 %1331 = load i64, i64* %PC.i6 %1332 = add i64 %1331, 6 store i64 %1332, i64* %PC.i6 %1333 = inttoptr i64 %1328 to i32* store i32 %1329, i32* %1333 store %struct.Memory* %loadMem_4233fa, %struct.Memory** %MEMORY %loadMem_423400 = load %struct.Memory*, %struct.Memory** %MEMORY %1334 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1335 = getelementptr inbounds %struct.GPR, %struct.GPR* %1334, i32 0, i32 33 %1336 = getelementptr inbounds %struct.Reg, %struct.Reg* %1335, i32 0, i32 0 %PC.i5 = bitcast %union.anon* %1336 to i64* %1337 = load i64, i64* %PC.i5 %1338 = add i64 %1337, -68 %1339 = load i64, i64* %PC.i5 %1340 = add i64 %1339, 5 store i64 %1340, i64* %PC.i5 %1341 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 33, i32 0, i32 0 store i64 %1338, i64* %1341, align 8 store %struct.Memory* %loadMem_423400, %struct.Memory** %MEMORY br label %block_.L_4233bc block_.L_423405: ; preds = %block_.L_4233bc %loadMem_423405 = load %struct.Memory*, %struct.Memory** %MEMORY %1342 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1343 = getelementptr inbounds %struct.GPR, %struct.GPR* %1342, i32 0, i32 33 %1344 = getelementptr inbounds %struct.Reg, %struct.Reg* %1343, i32 0, i32 0 %PC.i4 = bitcast %union.anon* %1344 to i64* %1345 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1346 = getelementptr inbounds %struct.GPR, %struct.GPR* %1345, i32 0, i32 13 %1347 = getelementptr inbounds %struct.Reg, %struct.Reg* %1346, i32 0, i32 0 %RSP.i = bitcast %union.anon* %1347 to i64* %1348 = load i64, i64* %RSP.i %1349 = load i64, i64* %PC.i4 %1350 = add i64 %1349, 7 store i64 %1350, i64* %PC.i4 %1351 = add i64 320, %1348 store i64 %1351, i64* %RSP.i, align 8 %1352 = icmp ult i64 %1351, %1348 %1353 = icmp ult i64 %1351, 320 %1354 = or i1 %1352, %1353 %1355 = zext i1 %1354 to i8 %1356 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 %1355, i8* %1356, align 1 %1357 = trunc i64 %1351 to i32 %1358 = and i32 %1357, 255 %1359 = call i32 @llvm.ctpop.i32(i32 %1358) %1360 = trunc i32 %1359 to i8 %1361 = and i8 %1360, 1 %1362 = xor i8 %1361, 1 %1363 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %1362, i8* %1363, align 1 %1364 = xor i64 320, %1348 %1365 = xor i64 %1364, %1351 %1366 = lshr i64 %1365, 4 %1367 = trunc i64 %1366 to i8 %1368 = and i8 %1367, 1 %1369 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 %1368, i8* %1369, align 1 %1370 = icmp eq i64 %1351, 0 %1371 = zext i1 %1370 to i8 %1372 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %1371, i8* %1372, align 1 %1373 = lshr i64 %1351, 63 %1374 = trunc i64 %1373 to i8 %1375 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %1374, i8* %1375, align 1 %1376 = lshr i64 %1348, 63 %1377 = xor i64 %1373, %1376 %1378 = add i64 %1377, %1373 %1379 = icmp eq i64 %1378, 2 %1380 = zext i1 %1379 to i8 %1381 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 %1380, i8* %1381, align 1 store %struct.Memory* %loadMem_423405, %struct.Memory** %MEMORY %loadMem_42340c = load %struct.Memory*, %struct.Memory** %MEMORY %1382 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1383 = getelementptr inbounds %struct.GPR, %struct.GPR* %1382, i32 0, i32 33 %1384 = getelementptr inbounds %struct.Reg, %struct.Reg* %1383, i32 0, i32 0 %PC.i2 = bitcast %union.anon* %1384 to i64* %1385 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1386 = getelementptr inbounds %struct.GPR, %struct.GPR* %1385, i32 0, i32 15 %1387 = getelementptr inbounds %struct.Reg, %struct.Reg* %1386, i32 0, i32 0 %RBP.i3 = bitcast %union.anon* %1387 to i64* %1388 = load i64, i64* %PC.i2 %1389 = add i64 %1388, 1 store i64 %1389, i64* %PC.i2 %1390 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 13, i32 0, i32 0 %1391 = load i64, i64* %1390, align 8 %1392 = add i64 %1391, 8 %1393 = inttoptr i64 %1391 to i64* %1394 = load i64, i64* %1393 store i64 %1394, i64* %RBP.i3, align 8 store i64 %1392, i64* %1390, align 8 store %struct.Memory* %loadMem_42340c, %struct.Memory** %MEMORY %loadMem_42340d = load %struct.Memory*, %struct.Memory** %MEMORY %1395 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %1396 = getelementptr inbounds %struct.GPR, %struct.GPR* %1395, i32 0, i32 33 %1397 = getelementptr inbounds %struct.Reg, %struct.Reg* %1396, i32 0, i32 0 %PC.i1 = bitcast %union.anon* %1397 to i64* %1398 = load i64, i64* %PC.i1 %1399 = add i64 %1398, 1 store i64 %1399, i64* %PC.i1 %1400 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 33, i32 0, i32 0 %1401 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 13, i32 0, i32 0 %1402 = load i64, i64* %1401, align 8 %1403 = inttoptr i64 %1402 to i64* %1404 = load i64, i64* %1403 store i64 %1404, i64* %1400, align 8 %1405 = add i64 %1402, 8 store i64 %1405, i64* %1401, align 8 store %struct.Memory* %loadMem_42340d, %struct.Memory** %MEMORY ret %struct.Memory* %loadMem_42340d } define %struct.Memory* @routine_pushq__rbp(%struct.State* dereferenceable(3376), i64, %struct.Memory*) { block_400488: %3 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %4 = getelementptr inbounds %struct.GPR, %struct.GPR* %3, i32 0, i32 33 %5 = getelementptr inbounds %struct.Reg, %struct.Reg* %4, i32 0, i32 0 %PC = bitcast %union.anon* %5 to i64* %6 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %7 = getelementptr inbounds %struct.GPR, %struct.GPR* %6, i32 0, i32 15 %8 = getelementptr inbounds %struct.Reg, %struct.Reg* %7, i32 0, i32 0 %RBP = bitcast %union.anon* %8 to i64* %9 = load i64, i64* %RBP %10 = load i64, i64* %PC %11 = add i64 %10, 1 store i64 %11, i64* %PC %12 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 13, i32 0, i32 0 %13 = load i64, i64* %12, align 8 %14 = add i64 %13, -8 %15 = inttoptr i64 %14 to i64* store i64 %9, i64* %15 store i64 %14, i64* %12, align 8 ret %struct.Memory* %2 } define %struct.Memory* @routine_movq__rsp___rbp(%struct.State* dereferenceable(3376), i64, %struct.Memory*) { block_400488: %3 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %4 = getelementptr inbounds %struct.GPR, %struct.GPR* %3, i32 0, i32 33 %5 = getelementptr inbounds %struct.Reg, %struct.Reg* %4, i32 0, i32 0 %PC = bitcast %union.anon* %5 to i64* %6 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %7 = getelementptr inbounds %struct.GPR, %struct.GPR* %6, i32 0, i32 13 %8 = getelementptr inbounds %struct.Reg, %struct.Reg* %7, i32 0, i32 0 %RSP = bitcast %union.anon* %8 to i64* %9 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %10 = getelementptr inbounds %struct.GPR, %struct.GPR* %9, i32 0, i32 15 %11 = getelementptr inbounds %struct.Reg, %struct.Reg* %10, i32 0, i32 0 %RBP = bitcast %union.anon* %11 to i64* %12 = load i64, i64* %RSP %13 = load i64, i64* %PC %14 = add i64 %13, 3 store i64 %14, i64* %PC store i64 %12, i64* %RBP, align 8 ret %struct.Memory* %2 } define %struct.Memory* @routine_subq__0x140___rsp(%struct.State* dereferenceable(3376), i64, %struct.Memory*) { block_400488: %3 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %4 = getelementptr inbounds %struct.GPR, %struct.GPR* %3, i32 0, i32 33 %5 = getelementptr inbounds %struct.Reg, %struct.Reg* %4, i32 0, i32 0 %PC = bitcast %union.anon* %5 to i64* %6 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %7 = getelementptr inbounds %struct.GPR, %struct.GPR* %6, i32 0, i32 13 %8 = getelementptr inbounds %struct.Reg, %struct.Reg* %7, i32 0, i32 0 %RSP = bitcast %union.anon* %8 to i64* %9 = load i64, i64* %RSP %10 = load i64, i64* %PC %11 = add i64 %10, 7 store i64 %11, i64* %PC %12 = sub i64 %9, 320 store i64 %12, i64* %RSP, align 8 %13 = icmp ult i64 %9, 320 %14 = zext i1 %13 to i8 %15 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 %14, i8* %15, align 1 %16 = trunc i64 %12 to i32 %17 = and i32 %16, 255 %18 = call i32 @llvm.ctpop.i32(i32 %17) %19 = trunc i32 %18 to i8 %20 = and i8 %19, 1 %21 = xor i8 %20, 1 %22 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %21, i8* %22, align 1 %23 = xor i64 320, %9 %24 = xor i64 %23, %12 %25 = lshr i64 %24, 4 %26 = trunc i64 %25 to i8 %27 = and i8 %26, 1 %28 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 %27, i8* %28, align 1 %29 = icmp eq i64 %12, 0 %30 = zext i1 %29 to i8 %31 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %30, i8* %31, align 1 %32 = lshr i64 %12, 63 %33 = trunc i64 %32 to i8 %34 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %33, i8* %34, align 1 %35 = lshr i64 %9, 63 %36 = xor i64 %32, %35 %37 = add i64 %36, %35 %38 = icmp eq i64 %37, 2 %39 = zext i1 %38 to i8 %40 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 %39, i8* %40, align 1 ret %struct.Memory* %2 } define %struct.Memory* @routine_xorl__esi___esi(%struct.State* dereferenceable(3376), i64, %struct.Memory*) { block_400488: %3 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %4 = getelementptr inbounds %struct.GPR, %struct.GPR* %3, i32 0, i32 33 %5 = getelementptr inbounds %struct.Reg, %struct.Reg* %4, i32 0, i32 0 %PC = bitcast %union.anon* %5 to i64* %6 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %7 = getelementptr inbounds %struct.GPR, %struct.GPR* %6, i32 0, i32 9 %8 = getelementptr inbounds %struct.Reg, %struct.Reg* %7, i32 0, i32 0 %ESI = bitcast %union.anon* %8 to i32* %9 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %10 = getelementptr inbounds %struct.GPR, %struct.GPR* %9, i32 0, i32 9 %11 = getelementptr inbounds %struct.Reg, %struct.Reg* %10, i32 0, i32 0 %RSI = bitcast %union.anon* %11 to i64* %12 = load i64, i64* %RSI %13 = load i32, i32* %ESI %14 = zext i32 %13 to i64 %15 = load i64, i64* %PC %16 = add i64 %15, 2 store i64 %16, i64* %PC %17 = xor i64 %14, %12 %18 = trunc i64 %17 to i32 %19 = and i64 %17, 4294967295 store i64 %19, i64* %RSI, align 8 %20 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 0, i8* %20, align 1 %21 = and i32 %18, 255 %22 = call i32 @llvm.ctpop.i32(i32 %21) %23 = trunc i32 %22 to i8 %24 = and i8 %23, 1 %25 = xor i8 %24, 1 %26 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 3 store i8 %25, i8* %26, align 1 %27 = icmp eq i32 %18, 0 %28 = zext i1 %27 to i8 %29 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 7 store i8 %28, i8* %29, align 1 %30 = lshr i32 %18, 31 %31 = trunc i32 %30 to i8 %32 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 9 store i8 %31, i8* %32, align 1 %33 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 13 store i8 0, i8* %33, align 1 %34 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 5 store i8 0, i8* %34, align 1 ret %struct.Memory* %2 } define %struct.Memory* @routine_movl__0x100___eax(%struct.State* dereferenceable(3376), i64, %struct.Memory*) { block_400488: %3 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %4 = getelementptr inbounds %struct.GPR, %struct.GPR* %3, i32 0, i32 33 %5 = getelementptr inbounds %struct.Reg, %struct.Reg* %4, i32 0, i32 0 %PC = bitcast %union.anon* %5 to i64* %6 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %7 = getelementptr inbounds %struct.GPR, %struct.GPR* %6, i32 0, i32 1 %8 = getelementptr inbounds %struct.Reg, %struct.Reg* %7, i32 0, i32 0 %RAX = bitcast %union.anon* %8 to i64* %9 = load i64, i64* %PC %10 = add i64 %9, 5 store i64 %10, i64* %PC store i64 256, i64* %RAX, align 8 ret %struct.Memory* %2 } define %struct.Memory* @routine_movl__eax___edx(%struct.State* dereferenceable(3376), i64, %struct.Memory*) { block_400488: %3 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %4 = getelementptr inbounds %struct.GPR, %struct.GPR* %3, i32 0, i32 33 %5 = getelementptr inbounds %struct.Reg, %struct.Reg* %4, i32 0, i32 0 %PC = bitcast %union.anon* %5 to i64* %6 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %7 = getelementptr inbounds %struct.GPR, %struct.GPR* %6, i32 0, i32 1 %8 = getelementptr inbounds %struct.Reg, %struct.Reg* %7, i32 0, i32 0 %EAX = bitcast %union.anon* %8 to i32* %9 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %10 = getelementptr inbounds %struct.GPR, %struct.GPR* %9, i32 0, i32 7 %11 = getelementptr inbounds %struct.Reg, %struct.Reg* %10, i32 0, i32 0 %RDX = bitcast %union.anon* %11 to i64* %12 = load i32, i32* %EAX %13 = zext i32 %12 to i64 %14 = load i64, i64* %PC %15 = add i64 %14, 2 store i64 %15, i64* %PC %16 = and i64 %13, 4294967295 store i64 %16, i64* %RDX, align 8 ret %struct.Memory* %2 } define %struct.Memory* @routine_movq__rdi__MINUS0x8__rbp_(%struct.State* dereferenceable(3376), i64, %struct.Memory*) { block_400488: %3 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %4 = getelementptr inbounds %struct.GPR, %struct.GPR* %3, i32 0, i32 33 %5 = getelementptr inbounds %struct.Reg, %struct.Reg* %4, i32 0, i32 0 %PC = bitcast %union.anon* %5 to i64* %6 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %7 = getelementptr inbounds %struct.GPR, %struct.GPR* %6, i32 0, i32 11 %8 = getelementptr inbounds %struct.Reg, %struct.Reg* %7, i32 0, i32 0 %RDI = bitcast %union.anon* %8 to i64* %9 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %10 = getelementptr inbounds %struct.GPR, %struct.GPR* %9, i32 0, i32 15 %11 = getelementptr inbounds %struct.Reg, %struct.Reg* %10, i32 0, i32 0 %RBP = bitcast %union.anon* %11 to i64* %12 = load i64, i64* %RBP %13 = sub i64 %12, 8 %14 = load i64, i64* %RDI %15 = load i64, i64* %PC %16 = add i64 %15, 4 store i64 %16, i64* %PC %17 = inttoptr i64 %13 to i64* store i64 %14, i64* %17 ret %struct.Memory* %2 } define %struct.Memory* @routine_movq_MINUS0x8__rbp____rdi(%struct.State* dereferenceable(3376), i64, %struct.Memory*) { block_400488: %3 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %4 = getelementptr inbounds %struct.GPR, %struct.GPR* %3, i32 0, i32 33 %5 = getelementptr inbounds %struct.Reg, %struct.Reg* %4, i32 0, i32 0 %PC = bitcast %union.anon* %5 to i64* %6 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %7 = getelementptr inbounds %struct.GPR, %struct.GPR* %6, i32 0, i32 11 %8 = getelementptr inbounds %struct.Reg, %struct.Reg* %7, i32 0, i32 0 %RDI = bitcast %union.anon* %8 to i64* %9 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %10 = getelementptr inbounds %struct.GPR, %struct.GPR* %9, i32 0, i32 15 %11 = getelementptr inbounds %struct.Reg, %struct.Reg* %10, i32 0, i32 0 %RBP = bitcast %union.anon* %11 to i64* %12 = load i64, i64* %RBP %13 = sub i64 %12, 8 %14 = load i64, i64* %PC %15 = add i64 %14, 4 store i64 %15, i64* %PC %16 = inttoptr i64 %13 to i64* %17 = load i64, i64* %16 store i64 %17, i64* %RDI, align 8 ret %struct.Memory* %2 } define %struct.Memory* @routine_callq_.memset_plt(%struct.State* dereferenceable(3376), i64, %struct.Memory*, i64 %rel_off1, i64 %rel_off2, i64 %rel_off3) { block_400488: %3 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %4 = getelementptr inbounds %struct.GPR, %struct.GPR* %3, i32 0, i32 33 %5 = getelementptr inbounds %struct.Reg, %struct.Reg* %4, i32 0, i32 0 %PC = bitcast %union.anon* %5 to i64* %6 = load i64, i64* %PC %7 = add i64 %6, %rel_off1 %8 = load i64, i64* %PC %9 = add i64 %8, %rel_off2 %10 = load i64, i64* %PC %11 = add i64 %10, %rel_off3 store i64 %11, i64* %PC %12 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 13, i32 0, i32 0 %13 = load i64, i64* %12, align 8 %14 = add i64 %13, -8 %15 = inttoptr i64 %14 to i64* store i64 %9, i64* %15 store i64 %14, i64* %12, align 8 %16 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 6, i32 33, i32 0, i32 0 store i64 %7, i64* %16, align 8 ret %struct.Memory* %2 } define %struct.Memory* @routine_movl__0x1__MINUS0x114__rbp_(%struct.State* dereferenceable(3376), i64, %struct.Memory*) { block_400488: %3 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %4 = getelementptr inbounds %struct.GPR, %struct.GPR* %3, i32 0, i32 33 %5 = getelementptr inbounds %struct.Reg, %struct.Reg* %4, i32 0, i32 0 %PC = bitcast %union.anon* %5 to i64* %6 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %7 = getelementptr inbounds %struct.GPR, %struct.GPR* %6, i32 0, i32 15 %8 = getelementptr inbounds %struct.Reg, %struct.Reg* %7, i32 0, i32 0 %RBP = bitcast %union.anon* %8 to i64* %9 = load i64, i64* %RBP %10 = sub i64 %9, 276 %11 = load i64, i64* %PC %12 = add i64 %11, 10 store i64 %12, i64* %PC %13 = inttoptr i64 %10 to i32* store i32 1, i32* %13 ret %struct.Memory* %2 } define %struct.Memory* @routine_movl_MINUS0x114__rbp____eax(%struct.State* dereferenceable(3376), i64, %struct.Memory*) { block_400488: %3 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %4 = getelementptr inbounds %struct.GPR, %struct.GPR* %3, i32 0, i32 33 %5 = getelementptr inbounds %struct.Reg, %struct.Reg* %4, i32 0, i32 0 %PC = bitcast %union.anon* %5 to i64* %6 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %7 = getelementptr inbounds %struct.GPR, %struct.GPR* %6, i32 0, i32 1 %8 = getelementptr inbounds %struct.Reg, %struct.Reg* %7, i32 0, i32 0 %RAX = bitcast %union.anon* %8 to i64* %9 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %10 = getelementptr inbounds %struct.GPR, %struct.GPR* %9, i32 0, i32 15 %11 = getelementptr inbounds %struct.Reg, %struct.Reg* %10, i32 0, i32 0 %RBP = bitcast %union.anon* %11 to i64* %12 = load i64, i64* %RBP %13 = sub i64 %12, 276 %14 = load i64, i64* %PC %15 = add i64 %14, 6 store i64 %15, i64* %PC %16 = inttoptr i64 %13 to i32* %17 = load i32, i32* %16 %18 = zext i32 %17 to i64 store i64 %18, i64* %RAX, align 8 ret %struct.Memory* %2 } define %struct.Memory* @routine_cmpl_0x86b8b4___eax(%struct.State* dereferenceable(3376), i64, %struct.Memory*) { block_400488: %3 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %4 = getelementptr inbounds %struct.GPR, %struct.GPR* %3, i32 0, i32 33 %5 = getelementptr inbounds %struct.Reg, %struct.Reg* %4, i32 0, i32 0 %PC = bitcast %union.anon* %5 to i64* %6 = getelementptr inbounds %struct.State, %struct.State* %0, i32 0, i32 6 %7 = getelementptr inbounds %struct.GPR, %struct.GPR* %6, i32 0, i32 1 %8 = getelementptr inbounds %struct.Reg, %struct.Reg* %7, i32 0, i32 0 %EAX = bitcast %union.anon* %8 to i32* %9 = load i32, i32* %EAX %10 = zext i32 %9 to i64 %11 = load i64, i64* %PC %12 = add i64 %11, 7 store i64 %12, i64* %PC %13 = load i32, i32* bitcast (%G_0x86b8b4_type* @G_0x86b8b4 to i32*) %14 = sub i32 %9, %13 %15 = icmp ult i32 %9, %13 %16 = zext i1 %15 to i8 %17 = getelementptr inbounds %struct.State, %struct.State* %0, i64 0, i32 2, i32 1 store i8 %16, i8* %17, align 1 %18 = and i32 %14, 255 %19 = call i32 @llvm.ctpop.i32(i32 %18) %20 =