define ptr @S_P_CoreLib_System_Globalization_UmAlQuraCalendar__InitDateMapping(ptr %0) !dbg !170256 { BB00: %1 = alloca ptr, align 4 store ptr null, ptr %1, align 4 %2 = alloca ptr, align 4 store ptr null, ptr %2, align 4 %3 = freeze i32 undef %4 = alloca i32, align 4 store i32 %3, ptr %4, align 4 %5 = freeze i8 undef %6 = alloca i8, align 1 store i8 %5, ptr %6, align 1 %7 = alloca ptr, align 4 store ptr null, ptr %7, align 4 %8 = alloca ptr, align 4 store ptr null, ptr %8, align 4 %9 = alloca ptr, align 4 store ptr null, ptr %9, align 4 %10 = freeze <{ i32, i32, i64 }> undef %11 = alloca <{ i32, i32, i64 }>, align 8 store <{ i32, i32, i64 }> %10, ptr %11, align 1 %12 = freeze i32 undef %13 = alloca i32, align 4 store i32 %12, ptr %13, align 4 %14 = freeze i32 undef %15 = alloca i32, align 4 store i32 %14, ptr %15, align 4 %16 = freeze i32 undef %17 = alloca i32, align 4 store i32 %16, ptr %17, align 4 %18 = alloca ptr, align 4 store ptr %0, ptr %18, align 4 call void @llvm.dbg.declare(metadata ptr %18, metadata !170268, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 0)), !dbg !170269 call void @llvm.dbg.declare(metadata ptr %18, metadata !170270, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 4)), !dbg !170269 call void @llvm.dbg.declare(metadata ptr %4, metadata !170271, metadata !DIExpression()), !dbg !170269 br label %BB01 BB01: ; preds = %BB00 store ptr null, ptr %0, align 4 %19 = getelementptr i8, ptr %0, i32 4 store ptr null, ptr %19, align 4 %20 = getelementptr i8, ptr %0, i32 8 store ptr null, ptr %20, align 4 %21 = getelementptr i8, ptr %0, i32 12 store ptr null, ptr %21, align 4 %22 = getelementptr i8, ptr %0, i32 16 store ptr null, ptr %22, align 4 br label %BB02.1, !dbg !170272 BB02.1: ; preds = %BB01 %23 = getelementptr i8, ptr %0, i32 20, !dbg !170273 call void @RhpSetShadowStackTop(ptr %23), !dbg !170273 %24 = call ptr @RhpNewArray(ptr @"__MethodTable___Array", i32 736), !dbg !170273 %25 = getelementptr i8, ptr %0, i32 12, !dbg !170273 store ptr %24, ptr %25, align 4, !dbg !170273 %26 = load [1472 x i8], ptr @S_P_CoreLib__PrivateImplementationDetails____7BEC6AD454781FDCD8D475B3418629CBABB3BF9CA66FA80009D608A1A60D0696, align 1, !dbg !170273 %27 = getelementptr i8, ptr %0, i32 12, !dbg !170273 %28 = load ptr, ptr %27, align 4, !dbg !170273 %29 = getelementptr i8, ptr %28, i32 8, !dbg !170273 %30 = icmp ult ptr %29, inttoptr (i32 1024 to ptr), !dbg !170273 br i1 %30, label %BB02.2, label %BB02.3, !dbg !170273 BB02.2: ; preds = %BB02.1 %31 = getelementptr i8, ptr %0, i32 20, !dbg !170273 call void @S_P_CoreLib_Internal_Runtime_CompilerHelpers_ThrowHelpers__ThrowNullReferenceException(ptr %31), !dbg !170273 unreachable, !dbg !170273 BB02.3: ; preds = %BB02.1 store [1472 x i8] %26, ptr %29, align 1, !dbg !170273 %32 = getelementptr i8, ptr %0, i32 12, !dbg !170273 %33 = load ptr, ptr %32, align 4, !dbg !170273 store ptr %33, ptr %0, align 4, !dbg !170273 %34 = load ptr, ptr %0, align 4, !dbg !170274 %35 = getelementptr i8, ptr %34, i32 4, !dbg !170274 %36 = icmp ult ptr %35, inttoptr (i32 1024 to ptr), !dbg !170274 br i1 %36, label %BB02.4, label %BB02.5, !dbg !170274 BB02.4: ; preds = %BB02.3 %37 = getelementptr i8, ptr %0, i32 20, !dbg !170274 call void @S_P_CoreLib_Internal_Runtime_CompilerHelpers_ThrowHelpers__ThrowNullReferenceException(ptr %37), !dbg !170274 unreachable, !dbg !170274 BB02.5: ; preds = %BB02.3 %38 = load i32, ptr %35, align 4, !dbg !170274 %39 = sdiv i32 %38, 4, !dbg !170274 %40 = getelementptr i8, ptr %0, i32 20, !dbg !170274 call void @RhpSetShadowStackTop(ptr %40), !dbg !170274 %41 = call ptr @RhpNewArrayAlign8(ptr @"__MethodTable___Array", i32 %39), !dbg !170274 %42 = getelementptr i8, ptr %0, i32 16, !dbg !170274 store ptr %41, ptr %42, align 4, !dbg !170274 %43 = getelementptr i8, ptr %0, i32 16, !dbg !170274 %44 = load ptr, ptr %43, align 4, !dbg !170274 %45 = getelementptr i8, ptr %0, i32 4, !dbg !170274 store ptr %44, ptr %45, align 4, !dbg !170274 store i32 0, ptr %4, align 4, !dbg !170275 br label %BB04.1, !dbg !170275 BB04.1: ; preds = %BB03.21, %BB02.5 %46 = load i32, ptr %4, align 4, !dbg !170275 %47 = getelementptr i8, ptr %0, i32 4, !dbg !170275 %48 = load ptr, ptr %47, align 4, !dbg !170275 %49 = getelementptr i8, ptr %48, i32 4, !dbg !170275 %50 = icmp ult ptr %49, inttoptr (i32 1024 to ptr), !dbg !170275 br i1 %50, label %BB04.2, label %BB04.3, !dbg !170275 BB04.2: ; preds = %BB04.1 %51 = getelementptr i8, ptr %0, i32 20, !dbg !170275 call void @S_P_CoreLib_Internal_Runtime_CompilerHelpers_ThrowHelpers__ThrowNullReferenceException(ptr %51), !dbg !170275 unreachable, !dbg !170275 BB04.3: ; preds = %BB04.1 %52 = load i32, ptr %49, align 4, !dbg !170275 %53 = icmp slt i32 %46, %52, !dbg !170275 %54 = zext i1 %53 to i8, !dbg !170275 store i8 %54, ptr %6, align 1, !dbg !170275 %55 = load i8, ptr %6, align 1, !dbg !170275 %56 = zext i8 %55 to i32, !dbg !170275 %57 = icmp ne i32 %56, 0, !dbg !170275 br i1 %57, label %BB03.1, label %BB05, !dbg !170275 BB03.1: ; preds = %BB04.3 store <{ i32, i32, i64 }> zeroinitializer, ptr %11, align 1, !dbg !170276 %58 = load i32, ptr %4, align 4, !dbg !170276 %lsh = shl i32 %58, 2, !dbg !170276 %59 = load ptr, ptr %0, align 4, !dbg !170276 %60 = getelementptr i8, ptr %59, i32 4, !dbg !170276 %61 = icmp ult ptr %60, inttoptr (i32 1024 to ptr), !dbg !170276 br i1 %61, label %BB03.2, label %BB03.3, !dbg !170276 BB03.2: ; preds = %BB03.1 %62 = getelementptr i8, ptr %0, i32 20, !dbg !170276 call void @S_P_CoreLib_Internal_Runtime_CompilerHelpers_ThrowHelpers__ThrowNullReferenceException(ptr %62), !dbg !170276 unreachable, !dbg !170276 BB03.3: ; preds = %BB03.1 %63 = load i32, ptr %60, align 4, !dbg !170276 %64 = icmp uge i32 %lsh, %63, !dbg !170276 br i1 %64, label %BB03.4, label %BB03.5, !dbg !170276 BB03.4: ; preds = %BB03.3 %65 = getelementptr i8, ptr %0, i32 20, !dbg !170276 call void @S_P_CoreLib_Internal_Runtime_CompilerHelpers_ThrowHelpers__ThrowIndexOutOfRangeException(ptr %65), !dbg !170276 unreachable, !dbg !170276 BB03.5: ; preds = %BB03.3 %66 = load ptr, ptr %0, align 4, !dbg !170276 %67 = load i32, ptr %4, align 4, !dbg !170276 %lsh1 = shl i32 %67, 2, !dbg !170276 %lsh2 = shl i32 %lsh1, 1, !dbg !170276 %68 = add i32 %lsh2, 8, !dbg !170276 %69 = getelementptr i8, ptr %66, i32 %68, !dbg !170276 %70 = load i16, ptr %69, align 2, !dbg !170276 %71 = load i32, ptr %4, align 4, !dbg !170276 %lsh3 = shl i32 %71, 2, !dbg !170276 %72 = add i32 %lsh3, 1, !dbg !170276 store i32 %72, ptr %13, align 4, !dbg !170276 %73 = load i32, ptr %13, align 4, !dbg !170276 %74 = load ptr, ptr %0, align 4, !dbg !170276 %75 = getelementptr i8, ptr %74, i32 4, !dbg !170276 %76 = icmp ult ptr %75, inttoptr (i32 1024 to ptr), !dbg !170276 br i1 %76, label %BB03.6, label %BB03.7, !dbg !170276 BB03.6: ; preds = %BB03.5 %77 = getelementptr i8, ptr %0, i32 20, !dbg !170276 call void @S_P_CoreLib_Internal_Runtime_CompilerHelpers_ThrowHelpers__ThrowNullReferenceException(ptr %77), !dbg !170276 unreachable, !dbg !170276 BB03.7: ; preds = %BB03.5 %78 = load i32, ptr %75, align 4, !dbg !170276 %79 = icmp uge i32 %73, %78, !dbg !170276 br i1 %79, label %BB03.8, label %BB03.9, !dbg !170276 BB03.8: ; preds = %BB03.7 %80 = getelementptr i8, ptr %0, i32 20, !dbg !170276 call void @S_P_CoreLib_Internal_Runtime_CompilerHelpers_ThrowHelpers__ThrowIndexOutOfRangeException(ptr %80), !dbg !170276 unreachable, !dbg !170276 BB03.9: ; preds = %BB03.7 %81 = load ptr, ptr %0, align 4, !dbg !170276 %82 = load i32, ptr %13, align 4, !dbg !170276 %lsh4 = shl i32 %82, 1, !dbg !170276 %83 = add i32 %lsh4, 8, !dbg !170276 %84 = getelementptr i8, ptr %81, i32 %83, !dbg !170276 %85 = load i16, ptr %84, align 2, !dbg !170276 %86 = load i32, ptr %4, align 4, !dbg !170276 %lsh5 = shl i32 %86, 2, !dbg !170276 %87 = add i32 %lsh5, 2, !dbg !170276 store i32 %87, ptr %15, align 4, !dbg !170276 %88 = load i32, ptr %15, align 4, !dbg !170276 %89 = load ptr, ptr %0, align 4, !dbg !170276 %90 = getelementptr i8, ptr %89, i32 4, !dbg !170276 %91 = icmp ult ptr %90, inttoptr (i32 1024 to ptr), !dbg !170276 br i1 %91, label %BB03.10, label %BB03.11, !dbg !170276 BB03.10: ; preds = %BB03.9 %92 = getelementptr i8, ptr %0, i32 20, !dbg !170276 call void @S_P_CoreLib_Internal_Runtime_CompilerHelpers_ThrowHelpers__ThrowNullReferenceException(ptr %92), !dbg !170276 unreachable, !dbg !170276 BB03.11: ; preds = %BB03.9 %93 = load i32, ptr %90, align 4, !dbg !170276 %94 = icmp uge i32 %88, %93, !dbg !170276 br i1 %94, label %BB03.12, label %BB03.13, !dbg !170276 BB03.12: ; preds = %BB03.11 %95 = getelementptr i8, ptr %0, i32 20, !dbg !170276 call void @S_P_CoreLib_Internal_Runtime_CompilerHelpers_ThrowHelpers__ThrowIndexOutOfRangeException(ptr %95), !dbg !170276 unreachable, !dbg !170276 BB03.13: ; preds = %BB03.11 %96 = load ptr, ptr %0, align 4, !dbg !170276 %97 = load i32, ptr %15, align 4, !dbg !170276 %lsh6 = shl i32 %97, 1, !dbg !170276 %98 = add i32 %lsh6, 8, !dbg !170276 %99 = getelementptr i8, ptr %96, i32 %98, !dbg !170276 %100 = load i16, ptr %99, align 2, !dbg !170276 %101 = load i32, ptr %4, align 4, !dbg !170276 %lsh7 = shl i32 %101, 2, !dbg !170276 %102 = add i32 %lsh7, 3, !dbg !170276 store i32 %102, ptr %17, align 4, !dbg !170276 %103 = load i32, ptr %17, align 4, !dbg !170276 %104 = load ptr, ptr %0, align 4, !dbg !170276 %105 = getelementptr i8, ptr %104, i32 4, !dbg !170276 %106 = icmp ult ptr %105, inttoptr (i32 1024 to ptr), !dbg !170276 br i1 %106, label %BB03.14, label %BB03.15, !dbg !170276 BB03.14: ; preds = %BB03.13 %107 = getelementptr i8, ptr %0, i32 20, !dbg !170276 call void @S_P_CoreLib_Internal_Runtime_CompilerHelpers_ThrowHelpers__ThrowNullReferenceException(ptr %107), !dbg !170276 unreachable, !dbg !170276 BB03.15: ; preds = %BB03.13 %108 = load i32, ptr %105, align 4, !dbg !170276 %109 = icmp uge i32 %103, %108, !dbg !170276 br i1 %109, label %BB03.16, label %BB03.17, !dbg !170276 BB03.16: ; preds = %BB03.15 %110 = getelementptr i8, ptr %0, i32 20, !dbg !170276 call void @S_P_CoreLib_Internal_Runtime_CompilerHelpers_ThrowHelpers__ThrowIndexOutOfRangeException(ptr %110), !dbg !170276 unreachable, !dbg !170276 BB03.17: ; preds = %BB03.15 %111 = load ptr, ptr %0, align 4, !dbg !170276 %112 = load i32, ptr %17, align 4, !dbg !170276 %lsh8 = shl i32 %112, 1, !dbg !170276 %113 = add i32 %lsh8, 8, !dbg !170276 %114 = getelementptr i8, ptr %111, i32 %113, !dbg !170276 %115 = load i16, ptr %114, align 2, !dbg !170276 %116 = getelementptr i8, ptr %0, i32 20, !dbg !170276 %117 = getelementptr i8, ptr %0, i32 20, !dbg !170276 %118 = ptrtoint ptr %11 to i32, !dbg !170276 store i32 %118, ptr %117, align 4, !dbg !170276 %119 = sext i16 %70 to i32, !dbg !170276 %120 = sext i16 %85 to i32, !dbg !170276 %121 = sext i16 %100 to i32, !dbg !170276 %122 = sext i16 %115 to i32, !dbg !170276 call void @S_P_CoreLib_System_Globalization_UmAlQuraCalendar_DateMapping___ctor(ptr %116, i32 %119, i32 %120, i32 %121, i32 %122), !dbg !170276 %123 = load i32, ptr %4, align 4, !dbg !170276 %124 = getelementptr i8, ptr %0, i32 4, !dbg !170276 %125 = load ptr, ptr %124, align 4, !dbg !170276 %126 = getelementptr i8, ptr %125, i32 4, !dbg !170276 %127 = icmp ult ptr %126, inttoptr (i32 1024 to ptr), !dbg !170276 br i1 %127, label %BB03.18, label %BB03.19, !dbg !170276 BB03.18: ; preds = %BB03.17 %128 = getelementptr i8, ptr %0, i32 20, !dbg !170276 call void @S_P_CoreLib_Internal_Runtime_CompilerHelpers_ThrowHelpers__ThrowNullReferenceException(ptr %128), !dbg !170276 unreachable, !dbg !170276 BB03.19: ; preds = %BB03.17 %129 = load i32, ptr %126, align 4, !dbg !170276 %130 = icmp uge i32 %123, %129, !dbg !170276 br i1 %130, label %BB03.20, label %BB03.21, !dbg !170276 BB03.20: ; preds = %BB03.19 %131 = getelementptr i8, ptr %0, i32 20, !dbg !170276 call void @S_P_CoreLib_Internal_Runtime_CompilerHelpers_ThrowHelpers__ThrowIndexOutOfRangeException(ptr %131), !dbg !170276 unreachable, !dbg !170276 BB03.21: ; preds = %BB03.19 %132 = getelementptr i8, ptr %0, i32 4, !dbg !170276 %133 = load ptr, ptr %132, align 4, !dbg !170276 %134 = load i32, ptr %4, align 4, !dbg !170276 %lsh9 = shl i32 %134, 4, !dbg !170276 %135 = add i32 %lsh9, 8, !dbg !170276 %136 = getelementptr i8, ptr %133, i32 %135, !dbg !170276 %137 = load <{ i32, i32, i64 }>, ptr %11, align 1, !dbg !170276 store <{ i32, i32, i64 }> %137, ptr %136, align 1, !dbg !170276 %138 = load i32, ptr %4, align 4, !dbg !170275 %139 = add i32 %138, 1, !dbg !170275 store i32 %139, ptr %4, align 4, !dbg !170275 br label %BB04.1, !dbg !170275 BB05: ; preds = %BB04.3 %140 = getelementptr i8, ptr %0, i32 4, !dbg !170277 %141 = load ptr, ptr %140, align 4, !dbg !170277 %142 = getelementptr i8, ptr %0, i32 8, !dbg !170277 store ptr %141, ptr %142, align 4, !dbg !170277 br label %BB06, !dbg !170277 BB06: ; preds = %BB05 %143 = getelementptr i8, ptr %0, i32 8, !dbg !170278 %144 = load ptr, ptr %143, align 4, !dbg !170278 ret ptr %144, !dbg !170278 }