Created
December 4, 2019 03:10
-
-
Save kmicinski/0e1985c1e869d4861f30f054d8460039 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; Function Attrs: nobuiltin noinline nounwind | |
define i64 @foo(i64, i64, i64, i64, i64, i64, i64, i64) local_unnamed_addr #4 { | |
%9 = load volatile i64, i64* getelementptr inbounds (%struct.State, %struct.State* @__mcsema_reg_state, i64 0, i32 6, i32 13, i32 0, i32 0), align 8 | |
%10 = icmp eq i64 %9, 0 | |
br i1 %10, label %is_null.i, label %__mcsema_verify_reg_state.exit | |
is_null.i: ; preds = %8 | |
store i64 ptrtoint (i64* getelementptr inbounds ([131072 x i64], [131072 x i64]* @__mcsema_stack, i64 0, i64 131064) to i64), i64* getelementptr inbounds (%struct.State, %struct.State* @__mcsema_reg_state, i64 0, i32 6, i32 13, i32 0, i32 0), align 8 | |
br label %__mcsema_verify_reg_state.exit | |
__mcsema_verify_reg_state.exit: ; preds = %is_null.i, %8 | |
%11 = phi i64 [ %9, %8 ], [ ptrtoint (i64* getelementptr inbounds ([131072 x i64], [131072 x i64]* @__mcsema_stack, i64 0, i64 131064) to i64), %is_null.i ] | |
store i64 4389, i64* getelementptr inbounds (%struct.State, %struct.State* @__mcsema_reg_state, i64 0, i32 6, i32 33, i32 0, i32 0), align 8 | |
store i64 ptrtoint ([512 x i64]* @__mcsema_tls to i64), i64* getelementptr inbounds (%struct.State, %struct.State* @__mcsema_reg_state, i64 0, i32 5, i32 7, i32 0, i32 0), align 8 | |
%12 = load volatile i1, i1* @0, align 1 | |
br i1 %12, label %__mcsema_early_init.exit, label %13 | |
; <label>:13: ; preds = %__mcsema_verify_reg_state.exit | |
store volatile i1 true, i1* @0, align 1 | |
br label %__mcsema_early_init.exit | |
__mcsema_early_init.exit: ; preds = %13, %__mcsema_verify_reg_state.exit | |
store i64 %0, i64* getelementptr inbounds (%struct.State, %struct.State* @__mcsema_reg_state, i64 0, i32 6, i32 11, i32 0, i32 0), align 8 | |
store i64 %1, i64* getelementptr inbounds (%struct.State, %struct.State* @__mcsema_reg_state, i64 0, i32 6, i32 9, i32 0, i32 0), align 8 | |
store i64 %2, i64* getelementptr inbounds (%struct.State, %struct.State* @__mcsema_reg_state, i64 0, i32 6, i32 7, i32 0, i32 0), align 8 | |
store i64 %3, i64* getelementptr inbounds (%struct.State, %struct.State* @__mcsema_reg_state, i64 0, i32 6, i32 5, i32 0, i32 0), align 8 | |
store i64 %4, i64* getelementptr inbounds (%struct.State, %struct.State* @__mcsema_reg_state, i64 0, i32 6, i32 17, i32 0, i32 0), align 8 | |
store i64 %5, i64* getelementptr inbounds (%struct.State, %struct.State* @__mcsema_reg_state, i64 0, i32 6, i32 19, i32 0, i32 0), align 8 | |
%14 = inttoptr i64 %11 to i64* | |
store i64 %7, i64* %14 | |
%15 = add i64 %11, -8 | |
%16 = inttoptr i64 %15 to i64* | |
store i64 %6, i64* %16 | |
%17 = add i64 %11, -24 | |
store i64 %17, i64* getelementptr inbounds (%struct.State, %struct.State* @__mcsema_reg_state, i64 0, i32 6, i32 13, i32 0, i32 0), align 8 | |
%18 = tail call %struct.Memory* @sub_1125_foo(%struct.State* nonnull @__mcsema_reg_state, i64 4389, %struct.Memory* null) | |
store i64 %11, i64* getelementptr inbounds (%struct.State, %struct.State* @__mcsema_reg_state, i64 0, i32 6, i32 13, i32 0, i32 0), align 8 | |
%19 = load i64, i64* getelementptr inbounds (%struct.State, %struct.State* @__mcsema_reg_state, i64 0, i32 6, i32 1, i32 0, i32 0), align 8 | |
ret i64 %19 | |
} | |
; Function Attrs: nounwind | |
define internal void @__mcsema_constructor() #6 { | |
%1 = load volatile i1, i1* @0, align 1 | |
br i1 %1, label %__mcsema_early_init.exit, label %2 | |
; <label>:2: ; preds = %0 | |
store volatile i1 true, i1* @0, align 1 | |
br label %__mcsema_early_init.exit | |
__mcsema_early_init.exit: ; preds = %2, %0 | |
%3 = tail call i64 @callback_sub_1180___libc_csu_init() | |
ret void | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment