; ModuleID = '/tmp/webcompile/_8204_0.bc' target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" %struct._TP_CALLBACK_ENVIRON = type { i64, %struct._TP_POOL*, %struct._TP_CLEANUP_GROUP*, void (i8*, i8*)*, i8*, %struct._ACTIVATION_CONTEXT*, void (%struct._TP_CALLBACK_INSTANCE*, i8*)*, %union.anon } %struct._TP_POOL = type opaque %struct._TP_CLEANUP_GROUP = type opaque %struct._ACTIVATION_CONTEXT = type opaque %struct._TP_CALLBACK_INSTANCE = type opaque %union.anon = type { i64 } %struct.anon = type { i8, [3 x i8], [4 x i8] } %struct.interpreter = type { %struct.sv**, %struct.op*, %struct.sv**, %struct.sv**, %struct.sv**, i64*, i8**, i64, i64, %union.any*, i64, i64, %struct.sv**, i64, i64, i64, i64, i64*, i64*, i64*, %struct.sv*, %struct.xpv*, i64, %struct._stat64, %struct._stat64, %struct.gv*, %struct.sv*, %struct.tms, %struct.pmop*, %struct.sv*, %struct.gv*, %struct.gv*, %struct.gv*, i8*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.hv*, %struct.hv*, %struct.op*, %struct.jmpenv*, %struct.cop*, %struct.av*, %struct.stackinfo*, %struct.av*, %struct.jmpenv*, %struct.jmpenv, %struct.sv*, %struct.he*, %struct.op*, %struct.op*, %struct.hv*, %struct.gv*, %struct.gv*, i8*, i64, i64*, i64*, %struct.sv*, %struct.re_save_state, %struct.regnode, i16, i8, i8, [6 x i8*], void (%struct.interpreter*, %struct.op*)*, void (%struct.interpreter*, %struct.op*)*, void (%struct.interpreter*, %struct.op*)*, i64, i64, i8**, i8*, %struct.regmatch_slab*, %struct.regmatch_state*, i16, i8, i8, i8, i8, i32, i8, i64, i32, i8**, %struct.gv*, %struct.gv*, %struct.gv*, i8*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, i8**, i8*, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8*, %struct.sv*, i64, %struct.sv*, i64, i64, i64, i32, i32*, %struct.gv*, %struct.gv*, %struct.gv*, %struct.gv*, %struct.gv*, %struct.av*, %struct.gv*, %struct.gv*, %struct.gv*, %struct.gv*, %struct.gv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.av*, %struct.hv*, %struct.hv*, %struct.sv*, %struct.av*, %struct.av*, %struct.av*, %struct.av*, %struct.av*, %struct.hv*, i64, i32, i64, i64, %struct.sv*, %struct.sv*, %struct.av*, i8*, %struct.cv*, %struct.op*, %struct.op*, %struct.op*, %struct.op*, %struct.cop*, i32, i32, i8*, i8**, i8*, %struct.av*, %struct.sv*, %struct.sv*, i64, i8, i8, i16, i32, i64, %struct.exitlistentry*, %struct.hv*, i64*, %struct.cop, %struct.cv*, %struct.av*, %struct.av*, i64, i64, %struct.interp_intern, %struct.cv*, i32, i8, i8, i8, i8, i64, i64, i64, i64, i64, i64, i64, i64, i8**, i8*, void (i32)*, [16 x i8*], i64, i32, {}*, %struct.sv, %struct.sv, %struct.sv, %struct.sv*, i64, i64, i64, i64, i64, i64, i64, i64, i64, i8*, i64, i64, i64, i8, i8, i8, i8, i8*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, %struct.hv*, i8*, i64, [10 x i8], i8, i8, i32, %struct.yy_parser*, %struct.sv**, %struct.sv**, %struct.ptr_tbl*, %struct.av*, i8*, %struct.sv*, %struct.sv**, %struct.av*, %struct.REENTR*, %struct.hv*, %struct.hv*, %struct._PerlIO*, %struct.PerlIO_list_s*, %struct.PerlIO_list_s*, %struct.sv*, %struct.perl_debug_pad, %struct.sv*, %struct.sv*, %struct.sv*, %struct.sv*, i64 (%struct.interpreter*, %struct.sv*, %struct.sv*)*, %struct.av*, %struct.av*, i64, i64, i32, %struct.hv*, void (%struct.interpreter*, %struct.sv*)*, void (%struct.interpreter*, %struct.sv*)*, void (%struct.interpreter*, %struct.sv*)*, {}*, void (%struct.interpreter*)*, i64, i64, %struct.hv*, i32, i8**, i8 (%struct.interpreter*, %struct.sv*)*, %struct.hv*, %struct.av*, %struct.hv*, %struct.hv*, %struct.hv* } %struct.sv = type { i8*, i64, i64, %union.anon.0 } %union.anon.0 = type { i8* } %struct.op = type { %struct.op*, %struct.op*, %struct.op* (%struct.interpreter*)*, i64, [2 x i8], i8, i8 } %union.any = type { i8* } %struct.xpv = type { %struct.hv*, %union._xmgu, i64, i64 } %struct.hv = type { %struct.xpvhv*, i64, i64, %union.anon.3 } %struct.xpvhv = type { %struct.hv*, %union._xmgu, i64, i64 } %union._xmgu = type { %struct.magic* } %struct.magic = type { %struct.magic*, %struct.mgvtbl*, i16, i8, i8, i64, %struct.sv*, i8* } %struct.mgvtbl = type { i32 (%struct.interpreter*, %struct.sv*, %struct.magic*)*, i32 (%struct.interpreter*, %struct.sv*, %struct.magic*)*, i64 (%struct.interpreter*, %struct.sv*, %struct.magic*)*, i32 (%struct.interpreter*, %struct.sv*, %struct.magic*)*, i32 (%struct.interpreter*, %struct.sv*, %struct.magic*)*, i32 (%struct.interpreter*, %struct.sv*, %struct.magic*, %struct.sv*, i8*, i64)*, i32 (%struct.interpreter*, %struct.magic*, %struct.clone_params*)*, i32 (%struct.interpreter*, %struct.sv*, %struct.magic*)* } %struct.clone_params = type { %struct.av*, i64, %struct.interpreter*, %struct.interpreter*, %struct.av* } %struct.av = type { %struct.xpvav*, i64, i64, %union.anon.2 } %struct.xpvav = type { %struct.hv*, %union._xmgu, i64, i64, %struct.sv** } %union.anon.2 = type { i8* } %union.anon.3 = type { i8* } %struct._stat64 = type { i32, i16, i16, i16, i16, i16, i32, i64, i64, i64, i64 } %struct.gv = type { %struct.xpvgv*, i64, i64, %union.anon.7 } %struct.xpvgv = type { %struct.hv*, %union._xmgu, i64, i64, %union._xivu, %union._xnvu } %union._xivu = type { i64 } %union._xnvu = type { %struct.anon.5 } %struct.anon.5 = type { i64, i64 } %union.anon.7 = type { i8* } %struct.tms = type { i64, i64, i64, i64 } %struct.pmop = type { %struct.op*, %struct.op*, %struct.op* (%struct.interpreter*)*, i64, [2 x i8], i8, i8, %struct.op*, %struct.op*, i64, i64, %union.anon.12, %union.anon.13 } %union.anon.12 = type { %struct.op* } %union.anon.13 = type { %struct.op* } %struct.jmpenv = type { %struct.jmpenv*, [16 x i32], i32, i8 } %struct.cop = type { %struct.op*, %struct.op*, %struct.op* (%struct.interpreter*)*, i64, [2 x i8], i8, i8, i64, i8*, i8*, i64, i64, i64*, %struct.refcounted_he* } %struct.refcounted_he = type opaque %struct.stackinfo = type { %struct.av*, %struct.context*, %struct.stackinfo*, %struct.stackinfo*, i64, i64, i64, i64 } %struct.context = type { %union.anon.14 } %union.anon.14 = type { %struct.block } %struct.block = type { i8, i8, i16, i64, %struct.cop*, i64, i64, %struct.pmop*, %union.anon.15 } %union.anon.15 = type { %struct.block_sub } %struct.block_sub = type { %struct.op*, %struct.cv*, %struct.av*, %struct.av*, i64, %struct.av* } %struct.cv = type { %struct.xpvcv*, i64, i64, %union.anon.11 } %struct.xpvcv = type { %struct.hv*, %union._xmgu, i64, i64, %struct.hv*, %union.anon.9, %union.anon.10, %struct.gv*, i8*, %struct.av*, %struct.cv*, i64, i16, i64 } %union.anon.9 = type { %struct.op* } %union.anon.10 = type { %struct.op* } %union.anon.11 = type { i8* } %struct.he = type { %struct.he*, %struct.hek*, %union.anon.1 } %struct.hek = type { i64, i64, [1 x i8] } %union.anon.1 = type { %struct.sv* } %struct.re_save_state = type { i64, i64, i64, i8, i8*, i8*, i8*, %struct.regexp_paren_pair*, i64*, i64*, i8**, %struct.magic*, %struct.pmop*, %struct.pmop*, i8*, i64, i64, i64, i64, i64, i64, i8*, i8* } %struct.regexp_paren_pair = type { i64, i64 } %struct.regnode = type { i8, i8, i16 } %struct.regmatch_slab = type { [42 x %struct.regmatch_state], %struct.regmatch_slab*, %struct.regmatch_slab* } %struct.regmatch_state = type { i32, i8*, %union.anon.22 } %union.anon.22 = type { %struct.anon.26 } %struct.anon.26 = type { %struct.regmatch_state*, i64, i64, i64, i16*, %struct.regnode*, %struct.regnode*, i8*, i64, i16, i16, i8 } %struct.exitlistentry = type { void (%struct.interpreter*, i8*)*, i8* } %struct.interp_intern = type { i8*, i8**, i64, %struct.av*, %struct.child_tab*, i64, %struct.pseudo_child_tab*, i8*, %struct.thread_intern, %struct.HWND__*, i32, i32, [27 x void (i32)*] } %struct.child_tab = type { i64, [64 x i64], [64 x i8*] } %struct.pseudo_child_tab = type { i64, [64 x i64], [64 x i8*], [64 x %struct.HWND__*], [64 x i8] } %struct.HWND__ = type { i32 } %struct.thread_intern = type { [512 x i8], %struct.servent, [128 x i8], i32, [30 x i8], i32, i16 } %struct.servent = type { i8*, i8**, i16, i8* } %struct.yy_parser = type { %struct.yy_parser*, %union.YYSTYPE, i32, i32, i32, i32, %struct.yy_stack_frame*, %struct.yy_stack_frame*, i64, i64, i8*, i8*, i8, i8, i8, i8, i64, %struct.op*, %struct.op*, %struct.sv*, i16, i16, i64, %struct.sv*, i64, i64, i8, i8, i8, i8, i64, %struct._sublex_info, %struct.sv*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i64, i16, i8, i8, %struct.hv*, %struct._PerlIO**, %struct.av*, [5 x %union.YYSTYPE], [5 x i64], i64, %struct.cop*, [256 x i8], i8, i8 } %union.YYSTYPE = type { i64 } %struct.yy_stack_frame = type { %union.YYSTYPE, i16, i64, %struct.cv* } %struct._sublex_info = type { i8, i16, %struct.op*, i8*, i8* } %struct._PerlIO = type opaque %struct.ptr_tbl = type { %struct.ptr_tbl_ent**, i64, i64, %struct.ptr_tbl_arena*, %struct.ptr_tbl_ent*, %struct.ptr_tbl_ent* } %struct.ptr_tbl_ent = type { %struct.ptr_tbl_ent*, i8*, i8* } %struct.ptr_tbl_arena = type opaque %struct.REENTR = type { i32 } %struct.PerlIO_list_s = type opaque %struct.perl_debug_pad = type { [3 x %struct.sv] } define i64 @HEAP_MAKE_TAG_FLAGS(i64 %TagBase, i64 %Tag) nounwind uwtable { %1 = alloca i64, align 8 %2 = alloca i64, align 8 store i64 %TagBase, i64* %1, align 8 store i64 %Tag, i64* %2, align 8 %3 = load i64* %1, align 8 %4 = load i64* %2, align 8 %5 = shl i64 %4, 18 %6 = add i64 %3, %5 ret i64 %6 } define i8* @RtlSecureZeroMemory(i8* %ptr, i64 %cnt) nounwind uwtable { %1 = alloca i8*, align 8 %2 = alloca i64, align 8 %vptr = alloca i8*, align 8 store i8* %ptr, i8** %1, align 8 store i64 %cnt, i64* %2, align 8 %3 = load i8** %1, align 8 store i8* %3, i8** %vptr, align 8 br label %4 ;