aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <azakai@mozilla.com>2010-11-20 20:00:11 -0800
committerAlon Zakai <azakai@mozilla.com>2010-11-20 20:00:11 -0800
commitfa5bac952a9eb74d4964b8497454aac1b32299a5 (patch)
tree85df12e896ee36fc6345100e032e478874eec01c
parentd61473b75862c62293318ced24a638d322ff2bd9 (diff)
lua test
-rw-r--r--src/library.js3
-rw-r--r--tests/lua/COPYRIGHT34
-rw-r--r--tests/lua/Makefile184
-rw-r--r--tests/lua/lua.ll54637
-rw-r--r--tests/runner.py4
5 files changed, 54858 insertions, 4 deletions
diff --git a/src/library.js b/src/library.js
index 424d00b4..a052c44b 100644
--- a/src/library.js
+++ b/src/library.js
@@ -19,7 +19,7 @@ var Library = {
__print__(Pointer_stringify(p) + '\n');
},
- fputs: function(file, p) {
+ fputs: function(p, stream) {
__print__(Pointer_stringify(p) + '\n');
},
@@ -93,7 +93,6 @@ var Library = {
},
getenv: function(name_) {
- print('getenv: ' + name_); // XXX
return 0; // TODO
},
diff --git a/tests/lua/COPYRIGHT b/tests/lua/COPYRIGHT
new file mode 100644
index 00000000..3a53e741
--- /dev/null
+++ b/tests/lua/COPYRIGHT
@@ -0,0 +1,34 @@
+Lua License
+-----------
+
+Lua is licensed under the terms of the MIT license reproduced below.
+This means that Lua is free software and can be used for both academic
+and commercial purposes at absolutely no cost.
+
+For details and rationale, see http://www.lua.org/license.html .
+
+===============================================================================
+
+Copyright (C) 1994-2008 Lua.org, PUC-Rio.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+===============================================================================
+
+(end of COPYRIGHT)
diff --git a/tests/lua/Makefile b/tests/lua/Makefile
new file mode 100644
index 00000000..c6ae126f
--- /dev/null
+++ b/tests/lua/Makefile
@@ -0,0 +1,184 @@
+# makefile for building Lua
+# see ../INSTALL for installation instructions
+# see ../Makefile and luaconf.h for further customization
+
+# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
+
+PLAT=generic # Emscripten needs |generic|!
+
+# Fix '...' with the proper absolute path
+CC = "/.../Dev/llvm-2.8/cbuild/Release/bin/clang++" # C++ compiler, so we don't use longjmp/setjmp!
+CFLAGS= -emit-llvm -U__i386__ -U__x86_64__
+AR= "/.../Dev/llvm-2.8/cbuild/Release/bin/llvm-link"
+RANLIB= "/.../Dev/llvm-2.8/cbuild/Release/bin/llvm-dis"
+RM= rm -f
+LIBS= -lm $(MYLIBS)
+
+MYCFLAGS=
+MYLDFLAGS=
+MYLIBS=
+
+# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
+
+PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
+
+LUA_A= liblua.a
+CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \
+ lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o \
+ lundump.o lvm.o lzio.o
+LIB_O= lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o \
+ lstrlib.o loadlib.o linit.o
+
+LUA_T= lua
+LUA_O= lua.o
+
+LUAC_T= luac
+LUAC_O= luac.o print.o
+
+ALL_O= $(CORE_O) $(LIB_O) $(LUA_O)
+ALL_T= $(LUA_A) $(LUA_T)
+ALL_A= $(LUA_A)
+
+default: $(PLAT)
+
+all: $(ALL_T)
+
+o: $(ALL_O)
+
+a: $(ALL_A)
+
+$(LUA_A): $(CORE_O) $(LIB_O)
+ $(AR) -o=$@ $?
+ $(RANLIB) -show-annotations $@
+
+$(LUA_T): $(LUA_O) $(LUA_A)
+ $(AR) -o=$@ $(MYLDFLAGS) $(LUA_O) $(LUA_A)
+ $(RANLIB) -show-annotations $@
+
+$(LUAC_T): $(LUAC_O) $(LUA_A)
+ $(AR) -o=$@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A)
+ $(RANLIB) -show-annotations $@
+
+clean:
+ $(RM) $(ALL_T) $(ALL_O)
+
+depend:
+ @$(CC) $(CFLAGS) -MM l*.c print.c
+
+echo:
+ @echo "PLAT = $(PLAT)"
+ @echo "CC = $(CC)"
+ @echo "CFLAGS = $(CFLAGS)"
+ @echo "AR = $(AR)"
+ @echo "RANLIB = $(RANLIB)"
+ @echo "RM = $(RM)"
+ @echo "MYCFLAGS = $(MYCFLAGS)"
+ @echo "MYLDFLAGS = $(MYLDFLAGS)"
+ @echo "MYLIBS = $(MYLIBS)"
+
+# convenience targets for popular platforms
+
+none:
+ @echo "Please choose a platform:"
+ @echo " $(PLATS)"
+
+aix:
+ $(MAKE) all CC="xlc" CFLAGS="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" MYLIBS="-ldl" MYLDFLAGS="-brtl -bexpall"
+
+ansi:
+ $(MAKE) all MYCFLAGS=-DLUA_ANSI
+
+bsd:
+ $(MAKE) all MYCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" MYLIBS="-Wl,-E"
+
+freebsd:
+ $(MAKE) all MYCFLAGS="-DLUA_USE_LINUX" MYLIBS="-Wl,-E -lreadline"
+
+generic:
+ $(MAKE) all MYCFLAGS=
+
+linux:
+ $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses"
+
+macosx:
+ $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-lreadline"
+# use this on Mac OS X 10.3-
+# $(MAKE) all MYCFLAGS=-DLUA_USE_MACOSX
+
+mingw:
+ $(MAKE) "LUA_A=lua51.dll" "LUA_T=lua.exe" \
+ "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \
+ "MYCFLAGS=-DLUA_BUILD_AS_DLL" "MYLIBS=" "MYLDFLAGS=-s" lua.exe
+ $(MAKE) "LUAC_T=luac.exe" luac.exe
+
+posix:
+ $(MAKE) all MYCFLAGS=-DLUA_USE_POSIX
+
+solaris:
+ $(MAKE) all MYCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" MYLIBS="-ldl"
+
+# list targets that do not create files (but not all makes understand .PHONY)
+.PHONY: all $(PLATS) default o a clean depend echo none
+
+# DO NOT DELETE
+
+lapi.o: lapi.c lua.h luaconf.h lapi.h lobject.h llimits.h ldebug.h \
+ lstate.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h \
+ lundump.h lvm.h
+lauxlib.o: lauxlib.c lua.h luaconf.h lauxlib.h
+lbaselib.o: lbaselib.c lua.h luaconf.h lauxlib.h lualib.h
+lcode.o: lcode.c lua.h luaconf.h lcode.h llex.h lobject.h llimits.h \
+ lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h lgc.h \
+ ltable.h
+ldblib.o: ldblib.c lua.h luaconf.h lauxlib.h lualib.h
+ldebug.o: ldebug.c lua.h luaconf.h lapi.h lobject.h llimits.h lcode.h \
+ llex.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h \
+ lfunc.h lstring.h lgc.h ltable.h lvm.h
+ldo.o: ldo.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \
+ lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lparser.h lstring.h \
+ ltable.h lundump.h lvm.h
+ldump.o: ldump.c lua.h luaconf.h lobject.h llimits.h lstate.h ltm.h \
+ lzio.h lmem.h lundump.h
+lfunc.o: lfunc.c lua.h luaconf.h lfunc.h lobject.h llimits.h lgc.h lmem.h \
+ lstate.h ltm.h lzio.h
+lgc.o: lgc.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \
+ lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h
+linit.o: linit.c lua.h luaconf.h lualib.h lauxlib.h
+liolib.o: liolib.c lua.h luaconf.h lauxlib.h lualib.h
+llex.o: llex.c lua.h luaconf.h ldo.h lobject.h llimits.h lstate.h ltm.h \
+ lzio.h lmem.h llex.h lparser.h lstring.h lgc.h ltable.h
+lmathlib.o: lmathlib.c lua.h luaconf.h lauxlib.h lualib.h
+lmem.o: lmem.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \
+ ltm.h lzio.h lmem.h ldo.h
+loadlib.o: loadlib.c lua.h luaconf.h lauxlib.h lualib.h
+lobject.o: lobject.c lua.h luaconf.h ldo.h lobject.h llimits.h lstate.h \
+ ltm.h lzio.h lmem.h lstring.h lgc.h lvm.h
+lopcodes.o: lopcodes.c lopcodes.h llimits.h lua.h luaconf.h
+loslib.o: loslib.c lua.h luaconf.h lauxlib.h lualib.h
+lparser.o: lparser.c lua.h luaconf.h lcode.h llex.h lobject.h llimits.h \
+ lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h \
+ lfunc.h lstring.h lgc.h ltable.h
+lstate.o: lstate.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \
+ ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h llex.h lstring.h ltable.h
+lstring.o: lstring.c lua.h luaconf.h lmem.h llimits.h lobject.h lstate.h \
+ ltm.h lzio.h lstring.h lgc.h
+lstrlib.o: lstrlib.c lua.h luaconf.h lauxlib.h lualib.h
+ltable.o: ltable.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \
+ ltm.h lzio.h lmem.h ldo.h lgc.h ltable.h
+ltablib.o: ltablib.c lua.h luaconf.h lauxlib.h lualib.h
+ltm.o: ltm.c lua.h luaconf.h lobject.h llimits.h lstate.h ltm.h lzio.h \
+ lmem.h lstring.h lgc.h ltable.h
+lua.o: lua.c lua.h luaconf.h lauxlib.h lualib.h
+luac.o: luac.c lua.h luaconf.h lauxlib.h ldo.h lobject.h llimits.h \
+ lstate.h ltm.h lzio.h lmem.h lfunc.h lopcodes.h lstring.h lgc.h \
+ lundump.h
+lundump.o: lundump.c lua.h luaconf.h ldebug.h lstate.h lobject.h \
+ llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lstring.h lgc.h lundump.h
+lvm.o: lvm.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \
+ lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lstring.h ltable.h lvm.h
+lzio.o: lzio.c lua.h luaconf.h llimits.h lmem.h lstate.h lobject.h ltm.h \
+ lzio.h
+print.o: print.c ldebug.h lstate.h lua.h luaconf.h lobject.h llimits.h \
+ ltm.h lzio.h lmem.h lopcodes.h lundump.h
+
+# (end of Makefile)
diff --git a/tests/lua/lua.ll b/tests/lua/lua.ll
new file mode 100644
index 00000000..9a15a65f
--- /dev/null
+++ b/tests/lua/lua.ll
@@ -0,0 +1,54637 @@
+; ModuleID = 'lua'
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"
+target triple = "i386-pc-linux-gnu"
+
+%0 = type { %struct.lua_TValue }
+%1 = type { %union.anon, i32, %struct.Node* }
+%2 = type { %3 }
+%3 = type { i32, i32 }
+%4 = type { %union.GCObject*, i8, i8, %struct.Table*, %struct.Table*, i32 }
+%5 = type { i8*, i8* }
+%6 = type { i8*, i8*, i32, i8* }
+%7 = type { %8, i32 }
+%8 = type { %union.GCObject*, [4 x i8] }
+%9 = type { %7, %10 }
+%10 = type { %11 }
+%11 = type { %8, i32, %struct.Node* }
+%12 = type { %struct.lua_State*, i32 (%struct.lua_State*, i8*, i32, i8*)*, i8*, i32, i32 }
+%13 = type { %struct.UpVal*, %struct.UpVal* }
+%14 = type { %struct.lua_State*, %struct.Zio*, %struct.Mbuffer*, i8* }
+%enum.BinOpr = type i32
+%enum.OpArgMask = type i32
+%enum.OpMode = type i32
+%enum.UnOpr = type i32
+%enum.anon = type i32
+%struct.BlockCnt = type { %struct.BlockCnt*, i32, i8, i8, i8 }
+%struct.CCallS = type { i32 (%struct.lua_State*)*, i8* }
+%struct.CClosure = type { %union.GCObject*, i8, i8, i8, i8, %union.GCObject*, %struct.Table*, i32 (%struct.lua_State*)*, [1 x %struct.lua_TValue] }
+%struct.CallInfo = type { %struct.lua_TValue*, %struct.lua_TValue*, %struct.lua_TValue*, i32*, i32, i32 }
+%struct.CallS = type { %struct.lua_TValue*, i32 }
+%struct.ConsControl = type { %struct.expdesc, %struct.expdesc*, i32, i32, i32 }
+%struct.FuncState = type { %struct.Proto*, %struct.Table*, %struct.FuncState*, %struct.LexState*, %struct.lua_State*, %struct.BlockCnt*, i32, i32, i32, i32, i32, i32, i16, i8, [60 x %struct.upvaldesc], [200 x i16] }
+%struct.GCheader = type { %union.GCObject*, i8, i8 }
+%struct.LClosure = type { %union.GCObject*, i8, i8, i8, i8, %union.GCObject*, %struct.Table*, %struct.Proto*, [1 x %struct.UpVal*] }
+%struct.LG = type { %struct.lua_State, %struct.global_State }
+%struct.LHS_assign = type { %struct.LHS_assign*, %struct.expdesc }
+%struct.LexState = type { i32, i32, i32, %struct.Token, %struct.Token, %struct.FuncState*, %struct.lua_State*, %struct.Zio*, %struct.Mbuffer*, %union.TString*, i8 }
+%struct.LoadF = type { i32, %struct._IO_FILE*, [8192 x i8] }
+%struct.LoadS = type { i8*, i32 }
+%struct.LocVar = type { %union.TString*, i32, i32 }
+%struct.MatchState = type { i8*, i8*, %struct.lua_State*, i32, [32 x %struct.LoadS] }
+%struct.Mbuffer = type { i8*, i32, i32 }
+%struct.Node = type { %struct.lua_TValue, %union.TKey }
+%struct.Proto = type { %union.GCObject*, i8, i8, %struct.lua_TValue*, i32*, %struct.Proto**, i32*, %struct.LocVar*, %union.TString**, %union.TString*, i32, i32, i32, i32, i32, i32, i32, i32, %union.GCObject*, i8, i8, i8, i8 }
+%struct.SParser = type { %struct.Zio*, %struct.Mbuffer, i8* }
+%struct.Smain = type { i32, i8**, i32 }
+%struct.Table = type { %union.GCObject*, i8, i8, i8, i8, %struct.Table*, %struct.lua_TValue*, %struct.Node*, %struct.Node*, %union.GCObject*, i32 }
+%struct.Token = type { i32, %union.anon }
+%struct.UpVal = type { %union.GCObject*, i8, i8, %struct.lua_TValue*, %0 }
+%struct.Zio = type { i32, i8*, i8* (%struct.lua_State*, i8*, i32*)*, i8*, %struct.lua_State* }
+%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] }
+%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 }
+%struct.anon = type { %union.GCObject*, i8, i8, i8, i32, i32 }
+%struct.expdesc = type { i32, %2, i32, i32 }
+%struct.global_State = type { %struct.stringtable, i8* (i8*, i8*, i32, i32)*, i8*, i8, i8, i32, %union.GCObject*, %union.GCObject**, %union.GCObject*, %union.GCObject*, %union.GCObject*, %union.GCObject*, %struct.Mbuffer, i32, i32, i32, i32, i32, i32, i32 (%struct.lua_State*)*, %struct.lua_TValue, %struct.lua_State*, %struct.UpVal, [9 x %struct.Table*], [17 x %union.TString*] }
+%struct.lconv = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
+%struct.luaL_Buffer = type { i8*, i32, %struct.lua_State*, [8192 x i8] }
+%struct.luaL_Reg = type { i8*, i32 (%struct.lua_State*)* }
+%struct.lua_Debug = type { i32, i8*, i8*, i8*, i8*, i32, i32, i32, i32, [60 x i8], i32 }
+%struct.lua_State = type { %union.GCObject*, i8, i8, i8, %struct.lua_TValue*, %struct.lua_TValue*, %struct.global_State*, %struct.CallInfo*, i32*, %struct.lua_TValue*, %struct.lua_TValue*, %struct.CallInfo*, %struct.CallInfo*, i32, i32, i16, i16, i8, i8, i32, i32, void (%struct.lua_State*, %struct.lua_Debug*)*, %struct.lua_TValue, %struct.lua_TValue, %union.GCObject*, %union.GCObject*, %struct.lua_longjmp*, i32 }
+%struct.lua_TValue = type { %union.anon, i32 }
+%struct.lua_longjmp = type { %struct.lua_longjmp*, i32, i32 }
+%struct.stringtable = type { %union.GCObject**, i32, i32 }
+%struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8* }
+%struct.upvaldesc = type { i8, i8 }
+%union.Closure = type { %struct.CClosure }
+%union.GCObject = type { %struct.lua_State }
+%union.TKey = type { %1 }
+%union.TString = type { %struct.anon }
+%union.Udata = type { %4 }
+%union.anon = type { double }
+
+@_ZL7globalL = internal global %struct.lua_State* null, align 4 ; [#uses=2]
+@.str = private constant [39 x i8] c"cannot create state: not enough memory\00" ; [#uses=1]
+@.str1 = private constant [31 x i8] c"(error object is not a string)\00" ; [#uses=1]
+@_ZL8progname = internal global i8* getelementptr inbounds ([4 x i8]* @.str2, i32 0, i32 0), align 4 ; [#uses=7]
+@.str2 = private constant [4 x i8] c"lua\00" ; [#uses=1]
+@.str3 = private constant [6 x i8] c"print\00" ; [#uses=1]
+@.str4 = private constant [27 x i8] c"error calling 'print' (%s)\00" ; [#uses=1]
+@.str5 = private constant [2 x i8] c"\0A\00" ; [#uses=1]
+@stdout = external global %struct._IO_FILE* ; [#uses=8]
+@.str6 = private constant [13 x i8] c"interrupted!\00" ; [#uses=1]
+@.str7 = private constant [6 x i8] c"debug\00" ; [#uses=1]
+@.str8 = private constant [10 x i8] c"traceback\00" ; [#uses=1]
+@.str9 = private constant [7 x i8] c"=stdin\00" ; [#uses=1]
+@.str10 = private constant [8 x i8] c"'<eof>'\00" ; [#uses=1]
+@stdin = external global %struct._IO_FILE* ; [#uses=4]
+@.str11 = private constant [10 x i8] c"return %s\00" ; [#uses=1]
+@.str12 = private constant [8 x i8] c"_PROMPT\00" ; [#uses=1]
+@.str13 = private constant [9 x i8] c"_PROMPT2\00" ; [#uses=1]
+@.str14 = private constant [3 x i8] c"> \00" ; [#uses=1]
+@.str15 = private constant [4 x i8] c">> \00" ; [#uses=1]
+@.str16 = private constant [4 x i8] c"arg\00" ; [#uses=1]
+@.str17 = private constant [2 x i8] c"-\00" ; [#uses=1]
+@.str18 = private constant [3 x i8] c"--\00" ; [#uses=1]
+@.str19 = private constant [29 x i8] c"too many arguments to script\00" ; [#uses=1]
+@.str20 = private constant [16 x i8] c"=(command line)\00" ; [#uses=1]
+@.str21 = private constant [8 x i8] c"require\00" ; [#uses=1]
+@.str22 = private constant [52 x i8] c"Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio\00" ; [#uses=1]
+@stderr = external global %struct._IO_FILE* ; [#uses=10]
+@.str23 = private constant [307 x i8] c"usage: %s [options] [script [args]].\0AAvailable options are:\0A -e stat execute string 'stat'\0A -l name require library 'name'\0A -i enter interactive mode after executing 'script'\0A -v show version information\0A -- stop handling options\0A - execute stdin and stop handling options\0A\00" ; [#uses=1]
+@.str24 = private constant [9 x i8] c"LUA_INIT\00" ; [#uses=1]
+@.str25 = private constant [10 x i8] c"=LUA_INIT\00" ; [#uses=1]
+@.str26 = private constant [5 x i8] c"%s: \00" ; [#uses=1]
+@.str27 = private constant [4 x i8] c"%s\0A\00" ; [#uses=1]
+@.str28 = private constant [23 x i8] c"no calling environment\00" ; [#uses=1]
+@.str129 = private constant [9 x i8] c"no value\00" ; [#uses=1]
+@.str230 = private constant [2 x i8] c"?\00" ; [#uses=1]
+@.str331 = private constant [1 x i8] zeroinitializer ; [#uses=1]
+@.str432 = private constant [35 x i8] c"function or expression too complex\00" ; [#uses=1]
+@.str1533 = private constant [19 x i8] c"code size overflow\00" ; [#uses=1]
+@.str2634 = private constant [24 x i8] c"constant table overflow\00" ; [#uses=1]
+@.str37 = private constant [27 x i8] c"control structure too long\00" ; [#uses=1]
+@.str835 = private constant [35 x i8] c"attempt to %s %s '%s' (a %s value)\00" ; [#uses=1]
+@.str1936 = private constant [25 x i8] c"attempt to %s a %s value\00" ; [#uses=1]
+@.str210 = private constant [12 x i8] c"concatenate\00" ; [#uses=1]
+@.str311 = private constant [22 x i8] c"perform arithmetic on\00" ; [#uses=1]
+@.str412 = private constant [33 x i8] c"attempt to compare two %s values\00" ; [#uses=1]
+@.str537 = private constant [30 x i8] c"attempt to compare %s with %s\00" ; [#uses=1]
+@.str638 = private constant [10 x i8] c"%s:%d: %s\00" ; [#uses=1]
+@.str739 = private constant [6 x i8] c"local\00" ; [#uses=1]
+@.str813 = private constant [7 x i8] c"global\00" ; [#uses=1]
+@.str940 = private constant [6 x i8] c"field\00" ; [#uses=1]
+@.str1041 = private constant [2 x i8] c"?\00" ; [#uses=1]
+@.str1142 = private constant [8 x i8] c"upvalue\00" ; [#uses=1]
+@.str1243 = private constant [7 x i8] c"method\00" ; [#uses=1]
+@.str1344 = private constant [1 x i8] zeroinitializer ; [#uses=1]
+@.str1445 = private constant [5 x i8] c"=[C]\00" ; [#uses=1]
+@.str1514 = private constant [2 x i8] c"C\00" ; [#uses=1]
+@.str1646 = private constant [5 x i8] c"main\00" ; [#uses=1]
+@.str1747 = private constant [4 x i8] c"Lua\00" ; [#uses=1]
+@.str1848 = private constant [5 x i8] c"tail\00" ; [#uses=1]
+@.str1915 = private constant [13 x i8] c"=(tail call)\00" ; [#uses=1]
+@.str2049 = private constant [13 x i8] c"(*temporary)\00" ; [#uses=1]
+@.str2150 = private constant [18 x i8] c"not enough memory\00" ; [#uses=1]
+@.str122 = private constant [24 x i8] c"error in error handling\00" ; [#uses=1]
+@_ZTVN10__cxxabiv119__pointer_type_infoE = external global i8* ; [#uses=1]
+@_ZTSP11lua_longjmp = weak_odr constant [15 x i8] c"P11lua_longjmp\00" ; [#uses=1]
+@_ZTVN10__cxxabiv117__class_type_infoE = external global i8* ; [#uses=1]
+@_ZTS11lua_longjmp = weak_odr constant [14 x i8] c"11lua_longjmp\00" ; [#uses=1]
+@_ZTI11lua_longjmp = weak_odr constant %5 { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([14 x i8]* @_ZTS11lua_longjmp, i32 0, i32 0) } ; [#uses=1]
+@_ZTIP11lua_longjmp = weak_odr constant %6 { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv119__pointer_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([15 x i8]* @_ZTSP11lua_longjmp, i32 0, i32 0), i32 0, i8* bitcast (%5* @_ZTI11lua_longjmp to i8*) } ; [#uses=1]
+@.str223 = private constant [17 x i8] c"C stack overflow\00" ; [#uses=1]
+@.str324 = private constant [38 x i8] c"cannot resume non-suspended coroutine\00" ; [#uses=1]
+@.str425 = private constant [51 x i8] c"attempt to yield across metamethod/C-call boundary\00" ; [#uses=1]
+@.str526 = private constant [5 x i8] c"\1BLua\00" ; [#uses=1]
+@.str627 = private constant [15 x i8] c"stack overflow\00" ; [#uses=1]
+@.str728 = private constant [2 x i8] c"n\00" ; [#uses=1]
+@.str829 = private constant [5 x i8] c"call\00" ; [#uses=1]
+@.str47 = private constant [4 x i8] c"and\00" ; [#uses=1]
+@.str148 = private constant [6 x i8] c"break\00" ; [#uses=1]
+@.str249 = private constant [3 x i8] c"do\00" ; [#uses=1]
+@.str350 = private constant [5 x i8] c"else\00" ; [#uses=1]
+@.str451 = private constant [7 x i8] c"elseif\00" ; [#uses=1]
+@.str552 = private constant [4 x i8] c"end\00" ; [#uses=1]
+@.str653 = private constant [6 x i8] c"false\00" ; [#uses=1]
+@.str754 = private constant [4 x i8] c"for\00" ; [#uses=1]
+@.str855 = private constant [9 x i8] c"function\00" ; [#uses=1]
+@.str956 = private constant [3 x i8] c"if\00" ; [#uses=1]
+@.str1057 = private constant [3 x i8] c"in\00" ; [#uses=1]
+@.str1158 = private constant [6 x i8] c"local\00" ; [#uses=1]
+@.str1259 = private constant [4 x i8] c"nil\00" ; [#uses=1]
+@.str1360 = private constant [4 x i8] c"not\00" ; [#uses=1]
+@.str1461 = private constant [3 x i8] c"or\00" ; [#uses=1]
+@.str1562 = private constant [7 x i8] c"repeat\00" ; [#uses=1]
+@.str1663 = private constant [7 x i8] c"return\00" ; [#uses=1]
+@.str1764 = private constant [5 x i8] c"then\00" ; [#uses=1]
+@.str1865 = private constant [5 x i8] c"true\00" ; [#uses=1]
+@.str1966 = private constant [6 x i8] c"until\00" ; [#uses=1]
+@.str2067 = private constant [6 x i8] c"while\00" ; [#uses=1]
+@.str2168 = private constant [3 x i8] c"..\00" ; [#uses=1]
+@.str2251 = private constant [4 x i8] c"...\00" ; [#uses=1]
+@.str2352 = private constant [3 x i8] c"==\00" ; [#uses=1]
+@.str2453 = private constant [3 x i8] c">=\00" ; [#uses=1]
+@.str2554 = private constant [3 x i8] c"<=\00" ; [#uses=1]
+@.str2669 = private constant [3 x i8] c"~=\00" ; [#uses=1]
+@.str2755 = private constant [9 x i8] c"<number>\00" ; [#uses=1]
+@.str2856 = private constant [7 x i8] c"<name>\00" ; [#uses=1]
+@.str29 = private constant [9 x i8] c"<string>\00" ; [#uses=1]
+@.str30 = private constant [6 x i8] c"<eof>\00" ; [#uses=1]
+@luaX_tokens = hidden constant [32 x i8*] [i8* getelementptr inbounds ([4 x i8]* @.str47, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str148, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str249, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str350, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str451, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str552, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str653, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str754, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str855, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str956, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str1057, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str1158, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str1259, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str1360, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str1461, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str1562, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str1663, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str1764, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str1865, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str1966, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str2067, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str2168, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str2251, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str2352, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str2453, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str2554, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str2669, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str2755, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str2856, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str29, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str30, i32 0, i32 0), i8* null], align 4 ; [#uses=3]
+@.str31 = private constant [9 x i8] c"char(%d)\00" ; [#uses=1]
+@.str32 = private constant [3 x i8] c"%c\00" ; [#uses=1]
+@.str33 = private constant [10 x i8] c"%s:%d: %s\00" ; [#uses=1]
+@.str34 = private constant [13 x i8] c"%s near '%s'\00" ; [#uses=1]
+@.str35 = private constant [30 x i8] c"invalid long string delimiter\00" ; [#uses=1]
+@.str36 = private constant [2 x i8] c".\00" ; [#uses=1]
+@.str3770 = private constant [3 x i8] c"Ee\00" ; [#uses=1]
+@.str38 = private constant [3 x i8] c"+-\00" ; [#uses=1]
+@.str39 = private constant [17 x i8] c"malformed number\00" ; [#uses=1]
+@.str40 = private constant [25 x i8] c"lexical element too long\00" ; [#uses=1]
+@.str41 = private constant [18 x i8] c"unfinished string\00" ; [#uses=1]
+@.str42 = private constant [26 x i8] c"escape sequence too large\00" ; [#uses=1]
+@.str43 = private constant [23 x i8] c"unfinished long string\00" ; [#uses=1]
+@.str44 = private constant [24 x i8] c"unfinished long comment\00" ; [#uses=1]
+@.str45 = private constant [33 x i8] c"nesting of [[...]] is deprecated\00" ; [#uses=1]
+@.str46 = private constant [25 x i8] c"chunk has too many lines\00" ; [#uses=1]
+@.str72 = private constant [39 x i8] c"memory allocation error: block too big\00" ; [#uses=1]
+@luaO_nilobject_ = hidden global %7 { %8 { %union.GCObject* null, [4 x i8] undef }, i32 0 }, align 4 ; [#uses=1]
+@_ZZ9luaO_log2jE5log_2 = internal constant [256 x i8] c"\00\01\02\02\03\03\03\03\04\04\04\04\04\04\04\04\05\05\05\05\05\05\05\05\05\05\05\05\05\05\05\05\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08", align 1 ; [#uses=1]
+@.str77 = private constant [1 x i8] zeroinitializer ; [#uses=1]
+@.str178 = private constant [7 x i8] c"(null)\00" ; [#uses=1]
+@.str279 = private constant [3 x i8] c"%p\00" ; [#uses=1]
+@.str380 = private constant [2 x i8] c"%\00" ; [#uses=1]
+@.str481 = private constant [4 x i8] c"...\00" ; [#uses=1]
+@.str582 = private constant [3 x i8] c"\0A\0D\00" ; [#uses=1]
+@.str683 = private constant [10 x i8] c"[string \22\00" ; [#uses=1]
+@.str784 = private constant [3 x i8] c"\22]\00" ; [#uses=1]
+@.str90 = private constant [5 x i8] c"MOVE\00" ; [#uses=1]
+@.str191 = private constant [6 x i8] c"LOADK\00" ; [#uses=1]
+@.str292 = private constant [9 x i8] c"LOADBOOL\00" ; [#uses=1]
+@.str393 = private constant [8 x i8] c"LOADNIL\00" ; [#uses=1]
+@.str494 = private constant [9 x i8] c"GETUPVAL\00" ; [#uses=1]
+@.str595 = private constant [10 x i8] c"GETGLOBAL\00" ; [#uses=1]
+@.str696 = private constant [9 x i8] c"GETTABLE\00" ; [#uses=1]
+@.str797 = private constant [10 x i8] c"SETGLOBAL\00" ; [#uses=1]
+@.str898 = private constant [9 x i8] c"SETUPVAL\00" ; [#uses=1]
+@.str999 = private constant [9 x i8] c"SETTABLE\00" ; [#uses=1]
+@.str10100 = private constant [9 x i8] c"NEWTABLE\00" ; [#uses=1]
+@.str11101 = private constant [5 x i8] c"SELF\00" ; [#uses=1]
+@.str12102 = private constant [4 x i8] c"ADD\00" ; [#uses=1]
+@.str13103 = private constant [4 x i8] c"SUB\00" ; [#uses=1]
+@.str14104 = private constant [4 x i8] c"MUL\00" ; [#uses=1]
+@.str15105 = private constant [4 x i8] c"DIV\00" ; [#uses=1]
+@.str16106 = private constant [4 x i8] c"MOD\00" ; [#uses=1]
+@.str17107 = private constant [4 x i8] c"POW\00" ; [#uses=1]
+@.str18108 = private constant [4 x i8] c"UNM\00" ; [#uses=1]
+@.str19109 = private constant [4 x i8] c"NOT\00" ; [#uses=1]
+@.str20110 = private constant [4 x i8] c"LEN\00" ; [#uses=1]
+@.str21111 = private constant [7 x i8] c"CONCAT\00" ; [#uses=1]
+@.str22112 = private constant [4 x i8] c"JMP\00" ; [#uses=1]
+@.str23113 = private constant [3 x i8] c"EQ\00" ; [#uses=1]
+@.str24114 = private constant [3 x i8] c"LT\00" ; [#uses=1]
+@.str25115 = private constant [3 x i8] c"LE\00" ; [#uses=1]
+@.str26116 = private constant [5 x i8] c"TEST\00" ; [#uses=1]
+@.str27117 = private constant [8 x i8] c"TESTSET\00" ; [#uses=1]
+@.str28118 = private constant [5 x i8] c"CALL\00" ; [#uses=1]
+@.str29119 = private constant [9 x i8] c"TAILCALL\00" ; [#uses=1]
+@.str30120 = private constant [7 x i8] c"RETURN\00" ; [#uses=1]
+@.str31121 = private constant [8 x i8] c"FORLOOP\00" ; [#uses=1]
+@.str32122 = private constant [8 x i8] c"FORPREP\00" ; [#uses=1]
+@.str33123 = private constant [9 x i8] c"TFORLOOP\00" ; [#uses=1]
+@.str34124 = private constant [8 x i8] c"SETLIST\00" ; [#uses=1]
+@.str35125 = private constant [6 x i8] c"CLOSE\00" ; [#uses=1]
+@.str36126 = private constant [8 x i8] c"CLOSURE\00" ; [#uses=1]
+@.str37127 = private constant [7 x i8] c"VARARG\00" ; [#uses=1]
+@luaP_opnames = hidden constant [39 x i8*] [i8* getelementptr inbounds ([5 x i8]* @.str90, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str191, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str292, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str393, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str494, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str595, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str696, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str797, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str898, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str999, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str10100, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str11101, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str12102, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str13103, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str14104, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str15105, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str16106, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str17107, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str18108, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str19109, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str20110, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str21111, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str22112, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str23113, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str24114, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str25115, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str26116, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str27117, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str28118, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str29119, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str30120, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str31121, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str32122, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str33123, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str34124, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str35125, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str36126, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str37127, i32 0, i32 0), i8* null], align 4 ; [#uses=0]
+@luaP_opmodes = hidden constant [38 x i8] c"`qT`Pql1\10<Tl||||||```h\22\BC\BC\BC\E4\E4TT\10bb\84\14\00QP", align 1 ; [#uses=8]
+@.str12957 = private constant [13 x i8] c"syntax error\00" ; [#uses=1]
+@.str1130 = private constant [24 x i8] c"variables in assignment\00" ; [#uses=1]
+@_ZL8priority = internal global [15 x %struct.upvaldesc] [%struct.upvaldesc { i8 6, i8 6 }, %struct.upvaldesc { i8 6, i8 6 }, %struct.upvaldesc { i8 7, i8 7 }, %struct.upvaldesc { i8 7, i8 7 }, %struct.upvaldesc { i8 7, i8 7 }, %struct.upvaldesc { i8 10, i8 9 }, %struct.upvaldesc { i8 5, i8 4 }, %struct.upvaldesc { i8 3, i8 3 }, %struct.upvaldesc { i8 3, i8 3 }, %struct.upvaldesc { i8 3, i8 3 }, %struct.upvaldesc { i8 3, i8 3 }, %struct.upvaldesc { i8 3, i8 3 }, %struct.upvaldesc { i8 3, i8 3 }, %struct.upvaldesc { i8 2, i8 2 }, %struct.upvaldesc { i8 1, i8 1 }], align 1 ; [#uses=2]
+@.str2131 = private constant [43 x i8] c"cannot use '...' outside a vararg function\00" ; [#uses=1]
+@.str3132 = private constant [5 x i8] c"self\00" ; [#uses=1]
+@.str4133 = private constant [24 x i8] c"constant table overflow\00" ; [#uses=1]
+@.str5134 = private constant [4 x i8] c"arg\00" ; [#uses=1]
+@.str6135 = private constant [25 x i8] c"<name> or '...' expected\00" ; [#uses=1]
+@.str7136 = private constant [16 x i8] c"local variables\00" ; [#uses=1]
+@.str8137 = private constant [25 x i8] c"too many local variables\00" ; [#uses=1]
+@.str9138 = private constant [23 x i8] c"items in a constructor\00" ; [#uses=1]
+@.str10139 = private constant [34 x i8] c"main function has more than %d %s\00" ; [#uses=1]
+@.str11140 = private constant [40 x i8] c"function at line %d has more than %d %s\00" ; [#uses=1]
+@.str12141 = private constant [49 x i8] c"ambiguous syntax (function call x new statement)\00" ; [#uses=1]
+@.str13142 = private constant [28 x i8] c"function arguments expected\00" ; [#uses=1]
+@.str14143 = private constant [18 x i8] c"unexpected symbol\00" ; [#uses=1]
+@.str15144 = private constant [9 x i8] c"upvalues\00" ; [#uses=1]
+@.str16145 = private constant [1 x i8] zeroinitializer ; [#uses=1]
+@.str17146 = private constant [17 x i8] c"no loop to break\00" ; [#uses=1]
+@.str18147 = private constant [21 x i8] c"'=' or 'in' expected\00" ; [#uses=1]
+@.str19148 = private constant [16 x i8] c"(for generator)\00" ; [#uses=1]
+@.str20149 = private constant [12 x i8] c"(for state)\00" ; [#uses=1]
+@.str21150 = private constant [14 x i8] c"(for control)\00" ; [#uses=1]
+@.str22151 = private constant [12 x i8] c"(for index)\00" ; [#uses=1]
+@.str23152 = private constant [12 x i8] c"(for limit)\00" ; [#uses=1]
+@.str24153 = private constant [11 x i8] c"(for step)\00" ; [#uses=1]
+@.str25154 = private constant [41 x i8] c"'%s' expected (to close '%s' at line %d)\00" ; [#uses=1]
+@.str26155 = private constant [14 x i8] c"'%s' expected\00" ; [#uses=1]
+@.str27156 = private constant [33 x i8] c"chunk has too many syntax levels\00" ; [#uses=1]
+@.str158 = private constant [18 x i8] c"not enough memory\00" ; [#uses=1]
+@_ZL10dummynode_ = internal global %9 { %7 { %8 { %union.GCObject* null, [4 x i8] undef }, i32 0 }, %10 { %11 { %8 { %union.GCObject* null, [4 x i8] undef }, i32 0, %struct.Node* null } } }, align 4 ; [#uses=1]
+@.str164 = private constant [19 x i8] c"table index is nil\00" ; [#uses=1]
+@.str1165 = private constant [19 x i8] c"table index is NaN\00" ; [#uses=1]
+@.str2166 = private constant [15 x i8] c"table overflow\00" ; [#uses=1]
+@.str3167 = private constant [22 x i8] c"invalid key to 'next'\00" ; [#uses=1]
+@.str177 = private constant [4 x i8] c"nil\00" ; [#uses=1]
+@.str1178 = private constant [8 x i8] c"boolean\00" ; [#uses=1]
+@.str2179 = private constant [9 x i8] c"userdata\00" ; [#uses=1]
+@.str3180 = private constant [7 x i8] c"number\00" ; [#uses=1]
+@.str4181 = private constant [7 x i8] c"string\00" ; [#uses=1]
+@.str5182 = private constant [6 x i8] c"table\00" ; [#uses=1]
+@.str6183 = private constant [9 x i8] c"function\00" ; [#uses=1]
+@.str7184 = private constant [7 x i8] c"thread\00" ; [#uses=1]
+@.str8185 = private constant [6 x i8] c"proto\00" ; [#uses=1]
+@.str9186 = private constant [6 x i8] c"upval\00" ; [#uses=1]
+@luaT_typenames = hidden constant [11 x i8*] [i8* getelementptr inbounds ([4 x i8]* @.str177, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str1178, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str2179, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str3180, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str4181, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str5182, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str6183, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str2179, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str7184, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str8185, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str9186, i32 0, i32 0)], align 4 ; [#uses=1]
+@_ZZ9luaT_initP9lua_StateE14luaT_eventname = internal constant [17 x i8*] [i8* getelementptr inbounds ([8 x i8]* @.str10188, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8]* @.str11189, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str12190, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str13191, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str14192, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str15193, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str16194, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str17195, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str18196, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str19197, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str20198, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str21199, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str22200, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str23201, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str24202, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str25203, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str26204, i32 0, i32 0)], align 4 ; [#uses=2]
+@.str10188 = private constant [8 x i8] c"__index\00" ; [#uses=1]
+@.str11189 = private constant [11 x i8] c"__newindex\00" ; [#uses=1]
+@.str12190 = private constant [5 x i8] c"__gc\00" ; [#uses=1]
+@.str13191 = private constant [7 x i8] c"__mode\00" ; [#uses=1]
+@.str14192 = private constant [5 x i8] c"__eq\00" ; [#uses=1]
+@.str15193 = private constant [6 x i8] c"__add\00" ; [#uses=1]
+@.str16194 = private constant [6 x i8] c"__sub\00" ; [#uses=1]
+@.str17195 = private constant [6 x i8] c"__mul\00" ; [#uses=1]
+@.str18196 = private constant [6 x i8] c"__div\00" ; [#uses=1]
+@.str19197 = private constant [6 x i8] c"__mod\00" ; [#uses=1]
+@.str20198 = private constant [6 x i8] c"__pow\00" ; [#uses=1]
+@.str21199 = private constant [6 x i8] c"__unm\00" ; [#uses=1]
+@.str22200 = private constant [6 x i8] c"__len\00" ; [#uses=1]
+@.str23201 = private constant [5 x i8] c"__lt\00" ; [#uses=1]
+@.str24202 = private constant [5 x i8] c"__le\00" ; [#uses=1]
+@.str25203 = private constant [9 x i8] c"__concat\00" ; [#uses=1]
+@.str26204 = private constant [7 x i8] c"__call\00" ; [#uses=1]
+@.str208 = private constant [5 x i8] c"\1BLua\00" ; [#uses=1]
+@.str1209 = private constant [14 x i8] c"binary string\00" ; [#uses=1]
+@.str2210 = private constant [3 x i8] c"=?\00" ; [#uses=1]
+@.str3211 = private constant [14 x i8] c"code too deep\00" ; [#uses=1]
+@.str4212 = private constant [9 x i8] c"bad code\00" ; [#uses=1]
+@.str5213 = private constant [15 x i8] c"unexpected end\00" ; [#uses=1]
+@.str6214 = private constant [13 x i8] c"bad constant\00" ; [#uses=1]
+@.str7215 = private constant [12 x i8] c"bad integer\00" ; [#uses=1]
+@.str8216 = private constant [28 x i8] c"%s: %s in precompiled chunk\00" ; [#uses=1]
+@.str9217 = private constant [11 x i8] c"bad header\00" ; [#uses=1]
+@.str220 = private constant [6 x i8] c"%.14g\00" ; [#uses=1]
+@.str1221 = private constant [6 x i8] c"index\00" ; [#uses=1]
+@.str2222 = private constant [17 x i8] c"loop in gettable\00" ; [#uses=1]
+@.str3223 = private constant [17 x i8] c"loop in settable\00" ; [#uses=1]
+@.str4224 = private constant [23 x i8] c"string length overflow\00" ; [#uses=1]
+@.str5225 = private constant [14 x i8] c"get length of\00" ; [#uses=1]
+@.str6226 = private constant [37 x i8] c"'for' initial value must be a number\00" ; [#uses=1]
+@.str7227 = private constant [29 x i8] c"'for' limit must be a number\00" ; [#uses=1]
+@.str8228 = private constant [28 x i8] c"'for' step must be a number\00" ; [#uses=1]
+@.str242 = private constant [22 x i8] c"bad argument #%d (%s)\00" ; [#uses=1]
+@.str124358 = private constant [2 x i8] c"n\00" ; [#uses=1]
+@.str2244 = private constant [7 x i8] c"method\00" ; [#uses=1]
+@.str3245 = private constant [30 x i8] c"calling '%s' on bad self (%s)\00" ; [#uses=1]
+@.str4246 = private constant [2 x i8] c"?\00" ; [#uses=1]
+@.str5247 = private constant [30 x i8] c"bad argument #%d to '%s' (%s)\00" ; [#uses=1]
+@.str6248 = private constant [20 x i8] c"%s expected, got %s\00" ; [#uses=1]
+@.str7249 = private constant [3 x i8] c"Sl\00" ; [#uses=1]
+@.str8250 = private constant [8 x i8] c"%s:%d: \00" ; [#uses=1]
+@.str9251 = private constant [1 x i8] zeroinitializer ; [#uses=1]
+@.str10252 = private constant [20 x i8] c"invalid option '%s'\00" ; [#uses=1]
+@.str11253 = private constant [20 x i8] c"stack overflow (%s)\00" ; [#uses=1]
+@.str12254 = private constant [15 x i8] c"value expected\00" ; [#uses=1]
+@.str13255 = private constant [8 x i8] c"_LOADED\00" ; [#uses=1]
+@.str14256 = private constant [30 x i8] c"name conflict for module '%s'\00" ; [#uses=1]
+@.str15257 = private constant [7 x i8] c"=stdin\00" ; [#uses=1]
+@.str16258 = private constant [4 x i8] c"@%s\00" ; [#uses=1]
+@.str17259 = private constant [2 x i8] c"r\00" ; [#uses=1]
+@.str18260 = private constant [5 x i8] c"open\00" ; [#uses=1]
+@.str19261 = private constant [5 x i8] c"\1BLua\00" ; [#uses=1]
+@.str20262 = private constant [3 x i8] c"rb\00" ; [#uses=1]
+@.str21263 = private constant [7 x i8] c"reopen\00" ; [#uses=1]
+@.str22264 = private constant [5 x i8] c"read\00" ; [#uses=1]
+@.str23265 = private constant [50 x i8] c"PANIC: unprotected error in call to Lua API (%s)\0A\00" ; [#uses=1]
+@.str24266 = private constant [2 x i8] c"\0A\00" ; [#uses=1]
+@.str25267 = private constant [17 x i8] c"cannot %s %s: %s\00" ; [#uses=1]
+@.str268 = private constant [7 x i8] c"assert\00" ; [#uses=1]
+@.str1269 = private constant [15 x i8] c"collectgarbage\00" ; [#uses=1]
+@.str2270 = private constant [7 x i8] c"dofile\00" ; [#uses=1]
+@.str3271 = private constant [6 x i8] c"error\00" ; [#uses=1]
+@.str4272 = private constant [7 x i8] c"gcinfo\00" ; [#uses=1]
+@.str5273 = private constant [8 x i8] c"getfenv\00" ; [#uses=1]
+@.str6274 = private constant [13 x i8] c"getmetatable\00" ; [#uses=1]
+@.str7275 = private constant [9 x i8] c"loadfile\00" ; [#uses=1]
+@.str8276 = private constant [5 x i8] c"load\00" ; [#uses=1]
+@.str9277 = private constant [11 x i8] c"loadstring\00" ; [#uses=1]
+@.str10278 = private constant [5 x i8] c"next\00" ; [#uses=1]
+@.str11279 = private constant [6 x i8] c"pcall\00" ; [#uses=1]
+@.str12280 = private constant [6 x i8] c"print\00" ; [#uses=1]
+@.str13281 = private constant [9 x i8] c"rawequal\00" ; [#uses=1]
+@.str14282 = private constant [7 x i8] c"rawget\00" ; [#uses=1]
+@.str15283 = private constant [7 x i8] c"rawset\00" ; [#uses=1]
+@.str16284 = private constant [7 x i8] c"select\00" ; [#uses=1]
+@.str17285 = private constant [8 x i8] c"setfenv\00" ; [#uses=1]
+@.str18286 = private constant [13 x i8] c"setmetatable\00" ; [#uses=1]
+@.str19287 = private constant [9 x i8] c"tonumber\00" ; [#uses=1]
+@.str20288 = private constant [9 x i8] c"tostring\00" ; [#uses=1]
+@.str21289 = private constant [5 x i8] c"type\00" ; [#uses=1]
+@.str22290 = private constant [7 x i8] c"unpack\00" ; [#uses=1]
+@.str23291 = private constant [7 x i8] c"xpcall\00" ; [#uses=1]
+@_ZL10base_funcs = internal global [25 x %struct.luaL_Reg] [%struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str268, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11luaB_assertP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([15 x i8]* @.str1269, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z19luaB_collectgarbageP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str2270, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11luaB_dofileP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str3271, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10luaB_errorP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str4272, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11luaB_gcinfoP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([8 x i8]* @.str5273, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z12luaB_getfenvP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([13 x i8]* @.str6274, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z17luaB_getmetatableP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([9 x i8]* @.str7275, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z13luaB_loadfileP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str8276, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9luaB_loadP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([11 x i8]* @.str9277, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z15luaB_loadstringP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str10278, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9luaB_nextP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str11279, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10luaB_pcallP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str12280, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10luaB_printP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([9 x i8]* @.str13281, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z13luaB_rawequalP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str14282, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11luaB_rawgetP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str15283, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11luaB_rawsetP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str16284, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11luaB_selectP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([8 x i8]* @.str17285, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z12luaB_setfenvP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([13 x i8]* @.str18286, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z17luaB_setmetatableP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([9 x i8]* @.str19287, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z13luaB_tonumberP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([9 x i8]* @.str20288, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z13luaB_tostringP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str21289, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9luaB_typeP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str22290, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11luaB_unpackP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str23291, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11luaB_xpcallP9lua_State }, %struct.luaL_Reg zeroinitializer], align 4 ; [#uses=1]
+@.str24292 = private constant [7 x i8] c"create\00" ; [#uses=1]
+@.str25293 = private constant [7 x i8] c"resume\00" ; [#uses=1]
+@.str26294 = private constant [8 x i8] c"running\00" ; [#uses=1]
+@.str27295 = private constant [7 x i8] c"status\00" ; [#uses=1]
+@.str28296 = private constant [5 x i8] c"wrap\00" ; [#uses=1]
+@.str29297 = private constant [6 x i8] c"yield\00" ; [#uses=1]
+@_ZL8co_funcs = internal global [7 x %struct.luaL_Reg] [%struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str24292, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z13luaB_cocreateP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str25293, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z13luaB_coresumeP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([8 x i8]* @.str26294, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z14luaB_corunningP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str27295, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z13luaB_costatusP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str28296, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11luaB_cowrapP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str29297, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10luaB_yieldP9lua_State }, %struct.luaL_Reg zeroinitializer], align 4 ; [#uses=1]
+@.str30298 = private constant [10 x i8] c"coroutine\00" ; [#uses=1]
+@.str31299 = private constant [3 x i8] c"_G\00" ; [#uses=1]
+@.str32300 = private constant [8 x i8] c"Lua 5.1\00" ; [#uses=1]
+@.str33301 = private constant [9 x i8] c"_VERSION\00" ; [#uses=1]
+@.str34302 = private constant [7 x i8] c"ipairs\00" ; [#uses=1]
+@.str35303 = private constant [6 x i8] c"pairs\00" ; [#uses=1]
+@.str36304 = private constant [3 x i8] c"kv\00" ; [#uses=1]
+@.str37305 = private constant [7 x i8] c"__mode\00" ; [#uses=1]
+@.str38306 = private constant [9 x i8] c"newproxy\00" ; [#uses=1]
+@.str39307 = private constant [26 x i8] c"boolean or proxy expected\00" ; [#uses=1]
+@.str40308 = private constant [29 x i8] c"too many arguments to resume\00" ; [#uses=1]
+@.str41309 = private constant [27 x i8] c"cannot resume %s coroutine\00" ; [#uses=1]
+@_ZL9statnames = internal constant [4 x i8*] [i8* getelementptr inbounds ([8 x i8]* @.str26294, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str43311, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str44312, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str45313, i32 0, i32 0)], align 4 ; [#uses=2]
+@.str42310 = private constant [27 x i8] c"too many results to resume\00" ; [#uses=1]
+@.str43311 = private constant [10 x i8] c"suspended\00" ; [#uses=1]
+@.str44312 = private constant [7 x i8] c"normal\00" ; [#uses=1]
+@.str45313 = private constant [5 x i8] c"dead\00" ; [#uses=1]
+@.str46314 = private constant [19 x i8] c"coroutine expected\00" ; [#uses=1]
+@.str47315 = private constant [22 x i8] c"Lua function expected\00" ; [#uses=1]
+@.str48 = private constant [27 x i8] c"too many results to unpack\00" ; [#uses=1]
+@.str49 = private constant [11 x i8] c"__tostring\00" ; [#uses=1]
+@.str50 = private constant [5 x i8] c"true\00" ; [#uses=1]
+@.str51 = private constant [6 x i8] c"false\00" ; [#uses=1]
+@.str52 = private constant [4 x i8] c"nil\00" ; [#uses=1]
+@.str53 = private constant [7 x i8] c"%s: %p\00" ; [#uses=1]
+@.str54 = private constant [18 x i8] c"base out of range\00" ; [#uses=1]
+@.str55 = private constant [22 x i8] c"nil or table expected\00" ; [#uses=1]
+@.str56 = private constant [12 x i8] c"__metatable\00" ; [#uses=1]
+@.str57 = private constant [36 x i8] c"cannot change a protected metatable\00" ; [#uses=1]
+@.str58 = private constant [52 x i8] c"'setfenv' cannot change environment of given object\00" ; [#uses=1]
+@.str59 = private constant [27 x i8] c"level must be non-negative\00" ; [#uses=1]
+@.str60 = private constant [14 x i8] c"invalid level\00" ; [#uses=1]
+@.str61 = private constant [2 x i8] c"f\00" ; [#uses=1]
+@.str62 = private constant [50 x i8] c"no function environment for tail call at level %d\00" ; [#uses=1]
+@.str63 = private constant [19 x i8] c"index out of range\00" ; [#uses=1]
+@.str64 = private constant [43 x i8] c"'tostring' must return a string to 'print'\00" ; [#uses=1]
+@.str65 = private constant [2 x i8] c"\09\00" ; [#uses=1]
+@.str66 = private constant [2 x i8] c"\0A\00" ; [#uses=1]
+@.str67 = private constant [8 x i8] c"=(load)\00" ; [#uses=1]
+@.str68 = private constant [26 x i8] c"too many nested functions\00" ; [#uses=1]
+@.str69 = private constant [37 x i8] c"reader function must return a string\00" ; [#uses=1]
+@_ZZ19luaB_collectgarbageP9lua_StateE4opts = internal constant [8 x i8*] [i8* getelementptr inbounds ([5 x i8]* @.str70, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str71, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str72316, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str73, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str74, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str75, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8]* @.str76, i32 0, i32 0), i8* null], align 4 ; [#uses=1]
+@.str70 = private constant [5 x i8] c"stop\00" ; [#uses=1]
+@.str71 = private constant [8 x i8] c"restart\00" ; [#uses=1]
+@.str72316 = private constant [8 x i8] c"collect\00" ; [#uses=1]
+@.str73 = private constant [6 x i8] c"count\00" ; [#uses=1]
+@.str74 = private constant [5 x i8] c"step\00" ; [#uses=1]
+@.str75 = private constant [9 x i8] c"setpause\00" ; [#uses=1]
+@.str76 = private constant [11 x i8] c"setstepmul\00" ; [#uses=1]
+@_ZZ19luaB_collectgarbageP9lua_StateE7optsnum = internal constant [7 x i32] [i32 0, i32 1, i32 2, i32 3, i32 5, i32 6, i32 7], align 4 ; [#uses=2]
+@.str77317 = private constant [3 x i8] c"%s\00" ; [#uses=1]
+@.str78 = private constant [18 x i8] c"assertion failed!\00" ; [#uses=1]
+@.str318 = private constant [6 x i8] c"debug\00" ; [#uses=1]
+@.str1319 = private constant [8 x i8] c"getfenv\00" ; [#uses=1]
+@.str2320 = private constant [8 x i8] c"gethook\00" ; [#uses=1]
+@.str3321 = private constant [8 x i8] c"getinfo\00" ; [#uses=1]
+@.str4322 = private constant [9 x i8] c"getlocal\00" ; [#uses=1]
+@.str5323 = private constant [12 x i8] c"getregistry\00" ; [#uses=1]
+@.str6324 = private constant [13 x i8] c"getmetatable\00" ; [#uses=1]
+@.str7325 = private constant [11 x i8] c"getupvalue\00" ; [#uses=1]
+@.str8326 = private constant [8 x i8] c"setfenv\00" ; [#uses=1]
+@.str9327 = private constant [8 x i8] c"sethook\00" ; [#uses=1]
+@.str10328 = private constant [9 x i8] c"setlocal\00" ; [#uses=1]
+@.str11329 = private constant [13 x i8] c"setmetatable\00" ; [#uses=1]
+@.str12330 = private constant [11 x i8] c"setupvalue\00" ; [#uses=1]
+@.str13331 = private constant [10 x i8] c"traceback\00" ; [#uses=1]
+@_ZL5dblib = internal global [15 x %struct.luaL_Reg] [%struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str318, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8db_debugP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([8 x i8]* @.str1319, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10db_getfenvP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([8 x i8]* @.str2320, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10db_gethookP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([8 x i8]* @.str3321, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10db_getinfoP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([9 x i8]* @.str4322, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11db_getlocalP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([12 x i8]* @.str5323, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z14db_getregistryP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([13 x i8]* @.str6324, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z15db_getmetatableP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([11 x i8]* @.str7325, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z13db_getupvalueP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([8 x i8]* @.str8326, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10db_setfenvP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([8 x i8]* @.str9327, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10db_sethookP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([9 x i8]* @.str10328, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11db_setlocalP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([13 x i8]* @.str11329, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z15db_setmetatableP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([11 x i8]* @.str12330, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z13db_setupvalueP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([10 x i8]* @.str13331, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10db_errorfbP9lua_State }, %struct.luaL_Reg zeroinitializer], align 4 ; [#uses=1]
+@.str14332 = private constant [1 x i8] zeroinitializer ; [#uses=1]
+@.str15333 = private constant [2 x i8] c"\0A\00" ; [#uses=1]
+@.str16334 = private constant [17 x i8] c"stack traceback:\00" ; [#uses=1]
+@.str17335 = private constant [6 x i8] c"\0A\09...\00" ; [#uses=1]
+@.str18336 = private constant [3 x i8] c"\0A\09\00" ; [#uses=1]
+@.str19337 = private constant [4 x i8] c"Snl\00" ; [#uses=1]
+@.str20338 = private constant [4 x i8] c"%s:\00" ; [#uses=1]
+@.str21339 = private constant [4 x i8] c"%d:\00" ; [#uses=1]
+@.str22340 = private constant [18 x i8] c" in function '%s'\00" ; [#uses=1]
+@.str23341 = private constant [15 x i8] c" in main chunk\00" ; [#uses=1]
+@.str24342 = private constant [3 x i8] c" ?\00" ; [#uses=1]
+@.str25343 = private constant [21 x i8] c" in function <%s:%d>\00" ; [#uses=1]
+@.str26344 = private constant [22 x i8] c"nil or table expected\00" ; [#uses=1]
+@.str27345 = private constant [19 x i8] c"level out of range\00" ; [#uses=1]
+@_ZL8KEY_HOOK = internal constant i8 104, align 1 ; [#uses=3]
+@_ZZ5hookfP9lua_StateP9lua_DebugE9hooknames = internal constant [5 x i8*] [i8* getelementptr inbounds ([5 x i8]* @.str28346, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str29347, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str30348, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str31349, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str32350, i32 0, i32 0)], align 4 ; [#uses=1]
+@.str28346 = private constant [5 x i8] c"call\00" ; [#uses=1]
+@.str29347 = private constant [7 x i8] c"return\00" ; [#uses=1]
+@.str30348 = private constant [5 x i8] c"line\00" ; [#uses=1]
+@.str31349 = private constant [6 x i8] c"count\00" ; [#uses=1]
+@.str32350 = private constant [12 x i8] c"tail return\00" ; [#uses=1]
+@.str33351 = private constant [52 x i8] c"'setfenv' cannot change environment of given object\00" ; [#uses=1]
+@.str34352 = private constant [6 x i8] c"flnSu\00" ; [#uses=1]
+@.str35353 = private constant [4 x i8] c">%s\00" ; [#uses=1]
+@.str36354 = private constant [27 x i8] c"function or level expected\00" ; [#uses=1]
+@.str37355 = private constant [15 x i8] c"invalid option\00" ; [#uses=1]
+@.str38356 = private constant [7 x i8] c"source\00" ; [#uses=1]
+@.str39357 = private constant [10 x i8] c"short_src\00" ; [#uses=1]
+@.str40358 = private constant [12 x i8] c"linedefined\00" ; [#uses=1]
+@.str41359 = private constant [16 x i8] c"lastlinedefined\00" ; [#uses=1]
+@.str42360 = private constant [5 x i8] c"what\00" ; [#uses=1]
+@.str43361 = private constant [12 x i8] c"currentline\00" ; [#uses=1]
+@.str44362 = private constant [5 x i8] c"nups\00" ; [#uses=1]
+@.str45363 = private constant [5 x i8] c"name\00" ; [#uses=1]
+@.str46364 = private constant [9 x i8] c"namewhat\00" ; [#uses=1]
+@.str47365 = private constant [12 x i8] c"activelines\00" ; [#uses=1]
+@.str48366 = private constant [5 x i8] c"func\00" ; [#uses=1]
+@.str49367 = private constant [14 x i8] c"external hook\00" ; [#uses=1]
+@.str50368 = private constant [12 x i8] c"lua_debug> \00" ; [#uses=1]
+@.str51369 = private constant [6 x i8] c"cont\0A\00" ; [#uses=1]
+@.str52370 = private constant [17 x i8] c"=(debug command)\00" ; [#uses=1]
+@.str371 = private constant [6 x i8] c"close\00" ; [#uses=1]
+@.str1372 = private constant [6 x i8] c"flush\00" ; [#uses=1]
+@.str2373 = private constant [6 x i8] c"input\00" ; [#uses=1]
+@.str3374 = private constant [6 x i8] c"lines\00" ; [#uses=1]
+@.str4375 = private constant [5 x i8] c"open\00" ; [#uses=1]
+@.str5376 = private constant [7 x i8] c"output\00" ; [#uses=1]
+@.str6377 = private constant [6 x i8] c"popen\00" ; [#uses=1]
+@.str7378 = private constant [5 x i8] c"read\00" ; [#uses=1]
+@.str8379 = private constant [8 x i8] c"tmpfile\00" ; [#uses=1]
+@.str9380 = private constant [5 x i8] c"type\00" ; [#uses=1]
+@.str10381 = private constant [6 x i8] c"write\00" ; [#uses=1]
+@_ZL5iolib = internal global [12 x %struct.luaL_Reg] [%struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str371, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8io_closeP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str1372, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8io_flushP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str2373, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8io_inputP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str3374, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8io_linesP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str4375, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z7io_openP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str5376, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9io_outputP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str6377, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8io_popenP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str7378, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z7io_readP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([8 x i8]* @.str8379, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10io_tmpfileP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str9380, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z7io_typeP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str10381, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8io_writeP9lua_State }, %struct.luaL_Reg zeroinitializer], align 4 ; [#uses=1]
+@.str11382 = private constant [5 x i8] c"seek\00" ; [#uses=1]
+@.str12383 = private constant [8 x i8] c"setvbuf\00" ; [#uses=1]
+@.str13384 = private constant [5 x i8] c"__gc\00" ; [#uses=1]
+@.str14385 = private constant [11 x i8] c"__tostring\00" ; [#uses=1]
+@_ZL4flib = internal global [10 x %struct.luaL_Reg] [%struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str371, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8io_closeP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str1372, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z7f_flushP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str3374, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z7f_linesP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str7378, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z6f_readP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str11382, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z6f_seekP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([8 x i8]* @.str12383, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9f_setvbufP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str10381, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z7f_writeP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str13384, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z5io_gcP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([11 x i8]* @.str14385, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11io_tostringP9lua_State }, %struct.luaL_Reg zeroinitializer], align 4 ; [#uses=1]
+@.str15386 = private constant [3 x i8] c"io\00" ; [#uses=1]
+@.str16387 = private constant [6 x i8] c"stdin\00" ; [#uses=1]
+@.str17388 = private constant [7 x i8] c"stdout\00" ; [#uses=1]
+@.str18389 = private constant [7 x i8] c"stderr\00" ; [#uses=1]
+@.str19390 = private constant [6 x i8] c"FILE*\00" ; [#uses=1]
+@.str20391 = private constant [7 x i8] c"%s: %s\00" ; [#uses=1]
+@.str21392 = private constant [3 x i8] c"%s\00" ; [#uses=1]
+@.str22393 = private constant [27 x i8] c"cannot close standard file\00" ; [#uses=1]
+@.str23394 = private constant [8 x i8] c"__close\00" ; [#uses=1]
+@.str24395 = private constant [8 x i8] c"__index\00" ; [#uses=1]
+@.str25396 = private constant [14 x i8] c"file (closed)\00" ; [#uses=1]
+@.str26397 = private constant [10 x i8] c"file (%p)\00" ; [#uses=1]
+@.str27398 = private constant [29 x i8] c"attempt to use a closed file\00" ; [#uses=1]
+@.str28399 = private constant [6 x i8] c"%.14g\00" ; [#uses=1]
+@_ZZ9f_setvbufP9lua_StateE4mode = internal constant [3 x i32] [i32 2, i32 0, i32 1], align 4 ; [#uses=1]
+@_ZZ9f_setvbufP9lua_StateE9modenames = internal constant [4 x i8*] [i8* getelementptr inbounds ([3 x i8]* @.str29400, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str30401, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str31402, i32 0, i32 0), i8* null], align 4 ; [#uses=1]
+@.str29400 = private constant [3 x i8] c"no\00" ; [#uses=1]
+@.str30401 = private constant [5 x i8] c"full\00" ; [#uses=1]
+@.str31402 = private constant [5 x i8] c"line\00" ; [#uses=1]
+@_ZZ6f_seekP9lua_StateE4mode = internal constant [3 x i32] [i32 0, i32 1, i32 2], align 4 ; [#uses=1]
+@_ZZ6f_seekP9lua_StateE9modenames = internal constant [4 x i8*] [i8* getelementptr inbounds ([4 x i8]* @.str32403, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str33404, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str34405, i32 0, i32 0), i8* null], align 4 ; [#uses=1]
+@.str32403 = private constant [4 x i8] c"set\00" ; [#uses=1]
+@.str33404 = private constant [4 x i8] c"cur\00" ; [#uses=1]
+@.str34405 = private constant [4 x i8] c"end\00" ; [#uses=1]
+@.str35406 = private constant [19 x i8] c"too many arguments\00" ; [#uses=1]
+@.str36407 = private constant [15 x i8] c"invalid option\00" ; [#uses=1]
+@.str37408 = private constant [15 x i8] c"invalid format\00" ; [#uses=1]
+@.str38409 = private constant [4 x i8] c"%lf\00" ; [#uses=1]
+@.str39410 = private constant [23 x i8] c"file is already closed\00" ; [#uses=1]
+@.str40411 = private constant [27 x i8] c"standard %s file is closed\00" ; [#uses=1]
+@_ZL6fnames = internal constant [2 x i8*] [i8* getelementptr inbounds ([6 x i8]* @.str2373, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str5376, i32 0, i32 0)], align 4 ; [#uses=1]
+@.str41412 = private constant [12 x i8] c"closed file\00" ; [#uses=1]
+@.str42413 = private constant [5 x i8] c"file\00" ; [#uses=1]
+@.str43414 = private constant [2 x i8] c"r\00" ; [#uses=1]
+@.str44415 = private constant [22 x i8] c"'popen' not supported\00" ; [#uses=1]
+@.str45416 = private constant [2 x i8] c"w\00" ; [#uses=1]
+@.str417 = private constant [4 x i8] c"abs\00" ; [#uses=1]
+@.str1418 = private constant [5 x i8] c"acos\00" ; [#uses=1]
+@.str2419 = private constant [5 x i8] c"asin\00" ; [#uses=1]
+@.str3420 = private constant [6 x i8] c"atan2\00" ; [#uses=1]
+@.str4421 = private constant [5 x i8] c"atan\00" ; [#uses=1]
+@.str5422 = private constant [5 x i8] c"ceil\00" ; [#uses=1]
+@.str6423 = private constant [5 x i8] c"cosh\00" ; [#uses=1]
+@.str7424 = private constant [4 x i8] c"cos\00" ; [#uses=1]
+@.str8425 = private constant [4 x i8] c"deg\00" ; [#uses=1]
+@.str9426 = private constant [4 x i8] c"exp\00" ; [#uses=1]
+@.str10427 = private constant [6 x i8] c"floor\00" ; [#uses=1]
+@.str11428 = private constant [5 x i8] c"fmod\00" ; [#uses=1]
+@.str12429 = private constant [6 x i8] c"frexp\00" ; [#uses=1]
+@.str13430 = private constant [6 x i8] c"ldexp\00" ; [#uses=1]
+@.str14431 = private constant [6 x i8] c"log10\00" ; [#uses=1]
+@.str15432 = private constant [4 x i8] c"log\00" ; [#uses=1]
+@.str16433 = private constant [4 x i8] c"max\00" ; [#uses=1]
+@.str17434 = private constant [4 x i8] c"min\00" ; [#uses=1]
+@.str18435 = private constant [5 x i8] c"modf\00" ; [#uses=1]
+@.str19436 = private constant [4 x i8] c"pow\00" ; [#uses=1]
+@.str20437 = private constant [4 x i8] c"rad\00" ; [#uses=1]
+@.str21438 = private constant [7 x i8] c"random\00" ; [#uses=1]
+@.str22439 = private constant [11 x i8] c"randomseed\00" ; [#uses=1]
+@.str23440 = private constant [5 x i8] c"sinh\00" ; [#uses=1]
+@.str24441 = private constant [4 x i8] c"sin\00" ; [#uses=1]
+@.str25442 = private constant [5 x i8] c"sqrt\00" ; [#uses=1]
+@.str26443 = private constant [5 x i8] c"tanh\00" ; [#uses=1]
+@.str27444 = private constant [4 x i8] c"tan\00" ; [#uses=1]
+@_ZL7mathlib = internal global [29 x %struct.luaL_Reg] [%struct.luaL_Reg { i8* getelementptr inbounds ([4 x i8]* @.str417, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8math_absP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str1418, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9math_acosP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str2419, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9math_asinP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str3420, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10math_atan2P9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str4421, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9math_atanP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str5422, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9math_ceilP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str6423, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9math_coshP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([4 x i8]* @.str7424, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8math_cosP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([4 x i8]* @.str8425, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8math_degP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([4 x i8]* @.str9426, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8math_expP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str10427, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10math_floorP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str11428, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9math_fmodP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str12429, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10math_frexpP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str13430, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10math_ldexpP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str14431, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10math_log10P9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([4 x i8]* @.str15432, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8math_logP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([4 x i8]* @.str16433, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8math_maxP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([4 x i8]* @.str17434, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8math_minP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str18435, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9math_modfP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([4 x i8]* @.str19436, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8math_powP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([4 x i8]* @.str20437, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8math_radP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str21438, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11math_randomP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([11 x i8]* @.str22439, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z15math_randomseedP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str23440, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9math_sinhP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([4 x i8]* @.str24441, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8math_sinP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str25442, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9math_sqrtP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str26443, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9math_tanhP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([4 x i8]* @.str27444, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8math_tanP9lua_State }, %struct.luaL_Reg zeroinitializer], align 4 ; [#uses=1]
+@.str28445 = private constant [5 x i8] c"math\00" ; [#uses=1]
+@.str29446 = private constant [3 x i8] c"pi\00" ; [#uses=1]
+@.str30447 = private constant [5 x i8] c"huge\00" ; [#uses=1]
+@.str31448 = private constant [4 x i8] c"mod\00" ; [#uses=1]
+@.str32449 = private constant [18 x i8] c"interval is empty\00" ; [#uses=1]
+@.str33450 = private constant [26 x i8] c"wrong number of arguments\00" ; [#uses=1]
+@.str452 = private constant [6 x i8] c"clock\00" ; [#uses=1]
+@.str1453 = private constant [5 x i8] c"date\00" ; [#uses=1]
+@.str2454 = private constant [9 x i8] c"difftime\00" ; [#uses=1]
+@.str3455 = private constant [8 x i8] c"execute\00" ; [#uses=1]
+@.str4456 = private constant [5 x i8] c"exit\00" ; [#uses=1]
+@.str5457 = private constant [7 x i8] c"getenv\00" ; [#uses=1]
+@.str6458 = private constant [7 x i8] c"remove\00" ; [#uses=1]
+@.str7459 = private constant [7 x i8] c"rename\00" ; [#uses=1]
+@.str8460 = private constant [10 x i8] c"setlocale\00" ; [#uses=1]
+@.str9461 = private constant [5 x i8] c"time\00" ; [#uses=1]
+@.str10462 = private constant [8 x i8] c"tmpname\00" ; [#uses=1]
+@_ZL6syslib = internal global [12 x %struct.luaL_Reg] [%struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str452, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8os_clockP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str1453, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z7os_dateP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([9 x i8]* @.str2454, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11os_difftimeP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([8 x i8]* @.str3455, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10os_executeP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str4456, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z7os_exitP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str5457, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9os_getenvP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str6458, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9os_removeP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str7459, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9os_renameP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([10 x i8]* @.str8460, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z12os_setlocaleP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str9461, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z7os_timeP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([8 x i8]* @.str10462, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10os_tmpnameP9lua_State }, %struct.luaL_Reg zeroinitializer], align 4 ; [#uses=1]
+@.str11463 = private constant [3 x i8] c"os\00" ; [#uses=1]
+@.str12464 = private constant [37 x i8] c"unable to generate a unique filename\00" ; [#uses=1]
+@.str13465 = private constant [4 x i8] c"sec\00" ; [#uses=1]
+@.str14466 = private constant [4 x i8] c"min\00" ; [#uses=1]
+@.str15467 = private constant [5 x i8] c"hour\00" ; [#uses=1]
+@.str16468 = private constant [4 x i8] c"day\00" ; [#uses=1]
+@.str17469 = private constant [6 x i8] c"month\00" ; [#uses=1]
+@.str18470 = private constant [5 x i8] c"year\00" ; [#uses=1]
+@.str19471 = private constant [6 x i8] c"isdst\00" ; [#uses=1]
+@.str20472 = private constant [33 x i8] c"field '%s' missing in date table\00" ; [#uses=1]
+@_ZZ12os_setlocaleP9lua_StateE3cat = internal constant [6 x i32] [i32 6, i32 3, i32 0, i32 4, i32 1, i32 2], align 4 ; [#uses=1]
+@_ZZ12os_setlocaleP9lua_StateE8catnames = internal constant [7 x i8*] [i8* getelementptr inbounds ([4 x i8]* @.str21473, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str22474, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str23475, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str24476, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str25477, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str9461, i32 0, i32 0), i8* null], align 4 ; [#uses=1]
+@.str21473 = private constant [4 x i8] c"all\00" ; [#uses=1]
+@.str22474 = private constant [8 x i8] c"collate\00" ; [#uses=1]
+@.str23475 = private constant [6 x i8] c"ctype\00" ; [#uses=1]
+@.str24476 = private constant [9 x i8] c"monetary\00" ; [#uses=1]
+@.str25477 = private constant [8 x i8] c"numeric\00" ; [#uses=1]
+@.str26478 = private constant [7 x i8] c"%s: %s\00" ; [#uses=1]
+@.str27479 = private constant [3 x i8] c"%c\00" ; [#uses=1]
+@.str28480 = private constant [3 x i8] c"*t\00" ; [#uses=1]
+@.str29481 = private constant [5 x i8] c"wday\00" ; [#uses=1]
+@.str30482 = private constant [5 x i8] c"yday\00" ; [#uses=1]
+@.str483 = private constant [7 x i8] c"concat\00" ; [#uses=1]
+@.str1484 = private constant [8 x i8] c"foreach\00" ; [#uses=1]
+@.str2485 = private constant [9 x i8] c"foreachi\00" ; [#uses=1]
+@.str3486 = private constant [5 x i8] c"getn\00" ; [#uses=1]
+@.str4487 = private constant [5 x i8] c"maxn\00" ; [#uses=1]
+@.str5488 = private constant [7 x i8] c"insert\00" ; [#uses=1]
+@.str6489 = private constant [7 x i8] c"remove\00" ; [#uses=1]
+@.str7490 = private constant [5 x i8] c"setn\00" ; [#uses=1]
+@.str8491 = private constant [5 x i8] c"sort\00" ; [#uses=1]
+@_ZL9tab_funcs = internal global [10 x %struct.luaL_Reg] [%struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str483, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z7tconcatP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([8 x i8]* @.str1484, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z7foreachP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([9 x i8]* @.str2485, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8foreachiP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str3486, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z4getnP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str4487, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z4maxnP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str5488, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z7tinsertP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str6489, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z7tremoveP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str7490, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z4setnP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str8491, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z4sortP9lua_State }, %struct.luaL_Reg zeroinitializer], align 4 ; [#uses=1]
+@.str9492 = private constant [6 x i8] c"table\00" ; [#uses=1]
+@.str10493 = private constant [1 x i8] zeroinitializer ; [#uses=1]
+@.str11494 = private constant [35 x i8] c"invalid order function for sorting\00" ; [#uses=1]
+@.str12495 = private constant [19 x i8] c"'setn' is obsolete\00" ; [#uses=1]
+@.str13496 = private constant [38 x i8] c"wrong number of arguments to 'insert'\00" ; [#uses=1]
+@.str14497 = private constant [53 x i8] c"invalid value (%s) at index %d in table for 'concat'\00" ; [#uses=1]
+@.str498 = private constant [5 x i8] c"byte\00" ; [#uses=1]
+@.str1499 = private constant [5 x i8] c"char\00" ; [#uses=1]
+@.str2500 = private constant [5 x i8] c"dump\00" ; [#uses=1]
+@.str3501 = private constant [5 x i8] c"find\00" ; [#uses=1]
+@.str4502 = private constant [7 x i8] c"format\00" ; [#uses=1]
+@.str5503 = private constant [6 x i8] c"gfind\00" ; [#uses=1]
+@.str6504 = private constant [7 x i8] c"gmatch\00" ; [#uses=1]
+@.str7505 = private constant [5 x i8] c"gsub\00" ; [#uses=1]
+@.str8506 = private constant [4 x i8] c"len\00" ; [#uses=1]
+@.str9507 = private constant [6 x i8] c"lower\00" ; [#uses=1]
+@.str10508 = private constant [6 x i8] c"match\00" ; [#uses=1]
+@.str11509 = private constant [4 x i8] c"rep\00" ; [#uses=1]
+@.str12510 = private constant [8 x i8] c"reverse\00" ; [#uses=1]
+@.str13511 = private constant [4 x i8] c"sub\00" ; [#uses=1]
+@.str14512 = private constant [6 x i8] c"upper\00" ; [#uses=1]
+@_ZL6strlib = internal global [16 x %struct.luaL_Reg] [%struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str498, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8str_byteP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str1499, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8str_charP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str2500, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8str_dumpP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str3501, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8str_findP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str4502, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10str_formatP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str5503, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11gfind_nodefP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str6504, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z6gmatchP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str7505, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z8str_gsubP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([4 x i8]* @.str8506, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z7str_lenP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str9507, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9str_lowerP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str10508, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9str_matchP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([4 x i8]* @.str11509, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z7str_repP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([8 x i8]* @.str12510, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11str_reverseP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([4 x i8]* @.str13511, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z7str_subP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str14512, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9str_upperP9lua_State }, %struct.luaL_Reg zeroinitializer], align 4 ; [#uses=1]
+@.str15513 = private constant [7 x i8] c"string\00" ; [#uses=1]
+@.str16514 = private constant [1 x i8] zeroinitializer ; [#uses=1]
+@.str17515 = private constant [8 x i8] c"__index\00" ; [#uses=1]
+@.str18516 = private constant [11 x i8] c"^$*+?.([%-\00" ; [#uses=1]
+@.str19517 = private constant [18 x i8] c"too many captures\00" ; [#uses=1]
+@.str20518 = private constant [22 x i8] c"invalid capture index\00" ; [#uses=1]
+@.str21519 = private constant [19 x i8] c"unfinished capture\00" ; [#uses=1]
+@.str22520 = private constant [35 x i8] c"missing '[' after '%%f' in pattern\00" ; [#uses=1]
+@.str23521 = private constant [35 x i8] c"malformed pattern (ends with '%%')\00" ; [#uses=1]
+@.str24522 = private constant [32 x i8] c"malformed pattern (missing ']')\00" ; [#uses=1]
+@.str25523 = private constant [19 x i8] c"unbalanced pattern\00" ; [#uses=1]
+@.str26524 = private constant [24 x i8] c"invalid pattern capture\00" ; [#uses=1]
+@.str27525 = private constant [31 x i8] c"string/function/table expected\00" ; [#uses=1]
+@.str28526 = private constant [33 x i8] c"invalid replacement value (a %s)\00" ; [#uses=1]
+@.str29527 = private constant [46 x i8] c"'string.gfind' was renamed to 'string.gmatch'\00" ; [#uses=1]
+@.str30528 = private constant [34 x i8] c"invalid option '%%%c' to 'format'\00" ; [#uses=1]
+@.str31529 = private constant [3 x i8] c"\5Cr\00" ; [#uses=1]
+@.str32530 = private constant [5 x i8] c"\5C000\00" ; [#uses=1]
+@.str33531 = private constant [2 x i8] c"l\00" ; [#uses=1]
+@.str34532 = private constant [6 x i8] c"-+ #0\00" ; [#uses=1]
+@.str35533 = private constant [32 x i8] c"invalid format (repeated flags)\00" ; [#uses=1]
+@.str36534 = private constant [45 x i8] c"invalid format (width or precision too long)\00" ; [#uses=1]
+@.str37535 = private constant [30 x i8] c"unable to dump given function\00" ; [#uses=1]
+@.str38536 = private constant [14 x i8] c"invalid value\00" ; [#uses=1]
+@.str39537 = private constant [22 x i8] c"string slice too long\00" ; [#uses=1]
+@.str538 = private constant [8 x i8] c"loadlib\00" ; [#uses=1]
+@.str1539 = private constant [7 x i8] c"seeall\00" ; [#uses=1]
+@_ZL8pk_funcs = internal global [3 x %struct.luaL_Reg] [%struct.luaL_Reg { i8* getelementptr inbounds ([8 x i8]* @.str538, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10ll_loadlibP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str1539, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9ll_seeallP9lua_State }, %struct.luaL_Reg zeroinitializer], align 4 ; [#uses=1]
+@.str2540 = private constant [7 x i8] c"module\00" ; [#uses=1]
+@.str3541 = private constant [8 x i8] c"require\00" ; [#uses=1]
+@_ZL8ll_funcs = internal global [3 x %struct.luaL_Reg] [%struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str2540, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z9ll_moduleP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([8 x i8]* @.str3541, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10ll_requireP9lua_State }, %struct.luaL_Reg zeroinitializer], align 4 ; [#uses=1]
+@_ZL7loaders = internal constant [5 x i32 (%struct.lua_State*)*] [i32 (%struct.lua_State*)* @_Z14loader_preloadP9lua_State, i32 (%struct.lua_State*)* @_Z10loader_LuaP9lua_State, i32 (%struct.lua_State*)* @_Z8loader_CP9lua_State, i32 (%struct.lua_State*)* @_Z12loader_CrootP9lua_State, i32 (%struct.lua_State*)* null], align 4 ; [#uses=2]
+@.str4542 = private constant [9 x i8] c"_LOADLIB\00" ; [#uses=1]
+@.str5543 = private constant [5 x i8] c"__gc\00" ; [#uses=1]
+@.str6544 = private constant [8 x i8] c"package\00" ; [#uses=1]
+@.str7545 = private constant [8 x i8] c"loaders\00" ; [#uses=1]
+@.str8546 = private constant [5 x i8] c"path\00" ; [#uses=1]
+@.str9547 = private constant [9 x i8] c"LUA_PATH\00" ; [#uses=1]
+@.str10548 = private constant [138 x i8] c"./?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/local/lib/lua/5.1/?.lua;/usr/local/lib/lua/5.1/?/init.lua\00" ; [#uses=1]
+@.str11549 = private constant [6 x i8] c"cpath\00" ; [#uses=1]
+@.str12550 = private constant [10 x i8] c"LUA_CPATH\00" ; [#uses=1]
+@.str13551 = private constant [69 x i8] c"./?.so;/usr/local/lib/lua/5.1/?.so;/usr/local/lib/lua/5.1/loadall.so\00" ; [#uses=1]
+@.str14552 = private constant [10 x i8] c"/\0A;\0A?\0A!\0A-\00" ; [#uses=1]
+@.str15553 = private constant [7 x i8] c"config\00" ; [#uses=1]
+@.str16554 = private constant [8 x i8] c"_LOADED\00" ; [#uses=1]
+@.str17555 = private constant [7 x i8] c"loaded\00" ; [#uses=1]
+@.str18556 = private constant [8 x i8] c"preload\00" ; [#uses=1]
+@.str19557 = private constant [3 x i8] c";;\00" ; [#uses=1]
+@.str20558 = private constant [4 x i8] c";\01;\00" ; [#uses=1]
+@.str21559 = private constant [2 x i8] c"\01\00" ; [#uses=1]
+@.str22560 = private constant [30 x i8] c"\0A\09no module '%s' in file '%s'\00" ; [#uses=1]
+@.str23561 = private constant [46 x i8] c"error loading module '%s' from file '%s':\0A\09%s\00" ; [#uses=1]
+@.str24562 = private constant [59 x i8] c"dynamic libraries not enabled; check your Lua installation\00" ; [#uses=1]
+@.str25563 = private constant [5 x i8] c"%s%s\00" ; [#uses=1]
+@.str26564 = private constant [10 x i8] c"LOADLIB: \00" ; [#uses=1]
+@.str27565 = private constant [2 x i8] c"-\00" ; [#uses=1]
+@.str28566 = private constant [2 x i8] c".\00" ; [#uses=1]
+@.str29567 = private constant [2 x i8] c"_\00" ; [#uses=1]
+@.str30568 = private constant [11 x i8] c"luaopen_%s\00" ; [#uses=1]
+@.str31569 = private constant [2 x i8] c"/\00" ; [#uses=1]
+@.str32570 = private constant [30 x i8] c"'package.%s' must be a string\00" ; [#uses=1]
+@.str33571 = private constant [1 x i8] zeroinitializer ; [#uses=1]
+@.str34572 = private constant [2 x i8] c"?\00" ; [#uses=1]
+@.str35573 = private constant [15 x i8] c"\0A\09no file '%s'\00" ; [#uses=1]
+@.str36574 = private constant [2 x i8] c"r\00" ; [#uses=1]
+@.str37575 = private constant [2 x i8] c";\00" ; [#uses=1]
+@.str38576 = private constant [34 x i8] c"'package.preload' must be a table\00" ; [#uses=1]
+@.str39577 = private constant [33 x i8] c"\0A\09no field package.preload['%s']\00" ; [#uses=1]
+@_ZL9sentinel_ = internal constant i32 0, align 4 ; [#uses=1]
+@.str40578 = private constant [43 x i8] c"loop or previous error loading module '%s'\00" ; [#uses=1]
+@.str41579 = private constant [34 x i8] c"'package.loaders' must be a table\00" ; [#uses=1]
+@.str42580 = private constant [25 x i8] c"module '%s' not found:%s\00" ; [#uses=1]
+@.str43581 = private constant [30 x i8] c"name conflict for module '%s'\00" ; [#uses=1]
+@.str44582 = private constant [6 x i8] c"_NAME\00" ; [#uses=1]
+@.str45583 = private constant [2 x i8] c"f\00" ; [#uses=1]
+@.str46584 = private constant [40 x i8] c"'module' not called from a Lua function\00" ; [#uses=1]
+@.str47585 = private constant [3 x i8] c"_M\00" ; [#uses=1]
+@.str48586 = private constant [9 x i8] c"_PACKAGE\00" ; [#uses=1]
+@.str49587 = private constant [8 x i8] c"__index\00" ; [#uses=1]
+@.str50588 = private constant [7 x i8] c"absent\00" ; [#uses=1]
+@.str51589 = private constant [5 x i8] c"init\00" ; [#uses=1]
+@.str590 = private constant [1 x i8] zeroinitializer ; [#uses=1]
+@.str1591 = private constant [8 x i8] c"package\00" ; [#uses=1]
+@.str2592 = private constant [6 x i8] c"table\00" ; [#uses=1]
+@.str3593 = private constant [3 x i8] c"io\00" ; [#uses=1]
+@.str4594 = private constant [3 x i8] c"os\00" ; [#uses=1]
+@.str5595 = private constant [7 x i8] c"string\00" ; [#uses=1]
+@.str6596 = private constant [5 x i8] c"math\00" ; [#uses=1]
+@.str7597 = private constant [6 x i8] c"debug\00" ; [#uses=1]
+@_ZL7lualibs = internal global [9 x %struct.luaL_Reg] [%struct.luaL_Reg { i8* getelementptr inbounds ([1 x i8]* @.str590, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z12luaopen_baseP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([8 x i8]* @.str1591, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z15luaopen_packageP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str2592, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z13luaopen_tableP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([3 x i8]* @.str3593, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10luaopen_ioP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([3 x i8]* @.str4594, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10luaopen_osP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str5595, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z14luaopen_stringP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([5 x i8]* @.str6596, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z12luaopen_mathP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str7597, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z13luaopen_debugP9lua_State }, %struct.luaL_Reg zeroinitializer], align 4 ; [#uses=1]
+
+; [#uses=0]
+define i32 @main(i32 %argc, i8** %argv) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i8**, align 4 ; [#uses=3]
+ %status = alloca i32, align 4 ; [#uses=3]
+ %s = alloca %struct.Smain, align 4 ; [#uses=4]
+ %L = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ store i32 0, i32* %1
+ store i32 %argc, i32* %2, align 4
+ store i8** %argv, i8*** %3, align 4
+ %4 = call %struct.lua_State* @_Z13luaL_newstatev() ; [#uses=1]
+ store %struct.lua_State* %4, %struct.lua_State** %L, align 4
+ %5 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %6 = icmp eq %struct.lua_State* %5, null ; [#uses=1]
+ br i1 %6, label %7, label %11
+
+; <label>:7 ; preds = %0
+ %8 = load i8*** %3, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds i8** %8, i32 0 ; [#uses=1]
+ %10 = load i8** %9 ; [#uses=1]
+ call void @_Z9l_messagePKcS0_(i8* %10, i8* getelementptr inbounds ([39 x i8]* @.str, i32 0, i32 0))
+ store i32 1, i32* %1
+ br label %32
+
+; <label>:11 ; preds = %0
+ %12 = load i32* %2, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.Smain* %s, i32 0, i32 0 ; [#uses=1]
+ store i32 %12, i32* %13, align 4
+ %14 = load i8*** %3, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.Smain* %s, i32 0, i32 1 ; [#uses=1]
+ store i8** %14, i8*** %15, align 4
+ %16 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %17 = bitcast %struct.Smain* %s to i8* ; [#uses=1]
+ %18 = call i32 @_Z10lua_cpcallP9lua_StatePFiS0_EPv(%struct.lua_State* %16, i32 (%struct.lua_State*)* @_Z5pmainP9lua_State, i8* %17) ; [#uses=1]
+ store i32 %18, i32* %status, align 4
+ %19 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %20 = load i32* %status, align 4 ; [#uses=1]
+ %21 = call i32 @_Z6reportP9lua_Statei(%struct.lua_State* %19, i32 %20) ; [#uses=0]
+ %22 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ call void @_Z9lua_closeP9lua_State(%struct.lua_State* %22)
+ %23 = load i32* %status, align 4 ; [#uses=1]
+ %24 = icmp ne i32 %23, 0 ; [#uses=1]
+ br i1 %24, label %29, label %25
+
+; <label>:25 ; preds = %11
+ %26 = getelementptr inbounds %struct.Smain* %s, i32 0, i32 2 ; [#uses=1]
+ %27 = load i32* %26, align 4 ; [#uses=1]
+ %28 = icmp ne i32 %27, 0 ; [#uses=1]
+ br label %29
+
+; <label>:29 ; preds = %25, %11
+ %30 = phi i1 [ true, %11 ], [ %28, %25 ] ; [#uses=1]
+ %31 = select i1 %30, i32 1, i32 0 ; [#uses=1]
+ store i32 %31, i32* %1
+ br label %32
+
+; <label>:32 ; preds = %29, %7
+ %33 = load i32* %1 ; [#uses=1]
+ ret i32 %33
+}
+
+; [#uses=4]
+define internal void @_Z9l_messagePKcS0_(i8* %pname, i8* %msg) {
+ %1 = alloca i8*, align 4 ; [#uses=3]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ store i8* %pname, i8** %1, align 4
+ store i8* %msg, i8** %2, align 4
+ %3 = load i8** %1, align 4 ; [#uses=1]
+ %4 = icmp ne i8* %3, null ; [#uses=1]
+ br i1 %4, label %5, label %9
+
+; <label>:5 ; preds = %0
+ %6 = load %struct._IO_FILE** @stderr, align 4 ; [#uses=1]
+ %7 = load i8** %1, align 4 ; [#uses=1]
+ %8 = call i32 (%struct._IO_FILE*, i8*, ...)* @fprintf(%struct._IO_FILE* %6, i8* getelementptr inbounds ([5 x i8]* @.str26, i32 0, i32 0), i8* %7) ; [#uses=0]
+ br label %9
+
+; <label>:9 ; preds = %5, %0
+ %10 = load %struct._IO_FILE** @stderr, align 4 ; [#uses=1]
+ %11 = load i8** %2, align 4 ; [#uses=1]
+ %12 = call i32 (%struct._IO_FILE*, i8*, ...)* @fprintf(%struct._IO_FILE* %10, i8* getelementptr inbounds ([4 x i8]* @.str27, i32 0, i32 0), i8* %11) ; [#uses=0]
+ %13 = load %struct._IO_FILE** @stderr, align 4 ; [#uses=1]
+ %14 = call i32 @fflush(%struct._IO_FILE* %13) ; [#uses=0]
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z5pmainP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=6]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=11]
+ %s = alloca %struct.Smain*, align 4 ; [#uses=10]
+ %argv = alloca i8**, align 4 ; [#uses=7]
+ %script = alloca i32, align 4 ; [#uses=7]
+ %has_i = alloca i32, align 4 ; [#uses=3]
+ %has_v = alloca i32, align 4 ; [#uses=4]
+ %has_e = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i8* @_Z14lua_touserdataP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = bitcast i8* %4 to %struct.Smain* ; [#uses=1]
+ store %struct.Smain* %5, %struct.Smain** %s, align 4
+ %6 = load %struct.Smain** %s, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.Smain* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load i8*** %7, align 4 ; [#uses=1]
+ store i8** %8, i8*** %argv, align 4
+ store i32 0, i32* %has_i, align 4
+ store i32 0, i32* %has_v, align 4
+ store i32 0, i32* %has_e, align 4
+ %9 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ store %struct.lua_State* %9, %struct.lua_State** @_ZL7globalL, align 4
+ %10 = load i8*** %argv, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds i8** %10, i32 0 ; [#uses=1]
+ %12 = load i8** %11 ; [#uses=1]
+ %13 = icmp ne i8* %12, null ; [#uses=1]
+ br i1 %13, label %14, label %25
+
+; <label>:14 ; preds = %0
+ %15 = load i8*** %argv, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds i8** %15, i32 0 ; [#uses=1]
+ %17 = load i8** %16 ; [#uses=1]
+ %18 = getelementptr inbounds i8* %17, i32 0 ; [#uses=1]
+ %19 = load i8* %18 ; [#uses=1]
+ %20 = icmp ne i8 %19, 0 ; [#uses=1]
+ br i1 %20, label %21, label %25
+
+; <label>:21 ; preds = %14
+ %22 = load i8*** %argv, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds i8** %22, i32 0 ; [#uses=1]
+ %24 = load i8** %23 ; [#uses=1]
+ store i8* %24, i8** @_ZL8progname, align 4
+ br label %25
+
+; <label>:25 ; preds = %21, %14, %0
+ %26 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %27 = call i32 @_Z6lua_gcP9lua_Stateii(%struct.lua_State* %26, i32 0, i32 0) ; [#uses=0]
+ %28 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13luaL_openlibsP9lua_State(%struct.lua_State* %28)
+ %29 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %30 = call i32 @_Z6lua_gcP9lua_Stateii(%struct.lua_State* %29, i32 1, i32 0) ; [#uses=0]
+ %31 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %32 = call i32 @_Z14handle_luainitP9lua_State(%struct.lua_State* %31) ; [#uses=1]
+ %33 = load %struct.Smain** %s, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.Smain* %33, i32 0, i32 2 ; [#uses=1]
+ store i32 %32, i32* %34, align 4
+ %35 = load %struct.Smain** %s, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.Smain* %35, i32 0, i32 2 ; [#uses=1]
+ %37 = load i32* %36, align 4 ; [#uses=1]
+ %38 = icmp ne i32 %37, 0 ; [#uses=1]
+ br i1 %38, label %39, label %40
+
+; <label>:39 ; preds = %25
+ store i32 0, i32* %1
+ br label %107
+
+; <label>:40 ; preds = %25
+ %41 = load i8*** %argv, align 4 ; [#uses=1]
+ %42 = call i32 @_Z11collectargsPPcPiS1_S1_(i8** %41, i32* %has_i, i32* %has_v, i32* %has_e) ; [#uses=1]
+ store i32 %42, i32* %script, align 4
+ %43 = load i32* %script, align 4 ; [#uses=1]
+ %44 = icmp slt i32 %43, 0 ; [#uses=1]
+ br i1 %44, label %45, label %48
+
+; <label>:45 ; preds = %40
+ call void @_Z11print_usagev()
+ %46 = load %struct.Smain** %s, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.Smain* %46, i32 0, i32 2 ; [#uses=1]
+ store i32 1, i32* %47, align 4
+ store i32 0, i32* %1
+ br label %107
+
+; <label>:48 ; preds = %40
+ %49 = load i32* %has_v, align 4 ; [#uses=1]
+ %50 = icmp ne i32 %49, 0 ; [#uses=1]
+ br i1 %50, label %51, label %52
+
+; <label>:51 ; preds = %48
+ call void @_Z13print_versionv()
+ br label %52
+
+; <label>:52 ; preds = %51, %48
+ %53 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %54 = load i8*** %argv, align 4 ; [#uses=1]
+ %55 = load i32* %script, align 4 ; [#uses=1]
+ %56 = icmp sgt i32 %55, 0 ; [#uses=1]
+ br i1 %56, label %57, label %59
+
+; <label>:57 ; preds = %52
+ %58 = load i32* %script, align 4 ; [#uses=1]
+ br label %63
+
+; <label>:59 ; preds = %52
+ %60 = load %struct.Smain** %s, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.Smain* %60, i32 0, i32 0 ; [#uses=1]
+ %62 = load i32* %61, align 4 ; [#uses=1]
+ br label %63
+
+; <label>:63 ; preds = %59, %57
+ %64 = phi i32 [ %58, %57 ], [ %62, %59 ] ; [#uses=1]
+ %65 = call i32 @_Z7runargsP9lua_StatePPci(%struct.lua_State* %53, i8** %54, i32 %64) ; [#uses=1]
+ %66 = load %struct.Smain** %s, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.Smain* %66, i32 0, i32 2 ; [#uses=1]
+ store i32 %65, i32* %67, align 4
+ %68 = load %struct.Smain** %s, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.Smain* %68, i32 0, i32 2 ; [#uses=1]
+ %70 = load i32* %69, align 4 ; [#uses=1]
+ %71 = icmp ne i32 %70, 0 ; [#uses=1]
+ br i1 %71, label %72, label %73
+
+; <label>:72 ; preds = %63
+ store i32 0, i32* %1
+ br label %107
+
+; <label>:73 ; preds = %63
+ %74 = load i32* %script, align 4 ; [#uses=1]
+ %75 = icmp ne i32 %74, 0 ; [#uses=1]
+ br i1 %75, label %76, label %83
+
+; <label>:76 ; preds = %73
+ %77 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %78 = load i8*** %argv, align 4 ; [#uses=1]
+ %79 = load i32* %script, align 4 ; [#uses=1]
+ %80 = call i32 @_Z13handle_scriptP9lua_StatePPci(%struct.lua_State* %77, i8** %78, i32 %79) ; [#uses=1]
+ %81 = load %struct.Smain** %s, align 4 ; [#uses=1]
+ %82 = getelementptr inbounds %struct.Smain* %81, i32 0, i32 2 ; [#uses=1]
+ store i32 %80, i32* %82, align 4
+ br label %83
+
+; <label>:83 ; preds = %76, %73
+ %84 = load %struct.Smain** %s, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %struct.Smain* %84, i32 0, i32 2 ; [#uses=1]
+ %86 = load i32* %85, align 4 ; [#uses=1]
+ %87 = icmp ne i32 %86, 0 ; [#uses=1]
+ br i1 %87, label %88, label %89
+
+; <label>:88 ; preds = %83
+ store i32 0, i32* %1
+ br label %107
+
+; <label>:89 ; preds = %83
+ %90 = load i32* %has_i, align 4 ; [#uses=1]
+ %91 = icmp ne i32 %90, 0 ; [#uses=1]
+ br i1 %91, label %92, label %94
+
+; <label>:92 ; preds = %89
+ %93 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z5dottyP9lua_State(%struct.lua_State* %93)
+ br label %106
+
+; <label>:94 ; preds = %89
+ %95 = load i32* %script, align 4 ; [#uses=1]
+ %96 = icmp eq i32 %95, 0 ; [#uses=1]
+ br i1 %96, label %97, label %105
+
+; <label>:97 ; preds = %94
+ %98 = load i32* %has_e, align 4 ; [#uses=1]
+ %99 = icmp ne i32 %98, 0 ; [#uses=1]
+ br i1 %99, label %105, label %100
+
+; <label>:100 ; preds = %97
+ %101 = load i32* %has_v, align 4 ; [#uses=1]
+ %102 = icmp ne i32 %101, 0 ; [#uses=1]
+ br i1 %102, label %105, label %103
+
+; <label>:103 ; preds = %100
+ call void @_Z13print_versionv()
+ %104 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z5dottyP9lua_State(%struct.lua_State* %104)
+ br label %105
+
+; <label>:105 ; preds = %103, %100, %97, %94
+ br label %106
+
+; <label>:106 ; preds = %105, %92
+ store i32 0, i32* %1
+ br label %107
+
+; <label>:107 ; preds = %106, %88, %72, %45, %39
+ %108 = load i32* %1 ; [#uses=1]
+ ret i32 %108
+}
+
+; [#uses=6]
+define internal i32 @_Z6reportP9lua_Statei(%struct.lua_State* %L, i32 %status) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %msg = alloca i8*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %status, i32* %2, align 4
+ %3 = load i32* %2, align 4 ; [#uses=1]
+ %4 = icmp ne i32 %3, 0 ; [#uses=1]
+ br i1 %4, label %5, label %19
+
+; <label>:5 ; preds = %0
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %6, i32 -1) ; [#uses=1]
+ %8 = icmp eq i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %19, label %9
+
+; <label>:9 ; preds = %5
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %10, i32 -1, i32* null) ; [#uses=1]
+ store i8* %11, i8** %msg, align 4
+ %12 = load i8** %msg, align 4 ; [#uses=1]
+ %13 = icmp eq i8* %12, null ; [#uses=1]
+ br i1 %13, label %14, label %15
+
+; <label>:14 ; preds = %9
+ store i8* getelementptr inbounds ([31 x i8]* @.str1, i32 0, i32 0), i8** %msg, align 4
+ br label %15
+
+; <label>:15 ; preds = %14, %9
+ %16 = load i8** @_ZL8progname, align 4 ; [#uses=1]
+ %17 = load i8** %msg, align 4 ; [#uses=1]
+ call void @_Z9l_messagePKcS0_(i8* %16, i8* %17)
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %18, i32 -2)
+ br label %19
+
+; <label>:19 ; preds = %15, %5, %0
+ %20 = load i32* %2, align 4 ; [#uses=1]
+ ret i32 %20
+}
+
+; [#uses=1]
+define internal i32 @_Z14handle_luainitP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %init = alloca i8*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = call i8* @getenv(i8* getelementptr inbounds ([9 x i8]* @.str24, i32 0, i32 0)) nounwind ; [#uses=1]
+ store i8* %3, i8** %init, align 4
+ %4 = load i8** %init, align 4 ; [#uses=1]
+ %5 = icmp eq i8* %4, null ; [#uses=1]
+ br i1 %5, label %6, label %7
+
+; <label>:6 ; preds = %0
+ store i32 0, i32* %1
+ br label %22
+
+; <label>:7 ; preds = %0
+ %8 = load i8** %init, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds i8* %8, i32 0 ; [#uses=1]
+ %10 = load i8* %9 ; [#uses=1]
+ %11 = sext i8 %10 to i32 ; [#uses=1]
+ %12 = icmp eq i32 %11, 64 ; [#uses=1]
+ br i1 %12, label %13, label %18
+
+; <label>:13 ; preds = %7
+ %14 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %15 = load i8** %init, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds i8* %15, i32 1 ; [#uses=1]
+ %17 = call i32 @_Z6dofileP9lua_StatePKc(%struct.lua_State* %14, i8* %16) ; [#uses=1]
+ store i32 %17, i32* %1
+ br label %22
+
+; <label>:18 ; preds = %7
+ %19 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %20 = load i8** %init, align 4 ; [#uses=1]
+ %21 = call i32 @_Z8dostringP9lua_StatePKcS2_(%struct.lua_State* %19, i8* %20, i8* getelementptr inbounds ([10 x i8]* @.str25, i32 0, i32 0)) ; [#uses=1]
+ store i32 %21, i32* %1
+ br label %22
+
+; <label>:22 ; preds = %18, %13, %6
+ %23 = load i32* %1 ; [#uses=1]
+ ret i32 %23
+}
+
+; [#uses=1]
+define internal i32 @_Z11collectargsPPcPiS1_S1_(i8** %argv, i32* %pi, i32* %pv, i32* %pe) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=10]
+ %2 = alloca i8**, align 4 ; [#uses=10]
+ %3 = alloca i32*, align 4 ; [#uses=2]
+ %4 = alloca i32*, align 4 ; [#uses=2]
+ %5 = alloca i32*, align 4 ; [#uses=2]
+ %i = alloca i32, align 4 ; [#uses=17]
+ store i8** %argv, i8*** %2, align 4
+ store i32* %pi, i32** %3, align 4
+ store i32* %pv, i32** %4, align 4
+ store i32* %pe, i32** %5, align 4
+ store i32 1, i32* %i, align 4
+ br label %6
+
+; <label>:6 ; preds = %104, %0
+ %7 = load i32* %i, align 4 ; [#uses=1]
+ %8 = load i8*** %2, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds i8** %8, i32 %7 ; [#uses=1]
+ %10 = load i8** %9 ; [#uses=1]
+ %11 = icmp ne i8* %10, null ; [#uses=1]
+ br i1 %11, label %12, label %107
+
+; <label>:12 ; preds = %6
+ %13 = load i32* %i, align 4 ; [#uses=1]
+ %14 = load i8*** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds i8** %14, i32 %13 ; [#uses=1]
+ %16 = load i8** %15 ; [#uses=1]
+ %17 = getelementptr inbounds i8* %16, i32 0 ; [#uses=1]
+ %18 = load i8* %17 ; [#uses=1]
+ %19 = sext i8 %18 to i32 ; [#uses=1]
+ %20 = icmp ne i32 %19, 45 ; [#uses=1]
+ br i1 %20, label %21, label %23
+
+; <label>:21 ; preds = %12
+ %22 = load i32* %i, align 4 ; [#uses=1]
+ store i32 %22, i32* %1
+ br label %108
+
+; <label>:23 ; preds = %12
+ %24 = load i32* %i, align 4 ; [#uses=1]
+ %25 = load i8*** %2, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds i8** %25, i32 %24 ; [#uses=1]
+ %27 = load i8** %26 ; [#uses=1]
+ %28 = getelementptr inbounds i8* %27, i32 1 ; [#uses=1]
+ %29 = load i8* %28 ; [#uses=1]
+ %30 = sext i8 %29 to i32 ; [#uses=1]
+ switch i32 %30, label %102 [
+ i32 45, label %31
+ i32 0, label %54
+ i32 105, label %56
+ i32 118, label %68
+ i32 101, label %80
+ i32 108, label %82
+ ]
+
+; <label>:31 ; preds = %23
+ %32 = load i32* %i, align 4 ; [#uses=1]
+ %33 = load i8*** %2, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds i8** %33, i32 %32 ; [#uses=1]
+ %35 = load i8** %34 ; [#uses=1]
+ %36 = getelementptr inbounds i8* %35, i32 2 ; [#uses=1]
+ %37 = load i8* %36 ; [#uses=1]
+ %38 = sext i8 %37 to i32 ; [#uses=1]
+ %39 = icmp ne i32 %38, 0 ; [#uses=1]
+ br i1 %39, label %40, label %41
+
+; <label>:40 ; preds = %31
+ store i32 -1, i32* %1
+ br label %108
+
+; <label>:41 ; preds = %31
+ %42 = load i32* %i, align 4 ; [#uses=1]
+ %43 = add nsw i32 %42, 1 ; [#uses=1]
+ %44 = load i8*** %2, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds i8** %44, i32 %43 ; [#uses=1]
+ %46 = load i8** %45 ; [#uses=1]
+ %47 = icmp ne i8* %46, null ; [#uses=1]
+ br i1 %47, label %48, label %51
+
+; <label>:48 ; preds = %41
+ %49 = load i32* %i, align 4 ; [#uses=1]
+ %50 = add nsw i32 %49, 1 ; [#uses=1]
+ br label %52
+
+; <label>:51 ; preds = %41
+ br label %52
+
+; <label>:52 ; preds = %51, %48
+ %53 = phi i32 [ %50, %48 ], [ 0, %51 ] ; [#uses=1]
+ store i32 %53, i32* %1
+ br label %108
+
+; <label>:54 ; preds = %23
+ %55 = load i32* %i, align 4 ; [#uses=1]
+ store i32 %55, i32* %1
+ br label %108
+
+; <label>:56 ; preds = %23
+ %57 = load i32* %i, align 4 ; [#uses=1]
+ %58 = load i8*** %2, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds i8** %58, i32 %57 ; [#uses=1]
+ %60 = load i8** %59 ; [#uses=1]
+ %61 = getelementptr inbounds i8* %60, i32 2 ; [#uses=1]
+ %62 = load i8* %61 ; [#uses=1]
+ %63 = sext i8 %62 to i32 ; [#uses=1]
+ %64 = icmp ne i32 %63, 0 ; [#uses=1]
+ br i1 %64, label %65, label %66
+
+; <label>:65 ; preds = %56
+ store i32 -1, i32* %1
+ br label %108
+
+; <label>:66 ; preds = %56
+ %67 = load i32** %3, align 4 ; [#uses=1]
+ store i32 1, i32* %67
+ br label %68
+
+; <label>:68 ; preds = %66, %23
+ %69 = load i32* %i, align 4 ; [#uses=1]
+ %70 = load i8*** %2, align 4 ; [#uses=1]
+ %71 = getelementptr inbounds i8** %70, i32 %69 ; [#uses=1]
+ %72 = load i8** %71 ; [#uses=1]
+ %73 = getelementptr inbounds i8* %72, i32 2 ; [#uses=1]
+ %74 = load i8* %73 ; [#uses=1]
+ %75 = sext i8 %74 to i32 ; [#uses=1]
+ %76 = icmp ne i32 %75, 0 ; [#uses=1]
+ br i1 %76, label %77, label %78
+
+; <label>:77 ; preds = %68
+ store i32 -1, i32* %1
+ br label %108
+
+; <label>:78 ; preds = %68
+ %79 = load i32** %4, align 4 ; [#uses=1]
+ store i32 1, i32* %79
+ br label %103
+
+; <label>:80 ; preds = %23
+ %81 = load i32** %5, align 4 ; [#uses=1]
+ store i32 1, i32* %81
+ br label %82
+
+; <label>:82 ; preds = %80, %23
+ %83 = load i32* %i, align 4 ; [#uses=1]
+ %84 = load i8*** %2, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds i8** %84, i32 %83 ; [#uses=1]
+ %86 = load i8** %85 ; [#uses=1]
+ %87 = getelementptr inbounds i8* %86, i32 2 ; [#uses=1]
+ %88 = load i8* %87 ; [#uses=1]
+ %89 = sext i8 %88 to i32 ; [#uses=1]
+ %90 = icmp eq i32 %89, 0 ; [#uses=1]
+ br i1 %90, label %91, label %101
+
+; <label>:91 ; preds = %82
+ %92 = load i32* %i, align 4 ; [#uses=1]
+ %93 = add nsw i32 %92, 1 ; [#uses=1]
+ store i32 %93, i32* %i, align 4
+ %94 = load i32* %i, align 4 ; [#uses=1]
+ %95 = load i8*** %2, align 4 ; [#uses=1]
+ %96 = getelementptr inbounds i8** %95, i32 %94 ; [#uses=1]
+ %97 = load i8** %96 ; [#uses=1]
+ %98 = icmp eq i8* %97, null ; [#uses=1]
+ br i1 %98, label %99, label %100
+
+; <label>:99 ; preds = %91
+ store i32 -1, i32* %1
+ br label %108
+
+; <label>:100 ; preds = %91
+ br label %101
+
+; <label>:101 ; preds = %100, %82
+ br label %103
+
+; <label>:102 ; preds = %23
+ store i32 -1, i32* %1
+ br label %108
+
+; <label>:103 ; preds = %101, %78
+ br label %104
+
+; <label>:104 ; preds = %103
+ %105 = load i32* %i, align 4 ; [#uses=1]
+ %106 = add nsw i32 %105, 1 ; [#uses=1]
+ store i32 %106, i32* %i, align 4
+ br label %6
+
+; <label>:107 ; preds = %6
+ store i32 0, i32* %1
+ br label %108
+
+; <label>:108 ; preds = %107, %102, %99, %77, %65, %54, %52, %40, %21
+ %109 = load i32* %1 ; [#uses=1]
+ ret i32 %109
+}
+
+; [#uses=1]
+define internal void @_Z11print_usagev() {
+ %1 = load %struct._IO_FILE** @stderr, align 4 ; [#uses=1]
+ %2 = load i8** @_ZL8progname, align 4 ; [#uses=1]
+ %3 = call i32 (%struct._IO_FILE*, i8*, ...)* @fprintf(%struct._IO_FILE* %1, i8* getelementptr inbounds ([307 x i8]* @.str23, i32 0, i32 0), i8* %2) ; [#uses=0]
+ %4 = load %struct._IO_FILE** @stderr, align 4 ; [#uses=1]
+ %5 = call i32 @fflush(%struct._IO_FILE* %4) ; [#uses=0]
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z13print_versionv() {
+ call void @_Z9l_messagePKcS0_(i8* null, i8* getelementptr inbounds ([52 x i8]* @.str22, i32 0, i32 0))
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z7runargsP9lua_StatePPci(%struct.lua_State* %L, i8** %argv, i32 %n) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %3 = alloca i8**, align 4 ; [#uses=7]
+ %4 = alloca i32, align 4 ; [#uses=2]
+ %i = alloca i32, align 4 ; [#uses=12]
+ %chunk = alloca i8*, align 4 ; [#uses=4]
+ %filename = alloca i8*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i8** %argv, i8*** %3, align 4
+ store i32 %n, i32* %4, align 4
+ store i32 1, i32* %i, align 4
+ br label %5
+
+; <label>:5 ; preds = %72, %0
+ %6 = load i32* %i, align 4 ; [#uses=1]
+ %7 = load i32* %4, align 4 ; [#uses=1]
+ %8 = icmp slt i32 %6, %7 ; [#uses=1]
+ br i1 %8, label %9, label %75
+
+; <label>:9 ; preds = %5
+ %10 = load i32* %i, align 4 ; [#uses=1]
+ %11 = load i8*** %3, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds i8** %11, i32 %10 ; [#uses=1]
+ %13 = load i8** %12 ; [#uses=1]
+ %14 = icmp eq i8* %13, null ; [#uses=1]
+ br i1 %14, label %15, label %16
+
+; <label>:15 ; preds = %9
+ br label %72
+
+; <label>:16 ; preds = %9
+ %17 = load i32* %i, align 4 ; [#uses=1]
+ %18 = load i8*** %3, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds i8** %18, i32 %17 ; [#uses=1]
+ %20 = load i8** %19 ; [#uses=1]
+ %21 = getelementptr inbounds i8* %20, i32 1 ; [#uses=1]
+ %22 = load i8* %21 ; [#uses=1]
+ %23 = sext i8 %22 to i32 ; [#uses=1]
+ switch i32 %23, label %70 [
+ i32 101, label %24
+ i32 108, label %47
+ ]
+
+; <label>:24 ; preds = %16
+ %25 = load i32* %i, align 4 ; [#uses=1]
+ %26 = load i8*** %3, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds i8** %26, i32 %25 ; [#uses=1]
+ %28 = load i8** %27 ; [#uses=1]
+ %29 = getelementptr inbounds i8* %28, i32 2 ; [#uses=1]
+ store i8* %29, i8** %chunk, align 4
+ %30 = load i8** %chunk, align 4 ; [#uses=1]
+ %31 = load i8* %30 ; [#uses=1]
+ %32 = sext i8 %31 to i32 ; [#uses=1]
+ %33 = icmp eq i32 %32, 0 ; [#uses=1]
+ br i1 %33, label %34, label %40
+
+; <label>:34 ; preds = %24
+ %35 = load i32* %i, align 4 ; [#uses=1]
+ %36 = add nsw i32 %35, 1 ; [#uses=2]
+ store i32 %36, i32* %i, align 4
+ %37 = load i8*** %3, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds i8** %37, i32 %36 ; [#uses=1]
+ %39 = load i8** %38 ; [#uses=1]
+ store i8* %39, i8** %chunk, align 4
+ br label %40
+
+; <label>:40 ; preds = %34, %24
+ %41 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %42 = load i8** %chunk, align 4 ; [#uses=1]
+ %43 = call i32 @_Z8dostringP9lua_StatePKcS2_(%struct.lua_State* %41, i8* %42, i8* getelementptr inbounds ([16 x i8]* @.str20, i32 0, i32 0)) ; [#uses=1]
+ %44 = icmp ne i32 %43, 0 ; [#uses=1]
+ br i1 %44, label %45, label %46
+
+; <label>:45 ; preds = %40
+ store i32 1, i32* %1
+ br label %76
+
+; <label>:46 ; preds = %40
+ br label %71
+
+; <label>:47 ; preds = %16
+ %48 = load i32* %i, align 4 ; [#uses=1]
+ %49 = load i8*** %3, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds i8** %49, i32 %48 ; [#uses=1]
+ %51 = load i8** %50 ; [#uses=1]
+ %52 = getelementptr inbounds i8* %51, i32 2 ; [#uses=1]
+ store i8* %52, i8** %filename, align 4
+ %53 = load i8** %filename, align 4 ; [#uses=1]
+ %54 = load i8* %53 ; [#uses=1]
+ %55 = sext i8 %54 to i32 ; [#uses=1]
+ %56 = icmp eq i32 %55, 0 ; [#uses=1]
+ br i1 %56, label %57, label %63
+
+; <label>:57 ; preds = %47
+ %58 = load i32* %i, align 4 ; [#uses=1]
+ %59 = add nsw i32 %58, 1 ; [#uses=2]
+ store i32 %59, i32* %i, align 4
+ %60 = load i8*** %3, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds i8** %60, i32 %59 ; [#uses=1]
+ %62 = load i8** %61 ; [#uses=1]
+ store i8* %62, i8** %filename, align 4
+ br label %63
+
+; <label>:63 ; preds = %57, %47
+ %64 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %65 = load i8** %filename, align 4 ; [#uses=1]
+ %66 = call i32 @_Z9dolibraryP9lua_StatePKc(%struct.lua_State* %64, i8* %65) ; [#uses=1]
+ %67 = icmp ne i32 %66, 0 ; [#uses=1]
+ br i1 %67, label %68, label %69
+
+; <label>:68 ; preds = %63
+ store i32 1, i32* %1
+ br label %76
+
+; <label>:69 ; preds = %63
+ br label %71
+
+; <label>:70 ; preds = %16
+ br label %71
+
+; <label>:71 ; preds = %70, %69, %46
+ br label %72
+
+; <label>:72 ; preds = %71, %15
+ %73 = load i32* %i, align 4 ; [#uses=1]
+ %74 = add nsw i32 %73, 1 ; [#uses=1]
+ store i32 %74, i32* %i, align 4
+ br label %5
+
+; <label>:75 ; preds = %5
+ store i32 0, i32* %1
+ br label %76
+
+; <label>:76 ; preds = %75, %68, %45
+ %77 = load i32* %1 ; [#uses=1]
+ ret i32 %77
+}
+
+; [#uses=1]
+define internal i32 @_Z13handle_scriptP9lua_StatePPci(%struct.lua_State* %L, i8** %argv, i32 %n) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %2 = alloca i8**, align 4 ; [#uses=4]
+ %3 = alloca i32, align 4 ; [#uses=4]
+ %status = alloca i32, align 4 ; [#uses=4]
+ %fname = alloca i8*, align 4 ; [#uses=4]
+ %narg = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8** %argv, i8*** %2, align 4
+ store i32 %n, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i8*** %2, align 4 ; [#uses=1]
+ %6 = load i32* %3, align 4 ; [#uses=1]
+ %7 = call i32 @_Z7getargsP9lua_StatePPci(%struct.lua_State* %4, i8** %5, i32 %6) ; [#uses=1]
+ store i32 %7, i32* %narg, align 4
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %8, i32 -10002, i8* getelementptr inbounds ([4 x i8]* @.str16, i32 0, i32 0))
+ %9 = load i32* %3, align 4 ; [#uses=1]
+ %10 = load i8*** %2, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds i8** %10, i32 %9 ; [#uses=1]
+ %12 = load i8** %11 ; [#uses=1]
+ store i8* %12, i8** %fname, align 4
+ %13 = load i8** %fname, align 4 ; [#uses=1]
+ %14 = call i32 @strcmp(i8* %13, i8* getelementptr inbounds ([2 x i8]* @.str17, i32 0, i32 0)) nounwind readonly ; [#uses=1]
+ %15 = icmp eq i32 %14, 0 ; [#uses=1]
+ br i1 %15, label %16, label %25
+
+; <label>:16 ; preds = %0
+ %17 = load i32* %3, align 4 ; [#uses=1]
+ %18 = sub nsw i32 %17, 1 ; [#uses=1]
+ %19 = load i8*** %2, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds i8** %19, i32 %18 ; [#uses=1]
+ %21 = load i8** %20 ; [#uses=1]
+ %22 = call i32 @strcmp(i8* %21, i8* getelementptr inbounds ([3 x i8]* @.str18, i32 0, i32 0)) nounwind readonly ; [#uses=1]
+ %23 = icmp ne i32 %22, 0 ; [#uses=1]
+ br i1 %23, label %24, label %25
+
+; <label>:24 ; preds = %16
+ store i8* null, i8** %fname, align 4
+ br label %25
+
+; <label>:25 ; preds = %24, %16, %0
+ %26 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %27 = load i8** %fname, align 4 ; [#uses=1]
+ %28 = call i32 @_Z13luaL_loadfileP9lua_StatePKc(%struct.lua_State* %26, i8* %27) ; [#uses=1]
+ store i32 %28, i32* %status, align 4
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %30 = load i32* %narg, align 4 ; [#uses=1]
+ %31 = add nsw i32 %30, 1 ; [#uses=1]
+ %32 = sub nsw i32 0, %31 ; [#uses=1]
+ call void @_Z10lua_insertP9lua_Statei(%struct.lua_State* %29, i32 %32)
+ %33 = load i32* %status, align 4 ; [#uses=1]
+ %34 = icmp eq i32 %33, 0 ; [#uses=1]
+ br i1 %34, label %35, label %39
+
+; <label>:35 ; preds = %25
+ %36 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %37 = load i32* %narg, align 4 ; [#uses=1]
+ %38 = call i32 @_Z6docallP9lua_Stateii(%struct.lua_State* %36, i32 %37, i32 0) ; [#uses=1]
+ store i32 %38, i32* %status, align 4
+ br label %44
+
+; <label>:39 ; preds = %25
+ %40 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %41 = load i32* %narg, align 4 ; [#uses=1]
+ %42 = sub nsw i32 0, %41 ; [#uses=1]
+ %43 = sub nsw i32 %42, 1 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %40, i32 %43)
+ br label %44
+
+; <label>:44 ; preds = %39, %35
+ %45 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %46 = load i32* %status, align 4 ; [#uses=1]
+ %47 = call i32 @_Z6reportP9lua_Statei(%struct.lua_State* %45, i32 %46) ; [#uses=1]
+ ret i32 %47
+}
+
+; [#uses=2]
+define internal void @_Z5dottyP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=12]
+ %status = alloca i32, align 4 ; [#uses=5]
+ %oldprogname = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load i8** @_ZL8progname, align 4 ; [#uses=1]
+ store i8* %2, i8** %oldprogname, align 4
+ store i8* null, i8** @_ZL8progname, align 4
+ br label %3
+
+; <label>:3 ; preds = %39, %0
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z8loadlineP9lua_State(%struct.lua_State* %4) ; [#uses=2]
+ store i32 %5, i32* %status, align 4
+ %6 = icmp ne i32 %5, -1 ; [#uses=1]
+ br i1 %6, label %7, label %40
+
+; <label>:7 ; preds = %3
+ %8 = load i32* %status, align 4 ; [#uses=1]
+ %9 = icmp eq i32 %8, 0 ; [#uses=1]
+ br i1 %9, label %10, label %13
+
+; <label>:10 ; preds = %7
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = call i32 @_Z6docallP9lua_Stateii(%struct.lua_State* %11, i32 0, i32 0) ; [#uses=1]
+ store i32 %12, i32* %status, align 4
+ br label %13
+
+; <label>:13 ; preds = %10, %7
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = load i32* %status, align 4 ; [#uses=1]
+ %16 = call i32 @_Z6reportP9lua_Statei(%struct.lua_State* %14, i32 %15) ; [#uses=0]
+ %17 = load i32* %status, align 4 ; [#uses=1]
+ %18 = icmp eq i32 %17, 0 ; [#uses=1]
+ br i1 %18, label %19, label %39
+
+; <label>:19 ; preds = %13
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %21 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %20) ; [#uses=1]
+ %22 = icmp sgt i32 %21, 0 ; [#uses=1]
+ br i1 %22, label %23, label %39
+
+; <label>:23 ; preds = %19
+ %24 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %24, i32 -10002, i8* getelementptr inbounds ([6 x i8]* @.str3, i32 0, i32 0))
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_insertP9lua_Statei(%struct.lua_State* %25, i32 1)
+ %26 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %28 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %27) ; [#uses=1]
+ %29 = sub nsw i32 %28, 1 ; [#uses=1]
+ %30 = call i32 @_Z9lua_pcallP9lua_Stateiii(%struct.lua_State* %26, i32 %29, i32 0, i32 0) ; [#uses=1]
+ %31 = icmp ne i32 %30, 0 ; [#uses=1]
+ br i1 %31, label %32, label %38
+
+; <label>:32 ; preds = %23
+ %33 = load i8** @_ZL8progname, align 4 ; [#uses=1]
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %35 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %36 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %35, i32 -1, i32* null) ; [#uses=1]
+ %37 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %34, i8* getelementptr inbounds ([27 x i8]* @.str4, i32 0, i32 0), i8* %36) ; [#uses=1]
+ call void @_Z9l_messagePKcS0_(i8* %33, i8* %37)
+ br label %38
+
+; <label>:38 ; preds = %32, %23
+ br label %39
+
+; <label>:39 ; preds = %38, %19, %13
+ br label %3
+
+; <label>:40 ; preds = %3
+ %41 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %41, i32 0)
+ %42 = load %struct._IO_FILE** @stdout, align 4 ; [#uses=1]
+ %43 = call i32 @fputs(i8* getelementptr inbounds ([2 x i8]* @.str5, i32 0, i32 0), %struct._IO_FILE* %42) ; [#uses=0]
+ %44 = load %struct._IO_FILE** @stdout, align 4 ; [#uses=1]
+ %45 = call i32 @fflush(%struct._IO_FILE* %44) ; [#uses=0]
+ %46 = load i8** %oldprogname, align 4 ; [#uses=1]
+ store i8* %46, i8** @_ZL8progname, align 4
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z8loadlineP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=12]
+ %status = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %3, i32 0)
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z8pushlineP9lua_Statei(%struct.lua_State* %4, i32 1) ; [#uses=1]
+ %6 = icmp ne i32 %5, 0 ; [#uses=1]
+ br i1 %6, label %8, label %7
+
+; <label>:7 ; preds = %0
+ store i32 -1, i32* %1
+ br label %33
+
+; <label>:8 ; preds = %0
+ br label %9
+
+; <label>:9 ; preds = %26, %8
+ %10 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %11 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %12 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %11, i32 1, i32* null) ; [#uses=1]
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = call i32 @_Z10lua_objlenP9lua_Statei(%struct.lua_State* %13, i32 1) ; [#uses=1]
+ %15 = call i32 @_Z15luaL_loadbufferP9lua_StatePKcjS2_(%struct.lua_State* %10, i8* %12, i32 %14, i8* getelementptr inbounds ([7 x i8]* @.str9, i32 0, i32 0)) ; [#uses=1]
+ store i32 %15, i32* %status, align 4
+ %16 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %17 = load i32* %status, align 4 ; [#uses=1]
+ %18 = call i32 @_Z10incompleteP9lua_Statei(%struct.lua_State* %16, i32 %17) ; [#uses=1]
+ %19 = icmp ne i32 %18, 0 ; [#uses=1]
+ br i1 %19, label %21, label %20
+
+; <label>:20 ; preds = %9
+ br label %30
+
+; <label>:21 ; preds = %9
+ %22 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %23 = call i32 @_Z8pushlineP9lua_Statei(%struct.lua_State* %22, i32 0) ; [#uses=1]
+ %24 = icmp ne i32 %23, 0 ; [#uses=1]
+ br i1 %24, label %26, label %25
+
+; <label>:25 ; preds = %21
+ store i32 -1, i32* %1
+ br label %33
+
+; <label>:26 ; preds = %21
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %27, i8* getelementptr inbounds ([2 x i8]* @.str5, i32 0, i32 0), i32 1)
+ %28 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_insertP9lua_Statei(%struct.lua_State* %28, i32 -2)
+ %29 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_concatP9lua_Statei(%struct.lua_State* %29, i32 3)
+ br label %9
+
+; <label>:30 ; preds = %20
+ %31 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_removeP9lua_Statei(%struct.lua_State* %31, i32 1)
+ %32 = load i32* %status, align 4 ; [#uses=1]
+ store i32 %32, i32* %1
+ br label %33
+
+; <label>:33 ; preds = %30, %25, %7
+ %34 = load i32* %1 ; [#uses=1]
+ ret i32 %34
+}
+
+; [#uses=5]
+define internal i32 @_Z6docallP9lua_Stateii(%struct.lua_State* %L, i32 %narg, i32 %clear) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %status = alloca i32, align 4 ; [#uses=3]
+ %base = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %narg, i32* %2, align 4
+ store i32 %clear, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %4) ; [#uses=1]
+ %6 = load i32* %2, align 4 ; [#uses=1]
+ %7 = sub nsw i32 %5, %6 ; [#uses=1]
+ store i32 %7, i32* %base, align 4
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z16lua_pushcclosureP9lua_StatePFiS0_Ei(%struct.lua_State* %8, i32 (%struct.lua_State*)* @_Z9tracebackP9lua_State, i32 0)
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = load i32* %base, align 4 ; [#uses=1]
+ call void @_Z10lua_insertP9lua_Statei(%struct.lua_State* %9, i32 %10)
+ %11 = call void (i32)* (i32, void (i32)*)* @signal(i32 2, void (i32)* @_Z7lactioni) nounwind ; [#uses=0]
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = load i32* %2, align 4 ; [#uses=1]
+ %14 = load i32* %3, align 4 ; [#uses=1]
+ %15 = icmp ne i32 %14, 0 ; [#uses=1]
+ br i1 %15, label %16, label %17
+
+; <label>:16 ; preds = %0
+ br label %18
+
+; <label>:17 ; preds = %0
+ br label %18
+
+; <label>:18 ; preds = %17, %16
+ %19 = phi i32 [ 0, %16 ], [ -1, %17 ] ; [#uses=1]
+ %20 = load i32* %base, align 4 ; [#uses=1]
+ %21 = call i32 @_Z9lua_pcallP9lua_Stateiii(%struct.lua_State* %12, i32 %13, i32 %19, i32 %20) ; [#uses=1]
+ store i32 %21, i32* %status, align 4
+ %22 = call void (i32)* (i32, void (i32)*)* @signal(i32 2, void (i32)* null) nounwind ; [#uses=0]
+ %23 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %24 = load i32* %base, align 4 ; [#uses=1]
+ call void @_Z10lua_removeP9lua_Statei(%struct.lua_State* %23, i32 %24)
+ %25 = load i32* %status, align 4 ; [#uses=1]
+ %26 = icmp ne i32 %25, 0 ; [#uses=1]
+ br i1 %26, label %27, label %30
+
+; <label>:27 ; preds = %18
+ %28 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %29 = call i32 @_Z6lua_gcP9lua_Stateii(%struct.lua_State* %28, i32 2, i32 0) ; [#uses=0]
+ br label %30
+
+; <label>:30 ; preds = %27, %18
+ %31 = load i32* %status, align 4 ; [#uses=1]
+ ret i32 %31
+}
+
+; [#uses=8]
+declare i32 @fputs(i8*, %struct._IO_FILE*)
+
+; [#uses=6]
+declare i32 @fflush(%struct._IO_FILE*)
+
+; [#uses=1]
+define internal i32 @_Z9tracebackP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=5]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=11]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i32 @_Z12lua_isstringP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = icmp ne i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %7, label %6
+
+; <label>:6 ; preds = %0
+ store i32 1, i32* %1
+ br label %25
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %8, i32 -10002, i8* getelementptr inbounds ([6 x i8]* @.str7, i32 0, i32 0))
+ %9 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %10 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %9, i32 -1) ; [#uses=1]
+ %11 = icmp eq i32 %10, 5 ; [#uses=1]
+ br i1 %11, label %14, label %12
+
+; <label>:12 ; preds = %7
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %13, i32 -2)
+ store i32 1, i32* %1
+ br label %25
+
+; <label>:14 ; preds = %7
+ %15 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %15, i32 -1, i8* getelementptr inbounds ([10 x i8]* @.str8, i32 0, i32 0))
+ %16 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %17 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %16, i32 -1) ; [#uses=1]
+ %18 = icmp eq i32 %17, 6 ; [#uses=1]
+ br i1 %18, label %21, label %19
+
+; <label>:19 ; preds = %14
+ %20 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %20, i32 -3)
+ store i32 1, i32* %1
+ br label %25
+
+; <label>:21 ; preds = %14
+ %22 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %22, i32 1)
+ %23 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %23, i32 2)
+ %24 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z8lua_callP9lua_Stateii(%struct.lua_State* %24, i32 2, i32 1)
+ store i32 1, i32* %1
+ br label %25
+
+; <label>:25 ; preds = %21, %19, %12, %6
+ %26 = load i32* %1 ; [#uses=1]
+ ret i32 %26
+}
+
+; [#uses=3]
+declare void (i32)* @signal(i32, void (i32)*) nounwind
+
+; [#uses=1]
+define internal void @_Z7lactioni(i32 %i) {
+ %1 = alloca i32, align 4 ; [#uses=2]
+ store i32 %i, i32* %1, align 4
+ %2 = load i32* %1, align 4 ; [#uses=1]
+ %3 = call void (i32)* (i32, void (i32)*)* @signal(i32 %2, void (i32)* null) nounwind ; [#uses=0]
+ %4 = load %struct.lua_State** @_ZL7globalL, align 4 ; [#uses=1]
+ %5 = call i32 @_Z11lua_sethookP9lua_StatePFvS0_P9lua_DebugEii(%struct.lua_State* %4, void (%struct.lua_State*, %struct.lua_Debug*)* @_Z5lstopP9lua_StateP9lua_Debug, i32 11, i32 1) ; [#uses=0]
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z5lstopP9lua_StateP9lua_Debug(%struct.lua_State* %L, %struct.lua_Debug* %ar) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_Debug*, align 4 ; [#uses=1]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_Debug* %ar, %struct.lua_Debug** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call i32 @_Z11lua_sethookP9lua_StatePFvS0_P9lua_DebugEii(%struct.lua_State* %3, void (%struct.lua_State*, %struct.lua_Debug*)* null, i32 0, i32 0) ; [#uses=0]
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %5, i8* getelementptr inbounds ([13 x i8]* @.str6, i32 0, i32 0)) ; [#uses=0]
+ ret void
+}
+
+; [#uses=2]
+define internal i32 @_Z8pushlineP9lua_Statei(%struct.lua_State* %L, i32 %firstline) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %buffer = alloca [512 x i8], align 1 ; [#uses=1]
+ %b = alloca i8*, align 4 ; [#uses=8]
+ %l = alloca i32, align 4 ; [#uses=4]
+ %prmt = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %firstline, i32* %3, align 4
+ %4 = getelementptr inbounds [512 x i8]* %buffer, i32 0, i32 0 ; [#uses=1]
+ store i8* %4, i8** %b, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = load i32* %3, align 4 ; [#uses=1]
+ %7 = call i8* @_Z10get_promptP9lua_Statei(%struct.lua_State* %5, i32 %6) ; [#uses=1]
+ store i8* %7, i8** %prmt, align 4
+ %8 = load i8** %prmt, align 4 ; [#uses=1]
+ %9 = load %struct._IO_FILE** @stdout, align 4 ; [#uses=1]
+ %10 = call i32 @fputs(i8* %8, %struct._IO_FILE* %9) ; [#uses=0]
+ %11 = load %struct._IO_FILE** @stdout, align 4 ; [#uses=1]
+ %12 = call i32 @fflush(%struct._IO_FILE* %11) ; [#uses=0]
+ %13 = load i8** %b, align 4 ; [#uses=1]
+ %14 = load %struct._IO_FILE** @stdin, align 4 ; [#uses=1]
+ %15 = call i8* @fgets(i8* %13, i32 512, %struct._IO_FILE* %14) ; [#uses=1]
+ %16 = icmp ne i8* %15, null ; [#uses=1]
+ %17 = zext i1 %16 to i32 ; [#uses=1]
+ %18 = icmp eq i32 %17, 0 ; [#uses=1]
+ br i1 %18, label %19, label %20
+
+; <label>:19 ; preds = %0
+ store i32 0, i32* %1
+ br label %56
+
+; <label>:20 ; preds = %0
+ %21 = load i8** %b, align 4 ; [#uses=1]
+ %22 = call i32 @strlen(i8* %21) ; [#uses=1]
+ store i32 %22, i32* %l, align 4
+ %23 = load i32* %l, align 4 ; [#uses=1]
+ %24 = icmp ugt i32 %23, 0 ; [#uses=1]
+ br i1 %24, label %25, label %38
+
+; <label>:25 ; preds = %20
+ %26 = load i32* %l, align 4 ; [#uses=1]
+ %27 = sub i32 %26, 1 ; [#uses=1]
+ %28 = load i8** %b, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds i8* %28, i32 %27 ; [#uses=1]
+ %30 = load i8* %29 ; [#uses=1]
+ %31 = sext i8 %30 to i32 ; [#uses=1]
+ %32 = icmp eq i32 %31, 10 ; [#uses=1]
+ br i1 %32, label %33, label %38
+
+; <label>:33 ; preds = %25
+ %34 = load i32* %l, align 4 ; [#uses=1]
+ %35 = sub i32 %34, 1 ; [#uses=1]
+ %36 = load i8** %b, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds i8* %36, i32 %35 ; [#uses=1]
+ store i8 0, i8* %37
+ br label %38
+
+; <label>:38 ; preds = %33, %25, %20
+ %39 = load i32* %3, align 4 ; [#uses=1]
+ %40 = icmp ne i32 %39, 0 ; [#uses=1]
+ br i1 %40, label %41, label %52
+
+; <label>:41 ; preds = %38
+ %42 = load i8** %b, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds i8* %42, i32 0 ; [#uses=1]
+ %44 = load i8* %43 ; [#uses=1]
+ %45 = sext i8 %44 to i32 ; [#uses=1]
+ %46 = icmp eq i32 %45, 61 ; [#uses=1]
+ br i1 %46, label %47, label %52
+
+; <label>:47 ; preds = %41
+ %48 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %49 = load i8** %b, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds i8* %49, i32 1 ; [#uses=1]
+ %51 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %48, i8* getelementptr inbounds ([10 x i8]* @.str11, i32 0, i32 0), i8* %50) ; [#uses=0]
+ br label %55
+
+; <label>:52 ; preds = %41, %38
+ %53 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %54 = load i8** %b, align 4 ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %53, i8* %54)
+ br label %55
+
+; <label>:55 ; preds = %52, %47
+ store i32 1, i32* %1
+ br label %56
+
+; <label>:56 ; preds = %55, %19
+ %57 = load i32* %1 ; [#uses=1]
+ ret i32 %57
+}
+
+; [#uses=1]
+define internal i32 @_Z10incompleteP9lua_Statei(%struct.lua_State* %L, i32 %status) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %lmsg = alloca i32, align 4 ; [#uses=2]
+ %msg = alloca i8*, align 4 ; [#uses=3]
+ %tp = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %status, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = icmp eq i32 %4, 3 ; [#uses=1]
+ br i1 %5, label %6, label %20
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %8 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %7, i32 -1, i32* %lmsg) ; [#uses=1]
+ store i8* %8, i8** %msg, align 4
+ %9 = load i8** %msg, align 4 ; [#uses=1]
+ %10 = load i32* %lmsg, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds i8* %9, i32 %10 ; [#uses=1]
+ %12 = getelementptr inbounds i8* %11, i32 -7 ; [#uses=1]
+ store i8* %12, i8** %tp, align 4
+ %13 = load i8** %msg, align 4 ; [#uses=1]
+ %14 = call i8* @strstr(i8* %13, i8* getelementptr inbounds ([8 x i8]* @.str10, i32 0, i32 0)) ; [#uses=1]
+ %15 = load i8** %tp, align 4 ; [#uses=1]
+ %16 = icmp eq i8* %14, %15 ; [#uses=1]
+ br i1 %16, label %17, label %19
+
+; <label>:17 ; preds = %6
+ %18 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %18, i32 -2)
+ store i32 1, i32* %1
+ br label %21
+
+; <label>:19 ; preds = %6
+ br label %20
+
+; <label>:20 ; preds = %19, %0
+ store i32 0, i32* %1
+ br label %21
+
+; <label>:21 ; preds = %20, %17
+ %22 = load i32* %1 ; [#uses=1]
+ ret i32 %22
+}
+
+; [#uses=2]
+declare i8* @strstr(i8*, i8*) nounwind readonly
+
+; [#uses=1]
+define internal i8* @_Z10get_promptP9lua_Statei(%struct.lua_State* %L, i32 %firstline) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %p = alloca i8*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %firstline, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = icmp ne i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %6, label %7
+
+; <label>:6 ; preds = %0
+ br label %8
+
+; <label>:7 ; preds = %0
+ br label %8
+
+; <label>:8 ; preds = %7, %6
+ %9 = phi i8* [ getelementptr inbounds ([8 x i8]* @.str12, i32 0, i32 0), %6 ], [ getelementptr inbounds ([9 x i8]* @.str13, i32 0, i32 0), %7 ] ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %3, i32 -10002, i8* %9)
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %10, i32 -1, i32* null) ; [#uses=1]
+ store i8* %11, i8** %p, align 4
+ %12 = load i8** %p, align 4 ; [#uses=1]
+ %13 = icmp eq i8* %12, null ; [#uses=1]
+ br i1 %13, label %14, label %21
+
+; <label>:14 ; preds = %8
+ %15 = load i32* %2, align 4 ; [#uses=1]
+ %16 = icmp ne i32 %15, 0 ; [#uses=1]
+ br i1 %16, label %17, label %18
+
+; <label>:17 ; preds = %14
+ br label %19
+
+; <label>:18 ; preds = %14
+ br label %19
+
+; <label>:19 ; preds = %18, %17
+ %20 = phi i8* [ getelementptr inbounds ([3 x i8]* @.str14, i32 0, i32 0), %17 ], [ getelementptr inbounds ([4 x i8]* @.str15, i32 0, i32 0), %18 ] ; [#uses=1]
+ store i8* %20, i8** %p, align 4
+ br label %21
+
+; <label>:21 ; preds = %19, %8
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %22, i32 -2)
+ %23 = load i8** %p, align 4 ; [#uses=1]
+ ret i8* %23
+}
+
+; [#uses=3]
+declare i8* @fgets(i8*, i32, %struct._IO_FILE*)
+
+; [#uses=23]
+declare i32 @strlen(i8*) nounwind readonly
+
+; [#uses=1]
+define internal i32 @_Z7getargsP9lua_StatePPci(%struct.lua_State* %L, i8** %argv, i32 %n) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %2 = alloca i8**, align 4 ; [#uses=4]
+ %3 = alloca i32, align 4 ; [#uses=5]
+ %narg = alloca i32, align 4 ; [#uses=4]
+ %i = alloca i32, align 4 ; [#uses=11]
+ %argc = alloca i32, align 4 ; [#uses=7]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8** %argv, i8*** %2, align 4
+ store i32 %n, i32* %3, align 4
+ store i32 0, i32* %argc, align 4
+ br label %4
+
+; <label>:4 ; preds = %10, %0
+ %5 = load i32* %argc, align 4 ; [#uses=1]
+ %6 = load i8*** %2, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds i8** %6, i32 %5 ; [#uses=1]
+ %8 = load i8** %7 ; [#uses=1]
+ %9 = icmp ne i8* %8, null ; [#uses=1]
+ br i1 %9, label %10, label %13
+
+; <label>:10 ; preds = %4
+ %11 = load i32* %argc, align 4 ; [#uses=1]
+ %12 = add nsw i32 %11, 1 ; [#uses=1]
+ store i32 %12, i32* %argc, align 4
+ br label %4
+
+; <label>:13 ; preds = %4
+ %14 = load i32* %argc, align 4 ; [#uses=1]
+ %15 = load i32* %3, align 4 ; [#uses=1]
+ %16 = add nsw i32 %15, 1 ; [#uses=1]
+ %17 = sub nsw i32 %14, %16 ; [#uses=1]
+ store i32 %17, i32* %narg, align 4
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = load i32* %narg, align 4 ; [#uses=1]
+ %20 = add nsw i32 %19, 3 ; [#uses=1]
+ call void @_Z15luaL_checkstackP9lua_StateiPKc(%struct.lua_State* %18, i32 %20, i8* getelementptr inbounds ([29 x i8]* @.str19, i32 0, i32 0))
+ %21 = load i32* %3, align 4 ; [#uses=1]
+ %22 = add nsw i32 %21, 1 ; [#uses=1]
+ store i32 %22, i32* %i, align 4
+ br label %23
+
+; <label>:23 ; preds = %33, %13
+ %24 = load i32* %i, align 4 ; [#uses=1]
+ %25 = load i32* %argc, align 4 ; [#uses=1]
+ %26 = icmp slt i32 %24, %25 ; [#uses=1]
+ br i1 %26, label %27, label %36
+
+; <label>:27 ; preds = %23
+ %28 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %29 = load i32* %i, align 4 ; [#uses=1]
+ %30 = load i8*** %2, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds i8** %30, i32 %29 ; [#uses=1]
+ %32 = load i8** %31 ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %28, i8* %32)
+ br label %33
+
+; <label>:33 ; preds = %27
+ %34 = load i32* %i, align 4 ; [#uses=1]
+ %35 = add nsw i32 %34, 1 ; [#uses=1]
+ store i32 %35, i32* %i, align 4
+ br label %23
+
+; <label>:36 ; preds = %23
+ %37 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %38 = load i32* %narg, align 4 ; [#uses=1]
+ %39 = load i32* %3, align 4 ; [#uses=1]
+ %40 = add nsw i32 %39, 1 ; [#uses=1]
+ call void @_Z15lua_createtableP9lua_Stateii(%struct.lua_State* %37, i32 %38, i32 %40)
+ store i32 0, i32* %i, align 4
+ br label %41
+
+; <label>:41 ; preds = %55, %36
+ %42 = load i32* %i, align 4 ; [#uses=1]
+ %43 = load i32* %argc, align 4 ; [#uses=1]
+ %44 = icmp slt i32 %42, %43 ; [#uses=1]
+ br i1 %44, label %45, label %58
+
+; <label>:45 ; preds = %41
+ %46 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %47 = load i32* %i, align 4 ; [#uses=1]
+ %48 = load i8*** %2, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds i8** %48, i32 %47 ; [#uses=1]
+ %50 = load i8** %49 ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %46, i8* %50)
+ %51 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %52 = load i32* %i, align 4 ; [#uses=1]
+ %53 = load i32* %3, align 4 ; [#uses=1]
+ %54 = sub nsw i32 %52, %53 ; [#uses=1]
+ call void @_Z11lua_rawsetiP9lua_Stateii(%struct.lua_State* %51, i32 -2, i32 %54)
+ br label %55
+
+; <label>:55 ; preds = %45
+ %56 = load i32* %i, align 4 ; [#uses=1]
+ %57 = add nsw i32 %56, 1 ; [#uses=1]
+ store i32 %57, i32* %i, align 4
+ br label %41
+
+; <label>:58 ; preds = %41
+ %59 = load i32* %narg, align 4 ; [#uses=1]
+ ret i32 %59
+}
+
+; [#uses=6]
+declare i32 @strcmp(i8*, i8*) nounwind readonly
+
+; [#uses=2]
+define internal i32 @_Z8dostringP9lua_StatePKcS2_(%struct.lua_State* %L, i8* %s, i8* %name) {
+; <label>:0
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i8*, align 4 ; [#uses=3]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ %status = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %s, i8** %2, align 4
+ store i8* %name, i8** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i8** %2, align 4 ; [#uses=1]
+ %6 = load i8** %2, align 4 ; [#uses=1]
+ %7 = call i32 @strlen(i8* %6) ; [#uses=1]
+ %8 = load i8** %3, align 4 ; [#uses=1]
+ %9 = call i32 @_Z15luaL_loadbufferP9lua_StatePKcjS2_(%struct.lua_State* %4, i8* %5, i32 %7, i8* %8) ; [#uses=1]
+ %10 = icmp ne i32 %9, 0 ; [#uses=1]
+ br i1 %10, label %15, label %11
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = call i32 @_Z6docallP9lua_Stateii(%struct.lua_State* %12, i32 0, i32 1) ; [#uses=1]
+ %14 = icmp ne i32 %13, 0 ; [#uses=1]
+ br label %15
+
+; <label>:15 ; preds = %11, %0
+ %16 = phi i1 [ true, %0 ], [ %14, %11 ] ; [#uses=1]
+ %17 = zext i1 %16 to i32 ; [#uses=1]
+ store i32 %17, i32* %status, align 4
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = load i32* %status, align 4 ; [#uses=1]
+ %20 = call i32 @_Z6reportP9lua_Statei(%struct.lua_State* %18, i32 %19) ; [#uses=1]
+ ret i32 %20
+}
+
+; [#uses=1]
+define internal i32 @_Z9dolibraryP9lua_StatePKc(%struct.lua_State* %L, i8* %name) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %name, i8** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %3, i32 -10002, i8* getelementptr inbounds ([8 x i8]* @.str21, i32 0, i32 0))
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i8** %2, align 4 ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %4, i8* %5)
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = call i32 @_Z6docallP9lua_Stateii(%struct.lua_State* %7, i32 1, i32 1) ; [#uses=1]
+ %9 = call i32 @_Z6reportP9lua_Statei(%struct.lua_State* %6, i32 %8) ; [#uses=1]
+ ret i32 %9
+}
+
+; [#uses=5]
+declare i32 @fprintf(%struct._IO_FILE*, i8*, ...)
+
+; [#uses=3]
+declare i8* @getenv(i8*) nounwind
+
+; [#uses=1]
+define internal i32 @_Z6dofileP9lua_StatePKc(%struct.lua_State* %L, i8* %name) {
+; <label>:0
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %status = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %name, i8** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i8** %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z13luaL_loadfileP9lua_StatePKc(%struct.lua_State* %3, i8* %4) ; [#uses=1]
+ %6 = icmp ne i32 %5, 0 ; [#uses=1]
+ br i1 %6, label %11, label %7
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = call i32 @_Z6docallP9lua_Stateii(%struct.lua_State* %8, i32 0, i32 1) ; [#uses=1]
+ %10 = icmp ne i32 %9, 0 ; [#uses=1]
+ br label %11
+
+; <label>:11 ; preds = %7, %0
+ %12 = phi i1 [ true, %0 ], [ %10, %7 ] ; [#uses=1]
+ %13 = zext i1 %12 to i32 ; [#uses=1]
+ store i32 %13, i32* %status, align 4
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = load i32* %status, align 4 ; [#uses=1]
+ %16 = call i32 @_Z6reportP9lua_Statei(%struct.lua_State* %14, i32 %15) ; [#uses=1]
+ ret i32 %16
+}
+
+; [#uses=1]
+define hidden void @_Z15luaA_pushobjectP9lua_StatePK10lua_TValue(%struct.lua_State* %L, %struct.lua_TValue* %o) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %o, %struct.lua_TValue** %2, align 4
+ %3 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %3, %struct.lua_TValue** %o2, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 4 ; [#uses=1]
+ %6 = load %struct.lua_TValue** %5, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %6, %struct.lua_TValue** %o1, align 4
+ %7 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_TValue* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_TValue* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = bitcast %union.anon* %8 to i8* ; [#uses=1]
+ %12 = bitcast %union.anon* %10 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %11, i8* %12, i32 8, i32 4, i1 false)
+ %13 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_TValue* %13, i32 0, i32 1 ; [#uses=1]
+ %15 = load i32* %14, align 4 ; [#uses=1]
+ %16 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_TValue* %16, i32 0, i32 1 ; [#uses=1]
+ store i32 %15, i32* %17, align 4
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_State* %18, i32 0, i32 4 ; [#uses=2]
+ %20 = load %struct.lua_TValue** %19, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_TValue* %20, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %21, %struct.lua_TValue** %19, align 4
+ ret void
+}
+
+; [#uses=68]
+declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind
+
+; [#uses=4]
+define i32 @_Z14lua_checkstackP9lua_Statei(%struct.lua_State* %L, i32 %size) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=10]
+ %2 = alloca i32, align 4 ; [#uses=8]
+ %res = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %size, i32* %2, align 4
+ store i32 1, i32* %res, align 4
+ %3 = load i32* %2, align 4 ; [#uses=1]
+ %4 = icmp sgt i32 %3, 8000 ; [#uses=1]
+ br i1 %4, label %19, label %5
+
+; <label>:5 ; preds = %0
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 4 ; [#uses=1]
+ %8 = load %struct.lua_TValue** %7, align 4 ; [#uses=1]
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_State* %9, i32 0, i32 5 ; [#uses=1]
+ %11 = load %struct.lua_TValue** %10, align 4 ; [#uses=1]
+ %12 = ptrtoint %struct.lua_TValue* %8 to i32 ; [#uses=1]
+ %13 = ptrtoint %struct.lua_TValue* %11 to i32 ; [#uses=1]
+ %14 = sub i32 %12, %13 ; [#uses=1]
+ %15 = sdiv exact i32 %14, 12 ; [#uses=1]
+ %16 = load i32* %2, align 4 ; [#uses=1]
+ %17 = add nsw i32 %15, %16 ; [#uses=1]
+ %18 = icmp sgt i32 %17, 8000 ; [#uses=1]
+ br i1 %18, label %19, label %20
+
+; <label>:19 ; preds = %5, %0
+ store i32 0, i32* %res, align 4
+ br label %66
+
+; <label>:20 ; preds = %5
+ %21 = load i32* %2, align 4 ; [#uses=1]
+ %22 = icmp sgt i32 %21, 0 ; [#uses=1]
+ br i1 %22, label %23, label %65
+
+; <label>:23 ; preds = %20
+ %24 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.lua_State* %24, i32 0, i32 9 ; [#uses=1]
+ %26 = load %struct.lua_TValue** %25, align 4 ; [#uses=1]
+ %27 = bitcast %struct.lua_TValue* %26 to i8* ; [#uses=1]
+ %28 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_State* %28, i32 0, i32 4 ; [#uses=1]
+ %30 = load %struct.lua_TValue** %29, align 4 ; [#uses=1]
+ %31 = bitcast %struct.lua_TValue* %30 to i8* ; [#uses=1]
+ %32 = ptrtoint i8* %27 to i32 ; [#uses=1]
+ %33 = ptrtoint i8* %31 to i32 ; [#uses=1]
+ %34 = sub i32 %32, %33 ; [#uses=1]
+ %35 = load i32* %2, align 4 ; [#uses=1]
+ %36 = mul nsw i32 %35, 12 ; [#uses=1]
+ %37 = icmp sle i32 %34, %36 ; [#uses=1]
+ br i1 %37, label %38, label %41
+
+; <label>:38 ; preds = %23
+ %39 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %40 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %39, i32 %40)
+ br label %42
+
+; <label>:41 ; preds = %23
+ br label %42
+
+; <label>:42 ; preds = %41, %38
+ %43 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.lua_State* %43, i32 0, i32 7 ; [#uses=1]
+ %45 = load %struct.CallInfo** %44, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.CallInfo* %45, i32 0, i32 2 ; [#uses=1]
+ %47 = load %struct.lua_TValue** %46, align 4 ; [#uses=1]
+ %48 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.lua_State* %48, i32 0, i32 4 ; [#uses=1]
+ %50 = load %struct.lua_TValue** %49, align 4 ; [#uses=1]
+ %51 = load i32* %2, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.lua_TValue* %50, i32 %51 ; [#uses=1]
+ %53 = icmp ult %struct.lua_TValue* %47, %52 ; [#uses=1]
+ br i1 %53, label %54, label %64
+
+; <label>:54 ; preds = %42
+ %55 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.lua_State* %55, i32 0, i32 4 ; [#uses=1]
+ %57 = load %struct.lua_TValue** %56, align 4 ; [#uses=1]
+ %58 = load i32* %2, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.lua_TValue* %57, i32 %58 ; [#uses=1]
+ %60 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.lua_State* %60, i32 0, i32 7 ; [#uses=1]
+ %62 = load %struct.CallInfo** %61, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.CallInfo* %62, i32 0, i32 2 ; [#uses=1]
+ store %struct.lua_TValue* %59, %struct.lua_TValue** %63, align 4
+ br label %64
+
+; <label>:64 ; preds = %54, %42
+ br label %65
+
+; <label>:65 ; preds = %64, %20
+ br label %66
+
+; <label>:66 ; preds = %65, %19
+ %67 = load i32* %res, align 4 ; [#uses=1]
+ ret i32 %67
+}
+
+; [#uses=8]
+define void @_Z9lua_xmoveP9lua_StateS0_i(%struct.lua_State* %from, %struct.lua_State* %to, i32 %n) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %i = alloca i32, align 4 ; [#uses=5]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %from, %struct.lua_State** %1, align 4
+ store %struct.lua_State* %to, %struct.lua_State** %2, align 4
+ store i32 %n, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = icmp eq %struct.lua_State* %4, %5 ; [#uses=1]
+ br i1 %6, label %7, label %8
+
+; <label>:7 ; preds = %0
+ br label %43
+
+; <label>:8 ; preds = %0
+ %9 = load i32* %3, align 4 ; [#uses=1]
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_State* %10, i32 0, i32 4 ; [#uses=2]
+ %12 = load %struct.lua_TValue** %11, align 4 ; [#uses=1]
+ %13 = sub i32 0, %9 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_TValue* %12, i32 %13 ; [#uses=1]
+ store %struct.lua_TValue* %14, %struct.lua_TValue** %11, align 4
+ store i32 0, i32* %i, align 4
+ br label %15
+
+; <label>:15 ; preds = %40, %8
+ %16 = load i32* %i, align 4 ; [#uses=1]
+ %17 = load i32* %3, align 4 ; [#uses=1]
+ %18 = icmp slt i32 %16, %17 ; [#uses=1]
+ br i1 %18, label %19, label %43
+
+; <label>:19 ; preds = %15
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_State* %20, i32 0, i32 4 ; [#uses=1]
+ %22 = load %struct.lua_TValue** %21, align 4 ; [#uses=1]
+ %23 = load i32* %i, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_TValue* %22, i32 %23 ; [#uses=1]
+ store %struct.lua_TValue* %24, %struct.lua_TValue** %o2, align 4
+ %25 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_State* %25, i32 0, i32 4 ; [#uses=2]
+ %27 = load %struct.lua_TValue** %26, align 4 ; [#uses=2]
+ %28 = getelementptr inbounds %struct.lua_TValue* %27, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %28, %struct.lua_TValue** %26, align 4
+ store %struct.lua_TValue* %27, %struct.lua_TValue** %o1, align 4
+ %29 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_TValue* %29, i32 0, i32 0 ; [#uses=1]
+ %31 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_TValue* %31, i32 0, i32 0 ; [#uses=1]
+ %33 = bitcast %union.anon* %30 to i8* ; [#uses=1]
+ %34 = bitcast %union.anon* %32 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %33, i8* %34, i32 8, i32 4, i1 false)
+ %35 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.lua_TValue* %35, i32 0, i32 1 ; [#uses=1]
+ %37 = load i32* %36, align 4 ; [#uses=1]
+ %38 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.lua_TValue* %38, i32 0, i32 1 ; [#uses=1]
+ store i32 %37, i32* %39, align 4
+ br label %40
+
+; <label>:40 ; preds = %19
+ %41 = load i32* %i, align 4 ; [#uses=1]
+ %42 = add nsw i32 %41, 1 ; [#uses=1]
+ store i32 %42, i32* %i, align 4
+ br label %15
+
+; <label>:43 ; preds = %15, %7
+ ret void
+}
+
+; [#uses=1]
+define void @_Z12lua_setlevelP9lua_StateS0_(%struct.lua_State* %from, %struct.lua_State* %to) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %from, %struct.lua_State** %1, align 4
+ store %struct.lua_State* %to, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 15 ; [#uses=1]
+ %5 = load i16* %4, align 2 ; [#uses=1]
+ %6 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 15 ; [#uses=1]
+ store i16 %5, i16* %7, align 2
+ ret void
+}
+
+; [#uses=1]
+define i32 (%struct.lua_State*)* @_Z11lua_atpanicP9lua_StatePFiS0_E(%struct.lua_State* %L, i32 (%struct.lua_State*)* %panicf) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i32 (%struct.lua_State*)*, align 4 ; [#uses=2]
+ %old = alloca i32 (%struct.lua_State*)*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 (%struct.lua_State*)* %panicf, i32 (%struct.lua_State*)** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 6 ; [#uses=1]
+ %5 = load %struct.global_State** %4, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.global_State* %5, i32 0, i32 19 ; [#uses=1]
+ %7 = load i32 (%struct.lua_State*)** %6, align 4 ; [#uses=1]
+ store i32 (%struct.lua_State*)* %7, i32 (%struct.lua_State*)** %old, align 4
+ %8 = load i32 (%struct.lua_State*)** %2, align 4 ; [#uses=1]
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_State* %9, i32 0, i32 6 ; [#uses=1]
+ %11 = load %struct.global_State** %10, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.global_State* %11, i32 0, i32 19 ; [#uses=1]
+ store i32 (%struct.lua_State*)* %8, i32 (%struct.lua_State*)** %12, align 4
+ %13 = load i32 (%struct.lua_State*)** %old, align 4 ; [#uses=1]
+ ret i32 (%struct.lua_State*)* %13
+}
+
+; [#uses=1]
+define %struct.lua_State* @_Z13lua_newthreadP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %L1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 6 ; [#uses=1]
+ %4 = load %struct.global_State** %3, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.global_State* %4, i32 0, i32 14 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_State* %7, i32 0, i32 6 ; [#uses=1]
+ %9 = load %struct.global_State** %8, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.global_State* %9, i32 0, i32 13 ; [#uses=1]
+ %11 = load i32* %10, align 4 ; [#uses=1]
+ %12 = icmp uge i32 %6, %11 ; [#uses=1]
+ br i1 %12, label %13, label %15
+
+; <label>:13 ; preds = %0
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9luaC_stepP9lua_State(%struct.lua_State* %14)
+ br label %15
+
+; <label>:15 ; preds = %13, %0
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = call %struct.lua_State* @_Z14luaE_newthreadP9lua_State(%struct.lua_State* %16) ; [#uses=1]
+ store %struct.lua_State* %17, %struct.lua_State** %L1, align 4
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_State* %18, i32 0, i32 4 ; [#uses=1]
+ %20 = load %struct.lua_TValue** %19, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %20, %struct.lua_TValue** %i_o, align 4
+ %21 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %22 = bitcast %struct.lua_State* %21 to %union.GCObject* ; [#uses=1]
+ %23 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_TValue* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = getelementptr inbounds %union.anon* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = bitcast double* %25 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %22, %union.GCObject** %26, align 4
+ %27 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_TValue* %27, i32 0, i32 1 ; [#uses=1]
+ store i32 8, i32* %28, align 4
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_State* %29, i32 0, i32 4 ; [#uses=2]
+ %31 = load %struct.lua_TValue** %30, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_TValue* %31, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %32, %struct.lua_TValue** %30, align 4
+ %33 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ ret %struct.lua_State* %33
+}
+
+; [#uses=32]
+define i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %L) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 4 ; [#uses=1]
+ %4 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.lua_State* %5, i32 0, i32 5 ; [#uses=1]
+ %7 = load %struct.lua_TValue** %6, align 4 ; [#uses=1]
+ %8 = ptrtoint %struct.lua_TValue* %4 to i32 ; [#uses=1]
+ %9 = ptrtoint %struct.lua_TValue* %7 to i32 ; [#uses=1]
+ %10 = sub i32 %8, %9 ; [#uses=1]
+ %11 = sdiv exact i32 %10, 12 ; [#uses=1]
+ ret i32 %11
+}
+
+; [#uses=68]
+define void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %L, i32 %idx) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %2 = alloca i32, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load i32* %2, align 4 ; [#uses=1]
+ %4 = icmp sge i32 %3, 0 ; [#uses=1]
+ br i1 %4, label %5, label %30
+
+; <label>:5 ; preds = %0
+ br label %6
+
+; <label>:6 ; preds = %16, %5
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_State* %7, i32 0, i32 4 ; [#uses=1]
+ %9 = load %struct.lua_TValue** %8, align 4 ; [#uses=1]
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_State* %10, i32 0, i32 5 ; [#uses=1]
+ %12 = load %struct.lua_TValue** %11, align 4 ; [#uses=1]
+ %13 = load i32* %2, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_TValue* %12, i32 %13 ; [#uses=1]
+ %15 = icmp ult %struct.lua_TValue* %9, %14 ; [#uses=1]
+ br i1 %15, label %16, label %22
+
+; <label>:16 ; preds = %6
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_State* %17, i32 0, i32 4 ; [#uses=2]
+ %19 = load %struct.lua_TValue** %18, align 4 ; [#uses=2]
+ %20 = getelementptr inbounds %struct.lua_TValue* %19, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %20, %struct.lua_TValue** %18, align 4
+ %21 = getelementptr inbounds %struct.lua_TValue* %19, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %21, align 4
+ br label %6
+
+; <label>:22 ; preds = %6
+ %23 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_State* %23, i32 0, i32 5 ; [#uses=1]
+ %25 = load %struct.lua_TValue** %24, align 4 ; [#uses=1]
+ %26 = load i32* %2, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_TValue* %25, i32 %26 ; [#uses=1]
+ %28 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_State* %28, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %27, %struct.lua_TValue** %29, align 4
+ br label %37
+
+; <label>:30 ; preds = %0
+ %31 = load i32* %2, align 4 ; [#uses=1]
+ %32 = add nsw i32 %31, 1 ; [#uses=1]
+ %33 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_State* %33, i32 0, i32 4 ; [#uses=2]
+ %35 = load %struct.lua_TValue** %34, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.lua_TValue* %35, i32 %32 ; [#uses=1]
+ store %struct.lua_TValue* %36, %struct.lua_TValue** %34, align 4
+ br label %37
+
+; <label>:37 ; preds = %30, %22
+ ret void
+}
+
+; [#uses=13]
+define void @_Z10lua_removeP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %p = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %p, align 4
+ br label %6
+
+; <label>:6 ; preds = %13, %0
+ %7 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_TValue* %7, i32 1 ; [#uses=2]
+ store %struct.lua_TValue* %8, %struct.lua_TValue** %p, align 4
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_State* %9, i32 0, i32 4 ; [#uses=1]
+ %11 = load %struct.lua_TValue** %10, align 4 ; [#uses=1]
+ %12 = icmp ult %struct.lua_TValue* %8, %11 ; [#uses=1]
+ br i1 %12, label %13, label %28
+
+; <label>:13 ; preds = %6
+ %14 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %14, %struct.lua_TValue** %o2, align 4
+ %15 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %16, %struct.lua_TValue** %o1, align 4
+ %17 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_TValue* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_TValue* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = bitcast %union.anon* %18 to i8* ; [#uses=1]
+ %22 = bitcast %union.anon* %20 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %21, i8* %22, i32 8, i32 4, i1 false)
+ %23 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_TValue* %23, i32 0, i32 1 ; [#uses=1]
+ %25 = load i32* %24, align 4 ; [#uses=1]
+ %26 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_TValue* %26, i32 0, i32 1 ; [#uses=1]
+ store i32 %25, i32* %27, align 4
+ br label %6
+
+; <label>:28 ; preds = %6
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_State* %29, i32 0, i32 4 ; [#uses=2]
+ %31 = load %struct.lua_TValue** %30, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_TValue* %31, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %32, %struct.lua_TValue** %30, align 4
+ ret void
+}
+
+; [#uses=40]
+define internal %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %L, i32 %idx) nounwind {
+ %1 = alloca %struct.lua_TValue*, align 4 ; [#uses=8]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=10]
+ %3 = alloca i32, align 4 ; [#uses=10]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %func = alloca %union.Closure*, align 4 ; [#uses=2]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %func1 = alloca %union.Closure*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %idx, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = icmp sgt i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %6, label %21
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_State* %7, i32 0, i32 5 ; [#uses=1]
+ %9 = load %struct.lua_TValue** %8, align 4 ; [#uses=1]
+ %10 = load i32* %3, align 4 ; [#uses=1]
+ %11 = sub nsw i32 %10, 1 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %9, i32 %11 ; [#uses=1]
+ store %struct.lua_TValue* %12, %struct.lua_TValue** %o, align 4
+ %13 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %14 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_State* %14, i32 0, i32 4 ; [#uses=1]
+ %16 = load %struct.lua_TValue** %15, align 4 ; [#uses=1]
+ %17 = icmp uge %struct.lua_TValue* %13, %16 ; [#uses=1]
+ br i1 %17, label %18, label %19
+
+; <label>:18 ; preds = %6
+ store %struct.lua_TValue* bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*), %struct.lua_TValue** %1
+ br label %98
+
+; <label>:19 ; preds = %6
+ %20 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %20, %struct.lua_TValue** %1
+ br label %98
+
+; <label>:21 ; preds = %0
+ %22 = load i32* %3, align 4 ; [#uses=1]
+ %23 = icmp sgt i32 %22, -10000 ; [#uses=1]
+ br i1 %23, label %24, label %30
+
+; <label>:24 ; preds = %21
+ %25 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_State* %25, i32 0, i32 4 ; [#uses=1]
+ %27 = load %struct.lua_TValue** %26, align 4 ; [#uses=1]
+ %28 = load i32* %3, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_TValue* %27, i32 %28 ; [#uses=1]
+ store %struct.lua_TValue* %29, %struct.lua_TValue** %1
+ br label %98
+
+; <label>:30 ; preds = %21
+ %31 = load i32* %3, align 4 ; [#uses=1]
+ switch i32 %31, label %67 [
+ i32 -10000, label %32
+ i32 -10001, label %37
+ i32 -10002, label %64
+ ]
+
+; <label>:32 ; preds = %30
+ %33 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_State* %33, i32 0, i32 6 ; [#uses=1]
+ %35 = load %struct.global_State** %34, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.global_State* %35, i32 0, i32 20 ; [#uses=1]
+ store %struct.lua_TValue* %36, %struct.lua_TValue** %1
+ br label %98
+
+; <label>:37 ; preds = %30
+ %38 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.lua_State* %38, i32 0, i32 7 ; [#uses=1]
+ %40 = load %struct.CallInfo** %39, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.CallInfo* %40, i32 0, i32 1 ; [#uses=1]
+ %42 = load %struct.lua_TValue** %41, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.lua_TValue* %42, i32 0, i32 0 ; [#uses=1]
+ %44 = getelementptr inbounds %union.anon* %43, i32 0, i32 0 ; [#uses=1]
+ %45 = bitcast double* %44 to %union.GCObject** ; [#uses=1]
+ %46 = load %union.GCObject** %45, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %union.GCObject* %46, i32 0, i32 0 ; [#uses=1]
+ %48 = bitcast %struct.lua_State* %47 to %union.Closure* ; [#uses=1]
+ store %union.Closure* %48, %union.Closure** %func, align 4
+ %49 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.lua_State* %49, i32 0, i32 23 ; [#uses=1]
+ store %struct.lua_TValue* %50, %struct.lua_TValue** %i_o, align 4
+ %51 = load %union.Closure** %func, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %union.Closure* %51, i32 0, i32 0 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.CClosure* %52, i32 0, i32 6 ; [#uses=1]
+ %54 = load %struct.Table** %53, align 4 ; [#uses=1]
+ %55 = bitcast %struct.Table* %54 to %union.GCObject* ; [#uses=1]
+ %56 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.lua_TValue* %56, i32 0, i32 0 ; [#uses=1]
+ %58 = getelementptr inbounds %union.anon* %57, i32 0, i32 0 ; [#uses=1]
+ %59 = bitcast double* %58 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %55, %union.GCObject** %59, align 4
+ %60 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.lua_TValue* %60, i32 0, i32 1 ; [#uses=1]
+ store i32 5, i32* %61, align 4
+ %62 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.lua_State* %62, i32 0, i32 23 ; [#uses=1]
+ store %struct.lua_TValue* %63, %struct.lua_TValue** %1
+ br label %98
+
+; <label>:64 ; preds = %30
+ %65 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.lua_State* %65, i32 0, i32 22 ; [#uses=1]
+ store %struct.lua_TValue* %66, %struct.lua_TValue** %1
+ br label %98
+
+; <label>:67 ; preds = %30
+ %68 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.lua_State* %68, i32 0, i32 7 ; [#uses=1]
+ %70 = load %struct.CallInfo** %69, align 4 ; [#uses=1]
+ %71 = getelementptr inbounds %struct.CallInfo* %70, i32 0, i32 1 ; [#uses=1]
+ %72 = load %struct.lua_TValue** %71, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.lua_TValue* %72, i32 0, i32 0 ; [#uses=1]
+ %74 = getelementptr inbounds %union.anon* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = bitcast double* %74 to %union.GCObject** ; [#uses=1]
+ %76 = load %union.GCObject** %75, align 4 ; [#uses=1]
+ %77 = getelementptr inbounds %union.GCObject* %76, i32 0, i32 0 ; [#uses=1]
+ %78 = bitcast %struct.lua_State* %77 to %union.Closure* ; [#uses=1]
+ store %union.Closure* %78, %union.Closure** %func1, align 4
+ %79 = load i32* %3, align 4 ; [#uses=1]
+ %80 = sub nsw i32 -10002, %79 ; [#uses=1]
+ store i32 %80, i32* %3, align 4
+ %81 = load i32* %3, align 4 ; [#uses=1]
+ %82 = load %union.Closure** %func1, align 4 ; [#uses=1]
+ %83 = getelementptr inbounds %union.Closure* %82, i32 0, i32 0 ; [#uses=1]
+ %84 = getelementptr inbounds %struct.CClosure* %83, i32 0, i32 4 ; [#uses=1]
+ %85 = load i8* %84, align 1 ; [#uses=1]
+ %86 = zext i8 %85 to i32 ; [#uses=1]
+ %87 = icmp sle i32 %81, %86 ; [#uses=1]
+ br i1 %87, label %88, label %95
+
+; <label>:88 ; preds = %67
+ %89 = load i32* %3, align 4 ; [#uses=1]
+ %90 = sub nsw i32 %89, 1 ; [#uses=1]
+ %91 = load %union.Closure** %func1, align 4 ; [#uses=1]
+ %92 = getelementptr inbounds %union.Closure* %91, i32 0, i32 0 ; [#uses=1]
+ %93 = getelementptr inbounds %struct.CClosure* %92, i32 0, i32 8 ; [#uses=1]
+ %94 = getelementptr inbounds [1 x %struct.lua_TValue]* %93, i32 0, i32 %90 ; [#uses=1]
+ br label %96
+
+; <label>:95 ; preds = %67
+ br label %96
+
+; <label>:96 ; preds = %95, %88
+ %97 = phi %struct.lua_TValue* [ %94, %88 ], [ bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*), %95 ] ; [#uses=1]
+ store %struct.lua_TValue* %97, %struct.lua_TValue** %1
+ br label %98
+
+; <label>:98 ; preds = %96, %64, %37, %32, %24, %19, %18
+ %99 = load %struct.lua_TValue** %1 ; [#uses=1]
+ ret %struct.lua_TValue* %99
+}
+
+; [#uses=15]
+define void @_Z10lua_insertP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %p = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %q = alloca %struct.lua_TValue*, align 4 ; [#uses=6]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o21 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o12 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %p, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 4 ; [#uses=1]
+ %8 = load %struct.lua_TValue** %7, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %8, %struct.lua_TValue** %q, align 4
+ br label %9
+
+; <label>:9 ; preds = %28, %0
+ %10 = load %struct.lua_TValue** %q, align 4 ; [#uses=1]
+ %11 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ %12 = icmp ugt %struct.lua_TValue* %10, %11 ; [#uses=1]
+ br i1 %12, label %13, label %31
+
+; <label>:13 ; preds = %9
+ %14 = load %struct.lua_TValue** %q, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_TValue* %14, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %15, %struct.lua_TValue** %o2, align 4
+ %16 = load %struct.lua_TValue** %q, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %16, %struct.lua_TValue** %o1, align 4
+ %17 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_TValue* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_TValue* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = bitcast %union.anon* %18 to i8* ; [#uses=1]
+ %22 = bitcast %union.anon* %20 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %21, i8* %22, i32 8, i32 4, i1 false)
+ %23 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_TValue* %23, i32 0, i32 1 ; [#uses=1]
+ %25 = load i32* %24, align 4 ; [#uses=1]
+ %26 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_TValue* %26, i32 0, i32 1 ; [#uses=1]
+ store i32 %25, i32* %27, align 4
+ br label %28
+
+; <label>:28 ; preds = %13
+ %29 = load %struct.lua_TValue** %q, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_TValue* %29, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %30, %struct.lua_TValue** %q, align 4
+ br label %9
+
+; <label>:31 ; preds = %9
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_State* %32, i32 0, i32 4 ; [#uses=1]
+ %34 = load %struct.lua_TValue** %33, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %34, %struct.lua_TValue** %o21, align 4
+ %35 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %35, %struct.lua_TValue** %o12, align 4
+ %36 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.lua_TValue* %36, i32 0, i32 0 ; [#uses=1]
+ %38 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.lua_TValue* %38, i32 0, i32 0 ; [#uses=1]
+ %40 = bitcast %union.anon* %37 to i8* ; [#uses=1]
+ %41 = bitcast %union.anon* %39 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %40, i8* %41, i32 8, i32 4, i1 false)
+ %42 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.lua_TValue* %42, i32 0, i32 1 ; [#uses=1]
+ %44 = load i32* %43, align 4 ; [#uses=1]
+ %45 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.lua_TValue* %45, i32 0, i32 1 ; [#uses=1]
+ store i32 %44, i32* %46, align 4
+ ret void
+}
+
+; [#uses=5]
+define void @_Z11lua_replaceP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=19]
+ %2 = alloca i32, align 4 ; [#uses=5]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %func = alloca %union.Closure*, align 4 ; [#uses=4]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load i32* %2, align 4 ; [#uses=1]
+ %4 = icmp eq i32 %3, -10001 ; [#uses=1]
+ br i1 %4, label %5, label %15
+
+; <label>:5 ; preds = %0
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 7 ; [#uses=1]
+ %8 = load %struct.CallInfo** %7, align 4 ; [#uses=1]
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_State* %9, i32 0, i32 12 ; [#uses=1]
+ %11 = load %struct.CallInfo** %10, align 4 ; [#uses=1]
+ %12 = icmp eq %struct.CallInfo* %8, %11 ; [#uses=1]
+ br i1 %12, label %13, label %15
+
+; <label>:13 ; preds = %5
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %14, i8* getelementptr inbounds ([23 x i8]* @.str28, i32 0, i32 0))
+ br label %15
+
+; <label>:15 ; preds = %13, %5, %0
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = load i32* %2, align 4 ; [#uses=1]
+ %18 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %16, i32 %17) ; [#uses=1]
+ store %struct.lua_TValue* %18, %struct.lua_TValue** %o, align 4
+ %19 = load i32* %2, align 4 ; [#uses=1]
+ %20 = icmp eq i32 %19, -10001 ; [#uses=1]
+ br i1 %20, label %21, label %92
+
+; <label>:21 ; preds = %15
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_State* %22, i32 0, i32 7 ; [#uses=1]
+ %24 = load %struct.CallInfo** %23, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.CallInfo* %24, i32 0, i32 1 ; [#uses=1]
+ %26 = load %struct.lua_TValue** %25, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_TValue* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = getelementptr inbounds %union.anon* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = bitcast double* %28 to %union.GCObject** ; [#uses=1]
+ %30 = load %union.GCObject** %29, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %union.GCObject* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = bitcast %struct.lua_State* %31 to %union.Closure* ; [#uses=1]
+ store %union.Closure* %32, %union.Closure** %func, align 4
+ %33 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_State* %33, i32 0, i32 4 ; [#uses=1]
+ %35 = load %struct.lua_TValue** %34, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.lua_TValue* %35, i32 -1 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.lua_TValue* %36, i32 0, i32 0 ; [#uses=1]
+ %38 = getelementptr inbounds %union.anon* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = bitcast double* %38 to %union.GCObject** ; [#uses=1]
+ %40 = load %union.GCObject** %39, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %union.GCObject* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = bitcast %struct.lua_State* %41 to %struct.Table* ; [#uses=1]
+ %43 = load %union.Closure** %func, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %union.Closure* %43, i32 0, i32 0 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.CClosure* %44, i32 0, i32 6 ; [#uses=1]
+ store %struct.Table* %42, %struct.Table** %45, align 4
+ %46 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.lua_State* %46, i32 0, i32 4 ; [#uses=1]
+ %48 = load %struct.lua_TValue** %47, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.lua_TValue* %48, i32 -1 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.lua_TValue* %49, i32 0, i32 1 ; [#uses=1]
+ %51 = load i32* %50, align 4 ; [#uses=1]
+ %52 = icmp sge i32 %51, 4 ; [#uses=1]
+ br i1 %52, label %53, label %91
+
+; <label>:53 ; preds = %21
+ %54 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.lua_State* %54, i32 0, i32 4 ; [#uses=1]
+ %56 = load %struct.lua_TValue** %55, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.lua_TValue* %56, i32 -1 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.lua_TValue* %57, i32 0, i32 0 ; [#uses=1]
+ %59 = getelementptr inbounds %union.anon* %58, i32 0, i32 0 ; [#uses=1]
+ %60 = bitcast double* %59 to %union.GCObject** ; [#uses=1]
+ %61 = load %union.GCObject** %60, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds %union.GCObject* %61, i32 0, i32 0 ; [#uses=1]
+ %63 = bitcast %struct.lua_State* %62 to %struct.GCheader* ; [#uses=1]
+ %64 = getelementptr inbounds %struct.GCheader* %63, i32 0, i32 2 ; [#uses=1]
+ %65 = load i8* %64, align 1 ; [#uses=1]
+ %66 = zext i8 %65 to i32 ; [#uses=1]
+ %67 = and i32 %66, 3 ; [#uses=1]
+ %68 = icmp ne i32 %67, 0 ; [#uses=1]
+ br i1 %68, label %69, label %91
+
+; <label>:69 ; preds = %53
+ %70 = load %union.Closure** %func, align 4 ; [#uses=1]
+ %71 = bitcast %union.Closure* %70 to %union.GCObject* ; [#uses=1]
+ %72 = getelementptr inbounds %union.GCObject* %71, i32 0, i32 0 ; [#uses=1]
+ %73 = bitcast %struct.lua_State* %72 to %struct.GCheader* ; [#uses=1]
+ %74 = getelementptr inbounds %struct.GCheader* %73, i32 0, i32 2 ; [#uses=1]
+ %75 = load i8* %74, align 1 ; [#uses=1]
+ %76 = zext i8 %75 to i32 ; [#uses=1]
+ %77 = and i32 %76, 4 ; [#uses=1]
+ %78 = icmp ne i32 %77, 0 ; [#uses=1]
+ br i1 %78, label %79, label %91
+
+; <label>:79 ; preds = %69
+ %80 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %81 = load %union.Closure** %func, align 4 ; [#uses=1]
+ %82 = bitcast %union.Closure* %81 to %union.GCObject* ; [#uses=1]
+ %83 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %84 = getelementptr inbounds %struct.lua_State* %83, i32 0, i32 4 ; [#uses=1]
+ %85 = load %struct.lua_TValue** %84, align 4 ; [#uses=1]
+ %86 = getelementptr inbounds %struct.lua_TValue* %85, i32 -1 ; [#uses=1]
+ %87 = getelementptr inbounds %struct.lua_TValue* %86, i32 0, i32 0 ; [#uses=1]
+ %88 = getelementptr inbounds %union.anon* %87, i32 0, i32 0 ; [#uses=1]
+ %89 = bitcast double* %88 to %union.GCObject** ; [#uses=1]
+ %90 = load %union.GCObject** %89, align 4 ; [#uses=1]
+ call void @_Z13luaC_barrierfP9lua_StateP8GCObjectS2_(%struct.lua_State* %80, %union.GCObject* %82, %union.GCObject* %90)
+ br label %91
+
+; <label>:91 ; preds = %79, %69, %53, %21
+ br label %179
+
+; <label>:92 ; preds = %15
+ %93 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %94 = getelementptr inbounds %struct.lua_State* %93, i32 0, i32 4 ; [#uses=1]
+ %95 = load %struct.lua_TValue** %94, align 4 ; [#uses=1]
+ %96 = getelementptr inbounds %struct.lua_TValue* %95, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %96, %struct.lua_TValue** %o2, align 4
+ %97 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %97, %struct.lua_TValue** %o1, align 4
+ %98 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %99 = getelementptr inbounds %struct.lua_TValue* %98, i32 0, i32 0 ; [#uses=1]
+ %100 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %101 = getelementptr inbounds %struct.lua_TValue* %100, i32 0, i32 0 ; [#uses=1]
+ %102 = bitcast %union.anon* %99 to i8* ; [#uses=1]
+ %103 = bitcast %union.anon* %101 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %102, i8* %103, i32 8, i32 4, i1 false)
+ %104 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %105 = getelementptr inbounds %struct.lua_TValue* %104, i32 0, i32 1 ; [#uses=1]
+ %106 = load i32* %105, align 4 ; [#uses=1]
+ %107 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %108 = getelementptr inbounds %struct.lua_TValue* %107, i32 0, i32 1 ; [#uses=1]
+ store i32 %106, i32* %108, align 4
+ %109 = load i32* %2, align 4 ; [#uses=1]
+ %110 = icmp slt i32 %109, -10002 ; [#uses=1]
+ br i1 %110, label %111, label %178
+
+; <label>:111 ; preds = %92
+ %112 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %113 = getelementptr inbounds %struct.lua_State* %112, i32 0, i32 4 ; [#uses=1]
+ %114 = load %struct.lua_TValue** %113, align 4 ; [#uses=1]
+ %115 = getelementptr inbounds %struct.lua_TValue* %114, i32 -1 ; [#uses=1]
+ %116 = getelementptr inbounds %struct.lua_TValue* %115, i32 0, i32 1 ; [#uses=1]
+ %117 = load i32* %116, align 4 ; [#uses=1]
+ %118 = icmp sge i32 %117, 4 ; [#uses=1]
+ br i1 %118, label %119, label %177
+
+; <label>:119 ; preds = %111
+ %120 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %121 = getelementptr inbounds %struct.lua_State* %120, i32 0, i32 4 ; [#uses=1]
+ %122 = load %struct.lua_TValue** %121, align 4 ; [#uses=1]
+ %123 = getelementptr inbounds %struct.lua_TValue* %122, i32 -1 ; [#uses=1]
+ %124 = getelementptr inbounds %struct.lua_TValue* %123, i32 0, i32 0 ; [#uses=1]
+ %125 = getelementptr inbounds %union.anon* %124, i32 0, i32 0 ; [#uses=1]
+ %126 = bitcast double* %125 to %union.GCObject** ; [#uses=1]
+ %127 = load %union.GCObject** %126, align 4 ; [#uses=1]
+ %128 = getelementptr inbounds %union.GCObject* %127, i32 0, i32 0 ; [#uses=1]
+ %129 = bitcast %struct.lua_State* %128 to %struct.GCheader* ; [#uses=1]
+ %130 = getelementptr inbounds %struct.GCheader* %129, i32 0, i32 2 ; [#uses=1]
+ %131 = load i8* %130, align 1 ; [#uses=1]
+ %132 = zext i8 %131 to i32 ; [#uses=1]
+ %133 = and i32 %132, 3 ; [#uses=1]
+ %134 = icmp ne i32 %133, 0 ; [#uses=1]
+ br i1 %134, label %135, label %177
+
+; <label>:135 ; preds = %119
+ %136 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %137 = getelementptr inbounds %struct.lua_State* %136, i32 0, i32 7 ; [#uses=1]
+ %138 = load %struct.CallInfo** %137, align 4 ; [#uses=1]
+ %139 = getelementptr inbounds %struct.CallInfo* %138, i32 0, i32 1 ; [#uses=1]
+ %140 = load %struct.lua_TValue** %139, align 4 ; [#uses=1]
+ %141 = getelementptr inbounds %struct.lua_TValue* %140, i32 0, i32 0 ; [#uses=1]
+ %142 = getelementptr inbounds %union.anon* %141, i32 0, i32 0 ; [#uses=1]
+ %143 = bitcast double* %142 to %union.GCObject** ; [#uses=1]
+ %144 = load %union.GCObject** %143, align 4 ; [#uses=1]
+ %145 = getelementptr inbounds %union.GCObject* %144, i32 0, i32 0 ; [#uses=1]
+ %146 = bitcast %struct.lua_State* %145 to %union.Closure* ; [#uses=1]
+ %147 = bitcast %union.Closure* %146 to %union.GCObject* ; [#uses=1]
+ %148 = getelementptr inbounds %union.GCObject* %147, i32 0, i32 0 ; [#uses=1]
+ %149 = bitcast %struct.lua_State* %148 to %struct.GCheader* ; [#uses=1]
+ %150 = getelementptr inbounds %struct.GCheader* %149, i32 0, i32 2 ; [#uses=1]
+ %151 = load i8* %150, align 1 ; [#uses=1]
+ %152 = zext i8 %151 to i32 ; [#uses=1]
+ %153 = and i32 %152, 4 ; [#uses=1]
+ %154 = icmp ne i32 %153, 0 ; [#uses=1]
+ br i1 %154, label %155, label %177
+
+; <label>:155 ; preds = %135
+ %156 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %157 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %158 = getelementptr inbounds %struct.lua_State* %157, i32 0, i32 7 ; [#uses=1]
+ %159 = load %struct.CallInfo** %158, align 4 ; [#uses=1]
+ %160 = getelementptr inbounds %struct.CallInfo* %159, i32 0, i32 1 ; [#uses=1]
+ %161 = load %struct.lua_TValue** %160, align 4 ; [#uses=1]
+ %162 = getelementptr inbounds %struct.lua_TValue* %161, i32 0, i32 0 ; [#uses=1]
+ %163 = getelementptr inbounds %union.anon* %162, i32 0, i32 0 ; [#uses=1]
+ %164 = bitcast double* %163 to %union.GCObject** ; [#uses=1]
+ %165 = load %union.GCObject** %164, align 4 ; [#uses=1]
+ %166 = getelementptr inbounds %union.GCObject* %165, i32 0, i32 0 ; [#uses=1]
+ %167 = bitcast %struct.lua_State* %166 to %union.Closure* ; [#uses=1]
+ %168 = bitcast %union.Closure* %167 to %union.GCObject* ; [#uses=1]
+ %169 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %170 = getelementptr inbounds %struct.lua_State* %169, i32 0, i32 4 ; [#uses=1]
+ %171 = load %struct.lua_TValue** %170, align 4 ; [#uses=1]
+ %172 = getelementptr inbounds %struct.lua_TValue* %171, i32 -1 ; [#uses=1]
+ %173 = getelementptr inbounds %struct.lua_TValue* %172, i32 0, i32 0 ; [#uses=1]
+ %174 = getelementptr inbounds %union.anon* %173, i32 0, i32 0 ; [#uses=1]
+ %175 = bitcast double* %174 to %union.GCObject** ; [#uses=1]
+ %176 = load %union.GCObject** %175, align 4 ; [#uses=1]
+ call void @_Z13luaC_barrierfP9lua_StateP8GCObjectS2_(%struct.lua_State* %156, %union.GCObject* %168, %union.GCObject* %176)
+ br label %177
+
+; <label>:177 ; preds = %155, %135, %119, %111
+ br label %178
+
+; <label>:178 ; preds = %177, %92
+ br label %179
+
+; <label>:179 ; preds = %178, %91
+ %180 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %181 = getelementptr inbounds %struct.lua_State* %180, i32 0, i32 4 ; [#uses=2]
+ %182 = load %struct.lua_TValue** %181, align 4 ; [#uses=1]
+ %183 = getelementptr inbounds %struct.lua_TValue* %182, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %183, %struct.lua_TValue** %181, align 4
+ ret void
+}
+
+; [#uses=60]
+define void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %o2, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 4 ; [#uses=1]
+ %8 = load %struct.lua_TValue** %7, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %8, %struct.lua_TValue** %o1, align 4
+ %9 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_TValue* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = bitcast %union.anon* %10 to i8* ; [#uses=1]
+ %14 = bitcast %union.anon* %12 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %13, i8* %14, i32 8, i32 4, i1 false)
+ %15 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 0, i32 1 ; [#uses=1]
+ %17 = load i32* %16, align 4 ; [#uses=1]
+ %18 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_TValue* %18, i32 0, i32 1 ; [#uses=1]
+ store i32 %17, i32* %19, align 4
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_State* %20, i32 0, i32 4 ; [#uses=2]
+ %22 = load %struct.lua_TValue** %21, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_TValue* %22, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %23, %struct.lua_TValue** %21, align 4
+ ret void
+}
+
+; [#uses=61]
+define i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %o, align 4
+ %6 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %7 = icmp eq %struct.lua_TValue* %6, bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*) ; [#uses=1]
+ br i1 %7, label %8, label %9
+
+; <label>:8 ; preds = %0
+ br label %13
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_TValue* %10, i32 0, i32 1 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ br label %13
+
+; <label>:13 ; preds = %9, %8
+ %14 = phi i32 [ -1, %8 ], [ %12, %9 ] ; [#uses=1]
+ ret i32 %14
+}
+
+; [#uses=6]
+define i8* @_Z12lua_typenameP9lua_Statei(%struct.lua_State* %L, i32 %t) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=1]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %t, i32* %2, align 4
+ %3 = load i32* %2, align 4 ; [#uses=1]
+ %4 = icmp eq i32 %3, -1 ; [#uses=1]
+ br i1 %4, label %5, label %6
+
+; <label>:5 ; preds = %0
+ br label %10
+
+; <label>:6 ; preds = %0
+ %7 = load i32* %2, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds [0 x i8*]* bitcast ([11 x i8*]* @luaT_typenames to [0 x i8*]*), i32 0, i32 %7 ; [#uses=1]
+ %9 = load i8** %8 ; [#uses=1]
+ br label %10
+
+; <label>:10 ; preds = %6, %5
+ %11 = phi i8* [ getelementptr inbounds ([9 x i8]* @.str129, i32 0, i32 0), %5 ], [ %9, %6 ] ; [#uses=1]
+ ret i8* %11
+}
+
+; [#uses=5]
+define i32 @_Z15lua_iscfunctionP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+; <label>:0
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %o, align 4
+ %6 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_TValue* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = icmp eq i32 %8, 6 ; [#uses=1]
+ br i1 %9, label %10, label %22
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = getelementptr inbounds %union.anon* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = bitcast double* %13 to %union.GCObject** ; [#uses=1]
+ %15 = load %union.GCObject** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %union.GCObject* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = bitcast %struct.lua_State* %16 to %union.Closure* ; [#uses=1]
+ %18 = getelementptr inbounds %union.Closure* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.CClosure* %18, i32 0, i32 3 ; [#uses=1]
+ %20 = load i8* %19, align 1 ; [#uses=1]
+ %21 = icmp ne i8 %20, 0 ; [#uses=1]
+ br label %22
+
+; <label>:22 ; preds = %10, %0
+ %23 = phi i1 [ false, %0 ], [ %21, %10 ] ; [#uses=1]
+ %24 = zext i1 %23 to i32 ; [#uses=1]
+ ret i32 %24
+}
+
+; [#uses=7]
+define i32 @_Z12lua_isnumberP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+; <label>:0
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %n = alloca %struct.lua_TValue, align 4 ; [#uses=1]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %o, align 4
+ %6 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_TValue* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = icmp eq i32 %8, 3 ; [#uses=1]
+ br i1 %9, label %14, label %10
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %12 = call %struct.lua_TValue* @_Z13luaV_tonumberPK10lua_TValuePS_(%struct.lua_TValue* %11, %struct.lua_TValue* %n) ; [#uses=2]
+ store %struct.lua_TValue* %12, %struct.lua_TValue** %o, align 4
+ %13 = icmp ne %struct.lua_TValue* %12, null ; [#uses=1]
+ br label %14
+
+; <label>:14 ; preds = %10, %0
+ %15 = phi i1 [ true, %0 ], [ %13, %10 ] ; [#uses=1]
+ %16 = zext i1 %15 to i32 ; [#uses=1]
+ ret i32 %16
+}
+
+; [#uses=8]
+define i32 @_Z12lua_isstringP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+; <label>:0
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %t = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store i32 %5, i32* %t, align 4
+ %6 = load i32* %t, align 4 ; [#uses=1]
+ %7 = icmp eq i32 %6, 4 ; [#uses=1]
+ br i1 %7, label %11, label %8
+
+; <label>:8 ; preds = %0
+ %9 = load i32* %t, align 4 ; [#uses=1]
+ %10 = icmp eq i32 %9, 3 ; [#uses=1]
+ br label %11
+
+; <label>:11 ; preds = %8, %0
+ %12 = phi i1 [ true, %0 ], [ %10, %8 ] ; [#uses=1]
+ %13 = zext i1 %12 to i32 ; [#uses=1]
+ ret i32 %13
+}
+
+; [#uses=0]
+define i32 @_Z14lua_isuserdataP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+; <label>:0
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %o, align 4
+ %6 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_TValue* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = icmp eq i32 %8, 7 ; [#uses=1]
+ br i1 %9, label %15, label %10
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 1 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ %14 = icmp eq i32 %13, 2 ; [#uses=1]
+ br label %15
+
+; <label>:15 ; preds = %10, %0
+ %16 = phi i1 [ true, %0 ], [ %14, %10 ] ; [#uses=1]
+ %17 = zext i1 %16 to i32 ; [#uses=1]
+ ret i32 %17
+}
+
+; [#uses=3]
+define i32 @_Z12lua_rawequalP9lua_Stateii(%struct.lua_State* %L, i32 %index1, i32 %index2) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %index1, i32* %2, align 4
+ store i32 %index2, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ store %struct.lua_TValue* %6, %struct.lua_TValue** %o1, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load i32* %3, align 4 ; [#uses=1]
+ %9 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %7, i32 %8) ; [#uses=1]
+ store %struct.lua_TValue* %9, %struct.lua_TValue** %o2, align 4
+ %10 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %11 = icmp eq %struct.lua_TValue* %10, bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*) ; [#uses=1]
+ br i1 %11, label %15, label %12
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %14 = icmp eq %struct.lua_TValue* %13, bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*) ; [#uses=1]
+ br i1 %14, label %15, label %16
+
+; <label>:15 ; preds = %12, %0
+ br label %20
+
+; <label>:16 ; preds = %12
+ %17 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %18 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %19 = call i32 @_Z16luaO_rawequalObjPK10lua_TValueS1_(%struct.lua_TValue* %17, %struct.lua_TValue* %18) ; [#uses=1]
+ br label %20
+
+; <label>:20 ; preds = %16, %15
+ %21 = phi i32 [ 0, %15 ], [ %19, %16 ] ; [#uses=1]
+ ret i32 %21
+}
+
+; [#uses=0]
+define i32 @_Z9lua_equalP9lua_Stateii(%struct.lua_State* %L, i32 %index1, i32 %index2) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %i = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %index1, i32* %2, align 4
+ store i32 %index2, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ store %struct.lua_TValue* %6, %struct.lua_TValue** %o1, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load i32* %3, align 4 ; [#uses=1]
+ %9 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %7, i32 %8) ; [#uses=1]
+ store %struct.lua_TValue* %9, %struct.lua_TValue** %o2, align 4
+ %10 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %11 = icmp eq %struct.lua_TValue* %10, bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*) ; [#uses=1]
+ br i1 %11, label %15, label %12
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %14 = icmp eq %struct.lua_TValue* %13, bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*) ; [#uses=1]
+ br i1 %14, label %15, label %16
+
+; <label>:15 ; preds = %12, %0
+ br label %33
+
+; <label>:16 ; preds = %12
+ %17 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_TValue* %17, i32 0, i32 1 ; [#uses=1]
+ %19 = load i32* %18, align 4 ; [#uses=1]
+ %20 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_TValue* %20, i32 0, i32 1 ; [#uses=1]
+ %22 = load i32* %21, align 4 ; [#uses=1]
+ %23 = icmp eq i32 %19, %22 ; [#uses=1]
+ br i1 %23, label %24, label %30
+
+; <label>:24 ; preds = %16
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %26 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %27 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %28 = call i32 @_Z13luaV_equalvalP9lua_StatePK10lua_TValueS3_(%struct.lua_State* %25, %struct.lua_TValue* %26, %struct.lua_TValue* %27) ; [#uses=1]
+ %29 = icmp ne i32 %28, 0 ; [#uses=1]
+ br label %30
+
+; <label>:30 ; preds = %24, %16
+ %31 = phi i1 [ false, %16 ], [ %29, %24 ] ; [#uses=1]
+ %32 = zext i1 %31 to i32 ; [#uses=1]
+ br label %33
+
+; <label>:33 ; preds = %30, %15
+ %34 = phi i32 [ 0, %15 ], [ %32, %30 ] ; [#uses=1]
+ store i32 %34, i32* %i, align 4
+ %35 = load i32* %i, align 4 ; [#uses=1]
+ ret i32 %35
+}
+
+; [#uses=1]
+define i32 @_Z12lua_lessthanP9lua_Stateii(%struct.lua_State* %L, i32 %index1, i32 %index2) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %index1, i32* %2, align 4
+ store i32 %index2, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ store %struct.lua_TValue* %6, %struct.lua_TValue** %o1, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load i32* %3, align 4 ; [#uses=1]
+ %9 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %7, i32 %8) ; [#uses=1]
+ store %struct.lua_TValue* %9, %struct.lua_TValue** %o2, align 4
+ %10 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %11 = icmp eq %struct.lua_TValue* %10, bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*) ; [#uses=1]
+ br i1 %11, label %15, label %12
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %14 = icmp eq %struct.lua_TValue* %13, bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*) ; [#uses=1]
+ br i1 %14, label %15, label %16
+
+; <label>:15 ; preds = %12, %0
+ br label %21
+
+; <label>:16 ; preds = %12
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %18 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %19 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %20 = call i32 @_Z13luaV_lessthanP9lua_StatePK10lua_TValueS3_(%struct.lua_State* %17, %struct.lua_TValue* %18, %struct.lua_TValue* %19) ; [#uses=1]
+ br label %21
+
+; <label>:21 ; preds = %16, %15
+ %22 = phi i32 [ 0, %15 ], [ %20, %16 ] ; [#uses=1]
+ store i32 %22, i32* %i, align 4
+ %23 = load i32* %i, align 4 ; [#uses=1]
+ ret i32 %23
+}
+
+; [#uses=5]
+define double @_Z12lua_tonumberP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca double, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %n = alloca %struct.lua_TValue, align 4 ; [#uses=1]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %idx, i32* %3, align 4
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = load i32* %3, align 4 ; [#uses=1]
+ %6 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ store %struct.lua_TValue* %6, %struct.lua_TValue** %o, align 4
+ %7 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_TValue* %7, i32 0, i32 1 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ %10 = icmp eq i32 %9, 3 ; [#uses=1]
+ br i1 %10, label %15, label %11
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %13 = call %struct.lua_TValue* @_Z13luaV_tonumberPK10lua_TValuePS_(%struct.lua_TValue* %12, %struct.lua_TValue* %n) ; [#uses=2]
+ store %struct.lua_TValue* %13, %struct.lua_TValue** %o, align 4
+ %14 = icmp ne %struct.lua_TValue* %13, null ; [#uses=1]
+ br i1 %14, label %15, label %20
+
+; <label>:15 ; preds = %11, %0
+ %16 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_TValue* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = getelementptr inbounds %union.anon* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = load double* %18, align 4 ; [#uses=1]
+ store double %19, double* %1
+ br label %21
+
+; <label>:20 ; preds = %11
+ store double 0.000000e+00, double* %1
+ br label %21
+
+; <label>:21 ; preds = %20, %15
+ %22 = load double* %1 ; [#uses=1]
+ ret double %22
+}
+
+; [#uses=7]
+define i32 @_Z13lua_tointegerP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %n = alloca %struct.lua_TValue, align 4 ; [#uses=1]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %res = alloca i32, align 4 ; [#uses=2]
+ %num = alloca double, align 8 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %idx, i32* %3, align 4
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = load i32* %3, align 4 ; [#uses=1]
+ %6 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ store %struct.lua_TValue* %6, %struct.lua_TValue** %o, align 4
+ %7 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_TValue* %7, i32 0, i32 1 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ %10 = icmp eq i32 %9, 3 ; [#uses=1]
+ br i1 %10, label %15, label %11
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %13 = call %struct.lua_TValue* @_Z13luaV_tonumberPK10lua_TValuePS_(%struct.lua_TValue* %12, %struct.lua_TValue* %n) ; [#uses=2]
+ store %struct.lua_TValue* %13, %struct.lua_TValue** %o, align 4
+ %14 = icmp ne %struct.lua_TValue* %13, null ; [#uses=1]
+ br i1 %14, label %15, label %23
+
+; <label>:15 ; preds = %11, %0
+ %16 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_TValue* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = getelementptr inbounds %union.anon* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = load double* %18, align 4 ; [#uses=1]
+ store double %19, double* %num, align 8
+ %20 = load double* %num, align 8 ; [#uses=1]
+ %21 = fptosi double %20 to i32 ; [#uses=1]
+ store i32 %21, i32* %res, align 4
+ %22 = load i32* %res, align 4 ; [#uses=1]
+ store i32 %22, i32* %1
+ br label %24
+
+; <label>:23 ; preds = %11
+ store i32 0, i32* %1
+ br label %24
+
+; <label>:24 ; preds = %23, %15
+ %25 = load i32* %1 ; [#uses=1]
+ ret i32 %25
+}
+
+; [#uses=10]
+define i32 @_Z13lua_tobooleanP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+; <label>:0
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %o, align 4
+ %6 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_TValue* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = icmp eq i32 %8, 0 ; [#uses=1]
+ br i1 %9, label %24, label %10
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 1 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ %14 = icmp eq i32 %13, 1 ; [#uses=1]
+ br i1 %14, label %15, label %22
+
+; <label>:15 ; preds = %10
+ %16 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_TValue* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = getelementptr inbounds %union.anon* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = bitcast double* %18 to i32* ; [#uses=1]
+ %20 = load i32* %19, align 4 ; [#uses=1]
+ %21 = icmp eq i32 %20, 0 ; [#uses=1]
+ br label %22
+
+; <label>:22 ; preds = %15, %10
+ %23 = phi i1 [ false, %10 ], [ %21, %15 ] ; [#uses=1]
+ br label %24
+
+; <label>:24 ; preds = %22, %0
+ %25 = phi i1 [ true, %0 ], [ %23, %22 ] ; [#uses=1]
+ %26 = xor i1 %25, true ; [#uses=1]
+ %27 = zext i1 %26 to i32 ; [#uses=1]
+ ret i32 %27
+}
+
+; [#uses=29]
+define i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %L, i32 %idx, i32* %len) {
+ %1 = alloca i8*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %4 = alloca i32*, align 4 ; [#uses=5]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %idx, i32* %3, align 4
+ store i32* %len, i32** %4, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = load i32* %3, align 4 ; [#uses=1]
+ %7 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %5, i32 %6) ; [#uses=1]
+ store %struct.lua_TValue* %7, %struct.lua_TValue** %o, align 4
+ %8 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_TValue* %8, i32 0, i32 1 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ %11 = icmp eq i32 %10, 4 ; [#uses=1]
+ br i1 %11, label %41, label %12
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %15 = call i32 @_Z13luaV_tostringP9lua_StateP10lua_TValue(%struct.lua_State* %13, %struct.lua_TValue* %14) ; [#uses=1]
+ %16 = icmp ne i32 %15, 0 ; [#uses=1]
+ br i1 %16, label %23, label %17
+
+; <label>:17 ; preds = %12
+ %18 = load i32** %4, align 4 ; [#uses=1]
+ %19 = icmp ne i32* %18, null ; [#uses=1]
+ br i1 %19, label %20, label %22
+
+; <label>:20 ; preds = %17
+ %21 = load i32** %4, align 4 ; [#uses=1]
+ store i32 0, i32* %21
+ br label %22
+
+; <label>:22 ; preds = %20, %17
+ store i8* null, i8** %1
+ br label %66
+
+; <label>:23 ; preds = %12
+ %24 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.lua_State* %24, i32 0, i32 6 ; [#uses=1]
+ %26 = load %struct.global_State** %25, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.global_State* %26, i32 0, i32 14 ; [#uses=1]
+ %28 = load i32* %27, align 4 ; [#uses=1]
+ %29 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_State* %29, i32 0, i32 6 ; [#uses=1]
+ %31 = load %struct.global_State** %30, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.global_State* %31, i32 0, i32 13 ; [#uses=1]
+ %33 = load i32* %32, align 4 ; [#uses=1]
+ %34 = icmp uge i32 %28, %33 ; [#uses=1]
+ br i1 %34, label %35, label %37
+
+; <label>:35 ; preds = %23
+ %36 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z9luaC_stepP9lua_State(%struct.lua_State* %36)
+ br label %37
+
+; <label>:37 ; preds = %35, %23
+ %38 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %39 = load i32* %3, align 4 ; [#uses=1]
+ %40 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %38, i32 %39) ; [#uses=1]
+ store %struct.lua_TValue* %40, %struct.lua_TValue** %o, align 4
+ br label %41
+
+; <label>:41 ; preds = %37, %0
+ %42 = load i32** %4, align 4 ; [#uses=1]
+ %43 = icmp ne i32* %42, null ; [#uses=1]
+ br i1 %43, label %44, label %56
+
+; <label>:44 ; preds = %41
+ %45 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.lua_TValue* %45, i32 0, i32 0 ; [#uses=1]
+ %47 = getelementptr inbounds %union.anon* %46, i32 0, i32 0 ; [#uses=1]
+ %48 = bitcast double* %47 to %union.GCObject** ; [#uses=1]
+ %49 = load %union.GCObject** %48, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %union.GCObject* %49, i32 0, i32 0 ; [#uses=1]
+ %51 = bitcast %struct.lua_State* %50 to %union.TString* ; [#uses=1]
+ %52 = getelementptr inbounds %union.TString* %51, i32 0, i32 0 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.anon* %52, i32 0, i32 5 ; [#uses=1]
+ %54 = load i32* %53, align 4 ; [#uses=1]
+ %55 = load i32** %4, align 4 ; [#uses=1]
+ store i32 %54, i32* %55
+ br label %56
+
+; <label>:56 ; preds = %44, %41
+ %57 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.lua_TValue* %57, i32 0, i32 0 ; [#uses=1]
+ %59 = getelementptr inbounds %union.anon* %58, i32 0, i32 0 ; [#uses=1]
+ %60 = bitcast double* %59 to %union.GCObject** ; [#uses=1]
+ %61 = load %union.GCObject** %60, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds %union.GCObject* %61, i32 0, i32 0 ; [#uses=1]
+ %63 = bitcast %struct.lua_State* %62 to %union.TString* ; [#uses=1]
+ %64 = getelementptr inbounds %union.TString* %63, i32 1 ; [#uses=1]
+ %65 = bitcast %union.TString* %64 to i8* ; [#uses=1]
+ store i8* %65, i8** %1
+ br label %66
+
+; <label>:66 ; preds = %56, %22
+ %67 = load i8** %1 ; [#uses=1]
+ ret i8* %67
+}
+
+; [#uses=13]
+define i32 @_Z10lua_objlenP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca i32, align 4 ; [#uses=6]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=7]
+ %l = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %idx, i32* %3, align 4
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = load i32* %3, align 4 ; [#uses=1]
+ %6 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ store %struct.lua_TValue* %6, %struct.lua_TValue** %o, align 4
+ %7 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_TValue* %7, i32 0, i32 1 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ switch i32 %9, label %61 [
+ i32 4, label %10
+ i32 7, label %21
+ i32 5, label %32
+ i32 3, label %41
+ ]
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = getelementptr inbounds %union.anon* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = bitcast double* %13 to %union.GCObject** ; [#uses=1]
+ %15 = load %union.GCObject** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %union.GCObject* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = bitcast %struct.lua_State* %16 to %union.TString* ; [#uses=1]
+ %18 = getelementptr inbounds %union.TString* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.anon* %18, i32 0, i32 5 ; [#uses=1]
+ %20 = load i32* %19, align 4 ; [#uses=1]
+ store i32 %20, i32* %1
+ br label %62
+
+; <label>:21 ; preds = %0
+ %22 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_TValue* %22, i32 0, i32 0 ; [#uses=1]
+ %24 = getelementptr inbounds %union.anon* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = bitcast double* %24 to %union.GCObject** ; [#uses=1]
+ %26 = load %union.GCObject** %25, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %union.GCObject* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = bitcast %struct.lua_State* %27 to %union.Udata* ; [#uses=1]
+ %29 = getelementptr inbounds %union.Udata* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = getelementptr inbounds %4* %29, i32 0, i32 5 ; [#uses=1]
+ %31 = load i32* %30, align 4 ; [#uses=1]
+ store i32 %31, i32* %1
+ br label %62
+
+; <label>:32 ; preds = %0
+ %33 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_TValue* %33, i32 0, i32 0 ; [#uses=1]
+ %35 = getelementptr inbounds %union.anon* %34, i32 0, i32 0 ; [#uses=1]
+ %36 = bitcast double* %35 to %union.GCObject** ; [#uses=1]
+ %37 = load %union.GCObject** %36, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %union.GCObject* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = bitcast %struct.lua_State* %38 to %struct.Table* ; [#uses=1]
+ %40 = call i32 @_Z9luaH_getnP5Table(%struct.Table* %39) ; [#uses=1]
+ store i32 %40, i32* %1
+ br label %62
+
+; <label>:41 ; preds = %0
+ %42 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %43 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %44 = call i32 @_Z13luaV_tostringP9lua_StateP10lua_TValue(%struct.lua_State* %42, %struct.lua_TValue* %43) ; [#uses=1]
+ %45 = icmp ne i32 %44, 0 ; [#uses=1]
+ br i1 %45, label %46, label %57
+
+; <label>:46 ; preds = %41
+ %47 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.lua_TValue* %47, i32 0, i32 0 ; [#uses=1]
+ %49 = getelementptr inbounds %union.anon* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = bitcast double* %49 to %union.GCObject** ; [#uses=1]
+ %51 = load %union.GCObject** %50, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %union.GCObject* %51, i32 0, i32 0 ; [#uses=1]
+ %53 = bitcast %struct.lua_State* %52 to %union.TString* ; [#uses=1]
+ %54 = getelementptr inbounds %union.TString* %53, i32 0, i32 0 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.anon* %54, i32 0, i32 5 ; [#uses=1]
+ %56 = load i32* %55, align 4 ; [#uses=1]
+ br label %58
+
+; <label>:57 ; preds = %41
+ br label %58
+
+; <label>:58 ; preds = %57, %46
+ %59 = phi i32 [ %56, %46 ], [ 0, %57 ] ; [#uses=1]
+ store i32 %59, i32* %l, align 4
+ %60 = load i32* %l, align 4 ; [#uses=1]
+ store i32 %60, i32* %1
+ br label %62
+
+; <label>:61 ; preds = %0
+ store i32 0, i32* %1
+ br label %62
+
+; <label>:62 ; preds = %61, %58, %32, %21, %10
+ %63 = load i32* %1 ; [#uses=1]
+ ret i32 %63
+}
+
+; [#uses=1]
+define i32 (%struct.lua_State*)* @_Z15lua_tocfunctionP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %o, align 4
+ %6 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_TValue* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = icmp eq i32 %8, 6 ; [#uses=1]
+ br i1 %9, label %10, label %22
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = getelementptr inbounds %union.anon* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = bitcast double* %13 to %union.GCObject** ; [#uses=1]
+ %15 = load %union.GCObject** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %union.GCObject* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = bitcast %struct.lua_State* %16 to %union.Closure* ; [#uses=1]
+ %18 = getelementptr inbounds %union.Closure* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.CClosure* %18, i32 0, i32 3 ; [#uses=1]
+ %20 = load i8* %19, align 1 ; [#uses=1]
+ %21 = icmp ne i8 %20, 0 ; [#uses=1]
+ br i1 %21, label %23, label %22
+
+; <label>:22 ; preds = %10, %0
+ br label %34
+
+; <label>:23 ; preds = %10
+ %24 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.lua_TValue* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = getelementptr inbounds %union.anon* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = bitcast double* %26 to %union.GCObject** ; [#uses=1]
+ %28 = load %union.GCObject** %27, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %union.GCObject* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = bitcast %struct.lua_State* %29 to %union.Closure* ; [#uses=1]
+ %31 = getelementptr inbounds %union.Closure* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.CClosure* %31, i32 0, i32 7 ; [#uses=1]
+ %33 = load i32 (%struct.lua_State*)** %32, align 4 ; [#uses=1]
+ br label %34
+
+; <label>:34 ; preds = %23, %22
+ %35 = phi i32 (%struct.lua_State*)* [ null, %22 ], [ %33, %23 ] ; [#uses=1]
+ ret i32 (%struct.lua_State*)* %35
+}
+
+; [#uses=9]
+define i8* @_Z14lua_touserdataP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca i8*, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %idx, i32* %3, align 4
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = load i32* %3, align 4 ; [#uses=1]
+ %6 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ store %struct.lua_TValue* %6, %struct.lua_TValue** %o, align 4
+ %7 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_TValue* %7, i32 0, i32 1 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ switch i32 %9, label %26 [
+ i32 7, label %10
+ i32 2, label %20
+ ]
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = getelementptr inbounds %union.anon* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = bitcast double* %13 to %union.GCObject** ; [#uses=1]
+ %15 = load %union.GCObject** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %union.GCObject* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = bitcast %struct.lua_State* %16 to %union.Udata* ; [#uses=1]
+ %18 = getelementptr inbounds %union.Udata* %17, i32 1 ; [#uses=1]
+ %19 = bitcast %union.Udata* %18 to i8* ; [#uses=1]
+ store i8* %19, i8** %1
+ br label %27
+
+; <label>:20 ; preds = %0
+ %21 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_TValue* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = getelementptr inbounds %union.anon* %22, i32 0, i32 0 ; [#uses=1]
+ %24 = bitcast double* %23 to i8** ; [#uses=1]
+ %25 = load i8** %24, align 4 ; [#uses=1]
+ store i8* %25, i8** %1
+ br label %27
+
+; <label>:26 ; preds = %0
+ store i8* null, i8** %1
+ br label %27
+
+; <label>:27 ; preds = %26, %20, %10
+ %28 = load i8** %1 ; [#uses=1]
+ ret i8* %28
+}
+
+; [#uses=4]
+define %struct.lua_State* @_Z12lua_tothreadP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %o, align 4
+ %6 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_TValue* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = icmp eq i32 %8, 8 ; [#uses=1]
+ br i1 %9, label %11, label %10
+
+; <label>:10 ; preds = %0
+ br label %18
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.lua_TValue* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = getelementptr inbounds %union.anon* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = bitcast double* %14 to %union.GCObject** ; [#uses=1]
+ %16 = load %union.GCObject** %15, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %union.GCObject* %16, i32 0, i32 0 ; [#uses=1]
+ br label %18
+
+; <label>:18 ; preds = %11, %10
+ %19 = phi %struct.lua_State* [ null, %10 ], [ %17, %11 ] ; [#uses=1]
+ ret %struct.lua_State* %19
+}
+
+; [#uses=1]
+define i8* @_Z13lua_topointerP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca i8*, align 4 ; [#uses=6]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %idx, i32* %3, align 4
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = load i32* %3, align 4 ; [#uses=1]
+ %6 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ store %struct.lua_TValue* %6, %struct.lua_TValue** %o, align 4
+ %7 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_TValue* %7, i32 0, i32 1 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ switch i32 %9, label %40 [
+ i32 5, label %10
+ i32 6, label %19
+ i32 8, label %28
+ i32 7, label %36
+ i32 2, label %36
+ ]
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = getelementptr inbounds %union.anon* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = bitcast double* %13 to %union.GCObject** ; [#uses=1]
+ %15 = load %union.GCObject** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %union.GCObject* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = bitcast %struct.lua_State* %16 to %struct.Table* ; [#uses=1]
+ %18 = bitcast %struct.Table* %17 to i8* ; [#uses=1]
+ store i8* %18, i8** %1
+ br label %41
+
+; <label>:19 ; preds = %0
+ %20 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_TValue* %20, i32 0, i32 0 ; [#uses=1]
+ %22 = getelementptr inbounds %union.anon* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = bitcast double* %22 to %union.GCObject** ; [#uses=1]
+ %24 = load %union.GCObject** %23, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %union.GCObject* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = bitcast %struct.lua_State* %25 to %union.Closure* ; [#uses=1]
+ %27 = bitcast %union.Closure* %26 to i8* ; [#uses=1]
+ store i8* %27, i8** %1
+ br label %41
+
+; <label>:28 ; preds = %0
+ %29 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_TValue* %29, i32 0, i32 0 ; [#uses=1]
+ %31 = getelementptr inbounds %union.anon* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = bitcast double* %31 to %union.GCObject** ; [#uses=1]
+ %33 = load %union.GCObject** %32, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %union.GCObject* %33, i32 0, i32 0 ; [#uses=1]
+ %35 = bitcast %struct.lua_State* %34 to i8* ; [#uses=1]
+ store i8* %35, i8** %1
+ br label %41
+
+; <label>:36 ; preds = %0, %0
+ %37 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %38 = load i32* %3, align 4 ; [#uses=1]
+ %39 = call i8* @_Z14lua_touserdataP9lua_Statei(%struct.lua_State* %37, i32 %38) ; [#uses=1]
+ store i8* %39, i8** %1
+ br label %41
+
+; <label>:40 ; preds = %0
+ store i8* null, i8** %1
+ br label %41
+
+; <label>:41 ; preds = %40, %36, %28, %19, %10
+ %42 = load i8** %1 ; [#uses=1]
+ ret i8* %42
+}
+
+; [#uses=23]
+define void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %L) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 4 ; [#uses=1]
+ %4 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_TValue* %4, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %5, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 4 ; [#uses=2]
+ %8 = load %struct.lua_TValue** %7, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_TValue* %8, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %9, %struct.lua_TValue** %7, align 4
+ ret void
+}
+
+; [#uses=41]
+define void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %L, double %n) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca double, align 4 ; [#uses=2]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store double %n, double* %2, align 8
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 4 ; [#uses=1]
+ %5 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %i_o, align 4
+ %6 = load double* %2, align 8 ; [#uses=1]
+ %7 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_TValue* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = getelementptr inbounds %union.anon* %8, i32 0, i32 0 ; [#uses=1]
+ store double %6, double* %9, align 4
+ %10 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_TValue* %10, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %11, align 4
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.lua_State* %12, i32 0, i32 4 ; [#uses=2]
+ %14 = load %struct.lua_TValue** %13, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_TValue* %14, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %15, %struct.lua_TValue** %13, align 4
+ ret void
+}
+
+; [#uses=27]
+define void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %L, i32 %n) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %n, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 4 ; [#uses=1]
+ %5 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %i_o, align 4
+ %6 = load i32* %2, align 4 ; [#uses=1]
+ %7 = sitofp i32 %6 to double ; [#uses=1]
+ %8 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_TValue* %8, i32 0, i32 0 ; [#uses=1]
+ %10 = getelementptr inbounds %union.anon* %9, i32 0, i32 0 ; [#uses=1]
+ store double %7, double* %10, align 4
+ %11 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %12, align 4
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_State* %13, i32 0, i32 4 ; [#uses=2]
+ %15 = load %struct.lua_TValue** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %16, %struct.lua_TValue** %14, align 4
+ ret void
+}
+
+; [#uses=36]
+define void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %L, i8* %s, i32 %len) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %s, i8** %2, align 4
+ store i32 %len, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 6 ; [#uses=1]
+ %6 = load %struct.global_State** %5, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.global_State* %6, i32 0, i32 14 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_State* %9, i32 0, i32 6 ; [#uses=1]
+ %11 = load %struct.global_State** %10, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.global_State* %11, i32 0, i32 13 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ %14 = icmp uge i32 %8, %13 ; [#uses=1]
+ br i1 %14, label %15, label %17
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9luaC_stepP9lua_State(%struct.lua_State* %16)
+ br label %17
+
+; <label>:17 ; preds = %15, %0
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_State* %18, i32 0, i32 4 ; [#uses=1]
+ %20 = load %struct.lua_TValue** %19, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %20, %struct.lua_TValue** %i_o, align 4
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %22 = load i8** %2, align 4 ; [#uses=1]
+ %23 = load i32* %3, align 4 ; [#uses=1]
+ %24 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %21, i8* %22, i32 %23) ; [#uses=1]
+ %25 = bitcast %union.TString* %24 to %union.GCObject* ; [#uses=1]
+ %26 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_TValue* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = getelementptr inbounds %union.anon* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = bitcast double* %28 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %25, %union.GCObject** %29, align 4
+ %30 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_TValue* %30, i32 0, i32 1 ; [#uses=1]
+ store i32 4, i32* %31, align 4
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_State* %32, i32 0, i32 4 ; [#uses=2]
+ %34 = load %struct.lua_TValue** %33, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_TValue* %34, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %35, %struct.lua_TValue** %33, align 4
+ ret void
+}
+
+; [#uses=24]
+define void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %L, i8* %s) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i8*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %s, i8** %2, align 4
+ %3 = load i8** %2, align 4 ; [#uses=1]
+ %4 = icmp eq i8* %3, null ; [#uses=1]
+ br i1 %4, label %5, label %7
+
+; <label>:5 ; preds = %0
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %6)
+ br label %12
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = load i8** %2, align 4 ; [#uses=1]
+ %10 = load i8** %2, align 4 ; [#uses=1]
+ %11 = call i32 @strlen(i8* %10) ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %8, i8* %9, i32 %11)
+ br label %12
+
+; <label>:12 ; preds = %7, %5
+ ret void
+}
+
+; [#uses=1]
+define i8* @_Z16lua_pushvfstringP9lua_StatePKcPc(%struct.lua_State* %L, i8* %fmt, i8* %argp) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ %ret = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %fmt, i8** %2, align 4
+ store i8* %argp, i8** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 6 ; [#uses=1]
+ %6 = load %struct.global_State** %5, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.global_State* %6, i32 0, i32 14 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_State* %9, i32 0, i32 6 ; [#uses=1]
+ %11 = load %struct.global_State** %10, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.global_State* %11, i32 0, i32 13 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ %14 = icmp uge i32 %8, %13 ; [#uses=1]
+ br i1 %14, label %15, label %17
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9luaC_stepP9lua_State(%struct.lua_State* %16)
+ br label %17
+
+; <label>:17 ; preds = %15, %0
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = load i8** %2, align 4 ; [#uses=1]
+ %20 = load i8** %3, align 4 ; [#uses=1]
+ %21 = call i8* @_Z17luaO_pushvfstringP9lua_StatePKcPc(%struct.lua_State* %18, i8* %19, i8* %20) ; [#uses=1]
+ store i8* %21, i8** %ret, align 4
+ %22 = load i8** %ret, align 4 ; [#uses=1]
+ ret i8* %22
+}
+
+; [#uses=26]
+define i8* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %L, i8* %fmt, ...) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %ret = alloca i8*, align 4 ; [#uses=2]
+ %argp = alloca i8*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %fmt, i8** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 6 ; [#uses=1]
+ %5 = load %struct.global_State** %4, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.global_State* %5, i32 0, i32 14 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_State* %8, i32 0, i32 6 ; [#uses=1]
+ %10 = load %struct.global_State** %9, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.global_State* %10, i32 0, i32 13 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ %13 = icmp uge i32 %7, %12 ; [#uses=1]
+ br i1 %13, label %14, label %16
+
+; <label>:14 ; preds = %0
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9luaC_stepP9lua_State(%struct.lua_State* %15)
+ br label %16
+
+; <label>:16 ; preds = %14, %0
+ %17 = bitcast i8** %argp to i8* ; [#uses=1]
+ call void @llvm.va_start(i8* %17)
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = load i8** %2, align 4 ; [#uses=1]
+ %20 = load i8** %argp, align 4 ; [#uses=1]
+ %21 = call i8* @_Z17luaO_pushvfstringP9lua_StatePKcPc(%struct.lua_State* %18, i8* %19, i8* %20) ; [#uses=1]
+ store i8* %21, i8** %ret, align 4
+ %22 = bitcast i8** %argp to i8* ; [#uses=1]
+ call void @llvm.va_end(i8* %22)
+ %23 = load i8** %ret, align 4 ; [#uses=1]
+ ret i8* %23
+}
+
+; [#uses=4]
+declare void @llvm.va_start(i8*) nounwind
+
+; [#uses=4]
+declare void @llvm.va_end(i8*) nounwind
+
+; [#uses=13]
+define void @_Z16lua_pushcclosureP9lua_StatePFiS0_Ei(%struct.lua_State* %L, i32 (%struct.lua_State*)* %fn, i32 %n) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=10]
+ %2 = alloca i32 (%struct.lua_State*)*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=7]
+ %cl = alloca %union.Closure*, align 4 ; [#uses=4]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 (%struct.lua_State*)* %fn, i32 (%struct.lua_State*)** %2, align 4
+ store i32 %n, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 6 ; [#uses=1]
+ %6 = load %struct.global_State** %5, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.global_State* %6, i32 0, i32 14 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_State* %9, i32 0, i32 6 ; [#uses=1]
+ %11 = load %struct.global_State** %10, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.global_State* %11, i32 0, i32 13 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ %14 = icmp uge i32 %8, %13 ; [#uses=1]
+ br i1 %14, label %15, label %17
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9luaC_stepP9lua_State(%struct.lua_State* %16)
+ br label %17
+
+; <label>:17 ; preds = %15, %0
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = load i32* %3, align 4 ; [#uses=1]
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %21 = call %struct.Table* @_Z10getcurrenvP9lua_State(%struct.lua_State* %20) ; [#uses=1]
+ %22 = call %union.Closure* @_Z16luaF_newCclosureP9lua_StateiP5Table(%struct.lua_State* %18, i32 %19, %struct.Table* %21) ; [#uses=1]
+ store %union.Closure* %22, %union.Closure** %cl, align 4
+ %23 = load i32 (%struct.lua_State*)** %2, align 4 ; [#uses=1]
+ %24 = load %union.Closure** %cl, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %union.Closure* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.CClosure* %25, i32 0, i32 7 ; [#uses=1]
+ store i32 (%struct.lua_State*)* %23, i32 (%struct.lua_State*)** %26, align 4
+ %27 = load i32* %3, align 4 ; [#uses=1]
+ %28 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_State* %28, i32 0, i32 4 ; [#uses=2]
+ %30 = load %struct.lua_TValue** %29, align 4 ; [#uses=1]
+ %31 = sub i32 0, %27 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_TValue* %30, i32 %31 ; [#uses=1]
+ store %struct.lua_TValue* %32, %struct.lua_TValue** %29, align 4
+ br label %33
+
+; <label>:33 ; preds = %37, %17
+ %34 = load i32* %3, align 4 ; [#uses=2]
+ %35 = add nsw i32 %34, -1 ; [#uses=1]
+ store i32 %35, i32* %3, align 4
+ %36 = icmp ne i32 %34, 0 ; [#uses=1]
+ br i1 %36, label %37, label %59
+
+; <label>:37 ; preds = %33
+ %38 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.lua_State* %38, i32 0, i32 4 ; [#uses=1]
+ %40 = load %struct.lua_TValue** %39, align 4 ; [#uses=1]
+ %41 = load i32* %3, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.lua_TValue* %40, i32 %41 ; [#uses=1]
+ store %struct.lua_TValue* %42, %struct.lua_TValue** %o2, align 4
+ %43 = load i32* %3, align 4 ; [#uses=1]
+ %44 = load %union.Closure** %cl, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %union.Closure* %44, i32 0, i32 0 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.CClosure* %45, i32 0, i32 8 ; [#uses=1]
+ %47 = getelementptr inbounds [1 x %struct.lua_TValue]* %46, i32 0, i32 %43 ; [#uses=1]
+ store %struct.lua_TValue* %47, %struct.lua_TValue** %o1, align 4
+ %48 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.lua_TValue* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.lua_TValue* %50, i32 0, i32 0 ; [#uses=1]
+ %52 = bitcast %union.anon* %49 to i8* ; [#uses=1]
+ %53 = bitcast %union.anon* %51 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %52, i8* %53, i32 8, i32 4, i1 false)
+ %54 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.lua_TValue* %54, i32 0, i32 1 ; [#uses=1]
+ %56 = load i32* %55, align 4 ; [#uses=1]
+ %57 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.lua_TValue* %57, i32 0, i32 1 ; [#uses=1]
+ store i32 %56, i32* %58, align 4
+ br label %33
+
+; <label>:59 ; preds = %33
+ %60 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.lua_State* %60, i32 0, i32 4 ; [#uses=1]
+ %62 = load %struct.lua_TValue** %61, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %62, %struct.lua_TValue** %i_o, align 4
+ %63 = load %union.Closure** %cl, align 4 ; [#uses=1]
+ %64 = bitcast %union.Closure* %63 to %union.GCObject* ; [#uses=1]
+ %65 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.lua_TValue* %65, i32 0, i32 0 ; [#uses=1]
+ %67 = getelementptr inbounds %union.anon* %66, i32 0, i32 0 ; [#uses=1]
+ %68 = bitcast double* %67 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %64, %union.GCObject** %68, align 4
+ %69 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.lua_TValue* %69, i32 0, i32 1 ; [#uses=1]
+ store i32 6, i32* %70, align 4
+ %71 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.lua_State* %71, i32 0, i32 4 ; [#uses=2]
+ %73 = load %struct.lua_TValue** %72, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.lua_TValue* %73, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %74, %struct.lua_TValue** %72, align 4
+ ret void
+}
+
+; [#uses=3]
+define internal %struct.Table* @_Z10getcurrenvP9lua_State(%struct.lua_State* %L) nounwind {
+ %1 = alloca %struct.Table*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %func = alloca %union.Closure*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 7 ; [#uses=1]
+ %5 = load %struct.CallInfo** %4, align 4 ; [#uses=1]
+ %6 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 12 ; [#uses=1]
+ %8 = load %struct.CallInfo** %7, align 4 ; [#uses=1]
+ %9 = icmp eq %struct.CallInfo* %5, %8 ; [#uses=1]
+ br i1 %9, label %10, label %19
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_State* %11, i32 0, i32 22 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.lua_TValue* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = getelementptr inbounds %union.anon* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = bitcast double* %14 to %union.GCObject** ; [#uses=1]
+ %16 = load %union.GCObject** %15, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %union.GCObject* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = bitcast %struct.lua_State* %17 to %struct.Table* ; [#uses=1]
+ store %struct.Table* %18, %struct.Table** %1
+ br label %35
+
+; <label>:19 ; preds = %0
+ %20 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_State* %20, i32 0, i32 7 ; [#uses=1]
+ %22 = load %struct.CallInfo** %21, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.CallInfo* %22, i32 0, i32 1 ; [#uses=1]
+ %24 = load %struct.lua_TValue** %23, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.lua_TValue* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = getelementptr inbounds %union.anon* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = bitcast double* %26 to %union.GCObject** ; [#uses=1]
+ %28 = load %union.GCObject** %27, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %union.GCObject* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = bitcast %struct.lua_State* %29 to %union.Closure* ; [#uses=1]
+ store %union.Closure* %30, %union.Closure** %func, align 4
+ %31 = load %union.Closure** %func, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %union.Closure* %31, i32 0, i32 0 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.CClosure* %32, i32 0, i32 6 ; [#uses=1]
+ %34 = load %struct.Table** %33, align 4 ; [#uses=1]
+ store %struct.Table* %34, %struct.Table** %1
+ br label %35
+
+; <label>:35 ; preds = %19, %10
+ %36 = load %struct.Table** %1 ; [#uses=1]
+ ret %struct.Table* %36
+}
+
+; [#uses=13]
+define void @_Z15lua_pushbooleanP9lua_Statei(%struct.lua_State* %L, i32 %b) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %b, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 4 ; [#uses=1]
+ %5 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %i_o, align 4
+ %6 = load i32* %2, align 4 ; [#uses=1]
+ %7 = icmp ne i32 %6, 0 ; [#uses=1]
+ %8 = zext i1 %7 to i32 ; [#uses=1]
+ %9 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_TValue* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = getelementptr inbounds %union.anon* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = bitcast double* %11 to i32* ; [#uses=1]
+ store i32 %8, i32* %12, align 4
+ %13 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_TValue* %13, i32 0, i32 1 ; [#uses=1]
+ store i32 1, i32* %14, align 4
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_State* %15, i32 0, i32 4 ; [#uses=2]
+ %17 = load %struct.lua_TValue** %16, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_TValue* %17, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %18, %struct.lua_TValue** %16, align 4
+ ret void
+}
+
+; [#uses=7]
+define void @_Z21lua_pushlightuserdataP9lua_StatePv(%struct.lua_State* %L, i8* %p) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %p, i8** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 4 ; [#uses=1]
+ %5 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %i_o, align 4
+ %6 = load i8** %2, align 4 ; [#uses=1]
+ %7 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_TValue* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = getelementptr inbounds %union.anon* %8, i32 0, i32 0 ; [#uses=1]
+ %10 = bitcast double* %9 to i8** ; [#uses=1]
+ store i8* %6, i8** %10, align 4
+ %11 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 1 ; [#uses=1]
+ store i32 2, i32* %12, align 4
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_State* %13, i32 0, i32 4 ; [#uses=2]
+ %15 = load %struct.lua_TValue** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %16, %struct.lua_TValue** %14, align 4
+ ret void
+}
+
+; [#uses=2]
+define i32 @_Z14lua_pushthreadP9lua_State(%struct.lua_State* %L) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 4 ; [#uses=1]
+ %4 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %4, %struct.lua_TValue** %i_o, align 4
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = bitcast %struct.lua_State* %5 to %union.GCObject* ; [#uses=1]
+ %7 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_TValue* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = getelementptr inbounds %union.anon* %8, i32 0, i32 0 ; [#uses=1]
+ %10 = bitcast double* %9 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %6, %union.GCObject** %10, align 4
+ %11 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 1 ; [#uses=1]
+ store i32 8, i32* %12, align 4
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_State* %13, i32 0, i32 4 ; [#uses=2]
+ %15 = load %struct.lua_TValue** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %16, %struct.lua_TValue** %14, align 4
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_State* %17, i32 0, i32 6 ; [#uses=1]
+ %19 = load %struct.global_State** %18, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.global_State* %19, i32 0, i32 21 ; [#uses=1]
+ %21 = load %struct.lua_State** %20, align 4 ; [#uses=1]
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = icmp eq %struct.lua_State* %21, %22 ; [#uses=1]
+ %24 = zext i1 %23 to i32 ; [#uses=1]
+ ret i32 %24
+}
+
+; [#uses=2]
+define void @_Z12lua_gettableP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %t = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %t, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load %struct.lua_TValue** %t, align 4 ; [#uses=1]
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_State* %8, i32 0, i32 4 ; [#uses=1]
+ %10 = load %struct.lua_TValue** %9, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_TValue* %10, i32 -1 ; [#uses=1]
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.lua_State* %12, i32 0, i32 4 ; [#uses=1]
+ %14 = load %struct.lua_TValue** %13, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_TValue* %14, i32 -1 ; [#uses=1]
+ call void @_Z13luaV_gettableP9lua_StatePK10lua_TValuePS1_S4_(%struct.lua_State* %6, %struct.lua_TValue* %7, %struct.lua_TValue* %11, %struct.lua_TValue* %15)
+ ret void
+}
+
+; [#uses=28]
+define void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %L, i32 %idx, i8* %k) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i8*, align 4 ; [#uses=3]
+ %t = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %key = alloca %struct.lua_TValue, align 4 ; [#uses=2]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ store i8* %k, i8** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ store %struct.lua_TValue* %6, %struct.lua_TValue** %t, align 4
+ store %struct.lua_TValue* %key, %struct.lua_TValue** %i_o, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load i8** %3, align 4 ; [#uses=1]
+ %9 = load i8** %3, align 4 ; [#uses=1]
+ %10 = call i32 @strlen(i8* %9) ; [#uses=1]
+ %11 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %7, i8* %8, i32 %10) ; [#uses=1]
+ %12 = bitcast %union.TString* %11 to %union.GCObject* ; [#uses=1]
+ %13 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_TValue* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = getelementptr inbounds %union.anon* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = bitcast double* %15 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %12, %union.GCObject** %16, align 4
+ %17 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_TValue* %17, i32 0, i32 1 ; [#uses=1]
+ store i32 4, i32* %18, align 4
+ %19 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %20 = load %struct.lua_TValue** %t, align 4 ; [#uses=1]
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_State* %21, i32 0, i32 4 ; [#uses=1]
+ %23 = load %struct.lua_TValue** %22, align 4 ; [#uses=1]
+ call void @_Z13luaV_gettableP9lua_StatePK10lua_TValuePS1_S4_(%struct.lua_State* %19, %struct.lua_TValue* %20, %struct.lua_TValue* %key, %struct.lua_TValue* %23)
+ %24 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.lua_State* %24, i32 0, i32 4 ; [#uses=2]
+ %26 = load %struct.lua_TValue** %25, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_TValue* %26, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %27, %struct.lua_TValue** %25, align 4
+ ret void
+}
+
+; [#uses=8]
+define void @_Z10lua_rawgetP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %t = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %t, align 4
+ %6 = load %struct.lua_TValue** %t, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_TValue* %6, i32 0, i32 0 ; [#uses=1]
+ %8 = getelementptr inbounds %union.anon* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = bitcast double* %8 to %union.GCObject** ; [#uses=1]
+ %10 = load %union.GCObject** %9, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %union.GCObject* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = bitcast %struct.lua_State* %11 to %struct.Table* ; [#uses=1]
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_State* %13, i32 0, i32 4 ; [#uses=1]
+ %15 = load %struct.lua_TValue** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 -1 ; [#uses=1]
+ %17 = call %struct.lua_TValue* @_Z8luaH_getP5TablePK10lua_TValue(%struct.Table* %12, %struct.lua_TValue* %16) ; [#uses=1]
+ store %struct.lua_TValue* %17, %struct.lua_TValue** %o2, align 4
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_State* %18, i32 0, i32 4 ; [#uses=1]
+ %20 = load %struct.lua_TValue** %19, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_TValue* %20, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %21, %struct.lua_TValue** %o1, align 4
+ %22 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_TValue* %22, i32 0, i32 0 ; [#uses=1]
+ %24 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.lua_TValue* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = bitcast %union.anon* %23 to i8* ; [#uses=1]
+ %27 = bitcast %union.anon* %25 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %26, i8* %27, i32 8, i32 4, i1 false)
+ %28 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_TValue* %28, i32 0, i32 1 ; [#uses=1]
+ %30 = load i32* %29, align 4 ; [#uses=1]
+ %31 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_TValue* %31, i32 0, i32 1 ; [#uses=1]
+ store i32 %30, i32* %32, align 4
+ ret void
+}
+
+; [#uses=27]
+define void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %L, i32 %idx, i32 %n) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ store i32 %n, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ store %struct.lua_TValue* %6, %struct.lua_TValue** %o, align 4
+ %7 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_TValue* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = getelementptr inbounds %union.anon* %8, i32 0, i32 0 ; [#uses=1]
+ %10 = bitcast double* %9 to %union.GCObject** ; [#uses=1]
+ %11 = load %union.GCObject** %10, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %union.GCObject* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = bitcast %struct.lua_State* %12 to %struct.Table* ; [#uses=1]
+ %14 = load i32* %3, align 4 ; [#uses=1]
+ %15 = call %struct.lua_TValue* @_Z11luaH_getnumP5Tablei(%struct.Table* %13, i32 %14) ; [#uses=1]
+ store %struct.lua_TValue* %15, %struct.lua_TValue** %o2, align 4
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_State* %16, i32 0, i32 4 ; [#uses=1]
+ %18 = load %struct.lua_TValue** %17, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %18, %struct.lua_TValue** %o1, align 4
+ %19 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_TValue* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_TValue* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = bitcast %union.anon* %20 to i8* ; [#uses=1]
+ %24 = bitcast %union.anon* %22 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %23, i8* %24, i32 8, i32 4, i1 false)
+ %25 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_TValue* %25, i32 0, i32 1 ; [#uses=1]
+ %27 = load i32* %26, align 4 ; [#uses=1]
+ %28 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_TValue* %28, i32 0, i32 1 ; [#uses=1]
+ store i32 %27, i32* %29, align 4
+ %30 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_State* %30, i32 0, i32 4 ; [#uses=2]
+ %32 = load %struct.lua_TValue** %31, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_TValue* %32, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %33, %struct.lua_TValue** %31, align 4
+ ret void
+}
+
+; [#uses=13]
+define void @_Z15lua_createtableP9lua_Stateii(%struct.lua_State* %L, i32 %narray, i32 %nrec) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %narray, i32* %2, align 4
+ store i32 %nrec, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 6 ; [#uses=1]
+ %6 = load %struct.global_State** %5, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.global_State* %6, i32 0, i32 14 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_State* %9, i32 0, i32 6 ; [#uses=1]
+ %11 = load %struct.global_State** %10, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.global_State* %11, i32 0, i32 13 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ %14 = icmp uge i32 %8, %13 ; [#uses=1]
+ br i1 %14, label %15, label %17
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9luaC_stepP9lua_State(%struct.lua_State* %16)
+ br label %17
+
+; <label>:17 ; preds = %15, %0
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_State* %18, i32 0, i32 4 ; [#uses=1]
+ %20 = load %struct.lua_TValue** %19, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %20, %struct.lua_TValue** %i_o, align 4
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %22 = load i32* %2, align 4 ; [#uses=1]
+ %23 = load i32* %3, align 4 ; [#uses=1]
+ %24 = call %struct.Table* @_Z8luaH_newP9lua_Stateii(%struct.lua_State* %21, i32 %22, i32 %23) ; [#uses=1]
+ %25 = bitcast %struct.Table* %24 to %union.GCObject* ; [#uses=1]
+ %26 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_TValue* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = getelementptr inbounds %union.anon* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = bitcast double* %28 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %25, %union.GCObject** %29, align 4
+ %30 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_TValue* %30, i32 0, i32 1 ; [#uses=1]
+ store i32 5, i32* %31, align 4
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_State* %32, i32 0, i32 4 ; [#uses=2]
+ %34 = load %struct.lua_TValue** %33, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_TValue* %34, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %35, %struct.lua_TValue** %33, align 4
+ ret void
+}
+
+; [#uses=8]
+define i32 @_Z16lua_getmetatableP9lua_Statei(%struct.lua_State* %L, i32 %objindex) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %obj = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %mt = alloca %struct.Table*, align 4 ; [#uses=6]
+ %res = alloca i32, align 4 ; [#uses=3]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %objindex, i32* %2, align 4
+ store %struct.Table* null, %struct.Table** %mt, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %obj, align 4
+ %6 = load %struct.lua_TValue** %obj, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_TValue* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ switch i32 %8, label %30 [
+ i32 5, label %9
+ i32 7, label %19
+ ]
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_TValue** %obj, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_TValue* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = getelementptr inbounds %union.anon* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = bitcast double* %12 to %union.GCObject** ; [#uses=1]
+ %14 = load %union.GCObject** %13, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %union.GCObject* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = bitcast %struct.lua_State* %15 to %struct.Table* ; [#uses=1]
+ %17 = getelementptr inbounds %struct.Table* %16, i32 0, i32 5 ; [#uses=1]
+ %18 = load %struct.Table** %17, align 4 ; [#uses=1]
+ store %struct.Table* %18, %struct.Table** %mt, align 4
+ br label %40
+
+; <label>:19 ; preds = %0
+ %20 = load %struct.lua_TValue** %obj, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_TValue* %20, i32 0, i32 0 ; [#uses=1]
+ %22 = getelementptr inbounds %union.anon* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = bitcast double* %22 to %union.GCObject** ; [#uses=1]
+ %24 = load %union.GCObject** %23, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %union.GCObject* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = bitcast %struct.lua_State* %25 to %union.Udata* ; [#uses=1]
+ %27 = getelementptr inbounds %union.Udata* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = getelementptr inbounds %4* %27, i32 0, i32 3 ; [#uses=1]
+ %29 = load %struct.Table** %28, align 4 ; [#uses=1]
+ store %struct.Table* %29, %struct.Table** %mt, align 4
+ br label %40
+
+; <label>:30 ; preds = %0
+ %31 = load %struct.lua_TValue** %obj, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_TValue* %31, i32 0, i32 1 ; [#uses=1]
+ %33 = load i32* %32, align 4 ; [#uses=1]
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_State* %34, i32 0, i32 6 ; [#uses=1]
+ %36 = load %struct.global_State** %35, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.global_State* %36, i32 0, i32 23 ; [#uses=1]
+ %38 = getelementptr inbounds [9 x %struct.Table*]* %37, i32 0, i32 %33 ; [#uses=1]
+ %39 = load %struct.Table** %38 ; [#uses=1]
+ store %struct.Table* %39, %struct.Table** %mt, align 4
+ br label %40
+
+; <label>:40 ; preds = %30, %19, %9
+ %41 = load %struct.Table** %mt, align 4 ; [#uses=1]
+ %42 = icmp eq %struct.Table* %41, null ; [#uses=1]
+ br i1 %42, label %43, label %44
+
+; <label>:43 ; preds = %40
+ store i32 0, i32* %res, align 4
+ br label %60
+
+; <label>:44 ; preds = %40
+ %45 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.lua_State* %45, i32 0, i32 4 ; [#uses=1]
+ %47 = load %struct.lua_TValue** %46, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %47, %struct.lua_TValue** %i_o, align 4
+ %48 = load %struct.Table** %mt, align 4 ; [#uses=1]
+ %49 = bitcast %struct.Table* %48 to %union.GCObject* ; [#uses=1]
+ %50 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.lua_TValue* %50, i32 0, i32 0 ; [#uses=1]
+ %52 = getelementptr inbounds %union.anon* %51, i32 0, i32 0 ; [#uses=1]
+ %53 = bitcast double* %52 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %49, %union.GCObject** %53, align 4
+ %54 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.lua_TValue* %54, i32 0, i32 1 ; [#uses=1]
+ store i32 5, i32* %55, align 4
+ %56 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.lua_State* %56, i32 0, i32 4 ; [#uses=2]
+ %58 = load %struct.lua_TValue** %57, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.lua_TValue* %58, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %59, %struct.lua_TValue** %57, align 4
+ store i32 1, i32* %res, align 4
+ br label %60
+
+; <label>:60 ; preds = %44, %43
+ %61 = load i32* %res, align 4 ; [#uses=1]
+ ret i32 %61
+}
+
+; [#uses=3]
+define void @_Z11lua_getfenvP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %o, align 4
+ %6 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_TValue* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ switch i32 %8, label %73 [
+ i32 6, label %9
+ i32 7, label %30
+ i32 8, label %51
+ ]
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_State* %10, i32 0, i32 4 ; [#uses=1]
+ %12 = load %struct.lua_TValue** %11, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %12, %struct.lua_TValue** %i_o, align 4
+ %13 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_TValue* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = getelementptr inbounds %union.anon* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = bitcast double* %15 to %union.GCObject** ; [#uses=1]
+ %17 = load %union.GCObject** %16, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %union.GCObject* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = bitcast %struct.lua_State* %18 to %union.Closure* ; [#uses=1]
+ %20 = getelementptr inbounds %union.Closure* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.CClosure* %20, i32 0, i32 6 ; [#uses=1]
+ %22 = load %struct.Table** %21, align 4 ; [#uses=1]
+ %23 = bitcast %struct.Table* %22 to %union.GCObject* ; [#uses=1]
+ %24 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.lua_TValue* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = getelementptr inbounds %union.anon* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = bitcast double* %26 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %23, %union.GCObject** %27, align 4
+ %28 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_TValue* %28, i32 0, i32 1 ; [#uses=1]
+ store i32 5, i32* %29, align 4
+ br label %78
+
+; <label>:30 ; preds = %0
+ %31 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_State* %31, i32 0, i32 4 ; [#uses=1]
+ %33 = load %struct.lua_TValue** %32, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %33, %struct.lua_TValue** %i_o1, align 4
+ %34 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_TValue* %34, i32 0, i32 0 ; [#uses=1]
+ %36 = getelementptr inbounds %union.anon* %35, i32 0, i32 0 ; [#uses=1]
+ %37 = bitcast double* %36 to %union.GCObject** ; [#uses=1]
+ %38 = load %union.GCObject** %37, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %union.GCObject* %38, i32 0, i32 0 ; [#uses=1]
+ %40 = bitcast %struct.lua_State* %39 to %union.Udata* ; [#uses=1]
+ %41 = getelementptr inbounds %union.Udata* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = getelementptr inbounds %4* %41, i32 0, i32 4 ; [#uses=1]
+ %43 = load %struct.Table** %42, align 4 ; [#uses=1]
+ %44 = bitcast %struct.Table* %43 to %union.GCObject* ; [#uses=1]
+ %45 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.lua_TValue* %45, i32 0, i32 0 ; [#uses=1]
+ %47 = getelementptr inbounds %union.anon* %46, i32 0, i32 0 ; [#uses=1]
+ %48 = bitcast double* %47 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %44, %union.GCObject** %48, align 4
+ %49 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.lua_TValue* %49, i32 0, i32 1 ; [#uses=1]
+ store i32 5, i32* %50, align 4
+ br label %78
+
+; <label>:51 ; preds = %0
+ %52 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.lua_TValue* %52, i32 0, i32 0 ; [#uses=1]
+ %54 = getelementptr inbounds %union.anon* %53, i32 0, i32 0 ; [#uses=1]
+ %55 = bitcast double* %54 to %union.GCObject** ; [#uses=1]
+ %56 = load %union.GCObject** %55, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %union.GCObject* %56, i32 0, i32 0 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.lua_State* %57, i32 0, i32 22 ; [#uses=1]
+ store %struct.lua_TValue* %58, %struct.lua_TValue** %o2, align 4
+ %59 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.lua_State* %59, i32 0, i32 4 ; [#uses=1]
+ %61 = load %struct.lua_TValue** %60, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %61, %struct.lua_TValue** %o1, align 4
+ %62 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.lua_TValue* %62, i32 0, i32 0 ; [#uses=1]
+ %64 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %struct.lua_TValue* %64, i32 0, i32 0 ; [#uses=1]
+ %66 = bitcast %union.anon* %63 to i8* ; [#uses=1]
+ %67 = bitcast %union.anon* %65 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %66, i8* %67, i32 8, i32 4, i1 false)
+ %68 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.lua_TValue* %68, i32 0, i32 1 ; [#uses=1]
+ %70 = load i32* %69, align 4 ; [#uses=1]
+ %71 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.lua_TValue* %71, i32 0, i32 1 ; [#uses=1]
+ store i32 %70, i32* %72, align 4
+ br label %78
+
+; <label>:73 ; preds = %0
+ %74 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %75 = getelementptr inbounds %struct.lua_State* %74, i32 0, i32 4 ; [#uses=1]
+ %76 = load %struct.lua_TValue** %75, align 4 ; [#uses=1]
+ %77 = getelementptr inbounds %struct.lua_TValue* %76, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %77, align 4
+ br label %78
+
+; <label>:78 ; preds = %73, %51, %30, %9
+ %79 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %80 = getelementptr inbounds %struct.lua_State* %79, i32 0, i32 4 ; [#uses=2]
+ %81 = load %struct.lua_TValue** %80, align 4 ; [#uses=1]
+ %82 = getelementptr inbounds %struct.lua_TValue* %81, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %82, %struct.lua_TValue** %80, align 4
+ ret void
+}
+
+; [#uses=2]
+define void @_Z12lua_settableP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %t = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %t, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load %struct.lua_TValue** %t, align 4 ; [#uses=1]
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_State* %8, i32 0, i32 4 ; [#uses=1]
+ %10 = load %struct.lua_TValue** %9, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_TValue* %10, i32 -2 ; [#uses=1]
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.lua_State* %12, i32 0, i32 4 ; [#uses=1]
+ %14 = load %struct.lua_TValue** %13, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_TValue* %14, i32 -1 ; [#uses=1]
+ call void @_Z13luaV_settableP9lua_StatePK10lua_TValuePS1_S4_(%struct.lua_State* %6, %struct.lua_TValue* %7, %struct.lua_TValue* %11, %struct.lua_TValue* %15)
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_State* %16, i32 0, i32 4 ; [#uses=2]
+ %18 = load %struct.lua_TValue** %17, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_TValue* %18, i32 -2 ; [#uses=1]
+ store %struct.lua_TValue* %19, %struct.lua_TValue** %17, align 4
+ ret void
+}
+
+; [#uses=36]
+define void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %L, i32 %idx, i8* %k) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i8*, align 4 ; [#uses=3]
+ %t = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %key = alloca %struct.lua_TValue, align 4 ; [#uses=2]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ store i8* %k, i8** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ store %struct.lua_TValue* %6, %struct.lua_TValue** %t, align 4
+ store %struct.lua_TValue* %key, %struct.lua_TValue** %i_o, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load i8** %3, align 4 ; [#uses=1]
+ %9 = load i8** %3, align 4 ; [#uses=1]
+ %10 = call i32 @strlen(i8* %9) ; [#uses=1]
+ %11 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %7, i8* %8, i32 %10) ; [#uses=1]
+ %12 = bitcast %union.TString* %11 to %union.GCObject* ; [#uses=1]
+ %13 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_TValue* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = getelementptr inbounds %union.anon* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = bitcast double* %15 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %12, %union.GCObject** %16, align 4
+ %17 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_TValue* %17, i32 0, i32 1 ; [#uses=1]
+ store i32 4, i32* %18, align 4
+ %19 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %20 = load %struct.lua_TValue** %t, align 4 ; [#uses=1]
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_State* %21, i32 0, i32 4 ; [#uses=1]
+ %23 = load %struct.lua_TValue** %22, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_TValue* %23, i32 -1 ; [#uses=1]
+ call void @_Z13luaV_settableP9lua_StatePK10lua_TValuePS1_S4_(%struct.lua_State* %19, %struct.lua_TValue* %20, %struct.lua_TValue* %key, %struct.lua_TValue* %24)
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_State* %25, i32 0, i32 4 ; [#uses=2]
+ %27 = load %struct.lua_TValue** %26, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_TValue* %27, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %28, %struct.lua_TValue** %26, align 4
+ ret void
+}
+
+; [#uses=4]
+define void @_Z10lua_rawsetP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %t = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %t, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 4 ; [#uses=1]
+ %8 = load %struct.lua_TValue** %7, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_TValue* %8, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %9, %struct.lua_TValue** %o2, align 4
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = load %struct.lua_TValue** %t, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = getelementptr inbounds %union.anon* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = bitcast double* %13 to %union.GCObject** ; [#uses=1]
+ %15 = load %union.GCObject** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %union.GCObject* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = bitcast %struct.lua_State* %16 to %struct.Table* ; [#uses=1]
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_State* %18, i32 0, i32 4 ; [#uses=1]
+ %20 = load %struct.lua_TValue** %19, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_TValue* %20, i32 -2 ; [#uses=1]
+ %22 = call %struct.lua_TValue* @_Z8luaH_setP9lua_StateP5TablePK10lua_TValue(%struct.lua_State* %10, %struct.Table* %17, %struct.lua_TValue* %21) ; [#uses=1]
+ store %struct.lua_TValue* %22, %struct.lua_TValue** %o1, align 4
+ %23 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_TValue* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_TValue* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = bitcast %union.anon* %24 to i8* ; [#uses=1]
+ %28 = bitcast %union.anon* %26 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %27, i8* %28, i32 8, i32 4, i1 false)
+ %29 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_TValue* %29, i32 0, i32 1 ; [#uses=1]
+ %31 = load i32* %30, align 4 ; [#uses=1]
+ %32 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_TValue* %32, i32 0, i32 1 ; [#uses=1]
+ store i32 %31, i32* %33, align 4
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_State* %34, i32 0, i32 4 ; [#uses=1]
+ %36 = load %struct.lua_TValue** %35, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.lua_TValue* %36, i32 -1 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.lua_TValue* %37, i32 0, i32 1 ; [#uses=1]
+ %39 = load i32* %38, align 4 ; [#uses=1]
+ %40 = icmp sge i32 %39, 4 ; [#uses=1]
+ br i1 %40, label %41, label %82
+
+; <label>:41 ; preds = %0
+ %42 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.lua_State* %42, i32 0, i32 4 ; [#uses=1]
+ %44 = load %struct.lua_TValue** %43, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.lua_TValue* %44, i32 -1 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.lua_TValue* %45, i32 0, i32 0 ; [#uses=1]
+ %47 = getelementptr inbounds %union.anon* %46, i32 0, i32 0 ; [#uses=1]
+ %48 = bitcast double* %47 to %union.GCObject** ; [#uses=1]
+ %49 = load %union.GCObject** %48, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %union.GCObject* %49, i32 0, i32 0 ; [#uses=1]
+ %51 = bitcast %struct.lua_State* %50 to %struct.GCheader* ; [#uses=1]
+ %52 = getelementptr inbounds %struct.GCheader* %51, i32 0, i32 2 ; [#uses=1]
+ %53 = load i8* %52, align 1 ; [#uses=1]
+ %54 = zext i8 %53 to i32 ; [#uses=1]
+ %55 = and i32 %54, 3 ; [#uses=1]
+ %56 = icmp ne i32 %55, 0 ; [#uses=1]
+ br i1 %56, label %57, label %82
+
+; <label>:57 ; preds = %41
+ %58 = load %struct.lua_TValue** %t, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.lua_TValue* %58, i32 0, i32 0 ; [#uses=1]
+ %60 = getelementptr inbounds %union.anon* %59, i32 0, i32 0 ; [#uses=1]
+ %61 = bitcast double* %60 to %union.GCObject** ; [#uses=1]
+ %62 = load %union.GCObject** %61, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %union.GCObject* %62, i32 0, i32 0 ; [#uses=1]
+ %64 = bitcast %struct.lua_State* %63 to %struct.Table* ; [#uses=1]
+ %65 = bitcast %struct.Table* %64 to %union.GCObject* ; [#uses=1]
+ %66 = getelementptr inbounds %union.GCObject* %65, i32 0, i32 0 ; [#uses=1]
+ %67 = bitcast %struct.lua_State* %66 to %struct.GCheader* ; [#uses=1]
+ %68 = getelementptr inbounds %struct.GCheader* %67, i32 0, i32 2 ; [#uses=1]
+ %69 = load i8* %68, align 1 ; [#uses=1]
+ %70 = zext i8 %69 to i32 ; [#uses=1]
+ %71 = and i32 %70, 4 ; [#uses=1]
+ %72 = icmp ne i32 %71, 0 ; [#uses=1]
+ br i1 %72, label %73, label %82
+
+; <label>:73 ; preds = %57
+ %74 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %75 = load %struct.lua_TValue** %t, align 4 ; [#uses=1]
+ %76 = getelementptr inbounds %struct.lua_TValue* %75, i32 0, i32 0 ; [#uses=1]
+ %77 = getelementptr inbounds %union.anon* %76, i32 0, i32 0 ; [#uses=1]
+ %78 = bitcast double* %77 to %union.GCObject** ; [#uses=1]
+ %79 = load %union.GCObject** %78, align 4 ; [#uses=1]
+ %80 = getelementptr inbounds %union.GCObject* %79, i32 0, i32 0 ; [#uses=1]
+ %81 = bitcast %struct.lua_State* %80 to %struct.Table* ; [#uses=1]
+ call void @_Z16luaC_barrierbackP9lua_StateP5Table(%struct.lua_State* %74, %struct.Table* %81)
+ br label %82
+
+; <label>:82 ; preds = %73, %57, %41, %0
+ %83 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %84 = getelementptr inbounds %struct.lua_State* %83, i32 0, i32 4 ; [#uses=2]
+ %85 = load %struct.lua_TValue** %84, align 4 ; [#uses=1]
+ %86 = getelementptr inbounds %struct.lua_TValue* %85, i32 -2 ; [#uses=1]
+ store %struct.lua_TValue* %86, %struct.lua_TValue** %84, align 4
+ ret void
+}
+
+; [#uses=14]
+define void @_Z11lua_rawsetiP9lua_Stateii(%struct.lua_State* %L, i32 %idx, i32 %n) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ store i32 %n, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ store %struct.lua_TValue* %6, %struct.lua_TValue** %o, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_State* %7, i32 0, i32 4 ; [#uses=1]
+ %9 = load %struct.lua_TValue** %8, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_TValue* %9, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %10, %struct.lua_TValue** %o2, align 4
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.lua_TValue* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = getelementptr inbounds %union.anon* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = bitcast double* %14 to %union.GCObject** ; [#uses=1]
+ %16 = load %union.GCObject** %15, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %union.GCObject* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = bitcast %struct.lua_State* %17 to %struct.Table* ; [#uses=1]
+ %19 = load i32* %3, align 4 ; [#uses=1]
+ %20 = call %struct.lua_TValue* @_Z11luaH_setnumP9lua_StateP5Tablei(%struct.lua_State* %11, %struct.Table* %18, i32 %19) ; [#uses=1]
+ store %struct.lua_TValue* %20, %struct.lua_TValue** %o1, align 4
+ %21 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_TValue* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_TValue* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = bitcast %union.anon* %22 to i8* ; [#uses=1]
+ %26 = bitcast %union.anon* %24 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %25, i8* %26, i32 8, i32 4, i1 false)
+ %27 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_TValue* %27, i32 0, i32 1 ; [#uses=1]
+ %29 = load i32* %28, align 4 ; [#uses=1]
+ %30 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_TValue* %30, i32 0, i32 1 ; [#uses=1]
+ store i32 %29, i32* %31, align 4
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_State* %32, i32 0, i32 4 ; [#uses=1]
+ %34 = load %struct.lua_TValue** %33, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_TValue* %34, i32 -1 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.lua_TValue* %35, i32 0, i32 1 ; [#uses=1]
+ %37 = load i32* %36, align 4 ; [#uses=1]
+ %38 = icmp sge i32 %37, 4 ; [#uses=1]
+ br i1 %38, label %39, label %80
+
+; <label>:39 ; preds = %0
+ %40 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.lua_State* %40, i32 0, i32 4 ; [#uses=1]
+ %42 = load %struct.lua_TValue** %41, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.lua_TValue* %42, i32 -1 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.lua_TValue* %43, i32 0, i32 0 ; [#uses=1]
+ %45 = getelementptr inbounds %union.anon* %44, i32 0, i32 0 ; [#uses=1]
+ %46 = bitcast double* %45 to %union.GCObject** ; [#uses=1]
+ %47 = load %union.GCObject** %46, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %union.GCObject* %47, i32 0, i32 0 ; [#uses=1]
+ %49 = bitcast %struct.lua_State* %48 to %struct.GCheader* ; [#uses=1]
+ %50 = getelementptr inbounds %struct.GCheader* %49, i32 0, i32 2 ; [#uses=1]
+ %51 = load i8* %50, align 1 ; [#uses=1]
+ %52 = zext i8 %51 to i32 ; [#uses=1]
+ %53 = and i32 %52, 3 ; [#uses=1]
+ %54 = icmp ne i32 %53, 0 ; [#uses=1]
+ br i1 %54, label %55, label %80
+
+; <label>:55 ; preds = %39
+ %56 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.lua_TValue* %56, i32 0, i32 0 ; [#uses=1]
+ %58 = getelementptr inbounds %union.anon* %57, i32 0, i32 0 ; [#uses=1]
+ %59 = bitcast double* %58 to %union.GCObject** ; [#uses=1]
+ %60 = load %union.GCObject** %59, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %union.GCObject* %60, i32 0, i32 0 ; [#uses=1]
+ %62 = bitcast %struct.lua_State* %61 to %struct.Table* ; [#uses=1]
+ %63 = bitcast %struct.Table* %62 to %union.GCObject* ; [#uses=1]
+ %64 = getelementptr inbounds %union.GCObject* %63, i32 0, i32 0 ; [#uses=1]
+ %65 = bitcast %struct.lua_State* %64 to %struct.GCheader* ; [#uses=1]
+ %66 = getelementptr inbounds %struct.GCheader* %65, i32 0, i32 2 ; [#uses=1]
+ %67 = load i8* %66, align 1 ; [#uses=1]
+ %68 = zext i8 %67 to i32 ; [#uses=1]
+ %69 = and i32 %68, 4 ; [#uses=1]
+ %70 = icmp ne i32 %69, 0 ; [#uses=1]
+ br i1 %70, label %71, label %80
+
+; <label>:71 ; preds = %55
+ %72 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %73 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.lua_TValue* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = getelementptr inbounds %union.anon* %74, i32 0, i32 0 ; [#uses=1]
+ %76 = bitcast double* %75 to %union.GCObject** ; [#uses=1]
+ %77 = load %union.GCObject** %76, align 4 ; [#uses=1]
+ %78 = getelementptr inbounds %union.GCObject* %77, i32 0, i32 0 ; [#uses=1]
+ %79 = bitcast %struct.lua_State* %78 to %struct.Table* ; [#uses=1]
+ call void @_Z16luaC_barrierbackP9lua_StateP5Table(%struct.lua_State* %72, %struct.Table* %79)
+ br label %80
+
+; <label>:80 ; preds = %71, %55, %39, %0
+ %81 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %82 = getelementptr inbounds %struct.lua_State* %81, i32 0, i32 4 ; [#uses=2]
+ %83 = load %struct.lua_TValue** %82, align 4 ; [#uses=1]
+ %84 = getelementptr inbounds %struct.lua_TValue* %83, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %84, %struct.lua_TValue** %82, align 4
+ ret void
+}
+
+; [#uses=8]
+define i32 @_Z16lua_setmetatableP9lua_Statei(%struct.lua_State* %L, i32 %objindex) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %obj = alloca %struct.lua_TValue*, align 4 ; [#uses=9]
+ %mt = alloca %struct.Table*, align 4 ; [#uses=10]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %objindex, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %obj, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 4 ; [#uses=1]
+ %8 = load %struct.lua_TValue** %7, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_TValue* %8, i32 -1 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_TValue* %9, i32 0, i32 1 ; [#uses=1]
+ %11 = load i32* %10, align 4 ; [#uses=1]
+ %12 = icmp eq i32 %11, 0 ; [#uses=1]
+ br i1 %12, label %13, label %14
+
+; <label>:13 ; preds = %0
+ store %struct.Table* null, %struct.Table** %mt, align 4
+ br label %25
+
+; <label>:14 ; preds = %0
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_State* %15, i32 0, i32 4 ; [#uses=1]
+ %17 = load %struct.lua_TValue** %16, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_TValue* %17, i32 -1 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_TValue* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = getelementptr inbounds %union.anon* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = bitcast double* %20 to %union.GCObject** ; [#uses=1]
+ %22 = load %union.GCObject** %21, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %union.GCObject* %22, i32 0, i32 0 ; [#uses=1]
+ %24 = bitcast %struct.lua_State* %23 to %struct.Table* ; [#uses=1]
+ store %struct.Table* %24, %struct.Table** %mt, align 4
+ br label %25
+
+; <label>:25 ; preds = %14, %13
+ %26 = load %struct.lua_TValue** %obj, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_TValue* %26, i32 0, i32 1 ; [#uses=1]
+ %28 = load i32* %27, align 4 ; [#uses=1]
+ switch i32 %28, label %131 [
+ i32 5, label %29
+ i32 7, label %78
+ ]
+
+; <label>:29 ; preds = %25
+ %30 = load %struct.Table** %mt, align 4 ; [#uses=1]
+ %31 = load %struct.lua_TValue** %obj, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_TValue* %31, i32 0, i32 0 ; [#uses=1]
+ %33 = getelementptr inbounds %union.anon* %32, i32 0, i32 0 ; [#uses=1]
+ %34 = bitcast double* %33 to %union.GCObject** ; [#uses=1]
+ %35 = load %union.GCObject** %34, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %union.GCObject* %35, i32 0, i32 0 ; [#uses=1]
+ %37 = bitcast %struct.lua_State* %36 to %struct.Table* ; [#uses=1]
+ %38 = getelementptr inbounds %struct.Table* %37, i32 0, i32 5 ; [#uses=1]
+ store %struct.Table* %30, %struct.Table** %38, align 4
+ %39 = load %struct.Table** %mt, align 4 ; [#uses=1]
+ %40 = icmp ne %struct.Table* %39, null ; [#uses=1]
+ br i1 %40, label %41, label %77
+
+; <label>:41 ; preds = %29
+ %42 = load %struct.Table** %mt, align 4 ; [#uses=1]
+ %43 = bitcast %struct.Table* %42 to %union.GCObject* ; [#uses=1]
+ %44 = getelementptr inbounds %union.GCObject* %43, i32 0, i32 0 ; [#uses=1]
+ %45 = bitcast %struct.lua_State* %44 to %struct.GCheader* ; [#uses=1]
+ %46 = getelementptr inbounds %struct.GCheader* %45, i32 0, i32 2 ; [#uses=1]
+ %47 = load i8* %46, align 1 ; [#uses=1]
+ %48 = zext i8 %47 to i32 ; [#uses=1]
+ %49 = and i32 %48, 3 ; [#uses=1]
+ %50 = icmp ne i32 %49, 0 ; [#uses=1]
+ br i1 %50, label %51, label %76
+
+; <label>:51 ; preds = %41
+ %52 = load %struct.lua_TValue** %obj, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.lua_TValue* %52, i32 0, i32 0 ; [#uses=1]
+ %54 = getelementptr inbounds %union.anon* %53, i32 0, i32 0 ; [#uses=1]
+ %55 = bitcast double* %54 to %union.GCObject** ; [#uses=1]
+ %56 = load %union.GCObject** %55, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %union.GCObject* %56, i32 0, i32 0 ; [#uses=1]
+ %58 = bitcast %struct.lua_State* %57 to %struct.Table* ; [#uses=1]
+ %59 = bitcast %struct.Table* %58 to %union.GCObject* ; [#uses=1]
+ %60 = getelementptr inbounds %union.GCObject* %59, i32 0, i32 0 ; [#uses=1]
+ %61 = bitcast %struct.lua_State* %60 to %struct.GCheader* ; [#uses=1]
+ %62 = getelementptr inbounds %struct.GCheader* %61, i32 0, i32 2 ; [#uses=1]
+ %63 = load i8* %62, align 1 ; [#uses=1]
+ %64 = zext i8 %63 to i32 ; [#uses=1]
+ %65 = and i32 %64, 4 ; [#uses=1]
+ %66 = icmp ne i32 %65, 0 ; [#uses=1]
+ br i1 %66, label %67, label %76
+
+; <label>:67 ; preds = %51
+ %68 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %69 = load %struct.lua_TValue** %obj, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.lua_TValue* %69, i32 0, i32 0 ; [#uses=1]
+ %71 = getelementptr inbounds %union.anon* %70, i32 0, i32 0 ; [#uses=1]
+ %72 = bitcast double* %71 to %union.GCObject** ; [#uses=1]
+ %73 = load %union.GCObject** %72, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %union.GCObject* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = bitcast %struct.lua_State* %74 to %struct.Table* ; [#uses=1]
+ call void @_Z16luaC_barrierbackP9lua_StateP5Table(%struct.lua_State* %68, %struct.Table* %75)
+ br label %76
+
+; <label>:76 ; preds = %67, %51, %41
+ br label %77
+
+; <label>:77 ; preds = %76, %29
+ br label %141
+
+; <label>:78 ; preds = %25
+ %79 = load %struct.Table** %mt, align 4 ; [#uses=1]
+ %80 = load %struct.lua_TValue** %obj, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.lua_TValue* %80, i32 0, i32 0 ; [#uses=1]
+ %82 = getelementptr inbounds %union.anon* %81, i32 0, i32 0 ; [#uses=1]
+ %83 = bitcast double* %82 to %union.GCObject** ; [#uses=1]
+ %84 = load %union.GCObject** %83, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %union.GCObject* %84, i32 0, i32 0 ; [#uses=1]
+ %86 = bitcast %struct.lua_State* %85 to %union.Udata* ; [#uses=1]
+ %87 = getelementptr inbounds %union.Udata* %86, i32 0, i32 0 ; [#uses=1]
+ %88 = getelementptr inbounds %4* %87, i32 0, i32 3 ; [#uses=1]
+ store %struct.Table* %79, %struct.Table** %88, align 4
+ %89 = load %struct.Table** %mt, align 4 ; [#uses=1]
+ %90 = icmp ne %struct.Table* %89, null ; [#uses=1]
+ br i1 %90, label %91, label %130
+
+; <label>:91 ; preds = %78
+ %92 = load %struct.Table** %mt, align 4 ; [#uses=1]
+ %93 = bitcast %struct.Table* %92 to %union.GCObject* ; [#uses=1]
+ %94 = getelementptr inbounds %union.GCObject* %93, i32 0, i32 0 ; [#uses=1]
+ %95 = bitcast %struct.lua_State* %94 to %struct.GCheader* ; [#uses=1]
+ %96 = getelementptr inbounds %struct.GCheader* %95, i32 0, i32 2 ; [#uses=1]
+ %97 = load i8* %96, align 1 ; [#uses=1]
+ %98 = zext i8 %97 to i32 ; [#uses=1]
+ %99 = and i32 %98, 3 ; [#uses=1]
+ %100 = icmp ne i32 %99, 0 ; [#uses=1]
+ br i1 %100, label %101, label %129
+
+; <label>:101 ; preds = %91
+ %102 = load %struct.lua_TValue** %obj, align 4 ; [#uses=1]
+ %103 = getelementptr inbounds %struct.lua_TValue* %102, i32 0, i32 0 ; [#uses=1]
+ %104 = getelementptr inbounds %union.anon* %103, i32 0, i32 0 ; [#uses=1]
+ %105 = bitcast double* %104 to %union.GCObject** ; [#uses=1]
+ %106 = load %union.GCObject** %105, align 4 ; [#uses=1]
+ %107 = getelementptr inbounds %union.GCObject* %106, i32 0, i32 0 ; [#uses=1]
+ %108 = bitcast %struct.lua_State* %107 to %union.Udata* ; [#uses=1]
+ %109 = bitcast %union.Udata* %108 to %union.GCObject* ; [#uses=1]
+ %110 = getelementptr inbounds %union.GCObject* %109, i32 0, i32 0 ; [#uses=1]
+ %111 = bitcast %struct.lua_State* %110 to %struct.GCheader* ; [#uses=1]
+ %112 = getelementptr inbounds %struct.GCheader* %111, i32 0, i32 2 ; [#uses=1]
+ %113 = load i8* %112, align 1 ; [#uses=1]
+ %114 = zext i8 %113 to i32 ; [#uses=1]
+ %115 = and i32 %114, 4 ; [#uses=1]
+ %116 = icmp ne i32 %115, 0 ; [#uses=1]
+ br i1 %116, label %117, label %129
+
+; <label>:117 ; preds = %101
+ %118 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %119 = load %struct.lua_TValue** %obj, align 4 ; [#uses=1]
+ %120 = getelementptr inbounds %struct.lua_TValue* %119, i32 0, i32 0 ; [#uses=1]
+ %121 = getelementptr inbounds %union.anon* %120, i32 0, i32 0 ; [#uses=1]
+ %122 = bitcast double* %121 to %union.GCObject** ; [#uses=1]
+ %123 = load %union.GCObject** %122, align 4 ; [#uses=1]
+ %124 = getelementptr inbounds %union.GCObject* %123, i32 0, i32 0 ; [#uses=1]
+ %125 = bitcast %struct.lua_State* %124 to %union.Udata* ; [#uses=1]
+ %126 = bitcast %union.Udata* %125 to %union.GCObject* ; [#uses=1]
+ %127 = load %struct.Table** %mt, align 4 ; [#uses=1]
+ %128 = bitcast %struct.Table* %127 to %union.GCObject* ; [#uses=1]
+ call void @_Z13luaC_barrierfP9lua_StateP8GCObjectS2_(%struct.lua_State* %118, %union.GCObject* %126, %union.GCObject* %128)
+ br label %129
+
+; <label>:129 ; preds = %117, %101, %91
+ br label %130
+
+; <label>:130 ; preds = %129, %78
+ br label %141
+
+; <label>:131 ; preds = %25
+ %132 = load %struct.Table** %mt, align 4 ; [#uses=1]
+ %133 = load %struct.lua_TValue** %obj, align 4 ; [#uses=1]
+ %134 = getelementptr inbounds %struct.lua_TValue* %133, i32 0, i32 1 ; [#uses=1]
+ %135 = load i32* %134, align 4 ; [#uses=1]
+ %136 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %137 = getelementptr inbounds %struct.lua_State* %136, i32 0, i32 6 ; [#uses=1]
+ %138 = load %struct.global_State** %137, align 4 ; [#uses=1]
+ %139 = getelementptr inbounds %struct.global_State* %138, i32 0, i32 23 ; [#uses=1]
+ %140 = getelementptr inbounds [9 x %struct.Table*]* %139, i32 0, i32 %135 ; [#uses=1]
+ store %struct.Table* %132, %struct.Table** %140
+ br label %141
+
+; <label>:141 ; preds = %131, %130, %77
+ %142 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %143 = getelementptr inbounds %struct.lua_State* %142, i32 0, i32 4 ; [#uses=2]
+ %144 = load %struct.lua_TValue** %143, align 4 ; [#uses=1]
+ %145 = getelementptr inbounds %struct.lua_TValue* %144, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %145, %struct.lua_TValue** %143, align 4
+ ret i32 1
+}
+
+; [#uses=6]
+define i32 @_Z11lua_setfenvP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=7]
+ %res = alloca i32, align 4 ; [#uses=4]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ store i32 1, i32* %res, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %o, align 4
+ %6 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_TValue* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ switch i32 %8, label %74 [
+ i32 6, label %9
+ i32 7, label %29
+ i32 8, label %49
+ ]
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_State* %10, i32 0, i32 4 ; [#uses=1]
+ %12 = load %struct.lua_TValue** %11, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.lua_TValue* %12, i32 -1 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_TValue* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = getelementptr inbounds %union.anon* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = bitcast double* %15 to %union.GCObject** ; [#uses=1]
+ %17 = load %union.GCObject** %16, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %union.GCObject* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = bitcast %struct.lua_State* %18 to %struct.Table* ; [#uses=1]
+ %20 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_TValue* %20, i32 0, i32 0 ; [#uses=1]
+ %22 = getelementptr inbounds %union.anon* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = bitcast double* %22 to %union.GCObject** ; [#uses=1]
+ %24 = load %union.GCObject** %23, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %union.GCObject* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = bitcast %struct.lua_State* %25 to %union.Closure* ; [#uses=1]
+ %27 = getelementptr inbounds %union.Closure* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.CClosure* %27, i32 0, i32 6 ; [#uses=1]
+ store %struct.Table* %19, %struct.Table** %28, align 4
+ br label %75
+
+; <label>:29 ; preds = %0
+ %30 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_State* %30, i32 0, i32 4 ; [#uses=1]
+ %32 = load %struct.lua_TValue** %31, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_TValue* %32, i32 -1 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_TValue* %33, i32 0, i32 0 ; [#uses=1]
+ %35 = getelementptr inbounds %union.anon* %34, i32 0, i32 0 ; [#uses=1]
+ %36 = bitcast double* %35 to %union.GCObject** ; [#uses=1]
+ %37 = load %union.GCObject** %36, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %union.GCObject* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = bitcast %struct.lua_State* %38 to %struct.Table* ; [#uses=1]
+ %40 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.lua_TValue* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = getelementptr inbounds %union.anon* %41, i32 0, i32 0 ; [#uses=1]
+ %43 = bitcast double* %42 to %union.GCObject** ; [#uses=1]
+ %44 = load %union.GCObject** %43, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %union.GCObject* %44, i32 0, i32 0 ; [#uses=1]
+ %46 = bitcast %struct.lua_State* %45 to %union.Udata* ; [#uses=1]
+ %47 = getelementptr inbounds %union.Udata* %46, i32 0, i32 0 ; [#uses=1]
+ %48 = getelementptr inbounds %4* %47, i32 0, i32 4 ; [#uses=1]
+ store %struct.Table* %39, %struct.Table** %48, align 4
+ br label %75
+
+; <label>:49 ; preds = %0
+ %50 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.lua_TValue* %50, i32 0, i32 0 ; [#uses=1]
+ %52 = getelementptr inbounds %union.anon* %51, i32 0, i32 0 ; [#uses=1]
+ %53 = bitcast double* %52 to %union.GCObject** ; [#uses=1]
+ %54 = load %union.GCObject** %53, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %union.GCObject* %54, i32 0, i32 0 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.lua_State* %55, i32 0, i32 22 ; [#uses=1]
+ store %struct.lua_TValue* %56, %struct.lua_TValue** %i_o, align 4
+ %57 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.lua_State* %57, i32 0, i32 4 ; [#uses=1]
+ %59 = load %struct.lua_TValue** %58, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.lua_TValue* %59, i32 -1 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.lua_TValue* %60, i32 0, i32 0 ; [#uses=1]
+ %62 = getelementptr inbounds %union.anon* %61, i32 0, i32 0 ; [#uses=1]
+ %63 = bitcast double* %62 to %union.GCObject** ; [#uses=1]
+ %64 = load %union.GCObject** %63, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %union.GCObject* %64, i32 0, i32 0 ; [#uses=1]
+ %66 = bitcast %struct.lua_State* %65 to %struct.Table* ; [#uses=1]
+ %67 = bitcast %struct.Table* %66 to %union.GCObject* ; [#uses=1]
+ %68 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.lua_TValue* %68, i32 0, i32 0 ; [#uses=1]
+ %70 = getelementptr inbounds %union.anon* %69, i32 0, i32 0 ; [#uses=1]
+ %71 = bitcast double* %70 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %67, %union.GCObject** %71, align 4
+ %72 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.lua_TValue* %72, i32 0, i32 1 ; [#uses=1]
+ store i32 5, i32* %73, align 4
+ br label %75
+
+; <label>:74 ; preds = %0
+ store i32 0, i32* %res, align 4
+ br label %75
+
+; <label>:75 ; preds = %74, %49, %29, %9
+ %76 = load i32* %res, align 4 ; [#uses=1]
+ %77 = icmp ne i32 %76, 0 ; [#uses=1]
+ br i1 %77, label %78, label %129
+
+; <label>:78 ; preds = %75
+ %79 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %80 = getelementptr inbounds %struct.lua_State* %79, i32 0, i32 4 ; [#uses=1]
+ %81 = load %struct.lua_TValue** %80, align 4 ; [#uses=1]
+ %82 = getelementptr inbounds %struct.lua_TValue* %81, i32 -1 ; [#uses=1]
+ %83 = getelementptr inbounds %struct.lua_TValue* %82, i32 0, i32 0 ; [#uses=1]
+ %84 = getelementptr inbounds %union.anon* %83, i32 0, i32 0 ; [#uses=1]
+ %85 = bitcast double* %84 to %union.GCObject** ; [#uses=1]
+ %86 = load %union.GCObject** %85, align 4 ; [#uses=1]
+ %87 = getelementptr inbounds %union.GCObject* %86, i32 0, i32 0 ; [#uses=1]
+ %88 = bitcast %struct.lua_State* %87 to %struct.Table* ; [#uses=1]
+ %89 = bitcast %struct.Table* %88 to %union.GCObject* ; [#uses=1]
+ %90 = getelementptr inbounds %union.GCObject* %89, i32 0, i32 0 ; [#uses=1]
+ %91 = bitcast %struct.lua_State* %90 to %struct.GCheader* ; [#uses=1]
+ %92 = getelementptr inbounds %struct.GCheader* %91, i32 0, i32 2 ; [#uses=1]
+ %93 = load i8* %92, align 1 ; [#uses=1]
+ %94 = zext i8 %93 to i32 ; [#uses=1]
+ %95 = and i32 %94, 3 ; [#uses=1]
+ %96 = icmp ne i32 %95, 0 ; [#uses=1]
+ br i1 %96, label %97, label %128
+
+; <label>:97 ; preds = %78
+ %98 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %99 = getelementptr inbounds %struct.lua_TValue* %98, i32 0, i32 0 ; [#uses=1]
+ %100 = getelementptr inbounds %union.anon* %99, i32 0, i32 0 ; [#uses=1]
+ %101 = bitcast double* %100 to %union.GCObject** ; [#uses=1]
+ %102 = load %union.GCObject** %101, align 4 ; [#uses=1]
+ %103 = getelementptr inbounds %union.GCObject* %102, i32 0, i32 0 ; [#uses=1]
+ %104 = bitcast %struct.lua_State* %103 to %struct.GCheader* ; [#uses=1]
+ %105 = getelementptr inbounds %struct.GCheader* %104, i32 0, i32 2 ; [#uses=1]
+ %106 = load i8* %105, align 1 ; [#uses=1]
+ %107 = zext i8 %106 to i32 ; [#uses=1]
+ %108 = and i32 %107, 4 ; [#uses=1]
+ %109 = icmp ne i32 %108, 0 ; [#uses=1]
+ br i1 %109, label %110, label %128
+
+; <label>:110 ; preds = %97
+ %111 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %112 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %113 = getelementptr inbounds %struct.lua_TValue* %112, i32 0, i32 0 ; [#uses=1]
+ %114 = getelementptr inbounds %union.anon* %113, i32 0, i32 0 ; [#uses=1]
+ %115 = bitcast double* %114 to %union.GCObject** ; [#uses=1]
+ %116 = load %union.GCObject** %115, align 4 ; [#uses=1]
+ %117 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %118 = getelementptr inbounds %struct.lua_State* %117, i32 0, i32 4 ; [#uses=1]
+ %119 = load %struct.lua_TValue** %118, align 4 ; [#uses=1]
+ %120 = getelementptr inbounds %struct.lua_TValue* %119, i32 -1 ; [#uses=1]
+ %121 = getelementptr inbounds %struct.lua_TValue* %120, i32 0, i32 0 ; [#uses=1]
+ %122 = getelementptr inbounds %union.anon* %121, i32 0, i32 0 ; [#uses=1]
+ %123 = bitcast double* %122 to %union.GCObject** ; [#uses=1]
+ %124 = load %union.GCObject** %123, align 4 ; [#uses=1]
+ %125 = getelementptr inbounds %union.GCObject* %124, i32 0, i32 0 ; [#uses=1]
+ %126 = bitcast %struct.lua_State* %125 to %struct.Table* ; [#uses=1]
+ %127 = bitcast %struct.Table* %126 to %union.GCObject* ; [#uses=1]
+ call void @_Z13luaC_barrierfP9lua_StateP8GCObjectS2_(%struct.lua_State* %111, %union.GCObject* %116, %union.GCObject* %127)
+ br label %128
+
+; <label>:128 ; preds = %110, %97, %78
+ br label %129
+
+; <label>:129 ; preds = %128, %75
+ %130 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %131 = getelementptr inbounds %struct.lua_State* %130, i32 0, i32 4 ; [#uses=2]
+ %132 = load %struct.lua_TValue** %131, align 4 ; [#uses=1]
+ %133 = getelementptr inbounds %struct.lua_TValue* %132, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %133, %struct.lua_TValue** %131, align 4
+ %134 = load i32* %res, align 4 ; [#uses=1]
+ ret i32 %134
+}
+
+; [#uses=14]
+define void @_Z8lua_callP9lua_Stateii(%struct.lua_State* %L, i32 %nargs, i32 %nresults) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %func = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %nargs, i32* %2, align 4
+ store i32 %nresults, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 4 ; [#uses=1]
+ %6 = load %struct.lua_TValue** %5, align 4 ; [#uses=1]
+ %7 = load i32* %2, align 4 ; [#uses=1]
+ %8 = add nsw i32 %7, 1 ; [#uses=1]
+ %9 = sub i32 0, %8 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_TValue* %6, i32 %9 ; [#uses=1]
+ store %struct.lua_TValue* %10, %struct.lua_TValue** %func, align 4
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = load %struct.lua_TValue** %func, align 4 ; [#uses=1]
+ %13 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z9luaD_callP9lua_StateP10lua_TValuei(%struct.lua_State* %11, %struct.lua_TValue* %12, i32 %13)
+ %14 = load i32* %3, align 4 ; [#uses=1]
+ %15 = icmp eq i32 %14, -1 ; [#uses=1]
+ br i1 %15, label %16, label %34
+
+; <label>:16 ; preds = %0
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_State* %17, i32 0, i32 4 ; [#uses=1]
+ %19 = load %struct.lua_TValue** %18, align 4 ; [#uses=1]
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_State* %20, i32 0, i32 7 ; [#uses=1]
+ %22 = load %struct.CallInfo** %21, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.CallInfo* %22, i32 0, i32 2 ; [#uses=1]
+ %24 = load %struct.lua_TValue** %23, align 4 ; [#uses=1]
+ %25 = icmp uge %struct.lua_TValue* %19, %24 ; [#uses=1]
+ br i1 %25, label %26, label %34
+
+; <label>:26 ; preds = %16
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_State* %27, i32 0, i32 4 ; [#uses=1]
+ %29 = load %struct.lua_TValue** %28, align 4 ; [#uses=1]
+ %30 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_State* %30, i32 0, i32 7 ; [#uses=1]
+ %32 = load %struct.CallInfo** %31, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.CallInfo* %32, i32 0, i32 2 ; [#uses=1]
+ store %struct.lua_TValue* %29, %struct.lua_TValue** %33, align 4
+ br label %34
+
+; <label>:34 ; preds = %26, %16, %0
+ ret void
+}
+
+; [#uses=5]
+define i32 @_Z9lua_pcallP9lua_Stateiii(%struct.lua_State* %L, i32 %nargs, i32 %nresults, i32 %errfunc) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=10]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %4 = alloca i32, align 4 ; [#uses=3]
+ %c = alloca %struct.CallS, align 4 ; [#uses=4]
+ %status = alloca i32, align 4 ; [#uses=2]
+ %func = alloca i32, align 4 ; [#uses=3]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %nargs, i32* %2, align 4
+ store i32 %nresults, i32* %3, align 4
+ store i32 %errfunc, i32* %4, align 4
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ %6 = icmp eq i32 %5, 0 ; [#uses=1]
+ br i1 %6, label %7, label %8
+
+; <label>:7 ; preds = %0
+ store i32 0, i32* %func, align 4
+ br label %21
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = load i32* %4, align 4 ; [#uses=1]
+ %11 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %9, i32 %10) ; [#uses=1]
+ store %struct.lua_TValue* %11, %struct.lua_TValue** %o, align 4
+ %12 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %13 = bitcast %struct.lua_TValue* %12 to i8* ; [#uses=1]
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_State* %14, i32 0, i32 10 ; [#uses=1]
+ %16 = load %struct.lua_TValue** %15, align 4 ; [#uses=1]
+ %17 = bitcast %struct.lua_TValue* %16 to i8* ; [#uses=1]
+ %18 = ptrtoint i8* %13 to i32 ; [#uses=1]
+ %19 = ptrtoint i8* %17 to i32 ; [#uses=1]
+ %20 = sub i32 %18, %19 ; [#uses=1]
+ store i32 %20, i32* %func, align 4
+ br label %21
+
+; <label>:21 ; preds = %8, %7
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_State* %22, i32 0, i32 4 ; [#uses=1]
+ %24 = load %struct.lua_TValue** %23, align 4 ; [#uses=1]
+ %25 = load i32* %2, align 4 ; [#uses=1]
+ %26 = add nsw i32 %25, 1 ; [#uses=1]
+ %27 = sub i32 0, %26 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_TValue* %24, i32 %27 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.CallS* %c, i32 0, i32 0 ; [#uses=1]
+ store %struct.lua_TValue* %28, %struct.lua_TValue** %29, align 4
+ %30 = load i32* %3, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.CallS* %c, i32 0, i32 1 ; [#uses=1]
+ store i32 %30, i32* %31, align 4
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = bitcast %struct.CallS* %c to i8* ; [#uses=1]
+ %34 = getelementptr inbounds %struct.CallS* %c, i32 0, i32 0 ; [#uses=1]
+ %35 = load %struct.lua_TValue** %34, align 4 ; [#uses=1]
+ %36 = bitcast %struct.lua_TValue* %35 to i8* ; [#uses=1]
+ %37 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.lua_State* %37, i32 0, i32 10 ; [#uses=1]
+ %39 = load %struct.lua_TValue** %38, align 4 ; [#uses=1]
+ %40 = bitcast %struct.lua_TValue* %39 to i8* ; [#uses=1]
+ %41 = ptrtoint i8* %36 to i32 ; [#uses=1]
+ %42 = ptrtoint i8* %40 to i32 ; [#uses=1]
+ %43 = sub i32 %41, %42 ; [#uses=1]
+ %44 = load i32* %func, align 4 ; [#uses=1]
+ %45 = call i32 @_Z10luaD_pcallP9lua_StatePFvS0_PvES1_ii(%struct.lua_State* %32, void (%struct.lua_State*, i8*)* @_Z6f_callP9lua_StatePv, i8* %33, i32 %43, i32 %44) ; [#uses=1]
+ store i32 %45, i32* %status, align 4
+ %46 = load i32* %3, align 4 ; [#uses=1]
+ %47 = icmp eq i32 %46, -1 ; [#uses=1]
+ br i1 %47, label %48, label %66
+
+; <label>:48 ; preds = %21
+ %49 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.lua_State* %49, i32 0, i32 4 ; [#uses=1]
+ %51 = load %struct.lua_TValue** %50, align 4 ; [#uses=1]
+ %52 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.lua_State* %52, i32 0, i32 7 ; [#uses=1]
+ %54 = load %struct.CallInfo** %53, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.CallInfo* %54, i32 0, i32 2 ; [#uses=1]
+ %56 = load %struct.lua_TValue** %55, align 4 ; [#uses=1]
+ %57 = icmp uge %struct.lua_TValue* %51, %56 ; [#uses=1]
+ br i1 %57, label %58, label %66
+
+; <label>:58 ; preds = %48
+ %59 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.lua_State* %59, i32 0, i32 4 ; [#uses=1]
+ %61 = load %struct.lua_TValue** %60, align 4 ; [#uses=1]
+ %62 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.lua_State* %62, i32 0, i32 7 ; [#uses=1]
+ %64 = load %struct.CallInfo** %63, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %struct.CallInfo* %64, i32 0, i32 2 ; [#uses=1]
+ store %struct.lua_TValue* %61, %struct.lua_TValue** %65, align 4
+ br label %66
+
+; <label>:66 ; preds = %58, %48, %21
+ %67 = load i32* %status, align 4 ; [#uses=1]
+ ret i32 %67
+}
+
+; [#uses=1]
+define internal void @_Z6f_callP9lua_StatePv(%struct.lua_State* %L, i8* %ud) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %c = alloca %struct.CallS*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %ud, i8** %2, align 4
+ %3 = load i8** %2, align 4 ; [#uses=1]
+ %4 = bitcast i8* %3 to %struct.CallS* ; [#uses=1]
+ store %struct.CallS* %4, %struct.CallS** %c, align 4
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = load %struct.CallS** %c, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.CallS* %6, i32 0, i32 0 ; [#uses=1]
+ %8 = load %struct.lua_TValue** %7, align 4 ; [#uses=1]
+ %9 = load %struct.CallS** %c, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.CallS* %9, i32 0, i32 1 ; [#uses=1]
+ %11 = load i32* %10, align 4 ; [#uses=1]
+ call void @_Z9luaD_callP9lua_StateP10lua_TValuei(%struct.lua_State* %5, %struct.lua_TValue* %8, i32 %11)
+ ret void
+}
+
+; [#uses=1]
+define i32 @_Z10lua_cpcallP9lua_StatePFiS0_EPv(%struct.lua_State* %L, i32 (%struct.lua_State*)* %func, i8* %ud) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32 (%struct.lua_State*)*, align 4 ; [#uses=2]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ %c = alloca %struct.CCallS, align 4 ; [#uses=3]
+ %status = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 (%struct.lua_State*)* %func, i32 (%struct.lua_State*)** %2, align 4
+ store i8* %ud, i8** %3, align 4
+ %4 = load i32 (%struct.lua_State*)** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.CCallS* %c, i32 0, i32 0 ; [#uses=1]
+ store i32 (%struct.lua_State*)* %4, i32 (%struct.lua_State*)** %5, align 4
+ %6 = load i8** %3, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.CCallS* %c, i32 0, i32 1 ; [#uses=1]
+ store i8* %6, i8** %7, align 4
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = bitcast %struct.CCallS* %c to i8* ; [#uses=1]
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_State* %10, i32 0, i32 4 ; [#uses=1]
+ %12 = load %struct.lua_TValue** %11, align 4 ; [#uses=1]
+ %13 = bitcast %struct.lua_TValue* %12 to i8* ; [#uses=1]
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_State* %14, i32 0, i32 10 ; [#uses=1]
+ %16 = load %struct.lua_TValue** %15, align 4 ; [#uses=1]
+ %17 = bitcast %struct.lua_TValue* %16 to i8* ; [#uses=1]
+ %18 = ptrtoint i8* %13 to i32 ; [#uses=1]
+ %19 = ptrtoint i8* %17 to i32 ; [#uses=1]
+ %20 = sub i32 %18, %19 ; [#uses=1]
+ %21 = call i32 @_Z10luaD_pcallP9lua_StatePFvS0_PvES1_ii(%struct.lua_State* %8, void (%struct.lua_State*, i8*)* @_Z7f_CcallP9lua_StatePv, i8* %9, i32 %20, i32 0) ; [#uses=1]
+ store i32 %21, i32* %status, align 4
+ %22 = load i32* %status, align 4 ; [#uses=1]
+ ret i32 %22
+}
+
+; [#uses=1]
+define internal void @_Z7f_CcallP9lua_StatePv(%struct.lua_State* %L, i8* %ud) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %c = alloca %struct.CCallS*, align 4 ; [#uses=3]
+ %cl = alloca %union.Closure*, align 4 ; [#uses=3]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %ud, i8** %2, align 4
+ %3 = load i8** %2, align 4 ; [#uses=1]
+ %4 = bitcast i8* %3 to %struct.CCallS* ; [#uses=1]
+ store %struct.CCallS* %4, %struct.CCallS** %c, align 4
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = call %struct.Table* @_Z10getcurrenvP9lua_State(%struct.lua_State* %6) ; [#uses=1]
+ %8 = call %union.Closure* @_Z16luaF_newCclosureP9lua_StateiP5Table(%struct.lua_State* %5, i32 0, %struct.Table* %7) ; [#uses=1]
+ store %union.Closure* %8, %union.Closure** %cl, align 4
+ %9 = load %struct.CCallS** %c, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.CCallS* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = load i32 (%struct.lua_State*)** %10, align 4 ; [#uses=1]
+ %12 = load %union.Closure** %cl, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %union.Closure* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.CClosure* %13, i32 0, i32 7 ; [#uses=1]
+ store i32 (%struct.lua_State*)* %11, i32 (%struct.lua_State*)** %14, align 4
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_State* %15, i32 0, i32 4 ; [#uses=1]
+ %17 = load %struct.lua_TValue** %16, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %17, %struct.lua_TValue** %i_o, align 4
+ %18 = load %union.Closure** %cl, align 4 ; [#uses=1]
+ %19 = bitcast %union.Closure* %18 to %union.GCObject* ; [#uses=1]
+ %20 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_TValue* %20, i32 0, i32 0 ; [#uses=1]
+ %22 = getelementptr inbounds %union.anon* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = bitcast double* %22 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %19, %union.GCObject** %23, align 4
+ %24 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.lua_TValue* %24, i32 0, i32 1 ; [#uses=1]
+ store i32 6, i32* %25, align 4
+ %26 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_State* %26, i32 0, i32 4 ; [#uses=2]
+ %28 = load %struct.lua_TValue** %27, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_TValue* %28, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %29, %struct.lua_TValue** %27, align 4
+ %30 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_State* %30, i32 0, i32 4 ; [#uses=1]
+ %32 = load %struct.lua_TValue** %31, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %32, %struct.lua_TValue** %i_o1, align 4
+ %33 = load %struct.CCallS** %c, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.CCallS* %33, i32 0, i32 1 ; [#uses=1]
+ %35 = load i8** %34, align 4 ; [#uses=1]
+ %36 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.lua_TValue* %36, i32 0, i32 0 ; [#uses=1]
+ %38 = getelementptr inbounds %union.anon* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = bitcast double* %38 to i8** ; [#uses=1]
+ store i8* %35, i8** %39, align 4
+ %40 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.lua_TValue* %40, i32 0, i32 1 ; [#uses=1]
+ store i32 2, i32* %41, align 4
+ %42 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.lua_State* %42, i32 0, i32 4 ; [#uses=2]
+ %44 = load %struct.lua_TValue** %43, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.lua_TValue* %44, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %45, %struct.lua_TValue** %43, align 4
+ %46 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %47 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.lua_State* %47, i32 0, i32 4 ; [#uses=1]
+ %49 = load %struct.lua_TValue** %48, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.lua_TValue* %49, i32 -2 ; [#uses=1]
+ call void @_Z9luaD_callP9lua_StateP10lua_TValuei(%struct.lua_State* %46, %struct.lua_TValue* %50, i32 0)
+ ret void
+}
+
+; [#uses=3]
+define i32 @_Z8lua_loadP9lua_StatePFPKcS0_PvPjES3_S2_(%struct.lua_State* %L, i8* (%struct.lua_State*, i8*, i32*)* %reader, i8* %data, i8* %chunkname) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i8* (%struct.lua_State*, i8*, i32*)*, align 4 ; [#uses=2]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ %4 = alloca i8*, align 4 ; [#uses=4]
+ %z = alloca %struct.Zio, align 4 ; [#uses=2]
+ %status = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* (%struct.lua_State*, i8*, i32*)* %reader, i8* (%struct.lua_State*, i8*, i32*)** %2, align 4
+ store i8* %data, i8** %3, align 4
+ store i8* %chunkname, i8** %4, align 4
+ %5 = load i8** %4, align 4 ; [#uses=1]
+ %6 = icmp ne i8* %5, null ; [#uses=1]
+ br i1 %6, label %8, label %7
+
+; <label>:7 ; preds = %0
+ store i8* getelementptr inbounds ([2 x i8]* @.str230, i32 0, i32 0), i8** %4, align 4
+ br label %8
+
+; <label>:8 ; preds = %7, %0
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = load i8* (%struct.lua_State*, i8*, i32*)** %2, align 4 ; [#uses=1]
+ %11 = load i8** %3, align 4 ; [#uses=1]
+ call void @_Z9luaZ_initP9lua_StateP3ZioPFPKcS0_PvPjES5_(%struct.lua_State* %9, %struct.Zio* %z, i8* (%struct.lua_State*, i8*, i32*)* %10, i8* %11)
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = load i8** %4, align 4 ; [#uses=1]
+ %14 = call i32 @_Z20luaD_protectedparserP9lua_StateP3ZioPKc(%struct.lua_State* %12, %struct.Zio* %z, i8* %13) ; [#uses=1]
+ store i32 %14, i32* %status, align 4
+ %15 = load i32* %status, align 4 ; [#uses=1]
+ ret i32 %15
+}
+
+; [#uses=1]
+define i32 @_Z8lua_dumpP9lua_StatePFiS0_PKvjPvES3_(%struct.lua_State* %L, i32 (%struct.lua_State*, i8*, i32, i8*)* %writer, i8* %data) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i32 (%struct.lua_State*, i8*, i32, i8*)*, align 4 ; [#uses=2]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ %status = alloca i32, align 4 ; [#uses=3]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 (%struct.lua_State*, i8*, i32, i8*)* %writer, i32 (%struct.lua_State*, i8*, i32, i8*)** %2, align 4
+ store i8* %data, i8** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 4 ; [#uses=1]
+ %6 = load %struct.lua_TValue** %5, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_TValue* %6, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %7, %struct.lua_TValue** %o, align 4
+ %8 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_TValue* %8, i32 0, i32 1 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ %11 = icmp eq i32 %10, 6 ; [#uses=1]
+ br i1 %11, label %12, label %40
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_TValue* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = getelementptr inbounds %union.anon* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = bitcast double* %15 to %union.GCObject** ; [#uses=1]
+ %17 = load %union.GCObject** %16, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %union.GCObject* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = bitcast %struct.lua_State* %18 to %union.Closure* ; [#uses=1]
+ %20 = getelementptr inbounds %union.Closure* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.CClosure* %20, i32 0, i32 3 ; [#uses=1]
+ %22 = load i8* %21, align 1 ; [#uses=1]
+ %23 = icmp ne i8 %22, 0 ; [#uses=1]
+ br i1 %23, label %40, label %24
+
+; <label>:24 ; preds = %12
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %26 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_TValue* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = getelementptr inbounds %union.anon* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = bitcast double* %28 to %union.GCObject** ; [#uses=1]
+ %30 = load %union.GCObject** %29, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %union.GCObject* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = bitcast %struct.lua_State* %31 to %union.Closure* ; [#uses=1]
+ %33 = getelementptr inbounds %union.Closure* %32, i32 0, i32 0 ; [#uses=1]
+ %34 = bitcast %struct.CClosure* %33 to %struct.LClosure* ; [#uses=1]
+ %35 = getelementptr inbounds %struct.LClosure* %34, i32 0, i32 7 ; [#uses=1]
+ %36 = load %struct.Proto** %35, align 4 ; [#uses=1]
+ %37 = load i32 (%struct.lua_State*, i8*, i32, i8*)** %2, align 4 ; [#uses=1]
+ %38 = load i8** %3, align 4 ; [#uses=1]
+ %39 = call i32 @_Z9luaU_dumpP9lua_StatePK5ProtoPFiS0_PKvjPvES6_i(%struct.lua_State* %25, %struct.Proto* %36, i32 (%struct.lua_State*, i8*, i32, i8*)* %37, i8* %38, i32 0) ; [#uses=1]
+ store i32 %39, i32* %status, align 4
+ br label %41
+
+; <label>:40 ; preds = %12, %0
+ store i32 1, i32* %status, align 4
+ br label %41
+
+; <label>:41 ; preds = %40, %24
+ %42 = load i32* %status, align 4 ; [#uses=1]
+ ret i32 %42
+}
+
+; [#uses=1]
+define i32 @_Z10lua_statusP9lua_State(%struct.lua_State* %L) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 3 ; [#uses=1]
+ %4 = load i8* %3, align 1 ; [#uses=1]
+ %5 = zext i8 %4 to i32 ; [#uses=1]
+ ret i32 %5
+}
+
+; [#uses=6]
+define i32 @_Z6lua_gcP9lua_Stateii(%struct.lua_State* %L, i32 %what, i32 %data) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=4]
+ %res = alloca i32, align 4 ; [#uses=8]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=17]
+ %a = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %what, i32* %2, align 4
+ store i32 %data, i32* %3, align 4
+ store i32 0, i32* %res, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 6 ; [#uses=1]
+ %6 = load %struct.global_State** %5, align 4 ; [#uses=1]
+ store %struct.global_State* %6, %struct.global_State** %g, align 4
+ %7 = load i32* %2, align 4 ; [#uses=1]
+ switch i32 %7, label %81 [
+ i32 0, label %8
+ i32 1, label %11
+ i32 2, label %17
+ i32 3, label %19
+ i32 4, label %24
+ i32 5, label %29
+ i32 6, label %67
+ i32 7, label %74
+ ]
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.global_State* %9, i32 0, i32 13 ; [#uses=1]
+ store i32 -3, i32* %10, align 4
+ br label %82
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.global_State* %12, i32 0, i32 14 ; [#uses=1]
+ %14 = load i32* %13, align 4 ; [#uses=1]
+ %15 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.global_State* %15, i32 0, i32 13 ; [#uses=1]
+ store i32 %14, i32* %16, align 4
+ br label %82
+
+; <label>:17 ; preds = %0
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11luaC_fullgcP9lua_State(%struct.lua_State* %18)
+ br label %82
+
+; <label>:19 ; preds = %0
+ %20 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.global_State* %20, i32 0, i32 14 ; [#uses=1]
+ %22 = load i32* %21, align 4 ; [#uses=1]
+ %23 = lshr i32 %22, 10 ; [#uses=1]
+ store i32 %23, i32* %res, align 4
+ br label %82
+
+; <label>:24 ; preds = %0
+ %25 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.global_State* %25, i32 0, i32 14 ; [#uses=1]
+ %27 = load i32* %26, align 4 ; [#uses=1]
+ %28 = and i32 %27, 1023 ; [#uses=1]
+ store i32 %28, i32* %res, align 4
+ br label %82
+
+; <label>:29 ; preds = %0
+ %30 = load i32* %3, align 4 ; [#uses=1]
+ %31 = shl i32 %30, 10 ; [#uses=1]
+ store i32 %31, i32* %a, align 4
+ %32 = load i32* %a, align 4 ; [#uses=1]
+ %33 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.global_State* %33, i32 0, i32 14 ; [#uses=1]
+ %35 = load i32* %34, align 4 ; [#uses=1]
+ %36 = icmp ule i32 %32, %35 ; [#uses=1]
+ br i1 %36, label %37, label %45
+
+; <label>:37 ; preds = %29
+ %38 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.global_State* %38, i32 0, i32 14 ; [#uses=1]
+ %40 = load i32* %39, align 4 ; [#uses=1]
+ %41 = load i32* %a, align 4 ; [#uses=1]
+ %42 = sub i32 %40, %41 ; [#uses=1]
+ %43 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.global_State* %43, i32 0, i32 13 ; [#uses=1]
+ store i32 %42, i32* %44, align 4
+ br label %48
+
+; <label>:45 ; preds = %29
+ %46 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.global_State* %46, i32 0, i32 13 ; [#uses=1]
+ store i32 0, i32* %47, align 4
+ br label %48
+
+; <label>:48 ; preds = %45, %37
+ br label %49
+
+; <label>:49 ; preds = %65, %48
+ %50 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.global_State* %50, i32 0, i32 13 ; [#uses=1]
+ %52 = load i32* %51, align 4 ; [#uses=1]
+ %53 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.global_State* %53, i32 0, i32 14 ; [#uses=1]
+ %55 = load i32* %54, align 4 ; [#uses=1]
+ %56 = icmp ule i32 %52, %55 ; [#uses=1]
+ br i1 %56, label %57, label %66
+
+; <label>:57 ; preds = %49
+ %58 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9luaC_stepP9lua_State(%struct.lua_State* %58)
+ %59 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.global_State* %59, i32 0, i32 4 ; [#uses=1]
+ %61 = load i8* %60, align 1 ; [#uses=1]
+ %62 = zext i8 %61 to i32 ; [#uses=1]
+ %63 = icmp eq i32 %62, 0 ; [#uses=1]
+ br i1 %63, label %64, label %65
+
+; <label>:64 ; preds = %57
+ store i32 1, i32* %res, align 4
+ br label %66
+
+; <label>:65 ; preds = %57
+ br label %49
+
+; <label>:66 ; preds = %64, %49
+ br label %82
+
+; <label>:67 ; preds = %0
+ %68 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.global_State* %68, i32 0, i32 17 ; [#uses=1]
+ %70 = load i32* %69, align 4 ; [#uses=1]
+ store i32 %70, i32* %res, align 4
+ %71 = load i32* %3, align 4 ; [#uses=1]
+ %72 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.global_State* %72, i32 0, i32 17 ; [#uses=1]
+ store i32 %71, i32* %73, align 4
+ br label %82
+
+; <label>:74 ; preds = %0
+ %75 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %76 = getelementptr inbounds %struct.global_State* %75, i32 0, i32 18 ; [#uses=1]
+ %77 = load i32* %76, align 4 ; [#uses=1]
+ store i32 %77, i32* %res, align 4
+ %78 = load i32* %3, align 4 ; [#uses=1]
+ %79 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %80 = getelementptr inbounds %struct.global_State* %79, i32 0, i32 18 ; [#uses=1]
+ store i32 %78, i32* %80, align 4
+ br label %82
+
+; <label>:81 ; preds = %0
+ store i32 -1, i32* %res, align 4
+ br label %82
+
+; <label>:82 ; preds = %81, %74, %67, %66, %24, %19, %17, %11, %8
+ %83 = load i32* %res, align 4 ; [#uses=1]
+ ret i32 %83
+}
+
+; [#uses=4]
+define i32 @_Z9lua_errorP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaG_errormsgP9lua_State(%struct.lua_State* %2)
+ ret i32 0
+}
+
+; [#uses=3]
+define i32 @_Z8lua_nextP9lua_Statei(%struct.lua_State* %L, i32 %idx) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %t = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %more = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %t, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load %struct.lua_TValue** %t, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_TValue* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = getelementptr inbounds %union.anon* %8, i32 0, i32 0 ; [#uses=1]
+ %10 = bitcast double* %9 to %union.GCObject** ; [#uses=1]
+ %11 = load %union.GCObject** %10, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %union.GCObject* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = bitcast %struct.lua_State* %12 to %struct.Table* ; [#uses=1]
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_State* %14, i32 0, i32 4 ; [#uses=1]
+ %16 = load %struct.lua_TValue** %15, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_TValue* %16, i32 -1 ; [#uses=1]
+ %18 = call i32 @_Z9luaH_nextP9lua_StateP5TableP10lua_TValue(%struct.lua_State* %6, %struct.Table* %13, %struct.lua_TValue* %17) ; [#uses=1]
+ store i32 %18, i32* %more, align 4
+ %19 = load i32* %more, align 4 ; [#uses=1]
+ %20 = icmp ne i32 %19, 0 ; [#uses=1]
+ br i1 %20, label %21, label %26
+
+; <label>:21 ; preds = %0
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_State* %22, i32 0, i32 4 ; [#uses=2]
+ %24 = load %struct.lua_TValue** %23, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.lua_TValue* %24, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %25, %struct.lua_TValue** %23, align 4
+ br label %31
+
+; <label>:26 ; preds = %0
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_State* %27, i32 0, i32 4 ; [#uses=2]
+ %29 = load %struct.lua_TValue** %28, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_TValue* %29, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %30, %struct.lua_TValue** %28, align 4
+ br label %31
+
+; <label>:31 ; preds = %26, %21
+ %32 = load i32* %more, align 4 ; [#uses=1]
+ ret i32 %32
+}
+
+; [#uses=10]
+define void @_Z10lua_concatP9lua_Statei(%struct.lua_State* %L, i32 %n) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=11]
+ %2 = alloca i32, align 4 ; [#uses=5]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %n, i32* %2, align 4
+ %3 = load i32* %2, align 4 ; [#uses=1]
+ %4 = icmp sge i32 %3, 2 ; [#uses=1]
+ br i1 %4, label %5, label %40
+
+; <label>:5 ; preds = %0
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 6 ; [#uses=1]
+ %8 = load %struct.global_State** %7, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.global_State* %8, i32 0, i32 14 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_State* %11, i32 0, i32 6 ; [#uses=1]
+ %13 = load %struct.global_State** %12, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.global_State* %13, i32 0, i32 13 ; [#uses=1]
+ %15 = load i32* %14, align 4 ; [#uses=1]
+ %16 = icmp uge i32 %10, %15 ; [#uses=1]
+ br i1 %16, label %17, label %19
+
+; <label>:17 ; preds = %5
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9luaC_stepP9lua_State(%struct.lua_State* %18)
+ br label %19
+
+; <label>:19 ; preds = %17, %5
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %21 = load i32* %2, align 4 ; [#uses=1]
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_State* %22, i32 0, i32 4 ; [#uses=1]
+ %24 = load %struct.lua_TValue** %23, align 4 ; [#uses=1]
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_State* %25, i32 0, i32 5 ; [#uses=1]
+ %27 = load %struct.lua_TValue** %26, align 4 ; [#uses=1]
+ %28 = ptrtoint %struct.lua_TValue* %24 to i32 ; [#uses=1]
+ %29 = ptrtoint %struct.lua_TValue* %27 to i32 ; [#uses=1]
+ %30 = sub i32 %28, %29 ; [#uses=1]
+ %31 = sdiv exact i32 %30, 12 ; [#uses=1]
+ %32 = sub nsw i32 %31, 1 ; [#uses=1]
+ call void @_Z11luaV_concatP9lua_Stateii(%struct.lua_State* %20, i32 %21, i32 %32)
+ %33 = load i32* %2, align 4 ; [#uses=1]
+ %34 = sub nsw i32 %33, 1 ; [#uses=1]
+ %35 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.lua_State* %35, i32 0, i32 4 ; [#uses=2]
+ %37 = load %struct.lua_TValue** %36, align 4 ; [#uses=1]
+ %38 = sub i32 0, %34 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.lua_TValue* %37, i32 %38 ; [#uses=1]
+ store %struct.lua_TValue* %39, %struct.lua_TValue** %36, align 4
+ br label %61
+
+; <label>:40 ; preds = %0
+ %41 = load i32* %2, align 4 ; [#uses=1]
+ %42 = icmp eq i32 %41, 0 ; [#uses=1]
+ br i1 %42, label %43, label %60
+
+; <label>:43 ; preds = %40
+ %44 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.lua_State* %44, i32 0, i32 4 ; [#uses=1]
+ %46 = load %struct.lua_TValue** %45, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %46, %struct.lua_TValue** %i_o, align 4
+ %47 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %48 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %47, i8* getelementptr inbounds ([1 x i8]* @.str331, i32 0, i32 0), i32 0) ; [#uses=1]
+ %49 = bitcast %union.TString* %48 to %union.GCObject* ; [#uses=1]
+ %50 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.lua_TValue* %50, i32 0, i32 0 ; [#uses=1]
+ %52 = getelementptr inbounds %union.anon* %51, i32 0, i32 0 ; [#uses=1]
+ %53 = bitcast double* %52 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %49, %union.GCObject** %53, align 4
+ %54 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.lua_TValue* %54, i32 0, i32 1 ; [#uses=1]
+ store i32 4, i32* %55, align 4
+ %56 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.lua_State* %56, i32 0, i32 4 ; [#uses=2]
+ %58 = load %struct.lua_TValue** %57, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.lua_TValue* %58, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %59, %struct.lua_TValue** %57, align 4
+ br label %60
+
+; <label>:60 ; preds = %43, %40
+ br label %61
+
+; <label>:61 ; preds = %60, %19
+ ret void
+}
+
+; [#uses=0]
+define i8* (i8*, i8*, i32, i32)* @_Z13lua_getallocfP9lua_StatePPv(%struct.lua_State* %L, i8** %ud) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i8**, align 4 ; [#uses=3]
+ %f = alloca i8* (i8*, i8*, i32, i32)*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8** %ud, i8*** %2, align 4
+ %3 = load i8*** %2, align 4 ; [#uses=1]
+ %4 = icmp ne i8** %3, null ; [#uses=1]
+ br i1 %4, label %5, label %12
+
+; <label>:5 ; preds = %0
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 6 ; [#uses=1]
+ %8 = load %struct.global_State** %7, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.global_State* %8, i32 0, i32 2 ; [#uses=1]
+ %10 = load i8** %9, align 4 ; [#uses=1]
+ %11 = load i8*** %2, align 4 ; [#uses=1]
+ store i8* %10, i8** %11
+ br label %12
+
+; <label>:12 ; preds = %5, %0
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_State* %13, i32 0, i32 6 ; [#uses=1]
+ %15 = load %struct.global_State** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.global_State* %15, i32 0, i32 1 ; [#uses=1]
+ %17 = load i8* (i8*, i8*, i32, i32)** %16, align 4 ; [#uses=1]
+ store i8* (i8*, i8*, i32, i32)* %17, i8* (i8*, i8*, i32, i32)** %f, align 4
+ %18 = load i8* (i8*, i8*, i32, i32)** %f, align 4 ; [#uses=1]
+ ret i8* (i8*, i8*, i32, i32)* %18
+}
+
+; [#uses=0]
+define void @_Z13lua_setallocfP9lua_StatePFPvS1_S1_jjES1_(%struct.lua_State* %L, i8* (i8*, i8*, i32, i32)* %f, i8* %ud) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i8* (i8*, i8*, i32, i32)*, align 4 ; [#uses=2]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* (i8*, i8*, i32, i32)* %f, i8* (i8*, i8*, i32, i32)** %2, align 4
+ store i8* %ud, i8** %3, align 4
+ %4 = load i8** %3, align 4 ; [#uses=1]
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.lua_State* %5, i32 0, i32 6 ; [#uses=1]
+ %7 = load %struct.global_State** %6, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.global_State* %7, i32 0, i32 2 ; [#uses=1]
+ store i8* %4, i8** %8, align 4
+ %9 = load i8* (i8*, i8*, i32, i32)** %2, align 4 ; [#uses=1]
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_State* %10, i32 0, i32 6 ; [#uses=1]
+ %12 = load %struct.global_State** %11, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.global_State* %12, i32 0, i32 1 ; [#uses=1]
+ store i8* (i8*, i8*, i32, i32)* %9, i8* (i8*, i8*, i32, i32)** %13, align 4
+ ret void
+}
+
+; [#uses=3]
+define i8* @_Z15lua_newuserdataP9lua_Statej(%struct.lua_State* %L, i32 %size) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %u = alloca %union.Udata*, align 4 ; [#uses=3]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %size, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 6 ; [#uses=1]
+ %5 = load %struct.global_State** %4, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.global_State* %5, i32 0, i32 14 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_State* %8, i32 0, i32 6 ; [#uses=1]
+ %10 = load %struct.global_State** %9, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.global_State* %10, i32 0, i32 13 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ %13 = icmp uge i32 %7, %12 ; [#uses=1]
+ br i1 %13, label %14, label %16
+
+; <label>:14 ; preds = %0
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9luaC_stepP9lua_State(%struct.lua_State* %15)
+ br label %16
+
+; <label>:16 ; preds = %14, %0
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %18 = load i32* %2, align 4 ; [#uses=1]
+ %19 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %20 = call %struct.Table* @_Z10getcurrenvP9lua_State(%struct.lua_State* %19) ; [#uses=1]
+ %21 = call %union.Udata* @_Z13luaS_newudataP9lua_StatejP5Table(%struct.lua_State* %17, i32 %18, %struct.Table* %20) ; [#uses=1]
+ store %union.Udata* %21, %union.Udata** %u, align 4
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_State* %22, i32 0, i32 4 ; [#uses=1]
+ %24 = load %struct.lua_TValue** %23, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %24, %struct.lua_TValue** %i_o, align 4
+ %25 = load %union.Udata** %u, align 4 ; [#uses=1]
+ %26 = bitcast %union.Udata* %25 to %union.GCObject* ; [#uses=1]
+ %27 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_TValue* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = getelementptr inbounds %union.anon* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = bitcast double* %29 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %26, %union.GCObject** %30, align 4
+ %31 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_TValue* %31, i32 0, i32 1 ; [#uses=1]
+ store i32 7, i32* %32, align 4
+ %33 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_State* %33, i32 0, i32 4 ; [#uses=2]
+ %35 = load %struct.lua_TValue** %34, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.lua_TValue* %35, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %36, %struct.lua_TValue** %34, align 4
+ %37 = load %union.Udata** %u, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %union.Udata* %37, i32 1 ; [#uses=1]
+ %39 = bitcast %union.Udata* %38 to i8* ; [#uses=1]
+ ret i8* %39
+}
+
+; [#uses=1]
+define i8* @_Z14lua_getupvalueP9lua_Stateii(%struct.lua_State* %L, i32 %funcindex, i32 %n) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %name = alloca i8*, align 4 ; [#uses=3]
+ %val = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %funcindex, i32* %2, align 4
+ store i32 %n, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ %7 = load i32* %3, align 4 ; [#uses=1]
+ %8 = call i8* @_Z11aux_upvalueP10lua_TValueiPS0_(%struct.lua_TValue* %6, i32 %7, %struct.lua_TValue** %val) ; [#uses=1]
+ store i8* %8, i8** %name, align 4
+ %9 = load i8** %name, align 4 ; [#uses=1]
+ %10 = icmp ne i8* %9, null ; [#uses=1]
+ br i1 %10, label %11, label %31
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.lua_TValue** %val, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %12, %struct.lua_TValue** %o2, align 4
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_State* %13, i32 0, i32 4 ; [#uses=1]
+ %15 = load %struct.lua_TValue** %14, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %15, %struct.lua_TValue** %o1, align 4
+ %16 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_TValue* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_TValue* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = bitcast %union.anon* %17 to i8* ; [#uses=1]
+ %21 = bitcast %union.anon* %19 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %20, i8* %21, i32 8, i32 4, i1 false)
+ %22 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_TValue* %22, i32 0, i32 1 ; [#uses=1]
+ %24 = load i32* %23, align 4 ; [#uses=1]
+ %25 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_TValue* %25, i32 0, i32 1 ; [#uses=1]
+ store i32 %24, i32* %26, align 4
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_State* %27, i32 0, i32 4 ; [#uses=2]
+ %29 = load %struct.lua_TValue** %28, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_TValue* %29, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %30, %struct.lua_TValue** %28, align 4
+ br label %31
+
+; <label>:31 ; preds = %11, %0
+ %32 = load i8** %name, align 4 ; [#uses=1]
+ ret i8* %32
+}
+
+; [#uses=2]
+define internal i8* @_Z11aux_upvalueP10lua_TValueiPS0_(%struct.lua_TValue* %fi, i32 %n, %struct.lua_TValue** %val) nounwind {
+ %1 = alloca i8*, align 4 ; [#uses=6]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=8]
+ %4 = alloca %struct.lua_TValue**, align 4 ; [#uses=3]
+ %f = alloca %union.Closure*, align 4 ; [#uses=6]
+ %p = alloca %struct.Proto*, align 4 ; [#uses=3]
+ store %struct.lua_TValue* %fi, %struct.lua_TValue** %2, align 4
+ store i32 %n, i32* %3, align 4
+ store %struct.lua_TValue** %val, %struct.lua_TValue*** %4, align 4
+ %5 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.lua_TValue* %5, i32 0, i32 1 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ %8 = icmp eq i32 %7, 6 ; [#uses=1]
+ br i1 %8, label %10, label %9
+
+; <label>:9 ; preds = %0
+ store i8* null, i8** %1
+ br label %79
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = getelementptr inbounds %union.anon* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = bitcast double* %13 to %union.GCObject** ; [#uses=1]
+ %15 = load %union.GCObject** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %union.GCObject* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = bitcast %struct.lua_State* %16 to %union.Closure* ; [#uses=1]
+ store %union.Closure* %17, %union.Closure** %f, align 4
+ %18 = load %union.Closure** %f, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %union.Closure* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.CClosure* %19, i32 0, i32 3 ; [#uses=1]
+ %21 = load i8* %20, align 1 ; [#uses=1]
+ %22 = icmp ne i8 %21, 0 ; [#uses=1]
+ br i1 %22, label %23, label %43
+
+; <label>:23 ; preds = %10
+ %24 = load i32* %3, align 4 ; [#uses=1]
+ %25 = icmp sle i32 1, %24 ; [#uses=1]
+ br i1 %25, label %26, label %34
+
+; <label>:26 ; preds = %23
+ %27 = load i32* %3, align 4 ; [#uses=1]
+ %28 = load %union.Closure** %f, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %union.Closure* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.CClosure* %29, i32 0, i32 4 ; [#uses=1]
+ %31 = load i8* %30, align 1 ; [#uses=1]
+ %32 = zext i8 %31 to i32 ; [#uses=1]
+ %33 = icmp sle i32 %27, %32 ; [#uses=1]
+ br i1 %33, label %35, label %34
+
+; <label>:34 ; preds = %26, %23
+ store i8* null, i8** %1
+ br label %79
+
+; <label>:35 ; preds = %26
+ %36 = load i32* %3, align 4 ; [#uses=1]
+ %37 = sub nsw i32 %36, 1 ; [#uses=1]
+ %38 = load %union.Closure** %f, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %union.Closure* %38, i32 0, i32 0 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.CClosure* %39, i32 0, i32 8 ; [#uses=1]
+ %41 = getelementptr inbounds [1 x %struct.lua_TValue]* %40, i32 0, i32 %37 ; [#uses=1]
+ %42 = load %struct.lua_TValue*** %4, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %41, %struct.lua_TValue** %42
+ store i8* getelementptr inbounds ([1 x i8]* @.str331, i32 0, i32 0), i8** %1
+ br label %79
+
+; <label>:43 ; preds = %10
+ %44 = load %union.Closure** %f, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %union.Closure* %44, i32 0, i32 0 ; [#uses=1]
+ %46 = bitcast %struct.CClosure* %45 to %struct.LClosure* ; [#uses=1]
+ %47 = getelementptr inbounds %struct.LClosure* %46, i32 0, i32 7 ; [#uses=1]
+ %48 = load %struct.Proto** %47, align 4 ; [#uses=1]
+ store %struct.Proto* %48, %struct.Proto** %p, align 4
+ %49 = load i32* %3, align 4 ; [#uses=1]
+ %50 = icmp sle i32 1, %49 ; [#uses=1]
+ br i1 %50, label %51, label %57
+
+; <label>:51 ; preds = %43
+ %52 = load i32* %3, align 4 ; [#uses=1]
+ %53 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.Proto* %53, i32 0, i32 10 ; [#uses=1]
+ %55 = load i32* %54, align 4 ; [#uses=1]
+ %56 = icmp sle i32 %52, %55 ; [#uses=1]
+ br i1 %56, label %58, label %57
+
+; <label>:57 ; preds = %51, %43
+ store i8* null, i8** %1
+ br label %79
+
+; <label>:58 ; preds = %51
+ %59 = load i32* %3, align 4 ; [#uses=1]
+ %60 = sub nsw i32 %59, 1 ; [#uses=1]
+ %61 = load %union.Closure** %f, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds %union.Closure* %61, i32 0, i32 0 ; [#uses=1]
+ %63 = bitcast %struct.CClosure* %62 to %struct.LClosure* ; [#uses=1]
+ %64 = getelementptr inbounds %struct.LClosure* %63, i32 0, i32 8 ; [#uses=1]
+ %65 = getelementptr inbounds [1 x %struct.UpVal*]* %64, i32 0, i32 %60 ; [#uses=1]
+ %66 = load %struct.UpVal** %65 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.UpVal* %66, i32 0, i32 3 ; [#uses=1]
+ %68 = load %struct.lua_TValue** %67, align 4 ; [#uses=1]
+ %69 = load %struct.lua_TValue*** %4, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %68, %struct.lua_TValue** %69
+ %70 = load i32* %3, align 4 ; [#uses=1]
+ %71 = sub nsw i32 %70, 1 ; [#uses=1]
+ %72 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.Proto* %72, i32 0, i32 8 ; [#uses=1]
+ %74 = load %union.TString*** %73, align 4 ; [#uses=1]
+ %75 = getelementptr inbounds %union.TString** %74, i32 %71 ; [#uses=1]
+ %76 = load %union.TString** %75 ; [#uses=1]
+ %77 = getelementptr inbounds %union.TString* %76, i32 1 ; [#uses=1]
+ %78 = bitcast %union.TString* %77 to i8* ; [#uses=1]
+ store i8* %78, i8** %1
+ br label %79
+
+; <label>:79 ; preds = %58, %57, %35, %34, %9
+ %80 = load i8** %1 ; [#uses=1]
+ ret i8* %80
+}
+
+; [#uses=1]
+define i8* @_Z14lua_setupvalueP9lua_Stateii(%struct.lua_State* %L, i32 %funcindex, i32 %n) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %name = alloca i8*, align 4 ; [#uses=3]
+ %val = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %fi = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %funcindex, i32* %2, align 4
+ store i32 %n, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = call %struct.lua_TValue* @_Z9index2adrP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ store %struct.lua_TValue* %6, %struct.lua_TValue** %fi, align 4
+ %7 = load %struct.lua_TValue** %fi, align 4 ; [#uses=1]
+ %8 = load i32* %3, align 4 ; [#uses=1]
+ %9 = call i8* @_Z11aux_upvalueP10lua_TValueiPS0_(%struct.lua_TValue* %7, i32 %8, %struct.lua_TValue** %val) ; [#uses=1]
+ store i8* %9, i8** %name, align 4
+ %10 = load i8** %name, align 4 ; [#uses=1]
+ %11 = icmp ne i8* %10, null ; [#uses=1]
+ br i1 %11, label %12, label %87
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_State* %13, i32 0, i32 4 ; [#uses=2]
+ %15 = load %struct.lua_TValue** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %16, %struct.lua_TValue** %14, align 4
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_State* %17, i32 0, i32 4 ; [#uses=1]
+ %19 = load %struct.lua_TValue** %18, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %19, %struct.lua_TValue** %o2, align 4
+ %20 = load %struct.lua_TValue** %val, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %20, %struct.lua_TValue** %o1, align 4
+ %21 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_TValue* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_TValue* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = bitcast %union.anon* %22 to i8* ; [#uses=1]
+ %26 = bitcast %union.anon* %24 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %25, i8* %26, i32 8, i32 4, i1 false)
+ %27 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_TValue* %27, i32 0, i32 1 ; [#uses=1]
+ %29 = load i32* %28, align 4 ; [#uses=1]
+ %30 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_TValue* %30, i32 0, i32 1 ; [#uses=1]
+ store i32 %29, i32* %31, align 4
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_State* %32, i32 0, i32 4 ; [#uses=1]
+ %34 = load %struct.lua_TValue** %33, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_TValue* %34, i32 0, i32 1 ; [#uses=1]
+ %36 = load i32* %35, align 4 ; [#uses=1]
+ %37 = icmp sge i32 %36, 4 ; [#uses=1]
+ br i1 %37, label %38, label %86
+
+; <label>:38 ; preds = %12
+ %39 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.lua_State* %39, i32 0, i32 4 ; [#uses=1]
+ %41 = load %struct.lua_TValue** %40, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.lua_TValue* %41, i32 0, i32 0 ; [#uses=1]
+ %43 = getelementptr inbounds %union.anon* %42, i32 0, i32 0 ; [#uses=1]
+ %44 = bitcast double* %43 to %union.GCObject** ; [#uses=1]
+ %45 = load %union.GCObject** %44, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %union.GCObject* %45, i32 0, i32 0 ; [#uses=1]
+ %47 = bitcast %struct.lua_State* %46 to %struct.GCheader* ; [#uses=1]
+ %48 = getelementptr inbounds %struct.GCheader* %47, i32 0, i32 2 ; [#uses=1]
+ %49 = load i8* %48, align 1 ; [#uses=1]
+ %50 = zext i8 %49 to i32 ; [#uses=1]
+ %51 = and i32 %50, 3 ; [#uses=1]
+ %52 = icmp ne i32 %51, 0 ; [#uses=1]
+ br i1 %52, label %53, label %86
+
+; <label>:53 ; preds = %38
+ %54 = load %struct.lua_TValue** %fi, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.lua_TValue* %54, i32 0, i32 0 ; [#uses=1]
+ %56 = getelementptr inbounds %union.anon* %55, i32 0, i32 0 ; [#uses=1]
+ %57 = bitcast double* %56 to %union.GCObject** ; [#uses=1]
+ %58 = load %union.GCObject** %57, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %union.GCObject* %58, i32 0, i32 0 ; [#uses=1]
+ %60 = bitcast %struct.lua_State* %59 to %union.Closure* ; [#uses=1]
+ %61 = bitcast %union.Closure* %60 to %union.GCObject* ; [#uses=1]
+ %62 = getelementptr inbounds %union.GCObject* %61, i32 0, i32 0 ; [#uses=1]
+ %63 = bitcast %struct.lua_State* %62 to %struct.GCheader* ; [#uses=1]
+ %64 = getelementptr inbounds %struct.GCheader* %63, i32 0, i32 2 ; [#uses=1]
+ %65 = load i8* %64, align 1 ; [#uses=1]
+ %66 = zext i8 %65 to i32 ; [#uses=1]
+ %67 = and i32 %66, 4 ; [#uses=1]
+ %68 = icmp ne i32 %67, 0 ; [#uses=1]
+ br i1 %68, label %69, label %86
+
+; <label>:69 ; preds = %53
+ %70 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %71 = load %struct.lua_TValue** %fi, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.lua_TValue* %71, i32 0, i32 0 ; [#uses=1]
+ %73 = getelementptr inbounds %union.anon* %72, i32 0, i32 0 ; [#uses=1]
+ %74 = bitcast double* %73 to %union.GCObject** ; [#uses=1]
+ %75 = load %union.GCObject** %74, align 4 ; [#uses=1]
+ %76 = getelementptr inbounds %union.GCObject* %75, i32 0, i32 0 ; [#uses=1]
+ %77 = bitcast %struct.lua_State* %76 to %union.Closure* ; [#uses=1]
+ %78 = bitcast %union.Closure* %77 to %union.GCObject* ; [#uses=1]
+ %79 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %80 = getelementptr inbounds %struct.lua_State* %79, i32 0, i32 4 ; [#uses=1]
+ %81 = load %struct.lua_TValue** %80, align 4 ; [#uses=1]
+ %82 = getelementptr inbounds %struct.lua_TValue* %81, i32 0, i32 0 ; [#uses=1]
+ %83 = getelementptr inbounds %union.anon* %82, i32 0, i32 0 ; [#uses=1]
+ %84 = bitcast double* %83 to %union.GCObject** ; [#uses=1]
+ %85 = load %union.GCObject** %84, align 4 ; [#uses=1]
+ call void @_Z13luaC_barrierfP9lua_StateP8GCObjectS2_(%struct.lua_State* %70, %union.GCObject* %78, %union.GCObject* %85)
+ br label %86
+
+; <label>:86 ; preds = %69, %53, %38, %12
+ br label %87
+
+; <label>:87 ; preds = %86, %0
+ %88 = load i8** %name, align 4 ; [#uses=1]
+ ret i8* %88
+}
+
+; [#uses=2]
+define hidden void @_Z8luaK_nilP9FuncStateii(%struct.FuncState* %fs, i32 %from, i32 %n) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=8]
+ %2 = alloca i32, align 4 ; [#uses=8]
+ %3 = alloca i32, align 4 ; [#uses=4]
+ %previous = alloca i32*, align 4 ; [#uses=6]
+ %pfrom = alloca i32, align 4 ; [#uses=2]
+ %pto = alloca i32, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %from, i32* %2, align 4
+ store i32 %n, i32* %3, align 4
+ %4 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.FuncState* %4, i32 0, i32 6 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.FuncState* %7, i32 0, i32 7 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ %10 = icmp sgt i32 %6, %9 ; [#uses=1]
+ br i1 %10, label %11, label %81
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.FuncState* %12, i32 0, i32 6 ; [#uses=1]
+ %14 = load i32* %13, align 4 ; [#uses=1]
+ %15 = icmp eq i32 %14, 0 ; [#uses=1]
+ br i1 %15, label %16, label %25
+
+; <label>:16 ; preds = %11
+ %17 = load i32* %2, align 4 ; [#uses=1]
+ %18 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.FuncState* %18, i32 0, i32 13 ; [#uses=1]
+ %20 = load i8* %19, align 1 ; [#uses=1]
+ %21 = zext i8 %20 to i32 ; [#uses=1]
+ %22 = icmp sge i32 %17, %21 ; [#uses=1]
+ br i1 %22, label %23, label %24
+
+; <label>:23 ; preds = %16
+ br label %89
+
+; <label>:24 ; preds = %16
+ br label %80
+
+; <label>:25 ; preds = %11
+ %26 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.FuncState* %26, i32 0, i32 6 ; [#uses=1]
+ %28 = load i32* %27, align 4 ; [#uses=1]
+ %29 = sub nsw i32 %28, 1 ; [#uses=1]
+ %30 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.FuncState* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = load %struct.Proto** %31, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.Proto* %32, i32 0, i32 4 ; [#uses=1]
+ %34 = load i32** %33, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds i32* %34, i32 %29 ; [#uses=1]
+ store i32* %35, i32** %previous, align 4
+ %36 = load i32** %previous, align 4 ; [#uses=1]
+ %37 = load i32* %36 ; [#uses=1]
+ %38 = lshr i32 %37, 0 ; [#uses=1]
+ %39 = and i32 %38, 63 ; [#uses=1]
+ %40 = icmp eq i32 %39, 3 ; [#uses=1]
+ br i1 %40, label %41, label %79
+
+; <label>:41 ; preds = %25
+ %42 = load i32** %previous, align 4 ; [#uses=1]
+ %43 = load i32* %42 ; [#uses=1]
+ %44 = lshr i32 %43, 6 ; [#uses=1]
+ %45 = and i32 %44, 255 ; [#uses=1]
+ store i32 %45, i32* %pfrom, align 4
+ %46 = load i32** %previous, align 4 ; [#uses=1]
+ %47 = load i32* %46 ; [#uses=1]
+ %48 = lshr i32 %47, 23 ; [#uses=1]
+ %49 = and i32 %48, 511 ; [#uses=1]
+ store i32 %49, i32* %pto, align 4
+ %50 = load i32* %pfrom, align 4 ; [#uses=1]
+ %51 = load i32* %2, align 4 ; [#uses=1]
+ %52 = icmp sle i32 %50, %51 ; [#uses=1]
+ br i1 %52, label %53, label %78
+
+; <label>:53 ; preds = %41
+ %54 = load i32* %2, align 4 ; [#uses=1]
+ %55 = load i32* %pto, align 4 ; [#uses=1]
+ %56 = add nsw i32 %55, 1 ; [#uses=1]
+ %57 = icmp sle i32 %54, %56 ; [#uses=1]
+ br i1 %57, label %58, label %78
+
+; <label>:58 ; preds = %53
+ %59 = load i32* %2, align 4 ; [#uses=1]
+ %60 = load i32* %3, align 4 ; [#uses=1]
+ %61 = add nsw i32 %59, %60 ; [#uses=1]
+ %62 = sub nsw i32 %61, 1 ; [#uses=1]
+ %63 = load i32* %pto, align 4 ; [#uses=1]
+ %64 = icmp sgt i32 %62, %63 ; [#uses=1]
+ br i1 %64, label %65, label %77
+
+; <label>:65 ; preds = %58
+ %66 = load i32** %previous, align 4 ; [#uses=1]
+ %67 = load i32* %66 ; [#uses=1]
+ %68 = and i32 %67, 8388607 ; [#uses=1]
+ %69 = load i32* %2, align 4 ; [#uses=1]
+ %70 = load i32* %3, align 4 ; [#uses=1]
+ %71 = add nsw i32 %69, %70 ; [#uses=1]
+ %72 = sub nsw i32 %71, 1 ; [#uses=1]
+ %73 = shl i32 %72, 23 ; [#uses=1]
+ %74 = and i32 %73, -8388608 ; [#uses=1]
+ %75 = or i32 %68, %74 ; [#uses=1]
+ %76 = load i32** %previous, align 4 ; [#uses=1]
+ store i32 %75, i32* %76
+ br label %77
+
+; <label>:77 ; preds = %65, %58
+ br label %89
+
+; <label>:78 ; preds = %53, %41
+ br label %79
+
+; <label>:79 ; preds = %78, %25
+ br label %80
+
+; <label>:80 ; preds = %79, %24
+ br label %81
+
+; <label>:81 ; preds = %80, %0
+ %82 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %83 = load i32* %2, align 4 ; [#uses=1]
+ %84 = load i32* %2, align 4 ; [#uses=1]
+ %85 = load i32* %3, align 4 ; [#uses=1]
+ %86 = add nsw i32 %84, %85 ; [#uses=1]
+ %87 = sub nsw i32 %86, 1 ; [#uses=1]
+ %88 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %82, i32 3, i32 %83, i32 %87, i32 0) ; [#uses=0]
+ br label %89
+
+; <label>:89 ; preds = %81, %77, %23
+ ret void
+}
+
+; [#uses=24]
+define hidden i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %fs, i32 %o, i32 %a, i32 %b, i32 %c) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca i32, align 4 ; [#uses=2]
+ %5 = alloca i32, align 4 ; [#uses=2]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %o, i32* %2, align 4
+ store i32 %a, i32* %3, align 4
+ store i32 %b, i32* %4, align 4
+ store i32 %c, i32* %5, align 4
+ %6 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %7 = load i32* %2, align 4 ; [#uses=1]
+ %8 = shl i32 %7, 0 ; [#uses=1]
+ %9 = load i32* %3, align 4 ; [#uses=1]
+ %10 = shl i32 %9, 6 ; [#uses=1]
+ %11 = or i32 %8, %10 ; [#uses=1]
+ %12 = load i32* %4, align 4 ; [#uses=1]
+ %13 = shl i32 %12, 23 ; [#uses=1]
+ %14 = or i32 %11, %13 ; [#uses=1]
+ %15 = load i32* %5, align 4 ; [#uses=1]
+ %16 = shl i32 %15, 14 ; [#uses=1]
+ %17 = or i32 %14, %16 ; [#uses=1]
+ %18 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.FuncState* %18, i32 0, i32 3 ; [#uses=1]
+ %20 = load %struct.LexState** %19, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.LexState* %20, i32 0, i32 2 ; [#uses=1]
+ %22 = load i32* %21, align 4 ; [#uses=1]
+ %23 = call i32 @_Z9luaK_codeP9FuncStateji(%struct.FuncState* %6, i32 %17, i32 %22) ; [#uses=1]
+ ret i32 %23
+}
+
+; [#uses=11]
+define hidden i32 @_Z9luaK_jumpP9FuncState(%struct.FuncState* %fs) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=5]
+ %jpc = alloca i32, align 4 ; [#uses=2]
+ %j = alloca i32, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ %2 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.FuncState* %2, i32 0, i32 8 ; [#uses=1]
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ store i32 %4, i32* %jpc, align 4
+ %5 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.FuncState* %5, i32 0, i32 8 ; [#uses=1]
+ store i32 -1, i32* %6, align 4
+ %7 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %8 = call i32 @_Z12luaK_codeABxP9FuncState6OpCodeij(%struct.FuncState* %7, i32 22, i32 0, i32 131070) ; [#uses=1]
+ store i32 %8, i32* %j, align 4
+ %9 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %10 = load i32* %jpc, align 4 ; [#uses=1]
+ call void @_Z11luaK_concatP9FuncStatePii(%struct.FuncState* %9, i32* %j, i32 %10)
+ %11 = load i32* %j, align 4 ; [#uses=1]
+ ret i32 %11
+}
+
+; [#uses=9]
+define hidden i32 @_Z12luaK_codeABxP9FuncState6OpCodeij(%struct.FuncState* %fs, i32 %o, i32 %a, i32 %bc) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca i32, align 4 ; [#uses=2]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %o, i32* %2, align 4
+ store i32 %a, i32* %3, align 4
+ store i32 %bc, i32* %4, align 4
+ %5 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %6 = load i32* %2, align 4 ; [#uses=1]
+ %7 = shl i32 %6, 0 ; [#uses=1]
+ %8 = load i32* %3, align 4 ; [#uses=1]
+ %9 = shl i32 %8, 6 ; [#uses=1]
+ %10 = or i32 %7, %9 ; [#uses=1]
+ %11 = load i32* %4, align 4 ; [#uses=1]
+ %12 = shl i32 %11, 14 ; [#uses=1]
+ %13 = or i32 %10, %12 ; [#uses=1]
+ %14 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.FuncState* %14, i32 0, i32 3 ; [#uses=1]
+ %16 = load %struct.LexState** %15, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.LexState* %16, i32 0, i32 2 ; [#uses=1]
+ %18 = load i32* %17, align 4 ; [#uses=1]
+ %19 = call i32 @_Z9luaK_codeP9FuncStateji(%struct.FuncState* %5, i32 %13, i32 %18) ; [#uses=1]
+ ret i32 %19
+}
+
+; [#uses=11]
+define hidden void @_Z11luaK_concatP9FuncStatePii(%struct.FuncState* %fs, i32* %l1, i32 %l2) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %2 = alloca i32*, align 4 ; [#uses=4]
+ %3 = alloca i32, align 4 ; [#uses=4]
+ %list = alloca i32, align 4 ; [#uses=4]
+ %next = alloca i32, align 4 ; [#uses=2]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32* %l1, i32** %2, align 4
+ store i32 %l2, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = icmp eq i32 %4, -1 ; [#uses=1]
+ br i1 %5, label %6, label %7
+
+; <label>:6 ; preds = %0
+ br label %29
+
+; <label>:7 ; preds = %0
+ %8 = load i32** %2, align 4 ; [#uses=1]
+ %9 = load i32* %8 ; [#uses=1]
+ %10 = icmp eq i32 %9, -1 ; [#uses=1]
+ br i1 %10, label %11, label %14
+
+; <label>:11 ; preds = %7
+ %12 = load i32* %3, align 4 ; [#uses=1]
+ %13 = load i32** %2, align 4 ; [#uses=1]
+ store i32 %12, i32* %13
+ br label %28
+
+; <label>:14 ; preds = %7
+ %15 = load i32** %2, align 4 ; [#uses=1]
+ %16 = load i32* %15 ; [#uses=1]
+ store i32 %16, i32* %list, align 4
+ br label %17
+
+; <label>:17 ; preds = %22, %14
+ %18 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %19 = load i32* %list, align 4 ; [#uses=1]
+ %20 = call i32 @_Z7getjumpP9FuncStatei(%struct.FuncState* %18, i32 %19) ; [#uses=2]
+ store i32 %20, i32* %next, align 4
+ %21 = icmp ne i32 %20, -1 ; [#uses=1]
+ br i1 %21, label %22, label %24
+
+; <label>:22 ; preds = %17
+ %23 = load i32* %next, align 4 ; [#uses=1]
+ store i32 %23, i32* %list, align 4
+ br label %17
+
+; <label>:24 ; preds = %17
+ %25 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %26 = load i32* %list, align 4 ; [#uses=1]
+ %27 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z7fixjumpP9FuncStateii(%struct.FuncState* %25, i32 %26, i32 %27)
+ br label %28
+
+; <label>:28 ; preds = %24, %11
+ br label %29
+
+; <label>:29 ; preds = %28, %6
+ ret void
+}
+
+; [#uses=2]
+define hidden void @_Z8luaK_retP9FuncStateii(%struct.FuncState* %fs, i32 %first, i32 %nret) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=2]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %first, i32* %2, align 4
+ store i32 %nret, i32* %3, align 4
+ %4 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = load i32* %3, align 4 ; [#uses=1]
+ %7 = add nsw i32 %6, 1 ; [#uses=1]
+ %8 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %4, i32 30, i32 %5, i32 %7, i32 0) ; [#uses=0]
+ ret void
+}
+
+; [#uses=5]
+define hidden i32 @_Z13luaK_getlabelP9FuncState(%struct.FuncState* %fs) nounwind {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=4]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ %2 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.FuncState* %2, i32 0, i32 6 ; [#uses=1]
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.FuncState* %5, i32 0, i32 7 ; [#uses=1]
+ store i32 %4, i32* %6, align 4
+ %7 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.FuncState* %7, i32 0, i32 6 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ ret i32 %9
+}
+
+; [#uses=4]
+define hidden void @_Z14luaK_patchlistP9FuncStateii(%struct.FuncState* %fs, i32 %list, i32 %target) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=4]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %list, i32* %2, align 4
+ store i32 %target, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.FuncState* %5, i32 0, i32 6 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ %8 = icmp eq i32 %4, %7 ; [#uses=1]
+ br i1 %8, label %9, label %12
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %11 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z16luaK_patchtohereP9FuncStatei(%struct.FuncState* %10, i32 %11)
+ br label %17
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %14 = load i32* %2, align 4 ; [#uses=1]
+ %15 = load i32* %3, align 4 ; [#uses=1]
+ %16 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z12patchlistauxP9FuncStateiiii(%struct.FuncState* %13, i32 %14, i32 %15, i32 255, i32 %16)
+ br label %17
+
+; <label>:17 ; preds = %12, %9
+ ret void
+}
+
+; [#uses=11]
+define hidden void @_Z16luaK_patchtohereP9FuncStatei(%struct.FuncState* %fs, i32 %list) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %list, i32* %2, align 4
+ %3 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %4 = call i32 @_Z13luaK_getlabelP9FuncState(%struct.FuncState* %3) ; [#uses=0]
+ %5 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %6 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.FuncState* %6, i32 0, i32 8 ; [#uses=1]
+ %8 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z11luaK_concatP9FuncStatePii(%struct.FuncState* %5, i32* %7, i32 %8)
+ ret void
+}
+
+; [#uses=4]
+define internal void @_Z12patchlistauxP9FuncStateiiii(%struct.FuncState* %fs, i32 %list, i32 %vtarget, i32 %reg, i32 %dtarget) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=5]
+ %2 = alloca i32, align 4 ; [#uses=7]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca i32, align 4 ; [#uses=2]
+ %5 = alloca i32, align 4 ; [#uses=2]
+ %next = alloca i32, align 4 ; [#uses=2]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %list, i32* %2, align 4
+ store i32 %vtarget, i32* %3, align 4
+ store i32 %reg, i32* %4, align 4
+ store i32 %dtarget, i32* %5, align 4
+ br label %6
+
+; <label>:6 ; preds = %26, %0
+ %7 = load i32* %2, align 4 ; [#uses=1]
+ %8 = icmp ne i32 %7, -1 ; [#uses=1]
+ br i1 %8, label %9, label %28
+
+; <label>:9 ; preds = %6
+ %10 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %11 = load i32* %2, align 4 ; [#uses=1]
+ %12 = call i32 @_Z7getjumpP9FuncStatei(%struct.FuncState* %10, i32 %11) ; [#uses=1]
+ store i32 %12, i32* %next, align 4
+ %13 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %14 = load i32* %2, align 4 ; [#uses=1]
+ %15 = load i32* %4, align 4 ; [#uses=1]
+ %16 = call i32 @_Z12patchtestregP9FuncStateii(%struct.FuncState* %13, i32 %14, i32 %15) ; [#uses=1]
+ %17 = icmp ne i32 %16, 0 ; [#uses=1]
+ br i1 %17, label %18, label %22
+
+; <label>:18 ; preds = %9
+ %19 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %20 = load i32* %2, align 4 ; [#uses=1]
+ %21 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z7fixjumpP9FuncStateii(%struct.FuncState* %19, i32 %20, i32 %21)
+ br label %26
+
+; <label>:22 ; preds = %9
+ %23 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %24 = load i32* %2, align 4 ; [#uses=1]
+ %25 = load i32* %5, align 4 ; [#uses=1]
+ call void @_Z7fixjumpP9FuncStateii(%struct.FuncState* %23, i32 %24, i32 %25)
+ br label %26
+
+; <label>:26 ; preds = %22, %18
+ %27 = load i32* %next, align 4 ; [#uses=1]
+ store i32 %27, i32* %2, align 4
+ br label %6
+
+; <label>:28 ; preds = %6
+ ret void
+}
+
+; [#uses=4]
+define internal i32 @_Z7getjumpP9FuncStatei(%struct.FuncState* %fs, i32 %pc) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.FuncState*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %offset = alloca i32, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %2, align 4
+ store i32 %pc, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.FuncState* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load %struct.Proto** %6, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.Proto* %7, i32 0, i32 4 ; [#uses=1]
+ %9 = load i32** %8, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds i32* %9, i32 %4 ; [#uses=1]
+ %11 = load i32* %10 ; [#uses=1]
+ %12 = lshr i32 %11, 14 ; [#uses=1]
+ %13 = and i32 %12, 262143 ; [#uses=1]
+ %14 = sub nsw i32 %13, 131071 ; [#uses=1]
+ store i32 %14, i32* %offset, align 4
+ %15 = load i32* %offset, align 4 ; [#uses=1]
+ %16 = icmp eq i32 %15, -1 ; [#uses=1]
+ br i1 %16, label %17, label %18
+
+; <label>:17 ; preds = %0
+ store i32 -1, i32* %1
+ br label %23
+
+; <label>:18 ; preds = %0
+ %19 = load i32* %3, align 4 ; [#uses=1]
+ %20 = add nsw i32 %19, 1 ; [#uses=1]
+ %21 = load i32* %offset, align 4 ; [#uses=1]
+ %22 = add nsw i32 %20, %21 ; [#uses=1]
+ store i32 %22, i32* %1
+ br label %23
+
+; <label>:23 ; preds = %18, %17
+ %24 = load i32* %1 ; [#uses=1]
+ ret i32 %24
+}
+
+; [#uses=3]
+define internal void @_Z7fixjumpP9FuncStateii(%struct.FuncState* %fs, i32 %pc, i32 %dest) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %jmp = alloca i32*, align 4 ; [#uses=3]
+ %offset = alloca i32, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %pc, i32* %2, align 4
+ store i32 %dest, i32* %3, align 4
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.FuncState* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load %struct.Proto** %6, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.Proto* %7, i32 0, i32 4 ; [#uses=1]
+ %9 = load i32** %8, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds i32* %9, i32 %4 ; [#uses=1]
+ store i32* %10, i32** %jmp, align 4
+ %11 = load i32* %3, align 4 ; [#uses=1]
+ %12 = load i32* %2, align 4 ; [#uses=1]
+ %13 = add nsw i32 %12, 1 ; [#uses=1]
+ %14 = sub nsw i32 %11, %13 ; [#uses=1]
+ store i32 %14, i32* %offset, align 4
+ %15 = load i32* %offset, align 4 ; [#uses=1]
+ %16 = call i32 @abs(i32 %15) nounwind readnone ; [#uses=1]
+ %17 = icmp sgt i32 %16, 131071 ; [#uses=1]
+ br i1 %17, label %18, label %22
+
+; <label>:18 ; preds = %0
+ %19 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.FuncState* %19, i32 0, i32 3 ; [#uses=1]
+ %21 = load %struct.LexState** %20, align 4 ; [#uses=1]
+ call void @_Z16luaX_syntaxerrorP8LexStatePKc(%struct.LexState* %21, i8* getelementptr inbounds ([27 x i8]* @.str37, i32 0, i32 0))
+ br label %22
+
+; <label>:22 ; preds = %18, %0
+ %23 = load i32** %jmp, align 4 ; [#uses=1]
+ %24 = load i32* %23 ; [#uses=1]
+ %25 = and i32 %24, 16383 ; [#uses=1]
+ %26 = load i32* %offset, align 4 ; [#uses=1]
+ %27 = add nsw i32 %26, 131071 ; [#uses=1]
+ %28 = shl i32 %27, 14 ; [#uses=1]
+ %29 = and i32 %28, -16384 ; [#uses=1]
+ %30 = or i32 %25, %29 ; [#uses=1]
+ %31 = load i32** %jmp, align 4 ; [#uses=1]
+ store i32 %30, i32* %31
+ ret void
+}
+
+; [#uses=2]
+define hidden void @_Z15luaK_checkstackP9FuncStatei(%struct.FuncState* %fs, i32 %n) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=5]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %newstack = alloca i32, align 4 ; [#uses=4]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %n, i32* %2, align 4
+ %3 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.FuncState* %3, i32 0, i32 9 ; [#uses=1]
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ %6 = load i32* %2, align 4 ; [#uses=1]
+ %7 = add nsw i32 %5, %6 ; [#uses=1]
+ store i32 %7, i32* %newstack, align 4
+ %8 = load i32* %newstack, align 4 ; [#uses=1]
+ %9 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.FuncState* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = load %struct.Proto** %10, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.Proto* %11, i32 0, i32 22 ; [#uses=1]
+ %13 = load i8* %12, align 1 ; [#uses=1]
+ %14 = zext i8 %13 to i32 ; [#uses=1]
+ %15 = icmp sgt i32 %8, %14 ; [#uses=1]
+ br i1 %15, label %16, label %30
+
+; <label>:16 ; preds = %0
+ %17 = load i32* %newstack, align 4 ; [#uses=1]
+ %18 = icmp sge i32 %17, 250 ; [#uses=1]
+ br i1 %18, label %19, label %23
+
+; <label>:19 ; preds = %16
+ %20 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.FuncState* %20, i32 0, i32 3 ; [#uses=1]
+ %22 = load %struct.LexState** %21, align 4 ; [#uses=1]
+ call void @_Z16luaX_syntaxerrorP8LexStatePKc(%struct.LexState* %22, i8* getelementptr inbounds ([35 x i8]* @.str432, i32 0, i32 0))
+ br label %23
+
+; <label>:23 ; preds = %19, %16
+ %24 = load i32* %newstack, align 4 ; [#uses=1]
+ %25 = trunc i32 %24 to i8 ; [#uses=1]
+ %26 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.FuncState* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = load %struct.Proto** %27, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.Proto* %28, i32 0, i32 22 ; [#uses=1]
+ store i8 %25, i8* %29, align 1
+ br label %30
+
+; <label>:30 ; preds = %23, %0
+ ret void
+}
+
+; [#uses=11]
+define hidden void @_Z16luaK_reserveregsP9FuncStatei(%struct.FuncState* %fs, i32 %n) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %n, i32* %2, align 4
+ %3 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z15luaK_checkstackP9FuncStatei(%struct.FuncState* %3, i32 %4)
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.FuncState* %6, i32 0, i32 9 ; [#uses=2]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = add nsw i32 %8, %5 ; [#uses=1]
+ store i32 %9, i32* %7, align 4
+ ret void
+}
+
+; [#uses=2]
+define hidden i32 @_Z12luaK_stringKP9FuncStateP7TString(%struct.FuncState* %fs, %union.TString* %s) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=2]
+ %2 = alloca %union.TString*, align 4 ; [#uses=2]
+ %o = alloca %struct.lua_TValue, align 4 ; [#uses=3]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %union.TString* %s, %union.TString** %2, align 4
+ store %struct.lua_TValue* %o, %struct.lua_TValue** %i_o, align 4
+ %3 = load %union.TString** %2, align 4 ; [#uses=1]
+ %4 = bitcast %union.TString* %3 to %union.GCObject* ; [#uses=1]
+ %5 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.lua_TValue* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = getelementptr inbounds %union.anon* %6, i32 0, i32 0 ; [#uses=1]
+ %8 = bitcast double* %7 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %4, %union.GCObject** %8, align 4
+ %9 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_TValue* %9, i32 0, i32 1 ; [#uses=1]
+ store i32 4, i32* %10, align 4
+ %11 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %12 = call i32 @_Z4addkP9FuncStateP10lua_TValueS2_(%struct.FuncState* %11, %struct.lua_TValue* %o, %struct.lua_TValue* %o) ; [#uses=1]
+ ret i32 %12
+}
+
+; [#uses=4]
+define internal i32 @_Z4addkP9FuncStateP10lua_TValueS2_(%struct.FuncState* %fs, %struct.lua_TValue* %k, %struct.lua_TValue* %v) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.FuncState*, align 4 ; [#uses=8]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %4 = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %L = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %idx = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %f = alloca %struct.Proto*, align 4 ; [#uses=11]
+ %oldsize = alloca i32, align 4 ; [#uses=4]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %2, align 4
+ store %struct.lua_TValue* %k, %struct.lua_TValue** %3, align 4
+ store %struct.lua_TValue* %v, %struct.lua_TValue** %4, align 4
+ %5 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.FuncState* %5, i32 0, i32 4 ; [#uses=1]
+ %7 = load %struct.lua_State** %6, align 4 ; [#uses=1]
+ store %struct.lua_State* %7, %struct.lua_State** %L, align 4
+ %8 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %9 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.FuncState* %9, i32 0, i32 1 ; [#uses=1]
+ %11 = load %struct.Table** %10, align 4 ; [#uses=1]
+ %12 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %13 = call %struct.lua_TValue* @_Z8luaH_setP9lua_StateP5TablePK10lua_TValue(%struct.lua_State* %8, %struct.Table* %11, %struct.lua_TValue* %12) ; [#uses=1]
+ store %struct.lua_TValue* %13, %struct.lua_TValue** %idx, align 4
+ %14 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.FuncState* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = load %struct.Proto** %15, align 4 ; [#uses=1]
+ store %struct.Proto* %16, %struct.Proto** %f, align 4
+ %17 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.Proto* %17, i32 0, i32 11 ; [#uses=1]
+ %19 = load i32* %18, align 4 ; [#uses=1]
+ store i32 %19, i32* %oldsize, align 4
+ %20 = load %struct.lua_TValue** %idx, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_TValue* %20, i32 0, i32 1 ; [#uses=1]
+ %22 = load i32* %21, align 4 ; [#uses=1]
+ %23 = icmp eq i32 %22, 3 ; [#uses=1]
+ br i1 %23, label %24, label %30
+
+; <label>:24 ; preds = %0
+ %25 = load %struct.lua_TValue** %idx, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_TValue* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = getelementptr inbounds %union.anon* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = load double* %27, align 4 ; [#uses=1]
+ %29 = fptosi double %28 to i32 ; [#uses=1]
+ store i32 %29, i32* %1
+ br label %137
+
+; <label>:30 ; preds = %0
+ %31 = load %struct.lua_TValue** %idx, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %31, %struct.lua_TValue** %i_o, align 4
+ %32 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.FuncState* %32, i32 0, i32 10 ; [#uses=1]
+ %34 = load i32* %33, align 4 ; [#uses=1]
+ %35 = sitofp i32 %34 to double ; [#uses=1]
+ %36 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.lua_TValue* %36, i32 0, i32 0 ; [#uses=1]
+ %38 = getelementptr inbounds %union.anon* %37, i32 0, i32 0 ; [#uses=1]
+ store double %35, double* %38, align 4
+ %39 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.lua_TValue* %39, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %40, align 4
+ %41 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.FuncState* %41, i32 0, i32 10 ; [#uses=1]
+ %43 = load i32* %42, align 4 ; [#uses=1]
+ %44 = add nsw i32 %43, 1 ; [#uses=1]
+ %45 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.Proto* %45, i32 0, i32 11 ; [#uses=1]
+ %47 = load i32* %46, align 4 ; [#uses=1]
+ %48 = icmp sgt i32 %44, %47 ; [#uses=1]
+ br i1 %48, label %49, label %61
+
+; <label>:49 ; preds = %30
+ %50 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %51 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.Proto* %51, i32 0, i32 3 ; [#uses=1]
+ %53 = load %struct.lua_TValue** %52, align 4 ; [#uses=1]
+ %54 = bitcast %struct.lua_TValue* %53 to i8* ; [#uses=1]
+ %55 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.Proto* %55, i32 0, i32 11 ; [#uses=1]
+ %57 = call i8* @_Z13luaM_growaux_P9lua_StatePvPijiPKc(%struct.lua_State* %50, i8* %54, i32* %56, i32 12, i32 262143, i8* getelementptr inbounds ([24 x i8]* @.str2634, i32 0, i32 0)) ; [#uses=1]
+ %58 = bitcast i8* %57 to %struct.lua_TValue* ; [#uses=1]
+ %59 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.Proto* %59, i32 0, i32 3 ; [#uses=1]
+ store %struct.lua_TValue* %58, %struct.lua_TValue** %60, align 4
+ br label %61
+
+; <label>:61 ; preds = %49, %30
+ br label %62
+
+; <label>:62 ; preds = %68, %61
+ %63 = load i32* %oldsize, align 4 ; [#uses=1]
+ %64 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %struct.Proto* %64, i32 0, i32 11 ; [#uses=1]
+ %66 = load i32* %65, align 4 ; [#uses=1]
+ %67 = icmp slt i32 %63, %66 ; [#uses=1]
+ br i1 %67, label %68, label %76
+
+; <label>:68 ; preds = %62
+ %69 = load i32* %oldsize, align 4 ; [#uses=2]
+ %70 = add nsw i32 %69, 1 ; [#uses=1]
+ store i32 %70, i32* %oldsize, align 4
+ %71 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.Proto* %71, i32 0, i32 3 ; [#uses=1]
+ %73 = load %struct.lua_TValue** %72, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.lua_TValue* %73, i32 %69 ; [#uses=1]
+ %75 = getelementptr inbounds %struct.lua_TValue* %74, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %75, align 4
+ br label %62
+
+; <label>:76 ; preds = %62
+ %77 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %77, %struct.lua_TValue** %o2, align 4
+ %78 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %79 = getelementptr inbounds %struct.FuncState* %78, i32 0, i32 10 ; [#uses=1]
+ %80 = load i32* %79, align 4 ; [#uses=1]
+ %81 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %82 = getelementptr inbounds %struct.Proto* %81, i32 0, i32 3 ; [#uses=1]
+ %83 = load %struct.lua_TValue** %82, align 4 ; [#uses=1]
+ %84 = getelementptr inbounds %struct.lua_TValue* %83, i32 %80 ; [#uses=1]
+ store %struct.lua_TValue* %84, %struct.lua_TValue** %o1, align 4
+ %85 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %86 = getelementptr inbounds %struct.lua_TValue* %85, i32 0, i32 0 ; [#uses=1]
+ %87 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %88 = getelementptr inbounds %struct.lua_TValue* %87, i32 0, i32 0 ; [#uses=1]
+ %89 = bitcast %union.anon* %86 to i8* ; [#uses=1]
+ %90 = bitcast %union.anon* %88 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %89, i8* %90, i32 8, i32 4, i1 false)
+ %91 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %92 = getelementptr inbounds %struct.lua_TValue* %91, i32 0, i32 1 ; [#uses=1]
+ %93 = load i32* %92, align 4 ; [#uses=1]
+ %94 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %95 = getelementptr inbounds %struct.lua_TValue* %94, i32 0, i32 1 ; [#uses=1]
+ store i32 %93, i32* %95, align 4
+ %96 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %97 = getelementptr inbounds %struct.lua_TValue* %96, i32 0, i32 1 ; [#uses=1]
+ %98 = load i32* %97, align 4 ; [#uses=1]
+ %99 = icmp sge i32 %98, 4 ; [#uses=1]
+ br i1 %99, label %100, label %132
+
+; <label>:100 ; preds = %76
+ %101 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %102 = getelementptr inbounds %struct.lua_TValue* %101, i32 0, i32 0 ; [#uses=1]
+ %103 = getelementptr inbounds %union.anon* %102, i32 0, i32 0 ; [#uses=1]
+ %104 = bitcast double* %103 to %union.GCObject** ; [#uses=1]
+ %105 = load %union.GCObject** %104, align 4 ; [#uses=1]
+ %106 = getelementptr inbounds %union.GCObject* %105, i32 0, i32 0 ; [#uses=1]
+ %107 = bitcast %struct.lua_State* %106 to %struct.GCheader* ; [#uses=1]
+ %108 = getelementptr inbounds %struct.GCheader* %107, i32 0, i32 2 ; [#uses=1]
+ %109 = load i8* %108, align 1 ; [#uses=1]
+ %110 = zext i8 %109 to i32 ; [#uses=1]
+ %111 = and i32 %110, 3 ; [#uses=1]
+ %112 = icmp ne i32 %111, 0 ; [#uses=1]
+ br i1 %112, label %113, label %132
+
+; <label>:113 ; preds = %100
+ %114 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %115 = bitcast %struct.Proto* %114 to %union.GCObject* ; [#uses=1]
+ %116 = getelementptr inbounds %union.GCObject* %115, i32 0, i32 0 ; [#uses=1]
+ %117 = bitcast %struct.lua_State* %116 to %struct.GCheader* ; [#uses=1]
+ %118 = getelementptr inbounds %struct.GCheader* %117, i32 0, i32 2 ; [#uses=1]
+ %119 = load i8* %118, align 1 ; [#uses=1]
+ %120 = zext i8 %119 to i32 ; [#uses=1]
+ %121 = and i32 %120, 4 ; [#uses=1]
+ %122 = icmp ne i32 %121, 0 ; [#uses=1]
+ br i1 %122, label %123, label %132
+
+; <label>:123 ; preds = %113
+ %124 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %125 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %126 = bitcast %struct.Proto* %125 to %union.GCObject* ; [#uses=1]
+ %127 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %128 = getelementptr inbounds %struct.lua_TValue* %127, i32 0, i32 0 ; [#uses=1]
+ %129 = getelementptr inbounds %union.anon* %128, i32 0, i32 0 ; [#uses=1]
+ %130 = bitcast double* %129 to %union.GCObject** ; [#uses=1]
+ %131 = load %union.GCObject** %130, align 4 ; [#uses=1]
+ call void @_Z13luaC_barrierfP9lua_StateP8GCObjectS2_(%struct.lua_State* %124, %union.GCObject* %126, %union.GCObject* %131)
+ br label %132
+
+; <label>:132 ; preds = %123, %113, %100, %76
+ %133 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %134 = getelementptr inbounds %struct.FuncState* %133, i32 0, i32 10 ; [#uses=2]
+ %135 = load i32* %134, align 4 ; [#uses=2]
+ %136 = add nsw i32 %135, 1 ; [#uses=1]
+ store i32 %136, i32* %134, align 4
+ store i32 %135, i32* %1
+ br label %137
+
+; <label>:137 ; preds = %132, %24
+ %138 = load i32* %1 ; [#uses=1]
+ ret i32 %138
+}
+
+; [#uses=3]
+define hidden i32 @_Z12luaK_numberKP9FuncStated(%struct.FuncState* %fs, double %r) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=2]
+ %2 = alloca double, align 4 ; [#uses=2]
+ %o = alloca %struct.lua_TValue, align 4 ; [#uses=3]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store double %r, double* %2, align 8
+ store %struct.lua_TValue* %o, %struct.lua_TValue** %i_o, align 4
+ %3 = load double* %2, align 8 ; [#uses=1]
+ %4 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_TValue* %4, i32 0, i32 0 ; [#uses=1]
+ %6 = getelementptr inbounds %union.anon* %5, i32 0, i32 0 ; [#uses=1]
+ store double %3, double* %6, align 4
+ %7 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_TValue* %7, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %8, align 4
+ %9 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %10 = call i32 @_Z4addkP9FuncStateP10lua_TValueS2_(%struct.FuncState* %9, %struct.lua_TValue* %o, %struct.lua_TValue* %o) ; [#uses=1]
+ ret i32 %10
+}
+
+; [#uses=4]
+define hidden void @_Z15luaK_setreturnsP9FuncStateP7expdesci(%struct.FuncState* %fs, %struct.expdesc* %e, i32 %nresults) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=9]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=9]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %2, align 4
+ store i32 %nresults, i32* %3, align 4
+ %4 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.expdesc* %4, i32 0, i32 0 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = icmp eq i32 %6, 13 ; [#uses=1]
+ br i1 %7, label %8, label %38
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.expdesc* %9, i32 0, i32 1 ; [#uses=1]
+ %11 = getelementptr inbounds %2* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = getelementptr inbounds %3* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ %14 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.FuncState* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = load %struct.Proto** %15, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.Proto* %16, i32 0, i32 4 ; [#uses=1]
+ %18 = load i32** %17, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds i32* %18, i32 %13 ; [#uses=1]
+ %20 = load i32* %19 ; [#uses=1]
+ %21 = and i32 %20, -8372225 ; [#uses=1]
+ %22 = load i32* %3, align 4 ; [#uses=1]
+ %23 = add nsw i32 %22, 1 ; [#uses=1]
+ %24 = shl i32 %23, 14 ; [#uses=1]
+ %25 = and i32 %24, 8372224 ; [#uses=1]
+ %26 = or i32 %21, %25 ; [#uses=1]
+ %27 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.expdesc* %27, i32 0, i32 1 ; [#uses=1]
+ %29 = getelementptr inbounds %2* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = getelementptr inbounds %3* %29, i32 0, i32 0 ; [#uses=1]
+ %31 = load i32* %30, align 4 ; [#uses=1]
+ %32 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.FuncState* %32, i32 0, i32 0 ; [#uses=1]
+ %34 = load %struct.Proto** %33, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.Proto* %34, i32 0, i32 4 ; [#uses=1]
+ %36 = load i32** %35, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds i32* %36, i32 %31 ; [#uses=1]
+ store i32 %26, i32* %37
+ br label %105
+
+; <label>:38 ; preds = %0
+ %39 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.expdesc* %39, i32 0, i32 0 ; [#uses=1]
+ %41 = load i32* %40, align 4 ; [#uses=1]
+ %42 = icmp eq i32 %41, 14 ; [#uses=1]
+ br i1 %42, label %43, label %104
+
+; <label>:43 ; preds = %38
+ %44 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.expdesc* %44, i32 0, i32 1 ; [#uses=1]
+ %46 = getelementptr inbounds %2* %45, i32 0, i32 0 ; [#uses=1]
+ %47 = getelementptr inbounds %3* %46, i32 0, i32 0 ; [#uses=1]
+ %48 = load i32* %47, align 4 ; [#uses=1]
+ %49 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.FuncState* %49, i32 0, i32 0 ; [#uses=1]
+ %51 = load %struct.Proto** %50, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.Proto* %51, i32 0, i32 4 ; [#uses=1]
+ %53 = load i32** %52, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds i32* %53, i32 %48 ; [#uses=1]
+ %55 = load i32* %54 ; [#uses=1]
+ %56 = and i32 %55, 8388607 ; [#uses=1]
+ %57 = load i32* %3, align 4 ; [#uses=1]
+ %58 = add nsw i32 %57, 1 ; [#uses=1]
+ %59 = shl i32 %58, 23 ; [#uses=1]
+ %60 = and i32 %59, -8388608 ; [#uses=1]
+ %61 = or i32 %56, %60 ; [#uses=1]
+ %62 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.expdesc* %62, i32 0, i32 1 ; [#uses=1]
+ %64 = getelementptr inbounds %2* %63, i32 0, i32 0 ; [#uses=1]
+ %65 = getelementptr inbounds %3* %64, i32 0, i32 0 ; [#uses=1]
+ %66 = load i32* %65, align 4 ; [#uses=1]
+ %67 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.FuncState* %67, i32 0, i32 0 ; [#uses=1]
+ %69 = load %struct.Proto** %68, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.Proto* %69, i32 0, i32 4 ; [#uses=1]
+ %71 = load i32** %70, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds i32* %71, i32 %66 ; [#uses=1]
+ store i32 %61, i32* %72
+ %73 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.expdesc* %73, i32 0, i32 1 ; [#uses=1]
+ %75 = getelementptr inbounds %2* %74, i32 0, i32 0 ; [#uses=1]
+ %76 = getelementptr inbounds %3* %75, i32 0, i32 0 ; [#uses=1]
+ %77 = load i32* %76, align 4 ; [#uses=1]
+ %78 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %79 = getelementptr inbounds %struct.FuncState* %78, i32 0, i32 0 ; [#uses=1]
+ %80 = load %struct.Proto** %79, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.Proto* %80, i32 0, i32 4 ; [#uses=1]
+ %82 = load i32** %81, align 4 ; [#uses=1]
+ %83 = getelementptr inbounds i32* %82, i32 %77 ; [#uses=1]
+ %84 = load i32* %83 ; [#uses=1]
+ %85 = and i32 %84, -16321 ; [#uses=1]
+ %86 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %87 = getelementptr inbounds %struct.FuncState* %86, i32 0, i32 9 ; [#uses=1]
+ %88 = load i32* %87, align 4 ; [#uses=1]
+ %89 = shl i32 %88, 6 ; [#uses=1]
+ %90 = and i32 %89, 16320 ; [#uses=1]
+ %91 = or i32 %85, %90 ; [#uses=1]
+ %92 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %93 = getelementptr inbounds %struct.expdesc* %92, i32 0, i32 1 ; [#uses=1]
+ %94 = getelementptr inbounds %2* %93, i32 0, i32 0 ; [#uses=1]
+ %95 = getelementptr inbounds %3* %94, i32 0, i32 0 ; [#uses=1]
+ %96 = load i32* %95, align 4 ; [#uses=1]
+ %97 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %98 = getelementptr inbounds %struct.FuncState* %97, i32 0, i32 0 ; [#uses=1]
+ %99 = load %struct.Proto** %98, align 4 ; [#uses=1]
+ %100 = getelementptr inbounds %struct.Proto* %99, i32 0, i32 4 ; [#uses=1]
+ %101 = load i32** %100, align 4 ; [#uses=1]
+ %102 = getelementptr inbounds i32* %101, i32 %96 ; [#uses=1]
+ store i32 %91, i32* %102
+ %103 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ call void @_Z16luaK_reserveregsP9FuncStatei(%struct.FuncState* %103, i32 1)
+ br label %104
+
+; <label>:104 ; preds = %43, %38
+ br label %105
+
+; <label>:105 ; preds = %104, %8
+ ret void
+}
+
+; [#uses=2]
+define hidden void @_Z14luaK_setoneretP9FuncStateP7expdesc(%struct.FuncState* %fs, %struct.expdesc* %e) nounwind {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=4]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=9]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %2, align 4
+ %3 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.expdesc* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ %6 = icmp eq i32 %5, 13 ; [#uses=1]
+ br i1 %6, label %7, label %28
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.expdesc* %8, i32 0, i32 0 ; [#uses=1]
+ store i32 12, i32* %9, align 4
+ %10 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.expdesc* %10, i32 0, i32 1 ; [#uses=1]
+ %12 = getelementptr inbounds %2* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = getelementptr inbounds %3* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = load i32* %13, align 4 ; [#uses=1]
+ %15 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.FuncState* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = load %struct.Proto** %16, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.Proto* %17, i32 0, i32 4 ; [#uses=1]
+ %19 = load i32** %18, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds i32* %19, i32 %14 ; [#uses=1]
+ %21 = load i32* %20 ; [#uses=1]
+ %22 = lshr i32 %21, 6 ; [#uses=1]
+ %23 = and i32 %22, 255 ; [#uses=1]
+ %24 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.expdesc* %24, i32 0, i32 1 ; [#uses=1]
+ %26 = getelementptr inbounds %2* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = getelementptr inbounds %3* %26, i32 0, i32 0 ; [#uses=1]
+ store i32 %23, i32* %27, align 4
+ br label %62
+
+; <label>:28 ; preds = %0
+ %29 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.expdesc* %29, i32 0, i32 0 ; [#uses=1]
+ %31 = load i32* %30, align 4 ; [#uses=1]
+ %32 = icmp eq i32 %31, 14 ; [#uses=1]
+ br i1 %32, label %33, label %61
+
+; <label>:33 ; preds = %28
+ %34 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.expdesc* %34, i32 0, i32 1 ; [#uses=1]
+ %36 = getelementptr inbounds %2* %35, i32 0, i32 0 ; [#uses=1]
+ %37 = getelementptr inbounds %3* %36, i32 0, i32 0 ; [#uses=1]
+ %38 = load i32* %37, align 4 ; [#uses=1]
+ %39 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.FuncState* %39, i32 0, i32 0 ; [#uses=1]
+ %41 = load %struct.Proto** %40, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.Proto* %41, i32 0, i32 4 ; [#uses=1]
+ %43 = load i32** %42, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds i32* %43, i32 %38 ; [#uses=1]
+ %45 = load i32* %44 ; [#uses=1]
+ %46 = and i32 %45, 8388607 ; [#uses=1]
+ %47 = or i32 %46, 16777216 ; [#uses=1]
+ %48 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.expdesc* %48, i32 0, i32 1 ; [#uses=1]
+ %50 = getelementptr inbounds %2* %49, i32 0, i32 0 ; [#uses=1]
+ %51 = getelementptr inbounds %3* %50, i32 0, i32 0 ; [#uses=1]
+ %52 = load i32* %51, align 4 ; [#uses=1]
+ %53 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.FuncState* %53, i32 0, i32 0 ; [#uses=1]
+ %55 = load %struct.Proto** %54, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.Proto* %55, i32 0, i32 4 ; [#uses=1]
+ %57 = load i32** %56, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds i32* %57, i32 %52 ; [#uses=1]
+ store i32 %47, i32* %58
+ %59 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.expdesc* %59, i32 0, i32 0 ; [#uses=1]
+ store i32 11, i32* %60, align 4
+ br label %61
+
+; <label>:61 ; preds = %33, %28
+ br label %62
+
+; <label>:62 ; preds = %61, %7
+ ret void
+}
+
+; [#uses=10]
+define hidden void @_Z18luaK_dischargevarsP9FuncStateP7expdesc(%struct.FuncState* %fs, %struct.expdesc* %e) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=7]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=16]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %2, align 4
+ %3 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.expdesc* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ switch i32 %5, label %71 [
+ i32 6, label %6
+ i32 7, label %9
+ i32 8, label %23
+ i32 9, label %37
+ i32 14, label %68
+ i32 13, label %68
+ ]
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.expdesc* %7, i32 0, i32 0 ; [#uses=1]
+ store i32 12, i32* %8, align 4
+ br label %72
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %11 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.expdesc* %11, i32 0, i32 1 ; [#uses=1]
+ %13 = getelementptr inbounds %2* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = getelementptr inbounds %3* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = load i32* %14, align 4 ; [#uses=1]
+ %16 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %10, i32 4, i32 0, i32 %15, i32 0) ; [#uses=1]
+ %17 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.expdesc* %17, i32 0, i32 1 ; [#uses=1]
+ %19 = getelementptr inbounds %2* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = getelementptr inbounds %3* %19, i32 0, i32 0 ; [#uses=1]
+ store i32 %16, i32* %20, align 4
+ %21 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.expdesc* %21, i32 0, i32 0 ; [#uses=1]
+ store i32 11, i32* %22, align 4
+ br label %72
+
+; <label>:23 ; preds = %0
+ %24 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %25 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.expdesc* %25, i32 0, i32 1 ; [#uses=1]
+ %27 = getelementptr inbounds %2* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = getelementptr inbounds %3* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = load i32* %28, align 4 ; [#uses=1]
+ %30 = call i32 @_Z12luaK_codeABxP9FuncState6OpCodeij(%struct.FuncState* %24, i32 5, i32 0, i32 %29) ; [#uses=1]
+ %31 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.expdesc* %31, i32 0, i32 1 ; [#uses=1]
+ %33 = getelementptr inbounds %2* %32, i32 0, i32 0 ; [#uses=1]
+ %34 = getelementptr inbounds %3* %33, i32 0, i32 0 ; [#uses=1]
+ store i32 %30, i32* %34, align 4
+ %35 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.expdesc* %35, i32 0, i32 0 ; [#uses=1]
+ store i32 11, i32* %36, align 4
+ br label %72
+
+; <label>:37 ; preds = %0
+ %38 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %39 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.expdesc* %39, i32 0, i32 1 ; [#uses=1]
+ %41 = getelementptr inbounds %2* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = getelementptr inbounds %3* %41, i32 0, i32 1 ; [#uses=1]
+ %43 = load i32* %42, align 4 ; [#uses=1]
+ call void @_Z7freeregP9FuncStatei(%struct.FuncState* %38, i32 %43)
+ %44 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %45 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.expdesc* %45, i32 0, i32 1 ; [#uses=1]
+ %47 = getelementptr inbounds %2* %46, i32 0, i32 0 ; [#uses=1]
+ %48 = getelementptr inbounds %3* %47, i32 0, i32 0 ; [#uses=1]
+ %49 = load i32* %48, align 4 ; [#uses=1]
+ call void @_Z7freeregP9FuncStatei(%struct.FuncState* %44, i32 %49)
+ %50 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %51 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.expdesc* %51, i32 0, i32 1 ; [#uses=1]
+ %53 = getelementptr inbounds %2* %52, i32 0, i32 0 ; [#uses=1]
+ %54 = getelementptr inbounds %3* %53, i32 0, i32 0 ; [#uses=1]
+ %55 = load i32* %54, align 4 ; [#uses=1]
+ %56 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.expdesc* %56, i32 0, i32 1 ; [#uses=1]
+ %58 = getelementptr inbounds %2* %57, i32 0, i32 0 ; [#uses=1]
+ %59 = getelementptr inbounds %3* %58, i32 0, i32 1 ; [#uses=1]
+ %60 = load i32* %59, align 4 ; [#uses=1]
+ %61 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %50, i32 6, i32 0, i32 %55, i32 %60) ; [#uses=1]
+ %62 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.expdesc* %62, i32 0, i32 1 ; [#uses=1]
+ %64 = getelementptr inbounds %2* %63, i32 0, i32 0 ; [#uses=1]
+ %65 = getelementptr inbounds %3* %64, i32 0, i32 0 ; [#uses=1]
+ store i32 %61, i32* %65, align 4
+ %66 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.expdesc* %66, i32 0, i32 0 ; [#uses=1]
+ store i32 11, i32* %67, align 4
+ br label %72
+
+; <label>:68 ; preds = %0, %0
+ %69 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %70 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z14luaK_setoneretP9FuncStateP7expdesc(%struct.FuncState* %69, %struct.expdesc* %70)
+ br label %72
+
+; <label>:71 ; preds = %0
+ br label %72
+
+; <label>:72 ; preds = %71, %68, %37, %23, %9, %6
+ ret void
+}
+
+; [#uses=3]
+define internal void @_Z7freeregP9FuncStatei(%struct.FuncState* %fs, i32 %reg) nounwind {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %reg, i32* %2, align 4
+ %3 = load i32* %2, align 4 ; [#uses=1]
+ %4 = and i32 %3, 256 ; [#uses=1]
+ %5 = icmp ne i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %18, label %6
+
+; <label>:6 ; preds = %0
+ %7 = load i32* %2, align 4 ; [#uses=1]
+ %8 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.FuncState* %8, i32 0, i32 13 ; [#uses=1]
+ %10 = load i8* %9, align 1 ; [#uses=1]
+ %11 = zext i8 %10 to i32 ; [#uses=1]
+ %12 = icmp sge i32 %7, %11 ; [#uses=1]
+ br i1 %12, label %13, label %18
+
+; <label>:13 ; preds = %6
+ %14 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.FuncState* %14, i32 0, i32 9 ; [#uses=2]
+ %16 = load i32* %15, align 4 ; [#uses=1]
+ %17 = add nsw i32 %16, -1 ; [#uses=1]
+ store i32 %17, i32* %15, align 4
+ br label %18
+
+; <label>:18 ; preds = %13, %6, %0
+ ret void
+}
+
+; [#uses=12]
+define hidden void @_Z16luaK_exp2nextregP9FuncStateP7expdesc(%struct.FuncState* %fs, %struct.expdesc* %e) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=6]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=4]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %2, align 4
+ %3 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %4 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z18luaK_dischargevarsP9FuncStateP7expdesc(%struct.FuncState* %3, %struct.expdesc* %4)
+ %5 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %6 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z7freeexpP9FuncStateP7expdesc(%struct.FuncState* %5, %struct.expdesc* %6)
+ %7 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ call void @_Z16luaK_reserveregsP9FuncStatei(%struct.FuncState* %7, i32 1)
+ %8 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %9 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %10 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.FuncState* %10, i32 0, i32 9 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ %13 = sub nsw i32 %12, 1 ; [#uses=1]
+ call void @_Z7exp2regP9FuncStateP7expdesci(%struct.FuncState* %8, %struct.expdesc* %9, i32 %13)
+ ret void
+}
+
+; [#uses=14]
+define internal void @_Z7freeexpP9FuncStateP7expdesc(%struct.FuncState* %fs, %struct.expdesc* %e) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=2]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %2, align 4
+ %3 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.expdesc* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ %6 = icmp eq i32 %5, 12 ; [#uses=1]
+ br i1 %6, label %7, label %14
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %9 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.expdesc* %9, i32 0, i32 1 ; [#uses=1]
+ %11 = getelementptr inbounds %2* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = getelementptr inbounds %3* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ call void @_Z7freeregP9FuncStatei(%struct.FuncState* %8, i32 %13)
+ br label %14
+
+; <label>:14 ; preds = %7, %0
+ ret void
+}
+
+; [#uses=3]
+define internal void @_Z7exp2regP9FuncStateP7expdesci(%struct.FuncState* %fs, %struct.expdesc* %e, i32 %reg) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=12]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=16]
+ %3 = alloca i32, align 4 ; [#uses=7]
+ %final = alloca i32, align 4 ; [#uses=3]
+ %p_f = alloca i32, align 4 ; [#uses=3]
+ %p_t = alloca i32, align 4 ; [#uses=3]
+ %fj = alloca i32, align 4 ; [#uses=2]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %2, align 4
+ store i32 %reg, i32* %3, align 4
+ %4 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %5 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %6 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z13discharge2regP9FuncStateP7expdesci(%struct.FuncState* %4, %struct.expdesc* %5, i32 %6)
+ %7 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.expdesc* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ %10 = icmp eq i32 %9, 10 ; [#uses=1]
+ br i1 %10, label %11, label %20
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %13 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.expdesc* %13, i32 0, i32 2 ; [#uses=1]
+ %15 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.expdesc* %15, i32 0, i32 1 ; [#uses=1]
+ %17 = getelementptr inbounds %2* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = getelementptr inbounds %3* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = load i32* %18, align 4 ; [#uses=1]
+ call void @_Z11luaK_concatP9FuncStatePii(%struct.FuncState* %12, i32* %14, i32 %19)
+ br label %20
+
+; <label>:20 ; preds = %11, %0
+ %21 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.expdesc* %21, i32 0, i32 2 ; [#uses=1]
+ %23 = load i32* %22, align 4 ; [#uses=1]
+ %24 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.expdesc* %24, i32 0, i32 3 ; [#uses=1]
+ %26 = load i32* %25, align 4 ; [#uses=1]
+ %27 = icmp ne i32 %23, %26 ; [#uses=1]
+ br i1 %27, label %28, label %78
+
+; <label>:28 ; preds = %20
+ store i32 -1, i32* %p_f, align 4
+ store i32 -1, i32* %p_t, align 4
+ %29 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %30 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.expdesc* %30, i32 0, i32 2 ; [#uses=1]
+ %32 = load i32* %31, align 4 ; [#uses=1]
+ %33 = call i32 @_Z10need_valueP9FuncStatei(%struct.FuncState* %29, i32 %32) ; [#uses=1]
+ %34 = icmp ne i32 %33, 0 ; [#uses=1]
+ br i1 %34, label %42, label %35
+
+; <label>:35 ; preds = %28
+ %36 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %37 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.expdesc* %37, i32 0, i32 3 ; [#uses=1]
+ %39 = load i32* %38, align 4 ; [#uses=1]
+ %40 = call i32 @_Z10need_valueP9FuncStatei(%struct.FuncState* %36, i32 %39) ; [#uses=1]
+ %41 = icmp ne i32 %40, 0 ; [#uses=1]
+ br i1 %41, label %42, label %61
+
+; <label>:42 ; preds = %35, %28
+ %43 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.expdesc* %43, i32 0, i32 0 ; [#uses=1]
+ %45 = load i32* %44, align 4 ; [#uses=1]
+ %46 = icmp eq i32 %45, 10 ; [#uses=1]
+ br i1 %46, label %47, label %48
+
+; <label>:47 ; preds = %42
+ br label %51
+
+; <label>:48 ; preds = %42
+ %49 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %50 = call i32 @_Z9luaK_jumpP9FuncState(%struct.FuncState* %49) ; [#uses=1]
+ br label %51
+
+; <label>:51 ; preds = %48, %47
+ %52 = phi i32 [ -1, %47 ], [ %50, %48 ] ; [#uses=1]
+ store i32 %52, i32* %fj, align 4
+ %53 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %54 = load i32* %3, align 4 ; [#uses=1]
+ %55 = call i32 @_Z10code_labelP9FuncStateiii(%struct.FuncState* %53, i32 %54, i32 0, i32 1) ; [#uses=1]
+ store i32 %55, i32* %p_f, align 4
+ %56 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %57 = load i32* %3, align 4 ; [#uses=1]
+ %58 = call i32 @_Z10code_labelP9FuncStateiii(%struct.FuncState* %56, i32 %57, i32 1, i32 0) ; [#uses=1]
+ store i32 %58, i32* %p_t, align 4
+ %59 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %60 = load i32* %fj, align 4 ; [#uses=1]
+ call void @_Z16luaK_patchtohereP9FuncStatei(%struct.FuncState* %59, i32 %60)
+ br label %61
+
+; <label>:61 ; preds = %51, %35
+ %62 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %63 = call i32 @_Z13luaK_getlabelP9FuncState(%struct.FuncState* %62) ; [#uses=1]
+ store i32 %63, i32* %final, align 4
+ %64 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %65 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.expdesc* %65, i32 0, i32 3 ; [#uses=1]
+ %67 = load i32* %66, align 4 ; [#uses=1]
+ %68 = load i32* %final, align 4 ; [#uses=1]
+ %69 = load i32* %3, align 4 ; [#uses=1]
+ %70 = load i32* %p_f, align 4 ; [#uses=1]
+ call void @_Z12patchlistauxP9FuncStateiiii(%struct.FuncState* %64, i32 %67, i32 %68, i32 %69, i32 %70)
+ %71 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %72 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.expdesc* %72, i32 0, i32 2 ; [#uses=1]
+ %74 = load i32* %73, align 4 ; [#uses=1]
+ %75 = load i32* %final, align 4 ; [#uses=1]
+ %76 = load i32* %3, align 4 ; [#uses=1]
+ %77 = load i32* %p_t, align 4 ; [#uses=1]
+ call void @_Z12patchlistauxP9FuncStateiiii(%struct.FuncState* %71, i32 %74, i32 %75, i32 %76, i32 %77)
+ br label %78
+
+; <label>:78 ; preds = %61, %20
+ %79 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %80 = getelementptr inbounds %struct.expdesc* %79, i32 0, i32 2 ; [#uses=1]
+ store i32 -1, i32* %80, align 4
+ %81 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %82 = getelementptr inbounds %struct.expdesc* %81, i32 0, i32 3 ; [#uses=1]
+ store i32 -1, i32* %82, align 4
+ %83 = load i32* %3, align 4 ; [#uses=1]
+ %84 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %struct.expdesc* %84, i32 0, i32 1 ; [#uses=1]
+ %86 = getelementptr inbounds %2* %85, i32 0, i32 0 ; [#uses=1]
+ %87 = getelementptr inbounds %3* %86, i32 0, i32 0 ; [#uses=1]
+ store i32 %83, i32* %87, align 4
+ %88 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %89 = getelementptr inbounds %struct.expdesc* %88, i32 0, i32 0 ; [#uses=1]
+ store i32 12, i32* %89, align 4
+ ret void
+}
+
+; [#uses=10]
+define hidden i32 @_Z15luaK_exp2anyregP9FuncStateP7expdesc(%struct.FuncState* %fs, %struct.expdesc* %e) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.FuncState*, align 4 ; [#uses=5]
+ %3 = alloca %struct.expdesc*, align 4 ; [#uses=12]
+ store %struct.FuncState* %fs, %struct.FuncState** %2, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %3, align 4
+ %4 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %5 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ call void @_Z18luaK_dischargevarsP9FuncStateP7expdesc(%struct.FuncState* %4, %struct.expdesc* %5)
+ %6 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.expdesc* %6, i32 0, i32 0 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = icmp eq i32 %8, 12 ; [#uses=1]
+ br i1 %9, label %10, label %49
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.expdesc* %11, i32 0, i32 2 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ %14 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.expdesc* %14, i32 0, i32 3 ; [#uses=1]
+ %16 = load i32* %15, align 4 ; [#uses=1]
+ %17 = icmp ne i32 %13, %16 ; [#uses=1]
+ br i1 %17, label %24, label %18
+
+; <label>:18 ; preds = %10
+ %19 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.expdesc* %19, i32 0, i32 1 ; [#uses=1]
+ %21 = getelementptr inbounds %2* %20, i32 0, i32 0 ; [#uses=1]
+ %22 = getelementptr inbounds %3* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = load i32* %22, align 4 ; [#uses=1]
+ store i32 %23, i32* %1
+ br label %57
+
+; <label>:24 ; preds = %10
+ %25 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.expdesc* %25, i32 0, i32 1 ; [#uses=1]
+ %27 = getelementptr inbounds %2* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = getelementptr inbounds %3* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = load i32* %28, align 4 ; [#uses=1]
+ %30 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.FuncState* %30, i32 0, i32 13 ; [#uses=1]
+ %32 = load i8* %31, align 1 ; [#uses=1]
+ %33 = zext i8 %32 to i32 ; [#uses=1]
+ %34 = icmp sge i32 %29, %33 ; [#uses=1]
+ br i1 %34, label %35, label %48
+
+; <label>:35 ; preds = %24
+ %36 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %37 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %38 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.expdesc* %38, i32 0, i32 1 ; [#uses=1]
+ %40 = getelementptr inbounds %2* %39, i32 0, i32 0 ; [#uses=1]
+ %41 = getelementptr inbounds %3* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = load i32* %41, align 4 ; [#uses=1]
+ call void @_Z7exp2regP9FuncStateP7expdesci(%struct.FuncState* %36, %struct.expdesc* %37, i32 %42)
+ %43 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.expdesc* %43, i32 0, i32 1 ; [#uses=1]
+ %45 = getelementptr inbounds %2* %44, i32 0, i32 0 ; [#uses=1]
+ %46 = getelementptr inbounds %3* %45, i32 0, i32 0 ; [#uses=1]
+ %47 = load i32* %46, align 4 ; [#uses=1]
+ store i32 %47, i32* %1
+ br label %57
+
+; <label>:48 ; preds = %24
+ br label %49
+
+; <label>:49 ; preds = %48, %0
+ %50 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %51 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ call void @_Z16luaK_exp2nextregP9FuncStateP7expdesc(%struct.FuncState* %50, %struct.expdesc* %51)
+ %52 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.expdesc* %52, i32 0, i32 1 ; [#uses=1]
+ %54 = getelementptr inbounds %2* %53, i32 0, i32 0 ; [#uses=1]
+ %55 = getelementptr inbounds %3* %54, i32 0, i32 0 ; [#uses=1]
+ %56 = load i32* %55, align 4 ; [#uses=1]
+ store i32 %56, i32* %1
+ br label %57
+
+; <label>:57 ; preds = %49, %35, %18
+ %58 = load i32* %1 ; [#uses=1]
+ ret i32 %58
+}
+
+; [#uses=3]
+define hidden void @_Z12luaK_exp2valP9FuncStateP7expdesc(%struct.FuncState* %fs, %struct.expdesc* %e) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=5]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %2, align 4
+ %3 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.expdesc* %3, i32 0, i32 2 ; [#uses=1]
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ %6 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.expdesc* %6, i32 0, i32 3 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = icmp ne i32 %5, %8 ; [#uses=1]
+ br i1 %9, label %10, label %14
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %12 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %13 = call i32 @_Z15luaK_exp2anyregP9FuncStateP7expdesc(%struct.FuncState* %11, %struct.expdesc* %12) ; [#uses=0]
+ br label %17
+
+; <label>:14 ; preds = %0
+ %15 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %16 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z18luaK_dischargevarsP9FuncStateP7expdesc(%struct.FuncState* %15, %struct.expdesc* %16)
+ br label %17
+
+; <label>:17 ; preds = %14, %10
+ ret void
+}
+
+; [#uses=11]
+define hidden i32 @_Z11luaK_exp2RKP9FuncStateP7expdesc(%struct.FuncState* %fs, %struct.expdesc* %e) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.FuncState*, align 4 ; [#uses=7]
+ %3 = alloca %struct.expdesc*, align 4 ; [#uses=13]
+ store %struct.FuncState* %fs, %struct.FuncState** %2, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %3, align 4
+ %4 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %5 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ call void @_Z12luaK_exp2valP9FuncStateP7expdesc(%struct.FuncState* %4, %struct.expdesc* %5)
+ %6 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.expdesc* %6, i32 0, i32 0 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ switch i32 %8, label %75 [
+ i32 5, label %9
+ i32 2, label %9
+ i32 3, label %9
+ i32 1, label %9
+ i32 4, label %60
+ ]
+
+; <label>:9 ; preds = %0, %0, %0, %0
+ %10 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.FuncState* %10, i32 0, i32 10 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ %13 = icmp sle i32 %12, 255 ; [#uses=1]
+ br i1 %13, label %14, label %59
+
+; <label>:14 ; preds = %9
+ %15 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.expdesc* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = load i32* %16, align 4 ; [#uses=1]
+ %18 = icmp eq i32 %17, 1 ; [#uses=1]
+ br i1 %18, label %19, label %22
+
+; <label>:19 ; preds = %14
+ %20 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %21 = call i32 @_Z4nilKP9FuncState(%struct.FuncState* %20) ; [#uses=1]
+ br label %45
+
+; <label>:22 ; preds = %14
+ %23 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.expdesc* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = load i32* %24, align 4 ; [#uses=1]
+ %26 = icmp eq i32 %25, 5 ; [#uses=1]
+ br i1 %26, label %27, label %35
+
+; <label>:27 ; preds = %22
+ %28 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %29 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.expdesc* %29, i32 0, i32 1 ; [#uses=1]
+ %31 = getelementptr inbounds %2* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = bitcast %3* %31 to double* ; [#uses=1]
+ %33 = load double* %32, align 4 ; [#uses=1]
+ %34 = call i32 @_Z12luaK_numberKP9FuncStated(%struct.FuncState* %28, double %33) ; [#uses=1]
+ br label %43
+
+; <label>:35 ; preds = %22
+ %36 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %37 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.expdesc* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = load i32* %38, align 4 ; [#uses=1]
+ %40 = icmp eq i32 %39, 2 ; [#uses=1]
+ %41 = zext i1 %40 to i32 ; [#uses=1]
+ %42 = call i32 @_Z5boolKP9FuncStatei(%struct.FuncState* %36, i32 %41) ; [#uses=1]
+ br label %43
+
+; <label>:43 ; preds = %35, %27
+ %44 = phi i32 [ %34, %27 ], [ %42, %35 ] ; [#uses=1]
+ br label %45
+
+; <label>:45 ; preds = %43, %19
+ %46 = phi i32 [ %21, %19 ], [ %44, %43 ] ; [#uses=1]
+ %47 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.expdesc* %47, i32 0, i32 1 ; [#uses=1]
+ %49 = getelementptr inbounds %2* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = getelementptr inbounds %3* %49, i32 0, i32 0 ; [#uses=1]
+ store i32 %46, i32* %50, align 4
+ %51 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.expdesc* %51, i32 0, i32 0 ; [#uses=1]
+ store i32 4, i32* %52, align 4
+ %53 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.expdesc* %53, i32 0, i32 1 ; [#uses=1]
+ %55 = getelementptr inbounds %2* %54, i32 0, i32 0 ; [#uses=1]
+ %56 = getelementptr inbounds %3* %55, i32 0, i32 0 ; [#uses=1]
+ %57 = load i32* %56, align 4 ; [#uses=1]
+ %58 = or i32 %57, 256 ; [#uses=1]
+ store i32 %58, i32* %1
+ br label %80
+
+; <label>:59 ; preds = %9
+ br label %76
+
+; <label>:60 ; preds = %0
+ %61 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds %struct.expdesc* %61, i32 0, i32 1 ; [#uses=1]
+ %63 = getelementptr inbounds %2* %62, i32 0, i32 0 ; [#uses=1]
+ %64 = getelementptr inbounds %3* %63, i32 0, i32 0 ; [#uses=1]
+ %65 = load i32* %64, align 4 ; [#uses=1]
+ %66 = icmp sle i32 %65, 255 ; [#uses=1]
+ br i1 %66, label %67, label %74
+
+; <label>:67 ; preds = %60
+ %68 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.expdesc* %68, i32 0, i32 1 ; [#uses=1]
+ %70 = getelementptr inbounds %2* %69, i32 0, i32 0 ; [#uses=1]
+ %71 = getelementptr inbounds %3* %70, i32 0, i32 0 ; [#uses=1]
+ %72 = load i32* %71, align 4 ; [#uses=1]
+ %73 = or i32 %72, 256 ; [#uses=1]
+ store i32 %73, i32* %1
+ br label %80
+
+; <label>:74 ; preds = %60
+ br label %76
+
+; <label>:75 ; preds = %0
+ br label %76
+
+; <label>:76 ; preds = %75, %74, %59
+ %77 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %78 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %79 = call i32 @_Z15luaK_exp2anyregP9FuncStateP7expdesc(%struct.FuncState* %77, %struct.expdesc* %78) ; [#uses=1]
+ store i32 %79, i32* %1
+ br label %80
+
+; <label>:80 ; preds = %76, %67, %45
+ %81 = load i32* %1 ; [#uses=1]
+ ret i32 %81
+}
+
+; [#uses=1]
+define internal i32 @_Z4nilKP9FuncState(%struct.FuncState* %fs) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %k = alloca %struct.lua_TValue, align 4 ; [#uses=2]
+ %v = alloca %struct.lua_TValue, align 4 ; [#uses=2]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ %2 = getelementptr inbounds %struct.lua_TValue* %v, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %2, align 4
+ store %struct.lua_TValue* %k, %struct.lua_TValue** %i_o, align 4
+ %3 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.FuncState* %3, i32 0, i32 1 ; [#uses=1]
+ %5 = load %struct.Table** %4, align 4 ; [#uses=1]
+ %6 = bitcast %struct.Table* %5 to %union.GCObject* ; [#uses=1]
+ %7 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_TValue* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = getelementptr inbounds %union.anon* %8, i32 0, i32 0 ; [#uses=1]
+ %10 = bitcast double* %9 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %6, %union.GCObject** %10, align 4
+ %11 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 1 ; [#uses=1]
+ store i32 5, i32* %12, align 4
+ %13 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %14 = call i32 @_Z4addkP9FuncStateP10lua_TValueS2_(%struct.FuncState* %13, %struct.lua_TValue* %k, %struct.lua_TValue* %v) ; [#uses=1]
+ ret i32 %14
+}
+
+; [#uses=1]
+define internal i32 @_Z5boolKP9FuncStatei(%struct.FuncState* %fs, i32 %b) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=2]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %o = alloca %struct.lua_TValue, align 4 ; [#uses=3]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %b, i32* %2, align 4
+ store %struct.lua_TValue* %o, %struct.lua_TValue** %i_o, align 4
+ %3 = load i32* %2, align 4 ; [#uses=1]
+ %4 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_TValue* %4, i32 0, i32 0 ; [#uses=1]
+ %6 = getelementptr inbounds %union.anon* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = bitcast double* %6 to i32* ; [#uses=1]
+ store i32 %3, i32* %7, align 4
+ %8 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_TValue* %8, i32 0, i32 1 ; [#uses=1]
+ store i32 1, i32* %9, align 4
+ %10 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %11 = call i32 @_Z4addkP9FuncStateP10lua_TValueS2_(%struct.FuncState* %10, %struct.lua_TValue* %o, %struct.lua_TValue* %o) ; [#uses=1]
+ ret i32 %11
+}
+
+; [#uses=4]
+define hidden void @_Z13luaK_storevarP9FuncStateP7expdescS2_(%struct.FuncState* %fs, %struct.expdesc* %var, %struct.expdesc* %ex) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=10]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=7]
+ %3 = alloca %struct.expdesc*, align 4 ; [#uses=7]
+ %e = alloca i32, align 4 ; [#uses=2]
+ %e1 = alloca i32, align 4 ; [#uses=2]
+ %e2 = alloca i32, align 4 ; [#uses=2]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.expdesc* %var, %struct.expdesc** %2, align 4
+ store %struct.expdesc* %ex, %struct.expdesc** %3, align 4
+ %4 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.expdesc* %4, i32 0, i32 0 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ switch i32 %6, label %58 [
+ i32 6, label %7
+ i32 7, label %17
+ i32 8, label %29
+ i32 9, label %41
+ ]
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %9 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ call void @_Z7freeexpP9FuncStateP7expdesc(%struct.FuncState* %8, %struct.expdesc* %9)
+ %10 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %11 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %12 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.expdesc* %12, i32 0, i32 1 ; [#uses=1]
+ %14 = getelementptr inbounds %2* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = getelementptr inbounds %3* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = load i32* %15, align 4 ; [#uses=1]
+ call void @_Z7exp2regP9FuncStateP7expdesci(%struct.FuncState* %10, %struct.expdesc* %11, i32 %16)
+ br label %62
+
+; <label>:17 ; preds = %0
+ %18 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %19 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %20 = call i32 @_Z15luaK_exp2anyregP9FuncStateP7expdesc(%struct.FuncState* %18, %struct.expdesc* %19) ; [#uses=1]
+ store i32 %20, i32* %e, align 4
+ %21 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %22 = load i32* %e, align 4 ; [#uses=1]
+ %23 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.expdesc* %23, i32 0, i32 1 ; [#uses=1]
+ %25 = getelementptr inbounds %2* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = getelementptr inbounds %3* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = load i32* %26, align 4 ; [#uses=1]
+ %28 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %21, i32 8, i32 %22, i32 %27, i32 0) ; [#uses=0]
+ br label %59
+
+; <label>:29 ; preds = %0
+ %30 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %31 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %32 = call i32 @_Z15luaK_exp2anyregP9FuncStateP7expdesc(%struct.FuncState* %30, %struct.expdesc* %31) ; [#uses=1]
+ store i32 %32, i32* %e1, align 4
+ %33 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %34 = load i32* %e1, align 4 ; [#uses=1]
+ %35 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.expdesc* %35, i32 0, i32 1 ; [#uses=1]
+ %37 = getelementptr inbounds %2* %36, i32 0, i32 0 ; [#uses=1]
+ %38 = getelementptr inbounds %3* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = load i32* %38, align 4 ; [#uses=1]
+ %40 = call i32 @_Z12luaK_codeABxP9FuncState6OpCodeij(%struct.FuncState* %33, i32 7, i32 %34, i32 %39) ; [#uses=0]
+ br label %59
+
+; <label>:41 ; preds = %0
+ %42 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %43 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %44 = call i32 @_Z11luaK_exp2RKP9FuncStateP7expdesc(%struct.FuncState* %42, %struct.expdesc* %43) ; [#uses=1]
+ store i32 %44, i32* %e2, align 4
+ %45 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %46 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.expdesc* %46, i32 0, i32 1 ; [#uses=1]
+ %48 = getelementptr inbounds %2* %47, i32 0, i32 0 ; [#uses=1]
+ %49 = getelementptr inbounds %3* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = load i32* %49, align 4 ; [#uses=1]
+ %51 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.expdesc* %51, i32 0, i32 1 ; [#uses=1]
+ %53 = getelementptr inbounds %2* %52, i32 0, i32 0 ; [#uses=1]
+ %54 = getelementptr inbounds %3* %53, i32 0, i32 1 ; [#uses=1]
+ %55 = load i32* %54, align 4 ; [#uses=1]
+ %56 = load i32* %e2, align 4 ; [#uses=1]
+ %57 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %45, i32 9, i32 %50, i32 %55, i32 %56) ; [#uses=0]
+ br label %59
+
+; <label>:58 ; preds = %0
+ br label %59
+
+; <label>:59 ; preds = %58, %41, %29, %17
+ %60 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %61 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ call void @_Z7freeexpP9FuncStateP7expdesc(%struct.FuncState* %60, %struct.expdesc* %61)
+ br label %62
+
+; <label>:62 ; preds = %59, %7
+ ret void
+}
+
+; [#uses=1]
+define hidden void @_Z9luaK_selfP9FuncStateP7expdescS2_(%struct.FuncState* %fs, %struct.expdesc* %e, %struct.expdesc* %key) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=8]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=6]
+ %3 = alloca %struct.expdesc*, align 4 ; [#uses=3]
+ %func = alloca i32, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %2, align 4
+ store %struct.expdesc* %key, %struct.expdesc** %3, align 4
+ %4 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %5 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %6 = call i32 @_Z15luaK_exp2anyregP9FuncStateP7expdesc(%struct.FuncState* %4, %struct.expdesc* %5) ; [#uses=0]
+ %7 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %8 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z7freeexpP9FuncStateP7expdesc(%struct.FuncState* %7, %struct.expdesc* %8)
+ %9 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.FuncState* %9, i32 0, i32 9 ; [#uses=1]
+ %11 = load i32* %10, align 4 ; [#uses=1]
+ store i32 %11, i32* %func, align 4
+ %12 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ call void @_Z16luaK_reserveregsP9FuncStatei(%struct.FuncState* %12, i32 2)
+ %13 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %14 = load i32* %func, align 4 ; [#uses=1]
+ %15 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.expdesc* %15, i32 0, i32 1 ; [#uses=1]
+ %17 = getelementptr inbounds %2* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = getelementptr inbounds %3* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = load i32* %18, align 4 ; [#uses=1]
+ %20 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %21 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %22 = call i32 @_Z11luaK_exp2RKP9FuncStateP7expdesc(%struct.FuncState* %20, %struct.expdesc* %21) ; [#uses=1]
+ %23 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %13, i32 11, i32 %14, i32 %19, i32 %22) ; [#uses=0]
+ %24 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %25 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ call void @_Z7freeexpP9FuncStateP7expdesc(%struct.FuncState* %24, %struct.expdesc* %25)
+ %26 = load i32* %func, align 4 ; [#uses=1]
+ %27 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.expdesc* %27, i32 0, i32 1 ; [#uses=1]
+ %29 = getelementptr inbounds %2* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = getelementptr inbounds %3* %29, i32 0, i32 0 ; [#uses=1]
+ store i32 %26, i32* %30, align 4
+ %31 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.expdesc* %31, i32 0, i32 0 ; [#uses=1]
+ store i32 12, i32* %32, align 4
+ ret void
+}
+
+; [#uses=2]
+define hidden void @_Z13luaK_goiftrueP9FuncStateP7expdesc(%struct.FuncState* %fs, %struct.expdesc* %e) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=7]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=9]
+ %pc = alloca i32, align 4 ; [#uses=5]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %2, align 4
+ %3 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %4 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z18luaK_dischargevarsP9FuncStateP7expdesc(%struct.FuncState* %3, %struct.expdesc* %4)
+ %5 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.expdesc* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ switch i32 %7, label %20 [
+ i32 4, label %8
+ i32 5, label %8
+ i32 2, label %8
+ i32 3, label %9
+ i32 10, label %12
+ ]
+
+; <label>:8 ; preds = %0, %0, %0
+ store i32 -1, i32* %pc, align 4
+ br label %24
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %11 = call i32 @_Z9luaK_jumpP9FuncState(%struct.FuncState* %10) ; [#uses=1]
+ store i32 %11, i32* %pc, align 4
+ br label %24
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %14 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z10invertjumpP9FuncStateP7expdesc(%struct.FuncState* %13, %struct.expdesc* %14)
+ %15 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.expdesc* %15, i32 0, i32 1 ; [#uses=1]
+ %17 = getelementptr inbounds %2* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = getelementptr inbounds %3* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = load i32* %18, align 4 ; [#uses=1]
+ store i32 %19, i32* %pc, align 4
+ br label %24
+
+; <label>:20 ; preds = %0
+ %21 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %22 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %23 = call i32 @_Z10jumponcondP9FuncStateP7expdesci(%struct.FuncState* %21, %struct.expdesc* %22, i32 0) ; [#uses=1]
+ store i32 %23, i32* %pc, align 4
+ br label %24
+
+; <label>:24 ; preds = %20, %12, %9, %8
+ %25 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %26 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.expdesc* %26, i32 0, i32 3 ; [#uses=1]
+ %28 = load i32* %pc, align 4 ; [#uses=1]
+ call void @_Z11luaK_concatP9FuncStatePii(%struct.FuncState* %25, i32* %27, i32 %28)
+ %29 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %30 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.expdesc* %30, i32 0, i32 2 ; [#uses=1]
+ %32 = load i32* %31, align 4 ; [#uses=1]
+ call void @_Z16luaK_patchtohereP9FuncStatei(%struct.FuncState* %29, i32 %32)
+ %33 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.expdesc* %33, i32 0, i32 2 ; [#uses=1]
+ store i32 -1, i32* %34, align 4
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z10invertjumpP9FuncStateP7expdesc(%struct.FuncState* %fs, %struct.expdesc* %e) nounwind {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=2]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=2]
+ %pc = alloca i32*, align 4 ; [#uses=4]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %2, align 4
+ %3 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %4 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.expdesc* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = getelementptr inbounds %2* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = getelementptr inbounds %3* %6, i32 0, i32 0 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = call i32* @_Z14getjumpcontrolP9FuncStatei(%struct.FuncState* %3, i32 %8) ; [#uses=1]
+ store i32* %9, i32** %pc, align 4
+ %10 = load i32** %pc, align 4 ; [#uses=1]
+ %11 = load i32* %10 ; [#uses=1]
+ %12 = and i32 %11, -16321 ; [#uses=1]
+ %13 = load i32** %pc, align 4 ; [#uses=1]
+ %14 = load i32* %13 ; [#uses=1]
+ %15 = lshr i32 %14, 6 ; [#uses=1]
+ %16 = and i32 %15, 255 ; [#uses=1]
+ %17 = icmp ne i32 %16, 0 ; [#uses=1]
+ %18 = xor i1 %17, true ; [#uses=1]
+ %19 = zext i1 %18 to i32 ; [#uses=1]
+ %20 = shl i32 %19, 6 ; [#uses=1]
+ %21 = and i32 %20, 16320 ; [#uses=1]
+ %22 = or i32 %12, %21 ; [#uses=1]
+ %23 = load i32** %pc, align 4 ; [#uses=1]
+ store i32 %22, i32* %23
+ ret void
+}
+
+; [#uses=2]
+define internal i32 @_Z10jumponcondP9FuncStateP7expdesci(%struct.FuncState* %fs, %struct.expdesc* %e, i32 %cond) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.FuncState*, align 4 ; [#uses=7]
+ %3 = alloca %struct.expdesc*, align 4 ; [#uses=6]
+ %4 = alloca i32, align 4 ; [#uses=3]
+ %ie = alloca i32, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %2, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %3, align 4
+ store i32 %cond, i32* %4, align 4
+ %5 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.expdesc* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ %8 = icmp eq i32 %7, 11 ; [#uses=1]
+ br i1 %8, label %9, label %41
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.expdesc* %10, i32 0, i32 1 ; [#uses=1]
+ %12 = getelementptr inbounds %2* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = getelementptr inbounds %3* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = load i32* %13, align 4 ; [#uses=1]
+ %15 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.FuncState* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = load %struct.Proto** %16, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.Proto* %17, i32 0, i32 4 ; [#uses=1]
+ %19 = load i32** %18, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds i32* %19, i32 %14 ; [#uses=1]
+ %21 = load i32* %20 ; [#uses=1]
+ store i32 %21, i32* %ie, align 4
+ %22 = load i32* %ie, align 4 ; [#uses=1]
+ %23 = lshr i32 %22, 0 ; [#uses=1]
+ %24 = and i32 %23, 63 ; [#uses=1]
+ %25 = icmp eq i32 %24, 19 ; [#uses=1]
+ br i1 %25, label %26, label %40
+
+; <label>:26 ; preds = %9
+ %27 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.FuncState* %27, i32 0, i32 6 ; [#uses=2]
+ %29 = load i32* %28, align 4 ; [#uses=1]
+ %30 = add nsw i32 %29, -1 ; [#uses=1]
+ store i32 %30, i32* %28, align 4
+ %31 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %32 = load i32* %ie, align 4 ; [#uses=1]
+ %33 = lshr i32 %32, 23 ; [#uses=1]
+ %34 = and i32 %33, 511 ; [#uses=1]
+ %35 = load i32* %4, align 4 ; [#uses=1]
+ %36 = icmp ne i32 %35, 0 ; [#uses=1]
+ %37 = xor i1 %36, true ; [#uses=1]
+ %38 = zext i1 %37 to i32 ; [#uses=1]
+ %39 = call i32 @_Z8condjumpP9FuncState6OpCodeiii(%struct.FuncState* %31, i32 26, i32 %34, i32 0, i32 %38) ; [#uses=1]
+ store i32 %39, i32* %1
+ br label %54
+
+; <label>:40 ; preds = %9
+ br label %41
+
+; <label>:41 ; preds = %40, %0
+ %42 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %43 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ call void @_Z16discharge2anyregP9FuncStateP7expdesc(%struct.FuncState* %42, %struct.expdesc* %43)
+ %44 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %45 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ call void @_Z7freeexpP9FuncStateP7expdesc(%struct.FuncState* %44, %struct.expdesc* %45)
+ %46 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %47 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.expdesc* %47, i32 0, i32 1 ; [#uses=1]
+ %49 = getelementptr inbounds %2* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = getelementptr inbounds %3* %49, i32 0, i32 0 ; [#uses=1]
+ %51 = load i32* %50, align 4 ; [#uses=1]
+ %52 = load i32* %4, align 4 ; [#uses=1]
+ %53 = call i32 @_Z8condjumpP9FuncState6OpCodeiii(%struct.FuncState* %46, i32 27, i32 255, i32 %51, i32 %52) ; [#uses=1]
+ store i32 %53, i32* %1
+ br label %54
+
+; <label>:54 ; preds = %41, %26
+ %55 = load i32* %1 ; [#uses=1]
+ ret i32 %55
+}
+
+; [#uses=2]
+define hidden void @_Z12luaK_indexedP9FuncStateP7expdescS2_(%struct.FuncState* %fs, %struct.expdesc* %t, %struct.expdesc* %k) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=2]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=3]
+ %3 = alloca %struct.expdesc*, align 4 ; [#uses=2]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.expdesc* %t, %struct.expdesc** %2, align 4
+ store %struct.expdesc* %k, %struct.expdesc** %3, align 4
+ %4 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %5 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %6 = call i32 @_Z11luaK_exp2RKP9FuncStateP7expdesc(%struct.FuncState* %4, %struct.expdesc* %5) ; [#uses=1]
+ %7 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.expdesc* %7, i32 0, i32 1 ; [#uses=1]
+ %9 = getelementptr inbounds %2* %8, i32 0, i32 0 ; [#uses=1]
+ %10 = getelementptr inbounds %3* %9, i32 0, i32 1 ; [#uses=1]
+ store i32 %6, i32* %10, align 4
+ %11 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.expdesc* %11, i32 0, i32 0 ; [#uses=1]
+ store i32 9, i32* %12, align 4
+ ret void
+}
+
+; [#uses=1]
+define hidden void @_Z11luaK_prefixP9FuncState5UnOprP7expdesc(%struct.FuncState* %fs, i32 %op, %struct.expdesc* %e) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=6]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca %struct.expdesc*, align 4 ; [#uses=7]
+ %e2 = alloca %struct.expdesc, align 4 ; [#uses=6]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %op, i32* %2, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %3, align 4
+ %4 = getelementptr inbounds %struct.expdesc* %e2, i32 0, i32 3 ; [#uses=1]
+ store i32 -1, i32* %4, align 4
+ %5 = getelementptr inbounds %struct.expdesc* %e2, i32 0, i32 2 ; [#uses=1]
+ store i32 -1, i32* %5, align 4
+ %6 = getelementptr inbounds %struct.expdesc* %e2, i32 0, i32 0 ; [#uses=1]
+ store i32 5, i32* %6, align 4
+ %7 = getelementptr inbounds %struct.expdesc* %e2, i32 0, i32 1 ; [#uses=1]
+ %8 = getelementptr inbounds %2* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = bitcast %3* %8 to double* ; [#uses=1]
+ store double 0.000000e+00, double* %9, align 4
+ %10 = load i32* %2, align 4 ; [#uses=1]
+ switch i32 %10, label %31 [
+ i32 0, label %11
+ i32 1, label %22
+ i32 2, label %25
+ ]
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %13 = call i32 @_Z9isnumeralP7expdesc(%struct.expdesc* %12) ; [#uses=1]
+ %14 = icmp ne i32 %13, 0 ; [#uses=1]
+ br i1 %14, label %19, label %15
+
+; <label>:15 ; preds = %11
+ %16 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %17 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %18 = call i32 @_Z15luaK_exp2anyregP9FuncStateP7expdesc(%struct.FuncState* %16, %struct.expdesc* %17) ; [#uses=0]
+ br label %19
+
+; <label>:19 ; preds = %15, %11
+ %20 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %21 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ call void @_Z9codearithP9FuncState6OpCodeP7expdescS3_(%struct.FuncState* %20, i32 18, %struct.expdesc* %21, %struct.expdesc* %e2)
+ br label %32
+
+; <label>:22 ; preds = %0
+ %23 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %24 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ call void @_Z7codenotP9FuncStateP7expdesc(%struct.FuncState* %23, %struct.expdesc* %24)
+ br label %32
+
+; <label>:25 ; preds = %0
+ %26 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %27 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %28 = call i32 @_Z15luaK_exp2anyregP9FuncStateP7expdesc(%struct.FuncState* %26, %struct.expdesc* %27) ; [#uses=0]
+ %29 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %30 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ call void @_Z9codearithP9FuncState6OpCodeP7expdescS3_(%struct.FuncState* %29, i32 20, %struct.expdesc* %30, %struct.expdesc* %e2)
+ br label %32
+
+; <label>:31 ; preds = %0
+ br label %32
+
+; <label>:32 ; preds = %31, %25, %22, %19
+ ret void
+}
+
+; [#uses=4]
+define internal i32 @_Z9isnumeralP7expdesc(%struct.expdesc* %e) nounwind {
+; <label>:0
+ %1 = alloca %struct.expdesc*, align 4 ; [#uses=4]
+ store %struct.expdesc* %e, %struct.expdesc** %1, align 4
+ %2 = load %struct.expdesc** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.expdesc* %2, i32 0, i32 0 ; [#uses=1]
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = icmp eq i32 %4, 5 ; [#uses=1]
+ br i1 %5, label %6, label %16
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.expdesc** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.expdesc* %7, i32 0, i32 2 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ %10 = icmp eq i32 %9, -1 ; [#uses=1]
+ br i1 %10, label %11, label %16
+
+; <label>:11 ; preds = %6
+ %12 = load %struct.expdesc** %1, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.expdesc* %12, i32 0, i32 3 ; [#uses=1]
+ %14 = load i32* %13, align 4 ; [#uses=1]
+ %15 = icmp eq i32 %14, -1 ; [#uses=1]
+ br label %16
+
+; <label>:16 ; preds = %11, %6, %0
+ %17 = phi i1 [ false, %6 ], [ false, %0 ], [ %15, %11 ] ; [#uses=1]
+ %18 = zext i1 %17 to i32 ; [#uses=1]
+ ret i32 %18
+}
+
+; [#uses=9]
+define internal void @_Z9codearithP9FuncState6OpCodeP7expdescS3_(%struct.FuncState* %fs, i32 %op, %struct.expdesc* %e1, %struct.expdesc* %e2) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=8]
+ %2 = alloca i32, align 4 ; [#uses=5]
+ %3 = alloca %struct.expdesc*, align 4 ; [#uses=7]
+ %4 = alloca %struct.expdesc*, align 4 ; [#uses=5]
+ %o2 = alloca i32, align 4 ; [#uses=3]
+ %o1 = alloca i32, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %op, i32* %2, align 4
+ store %struct.expdesc* %e1, %struct.expdesc** %3, align 4
+ store %struct.expdesc* %e2, %struct.expdesc** %4, align 4
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %7 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %8 = call i32 @_Z12constfolding6OpCodeP7expdescS1_(i32 %5, %struct.expdesc* %6, %struct.expdesc* %7) ; [#uses=1]
+ %9 = icmp ne i32 %8, 0 ; [#uses=1]
+ br i1 %9, label %10, label %11
+
+; <label>:10 ; preds = %0
+ br label %52
+
+; <label>:11 ; preds = %0
+ %12 = load i32* %2, align 4 ; [#uses=1]
+ %13 = icmp ne i32 %12, 18 ; [#uses=1]
+ br i1 %13, label %14, label %21
+
+; <label>:14 ; preds = %11
+ %15 = load i32* %2, align 4 ; [#uses=1]
+ %16 = icmp ne i32 %15, 20 ; [#uses=1]
+ br i1 %16, label %17, label %21
+
+; <label>:17 ; preds = %14
+ %18 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %19 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %20 = call i32 @_Z11luaK_exp2RKP9FuncStateP7expdesc(%struct.FuncState* %18, %struct.expdesc* %19) ; [#uses=1]
+ br label %22
+
+; <label>:21 ; preds = %14, %11
+ br label %22
+
+; <label>:22 ; preds = %21, %17
+ %23 = phi i32 [ %20, %17 ], [ 0, %21 ] ; [#uses=1]
+ store i32 %23, i32* %o2, align 4
+ %24 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %25 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %26 = call i32 @_Z11luaK_exp2RKP9FuncStateP7expdesc(%struct.FuncState* %24, %struct.expdesc* %25) ; [#uses=1]
+ store i32 %26, i32* %o1, align 4
+ %27 = load i32* %o1, align 4 ; [#uses=1]
+ %28 = load i32* %o2, align 4 ; [#uses=1]
+ %29 = icmp sgt i32 %27, %28 ; [#uses=1]
+ br i1 %29, label %30, label %35
+
+; <label>:30 ; preds = %22
+ %31 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %32 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ call void @_Z7freeexpP9FuncStateP7expdesc(%struct.FuncState* %31, %struct.expdesc* %32)
+ %33 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %34 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z7freeexpP9FuncStateP7expdesc(%struct.FuncState* %33, %struct.expdesc* %34)
+ br label %40
+
+; <label>:35 ; preds = %22
+ %36 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %37 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z7freeexpP9FuncStateP7expdesc(%struct.FuncState* %36, %struct.expdesc* %37)
+ %38 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %39 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ call void @_Z7freeexpP9FuncStateP7expdesc(%struct.FuncState* %38, %struct.expdesc* %39)
+ br label %40
+
+; <label>:40 ; preds = %35, %30
+ %41 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %42 = load i32* %2, align 4 ; [#uses=1]
+ %43 = load i32* %o1, align 4 ; [#uses=1]
+ %44 = load i32* %o2, align 4 ; [#uses=1]
+ %45 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %41, i32 %42, i32 0, i32 %43, i32 %44) ; [#uses=1]
+ %46 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.expdesc* %46, i32 0, i32 1 ; [#uses=1]
+ %48 = getelementptr inbounds %2* %47, i32 0, i32 0 ; [#uses=1]
+ %49 = getelementptr inbounds %3* %48, i32 0, i32 0 ; [#uses=1]
+ store i32 %45, i32* %49, align 4
+ %50 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.expdesc* %50, i32 0, i32 0 ; [#uses=1]
+ store i32 11, i32* %51, align 4
+ br label %52
+
+; <label>:52 ; preds = %40, %10
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z7codenotP9FuncStateP7expdesc(%struct.FuncState* %fs, %struct.expdesc* %e) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=8]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=17]
+ %temp = alloca i32, align 4 ; [#uses=2]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %2, align 4
+ %3 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %4 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z18luaK_dischargevarsP9FuncStateP7expdesc(%struct.FuncState* %3, %struct.expdesc* %4)
+ %5 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.expdesc* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ switch i32 %7, label %35 [
+ i32 1, label %8
+ i32 3, label %8
+ i32 4, label %11
+ i32 5, label %11
+ i32 2, label %11
+ i32 10, label %14
+ i32 11, label %17
+ i32 12, label %17
+ ]
+
+; <label>:8 ; preds = %0, %0
+ %9 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.expdesc* %9, i32 0, i32 0 ; [#uses=1]
+ store i32 2, i32* %10, align 4
+ br label %36
+
+; <label>:11 ; preds = %0, %0, %0
+ %12 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.expdesc* %12, i32 0, i32 0 ; [#uses=1]
+ store i32 3, i32* %13, align 4
+ br label %36
+
+; <label>:14 ; preds = %0
+ %15 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %16 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z10invertjumpP9FuncStateP7expdesc(%struct.FuncState* %15, %struct.expdesc* %16)
+ br label %36
+
+; <label>:17 ; preds = %0, %0
+ %18 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %19 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z16discharge2anyregP9FuncStateP7expdesc(%struct.FuncState* %18, %struct.expdesc* %19)
+ %20 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %21 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z7freeexpP9FuncStateP7expdesc(%struct.FuncState* %20, %struct.expdesc* %21)
+ %22 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %23 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.expdesc* %23, i32 0, i32 1 ; [#uses=1]
+ %25 = getelementptr inbounds %2* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = getelementptr inbounds %3* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = load i32* %26, align 4 ; [#uses=1]
+ %28 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %22, i32 19, i32 0, i32 %27, i32 0) ; [#uses=1]
+ %29 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.expdesc* %29, i32 0, i32 1 ; [#uses=1]
+ %31 = getelementptr inbounds %2* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = getelementptr inbounds %3* %31, i32 0, i32 0 ; [#uses=1]
+ store i32 %28, i32* %32, align 4
+ %33 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.expdesc* %33, i32 0, i32 0 ; [#uses=1]
+ store i32 11, i32* %34, align 4
+ br label %36
+
+; <label>:35 ; preds = %0
+ br label %36
+
+; <label>:36 ; preds = %35, %17, %14, %11, %8
+ %37 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.expdesc* %37, i32 0, i32 3 ; [#uses=1]
+ %39 = load i32* %38, align 4 ; [#uses=1]
+ store i32 %39, i32* %temp, align 4
+ %40 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.expdesc* %40, i32 0, i32 2 ; [#uses=1]
+ %42 = load i32* %41, align 4 ; [#uses=1]
+ %43 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.expdesc* %43, i32 0, i32 3 ; [#uses=1]
+ store i32 %42, i32* %44, align 4
+ %45 = load i32* %temp, align 4 ; [#uses=1]
+ %46 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.expdesc* %46, i32 0, i32 2 ; [#uses=1]
+ store i32 %45, i32* %47, align 4
+ %48 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %49 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.expdesc* %49, i32 0, i32 3 ; [#uses=1]
+ %51 = load i32* %50, align 4 ; [#uses=1]
+ call void @_Z12removevaluesP9FuncStatei(%struct.FuncState* %48, i32 %51)
+ %52 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %53 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.expdesc* %53, i32 0, i32 2 ; [#uses=1]
+ %55 = load i32* %54, align 4 ; [#uses=1]
+ call void @_Z12removevaluesP9FuncStatei(%struct.FuncState* %52, i32 %55)
+ ret void
+}
+
+; [#uses=1]
+define hidden void @_Z10luaK_infixP9FuncState6BinOprP7expdesc(%struct.FuncState* %fs, i32 %op, %struct.expdesc* %v) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=6]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca %struct.expdesc*, align 4 ; [#uses=7]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %op, i32* %2, align 4
+ store %struct.expdesc* %v, %struct.expdesc** %3, align 4
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ switch i32 %4, label %23 [
+ i32 13, label %5
+ i32 14, label %8
+ i32 6, label %11
+ i32 0, label %14
+ i32 1, label %14
+ i32 2, label %14
+ i32 3, label %14
+ i32 4, label %14
+ i32 5, label %14
+ ]
+
+; <label>:5 ; preds = %0
+ %6 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %7 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ call void @_Z13luaK_goiftrueP9FuncStateP7expdesc(%struct.FuncState* %6, %struct.expdesc* %7)
+ br label %27
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %10 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ call void @_Z14luaK_goiffalseP9FuncStateP7expdesc(%struct.FuncState* %9, %struct.expdesc* %10)
+ br label %27
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %13 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ call void @_Z16luaK_exp2nextregP9FuncStateP7expdesc(%struct.FuncState* %12, %struct.expdesc* %13)
+ br label %27
+
+; <label>:14 ; preds = %0, %0, %0, %0, %0, %0
+ %15 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %16 = call i32 @_Z9isnumeralP7expdesc(%struct.expdesc* %15) ; [#uses=1]
+ %17 = icmp ne i32 %16, 0 ; [#uses=1]
+ br i1 %17, label %22, label %18
+
+; <label>:18 ; preds = %14
+ %19 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %20 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %21 = call i32 @_Z11luaK_exp2RKP9FuncStateP7expdesc(%struct.FuncState* %19, %struct.expdesc* %20) ; [#uses=0]
+ br label %22
+
+; <label>:22 ; preds = %18, %14
+ br label %27
+
+; <label>:23 ; preds = %0
+ %24 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %25 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %26 = call i32 @_Z11luaK_exp2RKP9FuncStateP7expdesc(%struct.FuncState* %24, %struct.expdesc* %25) ; [#uses=0]
+ br label %27
+
+; <label>:27 ; preds = %23, %22, %11, %8, %5
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z14luaK_goiffalseP9FuncStateP7expdesc(%struct.FuncState* %fs, %struct.expdesc* %e) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=6]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=8]
+ %pc = alloca i32, align 4 ; [#uses=5]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %2, align 4
+ %3 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %4 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z18luaK_dischargevarsP9FuncStateP7expdesc(%struct.FuncState* %3, %struct.expdesc* %4)
+ %5 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.expdesc* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ switch i32 %7, label %18 [
+ i32 1, label %8
+ i32 3, label %8
+ i32 2, label %9
+ i32 10, label %12
+ ]
+
+; <label>:8 ; preds = %0, %0
+ store i32 -1, i32* %pc, align 4
+ br label %22
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %11 = call i32 @_Z9luaK_jumpP9FuncState(%struct.FuncState* %10) ; [#uses=1]
+ store i32 %11, i32* %pc, align 4
+ br label %22
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.expdesc* %13, i32 0, i32 1 ; [#uses=1]
+ %15 = getelementptr inbounds %2* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = getelementptr inbounds %3* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = load i32* %16, align 4 ; [#uses=1]
+ store i32 %17, i32* %pc, align 4
+ br label %22
+
+; <label>:18 ; preds = %0
+ %19 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %20 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %21 = call i32 @_Z10jumponcondP9FuncStateP7expdesci(%struct.FuncState* %19, %struct.expdesc* %20, i32 1) ; [#uses=1]
+ store i32 %21, i32* %pc, align 4
+ br label %22
+
+; <label>:22 ; preds = %18, %12, %9, %8
+ %23 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %24 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.expdesc* %24, i32 0, i32 2 ; [#uses=1]
+ %26 = load i32* %pc, align 4 ; [#uses=1]
+ call void @_Z11luaK_concatP9FuncStatePii(%struct.FuncState* %23, i32* %25, i32 %26)
+ %27 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %28 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.expdesc* %28, i32 0, i32 3 ; [#uses=1]
+ %30 = load i32* %29, align 4 ; [#uses=1]
+ call void @_Z16luaK_patchtohereP9FuncStatei(%struct.FuncState* %27, i32 %30)
+ %31 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.expdesc* %31, i32 0, i32 3 ; [#uses=1]
+ store i32 -1, i32* %32, align 4
+ ret void
+}
+
+; [#uses=1]
+define hidden void @_Z11luaK_posfixP9FuncState6BinOprP7expdescS3_(%struct.FuncState* %fs, i32 %op, %struct.expdesc* %e1, %struct.expdesc* %e2) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=24]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca %struct.expdesc*, align 4 ; [#uses=22]
+ %4 = alloca %struct.expdesc*, align 4 ; [#uses=27]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %op, i32* %2, align 4
+ store %struct.expdesc* %e1, %struct.expdesc** %3, align 4
+ store %struct.expdesc* %e2, %struct.expdesc** %4, align 4
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ switch i32 %5, label %156 [
+ i32 13, label %6
+ i32 14, label %19
+ i32 6, label %32
+ i32 0, label %108
+ i32 1, label %112
+ i32 2, label %116
+ i32 3, label %120
+ i32 4, label %124
+ i32 5, label %128
+ i32 8, label %132
+ i32 7, label %136
+ i32 9, label %140
+ i32 10, label %144
+ i32 11, label %148
+ i32 12, label %152
+ ]
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %8 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z18luaK_dischargevarsP9FuncStateP7expdesc(%struct.FuncState* %7, %struct.expdesc* %8)
+ %9 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %10 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.expdesc* %10, i32 0, i32 3 ; [#uses=1]
+ %12 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.expdesc* %12, i32 0, i32 3 ; [#uses=1]
+ %14 = load i32* %13, align 4 ; [#uses=1]
+ call void @_Z11luaK_concatP9FuncStatePii(%struct.FuncState* %9, i32* %11, i32 %14)
+ %15 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %16 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %17 = bitcast %struct.expdesc* %15 to i8* ; [#uses=1]
+ %18 = bitcast %struct.expdesc* %16 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %17, i8* %18, i32 20, i32 4, i1 false)
+ br label %157
+
+; <label>:19 ; preds = %0
+ %20 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %21 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z18luaK_dischargevarsP9FuncStateP7expdesc(%struct.FuncState* %20, %struct.expdesc* %21)
+ %22 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %23 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.expdesc* %23, i32 0, i32 2 ; [#uses=1]
+ %25 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.expdesc* %25, i32 0, i32 2 ; [#uses=1]
+ %27 = load i32* %26, align 4 ; [#uses=1]
+ call void @_Z11luaK_concatP9FuncStatePii(%struct.FuncState* %22, i32* %24, i32 %27)
+ %28 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %29 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %30 = bitcast %struct.expdesc* %28 to i8* ; [#uses=1]
+ %31 = bitcast %struct.expdesc* %29 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %30, i8* %31, i32 20, i32 4, i1 false)
+ br label %157
+
+; <label>:32 ; preds = %0
+ %33 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %34 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z12luaK_exp2valP9FuncStateP7expdesc(%struct.FuncState* %33, %struct.expdesc* %34)
+ %35 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.expdesc* %35, i32 0, i32 0 ; [#uses=1]
+ %37 = load i32* %36, align 4 ; [#uses=1]
+ %38 = icmp eq i32 %37, 11 ; [#uses=1]
+ br i1 %38, label %39, label %101
+
+; <label>:39 ; preds = %32
+ %40 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.expdesc* %40, i32 0, i32 1 ; [#uses=1]
+ %42 = getelementptr inbounds %2* %41, i32 0, i32 0 ; [#uses=1]
+ %43 = getelementptr inbounds %3* %42, i32 0, i32 0 ; [#uses=1]
+ %44 = load i32* %43, align 4 ; [#uses=1]
+ %45 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.FuncState* %45, i32 0, i32 0 ; [#uses=1]
+ %47 = load %struct.Proto** %46, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.Proto* %47, i32 0, i32 4 ; [#uses=1]
+ %49 = load i32** %48, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds i32* %49, i32 %44 ; [#uses=1]
+ %51 = load i32* %50 ; [#uses=1]
+ %52 = lshr i32 %51, 0 ; [#uses=1]
+ %53 = and i32 %52, 63 ; [#uses=1]
+ %54 = icmp eq i32 %53, 21 ; [#uses=1]
+ br i1 %54, label %55, label %101
+
+; <label>:55 ; preds = %39
+ %56 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %57 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ call void @_Z7freeexpP9FuncStateP7expdesc(%struct.FuncState* %56, %struct.expdesc* %57)
+ %58 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.expdesc* %58, i32 0, i32 1 ; [#uses=1]
+ %60 = getelementptr inbounds %2* %59, i32 0, i32 0 ; [#uses=1]
+ %61 = getelementptr inbounds %3* %60, i32 0, i32 0 ; [#uses=1]
+ %62 = load i32* %61, align 4 ; [#uses=1]
+ %63 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.FuncState* %63, i32 0, i32 0 ; [#uses=1]
+ %65 = load %struct.Proto** %64, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.Proto* %65, i32 0, i32 4 ; [#uses=1]
+ %67 = load i32** %66, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds i32* %67, i32 %62 ; [#uses=1]
+ %69 = load i32* %68 ; [#uses=1]
+ %70 = and i32 %69, 8388607 ; [#uses=1]
+ %71 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.expdesc* %71, i32 0, i32 1 ; [#uses=1]
+ %73 = getelementptr inbounds %2* %72, i32 0, i32 0 ; [#uses=1]
+ %74 = getelementptr inbounds %3* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = load i32* %74, align 4 ; [#uses=1]
+ %76 = shl i32 %75, 23 ; [#uses=1]
+ %77 = and i32 %76, -8388608 ; [#uses=1]
+ %78 = or i32 %70, %77 ; [#uses=1]
+ %79 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %80 = getelementptr inbounds %struct.expdesc* %79, i32 0, i32 1 ; [#uses=1]
+ %81 = getelementptr inbounds %2* %80, i32 0, i32 0 ; [#uses=1]
+ %82 = getelementptr inbounds %3* %81, i32 0, i32 0 ; [#uses=1]
+ %83 = load i32* %82, align 4 ; [#uses=1]
+ %84 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %struct.FuncState* %84, i32 0, i32 0 ; [#uses=1]
+ %86 = load %struct.Proto** %85, align 4 ; [#uses=1]
+ %87 = getelementptr inbounds %struct.Proto* %86, i32 0, i32 4 ; [#uses=1]
+ %88 = load i32** %87, align 4 ; [#uses=1]
+ %89 = getelementptr inbounds i32* %88, i32 %83 ; [#uses=1]
+ store i32 %78, i32* %89
+ %90 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %91 = getelementptr inbounds %struct.expdesc* %90, i32 0, i32 0 ; [#uses=1]
+ store i32 11, i32* %91, align 4
+ %92 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %93 = getelementptr inbounds %struct.expdesc* %92, i32 0, i32 1 ; [#uses=1]
+ %94 = getelementptr inbounds %2* %93, i32 0, i32 0 ; [#uses=1]
+ %95 = getelementptr inbounds %3* %94, i32 0, i32 0 ; [#uses=1]
+ %96 = load i32* %95, align 4 ; [#uses=1]
+ %97 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %98 = getelementptr inbounds %struct.expdesc* %97, i32 0, i32 1 ; [#uses=1]
+ %99 = getelementptr inbounds %2* %98, i32 0, i32 0 ; [#uses=1]
+ %100 = getelementptr inbounds %3* %99, i32 0, i32 0 ; [#uses=1]
+ store i32 %96, i32* %100, align 4
+ br label %107
+
+; <label>:101 ; preds = %39, %32
+ %102 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %103 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z16luaK_exp2nextregP9FuncStateP7expdesc(%struct.FuncState* %102, %struct.expdesc* %103)
+ %104 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %105 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %106 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z9codearithP9FuncState6OpCodeP7expdescS3_(%struct.FuncState* %104, i32 21, %struct.expdesc* %105, %struct.expdesc* %106)
+ br label %107
+
+; <label>:107 ; preds = %101, %55
+ br label %157
+
+; <label>:108 ; preds = %0
+ %109 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %110 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %111 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z9codearithP9FuncState6OpCodeP7expdescS3_(%struct.FuncState* %109, i32 12, %struct.expdesc* %110, %struct.expdesc* %111)
+ br label %157
+
+; <label>:112 ; preds = %0
+ %113 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %114 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %115 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z9codearithP9FuncState6OpCodeP7expdescS3_(%struct.FuncState* %113, i32 13, %struct.expdesc* %114, %struct.expdesc* %115)
+ br label %157
+
+; <label>:116 ; preds = %0
+ %117 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %118 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %119 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z9codearithP9FuncState6OpCodeP7expdescS3_(%struct.FuncState* %117, i32 14, %struct.expdesc* %118, %struct.expdesc* %119)
+ br label %157
+
+; <label>:120 ; preds = %0
+ %121 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %122 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %123 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z9codearithP9FuncState6OpCodeP7expdescS3_(%struct.FuncState* %121, i32 15, %struct.expdesc* %122, %struct.expdesc* %123)
+ br label %157
+
+; <label>:124 ; preds = %0
+ %125 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %126 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %127 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z9codearithP9FuncState6OpCodeP7expdescS3_(%struct.FuncState* %125, i32 16, %struct.expdesc* %126, %struct.expdesc* %127)
+ br label %157
+
+; <label>:128 ; preds = %0
+ %129 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %130 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %131 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z9codearithP9FuncState6OpCodeP7expdescS3_(%struct.FuncState* %129, i32 17, %struct.expdesc* %130, %struct.expdesc* %131)
+ br label %157
+
+; <label>:132 ; preds = %0
+ %133 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %134 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %135 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z8codecompP9FuncState6OpCodeiP7expdescS3_(%struct.FuncState* %133, i32 23, i32 1, %struct.expdesc* %134, %struct.expdesc* %135)
+ br label %157
+
+; <label>:136 ; preds = %0
+ %137 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %138 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %139 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z8codecompP9FuncState6OpCodeiP7expdescS3_(%struct.FuncState* %137, i32 23, i32 0, %struct.expdesc* %138, %struct.expdesc* %139)
+ br label %157
+
+; <label>:140 ; preds = %0
+ %141 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %142 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %143 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z8codecompP9FuncState6OpCodeiP7expdescS3_(%struct.FuncState* %141, i32 24, i32 1, %struct.expdesc* %142, %struct.expdesc* %143)
+ br label %157
+
+; <label>:144 ; preds = %0
+ %145 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %146 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %147 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z8codecompP9FuncState6OpCodeiP7expdescS3_(%struct.FuncState* %145, i32 25, i32 1, %struct.expdesc* %146, %struct.expdesc* %147)
+ br label %157
+
+; <label>:148 ; preds = %0
+ %149 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %150 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %151 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z8codecompP9FuncState6OpCodeiP7expdescS3_(%struct.FuncState* %149, i32 24, i32 0, %struct.expdesc* %150, %struct.expdesc* %151)
+ br label %157
+
+; <label>:152 ; preds = %0
+ %153 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %154 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %155 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z8codecompP9FuncState6OpCodeiP7expdescS3_(%struct.FuncState* %153, i32 25, i32 0, %struct.expdesc* %154, %struct.expdesc* %155)
+ br label %157
+
+; <label>:156 ; preds = %0
+ br label %157
+
+; <label>:157 ; preds = %156, %152, %148, %144, %140, %136, %132, %128, %124, %120, %116, %112, %108, %107, %19, %6
+ ret void
+}
+
+; [#uses=6]
+define internal void @_Z8codecompP9FuncState6OpCodeiP7expdescS3_(%struct.FuncState* %fs, i32 %op, i32 %cond, %struct.expdesc* %e1, %struct.expdesc* %e2) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=6]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=4]
+ %4 = alloca %struct.expdesc*, align 4 ; [#uses=5]
+ %5 = alloca %struct.expdesc*, align 4 ; [#uses=3]
+ %o1 = alloca i32, align 4 ; [#uses=4]
+ %o2 = alloca i32, align 4 ; [#uses=4]
+ %temp = alloca i32, align 4 ; [#uses=2]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %op, i32* %2, align 4
+ store i32 %cond, i32* %3, align 4
+ store %struct.expdesc* %e1, %struct.expdesc** %4, align 4
+ store %struct.expdesc* %e2, %struct.expdesc** %5, align 4
+ %6 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %7 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %8 = call i32 @_Z11luaK_exp2RKP9FuncStateP7expdesc(%struct.FuncState* %6, %struct.expdesc* %7) ; [#uses=1]
+ store i32 %8, i32* %o1, align 4
+ %9 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %10 = load %struct.expdesc** %5, align 4 ; [#uses=1]
+ %11 = call i32 @_Z11luaK_exp2RKP9FuncStateP7expdesc(%struct.FuncState* %9, %struct.expdesc* %10) ; [#uses=1]
+ store i32 %11, i32* %o2, align 4
+ %12 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %13 = load %struct.expdesc** %5, align 4 ; [#uses=1]
+ call void @_Z7freeexpP9FuncStateP7expdesc(%struct.FuncState* %12, %struct.expdesc* %13)
+ %14 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %15 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z7freeexpP9FuncStateP7expdesc(%struct.FuncState* %14, %struct.expdesc* %15)
+ %16 = load i32* %3, align 4 ; [#uses=1]
+ %17 = icmp eq i32 %16, 0 ; [#uses=1]
+ br i1 %17, label %18, label %25
+
+; <label>:18 ; preds = %0
+ %19 = load i32* %2, align 4 ; [#uses=1]
+ %20 = icmp ne i32 %19, 23 ; [#uses=1]
+ br i1 %20, label %21, label %25
+
+; <label>:21 ; preds = %18
+ %22 = load i32* %o1, align 4 ; [#uses=1]
+ store i32 %22, i32* %temp, align 4
+ %23 = load i32* %o2, align 4 ; [#uses=1]
+ store i32 %23, i32* %o1, align 4
+ %24 = load i32* %temp, align 4 ; [#uses=1]
+ store i32 %24, i32* %o2, align 4
+ store i32 1, i32* %3, align 4
+ br label %25
+
+; <label>:25 ; preds = %21, %18, %0
+ %26 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %27 = load i32* %2, align 4 ; [#uses=1]
+ %28 = load i32* %3, align 4 ; [#uses=1]
+ %29 = load i32* %o1, align 4 ; [#uses=1]
+ %30 = load i32* %o2, align 4 ; [#uses=1]
+ %31 = call i32 @_Z8condjumpP9FuncState6OpCodeiii(%struct.FuncState* %26, i32 %27, i32 %28, i32 %29, i32 %30) ; [#uses=1]
+ %32 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.expdesc* %32, i32 0, i32 1 ; [#uses=1]
+ %34 = getelementptr inbounds %2* %33, i32 0, i32 0 ; [#uses=1]
+ %35 = getelementptr inbounds %3* %34, i32 0, i32 0 ; [#uses=1]
+ store i32 %31, i32* %35, align 4
+ %36 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.expdesc* %36, i32 0, i32 0 ; [#uses=1]
+ store i32 10, i32* %37, align 4
+ ret void
+}
+
+; [#uses=3]
+define hidden void @_Z12luaK_fixlineP9FuncStatei(%struct.FuncState* %fs, i32 %line) nounwind {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %line, i32* %2, align 4
+ %3 = load i32* %2, align 4 ; [#uses=1]
+ %4 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.FuncState* %4, i32 0, i32 6 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = sub nsw i32 %6, 1 ; [#uses=1]
+ %8 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.FuncState* %8, i32 0, i32 0 ; [#uses=1]
+ %10 = load %struct.Proto** %9, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Proto* %10, i32 0, i32 6 ; [#uses=1]
+ %12 = load i32** %11, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds i32* %12, i32 %7 ; [#uses=1]
+ store i32 %3, i32* %13
+ ret void
+}
+
+; [#uses=3]
+define internal i32 @_Z9luaK_codeP9FuncStateji(%struct.FuncState* %fs, i32 %i, i32 %line) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=10]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %f = alloca %struct.Proto*, align 4 ; [#uses=11]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %i, i32* %2, align 4
+ store i32 %line, i32* %3, align 4
+ %4 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.FuncState* %4, i32 0, i32 0 ; [#uses=1]
+ %6 = load %struct.Proto** %5, align 4 ; [#uses=1]
+ store %struct.Proto* %6, %struct.Proto** %f, align 4
+ %7 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ call void @_Z12dischargejpcP9FuncState(%struct.FuncState* %7)
+ %8 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.FuncState* %8, i32 0, i32 6 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ %11 = add nsw i32 %10, 1 ; [#uses=1]
+ %12 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.Proto* %12, i32 0, i32 12 ; [#uses=1]
+ %14 = load i32* %13, align 4 ; [#uses=1]
+ %15 = icmp sgt i32 %11, %14 ; [#uses=1]
+ br i1 %15, label %16, label %30
+
+; <label>:16 ; preds = %0
+ %17 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.FuncState* %17, i32 0, i32 4 ; [#uses=1]
+ %19 = load %struct.lua_State** %18, align 4 ; [#uses=1]
+ %20 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.Proto* %20, i32 0, i32 4 ; [#uses=1]
+ %22 = load i32** %21, align 4 ; [#uses=1]
+ %23 = bitcast i32* %22 to i8* ; [#uses=1]
+ %24 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.Proto* %24, i32 0, i32 12 ; [#uses=1]
+ %26 = call i8* @_Z13luaM_growaux_P9lua_StatePvPijiPKc(%struct.lua_State* %19, i8* %23, i32* %25, i32 4, i32 2147483645, i8* getelementptr inbounds ([19 x i8]* @.str1533, i32 0, i32 0)) ; [#uses=1]
+ %27 = bitcast i8* %26 to i32* ; [#uses=1]
+ %28 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.Proto* %28, i32 0, i32 4 ; [#uses=1]
+ store i32* %27, i32** %29, align 4
+ br label %30
+
+; <label>:30 ; preds = %16, %0
+ %31 = load i32* %2, align 4 ; [#uses=1]
+ %32 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.FuncState* %32, i32 0, i32 6 ; [#uses=1]
+ %34 = load i32* %33, align 4 ; [#uses=1]
+ %35 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.Proto* %35, i32 0, i32 4 ; [#uses=1]
+ %37 = load i32** %36, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds i32* %37, i32 %34 ; [#uses=1]
+ store i32 %31, i32* %38
+ %39 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.FuncState* %39, i32 0, i32 6 ; [#uses=1]
+ %41 = load i32* %40, align 4 ; [#uses=1]
+ %42 = add nsw i32 %41, 1 ; [#uses=1]
+ %43 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.Proto* %43, i32 0, i32 13 ; [#uses=1]
+ %45 = load i32* %44, align 4 ; [#uses=1]
+ %46 = icmp sgt i32 %42, %45 ; [#uses=1]
+ br i1 %46, label %47, label %61
+
+; <label>:47 ; preds = %30
+ %48 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.FuncState* %48, i32 0, i32 4 ; [#uses=1]
+ %50 = load %struct.lua_State** %49, align 4 ; [#uses=1]
+ %51 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.Proto* %51, i32 0, i32 6 ; [#uses=1]
+ %53 = load i32** %52, align 4 ; [#uses=1]
+ %54 = bitcast i32* %53 to i8* ; [#uses=1]
+ %55 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.Proto* %55, i32 0, i32 13 ; [#uses=1]
+ %57 = call i8* @_Z13luaM_growaux_P9lua_StatePvPijiPKc(%struct.lua_State* %50, i8* %54, i32* %56, i32 4, i32 2147483645, i8* getelementptr inbounds ([19 x i8]* @.str1533, i32 0, i32 0)) ; [#uses=1]
+ %58 = bitcast i8* %57 to i32* ; [#uses=1]
+ %59 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.Proto* %59, i32 0, i32 6 ; [#uses=1]
+ store i32* %58, i32** %60, align 4
+ br label %61
+
+; <label>:61 ; preds = %47, %30
+ %62 = load i32* %3, align 4 ; [#uses=1]
+ %63 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.FuncState* %63, i32 0, i32 6 ; [#uses=1]
+ %65 = load i32* %64, align 4 ; [#uses=1]
+ %66 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.Proto* %66, i32 0, i32 6 ; [#uses=1]
+ %68 = load i32** %67, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds i32* %68, i32 %65 ; [#uses=1]
+ store i32 %62, i32* %69
+ %70 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %71 = getelementptr inbounds %struct.FuncState* %70, i32 0, i32 6 ; [#uses=2]
+ %72 = load i32* %71, align 4 ; [#uses=2]
+ %73 = add nsw i32 %72, 1 ; [#uses=1]
+ store i32 %73, i32* %71, align 4
+ ret i32 %72
+}
+
+; [#uses=3]
+define hidden void @_Z12luaK_setlistP9FuncStateiii(%struct.FuncState* %fs, i32 %base, i32 %nelems, i32 %tostore) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=6]
+ %2 = alloca i32, align 4 ; [#uses=4]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca i32, align 4 ; [#uses=3]
+ %c = alloca i32, align 4 ; [#uses=4]
+ %b = alloca i32, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %base, i32* %2, align 4
+ store i32 %nelems, i32* %3, align 4
+ store i32 %tostore, i32* %4, align 4
+ %5 = load i32* %3, align 4 ; [#uses=1]
+ %6 = sub nsw i32 %5, 1 ; [#uses=1]
+ %7 = sdiv i32 %6, 50 ; [#uses=1]
+ %8 = add nsw i32 %7, 1 ; [#uses=1]
+ store i32 %8, i32* %c, align 4
+ %9 = load i32* %4, align 4 ; [#uses=1]
+ %10 = icmp eq i32 %9, -1 ; [#uses=1]
+ %11 = load i32* %4, align 4 ; [#uses=1]
+ %12 = select i1 %10, i32 0, i32 %11 ; [#uses=1]
+ store i32 %12, i32* %b, align 4
+ %13 = load i32* %c, align 4 ; [#uses=1]
+ %14 = icmp sle i32 %13, 511 ; [#uses=1]
+ br i1 %14, label %15, label %21
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %17 = load i32* %2, align 4 ; [#uses=1]
+ %18 = load i32* %b, align 4 ; [#uses=1]
+ %19 = load i32* %c, align 4 ; [#uses=1]
+ %20 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %16, i32 34, i32 %17, i32 %18, i32 %19) ; [#uses=0]
+ br label %34
+
+; <label>:21 ; preds = %0
+ %22 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %23 = load i32* %2, align 4 ; [#uses=1]
+ %24 = load i32* %b, align 4 ; [#uses=1]
+ %25 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %22, i32 34, i32 %23, i32 %24, i32 0) ; [#uses=0]
+ %26 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %27 = load i32* %c, align 4 ; [#uses=1]
+ %28 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.FuncState* %28, i32 0, i32 3 ; [#uses=1]
+ %30 = load %struct.LexState** %29, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.LexState* %30, i32 0, i32 2 ; [#uses=1]
+ %32 = load i32* %31, align 4 ; [#uses=1]
+ %33 = call i32 @_Z9luaK_codeP9FuncStateji(%struct.FuncState* %26, i32 %27, i32 %32) ; [#uses=0]
+ br label %34
+
+; <label>:34 ; preds = %21, %15
+ %35 = load i32* %2, align 4 ; [#uses=1]
+ %36 = add nsw i32 %35, 1 ; [#uses=1]
+ %37 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.FuncState* %37, i32 0, i32 9 ; [#uses=1]
+ store i32 %36, i32* %38, align 4
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z12dischargejpcP9FuncState(%struct.FuncState* %fs) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=6]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ %2 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %3 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.FuncState* %3, i32 0, i32 8 ; [#uses=1]
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ %6 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.FuncState* %6, i32 0, i32 6 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.FuncState* %9, i32 0, i32 6 ; [#uses=1]
+ %11 = load i32* %10, align 4 ; [#uses=1]
+ call void @_Z12patchlistauxP9FuncStateiiii(%struct.FuncState* %2, i32 %5, i32 %8, i32 255, i32 %11)
+ %12 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.FuncState* %12, i32 0, i32 8 ; [#uses=1]
+ store i32 -1, i32* %13, align 4
+ ret void
+}
+
+; [#uses=3]
+define internal i32 @_Z8condjumpP9FuncState6OpCodeiii(%struct.FuncState* %fs, i32 %op, i32 %A, i32 %B, i32 %C) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca i32, align 4 ; [#uses=2]
+ %5 = alloca i32, align 4 ; [#uses=2]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %op, i32* %2, align 4
+ store i32 %A, i32* %3, align 4
+ store i32 %B, i32* %4, align 4
+ store i32 %C, i32* %5, align 4
+ %6 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %7 = load i32* %2, align 4 ; [#uses=1]
+ %8 = load i32* %3, align 4 ; [#uses=1]
+ %9 = load i32* %4, align 4 ; [#uses=1]
+ %10 = load i32* %5, align 4 ; [#uses=1]
+ %11 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %6, i32 %7, i32 %8, i32 %9, i32 %10) ; [#uses=0]
+ %12 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %13 = call i32 @_Z9luaK_jumpP9FuncState(%struct.FuncState* %12) ; [#uses=1]
+ ret i32 %13
+}
+
+; [#uses=2]
+define internal void @_Z16discharge2anyregP9FuncStateP7expdesc(%struct.FuncState* %fs, %struct.expdesc* %e) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=4]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %2, align 4
+ %3 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.expdesc* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ %6 = icmp ne i32 %5, 12 ; [#uses=1]
+ br i1 %6, label %7, label %15
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ call void @_Z16luaK_reserveregsP9FuncStatei(%struct.FuncState* %8, i32 1)
+ %9 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %10 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %11 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.FuncState* %11, i32 0, i32 9 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ %14 = sub nsw i32 %13, 1 ; [#uses=1]
+ call void @_Z13discharge2regP9FuncStateP7expdesci(%struct.FuncState* %9, %struct.expdesc* %10, i32 %14)
+ br label %15
+
+; <label>:15 ; preds = %7, %0
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z12removevaluesP9FuncStatei(%struct.FuncState* %fs, i32 %list) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=5]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %list, i32* %2, align 4
+ br label %3
+
+; <label>:3 ; preds = %10, %0
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = icmp ne i32 %4, -1 ; [#uses=1]
+ br i1 %5, label %6, label %14
+
+; <label>:6 ; preds = %3
+ %7 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %8 = load i32* %2, align 4 ; [#uses=1]
+ %9 = call i32 @_Z12patchtestregP9FuncStateii(%struct.FuncState* %7, i32 %8, i32 255) ; [#uses=0]
+ br label %10
+
+; <label>:10 ; preds = %6
+ %11 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %12 = load i32* %2, align 4 ; [#uses=1]
+ %13 = call i32 @_Z7getjumpP9FuncStatei(%struct.FuncState* %11, i32 %12) ; [#uses=1]
+ store i32 %13, i32* %2, align 4
+ br label %3
+
+; <label>:14 ; preds = %3
+ ret void
+}
+
+; [#uses=2]
+define internal i32 @_Z12patchtestregP9FuncStateii(%struct.FuncState* %fs, i32 %node, i32 %reg) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.FuncState*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca i32, align 4 ; [#uses=4]
+ %i = alloca i32*, align 4 ; [#uses=8]
+ store %struct.FuncState* %fs, %struct.FuncState** %2, align 4
+ store i32 %node, i32* %3, align 4
+ store i32 %reg, i32* %4, align 4
+ %5 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %6 = load i32* %3, align 4 ; [#uses=1]
+ %7 = call i32* @_Z14getjumpcontrolP9FuncStatei(%struct.FuncState* %5, i32 %6) ; [#uses=1]
+ store i32* %7, i32** %i, align 4
+ %8 = load i32** %i, align 4 ; [#uses=1]
+ %9 = load i32* %8 ; [#uses=1]
+ %10 = lshr i32 %9, 0 ; [#uses=1]
+ %11 = and i32 %10, 63 ; [#uses=1]
+ %12 = icmp ne i32 %11, 27 ; [#uses=1]
+ br i1 %12, label %13, label %14
+
+; <label>:13 ; preds = %0
+ store i32 0, i32* %1
+ br label %48
+
+; <label>:14 ; preds = %0
+ %15 = load i32* %4, align 4 ; [#uses=1]
+ %16 = icmp ne i32 %15, 255 ; [#uses=1]
+ br i1 %16, label %17, label %33
+
+; <label>:17 ; preds = %14
+ %18 = load i32* %4, align 4 ; [#uses=1]
+ %19 = load i32** %i, align 4 ; [#uses=1]
+ %20 = load i32* %19 ; [#uses=1]
+ %21 = lshr i32 %20, 23 ; [#uses=1]
+ %22 = and i32 %21, 511 ; [#uses=1]
+ %23 = icmp ne i32 %18, %22 ; [#uses=1]
+ br i1 %23, label %24, label %33
+
+; <label>:24 ; preds = %17
+ %25 = load i32** %i, align 4 ; [#uses=1]
+ %26 = load i32* %25 ; [#uses=1]
+ %27 = and i32 %26, -16321 ; [#uses=1]
+ %28 = load i32* %4, align 4 ; [#uses=1]
+ %29 = shl i32 %28, 6 ; [#uses=1]
+ %30 = and i32 %29, 16320 ; [#uses=1]
+ %31 = or i32 %27, %30 ; [#uses=1]
+ %32 = load i32** %i, align 4 ; [#uses=1]
+ store i32 %31, i32* %32
+ br label %47
+
+; <label>:33 ; preds = %17, %14
+ %34 = load i32** %i, align 4 ; [#uses=1]
+ %35 = load i32* %34 ; [#uses=1]
+ %36 = lshr i32 %35, 23 ; [#uses=1]
+ %37 = and i32 %36, 511 ; [#uses=1]
+ %38 = shl i32 %37, 6 ; [#uses=1]
+ %39 = or i32 26, %38 ; [#uses=1]
+ %40 = load i32** %i, align 4 ; [#uses=1]
+ %41 = load i32* %40 ; [#uses=1]
+ %42 = lshr i32 %41, 14 ; [#uses=1]
+ %43 = and i32 %42, 511 ; [#uses=1]
+ %44 = shl i32 %43, 14 ; [#uses=1]
+ %45 = or i32 %39, %44 ; [#uses=1]
+ %46 = load i32** %i, align 4 ; [#uses=1]
+ store i32 %45, i32* %46
+ br label %47
+
+; <label>:47 ; preds = %33, %24
+ store i32 1, i32* %1
+ br label %48
+
+; <label>:48 ; preds = %47, %13
+ %49 = load i32* %1 ; [#uses=1]
+ ret i32 %49
+}
+
+; [#uses=3]
+define internal i32* @_Z14getjumpcontrolP9FuncStatei(%struct.FuncState* %fs, i32 %pc) nounwind {
+ %1 = alloca i32*, align 4 ; [#uses=3]
+ %2 = alloca %struct.FuncState*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %pi = alloca i32*, align 4 ; [#uses=4]
+ store %struct.FuncState* %fs, %struct.FuncState** %2, align 4
+ store i32 %pc, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.FuncState* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load %struct.Proto** %6, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.Proto* %7, i32 0, i32 4 ; [#uses=1]
+ %9 = load i32** %8, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds i32* %9, i32 %4 ; [#uses=1]
+ store i32* %10, i32** %pi, align 4
+ %11 = load i32* %3, align 4 ; [#uses=1]
+ %12 = icmp sge i32 %11, 1 ; [#uses=1]
+ br i1 %12, label %13, label %27
+
+; <label>:13 ; preds = %0
+ %14 = load i32** %pi, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds i32* %14, i32 -1 ; [#uses=1]
+ %16 = load i32* %15 ; [#uses=1]
+ %17 = lshr i32 %16, 0 ; [#uses=1]
+ %18 = and i32 %17, 63 ; [#uses=1]
+ %19 = getelementptr inbounds [38 x i8]* @luaP_opmodes, i32 0, i32 %18 ; [#uses=1]
+ %20 = load i8* %19 ; [#uses=1]
+ %21 = zext i8 %20 to i32 ; [#uses=1]
+ %22 = and i32 %21, 128 ; [#uses=1]
+ %23 = icmp ne i32 %22, 0 ; [#uses=1]
+ br i1 %23, label %24, label %27
+
+; <label>:24 ; preds = %13
+ %25 = load i32** %pi, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds i32* %25, i32 -1 ; [#uses=1]
+ store i32* %26, i32** %1
+ br label %29
+
+; <label>:27 ; preds = %13, %0
+ %28 = load i32** %pi, align 4 ; [#uses=1]
+ store i32* %28, i32** %1
+ br label %29
+
+; <label>:29 ; preds = %27, %24
+ %30 = load i32** %1 ; [#uses=1]
+ ret i32* %30
+}
+
+; [#uses=2]
+define internal void @_Z13discharge2regP9FuncStateP7expdesci(%struct.FuncState* %fs, %struct.expdesc* %e, i32 %reg) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=9]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=11]
+ %3 = alloca i32, align 4 ; [#uses=9]
+ %pc = alloca i32*, align 4 ; [#uses=3]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %2, align 4
+ store i32 %reg, i32* %3, align 4
+ %4 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %5 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z18luaK_dischargevarsP9FuncStateP7expdesc(%struct.FuncState* %4, %struct.expdesc* %5)
+ %6 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.expdesc* %6, i32 0, i32 0 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ switch i32 %8, label %79 [
+ i32 1, label %9
+ i32 3, label %12
+ i32 2, label %12
+ i32 4, label %21
+ i32 5, label %30
+ i32 11, label %41
+ i32 12, label %61
+ ]
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %11 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z8luaK_nilP9FuncStateii(%struct.FuncState* %10, i32 %11, i32 1)
+ br label %80
+
+; <label>:12 ; preds = %0, %0
+ %13 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %14 = load i32* %3, align 4 ; [#uses=1]
+ %15 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.expdesc* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = load i32* %16, align 4 ; [#uses=1]
+ %18 = icmp eq i32 %17, 2 ; [#uses=1]
+ %19 = zext i1 %18 to i32 ; [#uses=1]
+ %20 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %13, i32 2, i32 %14, i32 %19, i32 0) ; [#uses=0]
+ br label %80
+
+; <label>:21 ; preds = %0
+ %22 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %23 = load i32* %3, align 4 ; [#uses=1]
+ %24 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.expdesc* %24, i32 0, i32 1 ; [#uses=1]
+ %26 = getelementptr inbounds %2* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = getelementptr inbounds %3* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = load i32* %27, align 4 ; [#uses=1]
+ %29 = call i32 @_Z12luaK_codeABxP9FuncState6OpCodeij(%struct.FuncState* %22, i32 1, i32 %23, i32 %28) ; [#uses=0]
+ br label %80
+
+; <label>:30 ; preds = %0
+ %31 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %32 = load i32* %3, align 4 ; [#uses=1]
+ %33 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %34 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.expdesc* %34, i32 0, i32 1 ; [#uses=1]
+ %36 = getelementptr inbounds %2* %35, i32 0, i32 0 ; [#uses=1]
+ %37 = bitcast %3* %36 to double* ; [#uses=1]
+ %38 = load double* %37, align 4 ; [#uses=1]
+ %39 = call i32 @_Z12luaK_numberKP9FuncStated(%struct.FuncState* %33, double %38) ; [#uses=1]
+ %40 = call i32 @_Z12luaK_codeABxP9FuncState6OpCodeij(%struct.FuncState* %31, i32 1, i32 %32, i32 %39) ; [#uses=0]
+ br label %80
+
+; <label>:41 ; preds = %0
+ %42 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.expdesc* %42, i32 0, i32 1 ; [#uses=1]
+ %44 = getelementptr inbounds %2* %43, i32 0, i32 0 ; [#uses=1]
+ %45 = getelementptr inbounds %3* %44, i32 0, i32 0 ; [#uses=1]
+ %46 = load i32* %45, align 4 ; [#uses=1]
+ %47 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.FuncState* %47, i32 0, i32 0 ; [#uses=1]
+ %49 = load %struct.Proto** %48, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.Proto* %49, i32 0, i32 4 ; [#uses=1]
+ %51 = load i32** %50, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds i32* %51, i32 %46 ; [#uses=1]
+ store i32* %52, i32** %pc, align 4
+ %53 = load i32** %pc, align 4 ; [#uses=1]
+ %54 = load i32* %53 ; [#uses=1]
+ %55 = and i32 %54, -16321 ; [#uses=1]
+ %56 = load i32* %3, align 4 ; [#uses=1]
+ %57 = shl i32 %56, 6 ; [#uses=1]
+ %58 = and i32 %57, 16320 ; [#uses=1]
+ %59 = or i32 %55, %58 ; [#uses=1]
+ %60 = load i32** %pc, align 4 ; [#uses=1]
+ store i32 %59, i32* %60
+ br label %80
+
+; <label>:61 ; preds = %0
+ %62 = load i32* %3, align 4 ; [#uses=1]
+ %63 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.expdesc* %63, i32 0, i32 1 ; [#uses=1]
+ %65 = getelementptr inbounds %2* %64, i32 0, i32 0 ; [#uses=1]
+ %66 = getelementptr inbounds %3* %65, i32 0, i32 0 ; [#uses=1]
+ %67 = load i32* %66, align 4 ; [#uses=1]
+ %68 = icmp ne i32 %62, %67 ; [#uses=1]
+ br i1 %68, label %69, label %78
+
+; <label>:69 ; preds = %61
+ %70 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %71 = load i32* %3, align 4 ; [#uses=1]
+ %72 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.expdesc* %72, i32 0, i32 1 ; [#uses=1]
+ %74 = getelementptr inbounds %2* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = getelementptr inbounds %3* %74, i32 0, i32 0 ; [#uses=1]
+ %76 = load i32* %75, align 4 ; [#uses=1]
+ %77 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %70, i32 0, i32 %71, i32 %76, i32 0) ; [#uses=0]
+ br label %78
+
+; <label>:78 ; preds = %69, %61
+ br label %80
+
+; <label>:79 ; preds = %0
+ br label %88
+
+; <label>:80 ; preds = %78, %41, %30, %21, %12, %9
+ %81 = load i32* %3, align 4 ; [#uses=1]
+ %82 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %83 = getelementptr inbounds %struct.expdesc* %82, i32 0, i32 1 ; [#uses=1]
+ %84 = getelementptr inbounds %2* %83, i32 0, i32 0 ; [#uses=1]
+ %85 = getelementptr inbounds %3* %84, i32 0, i32 0 ; [#uses=1]
+ store i32 %81, i32* %85, align 4
+ %86 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %87 = getelementptr inbounds %struct.expdesc* %86, i32 0, i32 0 ; [#uses=1]
+ store i32 12, i32* %87, align 4
+ br label %88
+
+; <label>:88 ; preds = %80, %79
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z12constfolding6OpCodeP7expdescS1_(i32 %op, %struct.expdesc* %e1, %struct.expdesc* %e2) {
+ %1 = alloca i32, align 4 ; [#uses=7]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca %struct.expdesc*, align 4 ; [#uses=4]
+ %4 = alloca %struct.expdesc*, align 4 ; [#uses=3]
+ %v1 = alloca double, align 8 ; [#uses=9]
+ %v2 = alloca double, align 8 ; [#uses=10]
+ %r = alloca double, align 8 ; [#uses=11]
+ store i32 %op, i32* %2, align 4
+ store %struct.expdesc* %e1, %struct.expdesc** %3, align 4
+ store %struct.expdesc* %e2, %struct.expdesc** %4, align 4
+ %5 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %6 = call i32 @_Z9isnumeralP7expdesc(%struct.expdesc* %5) ; [#uses=1]
+ %7 = icmp ne i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %12
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %10 = call i32 @_Z9isnumeralP7expdesc(%struct.expdesc* %9) ; [#uses=1]
+ %11 = icmp ne i32 %10, 0 ; [#uses=1]
+ br i1 %11, label %13, label %12
+
+; <label>:12 ; preds = %8, %0
+ store i32 0, i32* %1
+ br label %78
+
+; <label>:13 ; preds = %8
+ %14 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.expdesc* %14, i32 0, i32 1 ; [#uses=1]
+ %16 = getelementptr inbounds %2* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = bitcast %3* %16 to double* ; [#uses=1]
+ %18 = load double* %17, align 4 ; [#uses=1]
+ store double %18, double* %v1, align 8
+ %19 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.expdesc* %19, i32 0, i32 1 ; [#uses=1]
+ %21 = getelementptr inbounds %2* %20, i32 0, i32 0 ; [#uses=1]
+ %22 = bitcast %3* %21 to double* ; [#uses=1]
+ %23 = load double* %22, align 4 ; [#uses=1]
+ store double %23, double* %v2, align 8
+ %24 = load i32* %2, align 4 ; [#uses=1]
+ switch i32 %24, label %66 [
+ i32 12, label %25
+ i32 13, label %29
+ i32 14, label %33
+ i32 15, label %37
+ i32 16, label %45
+ i32 17, label %58
+ i32 18, label %62
+ i32 20, label %65
+ ]
+
+; <label>:25 ; preds = %13
+ %26 = load double* %v1, align 8 ; [#uses=1]
+ %27 = load double* %v2, align 8 ; [#uses=1]
+ %28 = fadd double %26, %27 ; [#uses=1]
+ store double %28, double* %r, align 8
+ br label %67
+
+; <label>:29 ; preds = %13
+ %30 = load double* %v1, align 8 ; [#uses=1]
+ %31 = load double* %v2, align 8 ; [#uses=1]
+ %32 = fsub double %30, %31 ; [#uses=1]
+ store double %32, double* %r, align 8
+ br label %67
+
+; <label>:33 ; preds = %13
+ %34 = load double* %v1, align 8 ; [#uses=1]
+ %35 = load double* %v2, align 8 ; [#uses=1]
+ %36 = fmul double %34, %35 ; [#uses=1]
+ store double %36, double* %r, align 8
+ br label %67
+
+; <label>:37 ; preds = %13
+ %38 = load double* %v2, align 8 ; [#uses=1]
+ %39 = fcmp oeq double %38, 0.000000e+00 ; [#uses=1]
+ br i1 %39, label %40, label %41
+
+; <label>:40 ; preds = %37
+ store i32 0, i32* %1
+ br label %78
+
+; <label>:41 ; preds = %37
+ %42 = load double* %v1, align 8 ; [#uses=1]
+ %43 = load double* %v2, align 8 ; [#uses=1]
+ %44 = fdiv double %42, %43 ; [#uses=1]
+ store double %44, double* %r, align 8
+ br label %67
+
+; <label>:45 ; preds = %13
+ %46 = load double* %v2, align 8 ; [#uses=1]
+ %47 = fcmp oeq double %46, 0.000000e+00 ; [#uses=1]
+ br i1 %47, label %48, label %49
+
+; <label>:48 ; preds = %45
+ store i32 0, i32* %1
+ br label %78
+
+; <label>:49 ; preds = %45
+ %50 = load double* %v1, align 8 ; [#uses=1]
+ %51 = load double* %v1, align 8 ; [#uses=1]
+ %52 = load double* %v2, align 8 ; [#uses=1]
+ %53 = fdiv double %51, %52 ; [#uses=1]
+ %54 = call double @floor(double %53) nounwind readnone ; [#uses=1]
+ %55 = load double* %v2, align 8 ; [#uses=1]
+ %56 = fmul double %54, %55 ; [#uses=1]
+ %57 = fsub double %50, %56 ; [#uses=1]
+ store double %57, double* %r, align 8
+ br label %67
+
+; <label>:58 ; preds = %13
+ %59 = load double* %v1, align 8 ; [#uses=1]
+ %60 = load double* %v2, align 8 ; [#uses=1]
+ %61 = call double @llvm.pow.f64(double %59, double %60) ; [#uses=1]
+ store double %61, double* %r, align 8
+ br label %67
+
+; <label>:62 ; preds = %13
+ %63 = load double* %v1, align 8 ; [#uses=1]
+ %64 = fsub double -0.000000e+00, %63 ; [#uses=1]
+ store double %64, double* %r, align 8
+ br label %67
+
+; <label>:65 ; preds = %13
+ store i32 0, i32* %1
+ br label %78
+
+; <label>:66 ; preds = %13
+ store double 0.000000e+00, double* %r, align 8
+ br label %67
+
+; <label>:67 ; preds = %66, %62, %58, %49, %41, %33, %29, %25
+ %68 = load double* %r, align 8 ; [#uses=1]
+ %69 = load double* %r, align 8 ; [#uses=1]
+ %70 = fcmp oeq double %68, %69 ; [#uses=1]
+ br i1 %70, label %72, label %71
+
+; <label>:71 ; preds = %67
+ store i32 0, i32* %1
+ br label %78
+
+; <label>:72 ; preds = %67
+ %73 = load double* %r, align 8 ; [#uses=1]
+ %74 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %75 = getelementptr inbounds %struct.expdesc* %74, i32 0, i32 1 ; [#uses=1]
+ %76 = getelementptr inbounds %2* %75, i32 0, i32 0 ; [#uses=1]
+ %77 = bitcast %3* %76 to double* ; [#uses=1]
+ store double %73, double* %77, align 4
+ store i32 1, i32* %1
+ br label %78
+
+; <label>:78 ; preds = %72, %71, %65, %48, %40, %12
+ %79 = load i32* %1 ; [#uses=1]
+ ret i32 %79
+}
+
+; [#uses=6]
+declare double @floor(double) nounwind readnone
+
+; [#uses=4]
+declare double @llvm.pow.f64(double, double) nounwind readonly
+
+; [#uses=2]
+define internal i32 @_Z10need_valueP9FuncStatei(%struct.FuncState* %fs, i32 %list) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=5]
+ %i = alloca i32, align 4 ; [#uses=2]
+ store %struct.FuncState* %fs, %struct.FuncState** %2, align 4
+ store i32 %list, i32* %3, align 4
+ br label %4
+
+; <label>:4 ; preds = %18, %0
+ %5 = load i32* %3, align 4 ; [#uses=1]
+ %6 = icmp ne i32 %5, -1 ; [#uses=1]
+ br i1 %6, label %7, label %22
+
+; <label>:7 ; preds = %4
+ %8 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %9 = load i32* %3, align 4 ; [#uses=1]
+ %10 = call i32* @_Z14getjumpcontrolP9FuncStatei(%struct.FuncState* %8, i32 %9) ; [#uses=1]
+ %11 = load i32* %10 ; [#uses=1]
+ store i32 %11, i32* %i, align 4
+ %12 = load i32* %i, align 4 ; [#uses=1]
+ %13 = lshr i32 %12, 0 ; [#uses=1]
+ %14 = and i32 %13, 63 ; [#uses=1]
+ %15 = icmp ne i32 %14, 27 ; [#uses=1]
+ br i1 %15, label %16, label %17
+
+; <label>:16 ; preds = %7
+ store i32 1, i32* %1
+ br label %23
+
+; <label>:17 ; preds = %7
+ br label %18
+
+; <label>:18 ; preds = %17
+ %19 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %20 = load i32* %3, align 4 ; [#uses=1]
+ %21 = call i32 @_Z7getjumpP9FuncStatei(%struct.FuncState* %19, i32 %20) ; [#uses=1]
+ store i32 %21, i32* %3, align 4
+ br label %4
+
+; <label>:22 ; preds = %4
+ store i32 0, i32* %1
+ br label %23
+
+; <label>:23 ; preds = %22, %16
+ %24 = load i32* %1 ; [#uses=1]
+ ret i32 %24
+}
+
+; [#uses=2]
+define internal i32 @_Z10code_labelP9FuncStateiii(%struct.FuncState* %fs, i32 %A, i32 %b, i32 %jump) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca i32, align 4 ; [#uses=2]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %A, i32* %2, align 4
+ store i32 %b, i32* %3, align 4
+ store i32 %jump, i32* %4, align 4
+ %5 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %6 = call i32 @_Z13luaK_getlabelP9FuncState(%struct.FuncState* %5) ; [#uses=0]
+ %7 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %8 = load i32* %2, align 4 ; [#uses=1]
+ %9 = load i32* %3, align 4 ; [#uses=1]
+ %10 = load i32* %4, align 4 ; [#uses=1]
+ %11 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %7, i32 2, i32 %8, i32 %9, i32 %10) ; [#uses=1]
+ ret i32 %11
+}
+
+; [#uses=1]
+declare i32 @abs(i32) nounwind readnone
+
+; [#uses=3]
+define i32 @_Z11lua_sethookP9lua_StatePFvS0_P9lua_DebugEii(%struct.lua_State* %L, void (%struct.lua_State*, %struct.lua_Debug*)* %func, i32 %mask, i32 %count) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %2 = alloca void (%struct.lua_State*, %struct.lua_Debug*)*, align 4 ; [#uses=4]
+ %3 = alloca i32, align 4 ; [#uses=4]
+ %4 = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store void (%struct.lua_State*, %struct.lua_Debug*)* %func, void (%struct.lua_State*, %struct.lua_Debug*)** %2, align 4
+ store i32 %mask, i32* %3, align 4
+ store i32 %count, i32* %4, align 4
+ %5 = load void (%struct.lua_State*, %struct.lua_Debug*)** %2, align 4 ; [#uses=1]
+ %6 = icmp eq void (%struct.lua_State*, %struct.lua_Debug*)* %5, null ; [#uses=1]
+ br i1 %6, label %10, label %7
+
+; <label>:7 ; preds = %0
+ %8 = load i32* %3, align 4 ; [#uses=1]
+ %9 = icmp eq i32 %8, 0 ; [#uses=1]
+ br i1 %9, label %10, label %11
+
+; <label>:10 ; preds = %7, %0
+ store i32 0, i32* %3, align 4
+ store void (%struct.lua_State*, %struct.lua_Debug*)* null, void (%struct.lua_State*, %struct.lua_Debug*)** %2, align 4
+ br label %11
+
+; <label>:11 ; preds = %10, %7
+ %12 = load void (%struct.lua_State*, %struct.lua_Debug*)** %2, align 4 ; [#uses=1]
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_State* %13, i32 0, i32 21 ; [#uses=1]
+ store void (%struct.lua_State*, %struct.lua_Debug*)* %12, void (%struct.lua_State*, %struct.lua_Debug*)** %14, align 4
+ %15 = load i32* %4, align 4 ; [#uses=1]
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_State* %16, i32 0, i32 19 ; [#uses=1]
+ store i32 %15, i32* %17, align 4
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_State* %18, i32 0, i32 19 ; [#uses=1]
+ %20 = load i32* %19, align 4 ; [#uses=1]
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_State* %21, i32 0, i32 20 ; [#uses=1]
+ store i32 %20, i32* %22, align 4
+ %23 = load i32* %3, align 4 ; [#uses=1]
+ %24 = trunc i32 %23 to i8 ; [#uses=1]
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_State* %25, i32 0, i32 17 ; [#uses=1]
+ store i8 %24, i8* %26, align 1
+ ret i32 1
+}
+
+; [#uses=1]
+define void (%struct.lua_State*, %struct.lua_Debug*)* @_Z11lua_gethookP9lua_State(%struct.lua_State* %L) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 21 ; [#uses=1]
+ %4 = load void (%struct.lua_State*, %struct.lua_Debug*)** %3, align 4 ; [#uses=1]
+ ret void (%struct.lua_State*, %struct.lua_Debug*)* %4
+}
+
+; [#uses=1]
+define i32 @_Z15lua_gethookmaskP9lua_State(%struct.lua_State* %L) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 17 ; [#uses=1]
+ %4 = load i8* %3, align 1 ; [#uses=1]
+ %5 = zext i8 %4 to i32 ; [#uses=1]
+ ret i32 %5
+}
+
+; [#uses=1]
+define i32 @_Z16lua_gethookcountP9lua_State(%struct.lua_State* %L) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 19 ; [#uses=1]
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ ret i32 %4
+}
+
+; [#uses=11]
+define i32 @_Z12lua_getstackP9lua_StateiP9lua_Debug(%struct.lua_State* %L, i32 %level, %struct.lua_Debug* %ar) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %2 = alloca i32, align 4 ; [#uses=8]
+ %3 = alloca %struct.lua_Debug*, align 4 ; [#uses=3]
+ %status = alloca i32, align 4 ; [#uses=4]
+ %ci = alloca %struct.CallInfo*, align 4 ; [#uses=8]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %level, i32* %2, align 4
+ store %struct.lua_Debug* %ar, %struct.lua_Debug** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 7 ; [#uses=1]
+ %6 = load %struct.CallInfo** %5, align 4 ; [#uses=1]
+ store %struct.CallInfo* %6, %struct.CallInfo** %ci, align 4
+ br label %7
+
+; <label>:7 ; preds = %41, %0
+ %8 = load i32* %2, align 4 ; [#uses=1]
+ %9 = icmp sgt i32 %8, 0 ; [#uses=1]
+ br i1 %9, label %10, label %16
+
+; <label>:10 ; preds = %7
+ %11 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.lua_State* %12, i32 0, i32 12 ; [#uses=1]
+ %14 = load %struct.CallInfo** %13, align 4 ; [#uses=1]
+ %15 = icmp ugt %struct.CallInfo* %11, %14 ; [#uses=1]
+ br label %16
+
+; <label>:16 ; preds = %10, %7
+ %17 = phi i1 [ false, %7 ], [ %15, %10 ] ; [#uses=1]
+ br i1 %17, label %18, label %44
+
+; <label>:18 ; preds = %16
+ %19 = load i32* %2, align 4 ; [#uses=1]
+ %20 = add nsw i32 %19, -1 ; [#uses=1]
+ store i32 %20, i32* %2, align 4
+ %21 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.CallInfo* %21, i32 0, i32 1 ; [#uses=1]
+ %23 = load %struct.lua_TValue** %22, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_TValue* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = getelementptr inbounds %union.anon* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = bitcast double* %25 to %union.GCObject** ; [#uses=1]
+ %27 = load %union.GCObject** %26, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %union.GCObject* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = bitcast %struct.lua_State* %28 to %union.Closure* ; [#uses=1]
+ %30 = getelementptr inbounds %union.Closure* %29, i32 0, i32 0 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.CClosure* %30, i32 0, i32 3 ; [#uses=1]
+ %32 = load i8* %31, align 1 ; [#uses=1]
+ %33 = icmp ne i8 %32, 0 ; [#uses=1]
+ br i1 %33, label %40, label %34
+
+; <label>:34 ; preds = %18
+ %35 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.CallInfo* %35, i32 0, i32 5 ; [#uses=1]
+ %37 = load i32* %36, align 4 ; [#uses=1]
+ %38 = load i32* %2, align 4 ; [#uses=1]
+ %39 = sub nsw i32 %38, %37 ; [#uses=1]
+ store i32 %39, i32* %2, align 4
+ br label %40
+
+; <label>:40 ; preds = %34, %18
+ br label %41
+
+; <label>:41 ; preds = %40
+ %42 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.CallInfo* %42, i32 -1 ; [#uses=1]
+ store %struct.CallInfo* %43, %struct.CallInfo** %ci, align 4
+ br label %7
+
+; <label>:44 ; preds = %16
+ %45 = load i32* %2, align 4 ; [#uses=1]
+ %46 = icmp eq i32 %45, 0 ; [#uses=1]
+ br i1 %46, label %47, label %64
+
+; <label>:47 ; preds = %44
+ %48 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %49 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.lua_State* %49, i32 0, i32 12 ; [#uses=1]
+ %51 = load %struct.CallInfo** %50, align 4 ; [#uses=1]
+ %52 = icmp ugt %struct.CallInfo* %48, %51 ; [#uses=1]
+ br i1 %52, label %53, label %64
+
+; <label>:53 ; preds = %47
+ store i32 1, i32* %status, align 4
+ %54 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %55 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.lua_State* %55, i32 0, i32 12 ; [#uses=1]
+ %57 = load %struct.CallInfo** %56, align 4 ; [#uses=1]
+ %58 = ptrtoint %struct.CallInfo* %54 to i32 ; [#uses=1]
+ %59 = ptrtoint %struct.CallInfo* %57 to i32 ; [#uses=1]
+ %60 = sub i32 %58, %59 ; [#uses=1]
+ %61 = sdiv exact i32 %60, 24 ; [#uses=1]
+ %62 = load %struct.lua_Debug** %3, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.lua_Debug* %62, i32 0, i32 10 ; [#uses=1]
+ store i32 %61, i32* %63, align 4
+ br label %72
+
+; <label>:64 ; preds = %47, %44
+ %65 = load i32* %2, align 4 ; [#uses=1]
+ %66 = icmp slt i32 %65, 0 ; [#uses=1]
+ br i1 %66, label %67, label %70
+
+; <label>:67 ; preds = %64
+ store i32 1, i32* %status, align 4
+ %68 = load %struct.lua_Debug** %3, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.lua_Debug* %68, i32 0, i32 10 ; [#uses=1]
+ store i32 0, i32* %69, align 4
+ br label %71
+
+; <label>:70 ; preds = %64
+ store i32 0, i32* %status, align 4
+ br label %71
+
+; <label>:71 ; preds = %70, %67
+ br label %72
+
+; <label>:72 ; preds = %71, %53
+ %73 = load i32* %status, align 4 ; [#uses=1]
+ ret i32 %73
+}
+
+; [#uses=1]
+define i8* @_Z12lua_getlocalP9lua_StatePK9lua_Debugi(%struct.lua_State* %L, %struct.lua_Debug* %ar, i32 %n) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_Debug*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %ci = alloca %struct.CallInfo*, align 4 ; [#uses=3]
+ %name = alloca i8*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_Debug* %ar, %struct.lua_Debug** %2, align 4
+ store i32 %n, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 12 ; [#uses=1]
+ %6 = load %struct.CallInfo** %5, align 4 ; [#uses=1]
+ %7 = load %struct.lua_Debug** %2, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_Debug* %7, i32 0, i32 10 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.CallInfo* %6, i32 %9 ; [#uses=1]
+ store %struct.CallInfo* %10, %struct.CallInfo** %ci, align 4
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %13 = load i32* %3, align 4 ; [#uses=1]
+ %14 = call i8* @_Z9findlocalP9lua_StateP8CallInfoi(%struct.lua_State* %11, %struct.CallInfo* %12, i32 %13) ; [#uses=1]
+ store i8* %14, i8** %name, align 4
+ %15 = load i8** %name, align 4 ; [#uses=1]
+ %16 = icmp ne i8* %15, null ; [#uses=1]
+ br i1 %16, label %17, label %25
+
+; <label>:17 ; preds = %0
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.CallInfo* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = load %struct.lua_TValue** %20, align 4 ; [#uses=1]
+ %22 = load i32* %3, align 4 ; [#uses=1]
+ %23 = sub nsw i32 %22, 1 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_TValue* %21, i32 %23 ; [#uses=1]
+ call void @_Z15luaA_pushobjectP9lua_StatePK10lua_TValue(%struct.lua_State* %18, %struct.lua_TValue* %24)
+ br label %25
+
+; <label>:25 ; preds = %17, %0
+ %26 = load i8** %name, align 4 ; [#uses=1]
+ ret i8* %26
+}
+
+; [#uses=2]
+define internal i8* @_Z9findlocalP9lua_StateP8CallInfoi(%struct.lua_State* %L, %struct.CallInfo* %ci, i32 %n) {
+ %1 = alloca i8*, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %3 = alloca %struct.CallInfo*, align 4 ; [#uses=6]
+ %4 = alloca i32, align 4 ; [#uses=4]
+ %name = alloca i8*, align 4 ; [#uses=2]
+ %fp = alloca %struct.Proto*, align 4 ; [#uses=3]
+ %limit = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.CallInfo* %ci, %struct.CallInfo** %3, align 4
+ store i32 %n, i32* %4, align 4
+ %5 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %6 = call %struct.Proto* @_Z11getluaprotoP8CallInfo(%struct.CallInfo* %5) ; [#uses=1]
+ store %struct.Proto* %6, %struct.Proto** %fp, align 4
+ %7 = load %struct.Proto** %fp, align 4 ; [#uses=1]
+ %8 = icmp ne %struct.Proto* %7, null ; [#uses=1]
+ br i1 %8, label %9, label %19
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.Proto** %fp, align 4 ; [#uses=1]
+ %11 = load i32* %4, align 4 ; [#uses=1]
+ %12 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %13 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %14 = call i32 @_Z9currentpcP9lua_StateP8CallInfo(%struct.lua_State* %12, %struct.CallInfo* %13) ; [#uses=1]
+ %15 = call i8* @_Z17luaF_getlocalnamePK5Protoii(%struct.Proto* %10, i32 %11, i32 %14) ; [#uses=2]
+ store i8* %15, i8** %name, align 4
+ %16 = icmp ne i8* %15, null ; [#uses=1]
+ br i1 %16, label %17, label %19
+
+; <label>:17 ; preds = %9
+ %18 = load i8** %name, align 4 ; [#uses=1]
+ store i8* %18, i8** %1
+ br label %51
+
+; <label>:19 ; preds = %9, %0
+ %20 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %21 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_State* %21, i32 0, i32 7 ; [#uses=1]
+ %23 = load %struct.CallInfo** %22, align 4 ; [#uses=1]
+ %24 = icmp eq %struct.CallInfo* %20, %23 ; [#uses=1]
+ br i1 %24, label %25, label %29
+
+; <label>:25 ; preds = %19
+ %26 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_State* %26, i32 0, i32 4 ; [#uses=1]
+ %28 = load %struct.lua_TValue** %27, align 4 ; [#uses=1]
+ br label %34
+
+; <label>:29 ; preds = %19
+ %30 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.CallInfo* %30, i32 1 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.CallInfo* %31, i32 0, i32 1 ; [#uses=1]
+ %33 = load %struct.lua_TValue** %32, align 4 ; [#uses=1]
+ br label %34
+
+; <label>:34 ; preds = %29, %25
+ %35 = phi %struct.lua_TValue* [ %28, %25 ], [ %33, %29 ] ; [#uses=1]
+ store %struct.lua_TValue* %35, %struct.lua_TValue** %limit, align 4
+ %36 = load %struct.lua_TValue** %limit, align 4 ; [#uses=1]
+ %37 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.CallInfo* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = load %struct.lua_TValue** %38, align 4 ; [#uses=1]
+ %40 = ptrtoint %struct.lua_TValue* %36 to i32 ; [#uses=1]
+ %41 = ptrtoint %struct.lua_TValue* %39 to i32 ; [#uses=1]
+ %42 = sub i32 %40, %41 ; [#uses=1]
+ %43 = sdiv exact i32 %42, 12 ; [#uses=1]
+ %44 = load i32* %4, align 4 ; [#uses=1]
+ %45 = icmp sge i32 %43, %44 ; [#uses=1]
+ br i1 %45, label %46, label %50
+
+; <label>:46 ; preds = %34
+ %47 = load i32* %4, align 4 ; [#uses=1]
+ %48 = icmp sgt i32 %47, 0 ; [#uses=1]
+ br i1 %48, label %49, label %50
+
+; <label>:49 ; preds = %46
+ store i8* getelementptr inbounds ([13 x i8]* @.str2049, i32 0, i32 0), i8** %1
+ br label %51
+
+; <label>:50 ; preds = %46, %34
+ store i8* null, i8** %1
+ br label %51
+
+; <label>:51 ; preds = %50, %49, %17
+ %52 = load i8** %1 ; [#uses=1]
+ ret i8* %52
+}
+
+; [#uses=1]
+define i8* @_Z12lua_setlocalP9lua_StatePK9lua_Debugi(%struct.lua_State* %L, %struct.lua_Debug* %ar, i32 %n) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %2 = alloca %struct.lua_Debug*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %ci = alloca %struct.CallInfo*, align 4 ; [#uses=3]
+ %name = alloca i8*, align 4 ; [#uses=3]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_Debug* %ar, %struct.lua_Debug** %2, align 4
+ store i32 %n, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 12 ; [#uses=1]
+ %6 = load %struct.CallInfo** %5, align 4 ; [#uses=1]
+ %7 = load %struct.lua_Debug** %2, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_Debug* %7, i32 0, i32 10 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.CallInfo* %6, i32 %9 ; [#uses=1]
+ store %struct.CallInfo* %10, %struct.CallInfo** %ci, align 4
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %13 = load i32* %3, align 4 ; [#uses=1]
+ %14 = call i8* @_Z9findlocalP9lua_StateP8CallInfoi(%struct.lua_State* %11, %struct.CallInfo* %12, i32 %13) ; [#uses=1]
+ store i8* %14, i8** %name, align 4
+ %15 = load i8** %name, align 4 ; [#uses=1]
+ %16 = icmp ne i8* %15, null ; [#uses=1]
+ br i1 %16, label %17, label %39
+
+; <label>:17 ; preds = %0
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_State* %18, i32 0, i32 4 ; [#uses=1]
+ %20 = load %struct.lua_TValue** %19, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_TValue* %20, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %21, %struct.lua_TValue** %o2, align 4
+ %22 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.CallInfo* %22, i32 0, i32 0 ; [#uses=1]
+ %24 = load %struct.lua_TValue** %23, align 4 ; [#uses=1]
+ %25 = load i32* %3, align 4 ; [#uses=1]
+ %26 = sub nsw i32 %25, 1 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_TValue* %24, i32 %26 ; [#uses=1]
+ store %struct.lua_TValue* %27, %struct.lua_TValue** %o1, align 4
+ %28 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_TValue* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_TValue* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = bitcast %union.anon* %29 to i8* ; [#uses=1]
+ %33 = bitcast %union.anon* %31 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %32, i8* %33, i32 8, i32 4, i1 false)
+ %34 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_TValue* %34, i32 0, i32 1 ; [#uses=1]
+ %36 = load i32* %35, align 4 ; [#uses=1]
+ %37 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.lua_TValue* %37, i32 0, i32 1 ; [#uses=1]
+ store i32 %36, i32* %38, align 4
+ br label %39
+
+; <label>:39 ; preds = %17, %0
+ %40 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.lua_State* %40, i32 0, i32 4 ; [#uses=2]
+ %42 = load %struct.lua_TValue** %41, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.lua_TValue* %42, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %43, %struct.lua_TValue** %41, align 4
+ %44 = load i8** %name, align 4 ; [#uses=1]
+ ret i8* %44
+}
+
+; [#uses=6]
+define i32 @_Z11lua_getinfoP9lua_StatePKcP9lua_Debug(%struct.lua_State* %L, i8* %what, %struct.lua_Debug* %ar) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=12]
+ %2 = alloca i8*, align 4 ; [#uses=7]
+ %3 = alloca %struct.lua_Debug*, align 4 ; [#uses=4]
+ %status = alloca i32, align 4 ; [#uses=2]
+ %f = alloca %union.Closure*, align 4 ; [#uses=7]
+ %ci = alloca %struct.CallInfo*, align 4 ; [#uses=4]
+ %func = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %what, i8** %2, align 4
+ store %struct.lua_Debug* %ar, %struct.lua_Debug** %3, align 4
+ store %union.Closure* null, %union.Closure** %f, align 4
+ store %struct.CallInfo* null, %struct.CallInfo** %ci, align 4
+ %4 = load i8** %2, align 4 ; [#uses=1]
+ %5 = load i8* %4 ; [#uses=1]
+ %6 = sext i8 %5 to i32 ; [#uses=1]
+ %7 = icmp eq i32 %6, 62 ; [#uses=1]
+ br i1 %7, label %8, label %26
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_State* %9, i32 0, i32 4 ; [#uses=1]
+ %11 = load %struct.lua_TValue** %10, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %12, %struct.lua_TValue** %func, align 4
+ %13 = load i8** %2, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds i8* %13, i32 1 ; [#uses=1]
+ store i8* %14, i8** %2, align 4
+ %15 = load %struct.lua_TValue** %func, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = getelementptr inbounds %union.anon* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = bitcast double* %17 to %union.GCObject** ; [#uses=1]
+ %19 = load %union.GCObject** %18, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %union.GCObject* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = bitcast %struct.lua_State* %20 to %union.Closure* ; [#uses=1]
+ store %union.Closure* %21, %union.Closure** %f, align 4
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_State* %22, i32 0, i32 4 ; [#uses=2]
+ %24 = load %struct.lua_TValue** %23, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.lua_TValue* %24, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %25, %struct.lua_TValue** %23, align 4
+ br label %49
+
+; <label>:26 ; preds = %0
+ %27 = load %struct.lua_Debug** %3, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_Debug* %27, i32 0, i32 10 ; [#uses=1]
+ %29 = load i32* %28, align 4 ; [#uses=1]
+ %30 = icmp ne i32 %29, 0 ; [#uses=1]
+ br i1 %30, label %31, label %48
+
+; <label>:31 ; preds = %26
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_State* %32, i32 0, i32 12 ; [#uses=1]
+ %34 = load %struct.CallInfo** %33, align 4 ; [#uses=1]
+ %35 = load %struct.lua_Debug** %3, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.lua_Debug* %35, i32 0, i32 10 ; [#uses=1]
+ %37 = load i32* %36, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.CallInfo* %34, i32 %37 ; [#uses=1]
+ store %struct.CallInfo* %38, %struct.CallInfo** %ci, align 4
+ %39 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.CallInfo* %39, i32 0, i32 1 ; [#uses=1]
+ %41 = load %struct.lua_TValue** %40, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.lua_TValue* %41, i32 0, i32 0 ; [#uses=1]
+ %43 = getelementptr inbounds %union.anon* %42, i32 0, i32 0 ; [#uses=1]
+ %44 = bitcast double* %43 to %union.GCObject** ; [#uses=1]
+ %45 = load %union.GCObject** %44, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %union.GCObject* %45, i32 0, i32 0 ; [#uses=1]
+ %47 = bitcast %struct.lua_State* %46 to %union.Closure* ; [#uses=1]
+ store %union.Closure* %47, %union.Closure** %f, align 4
+ br label %48
+
+; <label>:48 ; preds = %31, %26
+ br label %49
+
+; <label>:49 ; preds = %48, %8
+ %50 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %51 = load i8** %2, align 4 ; [#uses=1]
+ %52 = load %struct.lua_Debug** %3, align 4 ; [#uses=1]
+ %53 = load %union.Closure** %f, align 4 ; [#uses=1]
+ %54 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %55 = call i32 @_Z10auxgetinfoP9lua_StatePKcP9lua_DebugP7ClosureP8CallInfo(%struct.lua_State* %50, i8* %51, %struct.lua_Debug* %52, %union.Closure* %53, %struct.CallInfo* %54) ; [#uses=1]
+ store i32 %55, i32* %status, align 4
+ %56 = load i8** %2, align 4 ; [#uses=1]
+ %57 = call i8* @strchr(i8* %56, i32 102) ; [#uses=1]
+ %58 = icmp ne i8* %57, null ; [#uses=1]
+ br i1 %58, label %59, label %100
+
+; <label>:59 ; preds = %49
+ %60 = load %union.Closure** %f, align 4 ; [#uses=1]
+ %61 = icmp eq %union.Closure* %60, null ; [#uses=1]
+ br i1 %61, label %62, label %67
+
+; <label>:62 ; preds = %59
+ %63 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.lua_State* %63, i32 0, i32 4 ; [#uses=1]
+ %65 = load %struct.lua_TValue** %64, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.lua_TValue* %65, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %66, align 4
+ br label %79
+
+; <label>:67 ; preds = %59
+ %68 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.lua_State* %68, i32 0, i32 4 ; [#uses=1]
+ %70 = load %struct.lua_TValue** %69, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %70, %struct.lua_TValue** %i_o, align 4
+ %71 = load %union.Closure** %f, align 4 ; [#uses=1]
+ %72 = bitcast %union.Closure* %71 to %union.GCObject* ; [#uses=1]
+ %73 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.lua_TValue* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = getelementptr inbounds %union.anon* %74, i32 0, i32 0 ; [#uses=1]
+ %76 = bitcast double* %75 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %72, %union.GCObject** %76, align 4
+ %77 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %78 = getelementptr inbounds %struct.lua_TValue* %77, i32 0, i32 1 ; [#uses=1]
+ store i32 6, i32* %78, align 4
+ br label %79
+
+; <label>:79 ; preds = %67, %62
+ %80 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.lua_State* %80, i32 0, i32 9 ; [#uses=1]
+ %82 = load %struct.lua_TValue** %81, align 4 ; [#uses=1]
+ %83 = bitcast %struct.lua_TValue* %82 to i8* ; [#uses=1]
+ %84 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %struct.lua_State* %84, i32 0, i32 4 ; [#uses=1]
+ %86 = load %struct.lua_TValue** %85, align 4 ; [#uses=1]
+ %87 = bitcast %struct.lua_TValue* %86 to i8* ; [#uses=1]
+ %88 = ptrtoint i8* %83 to i32 ; [#uses=1]
+ %89 = ptrtoint i8* %87 to i32 ; [#uses=1]
+ %90 = sub i32 %88, %89 ; [#uses=1]
+ %91 = icmp sle i32 %90, 12 ; [#uses=1]
+ br i1 %91, label %92, label %94
+
+; <label>:92 ; preds = %79
+ %93 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %93, i32 1)
+ br label %95
+
+; <label>:94 ; preds = %79
+ br label %95
+
+; <label>:95 ; preds = %94, %92
+ %96 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %97 = getelementptr inbounds %struct.lua_State* %96, i32 0, i32 4 ; [#uses=2]
+ %98 = load %struct.lua_TValue** %97, align 4 ; [#uses=1]
+ %99 = getelementptr inbounds %struct.lua_TValue* %98, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %99, %struct.lua_TValue** %97, align 4
+ br label %100
+
+; <label>:100 ; preds = %95, %49
+ %101 = load i8** %2, align 4 ; [#uses=1]
+ %102 = call i8* @strchr(i8* %101, i32 76) ; [#uses=1]
+ %103 = icmp ne i8* %102, null ; [#uses=1]
+ br i1 %103, label %104, label %107
+
+; <label>:104 ; preds = %100
+ %105 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %106 = load %union.Closure** %f, align 4 ; [#uses=1]
+ call void @_Z17collectvalidlinesP9lua_StateP7Closure(%struct.lua_State* %105, %union.Closure* %106)
+ br label %107
+
+; <label>:107 ; preds = %104, %100
+ %108 = load i32* %status, align 4 ; [#uses=1]
+ ret i32 %108
+}
+
+; [#uses=1]
+define internal i32 @_Z10auxgetinfoP9lua_StatePKcP9lua_DebugP7ClosureP8CallInfo(%struct.lua_State* %L, i8* %what, %struct.lua_Debug* %ar, %union.Closure* %f, %struct.CallInfo* %ci) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %3 = alloca i8*, align 4 ; [#uses=5]
+ %4 = alloca %struct.lua_Debug*, align 4 ; [#uses=10]
+ %5 = alloca %union.Closure*, align 4 ; [#uses=4]
+ %6 = alloca %struct.CallInfo*, align 4 ; [#uses=5]
+ %status = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i8* %what, i8** %3, align 4
+ store %struct.lua_Debug* %ar, %struct.lua_Debug** %4, align 4
+ store %union.Closure* %f, %union.Closure** %5, align 4
+ store %struct.CallInfo* %ci, %struct.CallInfo** %6, align 4
+ store i32 1, i32* %status, align 4
+ %7 = load %union.Closure** %5, align 4 ; [#uses=1]
+ %8 = icmp eq %union.Closure* %7, null ; [#uses=1]
+ br i1 %8, label %9, label %12
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_Debug** %4, align 4 ; [#uses=1]
+ call void @_Z13info_tailcallP9lua_Debug(%struct.lua_Debug* %10)
+ %11 = load i32* %status, align 4 ; [#uses=1]
+ store i32 %11, i32* %1
+ br label %76
+
+; <label>:12 ; preds = %0
+ br label %13
+
+; <label>:13 ; preds = %71, %12
+ %14 = load i8** %3, align 4 ; [#uses=1]
+ %15 = load i8* %14 ; [#uses=1]
+ %16 = icmp ne i8 %15, 0 ; [#uses=1]
+ br i1 %16, label %17, label %74
+
+; <label>:17 ; preds = %13
+ %18 = load i8** %3, align 4 ; [#uses=1]
+ %19 = load i8* %18 ; [#uses=1]
+ %20 = sext i8 %19 to i32 ; [#uses=1]
+ switch i32 %20, label %69 [
+ i32 83, label %21
+ i32 108, label %24
+ i32 117, label %36
+ i32 110, label %44
+ i32 76, label %68
+ i32 102, label %68
+ ]
+
+; <label>:21 ; preds = %17
+ %22 = load %struct.lua_Debug** %4, align 4 ; [#uses=1]
+ %23 = load %union.Closure** %5, align 4 ; [#uses=1]
+ call void @_Z8funcinfoP9lua_DebugP7Closure(%struct.lua_Debug* %22, %union.Closure* %23)
+ br label %70
+
+; <label>:24 ; preds = %17
+ %25 = load %struct.CallInfo** %6, align 4 ; [#uses=1]
+ %26 = icmp ne %struct.CallInfo* %25, null ; [#uses=1]
+ br i1 %26, label %27, label %31
+
+; <label>:27 ; preds = %24
+ %28 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %29 = load %struct.CallInfo** %6, align 4 ; [#uses=1]
+ %30 = call i32 @_Z11currentlineP9lua_StateP8CallInfo(%struct.lua_State* %28, %struct.CallInfo* %29) ; [#uses=1]
+ br label %32
+
+; <label>:31 ; preds = %24
+ br label %32
+
+; <label>:32 ; preds = %31, %27
+ %33 = phi i32 [ %30, %27 ], [ -1, %31 ] ; [#uses=1]
+ %34 = load %struct.lua_Debug** %4, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_Debug* %34, i32 0, i32 5 ; [#uses=1]
+ store i32 %33, i32* %35, align 4
+ br label %70
+
+; <label>:36 ; preds = %17
+ %37 = load %union.Closure** %5, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %union.Closure* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.CClosure* %38, i32 0, i32 4 ; [#uses=1]
+ %40 = load i8* %39, align 1 ; [#uses=1]
+ %41 = zext i8 %40 to i32 ; [#uses=1]
+ %42 = load %struct.lua_Debug** %4, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.lua_Debug* %42, i32 0, i32 6 ; [#uses=1]
+ store i32 %41, i32* %43, align 4
+ br label %70
+
+; <label>:44 ; preds = %17
+ %45 = load %struct.CallInfo** %6, align 4 ; [#uses=1]
+ %46 = icmp ne %struct.CallInfo* %45, null ; [#uses=1]
+ br i1 %46, label %47, label %53
+
+; <label>:47 ; preds = %44
+ %48 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %49 = load %struct.CallInfo** %6, align 4 ; [#uses=1]
+ %50 = load %struct.lua_Debug** %4, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.lua_Debug* %50, i32 0, i32 1 ; [#uses=1]
+ %52 = call i8* @_Z11getfuncnameP9lua_StateP8CallInfoPPKc(%struct.lua_State* %48, %struct.CallInfo* %49, i8** %51) ; [#uses=1]
+ br label %54
+
+; <label>:53 ; preds = %44
+ br label %54
+
+; <label>:54 ; preds = %53, %47
+ %55 = phi i8* [ %52, %47 ], [ null, %53 ] ; [#uses=1]
+ %56 = load %struct.lua_Debug** %4, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.lua_Debug* %56, i32 0, i32 2 ; [#uses=1]
+ store i8* %55, i8** %57, align 4
+ %58 = load %struct.lua_Debug** %4, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.lua_Debug* %58, i32 0, i32 2 ; [#uses=1]
+ %60 = load i8** %59, align 4 ; [#uses=1]
+ %61 = icmp eq i8* %60, null ; [#uses=1]
+ br i1 %61, label %62, label %67
+
+; <label>:62 ; preds = %54
+ %63 = load %struct.lua_Debug** %4, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.lua_Debug* %63, i32 0, i32 2 ; [#uses=1]
+ store i8* getelementptr inbounds ([1 x i8]* @.str1344, i32 0, i32 0), i8** %64, align 4
+ %65 = load %struct.lua_Debug** %4, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.lua_Debug* %65, i32 0, i32 1 ; [#uses=1]
+ store i8* null, i8** %66, align 4
+ br label %67
+
+; <label>:67 ; preds = %62, %54
+ br label %70
+
+; <label>:68 ; preds = %17, %17
+ br label %70
+
+; <label>:69 ; preds = %17
+ store i32 0, i32* %status, align 4
+ br label %70
+
+; <label>:70 ; preds = %69, %68, %67, %36, %32, %21
+ br label %71
+
+; <label>:71 ; preds = %70
+ %72 = load i8** %3, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds i8* %72, i32 1 ; [#uses=1]
+ store i8* %73, i8** %3, align 4
+ br label %13
+
+; <label>:74 ; preds = %13
+ %75 = load i32* %status, align 4 ; [#uses=1]
+ store i32 %75, i32* %1
+ br label %76
+
+; <label>:76 ; preds = %74, %9
+ %77 = load i32* %1 ; [#uses=1]
+ ret i32 %77
+}
+
+; [#uses=21]
+declare i8* @strchr(i8*, i32) nounwind readonly
+
+; [#uses=1]
+define internal void @_Z17collectvalidlinesP9lua_StateP7Closure(%struct.lua_State* %L, %union.Closure* %f) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %2 = alloca %union.Closure*, align 4 ; [#uses=5]
+ %t = alloca %struct.Table*, align 4 ; [#uses=3]
+ %lineinfo = alloca i32*, align 4 ; [#uses=2]
+ %i = alloca i32, align 4 ; [#uses=5]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %union.Closure* %f, %union.Closure** %2, align 4
+ %3 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %4 = icmp eq %union.Closure* %3, null ; [#uses=1]
+ br i1 %4, label %11, label %5
+
+; <label>:5 ; preds = %0
+ %6 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %union.Closure* %6, i32 0, i32 0 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.CClosure* %7, i32 0, i32 3 ; [#uses=1]
+ %9 = load i8* %8, align 1 ; [#uses=1]
+ %10 = icmp ne i8 %9, 0 ; [#uses=1]
+ br i1 %10, label %11, label %16
+
+; <label>:11 ; preds = %5, %0
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.lua_State* %12, i32 0, i32 4 ; [#uses=1]
+ %14 = load %struct.lua_TValue** %13, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_TValue* %14, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %15, align 4
+ br label %65
+
+; <label>:16 ; preds = %5
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %18 = call %struct.Table* @_Z8luaH_newP9lua_Stateii(%struct.lua_State* %17, i32 0, i32 0) ; [#uses=1]
+ store %struct.Table* %18, %struct.Table** %t, align 4
+ %19 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %union.Closure* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = bitcast %struct.CClosure* %20 to %struct.LClosure* ; [#uses=1]
+ %22 = getelementptr inbounds %struct.LClosure* %21, i32 0, i32 7 ; [#uses=1]
+ %23 = load %struct.Proto** %22, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.Proto* %23, i32 0, i32 6 ; [#uses=1]
+ %25 = load i32** %24, align 4 ; [#uses=1]
+ store i32* %25, i32** %lineinfo, align 4
+ store i32 0, i32* %i, align 4
+ br label %26
+
+; <label>:26 ; preds = %50, %16
+ %27 = load i32* %i, align 4 ; [#uses=1]
+ %28 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %union.Closure* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = bitcast %struct.CClosure* %29 to %struct.LClosure* ; [#uses=1]
+ %31 = getelementptr inbounds %struct.LClosure* %30, i32 0, i32 7 ; [#uses=1]
+ %32 = load %struct.Proto** %31, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.Proto* %32, i32 0, i32 13 ; [#uses=1]
+ %34 = load i32* %33, align 4 ; [#uses=1]
+ %35 = icmp slt i32 %27, %34 ; [#uses=1]
+ br i1 %35, label %36, label %53
+
+; <label>:36 ; preds = %26
+ %37 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %38 = load %struct.Table** %t, align 4 ; [#uses=1]
+ %39 = load i32* %i, align 4 ; [#uses=1]
+ %40 = load i32** %lineinfo, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds i32* %40, i32 %39 ; [#uses=1]
+ %42 = load i32* %41 ; [#uses=1]
+ %43 = call %struct.lua_TValue* @_Z11luaH_setnumP9lua_StateP5Tablei(%struct.lua_State* %37, %struct.Table* %38, i32 %42) ; [#uses=1]
+ store %struct.lua_TValue* %43, %struct.lua_TValue** %i_o, align 4
+ %44 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.lua_TValue* %44, i32 0, i32 0 ; [#uses=1]
+ %46 = getelementptr inbounds %union.anon* %45, i32 0, i32 0 ; [#uses=1]
+ %47 = bitcast double* %46 to i32* ; [#uses=1]
+ store i32 1, i32* %47, align 4
+ %48 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.lua_TValue* %48, i32 0, i32 1 ; [#uses=1]
+ store i32 1, i32* %49, align 4
+ br label %50
+
+; <label>:50 ; preds = %36
+ %51 = load i32* %i, align 4 ; [#uses=1]
+ %52 = add nsw i32 %51, 1 ; [#uses=1]
+ store i32 %52, i32* %i, align 4
+ br label %26
+
+; <label>:53 ; preds = %26
+ %54 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.lua_State* %54, i32 0, i32 4 ; [#uses=1]
+ %56 = load %struct.lua_TValue** %55, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %56, %struct.lua_TValue** %i_o1, align 4
+ %57 = load %struct.Table** %t, align 4 ; [#uses=1]
+ %58 = bitcast %struct.Table* %57 to %union.GCObject* ; [#uses=1]
+ %59 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.lua_TValue* %59, i32 0, i32 0 ; [#uses=1]
+ %61 = getelementptr inbounds %union.anon* %60, i32 0, i32 0 ; [#uses=1]
+ %62 = bitcast double* %61 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %58, %union.GCObject** %62, align 4
+ %63 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.lua_TValue* %63, i32 0, i32 1 ; [#uses=1]
+ store i32 5, i32* %64, align 4
+ br label %65
+
+; <label>:65 ; preds = %53, %11
+ %66 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.lua_State* %66, i32 0, i32 9 ; [#uses=1]
+ %68 = load %struct.lua_TValue** %67, align 4 ; [#uses=1]
+ %69 = bitcast %struct.lua_TValue* %68 to i8* ; [#uses=1]
+ %70 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %71 = getelementptr inbounds %struct.lua_State* %70, i32 0, i32 4 ; [#uses=1]
+ %72 = load %struct.lua_TValue** %71, align 4 ; [#uses=1]
+ %73 = bitcast %struct.lua_TValue* %72 to i8* ; [#uses=1]
+ %74 = ptrtoint i8* %69 to i32 ; [#uses=1]
+ %75 = ptrtoint i8* %73 to i32 ; [#uses=1]
+ %76 = sub i32 %74, %75 ; [#uses=1]
+ %77 = icmp sle i32 %76, 12 ; [#uses=1]
+ br i1 %77, label %78, label %80
+
+; <label>:78 ; preds = %65
+ %79 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %79, i32 1)
+ br label %81
+
+; <label>:80 ; preds = %65
+ br label %81
+
+; <label>:81 ; preds = %80, %78
+ %82 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %83 = getelementptr inbounds %struct.lua_State* %82, i32 0, i32 4 ; [#uses=2]
+ %84 = load %struct.lua_TValue** %83, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %struct.lua_TValue* %84, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %85, %struct.lua_TValue** %83, align 4
+ ret void
+}
+
+; [#uses=2]
+define hidden i32 @_Z16luaG_checkopenopj(i32 %i) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ store i32 %i, i32* %2, align 4
+ %3 = load i32* %2, align 4 ; [#uses=1]
+ %4 = lshr i32 %3, 0 ; [#uses=1]
+ %5 = and i32 %4, 63 ; [#uses=1]
+ switch i32 %5, label %13 [
+ i32 28, label %6
+ i32 29, label %6
+ i32 30, label %6
+ i32 34, label %6
+ ]
+
+; <label>:6 ; preds = %0, %0, %0, %0
+ %7 = load i32* %2, align 4 ; [#uses=1]
+ %8 = lshr i32 %7, 23 ; [#uses=1]
+ %9 = and i32 %8, 511 ; [#uses=1]
+ %10 = icmp eq i32 %9, 0 ; [#uses=1]
+ br i1 %10, label %12, label %11
+
+; <label>:11 ; preds = %6
+ store i32 0, i32* %1
+ br label %14
+
+; <label>:12 ; preds = %6
+ store i32 1, i32* %1
+ br label %14
+
+; <label>:13 ; preds = %0
+ store i32 0, i32* %1
+ br label %14
+
+; <label>:14 ; preds = %13, %12, %11
+ %15 = load i32* %1 ; [#uses=1]
+ ret i32 %15
+}
+
+; [#uses=1]
+define hidden i32 @_Z14luaG_checkcodePK5Proto(%struct.Proto* %pt) {
+ %1 = alloca %struct.Proto*, align 4 ; [#uses=3]
+ store %struct.Proto* %pt, %struct.Proto** %1, align 4
+ %2 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %3 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.Proto* %3, i32 0, i32 12 ; [#uses=1]
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ %6 = call i32 @_Z8symbexecPK5Protoii(%struct.Proto* %2, i32 %5, i32 255) ; [#uses=1]
+ %7 = icmp ne i32 %6, 0 ; [#uses=1]
+ %8 = zext i1 %7 to i32 ; [#uses=1]
+ ret i32 %8
+}
+
+; [#uses=2]
+define internal i32 @_Z8symbexecPK5Protoii(%struct.Proto* %pt, i32 %lastpc, i32 %reg) {
+ %1 = alloca i32, align 4 ; [#uses=33]
+ %2 = alloca %struct.Proto*, align 4 ; [#uses=35]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %4 = alloca i32, align 4 ; [#uses=9]
+ %pc = alloca i32, align 4 ; [#uses=29]
+ %last = alloca i32, align 4 ; [#uses=7]
+ %i = alloca i32, align 4 ; [#uses=7]
+ %op = alloca i32, align 4 ; [#uses=10]
+ %a = alloca i32, align 4 ; [#uses=15]
+ %b = alloca i32, align 4 ; [#uses=27]
+ %c = alloca i32, align 4 ; [#uses=13]
+ %dest = alloca i32, align 4 ; [#uses=6]
+ %j = alloca i32, align 4 ; [#uses=6]
+ %d = alloca i32, align 4 ; [#uses=3]
+ %dest1 = alloca i32, align 4 ; [#uses=3]
+ %nup = alloca i32, align 4 ; [#uses=4]
+ %j2 = alloca i32, align 4 ; [#uses=5]
+ %op1 = alloca i32, align 4 ; [#uses=3]
+ store %struct.Proto* %pt, %struct.Proto** %2, align 4
+ store i32 %lastpc, i32* %3, align 4
+ store i32 %reg, i32* %4, align 4
+ %5 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.Proto* %5, i32 0, i32 12 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ %8 = sub nsw i32 %7, 1 ; [#uses=1]
+ store i32 %8, i32* %last, align 4
+ %9 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %10 = call i32 @_Z8precheckPK5Proto(%struct.Proto* %9) ; [#uses=1]
+ %11 = icmp ne i32 %10, 0 ; [#uses=1]
+ br i1 %11, label %13, label %12
+
+; <label>:12 ; preds = %0
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:13 ; preds = %0
+ store i32 0, i32* %pc, align 4
+ br label %14
+
+; <label>:14 ; preds = %559, %13
+ %15 = load i32* %pc, align 4 ; [#uses=1]
+ %16 = load i32* %3, align 4 ; [#uses=1]
+ %17 = icmp slt i32 %15, %16 ; [#uses=1]
+ br i1 %17, label %18, label %562
+
+; <label>:18 ; preds = %14
+ %19 = load i32* %pc, align 4 ; [#uses=1]
+ %20 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.Proto* %20, i32 0, i32 4 ; [#uses=1]
+ %22 = load i32** %21, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds i32* %22, i32 %19 ; [#uses=1]
+ %24 = load i32* %23 ; [#uses=1]
+ store i32 %24, i32* %i, align 4
+ %25 = load i32* %i, align 4 ; [#uses=1]
+ %26 = lshr i32 %25, 0 ; [#uses=1]
+ %27 = and i32 %26, 63 ; [#uses=1]
+ store i32 %27, i32* %op, align 4
+ %28 = load i32* %i, align 4 ; [#uses=1]
+ %29 = lshr i32 %28, 6 ; [#uses=1]
+ %30 = and i32 %29, 255 ; [#uses=1]
+ store i32 %30, i32* %a, align 4
+ store i32 0, i32* %b, align 4
+ store i32 0, i32* %c, align 4
+ %31 = load i32* %op, align 4 ; [#uses=1]
+ %32 = icmp slt i32 %31, 38 ; [#uses=1]
+ br i1 %32, label %34, label %33
+
+; <label>:33 ; preds = %18
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:34 ; preds = %18
+ %35 = load i32* %a, align 4 ; [#uses=1]
+ %36 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.Proto* %36, i32 0, i32 22 ; [#uses=1]
+ %38 = load i8* %37, align 1 ; [#uses=1]
+ %39 = zext i8 %38 to i32 ; [#uses=1]
+ %40 = icmp slt i32 %35, %39 ; [#uses=1]
+ br i1 %40, label %42, label %41
+
+; <label>:41 ; preds = %34
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:42 ; preds = %34
+ %43 = load i32* %op, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds [38 x i8]* @luaP_opmodes, i32 0, i32 %43 ; [#uses=1]
+ %45 = load i8* %44 ; [#uses=1]
+ %46 = zext i8 %45 to i32 ; [#uses=1]
+ %47 = and i32 %46, 3 ; [#uses=1]
+ switch i32 %47, label %165 [
+ i32 0, label %48
+ i32 1, label %79
+ i32 2, label %99
+ ]
+
+; <label>:48 ; preds = %42
+ %49 = load i32* %i, align 4 ; [#uses=1]
+ %50 = lshr i32 %49, 23 ; [#uses=1]
+ %51 = and i32 %50, 511 ; [#uses=1]
+ store i32 %51, i32* %b, align 4
+ %52 = load i32* %i, align 4 ; [#uses=1]
+ %53 = lshr i32 %52, 14 ; [#uses=1]
+ %54 = and i32 %53, 511 ; [#uses=1]
+ store i32 %54, i32* %c, align 4
+ %55 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %56 = load i32* %b, align 4 ; [#uses=1]
+ %57 = load i32* %op, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds [38 x i8]* @luaP_opmodes, i32 0, i32 %57 ; [#uses=1]
+ %59 = load i8* %58 ; [#uses=1]
+ %60 = zext i8 %59 to i32 ; [#uses=1]
+ %61 = ashr i32 %60, 4 ; [#uses=1]
+ %62 = and i32 %61, 3 ; [#uses=1]
+ %63 = call i32 @_Z12checkArgModePK5Protoi9OpArgMask(%struct.Proto* %55, i32 %56, i32 %62) ; [#uses=1]
+ %64 = icmp ne i32 %63, 0 ; [#uses=1]
+ br i1 %64, label %66, label %65
+
+; <label>:65 ; preds = %48
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:66 ; preds = %48
+ %67 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %68 = load i32* %c, align 4 ; [#uses=1]
+ %69 = load i32* %op, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds [38 x i8]* @luaP_opmodes, i32 0, i32 %69 ; [#uses=1]
+ %71 = load i8* %70 ; [#uses=1]
+ %72 = zext i8 %71 to i32 ; [#uses=1]
+ %73 = ashr i32 %72, 2 ; [#uses=1]
+ %74 = and i32 %73, 3 ; [#uses=1]
+ %75 = call i32 @_Z12checkArgModePK5Protoi9OpArgMask(%struct.Proto* %67, i32 %68, i32 %74) ; [#uses=1]
+ %76 = icmp ne i32 %75, 0 ; [#uses=1]
+ br i1 %76, label %78, label %77
+
+; <label>:77 ; preds = %66
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:78 ; preds = %66
+ br label %165
+
+; <label>:79 ; preds = %42
+ %80 = load i32* %i, align 4 ; [#uses=1]
+ %81 = lshr i32 %80, 14 ; [#uses=1]
+ %82 = and i32 %81, 262143 ; [#uses=1]
+ store i32 %82, i32* %b, align 4
+ %83 = load i32* %op, align 4 ; [#uses=1]
+ %84 = getelementptr inbounds [38 x i8]* @luaP_opmodes, i32 0, i32 %83 ; [#uses=1]
+ %85 = load i8* %84 ; [#uses=1]
+ %86 = zext i8 %85 to i32 ; [#uses=1]
+ %87 = ashr i32 %86, 4 ; [#uses=1]
+ %88 = and i32 %87, 3 ; [#uses=1]
+ %89 = icmp eq i32 %88, 3 ; [#uses=1]
+ br i1 %89, label %90, label %98
+
+; <label>:90 ; preds = %79
+ %91 = load i32* %b, align 4 ; [#uses=1]
+ %92 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %93 = getelementptr inbounds %struct.Proto* %92, i32 0, i32 11 ; [#uses=1]
+ %94 = load i32* %93, align 4 ; [#uses=1]
+ %95 = icmp slt i32 %91, %94 ; [#uses=1]
+ br i1 %95, label %97, label %96
+
+; <label>:96 ; preds = %90
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:97 ; preds = %90
+ br label %98
+
+; <label>:98 ; preds = %97, %79
+ br label %165
+
+; <label>:99 ; preds = %42
+ %100 = load i32* %i, align 4 ; [#uses=1]
+ %101 = lshr i32 %100, 14 ; [#uses=1]
+ %102 = and i32 %101, 262143 ; [#uses=1]
+ %103 = sub nsw i32 %102, 131071 ; [#uses=1]
+ store i32 %103, i32* %b, align 4
+ %104 = load i32* %op, align 4 ; [#uses=1]
+ %105 = getelementptr inbounds [38 x i8]* @luaP_opmodes, i32 0, i32 %104 ; [#uses=1]
+ %106 = load i8* %105 ; [#uses=1]
+ %107 = zext i8 %106 to i32 ; [#uses=1]
+ %108 = ashr i32 %107, 4 ; [#uses=1]
+ %109 = and i32 %108, 3 ; [#uses=1]
+ %110 = icmp eq i32 %109, 2 ; [#uses=1]
+ br i1 %110, label %111, label %164
+
+; <label>:111 ; preds = %99
+ %112 = load i32* %pc, align 4 ; [#uses=1]
+ %113 = add nsw i32 %112, 1 ; [#uses=1]
+ %114 = load i32* %b, align 4 ; [#uses=1]
+ %115 = add nsw i32 %113, %114 ; [#uses=1]
+ store i32 %115, i32* %dest, align 4
+ %116 = load i32* %dest, align 4 ; [#uses=1]
+ %117 = icmp sle i32 0, %116 ; [#uses=1]
+ br i1 %117, label %118, label %124
+
+; <label>:118 ; preds = %111
+ %119 = load i32* %dest, align 4 ; [#uses=1]
+ %120 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %121 = getelementptr inbounds %struct.Proto* %120, i32 0, i32 12 ; [#uses=1]
+ %122 = load i32* %121, align 4 ; [#uses=1]
+ %123 = icmp slt i32 %119, %122 ; [#uses=1]
+ br i1 %123, label %125, label %124
+
+; <label>:124 ; preds = %118, %111
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:125 ; preds = %118
+ %126 = load i32* %dest, align 4 ; [#uses=1]
+ %127 = icmp sgt i32 %126, 0 ; [#uses=1]
+ br i1 %127, label %128, label %163
+
+; <label>:128 ; preds = %125
+ store i32 0, i32* %j, align 4
+ br label %129
+
+; <label>:129 ; preds = %154, %128
+ %130 = load i32* %j, align 4 ; [#uses=1]
+ %131 = load i32* %dest, align 4 ; [#uses=1]
+ %132 = icmp slt i32 %130, %131 ; [#uses=1]
+ br i1 %132, label %133, label %157
+
+; <label>:133 ; preds = %129
+ %134 = load i32* %dest, align 4 ; [#uses=1]
+ %135 = sub nsw i32 %134, 1 ; [#uses=1]
+ %136 = load i32* %j, align 4 ; [#uses=1]
+ %137 = sub nsw i32 %135, %136 ; [#uses=1]
+ %138 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %139 = getelementptr inbounds %struct.Proto* %138, i32 0, i32 4 ; [#uses=1]
+ %140 = load i32** %139, align 4 ; [#uses=1]
+ %141 = getelementptr inbounds i32* %140, i32 %137 ; [#uses=1]
+ %142 = load i32* %141 ; [#uses=1]
+ store i32 %142, i32* %d, align 4
+ %143 = load i32* %d, align 4 ; [#uses=1]
+ %144 = lshr i32 %143, 0 ; [#uses=1]
+ %145 = and i32 %144, 63 ; [#uses=1]
+ %146 = icmp eq i32 %145, 34 ; [#uses=1]
+ br i1 %146, label %147, label %152
+
+; <label>:147 ; preds = %133
+ %148 = load i32* %d, align 4 ; [#uses=1]
+ %149 = lshr i32 %148, 14 ; [#uses=1]
+ %150 = and i32 %149, 511 ; [#uses=1]
+ %151 = icmp eq i32 %150, 0 ; [#uses=1]
+ br i1 %151, label %153, label %152
+
+; <label>:152 ; preds = %147, %133
+ br label %157
+
+; <label>:153 ; preds = %147
+ br label %154
+
+; <label>:154 ; preds = %153
+ %155 = load i32* %j, align 4 ; [#uses=1]
+ %156 = add nsw i32 %155, 1 ; [#uses=1]
+ store i32 %156, i32* %j, align 4
+ br label %129
+
+; <label>:157 ; preds = %152, %129
+ %158 = load i32* %j, align 4 ; [#uses=1]
+ %159 = and i32 %158, 1 ; [#uses=1]
+ %160 = icmp eq i32 %159, 0 ; [#uses=1]
+ br i1 %160, label %162, label %161
+
+; <label>:161 ; preds = %157
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:162 ; preds = %157
+ br label %163
+
+; <label>:163 ; preds = %162, %125
+ br label %164
+
+; <label>:164 ; preds = %163, %99
+ br label %165
+
+; <label>:165 ; preds = %164, %98, %78, %42
+ %166 = load i32* %op, align 4 ; [#uses=1]
+ %167 = getelementptr inbounds [38 x i8]* @luaP_opmodes, i32 0, i32 %166 ; [#uses=1]
+ %168 = load i8* %167 ; [#uses=1]
+ %169 = zext i8 %168 to i32 ; [#uses=1]
+ %170 = and i32 %169, 64 ; [#uses=1]
+ %171 = icmp ne i32 %170, 0 ; [#uses=1]
+ br i1 %171, label %172, label %179
+
+; <label>:172 ; preds = %165
+ %173 = load i32* %a, align 4 ; [#uses=1]
+ %174 = load i32* %4, align 4 ; [#uses=1]
+ %175 = icmp eq i32 %173, %174 ; [#uses=1]
+ br i1 %175, label %176, label %178
+
+; <label>:176 ; preds = %172
+ %177 = load i32* %pc, align 4 ; [#uses=1]
+ store i32 %177, i32* %last, align 4
+ br label %178
+
+; <label>:178 ; preds = %176, %172
+ br label %179
+
+; <label>:179 ; preds = %178, %165
+ %180 = load i32* %op, align 4 ; [#uses=1]
+ %181 = getelementptr inbounds [38 x i8]* @luaP_opmodes, i32 0, i32 %180 ; [#uses=1]
+ %182 = load i8* %181 ; [#uses=1]
+ %183 = zext i8 %182 to i32 ; [#uses=1]
+ %184 = and i32 %183, 128 ; [#uses=1]
+ %185 = icmp ne i32 %184, 0 ; [#uses=1]
+ br i1 %185, label %186, label %207
+
+; <label>:186 ; preds = %179
+ %187 = load i32* %pc, align 4 ; [#uses=1]
+ %188 = add nsw i32 %187, 2 ; [#uses=1]
+ %189 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %190 = getelementptr inbounds %struct.Proto* %189, i32 0, i32 12 ; [#uses=1]
+ %191 = load i32* %190, align 4 ; [#uses=1]
+ %192 = icmp slt i32 %188, %191 ; [#uses=1]
+ br i1 %192, label %194, label %193
+
+; <label>:193 ; preds = %186
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:194 ; preds = %186
+ %195 = load i32* %pc, align 4 ; [#uses=1]
+ %196 = add nsw i32 %195, 1 ; [#uses=1]
+ %197 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %198 = getelementptr inbounds %struct.Proto* %197, i32 0, i32 4 ; [#uses=1]
+ %199 = load i32** %198, align 4 ; [#uses=1]
+ %200 = getelementptr inbounds i32* %199, i32 %196 ; [#uses=1]
+ %201 = load i32* %200 ; [#uses=1]
+ %202 = lshr i32 %201, 0 ; [#uses=1]
+ %203 = and i32 %202, 63 ; [#uses=1]
+ %204 = icmp eq i32 %203, 22 ; [#uses=1]
+ br i1 %204, label %206, label %205
+
+; <label>:205 ; preds = %194
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:206 ; preds = %194
+ br label %207
+
+; <label>:207 ; preds = %206, %179
+ %208 = load i32* %op, align 4 ; [#uses=1]
+ switch i32 %208, label %557 [
+ i32 2, label %209
+ i32 3, label %245
+ i32 4, label %256
+ i32 8, label %256
+ i32 5, label %265
+ i32 7, label %265
+ i32 11, label %276
+ i32 21, label %293
+ i32 33, label %299
+ i32 31, label %322
+ i32 32, label %322
+ i32 22, label %332
+ i32 28, label %352
+ i32 29, label %352
+ i32 30, label %407
+ i32 34, label %425
+ i32 36, label %454
+ i32 37, label %513
+ ]
+
+; <label>:209 ; preds = %207
+ %210 = load i32* %c, align 4 ; [#uses=1]
+ %211 = icmp eq i32 %210, 1 ; [#uses=1]
+ br i1 %211, label %212, label %244
+
+; <label>:212 ; preds = %209
+ %213 = load i32* %pc, align 4 ; [#uses=1]
+ %214 = add nsw i32 %213, 2 ; [#uses=1]
+ %215 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %216 = getelementptr inbounds %struct.Proto* %215, i32 0, i32 12 ; [#uses=1]
+ %217 = load i32* %216, align 4 ; [#uses=1]
+ %218 = icmp slt i32 %214, %217 ; [#uses=1]
+ br i1 %218, label %220, label %219
+
+; <label>:219 ; preds = %212
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:220 ; preds = %212
+ %221 = load i32* %pc, align 4 ; [#uses=1]
+ %222 = add nsw i32 %221, 1 ; [#uses=1]
+ %223 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %224 = getelementptr inbounds %struct.Proto* %223, i32 0, i32 4 ; [#uses=1]
+ %225 = load i32** %224, align 4 ; [#uses=1]
+ %226 = getelementptr inbounds i32* %225, i32 %222 ; [#uses=1]
+ %227 = load i32* %226 ; [#uses=1]
+ %228 = lshr i32 %227, 0 ; [#uses=1]
+ %229 = and i32 %228, 63 ; [#uses=1]
+ %230 = icmp ne i32 %229, 34 ; [#uses=1]
+ br i1 %230, label %243, label %231
+
+; <label>:231 ; preds = %220
+ %232 = load i32* %pc, align 4 ; [#uses=1]
+ %233 = add nsw i32 %232, 1 ; [#uses=1]
+ %234 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %235 = getelementptr inbounds %struct.Proto* %234, i32 0, i32 4 ; [#uses=1]
+ %236 = load i32** %235, align 4 ; [#uses=1]
+ %237 = getelementptr inbounds i32* %236, i32 %233 ; [#uses=1]
+ %238 = load i32* %237 ; [#uses=1]
+ %239 = lshr i32 %238, 14 ; [#uses=1]
+ %240 = and i32 %239, 511 ; [#uses=1]
+ %241 = icmp ne i32 %240, 0 ; [#uses=1]
+ br i1 %241, label %243, label %242
+
+; <label>:242 ; preds = %231
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:243 ; preds = %231, %220
+ br label %244
+
+; <label>:244 ; preds = %243, %209
+ br label %558
+
+; <label>:245 ; preds = %207
+ %246 = load i32* %a, align 4 ; [#uses=1]
+ %247 = load i32* %4, align 4 ; [#uses=1]
+ %248 = icmp sle i32 %246, %247 ; [#uses=1]
+ br i1 %248, label %249, label %255
+
+; <label>:249 ; preds = %245
+ %250 = load i32* %4, align 4 ; [#uses=1]
+ %251 = load i32* %b, align 4 ; [#uses=1]
+ %252 = icmp sle i32 %250, %251 ; [#uses=1]
+ br i1 %252, label %253, label %255
+
+; <label>:253 ; preds = %249
+ %254 = load i32* %pc, align 4 ; [#uses=1]
+ store i32 %254, i32* %last, align 4
+ br label %255
+
+; <label>:255 ; preds = %253, %249, %245
+ br label %558
+
+; <label>:256 ; preds = %207, %207
+ %257 = load i32* %b, align 4 ; [#uses=1]
+ %258 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %259 = getelementptr inbounds %struct.Proto* %258, i32 0, i32 19 ; [#uses=1]
+ %260 = load i8* %259, align 1 ; [#uses=1]
+ %261 = zext i8 %260 to i32 ; [#uses=1]
+ %262 = icmp slt i32 %257, %261 ; [#uses=1]
+ br i1 %262, label %264, label %263
+
+; <label>:263 ; preds = %256
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:264 ; preds = %256
+ br label %558
+
+; <label>:265 ; preds = %207, %207
+ %266 = load i32* %b, align 4 ; [#uses=1]
+ %267 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %268 = getelementptr inbounds %struct.Proto* %267, i32 0, i32 3 ; [#uses=1]
+ %269 = load %struct.lua_TValue** %268, align 4 ; [#uses=1]
+ %270 = getelementptr inbounds %struct.lua_TValue* %269, i32 %266 ; [#uses=1]
+ %271 = getelementptr inbounds %struct.lua_TValue* %270, i32 0, i32 1 ; [#uses=1]
+ %272 = load i32* %271, align 4 ; [#uses=1]
+ %273 = icmp eq i32 %272, 4 ; [#uses=1]
+ br i1 %273, label %275, label %274
+
+; <label>:274 ; preds = %265
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:275 ; preds = %265
+ br label %558
+
+; <label>:276 ; preds = %207
+ %277 = load i32* %a, align 4 ; [#uses=1]
+ %278 = add nsw i32 %277, 1 ; [#uses=1]
+ %279 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %280 = getelementptr inbounds %struct.Proto* %279, i32 0, i32 22 ; [#uses=1]
+ %281 = load i8* %280, align 1 ; [#uses=1]
+ %282 = zext i8 %281 to i32 ; [#uses=1]
+ %283 = icmp slt i32 %278, %282 ; [#uses=1]
+ br i1 %283, label %285, label %284
+
+; <label>:284 ; preds = %276
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:285 ; preds = %276
+ %286 = load i32* %4, align 4 ; [#uses=1]
+ %287 = load i32* %a, align 4 ; [#uses=1]
+ %288 = add nsw i32 %287, 1 ; [#uses=1]
+ %289 = icmp eq i32 %286, %288 ; [#uses=1]
+ br i1 %289, label %290, label %292
+
+; <label>:290 ; preds = %285
+ %291 = load i32* %pc, align 4 ; [#uses=1]
+ store i32 %291, i32* %last, align 4
+ br label %292
+
+; <label>:292 ; preds = %290, %285
+ br label %558
+
+; <label>:293 ; preds = %207
+ %294 = load i32* %b, align 4 ; [#uses=1]
+ %295 = load i32* %c, align 4 ; [#uses=1]
+ %296 = icmp slt i32 %294, %295 ; [#uses=1]
+ br i1 %296, label %298, label %297
+
+; <label>:297 ; preds = %293
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:298 ; preds = %293
+ br label %558
+
+; <label>:299 ; preds = %207
+ %300 = load i32* %c, align 4 ; [#uses=1]
+ %301 = icmp sge i32 %300, 1 ; [#uses=1]
+ br i1 %301, label %303, label %302
+
+; <label>:302 ; preds = %299
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:303 ; preds = %299
+ %304 = load i32* %a, align 4 ; [#uses=1]
+ %305 = add nsw i32 %304, 2 ; [#uses=1]
+ %306 = load i32* %c, align 4 ; [#uses=1]
+ %307 = add nsw i32 %305, %306 ; [#uses=1]
+ %308 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %309 = getelementptr inbounds %struct.Proto* %308, i32 0, i32 22 ; [#uses=1]
+ %310 = load i8* %309, align 1 ; [#uses=1]
+ %311 = zext i8 %310 to i32 ; [#uses=1]
+ %312 = icmp slt i32 %307, %311 ; [#uses=1]
+ br i1 %312, label %314, label %313
+
+; <label>:313 ; preds = %303
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:314 ; preds = %303
+ %315 = load i32* %4, align 4 ; [#uses=1]
+ %316 = load i32* %a, align 4 ; [#uses=1]
+ %317 = add nsw i32 %316, 2 ; [#uses=1]
+ %318 = icmp sge i32 %315, %317 ; [#uses=1]
+ br i1 %318, label %319, label %321
+
+; <label>:319 ; preds = %314
+ %320 = load i32* %pc, align 4 ; [#uses=1]
+ store i32 %320, i32* %last, align 4
+ br label %321
+
+; <label>:321 ; preds = %319, %314
+ br label %558
+
+; <label>:322 ; preds = %207, %207
+ %323 = load i32* %a, align 4 ; [#uses=1]
+ %324 = add nsw i32 %323, 3 ; [#uses=1]
+ %325 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %326 = getelementptr inbounds %struct.Proto* %325, i32 0, i32 22 ; [#uses=1]
+ %327 = load i8* %326, align 1 ; [#uses=1]
+ %328 = zext i8 %327 to i32 ; [#uses=1]
+ %329 = icmp slt i32 %324, %328 ; [#uses=1]
+ br i1 %329, label %331, label %330
+
+; <label>:330 ; preds = %322
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:331 ; preds = %322
+ br label %332
+
+; <label>:332 ; preds = %331, %207
+ %333 = load i32* %pc, align 4 ; [#uses=1]
+ %334 = add nsw i32 %333, 1 ; [#uses=1]
+ %335 = load i32* %b, align 4 ; [#uses=1]
+ %336 = add nsw i32 %334, %335 ; [#uses=1]
+ store i32 %336, i32* %dest1, align 4
+ %337 = load i32* %4, align 4 ; [#uses=1]
+ %338 = icmp ne i32 %337, 255 ; [#uses=1]
+ br i1 %338, label %339, label %351
+
+; <label>:339 ; preds = %332
+ %340 = load i32* %pc, align 4 ; [#uses=1]
+ %341 = load i32* %dest1, align 4 ; [#uses=1]
+ %342 = icmp slt i32 %340, %341 ; [#uses=1]
+ br i1 %342, label %343, label %351
+
+; <label>:343 ; preds = %339
+ %344 = load i32* %dest1, align 4 ; [#uses=1]
+ %345 = load i32* %3, align 4 ; [#uses=1]
+ %346 = icmp sle i32 %344, %345 ; [#uses=1]
+ br i1 %346, label %347, label %351
+
+; <label>:347 ; preds = %343
+ %348 = load i32* %b, align 4 ; [#uses=1]
+ %349 = load i32* %pc, align 4 ; [#uses=1]
+ %350 = add nsw i32 %349, %348 ; [#uses=1]
+ store i32 %350, i32* %pc, align 4
+ br label %351
+
+; <label>:351 ; preds = %347, %343, %339, %332
+ br label %558
+
+; <label>:352 ; preds = %207, %207
+ %353 = load i32* %b, align 4 ; [#uses=1]
+ %354 = icmp ne i32 %353, 0 ; [#uses=1]
+ br i1 %354, label %355, label %367
+
+; <label>:355 ; preds = %352
+ %356 = load i32* %a, align 4 ; [#uses=1]
+ %357 = load i32* %b, align 4 ; [#uses=1]
+ %358 = add nsw i32 %356, %357 ; [#uses=1]
+ %359 = sub nsw i32 %358, 1 ; [#uses=1]
+ %360 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %361 = getelementptr inbounds %struct.Proto* %360, i32 0, i32 22 ; [#uses=1]
+ %362 = load i8* %361, align 1 ; [#uses=1]
+ %363 = zext i8 %362 to i32 ; [#uses=1]
+ %364 = icmp slt i32 %359, %363 ; [#uses=1]
+ br i1 %364, label %366, label %365
+
+; <label>:365 ; preds = %355
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:366 ; preds = %355
+ br label %367
+
+; <label>:367 ; preds = %366, %352
+ %368 = load i32* %c, align 4 ; [#uses=1]
+ %369 = add nsw i32 %368, -1 ; [#uses=1]
+ store i32 %369, i32* %c, align 4
+ %370 = load i32* %c, align 4 ; [#uses=1]
+ %371 = icmp eq i32 %370, -1 ; [#uses=1]
+ br i1 %371, label %372, label %384
+
+; <label>:372 ; preds = %367
+ %373 = load i32* %pc, align 4 ; [#uses=1]
+ %374 = add nsw i32 %373, 1 ; [#uses=1]
+ %375 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %376 = getelementptr inbounds %struct.Proto* %375, i32 0, i32 4 ; [#uses=1]
+ %377 = load i32** %376, align 4 ; [#uses=1]
+ %378 = getelementptr inbounds i32* %377, i32 %374 ; [#uses=1]
+ %379 = load i32* %378 ; [#uses=1]
+ %380 = call i32 @_Z16luaG_checkopenopj(i32 %379) ; [#uses=1]
+ %381 = icmp ne i32 %380, 0 ; [#uses=1]
+ br i1 %381, label %383, label %382
+
+; <label>:382 ; preds = %372
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:383 ; preds = %372
+ br label %400
+
+; <label>:384 ; preds = %367
+ %385 = load i32* %c, align 4 ; [#uses=1]
+ %386 = icmp ne i32 %385, 0 ; [#uses=1]
+ br i1 %386, label %387, label %399
+
+; <label>:387 ; preds = %384
+ %388 = load i32* %a, align 4 ; [#uses=1]
+ %389 = load i32* %c, align 4 ; [#uses=1]
+ %390 = add nsw i32 %388, %389 ; [#uses=1]
+ %391 = sub nsw i32 %390, 1 ; [#uses=1]
+ %392 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %393 = getelementptr inbounds %struct.Proto* %392, i32 0, i32 22 ; [#uses=1]
+ %394 = load i8* %393, align 1 ; [#uses=1]
+ %395 = zext i8 %394 to i32 ; [#uses=1]
+ %396 = icmp slt i32 %391, %395 ; [#uses=1]
+ br i1 %396, label %398, label %397
+
+; <label>:397 ; preds = %387
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:398 ; preds = %387
+ br label %399
+
+; <label>:399 ; preds = %398, %384
+ br label %400
+
+; <label>:400 ; preds = %399, %383
+ %401 = load i32* %4, align 4 ; [#uses=1]
+ %402 = load i32* %a, align 4 ; [#uses=1]
+ %403 = icmp sge i32 %401, %402 ; [#uses=1]
+ br i1 %403, label %404, label %406
+
+; <label>:404 ; preds = %400
+ %405 = load i32* %pc, align 4 ; [#uses=1]
+ store i32 %405, i32* %last, align 4
+ br label %406
+
+; <label>:406 ; preds = %404, %400
+ br label %558
+
+; <label>:407 ; preds = %207
+ %408 = load i32* %b, align 4 ; [#uses=1]
+ %409 = add nsw i32 %408, -1 ; [#uses=1]
+ store i32 %409, i32* %b, align 4
+ %410 = load i32* %b, align 4 ; [#uses=1]
+ %411 = icmp sgt i32 %410, 0 ; [#uses=1]
+ br i1 %411, label %412, label %424
+
+; <label>:412 ; preds = %407
+ %413 = load i32* %a, align 4 ; [#uses=1]
+ %414 = load i32* %b, align 4 ; [#uses=1]
+ %415 = add nsw i32 %413, %414 ; [#uses=1]
+ %416 = sub nsw i32 %415, 1 ; [#uses=1]
+ %417 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %418 = getelementptr inbounds %struct.Proto* %417, i32 0, i32 22 ; [#uses=1]
+ %419 = load i8* %418, align 1 ; [#uses=1]
+ %420 = zext i8 %419 to i32 ; [#uses=1]
+ %421 = icmp slt i32 %416, %420 ; [#uses=1]
+ br i1 %421, label %423, label %422
+
+; <label>:422 ; preds = %412
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:423 ; preds = %412
+ br label %424
+
+; <label>:424 ; preds = %423, %407
+ br label %558
+
+; <label>:425 ; preds = %207
+ %426 = load i32* %b, align 4 ; [#uses=1]
+ %427 = icmp sgt i32 %426, 0 ; [#uses=1]
+ br i1 %427, label %428, label %439
+
+; <label>:428 ; preds = %425
+ %429 = load i32* %a, align 4 ; [#uses=1]
+ %430 = load i32* %b, align 4 ; [#uses=1]
+ %431 = add nsw i32 %429, %430 ; [#uses=1]
+ %432 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %433 = getelementptr inbounds %struct.Proto* %432, i32 0, i32 22 ; [#uses=1]
+ %434 = load i8* %433, align 1 ; [#uses=1]
+ %435 = zext i8 %434 to i32 ; [#uses=1]
+ %436 = icmp slt i32 %431, %435 ; [#uses=1]
+ br i1 %436, label %438, label %437
+
+; <label>:437 ; preds = %428
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:438 ; preds = %428
+ br label %439
+
+; <label>:439 ; preds = %438, %425
+ %440 = load i32* %c, align 4 ; [#uses=1]
+ %441 = icmp eq i32 %440, 0 ; [#uses=1]
+ br i1 %441, label %442, label %453
+
+; <label>:442 ; preds = %439
+ %443 = load i32* %pc, align 4 ; [#uses=1]
+ %444 = add nsw i32 %443, 1 ; [#uses=1]
+ store i32 %444, i32* %pc, align 4
+ %445 = load i32* %pc, align 4 ; [#uses=1]
+ %446 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %447 = getelementptr inbounds %struct.Proto* %446, i32 0, i32 12 ; [#uses=1]
+ %448 = load i32* %447, align 4 ; [#uses=1]
+ %449 = sub nsw i32 %448, 1 ; [#uses=1]
+ %450 = icmp slt i32 %445, %449 ; [#uses=1]
+ br i1 %450, label %452, label %451
+
+; <label>:451 ; preds = %442
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:452 ; preds = %442
+ br label %453
+
+; <label>:453 ; preds = %452, %439
+ br label %558
+
+; <label>:454 ; preds = %207
+ %455 = load i32* %b, align 4 ; [#uses=1]
+ %456 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %457 = getelementptr inbounds %struct.Proto* %456, i32 0, i32 14 ; [#uses=1]
+ %458 = load i32* %457, align 4 ; [#uses=1]
+ %459 = icmp slt i32 %455, %458 ; [#uses=1]
+ br i1 %459, label %461, label %460
+
+; <label>:460 ; preds = %454
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:461 ; preds = %454
+ %462 = load i32* %b, align 4 ; [#uses=1]
+ %463 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %464 = getelementptr inbounds %struct.Proto* %463, i32 0, i32 5 ; [#uses=1]
+ %465 = load %struct.Proto*** %464, align 4 ; [#uses=1]
+ %466 = getelementptr inbounds %struct.Proto** %465, i32 %462 ; [#uses=1]
+ %467 = load %struct.Proto** %466 ; [#uses=1]
+ %468 = getelementptr inbounds %struct.Proto* %467, i32 0, i32 19 ; [#uses=1]
+ %469 = load i8* %468, align 1 ; [#uses=1]
+ %470 = zext i8 %469 to i32 ; [#uses=1]
+ store i32 %470, i32* %nup, align 4
+ %471 = load i32* %pc, align 4 ; [#uses=1]
+ %472 = load i32* %nup, align 4 ; [#uses=1]
+ %473 = add nsw i32 %471, %472 ; [#uses=1]
+ %474 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %475 = getelementptr inbounds %struct.Proto* %474, i32 0, i32 12 ; [#uses=1]
+ %476 = load i32* %475, align 4 ; [#uses=1]
+ %477 = icmp slt i32 %473, %476 ; [#uses=1]
+ br i1 %477, label %479, label %478
+
+; <label>:478 ; preds = %461
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:479 ; preds = %461
+ store i32 1, i32* %j2, align 4
+ br label %480
+
+; <label>:480 ; preds = %502, %479
+ %481 = load i32* %j2, align 4 ; [#uses=1]
+ %482 = load i32* %nup, align 4 ; [#uses=1]
+ %483 = icmp sle i32 %481, %482 ; [#uses=1]
+ br i1 %483, label %484, label %505
+
+; <label>:484 ; preds = %480
+ %485 = load i32* %pc, align 4 ; [#uses=1]
+ %486 = load i32* %j2, align 4 ; [#uses=1]
+ %487 = add nsw i32 %485, %486 ; [#uses=1]
+ %488 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %489 = getelementptr inbounds %struct.Proto* %488, i32 0, i32 4 ; [#uses=1]
+ %490 = load i32** %489, align 4 ; [#uses=1]
+ %491 = getelementptr inbounds i32* %490, i32 %487 ; [#uses=1]
+ %492 = load i32* %491 ; [#uses=1]
+ %493 = lshr i32 %492, 0 ; [#uses=1]
+ %494 = and i32 %493, 63 ; [#uses=1]
+ store i32 %494, i32* %op1, align 4
+ %495 = load i32* %op1, align 4 ; [#uses=1]
+ %496 = icmp eq i32 %495, 4 ; [#uses=1]
+ br i1 %496, label %501, label %497
+
+; <label>:497 ; preds = %484
+ %498 = load i32* %op1, align 4 ; [#uses=1]
+ %499 = icmp eq i32 %498, 0 ; [#uses=1]
+ br i1 %499, label %501, label %500
+
+; <label>:500 ; preds = %497
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:501 ; preds = %497, %484
+ br label %502
+
+; <label>:502 ; preds = %501
+ %503 = load i32* %j2, align 4 ; [#uses=1]
+ %504 = add nsw i32 %503, 1 ; [#uses=1]
+ store i32 %504, i32* %j2, align 4
+ br label %480
+
+; <label>:505 ; preds = %480
+ %506 = load i32* %4, align 4 ; [#uses=1]
+ %507 = icmp ne i32 %506, 255 ; [#uses=1]
+ br i1 %507, label %508, label %512
+
+; <label>:508 ; preds = %505
+ %509 = load i32* %nup, align 4 ; [#uses=1]
+ %510 = load i32* %pc, align 4 ; [#uses=1]
+ %511 = add nsw i32 %510, %509 ; [#uses=1]
+ store i32 %511, i32* %pc, align 4
+ br label %512
+
+; <label>:512 ; preds = %508, %505
+ br label %558
+
+; <label>:513 ; preds = %207
+ %514 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %515 = getelementptr inbounds %struct.Proto* %514, i32 0, i32 21 ; [#uses=1]
+ %516 = load i8* %515, align 1 ; [#uses=1]
+ %517 = zext i8 %516 to i32 ; [#uses=1]
+ %518 = and i32 %517, 2 ; [#uses=1]
+ %519 = icmp ne i32 %518, 0 ; [#uses=1]
+ br i1 %519, label %520, label %527
+
+; <label>:520 ; preds = %513
+ %521 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %522 = getelementptr inbounds %struct.Proto* %521, i32 0, i32 21 ; [#uses=1]
+ %523 = load i8* %522, align 1 ; [#uses=1]
+ %524 = zext i8 %523 to i32 ; [#uses=1]
+ %525 = and i32 %524, 4 ; [#uses=1]
+ %526 = icmp ne i32 %525, 0 ; [#uses=1]
+ br i1 %526, label %527, label %528
+
+; <label>:527 ; preds = %520, %513
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:528 ; preds = %520
+ %529 = load i32* %b, align 4 ; [#uses=1]
+ %530 = add nsw i32 %529, -1 ; [#uses=1]
+ store i32 %530, i32* %b, align 4
+ %531 = load i32* %b, align 4 ; [#uses=1]
+ %532 = icmp eq i32 %531, -1 ; [#uses=1]
+ br i1 %532, label %533, label %545
+
+; <label>:533 ; preds = %528
+ %534 = load i32* %pc, align 4 ; [#uses=1]
+ %535 = add nsw i32 %534, 1 ; [#uses=1]
+ %536 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %537 = getelementptr inbounds %struct.Proto* %536, i32 0, i32 4 ; [#uses=1]
+ %538 = load i32** %537, align 4 ; [#uses=1]
+ %539 = getelementptr inbounds i32* %538, i32 %535 ; [#uses=1]
+ %540 = load i32* %539 ; [#uses=1]
+ %541 = call i32 @_Z16luaG_checkopenopj(i32 %540) ; [#uses=1]
+ %542 = icmp ne i32 %541, 0 ; [#uses=1]
+ br i1 %542, label %544, label %543
+
+; <label>:543 ; preds = %533
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:544 ; preds = %533
+ br label %545
+
+; <label>:545 ; preds = %544, %528
+ %546 = load i32* %a, align 4 ; [#uses=1]
+ %547 = load i32* %b, align 4 ; [#uses=1]
+ %548 = add nsw i32 %546, %547 ; [#uses=1]
+ %549 = sub nsw i32 %548, 1 ; [#uses=1]
+ %550 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %551 = getelementptr inbounds %struct.Proto* %550, i32 0, i32 22 ; [#uses=1]
+ %552 = load i8* %551, align 1 ; [#uses=1]
+ %553 = zext i8 %552 to i32 ; [#uses=1]
+ %554 = icmp slt i32 %549, %553 ; [#uses=1]
+ br i1 %554, label %556, label %555
+
+; <label>:555 ; preds = %545
+ store i32 0, i32* %1
+ br label %569
+
+; <label>:556 ; preds = %545
+ br label %558
+
+; <label>:557 ; preds = %207
+ br label %558
+
+; <label>:558 ; preds = %557, %556, %512, %453, %424, %406, %351, %321, %298, %292, %275, %264, %255, %244
+ br label %559
+
+; <label>:559 ; preds = %558
+ %560 = load i32* %pc, align 4 ; [#uses=1]
+ %561 = add nsw i32 %560, 1 ; [#uses=1]
+ store i32 %561, i32* %pc, align 4
+ br label %14
+
+; <label>:562 ; preds = %14
+ %563 = load i32* %last, align 4 ; [#uses=1]
+ %564 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %565 = getelementptr inbounds %struct.Proto* %564, i32 0, i32 4 ; [#uses=1]
+ %566 = load i32** %565, align 4 ; [#uses=1]
+ %567 = getelementptr inbounds i32* %566, i32 %563 ; [#uses=1]
+ %568 = load i32* %567 ; [#uses=1]
+ store i32 %568, i32* %1
+ br label %569
+
+; <label>:569 ; preds = %562, %555, %543, %527, %500, %478, %460, %451, %437, %422, %397, %382, %365, %330, %313, %302, %297, %284, %274, %263, %242, %219, %205, %193, %161, %124, %96, %77, %65, %41, %33, %12
+ %570 = load i32* %1 ; [#uses=1]
+ ret i32 %570
+}
+
+; [#uses=6]
+define hidden void @_Z14luaG_typeerrorP9lua_StatePK10lua_TValuePKc(%struct.lua_State* %L, %struct.lua_TValue* %o, i8* %op) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %3 = alloca i8*, align 4 ; [#uses=3]
+ %name = alloca i8*, align 4 ; [#uses=3]
+ %t = alloca i8*, align 4 ; [#uses=3]
+ %kind = alloca i8*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %o, %struct.lua_TValue** %2, align 4
+ store i8* %op, i8** %3, align 4
+ store i8* null, i8** %name, align 4
+ %4 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_TValue* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds [0 x i8*]* bitcast ([11 x i8*]* @luaT_typenames to [0 x i8*]*), i32 0, i32 %6 ; [#uses=1]
+ %8 = load i8** %7 ; [#uses=1]
+ store i8* %8, i8** %t, align 4
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_State* %9, i32 0, i32 7 ; [#uses=1]
+ %11 = load %struct.CallInfo** %10, align 4 ; [#uses=1]
+ %12 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %13 = call i32 @_Z9isinstackP8CallInfoPK10lua_TValue(%struct.CallInfo* %11, %struct.lua_TValue* %12) ; [#uses=1]
+ %14 = icmp ne i32 %13, 0 ; [#uses=1]
+ br i1 %14, label %15, label %29
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_State* %17, i32 0, i32 7 ; [#uses=1]
+ %19 = load %struct.CallInfo** %18, align 4 ; [#uses=1]
+ %20 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_State* %21, i32 0, i32 5 ; [#uses=1]
+ %23 = load %struct.lua_TValue** %22, align 4 ; [#uses=1]
+ %24 = ptrtoint %struct.lua_TValue* %20 to i32 ; [#uses=1]
+ %25 = ptrtoint %struct.lua_TValue* %23 to i32 ; [#uses=1]
+ %26 = sub i32 %24, %25 ; [#uses=1]
+ %27 = sdiv exact i32 %26, 12 ; [#uses=1]
+ %28 = call i8* @_Z10getobjnameP9lua_StateP8CallInfoiPPKc(%struct.lua_State* %16, %struct.CallInfo* %19, i32 %27, i8** %name) ; [#uses=1]
+ br label %30
+
+; <label>:29 ; preds = %0
+ br label %30
+
+; <label>:30 ; preds = %29, %15
+ %31 = phi i8* [ %28, %15 ], [ null, %29 ] ; [#uses=1]
+ store i8* %31, i8** %kind, align 4
+ %32 = load i8** %kind, align 4 ; [#uses=1]
+ %33 = icmp ne i8* %32, null ; [#uses=1]
+ br i1 %33, label %34, label %40
+
+; <label>:34 ; preds = %30
+ %35 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %36 = load i8** %3, align 4 ; [#uses=1]
+ %37 = load i8** %kind, align 4 ; [#uses=1]
+ %38 = load i8** %name, align 4 ; [#uses=1]
+ %39 = load i8** %t, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %35, i8* getelementptr inbounds ([35 x i8]* @.str835, i32 0, i32 0), i8* %36, i8* %37, i8* %38, i8* %39)
+ br label %44
+
+; <label>:40 ; preds = %30
+ %41 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %42 = load i8** %3, align 4 ; [#uses=1]
+ %43 = load i8** %t, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %41, i8* getelementptr inbounds ([25 x i8]* @.str1936, i32 0, i32 0), i8* %42, i8* %43)
+ br label %44
+
+; <label>:44 ; preds = %40, %34
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z9isinstackP8CallInfoPK10lua_TValue(%struct.CallInfo* %ci, %struct.lua_TValue* %o) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.CallInfo*, align 4 ; [#uses=3]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %p = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ store %struct.CallInfo* %ci, %struct.CallInfo** %2, align 4
+ store %struct.lua_TValue* %o, %struct.lua_TValue** %3, align 4
+ %4 = load %struct.CallInfo** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.CallInfo* %4, i32 0, i32 0 ; [#uses=1]
+ %6 = load %struct.lua_TValue** %5, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %6, %struct.lua_TValue** %p, align 4
+ br label %7
+
+; <label>:7 ; preds = %19, %0
+ %8 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ %9 = load %struct.CallInfo** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.CallInfo* %9, i32 0, i32 2 ; [#uses=1]
+ %11 = load %struct.lua_TValue** %10, align 4 ; [#uses=1]
+ %12 = icmp ult %struct.lua_TValue* %8, %11 ; [#uses=1]
+ br i1 %12, label %13, label %22
+
+; <label>:13 ; preds = %7
+ %14 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %15 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ %16 = icmp eq %struct.lua_TValue* %14, %15 ; [#uses=1]
+ br i1 %16, label %17, label %18
+
+; <label>:17 ; preds = %13
+ store i32 1, i32* %1
+ br label %23
+
+; <label>:18 ; preds = %13
+ br label %19
+
+; <label>:19 ; preds = %18
+ %20 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_TValue* %20, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %21, %struct.lua_TValue** %p, align 4
+ br label %7
+
+; <label>:22 ; preds = %7
+ store i32 0, i32* %1
+ br label %23
+
+; <label>:23 ; preds = %22, %17
+ %24 = load i32* %1 ; [#uses=1]
+ ret i32 %24
+}
+
+; [#uses=3]
+define internal i8* @_Z10getobjnameP9lua_StateP8CallInfoiPPKc(%struct.lua_State* %L, %struct.CallInfo* %ci, i32 %stackpos, i8** %name) {
+ %1 = alloca i8*, align 4 ; [#uses=8]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %3 = alloca %struct.CallInfo*, align 4 ; [#uses=6]
+ %4 = alloca i32, align 4 ; [#uses=3]
+ %5 = alloca i8**, align 4 ; [#uses=8]
+ %p = alloca %struct.Proto*, align 4 ; [#uses=8]
+ %pc = alloca i32, align 4 ; [#uses=3]
+ %i = alloca i32, align 4 ; [#uses=8]
+ %g = alloca i32, align 4 ; [#uses=2]
+ %a = alloca i32, align 4 ; [#uses=2]
+ %b = alloca i32, align 4 ; [#uses=3]
+ %k = alloca i32, align 4 ; [#uses=2]
+ %u = alloca i32, align 4 ; [#uses=2]
+ %k1 = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.CallInfo* %ci, %struct.CallInfo** %3, align 4
+ store i32 %stackpos, i32* %4, align 4
+ store i8** %name, i8*** %5, align 4
+ %6 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.CallInfo* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load %struct.lua_TValue** %7, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_TValue* %8, i32 0, i32 1 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ %11 = icmp eq i32 %10, 6 ; [#uses=1]
+ br i1 %11, label %12, label %135
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.CallInfo* %13, i32 0, i32 1 ; [#uses=1]
+ %15 = load %struct.lua_TValue** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = getelementptr inbounds %union.anon* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = bitcast double* %17 to %union.GCObject** ; [#uses=1]
+ %19 = load %union.GCObject** %18, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %union.GCObject* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = bitcast %struct.lua_State* %20 to %union.Closure* ; [#uses=1]
+ %22 = getelementptr inbounds %union.Closure* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.CClosure* %22, i32 0, i32 3 ; [#uses=1]
+ %24 = load i8* %23, align 1 ; [#uses=1]
+ %25 = icmp ne i8 %24, 0 ; [#uses=1]
+ br i1 %25, label %135, label %26
+
+; <label>:26 ; preds = %12
+ %27 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.CallInfo* %27, i32 0, i32 1 ; [#uses=1]
+ %29 = load %struct.lua_TValue** %28, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_TValue* %29, i32 0, i32 0 ; [#uses=1]
+ %31 = getelementptr inbounds %union.anon* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = bitcast double* %31 to %union.GCObject** ; [#uses=1]
+ %33 = load %union.GCObject** %32, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %union.GCObject* %33, i32 0, i32 0 ; [#uses=1]
+ %35 = bitcast %struct.lua_State* %34 to %union.Closure* ; [#uses=1]
+ %36 = getelementptr inbounds %union.Closure* %35, i32 0, i32 0 ; [#uses=1]
+ %37 = bitcast %struct.CClosure* %36 to %struct.LClosure* ; [#uses=1]
+ %38 = getelementptr inbounds %struct.LClosure* %37, i32 0, i32 7 ; [#uses=1]
+ %39 = load %struct.Proto** %38, align 4 ; [#uses=1]
+ store %struct.Proto* %39, %struct.Proto** %p, align 4
+ %40 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %41 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %42 = call i32 @_Z9currentpcP9lua_StateP8CallInfo(%struct.lua_State* %40, %struct.CallInfo* %41) ; [#uses=1]
+ store i32 %42, i32* %pc, align 4
+ %43 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %44 = load i32* %4, align 4 ; [#uses=1]
+ %45 = add nsw i32 %44, 1 ; [#uses=1]
+ %46 = load i32* %pc, align 4 ; [#uses=1]
+ %47 = call i8* @_Z17luaF_getlocalnamePK5Protoii(%struct.Proto* %43, i32 %45, i32 %46) ; [#uses=1]
+ %48 = load i8*** %5, align 4 ; [#uses=1]
+ store i8* %47, i8** %48
+ %49 = load i8*** %5, align 4 ; [#uses=1]
+ %50 = load i8** %49 ; [#uses=1]
+ %51 = icmp ne i8* %50, null ; [#uses=1]
+ br i1 %51, label %52, label %53
+
+; <label>:52 ; preds = %26
+ store i8* getelementptr inbounds ([6 x i8]* @.str739, i32 0, i32 0), i8** %1
+ br label %136
+
+; <label>:53 ; preds = %26
+ %54 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %55 = load i32* %pc, align 4 ; [#uses=1]
+ %56 = load i32* %4, align 4 ; [#uses=1]
+ %57 = call i32 @_Z8symbexecPK5Protoii(%struct.Proto* %54, i32 %55, i32 %56) ; [#uses=1]
+ store i32 %57, i32* %i, align 4
+ %58 = load i32* %i, align 4 ; [#uses=1]
+ %59 = lshr i32 %58, 0 ; [#uses=1]
+ %60 = and i32 %59, 63 ; [#uses=1]
+ switch i32 %60, label %133 [
+ i32 5, label %61
+ i32 0, label %79
+ i32 6, label %96
+ i32 4, label %104
+ i32 11, label %125
+ ]
+
+; <label>:61 ; preds = %53
+ %62 = load i32* %i, align 4 ; [#uses=1]
+ %63 = lshr i32 %62, 14 ; [#uses=1]
+ %64 = and i32 %63, 262143 ; [#uses=1]
+ store i32 %64, i32* %g, align 4
+ %65 = load i32* %g, align 4 ; [#uses=1]
+ %66 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.Proto* %66, i32 0, i32 3 ; [#uses=1]
+ %68 = load %struct.lua_TValue** %67, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.lua_TValue* %68, i32 %65 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.lua_TValue* %69, i32 0, i32 0 ; [#uses=1]
+ %71 = getelementptr inbounds %union.anon* %70, i32 0, i32 0 ; [#uses=1]
+ %72 = bitcast double* %71 to %union.GCObject** ; [#uses=1]
+ %73 = load %union.GCObject** %72, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %union.GCObject* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = bitcast %struct.lua_State* %74 to %union.TString* ; [#uses=1]
+ %76 = getelementptr inbounds %union.TString* %75, i32 1 ; [#uses=1]
+ %77 = bitcast %union.TString* %76 to i8* ; [#uses=1]
+ %78 = load i8*** %5, align 4 ; [#uses=1]
+ store i8* %77, i8** %78
+ store i8* getelementptr inbounds ([7 x i8]* @.str813, i32 0, i32 0), i8** %1
+ br label %136
+
+; <label>:79 ; preds = %53
+ %80 = load i32* %i, align 4 ; [#uses=1]
+ %81 = lshr i32 %80, 6 ; [#uses=1]
+ %82 = and i32 %81, 255 ; [#uses=1]
+ store i32 %82, i32* %a, align 4
+ %83 = load i32* %i, align 4 ; [#uses=1]
+ %84 = lshr i32 %83, 23 ; [#uses=1]
+ %85 = and i32 %84, 511 ; [#uses=1]
+ store i32 %85, i32* %b, align 4
+ %86 = load i32* %b, align 4 ; [#uses=1]
+ %87 = load i32* %a, align 4 ; [#uses=1]
+ %88 = icmp slt i32 %86, %87 ; [#uses=1]
+ br i1 %88, label %89, label %95
+
+; <label>:89 ; preds = %79
+ %90 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %91 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %92 = load i32* %b, align 4 ; [#uses=1]
+ %93 = load i8*** %5, align 4 ; [#uses=1]
+ %94 = call i8* @_Z10getobjnameP9lua_StateP8CallInfoiPPKc(%struct.lua_State* %90, %struct.CallInfo* %91, i32 %92, i8** %93) ; [#uses=1]
+ store i8* %94, i8** %1
+ br label %136
+
+; <label>:95 ; preds = %79
+ br label %134
+
+; <label>:96 ; preds = %53
+ %97 = load i32* %i, align 4 ; [#uses=1]
+ %98 = lshr i32 %97, 14 ; [#uses=1]
+ %99 = and i32 %98, 511 ; [#uses=1]
+ store i32 %99, i32* %k, align 4
+ %100 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %101 = load i32* %k, align 4 ; [#uses=1]
+ %102 = call i8* @_Z5knameP5Protoi(%struct.Proto* %100, i32 %101) ; [#uses=1]
+ %103 = load i8*** %5, align 4 ; [#uses=1]
+ store i8* %102, i8** %103
+ store i8* getelementptr inbounds ([6 x i8]* @.str940, i32 0, i32 0), i8** %1
+ br label %136
+
+; <label>:104 ; preds = %53
+ %105 = load i32* %i, align 4 ; [#uses=1]
+ %106 = lshr i32 %105, 23 ; [#uses=1]
+ %107 = and i32 %106, 511 ; [#uses=1]
+ store i32 %107, i32* %u, align 4
+ %108 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %109 = getelementptr inbounds %struct.Proto* %108, i32 0, i32 8 ; [#uses=1]
+ %110 = load %union.TString*** %109, align 4 ; [#uses=1]
+ %111 = icmp ne %union.TString** %110, null ; [#uses=1]
+ br i1 %111, label %112, label %121
+
+; <label>:112 ; preds = %104
+ %113 = load i32* %u, align 4 ; [#uses=1]
+ %114 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %115 = getelementptr inbounds %struct.Proto* %114, i32 0, i32 8 ; [#uses=1]
+ %116 = load %union.TString*** %115, align 4 ; [#uses=1]
+ %117 = getelementptr inbounds %union.TString** %116, i32 %113 ; [#uses=1]
+ %118 = load %union.TString** %117 ; [#uses=1]
+ %119 = getelementptr inbounds %union.TString* %118, i32 1 ; [#uses=1]
+ %120 = bitcast %union.TString* %119 to i8* ; [#uses=1]
+ br label %122
+
+; <label>:121 ; preds = %104
+ br label %122
+
+; <label>:122 ; preds = %121, %112
+ %123 = phi i8* [ %120, %112 ], [ getelementptr inbounds ([2 x i8]* @.str1041, i32 0, i32 0), %121 ] ; [#uses=1]
+ %124 = load i8*** %5, align 4 ; [#uses=1]
+ store i8* %123, i8** %124
+ store i8* getelementptr inbounds ([8 x i8]* @.str1142, i32 0, i32 0), i8** %1
+ br label %136
+
+; <label>:125 ; preds = %53
+ %126 = load i32* %i, align 4 ; [#uses=1]
+ %127 = lshr i32 %126, 14 ; [#uses=1]
+ %128 = and i32 %127, 511 ; [#uses=1]
+ store i32 %128, i32* %k1, align 4
+ %129 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %130 = load i32* %k1, align 4 ; [#uses=1]
+ %131 = call i8* @_Z5knameP5Protoi(%struct.Proto* %129, i32 %130) ; [#uses=1]
+ %132 = load i8*** %5, align 4 ; [#uses=1]
+ store i8* %131, i8** %132
+ store i8* getelementptr inbounds ([7 x i8]* @.str1243, i32 0, i32 0), i8** %1
+ br label %136
+
+; <label>:133 ; preds = %53
+ br label %134
+
+; <label>:134 ; preds = %133, %95
+ br label %135
+
+; <label>:135 ; preds = %134, %12, %0
+ store i8* null, i8** %1
+ br label %136
+
+; <label>:136 ; preds = %135, %125, %122, %96, %89, %61, %52
+ %137 = load i8** %1 ; [#uses=1]
+ ret i8* %137
+}
+
+; [#uses=20]
+define hidden void @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %L, i8* %fmt, ...) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %argp = alloca i8*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %fmt, i8** %2, align 4
+ %3 = bitcast i8** %argp to i8* ; [#uses=1]
+ call void @llvm.va_start(i8* %3)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = load i8** %2, align 4 ; [#uses=1]
+ %7 = load i8** %argp, align 4 ; [#uses=1]
+ %8 = call i8* @_Z17luaO_pushvfstringP9lua_StatePKcPc(%struct.lua_State* %5, i8* %6, i8* %7) ; [#uses=1]
+ call void @_Z7addinfoP9lua_StatePKc(%struct.lua_State* %4, i8* %8)
+ %9 = bitcast i8** %argp to i8* ; [#uses=1]
+ call void @llvm.va_end(i8* %9)
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaG_errormsgP9lua_State(%struct.lua_State* %10)
+ ret void
+}
+
+; [#uses=1]
+define hidden void @_Z16luaG_concaterrorP9lua_StateP10lua_TValueS2_(%struct.lua_State* %L, %struct.lua_TValue* %p1, %struct.lua_TValue* %p2) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %p1, %struct.lua_TValue** %2, align 4
+ store %struct.lua_TValue* %p2, %struct.lua_TValue** %3, align 4
+ %4 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_TValue* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = icmp eq i32 %6, 4 ; [#uses=1]
+ br i1 %7, label %13, label %8
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_TValue* %9, i32 0, i32 1 ; [#uses=1]
+ %11 = load i32* %10, align 4 ; [#uses=1]
+ %12 = icmp eq i32 %11, 3 ; [#uses=1]
+ br i1 %12, label %13, label %15
+
+; <label>:13 ; preds = %8, %0
+ %14 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %14, %struct.lua_TValue** %2, align 4
+ br label %15
+
+; <label>:15 ; preds = %13, %8
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ call void @_Z14luaG_typeerrorP9lua_StatePK10lua_TValuePKc(%struct.lua_State* %16, %struct.lua_TValue* %17, i8* getelementptr inbounds ([12 x i8]* @.str210, i32 0, i32 0))
+ ret void
+}
+
+; [#uses=1]
+define hidden void @_Z15luaG_aritherrorP9lua_StatePK10lua_TValueS3_(%struct.lua_State* %L, %struct.lua_TValue* %p1, %struct.lua_TValue* %p2) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %temp = alloca %struct.lua_TValue, align 4 ; [#uses=1]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %p1, %struct.lua_TValue** %2, align 4
+ store %struct.lua_TValue* %p2, %struct.lua_TValue** %3, align 4
+ %4 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z13luaV_tonumberPK10lua_TValuePS_(%struct.lua_TValue* %4, %struct.lua_TValue* %temp) ; [#uses=1]
+ %6 = icmp eq %struct.lua_TValue* %5, null ; [#uses=1]
+ br i1 %6, label %7, label %9
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %8, %struct.lua_TValue** %3, align 4
+ br label %9
+
+; <label>:9 ; preds = %7, %0
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ call void @_Z14luaG_typeerrorP9lua_StatePK10lua_TValuePKc(%struct.lua_State* %10, %struct.lua_TValue* %11, i8* getelementptr inbounds ([22 x i8]* @.str311, i32 0, i32 0))
+ ret void
+}
+
+; [#uses=4]
+define hidden i32 @_Z15luaG_ordererrorP9lua_StatePK10lua_TValueS3_(%struct.lua_State* %L, %struct.lua_TValue* %p1, %struct.lua_TValue* %p2) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %t1 = alloca i8*, align 4 ; [#uses=4]
+ %t2 = alloca i8*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %p1, %struct.lua_TValue** %2, align 4
+ store %struct.lua_TValue* %p2, %struct.lua_TValue** %3, align 4
+ %4 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_TValue* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds [0 x i8*]* bitcast ([11 x i8*]* @luaT_typenames to [0 x i8*]*), i32 0, i32 %6 ; [#uses=1]
+ %8 = load i8** %7 ; [#uses=1]
+ store i8* %8, i8** %t1, align 4
+ %9 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_TValue* %9, i32 0, i32 1 ; [#uses=1]
+ %11 = load i32* %10, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds [0 x i8*]* bitcast ([11 x i8*]* @luaT_typenames to [0 x i8*]*), i32 0, i32 %11 ; [#uses=1]
+ %13 = load i8** %12 ; [#uses=1]
+ store i8* %13, i8** %t2, align 4
+ %14 = load i8** %t1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds i8* %14, i32 2 ; [#uses=1]
+ %16 = load i8* %15 ; [#uses=1]
+ %17 = sext i8 %16 to i32 ; [#uses=1]
+ %18 = load i8** %t2, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds i8* %18, i32 2 ; [#uses=1]
+ %20 = load i8* %19 ; [#uses=1]
+ %21 = sext i8 %20 to i32 ; [#uses=1]
+ %22 = icmp eq i32 %17, %21 ; [#uses=1]
+ br i1 %22, label %23, label %26
+
+; <label>:23 ; preds = %0
+ %24 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %25 = load i8** %t1, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %24, i8* getelementptr inbounds ([33 x i8]* @.str412, i32 0, i32 0), i8* %25)
+ br label %30
+
+; <label>:26 ; preds = %0
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %28 = load i8** %t1, align 4 ; [#uses=1]
+ %29 = load i8** %t2, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %27, i8* getelementptr inbounds ([30 x i8]* @.str537, i32 0, i32 0), i8* %28, i8* %29)
+ br label %30
+
+; <label>:30 ; preds = %26, %23
+ ret i32 0
+}
+
+; [#uses=2]
+define hidden void @_Z13luaG_errormsgP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=15]
+ %errfunc = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o21 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o12 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 27 ; [#uses=1]
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = icmp ne i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %6, label %82
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_State* %7, i32 0, i32 10 ; [#uses=1]
+ %9 = load %struct.lua_TValue** %8, align 4 ; [#uses=1]
+ %10 = bitcast %struct.lua_TValue* %9 to i8* ; [#uses=1]
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_State* %11, i32 0, i32 27 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds i8* %10, i32 %13 ; [#uses=1]
+ %15 = bitcast i8* %14 to %struct.lua_TValue* ; [#uses=1]
+ store %struct.lua_TValue* %15, %struct.lua_TValue** %errfunc, align 4
+ %16 = load %struct.lua_TValue** %errfunc, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_TValue* %16, i32 0, i32 1 ; [#uses=1]
+ %18 = load i32* %17, align 4 ; [#uses=1]
+ %19 = icmp eq i32 %18, 6 ; [#uses=1]
+ br i1 %19, label %22, label %20
+
+; <label>:20 ; preds = %6
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10luaD_throwP9lua_Statei(%struct.lua_State* %21, i32 5)
+ br label %22
+
+; <label>:22 ; preds = %20, %6
+ %23 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_State* %23, i32 0, i32 4 ; [#uses=1]
+ %25 = load %struct.lua_TValue** %24, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_TValue* %25, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %26, %struct.lua_TValue** %o2, align 4
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_State* %27, i32 0, i32 4 ; [#uses=1]
+ %29 = load %struct.lua_TValue** %28, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %29, %struct.lua_TValue** %o1, align 4
+ %30 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_TValue* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_TValue* %32, i32 0, i32 0 ; [#uses=1]
+ %34 = bitcast %union.anon* %31 to i8* ; [#uses=1]
+ %35 = bitcast %union.anon* %33 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %34, i8* %35, i32 8, i32 4, i1 false)
+ %36 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.lua_TValue* %36, i32 0, i32 1 ; [#uses=1]
+ %38 = load i32* %37, align 4 ; [#uses=1]
+ %39 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.lua_TValue* %39, i32 0, i32 1 ; [#uses=1]
+ store i32 %38, i32* %40, align 4
+ %41 = load %struct.lua_TValue** %errfunc, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %41, %struct.lua_TValue** %o21, align 4
+ %42 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.lua_State* %42, i32 0, i32 4 ; [#uses=1]
+ %44 = load %struct.lua_TValue** %43, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.lua_TValue* %44, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %45, %struct.lua_TValue** %o12, align 4
+ %46 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.lua_TValue* %46, i32 0, i32 0 ; [#uses=1]
+ %48 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.lua_TValue* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = bitcast %union.anon* %47 to i8* ; [#uses=1]
+ %51 = bitcast %union.anon* %49 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %50, i8* %51, i32 8, i32 4, i1 false)
+ %52 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.lua_TValue* %52, i32 0, i32 1 ; [#uses=1]
+ %54 = load i32* %53, align 4 ; [#uses=1]
+ %55 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.lua_TValue* %55, i32 0, i32 1 ; [#uses=1]
+ store i32 %54, i32* %56, align 4
+ %57 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.lua_State* %57, i32 0, i32 9 ; [#uses=1]
+ %59 = load %struct.lua_TValue** %58, align 4 ; [#uses=1]
+ %60 = bitcast %struct.lua_TValue* %59 to i8* ; [#uses=1]
+ %61 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds %struct.lua_State* %61, i32 0, i32 4 ; [#uses=1]
+ %63 = load %struct.lua_TValue** %62, align 4 ; [#uses=1]
+ %64 = bitcast %struct.lua_TValue* %63 to i8* ; [#uses=1]
+ %65 = ptrtoint i8* %60 to i32 ; [#uses=1]
+ %66 = ptrtoint i8* %64 to i32 ; [#uses=1]
+ %67 = sub i32 %65, %66 ; [#uses=1]
+ %68 = icmp sle i32 %67, 12 ; [#uses=1]
+ br i1 %68, label %69, label %71
+
+; <label>:69 ; preds = %22
+ %70 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %70, i32 1)
+ br label %72
+
+; <label>:71 ; preds = %22
+ br label %72
+
+; <label>:72 ; preds = %71, %69
+ %73 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.lua_State* %73, i32 0, i32 4 ; [#uses=2]
+ %75 = load %struct.lua_TValue** %74, align 4 ; [#uses=1]
+ %76 = getelementptr inbounds %struct.lua_TValue* %75, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %76, %struct.lua_TValue** %74, align 4
+ %77 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %78 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %79 = getelementptr inbounds %struct.lua_State* %78, i32 0, i32 4 ; [#uses=1]
+ %80 = load %struct.lua_TValue** %79, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.lua_TValue* %80, i32 -2 ; [#uses=1]
+ call void @_Z9luaD_callP9lua_StateP10lua_TValuei(%struct.lua_State* %77, %struct.lua_TValue* %81, i32 1)
+ br label %82
+
+; <label>:82 ; preds = %72, %0
+ %83 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10luaD_throwP9lua_Statei(%struct.lua_State* %83, i32 2)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z7addinfoP9lua_StatePKc(%struct.lua_State* %L, i8* %msg) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %ci = alloca %struct.CallInfo*, align 4 ; [#uses=5]
+ %buff = alloca [60 x i8], align 1 ; [#uses=2]
+ %line = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %msg, i8** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 7 ; [#uses=1]
+ %5 = load %struct.CallInfo** %4, align 4 ; [#uses=1]
+ store %struct.CallInfo* %5, %struct.CallInfo** %ci, align 4
+ %6 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.CallInfo* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load %struct.lua_TValue** %7, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_TValue* %8, i32 0, i32 1 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ %11 = icmp eq i32 %10, 6 ; [#uses=1]
+ br i1 %11, label %12, label %42
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.CallInfo* %13, i32 0, i32 1 ; [#uses=1]
+ %15 = load %struct.lua_TValue** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = getelementptr inbounds %union.anon* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = bitcast double* %17 to %union.GCObject** ; [#uses=1]
+ %19 = load %union.GCObject** %18, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %union.GCObject* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = bitcast %struct.lua_State* %20 to %union.Closure* ; [#uses=1]
+ %22 = getelementptr inbounds %union.Closure* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.CClosure* %22, i32 0, i32 3 ; [#uses=1]
+ %24 = load i8* %23, align 1 ; [#uses=1]
+ %25 = icmp ne i8 %24, 0 ; [#uses=1]
+ br i1 %25, label %42, label %26
+
+; <label>:26 ; preds = %12
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %28 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %29 = call i32 @_Z11currentlineP9lua_StateP8CallInfo(%struct.lua_State* %27, %struct.CallInfo* %28) ; [#uses=1]
+ store i32 %29, i32* %line, align 4
+ %30 = getelementptr inbounds [60 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ %31 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %32 = call %struct.Proto* @_Z11getluaprotoP8CallInfo(%struct.CallInfo* %31) ; [#uses=1]
+ %33 = getelementptr inbounds %struct.Proto* %32, i32 0, i32 9 ; [#uses=1]
+ %34 = load %union.TString** %33, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %union.TString* %34, i32 1 ; [#uses=1]
+ %36 = bitcast %union.TString* %35 to i8* ; [#uses=1]
+ call void @_Z12luaO_chunkidPcPKcj(i8* %30, i8* %36, i32 60)
+ %37 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds [60 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ %39 = load i32* %line, align 4 ; [#uses=1]
+ %40 = load i8** %2, align 4 ; [#uses=1]
+ %41 = call i8* (%struct.lua_State*, i8*, ...)* @_Z16luaO_pushfstringP9lua_StatePKcz(%struct.lua_State* %37, i8* getelementptr inbounds ([10 x i8]* @.str638, i32 0, i32 0), i8* %38, i32 %39, i8* %40) ; [#uses=0]
+ br label %42
+
+; <label>:42 ; preds = %26, %12, %0
+ ret void
+}
+
+; [#uses=2]
+define internal i32 @_Z11currentlineP9lua_StateP8CallInfo(%struct.lua_State* %L, %struct.CallInfo* %ci) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %3 = alloca %struct.CallInfo*, align 4 ; [#uses=4]
+ %pc = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.CallInfo* %ci, %struct.CallInfo** %3, align 4
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %6 = call i32 @_Z9currentpcP9lua_StateP8CallInfo(%struct.lua_State* %4, %struct.CallInfo* %5) ; [#uses=1]
+ store i32 %6, i32* %pc, align 4
+ %7 = load i32* %pc, align 4 ; [#uses=1]
+ %8 = icmp slt i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %9, label %10
+
+; <label>:9 ; preds = %0
+ store i32 -1, i32* %1
+ br label %49
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.CallInfo* %11, i32 0, i32 1 ; [#uses=1]
+ %13 = load %struct.lua_TValue** %12, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_TValue* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = getelementptr inbounds %union.anon* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = bitcast double* %15 to %union.GCObject** ; [#uses=1]
+ %17 = load %union.GCObject** %16, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %union.GCObject* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = bitcast %struct.lua_State* %18 to %union.Closure* ; [#uses=1]
+ %20 = getelementptr inbounds %union.Closure* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = bitcast %struct.CClosure* %20 to %struct.LClosure* ; [#uses=1]
+ %22 = getelementptr inbounds %struct.LClosure* %21, i32 0, i32 7 ; [#uses=1]
+ %23 = load %struct.Proto** %22, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.Proto* %23, i32 0, i32 6 ; [#uses=1]
+ %25 = load i32** %24, align 4 ; [#uses=1]
+ %26 = icmp ne i32* %25, null ; [#uses=1]
+ br i1 %26, label %27, label %46
+
+; <label>:27 ; preds = %10
+ %28 = load i32* %pc, align 4 ; [#uses=1]
+ %29 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.CallInfo* %29, i32 0, i32 1 ; [#uses=1]
+ %31 = load %struct.lua_TValue** %30, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_TValue* %31, i32 0, i32 0 ; [#uses=1]
+ %33 = getelementptr inbounds %union.anon* %32, i32 0, i32 0 ; [#uses=1]
+ %34 = bitcast double* %33 to %union.GCObject** ; [#uses=1]
+ %35 = load %union.GCObject** %34, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %union.GCObject* %35, i32 0, i32 0 ; [#uses=1]
+ %37 = bitcast %struct.lua_State* %36 to %union.Closure* ; [#uses=1]
+ %38 = getelementptr inbounds %union.Closure* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = bitcast %struct.CClosure* %38 to %struct.LClosure* ; [#uses=1]
+ %40 = getelementptr inbounds %struct.LClosure* %39, i32 0, i32 7 ; [#uses=1]
+ %41 = load %struct.Proto** %40, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.Proto* %41, i32 0, i32 6 ; [#uses=1]
+ %43 = load i32** %42, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds i32* %43, i32 %28 ; [#uses=1]
+ %45 = load i32* %44 ; [#uses=1]
+ br label %47
+
+; <label>:46 ; preds = %10
+ br label %47
+
+; <label>:47 ; preds = %46, %27
+ %48 = phi i32 [ %45, %27 ], [ 0, %46 ] ; [#uses=1]
+ store i32 %48, i32* %1
+ br label %49
+
+; <label>:49 ; preds = %47, %9
+ %50 = load i32* %1 ; [#uses=1]
+ ret i32 %50
+}
+
+; [#uses=2]
+define internal %struct.Proto* @_Z11getluaprotoP8CallInfo(%struct.CallInfo* %ci) nounwind {
+ %1 = alloca %struct.CallInfo*, align 4 ; [#uses=4]
+ store %struct.CallInfo* %ci, %struct.CallInfo** %1, align 4
+ %2 = load %struct.CallInfo** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.CallInfo* %2, i32 0, i32 1 ; [#uses=1]
+ %4 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_TValue* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = icmp eq i32 %6, 6 ; [#uses=1]
+ br i1 %7, label %8, label %36
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.CallInfo** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.CallInfo* %9, i32 0, i32 1 ; [#uses=1]
+ %11 = load %struct.lua_TValue** %10, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = getelementptr inbounds %union.anon* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = bitcast double* %13 to %union.GCObject** ; [#uses=1]
+ %15 = load %union.GCObject** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %union.GCObject* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = bitcast %struct.lua_State* %16 to %union.Closure* ; [#uses=1]
+ %18 = getelementptr inbounds %union.Closure* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.CClosure* %18, i32 0, i32 3 ; [#uses=1]
+ %20 = load i8* %19, align 1 ; [#uses=1]
+ %21 = icmp ne i8 %20, 0 ; [#uses=1]
+ br i1 %21, label %36, label %22
+
+; <label>:22 ; preds = %8
+ %23 = load %struct.CallInfo** %1, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.CallInfo* %23, i32 0, i32 1 ; [#uses=1]
+ %25 = load %struct.lua_TValue** %24, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_TValue* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = getelementptr inbounds %union.anon* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = bitcast double* %27 to %union.GCObject** ; [#uses=1]
+ %29 = load %union.GCObject** %28, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %union.GCObject* %29, i32 0, i32 0 ; [#uses=1]
+ %31 = bitcast %struct.lua_State* %30 to %union.Closure* ; [#uses=1]
+ %32 = getelementptr inbounds %union.Closure* %31, i32 0, i32 0 ; [#uses=1]
+ %33 = bitcast %struct.CClosure* %32 to %struct.LClosure* ; [#uses=1]
+ %34 = getelementptr inbounds %struct.LClosure* %33, i32 0, i32 7 ; [#uses=1]
+ %35 = load %struct.Proto** %34, align 4 ; [#uses=1]
+ br label %37
+
+; <label>:36 ; preds = %8, %0
+ br label %37
+
+; <label>:37 ; preds = %36, %22
+ %38 = phi %struct.Proto* [ %35, %22 ], [ null, %36 ] ; [#uses=1]
+ ret %struct.Proto* %38
+}
+
+; [#uses=4]
+define internal i32 @_Z9currentpcP9lua_StateP8CallInfo(%struct.lua_State* %L, %struct.CallInfo* %ci) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %3 = alloca %struct.CallInfo*, align 4 ; [#uses=7]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.CallInfo* %ci, %struct.CallInfo** %3, align 4
+ %4 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.CallInfo* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = load %struct.lua_TValue** %5, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_TValue* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = icmp eq i32 %8, 6 ; [#uses=1]
+ br i1 %9, label %10, label %24
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.CallInfo* %11, i32 0, i32 1 ; [#uses=1]
+ %13 = load %struct.lua_TValue** %12, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_TValue* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = getelementptr inbounds %union.anon* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = bitcast double* %15 to %union.GCObject** ; [#uses=1]
+ %17 = load %union.GCObject** %16, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %union.GCObject* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = bitcast %struct.lua_State* %18 to %union.Closure* ; [#uses=1]
+ %20 = getelementptr inbounds %union.Closure* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.CClosure* %20, i32 0, i32 3 ; [#uses=1]
+ %22 = load i8* %21, align 1 ; [#uses=1]
+ %23 = icmp ne i8 %22, 0 ; [#uses=1]
+ br i1 %23, label %24, label %25
+
+; <label>:24 ; preds = %10, %0
+ store i32 -1, i32* %1
+ br label %61
+
+; <label>:25 ; preds = %10
+ %26 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_State* %27, i32 0, i32 7 ; [#uses=1]
+ %29 = load %struct.CallInfo** %28, align 4 ; [#uses=1]
+ %30 = icmp eq %struct.CallInfo* %26, %29 ; [#uses=1]
+ br i1 %30, label %31, label %37
+
+; <label>:31 ; preds = %25
+ %32 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_State* %32, i32 0, i32 8 ; [#uses=1]
+ %34 = load i32** %33, align 4 ; [#uses=1]
+ %35 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.CallInfo* %35, i32 0, i32 3 ; [#uses=1]
+ store i32* %34, i32** %36, align 4
+ br label %37
+
+; <label>:37 ; preds = %31, %25
+ %38 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.CallInfo* %38, i32 0, i32 3 ; [#uses=1]
+ %40 = load i32** %39, align 4 ; [#uses=1]
+ %41 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.CallInfo* %41, i32 0, i32 1 ; [#uses=1]
+ %43 = load %struct.lua_TValue** %42, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.lua_TValue* %43, i32 0, i32 0 ; [#uses=1]
+ %45 = getelementptr inbounds %union.anon* %44, i32 0, i32 0 ; [#uses=1]
+ %46 = bitcast double* %45 to %union.GCObject** ; [#uses=1]
+ %47 = load %union.GCObject** %46, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %union.GCObject* %47, i32 0, i32 0 ; [#uses=1]
+ %49 = bitcast %struct.lua_State* %48 to %union.Closure* ; [#uses=1]
+ %50 = getelementptr inbounds %union.Closure* %49, i32 0, i32 0 ; [#uses=1]
+ %51 = bitcast %struct.CClosure* %50 to %struct.LClosure* ; [#uses=1]
+ %52 = getelementptr inbounds %struct.LClosure* %51, i32 0, i32 7 ; [#uses=1]
+ %53 = load %struct.Proto** %52, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.Proto* %53, i32 0, i32 4 ; [#uses=1]
+ %55 = load i32** %54, align 4 ; [#uses=1]
+ %56 = ptrtoint i32* %40 to i32 ; [#uses=1]
+ %57 = ptrtoint i32* %55 to i32 ; [#uses=1]
+ %58 = sub i32 %56, %57 ; [#uses=1]
+ %59 = sdiv exact i32 %58, 4 ; [#uses=1]
+ %60 = sub nsw i32 %59, 1 ; [#uses=1]
+ store i32 %60, i32* %1
+ br label %61
+
+; <label>:61 ; preds = %37, %24
+ %62 = load i32* %1 ; [#uses=1]
+ ret i32 %62
+}
+
+; [#uses=2]
+define internal i8* @_Z5knameP5Protoi(%struct.Proto* %p, i32 %c) nounwind {
+ %1 = alloca i8*, align 4 ; [#uses=3]
+ %2 = alloca %struct.Proto*, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=4]
+ store %struct.Proto* %p, %struct.Proto** %2, align 4
+ store i32 %c, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = and i32 %4, 256 ; [#uses=1]
+ %6 = icmp ne i32 %5, 0 ; [#uses=1]
+ br i1 %6, label %7, label %32
+
+; <label>:7 ; preds = %0
+ %8 = load i32* %3, align 4 ; [#uses=1]
+ %9 = and i32 %8, -257 ; [#uses=1]
+ %10 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Proto* %10, i32 0, i32 3 ; [#uses=1]
+ %12 = load %struct.lua_TValue** %11, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.lua_TValue* %12, i32 %9 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_TValue* %13, i32 0, i32 1 ; [#uses=1]
+ %15 = load i32* %14, align 4 ; [#uses=1]
+ %16 = icmp eq i32 %15, 4 ; [#uses=1]
+ br i1 %16, label %17, label %32
+
+; <label>:17 ; preds = %7
+ %18 = load i32* %3, align 4 ; [#uses=1]
+ %19 = and i32 %18, -257 ; [#uses=1]
+ %20 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.Proto* %20, i32 0, i32 3 ; [#uses=1]
+ %22 = load %struct.lua_TValue** %21, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_TValue* %22, i32 %19 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_TValue* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = getelementptr inbounds %union.anon* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = bitcast double* %25 to %union.GCObject** ; [#uses=1]
+ %27 = load %union.GCObject** %26, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %union.GCObject* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = bitcast %struct.lua_State* %28 to %union.TString* ; [#uses=1]
+ %30 = getelementptr inbounds %union.TString* %29, i32 1 ; [#uses=1]
+ %31 = bitcast %union.TString* %30 to i8* ; [#uses=1]
+ store i8* %31, i8** %1
+ br label %33
+
+; <label>:32 ; preds = %7, %0
+ store i8* getelementptr inbounds ([2 x i8]* @.str1041, i32 0, i32 0), i8** %1
+ br label %33
+
+; <label>:33 ; preds = %32, %17
+ %34 = load i8** %1 ; [#uses=1]
+ ret i8* %34
+}
+
+; [#uses=1]
+define internal i32 @_Z8precheckPK5Proto(%struct.Proto* %pt) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=8]
+ %2 = alloca %struct.Proto*, align 4 ; [#uses=15]
+ store %struct.Proto* %pt, %struct.Proto** %2, align 4
+ %3 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.Proto* %3, i32 0, i32 22 ; [#uses=1]
+ %5 = load i8* %4, align 1 ; [#uses=1]
+ %6 = zext i8 %5 to i32 ; [#uses=1]
+ %7 = icmp sle i32 %6, 250 ; [#uses=1]
+ br i1 %7, label %9, label %8
+
+; <label>:8 ; preds = %0
+ store i32 0, i32* %1
+ br label %85
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Proto* %10, i32 0, i32 20 ; [#uses=1]
+ %12 = load i8* %11, align 1 ; [#uses=1]
+ %13 = zext i8 %12 to i32 ; [#uses=1]
+ %14 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.Proto* %14, i32 0, i32 21 ; [#uses=1]
+ %16 = load i8* %15, align 1 ; [#uses=1]
+ %17 = zext i8 %16 to i32 ; [#uses=1]
+ %18 = and i32 %17, 1 ; [#uses=1]
+ %19 = add nsw i32 %13, %18 ; [#uses=1]
+ %20 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.Proto* %20, i32 0, i32 22 ; [#uses=1]
+ %22 = load i8* %21, align 1 ; [#uses=1]
+ %23 = zext i8 %22 to i32 ; [#uses=1]
+ %24 = icmp sle i32 %19, %23 ; [#uses=1]
+ br i1 %24, label %26, label %25
+
+; <label>:25 ; preds = %9
+ store i32 0, i32* %1
+ br label %85
+
+; <label>:26 ; preds = %9
+ %27 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.Proto* %27, i32 0, i32 21 ; [#uses=1]
+ %29 = load i8* %28, align 1 ; [#uses=1]
+ %30 = zext i8 %29 to i32 ; [#uses=1]
+ %31 = and i32 %30, 4 ; [#uses=1]
+ %32 = icmp ne i32 %31, 0 ; [#uses=1]
+ br i1 %32, label %33, label %41
+
+; <label>:33 ; preds = %26
+ %34 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.Proto* %34, i32 0, i32 21 ; [#uses=1]
+ %36 = load i8* %35, align 1 ; [#uses=1]
+ %37 = zext i8 %36 to i32 ; [#uses=1]
+ %38 = and i32 %37, 1 ; [#uses=1]
+ %39 = icmp ne i32 %38, 0 ; [#uses=1]
+ br i1 %39, label %41, label %40
+
+; <label>:40 ; preds = %33
+ store i32 0, i32* %1
+ br label %85
+
+; <label>:41 ; preds = %33, %26
+ %42 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.Proto* %42, i32 0, i32 10 ; [#uses=1]
+ %44 = load i32* %43, align 4 ; [#uses=1]
+ %45 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.Proto* %45, i32 0, i32 19 ; [#uses=1]
+ %47 = load i8* %46, align 1 ; [#uses=1]
+ %48 = zext i8 %47 to i32 ; [#uses=1]
+ %49 = icmp sle i32 %44, %48 ; [#uses=1]
+ br i1 %49, label %51, label %50
+
+; <label>:50 ; preds = %41
+ store i32 0, i32* %1
+ br label %85
+
+; <label>:51 ; preds = %41
+ %52 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.Proto* %52, i32 0, i32 13 ; [#uses=1]
+ %54 = load i32* %53, align 4 ; [#uses=1]
+ %55 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.Proto* %55, i32 0, i32 12 ; [#uses=1]
+ %57 = load i32* %56, align 4 ; [#uses=1]
+ %58 = icmp eq i32 %54, %57 ; [#uses=1]
+ br i1 %58, label %65, label %59
+
+; <label>:59 ; preds = %51
+ %60 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.Proto* %60, i32 0, i32 13 ; [#uses=1]
+ %62 = load i32* %61, align 4 ; [#uses=1]
+ %63 = icmp eq i32 %62, 0 ; [#uses=1]
+ br i1 %63, label %65, label %64
+
+; <label>:64 ; preds = %59
+ store i32 0, i32* %1
+ br label %85
+
+; <label>:65 ; preds = %59, %51
+ %66 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.Proto* %66, i32 0, i32 12 ; [#uses=1]
+ %68 = load i32* %67, align 4 ; [#uses=1]
+ %69 = icmp sgt i32 %68, 0 ; [#uses=1]
+ br i1 %69, label %70, label %83
+
+; <label>:70 ; preds = %65
+ %71 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.Proto* %71, i32 0, i32 12 ; [#uses=1]
+ %73 = load i32* %72, align 4 ; [#uses=1]
+ %74 = sub nsw i32 %73, 1 ; [#uses=1]
+ %75 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %76 = getelementptr inbounds %struct.Proto* %75, i32 0, i32 4 ; [#uses=1]
+ %77 = load i32** %76, align 4 ; [#uses=1]
+ %78 = getelementptr inbounds i32* %77, i32 %74 ; [#uses=1]
+ %79 = load i32* %78 ; [#uses=1]
+ %80 = lshr i32 %79, 0 ; [#uses=1]
+ %81 = and i32 %80, 63 ; [#uses=1]
+ %82 = icmp eq i32 %81, 30 ; [#uses=1]
+ br i1 %82, label %84, label %83
+
+; <label>:83 ; preds = %70, %65
+ store i32 0, i32* %1
+ br label %85
+
+; <label>:84 ; preds = %70
+ store i32 1, i32* %1
+ br label %85
+
+; <label>:85 ; preds = %84, %83, %64, %50, %40, %25, %8
+ %86 = load i32* %1 ; [#uses=1]
+ ret i32 %86
+}
+
+; [#uses=2]
+define internal i32 @_Z12checkArgModePK5Protoi9OpArgMask(%struct.Proto* %pt, i32 %r, i32 %mode) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=5]
+ %2 = alloca %struct.Proto*, align 4 ; [#uses=4]
+ %3 = alloca i32, align 4 ; [#uses=6]
+ %4 = alloca i32, align 4 ; [#uses=2]
+ store %struct.Proto* %pt, %struct.Proto** %2, align 4
+ store i32 %r, i32* %3, align 4
+ store i32 %mode, i32* %4, align 4
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ switch i32 %5, label %41 [
+ i32 0, label %6
+ i32 1, label %11
+ i32 2, label %12
+ i32 3, label %21
+ ]
+
+; <label>:6 ; preds = %0
+ %7 = load i32* %3, align 4 ; [#uses=1]
+ %8 = icmp eq i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %10, label %9
+
+; <label>:9 ; preds = %6
+ store i32 0, i32* %1
+ br label %42
+
+; <label>:10 ; preds = %6
+ br label %41
+
+; <label>:11 ; preds = %0
+ br label %41
+
+; <label>:12 ; preds = %0
+ %13 = load i32* %3, align 4 ; [#uses=1]
+ %14 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.Proto* %14, i32 0, i32 22 ; [#uses=1]
+ %16 = load i8* %15, align 1 ; [#uses=1]
+ %17 = zext i8 %16 to i32 ; [#uses=1]
+ %18 = icmp slt i32 %13, %17 ; [#uses=1]
+ br i1 %18, label %20, label %19
+
+; <label>:19 ; preds = %12
+ store i32 0, i32* %1
+ br label %42
+
+; <label>:20 ; preds = %12
+ br label %41
+
+; <label>:21 ; preds = %0
+ %22 = load i32* %3, align 4 ; [#uses=1]
+ %23 = and i32 %22, 256 ; [#uses=1]
+ %24 = icmp ne i32 %23, 0 ; [#uses=1]
+ br i1 %24, label %25, label %32
+
+; <label>:25 ; preds = %21
+ %26 = load i32* %3, align 4 ; [#uses=1]
+ %27 = and i32 %26, -257 ; [#uses=1]
+ %28 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.Proto* %28, i32 0, i32 11 ; [#uses=1]
+ %30 = load i32* %29, align 4 ; [#uses=1]
+ %31 = icmp slt i32 %27, %30 ; [#uses=1]
+ br i1 %31, label %40, label %39
+
+; <label>:32 ; preds = %21
+ %33 = load i32* %3, align 4 ; [#uses=1]
+ %34 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.Proto* %34, i32 0, i32 22 ; [#uses=1]
+ %36 = load i8* %35, align 1 ; [#uses=1]
+ %37 = zext i8 %36 to i32 ; [#uses=1]
+ %38 = icmp slt i32 %33, %37 ; [#uses=1]
+ br i1 %38, label %40, label %39
+
+; <label>:39 ; preds = %32, %25
+ store i32 0, i32* %1
+ br label %42
+
+; <label>:40 ; preds = %32, %25
+ br label %41
+
+; <label>:41 ; preds = %40, %20, %11, %10, %0
+ store i32 1, i32* %1
+ br label %42
+
+; <label>:42 ; preds = %41, %39, %19, %9
+ %43 = load i32* %1 ; [#uses=1]
+ ret i32 %43
+}
+
+; [#uses=1]
+define internal void @_Z13info_tailcallP9lua_Debug(%struct.lua_Debug* %ar) {
+ %1 = alloca %struct.lua_Debug*, align 4 ; [#uses=11]
+ store %struct.lua_Debug* %ar, %struct.lua_Debug** %1, align 4
+ %2 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_Debug* %2, i32 0, i32 2 ; [#uses=1]
+ store i8* getelementptr inbounds ([1 x i8]* @.str1344, i32 0, i32 0), i8** %3, align 4
+ %4 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_Debug* %4, i32 0, i32 1 ; [#uses=1]
+ store i8* getelementptr inbounds ([1 x i8]* @.str1344, i32 0, i32 0), i8** %5, align 4
+ %6 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_Debug* %6, i32 0, i32 3 ; [#uses=1]
+ store i8* getelementptr inbounds ([5 x i8]* @.str1848, i32 0, i32 0), i8** %7, align 4
+ %8 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_Debug* %8, i32 0, i32 5 ; [#uses=1]
+ store i32 -1, i32* %9, align 4
+ %10 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_Debug* %10, i32 0, i32 7 ; [#uses=1]
+ store i32 -1, i32* %11, align 4
+ %12 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.lua_Debug* %12, i32 0, i32 8 ; [#uses=1]
+ store i32 -1, i32* %13, align 4
+ %14 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_Debug* %14, i32 0, i32 4 ; [#uses=1]
+ store i8* getelementptr inbounds ([13 x i8]* @.str1915, i32 0, i32 0), i8** %15, align 4
+ %16 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_Debug* %16, i32 0, i32 9 ; [#uses=1]
+ %18 = getelementptr inbounds [60 x i8]* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_Debug* %19, i32 0, i32 4 ; [#uses=1]
+ %21 = load i8** %20, align 4 ; [#uses=1]
+ call void @_Z12luaO_chunkidPcPKcj(i8* %18, i8* %21, i32 60)
+ %22 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_Debug* %22, i32 0, i32 6 ; [#uses=1]
+ store i32 0, i32* %23, align 4
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z8funcinfoP9lua_DebugP7Closure(%struct.lua_Debug* %ar, %union.Closure* %cl) {
+ %1 = alloca %struct.lua_Debug*, align 4 ; [#uses=12]
+ %2 = alloca %union.Closure*, align 4 ; [#uses=5]
+ store %struct.lua_Debug* %ar, %struct.lua_Debug** %1, align 4
+ store %union.Closure* %cl, %union.Closure** %2, align 4
+ %3 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %union.Closure* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.CClosure* %4, i32 0, i32 3 ; [#uses=1]
+ %6 = load i8* %5, align 1 ; [#uses=1]
+ %7 = icmp ne i8 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %17
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_Debug* %9, i32 0, i32 4 ; [#uses=1]
+ store i8* getelementptr inbounds ([5 x i8]* @.str1445, i32 0, i32 0), i8** %10, align 4
+ %11 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_Debug* %11, i32 0, i32 7 ; [#uses=1]
+ store i32 -1, i32* %12, align 4
+ %13 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_Debug* %13, i32 0, i32 8 ; [#uses=1]
+ store i32 -1, i32* %14, align 4
+ %15 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_Debug* %15, i32 0, i32 3 ; [#uses=1]
+ store i8* getelementptr inbounds ([2 x i8]* @.str1514, i32 0, i32 0), i8** %16, align 4
+ br label %57
+
+; <label>:17 ; preds = %0
+ %18 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %union.Closure* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = bitcast %struct.CClosure* %19 to %struct.LClosure* ; [#uses=1]
+ %21 = getelementptr inbounds %struct.LClosure* %20, i32 0, i32 7 ; [#uses=1]
+ %22 = load %struct.Proto** %21, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.Proto* %22, i32 0, i32 9 ; [#uses=1]
+ %24 = load %union.TString** %23, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %union.TString* %24, i32 1 ; [#uses=1]
+ %26 = bitcast %union.TString* %25 to i8* ; [#uses=1]
+ %27 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_Debug* %27, i32 0, i32 4 ; [#uses=1]
+ store i8* %26, i8** %28, align 4
+ %29 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %union.Closure* %29, i32 0, i32 0 ; [#uses=1]
+ %31 = bitcast %struct.CClosure* %30 to %struct.LClosure* ; [#uses=1]
+ %32 = getelementptr inbounds %struct.LClosure* %31, i32 0, i32 7 ; [#uses=1]
+ %33 = load %struct.Proto** %32, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.Proto* %33, i32 0, i32 16 ; [#uses=1]
+ %35 = load i32* %34, align 4 ; [#uses=1]
+ %36 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.lua_Debug* %36, i32 0, i32 7 ; [#uses=1]
+ store i32 %35, i32* %37, align 4
+ %38 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %union.Closure* %38, i32 0, i32 0 ; [#uses=1]
+ %40 = bitcast %struct.CClosure* %39 to %struct.LClosure* ; [#uses=1]
+ %41 = getelementptr inbounds %struct.LClosure* %40, i32 0, i32 7 ; [#uses=1]
+ %42 = load %struct.Proto** %41, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.Proto* %42, i32 0, i32 17 ; [#uses=1]
+ %44 = load i32* %43, align 4 ; [#uses=1]
+ %45 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.lua_Debug* %45, i32 0, i32 8 ; [#uses=1]
+ store i32 %44, i32* %46, align 4
+ %47 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.lua_Debug* %47, i32 0, i32 7 ; [#uses=1]
+ %49 = load i32* %48, align 4 ; [#uses=1]
+ %50 = icmp eq i32 %49, 0 ; [#uses=1]
+ br i1 %50, label %51, label %52
+
+; <label>:51 ; preds = %17
+ br label %53
+
+; <label>:52 ; preds = %17
+ br label %53
+
+; <label>:53 ; preds = %52, %51
+ %54 = phi i8* [ getelementptr inbounds ([5 x i8]* @.str1646, i32 0, i32 0), %51 ], [ getelementptr inbounds ([4 x i8]* @.str1747, i32 0, i32 0), %52 ] ; [#uses=1]
+ %55 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.lua_Debug* %55, i32 0, i32 3 ; [#uses=1]
+ store i8* %54, i8** %56, align 4
+ br label %57
+
+; <label>:57 ; preds = %53, %8
+ %58 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.lua_Debug* %58, i32 0, i32 9 ; [#uses=1]
+ %60 = getelementptr inbounds [60 x i8]* %59, i32 0, i32 0 ; [#uses=1]
+ %61 = load %struct.lua_Debug** %1, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds %struct.lua_Debug* %61, i32 0, i32 4 ; [#uses=1]
+ %63 = load i8** %62, align 4 ; [#uses=1]
+ call void @_Z12luaO_chunkidPcPKcj(i8* %60, i8* %63, i32 60)
+ ret void
+}
+
+; [#uses=1]
+define internal i8* @_Z11getfuncnameP9lua_StateP8CallInfoPPKc(%struct.lua_State* %L, %struct.CallInfo* %ci, i8** %name) {
+ %1 = alloca i8*, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %3 = alloca %struct.CallInfo*, align 4 ; [#uses=11]
+ %4 = alloca i8**, align 4 ; [#uses=2]
+ %i = alloca i32, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.CallInfo* %ci, %struct.CallInfo** %3, align 4
+ store i8** %name, i8*** %4, align 4
+ %5 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.CallInfo* %5, i32 0, i32 1 ; [#uses=1]
+ %7 = load %struct.lua_TValue** %6, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_TValue* %7, i32 0, i32 1 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ %10 = icmp eq i32 %9, 6 ; [#uses=1]
+ br i1 %10, label %11, label %30
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.CallInfo* %12, i32 0, i32 1 ; [#uses=1]
+ %14 = load %struct.lua_TValue** %13, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_TValue* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = getelementptr inbounds %union.anon* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = bitcast double* %16 to %union.GCObject** ; [#uses=1]
+ %18 = load %union.GCObject** %17, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %union.GCObject* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = bitcast %struct.lua_State* %19 to %union.Closure* ; [#uses=1]
+ %21 = getelementptr inbounds %union.Closure* %20, i32 0, i32 0 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.CClosure* %21, i32 0, i32 3 ; [#uses=1]
+ %23 = load i8* %22, align 1 ; [#uses=1]
+ %24 = icmp ne i8 %23, 0 ; [#uses=1]
+ br i1 %24, label %30, label %25
+
+; <label>:25 ; preds = %11
+ %26 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.CallInfo* %26, i32 0, i32 5 ; [#uses=1]
+ %28 = load i32* %27, align 4 ; [#uses=1]
+ %29 = icmp sgt i32 %28, 0 ; [#uses=1]
+ br i1 %29, label %53, label %30
+
+; <label>:30 ; preds = %25, %11, %0
+ %31 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.CallInfo* %31, i32 -1 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.CallInfo* %32, i32 0, i32 1 ; [#uses=1]
+ %34 = load %struct.lua_TValue** %33, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_TValue* %34, i32 0, i32 1 ; [#uses=1]
+ %36 = load i32* %35, align 4 ; [#uses=1]
+ %37 = icmp eq i32 %36, 6 ; [#uses=1]
+ br i1 %37, label %38, label %53
+
+; <label>:38 ; preds = %30
+ %39 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.CallInfo* %39, i32 -1 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.CallInfo* %40, i32 0, i32 1 ; [#uses=1]
+ %42 = load %struct.lua_TValue** %41, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.lua_TValue* %42, i32 0, i32 0 ; [#uses=1]
+ %44 = getelementptr inbounds %union.anon* %43, i32 0, i32 0 ; [#uses=1]
+ %45 = bitcast double* %44 to %union.GCObject** ; [#uses=1]
+ %46 = load %union.GCObject** %45, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %union.GCObject* %46, i32 0, i32 0 ; [#uses=1]
+ %48 = bitcast %struct.lua_State* %47 to %union.Closure* ; [#uses=1]
+ %49 = getelementptr inbounds %union.Closure* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.CClosure* %49, i32 0, i32 3 ; [#uses=1]
+ %51 = load i8* %50, align 1 ; [#uses=1]
+ %52 = icmp ne i8 %51, 0 ; [#uses=1]
+ br i1 %52, label %53, label %54
+
+; <label>:53 ; preds = %38, %30, %25
+ store i8* null, i8** %1
+ br label %100
+
+; <label>:54 ; preds = %38
+ %55 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.CallInfo* %55, i32 -1 ; [#uses=1]
+ store %struct.CallInfo* %56, %struct.CallInfo** %3, align 4
+ %57 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %58 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %59 = call i32 @_Z9currentpcP9lua_StateP8CallInfo(%struct.lua_State* %57, %struct.CallInfo* %58) ; [#uses=1]
+ %60 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.CallInfo* %60, i32 0, i32 1 ; [#uses=1]
+ %62 = load %struct.lua_TValue** %61, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.lua_TValue* %62, i32 0, i32 0 ; [#uses=1]
+ %64 = getelementptr inbounds %union.anon* %63, i32 0, i32 0 ; [#uses=1]
+ %65 = bitcast double* %64 to %union.GCObject** ; [#uses=1]
+ %66 = load %union.GCObject** %65, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %union.GCObject* %66, i32 0, i32 0 ; [#uses=1]
+ %68 = bitcast %struct.lua_State* %67 to %union.Closure* ; [#uses=1]
+ %69 = getelementptr inbounds %union.Closure* %68, i32 0, i32 0 ; [#uses=1]
+ %70 = bitcast %struct.CClosure* %69 to %struct.LClosure* ; [#uses=1]
+ %71 = getelementptr inbounds %struct.LClosure* %70, i32 0, i32 7 ; [#uses=1]
+ %72 = load %struct.Proto** %71, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.Proto* %72, i32 0, i32 4 ; [#uses=1]
+ %74 = load i32** %73, align 4 ; [#uses=1]
+ %75 = getelementptr inbounds i32* %74, i32 %59 ; [#uses=1]
+ %76 = load i32* %75 ; [#uses=1]
+ store i32 %76, i32* %i, align 4
+ %77 = load i32* %i, align 4 ; [#uses=1]
+ %78 = lshr i32 %77, 0 ; [#uses=1]
+ %79 = and i32 %78, 63 ; [#uses=1]
+ %80 = icmp eq i32 %79, 28 ; [#uses=1]
+ br i1 %80, label %91, label %81
+
+; <label>:81 ; preds = %54
+ %82 = load i32* %i, align 4 ; [#uses=1]
+ %83 = lshr i32 %82, 0 ; [#uses=1]
+ %84 = and i32 %83, 63 ; [#uses=1]
+ %85 = icmp eq i32 %84, 29 ; [#uses=1]
+ br i1 %85, label %91, label %86
+
+; <label>:86 ; preds = %81
+ %87 = load i32* %i, align 4 ; [#uses=1]
+ %88 = lshr i32 %87, 0 ; [#uses=1]
+ %89 = and i32 %88, 63 ; [#uses=1]
+ %90 = icmp eq i32 %89, 33 ; [#uses=1]
+ br i1 %90, label %91, label %99
+
+; <label>:91 ; preds = %86, %81, %54
+ %92 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %93 = load %struct.CallInfo** %3, align 4 ; [#uses=1]
+ %94 = load i32* %i, align 4 ; [#uses=1]
+ %95 = lshr i32 %94, 6 ; [#uses=1]
+ %96 = and i32 %95, 255 ; [#uses=1]
+ %97 = load i8*** %4, align 4 ; [#uses=1]
+ %98 = call i8* @_Z10getobjnameP9lua_StateP8CallInfoiPPKc(%struct.lua_State* %92, %struct.CallInfo* %93, i32 %96, i8** %97) ; [#uses=1]
+ store i8* %98, i8** %1
+ br label %100
+
+; <label>:99 ; preds = %86
+ store i8* null, i8** %1
+ br label %100
+
+; <label>:100 ; preds = %99, %91, %53
+ %101 = load i8** %1 ; [#uses=1]
+ ret i8* %101
+}
+
+; [#uses=3]
+define hidden void @_Z16luaD_seterrorobjP9lua_StateiP10lua_TValue(%struct.lua_State* %L, i32 %errcode, %struct.lua_TValue* %oldtop) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %errcode, i32* %2, align 4
+ store %struct.lua_TValue* %oldtop, %struct.lua_TValue** %3, align 4
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ switch i32 %4, label %44 [
+ i32 4, label %5
+ i32 5, label %16
+ i32 3, label %27
+ i32 2, label %27
+ ]
+
+; <label>:5 ; preds = %0
+ %6 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %6, %struct.lua_TValue** %i_o, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %7, i8* getelementptr inbounds ([18 x i8]* @.str2150, i32 0, i32 0), i32 17) ; [#uses=1]
+ %9 = bitcast %union.TString* %8 to %union.GCObject* ; [#uses=1]
+ %10 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_TValue* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = getelementptr inbounds %union.anon* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = bitcast double* %12 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %9, %union.GCObject** %13, align 4
+ %14 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_TValue* %14, i32 0, i32 1 ; [#uses=1]
+ store i32 4, i32* %15, align 4
+ br label %44
+
+; <label>:16 ; preds = %0
+ %17 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %17, %struct.lua_TValue** %i_o1, align 4
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %18, i8* getelementptr inbounds ([24 x i8]* @.str122, i32 0, i32 0), i32 23) ; [#uses=1]
+ %20 = bitcast %union.TString* %19 to %union.GCObject* ; [#uses=1]
+ %21 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_TValue* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = getelementptr inbounds %union.anon* %22, i32 0, i32 0 ; [#uses=1]
+ %24 = bitcast double* %23 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %20, %union.GCObject** %24, align 4
+ %25 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_TValue* %25, i32 0, i32 1 ; [#uses=1]
+ store i32 4, i32* %26, align 4
+ br label %44
+
+; <label>:27 ; preds = %0, %0
+ %28 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_State* %28, i32 0, i32 4 ; [#uses=1]
+ %30 = load %struct.lua_TValue** %29, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_TValue* %30, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %31, %struct.lua_TValue** %o2, align 4
+ %32 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %32, %struct.lua_TValue** %o1, align 4
+ %33 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_TValue* %33, i32 0, i32 0 ; [#uses=1]
+ %35 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.lua_TValue* %35, i32 0, i32 0 ; [#uses=1]
+ %37 = bitcast %union.anon* %34 to i8* ; [#uses=1]
+ %38 = bitcast %union.anon* %36 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %37, i8* %38, i32 8, i32 4, i1 false)
+ %39 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.lua_TValue* %39, i32 0, i32 1 ; [#uses=1]
+ %41 = load i32* %40, align 4 ; [#uses=1]
+ %42 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.lua_TValue* %42, i32 0, i32 1 ; [#uses=1]
+ store i32 %41, i32* %43, align 4
+ br label %44
+
+; <label>:44 ; preds = %27, %16, %5, %0
+ %45 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.lua_TValue* %45, i32 1 ; [#uses=1]
+ %47 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.lua_State* %47, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %46, %struct.lua_TValue** %48, align 4
+ ret void
+}
+
+; [#uses=7]
+define hidden void @_Z10luaD_throwP9lua_Statei(%struct.lua_State* %L, i32 %errcode) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %2 = alloca i32, align 4 ; [#uses=4]
+ %3 = alloca i1 ; [#uses=3]
+ %4 = alloca i8* ; [#uses=1]
+ store i1 false, i1* %3
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %errcode, i32* %2, align 4
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.lua_State* %5, i32 0, i32 26 ; [#uses=1]
+ %7 = load %struct.lua_longjmp** %6, align 4 ; [#uses=1]
+ %8 = icmp ne %struct.lua_longjmp* %7, null ; [#uses=1]
+ br i1 %8, label %9, label %20
+
+; <label>:9 ; preds = %0
+ %10 = load i32* %2, align 4 ; [#uses=1]
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_State* %11, i32 0, i32 26 ; [#uses=1]
+ %13 = load %struct.lua_longjmp** %12, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_longjmp* %13, i32 0, i32 2 ; [#uses=1]
+ volatile store i32 %10, i32* %14, align 4
+ %15 = call i8* @__cxa_allocate_exception(i32 4) nounwind ; [#uses=3]
+ store i8* %15, i8** %4
+ store i1 true, i1* %3
+ %16 = bitcast i8* %15 to %struct.lua_longjmp** ; [#uses=1]
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_State* %17, i32 0, i32 26 ; [#uses=1]
+ %19 = load %struct.lua_longjmp** %18, align 4 ; [#uses=1]
+ store %struct.lua_longjmp* %19, %struct.lua_longjmp** %16
+ store i1 false, i1* %3
+ call void @__cxa_throw(i8* %15, i8* bitcast (%6* @_ZTIP11lua_longjmp to i8*), i8* null) noreturn
+ unreachable
+
+; <label>:20 ; preds = %0
+ %21 = load i32* %2, align 4 ; [#uses=1]
+ %22 = trunc i32 %21 to i8 ; [#uses=1]
+ %23 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_State* %23, i32 0, i32 3 ; [#uses=1]
+ store i8 %22, i8* %24, align 1
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_State* %25, i32 0, i32 6 ; [#uses=1]
+ %27 = load %struct.global_State** %26, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.global_State* %27, i32 0, i32 19 ; [#uses=1]
+ %29 = load i32 (%struct.lua_State*)** %28, align 4 ; [#uses=1]
+ %30 = icmp ne i32 (%struct.lua_State*)* %29, null ; [#uses=1]
+ br i1 %30, label %31, label %41
+
+; <label>:31 ; preds = %20
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z10resetstackP9lua_Statei(%struct.lua_State* %32, i32 %33)
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_State* %34, i32 0, i32 6 ; [#uses=1]
+ %36 = load %struct.global_State** %35, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.global_State* %36, i32 0, i32 19 ; [#uses=1]
+ %38 = load i32 (%struct.lua_State*)** %37, align 4 ; [#uses=1]
+ %39 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %40 = call i32 %38(%struct.lua_State* %39) ; [#uses=0]
+ br label %41
+
+; <label>:41 ; preds = %31, %20
+ call void @exit(i32 1) noreturn
+ unreachable
+ ; No predecessors!
+ ret void
+}
+
+; [#uses=1]
+declare i8* @__cxa_allocate_exception(i32)
+
+; [#uses=1]
+declare void @__cxa_throw(i8*, i8*, i8*)
+
+; [#uses=1]
+define internal void @_Z10resetstackP9lua_Statei(%struct.lua_State* %L, i32 %status) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=15]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %status, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 12 ; [#uses=1]
+ %5 = load %struct.CallInfo** %4, align 4 ; [#uses=1]
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 7 ; [#uses=1]
+ store %struct.CallInfo* %5, %struct.CallInfo** %7, align 4
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_State* %8, i32 0, i32 7 ; [#uses=1]
+ %10 = load %struct.CallInfo** %9, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.CallInfo* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = load %struct.lua_TValue** %11, align 4 ; [#uses=1]
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_State* %13, i32 0, i32 5 ; [#uses=1]
+ store %struct.lua_TValue* %12, %struct.lua_TValue** %14, align 4
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_State* %16, i32 0, i32 5 ; [#uses=1]
+ %18 = load %struct.lua_TValue** %17, align 4 ; [#uses=1]
+ call void @_Z10luaF_closeP9lua_StateP10lua_TValue(%struct.lua_State* %15, %struct.lua_TValue* %18)
+ %19 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %20 = load i32* %2, align 4 ; [#uses=1]
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_State* %21, i32 0, i32 5 ; [#uses=1]
+ %23 = load %struct.lua_TValue** %22, align 4 ; [#uses=1]
+ call void @_Z16luaD_seterrorobjP9lua_StateiP10lua_TValue(%struct.lua_State* %19, i32 %20, %struct.lua_TValue* %23)
+ %24 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.lua_State* %24, i32 0, i32 16 ; [#uses=1]
+ %26 = load i16* %25, align 2 ; [#uses=1]
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_State* %27, i32 0, i32 15 ; [#uses=1]
+ store i16 %26, i16* %28, align 2
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_State* %29, i32 0, i32 18 ; [#uses=1]
+ store i8 1, i8* %30, align 1
+ %31 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z19restore_stack_limitP9lua_State(%struct.lua_State* %31)
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_State* %32, i32 0, i32 27 ; [#uses=1]
+ store i32 0, i32* %33, align 4
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_State* %34, i32 0, i32 26 ; [#uses=1]
+ store %struct.lua_longjmp* null, %struct.lua_longjmp** %35, align 4
+ ret void
+}
+
+; [#uses=2]
+declare void @exit(i32) noreturn nounwind
+
+; [#uses=4]
+define hidden i32 @_Z20luaD_rawrunprotectedP9lua_StatePFvS0_PvES1_(%struct.lua_State* %L, void (%struct.lua_State*, i8*)* %f, i8* %ud) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %2 = alloca void (%struct.lua_State*, i8*)*, align 4 ; [#uses=2]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ %lj = alloca %struct.lua_longjmp, align 4 ; [#uses=7]
+ %4 = alloca i8* ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store void (%struct.lua_State*, i8*)* %f, void (%struct.lua_State*, i8*)** %2, align 4
+ store i8* %ud, i8** %3, align 4
+ %5 = getelementptr inbounds %struct.lua_longjmp* %lj, i32 0, i32 2 ; [#uses=1]
+ volatile store i32 0, i32* %5, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 26 ; [#uses=1]
+ %8 = load %struct.lua_longjmp** %7, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_longjmp* %lj, i32 0, i32 0 ; [#uses=1]
+ store %struct.lua_longjmp* %8, %struct.lua_longjmp** %9, align 4
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_State* %10, i32 0, i32 26 ; [#uses=1]
+ store %struct.lua_longjmp* %lj, %struct.lua_longjmp** %11, align 4
+ %12 = load void (%struct.lua_State*, i8*)** %2, align 4 ; [#uses=1]
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = load i8** %3, align 4 ; [#uses=1]
+ invoke void %12(%struct.lua_State* %13, i8* %14)
+ to label %15 unwind label %24
+
+; <label>:15 ; preds = %0
+ br label %28
+
+; <label>:16 ; preds = %24
+ %17 = load i8** %4 ; [#uses=1]
+ %18 = call i8* @__cxa_begin_catch(i8* %17) nounwind ; [#uses=0]
+ %19 = getelementptr inbounds %struct.lua_longjmp* %lj, i32 0, i32 2 ; [#uses=1]
+ %20 = volatile load i32* %19, align 4 ; [#uses=1]
+ %21 = icmp eq i32 %20, 0 ; [#uses=1]
+ br i1 %21, label %22, label %27
+
+; <label>:22 ; preds = %16
+ %23 = getelementptr inbounds %struct.lua_longjmp* %lj, i32 0, i32 2 ; [#uses=1]
+ volatile store i32 -1, i32* %23, align 4
+ br label %27
+
+; <label>:24 ; preds = %0
+ %25 = call i8* @llvm.eh.exception() nounwind ; [#uses=2]
+ store i8* %25, i8** %4
+ %26 = call i32 (i8*, i8*, ...)* @llvm.eh.selector(i8* %25, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null) nounwind ; [#uses=0]
+ br label %16
+
+; <label>:27 ; preds = %22, %16
+ call void @__cxa_end_catch()
+ br label %28
+
+; <label>:28 ; preds = %27, %15
+ %29 = getelementptr inbounds %struct.lua_longjmp* %lj, i32 0, i32 0 ; [#uses=1]
+ %30 = load %struct.lua_longjmp** %29, align 4 ; [#uses=1]
+ %31 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_State* %31, i32 0, i32 26 ; [#uses=1]
+ store %struct.lua_longjmp* %30, %struct.lua_longjmp** %32, align 4
+ %33 = getelementptr inbounds %struct.lua_longjmp* %lj, i32 0, i32 2 ; [#uses=1]
+ %34 = volatile load i32* %33, align 4 ; [#uses=1]
+ ret i32 %34
+}
+
+; [#uses=1]
+declare i8* @llvm.eh.exception() nounwind readonly
+
+; [#uses=1]
+declare i32 @__gxx_personality_v0(...)
+
+; [#uses=1]
+declare i32 @llvm.eh.selector(i8*, i8*, ...) nounwind
+
+; [#uses=0]
+declare i32 @llvm.eh.typeid.for(i8*) nounwind
+
+; [#uses=1]
+declare i8* @__cxa_begin_catch(i8*)
+
+; [#uses=1]
+declare void @__cxa_end_catch()
+
+; [#uses=3]
+define hidden void @_Z17luaD_reallocstackP9lua_Statei(%struct.lua_State* %L, i32 %newsize) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=11]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %oldstack = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %realsize = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %newsize, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 10 ; [#uses=1]
+ %5 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %oldstack, align 4
+ %6 = load i32* %2, align 4 ; [#uses=1]
+ %7 = add nsw i32 %6, 1 ; [#uses=1]
+ %8 = add nsw i32 %7, 5 ; [#uses=1]
+ store i32 %8, i32* %realsize, align 4
+ %9 = load i32* %realsize, align 4 ; [#uses=1]
+ %10 = add nsw i32 %9, 1 ; [#uses=1]
+ %11 = icmp ule i32 %10, 357913941 ; [#uses=1]
+ br i1 %11, label %12, label %25
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_State* %14, i32 0, i32 10 ; [#uses=1]
+ %16 = load %struct.lua_TValue** %15, align 4 ; [#uses=1]
+ %17 = bitcast %struct.lua_TValue* %16 to i8* ; [#uses=1]
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_State* %18, i32 0, i32 13 ; [#uses=1]
+ %20 = load i32* %19, align 4 ; [#uses=1]
+ %21 = mul i32 %20, 12 ; [#uses=1]
+ %22 = load i32* %realsize, align 4 ; [#uses=1]
+ %23 = mul i32 %22, 12 ; [#uses=1]
+ %24 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %13, i8* %17, i32 %21, i32 %23) ; [#uses=1]
+ br label %28
+
+; <label>:25 ; preds = %0
+ %26 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %27 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %26) ; [#uses=1]
+ br label %28
+
+; <label>:28 ; preds = %25, %12
+ %29 = phi i8* [ %24, %12 ], [ %27, %25 ] ; [#uses=1]
+ %30 = bitcast i8* %29 to %struct.lua_TValue* ; [#uses=1]
+ %31 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_State* %31, i32 0, i32 10 ; [#uses=1]
+ store %struct.lua_TValue* %30, %struct.lua_TValue** %32, align 4
+ %33 = load i32* %realsize, align 4 ; [#uses=1]
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_State* %34, i32 0, i32 13 ; [#uses=1]
+ store i32 %33, i32* %35, align 4
+ %36 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.lua_State* %36, i32 0, i32 10 ; [#uses=1]
+ %38 = load %struct.lua_TValue** %37, align 4 ; [#uses=1]
+ %39 = load i32* %2, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.lua_TValue* %38, i32 %39 ; [#uses=1]
+ %41 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.lua_State* %41, i32 0, i32 9 ; [#uses=1]
+ store %struct.lua_TValue* %40, %struct.lua_TValue** %42, align 4
+ %43 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %44 = load %struct.lua_TValue** %oldstack, align 4 ; [#uses=1]
+ call void @_Z12correctstackP9lua_StateP10lua_TValue(%struct.lua_State* %43, %struct.lua_TValue* %44)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z12correctstackP9lua_StateP10lua_TValue(%struct.lua_State* %L, %struct.lua_TValue* %oldstack) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=14]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=7]
+ %ci = alloca %struct.CallInfo*, align 4 ; [#uses=10]
+ %up = alloca %union.GCObject*, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %oldstack, %struct.lua_TValue** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 4 ; [#uses=1]
+ %5 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %6 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %7 = ptrtoint %struct.lua_TValue* %5 to i32 ; [#uses=1]
+ %8 = ptrtoint %struct.lua_TValue* %6 to i32 ; [#uses=1]
+ %9 = sub i32 %7, %8 ; [#uses=1]
+ %10 = sdiv exact i32 %9, 12 ; [#uses=1]
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_State* %11, i32 0, i32 10 ; [#uses=1]
+ %13 = load %struct.lua_TValue** %12, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_TValue* %13, i32 %10 ; [#uses=1]
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_State* %15, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %14, %struct.lua_TValue** %16, align 4
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_State* %17, i32 0, i32 24 ; [#uses=1]
+ %19 = load %union.GCObject** %18, align 4 ; [#uses=1]
+ store %union.GCObject* %19, %union.GCObject** %up, align 4
+ br label %20
+
+; <label>:20 ; preds = %42, %0
+ %21 = load %union.GCObject** %up, align 4 ; [#uses=1]
+ %22 = icmp ne %union.GCObject* %21, null ; [#uses=1]
+ br i1 %22, label %23, label %48
+
+; <label>:23 ; preds = %20
+ %24 = load %union.GCObject** %up, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %union.GCObject* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = bitcast %struct.lua_State* %25 to %struct.UpVal* ; [#uses=1]
+ %27 = getelementptr inbounds %struct.UpVal* %26, i32 0, i32 3 ; [#uses=1]
+ %28 = load %struct.lua_TValue** %27, align 4 ; [#uses=1]
+ %29 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %30 = ptrtoint %struct.lua_TValue* %28 to i32 ; [#uses=1]
+ %31 = ptrtoint %struct.lua_TValue* %29 to i32 ; [#uses=1]
+ %32 = sub i32 %30, %31 ; [#uses=1]
+ %33 = sdiv exact i32 %32, 12 ; [#uses=1]
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_State* %34, i32 0, i32 10 ; [#uses=1]
+ %36 = load %struct.lua_TValue** %35, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.lua_TValue* %36, i32 %33 ; [#uses=1]
+ %38 = load %union.GCObject** %up, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %union.GCObject* %38, i32 0, i32 0 ; [#uses=1]
+ %40 = bitcast %struct.lua_State* %39 to %struct.UpVal* ; [#uses=1]
+ %41 = getelementptr inbounds %struct.UpVal* %40, i32 0, i32 3 ; [#uses=1]
+ store %struct.lua_TValue* %37, %struct.lua_TValue** %41, align 4
+ br label %42
+
+; <label>:42 ; preds = %23
+ %43 = load %union.GCObject** %up, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %union.GCObject* %43, i32 0, i32 0 ; [#uses=1]
+ %45 = bitcast %struct.lua_State* %44 to %struct.GCheader* ; [#uses=1]
+ %46 = getelementptr inbounds %struct.GCheader* %45, i32 0, i32 0 ; [#uses=1]
+ %47 = load %union.GCObject** %46, align 4 ; [#uses=1]
+ store %union.GCObject* %47, %union.GCObject** %up, align 4
+ br label %20
+
+; <label>:48 ; preds = %20
+ %49 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.lua_State* %49, i32 0, i32 12 ; [#uses=1]
+ %51 = load %struct.CallInfo** %50, align 4 ; [#uses=1]
+ store %struct.CallInfo* %51, %struct.CallInfo** %ci, align 4
+ br label %52
+
+; <label>:52 ; preds = %101, %48
+ %53 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %54 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.lua_State* %54, i32 0, i32 7 ; [#uses=1]
+ %56 = load %struct.CallInfo** %55, align 4 ; [#uses=1]
+ %57 = icmp ule %struct.CallInfo* %53, %56 ; [#uses=1]
+ br i1 %57, label %58, label %104
+
+; <label>:58 ; preds = %52
+ %59 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.CallInfo* %59, i32 0, i32 2 ; [#uses=1]
+ %61 = load %struct.lua_TValue** %60, align 4 ; [#uses=1]
+ %62 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %63 = ptrtoint %struct.lua_TValue* %61 to i32 ; [#uses=1]
+ %64 = ptrtoint %struct.lua_TValue* %62 to i32 ; [#uses=1]
+ %65 = sub i32 %63, %64 ; [#uses=1]
+ %66 = sdiv exact i32 %65, 12 ; [#uses=1]
+ %67 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.lua_State* %67, i32 0, i32 10 ; [#uses=1]
+ %69 = load %struct.lua_TValue** %68, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.lua_TValue* %69, i32 %66 ; [#uses=1]
+ %71 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.CallInfo* %71, i32 0, i32 2 ; [#uses=1]
+ store %struct.lua_TValue* %70, %struct.lua_TValue** %72, align 4
+ %73 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.CallInfo* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = load %struct.lua_TValue** %74, align 4 ; [#uses=1]
+ %76 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %77 = ptrtoint %struct.lua_TValue* %75 to i32 ; [#uses=1]
+ %78 = ptrtoint %struct.lua_TValue* %76 to i32 ; [#uses=1]
+ %79 = sub i32 %77, %78 ; [#uses=1]
+ %80 = sdiv exact i32 %79, 12 ; [#uses=1]
+ %81 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %82 = getelementptr inbounds %struct.lua_State* %81, i32 0, i32 10 ; [#uses=1]
+ %83 = load %struct.lua_TValue** %82, align 4 ; [#uses=1]
+ %84 = getelementptr inbounds %struct.lua_TValue* %83, i32 %80 ; [#uses=1]
+ %85 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %86 = getelementptr inbounds %struct.CallInfo* %85, i32 0, i32 0 ; [#uses=1]
+ store %struct.lua_TValue* %84, %struct.lua_TValue** %86, align 4
+ %87 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %88 = getelementptr inbounds %struct.CallInfo* %87, i32 0, i32 1 ; [#uses=1]
+ %89 = load %struct.lua_TValue** %88, align 4 ; [#uses=1]
+ %90 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %91 = ptrtoint %struct.lua_TValue* %89 to i32 ; [#uses=1]
+ %92 = ptrtoint %struct.lua_TValue* %90 to i32 ; [#uses=1]
+ %93 = sub i32 %91, %92 ; [#uses=1]
+ %94 = sdiv exact i32 %93, 12 ; [#uses=1]
+ %95 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %96 = getelementptr inbounds %struct.lua_State* %95, i32 0, i32 10 ; [#uses=1]
+ %97 = load %struct.lua_TValue** %96, align 4 ; [#uses=1]
+ %98 = getelementptr inbounds %struct.lua_TValue* %97, i32 %94 ; [#uses=1]
+ %99 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %100 = getelementptr inbounds %struct.CallInfo* %99, i32 0, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %98, %struct.lua_TValue** %100, align 4
+ br label %101
+
+; <label>:101 ; preds = %58
+ %102 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %103 = getelementptr inbounds %struct.CallInfo* %102, i32 1 ; [#uses=1]
+ store %struct.CallInfo* %103, %struct.CallInfo** %ci, align 4
+ br label %52
+
+; <label>:104 ; preds = %52
+ %105 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %106 = getelementptr inbounds %struct.lua_State* %105, i32 0, i32 5 ; [#uses=1]
+ %107 = load %struct.lua_TValue** %106, align 4 ; [#uses=1]
+ %108 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %109 = ptrtoint %struct.lua_TValue* %107 to i32 ; [#uses=1]
+ %110 = ptrtoint %struct.lua_TValue* %108 to i32 ; [#uses=1]
+ %111 = sub i32 %109, %110 ; [#uses=1]
+ %112 = sdiv exact i32 %111, 12 ; [#uses=1]
+ %113 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %114 = getelementptr inbounds %struct.lua_State* %113, i32 0, i32 10 ; [#uses=1]
+ %115 = load %struct.lua_TValue** %114, align 4 ; [#uses=1]
+ %116 = getelementptr inbounds %struct.lua_TValue* %115, i32 %112 ; [#uses=1]
+ %117 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %118 = getelementptr inbounds %struct.lua_State* %117, i32 0, i32 5 ; [#uses=1]
+ store %struct.lua_TValue* %116, %struct.lua_TValue** %118, align 4
+ ret void
+}
+
+; [#uses=3]
+define hidden void @_Z14luaD_reallocCIP9lua_Statei(%struct.lua_State* %L, i32 %newsize) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=14]
+ %2 = alloca i32, align 4 ; [#uses=4]
+ %oldci = alloca %struct.CallInfo*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %newsize, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 12 ; [#uses=1]
+ %5 = load %struct.CallInfo** %4, align 4 ; [#uses=1]
+ store %struct.CallInfo* %5, %struct.CallInfo** %oldci, align 4
+ %6 = load i32* %2, align 4 ; [#uses=1]
+ %7 = add nsw i32 %6, 1 ; [#uses=1]
+ %8 = icmp ule i32 %7, 178956970 ; [#uses=1]
+ br i1 %8, label %9, label %22
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_State* %11, i32 0, i32 12 ; [#uses=1]
+ %13 = load %struct.CallInfo** %12, align 4 ; [#uses=1]
+ %14 = bitcast %struct.CallInfo* %13 to i8* ; [#uses=1]
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_State* %15, i32 0, i32 14 ; [#uses=1]
+ %17 = load i32* %16, align 4 ; [#uses=1]
+ %18 = mul i32 %17, 24 ; [#uses=1]
+ %19 = load i32* %2, align 4 ; [#uses=1]
+ %20 = mul i32 %19, 24 ; [#uses=1]
+ %21 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %10, i8* %14, i32 %18, i32 %20) ; [#uses=1]
+ br label %25
+
+; <label>:22 ; preds = %0
+ %23 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %24 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %23) ; [#uses=1]
+ br label %25
+
+; <label>:25 ; preds = %22, %9
+ %26 = phi i8* [ %21, %9 ], [ %24, %22 ] ; [#uses=1]
+ %27 = bitcast i8* %26 to %struct.CallInfo* ; [#uses=1]
+ %28 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_State* %28, i32 0, i32 12 ; [#uses=1]
+ store %struct.CallInfo* %27, %struct.CallInfo** %29, align 4
+ %30 = load i32* %2, align 4 ; [#uses=1]
+ %31 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_State* %31, i32 0, i32 14 ; [#uses=1]
+ store i32 %30, i32* %32, align 4
+ %33 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_State* %33, i32 0, i32 7 ; [#uses=1]
+ %35 = load %struct.CallInfo** %34, align 4 ; [#uses=1]
+ %36 = load %struct.CallInfo** %oldci, align 4 ; [#uses=1]
+ %37 = ptrtoint %struct.CallInfo* %35 to i32 ; [#uses=1]
+ %38 = ptrtoint %struct.CallInfo* %36 to i32 ; [#uses=1]
+ %39 = sub i32 %37, %38 ; [#uses=1]
+ %40 = sdiv exact i32 %39, 24 ; [#uses=1]
+ %41 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.lua_State* %41, i32 0, i32 12 ; [#uses=1]
+ %43 = load %struct.CallInfo** %42, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.CallInfo* %43, i32 %40 ; [#uses=1]
+ %45 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.lua_State* %45, i32 0, i32 7 ; [#uses=1]
+ store %struct.CallInfo* %44, %struct.CallInfo** %46, align 4
+ %47 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.lua_State* %47, i32 0, i32 12 ; [#uses=1]
+ %49 = load %struct.CallInfo** %48, align 4 ; [#uses=1]
+ %50 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.lua_State* %50, i32 0, i32 14 ; [#uses=1]
+ %52 = load i32* %51, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.CallInfo* %49, i32 %52 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.CallInfo* %53, i32 -1 ; [#uses=1]
+ %55 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.lua_State* %55, i32 0, i32 11 ; [#uses=1]
+ store %struct.CallInfo* %54, %struct.CallInfo** %56, align 4
+ ret void
+}
+
+; [#uses=20]
+define hidden void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %L, i32 %n) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %n, i32* %2, align 4
+ %3 = load i32* %2, align 4 ; [#uses=1]
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 13 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = icmp sle i32 %3, %6 ; [#uses=1]
+ br i1 %7, label %8, label %14
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_State* %10, i32 0, i32 13 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ %13 = mul nsw i32 2, %12 ; [#uses=1]
+ call void @_Z17luaD_reallocstackP9lua_Statei(%struct.lua_State* %9, i32 %13)
+ br label %21
+
+; <label>:14 ; preds = %0
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_State* %16, i32 0, i32 13 ; [#uses=1]
+ %18 = load i32* %17, align 4 ; [#uses=1]
+ %19 = load i32* %2, align 4 ; [#uses=1]
+ %20 = add nsw i32 %18, %19 ; [#uses=1]
+ call void @_Z17luaD_reallocstackP9lua_Statei(%struct.lua_State* %15, i32 %20)
+ br label %21
+
+; <label>:21 ; preds = %14, %8
+ ret void
+}
+
+; [#uses=6]
+define hidden void @_Z13luaD_callhookP9lua_Stateii(%struct.lua_State* %L, i32 %event, i32 %line) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=21]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %hook = alloca void (%struct.lua_State*, %struct.lua_Debug*)*, align 4 ; [#uses=3]
+ %top = alloca i32, align 4 ; [#uses=2]
+ %ci_top = alloca i32, align 4 ; [#uses=2]
+ %ar = alloca %struct.lua_Debug, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %event, i32* %2, align 4
+ store i32 %line, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 21 ; [#uses=1]
+ %6 = load void (%struct.lua_State*, %struct.lua_Debug*)** %5, align 4 ; [#uses=1]
+ store void (%struct.lua_State*, %struct.lua_Debug*)* %6, void (%struct.lua_State*, %struct.lua_Debug*)** %hook, align 4
+ %7 = load void (%struct.lua_State*, %struct.lua_Debug*)** %hook, align 4 ; [#uses=1]
+ %8 = icmp ne void (%struct.lua_State*, %struct.lua_Debug*)* %7, null ; [#uses=1]
+ br i1 %8, label %9, label %110
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_State* %10, i32 0, i32 18 ; [#uses=1]
+ %12 = load i8* %11, align 1 ; [#uses=1]
+ %13 = icmp ne i8 %12, 0 ; [#uses=1]
+ br i1 %13, label %14, label %110
+
+; <label>:14 ; preds = %9
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_State* %15, i32 0, i32 4 ; [#uses=1]
+ %17 = load %struct.lua_TValue** %16, align 4 ; [#uses=1]
+ %18 = bitcast %struct.lua_TValue* %17 to i8* ; [#uses=1]
+ %19 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_State* %19, i32 0, i32 10 ; [#uses=1]
+ %21 = load %struct.lua_TValue** %20, align 4 ; [#uses=1]
+ %22 = bitcast %struct.lua_TValue* %21 to i8* ; [#uses=1]
+ %23 = ptrtoint i8* %18 to i32 ; [#uses=1]
+ %24 = ptrtoint i8* %22 to i32 ; [#uses=1]
+ %25 = sub i32 %23, %24 ; [#uses=1]
+ store i32 %25, i32* %top, align 4
+ %26 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_State* %26, i32 0, i32 7 ; [#uses=1]
+ %28 = load %struct.CallInfo** %27, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.CallInfo* %28, i32 0, i32 2 ; [#uses=1]
+ %30 = load %struct.lua_TValue** %29, align 4 ; [#uses=1]
+ %31 = bitcast %struct.lua_TValue* %30 to i8* ; [#uses=1]
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_State* %32, i32 0, i32 10 ; [#uses=1]
+ %34 = load %struct.lua_TValue** %33, align 4 ; [#uses=1]
+ %35 = bitcast %struct.lua_TValue* %34 to i8* ; [#uses=1]
+ %36 = ptrtoint i8* %31 to i32 ; [#uses=1]
+ %37 = ptrtoint i8* %35 to i32 ; [#uses=1]
+ %38 = sub i32 %36, %37 ; [#uses=1]
+ store i32 %38, i32* %ci_top, align 4
+ %39 = load i32* %2, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 0 ; [#uses=1]
+ store i32 %39, i32* %40, align 4
+ %41 = load i32* %3, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 5 ; [#uses=1]
+ store i32 %41, i32* %42, align 4
+ %43 = load i32* %2, align 4 ; [#uses=1]
+ %44 = icmp eq i32 %43, 4 ; [#uses=1]
+ br i1 %44, label %45, label %47
+
+; <label>:45 ; preds = %14
+ %46 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 10 ; [#uses=1]
+ store i32 0, i32* %46, align 4
+ br label %59
+
+; <label>:47 ; preds = %14
+ %48 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.lua_State* %48, i32 0, i32 7 ; [#uses=1]
+ %50 = load %struct.CallInfo** %49, align 4 ; [#uses=1]
+ %51 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.lua_State* %51, i32 0, i32 12 ; [#uses=1]
+ %53 = load %struct.CallInfo** %52, align 4 ; [#uses=1]
+ %54 = ptrtoint %struct.CallInfo* %50 to i32 ; [#uses=1]
+ %55 = ptrtoint %struct.CallInfo* %53 to i32 ; [#uses=1]
+ %56 = sub i32 %54, %55 ; [#uses=1]
+ %57 = sdiv exact i32 %56, 24 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 10 ; [#uses=1]
+ store i32 %57, i32* %58, align 4
+ br label %59
+
+; <label>:59 ; preds = %47, %45
+ %60 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.lua_State* %60, i32 0, i32 9 ; [#uses=1]
+ %62 = load %struct.lua_TValue** %61, align 4 ; [#uses=1]
+ %63 = bitcast %struct.lua_TValue* %62 to i8* ; [#uses=1]
+ %64 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %struct.lua_State* %64, i32 0, i32 4 ; [#uses=1]
+ %66 = load %struct.lua_TValue** %65, align 4 ; [#uses=1]
+ %67 = bitcast %struct.lua_TValue* %66 to i8* ; [#uses=1]
+ %68 = ptrtoint i8* %63 to i32 ; [#uses=1]
+ %69 = ptrtoint i8* %67 to i32 ; [#uses=1]
+ %70 = sub i32 %68, %69 ; [#uses=1]
+ %71 = icmp sle i32 %70, 240 ; [#uses=1]
+ br i1 %71, label %72, label %74
+
+; <label>:72 ; preds = %59
+ %73 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %73, i32 20)
+ br label %75
+
+; <label>:74 ; preds = %59
+ br label %75
+
+; <label>:75 ; preds = %74, %72
+ %76 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %77 = getelementptr inbounds %struct.lua_State* %76, i32 0, i32 4 ; [#uses=1]
+ %78 = load %struct.lua_TValue** %77, align 4 ; [#uses=1]
+ %79 = getelementptr inbounds %struct.lua_TValue* %78, i32 20 ; [#uses=1]
+ %80 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.lua_State* %80, i32 0, i32 7 ; [#uses=1]
+ %82 = load %struct.CallInfo** %81, align 4 ; [#uses=1]
+ %83 = getelementptr inbounds %struct.CallInfo* %82, i32 0, i32 2 ; [#uses=1]
+ store %struct.lua_TValue* %79, %struct.lua_TValue** %83, align 4
+ %84 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %struct.lua_State* %84, i32 0, i32 18 ; [#uses=1]
+ store i8 0, i8* %85, align 1
+ %86 = load void (%struct.lua_State*, %struct.lua_Debug*)** %hook, align 4 ; [#uses=1]
+ %87 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void %86(%struct.lua_State* %87, %struct.lua_Debug* %ar)
+ %88 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %89 = getelementptr inbounds %struct.lua_State* %88, i32 0, i32 18 ; [#uses=1]
+ store i8 1, i8* %89, align 1
+ %90 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %91 = getelementptr inbounds %struct.lua_State* %90, i32 0, i32 10 ; [#uses=1]
+ %92 = load %struct.lua_TValue** %91, align 4 ; [#uses=1]
+ %93 = bitcast %struct.lua_TValue* %92 to i8* ; [#uses=1]
+ %94 = load i32* %ci_top, align 4 ; [#uses=1]
+ %95 = getelementptr inbounds i8* %93, i32 %94 ; [#uses=1]
+ %96 = bitcast i8* %95 to %struct.lua_TValue* ; [#uses=1]
+ %97 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %98 = getelementptr inbounds %struct.lua_State* %97, i32 0, i32 7 ; [#uses=1]
+ %99 = load %struct.CallInfo** %98, align 4 ; [#uses=1]
+ %100 = getelementptr inbounds %struct.CallInfo* %99, i32 0, i32 2 ; [#uses=1]
+ store %struct.lua_TValue* %96, %struct.lua_TValue** %100, align 4
+ %101 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %102 = getelementptr inbounds %struct.lua_State* %101, i32 0, i32 10 ; [#uses=1]
+ %103 = load %struct.lua_TValue** %102, align 4 ; [#uses=1]
+ %104 = bitcast %struct.lua_TValue* %103 to i8* ; [#uses=1]
+ %105 = load i32* %top, align 4 ; [#uses=1]
+ %106 = getelementptr inbounds i8* %104, i32 %105 ; [#uses=1]
+ %107 = bitcast i8* %106 to %struct.lua_TValue* ; [#uses=1]
+ %108 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %109 = getelementptr inbounds %struct.lua_State* %108, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %107, %struct.lua_TValue** %109, align 4
+ br label %110
+
+; <label>:110 ; preds = %75, %9, %0
+ ret void
+}
+
+; [#uses=4]
+define hidden i32 @_Z12luaD_precallP9lua_StateP10lua_TValuei(%struct.lua_State* %L, %struct.lua_TValue* %func, i32 %nresults) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=43]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=11]
+ %4 = alloca i32, align 4 ; [#uses=3]
+ %cl = alloca %struct.LClosure*, align 4 ; [#uses=3]
+ %funcr = alloca i32, align 4 ; [#uses=4]
+ %ci = alloca %struct.CallInfo*, align 4 ; [#uses=8]
+ %st = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %base = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %p = alloca %struct.Proto*, align 4 ; [#uses=9]
+ %nargs = alloca i32, align 4 ; [#uses=2]
+ %ci1 = alloca %struct.CallInfo*, align 4 ; [#uses=6]
+ %n = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.lua_TValue* %func, %struct.lua_TValue** %3, align 4
+ store i32 %nresults, i32* %4, align 4
+ %5 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.lua_TValue* %5, i32 0, i32 1 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ %8 = icmp eq i32 %7, 6 ; [#uses=1]
+ br i1 %8, label %13, label %9
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %11 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %12 = call %struct.lua_TValue* @_Z9tryfuncTMP9lua_StateP10lua_TValue(%struct.lua_State* %10, %struct.lua_TValue* %11) ; [#uses=1]
+ store %struct.lua_TValue* %12, %struct.lua_TValue** %3, align 4
+ br label %13
+
+; <label>:13 ; preds = %9, %0
+ %14 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %15 = bitcast %struct.lua_TValue* %14 to i8* ; [#uses=1]
+ %16 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_State* %16, i32 0, i32 10 ; [#uses=1]
+ %18 = load %struct.lua_TValue** %17, align 4 ; [#uses=1]
+ %19 = bitcast %struct.lua_TValue* %18 to i8* ; [#uses=1]
+ %20 = ptrtoint i8* %15 to i32 ; [#uses=1]
+ %21 = ptrtoint i8* %19 to i32 ; [#uses=1]
+ %22 = sub i32 %20, %21 ; [#uses=1]
+ store i32 %22, i32* %funcr, align 4
+ %23 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_TValue* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = getelementptr inbounds %union.anon* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = bitcast double* %25 to %union.GCObject** ; [#uses=1]
+ %27 = load %union.GCObject** %26, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %union.GCObject* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = bitcast %struct.lua_State* %28 to %union.Closure* ; [#uses=1]
+ %30 = getelementptr inbounds %union.Closure* %29, i32 0, i32 0 ; [#uses=1]
+ %31 = bitcast %struct.CClosure* %30 to %struct.LClosure* ; [#uses=1]
+ store %struct.LClosure* %31, %struct.LClosure** %cl, align 4
+ %32 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_State* %32, i32 0, i32 8 ; [#uses=1]
+ %34 = load i32** %33, align 4 ; [#uses=1]
+ %35 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.lua_State* %35, i32 0, i32 7 ; [#uses=1]
+ %37 = load %struct.CallInfo** %36, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.CallInfo* %37, i32 0, i32 3 ; [#uses=1]
+ store i32* %34, i32** %38, align 4
+ %39 = load %struct.LClosure** %cl, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.LClosure* %39, i32 0, i32 3 ; [#uses=1]
+ %41 = load i8* %40, align 1 ; [#uses=1]
+ %42 = icmp ne i8 %41, 0 ; [#uses=1]
+ br i1 %42, label %211, label %43
+
+; <label>:43 ; preds = %13
+ %44 = load %struct.LClosure** %cl, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.LClosure* %44, i32 0, i32 7 ; [#uses=1]
+ %46 = load %struct.Proto** %45, align 4 ; [#uses=1]
+ store %struct.Proto* %46, %struct.Proto** %p, align 4
+ %47 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.lua_State* %47, i32 0, i32 9 ; [#uses=1]
+ %49 = load %struct.lua_TValue** %48, align 4 ; [#uses=1]
+ %50 = bitcast %struct.lua_TValue* %49 to i8* ; [#uses=1]
+ %51 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.lua_State* %51, i32 0, i32 4 ; [#uses=1]
+ %53 = load %struct.lua_TValue** %52, align 4 ; [#uses=1]
+ %54 = bitcast %struct.lua_TValue* %53 to i8* ; [#uses=1]
+ %55 = ptrtoint i8* %50 to i32 ; [#uses=1]
+ %56 = ptrtoint i8* %54 to i32 ; [#uses=1]
+ %57 = sub i32 %55, %56 ; [#uses=1]
+ %58 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.Proto* %58, i32 0, i32 22 ; [#uses=1]
+ %60 = load i8* %59, align 1 ; [#uses=1]
+ %61 = zext i8 %60 to i32 ; [#uses=1]
+ %62 = mul nsw i32 %61, 12 ; [#uses=1]
+ %63 = icmp sle i32 %57, %62 ; [#uses=1]
+ br i1 %63, label %64, label %70
+
+; <label>:64 ; preds = %43
+ %65 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %66 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.Proto* %66, i32 0, i32 22 ; [#uses=1]
+ %68 = load i8* %67, align 1 ; [#uses=1]
+ %69 = zext i8 %68 to i32 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %65, i32 %69)
+ br label %71
+
+; <label>:70 ; preds = %43
+ br label %71
+
+; <label>:71 ; preds = %70, %64
+ %72 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.lua_State* %72, i32 0, i32 10 ; [#uses=1]
+ %74 = load %struct.lua_TValue** %73, align 4 ; [#uses=1]
+ %75 = bitcast %struct.lua_TValue* %74 to i8* ; [#uses=1]
+ %76 = load i32* %funcr, align 4 ; [#uses=1]
+ %77 = getelementptr inbounds i8* %75, i32 %76 ; [#uses=1]
+ %78 = bitcast i8* %77 to %struct.lua_TValue* ; [#uses=1]
+ store %struct.lua_TValue* %78, %struct.lua_TValue** %3, align 4
+ %79 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %80 = getelementptr inbounds %struct.Proto* %79, i32 0, i32 21 ; [#uses=1]
+ %81 = load i8* %80, align 1 ; [#uses=1]
+ %82 = icmp ne i8 %81, 0 ; [#uses=1]
+ br i1 %82, label %106, label %83
+
+; <label>:83 ; preds = %71
+ %84 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %struct.lua_TValue* %84, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %85, %struct.lua_TValue** %base, align 4
+ %86 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %87 = getelementptr inbounds %struct.lua_State* %86, i32 0, i32 4 ; [#uses=1]
+ %88 = load %struct.lua_TValue** %87, align 4 ; [#uses=1]
+ %89 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %90 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %91 = getelementptr inbounds %struct.Proto* %90, i32 0, i32 20 ; [#uses=1]
+ %92 = load i8* %91, align 1 ; [#uses=1]
+ %93 = zext i8 %92 to i32 ; [#uses=1]
+ %94 = getelementptr inbounds %struct.lua_TValue* %89, i32 %93 ; [#uses=1]
+ %95 = icmp ugt %struct.lua_TValue* %88, %94 ; [#uses=1]
+ br i1 %95, label %96, label %105
+
+; <label>:96 ; preds = %83
+ %97 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %98 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %99 = getelementptr inbounds %struct.Proto* %98, i32 0, i32 20 ; [#uses=1]
+ %100 = load i8* %99, align 1 ; [#uses=1]
+ %101 = zext i8 %100 to i32 ; [#uses=1]
+ %102 = getelementptr inbounds %struct.lua_TValue* %97, i32 %101 ; [#uses=1]
+ %103 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %104 = getelementptr inbounds %struct.lua_State* %103, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %102, %struct.lua_TValue** %104, align 4
+ br label %105
+
+; <label>:105 ; preds = %96, %83
+ br label %127
+
+; <label>:106 ; preds = %71
+ %107 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %108 = getelementptr inbounds %struct.lua_State* %107, i32 0, i32 4 ; [#uses=1]
+ %109 = load %struct.lua_TValue** %108, align 4 ; [#uses=1]
+ %110 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %111 = ptrtoint %struct.lua_TValue* %109 to i32 ; [#uses=1]
+ %112 = ptrtoint %struct.lua_TValue* %110 to i32 ; [#uses=1]
+ %113 = sub i32 %111, %112 ; [#uses=1]
+ %114 = sdiv exact i32 %113, 12 ; [#uses=1]
+ %115 = sub nsw i32 %114, 1 ; [#uses=1]
+ store i32 %115, i32* %nargs, align 4
+ %116 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %117 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %118 = load i32* %nargs, align 4 ; [#uses=1]
+ %119 = call %struct.lua_TValue* @_Z14adjust_varargsP9lua_StateP5Protoi(%struct.lua_State* %116, %struct.Proto* %117, i32 %118) ; [#uses=1]
+ store %struct.lua_TValue* %119, %struct.lua_TValue** %base, align 4
+ %120 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %121 = getelementptr inbounds %struct.lua_State* %120, i32 0, i32 10 ; [#uses=1]
+ %122 = load %struct.lua_TValue** %121, align 4 ; [#uses=1]
+ %123 = bitcast %struct.lua_TValue* %122 to i8* ; [#uses=1]
+ %124 = load i32* %funcr, align 4 ; [#uses=1]
+ %125 = getelementptr inbounds i8* %123, i32 %124 ; [#uses=1]
+ %126 = bitcast i8* %125 to %struct.lua_TValue* ; [#uses=1]
+ store %struct.lua_TValue* %126, %struct.lua_TValue** %3, align 4
+ br label %127
+
+; <label>:127 ; preds = %106, %105
+ %128 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %129 = getelementptr inbounds %struct.lua_State* %128, i32 0, i32 7 ; [#uses=1]
+ %130 = load %struct.CallInfo** %129, align 4 ; [#uses=1]
+ %131 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %132 = getelementptr inbounds %struct.lua_State* %131, i32 0, i32 11 ; [#uses=1]
+ %133 = load %struct.CallInfo** %132, align 4 ; [#uses=1]
+ %134 = icmp eq %struct.CallInfo* %130, %133 ; [#uses=1]
+ br i1 %134, label %135, label %138
+
+; <label>:135 ; preds = %127
+ %136 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %137 = call %struct.CallInfo* @_Z6growCIP9lua_State(%struct.lua_State* %136) ; [#uses=1]
+ br label %143
+
+; <label>:138 ; preds = %127
+ %139 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %140 = getelementptr inbounds %struct.lua_State* %139, i32 0, i32 7 ; [#uses=2]
+ %141 = load %struct.CallInfo** %140, align 4 ; [#uses=1]
+ %142 = getelementptr inbounds %struct.CallInfo* %141, i32 1 ; [#uses=2]
+ store %struct.CallInfo* %142, %struct.CallInfo** %140, align 4
+ br label %143
+
+; <label>:143 ; preds = %138, %135
+ %144 = phi %struct.CallInfo* [ %137, %135 ], [ %142, %138 ] ; [#uses=1]
+ store %struct.CallInfo* %144, %struct.CallInfo** %ci, align 4
+ %145 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %146 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %147 = getelementptr inbounds %struct.CallInfo* %146, i32 0, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %145, %struct.lua_TValue** %147, align 4
+ %148 = load %struct.lua_TValue** %base, align 4 ; [#uses=2]
+ %149 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %150 = getelementptr inbounds %struct.CallInfo* %149, i32 0, i32 0 ; [#uses=1]
+ store %struct.lua_TValue* %148, %struct.lua_TValue** %150, align 4
+ %151 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %152 = getelementptr inbounds %struct.lua_State* %151, i32 0, i32 5 ; [#uses=1]
+ store %struct.lua_TValue* %148, %struct.lua_TValue** %152, align 4
+ %153 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %154 = getelementptr inbounds %struct.lua_State* %153, i32 0, i32 5 ; [#uses=1]
+ %155 = load %struct.lua_TValue** %154, align 4 ; [#uses=1]
+ %156 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %157 = getelementptr inbounds %struct.Proto* %156, i32 0, i32 22 ; [#uses=1]
+ %158 = load i8* %157, align 1 ; [#uses=1]
+ %159 = zext i8 %158 to i32 ; [#uses=1]
+ %160 = getelementptr inbounds %struct.lua_TValue* %155, i32 %159 ; [#uses=1]
+ %161 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %162 = getelementptr inbounds %struct.CallInfo* %161, i32 0, i32 2 ; [#uses=1]
+ store %struct.lua_TValue* %160, %struct.lua_TValue** %162, align 4
+ %163 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %164 = getelementptr inbounds %struct.Proto* %163, i32 0, i32 4 ; [#uses=1]
+ %165 = load i32** %164, align 4 ; [#uses=1]
+ %166 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %167 = getelementptr inbounds %struct.lua_State* %166, i32 0, i32 8 ; [#uses=1]
+ store i32* %165, i32** %167, align 4
+ %168 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %169 = getelementptr inbounds %struct.CallInfo* %168, i32 0, i32 5 ; [#uses=1]
+ store i32 0, i32* %169, align 4
+ %170 = load i32* %4, align 4 ; [#uses=1]
+ %171 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %172 = getelementptr inbounds %struct.CallInfo* %171, i32 0, i32 4 ; [#uses=1]
+ store i32 %170, i32* %172, align 4
+ %173 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %174 = getelementptr inbounds %struct.lua_State* %173, i32 0, i32 4 ; [#uses=1]
+ %175 = load %struct.lua_TValue** %174, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %175, %struct.lua_TValue** %st, align 4
+ br label %176
+
+; <label>:176 ; preds = %185, %143
+ %177 = load %struct.lua_TValue** %st, align 4 ; [#uses=1]
+ %178 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %179 = getelementptr inbounds %struct.CallInfo* %178, i32 0, i32 2 ; [#uses=1]
+ %180 = load %struct.lua_TValue** %179, align 4 ; [#uses=1]
+ %181 = icmp ult %struct.lua_TValue* %177, %180 ; [#uses=1]
+ br i1 %181, label %182, label %188
+
+; <label>:182 ; preds = %176
+ %183 = load %struct.lua_TValue** %st, align 4 ; [#uses=1]
+ %184 = getelementptr inbounds %struct.lua_TValue* %183, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %184, align 4
+ br label %185
+
+; <label>:185 ; preds = %182
+ %186 = load %struct.lua_TValue** %st, align 4 ; [#uses=1]
+ %187 = getelementptr inbounds %struct.lua_TValue* %186, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %187, %struct.lua_TValue** %st, align 4
+ br label %176
+
+; <label>:188 ; preds = %176
+ %189 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %190 = getelementptr inbounds %struct.CallInfo* %189, i32 0, i32 2 ; [#uses=1]
+ %191 = load %struct.lua_TValue** %190, align 4 ; [#uses=1]
+ %192 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %193 = getelementptr inbounds %struct.lua_State* %192, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %191, %struct.lua_TValue** %193, align 4
+ %194 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %195 = getelementptr inbounds %struct.lua_State* %194, i32 0, i32 17 ; [#uses=1]
+ %196 = load i8* %195, align 1 ; [#uses=1]
+ %197 = zext i8 %196 to i32 ; [#uses=1]
+ %198 = and i32 %197, 1 ; [#uses=1]
+ %199 = icmp ne i32 %198, 0 ; [#uses=1]
+ br i1 %199, label %200, label %210
+
+; <label>:200 ; preds = %188
+ %201 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %202 = getelementptr inbounds %struct.lua_State* %201, i32 0, i32 8 ; [#uses=2]
+ %203 = load i32** %202, align 4 ; [#uses=1]
+ %204 = getelementptr inbounds i32* %203, i32 1 ; [#uses=1]
+ store i32* %204, i32** %202, align 4
+ %205 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13luaD_callhookP9lua_Stateii(%struct.lua_State* %205, i32 0, i32 -1)
+ %206 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %207 = getelementptr inbounds %struct.lua_State* %206, i32 0, i32 8 ; [#uses=2]
+ %208 = load i32** %207, align 4 ; [#uses=1]
+ %209 = getelementptr inbounds i32* %208, i32 -1 ; [#uses=1]
+ store i32* %209, i32** %207, align 4
+ br label %210
+
+; <label>:210 ; preds = %200, %188
+ store i32 0, i32* %1
+ br label %308
+
+; <label>:211 ; preds = %13
+ %212 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %213 = getelementptr inbounds %struct.lua_State* %212, i32 0, i32 9 ; [#uses=1]
+ %214 = load %struct.lua_TValue** %213, align 4 ; [#uses=1]
+ %215 = bitcast %struct.lua_TValue* %214 to i8* ; [#uses=1]
+ %216 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %217 = getelementptr inbounds %struct.lua_State* %216, i32 0, i32 4 ; [#uses=1]
+ %218 = load %struct.lua_TValue** %217, align 4 ; [#uses=1]
+ %219 = bitcast %struct.lua_TValue* %218 to i8* ; [#uses=1]
+ %220 = ptrtoint i8* %215 to i32 ; [#uses=1]
+ %221 = ptrtoint i8* %219 to i32 ; [#uses=1]
+ %222 = sub i32 %220, %221 ; [#uses=1]
+ %223 = icmp sle i32 %222, 240 ; [#uses=1]
+ br i1 %223, label %224, label %226
+
+; <label>:224 ; preds = %211
+ %225 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %225, i32 20)
+ br label %227
+
+; <label>:226 ; preds = %211
+ br label %227
+
+; <label>:227 ; preds = %226, %224
+ %228 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %229 = getelementptr inbounds %struct.lua_State* %228, i32 0, i32 7 ; [#uses=1]
+ %230 = load %struct.CallInfo** %229, align 4 ; [#uses=1]
+ %231 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %232 = getelementptr inbounds %struct.lua_State* %231, i32 0, i32 11 ; [#uses=1]
+ %233 = load %struct.CallInfo** %232, align 4 ; [#uses=1]
+ %234 = icmp eq %struct.CallInfo* %230, %233 ; [#uses=1]
+ br i1 %234, label %235, label %238
+
+; <label>:235 ; preds = %227
+ %236 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %237 = call %struct.CallInfo* @_Z6growCIP9lua_State(%struct.lua_State* %236) ; [#uses=1]
+ br label %243
+
+; <label>:238 ; preds = %227
+ %239 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %240 = getelementptr inbounds %struct.lua_State* %239, i32 0, i32 7 ; [#uses=2]
+ %241 = load %struct.CallInfo** %240, align 4 ; [#uses=1]
+ %242 = getelementptr inbounds %struct.CallInfo* %241, i32 1 ; [#uses=2]
+ store %struct.CallInfo* %242, %struct.CallInfo** %240, align 4
+ br label %243
+
+; <label>:243 ; preds = %238, %235
+ %244 = phi %struct.CallInfo* [ %237, %235 ], [ %242, %238 ] ; [#uses=1]
+ store %struct.CallInfo* %244, %struct.CallInfo** %ci1, align 4
+ %245 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %246 = getelementptr inbounds %struct.lua_State* %245, i32 0, i32 10 ; [#uses=1]
+ %247 = load %struct.lua_TValue** %246, align 4 ; [#uses=1]
+ %248 = bitcast %struct.lua_TValue* %247 to i8* ; [#uses=1]
+ %249 = load i32* %funcr, align 4 ; [#uses=1]
+ %250 = getelementptr inbounds i8* %248, i32 %249 ; [#uses=1]
+ %251 = bitcast i8* %250 to %struct.lua_TValue* ; [#uses=1]
+ %252 = load %struct.CallInfo** %ci1, align 4 ; [#uses=1]
+ %253 = getelementptr inbounds %struct.CallInfo* %252, i32 0, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %251, %struct.lua_TValue** %253, align 4
+ %254 = load %struct.CallInfo** %ci1, align 4 ; [#uses=1]
+ %255 = getelementptr inbounds %struct.CallInfo* %254, i32 0, i32 1 ; [#uses=1]
+ %256 = load %struct.lua_TValue** %255, align 4 ; [#uses=1]
+ %257 = getelementptr inbounds %struct.lua_TValue* %256, i32 1 ; [#uses=2]
+ %258 = load %struct.CallInfo** %ci1, align 4 ; [#uses=1]
+ %259 = getelementptr inbounds %struct.CallInfo* %258, i32 0, i32 0 ; [#uses=1]
+ store %struct.lua_TValue* %257, %struct.lua_TValue** %259, align 4
+ %260 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %261 = getelementptr inbounds %struct.lua_State* %260, i32 0, i32 5 ; [#uses=1]
+ store %struct.lua_TValue* %257, %struct.lua_TValue** %261, align 4
+ %262 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %263 = getelementptr inbounds %struct.lua_State* %262, i32 0, i32 4 ; [#uses=1]
+ %264 = load %struct.lua_TValue** %263, align 4 ; [#uses=1]
+ %265 = getelementptr inbounds %struct.lua_TValue* %264, i32 20 ; [#uses=1]
+ %266 = load %struct.CallInfo** %ci1, align 4 ; [#uses=1]
+ %267 = getelementptr inbounds %struct.CallInfo* %266, i32 0, i32 2 ; [#uses=1]
+ store %struct.lua_TValue* %265, %struct.lua_TValue** %267, align 4
+ %268 = load i32* %4, align 4 ; [#uses=1]
+ %269 = load %struct.CallInfo** %ci1, align 4 ; [#uses=1]
+ %270 = getelementptr inbounds %struct.CallInfo* %269, i32 0, i32 4 ; [#uses=1]
+ store i32 %268, i32* %270, align 4
+ %271 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %272 = getelementptr inbounds %struct.lua_State* %271, i32 0, i32 17 ; [#uses=1]
+ %273 = load i8* %272, align 1 ; [#uses=1]
+ %274 = zext i8 %273 to i32 ; [#uses=1]
+ %275 = and i32 %274, 1 ; [#uses=1]
+ %276 = icmp ne i32 %275, 0 ; [#uses=1]
+ br i1 %276, label %277, label %279
+
+; <label>:277 ; preds = %243
+ %278 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13luaD_callhookP9lua_Stateii(%struct.lua_State* %278, i32 0, i32 -1)
+ br label %279
+
+; <label>:279 ; preds = %277, %243
+ %280 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %281 = getelementptr inbounds %struct.lua_State* %280, i32 0, i32 7 ; [#uses=1]
+ %282 = load %struct.CallInfo** %281, align 4 ; [#uses=1]
+ %283 = getelementptr inbounds %struct.CallInfo* %282, i32 0, i32 1 ; [#uses=1]
+ %284 = load %struct.lua_TValue** %283, align 4 ; [#uses=1]
+ %285 = getelementptr inbounds %struct.lua_TValue* %284, i32 0, i32 0 ; [#uses=1]
+ %286 = getelementptr inbounds %union.anon* %285, i32 0, i32 0 ; [#uses=1]
+ %287 = bitcast double* %286 to %union.GCObject** ; [#uses=1]
+ %288 = load %union.GCObject** %287, align 4 ; [#uses=1]
+ %289 = getelementptr inbounds %union.GCObject* %288, i32 0, i32 0 ; [#uses=1]
+ %290 = bitcast %struct.lua_State* %289 to %union.Closure* ; [#uses=1]
+ %291 = getelementptr inbounds %union.Closure* %290, i32 0, i32 0 ; [#uses=1]
+ %292 = getelementptr inbounds %struct.CClosure* %291, i32 0, i32 7 ; [#uses=1]
+ %293 = load i32 (%struct.lua_State*)** %292, align 4 ; [#uses=1]
+ %294 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %295 = call i32 %293(%struct.lua_State* %294) ; [#uses=1]
+ store i32 %295, i32* %n, align 4
+ %296 = load i32* %n, align 4 ; [#uses=1]
+ %297 = icmp slt i32 %296, 0 ; [#uses=1]
+ br i1 %297, label %298, label %299
+
+; <label>:298 ; preds = %279
+ store i32 2, i32* %1
+ br label %308
+
+; <label>:299 ; preds = %279
+ %300 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %301 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %302 = getelementptr inbounds %struct.lua_State* %301, i32 0, i32 4 ; [#uses=1]
+ %303 = load %struct.lua_TValue** %302, align 4 ; [#uses=1]
+ %304 = load i32* %n, align 4 ; [#uses=1]
+ %305 = sub i32 0, %304 ; [#uses=1]
+ %306 = getelementptr inbounds %struct.lua_TValue* %303, i32 %305 ; [#uses=1]
+ %307 = call i32 @_Z12luaD_poscallP9lua_StateP10lua_TValue(%struct.lua_State* %300, %struct.lua_TValue* %306) ; [#uses=0]
+ store i32 1, i32* %1
+ br label %308
+
+; <label>:308 ; preds = %299, %298, %210
+ %309 = load i32* %1 ; [#uses=1]
+ ret i32 %309
+}
+
+; [#uses=1]
+define internal %struct.lua_TValue* @_Z9tryfuncTMP9lua_StateP10lua_TValue(%struct.lua_State* %L, %struct.lua_TValue* %func) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=10]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=8]
+ %tm = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %p = alloca %struct.lua_TValue*, align 4 ; [#uses=6]
+ %funcr = alloca i32, align 4 ; [#uses=2]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o21 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o12 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %func, %struct.lua_TValue** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %5 = call %struct.lua_TValue* @_Z15luaT_gettmbyobjP9lua_StatePK10lua_TValue3TMS(%struct.lua_State* %3, %struct.lua_TValue* %4, i32 16) ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %tm, align 4
+ %6 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %7 = bitcast %struct.lua_TValue* %6 to i8* ; [#uses=1]
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_State* %8, i32 0, i32 10 ; [#uses=1]
+ %10 = load %struct.lua_TValue** %9, align 4 ; [#uses=1]
+ %11 = bitcast %struct.lua_TValue* %10 to i8* ; [#uses=1]
+ %12 = ptrtoint i8* %7 to i32 ; [#uses=1]
+ %13 = ptrtoint i8* %11 to i32 ; [#uses=1]
+ %14 = sub i32 %12, %13 ; [#uses=1]
+ store i32 %14, i32* %funcr, align 4
+ %15 = load %struct.lua_TValue** %tm, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 0, i32 1 ; [#uses=1]
+ %17 = load i32* %16, align 4 ; [#uses=1]
+ %18 = icmp eq i32 %17, 6 ; [#uses=1]
+ br i1 %18, label %22, label %19
+
+; <label>:19 ; preds = %0
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %21 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ call void @_Z14luaG_typeerrorP9lua_StatePK10lua_TValuePKc(%struct.lua_State* %20, %struct.lua_TValue* %21, i8* getelementptr inbounds ([5 x i8]* @.str829, i32 0, i32 0))
+ br label %22
+
+; <label>:22 ; preds = %19, %0
+ %23 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_State* %23, i32 0, i32 4 ; [#uses=1]
+ %25 = load %struct.lua_TValue** %24, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %25, %struct.lua_TValue** %p, align 4
+ br label %26
+
+; <label>:26 ; preds = %45, %22
+ %27 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ %28 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %29 = icmp ugt %struct.lua_TValue* %27, %28 ; [#uses=1]
+ br i1 %29, label %30, label %48
+
+; <label>:30 ; preds = %26
+ %31 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_TValue* %31, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %32, %struct.lua_TValue** %o2, align 4
+ %33 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %33, %struct.lua_TValue** %o1, align 4
+ %34 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_TValue* %34, i32 0, i32 0 ; [#uses=1]
+ %36 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.lua_TValue* %36, i32 0, i32 0 ; [#uses=1]
+ %38 = bitcast %union.anon* %35 to i8* ; [#uses=1]
+ %39 = bitcast %union.anon* %37 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %38, i8* %39, i32 8, i32 4, i1 false)
+ %40 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.lua_TValue* %40, i32 0, i32 1 ; [#uses=1]
+ %42 = load i32* %41, align 4 ; [#uses=1]
+ %43 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.lua_TValue* %43, i32 0, i32 1 ; [#uses=1]
+ store i32 %42, i32* %44, align 4
+ br label %45
+
+; <label>:45 ; preds = %30
+ %46 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.lua_TValue* %46, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %47, %struct.lua_TValue** %p, align 4
+ br label %26
+
+; <label>:48 ; preds = %26
+ %49 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.lua_State* %49, i32 0, i32 9 ; [#uses=1]
+ %51 = load %struct.lua_TValue** %50, align 4 ; [#uses=1]
+ %52 = bitcast %struct.lua_TValue* %51 to i8* ; [#uses=1]
+ %53 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.lua_State* %53, i32 0, i32 4 ; [#uses=1]
+ %55 = load %struct.lua_TValue** %54, align 4 ; [#uses=1]
+ %56 = bitcast %struct.lua_TValue* %55 to i8* ; [#uses=1]
+ %57 = ptrtoint i8* %52 to i32 ; [#uses=1]
+ %58 = ptrtoint i8* %56 to i32 ; [#uses=1]
+ %59 = sub i32 %57, %58 ; [#uses=1]
+ %60 = icmp sle i32 %59, 12 ; [#uses=1]
+ br i1 %60, label %61, label %63
+
+; <label>:61 ; preds = %48
+ %62 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %62, i32 1)
+ br label %64
+
+; <label>:63 ; preds = %48
+ br label %64
+
+; <label>:64 ; preds = %63, %61
+ %65 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.lua_State* %65, i32 0, i32 4 ; [#uses=2]
+ %67 = load %struct.lua_TValue** %66, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.lua_TValue* %67, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %68, %struct.lua_TValue** %66, align 4
+ %69 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.lua_State* %69, i32 0, i32 10 ; [#uses=1]
+ %71 = load %struct.lua_TValue** %70, align 4 ; [#uses=1]
+ %72 = bitcast %struct.lua_TValue* %71 to i8* ; [#uses=1]
+ %73 = load i32* %funcr, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds i8* %72, i32 %73 ; [#uses=1]
+ %75 = bitcast i8* %74 to %struct.lua_TValue* ; [#uses=1]
+ store %struct.lua_TValue* %75, %struct.lua_TValue** %2, align 4
+ %76 = load %struct.lua_TValue** %tm, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %76, %struct.lua_TValue** %o21, align 4
+ %77 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %77, %struct.lua_TValue** %o12, align 4
+ %78 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %79 = getelementptr inbounds %struct.lua_TValue* %78, i32 0, i32 0 ; [#uses=1]
+ %80 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.lua_TValue* %80, i32 0, i32 0 ; [#uses=1]
+ %82 = bitcast %union.anon* %79 to i8* ; [#uses=1]
+ %83 = bitcast %union.anon* %81 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %82, i8* %83, i32 8, i32 4, i1 false)
+ %84 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %struct.lua_TValue* %84, i32 0, i32 1 ; [#uses=1]
+ %86 = load i32* %85, align 4 ; [#uses=1]
+ %87 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %88 = getelementptr inbounds %struct.lua_TValue* %87, i32 0, i32 1 ; [#uses=1]
+ store i32 %86, i32* %88, align 4
+ %89 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ ret %struct.lua_TValue* %89
+}
+
+; [#uses=1]
+define internal %struct.lua_TValue* @_Z14adjust_varargsP9lua_StateP5Protoi(%struct.lua_State* %L, %struct.Proto* %p, i32 %actual) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=14]
+ %2 = alloca %struct.Proto*, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=6]
+ %i = alloca i32, align 4 ; [#uses=12]
+ %nfixargs = alloca i32, align 4 ; [#uses=4]
+ %htab = alloca %struct.Table*, align 4 ; [#uses=6]
+ %base = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %fixed = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %nvar = alloca i32, align 4 ; [#uses=5]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o21 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o12 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o3 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.Proto* %p, %struct.Proto** %2, align 4
+ store i32 %actual, i32* %3, align 4
+ %4 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.Proto* %4, i32 0, i32 20 ; [#uses=1]
+ %6 = load i8* %5, align 1 ; [#uses=1]
+ %7 = zext i8 %6 to i32 ; [#uses=1]
+ store i32 %7, i32* %nfixargs, align 4
+ store %struct.Table* null, %struct.Table** %htab, align 4
+ br label %8
+
+; <label>:8 ; preds = %18, %0
+ %9 = load i32* %3, align 4 ; [#uses=1]
+ %10 = load i32* %nfixargs, align 4 ; [#uses=1]
+ %11 = icmp slt i32 %9, %10 ; [#uses=1]
+ br i1 %11, label %12, label %21
+
+; <label>:12 ; preds = %8
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_State* %13, i32 0, i32 4 ; [#uses=2]
+ %15 = load %struct.lua_TValue** %14, align 4 ; [#uses=2]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %16, %struct.lua_TValue** %14, align 4
+ %17 = getelementptr inbounds %struct.lua_TValue* %15, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %17, align 4
+ br label %18
+
+; <label>:18 ; preds = %12
+ %19 = load i32* %3, align 4 ; [#uses=1]
+ %20 = add nsw i32 %19, 1 ; [#uses=1]
+ store i32 %20, i32* %3, align 4
+ br label %8
+
+; <label>:21 ; preds = %8
+ %22 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.Proto* %22, i32 0, i32 21 ; [#uses=1]
+ %24 = load i8* %23, align 1 ; [#uses=1]
+ %25 = zext i8 %24 to i32 ; [#uses=1]
+ %26 = and i32 %25, 4 ; [#uses=1]
+ %27 = icmp ne i32 %26, 0 ; [#uses=1]
+ br i1 %27, label %28, label %94
+
+; <label>:28 ; preds = %21
+ %29 = load i32* %3, align 4 ; [#uses=1]
+ %30 = load i32* %nfixargs, align 4 ; [#uses=1]
+ %31 = sub nsw i32 %29, %30 ; [#uses=1]
+ store i32 %31, i32* %nvar, align 4
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_State* %32, i32 0, i32 6 ; [#uses=1]
+ %34 = load %struct.global_State** %33, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.global_State* %34, i32 0, i32 14 ; [#uses=1]
+ %36 = load i32* %35, align 4 ; [#uses=1]
+ %37 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.lua_State* %37, i32 0, i32 6 ; [#uses=1]
+ %39 = load %struct.global_State** %38, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.global_State* %39, i32 0, i32 13 ; [#uses=1]
+ %41 = load i32* %40, align 4 ; [#uses=1]
+ %42 = icmp uge i32 %36, %41 ; [#uses=1]
+ br i1 %42, label %43, label %45
+
+; <label>:43 ; preds = %28
+ %44 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9luaC_stepP9lua_State(%struct.lua_State* %44)
+ br label %45
+
+; <label>:45 ; preds = %43, %28
+ %46 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %47 = load i32* %nvar, align 4 ; [#uses=1]
+ %48 = call %struct.Table* @_Z8luaH_newP9lua_Stateii(%struct.lua_State* %46, i32 %47, i32 1) ; [#uses=1]
+ store %struct.Table* %48, %struct.Table** %htab, align 4
+ store i32 0, i32* %i, align 4
+ br label %49
+
+; <label>:49 ; preds = %78, %45
+ %50 = load i32* %i, align 4 ; [#uses=1]
+ %51 = load i32* %nvar, align 4 ; [#uses=1]
+ %52 = icmp slt i32 %50, %51 ; [#uses=1]
+ br i1 %52, label %53, label %81
+
+; <label>:53 ; preds = %49
+ %54 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.lua_State* %54, i32 0, i32 4 ; [#uses=1]
+ %56 = load %struct.lua_TValue** %55, align 4 ; [#uses=1]
+ %57 = load i32* %nvar, align 4 ; [#uses=1]
+ %58 = sub i32 0, %57 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.lua_TValue* %56, i32 %58 ; [#uses=1]
+ %60 = load i32* %i, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.lua_TValue* %59, i32 %60 ; [#uses=1]
+ store %struct.lua_TValue* %61, %struct.lua_TValue** %o2, align 4
+ %62 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %63 = load %struct.Table** %htab, align 4 ; [#uses=1]
+ %64 = load i32* %i, align 4 ; [#uses=1]
+ %65 = add nsw i32 %64, 1 ; [#uses=1]
+ %66 = call %struct.lua_TValue* @_Z11luaH_setnumP9lua_StateP5Tablei(%struct.lua_State* %62, %struct.Table* %63, i32 %65) ; [#uses=1]
+ store %struct.lua_TValue* %66, %struct.lua_TValue** %o1, align 4
+ %67 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.lua_TValue* %67, i32 0, i32 0 ; [#uses=1]
+ %69 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.lua_TValue* %69, i32 0, i32 0 ; [#uses=1]
+ %71 = bitcast %union.anon* %68 to i8* ; [#uses=1]
+ %72 = bitcast %union.anon* %70 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %71, i8* %72, i32 8, i32 4, i1 false)
+ %73 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.lua_TValue* %73, i32 0, i32 1 ; [#uses=1]
+ %75 = load i32* %74, align 4 ; [#uses=1]
+ %76 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %77 = getelementptr inbounds %struct.lua_TValue* %76, i32 0, i32 1 ; [#uses=1]
+ store i32 %75, i32* %77, align 4
+ br label %78
+
+; <label>:78 ; preds = %53
+ %79 = load i32* %i, align 4 ; [#uses=1]
+ %80 = add nsw i32 %79, 1 ; [#uses=1]
+ store i32 %80, i32* %i, align 4
+ br label %49
+
+; <label>:81 ; preds = %49
+ %82 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %83 = load %struct.Table** %htab, align 4 ; [#uses=1]
+ %84 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %85 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %84, i8* getelementptr inbounds ([2 x i8]* @.str728, i32 0, i32 0), i32 1) ; [#uses=1]
+ %86 = call %struct.lua_TValue* @_Z11luaH_setstrP9lua_StateP5TableP7TString(%struct.lua_State* %82, %struct.Table* %83, %union.TString* %85) ; [#uses=1]
+ store %struct.lua_TValue* %86, %struct.lua_TValue** %i_o, align 4
+ %87 = load i32* %nvar, align 4 ; [#uses=1]
+ %88 = sitofp i32 %87 to double ; [#uses=1]
+ %89 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %90 = getelementptr inbounds %struct.lua_TValue* %89, i32 0, i32 0 ; [#uses=1]
+ %91 = getelementptr inbounds %union.anon* %90, i32 0, i32 0 ; [#uses=1]
+ store double %88, double* %91, align 4
+ %92 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %93 = getelementptr inbounds %struct.lua_TValue* %92, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %93, align 4
+ br label %94
+
+; <label>:94 ; preds = %81, %21
+ %95 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %96 = getelementptr inbounds %struct.lua_State* %95, i32 0, i32 4 ; [#uses=1]
+ %97 = load %struct.lua_TValue** %96, align 4 ; [#uses=1]
+ %98 = load i32* %3, align 4 ; [#uses=1]
+ %99 = sub i32 0, %98 ; [#uses=1]
+ %100 = getelementptr inbounds %struct.lua_TValue* %97, i32 %99 ; [#uses=1]
+ store %struct.lua_TValue* %100, %struct.lua_TValue** %fixed, align 4
+ %101 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %102 = getelementptr inbounds %struct.lua_State* %101, i32 0, i32 4 ; [#uses=1]
+ %103 = load %struct.lua_TValue** %102, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %103, %struct.lua_TValue** %base, align 4
+ store i32 0, i32* %i, align 4
+ br label %104
+
+; <label>:104 ; preds = %131, %94
+ %105 = load i32* %i, align 4 ; [#uses=1]
+ %106 = load i32* %nfixargs, align 4 ; [#uses=1]
+ %107 = icmp slt i32 %105, %106 ; [#uses=1]
+ br i1 %107, label %108, label %134
+
+; <label>:108 ; preds = %104
+ %109 = load %struct.lua_TValue** %fixed, align 4 ; [#uses=1]
+ %110 = load i32* %i, align 4 ; [#uses=1]
+ %111 = getelementptr inbounds %struct.lua_TValue* %109, i32 %110 ; [#uses=1]
+ store %struct.lua_TValue* %111, %struct.lua_TValue** %o21, align 4
+ %112 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %113 = getelementptr inbounds %struct.lua_State* %112, i32 0, i32 4 ; [#uses=2]
+ %114 = load %struct.lua_TValue** %113, align 4 ; [#uses=2]
+ %115 = getelementptr inbounds %struct.lua_TValue* %114, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %115, %struct.lua_TValue** %113, align 4
+ store %struct.lua_TValue* %114, %struct.lua_TValue** %o12, align 4
+ %116 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %117 = getelementptr inbounds %struct.lua_TValue* %116, i32 0, i32 0 ; [#uses=1]
+ %118 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %119 = getelementptr inbounds %struct.lua_TValue* %118, i32 0, i32 0 ; [#uses=1]
+ %120 = bitcast %union.anon* %117 to i8* ; [#uses=1]
+ %121 = bitcast %union.anon* %119 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %120, i8* %121, i32 8, i32 4, i1 false)
+ %122 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %123 = getelementptr inbounds %struct.lua_TValue* %122, i32 0, i32 1 ; [#uses=1]
+ %124 = load i32* %123, align 4 ; [#uses=1]
+ %125 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %126 = getelementptr inbounds %struct.lua_TValue* %125, i32 0, i32 1 ; [#uses=1]
+ store i32 %124, i32* %126, align 4
+ %127 = load %struct.lua_TValue** %fixed, align 4 ; [#uses=1]
+ %128 = load i32* %i, align 4 ; [#uses=1]
+ %129 = getelementptr inbounds %struct.lua_TValue* %127, i32 %128 ; [#uses=1]
+ %130 = getelementptr inbounds %struct.lua_TValue* %129, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %130, align 4
+ br label %131
+
+; <label>:131 ; preds = %108
+ %132 = load i32* %i, align 4 ; [#uses=1]
+ %133 = add nsw i32 %132, 1 ; [#uses=1]
+ store i32 %133, i32* %i, align 4
+ br label %104
+
+; <label>:134 ; preds = %104
+ %135 = load %struct.Table** %htab, align 4 ; [#uses=1]
+ %136 = icmp ne %struct.Table* %135, null ; [#uses=1]
+ br i1 %136, label %137, label %150
+
+; <label>:137 ; preds = %134
+ %138 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %139 = getelementptr inbounds %struct.lua_State* %138, i32 0, i32 4 ; [#uses=2]
+ %140 = load %struct.lua_TValue** %139, align 4 ; [#uses=2]
+ %141 = getelementptr inbounds %struct.lua_TValue* %140, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %141, %struct.lua_TValue** %139, align 4
+ store %struct.lua_TValue* %140, %struct.lua_TValue** %i_o3, align 4
+ %142 = load %struct.Table** %htab, align 4 ; [#uses=1]
+ %143 = bitcast %struct.Table* %142 to %union.GCObject* ; [#uses=1]
+ %144 = load %struct.lua_TValue** %i_o3, align 4 ; [#uses=1]
+ %145 = getelementptr inbounds %struct.lua_TValue* %144, i32 0, i32 0 ; [#uses=1]
+ %146 = getelementptr inbounds %union.anon* %145, i32 0, i32 0 ; [#uses=1]
+ %147 = bitcast double* %146 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %143, %union.GCObject** %147, align 4
+ %148 = load %struct.lua_TValue** %i_o3, align 4 ; [#uses=1]
+ %149 = getelementptr inbounds %struct.lua_TValue* %148, i32 0, i32 1 ; [#uses=1]
+ store i32 5, i32* %149, align 4
+ br label %150
+
+; <label>:150 ; preds = %137, %134
+ %151 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ ret %struct.lua_TValue* %151
+}
+
+; [#uses=2]
+define internal %struct.CallInfo* @_Z6growCIP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 14 ; [#uses=1]
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = icmp sgt i32 %4, 20000 ; [#uses=1]
+ br i1 %5, label %6, label %8
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10luaD_throwP9lua_Statei(%struct.lua_State* %7, i32 5)
+ br label %21
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_State* %10, i32 0, i32 14 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ %13 = mul nsw i32 2, %12 ; [#uses=1]
+ call void @_Z14luaD_reallocCIP9lua_Statei(%struct.lua_State* %9, i32 %13)
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_State* %14, i32 0, i32 14 ; [#uses=1]
+ %16 = load i32* %15, align 4 ; [#uses=1]
+ %17 = icmp sgt i32 %16, 20000 ; [#uses=1]
+ br i1 %17, label %18, label %20
+
+; <label>:18 ; preds = %8
+ %19 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %19, i8* getelementptr inbounds ([15 x i8]* @.str627, i32 0, i32 0))
+ br label %20
+
+; <label>:20 ; preds = %18, %8
+ br label %21
+
+; <label>:21 ; preds = %20, %6
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_State* %22, i32 0, i32 7 ; [#uses=2]
+ %24 = load %struct.CallInfo** %23, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.CallInfo* %24, i32 1 ; [#uses=2]
+ store %struct.CallInfo* %25, %struct.CallInfo** %23, align 4
+ ret %struct.CallInfo* %25
+}
+
+; [#uses=3]
+define hidden i32 @_Z12luaD_poscallP9lua_StateP10lua_TValue(%struct.lua_State* %L, %struct.lua_TValue* %firstResult) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=6]
+ %res = alloca %struct.lua_TValue*, align 4 ; [#uses=6]
+ %wanted = alloca i32, align 4 ; [#uses=3]
+ %i = alloca i32, align 4 ; [#uses=6]
+ %ci = alloca %struct.CallInfo*, align 4 ; [#uses=5]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %firstResult, %struct.lua_TValue** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 17 ; [#uses=1]
+ %5 = load i8* %4, align 1 ; [#uses=1]
+ %6 = zext i8 %5 to i32 ; [#uses=1]
+ %7 = and i32 %6, 2 ; [#uses=1]
+ %8 = icmp ne i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %9, label %13
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %12 = call %struct.lua_TValue* @_Z12callrethooksP9lua_StateP10lua_TValue(%struct.lua_State* %10, %struct.lua_TValue* %11) ; [#uses=1]
+ store %struct.lua_TValue* %12, %struct.lua_TValue** %2, align 4
+ br label %13
+
+; <label>:13 ; preds = %9, %0
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_State* %14, i32 0, i32 7 ; [#uses=2]
+ %16 = load %struct.CallInfo** %15, align 4 ; [#uses=2]
+ %17 = getelementptr inbounds %struct.CallInfo* %16, i32 -1 ; [#uses=1]
+ store %struct.CallInfo* %17, %struct.CallInfo** %15, align 4
+ store %struct.CallInfo* %16, %struct.CallInfo** %ci, align 4
+ %18 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.CallInfo* %18, i32 0, i32 1 ; [#uses=1]
+ %20 = load %struct.lua_TValue** %19, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %20, %struct.lua_TValue** %res, align 4
+ %21 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.CallInfo* %21, i32 0, i32 4 ; [#uses=1]
+ %23 = load i32* %22, align 4 ; [#uses=1]
+ store i32 %23, i32* %wanted, align 4
+ %24 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.CallInfo* %24, i32 -1 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.CallInfo* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = load %struct.lua_TValue** %26, align 4 ; [#uses=1]
+ %28 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_State* %28, i32 0, i32 5 ; [#uses=1]
+ store %struct.lua_TValue* %27, %struct.lua_TValue** %29, align 4
+ %30 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.CallInfo* %30, i32 -1 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.CallInfo* %31, i32 0, i32 3 ; [#uses=1]
+ %33 = load i32** %32, align 4 ; [#uses=1]
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_State* %34, i32 0, i32 8 ; [#uses=1]
+ store i32* %33, i32** %35, align 4
+ %36 = load i32* %wanted, align 4 ; [#uses=1]
+ store i32 %36, i32* %i, align 4
+ br label %37
+
+; <label>:37 ; preds = %64, %13
+ %38 = load i32* %i, align 4 ; [#uses=1]
+ %39 = icmp ne i32 %38, 0 ; [#uses=1]
+ br i1 %39, label %40, label %46
+
+; <label>:40 ; preds = %37
+ %41 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %42 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.lua_State* %42, i32 0, i32 4 ; [#uses=1]
+ %44 = load %struct.lua_TValue** %43, align 4 ; [#uses=1]
+ %45 = icmp ult %struct.lua_TValue* %41, %44 ; [#uses=1]
+ br label %46
+
+; <label>:46 ; preds = %40, %37
+ %47 = phi i1 [ false, %37 ], [ %45, %40 ] ; [#uses=1]
+ br i1 %47, label %48, label %67
+
+; <label>:48 ; preds = %46
+ %49 = load %struct.lua_TValue** %2, align 4 ; [#uses=2]
+ %50 = getelementptr inbounds %struct.lua_TValue* %49, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %50, %struct.lua_TValue** %2, align 4
+ store %struct.lua_TValue* %49, %struct.lua_TValue** %o2, align 4
+ %51 = load %struct.lua_TValue** %res, align 4 ; [#uses=2]
+ %52 = getelementptr inbounds %struct.lua_TValue* %51, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %52, %struct.lua_TValue** %res, align 4
+ store %struct.lua_TValue* %51, %struct.lua_TValue** %o1, align 4
+ %53 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.lua_TValue* %53, i32 0, i32 0 ; [#uses=1]
+ %55 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.lua_TValue* %55, i32 0, i32 0 ; [#uses=1]
+ %57 = bitcast %union.anon* %54 to i8* ; [#uses=1]
+ %58 = bitcast %union.anon* %56 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %57, i8* %58, i32 8, i32 4, i1 false)
+ %59 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.lua_TValue* %59, i32 0, i32 1 ; [#uses=1]
+ %61 = load i32* %60, align 4 ; [#uses=1]
+ %62 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.lua_TValue* %62, i32 0, i32 1 ; [#uses=1]
+ store i32 %61, i32* %63, align 4
+ br label %64
+
+; <label>:64 ; preds = %48
+ %65 = load i32* %i, align 4 ; [#uses=1]
+ %66 = add nsw i32 %65, -1 ; [#uses=1]
+ store i32 %66, i32* %i, align 4
+ br label %37
+
+; <label>:67 ; preds = %46
+ br label %68
+
+; <label>:68 ; preds = %72, %67
+ %69 = load i32* %i, align 4 ; [#uses=2]
+ %70 = add nsw i32 %69, -1 ; [#uses=1]
+ store i32 %70, i32* %i, align 4
+ %71 = icmp sgt i32 %69, 0 ; [#uses=1]
+ br i1 %71, label %72, label %76
+
+; <label>:72 ; preds = %68
+ %73 = load %struct.lua_TValue** %res, align 4 ; [#uses=2]
+ %74 = getelementptr inbounds %struct.lua_TValue* %73, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %74, %struct.lua_TValue** %res, align 4
+ %75 = getelementptr inbounds %struct.lua_TValue* %73, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %75, align 4
+ br label %68
+
+; <label>:76 ; preds = %68
+ %77 = load %struct.lua_TValue** %res, align 4 ; [#uses=1]
+ %78 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %79 = getelementptr inbounds %struct.lua_State* %78, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %77, %struct.lua_TValue** %79, align 4
+ %80 = load i32* %wanted, align 4 ; [#uses=1]
+ %81 = sub nsw i32 %80, -1 ; [#uses=1]
+ ret i32 %81
+}
+
+; [#uses=1]
+define internal %struct.lua_TValue* @_Z12callrethooksP9lua_StateP10lua_TValue(%struct.lua_State* %L, %struct.lua_TValue* %firstResult) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %fr = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %firstResult, %struct.lua_TValue** %2, align 4
+ %3 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %4 = bitcast %struct.lua_TValue* %3 to i8* ; [#uses=1]
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.lua_State* %5, i32 0, i32 10 ; [#uses=1]
+ %7 = load %struct.lua_TValue** %6, align 4 ; [#uses=1]
+ %8 = bitcast %struct.lua_TValue* %7 to i8* ; [#uses=1]
+ %9 = ptrtoint i8* %4 to i32 ; [#uses=1]
+ %10 = ptrtoint i8* %8 to i32 ; [#uses=1]
+ %11 = sub i32 %9, %10 ; [#uses=1]
+ store i32 %11, i32* %fr, align 4
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaD_callhookP9lua_Stateii(%struct.lua_State* %12, i32 1, i32 -1)
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_State* %13, i32 0, i32 7 ; [#uses=1]
+ %15 = load %struct.CallInfo** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.CallInfo* %15, i32 0, i32 1 ; [#uses=1]
+ %17 = load %struct.lua_TValue** %16, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_TValue* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = getelementptr inbounds %union.anon* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = bitcast double* %19 to %union.GCObject** ; [#uses=1]
+ %21 = load %union.GCObject** %20, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %union.GCObject* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = bitcast %struct.lua_State* %22 to %union.Closure* ; [#uses=1]
+ %24 = getelementptr inbounds %union.Closure* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.CClosure* %24, i32 0, i32 3 ; [#uses=1]
+ %26 = load i8* %25, align 1 ; [#uses=1]
+ %27 = icmp ne i8 %26, 0 ; [#uses=1]
+ br i1 %27, label %49, label %28
+
+; <label>:28 ; preds = %0
+ br label %29
+
+; <label>:29 ; preds = %46, %28
+ %30 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_State* %30, i32 0, i32 17 ; [#uses=1]
+ %32 = load i8* %31, align 1 ; [#uses=1]
+ %33 = zext i8 %32 to i32 ; [#uses=1]
+ %34 = and i32 %33, 2 ; [#uses=1]
+ %35 = icmp ne i32 %34, 0 ; [#uses=1]
+ br i1 %35, label %36, label %44
+
+; <label>:36 ; preds = %29
+ %37 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.lua_State* %37, i32 0, i32 7 ; [#uses=1]
+ %39 = load %struct.CallInfo** %38, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.CallInfo* %39, i32 0, i32 5 ; [#uses=2]
+ %41 = load i32* %40, align 4 ; [#uses=2]
+ %42 = add nsw i32 %41, -1 ; [#uses=1]
+ store i32 %42, i32* %40, align 4
+ %43 = icmp ne i32 %41, 0 ; [#uses=1]
+ br label %44
+
+; <label>:44 ; preds = %36, %29
+ %45 = phi i1 [ false, %29 ], [ %43, %36 ] ; [#uses=1]
+ br i1 %45, label %46, label %48
+
+; <label>:46 ; preds = %44
+ %47 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaD_callhookP9lua_Stateii(%struct.lua_State* %47, i32 4, i32 -1)
+ br label %29
+
+; <label>:48 ; preds = %44
+ br label %49
+
+; <label>:49 ; preds = %48, %0
+ %50 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.lua_State* %50, i32 0, i32 10 ; [#uses=1]
+ %52 = load %struct.lua_TValue** %51, align 4 ; [#uses=1]
+ %53 = bitcast %struct.lua_TValue* %52 to i8* ; [#uses=1]
+ %54 = load i32* %fr, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds i8* %53, i32 %54 ; [#uses=1]
+ %56 = bitcast i8* %55 to %struct.lua_TValue* ; [#uses=1]
+ ret %struct.lua_TValue* %56
+}
+
+; [#uses=8]
+define hidden void @_Z9luaD_callP9lua_StateP10lua_TValuei(%struct.lua_State* %L, %struct.lua_TValue* %func, i32 %nResults) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=12]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %func, %struct.lua_TValue** %2, align 4
+ store i32 %nResults, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 15 ; [#uses=2]
+ %6 = load i16* %5, align 2 ; [#uses=1]
+ %7 = add i16 %6, 1 ; [#uses=2]
+ store i16 %7, i16* %5, align 2
+ %8 = zext i16 %7 to i32 ; [#uses=1]
+ %9 = icmp sge i32 %8, 200 ; [#uses=1]
+ br i1 %9, label %10, label %28
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_State* %11, i32 0, i32 15 ; [#uses=1]
+ %13 = load i16* %12, align 2 ; [#uses=1]
+ %14 = zext i16 %13 to i32 ; [#uses=1]
+ %15 = icmp eq i32 %14, 200 ; [#uses=1]
+ br i1 %15, label %16, label %18
+
+; <label>:16 ; preds = %10
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %17, i8* getelementptr inbounds ([17 x i8]* @.str223, i32 0, i32 0))
+ br label %27
+
+; <label>:18 ; preds = %10
+ %19 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_State* %19, i32 0, i32 15 ; [#uses=1]
+ %21 = load i16* %20, align 2 ; [#uses=1]
+ %22 = zext i16 %21 to i32 ; [#uses=1]
+ %23 = icmp sge i32 %22, 225 ; [#uses=1]
+ br i1 %23, label %24, label %26
+
+; <label>:24 ; preds = %18
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10luaD_throwP9lua_Statei(%struct.lua_State* %25, i32 5)
+ br label %26
+
+; <label>:26 ; preds = %24, %18
+ br label %27
+
+; <label>:27 ; preds = %26, %16
+ br label %28
+
+; <label>:28 ; preds = %27, %0
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %30 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %31 = load i32* %3, align 4 ; [#uses=1]
+ %32 = call i32 @_Z12luaD_precallP9lua_StateP10lua_TValuei(%struct.lua_State* %29, %struct.lua_TValue* %30, i32 %31) ; [#uses=1]
+ %33 = icmp eq i32 %32, 0 ; [#uses=1]
+ br i1 %33, label %34, label %36
+
+; <label>:34 ; preds = %28
+ %35 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12luaV_executeP9lua_Statei(%struct.lua_State* %35, i32 1)
+ br label %36
+
+; <label>:36 ; preds = %34, %28
+ %37 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.lua_State* %37, i32 0, i32 15 ; [#uses=2]
+ %39 = load i16* %38, align 2 ; [#uses=1]
+ %40 = add i16 %39, -1 ; [#uses=1]
+ store i16 %40, i16* %38, align 2
+ %41 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.lua_State* %41, i32 0, i32 6 ; [#uses=1]
+ %43 = load %struct.global_State** %42, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.global_State* %43, i32 0, i32 14 ; [#uses=1]
+ %45 = load i32* %44, align 4 ; [#uses=1]
+ %46 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.lua_State* %46, i32 0, i32 6 ; [#uses=1]
+ %48 = load %struct.global_State** %47, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.global_State* %48, i32 0, i32 13 ; [#uses=1]
+ %50 = load i32* %49, align 4 ; [#uses=1]
+ %51 = icmp uge i32 %45, %50 ; [#uses=1]
+ br i1 %51, label %52, label %54
+
+; <label>:52 ; preds = %36
+ %53 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9luaC_stepP9lua_State(%struct.lua_State* %53)
+ br label %54
+
+; <label>:54 ; preds = %52, %36
+ ret void
+}
+
+; [#uses=1]
+define i32 @_Z10lua_resumeP9lua_Statei(%struct.lua_State* %L, i32 %nargs) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=19]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %status = alloca i32, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %nargs, i32* %3, align 4
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 3 ; [#uses=1]
+ %6 = load i8* %5, align 1 ; [#uses=1]
+ %7 = zext i8 %6 to i32 ; [#uses=1]
+ %8 = icmp ne i32 %7, 1 ; [#uses=1]
+ br i1 %8, label %9, label %26
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_State* %10, i32 0, i32 3 ; [#uses=1]
+ %12 = load i8* %11, align 1 ; [#uses=1]
+ %13 = zext i8 %12 to i32 ; [#uses=1]
+ %14 = icmp ne i32 %13, 0 ; [#uses=1]
+ br i1 %14, label %23, label %15
+
+; <label>:15 ; preds = %9
+ %16 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_State* %16, i32 0, i32 7 ; [#uses=1]
+ %18 = load %struct.CallInfo** %17, align 4 ; [#uses=1]
+ %19 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_State* %19, i32 0, i32 12 ; [#uses=1]
+ %21 = load %struct.CallInfo** %20, align 4 ; [#uses=1]
+ %22 = icmp ne %struct.CallInfo* %18, %21 ; [#uses=1]
+ br i1 %22, label %23, label %26
+
+; <label>:23 ; preds = %15, %9
+ %24 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %25 = call i32 @_Z12resume_errorP9lua_StatePKc(%struct.lua_State* %24, i8* getelementptr inbounds ([38 x i8]* @.str324, i32 0, i32 0)) ; [#uses=1]
+ store i32 %25, i32* %1
+ br label %81
+
+; <label>:26 ; preds = %15, %0
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_State* %27, i32 0, i32 15 ; [#uses=1]
+ %29 = load i16* %28, align 2 ; [#uses=1]
+ %30 = zext i16 %29 to i32 ; [#uses=1]
+ %31 = icmp sge i32 %30, 200 ; [#uses=1]
+ br i1 %31, label %32, label %35
+
+; <label>:32 ; preds = %26
+ %33 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %34 = call i32 @_Z12resume_errorP9lua_StatePKc(%struct.lua_State* %33, i8* getelementptr inbounds ([17 x i8]* @.str223, i32 0, i32 0)) ; [#uses=1]
+ store i32 %34, i32* %1
+ br label %81
+
+; <label>:35 ; preds = %26
+ %36 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.lua_State* %36, i32 0, i32 15 ; [#uses=2]
+ %38 = load i16* %37, align 2 ; [#uses=1]
+ %39 = add i16 %38, 1 ; [#uses=2]
+ store i16 %39, i16* %37, align 2
+ %40 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.lua_State* %40, i32 0, i32 16 ; [#uses=1]
+ store i16 %39, i16* %41, align 2
+ %42 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %43 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.lua_State* %43, i32 0, i32 4 ; [#uses=1]
+ %45 = load %struct.lua_TValue** %44, align 4 ; [#uses=1]
+ %46 = load i32* %3, align 4 ; [#uses=1]
+ %47 = sub i32 0, %46 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.lua_TValue* %45, i32 %47 ; [#uses=1]
+ %49 = bitcast %struct.lua_TValue* %48 to i8* ; [#uses=1]
+ %50 = call i32 @_Z20luaD_rawrunprotectedP9lua_StatePFvS0_PvES1_(%struct.lua_State* %42, void (%struct.lua_State*, i8*)* @_Z6resumeP9lua_StatePv, i8* %49) ; [#uses=1]
+ store i32 %50, i32* %status, align 4
+ %51 = load i32* %status, align 4 ; [#uses=1]
+ %52 = icmp ne i32 %51, 0 ; [#uses=1]
+ br i1 %52, label %53, label %70
+
+; <label>:53 ; preds = %35
+ %54 = load i32* %status, align 4 ; [#uses=1]
+ %55 = trunc i32 %54 to i8 ; [#uses=1]
+ %56 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.lua_State* %56, i32 0, i32 3 ; [#uses=1]
+ store i8 %55, i8* %57, align 1
+ %58 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %59 = load i32* %status, align 4 ; [#uses=1]
+ %60 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.lua_State* %60, i32 0, i32 4 ; [#uses=1]
+ %62 = load %struct.lua_TValue** %61, align 4 ; [#uses=1]
+ call void @_Z16luaD_seterrorobjP9lua_StateiP10lua_TValue(%struct.lua_State* %58, i32 %59, %struct.lua_TValue* %62)
+ %63 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.lua_State* %63, i32 0, i32 4 ; [#uses=1]
+ %65 = load %struct.lua_TValue** %64, align 4 ; [#uses=1]
+ %66 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.lua_State* %66, i32 0, i32 7 ; [#uses=1]
+ %68 = load %struct.CallInfo** %67, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.CallInfo* %68, i32 0, i32 2 ; [#uses=1]
+ store %struct.lua_TValue* %65, %struct.lua_TValue** %69, align 4
+ br label %75
+
+; <label>:70 ; preds = %35
+ %71 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.lua_State* %71, i32 0, i32 3 ; [#uses=1]
+ %73 = load i8* %72, align 1 ; [#uses=1]
+ %74 = zext i8 %73 to i32 ; [#uses=1]
+ store i32 %74, i32* %status, align 4
+ br label %75
+
+; <label>:75 ; preds = %70, %53
+ %76 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %77 = getelementptr inbounds %struct.lua_State* %76, i32 0, i32 15 ; [#uses=2]
+ %78 = load i16* %77, align 2 ; [#uses=1]
+ %79 = add i16 %78, -1 ; [#uses=1]
+ store i16 %79, i16* %77, align 2
+ %80 = load i32* %status, align 4 ; [#uses=1]
+ store i32 %80, i32* %1
+ br label %81
+
+; <label>:81 ; preds = %75, %32, %23
+ %82 = load i32* %1 ; [#uses=1]
+ ret i32 %82
+}
+
+; [#uses=2]
+define internal i32 @_Z12resume_errorP9lua_StatePKc(%struct.lua_State* %L, i8* %msg) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %2 = alloca i8*, align 4 ; [#uses=3]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %msg, i8** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 7 ; [#uses=1]
+ %5 = load %struct.CallInfo** %4, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.CallInfo* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load %struct.lua_TValue** %6, align 4 ; [#uses=1]
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_State* %8, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %7, %struct.lua_TValue** %9, align 4
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_State* %10, i32 0, i32 4 ; [#uses=1]
+ %12 = load %struct.lua_TValue** %11, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %12, %struct.lua_TValue** %i_o, align 4
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = load i8** %2, align 4 ; [#uses=1]
+ %15 = load i8** %2, align 4 ; [#uses=1]
+ %16 = call i32 @strlen(i8* %15) ; [#uses=1]
+ %17 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %13, i8* %14, i32 %16) ; [#uses=1]
+ %18 = bitcast %union.TString* %17 to %union.GCObject* ; [#uses=1]
+ %19 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_TValue* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = getelementptr inbounds %union.anon* %20, i32 0, i32 0 ; [#uses=1]
+ %22 = bitcast double* %21 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %18, %union.GCObject** %22, align 4
+ %23 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_TValue* %23, i32 0, i32 1 ; [#uses=1]
+ store i32 4, i32* %24, align 4
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_State* %25, i32 0, i32 9 ; [#uses=1]
+ %27 = load %struct.lua_TValue** %26, align 4 ; [#uses=1]
+ %28 = bitcast %struct.lua_TValue* %27 to i8* ; [#uses=1]
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_State* %29, i32 0, i32 4 ; [#uses=1]
+ %31 = load %struct.lua_TValue** %30, align 4 ; [#uses=1]
+ %32 = bitcast %struct.lua_TValue* %31 to i8* ; [#uses=1]
+ %33 = ptrtoint i8* %28 to i32 ; [#uses=1]
+ %34 = ptrtoint i8* %32 to i32 ; [#uses=1]
+ %35 = sub i32 %33, %34 ; [#uses=1]
+ %36 = icmp sle i32 %35, 12 ; [#uses=1]
+ br i1 %36, label %37, label %39
+
+; <label>:37 ; preds = %0
+ %38 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %38, i32 1)
+ br label %40
+
+; <label>:39 ; preds = %0
+ br label %40
+
+; <label>:40 ; preds = %39, %37
+ %41 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.lua_State* %41, i32 0, i32 4 ; [#uses=2]
+ %43 = load %struct.lua_TValue** %42, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.lua_TValue* %43, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %44, %struct.lua_TValue** %42, align 4
+ ret i32 2
+}
+
+; [#uses=1]
+define internal void @_Z6resumeP9lua_StatePv(%struct.lua_State* %L, i8* %ud) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=13]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %firstArg = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %ci = alloca %struct.CallInfo*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %ud, i8** %2, align 4
+ %3 = load i8** %2, align 4 ; [#uses=1]
+ %4 = bitcast i8* %3 to %struct.lua_TValue* ; [#uses=1]
+ store %struct.lua_TValue* %4, %struct.lua_TValue** %firstArg, align 4
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.lua_State* %5, i32 0, i32 7 ; [#uses=1]
+ %7 = load %struct.CallInfo** %6, align 4 ; [#uses=1]
+ store %struct.CallInfo* %7, %struct.CallInfo** %ci, align 4
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_State* %8, i32 0, i32 3 ; [#uses=1]
+ %10 = load i8* %9, align 1 ; [#uses=1]
+ %11 = zext i8 %10 to i32 ; [#uses=1]
+ %12 = icmp eq i32 %11, 0 ; [#uses=1]
+ br i1 %12, label %13, label %21
+
+; <label>:13 ; preds = %0
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = load %struct.lua_TValue** %firstArg, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 -1 ; [#uses=1]
+ %17 = call i32 @_Z12luaD_precallP9lua_StateP10lua_TValuei(%struct.lua_State* %14, %struct.lua_TValue* %16, i32 -1) ; [#uses=1]
+ %18 = icmp ne i32 %17, 0 ; [#uses=1]
+ br i1 %18, label %19, label %20
+
+; <label>:19 ; preds = %13
+ br label %72
+
+; <label>:20 ; preds = %13
+ br label %60
+
+; <label>:21 ; preds = %0
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_State* %22, i32 0, i32 3 ; [#uses=1]
+ store i8 0, i8* %23, align 1
+ %24 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.CallInfo* %24, i32 0, i32 1 ; [#uses=1]
+ %26 = load %struct.lua_TValue** %25, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_TValue* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = getelementptr inbounds %union.anon* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = bitcast double* %28 to %union.GCObject** ; [#uses=1]
+ %30 = load %union.GCObject** %29, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %union.GCObject* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = bitcast %struct.lua_State* %31 to %union.Closure* ; [#uses=1]
+ %33 = getelementptr inbounds %union.Closure* %32, i32 0, i32 0 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.CClosure* %33, i32 0, i32 3 ; [#uses=1]
+ %35 = load i8* %34, align 1 ; [#uses=1]
+ %36 = icmp ne i8 %35, 0 ; [#uses=1]
+ br i1 %36, label %37, label %51
+
+; <label>:37 ; preds = %21
+ %38 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %39 = load %struct.lua_TValue** %firstArg, align 4 ; [#uses=1]
+ %40 = call i32 @_Z12luaD_poscallP9lua_StateP10lua_TValue(%struct.lua_State* %38, %struct.lua_TValue* %39) ; [#uses=1]
+ %41 = icmp ne i32 %40, 0 ; [#uses=1]
+ br i1 %41, label %42, label %50
+
+; <label>:42 ; preds = %37
+ %43 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.lua_State* %43, i32 0, i32 7 ; [#uses=1]
+ %45 = load %struct.CallInfo** %44, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.CallInfo* %45, i32 0, i32 2 ; [#uses=1]
+ %47 = load %struct.lua_TValue** %46, align 4 ; [#uses=1]
+ %48 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.lua_State* %48, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %47, %struct.lua_TValue** %49, align 4
+ br label %50
+
+; <label>:50 ; preds = %42, %37
+ br label %59
+
+; <label>:51 ; preds = %21
+ %52 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.lua_State* %52, i32 0, i32 7 ; [#uses=1]
+ %54 = load %struct.CallInfo** %53, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.CallInfo* %54, i32 0, i32 0 ; [#uses=1]
+ %56 = load %struct.lua_TValue** %55, align 4 ; [#uses=1]
+ %57 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.lua_State* %57, i32 0, i32 5 ; [#uses=1]
+ store %struct.lua_TValue* %56, %struct.lua_TValue** %58, align 4
+ br label %59
+
+; <label>:59 ; preds = %51, %50
+ br label %60
+
+; <label>:60 ; preds = %59, %20
+ %61 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %62 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.lua_State* %62, i32 0, i32 7 ; [#uses=1]
+ %64 = load %struct.CallInfo** %63, align 4 ; [#uses=1]
+ %65 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.lua_State* %65, i32 0, i32 12 ; [#uses=1]
+ %67 = load %struct.CallInfo** %66, align 4 ; [#uses=1]
+ %68 = ptrtoint %struct.CallInfo* %64 to i32 ; [#uses=1]
+ %69 = ptrtoint %struct.CallInfo* %67 to i32 ; [#uses=1]
+ %70 = sub i32 %68, %69 ; [#uses=1]
+ %71 = sdiv exact i32 %70, 24 ; [#uses=1]
+ call void @_Z12luaV_executeP9lua_Statei(%struct.lua_State* %61, i32 %71)
+ br label %72
+
+; <label>:72 ; preds = %60, %19
+ ret void
+}
+
+; [#uses=1]
+define i32 @_Z9lua_yieldP9lua_Statei(%struct.lua_State* %L, i32 %nresults) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %nresults, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 15 ; [#uses=1]
+ %5 = load i16* %4, align 2 ; [#uses=1]
+ %6 = zext i16 %5 to i32 ; [#uses=1]
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_State* %7, i32 0, i32 16 ; [#uses=1]
+ %9 = load i16* %8, align 2 ; [#uses=1]
+ %10 = zext i16 %9 to i32 ; [#uses=1]
+ %11 = icmp sgt i32 %6, %10 ; [#uses=1]
+ br i1 %11, label %12, label %14
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %13, i8* getelementptr inbounds ([51 x i8]* @.str425, i32 0, i32 0))
+ br label %14
+
+; <label>:14 ; preds = %12, %0
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_State* %15, i32 0, i32 4 ; [#uses=1]
+ %17 = load %struct.lua_TValue** %16, align 4 ; [#uses=1]
+ %18 = load i32* %2, align 4 ; [#uses=1]
+ %19 = sub i32 0, %18 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_TValue* %17, i32 %19 ; [#uses=1]
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_State* %21, i32 0, i32 5 ; [#uses=1]
+ store %struct.lua_TValue* %20, %struct.lua_TValue** %22, align 4
+ %23 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_State* %23, i32 0, i32 3 ; [#uses=1]
+ store i8 1, i8* %24, align 1
+ ret i32 -1
+}
+
+; [#uses=3]
+define hidden i32 @_Z10luaD_pcallP9lua_StatePFvS0_PvES1_ii(%struct.lua_State* %L, void (%struct.lua_State*, i8*)* %func, i8* %u, i32 %old_top, i32 %ef) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=21]
+ %2 = alloca void (%struct.lua_State*, i8*)*, align 4 ; [#uses=2]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ %4 = alloca i32, align 4 ; [#uses=2]
+ %5 = alloca i32, align 4 ; [#uses=2]
+ %status = alloca i32, align 4 ; [#uses=4]
+ %oldnCcalls = alloca i16, align 2 ; [#uses=2]
+ %old_ci = alloca i32, align 4 ; [#uses=2]
+ %old_allowhooks = alloca i8, align 1 ; [#uses=2]
+ %old_errfunc = alloca i32, align 4 ; [#uses=2]
+ %oldtop = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store void (%struct.lua_State*, i8*)* %func, void (%struct.lua_State*, i8*)** %2, align 4
+ store i8* %u, i8** %3, align 4
+ store i32 %old_top, i32* %4, align 4
+ store i32 %ef, i32* %5, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 15 ; [#uses=1]
+ %8 = load i16* %7, align 2 ; [#uses=1]
+ store i16 %8, i16* %oldnCcalls, align 2
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_State* %9, i32 0, i32 7 ; [#uses=1]
+ %11 = load %struct.CallInfo** %10, align 4 ; [#uses=1]
+ %12 = bitcast %struct.CallInfo* %11 to i8* ; [#uses=1]
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_State* %13, i32 0, i32 12 ; [#uses=1]
+ %15 = load %struct.CallInfo** %14, align 4 ; [#uses=1]
+ %16 = bitcast %struct.CallInfo* %15 to i8* ; [#uses=1]
+ %17 = ptrtoint i8* %12 to i32 ; [#uses=1]
+ %18 = ptrtoint i8* %16 to i32 ; [#uses=1]
+ %19 = sub i32 %17, %18 ; [#uses=1]
+ store i32 %19, i32* %old_ci, align 4
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_State* %20, i32 0, i32 18 ; [#uses=1]
+ %22 = load i8* %21, align 1 ; [#uses=1]
+ store i8 %22, i8* %old_allowhooks, align 1
+ %23 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_State* %23, i32 0, i32 27 ; [#uses=1]
+ %25 = load i32* %24, align 4 ; [#uses=1]
+ store i32 %25, i32* %old_errfunc, align 4
+ %26 = load i32* %5, align 4 ; [#uses=1]
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_State* %27, i32 0, i32 27 ; [#uses=1]
+ store i32 %26, i32* %28, align 4
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %30 = load void (%struct.lua_State*, i8*)** %2, align 4 ; [#uses=1]
+ %31 = load i8** %3, align 4 ; [#uses=1]
+ %32 = call i32 @_Z20luaD_rawrunprotectedP9lua_StatePFvS0_PvES1_(%struct.lua_State* %29, void (%struct.lua_State*, i8*)* %30, i8* %31) ; [#uses=1]
+ store i32 %32, i32* %status, align 4
+ %33 = load i32* %status, align 4 ; [#uses=1]
+ %34 = icmp ne i32 %33, 0 ; [#uses=1]
+ br i1 %34, label %35, label %78
+
+; <label>:35 ; preds = %0
+ %36 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.lua_State* %36, i32 0, i32 10 ; [#uses=1]
+ %38 = load %struct.lua_TValue** %37, align 4 ; [#uses=1]
+ %39 = bitcast %struct.lua_TValue* %38 to i8* ; [#uses=1]
+ %40 = load i32* %4, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds i8* %39, i32 %40 ; [#uses=1]
+ %42 = bitcast i8* %41 to %struct.lua_TValue* ; [#uses=1]
+ store %struct.lua_TValue* %42, %struct.lua_TValue** %oldtop, align 4
+ %43 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %44 = load %struct.lua_TValue** %oldtop, align 4 ; [#uses=1]
+ call void @_Z10luaF_closeP9lua_StateP10lua_TValue(%struct.lua_State* %43, %struct.lua_TValue* %44)
+ %45 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %46 = load i32* %status, align 4 ; [#uses=1]
+ %47 = load %struct.lua_TValue** %oldtop, align 4 ; [#uses=1]
+ call void @_Z16luaD_seterrorobjP9lua_StateiP10lua_TValue(%struct.lua_State* %45, i32 %46, %struct.lua_TValue* %47)
+ %48 = load i16* %oldnCcalls, align 2 ; [#uses=1]
+ %49 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.lua_State* %49, i32 0, i32 15 ; [#uses=1]
+ store i16 %48, i16* %50, align 2
+ %51 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.lua_State* %51, i32 0, i32 12 ; [#uses=1]
+ %53 = load %struct.CallInfo** %52, align 4 ; [#uses=1]
+ %54 = bitcast %struct.CallInfo* %53 to i8* ; [#uses=1]
+ %55 = load i32* %old_ci, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds i8* %54, i32 %55 ; [#uses=1]
+ %57 = bitcast i8* %56 to %struct.CallInfo* ; [#uses=1]
+ %58 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.lua_State* %58, i32 0, i32 7 ; [#uses=1]
+ store %struct.CallInfo* %57, %struct.CallInfo** %59, align 4
+ %60 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.lua_State* %60, i32 0, i32 7 ; [#uses=1]
+ %62 = load %struct.CallInfo** %61, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.CallInfo* %62, i32 0, i32 0 ; [#uses=1]
+ %64 = load %struct.lua_TValue** %63, align 4 ; [#uses=1]
+ %65 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.lua_State* %65, i32 0, i32 5 ; [#uses=1]
+ store %struct.lua_TValue* %64, %struct.lua_TValue** %66, align 4
+ %67 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.lua_State* %67, i32 0, i32 7 ; [#uses=1]
+ %69 = load %struct.CallInfo** %68, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.CallInfo* %69, i32 0, i32 3 ; [#uses=1]
+ %71 = load i32** %70, align 4 ; [#uses=1]
+ %72 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.lua_State* %72, i32 0, i32 8 ; [#uses=1]
+ store i32* %71, i32** %73, align 4
+ %74 = load i8* %old_allowhooks, align 1 ; [#uses=1]
+ %75 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %76 = getelementptr inbounds %struct.lua_State* %75, i32 0, i32 18 ; [#uses=1]
+ store i8 %74, i8* %76, align 1
+ %77 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z19restore_stack_limitP9lua_State(%struct.lua_State* %77)
+ br label %78
+
+; <label>:78 ; preds = %35, %0
+ %79 = load i32* %old_errfunc, align 4 ; [#uses=1]
+ %80 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.lua_State* %80, i32 0, i32 27 ; [#uses=1]
+ store i32 %79, i32* %81, align 4
+ %82 = load i32* %status, align 4 ; [#uses=1]
+ ret i32 %82
+}
+
+; [#uses=2]
+define internal void @_Z19restore_stack_limitP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %inuse = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 14 ; [#uses=1]
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = icmp sgt i32 %4, 20000 ; [#uses=1]
+ br i1 %5, label %6, label %23
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_State* %7, i32 0, i32 7 ; [#uses=1]
+ %9 = load %struct.CallInfo** %8, align 4 ; [#uses=1]
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_State* %10, i32 0, i32 12 ; [#uses=1]
+ %12 = load %struct.CallInfo** %11, align 4 ; [#uses=1]
+ %13 = ptrtoint %struct.CallInfo* %9 to i32 ; [#uses=1]
+ %14 = ptrtoint %struct.CallInfo* %12 to i32 ; [#uses=1]
+ %15 = sub i32 %13, %14 ; [#uses=1]
+ %16 = sdiv exact i32 %15, 24 ; [#uses=1]
+ store i32 %16, i32* %inuse, align 4
+ %17 = load i32* %inuse, align 4 ; [#uses=1]
+ %18 = add nsw i32 %17, 1 ; [#uses=1]
+ %19 = icmp slt i32 %18, 20000 ; [#uses=1]
+ br i1 %19, label %20, label %22
+
+; <label>:20 ; preds = %6
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaD_reallocCIP9lua_Statei(%struct.lua_State* %21, i32 20000)
+ br label %22
+
+; <label>:22 ; preds = %20, %6
+ br label %23
+
+; <label>:23 ; preds = %22, %0
+ ret void
+}
+
+; [#uses=1]
+define hidden i32 @_Z20luaD_protectedparserP9lua_StateP3ZioPKc(%struct.lua_State* %L, %struct.Zio* %z, i8* %name) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %2 = alloca %struct.Zio*, align 4 ; [#uses=2]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ %p = alloca %struct.SParser, align 4 ; [#uses=9]
+ %status = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.Zio* %z, %struct.Zio** %2, align 4
+ store i8* %name, i8** %3, align 4
+ %4 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.SParser* %p, i32 0, i32 0 ; [#uses=1]
+ store %struct.Zio* %4, %struct.Zio** %5, align 4
+ %6 = load i8** %3, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.SParser* %p, i32 0, i32 2 ; [#uses=1]
+ store i8* %6, i8** %7, align 4
+ %8 = getelementptr inbounds %struct.SParser* %p, i32 0, i32 1 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.Mbuffer* %8, i32 0, i32 0 ; [#uses=1]
+ store i8* null, i8** %9, align 4
+ %10 = getelementptr inbounds %struct.SParser* %p, i32 0, i32 1 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Mbuffer* %10, i32 0, i32 2 ; [#uses=1]
+ store i32 0, i32* %11, align 4
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = bitcast %struct.SParser* %p to i8* ; [#uses=1]
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_State* %14, i32 0, i32 4 ; [#uses=1]
+ %16 = load %struct.lua_TValue** %15, align 4 ; [#uses=1]
+ %17 = bitcast %struct.lua_TValue* %16 to i8* ; [#uses=1]
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_State* %18, i32 0, i32 10 ; [#uses=1]
+ %20 = load %struct.lua_TValue** %19, align 4 ; [#uses=1]
+ %21 = bitcast %struct.lua_TValue* %20 to i8* ; [#uses=1]
+ %22 = ptrtoint i8* %17 to i32 ; [#uses=1]
+ %23 = ptrtoint i8* %21 to i32 ; [#uses=1]
+ %24 = sub i32 %22, %23 ; [#uses=1]
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_State* %25, i32 0, i32 27 ; [#uses=1]
+ %27 = load i32* %26, align 4 ; [#uses=1]
+ %28 = call i32 @_Z10luaD_pcallP9lua_StatePFvS0_PvES1_ii(%struct.lua_State* %12, void (%struct.lua_State*, i8*)* @_Z8f_parserP9lua_StatePv, i8* %13, i32 %24, i32 %27) ; [#uses=1]
+ store i32 %28, i32* %status, align 4
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.SParser* %p, i32 0, i32 1 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.Mbuffer* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = load i8** %31, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.SParser* %p, i32 0, i32 1 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.Mbuffer* %33, i32 0, i32 2 ; [#uses=1]
+ %35 = load i32* %34, align 4 ; [#uses=1]
+ %36 = mul i32 %35, 1 ; [#uses=1]
+ %37 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %29, i8* %32, i32 %36, i32 0) ; [#uses=1]
+ %38 = getelementptr inbounds %struct.SParser* %p, i32 0, i32 1 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.Mbuffer* %38, i32 0, i32 0 ; [#uses=1]
+ store i8* %37, i8** %39, align 4
+ %40 = getelementptr inbounds %struct.SParser* %p, i32 0, i32 1 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.Mbuffer* %40, i32 0, i32 2 ; [#uses=1]
+ store i32 0, i32* %41, align 4
+ %42 = load i32* %status, align 4 ; [#uses=1]
+ ret i32 %42
+}
+
+; [#uses=1]
+define internal void @_Z8f_parserP9lua_StatePv(%struct.lua_State* %L, i8* %ud) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=13]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %i = alloca i32, align 4 ; [#uses=5]
+ %tf = alloca %struct.Proto*, align 4 ; [#uses=4]
+ %cl = alloca %union.Closure*, align 4 ; [#uses=4]
+ %p = alloca %struct.SParser*, align 4 ; [#uses=5]
+ %c = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca %struct.Proto* (%struct.lua_State*, %struct.Zio*, %struct.Mbuffer*, i8*)* ; [#uses=3]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %ud, i8** %2, align 4
+ %4 = load i8** %2, align 4 ; [#uses=1]
+ %5 = bitcast i8* %4 to %struct.SParser* ; [#uses=1]
+ store %struct.SParser* %5, %struct.SParser** %p, align 4
+ %6 = load %struct.SParser** %p, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.SParser* %6, i32 0, i32 0 ; [#uses=1]
+ %8 = load %struct.Zio** %7, align 4 ; [#uses=1]
+ %9 = call i32 @_Z14luaZ_lookaheadP3Zio(%struct.Zio* %8) ; [#uses=1]
+ store i32 %9, i32* %c, align 4
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_State* %10, i32 0, i32 6 ; [#uses=1]
+ %12 = load %struct.global_State** %11, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.global_State* %12, i32 0, i32 14 ; [#uses=1]
+ %14 = load i32* %13, align 4 ; [#uses=1]
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_State* %15, i32 0, i32 6 ; [#uses=1]
+ %17 = load %struct.global_State** %16, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.global_State* %17, i32 0, i32 13 ; [#uses=1]
+ %19 = load i32* %18, align 4 ; [#uses=1]
+ %20 = icmp uge i32 %14, %19 ; [#uses=1]
+ br i1 %20, label %21, label %23
+
+; <label>:21 ; preds = %0
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9luaC_stepP9lua_State(%struct.lua_State* %22)
+ br label %23
+
+; <label>:23 ; preds = %21, %0
+ %24 = load i32* %c, align 4 ; [#uses=1]
+ %25 = load i8* getelementptr inbounds ([5 x i8]* @.str526, i32 0, i32 0) ; [#uses=1]
+ %26 = sext i8 %25 to i32 ; [#uses=1]
+ %27 = icmp eq i32 %24, %26 ; [#uses=1]
+ br i1 %27, label %28, label %29
+
+; <label>:28 ; preds = %23
+ store %struct.Proto* (%struct.lua_State*, %struct.Zio*, %struct.Mbuffer*, i8*)* @_Z11luaU_undumpP9lua_StateP3ZioP7MbufferPKc, %struct.Proto* (%struct.lua_State*, %struct.Zio*, %struct.Mbuffer*, i8*)** %3
+ br label %30
+
+; <label>:29 ; preds = %23
+ store %struct.Proto* (%struct.lua_State*, %struct.Zio*, %struct.Mbuffer*, i8*)* @_Z11luaY_parserP9lua_StateP3ZioP7MbufferPKc, %struct.Proto* (%struct.lua_State*, %struct.Zio*, %struct.Mbuffer*, i8*)** %3
+ br label %30
+
+; <label>:30 ; preds = %29, %28
+ %31 = load %struct.Proto* (%struct.lua_State*, %struct.Zio*, %struct.Mbuffer*, i8*)** %3 ; [#uses=1]
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = load %struct.SParser** %p, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.SParser* %33, i32 0, i32 0 ; [#uses=1]
+ %35 = load %struct.Zio** %34, align 4 ; [#uses=1]
+ %36 = load %struct.SParser** %p, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.SParser* %36, i32 0, i32 1 ; [#uses=1]
+ %38 = load %struct.SParser** %p, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.SParser* %38, i32 0, i32 2 ; [#uses=1]
+ %40 = load i8** %39, align 4 ; [#uses=1]
+ %41 = call %struct.Proto* %31(%struct.lua_State* %32, %struct.Zio* %35, %struct.Mbuffer* %37, i8* %40) ; [#uses=1]
+ store %struct.Proto* %41, %struct.Proto** %tf, align 4
+ %42 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %43 = load %struct.Proto** %tf, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.Proto* %43, i32 0, i32 19 ; [#uses=1]
+ %45 = load i8* %44, align 1 ; [#uses=1]
+ %46 = zext i8 %45 to i32 ; [#uses=1]
+ %47 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.lua_State* %47, i32 0, i32 22 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.lua_TValue* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = getelementptr inbounds %union.anon* %49, i32 0, i32 0 ; [#uses=1]
+ %51 = bitcast double* %50 to %union.GCObject** ; [#uses=1]
+ %52 = load %union.GCObject** %51, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %union.GCObject* %52, i32 0, i32 0 ; [#uses=1]
+ %54 = bitcast %struct.lua_State* %53 to %struct.Table* ; [#uses=1]
+ %55 = call %union.Closure* @_Z16luaF_newLclosureP9lua_StateiP5Table(%struct.lua_State* %42, i32 %46, %struct.Table* %54) ; [#uses=1]
+ store %union.Closure* %55, %union.Closure** %cl, align 4
+ %56 = load %struct.Proto** %tf, align 4 ; [#uses=1]
+ %57 = load %union.Closure** %cl, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %union.Closure* %57, i32 0, i32 0 ; [#uses=1]
+ %59 = bitcast %struct.CClosure* %58 to %struct.LClosure* ; [#uses=1]
+ %60 = getelementptr inbounds %struct.LClosure* %59, i32 0, i32 7 ; [#uses=1]
+ store %struct.Proto* %56, %struct.Proto** %60, align 4
+ store i32 0, i32* %i, align 4
+ br label %61
+
+; <label>:61 ; preds = %77, %30
+ %62 = load i32* %i, align 4 ; [#uses=1]
+ %63 = load %struct.Proto** %tf, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.Proto* %63, i32 0, i32 19 ; [#uses=1]
+ %65 = load i8* %64, align 1 ; [#uses=1]
+ %66 = zext i8 %65 to i32 ; [#uses=1]
+ %67 = icmp slt i32 %62, %66 ; [#uses=1]
+ br i1 %67, label %68, label %80
+
+; <label>:68 ; preds = %61
+ %69 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %70 = call %struct.UpVal* @_Z13luaF_newupvalP9lua_State(%struct.lua_State* %69) ; [#uses=1]
+ %71 = load i32* %i, align 4 ; [#uses=1]
+ %72 = load %union.Closure** %cl, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %union.Closure* %72, i32 0, i32 0 ; [#uses=1]
+ %74 = bitcast %struct.CClosure* %73 to %struct.LClosure* ; [#uses=1]
+ %75 = getelementptr inbounds %struct.LClosure* %74, i32 0, i32 8 ; [#uses=1]
+ %76 = getelementptr inbounds [1 x %struct.UpVal*]* %75, i32 0, i32 %71 ; [#uses=1]
+ store %struct.UpVal* %70, %struct.UpVal** %76
+ br label %77
+
+; <label>:77 ; preds = %68
+ %78 = load i32* %i, align 4 ; [#uses=1]
+ %79 = add nsw i32 %78, 1 ; [#uses=1]
+ store i32 %79, i32* %i, align 4
+ br label %61
+
+; <label>:80 ; preds = %61
+ %81 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %82 = getelementptr inbounds %struct.lua_State* %81, i32 0, i32 4 ; [#uses=1]
+ %83 = load %struct.lua_TValue** %82, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %83, %struct.lua_TValue** %i_o, align 4
+ %84 = load %union.Closure** %cl, align 4 ; [#uses=1]
+ %85 = bitcast %union.Closure* %84 to %union.GCObject* ; [#uses=1]
+ %86 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %87 = getelementptr inbounds %struct.lua_TValue* %86, i32 0, i32 0 ; [#uses=1]
+ %88 = getelementptr inbounds %union.anon* %87, i32 0, i32 0 ; [#uses=1]
+ %89 = bitcast double* %88 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %85, %union.GCObject** %89, align 4
+ %90 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %91 = getelementptr inbounds %struct.lua_TValue* %90, i32 0, i32 1 ; [#uses=1]
+ store i32 6, i32* %91, align 4
+ %92 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %93 = getelementptr inbounds %struct.lua_State* %92, i32 0, i32 9 ; [#uses=1]
+ %94 = load %struct.lua_TValue** %93, align 4 ; [#uses=1]
+ %95 = bitcast %struct.lua_TValue* %94 to i8* ; [#uses=1]
+ %96 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %97 = getelementptr inbounds %struct.lua_State* %96, i32 0, i32 4 ; [#uses=1]
+ %98 = load %struct.lua_TValue** %97, align 4 ; [#uses=1]
+ %99 = bitcast %struct.lua_TValue* %98 to i8* ; [#uses=1]
+ %100 = ptrtoint i8* %95 to i32 ; [#uses=1]
+ %101 = ptrtoint i8* %99 to i32 ; [#uses=1]
+ %102 = sub i32 %100, %101 ; [#uses=1]
+ %103 = icmp sle i32 %102, 12 ; [#uses=1]
+ br i1 %103, label %104, label %106
+
+; <label>:104 ; preds = %80
+ %105 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %105, i32 1)
+ br label %107
+
+; <label>:106 ; preds = %80
+ br label %107
+
+; <label>:107 ; preds = %106, %104
+ %108 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %109 = getelementptr inbounds %struct.lua_State* %108, i32 0, i32 4 ; [#uses=2]
+ %110 = load %struct.lua_TValue** %109, align 4 ; [#uses=1]
+ %111 = getelementptr inbounds %struct.lua_TValue* %110, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %111, %struct.lua_TValue** %109, align 4
+ ret void
+}
+
+; [#uses=1]
+define hidden i32 @_Z9luaU_dumpP9lua_StatePK5ProtoPFiS0_PKvjPvES6_i(%struct.lua_State* %L, %struct.Proto* %f, i32 (%struct.lua_State*, i8*, i32, i8*)* %w, i8* %data, i32 %strip) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca %struct.Proto*, align 4 ; [#uses=2]
+ %3 = alloca i32 (%struct.lua_State*, i8*, i32, i8*)*, align 4 ; [#uses=2]
+ %4 = alloca i8*, align 4 ; [#uses=2]
+ %5 = alloca i32, align 4 ; [#uses=2]
+ %D = alloca %12, align 4 ; [#uses=8]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.Proto* %f, %struct.Proto** %2, align 4
+ store i32 (%struct.lua_State*, i8*, i32, i8*)* %w, i32 (%struct.lua_State*, i8*, i32, i8*)** %3, align 4
+ store i8* %data, i8** %4, align 4
+ store i32 %strip, i32* %5, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %12* %D, i32 0, i32 0 ; [#uses=1]
+ store %struct.lua_State* %6, %struct.lua_State** %7, align 4
+ %8 = load i32 (%struct.lua_State*, i8*, i32, i8*)** %3, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %12* %D, i32 0, i32 1 ; [#uses=1]
+ store i32 (%struct.lua_State*, i8*, i32, i8*)* %8, i32 (%struct.lua_State*, i8*, i32, i8*)** %9, align 4
+ %10 = load i8** %4, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %12* %D, i32 0, i32 2 ; [#uses=1]
+ store i8* %10, i8** %11, align 4
+ %12 = load i32* %5, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %12* %D, i32 0, i32 3 ; [#uses=1]
+ store i32 %12, i32* %13, align 4
+ %14 = getelementptr inbounds %12* %D, i32 0, i32 4 ; [#uses=1]
+ store i32 0, i32* %14, align 4
+ call void @_Z10DumpHeaderP9DumpState(%12* %D)
+ %15 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ call void @_Z12DumpFunctionPK5ProtoPK7TStringP9DumpState(%struct.Proto* %15, %union.TString* null, %12* %D)
+ %16 = getelementptr inbounds %12* %D, i32 0, i32 4 ; [#uses=1]
+ %17 = load i32* %16, align 4 ; [#uses=1]
+ ret i32 %17
+}
+
+; [#uses=1]
+define internal void @_Z10DumpHeaderP9DumpState(%12* %D) {
+ %1 = alloca %12*, align 4 ; [#uses=2]
+ %h = alloca [12 x i8], align 1 ; [#uses=2]
+ store %12* %D, %12** %1, align 4
+ %2 = getelementptr inbounds [12 x i8]* %h, i32 0, i32 0 ; [#uses=1]
+ call void @_Z11luaU_headerPc(i8* %2)
+ %3 = getelementptr inbounds [12 x i8]* %h, i32 0, i32 0 ; [#uses=1]
+ %4 = load %12** %1, align 4 ; [#uses=1]
+ call void @_Z9DumpBlockPKvjP9DumpState(i8* %3, i32 12, %12* %4)
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z12DumpFunctionPK5ProtoPK7TStringP9DumpState(%struct.Proto* %f, %union.TString* %p, %12* %D) {
+ %1 = alloca %struct.Proto*, align 4 ; [#uses=13]
+ %2 = alloca %union.TString*, align 4 ; [#uses=2]
+ %3 = alloca %12*, align 4 ; [#uses=12]
+ store %struct.Proto* %f, %struct.Proto** %1, align 4
+ store %union.TString* %p, %union.TString** %2, align 4
+ store %12* %D, %12** %3, align 4
+ %4 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.Proto* %4, i32 0, i32 9 ; [#uses=1]
+ %6 = load %union.TString** %5, align 4 ; [#uses=1]
+ %7 = load %union.TString** %2, align 4 ; [#uses=1]
+ %8 = icmp eq %union.TString* %6, %7 ; [#uses=1]
+ br i1 %8, label %14, label %9
+
+; <label>:9 ; preds = %0
+ %10 = load %12** %3, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %12* %10, i32 0, i32 3 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ %13 = icmp ne i32 %12, 0 ; [#uses=1]
+ br i1 %13, label %14, label %15
+
+; <label>:14 ; preds = %9, %0
+ br label %19
+
+; <label>:15 ; preds = %9
+ %16 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.Proto* %16, i32 0, i32 9 ; [#uses=1]
+ %18 = load %union.TString** %17, align 4 ; [#uses=1]
+ br label %19
+
+; <label>:19 ; preds = %15, %14
+ %20 = phi %union.TString* [ null, %14 ], [ %18, %15 ] ; [#uses=1]
+ %21 = load %12** %3, align 4 ; [#uses=1]
+ call void @_Z10DumpStringPK7TStringP9DumpState(%union.TString* %20, %12* %21)
+ %22 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.Proto* %22, i32 0, i32 16 ; [#uses=1]
+ %24 = load i32* %23, align 4 ; [#uses=1]
+ %25 = load %12** %3, align 4 ; [#uses=1]
+ call void @_Z7DumpIntiP9DumpState(i32 %24, %12* %25)
+ %26 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.Proto* %26, i32 0, i32 17 ; [#uses=1]
+ %28 = load i32* %27, align 4 ; [#uses=1]
+ %29 = load %12** %3, align 4 ; [#uses=1]
+ call void @_Z7DumpIntiP9DumpState(i32 %28, %12* %29)
+ %30 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.Proto* %30, i32 0, i32 19 ; [#uses=1]
+ %32 = load i8* %31, align 1 ; [#uses=1]
+ %33 = zext i8 %32 to i32 ; [#uses=1]
+ %34 = load %12** %3, align 4 ; [#uses=1]
+ call void @_Z8DumpChariP9DumpState(i32 %33, %12* %34)
+ %35 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.Proto* %35, i32 0, i32 20 ; [#uses=1]
+ %37 = load i8* %36, align 1 ; [#uses=1]
+ %38 = zext i8 %37 to i32 ; [#uses=1]
+ %39 = load %12** %3, align 4 ; [#uses=1]
+ call void @_Z8DumpChariP9DumpState(i32 %38, %12* %39)
+ %40 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.Proto* %40, i32 0, i32 21 ; [#uses=1]
+ %42 = load i8* %41, align 1 ; [#uses=1]
+ %43 = zext i8 %42 to i32 ; [#uses=1]
+ %44 = load %12** %3, align 4 ; [#uses=1]
+ call void @_Z8DumpChariP9DumpState(i32 %43, %12* %44)
+ %45 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.Proto* %45, i32 0, i32 22 ; [#uses=1]
+ %47 = load i8* %46, align 1 ; [#uses=1]
+ %48 = zext i8 %47 to i32 ; [#uses=1]
+ %49 = load %12** %3, align 4 ; [#uses=1]
+ call void @_Z8DumpChariP9DumpState(i32 %48, %12* %49)
+ %50 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.Proto* %50, i32 0, i32 4 ; [#uses=1]
+ %52 = load i32** %51, align 4 ; [#uses=1]
+ %53 = bitcast i32* %52 to i8* ; [#uses=1]
+ %54 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.Proto* %54, i32 0, i32 12 ; [#uses=1]
+ %56 = load i32* %55, align 4 ; [#uses=1]
+ %57 = load %12** %3, align 4 ; [#uses=1]
+ call void @_Z10DumpVectorPKvijP9DumpState(i8* %53, i32 %56, i32 4, %12* %57)
+ %58 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %59 = load %12** %3, align 4 ; [#uses=1]
+ call void @_Z13DumpConstantsPK5ProtoP9DumpState(%struct.Proto* %58, %12* %59)
+ %60 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %61 = load %12** %3, align 4 ; [#uses=1]
+ call void @_Z9DumpDebugPK5ProtoP9DumpState(%struct.Proto* %60, %12* %61)
+ ret void
+}
+
+; [#uses=4]
+define internal void @_Z10DumpStringPK7TStringP9DumpState(%union.TString* %s, %12* %D) {
+ %1 = alloca %union.TString*, align 4 ; [#uses=5]
+ %2 = alloca %12*, align 4 ; [#uses=4]
+ %size = alloca i32, align 4 ; [#uses=2]
+ %size1 = alloca i32, align 4 ; [#uses=3]
+ store %union.TString* %s, %union.TString** %1, align 4
+ store %12* %D, %12** %2, align 4
+ %3 = load %union.TString** %1, align 4 ; [#uses=1]
+ %4 = icmp eq %union.TString* %3, null ; [#uses=1]
+ br i1 %4, label %10, label %5
+
+; <label>:5 ; preds = %0
+ %6 = load %union.TString** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %union.TString* %6, i32 1 ; [#uses=1]
+ %8 = bitcast %union.TString* %7 to i8* ; [#uses=1]
+ %9 = icmp eq i8* %8, null ; [#uses=1]
+ br i1 %9, label %10, label %13
+
+; <label>:10 ; preds = %5, %0
+ store i32 0, i32* %size, align 4
+ %11 = bitcast i32* %size to i8* ; [#uses=1]
+ %12 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z9DumpBlockPKvjP9DumpState(i8* %11, i32 4, %12* %12)
+ br label %26
+
+; <label>:13 ; preds = %5
+ %14 = load %union.TString** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %union.TString* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.anon* %15, i32 0, i32 5 ; [#uses=1]
+ %17 = load i32* %16, align 4 ; [#uses=1]
+ %18 = add i32 %17, 1 ; [#uses=1]
+ store i32 %18, i32* %size1, align 4
+ %19 = bitcast i32* %size1 to i8* ; [#uses=1]
+ %20 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z9DumpBlockPKvjP9DumpState(i8* %19, i32 4, %12* %20)
+ %21 = load %union.TString** %1, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %union.TString* %21, i32 1 ; [#uses=1]
+ %23 = bitcast %union.TString* %22 to i8* ; [#uses=1]
+ %24 = load i32* %size1, align 4 ; [#uses=1]
+ %25 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z9DumpBlockPKvjP9DumpState(i8* %23, i32 %24, %12* %25)
+ br label %26
+
+; <label>:26 ; preds = %13, %10
+ ret void
+}
+
+; [#uses=9]
+define internal void @_Z7DumpIntiP9DumpState(i32 %x, %12* %D) {
+ %1 = alloca i32, align 4 ; [#uses=2]
+ %2 = alloca %12*, align 4 ; [#uses=2]
+ store i32 %x, i32* %1, align 4
+ store %12* %D, %12** %2, align 4
+ %3 = bitcast i32* %1 to i8* ; [#uses=1]
+ %4 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z9DumpBlockPKvjP9DumpState(i8* %3, i32 4, %12* %4)
+ ret void
+}
+
+; [#uses=6]
+define internal void @_Z8DumpChariP9DumpState(i32 %y, %12* %D) {
+ %1 = alloca i32, align 4 ; [#uses=2]
+ %2 = alloca %12*, align 4 ; [#uses=2]
+ %x = alloca i8, align 1 ; [#uses=2]
+ store i32 %y, i32* %1, align 4
+ store %12* %D, %12** %2, align 4
+ %3 = load i32* %1, align 4 ; [#uses=1]
+ %4 = trunc i32 %3 to i8 ; [#uses=1]
+ store i8 %4, i8* %x, align 1
+ %5 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z9DumpBlockPKvjP9DumpState(i8* %x, i32 1, %12* %5)
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z10DumpVectorPKvijP9DumpState(i8* %b, i32 %n, i32 %size, %12* %D) {
+ %1 = alloca i8*, align 4 ; [#uses=2]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca %12*, align 4 ; [#uses=3]
+ store i8* %b, i8** %1, align 4
+ store i32 %n, i32* %2, align 4
+ store i32 %size, i32* %3, align 4
+ store %12* %D, %12** %4, align 4
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = load %12** %4, align 4 ; [#uses=1]
+ call void @_Z7DumpIntiP9DumpState(i32 %5, %12* %6)
+ %7 = load i8** %1, align 4 ; [#uses=1]
+ %8 = load i32* %2, align 4 ; [#uses=1]
+ %9 = load i32* %3, align 4 ; [#uses=1]
+ %10 = mul i32 %8, %9 ; [#uses=1]
+ %11 = load %12** %4, align 4 ; [#uses=1]
+ call void @_Z9DumpBlockPKvjP9DumpState(i8* %7, i32 %10, %12* %11)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z13DumpConstantsPK5ProtoP9DumpState(%struct.Proto* %f, %12* %D) {
+ %1 = alloca %struct.Proto*, align 4 ; [#uses=6]
+ %2 = alloca %12*, align 4 ; [#uses=8]
+ %i = alloca i32, align 4 ; [#uses=10]
+ %n = alloca i32, align 4 ; [#uses=6]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=6]
+ store %struct.Proto* %f, %struct.Proto** %1, align 4
+ store %12* %D, %12** %2, align 4
+ %3 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.Proto* %3, i32 0, i32 11 ; [#uses=1]
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ store i32 %5, i32* %n, align 4
+ %6 = load i32* %n, align 4 ; [#uses=1]
+ %7 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z7DumpIntiP9DumpState(i32 %6, %12* %7)
+ store i32 0, i32* %i, align 4
+ br label %8
+
+; <label>:8 ; preds = %50, %0
+ %9 = load i32* %i, align 4 ; [#uses=1]
+ %10 = load i32* %n, align 4 ; [#uses=1]
+ %11 = icmp slt i32 %9, %10 ; [#uses=1]
+ br i1 %11, label %12, label %53
+
+; <label>:12 ; preds = %8
+ %13 = load i32* %i, align 4 ; [#uses=1]
+ %14 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.Proto* %14, i32 0, i32 3 ; [#uses=1]
+ %16 = load %struct.lua_TValue** %15, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_TValue* %16, i32 %13 ; [#uses=1]
+ store %struct.lua_TValue* %17, %struct.lua_TValue** %o, align 4
+ %18 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_TValue* %18, i32 0, i32 1 ; [#uses=1]
+ %20 = load i32* %19, align 4 ; [#uses=1]
+ %21 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z8DumpChariP9DumpState(i32 %20, %12* %21)
+ %22 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_TValue* %22, i32 0, i32 1 ; [#uses=1]
+ %24 = load i32* %23, align 4 ; [#uses=1]
+ switch i32 %24, label %48 [
+ i32 0, label %25
+ i32 1, label %26
+ i32 3, label %33
+ i32 4, label %39
+ ]
+
+; <label>:25 ; preds = %12
+ br label %49
+
+; <label>:26 ; preds = %12
+ %27 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_TValue* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = getelementptr inbounds %union.anon* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = bitcast double* %29 to i32* ; [#uses=1]
+ %31 = load i32* %30, align 4 ; [#uses=1]
+ %32 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z8DumpChariP9DumpState(i32 %31, %12* %32)
+ br label %49
+
+; <label>:33 ; preds = %12
+ %34 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_TValue* %34, i32 0, i32 0 ; [#uses=1]
+ %36 = getelementptr inbounds %union.anon* %35, i32 0, i32 0 ; [#uses=1]
+ %37 = load double* %36, align 4 ; [#uses=1]
+ %38 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z10DumpNumberdP9DumpState(double %37, %12* %38)
+ br label %49
+
+; <label>:39 ; preds = %12
+ %40 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.lua_TValue* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = getelementptr inbounds %union.anon* %41, i32 0, i32 0 ; [#uses=1]
+ %43 = bitcast double* %42 to %union.GCObject** ; [#uses=1]
+ %44 = load %union.GCObject** %43, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %union.GCObject* %44, i32 0, i32 0 ; [#uses=1]
+ %46 = bitcast %struct.lua_State* %45 to %union.TString* ; [#uses=1]
+ %47 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z10DumpStringPK7TStringP9DumpState(%union.TString* %46, %12* %47)
+ br label %49
+
+; <label>:48 ; preds = %12
+ br label %49
+
+; <label>:49 ; preds = %48, %39, %33, %26, %25
+ br label %50
+
+; <label>:50 ; preds = %49
+ %51 = load i32* %i, align 4 ; [#uses=1]
+ %52 = add nsw i32 %51, 1 ; [#uses=1]
+ store i32 %52, i32* %i, align 4
+ br label %8
+
+; <label>:53 ; preds = %8
+ %54 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.Proto* %54, i32 0, i32 14 ; [#uses=1]
+ %56 = load i32* %55, align 4 ; [#uses=1]
+ store i32 %56, i32* %n, align 4
+ %57 = load i32* %n, align 4 ; [#uses=1]
+ %58 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z7DumpIntiP9DumpState(i32 %57, %12* %58)
+ store i32 0, i32* %i, align 4
+ br label %59
+
+; <label>:59 ; preds = %74, %53
+ %60 = load i32* %i, align 4 ; [#uses=1]
+ %61 = load i32* %n, align 4 ; [#uses=1]
+ %62 = icmp slt i32 %60, %61 ; [#uses=1]
+ br i1 %62, label %63, label %77
+
+; <label>:63 ; preds = %59
+ %64 = load i32* %i, align 4 ; [#uses=1]
+ %65 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.Proto* %65, i32 0, i32 5 ; [#uses=1]
+ %67 = load %struct.Proto*** %66, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.Proto** %67, i32 %64 ; [#uses=1]
+ %69 = load %struct.Proto** %68 ; [#uses=1]
+ %70 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %71 = getelementptr inbounds %struct.Proto* %70, i32 0, i32 9 ; [#uses=1]
+ %72 = load %union.TString** %71, align 4 ; [#uses=1]
+ %73 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z12DumpFunctionPK5ProtoPK7TStringP9DumpState(%struct.Proto* %69, %union.TString* %72, %12* %73)
+ br label %74
+
+; <label>:74 ; preds = %63
+ %75 = load i32* %i, align 4 ; [#uses=1]
+ %76 = add nsw i32 %75, 1 ; [#uses=1]
+ store i32 %76, i32* %i, align 4
+ br label %59
+
+; <label>:77 ; preds = %59
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z9DumpDebugPK5ProtoP9DumpState(%struct.Proto* %f, %12* %D) {
+ %1 = alloca %struct.Proto*, align 4 ; [#uses=9]
+ %2 = alloca %12*, align 4 ; [#uses=11]
+ %i = alloca i32, align 4 ; [#uses=12]
+ %n = alloca i32, align 4 ; [#uses=8]
+ store %struct.Proto* %f, %struct.Proto** %1, align 4
+ store %12* %D, %12** %2, align 4
+ %3 = load %12** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %12* %3, i32 0, i32 3 ; [#uses=1]
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ %6 = icmp ne i32 %5, 0 ; [#uses=1]
+ br i1 %6, label %7, label %8
+
+; <label>:7 ; preds = %0
+ br label %12
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.Proto* %9, i32 0, i32 13 ; [#uses=1]
+ %11 = load i32* %10, align 4 ; [#uses=1]
+ br label %12
+
+; <label>:12 ; preds = %8, %7
+ %13 = phi i32 [ 0, %7 ], [ %11, %8 ] ; [#uses=1]
+ store i32 %13, i32* %n, align 4
+ %14 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.Proto* %14, i32 0, i32 6 ; [#uses=1]
+ %16 = load i32** %15, align 4 ; [#uses=1]
+ %17 = bitcast i32* %16 to i8* ; [#uses=1]
+ %18 = load i32* %n, align 4 ; [#uses=1]
+ %19 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z10DumpVectorPKvijP9DumpState(i8* %17, i32 %18, i32 4, %12* %19)
+ %20 = load %12** %2, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %12* %20, i32 0, i32 3 ; [#uses=1]
+ %22 = load i32* %21, align 4 ; [#uses=1]
+ %23 = icmp ne i32 %22, 0 ; [#uses=1]
+ br i1 %23, label %24, label %25
+
+; <label>:24 ; preds = %12
+ br label %29
+
+; <label>:25 ; preds = %12
+ %26 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.Proto* %26, i32 0, i32 15 ; [#uses=1]
+ %28 = load i32* %27, align 4 ; [#uses=1]
+ br label %29
+
+; <label>:29 ; preds = %25, %24
+ %30 = phi i32 [ 0, %24 ], [ %28, %25 ] ; [#uses=1]
+ store i32 %30, i32* %n, align 4
+ %31 = load i32* %n, align 4 ; [#uses=1]
+ %32 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z7DumpIntiP9DumpState(i32 %31, %12* %32)
+ store i32 0, i32* %i, align 4
+ br label %33
+
+; <label>:33 ; preds = %62, %29
+ %34 = load i32* %i, align 4 ; [#uses=1]
+ %35 = load i32* %n, align 4 ; [#uses=1]
+ %36 = icmp slt i32 %34, %35 ; [#uses=1]
+ br i1 %36, label %37, label %65
+
+; <label>:37 ; preds = %33
+ %38 = load i32* %i, align 4 ; [#uses=1]
+ %39 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.Proto* %39, i32 0, i32 7 ; [#uses=1]
+ %41 = load %struct.LocVar** %40, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.LocVar* %41, i32 %38 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.LocVar* %42, i32 0, i32 0 ; [#uses=1]
+ %44 = load %union.TString** %43, align 4 ; [#uses=1]
+ %45 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z10DumpStringPK7TStringP9DumpState(%union.TString* %44, %12* %45)
+ %46 = load i32* %i, align 4 ; [#uses=1]
+ %47 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.Proto* %47, i32 0, i32 7 ; [#uses=1]
+ %49 = load %struct.LocVar** %48, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.LocVar* %49, i32 %46 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.LocVar* %50, i32 0, i32 1 ; [#uses=1]
+ %52 = load i32* %51, align 4 ; [#uses=1]
+ %53 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z7DumpIntiP9DumpState(i32 %52, %12* %53)
+ %54 = load i32* %i, align 4 ; [#uses=1]
+ %55 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.Proto* %55, i32 0, i32 7 ; [#uses=1]
+ %57 = load %struct.LocVar** %56, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.LocVar* %57, i32 %54 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.LocVar* %58, i32 0, i32 2 ; [#uses=1]
+ %60 = load i32* %59, align 4 ; [#uses=1]
+ %61 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z7DumpIntiP9DumpState(i32 %60, %12* %61)
+ br label %62
+
+; <label>:62 ; preds = %37
+ %63 = load i32* %i, align 4 ; [#uses=1]
+ %64 = add nsw i32 %63, 1 ; [#uses=1]
+ store i32 %64, i32* %i, align 4
+ br label %33
+
+; <label>:65 ; preds = %33
+ %66 = load %12** %2, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %12* %66, i32 0, i32 3 ; [#uses=1]
+ %68 = load i32* %67, align 4 ; [#uses=1]
+ %69 = icmp ne i32 %68, 0 ; [#uses=1]
+ br i1 %69, label %70, label %71
+
+; <label>:70 ; preds = %65
+ br label %75
+
+; <label>:71 ; preds = %65
+ %72 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.Proto* %72, i32 0, i32 10 ; [#uses=1]
+ %74 = load i32* %73, align 4 ; [#uses=1]
+ br label %75
+
+; <label>:75 ; preds = %71, %70
+ %76 = phi i32 [ 0, %70 ], [ %74, %71 ] ; [#uses=1]
+ store i32 %76, i32* %n, align 4
+ %77 = load i32* %n, align 4 ; [#uses=1]
+ %78 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z7DumpIntiP9DumpState(i32 %77, %12* %78)
+ store i32 0, i32* %i, align 4
+ br label %79
+
+; <label>:79 ; preds = %91, %75
+ %80 = load i32* %i, align 4 ; [#uses=1]
+ %81 = load i32* %n, align 4 ; [#uses=1]
+ %82 = icmp slt i32 %80, %81 ; [#uses=1]
+ br i1 %82, label %83, label %94
+
+; <label>:83 ; preds = %79
+ %84 = load i32* %i, align 4 ; [#uses=1]
+ %85 = load %struct.Proto** %1, align 4 ; [#uses=1]
+ %86 = getelementptr inbounds %struct.Proto* %85, i32 0, i32 8 ; [#uses=1]
+ %87 = load %union.TString*** %86, align 4 ; [#uses=1]
+ %88 = getelementptr inbounds %union.TString** %87, i32 %84 ; [#uses=1]
+ %89 = load %union.TString** %88 ; [#uses=1]
+ %90 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z10DumpStringPK7TStringP9DumpState(%union.TString* %89, %12* %90)
+ br label %91
+
+; <label>:91 ; preds = %83
+ %92 = load i32* %i, align 4 ; [#uses=1]
+ %93 = add nsw i32 %92, 1 ; [#uses=1]
+ store i32 %93, i32* %i, align 4
+ br label %79
+
+; <label>:94 ; preds = %79
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z10DumpNumberdP9DumpState(double %x, %12* %D) {
+ %1 = alloca double, align 4 ; [#uses=2]
+ %2 = alloca %12*, align 4 ; [#uses=2]
+ store double %x, double* %1, align 8
+ store %12* %D, %12** %2, align 4
+ %3 = bitcast double* %1 to i8* ; [#uses=1]
+ %4 = load %12** %2, align 4 ; [#uses=1]
+ call void @_Z9DumpBlockPKvjP9DumpState(i8* %3, i32 8, %12* %4)
+ ret void
+}
+
+; [#uses=8]
+define internal void @_Z9DumpBlockPKvjP9DumpState(i8* %b, i32 %size, %12* %D) {
+ %1 = alloca i8*, align 4 ; [#uses=2]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca %12*, align 4 ; [#uses=6]
+ store i8* %b, i8** %1, align 4
+ store i32 %size, i32* %2, align 4
+ store %12* %D, %12** %3, align 4
+ %4 = load %12** %3, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %12* %4, i32 0, i32 4 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = icmp eq i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %23
+
+; <label>:8 ; preds = %0
+ %9 = load %12** %3, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %12* %9, i32 0, i32 1 ; [#uses=1]
+ %11 = load i32 (%struct.lua_State*, i8*, i32, i8*)** %10, align 4 ; [#uses=1]
+ %12 = load %12** %3, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %12* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = load %struct.lua_State** %13, align 4 ; [#uses=1]
+ %15 = load i8** %1, align 4 ; [#uses=1]
+ %16 = load i32* %2, align 4 ; [#uses=1]
+ %17 = load %12** %3, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %12* %17, i32 0, i32 2 ; [#uses=1]
+ %19 = load i8** %18, align 4 ; [#uses=1]
+ %20 = call i32 %11(%struct.lua_State* %14, i8* %15, i32 %16, i8* %19) ; [#uses=1]
+ %21 = load %12** %3, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %12* %21, i32 0, i32 4 ; [#uses=1]
+ store i32 %20, i32* %22, align 4
+ br label %23
+
+; <label>:23 ; preds = %8, %0
+ ret void
+}
+
+; [#uses=2]
+define hidden %union.Closure* @_Z16luaF_newCclosureP9lua_StateiP5Table(%struct.lua_State* %L, i32 %nelems, %struct.Table* %e) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %3 = alloca %struct.Table*, align 4 ; [#uses=2]
+ %c = alloca %union.Closure*, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %nelems, i32* %2, align 4
+ store %struct.Table* %e, %struct.Table** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = sub nsw i32 %5, 1 ; [#uses=1]
+ %7 = mul i32 12, %6 ; [#uses=1]
+ %8 = add nsw i32 32, %7 ; [#uses=1]
+ %9 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %4, i8* null, i32 0, i32 %8) ; [#uses=1]
+ %10 = bitcast i8* %9 to %union.Closure* ; [#uses=1]
+ store %union.Closure* %10, %union.Closure** %c, align 4
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = load %union.Closure** %c, align 4 ; [#uses=1]
+ %13 = bitcast %union.Closure* %12 to %union.GCObject* ; [#uses=1]
+ call void @_Z9luaC_linkP9lua_StateP8GCObjecth(%struct.lua_State* %11, %union.GCObject* %13, i8 zeroext 6)
+ %14 = load %union.Closure** %c, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %union.Closure* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.CClosure* %15, i32 0, i32 3 ; [#uses=1]
+ store i8 1, i8* %16, align 1
+ %17 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %18 = load %union.Closure** %c, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %union.Closure* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.CClosure* %19, i32 0, i32 6 ; [#uses=1]
+ store %struct.Table* %17, %struct.Table** %20, align 4
+ %21 = load i32* %2, align 4 ; [#uses=1]
+ %22 = trunc i32 %21 to i8 ; [#uses=1]
+ %23 = load %union.Closure** %c, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %union.Closure* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.CClosure* %24, i32 0, i32 4 ; [#uses=1]
+ store i8 %22, i8* %25, align 1
+ %26 = load %union.Closure** %c, align 4 ; [#uses=1]
+ ret %union.Closure* %26
+}
+
+; [#uses=2]
+define hidden %union.Closure* @_Z16luaF_newLclosureP9lua_StateiP5Table(%struct.lua_State* %L, i32 %nelems, %struct.Table* %e) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=6]
+ %3 = alloca %struct.Table*, align 4 ; [#uses=2]
+ %c = alloca %union.Closure*, align 4 ; [#uses=7]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %nelems, i32* %2, align 4
+ store %struct.Table* %e, %struct.Table** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = sub nsw i32 %5, 1 ; [#uses=1]
+ %7 = mul i32 4, %6 ; [#uses=1]
+ %8 = add nsw i32 24, %7 ; [#uses=1]
+ %9 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %4, i8* null, i32 0, i32 %8) ; [#uses=1]
+ %10 = bitcast i8* %9 to %union.Closure* ; [#uses=1]
+ store %union.Closure* %10, %union.Closure** %c, align 4
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = load %union.Closure** %c, align 4 ; [#uses=1]
+ %13 = bitcast %union.Closure* %12 to %union.GCObject* ; [#uses=1]
+ call void @_Z9luaC_linkP9lua_StateP8GCObjecth(%struct.lua_State* %11, %union.GCObject* %13, i8 zeroext 6)
+ %14 = load %union.Closure** %c, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %union.Closure* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = bitcast %struct.CClosure* %15 to %struct.LClosure* ; [#uses=1]
+ %17 = getelementptr inbounds %struct.LClosure* %16, i32 0, i32 3 ; [#uses=1]
+ store i8 0, i8* %17, align 1
+ %18 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %19 = load %union.Closure** %c, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %union.Closure* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = bitcast %struct.CClosure* %20 to %struct.LClosure* ; [#uses=1]
+ %22 = getelementptr inbounds %struct.LClosure* %21, i32 0, i32 6 ; [#uses=1]
+ store %struct.Table* %18, %struct.Table** %22, align 4
+ %23 = load i32* %2, align 4 ; [#uses=1]
+ %24 = trunc i32 %23 to i8 ; [#uses=1]
+ %25 = load %union.Closure** %c, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %union.Closure* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = bitcast %struct.CClosure* %26 to %struct.LClosure* ; [#uses=1]
+ %28 = getelementptr inbounds %struct.LClosure* %27, i32 0, i32 4 ; [#uses=1]
+ store i8 %24, i8* %28, align 1
+ br label %29
+
+; <label>:29 ; preds = %33, %0
+ %30 = load i32* %2, align 4 ; [#uses=2]
+ %31 = add nsw i32 %30, -1 ; [#uses=1]
+ store i32 %31, i32* %2, align 4
+ %32 = icmp ne i32 %30, 0 ; [#uses=1]
+ br i1 %32, label %33, label %40
+
+; <label>:33 ; preds = %29
+ %34 = load i32* %2, align 4 ; [#uses=1]
+ %35 = load %union.Closure** %c, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %union.Closure* %35, i32 0, i32 0 ; [#uses=1]
+ %37 = bitcast %struct.CClosure* %36 to %struct.LClosure* ; [#uses=1]
+ %38 = getelementptr inbounds %struct.LClosure* %37, i32 0, i32 8 ; [#uses=1]
+ %39 = getelementptr inbounds [1 x %struct.UpVal*]* %38, i32 0, i32 %34 ; [#uses=1]
+ store %struct.UpVal* null, %struct.UpVal** %39
+ br label %29
+
+; <label>:40 ; preds = %29
+ %41 = load %union.Closure** %c, align 4 ; [#uses=1]
+ ret %union.Closure* %41
+}
+
+; [#uses=1]
+define hidden %struct.UpVal* @_Z13luaF_newupvalP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %uv = alloca %struct.UpVal*, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %2, i8* null, i32 0, i32 24) ; [#uses=1]
+ %4 = bitcast i8* %3 to %struct.UpVal* ; [#uses=1]
+ store %struct.UpVal* %4, %struct.UpVal** %uv, align 4
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %7 = bitcast %struct.UpVal* %6 to %union.GCObject* ; [#uses=1]
+ call void @_Z9luaC_linkP9lua_StateP8GCObjecth(%struct.lua_State* %5, %union.GCObject* %7, i8 zeroext 10)
+ %8 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.UpVal* %8, i32 0, i32 4 ; [#uses=1]
+ %10 = getelementptr inbounds %0* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.UpVal* %11, i32 0, i32 3 ; [#uses=1]
+ store %struct.lua_TValue* %10, %struct.lua_TValue** %12, align 4
+ %13 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.UpVal* %13, i32 0, i32 3 ; [#uses=1]
+ %15 = load %struct.lua_TValue** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %16, align 4
+ %17 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ ret %struct.UpVal* %17
+}
+
+; [#uses=1]
+define hidden %struct.UpVal* @_Z14luaF_findupvalP9lua_StateP10lua_TValue(%struct.lua_State* %L, %struct.lua_TValue* %level) {
+ %1 = alloca %struct.UpVal*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=6]
+ %pp = alloca %union.GCObject**, align 4 ; [#uses=6]
+ %p = alloca %struct.UpVal*, align 4 ; [#uses=6]
+ %uv = alloca %struct.UpVal*, align 4 ; [#uses=12]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.lua_TValue* %level, %struct.lua_TValue** %3, align 4
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 6 ; [#uses=1]
+ %6 = load %struct.global_State** %5, align 4 ; [#uses=1]
+ store %struct.global_State* %6, %struct.global_State** %g, align 4
+ %7 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_State* %7, i32 0, i32 24 ; [#uses=1]
+ store %union.GCObject** %8, %union.GCObject*** %pp, align 4
+ br label %9
+
+; <label>:9 ; preds = %58, %0
+ %10 = load %union.GCObject*** %pp, align 4 ; [#uses=1]
+ %11 = load %union.GCObject** %10 ; [#uses=1]
+ %12 = icmp ne %union.GCObject* %11, null ; [#uses=1]
+ br i1 %12, label %13, label %22
+
+; <label>:13 ; preds = %9
+ %14 = load %union.GCObject*** %pp, align 4 ; [#uses=1]
+ %15 = load %union.GCObject** %14 ; [#uses=1]
+ %16 = getelementptr inbounds %union.GCObject* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = bitcast %struct.lua_State* %16 to %struct.UpVal* ; [#uses=2]
+ store %struct.UpVal* %17, %struct.UpVal** %p, align 4
+ %18 = getelementptr inbounds %struct.UpVal* %17, i32 0, i32 3 ; [#uses=1]
+ %19 = load %struct.lua_TValue** %18, align 4 ; [#uses=1]
+ %20 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %21 = icmp uge %struct.lua_TValue* %19, %20 ; [#uses=1]
+ br label %22
+
+; <label>:22 ; preds = %13, %9
+ %23 = phi i1 [ false, %9 ], [ %21, %13 ] ; [#uses=1]
+ br i1 %23, label %24, label %61
+
+; <label>:24 ; preds = %22
+ %25 = load %struct.UpVal** %p, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.UpVal* %25, i32 0, i32 3 ; [#uses=1]
+ %27 = load %struct.lua_TValue** %26, align 4 ; [#uses=1]
+ %28 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %29 = icmp eq %struct.lua_TValue* %27, %28 ; [#uses=1]
+ br i1 %29, label %30, label %58
+
+; <label>:30 ; preds = %24
+ %31 = load %struct.UpVal** %p, align 4 ; [#uses=1]
+ %32 = bitcast %struct.UpVal* %31 to %union.GCObject* ; [#uses=1]
+ %33 = getelementptr inbounds %union.GCObject* %32, i32 0, i32 0 ; [#uses=1]
+ %34 = bitcast %struct.lua_State* %33 to %struct.GCheader* ; [#uses=1]
+ %35 = getelementptr inbounds %struct.GCheader* %34, i32 0, i32 2 ; [#uses=1]
+ %36 = load i8* %35, align 1 ; [#uses=1]
+ %37 = zext i8 %36 to i32 ; [#uses=1]
+ %38 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.global_State* %38, i32 0, i32 3 ; [#uses=1]
+ %40 = load i8* %39, align 1 ; [#uses=1]
+ %41 = zext i8 %40 to i32 ; [#uses=1]
+ %42 = xor i32 %41, 3 ; [#uses=1]
+ %43 = and i32 %37, %42 ; [#uses=1]
+ %44 = and i32 %43, 3 ; [#uses=1]
+ %45 = icmp ne i32 %44, 0 ; [#uses=1]
+ br i1 %45, label %46, label %56
+
+; <label>:46 ; preds = %30
+ %47 = load %struct.UpVal** %p, align 4 ; [#uses=1]
+ %48 = bitcast %struct.UpVal* %47 to %union.GCObject* ; [#uses=1]
+ %49 = getelementptr inbounds %union.GCObject* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = bitcast %struct.lua_State* %49 to %struct.GCheader* ; [#uses=1]
+ %51 = getelementptr inbounds %struct.GCheader* %50, i32 0, i32 2 ; [#uses=2]
+ %52 = load i8* %51, align 1 ; [#uses=1]
+ %53 = zext i8 %52 to i32 ; [#uses=1]
+ %54 = xor i32 %53, 3 ; [#uses=1]
+ %55 = trunc i32 %54 to i8 ; [#uses=1]
+ store i8 %55, i8* %51, align 1
+ br label %56
+
+; <label>:56 ; preds = %46, %30
+ %57 = load %struct.UpVal** %p, align 4 ; [#uses=1]
+ store %struct.UpVal* %57, %struct.UpVal** %1
+ br label %123
+
+; <label>:58 ; preds = %24
+ %59 = load %struct.UpVal** %p, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.UpVal* %59, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject** %60, %union.GCObject*** %pp, align 4
+ br label %9
+
+; <label>:61 ; preds = %22
+ %62 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %63 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %62, i8* null, i32 0, i32 24) ; [#uses=1]
+ %64 = bitcast i8* %63 to %struct.UpVal* ; [#uses=1]
+ store %struct.UpVal* %64, %struct.UpVal** %uv, align 4
+ %65 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.UpVal* %65, i32 0, i32 1 ; [#uses=1]
+ store i8 10, i8* %66, align 1
+ %67 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.global_State* %67, i32 0, i32 3 ; [#uses=1]
+ %69 = load i8* %68, align 1 ; [#uses=1]
+ %70 = zext i8 %69 to i32 ; [#uses=1]
+ %71 = and i32 %70, 3 ; [#uses=1]
+ %72 = trunc i32 %71 to i8 ; [#uses=1]
+ %73 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.UpVal* %73, i32 0, i32 2 ; [#uses=1]
+ store i8 %72, i8* %74, align 1
+ %75 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %76 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %77 = getelementptr inbounds %struct.UpVal* %76, i32 0, i32 3 ; [#uses=1]
+ store %struct.lua_TValue* %75, %struct.lua_TValue** %77, align 4
+ %78 = load %union.GCObject*** %pp, align 4 ; [#uses=1]
+ %79 = load %union.GCObject** %78 ; [#uses=1]
+ %80 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.UpVal* %80, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject* %79, %union.GCObject** %81, align 4
+ %82 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %83 = bitcast %struct.UpVal* %82 to %union.GCObject* ; [#uses=1]
+ %84 = load %union.GCObject*** %pp, align 4 ; [#uses=1]
+ store %union.GCObject* %83, %union.GCObject** %84
+ %85 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %86 = getelementptr inbounds %struct.global_State* %85, i32 0, i32 22 ; [#uses=1]
+ %87 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %88 = getelementptr inbounds %struct.UpVal* %87, i32 0, i32 4 ; [#uses=1]
+ %89 = getelementptr inbounds %0* %88, i32 0, i32 0 ; [#uses=1]
+ %90 = bitcast %struct.lua_TValue* %89 to %13* ; [#uses=1]
+ %91 = getelementptr inbounds %13* %90, i32 0, i32 0 ; [#uses=1]
+ store %struct.UpVal* %86, %struct.UpVal** %91, align 4
+ %92 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %93 = getelementptr inbounds %struct.global_State* %92, i32 0, i32 22 ; [#uses=1]
+ %94 = getelementptr inbounds %struct.UpVal* %93, i32 0, i32 4 ; [#uses=1]
+ %95 = getelementptr inbounds %0* %94, i32 0, i32 0 ; [#uses=1]
+ %96 = bitcast %struct.lua_TValue* %95 to %13* ; [#uses=1]
+ %97 = getelementptr inbounds %13* %96, i32 0, i32 1 ; [#uses=1]
+ %98 = load %struct.UpVal** %97, align 4 ; [#uses=1]
+ %99 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %100 = getelementptr inbounds %struct.UpVal* %99, i32 0, i32 4 ; [#uses=1]
+ %101 = getelementptr inbounds %0* %100, i32 0, i32 0 ; [#uses=1]
+ %102 = bitcast %struct.lua_TValue* %101 to %13* ; [#uses=1]
+ %103 = getelementptr inbounds %13* %102, i32 0, i32 1 ; [#uses=1]
+ store %struct.UpVal* %98, %struct.UpVal** %103, align 4
+ %104 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %105 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %106 = getelementptr inbounds %struct.UpVal* %105, i32 0, i32 4 ; [#uses=1]
+ %107 = getelementptr inbounds %0* %106, i32 0, i32 0 ; [#uses=1]
+ %108 = bitcast %struct.lua_TValue* %107 to %13* ; [#uses=1]
+ %109 = getelementptr inbounds %13* %108, i32 0, i32 1 ; [#uses=1]
+ %110 = load %struct.UpVal** %109, align 4 ; [#uses=1]
+ %111 = getelementptr inbounds %struct.UpVal* %110, i32 0, i32 4 ; [#uses=1]
+ %112 = getelementptr inbounds %0* %111, i32 0, i32 0 ; [#uses=1]
+ %113 = bitcast %struct.lua_TValue* %112 to %13* ; [#uses=1]
+ %114 = getelementptr inbounds %13* %113, i32 0, i32 0 ; [#uses=1]
+ store %struct.UpVal* %104, %struct.UpVal** %114, align 4
+ %115 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %116 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %117 = getelementptr inbounds %struct.global_State* %116, i32 0, i32 22 ; [#uses=1]
+ %118 = getelementptr inbounds %struct.UpVal* %117, i32 0, i32 4 ; [#uses=1]
+ %119 = getelementptr inbounds %0* %118, i32 0, i32 0 ; [#uses=1]
+ %120 = bitcast %struct.lua_TValue* %119 to %13* ; [#uses=1]
+ %121 = getelementptr inbounds %13* %120, i32 0, i32 1 ; [#uses=1]
+ store %struct.UpVal* %115, %struct.UpVal** %121, align 4
+ %122 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ store %struct.UpVal* %122, %struct.UpVal** %1
+ br label %123
+
+; <label>:123 ; preds = %61, %56
+ %124 = load %struct.UpVal** %1 ; [#uses=1]
+ ret %struct.UpVal* %124
+}
+
+; [#uses=2]
+define hidden void @_Z14luaF_freeupvalP9lua_StateP5UpVal(%struct.lua_State* %L, %struct.UpVal* %uv) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca %struct.UpVal*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.UpVal* %uv, %struct.UpVal** %2, align 4
+ %3 = load %struct.UpVal** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.UpVal* %3, i32 0, i32 3 ; [#uses=1]
+ %5 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %6 = load %struct.UpVal** %2, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.UpVal* %6, i32 0, i32 4 ; [#uses=1]
+ %8 = getelementptr inbounds %0* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = icmp ne %struct.lua_TValue* %5, %8 ; [#uses=1]
+ br i1 %9, label %10, label %12
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.UpVal** %2, align 4 ; [#uses=1]
+ call void @_Z11unlinkupvalP5UpVal(%struct.UpVal* %11)
+ br label %12
+
+; <label>:12 ; preds = %10, %0
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = load %struct.UpVal** %2, align 4 ; [#uses=1]
+ %15 = bitcast %struct.UpVal* %14 to i8* ; [#uses=1]
+ %16 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %13, i8* %15, i32 24, i32 0) ; [#uses=0]
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z11unlinkupvalP5UpVal(%struct.UpVal* %uv) nounwind {
+ %1 = alloca %struct.UpVal*, align 4 ; [#uses=5]
+ store %struct.UpVal* %uv, %struct.UpVal** %1, align 4
+ %2 = load %struct.UpVal** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.UpVal* %2, i32 0, i32 4 ; [#uses=1]
+ %4 = getelementptr inbounds %0* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = bitcast %struct.lua_TValue* %4 to %13* ; [#uses=1]
+ %6 = getelementptr inbounds %13* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load %struct.UpVal** %6, align 4 ; [#uses=1]
+ %8 = load %struct.UpVal** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.UpVal* %8, i32 0, i32 4 ; [#uses=1]
+ %10 = getelementptr inbounds %0* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = bitcast %struct.lua_TValue* %10 to %13* ; [#uses=1]
+ %12 = getelementptr inbounds %13* %11, i32 0, i32 1 ; [#uses=1]
+ %13 = load %struct.UpVal** %12, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.UpVal* %13, i32 0, i32 4 ; [#uses=1]
+ %15 = getelementptr inbounds %0* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = bitcast %struct.lua_TValue* %15 to %13* ; [#uses=1]
+ %17 = getelementptr inbounds %13* %16, i32 0, i32 0 ; [#uses=1]
+ store %struct.UpVal* %7, %struct.UpVal** %17, align 4
+ %18 = load %struct.UpVal** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.UpVal* %18, i32 0, i32 4 ; [#uses=1]
+ %20 = getelementptr inbounds %0* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = bitcast %struct.lua_TValue* %20 to %13* ; [#uses=1]
+ %22 = getelementptr inbounds %13* %21, i32 0, i32 1 ; [#uses=1]
+ %23 = load %struct.UpVal** %22, align 4 ; [#uses=1]
+ %24 = load %struct.UpVal** %1, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.UpVal* %24, i32 0, i32 4 ; [#uses=1]
+ %26 = getelementptr inbounds %0* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = bitcast %struct.lua_TValue* %26 to %13* ; [#uses=1]
+ %28 = getelementptr inbounds %13* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = load %struct.UpVal** %28, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.UpVal* %29, i32 0, i32 4 ; [#uses=1]
+ %31 = getelementptr inbounds %0* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = bitcast %struct.lua_TValue* %31 to %13* ; [#uses=1]
+ %33 = getelementptr inbounds %13* %32, i32 0, i32 1 ; [#uses=1]
+ store %struct.UpVal* %23, %struct.UpVal** %33, align 4
+ ret void
+}
+
+; [#uses=8]
+define hidden void @_Z10luaF_closeP9lua_StateP10lua_TValue(%struct.lua_State* %L, %struct.lua_TValue* %level) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %uv = alloca %struct.UpVal*, align 4 ; [#uses=10]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=2]
+ %o = alloca %union.GCObject*, align 4 ; [#uses=2]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %level, %struct.lua_TValue** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 6 ; [#uses=1]
+ %5 = load %struct.global_State** %4, align 4 ; [#uses=1]
+ store %struct.global_State* %5, %struct.global_State** %g, align 4
+ br label %6
+
+; <label>:6 ; preds = %74, %0
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_State* %7, i32 0, i32 24 ; [#uses=1]
+ %9 = load %union.GCObject** %8, align 4 ; [#uses=1]
+ %10 = icmp ne %union.GCObject* %9, null ; [#uses=1]
+ br i1 %10, label %11, label %21
+
+; <label>:11 ; preds = %6
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.lua_State* %12, i32 0, i32 24 ; [#uses=1]
+ %14 = load %union.GCObject** %13, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %union.GCObject* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = bitcast %struct.lua_State* %15 to %struct.UpVal* ; [#uses=2]
+ store %struct.UpVal* %16, %struct.UpVal** %uv, align 4
+ %17 = getelementptr inbounds %struct.UpVal* %16, i32 0, i32 3 ; [#uses=1]
+ %18 = load %struct.lua_TValue** %17, align 4 ; [#uses=1]
+ %19 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %20 = icmp uge %struct.lua_TValue* %18, %19 ; [#uses=1]
+ br label %21
+
+; <label>:21 ; preds = %11, %6
+ %22 = phi i1 [ false, %6 ], [ %20, %11 ] ; [#uses=1]
+ br i1 %22, label %23, label %75
+
+; <label>:23 ; preds = %21
+ %24 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %25 = bitcast %struct.UpVal* %24 to %union.GCObject* ; [#uses=1]
+ store %union.GCObject* %25, %union.GCObject** %o, align 4
+ %26 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.UpVal* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = load %union.GCObject** %27, align 4 ; [#uses=1]
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_State* %29, i32 0, i32 24 ; [#uses=1]
+ store %union.GCObject* %28, %union.GCObject** %30, align 4
+ %31 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %union.GCObject* %31, i32 0, i32 0 ; [#uses=1]
+ %33 = bitcast %struct.lua_State* %32 to %struct.GCheader* ; [#uses=1]
+ %34 = getelementptr inbounds %struct.GCheader* %33, i32 0, i32 2 ; [#uses=1]
+ %35 = load i8* %34, align 1 ; [#uses=1]
+ %36 = zext i8 %35 to i32 ; [#uses=1]
+ %37 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.global_State* %37, i32 0, i32 3 ; [#uses=1]
+ %39 = load i8* %38, align 1 ; [#uses=1]
+ %40 = zext i8 %39 to i32 ; [#uses=1]
+ %41 = xor i32 %40, 3 ; [#uses=1]
+ %42 = and i32 %36, %41 ; [#uses=1]
+ %43 = and i32 %42, 3 ; [#uses=1]
+ %44 = icmp ne i32 %43, 0 ; [#uses=1]
+ br i1 %44, label %45, label %48
+
+; <label>:45 ; preds = %23
+ %46 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %47 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ call void @_Z14luaF_freeupvalP9lua_StateP5UpVal(%struct.lua_State* %46, %struct.UpVal* %47)
+ br label %74
+
+; <label>:48 ; preds = %23
+ %49 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ call void @_Z11unlinkupvalP5UpVal(%struct.UpVal* %49)
+ %50 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.UpVal* %50, i32 0, i32 3 ; [#uses=1]
+ %52 = load %struct.lua_TValue** %51, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %52, %struct.lua_TValue** %o2, align 4
+ %53 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.UpVal* %53, i32 0, i32 4 ; [#uses=1]
+ %55 = getelementptr inbounds %0* %54, i32 0, i32 0 ; [#uses=1]
+ store %struct.lua_TValue* %55, %struct.lua_TValue** %o1, align 4
+ %56 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.lua_TValue* %56, i32 0, i32 0 ; [#uses=1]
+ %58 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.lua_TValue* %58, i32 0, i32 0 ; [#uses=1]
+ %60 = bitcast %union.anon* %57 to i8* ; [#uses=1]
+ %61 = bitcast %union.anon* %59 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %60, i8* %61, i32 8, i32 4, i1 false)
+ %62 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.lua_TValue* %62, i32 0, i32 1 ; [#uses=1]
+ %64 = load i32* %63, align 4 ; [#uses=1]
+ %65 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.lua_TValue* %65, i32 0, i32 1 ; [#uses=1]
+ store i32 %64, i32* %66, align 4
+ %67 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.UpVal* %67, i32 0, i32 4 ; [#uses=1]
+ %69 = getelementptr inbounds %0* %68, i32 0, i32 0 ; [#uses=1]
+ %70 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %71 = getelementptr inbounds %struct.UpVal* %70, i32 0, i32 3 ; [#uses=1]
+ store %struct.lua_TValue* %69, %struct.lua_TValue** %71, align 4
+ %72 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %73 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ call void @_Z14luaC_linkupvalP9lua_StateP5UpVal(%struct.lua_State* %72, %struct.UpVal* %73)
+ br label %74
+
+; <label>:74 ; preds = %48, %45
+ br label %6
+
+; <label>:75 ; preds = %21
+ ret void
+}
+
+; [#uses=2]
+define hidden %struct.Proto* @_Z13luaF_newprotoP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %f = alloca %struct.Proto*, align 4 ; [#uses=22]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %2, i8* null, i32 0, i32 76) ; [#uses=1]
+ %4 = bitcast i8* %3 to %struct.Proto* ; [#uses=1]
+ store %struct.Proto* %4, %struct.Proto** %f, align 4
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %7 = bitcast %struct.Proto* %6 to %union.GCObject* ; [#uses=1]
+ call void @_Z9luaC_linkP9lua_StateP8GCObjecth(%struct.lua_State* %5, %union.GCObject* %7, i8 zeroext 9)
+ %8 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.Proto* %8, i32 0, i32 3 ; [#uses=1]
+ store %struct.lua_TValue* null, %struct.lua_TValue** %9, align 4
+ %10 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Proto* %10, i32 0, i32 11 ; [#uses=1]
+ store i32 0, i32* %11, align 4
+ %12 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.Proto* %12, i32 0, i32 5 ; [#uses=1]
+ store %struct.Proto** null, %struct.Proto*** %13, align 4
+ %14 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.Proto* %14, i32 0, i32 14 ; [#uses=1]
+ store i32 0, i32* %15, align 4
+ %16 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.Proto* %16, i32 0, i32 4 ; [#uses=1]
+ store i32* null, i32** %17, align 4
+ %18 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.Proto* %18, i32 0, i32 12 ; [#uses=1]
+ store i32 0, i32* %19, align 4
+ %20 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.Proto* %20, i32 0, i32 13 ; [#uses=1]
+ store i32 0, i32* %21, align 4
+ %22 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.Proto* %22, i32 0, i32 10 ; [#uses=1]
+ store i32 0, i32* %23, align 4
+ %24 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.Proto* %24, i32 0, i32 19 ; [#uses=1]
+ store i8 0, i8* %25, align 1
+ %26 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.Proto* %26, i32 0, i32 8 ; [#uses=1]
+ store %union.TString** null, %union.TString*** %27, align 4
+ %28 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.Proto* %28, i32 0, i32 20 ; [#uses=1]
+ store i8 0, i8* %29, align 1
+ %30 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.Proto* %30, i32 0, i32 21 ; [#uses=1]
+ store i8 0, i8* %31, align 1
+ %32 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.Proto* %32, i32 0, i32 22 ; [#uses=1]
+ store i8 0, i8* %33, align 1
+ %34 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.Proto* %34, i32 0, i32 6 ; [#uses=1]
+ store i32* null, i32** %35, align 4
+ %36 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.Proto* %36, i32 0, i32 15 ; [#uses=1]
+ store i32 0, i32* %37, align 4
+ %38 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.Proto* %38, i32 0, i32 7 ; [#uses=1]
+ store %struct.LocVar* null, %struct.LocVar** %39, align 4
+ %40 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.Proto* %40, i32 0, i32 16 ; [#uses=1]
+ store i32 0, i32* %41, align 4
+ %42 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.Proto* %42, i32 0, i32 17 ; [#uses=1]
+ store i32 0, i32* %43, align 4
+ %44 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.Proto* %44, i32 0, i32 9 ; [#uses=1]
+ store %union.TString* null, %union.TString** %45, align 4
+ %46 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ ret %struct.Proto* %46
+}
+
+; [#uses=1]
+define hidden void @_Z14luaF_freeprotoP9lua_StateP5Proto(%struct.lua_State* %L, %struct.Proto* %f) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %2 = alloca %struct.Proto*, align 4 ; [#uses=14]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.Proto* %f, %struct.Proto** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.Proto* %4, i32 0, i32 4 ; [#uses=1]
+ %6 = load i32** %5, align 4 ; [#uses=1]
+ %7 = bitcast i32* %6 to i8* ; [#uses=1]
+ %8 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.Proto* %8, i32 0, i32 12 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ %11 = mul i32 %10, 4 ; [#uses=1]
+ %12 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %3, i8* %7, i32 %11, i32 0) ; [#uses=0]
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.Proto* %14, i32 0, i32 5 ; [#uses=1]
+ %16 = load %struct.Proto*** %15, align 4 ; [#uses=1]
+ %17 = bitcast %struct.Proto** %16 to i8* ; [#uses=1]
+ %18 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.Proto* %18, i32 0, i32 14 ; [#uses=1]
+ %20 = load i32* %19, align 4 ; [#uses=1]
+ %21 = mul i32 %20, 4 ; [#uses=1]
+ %22 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %13, i8* %17, i32 %21, i32 0) ; [#uses=0]
+ %23 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %24 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.Proto* %24, i32 0, i32 3 ; [#uses=1]
+ %26 = load %struct.lua_TValue** %25, align 4 ; [#uses=1]
+ %27 = bitcast %struct.lua_TValue* %26 to i8* ; [#uses=1]
+ %28 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.Proto* %28, i32 0, i32 11 ; [#uses=1]
+ %30 = load i32* %29, align 4 ; [#uses=1]
+ %31 = mul i32 %30, 12 ; [#uses=1]
+ %32 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %23, i8* %27, i32 %31, i32 0) ; [#uses=0]
+ %33 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %34 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.Proto* %34, i32 0, i32 6 ; [#uses=1]
+ %36 = load i32** %35, align 4 ; [#uses=1]
+ %37 = bitcast i32* %36 to i8* ; [#uses=1]
+ %38 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.Proto* %38, i32 0, i32 13 ; [#uses=1]
+ %40 = load i32* %39, align 4 ; [#uses=1]
+ %41 = mul i32 %40, 4 ; [#uses=1]
+ %42 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %33, i8* %37, i32 %41, i32 0) ; [#uses=0]
+ %43 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %44 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.Proto* %44, i32 0, i32 7 ; [#uses=1]
+ %46 = load %struct.LocVar** %45, align 4 ; [#uses=1]
+ %47 = bitcast %struct.LocVar* %46 to i8* ; [#uses=1]
+ %48 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.Proto* %48, i32 0, i32 15 ; [#uses=1]
+ %50 = load i32* %49, align 4 ; [#uses=1]
+ %51 = mul i32 %50, 12 ; [#uses=1]
+ %52 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %43, i8* %47, i32 %51, i32 0) ; [#uses=0]
+ %53 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %54 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.Proto* %54, i32 0, i32 8 ; [#uses=1]
+ %56 = load %union.TString*** %55, align 4 ; [#uses=1]
+ %57 = bitcast %union.TString** %56 to i8* ; [#uses=1]
+ %58 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.Proto* %58, i32 0, i32 10 ; [#uses=1]
+ %60 = load i32* %59, align 4 ; [#uses=1]
+ %61 = mul i32 %60, 4 ; [#uses=1]
+ %62 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %53, i8* %57, i32 %61, i32 0) ; [#uses=0]
+ %63 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %64 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %65 = bitcast %struct.Proto* %64 to i8* ; [#uses=1]
+ %66 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %63, i8* %65, i32 76, i32 0) ; [#uses=0]
+ ret void
+}
+
+; [#uses=1]
+define hidden void @_Z16luaF_freeclosureP9lua_StateP7Closure(%struct.lua_State* %L, %union.Closure* %c) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca %union.Closure*, align 4 ; [#uses=5]
+ %size = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %union.Closure* %c, %union.Closure** %2, align 4
+ %3 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %union.Closure* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.CClosure* %4, i32 0, i32 3 ; [#uses=1]
+ %6 = load i8* %5, align 1 ; [#uses=1]
+ %7 = icmp ne i8 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %17
+
+; <label>:8 ; preds = %0
+ %9 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %union.Closure* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.CClosure* %10, i32 0, i32 4 ; [#uses=1]
+ %12 = load i8* %11, align 1 ; [#uses=1]
+ %13 = zext i8 %12 to i32 ; [#uses=1]
+ %14 = sub nsw i32 %13, 1 ; [#uses=1]
+ %15 = mul i32 12, %14 ; [#uses=1]
+ %16 = add nsw i32 32, %15 ; [#uses=1]
+ br label %27
+
+; <label>:17 ; preds = %0
+ %18 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %union.Closure* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = bitcast %struct.CClosure* %19 to %struct.LClosure* ; [#uses=1]
+ %21 = getelementptr inbounds %struct.LClosure* %20, i32 0, i32 4 ; [#uses=1]
+ %22 = load i8* %21, align 1 ; [#uses=1]
+ %23 = zext i8 %22 to i32 ; [#uses=1]
+ %24 = sub nsw i32 %23, 1 ; [#uses=1]
+ %25 = mul i32 4, %24 ; [#uses=1]
+ %26 = add nsw i32 24, %25 ; [#uses=1]
+ br label %27
+
+; <label>:27 ; preds = %17, %8
+ %28 = phi i32 [ %16, %8 ], [ %26, %17 ] ; [#uses=1]
+ store i32 %28, i32* %size, align 4
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %30 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %31 = bitcast %union.Closure* %30 to i8* ; [#uses=1]
+ %32 = load i32* %size, align 4 ; [#uses=1]
+ %33 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %29, i8* %31, i32 %32, i32 0) ; [#uses=0]
+ ret void
+}
+
+; [#uses=2]
+define hidden i8* @_Z17luaF_getlocalnamePK5Protoii(%struct.Proto* %f, i32 %local_number, i32 %pc) nounwind {
+ %1 = alloca i8*, align 4 ; [#uses=3]
+ %2 = alloca %struct.Proto*, align 4 ; [#uses=5]
+ %3 = alloca i32, align 4 ; [#uses=4]
+ %4 = alloca i32, align 4 ; [#uses=3]
+ %i = alloca i32, align 4 ; [#uses=7]
+ store %struct.Proto* %f, %struct.Proto** %2, align 4
+ store i32 %local_number, i32* %3, align 4
+ store i32 %pc, i32* %4, align 4
+ store i32 0, i32* %i, align 4
+ br label %5
+
+; <label>:5 ; preds = %50, %0
+ %6 = load i32* %i, align 4 ; [#uses=1]
+ %7 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.Proto* %7, i32 0, i32 15 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ %10 = icmp slt i32 %6, %9 ; [#uses=1]
+ br i1 %10, label %11, label %21
+
+; <label>:11 ; preds = %5
+ %12 = load i32* %i, align 4 ; [#uses=1]
+ %13 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.Proto* %13, i32 0, i32 7 ; [#uses=1]
+ %15 = load %struct.LocVar** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.LocVar* %15, i32 %12 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.LocVar* %16, i32 0, i32 1 ; [#uses=1]
+ %18 = load i32* %17, align 4 ; [#uses=1]
+ %19 = load i32* %4, align 4 ; [#uses=1]
+ %20 = icmp sle i32 %18, %19 ; [#uses=1]
+ br label %21
+
+; <label>:21 ; preds = %11, %5
+ %22 = phi i1 [ false, %5 ], [ %20, %11 ] ; [#uses=1]
+ br i1 %22, label %23, label %53
+
+; <label>:23 ; preds = %21
+ %24 = load i32* %4, align 4 ; [#uses=1]
+ %25 = load i32* %i, align 4 ; [#uses=1]
+ %26 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.Proto* %26, i32 0, i32 7 ; [#uses=1]
+ %28 = load %struct.LocVar** %27, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.LocVar* %28, i32 %25 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.LocVar* %29, i32 0, i32 2 ; [#uses=1]
+ %31 = load i32* %30, align 4 ; [#uses=1]
+ %32 = icmp slt i32 %24, %31 ; [#uses=1]
+ br i1 %32, label %33, label %49
+
+; <label>:33 ; preds = %23
+ %34 = load i32* %3, align 4 ; [#uses=1]
+ %35 = add nsw i32 %34, -1 ; [#uses=1]
+ store i32 %35, i32* %3, align 4
+ %36 = load i32* %3, align 4 ; [#uses=1]
+ %37 = icmp eq i32 %36, 0 ; [#uses=1]
+ br i1 %37, label %38, label %48
+
+; <label>:38 ; preds = %33
+ %39 = load i32* %i, align 4 ; [#uses=1]
+ %40 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.Proto* %40, i32 0, i32 7 ; [#uses=1]
+ %42 = load %struct.LocVar** %41, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.LocVar* %42, i32 %39 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.LocVar* %43, i32 0, i32 0 ; [#uses=1]
+ %45 = load %union.TString** %44, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %union.TString* %45, i32 1 ; [#uses=1]
+ %47 = bitcast %union.TString* %46 to i8* ; [#uses=1]
+ store i8* %47, i8** %1
+ br label %54
+
+; <label>:48 ; preds = %33
+ br label %49
+
+; <label>:49 ; preds = %48, %23
+ br label %50
+
+; <label>:50 ; preds = %49
+ %51 = load i32* %i, align 4 ; [#uses=1]
+ %52 = add nsw i32 %51, 1 ; [#uses=1]
+ store i32 %52, i32* %i, align 4
+ br label %5
+
+; <label>:53 ; preds = %21
+ store i8* null, i8** %1
+ br label %54
+
+; <label>:54 ; preds = %53, %38
+ %55 = load i8** %1 ; [#uses=1]
+ ret i8* %55
+}
+
+; [#uses=2]
+define hidden i32 @_Z18luaC_separateudataP9lua_Statei(%struct.lua_State* %L, i32 %all) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=7]
+ %deadmem = alloca i32, align 4 ; [#uses=4]
+ %p = alloca %union.GCObject**, align 4 ; [#uses=5]
+ %curr = alloca %union.GCObject*, align 4 ; [#uses=17]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %all, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 6 ; [#uses=1]
+ %5 = load %struct.global_State** %4, align 4 ; [#uses=1]
+ store %struct.global_State* %5, %struct.global_State** %g, align 4
+ store i32 0, i32* %deadmem, align 4
+ %6 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.global_State* %6, i32 0, i32 21 ; [#uses=1]
+ %8 = load %struct.lua_State** %7, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_State* %8, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject** %9, %union.GCObject*** %p, align 4
+ br label %10
+
+; <label>:10 ; preds = %157, %0
+ %11 = load %union.GCObject*** %p, align 4 ; [#uses=1]
+ %12 = load %union.GCObject** %11 ; [#uses=2]
+ store %union.GCObject* %12, %union.GCObject** %curr, align 4
+ %13 = icmp ne %union.GCObject* %12, null ; [#uses=1]
+ br i1 %13, label %14, label %158
+
+; <label>:14 ; preds = %10
+ %15 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %union.GCObject* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = bitcast %struct.lua_State* %16 to %struct.GCheader* ; [#uses=1]
+ %18 = getelementptr inbounds %struct.GCheader* %17, i32 0, i32 2 ; [#uses=1]
+ %19 = load i8* %18, align 1 ; [#uses=1]
+ %20 = zext i8 %19 to i32 ; [#uses=1]
+ %21 = and i32 %20, 3 ; [#uses=1]
+ %22 = icmp ne i32 %21, 0 ; [#uses=1]
+ br i1 %22, label %26, label %23
+
+; <label>:23 ; preds = %14
+ %24 = load i32* %2, align 4 ; [#uses=1]
+ %25 = icmp ne i32 %24, 0 ; [#uses=1]
+ br i1 %25, label %26, label %36
+
+; <label>:26 ; preds = %23, %14
+ %27 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %union.GCObject* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = bitcast %struct.lua_State* %28 to %union.Udata* ; [#uses=1]
+ %30 = getelementptr inbounds %union.Udata* %29, i32 0, i32 0 ; [#uses=1]
+ %31 = getelementptr inbounds %4* %30, i32 0, i32 2 ; [#uses=1]
+ %32 = load i8* %31, align 1 ; [#uses=1]
+ %33 = zext i8 %32 to i32 ; [#uses=1]
+ %34 = and i32 %33, 8 ; [#uses=1]
+ %35 = icmp ne i32 %34, 0 ; [#uses=1]
+ br i1 %35, label %36, label %41
+
+; <label>:36 ; preds = %26, %23
+ %37 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %union.GCObject* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = bitcast %struct.lua_State* %38 to %struct.GCheader* ; [#uses=1]
+ %40 = getelementptr inbounds %struct.GCheader* %39, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject** %40, %union.GCObject*** %p, align 4
+ br label %157
+
+; <label>:41 ; preds = %26
+ %42 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %union.GCObject* %42, i32 0, i32 0 ; [#uses=1]
+ %44 = bitcast %struct.lua_State* %43 to %union.Udata* ; [#uses=1]
+ %45 = getelementptr inbounds %union.Udata* %44, i32 0, i32 0 ; [#uses=1]
+ %46 = getelementptr inbounds %4* %45, i32 0, i32 3 ; [#uses=1]
+ %47 = load %struct.Table** %46, align 4 ; [#uses=1]
+ %48 = icmp eq %struct.Table* %47, null ; [#uses=1]
+ br i1 %48, label %49, label %50
+
+; <label>:49 ; preds = %41
+ br label %79
+
+; <label>:50 ; preds = %41
+ %51 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %union.GCObject* %51, i32 0, i32 0 ; [#uses=1]
+ %53 = bitcast %struct.lua_State* %52 to %union.Udata* ; [#uses=1]
+ %54 = getelementptr inbounds %union.Udata* %53, i32 0, i32 0 ; [#uses=1]
+ %55 = getelementptr inbounds %4* %54, i32 0, i32 3 ; [#uses=1]
+ %56 = load %struct.Table** %55, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.Table* %56, i32 0, i32 3 ; [#uses=1]
+ %58 = load i8* %57, align 1 ; [#uses=1]
+ %59 = zext i8 %58 to i32 ; [#uses=1]
+ %60 = and i32 %59, 4 ; [#uses=1]
+ %61 = icmp ne i32 %60, 0 ; [#uses=1]
+ br i1 %61, label %62, label %63
+
+; <label>:62 ; preds = %50
+ br label %77
+
+; <label>:63 ; preds = %50
+ %64 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %union.GCObject* %64, i32 0, i32 0 ; [#uses=1]
+ %66 = bitcast %struct.lua_State* %65 to %union.Udata* ; [#uses=1]
+ %67 = getelementptr inbounds %union.Udata* %66, i32 0, i32 0 ; [#uses=1]
+ %68 = getelementptr inbounds %4* %67, i32 0, i32 3 ; [#uses=1]
+ %69 = load %struct.Table** %68, align 4 ; [#uses=1]
+ %70 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %71 = getelementptr inbounds %struct.lua_State* %70, i32 0, i32 6 ; [#uses=1]
+ %72 = load %struct.global_State** %71, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.global_State* %72, i32 0, i32 24 ; [#uses=1]
+ %74 = getelementptr inbounds [17 x %union.TString*]* %73, i32 0, i32 2 ; [#uses=1]
+ %75 = load %union.TString** %74 ; [#uses=1]
+ %76 = call %struct.lua_TValue* @_Z10luaT_gettmP5Table3TMSP7TString(%struct.Table* %69, i32 2, %union.TString* %75) ; [#uses=1]
+ br label %77
+
+; <label>:77 ; preds = %63, %62
+ %78 = phi %struct.lua_TValue* [ null, %62 ], [ %76, %63 ] ; [#uses=1]
+ br label %79
+
+; <label>:79 ; preds = %77, %49
+ %80 = phi %struct.lua_TValue* [ null, %49 ], [ %78, %77 ] ; [#uses=1]
+ %81 = icmp eq %struct.lua_TValue* %80, null ; [#uses=1]
+ br i1 %81, label %82, label %96
+
+; <label>:82 ; preds = %79
+ %83 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %84 = getelementptr inbounds %union.GCObject* %83, i32 0, i32 0 ; [#uses=1]
+ %85 = bitcast %struct.lua_State* %84 to %union.Udata* ; [#uses=1]
+ %86 = getelementptr inbounds %union.Udata* %85, i32 0, i32 0 ; [#uses=1]
+ %87 = getelementptr inbounds %4* %86, i32 0, i32 2 ; [#uses=2]
+ %88 = load i8* %87, align 1 ; [#uses=1]
+ %89 = zext i8 %88 to i32 ; [#uses=1]
+ %90 = or i32 %89, 8 ; [#uses=1]
+ %91 = trunc i32 %90 to i8 ; [#uses=1]
+ store i8 %91, i8* %87, align 1
+ %92 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %93 = getelementptr inbounds %union.GCObject* %92, i32 0, i32 0 ; [#uses=1]
+ %94 = bitcast %struct.lua_State* %93 to %struct.GCheader* ; [#uses=1]
+ %95 = getelementptr inbounds %struct.GCheader* %94, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject** %95, %union.GCObject*** %p, align 4
+ br label %156
+
+; <label>:96 ; preds = %79
+ %97 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %98 = getelementptr inbounds %union.GCObject* %97, i32 0, i32 0 ; [#uses=1]
+ %99 = bitcast %struct.lua_State* %98 to %union.Udata* ; [#uses=1]
+ %100 = getelementptr inbounds %union.Udata* %99, i32 0, i32 0 ; [#uses=1]
+ %101 = getelementptr inbounds %4* %100, i32 0, i32 5 ; [#uses=1]
+ %102 = load i32* %101, align 4 ; [#uses=1]
+ %103 = add i32 20, %102 ; [#uses=1]
+ %104 = load i32* %deadmem, align 4 ; [#uses=1]
+ %105 = add i32 %104, %103 ; [#uses=1]
+ store i32 %105, i32* %deadmem, align 4
+ %106 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %107 = getelementptr inbounds %union.GCObject* %106, i32 0, i32 0 ; [#uses=1]
+ %108 = bitcast %struct.lua_State* %107 to %union.Udata* ; [#uses=1]
+ %109 = getelementptr inbounds %union.Udata* %108, i32 0, i32 0 ; [#uses=1]
+ %110 = getelementptr inbounds %4* %109, i32 0, i32 2 ; [#uses=2]
+ %111 = load i8* %110, align 1 ; [#uses=1]
+ %112 = zext i8 %111 to i32 ; [#uses=1]
+ %113 = or i32 %112, 8 ; [#uses=1]
+ %114 = trunc i32 %113 to i8 ; [#uses=1]
+ store i8 %114, i8* %110, align 1
+ %115 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %116 = getelementptr inbounds %union.GCObject* %115, i32 0, i32 0 ; [#uses=1]
+ %117 = bitcast %struct.lua_State* %116 to %struct.GCheader* ; [#uses=1]
+ %118 = getelementptr inbounds %struct.GCheader* %117, i32 0, i32 0 ; [#uses=1]
+ %119 = load %union.GCObject** %118, align 4 ; [#uses=1]
+ %120 = load %union.GCObject*** %p, align 4 ; [#uses=1]
+ store %union.GCObject* %119, %union.GCObject** %120
+ %121 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %122 = getelementptr inbounds %struct.global_State* %121, i32 0, i32 11 ; [#uses=1]
+ %123 = load %union.GCObject** %122, align 4 ; [#uses=1]
+ %124 = icmp eq %union.GCObject* %123, null ; [#uses=1]
+ br i1 %124, label %125, label %133
+
+; <label>:125 ; preds = %96
+ %126 = load %union.GCObject** %curr, align 4 ; [#uses=2]
+ %127 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %128 = getelementptr inbounds %union.GCObject* %127, i32 0, i32 0 ; [#uses=1]
+ %129 = bitcast %struct.lua_State* %128 to %struct.GCheader* ; [#uses=1]
+ %130 = getelementptr inbounds %struct.GCheader* %129, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject* %126, %union.GCObject** %130, align 4
+ %131 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %132 = getelementptr inbounds %struct.global_State* %131, i32 0, i32 11 ; [#uses=1]
+ store %union.GCObject* %126, %union.GCObject** %132, align 4
+ br label %155
+
+; <label>:133 ; preds = %96
+ %134 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %135 = getelementptr inbounds %struct.global_State* %134, i32 0, i32 11 ; [#uses=1]
+ %136 = load %union.GCObject** %135, align 4 ; [#uses=1]
+ %137 = getelementptr inbounds %union.GCObject* %136, i32 0, i32 0 ; [#uses=1]
+ %138 = bitcast %struct.lua_State* %137 to %struct.GCheader* ; [#uses=1]
+ %139 = getelementptr inbounds %struct.GCheader* %138, i32 0, i32 0 ; [#uses=1]
+ %140 = load %union.GCObject** %139, align 4 ; [#uses=1]
+ %141 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %142 = getelementptr inbounds %union.GCObject* %141, i32 0, i32 0 ; [#uses=1]
+ %143 = bitcast %struct.lua_State* %142 to %struct.GCheader* ; [#uses=1]
+ %144 = getelementptr inbounds %struct.GCheader* %143, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject* %140, %union.GCObject** %144, align 4
+ %145 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %146 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %147 = getelementptr inbounds %struct.global_State* %146, i32 0, i32 11 ; [#uses=1]
+ %148 = load %union.GCObject** %147, align 4 ; [#uses=1]
+ %149 = getelementptr inbounds %union.GCObject* %148, i32 0, i32 0 ; [#uses=1]
+ %150 = bitcast %struct.lua_State* %149 to %struct.GCheader* ; [#uses=1]
+ %151 = getelementptr inbounds %struct.GCheader* %150, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject* %145, %union.GCObject** %151, align 4
+ %152 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %153 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %154 = getelementptr inbounds %struct.global_State* %153, i32 0, i32 11 ; [#uses=1]
+ store %union.GCObject* %152, %union.GCObject** %154, align 4
+ br label %155
+
+; <label>:155 ; preds = %133, %125
+ br label %156
+
+; <label>:156 ; preds = %155, %82
+ br label %157
+
+; <label>:157 ; preds = %156, %36
+ br label %10
+
+; <label>:158 ; preds = %10
+ %159 = load i32* %deadmem, align 4 ; [#uses=1]
+ ret i32 %159
+}
+
+; [#uses=1]
+define hidden void @_Z13luaC_callGCTMP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ br label %2
+
+; <label>:2 ; preds = %9, %0
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 6 ; [#uses=1]
+ %5 = load %struct.global_State** %4, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.global_State* %5, i32 0, i32 11 ; [#uses=1]
+ %7 = load %union.GCObject** %6, align 4 ; [#uses=1]
+ %8 = icmp ne %union.GCObject* %7, null ; [#uses=1]
+ br i1 %8, label %9, label %11
+
+; <label>:9 ; preds = %2
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z4GCTMP9lua_State(%struct.lua_State* %10)
+ br label %2
+
+; <label>:11 ; preds = %2
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z4GCTMP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=11]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=12]
+ %o = alloca %union.GCObject*, align 4 ; [#uses=6]
+ %udata = alloca %union.Udata*, align 4 ; [#uses=7]
+ %tm = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %oldah = alloca i8, align 1 ; [#uses=2]
+ %oldt = alloca i32, align 4 ; [#uses=2]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 6 ; [#uses=1]
+ %4 = load %struct.global_State** %3, align 4 ; [#uses=1]
+ store %struct.global_State* %4, %struct.global_State** %g, align 4
+ %5 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.global_State* %5, i32 0, i32 11 ; [#uses=1]
+ %7 = load %union.GCObject** %6, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %union.GCObject* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = bitcast %struct.lua_State* %8 to %struct.GCheader* ; [#uses=1]
+ %10 = getelementptr inbounds %struct.GCheader* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = load %union.GCObject** %10, align 4 ; [#uses=1]
+ store %union.GCObject* %11, %union.GCObject** %o, align 4
+ %12 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %union.GCObject* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = bitcast %struct.lua_State* %13 to %union.Udata* ; [#uses=1]
+ store %union.Udata* %14, %union.Udata** %udata, align 4
+ %15 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %16 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.global_State* %16, i32 0, i32 11 ; [#uses=1]
+ %18 = load %union.GCObject** %17, align 4 ; [#uses=1]
+ %19 = icmp eq %union.GCObject* %15, %18 ; [#uses=1]
+ br i1 %19, label %20, label %23
+
+; <label>:20 ; preds = %0
+ %21 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.global_State* %21, i32 0, i32 11 ; [#uses=1]
+ store %union.GCObject* null, %union.GCObject** %22, align 4
+ br label %34
+
+; <label>:23 ; preds = %0
+ %24 = load %union.Udata** %udata, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %union.Udata* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = getelementptr inbounds %4* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = load %union.GCObject** %26, align 4 ; [#uses=1]
+ %28 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.global_State* %28, i32 0, i32 11 ; [#uses=1]
+ %30 = load %union.GCObject** %29, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %union.GCObject* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = bitcast %struct.lua_State* %31 to %struct.GCheader* ; [#uses=1]
+ %33 = getelementptr inbounds %struct.GCheader* %32, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject* %27, %union.GCObject** %33, align 4
+ br label %34
+
+; <label>:34 ; preds = %23, %20
+ %35 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.global_State* %35, i32 0, i32 21 ; [#uses=1]
+ %37 = load %struct.lua_State** %36, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.lua_State* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = load %union.GCObject** %38, align 4 ; [#uses=1]
+ %40 = load %union.Udata** %udata, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %union.Udata* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = getelementptr inbounds %4* %41, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject* %39, %union.GCObject** %42, align 4
+ %43 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %44 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.global_State* %44, i32 0, i32 21 ; [#uses=1]
+ %46 = load %struct.lua_State** %45, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.lua_State* %46, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject* %43, %union.GCObject** %47, align 4
+ %48 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %union.GCObject* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = bitcast %struct.lua_State* %49 to %struct.GCheader* ; [#uses=1]
+ %51 = getelementptr inbounds %struct.GCheader* %50, i32 0, i32 2 ; [#uses=1]
+ %52 = load i8* %51, align 1 ; [#uses=1]
+ %53 = zext i8 %52 to i32 ; [#uses=1]
+ %54 = and i32 %53, 248 ; [#uses=1]
+ %55 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.global_State* %55, i32 0, i32 3 ; [#uses=1]
+ %57 = load i8* %56, align 1 ; [#uses=1]
+ %58 = zext i8 %57 to i32 ; [#uses=1]
+ %59 = and i32 %58, 3 ; [#uses=1]
+ %60 = trunc i32 %59 to i8 ; [#uses=1]
+ %61 = zext i8 %60 to i32 ; [#uses=1]
+ %62 = or i32 %54, %61 ; [#uses=1]
+ %63 = trunc i32 %62 to i8 ; [#uses=1]
+ %64 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %union.GCObject* %64, i32 0, i32 0 ; [#uses=1]
+ %66 = bitcast %struct.lua_State* %65 to %struct.GCheader* ; [#uses=1]
+ %67 = getelementptr inbounds %struct.GCheader* %66, i32 0, i32 2 ; [#uses=1]
+ store i8 %63, i8* %67, align 1
+ %68 = load %union.Udata** %udata, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %union.Udata* %68, i32 0, i32 0 ; [#uses=1]
+ %70 = getelementptr inbounds %4* %69, i32 0, i32 3 ; [#uses=1]
+ %71 = load %struct.Table** %70, align 4 ; [#uses=1]
+ %72 = icmp eq %struct.Table* %71, null ; [#uses=1]
+ br i1 %72, label %73, label %74
+
+; <label>:73 ; preds = %34
+ br label %99
+
+; <label>:74 ; preds = %34
+ %75 = load %union.Udata** %udata, align 4 ; [#uses=1]
+ %76 = getelementptr inbounds %union.Udata* %75, i32 0, i32 0 ; [#uses=1]
+ %77 = getelementptr inbounds %4* %76, i32 0, i32 3 ; [#uses=1]
+ %78 = load %struct.Table** %77, align 4 ; [#uses=1]
+ %79 = getelementptr inbounds %struct.Table* %78, i32 0, i32 3 ; [#uses=1]
+ %80 = load i8* %79, align 1 ; [#uses=1]
+ %81 = zext i8 %80 to i32 ; [#uses=1]
+ %82 = and i32 %81, 4 ; [#uses=1]
+ %83 = icmp ne i32 %82, 0 ; [#uses=1]
+ br i1 %83, label %84, label %85
+
+; <label>:84 ; preds = %74
+ br label %97
+
+; <label>:85 ; preds = %74
+ %86 = load %union.Udata** %udata, align 4 ; [#uses=1]
+ %87 = getelementptr inbounds %union.Udata* %86, i32 0, i32 0 ; [#uses=1]
+ %88 = getelementptr inbounds %4* %87, i32 0, i32 3 ; [#uses=1]
+ %89 = load %struct.Table** %88, align 4 ; [#uses=1]
+ %90 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %91 = getelementptr inbounds %struct.lua_State* %90, i32 0, i32 6 ; [#uses=1]
+ %92 = load %struct.global_State** %91, align 4 ; [#uses=1]
+ %93 = getelementptr inbounds %struct.global_State* %92, i32 0, i32 24 ; [#uses=1]
+ %94 = getelementptr inbounds [17 x %union.TString*]* %93, i32 0, i32 2 ; [#uses=1]
+ %95 = load %union.TString** %94 ; [#uses=1]
+ %96 = call %struct.lua_TValue* @_Z10luaT_gettmP5Table3TMSP7TString(%struct.Table* %89, i32 2, %union.TString* %95) ; [#uses=1]
+ br label %97
+
+; <label>:97 ; preds = %85, %84
+ %98 = phi %struct.lua_TValue* [ null, %84 ], [ %96, %85 ] ; [#uses=1]
+ br label %99
+
+; <label>:99 ; preds = %97, %73
+ %100 = phi %struct.lua_TValue* [ null, %73 ], [ %98, %97 ] ; [#uses=1]
+ store %struct.lua_TValue* %100, %struct.lua_TValue** %tm, align 4
+ %101 = load %struct.lua_TValue** %tm, align 4 ; [#uses=1]
+ %102 = icmp ne %struct.lua_TValue* %101, null ; [#uses=1]
+ br i1 %102, label %103, label %160
+
+; <label>:103 ; preds = %99
+ %104 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %105 = getelementptr inbounds %struct.lua_State* %104, i32 0, i32 18 ; [#uses=1]
+ %106 = load i8* %105, align 1 ; [#uses=1]
+ store i8 %106, i8* %oldah, align 1
+ %107 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %108 = getelementptr inbounds %struct.global_State* %107, i32 0, i32 13 ; [#uses=1]
+ %109 = load i32* %108, align 4 ; [#uses=1]
+ store i32 %109, i32* %oldt, align 4
+ %110 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %111 = getelementptr inbounds %struct.lua_State* %110, i32 0, i32 18 ; [#uses=1]
+ store i8 0, i8* %111, align 1
+ %112 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %113 = getelementptr inbounds %struct.global_State* %112, i32 0, i32 14 ; [#uses=1]
+ %114 = load i32* %113, align 4 ; [#uses=1]
+ %115 = mul i32 2, %114 ; [#uses=1]
+ %116 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %117 = getelementptr inbounds %struct.global_State* %116, i32 0, i32 13 ; [#uses=1]
+ store i32 %115, i32* %117, align 4
+ %118 = load %struct.lua_TValue** %tm, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %118, %struct.lua_TValue** %o2, align 4
+ %119 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %120 = getelementptr inbounds %struct.lua_State* %119, i32 0, i32 4 ; [#uses=1]
+ %121 = load %struct.lua_TValue** %120, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %121, %struct.lua_TValue** %o1, align 4
+ %122 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %123 = getelementptr inbounds %struct.lua_TValue* %122, i32 0, i32 0 ; [#uses=1]
+ %124 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %125 = getelementptr inbounds %struct.lua_TValue* %124, i32 0, i32 0 ; [#uses=1]
+ %126 = bitcast %union.anon* %123 to i8* ; [#uses=1]
+ %127 = bitcast %union.anon* %125 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %126, i8* %127, i32 8, i32 4, i1 false)
+ %128 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %129 = getelementptr inbounds %struct.lua_TValue* %128, i32 0, i32 1 ; [#uses=1]
+ %130 = load i32* %129, align 4 ; [#uses=1]
+ %131 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %132 = getelementptr inbounds %struct.lua_TValue* %131, i32 0, i32 1 ; [#uses=1]
+ store i32 %130, i32* %132, align 4
+ %133 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %134 = getelementptr inbounds %struct.lua_State* %133, i32 0, i32 4 ; [#uses=1]
+ %135 = load %struct.lua_TValue** %134, align 4 ; [#uses=1]
+ %136 = getelementptr inbounds %struct.lua_TValue* %135, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %136, %struct.lua_TValue** %i_o, align 4
+ %137 = load %union.Udata** %udata, align 4 ; [#uses=1]
+ %138 = bitcast %union.Udata* %137 to %union.GCObject* ; [#uses=1]
+ %139 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %140 = getelementptr inbounds %struct.lua_TValue* %139, i32 0, i32 0 ; [#uses=1]
+ %141 = getelementptr inbounds %union.anon* %140, i32 0, i32 0 ; [#uses=1]
+ %142 = bitcast double* %141 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %138, %union.GCObject** %142, align 4
+ %143 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %144 = getelementptr inbounds %struct.lua_TValue* %143, i32 0, i32 1 ; [#uses=1]
+ store i32 7, i32* %144, align 4
+ %145 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %146 = getelementptr inbounds %struct.lua_State* %145, i32 0, i32 4 ; [#uses=2]
+ %147 = load %struct.lua_TValue** %146, align 4 ; [#uses=1]
+ %148 = getelementptr inbounds %struct.lua_TValue* %147, i32 2 ; [#uses=1]
+ store %struct.lua_TValue* %148, %struct.lua_TValue** %146, align 4
+ %149 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %150 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %151 = getelementptr inbounds %struct.lua_State* %150, i32 0, i32 4 ; [#uses=1]
+ %152 = load %struct.lua_TValue** %151, align 4 ; [#uses=1]
+ %153 = getelementptr inbounds %struct.lua_TValue* %152, i32 -2 ; [#uses=1]
+ call void @_Z9luaD_callP9lua_StateP10lua_TValuei(%struct.lua_State* %149, %struct.lua_TValue* %153, i32 0)
+ %154 = load i8* %oldah, align 1 ; [#uses=1]
+ %155 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %156 = getelementptr inbounds %struct.lua_State* %155, i32 0, i32 18 ; [#uses=1]
+ store i8 %154, i8* %156, align 1
+ %157 = load i32* %oldt, align 4 ; [#uses=1]
+ %158 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %159 = getelementptr inbounds %struct.global_State* %158, i32 0, i32 13 ; [#uses=1]
+ store i32 %157, i32* %159, align 4
+ br label %160
+
+; <label>:160 ; preds = %103, %99
+ ret void
+}
+
+; [#uses=1]
+define hidden void @_Z12luaC_freeallP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=5]
+ %i = alloca i32, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 6 ; [#uses=1]
+ %4 = load %struct.global_State** %3, align 4 ; [#uses=1]
+ store %struct.global_State* %4, %struct.global_State** %g, align 4
+ %5 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.global_State* %5, i32 0, i32 3 ; [#uses=1]
+ store i8 67, i8* %6, align 1
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.global_State* %8, i32 0, i32 6 ; [#uses=1]
+ %10 = call %union.GCObject** @_Z9sweeplistP9lua_StatePP8GCObjectj(%struct.lua_State* %7, %union.GCObject** %9, i32 -3) ; [#uses=0]
+ store i32 0, i32* %i, align 4
+ br label %11
+
+; <label>:11 ; preds = %27, %0
+ %12 = load i32* %i, align 4 ; [#uses=1]
+ %13 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.global_State* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.stringtable* %14, i32 0, i32 2 ; [#uses=1]
+ %16 = load i32* %15, align 4 ; [#uses=1]
+ %17 = icmp slt i32 %12, %16 ; [#uses=1]
+ br i1 %17, label %18, label %30
+
+; <label>:18 ; preds = %11
+ %19 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %20 = load i32* %i, align 4 ; [#uses=1]
+ %21 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.global_State* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.stringtable* %22, i32 0, i32 0 ; [#uses=1]
+ %24 = load %union.GCObject*** %23, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %union.GCObject** %24, i32 %20 ; [#uses=1]
+ %26 = call %union.GCObject** @_Z9sweeplistP9lua_StatePP8GCObjectj(%struct.lua_State* %19, %union.GCObject** %25, i32 -3) ; [#uses=0]
+ br label %27
+
+; <label>:27 ; preds = %18
+ %28 = load i32* %i, align 4 ; [#uses=1]
+ %29 = add nsw i32 %28, 1 ; [#uses=1]
+ store i32 %29, i32* %i, align 4
+ br label %11
+
+; <label>:30 ; preds = %11
+ ret void
+}
+
+; [#uses=5]
+define internal %union.GCObject** @_Z9sweeplistP9lua_StatePP8GCObjectj(%struct.lua_State* %L, %union.GCObject** %p, i32 %count) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca %union.GCObject**, align 4 ; [#uses=5]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %curr = alloca %union.GCObject*, align 4 ; [#uses=11]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=5]
+ %deadmask = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %union.GCObject** %p, %union.GCObject*** %2, align 4
+ store i32 %count, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 6 ; [#uses=1]
+ %6 = load %struct.global_State** %5, align 4 ; [#uses=1]
+ store %struct.global_State* %6, %struct.global_State** %g, align 4
+ %7 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.global_State* %7, i32 0, i32 3 ; [#uses=1]
+ %9 = load i8* %8, align 1 ; [#uses=1]
+ %10 = zext i8 %9 to i32 ; [#uses=1]
+ %11 = xor i32 %10, 3 ; [#uses=1]
+ store i32 %11, i32* %deadmask, align 4
+ br label %12
+
+; <label>:12 ; preds = %95, %0
+ %13 = load %union.GCObject*** %2, align 4 ; [#uses=1]
+ %14 = load %union.GCObject** %13 ; [#uses=2]
+ store %union.GCObject* %14, %union.GCObject** %curr, align 4
+ %15 = icmp ne %union.GCObject* %14, null ; [#uses=1]
+ br i1 %15, label %16, label %20
+
+; <label>:16 ; preds = %12
+ %17 = load i32* %3, align 4 ; [#uses=2]
+ %18 = add i32 %17, -1 ; [#uses=1]
+ store i32 %18, i32* %3, align 4
+ %19 = icmp ugt i32 %17, 0 ; [#uses=1]
+ br label %20
+
+; <label>:20 ; preds = %16, %12
+ %21 = phi i1 [ false, %12 ], [ %19, %16 ] ; [#uses=1]
+ br i1 %21, label %22, label %96
+
+; <label>:22 ; preds = %20
+ %23 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %union.GCObject* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = bitcast %struct.lua_State* %24 to %struct.GCheader* ; [#uses=1]
+ %26 = getelementptr inbounds %struct.GCheader* %25, i32 0, i32 1 ; [#uses=1]
+ %27 = load i8* %26, align 1 ; [#uses=1]
+ %28 = zext i8 %27 to i32 ; [#uses=1]
+ %29 = icmp eq i32 %28, 8 ; [#uses=1]
+ br i1 %29, label %30, label %36
+
+; <label>:30 ; preds = %22
+ %31 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %32 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %union.GCObject* %32, i32 0, i32 0 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_State* %33, i32 0, i32 24 ; [#uses=1]
+ %35 = call %union.GCObject** @_Z9sweeplistP9lua_StatePP8GCObjectj(%struct.lua_State* %31, %union.GCObject** %34, i32 -3) ; [#uses=0]
+ br label %36
+
+; <label>:36 ; preds = %30, %22
+ %37 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %union.GCObject* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = bitcast %struct.lua_State* %38 to %struct.GCheader* ; [#uses=1]
+ %40 = getelementptr inbounds %struct.GCheader* %39, i32 0, i32 2 ; [#uses=1]
+ %41 = load i8* %40, align 1 ; [#uses=1]
+ %42 = zext i8 %41 to i32 ; [#uses=1]
+ %43 = xor i32 %42, 3 ; [#uses=1]
+ %44 = load i32* %deadmask, align 4 ; [#uses=1]
+ %45 = and i32 %43, %44 ; [#uses=1]
+ %46 = icmp ne i32 %45, 0 ; [#uses=1]
+ br i1 %46, label %47, label %72
+
+; <label>:47 ; preds = %36
+ %48 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %union.GCObject* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = bitcast %struct.lua_State* %49 to %struct.GCheader* ; [#uses=1]
+ %51 = getelementptr inbounds %struct.GCheader* %50, i32 0, i32 2 ; [#uses=1]
+ %52 = load i8* %51, align 1 ; [#uses=1]
+ %53 = zext i8 %52 to i32 ; [#uses=1]
+ %54 = and i32 %53, 248 ; [#uses=1]
+ %55 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.global_State* %55, i32 0, i32 3 ; [#uses=1]
+ %57 = load i8* %56, align 1 ; [#uses=1]
+ %58 = zext i8 %57 to i32 ; [#uses=1]
+ %59 = and i32 %58, 3 ; [#uses=1]
+ %60 = trunc i32 %59 to i8 ; [#uses=1]
+ %61 = zext i8 %60 to i32 ; [#uses=1]
+ %62 = or i32 %54, %61 ; [#uses=1]
+ %63 = trunc i32 %62 to i8 ; [#uses=1]
+ %64 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %union.GCObject* %64, i32 0, i32 0 ; [#uses=1]
+ %66 = bitcast %struct.lua_State* %65 to %struct.GCheader* ; [#uses=1]
+ %67 = getelementptr inbounds %struct.GCheader* %66, i32 0, i32 2 ; [#uses=1]
+ store i8 %63, i8* %67, align 1
+ %68 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %union.GCObject* %68, i32 0, i32 0 ; [#uses=1]
+ %70 = bitcast %struct.lua_State* %69 to %struct.GCheader* ; [#uses=1]
+ %71 = getelementptr inbounds %struct.GCheader* %70, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject** %71, %union.GCObject*** %2, align 4
+ br label %95
+
+; <label>:72 ; preds = %36
+ %73 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %union.GCObject* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = bitcast %struct.lua_State* %74 to %struct.GCheader* ; [#uses=1]
+ %76 = getelementptr inbounds %struct.GCheader* %75, i32 0, i32 0 ; [#uses=1]
+ %77 = load %union.GCObject** %76, align 4 ; [#uses=1]
+ %78 = load %union.GCObject*** %2, align 4 ; [#uses=1]
+ store %union.GCObject* %77, %union.GCObject** %78
+ %79 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %80 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.global_State* %80, i32 0, i32 6 ; [#uses=1]
+ %82 = load %union.GCObject** %81, align 4 ; [#uses=1]
+ %83 = icmp eq %union.GCObject* %79, %82 ; [#uses=1]
+ br i1 %83, label %84, label %92
+
+; <label>:84 ; preds = %72
+ %85 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ %86 = getelementptr inbounds %union.GCObject* %85, i32 0, i32 0 ; [#uses=1]
+ %87 = bitcast %struct.lua_State* %86 to %struct.GCheader* ; [#uses=1]
+ %88 = getelementptr inbounds %struct.GCheader* %87, i32 0, i32 0 ; [#uses=1]
+ %89 = load %union.GCObject** %88, align 4 ; [#uses=1]
+ %90 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %91 = getelementptr inbounds %struct.global_State* %90, i32 0, i32 6 ; [#uses=1]
+ store %union.GCObject* %89, %union.GCObject** %91, align 4
+ br label %92
+
+; <label>:92 ; preds = %84, %72
+ %93 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %94 = load %union.GCObject** %curr, align 4 ; [#uses=1]
+ call void @_Z7freeobjP9lua_StateP8GCObject(%struct.lua_State* %93, %union.GCObject* %94)
+ br label %95
+
+; <label>:95 ; preds = %92, %47
+ br label %12
+
+; <label>:96 ; preds = %20
+ %97 = load %union.GCObject*** %2, align 4 ; [#uses=1]
+ ret %union.GCObject** %97
+}
+
+; [#uses=16]
+define hidden void @_Z9luaC_stepP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=16]
+ %lim = alloca i32, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 6 ; [#uses=1]
+ %4 = load %struct.global_State** %3, align 4 ; [#uses=1]
+ store %struct.global_State* %4, %struct.global_State** %g, align 4
+ %5 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.global_State* %5, i32 0, i32 18 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ %8 = mul i32 10, %7 ; [#uses=1]
+ store i32 %8, i32* %lim, align 4
+ %9 = load i32* %lim, align 4 ; [#uses=1]
+ %10 = icmp eq i32 %9, 0 ; [#uses=1]
+ br i1 %10, label %11, label %12
+
+; <label>:11 ; preds = %0
+ store i32 2147483646, i32* %lim, align 4
+ br label %12
+
+; <label>:12 ; preds = %11, %0
+ %13 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.global_State* %13, i32 0, i32 14 ; [#uses=1]
+ %15 = load i32* %14, align 4 ; [#uses=1]
+ %16 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.global_State* %16, i32 0, i32 13 ; [#uses=1]
+ %18 = load i32* %17, align 4 ; [#uses=1]
+ %19 = sub i32 %15, %18 ; [#uses=1]
+ %20 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.global_State* %20, i32 0, i32 16 ; [#uses=2]
+ %22 = load i32* %21, align 4 ; [#uses=1]
+ %23 = add i32 %22, %19 ; [#uses=1]
+ store i32 %23, i32* %21, align 4
+ br label %24
+
+; <label>:24 ; preds = %36, %12
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %26 = call i32 @_Z10singlestepP9lua_State(%struct.lua_State* %25) ; [#uses=1]
+ %27 = load i32* %lim, align 4 ; [#uses=1]
+ %28 = sub nsw i32 %27, %26 ; [#uses=1]
+ store i32 %28, i32* %lim, align 4
+ %29 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.global_State* %29, i32 0, i32 4 ; [#uses=1]
+ %31 = load i8* %30, align 1 ; [#uses=1]
+ %32 = zext i8 %31 to i32 ; [#uses=1]
+ %33 = icmp eq i32 %32, 0 ; [#uses=1]
+ br i1 %33, label %34, label %35
+
+; <label>:34 ; preds = %24
+ br label %39
+
+; <label>:35 ; preds = %24
+ br label %36
+
+; <label>:36 ; preds = %35
+ %37 = load i32* %lim, align 4 ; [#uses=1]
+ %38 = icmp sgt i32 %37, 0 ; [#uses=1]
+ br i1 %38, label %24, label %39
+
+; <label>:39 ; preds = %36, %34
+ %40 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.global_State* %40, i32 0, i32 4 ; [#uses=1]
+ %42 = load i8* %41, align 1 ; [#uses=1]
+ %43 = zext i8 %42 to i32 ; [#uses=1]
+ %44 = icmp ne i32 %43, 0 ; [#uses=1]
+ br i1 %44, label %45, label %68
+
+; <label>:45 ; preds = %39
+ %46 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.global_State* %46, i32 0, i32 16 ; [#uses=1]
+ %48 = load i32* %47, align 4 ; [#uses=1]
+ %49 = icmp ult i32 %48, 1024 ; [#uses=1]
+ br i1 %49, label %50, label %57
+
+; <label>:50 ; preds = %45
+ %51 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.global_State* %51, i32 0, i32 14 ; [#uses=1]
+ %53 = load i32* %52, align 4 ; [#uses=1]
+ %54 = add i32 %53, 1024 ; [#uses=1]
+ %55 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.global_State* %55, i32 0, i32 13 ; [#uses=1]
+ store i32 %54, i32* %56, align 4
+ br label %67
+
+; <label>:57 ; preds = %45
+ %58 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.global_State* %58, i32 0, i32 16 ; [#uses=2]
+ %60 = load i32* %59, align 4 ; [#uses=1]
+ %61 = sub i32 %60, 1024 ; [#uses=1]
+ store i32 %61, i32* %59, align 4
+ %62 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.global_State* %62, i32 0, i32 14 ; [#uses=1]
+ %64 = load i32* %63, align 4 ; [#uses=1]
+ %65 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.global_State* %65, i32 0, i32 13 ; [#uses=1]
+ store i32 %64, i32* %66, align 4
+ br label %67
+
+; <label>:67 ; preds = %57, %50
+ br label %79
+
+; <label>:68 ; preds = %39
+ %69 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.global_State* %69, i32 0, i32 15 ; [#uses=1]
+ %71 = load i32* %70, align 4 ; [#uses=1]
+ %72 = udiv i32 %71, 100 ; [#uses=1]
+ %73 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.global_State* %73, i32 0, i32 17 ; [#uses=1]
+ %75 = load i32* %74, align 4 ; [#uses=1]
+ %76 = mul i32 %72, %75 ; [#uses=1]
+ %77 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %78 = getelementptr inbounds %struct.global_State* %77, i32 0, i32 13 ; [#uses=1]
+ store i32 %76, i32* %78, align 4
+ br label %79
+
+; <label>:79 ; preds = %68, %67
+ ret void
+}
+
+; [#uses=3]
+define internal i32 @_Z10singlestepP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=9]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=24]
+ %old = alloca i32, align 4 ; [#uses=2]
+ %old1 = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 6 ; [#uses=1]
+ %5 = load %struct.global_State** %4, align 4 ; [#uses=1]
+ store %struct.global_State* %5, %struct.global_State** %g, align 4
+ %6 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.global_State* %6, i32 0, i32 4 ; [#uses=1]
+ %8 = load i8* %7, align 1 ; [#uses=1]
+ %9 = zext i8 %8 to i32 ; [#uses=1]
+ switch i32 %9, label %110 [
+ i32 0, label %10
+ i32 1, label %12
+ i32 2, label %22
+ i32 3, label %58
+ i32 4, label %88
+ ]
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z8markrootP9lua_State(%struct.lua_State* %11)
+ store i32 0, i32* %1
+ br label %111
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.global_State* %13, i32 0, i32 8 ; [#uses=1]
+ %15 = load %union.GCObject** %14, align 4 ; [#uses=1]
+ %16 = icmp ne %union.GCObject* %15, null ; [#uses=1]
+ br i1 %16, label %17, label %20
+
+; <label>:17 ; preds = %12
+ %18 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %19 = call i32 @_Z13propagatemarkP12global_State(%struct.global_State* %18) ; [#uses=1]
+ store i32 %19, i32* %1
+ br label %111
+
+; <label>:20 ; preds = %12
+ %21 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z6atomicP9lua_State(%struct.lua_State* %21)
+ store i32 0, i32* %1
+ br label %111
+
+; <label>:22 ; preds = %0
+ %23 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.global_State* %23, i32 0, i32 14 ; [#uses=1]
+ %25 = load i32* %24, align 4 ; [#uses=1]
+ store i32 %25, i32* %old, align 4
+ %26 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %27 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.global_State* %27, i32 0, i32 5 ; [#uses=2]
+ %29 = load i32* %28, align 4 ; [#uses=2]
+ %30 = add nsw i32 %29, 1 ; [#uses=1]
+ store i32 %30, i32* %28, align 4
+ %31 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.global_State* %31, i32 0, i32 0 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.stringtable* %32, i32 0, i32 0 ; [#uses=1]
+ %34 = load %union.GCObject*** %33, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %union.GCObject** %34, i32 %29 ; [#uses=1]
+ %36 = call %union.GCObject** @_Z9sweeplistP9lua_StatePP8GCObjectj(%struct.lua_State* %26, %union.GCObject** %35, i32 -3) ; [#uses=0]
+ %37 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.global_State* %37, i32 0, i32 5 ; [#uses=1]
+ %39 = load i32* %38, align 4 ; [#uses=1]
+ %40 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.global_State* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.stringtable* %41, i32 0, i32 2 ; [#uses=1]
+ %43 = load i32* %42, align 4 ; [#uses=1]
+ %44 = icmp sge i32 %39, %43 ; [#uses=1]
+ br i1 %44, label %45, label %48
+
+; <label>:45 ; preds = %22
+ %46 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.global_State* %46, i32 0, i32 4 ; [#uses=1]
+ store i8 3, i8* %47, align 1
+ br label %48
+
+; <label>:48 ; preds = %45, %22
+ %49 = load i32* %old, align 4 ; [#uses=1]
+ %50 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.global_State* %50, i32 0, i32 14 ; [#uses=1]
+ %52 = load i32* %51, align 4 ; [#uses=1]
+ %53 = sub i32 %49, %52 ; [#uses=1]
+ %54 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.global_State* %54, i32 0, i32 15 ; [#uses=2]
+ %56 = load i32* %55, align 4 ; [#uses=1]
+ %57 = sub i32 %56, %53 ; [#uses=1]
+ store i32 %57, i32* %55, align 4
+ store i32 10, i32* %1
+ br label %111
+
+; <label>:58 ; preds = %0
+ %59 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.global_State* %59, i32 0, i32 14 ; [#uses=1]
+ %61 = load i32* %60, align 4 ; [#uses=1]
+ store i32 %61, i32* %old1, align 4
+ %62 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %63 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.global_State* %63, i32 0, i32 7 ; [#uses=1]
+ %65 = load %union.GCObject*** %64, align 4 ; [#uses=1]
+ %66 = call %union.GCObject** @_Z9sweeplistP9lua_StatePP8GCObjectj(%struct.lua_State* %62, %union.GCObject** %65, i32 40) ; [#uses=1]
+ %67 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.global_State* %67, i32 0, i32 7 ; [#uses=1]
+ store %union.GCObject** %66, %union.GCObject*** %68, align 4
+ %69 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.global_State* %69, i32 0, i32 7 ; [#uses=1]
+ %71 = load %union.GCObject*** %70, align 4 ; [#uses=1]
+ %72 = load %union.GCObject** %71 ; [#uses=1]
+ %73 = icmp eq %union.GCObject* %72, null ; [#uses=1]
+ br i1 %73, label %74, label %78
+
+; <label>:74 ; preds = %58
+ %75 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10checkSizesP9lua_State(%struct.lua_State* %75)
+ %76 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %77 = getelementptr inbounds %struct.global_State* %76, i32 0, i32 4 ; [#uses=1]
+ store i8 4, i8* %77, align 1
+ br label %78
+
+; <label>:78 ; preds = %74, %58
+ %79 = load i32* %old1, align 4 ; [#uses=1]
+ %80 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.global_State* %80, i32 0, i32 14 ; [#uses=1]
+ %82 = load i32* %81, align 4 ; [#uses=1]
+ %83 = sub i32 %79, %82 ; [#uses=1]
+ %84 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %struct.global_State* %84, i32 0, i32 15 ; [#uses=2]
+ %86 = load i32* %85, align 4 ; [#uses=1]
+ %87 = sub i32 %86, %83 ; [#uses=1]
+ store i32 %87, i32* %85, align 4
+ store i32 400, i32* %1
+ br label %111
+
+; <label>:88 ; preds = %0
+ %89 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %90 = getelementptr inbounds %struct.global_State* %89, i32 0, i32 11 ; [#uses=1]
+ %91 = load %union.GCObject** %90, align 4 ; [#uses=1]
+ %92 = icmp ne %union.GCObject* %91, null ; [#uses=1]
+ br i1 %92, label %93, label %105
+
+; <label>:93 ; preds = %88
+ %94 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z4GCTMP9lua_State(%struct.lua_State* %94)
+ %95 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %96 = getelementptr inbounds %struct.global_State* %95, i32 0, i32 15 ; [#uses=1]
+ %97 = load i32* %96, align 4 ; [#uses=1]
+ %98 = icmp ugt i32 %97, 100 ; [#uses=1]
+ br i1 %98, label %99, label %104
+
+; <label>:99 ; preds = %93
+ %100 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %101 = getelementptr inbounds %struct.global_State* %100, i32 0, i32 15 ; [#uses=2]
+ %102 = load i32* %101, align 4 ; [#uses=1]
+ %103 = sub i32 %102, 100 ; [#uses=1]
+ store i32 %103, i32* %101, align 4
+ br label %104
+
+; <label>:104 ; preds = %99, %93
+ store i32 100, i32* %1
+ br label %111
+
+; <label>:105 ; preds = %88
+ %106 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %107 = getelementptr inbounds %struct.global_State* %106, i32 0, i32 4 ; [#uses=1]
+ store i8 0, i8* %107, align 1
+ %108 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %109 = getelementptr inbounds %struct.global_State* %108, i32 0, i32 16 ; [#uses=1]
+ store i32 0, i32* %109, align 4
+ store i32 0, i32* %1
+ br label %111
+
+; <label>:110 ; preds = %0
+ store i32 0, i32* %1
+ br label %111
+
+; <label>:111 ; preds = %110, %105, %104, %78, %48, %20, %17, %10
+ %112 = load i32* %1 ; [#uses=1]
+ ret i32 %112
+}
+
+; [#uses=1]
+define hidden void @_Z11luaC_fullgcP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=14]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 6 ; [#uses=1]
+ %4 = load %struct.global_State** %3, align 4 ; [#uses=1]
+ store %struct.global_State* %4, %struct.global_State** %g, align 4
+ %5 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.global_State* %5, i32 0, i32 4 ; [#uses=1]
+ %7 = load i8* %6, align 1 ; [#uses=1]
+ %8 = zext i8 %7 to i32 ; [#uses=1]
+ %9 = icmp sle i32 %8, 1 ; [#uses=1]
+ br i1 %9, label %10, label %25
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.global_State* %11, i32 0, i32 5 ; [#uses=1]
+ store i32 0, i32* %12, align 4
+ %13 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.global_State* %13, i32 0, i32 6 ; [#uses=1]
+ %15 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.global_State* %15, i32 0, i32 7 ; [#uses=1]
+ store %union.GCObject** %14, %union.GCObject*** %16, align 4
+ %17 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.global_State* %17, i32 0, i32 8 ; [#uses=1]
+ store %union.GCObject* null, %union.GCObject** %18, align 4
+ %19 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.global_State* %19, i32 0, i32 9 ; [#uses=1]
+ store %union.GCObject* null, %union.GCObject** %20, align 4
+ %21 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.global_State* %21, i32 0, i32 10 ; [#uses=1]
+ store %union.GCObject* null, %union.GCObject** %22, align 4
+ %23 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.global_State* %23, i32 0, i32 4 ; [#uses=1]
+ store i8 2, i8* %24, align 1
+ br label %25
+
+; <label>:25 ; preds = %10, %0
+ br label %26
+
+; <label>:26 ; preds = %32, %25
+ %27 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.global_State* %27, i32 0, i32 4 ; [#uses=1]
+ %29 = load i8* %28, align 1 ; [#uses=1]
+ %30 = zext i8 %29 to i32 ; [#uses=1]
+ %31 = icmp ne i32 %30, 4 ; [#uses=1]
+ br i1 %31, label %32, label %35
+
+; <label>:32 ; preds = %26
+ %33 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %34 = call i32 @_Z10singlestepP9lua_State(%struct.lua_State* %33) ; [#uses=0]
+ br label %26
+
+; <label>:35 ; preds = %26
+ %36 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z8markrootP9lua_State(%struct.lua_State* %36)
+ br label %37
+
+; <label>:37 ; preds = %43, %35
+ %38 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.global_State* %38, i32 0, i32 4 ; [#uses=1]
+ %40 = load i8* %39, align 1 ; [#uses=1]
+ %41 = zext i8 %40 to i32 ; [#uses=1]
+ %42 = icmp ne i32 %41, 0 ; [#uses=1]
+ br i1 %42, label %43, label %46
+
+; <label>:43 ; preds = %37
+ %44 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %45 = call i32 @_Z10singlestepP9lua_State(%struct.lua_State* %44) ; [#uses=0]
+ br label %37
+
+; <label>:46 ; preds = %37
+ %47 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.global_State* %47, i32 0, i32 15 ; [#uses=1]
+ %49 = load i32* %48, align 4 ; [#uses=1]
+ %50 = udiv i32 %49, 100 ; [#uses=1]
+ %51 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.global_State* %51, i32 0, i32 17 ; [#uses=1]
+ %53 = load i32* %52, align 4 ; [#uses=1]
+ %54 = mul i32 %50, %53 ; [#uses=1]
+ %55 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.global_State* %55, i32 0, i32 13 ; [#uses=1]
+ store i32 %54, i32* %56, align 4
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z8markrootP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=14]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 6 ; [#uses=1]
+ %4 = load %struct.global_State** %3, align 4 ; [#uses=1]
+ store %struct.global_State* %4, %struct.global_State** %g, align 4
+ %5 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.global_State* %5, i32 0, i32 8 ; [#uses=1]
+ store %union.GCObject* null, %union.GCObject** %6, align 4
+ %7 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.global_State* %7, i32 0, i32 9 ; [#uses=1]
+ store %union.GCObject* null, %union.GCObject** %8, align 4
+ %9 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.global_State* %9, i32 0, i32 10 ; [#uses=1]
+ store %union.GCObject* null, %union.GCObject** %10, align 4
+ %11 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.global_State* %11, i32 0, i32 21 ; [#uses=1]
+ %13 = load %struct.lua_State** %12, align 4 ; [#uses=1]
+ %14 = bitcast %struct.lua_State* %13 to %union.GCObject* ; [#uses=1]
+ %15 = getelementptr inbounds %union.GCObject* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = bitcast %struct.lua_State* %15 to %struct.GCheader* ; [#uses=1]
+ %17 = getelementptr inbounds %struct.GCheader* %16, i32 0, i32 2 ; [#uses=1]
+ %18 = load i8* %17, align 1 ; [#uses=1]
+ %19 = zext i8 %18 to i32 ; [#uses=1]
+ %20 = and i32 %19, 3 ; [#uses=1]
+ %21 = icmp ne i32 %20, 0 ; [#uses=1]
+ br i1 %21, label %22, label %28
+
+; <label>:22 ; preds = %0
+ %23 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %24 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.global_State* %24, i32 0, i32 21 ; [#uses=1]
+ %26 = load %struct.lua_State** %25, align 4 ; [#uses=1]
+ %27 = bitcast %struct.lua_State* %26 to %union.GCObject* ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %23, %union.GCObject* %27)
+ br label %28
+
+; <label>:28 ; preds = %22, %0
+ %29 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.global_State* %29, i32 0, i32 21 ; [#uses=1]
+ %31 = load %struct.lua_State** %30, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_State* %31, i32 0, i32 22 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_TValue* %32, i32 0, i32 1 ; [#uses=1]
+ %34 = load i32* %33, align 4 ; [#uses=1]
+ %35 = icmp sge i32 %34, 4 ; [#uses=1]
+ br i1 %35, label %36, label %62
+
+; <label>:36 ; preds = %28
+ %37 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.global_State* %37, i32 0, i32 21 ; [#uses=1]
+ %39 = load %struct.lua_State** %38, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.lua_State* %39, i32 0, i32 22 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.lua_TValue* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = getelementptr inbounds %union.anon* %41, i32 0, i32 0 ; [#uses=1]
+ %43 = bitcast double* %42 to %union.GCObject** ; [#uses=1]
+ %44 = load %union.GCObject** %43, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %union.GCObject* %44, i32 0, i32 0 ; [#uses=1]
+ %46 = bitcast %struct.lua_State* %45 to %struct.GCheader* ; [#uses=1]
+ %47 = getelementptr inbounds %struct.GCheader* %46, i32 0, i32 2 ; [#uses=1]
+ %48 = load i8* %47, align 1 ; [#uses=1]
+ %49 = zext i8 %48 to i32 ; [#uses=1]
+ %50 = and i32 %49, 3 ; [#uses=1]
+ %51 = icmp ne i32 %50, 0 ; [#uses=1]
+ br i1 %51, label %52, label %62
+
+; <label>:52 ; preds = %36
+ %53 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %54 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.global_State* %54, i32 0, i32 21 ; [#uses=1]
+ %56 = load %struct.lua_State** %55, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.lua_State* %56, i32 0, i32 22 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.lua_TValue* %57, i32 0, i32 0 ; [#uses=1]
+ %59 = getelementptr inbounds %union.anon* %58, i32 0, i32 0 ; [#uses=1]
+ %60 = bitcast double* %59 to %union.GCObject** ; [#uses=1]
+ %61 = load %union.GCObject** %60, align 4 ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %53, %union.GCObject* %61)
+ br label %62
+
+; <label>:62 ; preds = %52, %36, %28
+ %63 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.lua_State* %63, i32 0, i32 6 ; [#uses=1]
+ %65 = load %struct.global_State** %64, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.global_State* %65, i32 0, i32 20 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.lua_TValue* %66, i32 0, i32 1 ; [#uses=1]
+ %68 = load i32* %67, align 4 ; [#uses=1]
+ %69 = icmp sge i32 %68, 4 ; [#uses=1]
+ br i1 %69, label %70, label %96
+
+; <label>:70 ; preds = %62
+ %71 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.lua_State* %71, i32 0, i32 6 ; [#uses=1]
+ %73 = load %struct.global_State** %72, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.global_State* %73, i32 0, i32 20 ; [#uses=1]
+ %75 = getelementptr inbounds %struct.lua_TValue* %74, i32 0, i32 0 ; [#uses=1]
+ %76 = getelementptr inbounds %union.anon* %75, i32 0, i32 0 ; [#uses=1]
+ %77 = bitcast double* %76 to %union.GCObject** ; [#uses=1]
+ %78 = load %union.GCObject** %77, align 4 ; [#uses=1]
+ %79 = getelementptr inbounds %union.GCObject* %78, i32 0, i32 0 ; [#uses=1]
+ %80 = bitcast %struct.lua_State* %79 to %struct.GCheader* ; [#uses=1]
+ %81 = getelementptr inbounds %struct.GCheader* %80, i32 0, i32 2 ; [#uses=1]
+ %82 = load i8* %81, align 1 ; [#uses=1]
+ %83 = zext i8 %82 to i32 ; [#uses=1]
+ %84 = and i32 %83, 3 ; [#uses=1]
+ %85 = icmp ne i32 %84, 0 ; [#uses=1]
+ br i1 %85, label %86, label %96
+
+; <label>:86 ; preds = %70
+ %87 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %88 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %89 = getelementptr inbounds %struct.lua_State* %88, i32 0, i32 6 ; [#uses=1]
+ %90 = load %struct.global_State** %89, align 4 ; [#uses=1]
+ %91 = getelementptr inbounds %struct.global_State* %90, i32 0, i32 20 ; [#uses=1]
+ %92 = getelementptr inbounds %struct.lua_TValue* %91, i32 0, i32 0 ; [#uses=1]
+ %93 = getelementptr inbounds %union.anon* %92, i32 0, i32 0 ; [#uses=1]
+ %94 = bitcast double* %93 to %union.GCObject** ; [#uses=1]
+ %95 = load %union.GCObject** %94, align 4 ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %87, %union.GCObject* %95)
+ br label %96
+
+; <label>:96 ; preds = %86, %70, %62
+ %97 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ call void @_Z6markmtP12global_State(%struct.global_State* %97)
+ %98 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %99 = getelementptr inbounds %struct.global_State* %98, i32 0, i32 4 ; [#uses=1]
+ store i8 1, i8* %99, align 1
+ ret void
+}
+
+; [#uses=11]
+define hidden void @_Z13luaC_barrierfP9lua_StateP8GCObjectS2_(%struct.lua_State* %L, %union.GCObject* %o, %union.GCObject* %v) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca %union.GCObject*, align 4 ; [#uses=3]
+ %3 = alloca %union.GCObject*, align 4 ; [#uses=2]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %union.GCObject* %o, %union.GCObject** %2, align 4
+ store %union.GCObject* %v, %union.GCObject** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 6 ; [#uses=1]
+ %6 = load %struct.global_State** %5, align 4 ; [#uses=1]
+ store %struct.global_State* %6, %struct.global_State** %g, align 4
+ %7 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.global_State* %7, i32 0, i32 4 ; [#uses=1]
+ %9 = load i8* %8, align 1 ; [#uses=1]
+ %10 = zext i8 %9 to i32 ; [#uses=1]
+ %11 = icmp eq i32 %10, 1 ; [#uses=1]
+ br i1 %11, label %12, label %15
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %14 = load %union.GCObject** %3, align 4 ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %13, %union.GCObject* %14)
+ br label %36
+
+; <label>:15 ; preds = %0
+ %16 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %union.GCObject* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = bitcast %struct.lua_State* %17 to %struct.GCheader* ; [#uses=1]
+ %19 = getelementptr inbounds %struct.GCheader* %18, i32 0, i32 2 ; [#uses=1]
+ %20 = load i8* %19, align 1 ; [#uses=1]
+ %21 = zext i8 %20 to i32 ; [#uses=1]
+ %22 = and i32 %21, 248 ; [#uses=1]
+ %23 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.global_State* %23, i32 0, i32 3 ; [#uses=1]
+ %25 = load i8* %24, align 1 ; [#uses=1]
+ %26 = zext i8 %25 to i32 ; [#uses=1]
+ %27 = and i32 %26, 3 ; [#uses=1]
+ %28 = trunc i32 %27 to i8 ; [#uses=1]
+ %29 = zext i8 %28 to i32 ; [#uses=1]
+ %30 = or i32 %22, %29 ; [#uses=1]
+ %31 = trunc i32 %30 to i8 ; [#uses=1]
+ %32 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %union.GCObject* %32, i32 0, i32 0 ; [#uses=1]
+ %34 = bitcast %struct.lua_State* %33 to %struct.GCheader* ; [#uses=1]
+ %35 = getelementptr inbounds %struct.GCheader* %34, i32 0, i32 2 ; [#uses=1]
+ store i8 %31, i8* %35, align 1
+ br label %36
+
+; <label>:36 ; preds = %15, %12
+ ret void
+}
+
+; [#uses=23]
+define internal void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %g, %union.GCObject* %o) {
+ %1 = alloca %struct.global_State*, align 4 ; [#uses=12]
+ %2 = alloca %union.GCObject*, align 4 ; [#uses=17]
+ %mt = alloca %struct.Table*, align 4 ; [#uses=4]
+ %uv = alloca %struct.UpVal*, align 4 ; [#uses=6]
+ store %struct.global_State* %g, %struct.global_State** %1, align 4
+ store %union.GCObject* %o, %union.GCObject** %2, align 4
+ %3 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %union.GCObject* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = bitcast %struct.lua_State* %4 to %struct.GCheader* ; [#uses=1]
+ %6 = getelementptr inbounds %struct.GCheader* %5, i32 0, i32 2 ; [#uses=2]
+ %7 = load i8* %6, align 1 ; [#uses=1]
+ %8 = zext i8 %7 to i32 ; [#uses=1]
+ %9 = and i32 %8, 252 ; [#uses=1]
+ %10 = trunc i32 %9 to i8 ; [#uses=1]
+ store i8 %10, i8* %6, align 1
+ %11 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %union.GCObject* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = bitcast %struct.lua_State* %12 to %struct.GCheader* ; [#uses=1]
+ %14 = getelementptr inbounds %struct.GCheader* %13, i32 0, i32 1 ; [#uses=1]
+ %15 = load i8* %14, align 1 ; [#uses=1]
+ %16 = zext i8 %15 to i32 ; [#uses=1]
+ switch i32 %16, label %171 [
+ i32 4, label %17
+ i32 7, label %18
+ i32 10, label %75
+ i32 6, label %127
+ i32 5, label %139
+ i32 8, label %150
+ i32 9, label %160
+ ]
+
+; <label>:17 ; preds = %0
+ br label %172
+
+; <label>:18 ; preds = %0
+ %19 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %union.GCObject* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = bitcast %struct.lua_State* %20 to %union.Udata* ; [#uses=1]
+ %22 = getelementptr inbounds %union.Udata* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = getelementptr inbounds %4* %22, i32 0, i32 3 ; [#uses=1]
+ %24 = load %struct.Table** %23, align 4 ; [#uses=1]
+ store %struct.Table* %24, %struct.Table** %mt, align 4
+ %25 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %union.GCObject* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = bitcast %struct.lua_State* %26 to %struct.GCheader* ; [#uses=1]
+ %28 = getelementptr inbounds %struct.GCheader* %27, i32 0, i32 2 ; [#uses=2]
+ %29 = load i8* %28, align 1 ; [#uses=1]
+ %30 = zext i8 %29 to i32 ; [#uses=1]
+ %31 = or i32 %30, 4 ; [#uses=1]
+ %32 = trunc i32 %31 to i8 ; [#uses=1]
+ store i8 %32, i8* %28, align 1
+ %33 = load %struct.Table** %mt, align 4 ; [#uses=1]
+ %34 = icmp ne %struct.Table* %33, null ; [#uses=1]
+ br i1 %34, label %35, label %50
+
+; <label>:35 ; preds = %18
+ %36 = load %struct.Table** %mt, align 4 ; [#uses=1]
+ %37 = bitcast %struct.Table* %36 to %union.GCObject* ; [#uses=1]
+ %38 = getelementptr inbounds %union.GCObject* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = bitcast %struct.lua_State* %38 to %struct.GCheader* ; [#uses=1]
+ %40 = getelementptr inbounds %struct.GCheader* %39, i32 0, i32 2 ; [#uses=1]
+ %41 = load i8* %40, align 1 ; [#uses=1]
+ %42 = zext i8 %41 to i32 ; [#uses=1]
+ %43 = and i32 %42, 3 ; [#uses=1]
+ %44 = icmp ne i32 %43, 0 ; [#uses=1]
+ br i1 %44, label %45, label %49
+
+; <label>:45 ; preds = %35
+ %46 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %47 = load %struct.Table** %mt, align 4 ; [#uses=1]
+ %48 = bitcast %struct.Table* %47 to %union.GCObject* ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %46, %union.GCObject* %48)
+ br label %49
+
+; <label>:49 ; preds = %45, %35
+ br label %50
+
+; <label>:50 ; preds = %49, %18
+ %51 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %union.GCObject* %51, i32 0, i32 0 ; [#uses=1]
+ %53 = bitcast %struct.lua_State* %52 to %union.Udata* ; [#uses=1]
+ %54 = getelementptr inbounds %union.Udata* %53, i32 0, i32 0 ; [#uses=1]
+ %55 = getelementptr inbounds %4* %54, i32 0, i32 4 ; [#uses=1]
+ %56 = load %struct.Table** %55, align 4 ; [#uses=1]
+ %57 = bitcast %struct.Table* %56 to %union.GCObject* ; [#uses=1]
+ %58 = getelementptr inbounds %union.GCObject* %57, i32 0, i32 0 ; [#uses=1]
+ %59 = bitcast %struct.lua_State* %58 to %struct.GCheader* ; [#uses=1]
+ %60 = getelementptr inbounds %struct.GCheader* %59, i32 0, i32 2 ; [#uses=1]
+ %61 = load i8* %60, align 1 ; [#uses=1]
+ %62 = zext i8 %61 to i32 ; [#uses=1]
+ %63 = and i32 %62, 3 ; [#uses=1]
+ %64 = icmp ne i32 %63, 0 ; [#uses=1]
+ br i1 %64, label %65, label %74
+
+; <label>:65 ; preds = %50
+ %66 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %67 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %union.GCObject* %67, i32 0, i32 0 ; [#uses=1]
+ %69 = bitcast %struct.lua_State* %68 to %union.Udata* ; [#uses=1]
+ %70 = getelementptr inbounds %union.Udata* %69, i32 0, i32 0 ; [#uses=1]
+ %71 = getelementptr inbounds %4* %70, i32 0, i32 4 ; [#uses=1]
+ %72 = load %struct.Table** %71, align 4 ; [#uses=1]
+ %73 = bitcast %struct.Table* %72 to %union.GCObject* ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %66, %union.GCObject* %73)
+ br label %74
+
+; <label>:74 ; preds = %65, %50
+ br label %172
+
+; <label>:75 ; preds = %0
+ %76 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %77 = getelementptr inbounds %union.GCObject* %76, i32 0, i32 0 ; [#uses=1]
+ %78 = bitcast %struct.lua_State* %77 to %struct.UpVal* ; [#uses=1]
+ store %struct.UpVal* %78, %struct.UpVal** %uv, align 4
+ %79 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %80 = getelementptr inbounds %struct.UpVal* %79, i32 0, i32 3 ; [#uses=1]
+ %81 = load %struct.lua_TValue** %80, align 4 ; [#uses=1]
+ %82 = getelementptr inbounds %struct.lua_TValue* %81, i32 0, i32 1 ; [#uses=1]
+ %83 = load i32* %82, align 4 ; [#uses=1]
+ %84 = icmp sge i32 %83, 4 ; [#uses=1]
+ br i1 %84, label %85, label %109
+
+; <label>:85 ; preds = %75
+ %86 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %87 = getelementptr inbounds %struct.UpVal* %86, i32 0, i32 3 ; [#uses=1]
+ %88 = load %struct.lua_TValue** %87, align 4 ; [#uses=1]
+ %89 = getelementptr inbounds %struct.lua_TValue* %88, i32 0, i32 0 ; [#uses=1]
+ %90 = getelementptr inbounds %union.anon* %89, i32 0, i32 0 ; [#uses=1]
+ %91 = bitcast double* %90 to %union.GCObject** ; [#uses=1]
+ %92 = load %union.GCObject** %91, align 4 ; [#uses=1]
+ %93 = getelementptr inbounds %union.GCObject* %92, i32 0, i32 0 ; [#uses=1]
+ %94 = bitcast %struct.lua_State* %93 to %struct.GCheader* ; [#uses=1]
+ %95 = getelementptr inbounds %struct.GCheader* %94, i32 0, i32 2 ; [#uses=1]
+ %96 = load i8* %95, align 1 ; [#uses=1]
+ %97 = zext i8 %96 to i32 ; [#uses=1]
+ %98 = and i32 %97, 3 ; [#uses=1]
+ %99 = icmp ne i32 %98, 0 ; [#uses=1]
+ br i1 %99, label %100, label %109
+
+; <label>:100 ; preds = %85
+ %101 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %102 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %103 = getelementptr inbounds %struct.UpVal* %102, i32 0, i32 3 ; [#uses=1]
+ %104 = load %struct.lua_TValue** %103, align 4 ; [#uses=1]
+ %105 = getelementptr inbounds %struct.lua_TValue* %104, i32 0, i32 0 ; [#uses=1]
+ %106 = getelementptr inbounds %union.anon* %105, i32 0, i32 0 ; [#uses=1]
+ %107 = bitcast double* %106 to %union.GCObject** ; [#uses=1]
+ %108 = load %union.GCObject** %107, align 4 ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %101, %union.GCObject* %108)
+ br label %109
+
+; <label>:109 ; preds = %100, %85, %75
+ %110 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %111 = getelementptr inbounds %struct.UpVal* %110, i32 0, i32 3 ; [#uses=1]
+ %112 = load %struct.lua_TValue** %111, align 4 ; [#uses=1]
+ %113 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %114 = getelementptr inbounds %struct.UpVal* %113, i32 0, i32 4 ; [#uses=1]
+ %115 = getelementptr inbounds %0* %114, i32 0, i32 0 ; [#uses=1]
+ %116 = icmp eq %struct.lua_TValue* %112, %115 ; [#uses=1]
+ br i1 %116, label %117, label %126
+
+; <label>:117 ; preds = %109
+ %118 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %119 = getelementptr inbounds %union.GCObject* %118, i32 0, i32 0 ; [#uses=1]
+ %120 = bitcast %struct.lua_State* %119 to %struct.GCheader* ; [#uses=1]
+ %121 = getelementptr inbounds %struct.GCheader* %120, i32 0, i32 2 ; [#uses=2]
+ %122 = load i8* %121, align 1 ; [#uses=1]
+ %123 = zext i8 %122 to i32 ; [#uses=1]
+ %124 = or i32 %123, 4 ; [#uses=1]
+ %125 = trunc i32 %124 to i8 ; [#uses=1]
+ store i8 %125, i8* %121, align 1
+ br label %126
+
+; <label>:126 ; preds = %117, %109
+ br label %172
+
+; <label>:127 ; preds = %0
+ %128 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %129 = getelementptr inbounds %struct.global_State* %128, i32 0, i32 8 ; [#uses=1]
+ %130 = load %union.GCObject** %129, align 4 ; [#uses=1]
+ %131 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %132 = getelementptr inbounds %union.GCObject* %131, i32 0, i32 0 ; [#uses=1]
+ %133 = bitcast %struct.lua_State* %132 to %union.Closure* ; [#uses=1]
+ %134 = getelementptr inbounds %union.Closure* %133, i32 0, i32 0 ; [#uses=1]
+ %135 = getelementptr inbounds %struct.CClosure* %134, i32 0, i32 5 ; [#uses=1]
+ store %union.GCObject* %130, %union.GCObject** %135, align 4
+ %136 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %137 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %138 = getelementptr inbounds %struct.global_State* %137, i32 0, i32 8 ; [#uses=1]
+ store %union.GCObject* %136, %union.GCObject** %138, align 4
+ br label %172
+
+; <label>:139 ; preds = %0
+ %140 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %141 = getelementptr inbounds %struct.global_State* %140, i32 0, i32 8 ; [#uses=1]
+ %142 = load %union.GCObject** %141, align 4 ; [#uses=1]
+ %143 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %144 = getelementptr inbounds %union.GCObject* %143, i32 0, i32 0 ; [#uses=1]
+ %145 = bitcast %struct.lua_State* %144 to %struct.Table* ; [#uses=1]
+ %146 = getelementptr inbounds %struct.Table* %145, i32 0, i32 9 ; [#uses=1]
+ store %union.GCObject* %142, %union.GCObject** %146, align 4
+ %147 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %148 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %149 = getelementptr inbounds %struct.global_State* %148, i32 0, i32 8 ; [#uses=1]
+ store %union.GCObject* %147, %union.GCObject** %149, align 4
+ br label %172
+
+; <label>:150 ; preds = %0
+ %151 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %152 = getelementptr inbounds %struct.global_State* %151, i32 0, i32 8 ; [#uses=1]
+ %153 = load %union.GCObject** %152, align 4 ; [#uses=1]
+ %154 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %155 = getelementptr inbounds %union.GCObject* %154, i32 0, i32 0 ; [#uses=1]
+ %156 = getelementptr inbounds %struct.lua_State* %155, i32 0, i32 25 ; [#uses=1]
+ store %union.GCObject* %153, %union.GCObject** %156, align 4
+ %157 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %158 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %159 = getelementptr inbounds %struct.global_State* %158, i32 0, i32 8 ; [#uses=1]
+ store %union.GCObject* %157, %union.GCObject** %159, align 4
+ br label %172
+
+; <label>:160 ; preds = %0
+ %161 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %162 = getelementptr inbounds %struct.global_State* %161, i32 0, i32 8 ; [#uses=1]
+ %163 = load %union.GCObject** %162, align 4 ; [#uses=1]
+ %164 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %165 = getelementptr inbounds %union.GCObject* %164, i32 0, i32 0 ; [#uses=1]
+ %166 = bitcast %struct.lua_State* %165 to %struct.Proto* ; [#uses=1]
+ %167 = getelementptr inbounds %struct.Proto* %166, i32 0, i32 18 ; [#uses=1]
+ store %union.GCObject* %163, %union.GCObject** %167, align 4
+ %168 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %169 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %170 = getelementptr inbounds %struct.global_State* %169, i32 0, i32 8 ; [#uses=1]
+ store %union.GCObject* %168, %union.GCObject** %170, align 4
+ br label %172
+
+; <label>:171 ; preds = %0
+ br label %172
+
+; <label>:172 ; preds = %171, %160, %150, %139, %127, %126, %74, %17
+ ret void
+}
+
+; [#uses=6]
+define hidden void @_Z16luaC_barrierbackP9lua_StateP5Table(%struct.lua_State* %L, %struct.Table* %t) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca %struct.Table*, align 4 ; [#uses=3]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=3]
+ %o = alloca %union.GCObject*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.Table* %t, %struct.Table** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 6 ; [#uses=1]
+ %5 = load %struct.global_State** %4, align 4 ; [#uses=1]
+ store %struct.global_State* %5, %struct.global_State** %g, align 4
+ %6 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %7 = bitcast %struct.Table* %6 to %union.GCObject* ; [#uses=1]
+ store %union.GCObject* %7, %union.GCObject** %o, align 4
+ %8 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %union.GCObject* %8, i32 0, i32 0 ; [#uses=1]
+ %10 = bitcast %struct.lua_State* %9 to %struct.GCheader* ; [#uses=1]
+ %11 = getelementptr inbounds %struct.GCheader* %10, i32 0, i32 2 ; [#uses=2]
+ %12 = load i8* %11, align 1 ; [#uses=1]
+ %13 = zext i8 %12 to i32 ; [#uses=1]
+ %14 = and i32 %13, 251 ; [#uses=1]
+ %15 = trunc i32 %14 to i8 ; [#uses=1]
+ store i8 %15, i8* %11, align 1
+ %16 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.global_State* %16, i32 0, i32 9 ; [#uses=1]
+ %18 = load %union.GCObject** %17, align 4 ; [#uses=1]
+ %19 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.Table* %19, i32 0, i32 9 ; [#uses=1]
+ store %union.GCObject* %18, %union.GCObject** %20, align 4
+ %21 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %22 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.global_State* %22, i32 0, i32 9 ; [#uses=1]
+ store %union.GCObject* %21, %union.GCObject** %23, align 4
+ ret void
+}
+
+; [#uses=6]
+define hidden void @_Z9luaC_linkP9lua_StateP8GCObjecth(%struct.lua_State* %L, %union.GCObject* %o, i8 zeroext %tt) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca %union.GCObject*, align 4 ; [#uses=5]
+ %3 = alloca i8, align 1 ; [#uses=2]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %union.GCObject* %o, %union.GCObject** %2, align 4
+ store i8 %tt, i8* %3, align 1
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 6 ; [#uses=1]
+ %6 = load %struct.global_State** %5, align 4 ; [#uses=1]
+ store %struct.global_State* %6, %struct.global_State** %g, align 4
+ %7 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.global_State* %7, i32 0, i32 6 ; [#uses=1]
+ %9 = load %union.GCObject** %8, align 4 ; [#uses=1]
+ %10 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %union.GCObject* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = bitcast %struct.lua_State* %11 to %struct.GCheader* ; [#uses=1]
+ %13 = getelementptr inbounds %struct.GCheader* %12, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject* %9, %union.GCObject** %13, align 4
+ %14 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %15 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.global_State* %15, i32 0, i32 6 ; [#uses=1]
+ store %union.GCObject* %14, %union.GCObject** %16, align 4
+ %17 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.global_State* %17, i32 0, i32 3 ; [#uses=1]
+ %19 = load i8* %18, align 1 ; [#uses=1]
+ %20 = zext i8 %19 to i32 ; [#uses=1]
+ %21 = and i32 %20, 3 ; [#uses=1]
+ %22 = trunc i32 %21 to i8 ; [#uses=1]
+ %23 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %union.GCObject* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = bitcast %struct.lua_State* %24 to %struct.GCheader* ; [#uses=1]
+ %26 = getelementptr inbounds %struct.GCheader* %25, i32 0, i32 2 ; [#uses=1]
+ store i8 %22, i8* %26, align 1
+ %27 = load i8* %3, align 1 ; [#uses=1]
+ %28 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %union.GCObject* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = bitcast %struct.lua_State* %29 to %struct.GCheader* ; [#uses=1]
+ %31 = getelementptr inbounds %struct.GCheader* %30, i32 0, i32 1 ; [#uses=1]
+ store i8 %27, i8* %31, align 1
+ ret void
+}
+
+; [#uses=1]
+define hidden void @_Z14luaC_linkupvalP9lua_StateP5UpVal(%struct.lua_State* %L, %struct.UpVal* %uv) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca %struct.UpVal*, align 4 ; [#uses=7]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=5]
+ %o = alloca %union.GCObject*, align 4 ; [#uses=8]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.UpVal* %uv, %struct.UpVal** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 6 ; [#uses=1]
+ %5 = load %struct.global_State** %4, align 4 ; [#uses=1]
+ store %struct.global_State* %5, %struct.global_State** %g, align 4
+ %6 = load %struct.UpVal** %2, align 4 ; [#uses=1]
+ %7 = bitcast %struct.UpVal* %6 to %union.GCObject* ; [#uses=1]
+ store %union.GCObject* %7, %union.GCObject** %o, align 4
+ %8 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.global_State* %8, i32 0, i32 6 ; [#uses=1]
+ %10 = load %union.GCObject** %9, align 4 ; [#uses=1]
+ %11 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %union.GCObject* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = bitcast %struct.lua_State* %12 to %struct.GCheader* ; [#uses=1]
+ %14 = getelementptr inbounds %struct.GCheader* %13, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject* %10, %union.GCObject** %14, align 4
+ %15 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %16 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.global_State* %16, i32 0, i32 6 ; [#uses=1]
+ store %union.GCObject* %15, %union.GCObject** %17, align 4
+ %18 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %union.GCObject* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = bitcast %struct.lua_State* %19 to %struct.GCheader* ; [#uses=1]
+ %21 = getelementptr inbounds %struct.GCheader* %20, i32 0, i32 2 ; [#uses=1]
+ %22 = load i8* %21, align 1 ; [#uses=1]
+ %23 = zext i8 %22 to i32 ; [#uses=1]
+ %24 = and i32 %23, 4 ; [#uses=1]
+ %25 = icmp ne i32 %24, 0 ; [#uses=1]
+ br i1 %25, label %115, label %26
+
+; <label>:26 ; preds = %0
+ %27 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %union.GCObject* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = bitcast %struct.lua_State* %28 to %struct.GCheader* ; [#uses=1]
+ %30 = getelementptr inbounds %struct.GCheader* %29, i32 0, i32 2 ; [#uses=1]
+ %31 = load i8* %30, align 1 ; [#uses=1]
+ %32 = zext i8 %31 to i32 ; [#uses=1]
+ %33 = and i32 %32, 3 ; [#uses=1]
+ %34 = icmp ne i32 %33, 0 ; [#uses=1]
+ br i1 %34, label %115, label %35
+
+; <label>:35 ; preds = %26
+ %36 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.global_State* %36, i32 0, i32 4 ; [#uses=1]
+ %38 = load i8* %37, align 1 ; [#uses=1]
+ %39 = zext i8 %38 to i32 ; [#uses=1]
+ %40 = icmp eq i32 %39, 1 ; [#uses=1]
+ br i1 %40, label %41, label %93
+
+; <label>:41 ; preds = %35
+ %42 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %union.GCObject* %42, i32 0, i32 0 ; [#uses=1]
+ %44 = bitcast %struct.lua_State* %43 to %struct.GCheader* ; [#uses=1]
+ %45 = getelementptr inbounds %struct.GCheader* %44, i32 0, i32 2 ; [#uses=2]
+ %46 = load i8* %45, align 1 ; [#uses=1]
+ %47 = zext i8 %46 to i32 ; [#uses=1]
+ %48 = or i32 %47, 4 ; [#uses=1]
+ %49 = trunc i32 %48 to i8 ; [#uses=1]
+ store i8 %49, i8* %45, align 1
+ %50 = load %struct.UpVal** %2, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.UpVal* %50, i32 0, i32 3 ; [#uses=1]
+ %52 = load %struct.lua_TValue** %51, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.lua_TValue* %52, i32 0, i32 1 ; [#uses=1]
+ %54 = load i32* %53, align 4 ; [#uses=1]
+ %55 = icmp sge i32 %54, 4 ; [#uses=1]
+ br i1 %55, label %56, label %92
+
+; <label>:56 ; preds = %41
+ %57 = load %struct.UpVal** %2, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.UpVal* %57, i32 0, i32 3 ; [#uses=1]
+ %59 = load %struct.lua_TValue** %58, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.lua_TValue* %59, i32 0, i32 0 ; [#uses=1]
+ %61 = getelementptr inbounds %union.anon* %60, i32 0, i32 0 ; [#uses=1]
+ %62 = bitcast double* %61 to %union.GCObject** ; [#uses=1]
+ %63 = load %union.GCObject** %62, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %union.GCObject* %63, i32 0, i32 0 ; [#uses=1]
+ %65 = bitcast %struct.lua_State* %64 to %struct.GCheader* ; [#uses=1]
+ %66 = getelementptr inbounds %struct.GCheader* %65, i32 0, i32 2 ; [#uses=1]
+ %67 = load i8* %66, align 1 ; [#uses=1]
+ %68 = zext i8 %67 to i32 ; [#uses=1]
+ %69 = and i32 %68, 3 ; [#uses=1]
+ %70 = icmp ne i32 %69, 0 ; [#uses=1]
+ br i1 %70, label %71, label %92
+
+; <label>:71 ; preds = %56
+ %72 = load %struct.UpVal** %2, align 4 ; [#uses=1]
+ %73 = bitcast %struct.UpVal* %72 to %union.GCObject* ; [#uses=1]
+ %74 = getelementptr inbounds %union.GCObject* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = bitcast %struct.lua_State* %74 to %struct.GCheader* ; [#uses=1]
+ %76 = getelementptr inbounds %struct.GCheader* %75, i32 0, i32 2 ; [#uses=1]
+ %77 = load i8* %76, align 1 ; [#uses=1]
+ %78 = zext i8 %77 to i32 ; [#uses=1]
+ %79 = and i32 %78, 4 ; [#uses=1]
+ %80 = icmp ne i32 %79, 0 ; [#uses=1]
+ br i1 %80, label %81, label %92
+
+; <label>:81 ; preds = %71
+ %82 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %83 = load %struct.UpVal** %2, align 4 ; [#uses=1]
+ %84 = bitcast %struct.UpVal* %83 to %union.GCObject* ; [#uses=1]
+ %85 = load %struct.UpVal** %2, align 4 ; [#uses=1]
+ %86 = getelementptr inbounds %struct.UpVal* %85, i32 0, i32 3 ; [#uses=1]
+ %87 = load %struct.lua_TValue** %86, align 4 ; [#uses=1]
+ %88 = getelementptr inbounds %struct.lua_TValue* %87, i32 0, i32 0 ; [#uses=1]
+ %89 = getelementptr inbounds %union.anon* %88, i32 0, i32 0 ; [#uses=1]
+ %90 = bitcast double* %89 to %union.GCObject** ; [#uses=1]
+ %91 = load %union.GCObject** %90, align 4 ; [#uses=1]
+ call void @_Z13luaC_barrierfP9lua_StateP8GCObjectS2_(%struct.lua_State* %82, %union.GCObject* %84, %union.GCObject* %91)
+ br label %92
+
+; <label>:92 ; preds = %81, %71, %56, %41
+ br label %114
+
+; <label>:93 ; preds = %35
+ %94 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %95 = getelementptr inbounds %union.GCObject* %94, i32 0, i32 0 ; [#uses=1]
+ %96 = bitcast %struct.lua_State* %95 to %struct.GCheader* ; [#uses=1]
+ %97 = getelementptr inbounds %struct.GCheader* %96, i32 0, i32 2 ; [#uses=1]
+ %98 = load i8* %97, align 1 ; [#uses=1]
+ %99 = zext i8 %98 to i32 ; [#uses=1]
+ %100 = and i32 %99, 248 ; [#uses=1]
+ %101 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %102 = getelementptr inbounds %struct.global_State* %101, i32 0, i32 3 ; [#uses=1]
+ %103 = load i8* %102, align 1 ; [#uses=1]
+ %104 = zext i8 %103 to i32 ; [#uses=1]
+ %105 = and i32 %104, 3 ; [#uses=1]
+ %106 = trunc i32 %105 to i8 ; [#uses=1]
+ %107 = zext i8 %106 to i32 ; [#uses=1]
+ %108 = or i32 %100, %107 ; [#uses=1]
+ %109 = trunc i32 %108 to i8 ; [#uses=1]
+ %110 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %111 = getelementptr inbounds %union.GCObject* %110, i32 0, i32 0 ; [#uses=1]
+ %112 = bitcast %struct.lua_State* %111 to %struct.GCheader* ; [#uses=1]
+ %113 = getelementptr inbounds %struct.GCheader* %112, i32 0, i32 2 ; [#uses=1]
+ store i8 %109, i8* %113, align 1
+ br label %114
+
+; <label>:114 ; preds = %93, %92
+ br label %115
+
+; <label>:115 ; preds = %114, %26, %0
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z6markmtP12global_State(%struct.global_State* %g) {
+ %1 = alloca %struct.global_State*, align 4 ; [#uses=5]
+ %i = alloca i32, align 4 ; [#uses=7]
+ store %struct.global_State* %g, %struct.global_State** %1, align 4
+ store i32 0, i32* %i, align 4
+ br label %2
+
+; <label>:2 ; preds = %36, %0
+ %3 = load i32* %i, align 4 ; [#uses=1]
+ %4 = icmp slt i32 %3, 9 ; [#uses=1]
+ br i1 %4, label %5, label %39
+
+; <label>:5 ; preds = %2
+ %6 = load i32* %i, align 4 ; [#uses=1]
+ %7 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.global_State* %7, i32 0, i32 23 ; [#uses=1]
+ %9 = getelementptr inbounds [9 x %struct.Table*]* %8, i32 0, i32 %6 ; [#uses=1]
+ %10 = load %struct.Table** %9 ; [#uses=1]
+ %11 = icmp ne %struct.Table* %10, null ; [#uses=1]
+ br i1 %11, label %12, label %35
+
+; <label>:12 ; preds = %5
+ %13 = load i32* %i, align 4 ; [#uses=1]
+ %14 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.global_State* %14, i32 0, i32 23 ; [#uses=1]
+ %16 = getelementptr inbounds [9 x %struct.Table*]* %15, i32 0, i32 %13 ; [#uses=1]
+ %17 = load %struct.Table** %16 ; [#uses=1]
+ %18 = bitcast %struct.Table* %17 to %union.GCObject* ; [#uses=1]
+ %19 = getelementptr inbounds %union.GCObject* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = bitcast %struct.lua_State* %19 to %struct.GCheader* ; [#uses=1]
+ %21 = getelementptr inbounds %struct.GCheader* %20, i32 0, i32 2 ; [#uses=1]
+ %22 = load i8* %21, align 1 ; [#uses=1]
+ %23 = zext i8 %22 to i32 ; [#uses=1]
+ %24 = and i32 %23, 3 ; [#uses=1]
+ %25 = icmp ne i32 %24, 0 ; [#uses=1]
+ br i1 %25, label %26, label %34
+
+; <label>:26 ; preds = %12
+ %27 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %28 = load i32* %i, align 4 ; [#uses=1]
+ %29 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.global_State* %29, i32 0, i32 23 ; [#uses=1]
+ %31 = getelementptr inbounds [9 x %struct.Table*]* %30, i32 0, i32 %28 ; [#uses=1]
+ %32 = load %struct.Table** %31 ; [#uses=1]
+ %33 = bitcast %struct.Table* %32 to %union.GCObject* ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %27, %union.GCObject* %33)
+ br label %34
+
+; <label>:34 ; preds = %26, %12
+ br label %35
+
+; <label>:35 ; preds = %34, %5
+ br label %36
+
+; <label>:36 ; preds = %35
+ %37 = load i32* %i, align 4 ; [#uses=1]
+ %38 = add nsw i32 %37, 1 ; [#uses=1]
+ store i32 %38, i32* %i, align 4
+ br label %2
+
+; <label>:39 ; preds = %2
+ ret void
+}
+
+; [#uses=2]
+define internal i32 @_Z13propagatemarkP12global_State(%struct.global_State* %g) {
+ %1 = alloca i32, align 4 ; [#uses=6]
+ %2 = alloca %struct.global_State*, align 4 ; [#uses=12]
+ %o = alloca %union.GCObject*, align 4 ; [#uses=10]
+ %h = alloca %struct.Table*, align 4 ; [#uses=5]
+ %cl = alloca %union.Closure*, align 4 ; [#uses=6]
+ %th = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %p = alloca %struct.Proto*, align 4 ; [#uses=9]
+ store %struct.global_State* %g, %struct.global_State** %2, align 4
+ %3 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.global_State* %3, i32 0, i32 8 ; [#uses=1]
+ %5 = load %union.GCObject** %4, align 4 ; [#uses=1]
+ store %union.GCObject* %5, %union.GCObject** %o, align 4
+ %6 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %union.GCObject* %6, i32 0, i32 0 ; [#uses=1]
+ %8 = bitcast %struct.lua_State* %7 to %struct.GCheader* ; [#uses=1]
+ %9 = getelementptr inbounds %struct.GCheader* %8, i32 0, i32 2 ; [#uses=2]
+ %10 = load i8* %9, align 1 ; [#uses=1]
+ %11 = zext i8 %10 to i32 ; [#uses=1]
+ %12 = or i32 %11, 4 ; [#uses=1]
+ %13 = trunc i32 %12 to i8 ; [#uses=1]
+ store i8 %13, i8* %9, align 1
+ %14 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %union.GCObject* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = bitcast %struct.lua_State* %15 to %struct.GCheader* ; [#uses=1]
+ %17 = getelementptr inbounds %struct.GCheader* %16, i32 0, i32 1 ; [#uses=1]
+ %18 = load i8* %17, align 1 ; [#uses=1]
+ %19 = zext i8 %18 to i32 ; [#uses=1]
+ switch i32 %19, label %170 [
+ i32 5, label %20
+ i32 6, label %55
+ i32 8, label %93
+ i32 9, label %129
+ ]
+
+; <label>:20 ; preds = %0
+ %21 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %union.GCObject* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = bitcast %struct.lua_State* %22 to %struct.Table* ; [#uses=1]
+ store %struct.Table* %23, %struct.Table** %h, align 4
+ %24 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.Table* %24, i32 0, i32 9 ; [#uses=1]
+ %26 = load %union.GCObject** %25, align 4 ; [#uses=1]
+ %27 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.global_State* %27, i32 0, i32 8 ; [#uses=1]
+ store %union.GCObject* %26, %union.GCObject** %28, align 4
+ %29 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %30 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %31 = call i32 @_Z13traversetableP12global_StateP5Table(%struct.global_State* %29, %struct.Table* %30) ; [#uses=1]
+ %32 = icmp ne i32 %31, 0 ; [#uses=1]
+ br i1 %32, label %33, label %42
+
+; <label>:33 ; preds = %20
+ %34 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %union.GCObject* %34, i32 0, i32 0 ; [#uses=1]
+ %36 = bitcast %struct.lua_State* %35 to %struct.GCheader* ; [#uses=1]
+ %37 = getelementptr inbounds %struct.GCheader* %36, i32 0, i32 2 ; [#uses=2]
+ %38 = load i8* %37, align 1 ; [#uses=1]
+ %39 = zext i8 %38 to i32 ; [#uses=1]
+ %40 = and i32 %39, 251 ; [#uses=1]
+ %41 = trunc i32 %40 to i8 ; [#uses=1]
+ store i8 %41, i8* %37, align 1
+ br label %42
+
+; <label>:42 ; preds = %33, %20
+ %43 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.Table* %43, i32 0, i32 10 ; [#uses=1]
+ %45 = load i32* %44, align 4 ; [#uses=1]
+ %46 = mul i32 12, %45 ; [#uses=1]
+ %47 = add i32 32, %46 ; [#uses=1]
+ %48 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.Table* %48, i32 0, i32 4 ; [#uses=1]
+ %50 = load i8* %49, align 1 ; [#uses=1]
+ %51 = zext i8 %50 to i32 ; [#uses=1]
+ %52 = shl i32 1, %51 ; [#uses=1]
+ %53 = mul i32 28, %52 ; [#uses=1]
+ %54 = add i32 %47, %53 ; [#uses=1]
+ store i32 %54, i32* %1
+ br label %171
+
+; <label>:55 ; preds = %0
+ %56 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %union.GCObject* %56, i32 0, i32 0 ; [#uses=1]
+ %58 = bitcast %struct.lua_State* %57 to %union.Closure* ; [#uses=1]
+ store %union.Closure* %58, %union.Closure** %cl, align 4
+ %59 = load %union.Closure** %cl, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %union.Closure* %59, i32 0, i32 0 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.CClosure* %60, i32 0, i32 5 ; [#uses=1]
+ %62 = load %union.GCObject** %61, align 4 ; [#uses=1]
+ %63 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.global_State* %63, i32 0, i32 8 ; [#uses=1]
+ store %union.GCObject* %62, %union.GCObject** %64, align 4
+ %65 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %66 = load %union.Closure** %cl, align 4 ; [#uses=1]
+ call void @_Z15traverseclosureP12global_StateP7Closure(%struct.global_State* %65, %union.Closure* %66)
+ %67 = load %union.Closure** %cl, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %union.Closure* %67, i32 0, i32 0 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.CClosure* %68, i32 0, i32 3 ; [#uses=1]
+ %70 = load i8* %69, align 1 ; [#uses=1]
+ %71 = icmp ne i8 %70, 0 ; [#uses=1]
+ br i1 %71, label %72, label %81
+
+; <label>:72 ; preds = %55
+ %73 = load %union.Closure** %cl, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %union.Closure* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = getelementptr inbounds %struct.CClosure* %74, i32 0, i32 4 ; [#uses=1]
+ %76 = load i8* %75, align 1 ; [#uses=1]
+ %77 = zext i8 %76 to i32 ; [#uses=1]
+ %78 = sub nsw i32 %77, 1 ; [#uses=1]
+ %79 = mul i32 12, %78 ; [#uses=1]
+ %80 = add nsw i32 32, %79 ; [#uses=1]
+ br label %91
+
+; <label>:81 ; preds = %55
+ %82 = load %union.Closure** %cl, align 4 ; [#uses=1]
+ %83 = getelementptr inbounds %union.Closure* %82, i32 0, i32 0 ; [#uses=1]
+ %84 = bitcast %struct.CClosure* %83 to %struct.LClosure* ; [#uses=1]
+ %85 = getelementptr inbounds %struct.LClosure* %84, i32 0, i32 4 ; [#uses=1]
+ %86 = load i8* %85, align 1 ; [#uses=1]
+ %87 = zext i8 %86 to i32 ; [#uses=1]
+ %88 = sub nsw i32 %87, 1 ; [#uses=1]
+ %89 = mul i32 4, %88 ; [#uses=1]
+ %90 = add nsw i32 24, %89 ; [#uses=1]
+ br label %91
+
+; <label>:91 ; preds = %81, %72
+ %92 = phi i32 [ %80, %72 ], [ %90, %81 ] ; [#uses=1]
+ store i32 %92, i32* %1
+ br label %171
+
+; <label>:93 ; preds = %0
+ %94 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %95 = getelementptr inbounds %union.GCObject* %94, i32 0, i32 0 ; [#uses=1]
+ store %struct.lua_State* %95, %struct.lua_State** %th, align 4
+ %96 = load %struct.lua_State** %th, align 4 ; [#uses=1]
+ %97 = getelementptr inbounds %struct.lua_State* %96, i32 0, i32 25 ; [#uses=1]
+ %98 = load %union.GCObject** %97, align 4 ; [#uses=1]
+ %99 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %100 = getelementptr inbounds %struct.global_State* %99, i32 0, i32 8 ; [#uses=1]
+ store %union.GCObject* %98, %union.GCObject** %100, align 4
+ %101 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %102 = getelementptr inbounds %struct.global_State* %101, i32 0, i32 9 ; [#uses=1]
+ %103 = load %union.GCObject** %102, align 4 ; [#uses=1]
+ %104 = load %struct.lua_State** %th, align 4 ; [#uses=1]
+ %105 = getelementptr inbounds %struct.lua_State* %104, i32 0, i32 25 ; [#uses=1]
+ store %union.GCObject* %103, %union.GCObject** %105, align 4
+ %106 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %107 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %108 = getelementptr inbounds %struct.global_State* %107, i32 0, i32 9 ; [#uses=1]
+ store %union.GCObject* %106, %union.GCObject** %108, align 4
+ %109 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %110 = getelementptr inbounds %union.GCObject* %109, i32 0, i32 0 ; [#uses=1]
+ %111 = bitcast %struct.lua_State* %110 to %struct.GCheader* ; [#uses=1]
+ %112 = getelementptr inbounds %struct.GCheader* %111, i32 0, i32 2 ; [#uses=2]
+ %113 = load i8* %112, align 1 ; [#uses=1]
+ %114 = zext i8 %113 to i32 ; [#uses=1]
+ %115 = and i32 %114, 251 ; [#uses=1]
+ %116 = trunc i32 %115 to i8 ; [#uses=1]
+ store i8 %116, i8* %112, align 1
+ %117 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %118 = load %struct.lua_State** %th, align 4 ; [#uses=1]
+ call void @_Z13traversestackP12global_StateP9lua_State(%struct.global_State* %117, %struct.lua_State* %118)
+ %119 = load %struct.lua_State** %th, align 4 ; [#uses=1]
+ %120 = getelementptr inbounds %struct.lua_State* %119, i32 0, i32 13 ; [#uses=1]
+ %121 = load i32* %120, align 4 ; [#uses=1]
+ %122 = mul i32 12, %121 ; [#uses=1]
+ %123 = add i32 112, %122 ; [#uses=1]
+ %124 = load %struct.lua_State** %th, align 4 ; [#uses=1]
+ %125 = getelementptr inbounds %struct.lua_State* %124, i32 0, i32 14 ; [#uses=1]
+ %126 = load i32* %125, align 4 ; [#uses=1]
+ %127 = mul i32 24, %126 ; [#uses=1]
+ %128 = add i32 %123, %127 ; [#uses=1]
+ store i32 %128, i32* %1
+ br label %171
+
+; <label>:129 ; preds = %0
+ %130 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %131 = getelementptr inbounds %union.GCObject* %130, i32 0, i32 0 ; [#uses=1]
+ %132 = bitcast %struct.lua_State* %131 to %struct.Proto* ; [#uses=1]
+ store %struct.Proto* %132, %struct.Proto** %p, align 4
+ %133 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %134 = getelementptr inbounds %struct.Proto* %133, i32 0, i32 18 ; [#uses=1]
+ %135 = load %union.GCObject** %134, align 4 ; [#uses=1]
+ %136 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %137 = getelementptr inbounds %struct.global_State* %136, i32 0, i32 8 ; [#uses=1]
+ store %union.GCObject* %135, %union.GCObject** %137, align 4
+ %138 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %139 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ call void @_Z13traverseprotoP12global_StateP5Proto(%struct.global_State* %138, %struct.Proto* %139)
+ %140 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %141 = getelementptr inbounds %struct.Proto* %140, i32 0, i32 12 ; [#uses=1]
+ %142 = load i32* %141, align 4 ; [#uses=1]
+ %143 = mul i32 4, %142 ; [#uses=1]
+ %144 = add i32 76, %143 ; [#uses=1]
+ %145 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %146 = getelementptr inbounds %struct.Proto* %145, i32 0, i32 14 ; [#uses=1]
+ %147 = load i32* %146, align 4 ; [#uses=1]
+ %148 = mul i32 4, %147 ; [#uses=1]
+ %149 = add i32 %144, %148 ; [#uses=1]
+ %150 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %151 = getelementptr inbounds %struct.Proto* %150, i32 0, i32 11 ; [#uses=1]
+ %152 = load i32* %151, align 4 ; [#uses=1]
+ %153 = mul i32 12, %152 ; [#uses=1]
+ %154 = add i32 %149, %153 ; [#uses=1]
+ %155 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %156 = getelementptr inbounds %struct.Proto* %155, i32 0, i32 13 ; [#uses=1]
+ %157 = load i32* %156, align 4 ; [#uses=1]
+ %158 = mul i32 4, %157 ; [#uses=1]
+ %159 = add i32 %154, %158 ; [#uses=1]
+ %160 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %161 = getelementptr inbounds %struct.Proto* %160, i32 0, i32 15 ; [#uses=1]
+ %162 = load i32* %161, align 4 ; [#uses=1]
+ %163 = mul i32 12, %162 ; [#uses=1]
+ %164 = add i32 %159, %163 ; [#uses=1]
+ %165 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %166 = getelementptr inbounds %struct.Proto* %165, i32 0, i32 10 ; [#uses=1]
+ %167 = load i32* %166, align 4 ; [#uses=1]
+ %168 = mul i32 4, %167 ; [#uses=1]
+ %169 = add i32 %164, %168 ; [#uses=1]
+ store i32 %169, i32* %1
+ br label %171
+
+; <label>:170 ; preds = %0
+ store i32 0, i32* %1
+ br label %171
+
+; <label>:171 ; preds = %170, %129, %93, %91, %42
+ %172 = load i32* %1 ; [#uses=1]
+ ret i32 %172
+}
+
+; [#uses=1]
+define internal void @_Z6atomicP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=24]
+ %udsize = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 6 ; [#uses=1]
+ %4 = load %struct.global_State** %3, align 4 ; [#uses=1]
+ store %struct.global_State* %4, %struct.global_State** %g, align 4
+ %5 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ call void @_Z12remarkupvalsP12global_State(%struct.global_State* %5)
+ %6 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %7 = call i32 @_Z12propagateallP12global_State(%struct.global_State* %6) ; [#uses=0]
+ %8 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.global_State* %8, i32 0, i32 10 ; [#uses=1]
+ %10 = load %union.GCObject** %9, align 4 ; [#uses=1]
+ %11 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.global_State* %11, i32 0, i32 8 ; [#uses=1]
+ store %union.GCObject* %10, %union.GCObject** %12, align 4
+ %13 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.global_State* %13, i32 0, i32 10 ; [#uses=1]
+ store %union.GCObject* null, %union.GCObject** %14, align 4
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = bitcast %struct.lua_State* %15 to %union.GCObject* ; [#uses=1]
+ %17 = getelementptr inbounds %union.GCObject* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = bitcast %struct.lua_State* %17 to %struct.GCheader* ; [#uses=1]
+ %19 = getelementptr inbounds %struct.GCheader* %18, i32 0, i32 2 ; [#uses=1]
+ %20 = load i8* %19, align 1 ; [#uses=1]
+ %21 = zext i8 %20 to i32 ; [#uses=1]
+ %22 = and i32 %21, 3 ; [#uses=1]
+ %23 = icmp ne i32 %22, 0 ; [#uses=1]
+ br i1 %23, label %24, label %28
+
+; <label>:24 ; preds = %0
+ %25 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %26 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %27 = bitcast %struct.lua_State* %26 to %union.GCObject* ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %25, %union.GCObject* %27)
+ br label %28
+
+; <label>:28 ; preds = %24, %0
+ %29 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ call void @_Z6markmtP12global_State(%struct.global_State* %29)
+ %30 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %31 = call i32 @_Z12propagateallP12global_State(%struct.global_State* %30) ; [#uses=0]
+ %32 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.global_State* %32, i32 0, i32 9 ; [#uses=1]
+ %34 = load %union.GCObject** %33, align 4 ; [#uses=1]
+ %35 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.global_State* %35, i32 0, i32 8 ; [#uses=1]
+ store %union.GCObject* %34, %union.GCObject** %36, align 4
+ %37 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.global_State* %37, i32 0, i32 9 ; [#uses=1]
+ store %union.GCObject* null, %union.GCObject** %38, align 4
+ %39 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %40 = call i32 @_Z12propagateallP12global_State(%struct.global_State* %39) ; [#uses=0]
+ %41 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %42 = call i32 @_Z18luaC_separateudataP9lua_Statei(%struct.lua_State* %41, i32 0) ; [#uses=1]
+ store i32 %42, i32* %udsize, align 4
+ %43 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ call void @_Z7marktmuP12global_State(%struct.global_State* %43)
+ %44 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %45 = call i32 @_Z12propagateallP12global_State(%struct.global_State* %44) ; [#uses=1]
+ %46 = load i32* %udsize, align 4 ; [#uses=1]
+ %47 = add i32 %46, %45 ; [#uses=1]
+ store i32 %47, i32* %udsize, align 4
+ %48 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.global_State* %48, i32 0, i32 10 ; [#uses=1]
+ %50 = load %union.GCObject** %49, align 4 ; [#uses=1]
+ call void @_Z10cleartableP8GCObject(%union.GCObject* %50)
+ %51 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.global_State* %51, i32 0, i32 3 ; [#uses=1]
+ %53 = load i8* %52, align 1 ; [#uses=1]
+ %54 = zext i8 %53 to i32 ; [#uses=1]
+ %55 = xor i32 %54, 3 ; [#uses=1]
+ %56 = trunc i32 %55 to i8 ; [#uses=1]
+ %57 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.global_State* %57, i32 0, i32 3 ; [#uses=1]
+ store i8 %56, i8* %58, align 1
+ %59 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.global_State* %59, i32 0, i32 5 ; [#uses=1]
+ store i32 0, i32* %60, align 4
+ %61 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds %struct.global_State* %61, i32 0, i32 6 ; [#uses=1]
+ %63 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.global_State* %63, i32 0, i32 7 ; [#uses=1]
+ store %union.GCObject** %62, %union.GCObject*** %64, align 4
+ %65 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.global_State* %65, i32 0, i32 4 ; [#uses=1]
+ store i8 2, i8* %66, align 1
+ %67 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.global_State* %67, i32 0, i32 14 ; [#uses=1]
+ %69 = load i32* %68, align 4 ; [#uses=1]
+ %70 = load i32* %udsize, align 4 ; [#uses=1]
+ %71 = sub i32 %69, %70 ; [#uses=1]
+ %72 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.global_State* %72, i32 0, i32 15 ; [#uses=1]
+ store i32 %71, i32* %73, align 4
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z10checkSizesP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=11]
+ %newsize = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 6 ; [#uses=1]
+ %4 = load %struct.global_State** %3, align 4 ; [#uses=1]
+ store %struct.global_State* %4, %struct.global_State** %g, align 4
+ %5 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.global_State* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.stringtable* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.global_State* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.stringtable* %10, i32 0, i32 2 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ %13 = sdiv i32 %12, 4 ; [#uses=1]
+ %14 = icmp ult i32 %8, %13 ; [#uses=1]
+ br i1 %14, label %15, label %28
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.global_State* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.stringtable* %17, i32 0, i32 2 ; [#uses=1]
+ %19 = load i32* %18, align 4 ; [#uses=1]
+ %20 = icmp sgt i32 %19, 64 ; [#uses=1]
+ br i1 %20, label %21, label %28
+
+; <label>:21 ; preds = %15
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.global_State* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.stringtable* %24, i32 0, i32 2 ; [#uses=1]
+ %26 = load i32* %25, align 4 ; [#uses=1]
+ %27 = sdiv i32 %26, 2 ; [#uses=1]
+ call void @_Z11luaS_resizeP9lua_Statei(%struct.lua_State* %22, i32 %27)
+ br label %28
+
+; <label>:28 ; preds = %21, %15, %0
+ %29 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.global_State* %29, i32 0, i32 12 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.Mbuffer* %30, i32 0, i32 2 ; [#uses=1]
+ %32 = load i32* %31, align 4 ; [#uses=1]
+ %33 = icmp ugt i32 %32, 64 ; [#uses=1]
+ br i1 %33, label %34, label %69
+
+; <label>:34 ; preds = %28
+ %35 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.global_State* %35, i32 0, i32 12 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.Mbuffer* %36, i32 0, i32 2 ; [#uses=1]
+ %38 = load i32* %37, align 4 ; [#uses=1]
+ %39 = udiv i32 %38, 2 ; [#uses=1]
+ store i32 %39, i32* %newsize, align 4
+ %40 = load i32* %newsize, align 4 ; [#uses=1]
+ %41 = add i32 %40, 1 ; [#uses=1]
+ %42 = icmp ule i32 %41, -3 ; [#uses=1]
+ br i1 %42, label %43, label %57
+
+; <label>:43 ; preds = %34
+ %44 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %45 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.global_State* %45, i32 0, i32 12 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.Mbuffer* %46, i32 0, i32 0 ; [#uses=1]
+ %48 = load i8** %47, align 4 ; [#uses=1]
+ %49 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.global_State* %49, i32 0, i32 12 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.Mbuffer* %50, i32 0, i32 2 ; [#uses=1]
+ %52 = load i32* %51, align 4 ; [#uses=1]
+ %53 = mul i32 %52, 1 ; [#uses=1]
+ %54 = load i32* %newsize, align 4 ; [#uses=1]
+ %55 = mul i32 %54, 1 ; [#uses=1]
+ %56 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %44, i8* %48, i32 %53, i32 %55) ; [#uses=1]
+ br label %60
+
+; <label>:57 ; preds = %34
+ %58 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %59 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %58) ; [#uses=1]
+ br label %60
+
+; <label>:60 ; preds = %57, %43
+ %61 = phi i8* [ %56, %43 ], [ %59, %57 ] ; [#uses=1]
+ %62 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.global_State* %62, i32 0, i32 12 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.Mbuffer* %63, i32 0, i32 0 ; [#uses=1]
+ store i8* %61, i8** %64, align 4
+ %65 = load i32* %newsize, align 4 ; [#uses=1]
+ %66 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.global_State* %66, i32 0, i32 12 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.Mbuffer* %67, i32 0, i32 2 ; [#uses=1]
+ store i32 %65, i32* %68, align 4
+ br label %69
+
+; <label>:69 ; preds = %60, %28
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z12remarkupvalsP12global_State(%struct.global_State* %g) {
+ %1 = alloca %struct.global_State*, align 4 ; [#uses=4]
+ %uv = alloca %struct.UpVal*, align 4 ; [#uses=9]
+ store %struct.global_State* %g, %struct.global_State** %1, align 4
+ %2 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.global_State* %2, i32 0, i32 22 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.UpVal* %3, i32 0, i32 4 ; [#uses=1]
+ %5 = getelementptr inbounds %0* %4, i32 0, i32 0 ; [#uses=1]
+ %6 = bitcast %struct.lua_TValue* %5 to %13* ; [#uses=1]
+ %7 = getelementptr inbounds %13* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load %struct.UpVal** %7, align 4 ; [#uses=1]
+ store %struct.UpVal* %8, %struct.UpVal** %uv, align 4
+ br label %9
+
+; <label>:9 ; preds = %67, %0
+ %10 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %11 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.global_State* %11, i32 0, i32 22 ; [#uses=1]
+ %13 = icmp ne %struct.UpVal* %10, %12 ; [#uses=1]
+ br i1 %13, label %14, label %74
+
+; <label>:14 ; preds = %9
+ %15 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %16 = bitcast %struct.UpVal* %15 to %union.GCObject* ; [#uses=1]
+ %17 = getelementptr inbounds %union.GCObject* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = bitcast %struct.lua_State* %17 to %struct.GCheader* ; [#uses=1]
+ %19 = getelementptr inbounds %struct.GCheader* %18, i32 0, i32 2 ; [#uses=1]
+ %20 = load i8* %19, align 1 ; [#uses=1]
+ %21 = zext i8 %20 to i32 ; [#uses=1]
+ %22 = and i32 %21, 4 ; [#uses=1]
+ %23 = icmp ne i32 %22, 0 ; [#uses=1]
+ br i1 %23, label %66, label %24
+
+; <label>:24 ; preds = %14
+ %25 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %26 = bitcast %struct.UpVal* %25 to %union.GCObject* ; [#uses=1]
+ %27 = getelementptr inbounds %union.GCObject* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = bitcast %struct.lua_State* %27 to %struct.GCheader* ; [#uses=1]
+ %29 = getelementptr inbounds %struct.GCheader* %28, i32 0, i32 2 ; [#uses=1]
+ %30 = load i8* %29, align 1 ; [#uses=1]
+ %31 = zext i8 %30 to i32 ; [#uses=1]
+ %32 = and i32 %31, 3 ; [#uses=1]
+ %33 = icmp ne i32 %32, 0 ; [#uses=1]
+ br i1 %33, label %66, label %34
+
+; <label>:34 ; preds = %24
+ %35 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.UpVal* %35, i32 0, i32 3 ; [#uses=1]
+ %37 = load %struct.lua_TValue** %36, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.lua_TValue* %37, i32 0, i32 1 ; [#uses=1]
+ %39 = load i32* %38, align 4 ; [#uses=1]
+ %40 = icmp sge i32 %39, 4 ; [#uses=1]
+ br i1 %40, label %41, label %65
+
+; <label>:41 ; preds = %34
+ %42 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.UpVal* %42, i32 0, i32 3 ; [#uses=1]
+ %44 = load %struct.lua_TValue** %43, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.lua_TValue* %44, i32 0, i32 0 ; [#uses=1]
+ %46 = getelementptr inbounds %union.anon* %45, i32 0, i32 0 ; [#uses=1]
+ %47 = bitcast double* %46 to %union.GCObject** ; [#uses=1]
+ %48 = load %union.GCObject** %47, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %union.GCObject* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = bitcast %struct.lua_State* %49 to %struct.GCheader* ; [#uses=1]
+ %51 = getelementptr inbounds %struct.GCheader* %50, i32 0, i32 2 ; [#uses=1]
+ %52 = load i8* %51, align 1 ; [#uses=1]
+ %53 = zext i8 %52 to i32 ; [#uses=1]
+ %54 = and i32 %53, 3 ; [#uses=1]
+ %55 = icmp ne i32 %54, 0 ; [#uses=1]
+ br i1 %55, label %56, label %65
+
+; <label>:56 ; preds = %41
+ %57 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %58 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.UpVal* %58, i32 0, i32 3 ; [#uses=1]
+ %60 = load %struct.lua_TValue** %59, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.lua_TValue* %60, i32 0, i32 0 ; [#uses=1]
+ %62 = getelementptr inbounds %union.anon* %61, i32 0, i32 0 ; [#uses=1]
+ %63 = bitcast double* %62 to %union.GCObject** ; [#uses=1]
+ %64 = load %union.GCObject** %63, align 4 ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %57, %union.GCObject* %64)
+ br label %65
+
+; <label>:65 ; preds = %56, %41, %34
+ br label %66
+
+; <label>:66 ; preds = %65, %24, %14
+ br label %67
+
+; <label>:67 ; preds = %66
+ %68 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.UpVal* %68, i32 0, i32 4 ; [#uses=1]
+ %70 = getelementptr inbounds %0* %69, i32 0, i32 0 ; [#uses=1]
+ %71 = bitcast %struct.lua_TValue* %70 to %13* ; [#uses=1]
+ %72 = getelementptr inbounds %13* %71, i32 0, i32 1 ; [#uses=1]
+ %73 = load %struct.UpVal** %72, align 4 ; [#uses=1]
+ store %struct.UpVal* %73, %struct.UpVal** %uv, align 4
+ br label %9
+
+; <label>:74 ; preds = %9
+ ret void
+}
+
+; [#uses=4]
+define internal i32 @_Z12propagateallP12global_State(%struct.global_State* %g) {
+ %1 = alloca %struct.global_State*, align 4 ; [#uses=3]
+ %m = alloca i32, align 4 ; [#uses=4]
+ store %struct.global_State* %g, %struct.global_State** %1, align 4
+ store i32 0, i32* %m, align 4
+ br label %2
+
+; <label>:2 ; preds = %7, %0
+ %3 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.global_State* %3, i32 0, i32 8 ; [#uses=1]
+ %5 = load %union.GCObject** %4, align 4 ; [#uses=1]
+ %6 = icmp ne %union.GCObject* %5, null ; [#uses=1]
+ br i1 %6, label %7, label %12
+
+; <label>:7 ; preds = %2
+ %8 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %9 = call i32 @_Z13propagatemarkP12global_State(%struct.global_State* %8) ; [#uses=1]
+ %10 = load i32* %m, align 4 ; [#uses=1]
+ %11 = add i32 %10, %9 ; [#uses=1]
+ store i32 %11, i32* %m, align 4
+ br label %2
+
+; <label>:12 ; preds = %2
+ %13 = load i32* %m, align 4 ; [#uses=1]
+ ret i32 %13
+}
+
+; [#uses=1]
+define internal void @_Z7marktmuP12global_State(%struct.global_State* %g) {
+ %1 = alloca %struct.global_State*, align 4 ; [#uses=5]
+ %u = alloca %union.GCObject*, align 4 ; [#uses=8]
+ store %struct.global_State* %g, %struct.global_State** %1, align 4
+ %2 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.global_State* %2, i32 0, i32 11 ; [#uses=1]
+ %4 = load %union.GCObject** %3, align 4 ; [#uses=1]
+ store %union.GCObject* %4, %union.GCObject** %u, align 4
+ %5 = load %union.GCObject** %u, align 4 ; [#uses=1]
+ %6 = icmp ne %union.GCObject* %5, null ; [#uses=1]
+ br i1 %6, label %7, label %43
+
+; <label>:7 ; preds = %0
+ br label %8
+
+; <label>:8 ; preds = %36, %7
+ %9 = load %union.GCObject** %u, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %union.GCObject* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = bitcast %struct.lua_State* %10 to %struct.GCheader* ; [#uses=1]
+ %12 = getelementptr inbounds %struct.GCheader* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = load %union.GCObject** %12, align 4 ; [#uses=1]
+ store %union.GCObject* %13, %union.GCObject** %u, align 4
+ %14 = load %union.GCObject** %u, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %union.GCObject* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = bitcast %struct.lua_State* %15 to %struct.GCheader* ; [#uses=1]
+ %17 = getelementptr inbounds %struct.GCheader* %16, i32 0, i32 2 ; [#uses=1]
+ %18 = load i8* %17, align 1 ; [#uses=1]
+ %19 = zext i8 %18 to i32 ; [#uses=1]
+ %20 = and i32 %19, 248 ; [#uses=1]
+ %21 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.global_State* %21, i32 0, i32 3 ; [#uses=1]
+ %23 = load i8* %22, align 1 ; [#uses=1]
+ %24 = zext i8 %23 to i32 ; [#uses=1]
+ %25 = and i32 %24, 3 ; [#uses=1]
+ %26 = trunc i32 %25 to i8 ; [#uses=1]
+ %27 = zext i8 %26 to i32 ; [#uses=1]
+ %28 = or i32 %20, %27 ; [#uses=1]
+ %29 = trunc i32 %28 to i8 ; [#uses=1]
+ %30 = load %union.GCObject** %u, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %union.GCObject* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = bitcast %struct.lua_State* %31 to %struct.GCheader* ; [#uses=1]
+ %33 = getelementptr inbounds %struct.GCheader* %32, i32 0, i32 2 ; [#uses=1]
+ store i8 %29, i8* %33, align 1
+ %34 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %35 = load %union.GCObject** %u, align 4 ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %34, %union.GCObject* %35)
+ br label %36
+
+; <label>:36 ; preds = %8
+ %37 = load %union.GCObject** %u, align 4 ; [#uses=1]
+ %38 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.global_State* %38, i32 0, i32 11 ; [#uses=1]
+ %40 = load %union.GCObject** %39, align 4 ; [#uses=1]
+ %41 = icmp ne %union.GCObject* %37, %40 ; [#uses=1]
+ br i1 %41, label %8, label %42
+
+; <label>:42 ; preds = %36
+ br label %43
+
+; <label>:43 ; preds = %42, %0
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z10cleartableP8GCObject(%union.GCObject* %l) {
+ %1 = alloca %union.GCObject*, align 4 ; [#uses=4]
+ %h = alloca %struct.Table*, align 4 ; [#uses=7]
+ %i = alloca i32, align 4 ; [#uses=8]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %n = alloca %struct.Node*, align 4 ; [#uses=6]
+ store %union.GCObject* %l, %union.GCObject** %1, align 4
+ br label %2
+
+; <label>:2 ; preds = %76, %0
+ %3 = load %union.GCObject** %1, align 4 ; [#uses=1]
+ %4 = icmp ne %union.GCObject* %3, null ; [#uses=1]
+ br i1 %4, label %5, label %80
+
+; <label>:5 ; preds = %2
+ %6 = load %union.GCObject** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %union.GCObject* %6, i32 0, i32 0 ; [#uses=1]
+ %8 = bitcast %struct.lua_State* %7 to %struct.Table* ; [#uses=1]
+ store %struct.Table* %8, %struct.Table** %h, align 4
+ %9 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.Table* %9, i32 0, i32 10 ; [#uses=1]
+ %11 = load i32* %10, align 4 ; [#uses=1]
+ store i32 %11, i32* %i, align 4
+ %12 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.Table* %12, i32 0, i32 2 ; [#uses=1]
+ %14 = load i8* %13, align 1 ; [#uses=1]
+ %15 = zext i8 %14 to i32 ; [#uses=1]
+ %16 = and i32 %15, 16 ; [#uses=1]
+ %17 = icmp ne i32 %16, 0 ; [#uses=1]
+ br i1 %17, label %18, label %37
+
+; <label>:18 ; preds = %5
+ br label %19
+
+; <label>:19 ; preds = %35, %18
+ %20 = load i32* %i, align 4 ; [#uses=2]
+ %21 = add nsw i32 %20, -1 ; [#uses=1]
+ store i32 %21, i32* %i, align 4
+ %22 = icmp ne i32 %20, 0 ; [#uses=1]
+ br i1 %22, label %23, label %36
+
+; <label>:23 ; preds = %19
+ %24 = load i32* %i, align 4 ; [#uses=1]
+ %25 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.Table* %25, i32 0, i32 6 ; [#uses=1]
+ %27 = load %struct.lua_TValue** %26, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_TValue* %27, i32 %24 ; [#uses=1]
+ store %struct.lua_TValue* %28, %struct.lua_TValue** %o, align 4
+ %29 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %30 = call i32 @_Z9isclearedPK10lua_TValuei(%struct.lua_TValue* %29, i32 0) ; [#uses=1]
+ %31 = icmp ne i32 %30, 0 ; [#uses=1]
+ br i1 %31, label %32, label %35
+
+; <label>:32 ; preds = %23
+ %33 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_TValue* %33, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %34, align 4
+ br label %35
+
+; <label>:35 ; preds = %32, %23
+ br label %19
+
+; <label>:36 ; preds = %19
+ br label %37
+
+; <label>:37 ; preds = %36, %5
+ %38 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.Table* %38, i32 0, i32 4 ; [#uses=1]
+ %40 = load i8* %39, align 1 ; [#uses=1]
+ %41 = zext i8 %40 to i32 ; [#uses=1]
+ %42 = shl i32 1, %41 ; [#uses=1]
+ store i32 %42, i32* %i, align 4
+ br label %43
+
+; <label>:43 ; preds = %75, %37
+ %44 = load i32* %i, align 4 ; [#uses=2]
+ %45 = add nsw i32 %44, -1 ; [#uses=1]
+ store i32 %45, i32* %i, align 4
+ %46 = icmp ne i32 %44, 0 ; [#uses=1]
+ br i1 %46, label %47, label %76
+
+; <label>:47 ; preds = %43
+ %48 = load i32* %i, align 4 ; [#uses=1]
+ %49 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.Table* %49, i32 0, i32 7 ; [#uses=1]
+ %51 = load %struct.Node** %50, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.Node* %51, i32 %48 ; [#uses=1]
+ store %struct.Node* %52, %struct.Node** %n, align 4
+ %53 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.Node* %53, i32 0, i32 0 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.lua_TValue* %54, i32 0, i32 1 ; [#uses=1]
+ %56 = load i32* %55, align 4 ; [#uses=1]
+ %57 = icmp eq i32 %56, 0 ; [#uses=1]
+ br i1 %57, label %75, label %58
+
+; <label>:58 ; preds = %47
+ %59 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.Node* %59, i32 0, i32 1 ; [#uses=1]
+ %61 = getelementptr inbounds %union.TKey* %60, i32 0, i32 0 ; [#uses=1]
+ %62 = bitcast %1* %61 to %struct.lua_TValue* ; [#uses=1]
+ %63 = call i32 @_Z9isclearedPK10lua_TValuei(%struct.lua_TValue* %62, i32 1) ; [#uses=1]
+ %64 = icmp ne i32 %63, 0 ; [#uses=1]
+ br i1 %64, label %70, label %65
+
+; <label>:65 ; preds = %58
+ %66 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.Node* %66, i32 0, i32 0 ; [#uses=1]
+ %68 = call i32 @_Z9isclearedPK10lua_TValuei(%struct.lua_TValue* %67, i32 0) ; [#uses=1]
+ %69 = icmp ne i32 %68, 0 ; [#uses=1]
+ br i1 %69, label %70, label %75
+
+; <label>:70 ; preds = %65, %58
+ %71 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.Node* %71, i32 0, i32 0 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.lua_TValue* %72, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %73, align 4
+ %74 = load %struct.Node** %n, align 4 ; [#uses=1]
+ call void @_Z11removeentryP4Node(%struct.Node* %74)
+ br label %75
+
+; <label>:75 ; preds = %70, %65, %47
+ br label %43
+
+; <label>:76 ; preds = %43
+ %77 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %78 = getelementptr inbounds %struct.Table* %77, i32 0, i32 9 ; [#uses=1]
+ %79 = load %union.GCObject** %78, align 4 ; [#uses=1]
+ store %union.GCObject* %79, %union.GCObject** %1, align 4
+ br label %2
+
+; <label>:80 ; preds = %2
+ ret void
+}
+
+; [#uses=3]
+define internal i32 @_Z9isclearedPK10lua_TValuei(%struct.lua_TValue* %o, i32 %iskey) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=7]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_TValue* %o, %struct.lua_TValue** %2, align 4
+ store i32 %iskey, i32* %3, align 4
+ %4 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_TValue* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = icmp sge i32 %6, 4 ; [#uses=1]
+ br i1 %7, label %9, label %8
+
+; <label>:8 ; preds = %0
+ store i32 0, i32* %1
+ br label %70
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_TValue* %10, i32 0, i32 1 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ %13 = icmp eq i32 %12, 4 ; [#uses=1]
+ br i1 %13, label %14, label %28
+
+; <label>:14 ; preds = %9
+ %15 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = getelementptr inbounds %union.anon* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = bitcast double* %17 to %union.GCObject** ; [#uses=1]
+ %19 = load %union.GCObject** %18, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %union.GCObject* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = bitcast %struct.lua_State* %20 to %union.TString* ; [#uses=1]
+ %22 = getelementptr inbounds %union.TString* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.anon* %22, i32 0, i32 2 ; [#uses=2]
+ %24 = load i8* %23, align 1 ; [#uses=1]
+ %25 = zext i8 %24 to i32 ; [#uses=1]
+ %26 = and i32 %25, 252 ; [#uses=1]
+ %27 = trunc i32 %26 to i8 ; [#uses=1]
+ store i8 %27, i8* %23, align 1
+ store i32 0, i32* %1
+ br label %70
+
+; <label>:28 ; preds = %9
+ %29 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_TValue* %29, i32 0, i32 0 ; [#uses=1]
+ %31 = getelementptr inbounds %union.anon* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = bitcast double* %31 to %union.GCObject** ; [#uses=1]
+ %33 = load %union.GCObject** %32, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %union.GCObject* %33, i32 0, i32 0 ; [#uses=1]
+ %35 = bitcast %struct.lua_State* %34 to %struct.GCheader* ; [#uses=1]
+ %36 = getelementptr inbounds %struct.GCheader* %35, i32 0, i32 2 ; [#uses=1]
+ %37 = load i8* %36, align 1 ; [#uses=1]
+ %38 = zext i8 %37 to i32 ; [#uses=1]
+ %39 = and i32 %38, 3 ; [#uses=1]
+ %40 = icmp ne i32 %39, 0 ; [#uses=1]
+ br i1 %40, label %67, label %41
+
+; <label>:41 ; preds = %28
+ %42 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.lua_TValue* %42, i32 0, i32 1 ; [#uses=1]
+ %44 = load i32* %43, align 4 ; [#uses=1]
+ %45 = icmp eq i32 %44, 7 ; [#uses=1]
+ br i1 %45, label %46, label %65
+
+; <label>:46 ; preds = %41
+ %47 = load i32* %3, align 4 ; [#uses=1]
+ %48 = icmp ne i32 %47, 0 ; [#uses=1]
+ br i1 %48, label %63, label %49
+
+; <label>:49 ; preds = %46
+ %50 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.lua_TValue* %50, i32 0, i32 0 ; [#uses=1]
+ %52 = getelementptr inbounds %union.anon* %51, i32 0, i32 0 ; [#uses=1]
+ %53 = bitcast double* %52 to %union.GCObject** ; [#uses=1]
+ %54 = load %union.GCObject** %53, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %union.GCObject* %54, i32 0, i32 0 ; [#uses=1]
+ %56 = bitcast %struct.lua_State* %55 to %union.Udata* ; [#uses=1]
+ %57 = getelementptr inbounds %union.Udata* %56, i32 0, i32 0 ; [#uses=1]
+ %58 = getelementptr inbounds %4* %57, i32 0, i32 2 ; [#uses=1]
+ %59 = load i8* %58, align 1 ; [#uses=1]
+ %60 = zext i8 %59 to i32 ; [#uses=1]
+ %61 = and i32 %60, 8 ; [#uses=1]
+ %62 = icmp ne i32 %61, 0 ; [#uses=1]
+ br label %63
+
+; <label>:63 ; preds = %49, %46
+ %64 = phi i1 [ false, %46 ], [ %62, %49 ] ; [#uses=1]
+ br label %65
+
+; <label>:65 ; preds = %63, %41
+ %66 = phi i1 [ false, %41 ], [ %64, %63 ] ; [#uses=1]
+ br label %67
+
+; <label>:67 ; preds = %65, %28
+ %68 = phi i1 [ true, %28 ], [ %66, %65 ] ; [#uses=1]
+ %69 = zext i1 %68 to i32 ; [#uses=1]
+ store i32 %69, i32* %1
+ br label %70
+
+; <label>:70 ; preds = %67, %14, %8
+ %71 = load i32* %1 ; [#uses=1]
+ ret i32 %71
+}
+
+; [#uses=2]
+define internal void @_Z11removeentryP4Node(%struct.Node* %n) nounwind {
+ %1 = alloca %struct.Node*, align 4 ; [#uses=3]
+ store %struct.Node* %n, %struct.Node** %1, align 4
+ %2 = load %struct.Node** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.Node* %2, i32 0, i32 1 ; [#uses=1]
+ %4 = getelementptr inbounds %union.TKey* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = getelementptr inbounds %1* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = icmp sge i32 %6, 4 ; [#uses=1]
+ br i1 %7, label %8, label %13
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.Node** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.Node* %9, i32 0, i32 1 ; [#uses=1]
+ %11 = getelementptr inbounds %union.TKey* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = getelementptr inbounds %1* %11, i32 0, i32 1 ; [#uses=1]
+ store i32 11, i32* %12, align 4
+ br label %13
+
+; <label>:13 ; preds = %8, %0
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z13traversetableP12global_StateP5Table(%struct.global_State* %g, %struct.Table* %h) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.global_State*, align 4 ; [#uses=8]
+ %3 = alloca %struct.Table*, align 4 ; [#uses=17]
+ %i = alloca i32, align 4 ; [#uses=10]
+ %weakkey = alloca i32, align 4 ; [#uses=7]
+ %weakvalue = alloca i32, align 4 ; [#uses=8]
+ %mode = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %n = alloca %struct.Node*, align 4 ; [#uses=9]
+ store %struct.global_State* %g, %struct.global_State** %2, align 4
+ store %struct.Table* %h, %struct.Table** %3, align 4
+ store i32 0, i32* %weakkey, align 4
+ store i32 0, i32* %weakvalue, align 4
+ %4 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.Table* %4, i32 0, i32 5 ; [#uses=1]
+ %6 = load %struct.Table** %5, align 4 ; [#uses=1]
+ %7 = icmp ne %struct.Table* %6, null ; [#uses=1]
+ br i1 %7, label %8, label %27
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.Table* %9, i32 0, i32 5 ; [#uses=1]
+ %11 = load %struct.Table** %10, align 4 ; [#uses=1]
+ %12 = bitcast %struct.Table* %11 to %union.GCObject* ; [#uses=1]
+ %13 = getelementptr inbounds %union.GCObject* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = bitcast %struct.lua_State* %13 to %struct.GCheader* ; [#uses=1]
+ %15 = getelementptr inbounds %struct.GCheader* %14, i32 0, i32 2 ; [#uses=1]
+ %16 = load i8* %15, align 1 ; [#uses=1]
+ %17 = zext i8 %16 to i32 ; [#uses=1]
+ %18 = and i32 %17, 3 ; [#uses=1]
+ %19 = icmp ne i32 %18, 0 ; [#uses=1]
+ br i1 %19, label %20, label %26
+
+; <label>:20 ; preds = %8
+ %21 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %22 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.Table* %22, i32 0, i32 5 ; [#uses=1]
+ %24 = load %struct.Table** %23, align 4 ; [#uses=1]
+ %25 = bitcast %struct.Table* %24 to %union.GCObject* ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %21, %union.GCObject* %25)
+ br label %26
+
+; <label>:26 ; preds = %20, %8
+ br label %27
+
+; <label>:27 ; preds = %26, %0
+ %28 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.Table* %28, i32 0, i32 5 ; [#uses=1]
+ %30 = load %struct.Table** %29, align 4 ; [#uses=1]
+ %31 = icmp eq %struct.Table* %30, null ; [#uses=1]
+ br i1 %31, label %32, label %33
+
+; <label>:32 ; preds = %27
+ br label %54
+
+; <label>:33 ; preds = %27
+ %34 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.Table* %34, i32 0, i32 5 ; [#uses=1]
+ %36 = load %struct.Table** %35, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.Table* %36, i32 0, i32 3 ; [#uses=1]
+ %38 = load i8* %37, align 1 ; [#uses=1]
+ %39 = zext i8 %38 to i32 ; [#uses=1]
+ %40 = and i32 %39, 8 ; [#uses=1]
+ %41 = icmp ne i32 %40, 0 ; [#uses=1]
+ br i1 %41, label %42, label %43
+
+; <label>:42 ; preds = %33
+ br label %52
+
+; <label>:43 ; preds = %33
+ %44 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.Table* %44, i32 0, i32 5 ; [#uses=1]
+ %46 = load %struct.Table** %45, align 4 ; [#uses=1]
+ %47 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.global_State* %47, i32 0, i32 24 ; [#uses=1]
+ %49 = getelementptr inbounds [17 x %union.TString*]* %48, i32 0, i32 3 ; [#uses=1]
+ %50 = load %union.TString** %49 ; [#uses=1]
+ %51 = call %struct.lua_TValue* @_Z10luaT_gettmP5Table3TMSP7TString(%struct.Table* %46, i32 3, %union.TString* %50) ; [#uses=1]
+ br label %52
+
+; <label>:52 ; preds = %43, %42
+ %53 = phi %struct.lua_TValue* [ null, %42 ], [ %51, %43 ] ; [#uses=1]
+ br label %54
+
+; <label>:54 ; preds = %52, %32
+ %55 = phi %struct.lua_TValue* [ null, %32 ], [ %53, %52 ] ; [#uses=1]
+ store %struct.lua_TValue* %55, %struct.lua_TValue** %mode, align 4
+ %56 = load %struct.lua_TValue** %mode, align 4 ; [#uses=1]
+ %57 = icmp ne %struct.lua_TValue* %56, null ; [#uses=1]
+ br i1 %57, label %58, label %123
+
+; <label>:58 ; preds = %54
+ %59 = load %struct.lua_TValue** %mode, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.lua_TValue* %59, i32 0, i32 1 ; [#uses=1]
+ %61 = load i32* %60, align 4 ; [#uses=1]
+ %62 = icmp eq i32 %61, 4 ; [#uses=1]
+ br i1 %62, label %63, label %123
+
+; <label>:63 ; preds = %58
+ %64 = load %struct.lua_TValue** %mode, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %struct.lua_TValue* %64, i32 0, i32 0 ; [#uses=1]
+ %66 = getelementptr inbounds %union.anon* %65, i32 0, i32 0 ; [#uses=1]
+ %67 = bitcast double* %66 to %union.GCObject** ; [#uses=1]
+ %68 = load %union.GCObject** %67, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %union.GCObject* %68, i32 0, i32 0 ; [#uses=1]
+ %70 = bitcast %struct.lua_State* %69 to %union.TString* ; [#uses=1]
+ %71 = getelementptr inbounds %union.TString* %70, i32 1 ; [#uses=1]
+ %72 = bitcast %union.TString* %71 to i8* ; [#uses=1]
+ %73 = call i8* @strchr(i8* %72, i32 107) ; [#uses=1]
+ %74 = icmp ne i8* %73, null ; [#uses=1]
+ %75 = zext i1 %74 to i32 ; [#uses=1]
+ store i32 %75, i32* %weakkey, align 4
+ %76 = load %struct.lua_TValue** %mode, align 4 ; [#uses=1]
+ %77 = getelementptr inbounds %struct.lua_TValue* %76, i32 0, i32 0 ; [#uses=1]
+ %78 = getelementptr inbounds %union.anon* %77, i32 0, i32 0 ; [#uses=1]
+ %79 = bitcast double* %78 to %union.GCObject** ; [#uses=1]
+ %80 = load %union.GCObject** %79, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %union.GCObject* %80, i32 0, i32 0 ; [#uses=1]
+ %82 = bitcast %struct.lua_State* %81 to %union.TString* ; [#uses=1]
+ %83 = getelementptr inbounds %union.TString* %82, i32 1 ; [#uses=1]
+ %84 = bitcast %union.TString* %83 to i8* ; [#uses=1]
+ %85 = call i8* @strchr(i8* %84, i32 118) ; [#uses=1]
+ %86 = icmp ne i8* %85, null ; [#uses=1]
+ %87 = zext i1 %86 to i32 ; [#uses=1]
+ store i32 %87, i32* %weakvalue, align 4
+ %88 = load i32* %weakkey, align 4 ; [#uses=1]
+ %89 = icmp ne i32 %88, 0 ; [#uses=1]
+ br i1 %89, label %93, label %90
+
+; <label>:90 ; preds = %63
+ %91 = load i32* %weakvalue, align 4 ; [#uses=1]
+ %92 = icmp ne i32 %91, 0 ; [#uses=1]
+ br i1 %92, label %93, label %122
+
+; <label>:93 ; preds = %90, %63
+ %94 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %95 = getelementptr inbounds %struct.Table* %94, i32 0, i32 2 ; [#uses=2]
+ %96 = load i8* %95, align 1 ; [#uses=1]
+ %97 = zext i8 %96 to i32 ; [#uses=1]
+ %98 = and i32 %97, -25 ; [#uses=1]
+ %99 = trunc i32 %98 to i8 ; [#uses=1]
+ store i8 %99, i8* %95, align 1
+ %100 = load i32* %weakkey, align 4 ; [#uses=1]
+ %101 = shl i32 %100, 3 ; [#uses=1]
+ %102 = load i32* %weakvalue, align 4 ; [#uses=1]
+ %103 = shl i32 %102, 4 ; [#uses=1]
+ %104 = or i32 %101, %103 ; [#uses=1]
+ %105 = trunc i32 %104 to i8 ; [#uses=1]
+ %106 = zext i8 %105 to i32 ; [#uses=1]
+ %107 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %108 = getelementptr inbounds %struct.Table* %107, i32 0, i32 2 ; [#uses=2]
+ %109 = load i8* %108, align 1 ; [#uses=1]
+ %110 = zext i8 %109 to i32 ; [#uses=1]
+ %111 = or i32 %110, %106 ; [#uses=1]
+ %112 = trunc i32 %111 to i8 ; [#uses=1]
+ store i8 %112, i8* %108, align 1
+ %113 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %114 = getelementptr inbounds %struct.global_State* %113, i32 0, i32 10 ; [#uses=1]
+ %115 = load %union.GCObject** %114, align 4 ; [#uses=1]
+ %116 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %117 = getelementptr inbounds %struct.Table* %116, i32 0, i32 9 ; [#uses=1]
+ store %union.GCObject* %115, %union.GCObject** %117, align 4
+ %118 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %119 = bitcast %struct.Table* %118 to %union.GCObject* ; [#uses=1]
+ %120 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %121 = getelementptr inbounds %struct.global_State* %120, i32 0, i32 10 ; [#uses=1]
+ store %union.GCObject* %119, %union.GCObject** %121, align 4
+ br label %122
+
+; <label>:122 ; preds = %93, %90
+ br label %123
+
+; <label>:123 ; preds = %122, %58, %54
+ %124 = load i32* %weakkey, align 4 ; [#uses=1]
+ %125 = icmp ne i32 %124, 0 ; [#uses=1]
+ br i1 %125, label %126, label %130
+
+; <label>:126 ; preds = %123
+ %127 = load i32* %weakvalue, align 4 ; [#uses=1]
+ %128 = icmp ne i32 %127, 0 ; [#uses=1]
+ br i1 %128, label %129, label %130
+
+; <label>:129 ; preds = %126
+ store i32 1, i32* %1
+ br label %281
+
+; <label>:130 ; preds = %126, %123
+ %131 = load i32* %weakvalue, align 4 ; [#uses=1]
+ %132 = icmp ne i32 %131, 0 ; [#uses=1]
+ br i1 %132, label %180, label %133
+
+; <label>:133 ; preds = %130
+ %134 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %135 = getelementptr inbounds %struct.Table* %134, i32 0, i32 10 ; [#uses=1]
+ %136 = load i32* %135, align 4 ; [#uses=1]
+ store i32 %136, i32* %i, align 4
+ br label %137
+
+; <label>:137 ; preds = %178, %133
+ %138 = load i32* %i, align 4 ; [#uses=2]
+ %139 = add nsw i32 %138, -1 ; [#uses=1]
+ store i32 %139, i32* %i, align 4
+ %140 = icmp ne i32 %138, 0 ; [#uses=1]
+ br i1 %140, label %141, label %179
+
+; <label>:141 ; preds = %137
+ %142 = load i32* %i, align 4 ; [#uses=1]
+ %143 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %144 = getelementptr inbounds %struct.Table* %143, i32 0, i32 6 ; [#uses=1]
+ %145 = load %struct.lua_TValue** %144, align 4 ; [#uses=1]
+ %146 = getelementptr inbounds %struct.lua_TValue* %145, i32 %142 ; [#uses=1]
+ %147 = getelementptr inbounds %struct.lua_TValue* %146, i32 0, i32 1 ; [#uses=1]
+ %148 = load i32* %147, align 4 ; [#uses=1]
+ %149 = icmp sge i32 %148, 4 ; [#uses=1]
+ br i1 %149, label %150, label %178
+
+; <label>:150 ; preds = %141
+ %151 = load i32* %i, align 4 ; [#uses=1]
+ %152 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %153 = getelementptr inbounds %struct.Table* %152, i32 0, i32 6 ; [#uses=1]
+ %154 = load %struct.lua_TValue** %153, align 4 ; [#uses=1]
+ %155 = getelementptr inbounds %struct.lua_TValue* %154, i32 %151 ; [#uses=1]
+ %156 = getelementptr inbounds %struct.lua_TValue* %155, i32 0, i32 0 ; [#uses=1]
+ %157 = getelementptr inbounds %union.anon* %156, i32 0, i32 0 ; [#uses=1]
+ %158 = bitcast double* %157 to %union.GCObject** ; [#uses=1]
+ %159 = load %union.GCObject** %158, align 4 ; [#uses=1]
+ %160 = getelementptr inbounds %union.GCObject* %159, i32 0, i32 0 ; [#uses=1]
+ %161 = bitcast %struct.lua_State* %160 to %struct.GCheader* ; [#uses=1]
+ %162 = getelementptr inbounds %struct.GCheader* %161, i32 0, i32 2 ; [#uses=1]
+ %163 = load i8* %162, align 1 ; [#uses=1]
+ %164 = zext i8 %163 to i32 ; [#uses=1]
+ %165 = and i32 %164, 3 ; [#uses=1]
+ %166 = icmp ne i32 %165, 0 ; [#uses=1]
+ br i1 %166, label %167, label %178
+
+; <label>:167 ; preds = %150
+ %168 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %169 = load i32* %i, align 4 ; [#uses=1]
+ %170 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %171 = getelementptr inbounds %struct.Table* %170, i32 0, i32 6 ; [#uses=1]
+ %172 = load %struct.lua_TValue** %171, align 4 ; [#uses=1]
+ %173 = getelementptr inbounds %struct.lua_TValue* %172, i32 %169 ; [#uses=1]
+ %174 = getelementptr inbounds %struct.lua_TValue* %173, i32 0, i32 0 ; [#uses=1]
+ %175 = getelementptr inbounds %union.anon* %174, i32 0, i32 0 ; [#uses=1]
+ %176 = bitcast double* %175 to %union.GCObject** ; [#uses=1]
+ %177 = load %union.GCObject** %176, align 4 ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %168, %union.GCObject* %177)
+ br label %178
+
+; <label>:178 ; preds = %167, %150, %141
+ br label %137
+
+; <label>:179 ; preds = %137
+ br label %180
+
+; <label>:180 ; preds = %179, %130
+ %181 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %182 = getelementptr inbounds %struct.Table* %181, i32 0, i32 4 ; [#uses=1]
+ %183 = load i8* %182, align 1 ; [#uses=1]
+ %184 = zext i8 %183 to i32 ; [#uses=1]
+ %185 = shl i32 1, %184 ; [#uses=1]
+ store i32 %185, i32* %i, align 4
+ br label %186
+
+; <label>:186 ; preds = %271, %180
+ %187 = load i32* %i, align 4 ; [#uses=2]
+ %188 = add nsw i32 %187, -1 ; [#uses=1]
+ store i32 %188, i32* %i, align 4
+ %189 = icmp ne i32 %187, 0 ; [#uses=1]
+ br i1 %189, label %190, label %272
+
+; <label>:190 ; preds = %186
+ %191 = load i32* %i, align 4 ; [#uses=1]
+ %192 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %193 = getelementptr inbounds %struct.Table* %192, i32 0, i32 7 ; [#uses=1]
+ %194 = load %struct.Node** %193, align 4 ; [#uses=1]
+ %195 = getelementptr inbounds %struct.Node* %194, i32 %191 ; [#uses=1]
+ store %struct.Node* %195, %struct.Node** %n, align 4
+ %196 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %197 = getelementptr inbounds %struct.Node* %196, i32 0, i32 0 ; [#uses=1]
+ %198 = getelementptr inbounds %struct.lua_TValue* %197, i32 0, i32 1 ; [#uses=1]
+ %199 = load i32* %198, align 4 ; [#uses=1]
+ %200 = icmp eq i32 %199, 0 ; [#uses=1]
+ br i1 %200, label %201, label %203
+
+; <label>:201 ; preds = %190
+ %202 = load %struct.Node** %n, align 4 ; [#uses=1]
+ call void @_Z11removeentryP4Node(%struct.Node* %202)
+ br label %271
+
+; <label>:203 ; preds = %190
+ %204 = load i32* %weakkey, align 4 ; [#uses=1]
+ %205 = icmp ne i32 %204, 0 ; [#uses=1]
+ br i1 %205, label %238, label %206
+
+; <label>:206 ; preds = %203
+ %207 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %208 = getelementptr inbounds %struct.Node* %207, i32 0, i32 1 ; [#uses=1]
+ %209 = getelementptr inbounds %union.TKey* %208, i32 0, i32 0 ; [#uses=1]
+ %210 = getelementptr inbounds %1* %209, i32 0, i32 1 ; [#uses=1]
+ %211 = load i32* %210, align 4 ; [#uses=1]
+ %212 = icmp sge i32 %211, 4 ; [#uses=1]
+ br i1 %212, label %213, label %237
+
+; <label>:213 ; preds = %206
+ %214 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %215 = getelementptr inbounds %struct.Node* %214, i32 0, i32 1 ; [#uses=1]
+ %216 = getelementptr inbounds %union.TKey* %215, i32 0, i32 0 ; [#uses=1]
+ %217 = getelementptr inbounds %1* %216, i32 0, i32 0 ; [#uses=1]
+ %218 = getelementptr inbounds %union.anon* %217, i32 0, i32 0 ; [#uses=1]
+ %219 = bitcast double* %218 to %union.GCObject** ; [#uses=1]
+ %220 = load %union.GCObject** %219, align 4 ; [#uses=1]
+ %221 = getelementptr inbounds %union.GCObject* %220, i32 0, i32 0 ; [#uses=1]
+ %222 = bitcast %struct.lua_State* %221 to %struct.GCheader* ; [#uses=1]
+ %223 = getelementptr inbounds %struct.GCheader* %222, i32 0, i32 2 ; [#uses=1]
+ %224 = load i8* %223, align 1 ; [#uses=1]
+ %225 = zext i8 %224 to i32 ; [#uses=1]
+ %226 = and i32 %225, 3 ; [#uses=1]
+ %227 = icmp ne i32 %226, 0 ; [#uses=1]
+ br i1 %227, label %228, label %237
+
+; <label>:228 ; preds = %213
+ %229 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %230 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %231 = getelementptr inbounds %struct.Node* %230, i32 0, i32 1 ; [#uses=1]
+ %232 = getelementptr inbounds %union.TKey* %231, i32 0, i32 0 ; [#uses=1]
+ %233 = getelementptr inbounds %1* %232, i32 0, i32 0 ; [#uses=1]
+ %234 = getelementptr inbounds %union.anon* %233, i32 0, i32 0 ; [#uses=1]
+ %235 = bitcast double* %234 to %union.GCObject** ; [#uses=1]
+ %236 = load %union.GCObject** %235, align 4 ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %229, %union.GCObject* %236)
+ br label %237
+
+; <label>:237 ; preds = %228, %213, %206
+ br label %238
+
+; <label>:238 ; preds = %237, %203
+ %239 = load i32* %weakvalue, align 4 ; [#uses=1]
+ %240 = icmp ne i32 %239, 0 ; [#uses=1]
+ br i1 %240, label %270, label %241
+
+; <label>:241 ; preds = %238
+ %242 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %243 = getelementptr inbounds %struct.Node* %242, i32 0, i32 0 ; [#uses=1]
+ %244 = getelementptr inbounds %struct.lua_TValue* %243, i32 0, i32 1 ; [#uses=1]
+ %245 = load i32* %244, align 4 ; [#uses=1]
+ %246 = icmp sge i32 %245, 4 ; [#uses=1]
+ br i1 %246, label %247, label %269
+
+; <label>:247 ; preds = %241
+ %248 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %249 = getelementptr inbounds %struct.Node* %248, i32 0, i32 0 ; [#uses=1]
+ %250 = getelementptr inbounds %struct.lua_TValue* %249, i32 0, i32 0 ; [#uses=1]
+ %251 = getelementptr inbounds %union.anon* %250, i32 0, i32 0 ; [#uses=1]
+ %252 = bitcast double* %251 to %union.GCObject** ; [#uses=1]
+ %253 = load %union.GCObject** %252, align 4 ; [#uses=1]
+ %254 = getelementptr inbounds %union.GCObject* %253, i32 0, i32 0 ; [#uses=1]
+ %255 = bitcast %struct.lua_State* %254 to %struct.GCheader* ; [#uses=1]
+ %256 = getelementptr inbounds %struct.GCheader* %255, i32 0, i32 2 ; [#uses=1]
+ %257 = load i8* %256, align 1 ; [#uses=1]
+ %258 = zext i8 %257 to i32 ; [#uses=1]
+ %259 = and i32 %258, 3 ; [#uses=1]
+ %260 = icmp ne i32 %259, 0 ; [#uses=1]
+ br i1 %260, label %261, label %269
+
+; <label>:261 ; preds = %247
+ %262 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %263 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %264 = getelementptr inbounds %struct.Node* %263, i32 0, i32 0 ; [#uses=1]
+ %265 = getelementptr inbounds %struct.lua_TValue* %264, i32 0, i32 0 ; [#uses=1]
+ %266 = getelementptr inbounds %union.anon* %265, i32 0, i32 0 ; [#uses=1]
+ %267 = bitcast double* %266 to %union.GCObject** ; [#uses=1]
+ %268 = load %union.GCObject** %267, align 4 ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %262, %union.GCObject* %268)
+ br label %269
+
+; <label>:269 ; preds = %261, %247, %241
+ br label %270
+
+; <label>:270 ; preds = %269, %238
+ br label %271
+
+; <label>:271 ; preds = %270, %201
+ br label %186
+
+; <label>:272 ; preds = %186
+ %273 = load i32* %weakkey, align 4 ; [#uses=1]
+ %274 = icmp ne i32 %273, 0 ; [#uses=1]
+ br i1 %274, label %278, label %275
+
+; <label>:275 ; preds = %272
+ %276 = load i32* %weakvalue, align 4 ; [#uses=1]
+ %277 = icmp ne i32 %276, 0 ; [#uses=1]
+ br label %278
+
+; <label>:278 ; preds = %275, %272
+ %279 = phi i1 [ true, %272 ], [ %277, %275 ] ; [#uses=1]
+ %280 = zext i1 %279 to i32 ; [#uses=1]
+ store i32 %280, i32* %1
+ br label %281
+
+; <label>:281 ; preds = %278, %129
+ %282 = load i32* %1 ; [#uses=1]
+ ret i32 %282
+}
+
+; [#uses=1]
+define internal void @_Z15traverseclosureP12global_StateP7Closure(%struct.global_State* %g, %union.Closure* %cl) {
+ %1 = alloca %struct.global_State*, align 4 ; [#uses=5]
+ %2 = alloca %union.Closure*, align 4 ; [#uses=13]
+ %i = alloca i32, align 4 ; [#uses=7]
+ %i1 = alloca i32, align 4 ; [#uses=6]
+ store %struct.global_State* %g, %struct.global_State** %1, align 4
+ store %union.Closure* %cl, %union.Closure** %2, align 4
+ %3 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %union.Closure* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.CClosure* %4, i32 0, i32 6 ; [#uses=1]
+ %6 = load %struct.Table** %5, align 4 ; [#uses=1]
+ %7 = bitcast %struct.Table* %6 to %union.GCObject* ; [#uses=1]
+ %8 = getelementptr inbounds %union.GCObject* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = bitcast %struct.lua_State* %8 to %struct.GCheader* ; [#uses=1]
+ %10 = getelementptr inbounds %struct.GCheader* %9, i32 0, i32 2 ; [#uses=1]
+ %11 = load i8* %10, align 1 ; [#uses=1]
+ %12 = zext i8 %11 to i32 ; [#uses=1]
+ %13 = and i32 %12, 3 ; [#uses=1]
+ %14 = icmp ne i32 %13, 0 ; [#uses=1]
+ br i1 %14, label %15, label %22
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %17 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %union.Closure* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.CClosure* %18, i32 0, i32 6 ; [#uses=1]
+ %20 = load %struct.Table** %19, align 4 ; [#uses=1]
+ %21 = bitcast %struct.Table* %20 to %union.GCObject* ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %16, %union.GCObject* %21)
+ br label %22
+
+; <label>:22 ; preds = %15, %0
+ %23 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %union.Closure* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.CClosure* %24, i32 0, i32 3 ; [#uses=1]
+ %26 = load i8* %25, align 1 ; [#uses=1]
+ %27 = icmp ne i8 %26, 0 ; [#uses=1]
+ br i1 %27, label %28, label %79
+
+; <label>:28 ; preds = %22
+ store i32 0, i32* %i, align 4
+ br label %29
+
+; <label>:29 ; preds = %75, %28
+ %30 = load i32* %i, align 4 ; [#uses=1]
+ %31 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %union.Closure* %31, i32 0, i32 0 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.CClosure* %32, i32 0, i32 4 ; [#uses=1]
+ %34 = load i8* %33, align 1 ; [#uses=1]
+ %35 = zext i8 %34 to i32 ; [#uses=1]
+ %36 = icmp slt i32 %30, %35 ; [#uses=1]
+ br i1 %36, label %37, label %78
+
+; <label>:37 ; preds = %29
+ %38 = load i32* %i, align 4 ; [#uses=1]
+ %39 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %union.Closure* %39, i32 0, i32 0 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.CClosure* %40, i32 0, i32 8 ; [#uses=1]
+ %42 = getelementptr inbounds [1 x %struct.lua_TValue]* %41, i32 0, i32 %38 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.lua_TValue* %42, i32 0, i32 1 ; [#uses=1]
+ %44 = load i32* %43, align 4 ; [#uses=1]
+ %45 = icmp sge i32 %44, 4 ; [#uses=1]
+ br i1 %45, label %46, label %74
+
+; <label>:46 ; preds = %37
+ %47 = load i32* %i, align 4 ; [#uses=1]
+ %48 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %union.Closure* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.CClosure* %49, i32 0, i32 8 ; [#uses=1]
+ %51 = getelementptr inbounds [1 x %struct.lua_TValue]* %50, i32 0, i32 %47 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.lua_TValue* %51, i32 0, i32 0 ; [#uses=1]
+ %53 = getelementptr inbounds %union.anon* %52, i32 0, i32 0 ; [#uses=1]
+ %54 = bitcast double* %53 to %union.GCObject** ; [#uses=1]
+ %55 = load %union.GCObject** %54, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %union.GCObject* %55, i32 0, i32 0 ; [#uses=1]
+ %57 = bitcast %struct.lua_State* %56 to %struct.GCheader* ; [#uses=1]
+ %58 = getelementptr inbounds %struct.GCheader* %57, i32 0, i32 2 ; [#uses=1]
+ %59 = load i8* %58, align 1 ; [#uses=1]
+ %60 = zext i8 %59 to i32 ; [#uses=1]
+ %61 = and i32 %60, 3 ; [#uses=1]
+ %62 = icmp ne i32 %61, 0 ; [#uses=1]
+ br i1 %62, label %63, label %74
+
+; <label>:63 ; preds = %46
+ %64 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %65 = load i32* %i, align 4 ; [#uses=1]
+ %66 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %union.Closure* %66, i32 0, i32 0 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.CClosure* %67, i32 0, i32 8 ; [#uses=1]
+ %69 = getelementptr inbounds [1 x %struct.lua_TValue]* %68, i32 0, i32 %65 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.lua_TValue* %69, i32 0, i32 0 ; [#uses=1]
+ %71 = getelementptr inbounds %union.anon* %70, i32 0, i32 0 ; [#uses=1]
+ %72 = bitcast double* %71 to %union.GCObject** ; [#uses=1]
+ %73 = load %union.GCObject** %72, align 4 ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %64, %union.GCObject* %73)
+ br label %74
+
+; <label>:74 ; preds = %63, %46, %37
+ br label %75
+
+; <label>:75 ; preds = %74
+ %76 = load i32* %i, align 4 ; [#uses=1]
+ %77 = add nsw i32 %76, 1 ; [#uses=1]
+ store i32 %77, i32* %i, align 4
+ br label %29
+
+; <label>:78 ; preds = %29
+ br label %142
+
+; <label>:79 ; preds = %22
+ %80 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %union.Closure* %80, i32 0, i32 0 ; [#uses=1]
+ %82 = bitcast %struct.CClosure* %81 to %struct.LClosure* ; [#uses=1]
+ %83 = getelementptr inbounds %struct.LClosure* %82, i32 0, i32 7 ; [#uses=1]
+ %84 = load %struct.Proto** %83, align 4 ; [#uses=1]
+ %85 = bitcast %struct.Proto* %84 to %union.GCObject* ; [#uses=1]
+ %86 = getelementptr inbounds %union.GCObject* %85, i32 0, i32 0 ; [#uses=1]
+ %87 = bitcast %struct.lua_State* %86 to %struct.GCheader* ; [#uses=1]
+ %88 = getelementptr inbounds %struct.GCheader* %87, i32 0, i32 2 ; [#uses=1]
+ %89 = load i8* %88, align 1 ; [#uses=1]
+ %90 = zext i8 %89 to i32 ; [#uses=1]
+ %91 = and i32 %90, 3 ; [#uses=1]
+ %92 = icmp ne i32 %91, 0 ; [#uses=1]
+ br i1 %92, label %93, label %101
+
+; <label>:93 ; preds = %79
+ %94 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %95 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %96 = getelementptr inbounds %union.Closure* %95, i32 0, i32 0 ; [#uses=1]
+ %97 = bitcast %struct.CClosure* %96 to %struct.LClosure* ; [#uses=1]
+ %98 = getelementptr inbounds %struct.LClosure* %97, i32 0, i32 7 ; [#uses=1]
+ %99 = load %struct.Proto** %98, align 4 ; [#uses=1]
+ %100 = bitcast %struct.Proto* %99 to %union.GCObject* ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %94, %union.GCObject* %100)
+ br label %101
+
+; <label>:101 ; preds = %93, %79
+ store i32 0, i32* %i1, align 4
+ br label %102
+
+; <label>:102 ; preds = %138, %101
+ %103 = load i32* %i1, align 4 ; [#uses=1]
+ %104 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %105 = getelementptr inbounds %union.Closure* %104, i32 0, i32 0 ; [#uses=1]
+ %106 = bitcast %struct.CClosure* %105 to %struct.LClosure* ; [#uses=1]
+ %107 = getelementptr inbounds %struct.LClosure* %106, i32 0, i32 4 ; [#uses=1]
+ %108 = load i8* %107, align 1 ; [#uses=1]
+ %109 = zext i8 %108 to i32 ; [#uses=1]
+ %110 = icmp slt i32 %103, %109 ; [#uses=1]
+ br i1 %110, label %111, label %141
+
+; <label>:111 ; preds = %102
+ %112 = load i32* %i1, align 4 ; [#uses=1]
+ %113 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %114 = getelementptr inbounds %union.Closure* %113, i32 0, i32 0 ; [#uses=1]
+ %115 = bitcast %struct.CClosure* %114 to %struct.LClosure* ; [#uses=1]
+ %116 = getelementptr inbounds %struct.LClosure* %115, i32 0, i32 8 ; [#uses=1]
+ %117 = getelementptr inbounds [1 x %struct.UpVal*]* %116, i32 0, i32 %112 ; [#uses=1]
+ %118 = load %struct.UpVal** %117 ; [#uses=1]
+ %119 = bitcast %struct.UpVal* %118 to %union.GCObject* ; [#uses=1]
+ %120 = getelementptr inbounds %union.GCObject* %119, i32 0, i32 0 ; [#uses=1]
+ %121 = bitcast %struct.lua_State* %120 to %struct.GCheader* ; [#uses=1]
+ %122 = getelementptr inbounds %struct.GCheader* %121, i32 0, i32 2 ; [#uses=1]
+ %123 = load i8* %122, align 1 ; [#uses=1]
+ %124 = zext i8 %123 to i32 ; [#uses=1]
+ %125 = and i32 %124, 3 ; [#uses=1]
+ %126 = icmp ne i32 %125, 0 ; [#uses=1]
+ br i1 %126, label %127, label %137
+
+; <label>:127 ; preds = %111
+ %128 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %129 = load i32* %i1, align 4 ; [#uses=1]
+ %130 = load %union.Closure** %2, align 4 ; [#uses=1]
+ %131 = getelementptr inbounds %union.Closure* %130, i32 0, i32 0 ; [#uses=1]
+ %132 = bitcast %struct.CClosure* %131 to %struct.LClosure* ; [#uses=1]
+ %133 = getelementptr inbounds %struct.LClosure* %132, i32 0, i32 8 ; [#uses=1]
+ %134 = getelementptr inbounds [1 x %struct.UpVal*]* %133, i32 0, i32 %129 ; [#uses=1]
+ %135 = load %struct.UpVal** %134 ; [#uses=1]
+ %136 = bitcast %struct.UpVal* %135 to %union.GCObject* ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %128, %union.GCObject* %136)
+ br label %137
+
+; <label>:137 ; preds = %127, %111
+ br label %138
+
+; <label>:138 ; preds = %137
+ %139 = load i32* %i1, align 4 ; [#uses=1]
+ %140 = add nsw i32 %139, 1 ; [#uses=1]
+ store i32 %140, i32* %i1, align 4
+ br label %102
+
+; <label>:141 ; preds = %102
+ br label %142
+
+; <label>:142 ; preds = %141, %78
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z13traversestackP12global_StateP9lua_State(%struct.global_State* %g, %struct.lua_State* %l) {
+ %1 = alloca %struct.global_State*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=10]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=11]
+ %lim = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %ci = alloca %struct.CallInfo*, align 4 ; [#uses=6]
+ store %struct.global_State* %g, %struct.global_State** %1, align 4
+ store %struct.lua_State* %l, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 22 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_TValue* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = icmp sge i32 %6, 4 ; [#uses=1]
+ br i1 %7, label %8, label %30
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_State* %9, i32 0, i32 22 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_TValue* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = getelementptr inbounds %union.anon* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = bitcast double* %12 to %union.GCObject** ; [#uses=1]
+ %14 = load %union.GCObject** %13, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %union.GCObject* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = bitcast %struct.lua_State* %15 to %struct.GCheader* ; [#uses=1]
+ %17 = getelementptr inbounds %struct.GCheader* %16, i32 0, i32 2 ; [#uses=1]
+ %18 = load i8* %17, align 1 ; [#uses=1]
+ %19 = zext i8 %18 to i32 ; [#uses=1]
+ %20 = and i32 %19, 3 ; [#uses=1]
+ %21 = icmp ne i32 %20, 0 ; [#uses=1]
+ br i1 %21, label %22, label %30
+
+; <label>:22 ; preds = %8
+ %23 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %24 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.lua_State* %24, i32 0, i32 22 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_TValue* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = getelementptr inbounds %union.anon* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = bitcast double* %27 to %union.GCObject** ; [#uses=1]
+ %29 = load %union.GCObject** %28, align 4 ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %23, %union.GCObject* %29)
+ br label %30
+
+; <label>:30 ; preds = %22, %8, %0
+ %31 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_State* %31, i32 0, i32 4 ; [#uses=1]
+ %33 = load %struct.lua_TValue** %32, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %33, %struct.lua_TValue** %lim, align 4
+ %34 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_State* %34, i32 0, i32 12 ; [#uses=1]
+ %36 = load %struct.CallInfo** %35, align 4 ; [#uses=1]
+ store %struct.CallInfo* %36, %struct.CallInfo** %ci, align 4
+ br label %37
+
+; <label>:37 ; preds = %54, %30
+ %38 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %39 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.lua_State* %39, i32 0, i32 7 ; [#uses=1]
+ %41 = load %struct.CallInfo** %40, align 4 ; [#uses=1]
+ %42 = icmp ule %struct.CallInfo* %38, %41 ; [#uses=1]
+ br i1 %42, label %43, label %57
+
+; <label>:43 ; preds = %37
+ %44 = load %struct.lua_TValue** %lim, align 4 ; [#uses=1]
+ %45 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.CallInfo* %45, i32 0, i32 2 ; [#uses=1]
+ %47 = load %struct.lua_TValue** %46, align 4 ; [#uses=1]
+ %48 = icmp ult %struct.lua_TValue* %44, %47 ; [#uses=1]
+ br i1 %48, label %49, label %53
+
+; <label>:49 ; preds = %43
+ %50 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.CallInfo* %50, i32 0, i32 2 ; [#uses=1]
+ %52 = load %struct.lua_TValue** %51, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %52, %struct.lua_TValue** %lim, align 4
+ br label %53
+
+; <label>:53 ; preds = %49, %43
+ br label %54
+
+; <label>:54 ; preds = %53
+ %55 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.CallInfo* %55, i32 1 ; [#uses=1]
+ store %struct.CallInfo* %56, %struct.CallInfo** %ci, align 4
+ br label %37
+
+; <label>:57 ; preds = %37
+ %58 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.lua_State* %58, i32 0, i32 10 ; [#uses=1]
+ %60 = load %struct.lua_TValue** %59, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %60, %struct.lua_TValue** %o, align 4
+ br label %61
+
+; <label>:61 ; preds = %93, %57
+ %62 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %63 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.lua_State* %63, i32 0, i32 4 ; [#uses=1]
+ %65 = load %struct.lua_TValue** %64, align 4 ; [#uses=1]
+ %66 = icmp ult %struct.lua_TValue* %62, %65 ; [#uses=1]
+ br i1 %66, label %67, label %96
+
+; <label>:67 ; preds = %61
+ %68 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.lua_TValue* %68, i32 0, i32 1 ; [#uses=1]
+ %70 = load i32* %69, align 4 ; [#uses=1]
+ %71 = icmp sge i32 %70, 4 ; [#uses=1]
+ br i1 %71, label %72, label %92
+
+; <label>:72 ; preds = %67
+ %73 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.lua_TValue* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = getelementptr inbounds %union.anon* %74, i32 0, i32 0 ; [#uses=1]
+ %76 = bitcast double* %75 to %union.GCObject** ; [#uses=1]
+ %77 = load %union.GCObject** %76, align 4 ; [#uses=1]
+ %78 = getelementptr inbounds %union.GCObject* %77, i32 0, i32 0 ; [#uses=1]
+ %79 = bitcast %struct.lua_State* %78 to %struct.GCheader* ; [#uses=1]
+ %80 = getelementptr inbounds %struct.GCheader* %79, i32 0, i32 2 ; [#uses=1]
+ %81 = load i8* %80, align 1 ; [#uses=1]
+ %82 = zext i8 %81 to i32 ; [#uses=1]
+ %83 = and i32 %82, 3 ; [#uses=1]
+ %84 = icmp ne i32 %83, 0 ; [#uses=1]
+ br i1 %84, label %85, label %92
+
+; <label>:85 ; preds = %72
+ %86 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %87 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %88 = getelementptr inbounds %struct.lua_TValue* %87, i32 0, i32 0 ; [#uses=1]
+ %89 = getelementptr inbounds %union.anon* %88, i32 0, i32 0 ; [#uses=1]
+ %90 = bitcast double* %89 to %union.GCObject** ; [#uses=1]
+ %91 = load %union.GCObject** %90, align 4 ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %86, %union.GCObject* %91)
+ br label %92
+
+; <label>:92 ; preds = %85, %72, %67
+ br label %93
+
+; <label>:93 ; preds = %92
+ %94 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %95 = getelementptr inbounds %struct.lua_TValue* %94, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %95, %struct.lua_TValue** %o, align 4
+ br label %61
+
+; <label>:96 ; preds = %61
+ br label %97
+
+; <label>:97 ; preds = %104, %96
+ %98 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %99 = load %struct.lua_TValue** %lim, align 4 ; [#uses=1]
+ %100 = icmp ule %struct.lua_TValue* %98, %99 ; [#uses=1]
+ br i1 %100, label %101, label %107
+
+; <label>:101 ; preds = %97
+ %102 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %103 = getelementptr inbounds %struct.lua_TValue* %102, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %103, align 4
+ br label %104
+
+; <label>:104 ; preds = %101
+ %105 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %106 = getelementptr inbounds %struct.lua_TValue* %105, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %106, %struct.lua_TValue** %o, align 4
+ br label %97
+
+; <label>:107 ; preds = %97
+ %108 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %109 = load %struct.lua_TValue** %lim, align 4 ; [#uses=1]
+ call void @_Z15checkstacksizesP9lua_StateP10lua_TValue(%struct.lua_State* %108, %struct.lua_TValue* %109)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z13traverseprotoP12global_StateP5Proto(%struct.global_State* %g, %struct.Proto* %f) {
+ %1 = alloca %struct.global_State*, align 4 ; [#uses=3]
+ %2 = alloca %struct.Proto*, align 4 ; [#uses=17]
+ %i = alloca i32, align 4 ; [#uses=26]
+ store %struct.global_State* %g, %struct.global_State** %1, align 4
+ store %struct.Proto* %f, %struct.Proto** %2, align 4
+ %3 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.Proto* %3, i32 0, i32 9 ; [#uses=1]
+ %5 = load %union.TString** %4, align 4 ; [#uses=1]
+ %6 = icmp ne %union.TString* %5, null ; [#uses=1]
+ br i1 %6, label %7, label %17
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.Proto* %8, i32 0, i32 9 ; [#uses=1]
+ %10 = load %union.TString** %9, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %union.TString* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.anon* %11, i32 0, i32 2 ; [#uses=2]
+ %13 = load i8* %12, align 1 ; [#uses=1]
+ %14 = zext i8 %13 to i32 ; [#uses=1]
+ %15 = and i32 %14, 252 ; [#uses=1]
+ %16 = trunc i32 %15 to i8 ; [#uses=1]
+ store i8 %16, i8* %12, align 1
+ br label %17
+
+; <label>:17 ; preds = %7, %0
+ store i32 0, i32* %i, align 4
+ br label %18
+
+; <label>:18 ; preds = %62, %17
+ %19 = load i32* %i, align 4 ; [#uses=1]
+ %20 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.Proto* %20, i32 0, i32 11 ; [#uses=1]
+ %22 = load i32* %21, align 4 ; [#uses=1]
+ %23 = icmp slt i32 %19, %22 ; [#uses=1]
+ br i1 %23, label %24, label %65
+
+; <label>:24 ; preds = %18
+ %25 = load i32* %i, align 4 ; [#uses=1]
+ %26 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.Proto* %26, i32 0, i32 3 ; [#uses=1]
+ %28 = load %struct.lua_TValue** %27, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_TValue* %28, i32 %25 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_TValue* %29, i32 0, i32 1 ; [#uses=1]
+ %31 = load i32* %30, align 4 ; [#uses=1]
+ %32 = icmp sge i32 %31, 4 ; [#uses=1]
+ br i1 %32, label %33, label %61
+
+; <label>:33 ; preds = %24
+ %34 = load i32* %i, align 4 ; [#uses=1]
+ %35 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.Proto* %35, i32 0, i32 3 ; [#uses=1]
+ %37 = load %struct.lua_TValue** %36, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.lua_TValue* %37, i32 %34 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.lua_TValue* %38, i32 0, i32 0 ; [#uses=1]
+ %40 = getelementptr inbounds %union.anon* %39, i32 0, i32 0 ; [#uses=1]
+ %41 = bitcast double* %40 to %union.GCObject** ; [#uses=1]
+ %42 = load %union.GCObject** %41, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %union.GCObject* %42, i32 0, i32 0 ; [#uses=1]
+ %44 = bitcast %struct.lua_State* %43 to %struct.GCheader* ; [#uses=1]
+ %45 = getelementptr inbounds %struct.GCheader* %44, i32 0, i32 2 ; [#uses=1]
+ %46 = load i8* %45, align 1 ; [#uses=1]
+ %47 = zext i8 %46 to i32 ; [#uses=1]
+ %48 = and i32 %47, 3 ; [#uses=1]
+ %49 = icmp ne i32 %48, 0 ; [#uses=1]
+ br i1 %49, label %50, label %61
+
+; <label>:50 ; preds = %33
+ %51 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %52 = load i32* %i, align 4 ; [#uses=1]
+ %53 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.Proto* %53, i32 0, i32 3 ; [#uses=1]
+ %55 = load %struct.lua_TValue** %54, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.lua_TValue* %55, i32 %52 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.lua_TValue* %56, i32 0, i32 0 ; [#uses=1]
+ %58 = getelementptr inbounds %union.anon* %57, i32 0, i32 0 ; [#uses=1]
+ %59 = bitcast double* %58 to %union.GCObject** ; [#uses=1]
+ %60 = load %union.GCObject** %59, align 4 ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %51, %union.GCObject* %60)
+ br label %61
+
+; <label>:61 ; preds = %50, %33, %24
+ br label %62
+
+; <label>:62 ; preds = %61
+ %63 = load i32* %i, align 4 ; [#uses=1]
+ %64 = add nsw i32 %63, 1 ; [#uses=1]
+ store i32 %64, i32* %i, align 4
+ br label %18
+
+; <label>:65 ; preds = %18
+ store i32 0, i32* %i, align 4
+ br label %66
+
+; <label>:66 ; preds = %94, %65
+ %67 = load i32* %i, align 4 ; [#uses=1]
+ %68 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.Proto* %68, i32 0, i32 10 ; [#uses=1]
+ %70 = load i32* %69, align 4 ; [#uses=1]
+ %71 = icmp slt i32 %67, %70 ; [#uses=1]
+ br i1 %71, label %72, label %97
+
+; <label>:72 ; preds = %66
+ %73 = load i32* %i, align 4 ; [#uses=1]
+ %74 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %75 = getelementptr inbounds %struct.Proto* %74, i32 0, i32 8 ; [#uses=1]
+ %76 = load %union.TString*** %75, align 4 ; [#uses=1]
+ %77 = getelementptr inbounds %union.TString** %76, i32 %73 ; [#uses=1]
+ %78 = load %union.TString** %77 ; [#uses=1]
+ %79 = icmp ne %union.TString* %78, null ; [#uses=1]
+ br i1 %79, label %80, label %93
+
+; <label>:80 ; preds = %72
+ %81 = load i32* %i, align 4 ; [#uses=1]
+ %82 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %83 = getelementptr inbounds %struct.Proto* %82, i32 0, i32 8 ; [#uses=1]
+ %84 = load %union.TString*** %83, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %union.TString** %84, i32 %81 ; [#uses=1]
+ %86 = load %union.TString** %85 ; [#uses=1]
+ %87 = getelementptr inbounds %union.TString* %86, i32 0, i32 0 ; [#uses=1]
+ %88 = getelementptr inbounds %struct.anon* %87, i32 0, i32 2 ; [#uses=2]
+ %89 = load i8* %88, align 1 ; [#uses=1]
+ %90 = zext i8 %89 to i32 ; [#uses=1]
+ %91 = and i32 %90, 252 ; [#uses=1]
+ %92 = trunc i32 %91 to i8 ; [#uses=1]
+ store i8 %92, i8* %88, align 1
+ br label %93
+
+; <label>:93 ; preds = %80, %72
+ br label %94
+
+; <label>:94 ; preds = %93
+ %95 = load i32* %i, align 4 ; [#uses=1]
+ %96 = add nsw i32 %95, 1 ; [#uses=1]
+ store i32 %96, i32* %i, align 4
+ br label %66
+
+; <label>:97 ; preds = %66
+ store i32 0, i32* %i, align 4
+ br label %98
+
+; <label>:98 ; preds = %138, %97
+ %99 = load i32* %i, align 4 ; [#uses=1]
+ %100 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %101 = getelementptr inbounds %struct.Proto* %100, i32 0, i32 14 ; [#uses=1]
+ %102 = load i32* %101, align 4 ; [#uses=1]
+ %103 = icmp slt i32 %99, %102 ; [#uses=1]
+ br i1 %103, label %104, label %141
+
+; <label>:104 ; preds = %98
+ %105 = load i32* %i, align 4 ; [#uses=1]
+ %106 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %107 = getelementptr inbounds %struct.Proto* %106, i32 0, i32 5 ; [#uses=1]
+ %108 = load %struct.Proto*** %107, align 4 ; [#uses=1]
+ %109 = getelementptr inbounds %struct.Proto** %108, i32 %105 ; [#uses=1]
+ %110 = load %struct.Proto** %109 ; [#uses=1]
+ %111 = icmp ne %struct.Proto* %110, null ; [#uses=1]
+ br i1 %111, label %112, label %137
+
+; <label>:112 ; preds = %104
+ %113 = load i32* %i, align 4 ; [#uses=1]
+ %114 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %115 = getelementptr inbounds %struct.Proto* %114, i32 0, i32 5 ; [#uses=1]
+ %116 = load %struct.Proto*** %115, align 4 ; [#uses=1]
+ %117 = getelementptr inbounds %struct.Proto** %116, i32 %113 ; [#uses=1]
+ %118 = load %struct.Proto** %117 ; [#uses=1]
+ %119 = bitcast %struct.Proto* %118 to %union.GCObject* ; [#uses=1]
+ %120 = getelementptr inbounds %union.GCObject* %119, i32 0, i32 0 ; [#uses=1]
+ %121 = bitcast %struct.lua_State* %120 to %struct.GCheader* ; [#uses=1]
+ %122 = getelementptr inbounds %struct.GCheader* %121, i32 0, i32 2 ; [#uses=1]
+ %123 = load i8* %122, align 1 ; [#uses=1]
+ %124 = zext i8 %123 to i32 ; [#uses=1]
+ %125 = and i32 %124, 3 ; [#uses=1]
+ %126 = icmp ne i32 %125, 0 ; [#uses=1]
+ br i1 %126, label %127, label %136
+
+; <label>:127 ; preds = %112
+ %128 = load %struct.global_State** %1, align 4 ; [#uses=1]
+ %129 = load i32* %i, align 4 ; [#uses=1]
+ %130 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %131 = getelementptr inbounds %struct.Proto* %130, i32 0, i32 5 ; [#uses=1]
+ %132 = load %struct.Proto*** %131, align 4 ; [#uses=1]
+ %133 = getelementptr inbounds %struct.Proto** %132, i32 %129 ; [#uses=1]
+ %134 = load %struct.Proto** %133 ; [#uses=1]
+ %135 = bitcast %struct.Proto* %134 to %union.GCObject* ; [#uses=1]
+ call void @_Z16reallymarkobjectP12global_StateP8GCObject(%struct.global_State* %128, %union.GCObject* %135)
+ br label %136
+
+; <label>:136 ; preds = %127, %112
+ br label %137
+
+; <label>:137 ; preds = %136, %104
+ br label %138
+
+; <label>:138 ; preds = %137
+ %139 = load i32* %i, align 4 ; [#uses=1]
+ %140 = add nsw i32 %139, 1 ; [#uses=1]
+ store i32 %140, i32* %i, align 4
+ br label %98
+
+; <label>:141 ; preds = %98
+ store i32 0, i32* %i, align 4
+ br label %142
+
+; <label>:142 ; preds = %172, %141
+ %143 = load i32* %i, align 4 ; [#uses=1]
+ %144 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %145 = getelementptr inbounds %struct.Proto* %144, i32 0, i32 15 ; [#uses=1]
+ %146 = load i32* %145, align 4 ; [#uses=1]
+ %147 = icmp slt i32 %143, %146 ; [#uses=1]
+ br i1 %147, label %148, label %175
+
+; <label>:148 ; preds = %142
+ %149 = load i32* %i, align 4 ; [#uses=1]
+ %150 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %151 = getelementptr inbounds %struct.Proto* %150, i32 0, i32 7 ; [#uses=1]
+ %152 = load %struct.LocVar** %151, align 4 ; [#uses=1]
+ %153 = getelementptr inbounds %struct.LocVar* %152, i32 %149 ; [#uses=1]
+ %154 = getelementptr inbounds %struct.LocVar* %153, i32 0, i32 0 ; [#uses=1]
+ %155 = load %union.TString** %154, align 4 ; [#uses=1]
+ %156 = icmp ne %union.TString* %155, null ; [#uses=1]
+ br i1 %156, label %157, label %171
+
+; <label>:157 ; preds = %148
+ %158 = load i32* %i, align 4 ; [#uses=1]
+ %159 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %160 = getelementptr inbounds %struct.Proto* %159, i32 0, i32 7 ; [#uses=1]
+ %161 = load %struct.LocVar** %160, align 4 ; [#uses=1]
+ %162 = getelementptr inbounds %struct.LocVar* %161, i32 %158 ; [#uses=1]
+ %163 = getelementptr inbounds %struct.LocVar* %162, i32 0, i32 0 ; [#uses=1]
+ %164 = load %union.TString** %163, align 4 ; [#uses=1]
+ %165 = getelementptr inbounds %union.TString* %164, i32 0, i32 0 ; [#uses=1]
+ %166 = getelementptr inbounds %struct.anon* %165, i32 0, i32 2 ; [#uses=2]
+ %167 = load i8* %166, align 1 ; [#uses=1]
+ %168 = zext i8 %167 to i32 ; [#uses=1]
+ %169 = and i32 %168, 252 ; [#uses=1]
+ %170 = trunc i32 %169 to i8 ; [#uses=1]
+ store i8 %170, i8* %166, align 1
+ br label %171
+
+; <label>:171 ; preds = %157, %148
+ br label %172
+
+; <label>:172 ; preds = %171
+ %173 = load i32* %i, align 4 ; [#uses=1]
+ %174 = add nsw i32 %173, 1 ; [#uses=1]
+ store i32 %174, i32* %i, align 4
+ br label %142
+
+; <label>:175 ; preds = %142
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z15checkstacksizesP9lua_StateP10lua_TValue(%struct.lua_State* %L, %struct.lua_TValue* %max) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=13]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %ci_used = alloca i32, align 4 ; [#uses=2]
+ %s_used = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %max, %struct.lua_TValue** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 7 ; [#uses=1]
+ %5 = load %struct.CallInfo** %4, align 4 ; [#uses=1]
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 12 ; [#uses=1]
+ %8 = load %struct.CallInfo** %7, align 4 ; [#uses=1]
+ %9 = ptrtoint %struct.CallInfo* %5 to i32 ; [#uses=1]
+ %10 = ptrtoint %struct.CallInfo* %8 to i32 ; [#uses=1]
+ %11 = sub i32 %9, %10 ; [#uses=1]
+ %12 = sdiv exact i32 %11, 24 ; [#uses=1]
+ store i32 %12, i32* %ci_used, align 4
+ %13 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_State* %14, i32 0, i32 10 ; [#uses=1]
+ %16 = load %struct.lua_TValue** %15, align 4 ; [#uses=1]
+ %17 = ptrtoint %struct.lua_TValue* %13 to i32 ; [#uses=1]
+ %18 = ptrtoint %struct.lua_TValue* %16 to i32 ; [#uses=1]
+ %19 = sub i32 %17, %18 ; [#uses=1]
+ %20 = sdiv exact i32 %19, 12 ; [#uses=1]
+ store i32 %20, i32* %s_used, align 4
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_State* %21, i32 0, i32 14 ; [#uses=1]
+ %23 = load i32* %22, align 4 ; [#uses=1]
+ %24 = icmp sgt i32 %23, 20000 ; [#uses=1]
+ br i1 %24, label %25, label %26
+
+; <label>:25 ; preds = %0
+ br label %62
+
+; <label>:26 ; preds = %0
+ %27 = load i32* %ci_used, align 4 ; [#uses=1]
+ %28 = mul nsw i32 4, %27 ; [#uses=1]
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_State* %29, i32 0, i32 14 ; [#uses=1]
+ %31 = load i32* %30, align 4 ; [#uses=1]
+ %32 = icmp slt i32 %28, %31 ; [#uses=1]
+ br i1 %32, label %33, label %44
+
+; <label>:33 ; preds = %26
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_State* %34, i32 0, i32 14 ; [#uses=1]
+ %36 = load i32* %35, align 4 ; [#uses=1]
+ %37 = icmp slt i32 16, %36 ; [#uses=1]
+ br i1 %37, label %38, label %44
+
+; <label>:38 ; preds = %33
+ %39 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %40 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.lua_State* %40, i32 0, i32 14 ; [#uses=1]
+ %42 = load i32* %41, align 4 ; [#uses=1]
+ %43 = sdiv i32 %42, 2 ; [#uses=1]
+ call void @_Z14luaD_reallocCIP9lua_Statei(%struct.lua_State* %39, i32 %43)
+ br label %44
+
+; <label>:44 ; preds = %38, %33, %26
+ %45 = load i32* %s_used, align 4 ; [#uses=1]
+ %46 = mul nsw i32 4, %45 ; [#uses=1]
+ %47 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.lua_State* %47, i32 0, i32 13 ; [#uses=1]
+ %49 = load i32* %48, align 4 ; [#uses=1]
+ %50 = icmp slt i32 %46, %49 ; [#uses=1]
+ br i1 %50, label %51, label %62
+
+; <label>:51 ; preds = %44
+ %52 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.lua_State* %52, i32 0, i32 13 ; [#uses=1]
+ %54 = load i32* %53, align 4 ; [#uses=1]
+ %55 = icmp slt i32 90, %54 ; [#uses=1]
+ br i1 %55, label %56, label %62
+
+; <label>:56 ; preds = %51
+ %57 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %58 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.lua_State* %58, i32 0, i32 13 ; [#uses=1]
+ %60 = load i32* %59, align 4 ; [#uses=1]
+ %61 = sdiv i32 %60, 2 ; [#uses=1]
+ call void @_Z17luaD_reallocstackP9lua_Statei(%struct.lua_State* %57, i32 %61)
+ br label %62
+
+; <label>:62 ; preds = %56, %51, %44, %25
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z7freeobjP9lua_StateP8GCObject(%struct.lua_State* %L, %union.GCObject* %o) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %2 = alloca %union.GCObject*, align 4 ; [#uses=11]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %union.GCObject* %o, %union.GCObject** %2, align 4
+ %3 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %union.GCObject* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = bitcast %struct.lua_State* %4 to %struct.GCheader* ; [#uses=1]
+ %6 = getelementptr inbounds %struct.GCheader* %5, i32 0, i32 1 ; [#uses=1]
+ %7 = load i8* %6, align 1 ; [#uses=1]
+ %8 = zext i8 %7 to i32 ; [#uses=1]
+ switch i32 %8, label %66 [
+ i32 9, label %9
+ i32 6, label %14
+ i32 10, label %19
+ i32 5, label %24
+ i32 8, label %29
+ i32 4, label %33
+ i32 7, label %54
+ ]
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %union.GCObject* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = bitcast %struct.lua_State* %12 to %struct.Proto* ; [#uses=1]
+ call void @_Z14luaF_freeprotoP9lua_StateP5Proto(%struct.lua_State* %10, %struct.Proto* %13)
+ br label %67
+
+; <label>:14 ; preds = %0
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %union.GCObject* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = bitcast %struct.lua_State* %17 to %union.Closure* ; [#uses=1]
+ call void @_Z16luaF_freeclosureP9lua_StateP7Closure(%struct.lua_State* %15, %union.Closure* %18)
+ br label %67
+
+; <label>:19 ; preds = %0
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %21 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %union.GCObject* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = bitcast %struct.lua_State* %22 to %struct.UpVal* ; [#uses=1]
+ call void @_Z14luaF_freeupvalP9lua_StateP5UpVal(%struct.lua_State* %20, %struct.UpVal* %23)
+ br label %67
+
+; <label>:24 ; preds = %0
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %26 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %union.GCObject* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = bitcast %struct.lua_State* %27 to %struct.Table* ; [#uses=1]
+ call void @_Z9luaH_freeP9lua_StateP5Table(%struct.lua_State* %25, %struct.Table* %28)
+ br label %67
+
+; <label>:29 ; preds = %0
+ %30 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %31 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %union.GCObject* %31, i32 0, i32 0 ; [#uses=1]
+ call void @_Z15luaE_freethreadP9lua_StateS0_(%struct.lua_State* %30, %struct.lua_State* %32)
+ br label %67
+
+; <label>:33 ; preds = %0
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_State* %34, i32 0, i32 6 ; [#uses=1]
+ %36 = load %struct.global_State** %35, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.global_State* %36, i32 0, i32 0 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.stringtable* %37, i32 0, i32 1 ; [#uses=2]
+ %39 = load i32* %38, align 4 ; [#uses=1]
+ %40 = add i32 %39, -1 ; [#uses=1]
+ store i32 %40, i32* %38, align 4
+ %41 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %42 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %43 = bitcast %union.GCObject* %42 to i8* ; [#uses=1]
+ %44 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %union.GCObject* %44, i32 0, i32 0 ; [#uses=1]
+ %46 = bitcast %struct.lua_State* %45 to %union.TString* ; [#uses=1]
+ %47 = getelementptr inbounds %union.TString* %46, i32 0, i32 0 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.anon* %47, i32 0, i32 5 ; [#uses=1]
+ %49 = load i32* %48, align 4 ; [#uses=1]
+ %50 = add i32 %49, 1 ; [#uses=1]
+ %51 = mul i32 %50, 1 ; [#uses=1]
+ %52 = add i32 16, %51 ; [#uses=1]
+ %53 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %41, i8* %43, i32 %52, i32 0) ; [#uses=0]
+ br label %67
+
+; <label>:54 ; preds = %0
+ %55 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %56 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %57 = bitcast %union.GCObject* %56 to i8* ; [#uses=1]
+ %58 = load %union.GCObject** %2, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %union.GCObject* %58, i32 0, i32 0 ; [#uses=1]
+ %60 = bitcast %struct.lua_State* %59 to %union.Udata* ; [#uses=1]
+ %61 = getelementptr inbounds %union.Udata* %60, i32 0, i32 0 ; [#uses=1]
+ %62 = getelementptr inbounds %4* %61, i32 0, i32 5 ; [#uses=1]
+ %63 = load i32* %62, align 4 ; [#uses=1]
+ %64 = add i32 20, %63 ; [#uses=1]
+ %65 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %55, i8* %57, i32 %64, i32 0) ; [#uses=0]
+ br label %67
+
+; <label>:66 ; preds = %0
+ br label %67
+
+; <label>:67 ; preds = %66, %54, %33, %29, %24, %19, %14, %9
+ ret void
+}
+
+; [#uses=1]
+define hidden void @_Z9luaX_initP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %i = alloca i32, align 4 ; [#uses=7]
+ %ts = alloca %union.TString*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 0, i32* %i, align 4
+ br label %2
+
+; <label>:2 ; preds = %28, %0
+ %3 = load i32* %i, align 4 ; [#uses=1]
+ %4 = icmp slt i32 %3, 21 ; [#uses=1]
+ br i1 %4, label %5, label %31
+
+; <label>:5 ; preds = %2
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load i32* %i, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds [32 x i8*]* @luaX_tokens, i32 0, i32 %7 ; [#uses=1]
+ %9 = load i8** %8 ; [#uses=1]
+ %10 = load i32* %i, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds [32 x i8*]* @luaX_tokens, i32 0, i32 %10 ; [#uses=1]
+ %12 = load i8** %11 ; [#uses=1]
+ %13 = call i32 @strlen(i8* %12) ; [#uses=1]
+ %14 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %6, i8* %9, i32 %13) ; [#uses=1]
+ store %union.TString* %14, %union.TString** %ts, align 4
+ %15 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %union.TString* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.anon* %16, i32 0, i32 2 ; [#uses=2]
+ %18 = load i8* %17, align 1 ; [#uses=1]
+ %19 = zext i8 %18 to i32 ; [#uses=1]
+ %20 = or i32 %19, 32 ; [#uses=1]
+ %21 = trunc i32 %20 to i8 ; [#uses=1]
+ store i8 %21, i8* %17, align 1
+ %22 = load i32* %i, align 4 ; [#uses=1]
+ %23 = add nsw i32 %22, 1 ; [#uses=1]
+ %24 = trunc i32 %23 to i8 ; [#uses=1]
+ %25 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %union.TString* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.anon* %26, i32 0, i32 3 ; [#uses=1]
+ store i8 %24, i8* %27, align 1
+ br label %28
+
+; <label>:28 ; preds = %5
+ %29 = load i32* %i, align 4 ; [#uses=1]
+ %30 = add nsw i32 %29, 1 ; [#uses=1]
+ store i32 %30, i32* %i, align 4
+ br label %2
+
+; <label>:31 ; preds = %2
+ ret void
+}
+
+; [#uses=4]
+define hidden i8* @_Z14luaX_token2strP8LexStatei(%struct.LexState* %ls, i32 %token) {
+ %1 = alloca i8*, align 4 ; [#uses=3]
+ %2 = alloca %struct.LexState*, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=6]
+ store %struct.LexState* %ls, %struct.LexState** %2, align 4
+ store i32 %token, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = icmp slt i32 %4, 257 ; [#uses=1]
+ br i1 %5, label %6, label %24
+
+; <label>:6 ; preds = %0
+ %7 = load i32* %3, align 4 ; [#uses=1]
+ %8 = call i32 @iscntrl(i32 %7) nounwind ; [#uses=1]
+ %9 = icmp ne i32 %8, 0 ; [#uses=1]
+ br i1 %9, label %10, label %16
+
+; <label>:10 ; preds = %6
+ %11 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.LexState* %11, i32 0, i32 6 ; [#uses=1]
+ %13 = load %struct.lua_State** %12, align 4 ; [#uses=1]
+ %14 = load i32* %3, align 4 ; [#uses=1]
+ %15 = call i8* (%struct.lua_State*, i8*, ...)* @_Z16luaO_pushfstringP9lua_StatePKcz(%struct.lua_State* %13, i8* getelementptr inbounds ([9 x i8]* @.str31, i32 0, i32 0), i32 %14) ; [#uses=1]
+ br label %22
+
+; <label>:16 ; preds = %6
+ %17 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.LexState* %17, i32 0, i32 6 ; [#uses=1]
+ %19 = load %struct.lua_State** %18, align 4 ; [#uses=1]
+ %20 = load i32* %3, align 4 ; [#uses=1]
+ %21 = call i8* (%struct.lua_State*, i8*, ...)* @_Z16luaO_pushfstringP9lua_StatePKcz(%struct.lua_State* %19, i8* getelementptr inbounds ([3 x i8]* @.str32, i32 0, i32 0), i32 %20) ; [#uses=1]
+ br label %22
+
+; <label>:22 ; preds = %16, %10
+ %23 = phi i8* [ %15, %10 ], [ %21, %16 ] ; [#uses=1]
+ store i8* %23, i8** %1
+ br label %29
+
+; <label>:24 ; preds = %0
+ %25 = load i32* %3, align 4 ; [#uses=1]
+ %26 = sub nsw i32 %25, 257 ; [#uses=1]
+ %27 = getelementptr inbounds [32 x i8*]* @luaX_tokens, i32 0, i32 %26 ; [#uses=1]
+ %28 = load i8** %27 ; [#uses=1]
+ store i8* %28, i8** %1
+ br label %29
+
+; <label>:29 ; preds = %24, %22
+ %30 = load i8** %1 ; [#uses=1]
+ ret i8* %30
+}
+
+; [#uses=2]
+declare i32 @iscntrl(i32) nounwind
+
+; [#uses=11]
+define hidden void @_Z13luaX_lexerrorP8LexStatePKci(%struct.LexState* %ls, i8* %msg, i32 %token) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=7]
+ %2 = alloca i8*, align 4 ; [#uses=4]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %buff = alloca [80 x i8], align 1 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i8* %msg, i8** %2, align 4
+ store i32 %token, i32* %3, align 4
+ %4 = getelementptr inbounds [80 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LexState* %5, i32 0, i32 9 ; [#uses=1]
+ %7 = load %union.TString** %6, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %union.TString* %7, i32 1 ; [#uses=1]
+ %9 = bitcast %union.TString* %8 to i8* ; [#uses=1]
+ call void @_Z12luaO_chunkidPcPKcj(i8* %4, i8* %9, i32 80)
+ %10 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.LexState* %10, i32 0, i32 6 ; [#uses=1]
+ %12 = load %struct.lua_State** %11, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds [80 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ %14 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.LexState* %14, i32 0, i32 1 ; [#uses=1]
+ %16 = load i32* %15, align 4 ; [#uses=1]
+ %17 = load i8** %2, align 4 ; [#uses=1]
+ %18 = call i8* (%struct.lua_State*, i8*, ...)* @_Z16luaO_pushfstringP9lua_StatePKcz(%struct.lua_State* %12, i8* getelementptr inbounds ([10 x i8]* @.str33, i32 0, i32 0), i8* %13, i32 %16, i8* %17) ; [#uses=1]
+ store i8* %18, i8** %2, align 4
+ %19 = load i32* %3, align 4 ; [#uses=1]
+ %20 = icmp ne i32 %19, 0 ; [#uses=1]
+ br i1 %20, label %21, label %30
+
+; <label>:21 ; preds = %0
+ %22 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.LexState* %22, i32 0, i32 6 ; [#uses=1]
+ %24 = load %struct.lua_State** %23, align 4 ; [#uses=1]
+ %25 = load i8** %2, align 4 ; [#uses=1]
+ %26 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %27 = load i32* %3, align 4 ; [#uses=1]
+ %28 = call i8* @_Z8txtTokenP8LexStatei(%struct.LexState* %26, i32 %27) ; [#uses=1]
+ %29 = call i8* (%struct.lua_State*, i8*, ...)* @_Z16luaO_pushfstringP9lua_StatePKcz(%struct.lua_State* %24, i8* getelementptr inbounds ([13 x i8]* @.str34, i32 0, i32 0), i8* %25, i8* %28) ; [#uses=0]
+ br label %30
+
+; <label>:30 ; preds = %21, %0
+ %31 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.LexState* %31, i32 0, i32 6 ; [#uses=1]
+ %33 = load %struct.lua_State** %32, align 4 ; [#uses=1]
+ call void @_Z10luaD_throwP9lua_Statei(%struct.lua_State* %33, i32 3)
+ ret void
+}
+
+; [#uses=1]
+define internal i8* @_Z8txtTokenP8LexStatei(%struct.LexState* %ls, i32 %token) {
+ %1 = alloca i8*, align 4 ; [#uses=3]
+ %2 = alloca %struct.LexState*, align 4 ; [#uses=4]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ store %struct.LexState* %ls, %struct.LexState** %2, align 4
+ store i32 %token, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ switch i32 %4, label %12 [
+ i32 285, label %5
+ i32 286, label %5
+ i32 284, label %5
+ ]
+
+; <label>:5 ; preds = %0, %0, %0
+ %6 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %6, i32 0)
+ %7 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.LexState* %7, i32 0, i32 8 ; [#uses=1]
+ %9 = load %struct.Mbuffer** %8, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.Mbuffer* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = load i8** %10, align 4 ; [#uses=1]
+ store i8* %11, i8** %1
+ br label %16
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %14 = load i32* %3, align 4 ; [#uses=1]
+ %15 = call i8* @_Z14luaX_token2strP8LexStatei(%struct.LexState* %13, i32 %14) ; [#uses=1]
+ store i8* %15, i8** %1
+ br label %16
+
+; <label>:16 ; preds = %12, %5
+ %17 = load i8** %1 ; [#uses=1]
+ ret i8* %17
+}
+
+; [#uses=13]
+define hidden void @_Z16luaX_syntaxerrorP8LexStatePKc(%struct.LexState* %ls, i8* %msg) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=3]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i8* %msg, i8** %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = load i8** %2, align 4 ; [#uses=1]
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LexState* %5, i32 0, i32 3 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.Token* %6, i32 0, i32 0 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ call void @_Z13luaX_lexerrorP8LexStatePKci(%struct.LexState* %3, i8* %4, i32 %8)
+ ret void
+}
+
+; [#uses=12]
+define hidden %union.TString* @_Z14luaX_newstringP8LexStatePKcj(%struct.LexState* %ls, i8* %str, i32 %l) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=3]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %L = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %ts = alloca %union.TString*, align 4 ; [#uses=3]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i8* %str, i8** %2, align 4
+ store i32 %l, i32* %3, align 4
+ %4 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.LexState* %4, i32 0, i32 6 ; [#uses=1]
+ %6 = load %struct.lua_State** %5, align 4 ; [#uses=1]
+ store %struct.lua_State* %6, %struct.lua_State** %L, align 4
+ %7 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %8 = load i8** %2, align 4 ; [#uses=1]
+ %9 = load i32* %3, align 4 ; [#uses=1]
+ %10 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %7, i8* %8, i32 %9) ; [#uses=1]
+ store %union.TString* %10, %union.TString** %ts, align 4
+ %11 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %12 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.LexState* %12, i32 0, i32 5 ; [#uses=1]
+ %14 = load %struct.FuncState** %13, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.FuncState* %14, i32 0, i32 1 ; [#uses=1]
+ %16 = load %struct.Table** %15, align 4 ; [#uses=1]
+ %17 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %18 = call %struct.lua_TValue* @_Z11luaH_setstrP9lua_StateP5TableP7TString(%struct.lua_State* %11, %struct.Table* %16, %union.TString* %17) ; [#uses=1]
+ store %struct.lua_TValue* %18, %struct.lua_TValue** %o, align 4
+ %19 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_TValue* %19, i32 0, i32 1 ; [#uses=1]
+ %21 = load i32* %20, align 4 ; [#uses=1]
+ %22 = icmp eq i32 %21, 0 ; [#uses=1]
+ br i1 %22, label %23, label %31
+
+; <label>:23 ; preds = %0
+ %24 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %24, %struct.lua_TValue** %i_o, align 4
+ %25 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_TValue* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = getelementptr inbounds %union.anon* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = bitcast double* %27 to i32* ; [#uses=1]
+ store i32 1, i32* %28, align 4
+ %29 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_TValue* %29, i32 0, i32 1 ; [#uses=1]
+ store i32 1, i32* %30, align 4
+ br label %31
+
+; <label>:31 ; preds = %23, %0
+ %32 = load %union.TString** %ts, align 4 ; [#uses=1]
+ ret %union.TString* %32
+}
+
+; [#uses=1]
+define hidden void @_Z13luaX_setinputP9lua_StateP8LexStateP3ZioP7TString(%struct.lua_State* %L, %struct.LexState* %ls, %struct.Zio* %z, %union.TString* %source) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca %struct.LexState*, align 4 ; [#uses=18]
+ %3 = alloca %struct.Zio*, align 4 ; [#uses=2]
+ %4 = alloca %union.TString*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.LexState* %ls, %struct.LexState** %2, align 4
+ store %struct.Zio* %z, %struct.Zio** %3, align 4
+ store %union.TString* %source, %union.TString** %4, align 4
+ %5 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LexState* %5, i32 0, i32 10 ; [#uses=1]
+ store i8 46, i8* %6, align 1
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.LexState* %8, i32 0, i32 6 ; [#uses=1]
+ store %struct.lua_State* %7, %struct.lua_State** %9, align 4
+ %10 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.LexState* %10, i32 0, i32 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.Token* %11, i32 0, i32 0 ; [#uses=1]
+ store i32 287, i32* %12, align 4
+ %13 = load %struct.Zio** %3, align 4 ; [#uses=1]
+ %14 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.LexState* %14, i32 0, i32 7 ; [#uses=1]
+ store %struct.Zio* %13, %struct.Zio** %15, align 4
+ %16 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.LexState* %16, i32 0, i32 5 ; [#uses=1]
+ store %struct.FuncState* null, %struct.FuncState** %17, align 4
+ %18 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.LexState* %18, i32 0, i32 1 ; [#uses=1]
+ store i32 1, i32* %19, align 4
+ %20 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.LexState* %20, i32 0, i32 2 ; [#uses=1]
+ store i32 1, i32* %21, align 4
+ %22 = load %union.TString** %4, align 4 ; [#uses=1]
+ %23 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.LexState* %23, i32 0, i32 9 ; [#uses=1]
+ store %union.TString* %22, %union.TString** %24, align 4
+ %25 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.LexState* %25, i32 0, i32 6 ; [#uses=1]
+ %27 = load %struct.lua_State** %26, align 4 ; [#uses=1]
+ %28 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.LexState* %28, i32 0, i32 8 ; [#uses=1]
+ %30 = load %struct.Mbuffer** %29, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.Mbuffer* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = load i8** %31, align 4 ; [#uses=1]
+ %33 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.LexState* %33, i32 0, i32 8 ; [#uses=1]
+ %35 = load %struct.Mbuffer** %34, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.Mbuffer* %35, i32 0, i32 2 ; [#uses=1]
+ %37 = load i32* %36, align 4 ; [#uses=1]
+ %38 = mul i32 %37, 1 ; [#uses=1]
+ %39 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %27, i8* %32, i32 %38, i32 32) ; [#uses=1]
+ %40 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.LexState* %40, i32 0, i32 8 ; [#uses=1]
+ %42 = load %struct.Mbuffer** %41, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.Mbuffer* %42, i32 0, i32 0 ; [#uses=1]
+ store i8* %39, i8** %43, align 4
+ %44 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.LexState* %44, i32 0, i32 8 ; [#uses=1]
+ %46 = load %struct.Mbuffer** %45, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.Mbuffer* %46, i32 0, i32 2 ; [#uses=1]
+ store i32 32, i32* %47, align 4
+ %48 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.LexState* %48, i32 0, i32 7 ; [#uses=1]
+ %50 = load %struct.Zio** %49, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.Zio* %50, i32 0, i32 0 ; [#uses=2]
+ %52 = load i32* %51, align 4 ; [#uses=2]
+ %53 = add i32 %52, -1 ; [#uses=1]
+ store i32 %53, i32* %51, align 4
+ %54 = icmp ugt i32 %52, 0 ; [#uses=1]
+ br i1 %54, label %55, label %64
+
+; <label>:55 ; preds = %0
+ %56 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.LexState* %56, i32 0, i32 7 ; [#uses=1]
+ %58 = load %struct.Zio** %57, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.Zio* %58, i32 0, i32 1 ; [#uses=2]
+ %60 = load i8** %59, align 4 ; [#uses=2]
+ %61 = getelementptr inbounds i8* %60, i32 1 ; [#uses=1]
+ store i8* %61, i8** %59, align 4
+ %62 = load i8* %60 ; [#uses=1]
+ %63 = zext i8 %62 to i32 ; [#uses=1]
+ br label %69
+
+; <label>:64 ; preds = %0
+ %65 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.LexState* %65, i32 0, i32 7 ; [#uses=1]
+ %67 = load %struct.Zio** %66, align 4 ; [#uses=1]
+ %68 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %67) ; [#uses=1]
+ br label %69
+
+; <label>:69 ; preds = %64, %55
+ %70 = phi i32 [ %63, %55 ], [ %68, %64 ] ; [#uses=1]
+ %71 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.LexState* %71, i32 0, i32 0 ; [#uses=1]
+ store i32 %70, i32* %72, align 4
+ ret void
+}
+
+; [#uses=25]
+define hidden void @_Z9luaX_nextP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=10]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.LexState* %2, i32 0, i32 1 ; [#uses=1]
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LexState* %5, i32 0, i32 2 ; [#uses=1]
+ store i32 %4, i32* %6, align 4
+ %7 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.LexState* %7, i32 0, i32 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.Token* %8, i32 0, i32 0 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ %11 = icmp ne i32 %10, 287 ; [#uses=1]
+ br i1 %11, label %12, label %22
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.LexState* %13, i32 0, i32 3 ; [#uses=1]
+ %15 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.LexState* %15, i32 0, i32 4 ; [#uses=1]
+ %17 = bitcast %struct.Token* %14 to i8* ; [#uses=1]
+ %18 = bitcast %struct.Token* %16 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %17, i8* %18, i32 12, i32 4, i1 false)
+ %19 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.LexState* %19, i32 0, i32 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.Token* %20, i32 0, i32 0 ; [#uses=1]
+ store i32 287, i32* %21, align 4
+ br label %31
+
+; <label>:22 ; preds = %0
+ %23 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %24 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.LexState* %24, i32 0, i32 3 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.Token* %25, i32 0, i32 1 ; [#uses=1]
+ %27 = call i32 @_Z4llexP8LexStateP7SemInfo(%struct.LexState* %23, %union.anon* %26) ; [#uses=1]
+ %28 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.LexState* %28, i32 0, i32 3 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.Token* %29, i32 0, i32 0 ; [#uses=1]
+ store i32 %27, i32* %30, align 4
+ br label %31
+
+; <label>:31 ; preds = %22, %12
+ ret void
+}
+
+; [#uses=2]
+define internal i32 @_Z4llexP8LexStateP7SemInfo(%struct.LexState* %ls, %union.anon* %seminfo) {
+ %1 = alloca i32, align 4 ; [#uses=22]
+ %2 = alloca %struct.LexState*, align 4 ; [#uses=101]
+ %3 = alloca %union.anon*, align 4 ; [#uses=6]
+ %sep = alloca i32, align 4 ; [#uses=3]
+ %sep1 = alloca i32, align 4 ; [#uses=4]
+ %ts = alloca %union.TString*, align 4 ; [#uses=4]
+ %c = alloca i32, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %2, align 4
+ store %union.anon* %seminfo, %union.anon** %3, align 4
+ %4 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.LexState* %4, i32 0, i32 8 ; [#uses=1]
+ %6 = load %struct.Mbuffer** %5, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.Mbuffer* %6, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %7, align 4
+ br label %8
+
+; <label>:8 ; preds = %466, %136, %84, %12, %0
+ %9 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.LexState* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = load i32* %10, align 4 ; [#uses=1]
+ switch i32 %11, label %438 [
+ i32 10, label %12
+ i32 13, label %12
+ i32 45, label %14
+ i32 91, label %137
+ i32 61, label %154
+ i32 60, label %211
+ i32 62, label %268
+ i32 126, label %325
+ i32 34, label %382
+ i32 39, label %382
+ i32 46, label %388
+ i32 -1, label %437
+ ]
+
+; <label>:12 ; preds = %8, %8
+ %13 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ call void @_Z13inclinenumberP8LexState(%struct.LexState* %13)
+ br label %8
+
+; <label>:14 ; preds = %8
+ %15 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.LexState* %15, i32 0, i32 7 ; [#uses=1]
+ %17 = load %struct.Zio** %16, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.Zio* %17, i32 0, i32 0 ; [#uses=2]
+ %19 = load i32* %18, align 4 ; [#uses=2]
+ %20 = add i32 %19, -1 ; [#uses=1]
+ store i32 %20, i32* %18, align 4
+ %21 = icmp ugt i32 %19, 0 ; [#uses=1]
+ br i1 %21, label %22, label %31
+
+; <label>:22 ; preds = %14
+ %23 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.LexState* %23, i32 0, i32 7 ; [#uses=1]
+ %25 = load %struct.Zio** %24, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.Zio* %25, i32 0, i32 1 ; [#uses=2]
+ %27 = load i8** %26, align 4 ; [#uses=2]
+ %28 = getelementptr inbounds i8* %27, i32 1 ; [#uses=1]
+ store i8* %28, i8** %26, align 4
+ %29 = load i8* %27 ; [#uses=1]
+ %30 = zext i8 %29 to i32 ; [#uses=1]
+ br label %36
+
+; <label>:31 ; preds = %14
+ %32 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.LexState* %32, i32 0, i32 7 ; [#uses=1]
+ %34 = load %struct.Zio** %33, align 4 ; [#uses=1]
+ %35 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %34) ; [#uses=1]
+ br label %36
+
+; <label>:36 ; preds = %31, %22
+ %37 = phi i32 [ %30, %22 ], [ %35, %31 ] ; [#uses=1]
+ %38 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.LexState* %38, i32 0, i32 0 ; [#uses=1]
+ store i32 %37, i32* %39, align 4
+ %40 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.LexState* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = load i32* %41, align 4 ; [#uses=1]
+ %43 = icmp ne i32 %42, 45 ; [#uses=1]
+ br i1 %43, label %44, label %45
+
+; <label>:44 ; preds = %36
+ store i32 45, i32* %1
+ br label %596
+
+; <label>:45 ; preds = %36
+ %46 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.LexState* %46, i32 0, i32 7 ; [#uses=1]
+ %48 = load %struct.Zio** %47, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.Zio* %48, i32 0, i32 0 ; [#uses=2]
+ %50 = load i32* %49, align 4 ; [#uses=2]
+ %51 = add i32 %50, -1 ; [#uses=1]
+ store i32 %51, i32* %49, align 4
+ %52 = icmp ugt i32 %50, 0 ; [#uses=1]
+ br i1 %52, label %53, label %62
+
+; <label>:53 ; preds = %45
+ %54 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.LexState* %54, i32 0, i32 7 ; [#uses=1]
+ %56 = load %struct.Zio** %55, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.Zio* %56, i32 0, i32 1 ; [#uses=2]
+ %58 = load i8** %57, align 4 ; [#uses=2]
+ %59 = getelementptr inbounds i8* %58, i32 1 ; [#uses=1]
+ store i8* %59, i8** %57, align 4
+ %60 = load i8* %58 ; [#uses=1]
+ %61 = zext i8 %60 to i32 ; [#uses=1]
+ br label %67
+
+; <label>:62 ; preds = %45
+ %63 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.LexState* %63, i32 0, i32 7 ; [#uses=1]
+ %65 = load %struct.Zio** %64, align 4 ; [#uses=1]
+ %66 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %65) ; [#uses=1]
+ br label %67
+
+; <label>:67 ; preds = %62, %53
+ %68 = phi i32 [ %61, %53 ], [ %66, %62 ] ; [#uses=1]
+ %69 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.LexState* %69, i32 0, i32 0 ; [#uses=1]
+ store i32 %68, i32* %70, align 4
+ %71 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.LexState* %71, i32 0, i32 0 ; [#uses=1]
+ %73 = load i32* %72, align 4 ; [#uses=1]
+ %74 = icmp eq i32 %73, 91 ; [#uses=1]
+ br i1 %74, label %75, label %92
+
+; <label>:75 ; preds = %67
+ %76 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %77 = call i32 @_Z8skip_sepP8LexState(%struct.LexState* %76) ; [#uses=1]
+ store i32 %77, i32* %sep, align 4
+ %78 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %79 = getelementptr inbounds %struct.LexState* %78, i32 0, i32 8 ; [#uses=1]
+ %80 = load %struct.Mbuffer** %79, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.Mbuffer* %80, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %81, align 4
+ %82 = load i32* %sep, align 4 ; [#uses=1]
+ %83 = icmp sge i32 %82, 0 ; [#uses=1]
+ br i1 %83, label %84, label %91
+
+; <label>:84 ; preds = %75
+ %85 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %86 = load i32* %sep, align 4 ; [#uses=1]
+ call void @_Z16read_long_stringP8LexStateP7SemInfoi(%struct.LexState* %85, %union.anon* null, i32 %86)
+ %87 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %88 = getelementptr inbounds %struct.LexState* %87, i32 0, i32 8 ; [#uses=1]
+ %89 = load %struct.Mbuffer** %88, align 4 ; [#uses=1]
+ %90 = getelementptr inbounds %struct.Mbuffer* %89, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %90, align 4
+ br label %8
+
+; <label>:91 ; preds = %75
+ br label %92
+
+; <label>:92 ; preds = %91, %67
+ br label %93
+
+; <label>:93 ; preds = %132, %92
+ %94 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %95 = getelementptr inbounds %struct.LexState* %94, i32 0, i32 0 ; [#uses=1]
+ %96 = load i32* %95, align 4 ; [#uses=1]
+ %97 = icmp eq i32 %96, 10 ; [#uses=1]
+ br i1 %97, label %108, label %98
+
+; <label>:98 ; preds = %93
+ %99 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %100 = getelementptr inbounds %struct.LexState* %99, i32 0, i32 0 ; [#uses=1]
+ %101 = load i32* %100, align 4 ; [#uses=1]
+ %102 = icmp eq i32 %101, 13 ; [#uses=1]
+ br i1 %102, label %108, label %103
+
+; <label>:103 ; preds = %98
+ %104 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %105 = getelementptr inbounds %struct.LexState* %104, i32 0, i32 0 ; [#uses=1]
+ %106 = load i32* %105, align 4 ; [#uses=1]
+ %107 = icmp ne i32 %106, -1 ; [#uses=1]
+ br label %108
+
+; <label>:108 ; preds = %103, %98, %93
+ %109 = phi i1 [ false, %98 ], [ false, %93 ], [ %107, %103 ] ; [#uses=1]
+ br i1 %109, label %110, label %136
+
+; <label>:110 ; preds = %108
+ %111 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %112 = getelementptr inbounds %struct.LexState* %111, i32 0, i32 7 ; [#uses=1]
+ %113 = load %struct.Zio** %112, align 4 ; [#uses=1]
+ %114 = getelementptr inbounds %struct.Zio* %113, i32 0, i32 0 ; [#uses=2]
+ %115 = load i32* %114, align 4 ; [#uses=2]
+ %116 = add i32 %115, -1 ; [#uses=1]
+ store i32 %116, i32* %114, align 4
+ %117 = icmp ugt i32 %115, 0 ; [#uses=1]
+ br i1 %117, label %118, label %127
+
+; <label>:118 ; preds = %110
+ %119 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %120 = getelementptr inbounds %struct.LexState* %119, i32 0, i32 7 ; [#uses=1]
+ %121 = load %struct.Zio** %120, align 4 ; [#uses=1]
+ %122 = getelementptr inbounds %struct.Zio* %121, i32 0, i32 1 ; [#uses=2]
+ %123 = load i8** %122, align 4 ; [#uses=2]
+ %124 = getelementptr inbounds i8* %123, i32 1 ; [#uses=1]
+ store i8* %124, i8** %122, align 4
+ %125 = load i8* %123 ; [#uses=1]
+ %126 = zext i8 %125 to i32 ; [#uses=1]
+ br label %132
+
+; <label>:127 ; preds = %110
+ %128 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %129 = getelementptr inbounds %struct.LexState* %128, i32 0, i32 7 ; [#uses=1]
+ %130 = load %struct.Zio** %129, align 4 ; [#uses=1]
+ %131 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %130) ; [#uses=1]
+ br label %132
+
+; <label>:132 ; preds = %127, %118
+ %133 = phi i32 [ %126, %118 ], [ %131, %127 ] ; [#uses=1]
+ %134 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %135 = getelementptr inbounds %struct.LexState* %134, i32 0, i32 0 ; [#uses=1]
+ store i32 %133, i32* %135, align 4
+ br label %93
+
+; <label>:136 ; preds = %108
+ br label %8
+
+; <label>:137 ; preds = %8
+ %138 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %139 = call i32 @_Z8skip_sepP8LexState(%struct.LexState* %138) ; [#uses=1]
+ store i32 %139, i32* %sep1, align 4
+ %140 = load i32* %sep1, align 4 ; [#uses=1]
+ %141 = icmp sge i32 %140, 0 ; [#uses=1]
+ br i1 %141, label %142, label %146
+
+; <label>:142 ; preds = %137
+ %143 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %144 = load %union.anon** %3, align 4 ; [#uses=1]
+ %145 = load i32* %sep1, align 4 ; [#uses=1]
+ call void @_Z16read_long_stringP8LexStateP7SemInfoi(%struct.LexState* %143, %union.anon* %144, i32 %145)
+ store i32 286, i32* %1
+ br label %596
+
+; <label>:146 ; preds = %137
+ %147 = load i32* %sep1, align 4 ; [#uses=1]
+ %148 = icmp eq i32 %147, -1 ; [#uses=1]
+ br i1 %148, label %149, label %150
+
+; <label>:149 ; preds = %146
+ store i32 91, i32* %1
+ br label %596
+
+; <label>:150 ; preds = %146
+ %151 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ call void @_Z13luaX_lexerrorP8LexStatePKci(%struct.LexState* %151, i8* getelementptr inbounds ([30 x i8]* @.str35, i32 0, i32 0), i32 286)
+ br label %152
+
+; <label>:152 ; preds = %150
+ br label %153
+
+; <label>:153 ; preds = %152
+ br label %154
+
+; <label>:154 ; preds = %153, %8
+ %155 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %156 = getelementptr inbounds %struct.LexState* %155, i32 0, i32 7 ; [#uses=1]
+ %157 = load %struct.Zio** %156, align 4 ; [#uses=1]
+ %158 = getelementptr inbounds %struct.Zio* %157, i32 0, i32 0 ; [#uses=2]
+ %159 = load i32* %158, align 4 ; [#uses=2]
+ %160 = add i32 %159, -1 ; [#uses=1]
+ store i32 %160, i32* %158, align 4
+ %161 = icmp ugt i32 %159, 0 ; [#uses=1]
+ br i1 %161, label %162, label %171
+
+; <label>:162 ; preds = %154
+ %163 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %164 = getelementptr inbounds %struct.LexState* %163, i32 0, i32 7 ; [#uses=1]
+ %165 = load %struct.Zio** %164, align 4 ; [#uses=1]
+ %166 = getelementptr inbounds %struct.Zio* %165, i32 0, i32 1 ; [#uses=2]
+ %167 = load i8** %166, align 4 ; [#uses=2]
+ %168 = getelementptr inbounds i8* %167, i32 1 ; [#uses=1]
+ store i8* %168, i8** %166, align 4
+ %169 = load i8* %167 ; [#uses=1]
+ %170 = zext i8 %169 to i32 ; [#uses=1]
+ br label %176
+
+; <label>:171 ; preds = %154
+ %172 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %173 = getelementptr inbounds %struct.LexState* %172, i32 0, i32 7 ; [#uses=1]
+ %174 = load %struct.Zio** %173, align 4 ; [#uses=1]
+ %175 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %174) ; [#uses=1]
+ br label %176
+
+; <label>:176 ; preds = %171, %162
+ %177 = phi i32 [ %170, %162 ], [ %175, %171 ] ; [#uses=1]
+ %178 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %179 = getelementptr inbounds %struct.LexState* %178, i32 0, i32 0 ; [#uses=1]
+ store i32 %177, i32* %179, align 4
+ %180 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %181 = getelementptr inbounds %struct.LexState* %180, i32 0, i32 0 ; [#uses=1]
+ %182 = load i32* %181, align 4 ; [#uses=1]
+ %183 = icmp ne i32 %182, 61 ; [#uses=1]
+ br i1 %183, label %184, label %185
+
+; <label>:184 ; preds = %176
+ store i32 61, i32* %1
+ br label %596
+
+; <label>:185 ; preds = %176
+ %186 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %187 = getelementptr inbounds %struct.LexState* %186, i32 0, i32 7 ; [#uses=1]
+ %188 = load %struct.Zio** %187, align 4 ; [#uses=1]
+ %189 = getelementptr inbounds %struct.Zio* %188, i32 0, i32 0 ; [#uses=2]
+ %190 = load i32* %189, align 4 ; [#uses=2]
+ %191 = add i32 %190, -1 ; [#uses=1]
+ store i32 %191, i32* %189, align 4
+ %192 = icmp ugt i32 %190, 0 ; [#uses=1]
+ br i1 %192, label %193, label %202
+
+; <label>:193 ; preds = %185
+ %194 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %195 = getelementptr inbounds %struct.LexState* %194, i32 0, i32 7 ; [#uses=1]
+ %196 = load %struct.Zio** %195, align 4 ; [#uses=1]
+ %197 = getelementptr inbounds %struct.Zio* %196, i32 0, i32 1 ; [#uses=2]
+ %198 = load i8** %197, align 4 ; [#uses=2]
+ %199 = getelementptr inbounds i8* %198, i32 1 ; [#uses=1]
+ store i8* %199, i8** %197, align 4
+ %200 = load i8* %198 ; [#uses=1]
+ %201 = zext i8 %200 to i32 ; [#uses=1]
+ br label %207
+
+; <label>:202 ; preds = %185
+ %203 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %204 = getelementptr inbounds %struct.LexState* %203, i32 0, i32 7 ; [#uses=1]
+ %205 = load %struct.Zio** %204, align 4 ; [#uses=1]
+ %206 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %205) ; [#uses=1]
+ br label %207
+
+; <label>:207 ; preds = %202, %193
+ %208 = phi i32 [ %201, %193 ], [ %206, %202 ] ; [#uses=1]
+ %209 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %210 = getelementptr inbounds %struct.LexState* %209, i32 0, i32 0 ; [#uses=1]
+ store i32 %208, i32* %210, align 4
+ store i32 280, i32* %1
+ br label %596
+
+; <label>:211 ; preds = %8
+ %212 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %213 = getelementptr inbounds %struct.LexState* %212, i32 0, i32 7 ; [#uses=1]
+ %214 = load %struct.Zio** %213, align 4 ; [#uses=1]
+ %215 = getelementptr inbounds %struct.Zio* %214, i32 0, i32 0 ; [#uses=2]
+ %216 = load i32* %215, align 4 ; [#uses=2]
+ %217 = add i32 %216, -1 ; [#uses=1]
+ store i32 %217, i32* %215, align 4
+ %218 = icmp ugt i32 %216, 0 ; [#uses=1]
+ br i1 %218, label %219, label %228
+
+; <label>:219 ; preds = %211
+ %220 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %221 = getelementptr inbounds %struct.LexState* %220, i32 0, i32 7 ; [#uses=1]
+ %222 = load %struct.Zio** %221, align 4 ; [#uses=1]
+ %223 = getelementptr inbounds %struct.Zio* %222, i32 0, i32 1 ; [#uses=2]
+ %224 = load i8** %223, align 4 ; [#uses=2]
+ %225 = getelementptr inbounds i8* %224, i32 1 ; [#uses=1]
+ store i8* %225, i8** %223, align 4
+ %226 = load i8* %224 ; [#uses=1]
+ %227 = zext i8 %226 to i32 ; [#uses=1]
+ br label %233
+
+; <label>:228 ; preds = %211
+ %229 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %230 = getelementptr inbounds %struct.LexState* %229, i32 0, i32 7 ; [#uses=1]
+ %231 = load %struct.Zio** %230, align 4 ; [#uses=1]
+ %232 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %231) ; [#uses=1]
+ br label %233
+
+; <label>:233 ; preds = %228, %219
+ %234 = phi i32 [ %227, %219 ], [ %232, %228 ] ; [#uses=1]
+ %235 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %236 = getelementptr inbounds %struct.LexState* %235, i32 0, i32 0 ; [#uses=1]
+ store i32 %234, i32* %236, align 4
+ %237 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %238 = getelementptr inbounds %struct.LexState* %237, i32 0, i32 0 ; [#uses=1]
+ %239 = load i32* %238, align 4 ; [#uses=1]
+ %240 = icmp ne i32 %239, 61 ; [#uses=1]
+ br i1 %240, label %241, label %242
+
+; <label>:241 ; preds = %233
+ store i32 60, i32* %1
+ br label %596
+
+; <label>:242 ; preds = %233
+ %243 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %244 = getelementptr inbounds %struct.LexState* %243, i32 0, i32 7 ; [#uses=1]
+ %245 = load %struct.Zio** %244, align 4 ; [#uses=1]
+ %246 = getelementptr inbounds %struct.Zio* %245, i32 0, i32 0 ; [#uses=2]
+ %247 = load i32* %246, align 4 ; [#uses=2]
+ %248 = add i32 %247, -1 ; [#uses=1]
+ store i32 %248, i32* %246, align 4
+ %249 = icmp ugt i32 %247, 0 ; [#uses=1]
+ br i1 %249, label %250, label %259
+
+; <label>:250 ; preds = %242
+ %251 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %252 = getelementptr inbounds %struct.LexState* %251, i32 0, i32 7 ; [#uses=1]
+ %253 = load %struct.Zio** %252, align 4 ; [#uses=1]
+ %254 = getelementptr inbounds %struct.Zio* %253, i32 0, i32 1 ; [#uses=2]
+ %255 = load i8** %254, align 4 ; [#uses=2]
+ %256 = getelementptr inbounds i8* %255, i32 1 ; [#uses=1]
+ store i8* %256, i8** %254, align 4
+ %257 = load i8* %255 ; [#uses=1]
+ %258 = zext i8 %257 to i32 ; [#uses=1]
+ br label %264
+
+; <label>:259 ; preds = %242
+ %260 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %261 = getelementptr inbounds %struct.LexState* %260, i32 0, i32 7 ; [#uses=1]
+ %262 = load %struct.Zio** %261, align 4 ; [#uses=1]
+ %263 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %262) ; [#uses=1]
+ br label %264
+
+; <label>:264 ; preds = %259, %250
+ %265 = phi i32 [ %258, %250 ], [ %263, %259 ] ; [#uses=1]
+ %266 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %267 = getelementptr inbounds %struct.LexState* %266, i32 0, i32 0 ; [#uses=1]
+ store i32 %265, i32* %267, align 4
+ store i32 282, i32* %1
+ br label %596
+
+; <label>:268 ; preds = %8
+ %269 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %270 = getelementptr inbounds %struct.LexState* %269, i32 0, i32 7 ; [#uses=1]
+ %271 = load %struct.Zio** %270, align 4 ; [#uses=1]
+ %272 = getelementptr inbounds %struct.Zio* %271, i32 0, i32 0 ; [#uses=2]
+ %273 = load i32* %272, align 4 ; [#uses=2]
+ %274 = add i32 %273, -1 ; [#uses=1]
+ store i32 %274, i32* %272, align 4
+ %275 = icmp ugt i32 %273, 0 ; [#uses=1]
+ br i1 %275, label %276, label %285
+
+; <label>:276 ; preds = %268
+ %277 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %278 = getelementptr inbounds %struct.LexState* %277, i32 0, i32 7 ; [#uses=1]
+ %279 = load %struct.Zio** %278, align 4 ; [#uses=1]
+ %280 = getelementptr inbounds %struct.Zio* %279, i32 0, i32 1 ; [#uses=2]
+ %281 = load i8** %280, align 4 ; [#uses=2]
+ %282 = getelementptr inbounds i8* %281, i32 1 ; [#uses=1]
+ store i8* %282, i8** %280, align 4
+ %283 = load i8* %281 ; [#uses=1]
+ %284 = zext i8 %283 to i32 ; [#uses=1]
+ br label %290
+
+; <label>:285 ; preds = %268
+ %286 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %287 = getelementptr inbounds %struct.LexState* %286, i32 0, i32 7 ; [#uses=1]
+ %288 = load %struct.Zio** %287, align 4 ; [#uses=1]
+ %289 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %288) ; [#uses=1]
+ br label %290
+
+; <label>:290 ; preds = %285, %276
+ %291 = phi i32 [ %284, %276 ], [ %289, %285 ] ; [#uses=1]
+ %292 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %293 = getelementptr inbounds %struct.LexState* %292, i32 0, i32 0 ; [#uses=1]
+ store i32 %291, i32* %293, align 4
+ %294 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %295 = getelementptr inbounds %struct.LexState* %294, i32 0, i32 0 ; [#uses=1]
+ %296 = load i32* %295, align 4 ; [#uses=1]
+ %297 = icmp ne i32 %296, 61 ; [#uses=1]
+ br i1 %297, label %298, label %299
+
+; <label>:298 ; preds = %290
+ store i32 62, i32* %1
+ br label %596
+
+; <label>:299 ; preds = %290
+ %300 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %301 = getelementptr inbounds %struct.LexState* %300, i32 0, i32 7 ; [#uses=1]
+ %302 = load %struct.Zio** %301, align 4 ; [#uses=1]
+ %303 = getelementptr inbounds %struct.Zio* %302, i32 0, i32 0 ; [#uses=2]
+ %304 = load i32* %303, align 4 ; [#uses=2]
+ %305 = add i32 %304, -1 ; [#uses=1]
+ store i32 %305, i32* %303, align 4
+ %306 = icmp ugt i32 %304, 0 ; [#uses=1]
+ br i1 %306, label %307, label %316
+
+; <label>:307 ; preds = %299
+ %308 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %309 = getelementptr inbounds %struct.LexState* %308, i32 0, i32 7 ; [#uses=1]
+ %310 = load %struct.Zio** %309, align 4 ; [#uses=1]
+ %311 = getelementptr inbounds %struct.Zio* %310, i32 0, i32 1 ; [#uses=2]
+ %312 = load i8** %311, align 4 ; [#uses=2]
+ %313 = getelementptr inbounds i8* %312, i32 1 ; [#uses=1]
+ store i8* %313, i8** %311, align 4
+ %314 = load i8* %312 ; [#uses=1]
+ %315 = zext i8 %314 to i32 ; [#uses=1]
+ br label %321
+
+; <label>:316 ; preds = %299
+ %317 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %318 = getelementptr inbounds %struct.LexState* %317, i32 0, i32 7 ; [#uses=1]
+ %319 = load %struct.Zio** %318, align 4 ; [#uses=1]
+ %320 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %319) ; [#uses=1]
+ br label %321
+
+; <label>:321 ; preds = %316, %307
+ %322 = phi i32 [ %315, %307 ], [ %320, %316 ] ; [#uses=1]
+ %323 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %324 = getelementptr inbounds %struct.LexState* %323, i32 0, i32 0 ; [#uses=1]
+ store i32 %322, i32* %324, align 4
+ store i32 281, i32* %1
+ br label %596
+
+; <label>:325 ; preds = %8
+ %326 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %327 = getelementptr inbounds %struct.LexState* %326, i32 0, i32 7 ; [#uses=1]
+ %328 = load %struct.Zio** %327, align 4 ; [#uses=1]
+ %329 = getelementptr inbounds %struct.Zio* %328, i32 0, i32 0 ; [#uses=2]
+ %330 = load i32* %329, align 4 ; [#uses=2]
+ %331 = add i32 %330, -1 ; [#uses=1]
+ store i32 %331, i32* %329, align 4
+ %332 = icmp ugt i32 %330, 0 ; [#uses=1]
+ br i1 %332, label %333, label %342
+
+; <label>:333 ; preds = %325
+ %334 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %335 = getelementptr inbounds %struct.LexState* %334, i32 0, i32 7 ; [#uses=1]
+ %336 = load %struct.Zio** %335, align 4 ; [#uses=1]
+ %337 = getelementptr inbounds %struct.Zio* %336, i32 0, i32 1 ; [#uses=2]
+ %338 = load i8** %337, align 4 ; [#uses=2]
+ %339 = getelementptr inbounds i8* %338, i32 1 ; [#uses=1]
+ store i8* %339, i8** %337, align 4
+ %340 = load i8* %338 ; [#uses=1]
+ %341 = zext i8 %340 to i32 ; [#uses=1]
+ br label %347
+
+; <label>:342 ; preds = %325
+ %343 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %344 = getelementptr inbounds %struct.LexState* %343, i32 0, i32 7 ; [#uses=1]
+ %345 = load %struct.Zio** %344, align 4 ; [#uses=1]
+ %346 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %345) ; [#uses=1]
+ br label %347
+
+; <label>:347 ; preds = %342, %333
+ %348 = phi i32 [ %341, %333 ], [ %346, %342 ] ; [#uses=1]
+ %349 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %350 = getelementptr inbounds %struct.LexState* %349, i32 0, i32 0 ; [#uses=1]
+ store i32 %348, i32* %350, align 4
+ %351 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %352 = getelementptr inbounds %struct.LexState* %351, i32 0, i32 0 ; [#uses=1]
+ %353 = load i32* %352, align 4 ; [#uses=1]
+ %354 = icmp ne i32 %353, 61 ; [#uses=1]
+ br i1 %354, label %355, label %356
+
+; <label>:355 ; preds = %347
+ store i32 126, i32* %1
+ br label %596
+
+; <label>:356 ; preds = %347
+ %357 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %358 = getelementptr inbounds %struct.LexState* %357, i32 0, i32 7 ; [#uses=1]
+ %359 = load %struct.Zio** %358, align 4 ; [#uses=1]
+ %360 = getelementptr inbounds %struct.Zio* %359, i32 0, i32 0 ; [#uses=2]
+ %361 = load i32* %360, align 4 ; [#uses=2]
+ %362 = add i32 %361, -1 ; [#uses=1]
+ store i32 %362, i32* %360, align 4
+ %363 = icmp ugt i32 %361, 0 ; [#uses=1]
+ br i1 %363, label %364, label %373
+
+; <label>:364 ; preds = %356
+ %365 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %366 = getelementptr inbounds %struct.LexState* %365, i32 0, i32 7 ; [#uses=1]
+ %367 = load %struct.Zio** %366, align 4 ; [#uses=1]
+ %368 = getelementptr inbounds %struct.Zio* %367, i32 0, i32 1 ; [#uses=2]
+ %369 = load i8** %368, align 4 ; [#uses=2]
+ %370 = getelementptr inbounds i8* %369, i32 1 ; [#uses=1]
+ store i8* %370, i8** %368, align 4
+ %371 = load i8* %369 ; [#uses=1]
+ %372 = zext i8 %371 to i32 ; [#uses=1]
+ br label %378
+
+; <label>:373 ; preds = %356
+ %374 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %375 = getelementptr inbounds %struct.LexState* %374, i32 0, i32 7 ; [#uses=1]
+ %376 = load %struct.Zio** %375, align 4 ; [#uses=1]
+ %377 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %376) ; [#uses=1]
+ br label %378
+
+; <label>:378 ; preds = %373, %364
+ %379 = phi i32 [ %372, %364 ], [ %377, %373 ] ; [#uses=1]
+ %380 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %381 = getelementptr inbounds %struct.LexState* %380, i32 0, i32 0 ; [#uses=1]
+ store i32 %379, i32* %381, align 4
+ store i32 283, i32* %1
+ br label %596
+
+; <label>:382 ; preds = %8, %8
+ %383 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %384 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %385 = getelementptr inbounds %struct.LexState* %384, i32 0, i32 0 ; [#uses=1]
+ %386 = load i32* %385, align 4 ; [#uses=1]
+ %387 = load %union.anon** %3, align 4 ; [#uses=1]
+ call void @_Z11read_stringP8LexStateiP7SemInfo(%struct.LexState* %383, i32 %386, %union.anon* %387)
+ store i32 286, i32* %1
+ br label %596
+
+; <label>:388 ; preds = %8
+ %389 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %390 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %391 = getelementptr inbounds %struct.LexState* %390, i32 0, i32 0 ; [#uses=1]
+ %392 = load i32* %391, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %389, i32 %392)
+ %393 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %394 = getelementptr inbounds %struct.LexState* %393, i32 0, i32 7 ; [#uses=1]
+ %395 = load %struct.Zio** %394, align 4 ; [#uses=1]
+ %396 = getelementptr inbounds %struct.Zio* %395, i32 0, i32 0 ; [#uses=2]
+ %397 = load i32* %396, align 4 ; [#uses=2]
+ %398 = add i32 %397, -1 ; [#uses=1]
+ store i32 %398, i32* %396, align 4
+ %399 = icmp ugt i32 %397, 0 ; [#uses=1]
+ br i1 %399, label %400, label %409
+
+; <label>:400 ; preds = %388
+ %401 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %402 = getelementptr inbounds %struct.LexState* %401, i32 0, i32 7 ; [#uses=1]
+ %403 = load %struct.Zio** %402, align 4 ; [#uses=1]
+ %404 = getelementptr inbounds %struct.Zio* %403, i32 0, i32 1 ; [#uses=2]
+ %405 = load i8** %404, align 4 ; [#uses=2]
+ %406 = getelementptr inbounds i8* %405, i32 1 ; [#uses=1]
+ store i8* %406, i8** %404, align 4
+ %407 = load i8* %405 ; [#uses=1]
+ %408 = zext i8 %407 to i32 ; [#uses=1]
+ br label %414
+
+; <label>:409 ; preds = %388
+ %410 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %411 = getelementptr inbounds %struct.LexState* %410, i32 0, i32 7 ; [#uses=1]
+ %412 = load %struct.Zio** %411, align 4 ; [#uses=1]
+ %413 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %412) ; [#uses=1]
+ br label %414
+
+; <label>:414 ; preds = %409, %400
+ %415 = phi i32 [ %408, %400 ], [ %413, %409 ] ; [#uses=1]
+ %416 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %417 = getelementptr inbounds %struct.LexState* %416, i32 0, i32 0 ; [#uses=1]
+ store i32 %415, i32* %417, align 4
+ %418 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %419 = call i32 @_Z10check_nextP8LexStatePKc(%struct.LexState* %418, i8* getelementptr inbounds ([2 x i8]* @.str36, i32 0, i32 0)) ; [#uses=1]
+ %420 = icmp ne i32 %419, 0 ; [#uses=1]
+ br i1 %420, label %421, label %427
+
+; <label>:421 ; preds = %414
+ %422 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %423 = call i32 @_Z10check_nextP8LexStatePKc(%struct.LexState* %422, i8* getelementptr inbounds ([2 x i8]* @.str36, i32 0, i32 0)) ; [#uses=1]
+ %424 = icmp ne i32 %423, 0 ; [#uses=1]
+ br i1 %424, label %425, label %426
+
+; <label>:425 ; preds = %421
+ store i32 279, i32* %1
+ br label %596
+
+; <label>:426 ; preds = %421
+ store i32 278, i32* %1
+ br label %596
+
+; <label>:427 ; preds = %414
+ %428 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %429 = getelementptr inbounds %struct.LexState* %428, i32 0, i32 0 ; [#uses=1]
+ %430 = load i32* %429, align 4 ; [#uses=1]
+ %431 = call i32 @isdigit(i32 %430) nounwind ; [#uses=1]
+ %432 = icmp ne i32 %431, 0 ; [#uses=1]
+ br i1 %432, label %434, label %433
+
+; <label>:433 ; preds = %427
+ store i32 46, i32* %1
+ br label %596
+
+; <label>:434 ; preds = %427
+ %435 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %436 = load %union.anon** %3, align 4 ; [#uses=1]
+ call void @_Z12read_numeralP8LexStateP7SemInfo(%struct.LexState* %435, %union.anon* %436)
+ store i32 284, i32* %1
+ br label %596
+
+; <label>:437 ; preds = %8
+ store i32 287, i32* %1
+ br label %596
+
+; <label>:438 ; preds = %8
+ %439 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %440 = getelementptr inbounds %struct.LexState* %439, i32 0, i32 0 ; [#uses=1]
+ %441 = load i32* %440, align 4 ; [#uses=1]
+ %442 = call i32 @isspace(i32 %441) nounwind ; [#uses=1]
+ %443 = icmp ne i32 %442, 0 ; [#uses=1]
+ br i1 %443, label %444, label %470
+
+; <label>:444 ; preds = %438
+ %445 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %446 = getelementptr inbounds %struct.LexState* %445, i32 0, i32 7 ; [#uses=1]
+ %447 = load %struct.Zio** %446, align 4 ; [#uses=1]
+ %448 = getelementptr inbounds %struct.Zio* %447, i32 0, i32 0 ; [#uses=2]
+ %449 = load i32* %448, align 4 ; [#uses=2]
+ %450 = add i32 %449, -1 ; [#uses=1]
+ store i32 %450, i32* %448, align 4
+ %451 = icmp ugt i32 %449, 0 ; [#uses=1]
+ br i1 %451, label %452, label %461
+
+; <label>:452 ; preds = %444
+ %453 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %454 = getelementptr inbounds %struct.LexState* %453, i32 0, i32 7 ; [#uses=1]
+ %455 = load %struct.Zio** %454, align 4 ; [#uses=1]
+ %456 = getelementptr inbounds %struct.Zio* %455, i32 0, i32 1 ; [#uses=2]
+ %457 = load i8** %456, align 4 ; [#uses=2]
+ %458 = getelementptr inbounds i8* %457, i32 1 ; [#uses=1]
+ store i8* %458, i8** %456, align 4
+ %459 = load i8* %457 ; [#uses=1]
+ %460 = zext i8 %459 to i32 ; [#uses=1]
+ br label %466
+
+; <label>:461 ; preds = %444
+ %462 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %463 = getelementptr inbounds %struct.LexState* %462, i32 0, i32 7 ; [#uses=1]
+ %464 = load %struct.Zio** %463, align 4 ; [#uses=1]
+ %465 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %464) ; [#uses=1]
+ br label %466
+
+; <label>:466 ; preds = %461, %452
+ %467 = phi i32 [ %460, %452 ], [ %465, %461 ] ; [#uses=1]
+ %468 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %469 = getelementptr inbounds %struct.LexState* %468, i32 0, i32 0 ; [#uses=1]
+ store i32 %467, i32* %469, align 4
+ br label %8
+
+; <label>:470 ; preds = %438
+ %471 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %472 = getelementptr inbounds %struct.LexState* %471, i32 0, i32 0 ; [#uses=1]
+ %473 = load i32* %472, align 4 ; [#uses=1]
+ %474 = call i32 @isdigit(i32 %473) nounwind ; [#uses=1]
+ %475 = icmp ne i32 %474, 0 ; [#uses=1]
+ br i1 %475, label %476, label %479
+
+; <label>:476 ; preds = %470
+ %477 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %478 = load %union.anon** %3, align 4 ; [#uses=1]
+ call void @_Z12read_numeralP8LexStateP7SemInfo(%struct.LexState* %477, %union.anon* %478)
+ store i32 284, i32* %1
+ br label %596
+
+; <label>:479 ; preds = %470
+ %480 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %481 = getelementptr inbounds %struct.LexState* %480, i32 0, i32 0 ; [#uses=1]
+ %482 = load i32* %481, align 4 ; [#uses=1]
+ %483 = call i32 @isalpha(i32 %482) nounwind ; [#uses=1]
+ %484 = icmp ne i32 %483, 0 ; [#uses=1]
+ br i1 %484, label %490, label %485
+
+; <label>:485 ; preds = %479
+ %486 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %487 = getelementptr inbounds %struct.LexState* %486, i32 0, i32 0 ; [#uses=1]
+ %488 = load i32* %487, align 4 ; [#uses=1]
+ %489 = icmp eq i32 %488, 95 ; [#uses=1]
+ br i1 %489, label %490, label %566
+
+; <label>:490 ; preds = %485, %479
+ br label %491
+
+; <label>:491 ; preds = %532, %490
+ %492 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %493 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %494 = getelementptr inbounds %struct.LexState* %493, i32 0, i32 0 ; [#uses=1]
+ %495 = load i32* %494, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %492, i32 %495)
+ %496 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %497 = getelementptr inbounds %struct.LexState* %496, i32 0, i32 7 ; [#uses=1]
+ %498 = load %struct.Zio** %497, align 4 ; [#uses=1]
+ %499 = getelementptr inbounds %struct.Zio* %498, i32 0, i32 0 ; [#uses=2]
+ %500 = load i32* %499, align 4 ; [#uses=2]
+ %501 = add i32 %500, -1 ; [#uses=1]
+ store i32 %501, i32* %499, align 4
+ %502 = icmp ugt i32 %500, 0 ; [#uses=1]
+ br i1 %502, label %503, label %512
+
+; <label>:503 ; preds = %491
+ %504 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %505 = getelementptr inbounds %struct.LexState* %504, i32 0, i32 7 ; [#uses=1]
+ %506 = load %struct.Zio** %505, align 4 ; [#uses=1]
+ %507 = getelementptr inbounds %struct.Zio* %506, i32 0, i32 1 ; [#uses=2]
+ %508 = load i8** %507, align 4 ; [#uses=2]
+ %509 = getelementptr inbounds i8* %508, i32 1 ; [#uses=1]
+ store i8* %509, i8** %507, align 4
+ %510 = load i8* %508 ; [#uses=1]
+ %511 = zext i8 %510 to i32 ; [#uses=1]
+ br label %517
+
+; <label>:512 ; preds = %491
+ %513 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %514 = getelementptr inbounds %struct.LexState* %513, i32 0, i32 7 ; [#uses=1]
+ %515 = load %struct.Zio** %514, align 4 ; [#uses=1]
+ %516 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %515) ; [#uses=1]
+ br label %517
+
+; <label>:517 ; preds = %512, %503
+ %518 = phi i32 [ %511, %503 ], [ %516, %512 ] ; [#uses=1]
+ %519 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %520 = getelementptr inbounds %struct.LexState* %519, i32 0, i32 0 ; [#uses=1]
+ store i32 %518, i32* %520, align 4
+ br label %521
+
+; <label>:521 ; preds = %517
+ %522 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %523 = getelementptr inbounds %struct.LexState* %522, i32 0, i32 0 ; [#uses=1]
+ %524 = load i32* %523, align 4 ; [#uses=1]
+ %525 = call i32 @isalnum(i32 %524) nounwind ; [#uses=1]
+ %526 = icmp ne i32 %525, 0 ; [#uses=1]
+ br i1 %526, label %532, label %527
+
+; <label>:527 ; preds = %521
+ %528 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %529 = getelementptr inbounds %struct.LexState* %528, i32 0, i32 0 ; [#uses=1]
+ %530 = load i32* %529, align 4 ; [#uses=1]
+ %531 = icmp eq i32 %530, 95 ; [#uses=1]
+ br label %532
+
+; <label>:532 ; preds = %527, %521
+ %533 = phi i1 [ true, %521 ], [ %531, %527 ] ; [#uses=1]
+ br i1 %533, label %491, label %534
+
+; <label>:534 ; preds = %532
+ %535 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %536 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %537 = getelementptr inbounds %struct.LexState* %536, i32 0, i32 8 ; [#uses=1]
+ %538 = load %struct.Mbuffer** %537, align 4 ; [#uses=1]
+ %539 = getelementptr inbounds %struct.Mbuffer* %538, i32 0, i32 0 ; [#uses=1]
+ %540 = load i8** %539, align 4 ; [#uses=1]
+ %541 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %542 = getelementptr inbounds %struct.LexState* %541, i32 0, i32 8 ; [#uses=1]
+ %543 = load %struct.Mbuffer** %542, align 4 ; [#uses=1]
+ %544 = getelementptr inbounds %struct.Mbuffer* %543, i32 0, i32 1 ; [#uses=1]
+ %545 = load i32* %544, align 4 ; [#uses=1]
+ %546 = call %union.TString* @_Z14luaX_newstringP8LexStatePKcj(%struct.LexState* %535, i8* %540, i32 %545) ; [#uses=1]
+ store %union.TString* %546, %union.TString** %ts, align 4
+ %547 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %548 = getelementptr inbounds %union.TString* %547, i32 0, i32 0 ; [#uses=1]
+ %549 = getelementptr inbounds %struct.anon* %548, i32 0, i32 3 ; [#uses=1]
+ %550 = load i8* %549, align 1 ; [#uses=1]
+ %551 = zext i8 %550 to i32 ; [#uses=1]
+ %552 = icmp sgt i32 %551, 0 ; [#uses=1]
+ br i1 %552, label %553, label %561
+
+; <label>:553 ; preds = %534
+ %554 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %555 = getelementptr inbounds %union.TString* %554, i32 0, i32 0 ; [#uses=1]
+ %556 = getelementptr inbounds %struct.anon* %555, i32 0, i32 3 ; [#uses=1]
+ %557 = load i8* %556, align 1 ; [#uses=1]
+ %558 = zext i8 %557 to i32 ; [#uses=1]
+ %559 = sub nsw i32 %558, 1 ; [#uses=1]
+ %560 = add nsw i32 %559, 257 ; [#uses=1]
+ store i32 %560, i32* %1
+ br label %596
+
+; <label>:561 ; preds = %534
+ %562 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %563 = load %union.anon** %3, align 4 ; [#uses=1]
+ %564 = getelementptr inbounds %union.anon* %563, i32 0, i32 0 ; [#uses=1]
+ %565 = bitcast double* %564 to %union.TString** ; [#uses=1]
+ store %union.TString* %562, %union.TString** %565, align 4
+ store i32 285, i32* %1
+ br label %596
+
+; <label>:566 ; preds = %485
+ %567 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %568 = getelementptr inbounds %struct.LexState* %567, i32 0, i32 0 ; [#uses=1]
+ %569 = load i32* %568, align 4 ; [#uses=1]
+ store i32 %569, i32* %c, align 4
+ %570 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %571 = getelementptr inbounds %struct.LexState* %570, i32 0, i32 7 ; [#uses=1]
+ %572 = load %struct.Zio** %571, align 4 ; [#uses=1]
+ %573 = getelementptr inbounds %struct.Zio* %572, i32 0, i32 0 ; [#uses=2]
+ %574 = load i32* %573, align 4 ; [#uses=2]
+ %575 = add i32 %574, -1 ; [#uses=1]
+ store i32 %575, i32* %573, align 4
+ %576 = icmp ugt i32 %574, 0 ; [#uses=1]
+ br i1 %576, label %577, label %586
+
+; <label>:577 ; preds = %566
+ %578 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %579 = getelementptr inbounds %struct.LexState* %578, i32 0, i32 7 ; [#uses=1]
+ %580 = load %struct.Zio** %579, align 4 ; [#uses=1]
+ %581 = getelementptr inbounds %struct.Zio* %580, i32 0, i32 1 ; [#uses=2]
+ %582 = load i8** %581, align 4 ; [#uses=2]
+ %583 = getelementptr inbounds i8* %582, i32 1 ; [#uses=1]
+ store i8* %583, i8** %581, align 4
+ %584 = load i8* %582 ; [#uses=1]
+ %585 = zext i8 %584 to i32 ; [#uses=1]
+ br label %591
+
+; <label>:586 ; preds = %566
+ %587 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %588 = getelementptr inbounds %struct.LexState* %587, i32 0, i32 7 ; [#uses=1]
+ %589 = load %struct.Zio** %588, align 4 ; [#uses=1]
+ %590 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %589) ; [#uses=1]
+ br label %591
+
+; <label>:591 ; preds = %586, %577
+ %592 = phi i32 [ %585, %577 ], [ %590, %586 ] ; [#uses=1]
+ %593 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %594 = getelementptr inbounds %struct.LexState* %593, i32 0, i32 0 ; [#uses=1]
+ store i32 %592, i32* %594, align 4
+ %595 = load i32* %c, align 4 ; [#uses=1]
+ store i32 %595, i32* %1
+ br label %596
+
+; <label>:596 ; preds = %591, %561, %553, %476, %437, %434, %433, %426, %425, %382, %378, %355, %321, %298, %264, %241, %207, %184, %149, %142, %44
+ %597 = load i32* %1 ; [#uses=1]
+ ret i32 %597
+}
+
+; [#uses=1]
+define hidden void @_Z14luaX_lookaheadP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=4]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.Token* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = call i32 @_Z4llexP8LexStateP7SemInfo(%struct.LexState* %2, %union.anon* %5) ; [#uses=1]
+ %7 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.LexState* %7, i32 0, i32 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.Token* %8, i32 0, i32 0 ; [#uses=1]
+ store i32 %6, i32* %9, align 4
+ ret void
+}
+
+; [#uses=4]
+define internal void @_Z13inclinenumberP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=15]
+ %old = alloca i32, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.LexState* %2, i32 0, i32 0 ; [#uses=1]
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ store i32 %4, i32* %old, align 4
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LexState* %5, i32 0, i32 7 ; [#uses=1]
+ %7 = load %struct.Zio** %6, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.Zio* %7, i32 0, i32 0 ; [#uses=2]
+ %9 = load i32* %8, align 4 ; [#uses=2]
+ %10 = add i32 %9, -1 ; [#uses=1]
+ store i32 %10, i32* %8, align 4
+ %11 = icmp ugt i32 %9, 0 ; [#uses=1]
+ br i1 %11, label %12, label %21
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.LexState* %13, i32 0, i32 7 ; [#uses=1]
+ %15 = load %struct.Zio** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.Zio* %15, i32 0, i32 1 ; [#uses=2]
+ %17 = load i8** %16, align 4 ; [#uses=2]
+ %18 = getelementptr inbounds i8* %17, i32 1 ; [#uses=1]
+ store i8* %18, i8** %16, align 4
+ %19 = load i8* %17 ; [#uses=1]
+ %20 = zext i8 %19 to i32 ; [#uses=1]
+ br label %26
+
+; <label>:21 ; preds = %0
+ %22 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.LexState* %22, i32 0, i32 7 ; [#uses=1]
+ %24 = load %struct.Zio** %23, align 4 ; [#uses=1]
+ %25 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %24) ; [#uses=1]
+ br label %26
+
+; <label>:26 ; preds = %21, %12
+ %27 = phi i32 [ %20, %12 ], [ %25, %21 ] ; [#uses=1]
+ %28 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.LexState* %28, i32 0, i32 0 ; [#uses=1]
+ store i32 %27, i32* %29, align 4
+ %30 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.LexState* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = load i32* %31, align 4 ; [#uses=1]
+ %33 = icmp eq i32 %32, 10 ; [#uses=1]
+ br i1 %33, label %39, label %34
+
+; <label>:34 ; preds = %26
+ %35 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.LexState* %35, i32 0, i32 0 ; [#uses=1]
+ %37 = load i32* %36, align 4 ; [#uses=1]
+ %38 = icmp eq i32 %37, 13 ; [#uses=1]
+ br i1 %38, label %39, label %71
+
+; <label>:39 ; preds = %34, %26
+ %40 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.LexState* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = load i32* %41, align 4 ; [#uses=1]
+ %43 = load i32* %old, align 4 ; [#uses=1]
+ %44 = icmp ne i32 %42, %43 ; [#uses=1]
+ br i1 %44, label %45, label %71
+
+; <label>:45 ; preds = %39
+ %46 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.LexState* %46, i32 0, i32 7 ; [#uses=1]
+ %48 = load %struct.Zio** %47, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.Zio* %48, i32 0, i32 0 ; [#uses=2]
+ %50 = load i32* %49, align 4 ; [#uses=2]
+ %51 = add i32 %50, -1 ; [#uses=1]
+ store i32 %51, i32* %49, align 4
+ %52 = icmp ugt i32 %50, 0 ; [#uses=1]
+ br i1 %52, label %53, label %62
+
+; <label>:53 ; preds = %45
+ %54 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.LexState* %54, i32 0, i32 7 ; [#uses=1]
+ %56 = load %struct.Zio** %55, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.Zio* %56, i32 0, i32 1 ; [#uses=2]
+ %58 = load i8** %57, align 4 ; [#uses=2]
+ %59 = getelementptr inbounds i8* %58, i32 1 ; [#uses=1]
+ store i8* %59, i8** %57, align 4
+ %60 = load i8* %58 ; [#uses=1]
+ %61 = zext i8 %60 to i32 ; [#uses=1]
+ br label %67
+
+; <label>:62 ; preds = %45
+ %63 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.LexState* %63, i32 0, i32 7 ; [#uses=1]
+ %65 = load %struct.Zio** %64, align 4 ; [#uses=1]
+ %66 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %65) ; [#uses=1]
+ br label %67
+
+; <label>:67 ; preds = %62, %53
+ %68 = phi i32 [ %61, %53 ], [ %66, %62 ] ; [#uses=1]
+ %69 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.LexState* %69, i32 0, i32 0 ; [#uses=1]
+ store i32 %68, i32* %70, align 4
+ br label %71
+
+; <label>:71 ; preds = %67, %39, %34
+ %72 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.LexState* %72, i32 0, i32 1 ; [#uses=2]
+ %74 = load i32* %73, align 4 ; [#uses=1]
+ %75 = add nsw i32 %74, 1 ; [#uses=2]
+ store i32 %75, i32* %73, align 4
+ %76 = icmp sge i32 %75, 2147483645 ; [#uses=1]
+ br i1 %76, label %77, label %79
+
+; <label>:77 ; preds = %71
+ %78 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z16luaX_syntaxerrorP8LexStatePKc(%struct.LexState* %78, i8* getelementptr inbounds ([25 x i8]* @.str46, i32 0, i32 0))
+ br label %79
+
+; <label>:79 ; preds = %77, %71
+ ret void
+}
+
+; [#uses=4]
+define internal i32 @_Z8skip_sepP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=16]
+ %count = alloca i32, align 4 ; [#uses=5]
+ %s = alloca i32, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 0, i32* %count, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.LexState* %2, i32 0, i32 0 ; [#uses=1]
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ store i32 %4, i32* %s, align 4
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.LexState* %6, i32 0, i32 0 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %5, i32 %8)
+ %9 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.LexState* %9, i32 0, i32 7 ; [#uses=1]
+ %11 = load %struct.Zio** %10, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.Zio* %11, i32 0, i32 0 ; [#uses=2]
+ %13 = load i32* %12, align 4 ; [#uses=2]
+ %14 = add i32 %13, -1 ; [#uses=1]
+ store i32 %14, i32* %12, align 4
+ %15 = icmp ugt i32 %13, 0 ; [#uses=1]
+ br i1 %15, label %16, label %25
+
+; <label>:16 ; preds = %0
+ %17 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.LexState* %17, i32 0, i32 7 ; [#uses=1]
+ %19 = load %struct.Zio** %18, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.Zio* %19, i32 0, i32 1 ; [#uses=2]
+ %21 = load i8** %20, align 4 ; [#uses=2]
+ %22 = getelementptr inbounds i8* %21, i32 1 ; [#uses=1]
+ store i8* %22, i8** %20, align 4
+ %23 = load i8* %21 ; [#uses=1]
+ %24 = zext i8 %23 to i32 ; [#uses=1]
+ br label %30
+
+; <label>:25 ; preds = %0
+ %26 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.LexState* %26, i32 0, i32 7 ; [#uses=1]
+ %28 = load %struct.Zio** %27, align 4 ; [#uses=1]
+ %29 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %28) ; [#uses=1]
+ br label %30
+
+; <label>:30 ; preds = %25, %16
+ %31 = phi i32 [ %24, %16 ], [ %29, %25 ] ; [#uses=1]
+ %32 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.LexState* %32, i32 0, i32 0 ; [#uses=1]
+ store i32 %31, i32* %33, align 4
+ br label %34
+
+; <label>:34 ; preds = %65, %30
+ %35 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.LexState* %35, i32 0, i32 0 ; [#uses=1]
+ %37 = load i32* %36, align 4 ; [#uses=1]
+ %38 = icmp eq i32 %37, 61 ; [#uses=1]
+ br i1 %38, label %39, label %71
+
+; <label>:39 ; preds = %34
+ %40 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %41 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.LexState* %41, i32 0, i32 0 ; [#uses=1]
+ %43 = load i32* %42, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %40, i32 %43)
+ %44 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.LexState* %44, i32 0, i32 7 ; [#uses=1]
+ %46 = load %struct.Zio** %45, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.Zio* %46, i32 0, i32 0 ; [#uses=2]
+ %48 = load i32* %47, align 4 ; [#uses=2]
+ %49 = add i32 %48, -1 ; [#uses=1]
+ store i32 %49, i32* %47, align 4
+ %50 = icmp ugt i32 %48, 0 ; [#uses=1]
+ br i1 %50, label %51, label %60
+
+; <label>:51 ; preds = %39
+ %52 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.LexState* %52, i32 0, i32 7 ; [#uses=1]
+ %54 = load %struct.Zio** %53, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.Zio* %54, i32 0, i32 1 ; [#uses=2]
+ %56 = load i8** %55, align 4 ; [#uses=2]
+ %57 = getelementptr inbounds i8* %56, i32 1 ; [#uses=1]
+ store i8* %57, i8** %55, align 4
+ %58 = load i8* %56 ; [#uses=1]
+ %59 = zext i8 %58 to i32 ; [#uses=1]
+ br label %65
+
+; <label>:60 ; preds = %39
+ %61 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds %struct.LexState* %61, i32 0, i32 7 ; [#uses=1]
+ %63 = load %struct.Zio** %62, align 4 ; [#uses=1]
+ %64 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %63) ; [#uses=1]
+ br label %65
+
+; <label>:65 ; preds = %60, %51
+ %66 = phi i32 [ %59, %51 ], [ %64, %60 ] ; [#uses=1]
+ %67 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.LexState* %67, i32 0, i32 0 ; [#uses=1]
+ store i32 %66, i32* %68, align 4
+ %69 = load i32* %count, align 4 ; [#uses=1]
+ %70 = add nsw i32 %69, 1 ; [#uses=1]
+ store i32 %70, i32* %count, align 4
+ br label %34
+
+; <label>:71 ; preds = %34
+ %72 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.LexState* %72, i32 0, i32 0 ; [#uses=1]
+ %74 = load i32* %73, align 4 ; [#uses=1]
+ %75 = load i32* %s, align 4 ; [#uses=1]
+ %76 = icmp eq i32 %74, %75 ; [#uses=1]
+ br i1 %76, label %77, label %79
+
+; <label>:77 ; preds = %71
+ %78 = load i32* %count, align 4 ; [#uses=1]
+ br label %83
+
+; <label>:79 ; preds = %71
+ %80 = load i32* %count, align 4 ; [#uses=1]
+ %81 = sub nsw i32 0, %80 ; [#uses=1]
+ %82 = sub nsw i32 %81, 1 ; [#uses=1]
+ br label %83
+
+; <label>:83 ; preds = %79, %77
+ %84 = phi i32 [ %78, %77 ], [ %82, %79 ] ; [#uses=1]
+ ret i32 %84
+}
+
+; [#uses=2]
+define internal void @_Z16read_long_stringP8LexStateP7SemInfoi(%struct.LexState* %ls, %union.anon* %seminfo, i32 %sep) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=43]
+ %2 = alloca %union.anon*, align 4 ; [#uses=6]
+ %3 = alloca i32, align 4 ; [#uses=6]
+ %cont = alloca i32, align 4 ; [#uses=3]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %union.anon* %seminfo, %union.anon** %2, align 4
+ store i32 %sep, i32* %3, align 4
+ store i32 0, i32* %cont, align 4
+ %4 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LexState* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %4, i32 %7)
+ %8 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.LexState* %8, i32 0, i32 7 ; [#uses=1]
+ %10 = load %struct.Zio** %9, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Zio* %10, i32 0, i32 0 ; [#uses=2]
+ %12 = load i32* %11, align 4 ; [#uses=2]
+ %13 = add i32 %12, -1 ; [#uses=1]
+ store i32 %13, i32* %11, align 4
+ %14 = icmp ugt i32 %12, 0 ; [#uses=1]
+ br i1 %14, label %15, label %24
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.LexState* %16, i32 0, i32 7 ; [#uses=1]
+ %18 = load %struct.Zio** %17, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.Zio* %18, i32 0, i32 1 ; [#uses=2]
+ %20 = load i8** %19, align 4 ; [#uses=2]
+ %21 = getelementptr inbounds i8* %20, i32 1 ; [#uses=1]
+ store i8* %21, i8** %19, align 4
+ %22 = load i8* %20 ; [#uses=1]
+ %23 = zext i8 %22 to i32 ; [#uses=1]
+ br label %29
+
+; <label>:24 ; preds = %0
+ %25 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.LexState* %25, i32 0, i32 7 ; [#uses=1]
+ %27 = load %struct.Zio** %26, align 4 ; [#uses=1]
+ %28 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %27) ; [#uses=1]
+ br label %29
+
+; <label>:29 ; preds = %24, %15
+ %30 = phi i32 [ %23, %15 ], [ %28, %24 ] ; [#uses=1]
+ %31 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.LexState* %31, i32 0, i32 0 ; [#uses=1]
+ store i32 %30, i32* %32, align 4
+ %33 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.LexState* %33, i32 0, i32 0 ; [#uses=1]
+ %35 = load i32* %34, align 4 ; [#uses=1]
+ %36 = icmp eq i32 %35, 10 ; [#uses=1]
+ br i1 %36, label %42, label %37
+
+; <label>:37 ; preds = %29
+ %38 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.LexState* %38, i32 0, i32 0 ; [#uses=1]
+ %40 = load i32* %39, align 4 ; [#uses=1]
+ %41 = icmp eq i32 %40, 13 ; [#uses=1]
+ br i1 %41, label %42, label %44
+
+; <label>:42 ; preds = %37, %29
+ %43 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z13inclinenumberP8LexState(%struct.LexState* %43)
+ br label %44
+
+; <label>:44 ; preds = %42, %37
+ br label %45
+
+; <label>:45 ; preds = %207, %44
+ %46 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.LexState* %46, i32 0, i32 0 ; [#uses=1]
+ %48 = load i32* %47, align 4 ; [#uses=1]
+ switch i32 %48, label %147 [
+ i32 -1, label %49
+ i32 91, label %57
+ i32 93, label %100
+ i32 10, label %136
+ i32 13, label %136
+ ]
+
+; <label>:49 ; preds = %45
+ %50 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %51 = load %union.anon** %2, align 4 ; [#uses=1]
+ %52 = icmp ne %union.anon* %51, null ; [#uses=1]
+ br i1 %52, label %53, label %54
+
+; <label>:53 ; preds = %49
+ br label %55
+
+; <label>:54 ; preds = %49
+ br label %55
+
+; <label>:55 ; preds = %54, %53
+ %56 = phi i8* [ getelementptr inbounds ([23 x i8]* @.str43, i32 0, i32 0), %53 ], [ getelementptr inbounds ([24 x i8]* @.str44, i32 0, i32 0), %54 ] ; [#uses=1]
+ call void @_Z13luaX_lexerrorP8LexStatePKci(%struct.LexState* %50, i8* %56, i32 287)
+ br label %207
+
+; <label>:57 ; preds = %45
+ %58 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %59 = call i32 @_Z8skip_sepP8LexState(%struct.LexState* %58) ; [#uses=1]
+ %60 = load i32* %3, align 4 ; [#uses=1]
+ %61 = icmp eq i32 %59, %60 ; [#uses=1]
+ br i1 %61, label %62, label %99
+
+; <label>:62 ; preds = %57
+ %63 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %64 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %struct.LexState* %64, i32 0, i32 0 ; [#uses=1]
+ %66 = load i32* %65, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %63, i32 %66)
+ %67 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.LexState* %67, i32 0, i32 7 ; [#uses=1]
+ %69 = load %struct.Zio** %68, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.Zio* %69, i32 0, i32 0 ; [#uses=2]
+ %71 = load i32* %70, align 4 ; [#uses=2]
+ %72 = add i32 %71, -1 ; [#uses=1]
+ store i32 %72, i32* %70, align 4
+ %73 = icmp ugt i32 %71, 0 ; [#uses=1]
+ br i1 %73, label %74, label %83
+
+; <label>:74 ; preds = %62
+ %75 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %76 = getelementptr inbounds %struct.LexState* %75, i32 0, i32 7 ; [#uses=1]
+ %77 = load %struct.Zio** %76, align 4 ; [#uses=1]
+ %78 = getelementptr inbounds %struct.Zio* %77, i32 0, i32 1 ; [#uses=2]
+ %79 = load i8** %78, align 4 ; [#uses=2]
+ %80 = getelementptr inbounds i8* %79, i32 1 ; [#uses=1]
+ store i8* %80, i8** %78, align 4
+ %81 = load i8* %79 ; [#uses=1]
+ %82 = zext i8 %81 to i32 ; [#uses=1]
+ br label %88
+
+; <label>:83 ; preds = %62
+ %84 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %struct.LexState* %84, i32 0, i32 7 ; [#uses=1]
+ %86 = load %struct.Zio** %85, align 4 ; [#uses=1]
+ %87 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %86) ; [#uses=1]
+ br label %88
+
+; <label>:88 ; preds = %83, %74
+ %89 = phi i32 [ %82, %74 ], [ %87, %83 ] ; [#uses=1]
+ %90 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %91 = getelementptr inbounds %struct.LexState* %90, i32 0, i32 0 ; [#uses=1]
+ store i32 %89, i32* %91, align 4
+ %92 = load i32* %cont, align 4 ; [#uses=1]
+ %93 = add nsw i32 %92, 1 ; [#uses=1]
+ store i32 %93, i32* %cont, align 4
+ %94 = load i32* %3, align 4 ; [#uses=1]
+ %95 = icmp eq i32 %94, 0 ; [#uses=1]
+ br i1 %95, label %96, label %98
+
+; <label>:96 ; preds = %88
+ %97 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z13luaX_lexerrorP8LexStatePKci(%struct.LexState* %97, i8* getelementptr inbounds ([33 x i8]* @.str45, i32 0, i32 0), i32 91)
+ br label %98
+
+; <label>:98 ; preds = %96, %88
+ br label %99
+
+; <label>:99 ; preds = %98, %57
+ br label %207
+
+; <label>:100 ; preds = %45
+ %101 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %102 = call i32 @_Z8skip_sepP8LexState(%struct.LexState* %101) ; [#uses=1]
+ %103 = load i32* %3, align 4 ; [#uses=1]
+ %104 = icmp eq i32 %102, %103 ; [#uses=1]
+ br i1 %104, label %105, label %135
+
+; <label>:105 ; preds = %100
+ %106 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %107 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %108 = getelementptr inbounds %struct.LexState* %107, i32 0, i32 0 ; [#uses=1]
+ %109 = load i32* %108, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %106, i32 %109)
+ %110 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %111 = getelementptr inbounds %struct.LexState* %110, i32 0, i32 7 ; [#uses=1]
+ %112 = load %struct.Zio** %111, align 4 ; [#uses=1]
+ %113 = getelementptr inbounds %struct.Zio* %112, i32 0, i32 0 ; [#uses=2]
+ %114 = load i32* %113, align 4 ; [#uses=2]
+ %115 = add i32 %114, -1 ; [#uses=1]
+ store i32 %115, i32* %113, align 4
+ %116 = icmp ugt i32 %114, 0 ; [#uses=1]
+ br i1 %116, label %117, label %126
+
+; <label>:117 ; preds = %105
+ %118 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %119 = getelementptr inbounds %struct.LexState* %118, i32 0, i32 7 ; [#uses=1]
+ %120 = load %struct.Zio** %119, align 4 ; [#uses=1]
+ %121 = getelementptr inbounds %struct.Zio* %120, i32 0, i32 1 ; [#uses=2]
+ %122 = load i8** %121, align 4 ; [#uses=2]
+ %123 = getelementptr inbounds i8* %122, i32 1 ; [#uses=1]
+ store i8* %123, i8** %121, align 4
+ %124 = load i8* %122 ; [#uses=1]
+ %125 = zext i8 %124 to i32 ; [#uses=1]
+ br label %131
+
+; <label>:126 ; preds = %105
+ %127 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %128 = getelementptr inbounds %struct.LexState* %127, i32 0, i32 7 ; [#uses=1]
+ %129 = load %struct.Zio** %128, align 4 ; [#uses=1]
+ %130 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %129) ; [#uses=1]
+ br label %131
+
+; <label>:131 ; preds = %126, %117
+ %132 = phi i32 [ %125, %117 ], [ %130, %126 ] ; [#uses=1]
+ %133 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %134 = getelementptr inbounds %struct.LexState* %133, i32 0, i32 0 ; [#uses=1]
+ store i32 %132, i32* %134, align 4
+ br label %208
+
+; <label>:135 ; preds = %100
+ br label %207
+
+; <label>:136 ; preds = %45, %45
+ %137 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %137, i32 10)
+ %138 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z13inclinenumberP8LexState(%struct.LexState* %138)
+ %139 = load %union.anon** %2, align 4 ; [#uses=1]
+ %140 = icmp ne %union.anon* %139, null ; [#uses=1]
+ br i1 %140, label %146, label %141
+
+; <label>:141 ; preds = %136
+ %142 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %143 = getelementptr inbounds %struct.LexState* %142, i32 0, i32 8 ; [#uses=1]
+ %144 = load %struct.Mbuffer** %143, align 4 ; [#uses=1]
+ %145 = getelementptr inbounds %struct.Mbuffer* %144, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %145, align 4
+ br label %146
+
+; <label>:146 ; preds = %141, %136
+ br label %207
+
+; <label>:147 ; preds = %45
+ %148 = load %union.anon** %2, align 4 ; [#uses=1]
+ %149 = icmp ne %union.anon* %148, null ; [#uses=1]
+ br i1 %149, label %150, label %180
+
+; <label>:150 ; preds = %147
+ %151 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %152 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %153 = getelementptr inbounds %struct.LexState* %152, i32 0, i32 0 ; [#uses=1]
+ %154 = load i32* %153, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %151, i32 %154)
+ %155 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %156 = getelementptr inbounds %struct.LexState* %155, i32 0, i32 7 ; [#uses=1]
+ %157 = load %struct.Zio** %156, align 4 ; [#uses=1]
+ %158 = getelementptr inbounds %struct.Zio* %157, i32 0, i32 0 ; [#uses=2]
+ %159 = load i32* %158, align 4 ; [#uses=2]
+ %160 = add i32 %159, -1 ; [#uses=1]
+ store i32 %160, i32* %158, align 4
+ %161 = icmp ugt i32 %159, 0 ; [#uses=1]
+ br i1 %161, label %162, label %171
+
+; <label>:162 ; preds = %150
+ %163 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %164 = getelementptr inbounds %struct.LexState* %163, i32 0, i32 7 ; [#uses=1]
+ %165 = load %struct.Zio** %164, align 4 ; [#uses=1]
+ %166 = getelementptr inbounds %struct.Zio* %165, i32 0, i32 1 ; [#uses=2]
+ %167 = load i8** %166, align 4 ; [#uses=2]
+ %168 = getelementptr inbounds i8* %167, i32 1 ; [#uses=1]
+ store i8* %168, i8** %166, align 4
+ %169 = load i8* %167 ; [#uses=1]
+ %170 = zext i8 %169 to i32 ; [#uses=1]
+ br label %176
+
+; <label>:171 ; preds = %150
+ %172 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %173 = getelementptr inbounds %struct.LexState* %172, i32 0, i32 7 ; [#uses=1]
+ %174 = load %struct.Zio** %173, align 4 ; [#uses=1]
+ %175 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %174) ; [#uses=1]
+ br label %176
+
+; <label>:176 ; preds = %171, %162
+ %177 = phi i32 [ %170, %162 ], [ %175, %171 ] ; [#uses=1]
+ %178 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %179 = getelementptr inbounds %struct.LexState* %178, i32 0, i32 0 ; [#uses=1]
+ store i32 %177, i32* %179, align 4
+ br label %206
+
+; <label>:180 ; preds = %147
+ %181 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %182 = getelementptr inbounds %struct.LexState* %181, i32 0, i32 7 ; [#uses=1]
+ %183 = load %struct.Zio** %182, align 4 ; [#uses=1]
+ %184 = getelementptr inbounds %struct.Zio* %183, i32 0, i32 0 ; [#uses=2]
+ %185 = load i32* %184, align 4 ; [#uses=2]
+ %186 = add i32 %185, -1 ; [#uses=1]
+ store i32 %186, i32* %184, align 4
+ %187 = icmp ugt i32 %185, 0 ; [#uses=1]
+ br i1 %187, label %188, label %197
+
+; <label>:188 ; preds = %180
+ %189 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %190 = getelementptr inbounds %struct.LexState* %189, i32 0, i32 7 ; [#uses=1]
+ %191 = load %struct.Zio** %190, align 4 ; [#uses=1]
+ %192 = getelementptr inbounds %struct.Zio* %191, i32 0, i32 1 ; [#uses=2]
+ %193 = load i8** %192, align 4 ; [#uses=2]
+ %194 = getelementptr inbounds i8* %193, i32 1 ; [#uses=1]
+ store i8* %194, i8** %192, align 4
+ %195 = load i8* %193 ; [#uses=1]
+ %196 = zext i8 %195 to i32 ; [#uses=1]
+ br label %202
+
+; <label>:197 ; preds = %180
+ %198 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %199 = getelementptr inbounds %struct.LexState* %198, i32 0, i32 7 ; [#uses=1]
+ %200 = load %struct.Zio** %199, align 4 ; [#uses=1]
+ %201 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %200) ; [#uses=1]
+ br label %202
+
+; <label>:202 ; preds = %197, %188
+ %203 = phi i32 [ %196, %188 ], [ %201, %197 ] ; [#uses=1]
+ %204 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %205 = getelementptr inbounds %struct.LexState* %204, i32 0, i32 0 ; [#uses=1]
+ store i32 %203, i32* %205, align 4
+ br label %206
+
+; <label>:206 ; preds = %202, %176
+ br label %207
+
+; <label>:207 ; preds = %206, %146, %135, %99, %55
+ br label %45
+
+; <label>:208 ; preds = %131
+ %209 = load %union.anon** %2, align 4 ; [#uses=1]
+ %210 = icmp ne %union.anon* %209, null ; [#uses=1]
+ br i1 %210, label %211, label %234
+
+; <label>:211 ; preds = %208
+ %212 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %213 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %214 = getelementptr inbounds %struct.LexState* %213, i32 0, i32 8 ; [#uses=1]
+ %215 = load %struct.Mbuffer** %214, align 4 ; [#uses=1]
+ %216 = getelementptr inbounds %struct.Mbuffer* %215, i32 0, i32 0 ; [#uses=1]
+ %217 = load i8** %216, align 4 ; [#uses=1]
+ %218 = load i32* %3, align 4 ; [#uses=1]
+ %219 = add nsw i32 2, %218 ; [#uses=1]
+ %220 = getelementptr inbounds i8* %217, i32 %219 ; [#uses=1]
+ %221 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %222 = getelementptr inbounds %struct.LexState* %221, i32 0, i32 8 ; [#uses=1]
+ %223 = load %struct.Mbuffer** %222, align 4 ; [#uses=1]
+ %224 = getelementptr inbounds %struct.Mbuffer* %223, i32 0, i32 1 ; [#uses=1]
+ %225 = load i32* %224, align 4 ; [#uses=1]
+ %226 = load i32* %3, align 4 ; [#uses=1]
+ %227 = add nsw i32 2, %226 ; [#uses=1]
+ %228 = mul nsw i32 2, %227 ; [#uses=1]
+ %229 = sub i32 %225, %228 ; [#uses=1]
+ %230 = call %union.TString* @_Z14luaX_newstringP8LexStatePKcj(%struct.LexState* %212, i8* %220, i32 %229) ; [#uses=1]
+ %231 = load %union.anon** %2, align 4 ; [#uses=1]
+ %232 = getelementptr inbounds %union.anon* %231, i32 0, i32 0 ; [#uses=1]
+ %233 = bitcast double* %232 to %union.TString** ; [#uses=1]
+ store %union.TString* %230, %union.TString** %233, align 4
+ br label %234
+
+; <label>:234 ; preds = %211, %208
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z11read_stringP8LexStateiP7SemInfo(%struct.LexState* %ls, i32 %del, %union.anon* %seminfo) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=53]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca %union.anon*, align 4 ; [#uses=2]
+ %c = alloca i32, align 4 ; [#uses=13]
+ %i = alloca i32, align 4 ; [#uses=3]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 %del, i32* %2, align 4
+ store %union.anon* %seminfo, %union.anon** %3, align 4
+ %4 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LexState* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %4, i32 %7)
+ %8 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.LexState* %8, i32 0, i32 7 ; [#uses=1]
+ %10 = load %struct.Zio** %9, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Zio* %10, i32 0, i32 0 ; [#uses=2]
+ %12 = load i32* %11, align 4 ; [#uses=2]
+ %13 = add i32 %12, -1 ; [#uses=1]
+ store i32 %13, i32* %11, align 4
+ %14 = icmp ugt i32 %12, 0 ; [#uses=1]
+ br i1 %14, label %15, label %24
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.LexState* %16, i32 0, i32 7 ; [#uses=1]
+ %18 = load %struct.Zio** %17, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.Zio* %18, i32 0, i32 1 ; [#uses=2]
+ %20 = load i8** %19, align 4 ; [#uses=2]
+ %21 = getelementptr inbounds i8* %20, i32 1 ; [#uses=1]
+ store i8* %21, i8** %19, align 4
+ %22 = load i8* %20 ; [#uses=1]
+ %23 = zext i8 %22 to i32 ; [#uses=1]
+ br label %29
+
+; <label>:24 ; preds = %0
+ %25 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.LexState* %25, i32 0, i32 7 ; [#uses=1]
+ %27 = load %struct.Zio** %26, align 4 ; [#uses=1]
+ %28 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %27) ; [#uses=1]
+ br label %29
+
+; <label>:29 ; preds = %24, %15
+ %30 = phi i32 [ %23, %15 ], [ %28, %24 ] ; [#uses=1]
+ %31 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.LexState* %31, i32 0, i32 0 ; [#uses=1]
+ store i32 %30, i32* %32, align 4
+ br label %33
+
+; <label>:33 ; preds = %236, %202, %177, %86, %83, %45, %43, %29
+ %34 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.LexState* %34, i32 0, i32 0 ; [#uses=1]
+ %36 = load i32* %35, align 4 ; [#uses=1]
+ %37 = load i32* %2, align 4 ; [#uses=1]
+ %38 = icmp ne i32 %36, %37 ; [#uses=1]
+ br i1 %38, label %39, label %237
+
+; <label>:39 ; preds = %33
+ %40 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.LexState* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = load i32* %41, align 4 ; [#uses=1]
+ switch i32 %42, label %206 [
+ i32 -1, label %43
+ i32 10, label %45
+ i32 13, label %45
+ i32 92, label %47
+ ]
+
+; <label>:43 ; preds = %39
+ %44 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z13luaX_lexerrorP8LexStatePKci(%struct.LexState* %44, i8* getelementptr inbounds ([18 x i8]* @.str41, i32 0, i32 0), i32 287)
+ br label %33
+
+; <label>:45 ; preds = %39, %39
+ %46 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z13luaX_lexerrorP8LexStatePKci(%struct.LexState* %46, i8* getelementptr inbounds ([18 x i8]* @.str41, i32 0, i32 0), i32 286)
+ br label %33
+
+; <label>:47 ; preds = %39
+ %48 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.LexState* %48, i32 0, i32 7 ; [#uses=1]
+ %50 = load %struct.Zio** %49, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.Zio* %50, i32 0, i32 0 ; [#uses=2]
+ %52 = load i32* %51, align 4 ; [#uses=2]
+ %53 = add i32 %52, -1 ; [#uses=1]
+ store i32 %53, i32* %51, align 4
+ %54 = icmp ugt i32 %52, 0 ; [#uses=1]
+ br i1 %54, label %55, label %64
+
+; <label>:55 ; preds = %47
+ %56 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.LexState* %56, i32 0, i32 7 ; [#uses=1]
+ %58 = load %struct.Zio** %57, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.Zio* %58, i32 0, i32 1 ; [#uses=2]
+ %60 = load i8** %59, align 4 ; [#uses=2]
+ %61 = getelementptr inbounds i8* %60, i32 1 ; [#uses=1]
+ store i8* %61, i8** %59, align 4
+ %62 = load i8* %60 ; [#uses=1]
+ %63 = zext i8 %62 to i32 ; [#uses=1]
+ br label %69
+
+; <label>:64 ; preds = %47
+ %65 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.LexState* %65, i32 0, i32 7 ; [#uses=1]
+ %67 = load %struct.Zio** %66, align 4 ; [#uses=1]
+ %68 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %67) ; [#uses=1]
+ br label %69
+
+; <label>:69 ; preds = %64, %55
+ %70 = phi i32 [ %63, %55 ], [ %68, %64 ] ; [#uses=1]
+ %71 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.LexState* %71, i32 0, i32 0 ; [#uses=1]
+ store i32 %70, i32* %72, align 4
+ %73 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.LexState* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = load i32* %74, align 4 ; [#uses=1]
+ switch i32 %75, label %87 [
+ i32 97, label %76
+ i32 98, label %77
+ i32 102, label %78
+ i32 110, label %79
+ i32 114, label %80
+ i32 116, label %81
+ i32 118, label %82
+ i32 10, label %83
+ i32 13, label %83
+ i32 -1, label %86
+ ]
+
+; <label>:76 ; preds = %69
+ store i32 7, i32* %c, align 4
+ br label %178
+
+; <label>:77 ; preds = %69
+ store i32 8, i32* %c, align 4
+ br label %178
+
+; <label>:78 ; preds = %69
+ store i32 12, i32* %c, align 4
+ br label %178
+
+; <label>:79 ; preds = %69
+ store i32 10, i32* %c, align 4
+ br label %178
+
+; <label>:80 ; preds = %69
+ store i32 13, i32* %c, align 4
+ br label %178
+
+; <label>:81 ; preds = %69
+ store i32 9, i32* %c, align 4
+ br label %178
+
+; <label>:82 ; preds = %69
+ store i32 11, i32* %c, align 4
+ br label %178
+
+; <label>:83 ; preds = %69, %69
+ %84 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %84, i32 10)
+ %85 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z13inclinenumberP8LexState(%struct.LexState* %85)
+ br label %33
+
+; <label>:86 ; preds = %69
+ br label %33
+
+; <label>:87 ; preds = %69
+ %88 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %89 = getelementptr inbounds %struct.LexState* %88, i32 0, i32 0 ; [#uses=1]
+ %90 = load i32* %89, align 4 ; [#uses=1]
+ %91 = call i32 @isdigit(i32 %90) nounwind ; [#uses=1]
+ %92 = icmp ne i32 %91, 0 ; [#uses=1]
+ br i1 %92, label %123, label %93
+
+; <label>:93 ; preds = %87
+ %94 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %95 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %96 = getelementptr inbounds %struct.LexState* %95, i32 0, i32 0 ; [#uses=1]
+ %97 = load i32* %96, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %94, i32 %97)
+ %98 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %99 = getelementptr inbounds %struct.LexState* %98, i32 0, i32 7 ; [#uses=1]
+ %100 = load %struct.Zio** %99, align 4 ; [#uses=1]
+ %101 = getelementptr inbounds %struct.Zio* %100, i32 0, i32 0 ; [#uses=2]
+ %102 = load i32* %101, align 4 ; [#uses=2]
+ %103 = add i32 %102, -1 ; [#uses=1]
+ store i32 %103, i32* %101, align 4
+ %104 = icmp ugt i32 %102, 0 ; [#uses=1]
+ br i1 %104, label %105, label %114
+
+; <label>:105 ; preds = %93
+ %106 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %107 = getelementptr inbounds %struct.LexState* %106, i32 0, i32 7 ; [#uses=1]
+ %108 = load %struct.Zio** %107, align 4 ; [#uses=1]
+ %109 = getelementptr inbounds %struct.Zio* %108, i32 0, i32 1 ; [#uses=2]
+ %110 = load i8** %109, align 4 ; [#uses=2]
+ %111 = getelementptr inbounds i8* %110, i32 1 ; [#uses=1]
+ store i8* %111, i8** %109, align 4
+ %112 = load i8* %110 ; [#uses=1]
+ %113 = zext i8 %112 to i32 ; [#uses=1]
+ br label %119
+
+; <label>:114 ; preds = %93
+ %115 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %116 = getelementptr inbounds %struct.LexState* %115, i32 0, i32 7 ; [#uses=1]
+ %117 = load %struct.Zio** %116, align 4 ; [#uses=1]
+ %118 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %117) ; [#uses=1]
+ br label %119
+
+; <label>:119 ; preds = %114, %105
+ %120 = phi i32 [ %113, %105 ], [ %118, %114 ] ; [#uses=1]
+ %121 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %122 = getelementptr inbounds %struct.LexState* %121, i32 0, i32 0 ; [#uses=1]
+ store i32 %120, i32* %122, align 4
+ br label %177
+
+; <label>:123 ; preds = %87
+ store i32 0, i32* %i, align 4
+ store i32 0, i32* %c, align 4
+ br label %124
+
+; <label>:124 ; preds = %167, %123
+ %125 = load i32* %c, align 4 ; [#uses=1]
+ %126 = mul nsw i32 10, %125 ; [#uses=1]
+ %127 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %128 = getelementptr inbounds %struct.LexState* %127, i32 0, i32 0 ; [#uses=1]
+ %129 = load i32* %128, align 4 ; [#uses=1]
+ %130 = sub nsw i32 %129, 48 ; [#uses=1]
+ %131 = add nsw i32 %126, %130 ; [#uses=1]
+ store i32 %131, i32* %c, align 4
+ %132 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %133 = getelementptr inbounds %struct.LexState* %132, i32 0, i32 7 ; [#uses=1]
+ %134 = load %struct.Zio** %133, align 4 ; [#uses=1]
+ %135 = getelementptr inbounds %struct.Zio* %134, i32 0, i32 0 ; [#uses=2]
+ %136 = load i32* %135, align 4 ; [#uses=2]
+ %137 = add i32 %136, -1 ; [#uses=1]
+ store i32 %137, i32* %135, align 4
+ %138 = icmp ugt i32 %136, 0 ; [#uses=1]
+ br i1 %138, label %139, label %148
+
+; <label>:139 ; preds = %124
+ %140 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %141 = getelementptr inbounds %struct.LexState* %140, i32 0, i32 7 ; [#uses=1]
+ %142 = load %struct.Zio** %141, align 4 ; [#uses=1]
+ %143 = getelementptr inbounds %struct.Zio* %142, i32 0, i32 1 ; [#uses=2]
+ %144 = load i8** %143, align 4 ; [#uses=2]
+ %145 = getelementptr inbounds i8* %144, i32 1 ; [#uses=1]
+ store i8* %145, i8** %143, align 4
+ %146 = load i8* %144 ; [#uses=1]
+ %147 = zext i8 %146 to i32 ; [#uses=1]
+ br label %153
+
+; <label>:148 ; preds = %124
+ %149 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %150 = getelementptr inbounds %struct.LexState* %149, i32 0, i32 7 ; [#uses=1]
+ %151 = load %struct.Zio** %150, align 4 ; [#uses=1]
+ %152 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %151) ; [#uses=1]
+ br label %153
+
+; <label>:153 ; preds = %148, %139
+ %154 = phi i32 [ %147, %139 ], [ %152, %148 ] ; [#uses=1]
+ %155 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %156 = getelementptr inbounds %struct.LexState* %155, i32 0, i32 0 ; [#uses=1]
+ store i32 %154, i32* %156, align 4
+ br label %157
+
+; <label>:157 ; preds = %153
+ %158 = load i32* %i, align 4 ; [#uses=1]
+ %159 = add nsw i32 %158, 1 ; [#uses=2]
+ store i32 %159, i32* %i, align 4
+ %160 = icmp slt i32 %159, 3 ; [#uses=1]
+ br i1 %160, label %161, label %167
+
+; <label>:161 ; preds = %157
+ %162 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %163 = getelementptr inbounds %struct.LexState* %162, i32 0, i32 0 ; [#uses=1]
+ %164 = load i32* %163, align 4 ; [#uses=1]
+ %165 = call i32 @isdigit(i32 %164) nounwind ; [#uses=1]
+ %166 = icmp ne i32 %165, 0 ; [#uses=1]
+ br label %167
+
+; <label>:167 ; preds = %161, %157
+ %168 = phi i1 [ false, %157 ], [ %166, %161 ] ; [#uses=1]
+ br i1 %168, label %124, label %169
+
+; <label>:169 ; preds = %167
+ %170 = load i32* %c, align 4 ; [#uses=1]
+ %171 = icmp sgt i32 %170, 255 ; [#uses=1]
+ br i1 %171, label %172, label %174
+
+; <label>:172 ; preds = %169
+ %173 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z13luaX_lexerrorP8LexStatePKci(%struct.LexState* %173, i8* getelementptr inbounds ([26 x i8]* @.str42, i32 0, i32 0), i32 286)
+ br label %174
+
+; <label>:174 ; preds = %172, %169
+ %175 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %176 = load i32* %c, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %175, i32 %176)
+ br label %177
+
+; <label>:177 ; preds = %174, %119
+ br label %33
+
+; <label>:178 ; preds = %82, %81, %80, %79, %78, %77, %76
+ %179 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %180 = load i32* %c, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %179, i32 %180)
+ %181 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %182 = getelementptr inbounds %struct.LexState* %181, i32 0, i32 7 ; [#uses=1]
+ %183 = load %struct.Zio** %182, align 4 ; [#uses=1]
+ %184 = getelementptr inbounds %struct.Zio* %183, i32 0, i32 0 ; [#uses=2]
+ %185 = load i32* %184, align 4 ; [#uses=2]
+ %186 = add i32 %185, -1 ; [#uses=1]
+ store i32 %186, i32* %184, align 4
+ %187 = icmp ugt i32 %185, 0 ; [#uses=1]
+ br i1 %187, label %188, label %197
+
+; <label>:188 ; preds = %178
+ %189 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %190 = getelementptr inbounds %struct.LexState* %189, i32 0, i32 7 ; [#uses=1]
+ %191 = load %struct.Zio** %190, align 4 ; [#uses=1]
+ %192 = getelementptr inbounds %struct.Zio* %191, i32 0, i32 1 ; [#uses=2]
+ %193 = load i8** %192, align 4 ; [#uses=2]
+ %194 = getelementptr inbounds i8* %193, i32 1 ; [#uses=1]
+ store i8* %194, i8** %192, align 4
+ %195 = load i8* %193 ; [#uses=1]
+ %196 = zext i8 %195 to i32 ; [#uses=1]
+ br label %202
+
+; <label>:197 ; preds = %178
+ %198 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %199 = getelementptr inbounds %struct.LexState* %198, i32 0, i32 7 ; [#uses=1]
+ %200 = load %struct.Zio** %199, align 4 ; [#uses=1]
+ %201 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %200) ; [#uses=1]
+ br label %202
+
+; <label>:202 ; preds = %197, %188
+ %203 = phi i32 [ %196, %188 ], [ %201, %197 ] ; [#uses=1]
+ %204 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %205 = getelementptr inbounds %struct.LexState* %204, i32 0, i32 0 ; [#uses=1]
+ store i32 %203, i32* %205, align 4
+ br label %33
+
+; <label>:206 ; preds = %39
+ %207 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %208 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %209 = getelementptr inbounds %struct.LexState* %208, i32 0, i32 0 ; [#uses=1]
+ %210 = load i32* %209, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %207, i32 %210)
+ %211 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %212 = getelementptr inbounds %struct.LexState* %211, i32 0, i32 7 ; [#uses=1]
+ %213 = load %struct.Zio** %212, align 4 ; [#uses=1]
+ %214 = getelementptr inbounds %struct.Zio* %213, i32 0, i32 0 ; [#uses=2]
+ %215 = load i32* %214, align 4 ; [#uses=2]
+ %216 = add i32 %215, -1 ; [#uses=1]
+ store i32 %216, i32* %214, align 4
+ %217 = icmp ugt i32 %215, 0 ; [#uses=1]
+ br i1 %217, label %218, label %227
+
+; <label>:218 ; preds = %206
+ %219 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %220 = getelementptr inbounds %struct.LexState* %219, i32 0, i32 7 ; [#uses=1]
+ %221 = load %struct.Zio** %220, align 4 ; [#uses=1]
+ %222 = getelementptr inbounds %struct.Zio* %221, i32 0, i32 1 ; [#uses=2]
+ %223 = load i8** %222, align 4 ; [#uses=2]
+ %224 = getelementptr inbounds i8* %223, i32 1 ; [#uses=1]
+ store i8* %224, i8** %222, align 4
+ %225 = load i8* %223 ; [#uses=1]
+ %226 = zext i8 %225 to i32 ; [#uses=1]
+ br label %232
+
+; <label>:227 ; preds = %206
+ %228 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %229 = getelementptr inbounds %struct.LexState* %228, i32 0, i32 7 ; [#uses=1]
+ %230 = load %struct.Zio** %229, align 4 ; [#uses=1]
+ %231 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %230) ; [#uses=1]
+ br label %232
+
+; <label>:232 ; preds = %227, %218
+ %233 = phi i32 [ %226, %218 ], [ %231, %227 ] ; [#uses=1]
+ %234 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %235 = getelementptr inbounds %struct.LexState* %234, i32 0, i32 0 ; [#uses=1]
+ store i32 %233, i32* %235, align 4
+ br label %236
+
+; <label>:236 ; preds = %232
+ br label %33
+
+; <label>:237 ; preds = %33
+ %238 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %239 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %240 = getelementptr inbounds %struct.LexState* %239, i32 0, i32 0 ; [#uses=1]
+ %241 = load i32* %240, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %238, i32 %241)
+ %242 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %243 = getelementptr inbounds %struct.LexState* %242, i32 0, i32 7 ; [#uses=1]
+ %244 = load %struct.Zio** %243, align 4 ; [#uses=1]
+ %245 = getelementptr inbounds %struct.Zio* %244, i32 0, i32 0 ; [#uses=2]
+ %246 = load i32* %245, align 4 ; [#uses=2]
+ %247 = add i32 %246, -1 ; [#uses=1]
+ store i32 %247, i32* %245, align 4
+ %248 = icmp ugt i32 %246, 0 ; [#uses=1]
+ br i1 %248, label %249, label %258
+
+; <label>:249 ; preds = %237
+ %250 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %251 = getelementptr inbounds %struct.LexState* %250, i32 0, i32 7 ; [#uses=1]
+ %252 = load %struct.Zio** %251, align 4 ; [#uses=1]
+ %253 = getelementptr inbounds %struct.Zio* %252, i32 0, i32 1 ; [#uses=2]
+ %254 = load i8** %253, align 4 ; [#uses=2]
+ %255 = getelementptr inbounds i8* %254, i32 1 ; [#uses=1]
+ store i8* %255, i8** %253, align 4
+ %256 = load i8* %254 ; [#uses=1]
+ %257 = zext i8 %256 to i32 ; [#uses=1]
+ br label %263
+
+; <label>:258 ; preds = %237
+ %259 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %260 = getelementptr inbounds %struct.LexState* %259, i32 0, i32 7 ; [#uses=1]
+ %261 = load %struct.Zio** %260, align 4 ; [#uses=1]
+ %262 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %261) ; [#uses=1]
+ br label %263
+
+; <label>:263 ; preds = %258, %249
+ %264 = phi i32 [ %257, %249 ], [ %262, %258 ] ; [#uses=1]
+ %265 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %266 = getelementptr inbounds %struct.LexState* %265, i32 0, i32 0 ; [#uses=1]
+ store i32 %264, i32* %266, align 4
+ %267 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %268 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %269 = getelementptr inbounds %struct.LexState* %268, i32 0, i32 8 ; [#uses=1]
+ %270 = load %struct.Mbuffer** %269, align 4 ; [#uses=1]
+ %271 = getelementptr inbounds %struct.Mbuffer* %270, i32 0, i32 0 ; [#uses=1]
+ %272 = load i8** %271, align 4 ; [#uses=1]
+ %273 = getelementptr inbounds i8* %272, i32 1 ; [#uses=1]
+ %274 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %275 = getelementptr inbounds %struct.LexState* %274, i32 0, i32 8 ; [#uses=1]
+ %276 = load %struct.Mbuffer** %275, align 4 ; [#uses=1]
+ %277 = getelementptr inbounds %struct.Mbuffer* %276, i32 0, i32 1 ; [#uses=1]
+ %278 = load i32* %277, align 4 ; [#uses=1]
+ %279 = sub i32 %278, 2 ; [#uses=1]
+ %280 = call %union.TString* @_Z14luaX_newstringP8LexStatePKcj(%struct.LexState* %267, i8* %273, i32 %279) ; [#uses=1]
+ %281 = load %union.anon** %3, align 4 ; [#uses=1]
+ %282 = getelementptr inbounds %union.anon* %281, i32 0, i32 0 ; [#uses=1]
+ %283 = bitcast double* %282 to %union.TString** ; [#uses=1]
+ store %union.TString* %280, %union.TString** %283, align 4
+ ret void
+}
+
+; [#uses=21]
+define internal void @_Z4saveP8LexStatei(%struct.LexState* %ls, i32 %c) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=5]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %b = alloca %struct.Mbuffer*, align 4 ; [#uses=11]
+ %newsize = alloca i32, align 4 ; [#uses=4]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 %c, i32* %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 8 ; [#uses=1]
+ %5 = load %struct.Mbuffer** %4, align 4 ; [#uses=1]
+ store %struct.Mbuffer* %5, %struct.Mbuffer** %b, align 4
+ %6 = load %struct.Mbuffer** %b, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.Mbuffer* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = add i32 %8, 1 ; [#uses=1]
+ %10 = load %struct.Mbuffer** %b, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Mbuffer* %10, i32 0, i32 2 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ %13 = icmp ugt i32 %9, %12 ; [#uses=1]
+ br i1 %13, label %14, label %55
+
+; <label>:14 ; preds = %0
+ %15 = load %struct.Mbuffer** %b, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.Mbuffer* %15, i32 0, i32 2 ; [#uses=1]
+ %17 = load i32* %16, align 4 ; [#uses=1]
+ %18 = icmp uge i32 %17, 2147483646 ; [#uses=1]
+ br i1 %18, label %19, label %21
+
+; <label>:19 ; preds = %14
+ %20 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z13luaX_lexerrorP8LexStatePKci(%struct.LexState* %20, i8* getelementptr inbounds ([25 x i8]* @.str40, i32 0, i32 0), i32 0)
+ br label %21
+
+; <label>:21 ; preds = %19, %14
+ %22 = load %struct.Mbuffer** %b, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.Mbuffer* %22, i32 0, i32 2 ; [#uses=1]
+ %24 = load i32* %23, align 4 ; [#uses=1]
+ %25 = mul i32 %24, 2 ; [#uses=1]
+ store i32 %25, i32* %newsize, align 4
+ %26 = load i32* %newsize, align 4 ; [#uses=1]
+ %27 = add i32 %26, 1 ; [#uses=1]
+ %28 = icmp ule i32 %27, -3 ; [#uses=1]
+ br i1 %28, label %29, label %43
+
+; <label>:29 ; preds = %21
+ %30 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.LexState* %30, i32 0, i32 6 ; [#uses=1]
+ %32 = load %struct.lua_State** %31, align 4 ; [#uses=1]
+ %33 = load %struct.Mbuffer** %b, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.Mbuffer* %33, i32 0, i32 0 ; [#uses=1]
+ %35 = load i8** %34, align 4 ; [#uses=1]
+ %36 = load %struct.Mbuffer** %b, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.Mbuffer* %36, i32 0, i32 2 ; [#uses=1]
+ %38 = load i32* %37, align 4 ; [#uses=1]
+ %39 = mul i32 %38, 1 ; [#uses=1]
+ %40 = load i32* %newsize, align 4 ; [#uses=1]
+ %41 = mul i32 %40, 1 ; [#uses=1]
+ %42 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %32, i8* %35, i32 %39, i32 %41) ; [#uses=1]
+ br label %48
+
+; <label>:43 ; preds = %21
+ %44 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.LexState* %44, i32 0, i32 6 ; [#uses=1]
+ %46 = load %struct.lua_State** %45, align 4 ; [#uses=1]
+ %47 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %46) ; [#uses=1]
+ br label %48
+
+; <label>:48 ; preds = %43, %29
+ %49 = phi i8* [ %42, %29 ], [ %47, %43 ] ; [#uses=1]
+ %50 = load %struct.Mbuffer** %b, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.Mbuffer* %50, i32 0, i32 0 ; [#uses=1]
+ store i8* %49, i8** %51, align 4
+ %52 = load i32* %newsize, align 4 ; [#uses=1]
+ %53 = load %struct.Mbuffer** %b, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.Mbuffer* %53, i32 0, i32 2 ; [#uses=1]
+ store i32 %52, i32* %54, align 4
+ br label %55
+
+; <label>:55 ; preds = %48, %0
+ %56 = load i32* %2, align 4 ; [#uses=1]
+ %57 = trunc i32 %56 to i8 ; [#uses=1]
+ %58 = load %struct.Mbuffer** %b, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.Mbuffer* %58, i32 0, i32 1 ; [#uses=2]
+ %60 = load i32* %59, align 4 ; [#uses=2]
+ %61 = add i32 %60, 1 ; [#uses=1]
+ store i32 %61, i32* %59, align 4
+ %62 = load %struct.Mbuffer** %b, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.Mbuffer* %62, i32 0, i32 0 ; [#uses=1]
+ %64 = load i8** %63, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds i8* %64, i32 %60 ; [#uses=1]
+ store i8 %57, i8* %65
+ ret void
+}
+
+; [#uses=4]
+define internal i32 @_Z10check_nextP8LexStatePKc(%struct.LexState* %ls, i8* %set) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.LexState*, align 4 ; [#uses=8]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %2, align 4
+ store i8* %set, i8** %3, align 4
+ %4 = load i8** %3, align 4 ; [#uses=1]
+ %5 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LexState* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ %8 = call i8* @strchr(i8* %4, i32 %7) ; [#uses=1]
+ %9 = icmp ne i8* %8, null ; [#uses=1]
+ br i1 %9, label %11, label %10
+
+; <label>:10 ; preds = %0
+ store i32 0, i32* %1
+ br label %41
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %13 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.LexState* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = load i32* %14, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %12, i32 %15)
+ %16 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.LexState* %16, i32 0, i32 7 ; [#uses=1]
+ %18 = load %struct.Zio** %17, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.Zio* %18, i32 0, i32 0 ; [#uses=2]
+ %20 = load i32* %19, align 4 ; [#uses=2]
+ %21 = add i32 %20, -1 ; [#uses=1]
+ store i32 %21, i32* %19, align 4
+ %22 = icmp ugt i32 %20, 0 ; [#uses=1]
+ br i1 %22, label %23, label %32
+
+; <label>:23 ; preds = %11
+ %24 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.LexState* %24, i32 0, i32 7 ; [#uses=1]
+ %26 = load %struct.Zio** %25, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.Zio* %26, i32 0, i32 1 ; [#uses=2]
+ %28 = load i8** %27, align 4 ; [#uses=2]
+ %29 = getelementptr inbounds i8* %28, i32 1 ; [#uses=1]
+ store i8* %29, i8** %27, align 4
+ %30 = load i8* %28 ; [#uses=1]
+ %31 = zext i8 %30 to i32 ; [#uses=1]
+ br label %37
+
+; <label>:32 ; preds = %11
+ %33 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.LexState* %33, i32 0, i32 7 ; [#uses=1]
+ %35 = load %struct.Zio** %34, align 4 ; [#uses=1]
+ %36 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %35) ; [#uses=1]
+ br label %37
+
+; <label>:37 ; preds = %32, %23
+ %38 = phi i32 [ %31, %23 ], [ %36, %32 ] ; [#uses=1]
+ %39 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.LexState* %39, i32 0, i32 0 ; [#uses=1]
+ store i32 %38, i32* %40, align 4
+ store i32 1, i32* %1
+ br label %41
+
+; <label>:41 ; preds = %37, %10
+ %42 = load i32* %1 ; [#uses=1]
+ ret i32 %42
+}
+
+; [#uses=13]
+declare i32 @isdigit(i32) nounwind
+
+; [#uses=2]
+define internal void @_Z12read_numeralP8LexStateP7SemInfo(%struct.LexState* %ls, %union.anon* %seminfo) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=24]
+ %2 = alloca %union.anon*, align 4 ; [#uses=3]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %union.anon* %seminfo, %union.anon** %2, align 4
+ br label %3
+
+; <label>:3 ; preds = %44, %0
+ %4 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LexState* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %4, i32 %7)
+ %8 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.LexState* %8, i32 0, i32 7 ; [#uses=1]
+ %10 = load %struct.Zio** %9, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Zio* %10, i32 0, i32 0 ; [#uses=2]
+ %12 = load i32* %11, align 4 ; [#uses=2]
+ %13 = add i32 %12, -1 ; [#uses=1]
+ store i32 %13, i32* %11, align 4
+ %14 = icmp ugt i32 %12, 0 ; [#uses=1]
+ br i1 %14, label %15, label %24
+
+; <label>:15 ; preds = %3
+ %16 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.LexState* %16, i32 0, i32 7 ; [#uses=1]
+ %18 = load %struct.Zio** %17, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.Zio* %18, i32 0, i32 1 ; [#uses=2]
+ %20 = load i8** %19, align 4 ; [#uses=2]
+ %21 = getelementptr inbounds i8* %20, i32 1 ; [#uses=1]
+ store i8* %21, i8** %19, align 4
+ %22 = load i8* %20 ; [#uses=1]
+ %23 = zext i8 %22 to i32 ; [#uses=1]
+ br label %29
+
+; <label>:24 ; preds = %3
+ %25 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.LexState* %25, i32 0, i32 7 ; [#uses=1]
+ %27 = load %struct.Zio** %26, align 4 ; [#uses=1]
+ %28 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %27) ; [#uses=1]
+ br label %29
+
+; <label>:29 ; preds = %24, %15
+ %30 = phi i32 [ %23, %15 ], [ %28, %24 ] ; [#uses=1]
+ %31 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.LexState* %31, i32 0, i32 0 ; [#uses=1]
+ store i32 %30, i32* %32, align 4
+ br label %33
+
+; <label>:33 ; preds = %29
+ %34 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.LexState* %34, i32 0, i32 0 ; [#uses=1]
+ %36 = load i32* %35, align 4 ; [#uses=1]
+ %37 = call i32 @isdigit(i32 %36) nounwind ; [#uses=1]
+ %38 = icmp ne i32 %37, 0 ; [#uses=1]
+ br i1 %38, label %44, label %39
+
+; <label>:39 ; preds = %33
+ %40 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.LexState* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = load i32* %41, align 4 ; [#uses=1]
+ %43 = icmp eq i32 %42, 46 ; [#uses=1]
+ br label %44
+
+; <label>:44 ; preds = %39, %33
+ %45 = phi i1 [ true, %33 ], [ %43, %39 ] ; [#uses=1]
+ br i1 %45, label %3, label %46
+
+; <label>:46 ; preds = %44
+ %47 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %48 = call i32 @_Z10check_nextP8LexStatePKc(%struct.LexState* %47, i8* getelementptr inbounds ([3 x i8]* @.str3770, i32 0, i32 0)) ; [#uses=1]
+ %49 = icmp ne i32 %48, 0 ; [#uses=1]
+ br i1 %49, label %50, label %53
+
+; <label>:50 ; preds = %46
+ %51 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %52 = call i32 @_Z10check_nextP8LexStatePKc(%struct.LexState* %51, i8* getelementptr inbounds ([3 x i8]* @.str38, i32 0, i32 0)) ; [#uses=0]
+ br label %53
+
+; <label>:53 ; preds = %50, %46
+ br label %54
+
+; <label>:54 ; preds = %93, %53
+ %55 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.LexState* %55, i32 0, i32 0 ; [#uses=1]
+ %57 = load i32* %56, align 4 ; [#uses=1]
+ %58 = call i32 @isalnum(i32 %57) nounwind ; [#uses=1]
+ %59 = icmp ne i32 %58, 0 ; [#uses=1]
+ br i1 %59, label %65, label %60
+
+; <label>:60 ; preds = %54
+ %61 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds %struct.LexState* %61, i32 0, i32 0 ; [#uses=1]
+ %63 = load i32* %62, align 4 ; [#uses=1]
+ %64 = icmp eq i32 %63, 95 ; [#uses=1]
+ br label %65
+
+; <label>:65 ; preds = %60, %54
+ %66 = phi i1 [ true, %54 ], [ %64, %60 ] ; [#uses=1]
+ br i1 %66, label %67, label %97
+
+; <label>:67 ; preds = %65
+ %68 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %69 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.LexState* %69, i32 0, i32 0 ; [#uses=1]
+ %71 = load i32* %70, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %68, i32 %71)
+ %72 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.LexState* %72, i32 0, i32 7 ; [#uses=1]
+ %74 = load %struct.Zio** %73, align 4 ; [#uses=1]
+ %75 = getelementptr inbounds %struct.Zio* %74, i32 0, i32 0 ; [#uses=2]
+ %76 = load i32* %75, align 4 ; [#uses=2]
+ %77 = add i32 %76, -1 ; [#uses=1]
+ store i32 %77, i32* %75, align 4
+ %78 = icmp ugt i32 %76, 0 ; [#uses=1]
+ br i1 %78, label %79, label %88
+
+; <label>:79 ; preds = %67
+ %80 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.LexState* %80, i32 0, i32 7 ; [#uses=1]
+ %82 = load %struct.Zio** %81, align 4 ; [#uses=1]
+ %83 = getelementptr inbounds %struct.Zio* %82, i32 0, i32 1 ; [#uses=2]
+ %84 = load i8** %83, align 4 ; [#uses=2]
+ %85 = getelementptr inbounds i8* %84, i32 1 ; [#uses=1]
+ store i8* %85, i8** %83, align 4
+ %86 = load i8* %84 ; [#uses=1]
+ %87 = zext i8 %86 to i32 ; [#uses=1]
+ br label %93
+
+; <label>:88 ; preds = %67
+ %89 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %90 = getelementptr inbounds %struct.LexState* %89, i32 0, i32 7 ; [#uses=1]
+ %91 = load %struct.Zio** %90, align 4 ; [#uses=1]
+ %92 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %91) ; [#uses=1]
+ br label %93
+
+; <label>:93 ; preds = %88, %79
+ %94 = phi i32 [ %87, %79 ], [ %92, %88 ] ; [#uses=1]
+ %95 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %96 = getelementptr inbounds %struct.LexState* %95, i32 0, i32 0 ; [#uses=1]
+ store i32 %94, i32* %96, align 4
+ br label %54
+
+; <label>:97 ; preds = %65
+ %98 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z4saveP8LexStatei(%struct.LexState* %98, i32 0)
+ %99 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %100 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %101 = getelementptr inbounds %struct.LexState* %100, i32 0, i32 10 ; [#uses=1]
+ %102 = load i8* %101, align 1 ; [#uses=1]
+ call void @_Z11buffreplaceP8LexStatecc(%struct.LexState* %99, i8 signext 46, i8 signext %102)
+ %103 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %104 = getelementptr inbounds %struct.LexState* %103, i32 0, i32 8 ; [#uses=1]
+ %105 = load %struct.Mbuffer** %104, align 4 ; [#uses=1]
+ %106 = getelementptr inbounds %struct.Mbuffer* %105, i32 0, i32 0 ; [#uses=1]
+ %107 = load i8** %106, align 4 ; [#uses=1]
+ %108 = load %union.anon** %2, align 4 ; [#uses=1]
+ %109 = getelementptr inbounds %union.anon* %108, i32 0, i32 0 ; [#uses=1]
+ %110 = call i32 @_Z10luaO_str2dPKcPd(i8* %107, double* %109) ; [#uses=1]
+ %111 = icmp ne i32 %110, 0 ; [#uses=1]
+ br i1 %111, label %115, label %112
+
+; <label>:112 ; preds = %97
+ %113 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %114 = load %union.anon** %2, align 4 ; [#uses=1]
+ call void @_Z11trydecpointP8LexStateP7SemInfo(%struct.LexState* %113, %union.anon* %114)
+ br label %115
+
+; <label>:115 ; preds = %112, %97
+ ret void
+}
+
+; [#uses=4]
+declare i32 @isspace(i32) nounwind
+
+; [#uses=2]
+declare i32 @isalpha(i32) nounwind
+
+; [#uses=3]
+declare i32 @isalnum(i32) nounwind
+
+; [#uses=3]
+define internal void @_Z11buffreplaceP8LexStatecc(%struct.LexState* %ls, i8 signext %from, i8 signext %to) nounwind {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=3]
+ %2 = alloca i8, align 1 ; [#uses=2]
+ %3 = alloca i8, align 1 ; [#uses=2]
+ %n = alloca i32, align 4 ; [#uses=5]
+ %p = alloca i8*, align 4 ; [#uses=3]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i8 %from, i8* %2, align 1
+ store i8 %to, i8* %3, align 1
+ %4 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.LexState* %4, i32 0, i32 8 ; [#uses=1]
+ %6 = load %struct.Mbuffer** %5, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.Mbuffer* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ store i32 %8, i32* %n, align 4
+ %9 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.LexState* %9, i32 0, i32 8 ; [#uses=1]
+ %11 = load %struct.Mbuffer** %10, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.Mbuffer* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = load i8** %12, align 4 ; [#uses=1]
+ store i8* %13, i8** %p, align 4
+ br label %14
+
+; <label>:14 ; preds = %32, %0
+ %15 = load i32* %n, align 4 ; [#uses=2]
+ %16 = add i32 %15, -1 ; [#uses=1]
+ store i32 %16, i32* %n, align 4
+ %17 = icmp ne i32 %15, 0 ; [#uses=1]
+ br i1 %17, label %18, label %33
+
+; <label>:18 ; preds = %14
+ %19 = load i32* %n, align 4 ; [#uses=1]
+ %20 = load i8** %p, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds i8* %20, i32 %19 ; [#uses=1]
+ %22 = load i8* %21 ; [#uses=1]
+ %23 = sext i8 %22 to i32 ; [#uses=1]
+ %24 = load i8* %2, align 1 ; [#uses=1]
+ %25 = sext i8 %24 to i32 ; [#uses=1]
+ %26 = icmp eq i32 %23, %25 ; [#uses=1]
+ br i1 %26, label %27, label %32
+
+; <label>:27 ; preds = %18
+ %28 = load i8* %3, align 1 ; [#uses=1]
+ %29 = load i32* %n, align 4 ; [#uses=1]
+ %30 = load i8** %p, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds i8* %30, i32 %29 ; [#uses=1]
+ store i8 %28, i8* %31
+ br label %32
+
+; <label>:32 ; preds = %27, %18
+ br label %14
+
+; <label>:33 ; preds = %14
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z11trydecpointP8LexStateP7SemInfo(%struct.LexState* %ls, %union.anon* %seminfo) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=9]
+ %2 = alloca %union.anon*, align 4 ; [#uses=2]
+ %cv = alloca %struct.lconv*, align 4 ; [#uses=3]
+ %old = alloca i8, align 1 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %union.anon* %seminfo, %union.anon** %2, align 4
+ %3 = call %struct.lconv* @localeconv() nounwind ; [#uses=1]
+ store %struct.lconv* %3, %struct.lconv** %cv, align 4
+ %4 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.LexState* %4, i32 0, i32 10 ; [#uses=1]
+ %6 = load i8* %5, align 1 ; [#uses=1]
+ store i8 %6, i8* %old, align 1
+ %7 = load %struct.lconv** %cv, align 4 ; [#uses=1]
+ %8 = icmp ne %struct.lconv* %7, null ; [#uses=1]
+ br i1 %8, label %9, label %15
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lconv** %cv, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lconv* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = load i8** %11, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds i8* %12, i32 0 ; [#uses=1]
+ %14 = load i8* %13 ; [#uses=1]
+ br label %16
+
+; <label>:15 ; preds = %0
+ br label %16
+
+; <label>:16 ; preds = %15, %9
+ %17 = phi i8 [ %14, %9 ], [ 46, %15 ] ; [#uses=1]
+ %18 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.LexState* %18, i32 0, i32 10 ; [#uses=1]
+ store i8 %17, i8* %19, align 1
+ %20 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %21 = load i8* %old, align 1 ; [#uses=1]
+ %22 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.LexState* %22, i32 0, i32 10 ; [#uses=1]
+ %24 = load i8* %23, align 1 ; [#uses=1]
+ call void @_Z11buffreplaceP8LexStatecc(%struct.LexState* %20, i8 signext %21, i8 signext %24)
+ %25 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.LexState* %25, i32 0, i32 8 ; [#uses=1]
+ %27 = load %struct.Mbuffer** %26, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.Mbuffer* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = load i8** %28, align 4 ; [#uses=1]
+ %30 = load %union.anon** %2, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %union.anon* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = call i32 @_Z10luaO_str2dPKcPd(i8* %29, double* %31) ; [#uses=1]
+ %33 = icmp ne i32 %32, 0 ; [#uses=1]
+ br i1 %33, label %40, label %34
+
+; <label>:34 ; preds = %16
+ %35 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %36 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.LexState* %36, i32 0, i32 10 ; [#uses=1]
+ %38 = load i8* %37, align 1 ; [#uses=1]
+ call void @_Z11buffreplaceP8LexStatecc(%struct.LexState* %35, i8 signext %38, i8 signext 46)
+ %39 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z13luaX_lexerrorP8LexStatePKci(%struct.LexState* %39, i8* getelementptr inbounds ([17 x i8]* @.str39, i32 0, i32 0), i32 284)
+ br label %40
+
+; <label>:40 ; preds = %34, %16
+ ret void
+}
+
+; [#uses=1]
+declare %struct.lconv* @localeconv() nounwind
+
+; [#uses=6]
+define hidden i8* @_Z13luaM_growaux_P9lua_StatePvPijiPKc(%struct.lua_State* %L, i8* %block, i32* %size, i32 %size_elems, i32 %limit, i8* %errormsg) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %3 = alloca i32*, align 4 ; [#uses=6]
+ %4 = alloca i32, align 4 ; [#uses=4]
+ %5 = alloca i32, align 4 ; [#uses=4]
+ %6 = alloca i8*, align 4 ; [#uses=2]
+ %newblock = alloca i8*, align 4 ; [#uses=2]
+ %newsize = alloca i32, align 4 ; [#uses=7]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %block, i8** %2, align 4
+ store i32* %size, i32** %3, align 4
+ store i32 %size_elems, i32* %4, align 4
+ store i32 %limit, i32* %5, align 4
+ store i8* %errormsg, i8** %6, align 4
+ %7 = load i32** %3, align 4 ; [#uses=1]
+ %8 = load i32* %7 ; [#uses=1]
+ %9 = load i32* %5, align 4 ; [#uses=1]
+ %10 = sdiv i32 %9, 2 ; [#uses=1]
+ %11 = icmp sge i32 %8, %10 ; [#uses=1]
+ br i1 %11, label %12, label %22
+
+; <label>:12 ; preds = %0
+ %13 = load i32** %3, align 4 ; [#uses=1]
+ %14 = load i32* %13 ; [#uses=1]
+ %15 = load i32* %5, align 4 ; [#uses=1]
+ %16 = icmp sge i32 %14, %15 ; [#uses=1]
+ br i1 %16, label %17, label %20
+
+; <label>:17 ; preds = %12
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = load i8** %6, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %18, i8* %19)
+ br label %20
+
+; <label>:20 ; preds = %17, %12
+ %21 = load i32* %5, align 4 ; [#uses=1]
+ store i32 %21, i32* %newsize, align 4
+ br label %30
+
+; <label>:22 ; preds = %0
+ %23 = load i32** %3, align 4 ; [#uses=1]
+ %24 = load i32* %23 ; [#uses=1]
+ %25 = mul nsw i32 %24, 2 ; [#uses=1]
+ store i32 %25, i32* %newsize, align 4
+ %26 = load i32* %newsize, align 4 ; [#uses=1]
+ %27 = icmp slt i32 %26, 4 ; [#uses=1]
+ br i1 %27, label %28, label %29
+
+; <label>:28 ; preds = %22
+ store i32 4, i32* %newsize, align 4
+ br label %29
+
+; <label>:29 ; preds = %28, %22
+ br label %30
+
+; <label>:30 ; preds = %29, %20
+ %31 = load i32* %newsize, align 4 ; [#uses=1]
+ %32 = add nsw i32 %31, 1 ; [#uses=1]
+ %33 = load i32* %4, align 4 ; [#uses=1]
+ %34 = udiv i32 -3, %33 ; [#uses=1]
+ %35 = icmp ule i32 %32, %34 ; [#uses=1]
+ br i1 %35, label %36, label %47
+
+; <label>:36 ; preds = %30
+ %37 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %38 = load i8** %2, align 4 ; [#uses=1]
+ %39 = load i32** %3, align 4 ; [#uses=1]
+ %40 = load i32* %39 ; [#uses=1]
+ %41 = load i32* %4, align 4 ; [#uses=1]
+ %42 = mul i32 %40, %41 ; [#uses=1]
+ %43 = load i32* %newsize, align 4 ; [#uses=1]
+ %44 = load i32* %4, align 4 ; [#uses=1]
+ %45 = mul i32 %43, %44 ; [#uses=1]
+ %46 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %37, i8* %38, i32 %42, i32 %45) ; [#uses=1]
+ br label %50
+
+; <label>:47 ; preds = %30
+ %48 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %49 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %48) ; [#uses=1]
+ br label %50
+
+; <label>:50 ; preds = %47, %36
+ %51 = phi i8* [ %46, %36 ], [ %49, %47 ] ; [#uses=1]
+ store i8* %51, i8** %newblock, align 4
+ %52 = load i32* %newsize, align 4 ; [#uses=1]
+ %53 = load i32** %3, align 4 ; [#uses=1]
+ store i32 %52, i32* %53
+ %54 = load i8** %newblock, align 4 ; [#uses=1]
+ ret i8* %54
+}
+
+; [#uses=56]
+define hidden i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %L, i8* %block, i32 %osize, i32 %nsize) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i8*, align 4 ; [#uses=5]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %4 = alloca i32, align 4 ; [#uses=4]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %block, i8** %2, align 4
+ store i32 %osize, i32* %3, align 4
+ store i32 %nsize, i32* %4, align 4
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.lua_State* %5, i32 0, i32 6 ; [#uses=1]
+ %7 = load %struct.global_State** %6, align 4 ; [#uses=1]
+ store %struct.global_State* %7, %struct.global_State** %g, align 4
+ %8 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.global_State* %8, i32 0, i32 1 ; [#uses=1]
+ %10 = load i8* (i8*, i8*, i32, i32)** %9, align 4 ; [#uses=1]
+ %11 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.global_State* %11, i32 0, i32 2 ; [#uses=1]
+ %13 = load i8** %12, align 4 ; [#uses=1]
+ %14 = load i8** %2, align 4 ; [#uses=1]
+ %15 = load i32* %3, align 4 ; [#uses=1]
+ %16 = load i32* %4, align 4 ; [#uses=1]
+ %17 = call i8* %10(i8* %13, i8* %14, i32 %15, i32 %16) ; [#uses=1]
+ store i8* %17, i8** %2, align 4
+ %18 = load i8** %2, align 4 ; [#uses=1]
+ %19 = icmp eq i8* %18, null ; [#uses=1]
+ br i1 %19, label %20, label %25
+
+; <label>:20 ; preds = %0
+ %21 = load i32* %4, align 4 ; [#uses=1]
+ %22 = icmp ugt i32 %21, 0 ; [#uses=1]
+ br i1 %22, label %23, label %25
+
+; <label>:23 ; preds = %20
+ %24 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10luaD_throwP9lua_Statei(%struct.lua_State* %24, i32 4)
+ br label %25
+
+; <label>:25 ; preds = %23, %20, %0
+ %26 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.global_State* %26, i32 0, i32 14 ; [#uses=1]
+ %28 = load i32* %27, align 4 ; [#uses=1]
+ %29 = load i32* %3, align 4 ; [#uses=1]
+ %30 = sub i32 %28, %29 ; [#uses=1]
+ %31 = load i32* %4, align 4 ; [#uses=1]
+ %32 = add i32 %30, %31 ; [#uses=1]
+ %33 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.global_State* %33, i32 0, i32 14 ; [#uses=1]
+ store i32 %32, i32* %34, align 4
+ %35 = load i8** %2, align 4 ; [#uses=1]
+ ret i8* %35
+}
+
+; [#uses=24]
+define hidden i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %2, i8* getelementptr inbounds ([39 x i8]* @.str72, i32 0, i32 0))
+ ret i8* null
+}
+
+; [#uses=2]
+define hidden i32 @_Z11luaO_int2fbj(i32 %x) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=7]
+ %e = alloca i32, align 4 ; [#uses=4]
+ store i32 %x, i32* %2, align 4
+ store i32 0, i32* %e, align 4
+ br label %3
+
+; <label>:3 ; preds = %6, %0
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = icmp uge i32 %4, 16 ; [#uses=1]
+ br i1 %5, label %6, label %12
+
+; <label>:6 ; preds = %3
+ %7 = load i32* %2, align 4 ; [#uses=1]
+ %8 = add i32 %7, 1 ; [#uses=1]
+ %9 = lshr i32 %8, 1 ; [#uses=1]
+ store i32 %9, i32* %2, align 4
+ %10 = load i32* %e, align 4 ; [#uses=1]
+ %11 = add nsw i32 %10, 1 ; [#uses=1]
+ store i32 %11, i32* %e, align 4
+ br label %3
+
+; <label>:12 ; preds = %3
+ %13 = load i32* %2, align 4 ; [#uses=1]
+ %14 = icmp ult i32 %13, 8 ; [#uses=1]
+ br i1 %14, label %15, label %17
+
+; <label>:15 ; preds = %12
+ %16 = load i32* %2, align 4 ; [#uses=1]
+ store i32 %16, i32* %1
+ br label %24
+
+; <label>:17 ; preds = %12
+ %18 = load i32* %e, align 4 ; [#uses=1]
+ %19 = add nsw i32 %18, 1 ; [#uses=1]
+ %20 = shl i32 %19, 3 ; [#uses=1]
+ %21 = load i32* %2, align 4 ; [#uses=1]
+ %22 = sub nsw i32 %21, 8 ; [#uses=1]
+ %23 = or i32 %20, %22 ; [#uses=1]
+ store i32 %23, i32* %1
+ br label %24
+
+; <label>:24 ; preds = %17, %15
+ %25 = load i32* %1 ; [#uses=1]
+ ret i32 %25
+}
+
+; [#uses=2]
+define hidden i32 @_Z11luaO_fb2inti(i32 %x) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=4]
+ %e = alloca i32, align 4 ; [#uses=3]
+ store i32 %x, i32* %2, align 4
+ %3 = load i32* %2, align 4 ; [#uses=1]
+ %4 = ashr i32 %3, 3 ; [#uses=1]
+ %5 = and i32 %4, 31 ; [#uses=1]
+ store i32 %5, i32* %e, align 4
+ %6 = load i32* %e, align 4 ; [#uses=1]
+ %7 = icmp eq i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %10
+
+; <label>:8 ; preds = %0
+ %9 = load i32* %2, align 4 ; [#uses=1]
+ store i32 %9, i32* %1
+ br label %17
+
+; <label>:10 ; preds = %0
+ %11 = load i32* %2, align 4 ; [#uses=1]
+ %12 = and i32 %11, 7 ; [#uses=1]
+ %13 = add nsw i32 %12, 8 ; [#uses=1]
+ %14 = load i32* %e, align 4 ; [#uses=1]
+ %15 = sub nsw i32 %14, 1 ; [#uses=1]
+ %16 = shl i32 %13, %15 ; [#uses=1]
+ store i32 %16, i32* %1
+ br label %17
+
+; <label>:17 ; preds = %10, %8
+ %18 = load i32* %1 ; [#uses=1]
+ ret i32 %18
+}
+
+; [#uses=2]
+define hidden i32 @_Z9luaO_log2j(i32 %x) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=5]
+ %l = alloca i32, align 4 ; [#uses=4]
+ store i32 %x, i32* %1, align 4
+ store i32 -1, i32* %l, align 4
+ br label %2
+
+; <label>:2 ; preds = %5, %0
+ %3 = load i32* %1, align 4 ; [#uses=1]
+ %4 = icmp uge i32 %3, 256 ; [#uses=1]
+ br i1 %4, label %5, label %10
+
+; <label>:5 ; preds = %2
+ %6 = load i32* %l, align 4 ; [#uses=1]
+ %7 = add nsw i32 %6, 8 ; [#uses=1]
+ store i32 %7, i32* %l, align 4
+ %8 = load i32* %1, align 4 ; [#uses=1]
+ %9 = lshr i32 %8, 8 ; [#uses=1]
+ store i32 %9, i32* %1, align 4
+ br label %2
+
+; <label>:10 ; preds = %2
+ %11 = load i32* %l, align 4 ; [#uses=1]
+ %12 = load i32* %1, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds [256 x i8]* @_ZZ9luaO_log2jE5log_2, i32 0, i32 %12 ; [#uses=1]
+ %14 = load i8* %13 ; [#uses=1]
+ %15 = zext i8 %14 to i32 ; [#uses=1]
+ %16 = add nsw i32 %11, %15 ; [#uses=1]
+ ret i32 %16
+}
+
+; [#uses=5]
+define hidden i32 @_Z16luaO_rawequalObjPK10lua_TValueS1_(%struct.lua_TValue* %t1, %struct.lua_TValue* %t2) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=7]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=7]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=6]
+ store %struct.lua_TValue* %t1, %struct.lua_TValue** %2, align 4
+ store %struct.lua_TValue* %t2, %struct.lua_TValue** %3, align 4
+ %4 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_TValue* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_TValue* %7, i32 0, i32 1 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ %10 = icmp ne i32 %6, %9 ; [#uses=1]
+ br i1 %10, label %11, label %12
+
+; <label>:11 ; preds = %0
+ store i32 0, i32* %1
+ br label %67
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_TValue* %13, i32 0, i32 1 ; [#uses=1]
+ %15 = load i32* %14, align 4 ; [#uses=1]
+ switch i32 %15, label %54 [
+ i32 0, label %16
+ i32 3, label %17
+ i32 1, label %28
+ i32 2, label %41
+ ]
+
+; <label>:16 ; preds = %12
+ store i32 1, i32* %1
+ br label %67
+
+; <label>:17 ; preds = %12
+ %18 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_TValue* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = getelementptr inbounds %union.anon* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = load double* %20, align 4 ; [#uses=1]
+ %22 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_TValue* %22, i32 0, i32 0 ; [#uses=1]
+ %24 = getelementptr inbounds %union.anon* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = load double* %24, align 4 ; [#uses=1]
+ %26 = fcmp oeq double %21, %25 ; [#uses=1]
+ %27 = zext i1 %26 to i32 ; [#uses=1]
+ store i32 %27, i32* %1
+ br label %67
+
+; <label>:28 ; preds = %12
+ %29 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_TValue* %29, i32 0, i32 0 ; [#uses=1]
+ %31 = getelementptr inbounds %union.anon* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = bitcast double* %31 to i32* ; [#uses=1]
+ %33 = load i32* %32, align 4 ; [#uses=1]
+ %34 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_TValue* %34, i32 0, i32 0 ; [#uses=1]
+ %36 = getelementptr inbounds %union.anon* %35, i32 0, i32 0 ; [#uses=1]
+ %37 = bitcast double* %36 to i32* ; [#uses=1]
+ %38 = load i32* %37, align 4 ; [#uses=1]
+ %39 = icmp eq i32 %33, %38 ; [#uses=1]
+ %40 = zext i1 %39 to i32 ; [#uses=1]
+ store i32 %40, i32* %1
+ br label %67
+
+; <label>:41 ; preds = %12
+ %42 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.lua_TValue* %42, i32 0, i32 0 ; [#uses=1]
+ %44 = getelementptr inbounds %union.anon* %43, i32 0, i32 0 ; [#uses=1]
+ %45 = bitcast double* %44 to i8** ; [#uses=1]
+ %46 = load i8** %45, align 4 ; [#uses=1]
+ %47 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.lua_TValue* %47, i32 0, i32 0 ; [#uses=1]
+ %49 = getelementptr inbounds %union.anon* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = bitcast double* %49 to i8** ; [#uses=1]
+ %51 = load i8** %50, align 4 ; [#uses=1]
+ %52 = icmp eq i8* %46, %51 ; [#uses=1]
+ %53 = zext i1 %52 to i32 ; [#uses=1]
+ store i32 %53, i32* %1
+ br label %67
+
+; <label>:54 ; preds = %12
+ %55 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.lua_TValue* %55, i32 0, i32 0 ; [#uses=1]
+ %57 = getelementptr inbounds %union.anon* %56, i32 0, i32 0 ; [#uses=1]
+ %58 = bitcast double* %57 to %union.GCObject** ; [#uses=1]
+ %59 = load %union.GCObject** %58, align 4 ; [#uses=1]
+ %60 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.lua_TValue* %60, i32 0, i32 0 ; [#uses=1]
+ %62 = getelementptr inbounds %union.anon* %61, i32 0, i32 0 ; [#uses=1]
+ %63 = bitcast double* %62 to %union.GCObject** ; [#uses=1]
+ %64 = load %union.GCObject** %63, align 4 ; [#uses=1]
+ %65 = icmp eq %union.GCObject* %59, %64 ; [#uses=1]
+ %66 = zext i1 %65 to i32 ; [#uses=1]
+ store i32 %66, i32* %1
+ br label %67
+
+; <label>:67 ; preds = %54, %41, %28, %17, %16, %11
+ %68 = load i32* %1 ; [#uses=1]
+ ret i32 %68
+}
+
+; [#uses=3]
+define hidden i32 @_Z10luaO_str2dPKcPd(i8* %s, double* %result) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=5]
+ %2 = alloca i8*, align 4 ; [#uses=4]
+ %3 = alloca double*, align 4 ; [#uses=3]
+ %endptr = alloca i8*, align 4 ; [#uses=10]
+ store i8* %s, i8** %2, align 4
+ store double* %result, double** %3, align 4
+ %4 = load i8** %2, align 4 ; [#uses=1]
+ %5 = call double @strtod(i8* %4, i8** %endptr) nounwind ; [#uses=1]
+ %6 = load double** %3, align 4 ; [#uses=1]
+ store double %5, double* %6
+ %7 = load i8** %endptr, align 4 ; [#uses=1]
+ %8 = load i8** %2, align 4 ; [#uses=1]
+ %9 = icmp eq i8* %7, %8 ; [#uses=1]
+ br i1 %9, label %10, label %11
+
+; <label>:10 ; preds = %0
+ store i32 0, i32* %1
+ br label %49
+
+; <label>:11 ; preds = %0
+ %12 = load i8** %endptr, align 4 ; [#uses=1]
+ %13 = load i8* %12 ; [#uses=1]
+ %14 = sext i8 %13 to i32 ; [#uses=1]
+ %15 = icmp eq i32 %14, 120 ; [#uses=1]
+ br i1 %15, label %21, label %16
+
+; <label>:16 ; preds = %11
+ %17 = load i8** %endptr, align 4 ; [#uses=1]
+ %18 = load i8* %17 ; [#uses=1]
+ %19 = sext i8 %18 to i32 ; [#uses=1]
+ %20 = icmp eq i32 %19, 88 ; [#uses=1]
+ br i1 %20, label %21, label %26
+
+; <label>:21 ; preds = %16, %11
+ %22 = load i8** %2, align 4 ; [#uses=1]
+ %23 = call i32 @strtoul(i8* %22, i8** %endptr, i32 16) nounwind ; [#uses=1]
+ %24 = uitofp i32 %23 to double ; [#uses=1]
+ %25 = load double** %3, align 4 ; [#uses=1]
+ store double %24, double* %25
+ br label %26
+
+; <label>:26 ; preds = %21, %16
+ %27 = load i8** %endptr, align 4 ; [#uses=1]
+ %28 = load i8* %27 ; [#uses=1]
+ %29 = sext i8 %28 to i32 ; [#uses=1]
+ %30 = icmp eq i32 %29, 0 ; [#uses=1]
+ br i1 %30, label %31, label %32
+
+; <label>:31 ; preds = %26
+ store i32 1, i32* %1
+ br label %49
+
+; <label>:32 ; preds = %26
+ br label %33
+
+; <label>:33 ; preds = %39, %32
+ %34 = load i8** %endptr, align 4 ; [#uses=1]
+ %35 = load i8* %34 ; [#uses=1]
+ %36 = zext i8 %35 to i32 ; [#uses=1]
+ %37 = call i32 @isspace(i32 %36) nounwind ; [#uses=1]
+ %38 = icmp ne i32 %37, 0 ; [#uses=1]
+ br i1 %38, label %39, label %42
+
+; <label>:39 ; preds = %33
+ %40 = load i8** %endptr, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds i8* %40, i32 1 ; [#uses=1]
+ store i8* %41, i8** %endptr, align 4
+ br label %33
+
+; <label>:42 ; preds = %33
+ %43 = load i8** %endptr, align 4 ; [#uses=1]
+ %44 = load i8* %43 ; [#uses=1]
+ %45 = sext i8 %44 to i32 ; [#uses=1]
+ %46 = icmp ne i32 %45, 0 ; [#uses=1]
+ br i1 %46, label %47, label %48
+
+; <label>:47 ; preds = %42
+ store i32 0, i32* %1
+ br label %49
+
+; <label>:48 ; preds = %42
+ store i32 1, i32* %1
+ br label %49
+
+; <label>:49 ; preds = %48, %47, %31, %10
+ %50 = load i32* %1 ; [#uses=1]
+ ret i32 %50
+}
+
+; [#uses=1]
+declare double @strtod(i8*, i8**) nounwind
+
+; [#uses=2]
+declare i32 @strtoul(i8*, i8**, i32) nounwind
+
+; [#uses=4]
+define hidden i8* @_Z17luaO_pushvfstringP9lua_StatePKcPc(%struct.lua_State* %L, i8* %fmt, i8* %argp) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=29]
+ %2 = alloca i8*, align 4 ; [#uses=6]
+ %3 = alloca i8*, align 4 ; [#uses=11]
+ %n = alloca i32, align 4 ; [#uses=5]
+ %e = alloca i8*, align 4 ; [#uses=6]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %s = alloca i8*, align 4 ; [#uses=4]
+ %buff = alloca [2 x i8], align 1 ; [#uses=3]
+ %i_o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %buff3 = alloca [24 x i8], align 1 ; [#uses=2]
+ %buff4 = alloca [3 x i8], align 1 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %fmt, i8** %2, align 4
+ store i8* %argp, i8** %3, align 4
+ store i32 1, i32* %n, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z7pushstrP9lua_StatePKc(%struct.lua_State* %4, i8* getelementptr inbounds ([1 x i8]* @.str77, i32 0, i32 0))
+ br label %5
+
+; <label>:5 ; preds = %162, %0
+ %6 = load i8** %2, align 4 ; [#uses=1]
+ %7 = call i8* @strchr(i8* %6, i32 37) ; [#uses=1]
+ store i8* %7, i8** %e, align 4
+ %8 = load i8** %e, align 4 ; [#uses=1]
+ %9 = icmp eq i8* %8, null ; [#uses=1]
+ br i1 %9, label %10, label %11
+
+; <label>:10 ; preds = %5
+ br label %167
+
+; <label>:11 ; preds = %5
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.lua_State* %12, i32 0, i32 4 ; [#uses=1]
+ %14 = load %struct.lua_TValue** %13, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %14, %struct.lua_TValue** %i_o, align 4
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = load i8** %2, align 4 ; [#uses=1]
+ %17 = load i8** %e, align 4 ; [#uses=1]
+ %18 = load i8** %2, align 4 ; [#uses=1]
+ %19 = ptrtoint i8* %17 to i32 ; [#uses=1]
+ %20 = ptrtoint i8* %18 to i32 ; [#uses=1]
+ %21 = sub i32 %19, %20 ; [#uses=1]
+ %22 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %15, i8* %16, i32 %21) ; [#uses=1]
+ %23 = bitcast %union.TString* %22 to %union.GCObject* ; [#uses=1]
+ %24 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.lua_TValue* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = getelementptr inbounds %union.anon* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = bitcast double* %26 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %23, %union.GCObject** %27, align 4
+ %28 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_TValue* %28, i32 0, i32 1 ; [#uses=1]
+ store i32 4, i32* %29, align 4
+ %30 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_State* %30, i32 0, i32 9 ; [#uses=1]
+ %32 = load %struct.lua_TValue** %31, align 4 ; [#uses=1]
+ %33 = bitcast %struct.lua_TValue* %32 to i8* ; [#uses=1]
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_State* %34, i32 0, i32 4 ; [#uses=1]
+ %36 = load %struct.lua_TValue** %35, align 4 ; [#uses=1]
+ %37 = bitcast %struct.lua_TValue* %36 to i8* ; [#uses=1]
+ %38 = ptrtoint i8* %33 to i32 ; [#uses=1]
+ %39 = ptrtoint i8* %37 to i32 ; [#uses=1]
+ %40 = sub i32 %38, %39 ; [#uses=1]
+ %41 = icmp sle i32 %40, 12 ; [#uses=1]
+ br i1 %41, label %42, label %44
+
+; <label>:42 ; preds = %11
+ %43 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %43, i32 1)
+ br label %45
+
+; <label>:44 ; preds = %11
+ br label %45
+
+; <label>:45 ; preds = %44, %42
+ %46 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.lua_State* %46, i32 0, i32 4 ; [#uses=2]
+ %48 = load %struct.lua_TValue** %47, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.lua_TValue* %48, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %49, %struct.lua_TValue** %47, align 4
+ %50 = load i8** %e, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds i8* %50, i32 1 ; [#uses=1]
+ %52 = load i8* %51 ; [#uses=1]
+ %53 = sext i8 %52 to i32 ; [#uses=1]
+ switch i32 %53, label %153 [
+ i32 115, label %54
+ i32 99, label %65
+ i32 100, label %75
+ i32 102, label %109
+ i32 112, label %142
+ i32 37, label %151
+ ]
+
+; <label>:54 ; preds = %45
+ %55 = load i8** %3 ; [#uses=2]
+ %56 = bitcast i8* %55 to i8** ; [#uses=1]
+ %57 = getelementptr i8* %55, i32 4 ; [#uses=1]
+ store i8* %57, i8** %3
+ %58 = load i8** %56 ; [#uses=1]
+ store i8* %58, i8** %s, align 4
+ %59 = load i8** %s, align 4 ; [#uses=1]
+ %60 = icmp eq i8* %59, null ; [#uses=1]
+ br i1 %60, label %61, label %62
+
+; <label>:61 ; preds = %54
+ store i8* getelementptr inbounds ([7 x i8]* @.str178, i32 0, i32 0), i8** %s, align 4
+ br label %62
+
+; <label>:62 ; preds = %61, %54
+ %63 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %64 = load i8** %s, align 4 ; [#uses=1]
+ call void @_Z7pushstrP9lua_StatePKc(%struct.lua_State* %63, i8* %64)
+ br label %162
+
+; <label>:65 ; preds = %45
+ %66 = load i8** %3 ; [#uses=2]
+ %67 = bitcast i8* %66 to i32* ; [#uses=1]
+ %68 = getelementptr i8* %66, i32 4 ; [#uses=1]
+ store i8* %68, i8** %3
+ %69 = load i32* %67 ; [#uses=1]
+ %70 = trunc i32 %69 to i8 ; [#uses=1]
+ %71 = getelementptr inbounds [2 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ store i8 %70, i8* %71
+ %72 = getelementptr inbounds [2 x i8]* %buff, i32 0, i32 1 ; [#uses=1]
+ store i8 0, i8* %72
+ %73 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds [2 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ call void @_Z7pushstrP9lua_StatePKc(%struct.lua_State* %73, i8* %74)
+ br label %162
+
+; <label>:75 ; preds = %45
+ %76 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %77 = getelementptr inbounds %struct.lua_State* %76, i32 0, i32 4 ; [#uses=1]
+ %78 = load %struct.lua_TValue** %77, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %78, %struct.lua_TValue** %i_o1, align 4
+ %79 = load i8** %3 ; [#uses=2]
+ %80 = bitcast i8* %79 to i32* ; [#uses=1]
+ %81 = getelementptr i8* %79, i32 4 ; [#uses=1]
+ store i8* %81, i8** %3
+ %82 = load i32* %80 ; [#uses=1]
+ %83 = sitofp i32 %82 to double ; [#uses=1]
+ %84 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %struct.lua_TValue* %84, i32 0, i32 0 ; [#uses=1]
+ %86 = getelementptr inbounds %union.anon* %85, i32 0, i32 0 ; [#uses=1]
+ store double %83, double* %86, align 4
+ %87 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %88 = getelementptr inbounds %struct.lua_TValue* %87, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %88, align 4
+ %89 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %90 = getelementptr inbounds %struct.lua_State* %89, i32 0, i32 9 ; [#uses=1]
+ %91 = load %struct.lua_TValue** %90, align 4 ; [#uses=1]
+ %92 = bitcast %struct.lua_TValue* %91 to i8* ; [#uses=1]
+ %93 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %94 = getelementptr inbounds %struct.lua_State* %93, i32 0, i32 4 ; [#uses=1]
+ %95 = load %struct.lua_TValue** %94, align 4 ; [#uses=1]
+ %96 = bitcast %struct.lua_TValue* %95 to i8* ; [#uses=1]
+ %97 = ptrtoint i8* %92 to i32 ; [#uses=1]
+ %98 = ptrtoint i8* %96 to i32 ; [#uses=1]
+ %99 = sub i32 %97, %98 ; [#uses=1]
+ %100 = icmp sle i32 %99, 12 ; [#uses=1]
+ br i1 %100, label %101, label %103
+
+; <label>:101 ; preds = %75
+ %102 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %102, i32 1)
+ br label %104
+
+; <label>:103 ; preds = %75
+ br label %104
+
+; <label>:104 ; preds = %103, %101
+ %105 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %106 = getelementptr inbounds %struct.lua_State* %105, i32 0, i32 4 ; [#uses=2]
+ %107 = load %struct.lua_TValue** %106, align 4 ; [#uses=1]
+ %108 = getelementptr inbounds %struct.lua_TValue* %107, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %108, %struct.lua_TValue** %106, align 4
+ br label %162
+
+; <label>:109 ; preds = %45
+ %110 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %111 = getelementptr inbounds %struct.lua_State* %110, i32 0, i32 4 ; [#uses=1]
+ %112 = load %struct.lua_TValue** %111, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %112, %struct.lua_TValue** %i_o2, align 4
+ %113 = load i8** %3 ; [#uses=2]
+ %114 = bitcast i8* %113 to double* ; [#uses=1]
+ %115 = getelementptr i8* %113, i32 8 ; [#uses=1]
+ store i8* %115, i8** %3
+ %116 = load double* %114 ; [#uses=1]
+ %117 = load %struct.lua_TValue** %i_o2, align 4 ; [#uses=1]
+ %118 = getelementptr inbounds %struct.lua_TValue* %117, i32 0, i32 0 ; [#uses=1]
+ %119 = getelementptr inbounds %union.anon* %118, i32 0, i32 0 ; [#uses=1]
+ store double %116, double* %119, align 4
+ %120 = load %struct.lua_TValue** %i_o2, align 4 ; [#uses=1]
+ %121 = getelementptr inbounds %struct.lua_TValue* %120, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %121, align 4
+ %122 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %123 = getelementptr inbounds %struct.lua_State* %122, i32 0, i32 9 ; [#uses=1]
+ %124 = load %struct.lua_TValue** %123, align 4 ; [#uses=1]
+ %125 = bitcast %struct.lua_TValue* %124 to i8* ; [#uses=1]
+ %126 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %127 = getelementptr inbounds %struct.lua_State* %126, i32 0, i32 4 ; [#uses=1]
+ %128 = load %struct.lua_TValue** %127, align 4 ; [#uses=1]
+ %129 = bitcast %struct.lua_TValue* %128 to i8* ; [#uses=1]
+ %130 = ptrtoint i8* %125 to i32 ; [#uses=1]
+ %131 = ptrtoint i8* %129 to i32 ; [#uses=1]
+ %132 = sub i32 %130, %131 ; [#uses=1]
+ %133 = icmp sle i32 %132, 12 ; [#uses=1]
+ br i1 %133, label %134, label %136
+
+; <label>:134 ; preds = %109
+ %135 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %135, i32 1)
+ br label %137
+
+; <label>:136 ; preds = %109
+ br label %137
+
+; <label>:137 ; preds = %136, %134
+ %138 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %139 = getelementptr inbounds %struct.lua_State* %138, i32 0, i32 4 ; [#uses=2]
+ %140 = load %struct.lua_TValue** %139, align 4 ; [#uses=1]
+ %141 = getelementptr inbounds %struct.lua_TValue* %140, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %141, %struct.lua_TValue** %139, align 4
+ br label %162
+
+; <label>:142 ; preds = %45
+ %143 = getelementptr inbounds [24 x i8]* %buff3, i32 0, i32 0 ; [#uses=1]
+ %144 = load i8** %3 ; [#uses=2]
+ %145 = bitcast i8* %144 to i8** ; [#uses=1]
+ %146 = getelementptr i8* %144, i32 4 ; [#uses=1]
+ store i8* %146, i8** %3
+ %147 = load i8** %145 ; [#uses=1]
+ %148 = call i32 (i8*, i8*, ...)* @sprintf(i8* %143, i8* getelementptr inbounds ([3 x i8]* @.str279, i32 0, i32 0), i8* %147) ; [#uses=0]
+ %149 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %150 = getelementptr inbounds [24 x i8]* %buff3, i32 0, i32 0 ; [#uses=1]
+ call void @_Z7pushstrP9lua_StatePKc(%struct.lua_State* %149, i8* %150)
+ br label %162
+
+; <label>:151 ; preds = %45
+ %152 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z7pushstrP9lua_StatePKc(%struct.lua_State* %152, i8* getelementptr inbounds ([2 x i8]* @.str380, i32 0, i32 0))
+ br label %162
+
+; <label>:153 ; preds = %45
+ %154 = getelementptr inbounds [3 x i8]* %buff4, i32 0, i32 0 ; [#uses=1]
+ store i8 37, i8* %154
+ %155 = load i8** %e, align 4 ; [#uses=1]
+ %156 = getelementptr inbounds i8* %155, i32 1 ; [#uses=1]
+ %157 = load i8* %156 ; [#uses=1]
+ %158 = getelementptr inbounds [3 x i8]* %buff4, i32 0, i32 1 ; [#uses=1]
+ store i8 %157, i8* %158
+ %159 = getelementptr inbounds [3 x i8]* %buff4, i32 0, i32 2 ; [#uses=1]
+ store i8 0, i8* %159
+ %160 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %161 = getelementptr inbounds [3 x i8]* %buff4, i32 0, i32 0 ; [#uses=1]
+ call void @_Z7pushstrP9lua_StatePKc(%struct.lua_State* %160, i8* %161)
+ br label %162
+
+; <label>:162 ; preds = %153, %151, %142, %137, %104, %65, %62
+ %163 = load i32* %n, align 4 ; [#uses=1]
+ %164 = add nsw i32 %163, 2 ; [#uses=1]
+ store i32 %164, i32* %n, align 4
+ %165 = load i8** %e, align 4 ; [#uses=1]
+ %166 = getelementptr inbounds i8* %165, i32 2 ; [#uses=1]
+ store i8* %166, i8** %2, align 4
+ br label %5
+
+; <label>:167 ; preds = %10
+ %168 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %169 = load i8** %2, align 4 ; [#uses=1]
+ call void @_Z7pushstrP9lua_StatePKc(%struct.lua_State* %168, i8* %169)
+ %170 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %171 = load i32* %n, align 4 ; [#uses=1]
+ %172 = add nsw i32 %171, 1 ; [#uses=1]
+ %173 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %174 = getelementptr inbounds %struct.lua_State* %173, i32 0, i32 4 ; [#uses=1]
+ %175 = load %struct.lua_TValue** %174, align 4 ; [#uses=1]
+ %176 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %177 = getelementptr inbounds %struct.lua_State* %176, i32 0, i32 5 ; [#uses=1]
+ %178 = load %struct.lua_TValue** %177, align 4 ; [#uses=1]
+ %179 = ptrtoint %struct.lua_TValue* %175 to i32 ; [#uses=1]
+ %180 = ptrtoint %struct.lua_TValue* %178 to i32 ; [#uses=1]
+ %181 = sub i32 %179, %180 ; [#uses=1]
+ %182 = sdiv exact i32 %181, 12 ; [#uses=1]
+ %183 = sub nsw i32 %182, 1 ; [#uses=1]
+ call void @_Z11luaV_concatP9lua_Stateii(%struct.lua_State* %170, i32 %172, i32 %183)
+ %184 = load i32* %n, align 4 ; [#uses=1]
+ %185 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %186 = getelementptr inbounds %struct.lua_State* %185, i32 0, i32 4 ; [#uses=2]
+ %187 = load %struct.lua_TValue** %186, align 4 ; [#uses=1]
+ %188 = sub i32 0, %184 ; [#uses=1]
+ %189 = getelementptr inbounds %struct.lua_TValue* %187, i32 %188 ; [#uses=1]
+ store %struct.lua_TValue* %189, %struct.lua_TValue** %186, align 4
+ %190 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %191 = getelementptr inbounds %struct.lua_State* %190, i32 0, i32 4 ; [#uses=1]
+ %192 = load %struct.lua_TValue** %191, align 4 ; [#uses=1]
+ %193 = getelementptr inbounds %struct.lua_TValue* %192, i32 -1 ; [#uses=1]
+ %194 = getelementptr inbounds %struct.lua_TValue* %193, i32 0, i32 0 ; [#uses=1]
+ %195 = getelementptr inbounds %union.anon* %194, i32 0, i32 0 ; [#uses=1]
+ %196 = bitcast double* %195 to %union.GCObject** ; [#uses=1]
+ %197 = load %union.GCObject** %196, align 4 ; [#uses=1]
+ %198 = getelementptr inbounds %union.GCObject* %197, i32 0, i32 0 ; [#uses=1]
+ %199 = bitcast %struct.lua_State* %198 to %union.TString* ; [#uses=1]
+ %200 = getelementptr inbounds %union.TString* %199, i32 1 ; [#uses=1]
+ %201 = bitcast %union.TString* %200 to i8* ; [#uses=1]
+ ret i8* %201
+}
+
+; [#uses=7]
+define internal void @_Z7pushstrP9lua_StatePKc(%struct.lua_State* %L, i8* %str) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %2 = alloca i8*, align 4 ; [#uses=3]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %str, i8** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 4 ; [#uses=1]
+ %5 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %5, %struct.lua_TValue** %i_o, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load i8** %2, align 4 ; [#uses=1]
+ %8 = load i8** %2, align 4 ; [#uses=1]
+ %9 = call i32 @strlen(i8* %8) ; [#uses=1]
+ %10 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %6, i8* %7, i32 %9) ; [#uses=1]
+ %11 = bitcast %union.TString* %10 to %union.GCObject* ; [#uses=1]
+ %12 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.lua_TValue* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = getelementptr inbounds %union.anon* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = bitcast double* %14 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %11, %union.GCObject** %15, align 4
+ %16 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_TValue* %16, i32 0, i32 1 ; [#uses=1]
+ store i32 4, i32* %17, align 4
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_State* %18, i32 0, i32 9 ; [#uses=1]
+ %20 = load %struct.lua_TValue** %19, align 4 ; [#uses=1]
+ %21 = bitcast %struct.lua_TValue* %20 to i8* ; [#uses=1]
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_State* %22, i32 0, i32 4 ; [#uses=1]
+ %24 = load %struct.lua_TValue** %23, align 4 ; [#uses=1]
+ %25 = bitcast %struct.lua_TValue* %24 to i8* ; [#uses=1]
+ %26 = ptrtoint i8* %21 to i32 ; [#uses=1]
+ %27 = ptrtoint i8* %25 to i32 ; [#uses=1]
+ %28 = sub i32 %26, %27 ; [#uses=1]
+ %29 = icmp sle i32 %28, 12 ; [#uses=1]
+ br i1 %29, label %30, label %32
+
+; <label>:30 ; preds = %0
+ %31 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %31, i32 1)
+ br label %33
+
+; <label>:32 ; preds = %0
+ br label %33
+
+; <label>:33 ; preds = %32, %30
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_State* %34, i32 0, i32 4 ; [#uses=2]
+ %36 = load %struct.lua_TValue** %35, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.lua_TValue* %36, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %37, %struct.lua_TValue** %35, align 4
+ ret void
+}
+
+; [#uses=7]
+declare i32 @sprintf(i8*, i8*, ...) nounwind
+
+; [#uses=10]
+define hidden i8* @_Z16luaO_pushfstringP9lua_StatePKcz(%struct.lua_State* %L, i8* %fmt, ...) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %msg = alloca i8*, align 4 ; [#uses=2]
+ %argp = alloca i8*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %fmt, i8** %2, align 4
+ %3 = bitcast i8** %argp to i8* ; [#uses=1]
+ call void @llvm.va_start(i8* %3)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i8** %2, align 4 ; [#uses=1]
+ %6 = load i8** %argp, align 4 ; [#uses=1]
+ %7 = call i8* @_Z17luaO_pushvfstringP9lua_StatePKcPc(%struct.lua_State* %4, i8* %5, i8* %6) ; [#uses=1]
+ store i8* %7, i8** %msg, align 4
+ %8 = bitcast i8** %argp to i8* ; [#uses=1]
+ call void @llvm.va_end(i8* %8)
+ %9 = load i8** %msg, align 4 ; [#uses=1]
+ ret i8* %9
+}
+
+; [#uses=4]
+define hidden void @_Z12luaO_chunkidPcPKcj(i8* %out, i8* %source, i32 %bufflen) nounwind {
+ %1 = alloca i8*, align 4 ; [#uses=11]
+ %2 = alloca i8*, align 4 ; [#uses=14]
+ %3 = alloca i32, align 4 ; [#uses=11]
+ %l = alloca i32, align 4 ; [#uses=3]
+ %len = alloca i32, align 4 ; [#uses=5]
+ store i8* %out, i8** %1, align 4
+ store i8* %source, i8** %2, align 4
+ store i32 %bufflen, i32* %3, align 4
+ %4 = load i8** %2, align 4 ; [#uses=1]
+ %5 = load i8* %4 ; [#uses=1]
+ %6 = sext i8 %5 to i32 ; [#uses=1]
+ %7 = icmp eq i32 %6, 61 ; [#uses=1]
+ br i1 %7, label %8, label %18
+
+; <label>:8 ; preds = %0
+ %9 = load i8** %1, align 4 ; [#uses=1]
+ %10 = load i8** %2, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds i8* %10, i32 1 ; [#uses=1]
+ %12 = load i32* %3, align 4 ; [#uses=1]
+ %13 = call i8* @strncpy(i8* %9, i8* %11, i32 %12) ; [#uses=0]
+ %14 = load i32* %3, align 4 ; [#uses=1]
+ %15 = sub i32 %14, 1 ; [#uses=1]
+ %16 = load i8** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds i8* %16, i32 %15 ; [#uses=1]
+ store i8 0, i8* %17
+ br label %81
+
+; <label>:18 ; preds = %0
+ %19 = load i8** %2, align 4 ; [#uses=1]
+ %20 = load i8* %19 ; [#uses=1]
+ %21 = sext i8 %20 to i32 ; [#uses=1]
+ %22 = icmp eq i32 %21, 64 ; [#uses=1]
+ br i1 %22, label %23, label %47
+
+; <label>:23 ; preds = %18
+ %24 = load i8** %2, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds i8* %24, i32 1 ; [#uses=1]
+ store i8* %25, i8** %2, align 4
+ %26 = load i32* %3, align 4 ; [#uses=1]
+ %27 = sub i32 %26, 8 ; [#uses=1]
+ store i32 %27, i32* %3, align 4
+ %28 = load i8** %2, align 4 ; [#uses=1]
+ %29 = call i32 @strlen(i8* %28) ; [#uses=1]
+ store i32 %29, i32* %l, align 4
+ %30 = load i8** %1, align 4 ; [#uses=1]
+ %31 = call i8* @strcpy(i8* %30, i8* getelementptr inbounds ([1 x i8]* @.str77, i32 0, i32 0)) ; [#uses=0]
+ %32 = load i32* %l, align 4 ; [#uses=1]
+ %33 = load i32* %3, align 4 ; [#uses=1]
+ %34 = icmp ugt i32 %32, %33 ; [#uses=1]
+ br i1 %34, label %35, label %43
+
+; <label>:35 ; preds = %23
+ %36 = load i32* %l, align 4 ; [#uses=1]
+ %37 = load i32* %3, align 4 ; [#uses=1]
+ %38 = sub i32 %36, %37 ; [#uses=1]
+ %39 = load i8** %2, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds i8* %39, i32 %38 ; [#uses=1]
+ store i8* %40, i8** %2, align 4
+ %41 = load i8** %1, align 4 ; [#uses=1]
+ %42 = call i8* @strcat(i8* %41, i8* getelementptr inbounds ([4 x i8]* @.str481, i32 0, i32 0)) ; [#uses=0]
+ br label %43
+
+; <label>:43 ; preds = %35, %23
+ %44 = load i8** %1, align 4 ; [#uses=1]
+ %45 = load i8** %2, align 4 ; [#uses=1]
+ %46 = call i8* @strcat(i8* %44, i8* %45) ; [#uses=0]
+ br label %80
+
+; <label>:47 ; preds = %18
+ %48 = load i8** %2, align 4 ; [#uses=1]
+ %49 = call i32 @strcspn(i8* %48, i8* getelementptr inbounds ([3 x i8]* @.str582, i32 0, i32 0)) ; [#uses=1]
+ store i32 %49, i32* %len, align 4
+ %50 = load i32* %3, align 4 ; [#uses=1]
+ %51 = sub i32 %50, 17 ; [#uses=1]
+ store i32 %51, i32* %3, align 4
+ %52 = load i32* %len, align 4 ; [#uses=1]
+ %53 = load i32* %3, align 4 ; [#uses=1]
+ %54 = icmp ugt i32 %52, %53 ; [#uses=1]
+ br i1 %54, label %55, label %57
+
+; <label>:55 ; preds = %47
+ %56 = load i32* %3, align 4 ; [#uses=1]
+ store i32 %56, i32* %len, align 4
+ br label %57
+
+; <label>:57 ; preds = %55, %47
+ %58 = load i8** %1, align 4 ; [#uses=1]
+ %59 = call i8* @strcpy(i8* %58, i8* getelementptr inbounds ([10 x i8]* @.str683, i32 0, i32 0)) ; [#uses=0]
+ %60 = load i32* %len, align 4 ; [#uses=1]
+ %61 = load i8** %2, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds i8* %61, i32 %60 ; [#uses=1]
+ %63 = load i8* %62 ; [#uses=1]
+ %64 = sext i8 %63 to i32 ; [#uses=1]
+ %65 = icmp ne i32 %64, 0 ; [#uses=1]
+ br i1 %65, label %66, label %73
+
+; <label>:66 ; preds = %57
+ %67 = load i8** %1, align 4 ; [#uses=1]
+ %68 = load i8** %2, align 4 ; [#uses=1]
+ %69 = load i32* %len, align 4 ; [#uses=1]
+ %70 = call i8* @strncat(i8* %67, i8* %68, i32 %69) ; [#uses=0]
+ %71 = load i8** %1, align 4 ; [#uses=1]
+ %72 = call i8* @strcat(i8* %71, i8* getelementptr inbounds ([4 x i8]* @.str481, i32 0, i32 0)) ; [#uses=0]
+ br label %77
+
+; <label>:73 ; preds = %57
+ %74 = load i8** %1, align 4 ; [#uses=1]
+ %75 = load i8** %2, align 4 ; [#uses=1]
+ %76 = call i8* @strcat(i8* %74, i8* %75) ; [#uses=0]
+ br label %77
+
+; <label>:77 ; preds = %73, %66
+ %78 = load i8** %1, align 4 ; [#uses=1]
+ %79 = call i8* @strcat(i8* %78, i8* getelementptr inbounds ([3 x i8]* @.str784, i32 0, i32 0)) ; [#uses=0]
+ br label %80
+
+; <label>:80 ; preds = %77, %43
+ br label %81
+
+; <label>:81 ; preds = %80, %8
+ ret void
+}
+
+; [#uses=2]
+declare i8* @strncpy(i8*, i8*, i32) nounwind
+
+; [#uses=3]
+declare i8* @strcpy(i8*, i8*) nounwind
+
+; [#uses=5]
+declare i8* @strcat(i8*, i8*) nounwind
+
+; [#uses=1]
+declare i32 @strcspn(i8*, i8*) nounwind readonly
+
+; [#uses=1]
+declare i8* @strncat(i8*, i8*, i32) nounwind
+
+; [#uses=1]
+define hidden %struct.Proto* @_Z11luaY_parserP9lua_StateP3ZioP7MbufferPKc(%struct.lua_State* %L, %struct.Zio* %z, %struct.Mbuffer* %buff, i8* %name) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca %struct.Zio*, align 4 ; [#uses=2]
+ %3 = alloca %struct.Mbuffer*, align 4 ; [#uses=2]
+ %4 = alloca i8*, align 4 ; [#uses=3]
+ %lexstate = alloca %struct.LexState, align 4 ; [#uses=7]
+ %funcstate = alloca %struct.FuncState, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.Zio* %z, %struct.Zio** %2, align 4
+ store %struct.Mbuffer* %buff, %struct.Mbuffer** %3, align 4
+ store i8* %name, i8** %4, align 4
+ %5 = load %struct.Mbuffer** %3, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LexState* %lexstate, i32 0, i32 8 ; [#uses=1]
+ store %struct.Mbuffer* %5, %struct.Mbuffer** %6, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = load i8** %4, align 4 ; [#uses=1]
+ %11 = load i8** %4, align 4 ; [#uses=1]
+ %12 = call i32 @strlen(i8* %11) ; [#uses=1]
+ %13 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %9, i8* %10, i32 %12) ; [#uses=1]
+ call void @_Z13luaX_setinputP9lua_StateP8LexStateP3ZioP7TString(%struct.lua_State* %7, %struct.LexState* %lexstate, %struct.Zio* %8, %union.TString* %13)
+ call void @_Z9open_funcP8LexStateP9FuncState(%struct.LexState* %lexstate, %struct.FuncState* %funcstate)
+ %14 = getelementptr inbounds %struct.FuncState* %funcstate, i32 0, i32 0 ; [#uses=1]
+ %15 = load %struct.Proto** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.Proto* %15, i32 0, i32 21 ; [#uses=1]
+ store i8 2, i8* %16, align 1
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %lexstate)
+ call void @_Z5chunkP8LexState(%struct.LexState* %lexstate)
+ call void @_Z5checkP8LexStatei(%struct.LexState* %lexstate, i32 287)
+ call void @_Z10close_funcP8LexState(%struct.LexState* %lexstate)
+ %17 = getelementptr inbounds %struct.FuncState* %funcstate, i32 0, i32 0 ; [#uses=1]
+ %18 = load %struct.Proto** %17, align 4 ; [#uses=1]
+ ret %struct.Proto* %18
+}
+
+; [#uses=2]
+define internal void @_Z9open_funcP8LexStateP9FuncState(%struct.LexState* %ls, %struct.FuncState* %fs) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=6]
+ %2 = alloca %struct.FuncState*, align 4 ; [#uses=17]
+ %L = alloca %struct.lua_State*, align 4 ; [#uses=14]
+ %f = alloca %struct.Proto*, align 4 ; [#uses=5]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.FuncState* %fs, %struct.FuncState** %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 6 ; [#uses=1]
+ %5 = load %struct.lua_State** %4, align 4 ; [#uses=1]
+ store %struct.lua_State* %5, %struct.lua_State** %L, align 4
+ %6 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %7 = call %struct.Proto* @_Z13luaF_newprotoP9lua_State(%struct.lua_State* %6) ; [#uses=1]
+ store %struct.Proto* %7, %struct.Proto** %f, align 4
+ %8 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %9 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.FuncState* %9, i32 0, i32 0 ; [#uses=1]
+ store %struct.Proto* %8, %struct.Proto** %10, align 4
+ %11 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.LexState* %11, i32 0, i32 5 ; [#uses=1]
+ %13 = load %struct.FuncState** %12, align 4 ; [#uses=1]
+ %14 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.FuncState* %14, i32 0, i32 2 ; [#uses=1]
+ store %struct.FuncState* %13, %struct.FuncState** %15, align 4
+ %16 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %17 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.FuncState* %17, i32 0, i32 3 ; [#uses=1]
+ store %struct.LexState* %16, %struct.LexState** %18, align 4
+ %19 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %20 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.FuncState* %20, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_State* %19, %struct.lua_State** %21, align 4
+ %22 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %23 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.LexState* %23, i32 0, i32 5 ; [#uses=1]
+ store %struct.FuncState* %22, %struct.FuncState** %24, align 4
+ %25 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.FuncState* %25, i32 0, i32 6 ; [#uses=1]
+ store i32 0, i32* %26, align 4
+ %27 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.FuncState* %27, i32 0, i32 7 ; [#uses=1]
+ store i32 -1, i32* %28, align 4
+ %29 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.FuncState* %29, i32 0, i32 8 ; [#uses=1]
+ store i32 -1, i32* %30, align 4
+ %31 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.FuncState* %31, i32 0, i32 9 ; [#uses=1]
+ store i32 0, i32* %32, align 4
+ %33 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.FuncState* %33, i32 0, i32 10 ; [#uses=1]
+ store i32 0, i32* %34, align 4
+ %35 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.FuncState* %35, i32 0, i32 11 ; [#uses=1]
+ store i32 0, i32* %36, align 4
+ %37 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.FuncState* %37, i32 0, i32 12 ; [#uses=1]
+ store i16 0, i16* %38, align 2
+ %39 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.FuncState* %39, i32 0, i32 13 ; [#uses=1]
+ store i8 0, i8* %40, align 1
+ %41 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.FuncState* %41, i32 0, i32 5 ; [#uses=1]
+ store %struct.BlockCnt* null, %struct.BlockCnt** %42, align 4
+ %43 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.LexState* %43, i32 0, i32 9 ; [#uses=1]
+ %45 = load %union.TString** %44, align 4 ; [#uses=1]
+ %46 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.Proto* %46, i32 0, i32 9 ; [#uses=1]
+ store %union.TString* %45, %union.TString** %47, align 4
+ %48 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.Proto* %48, i32 0, i32 22 ; [#uses=1]
+ store i8 2, i8* %49, align 1
+ %50 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %51 = call %struct.Table* @_Z8luaH_newP9lua_Stateii(%struct.lua_State* %50, i32 0, i32 0) ; [#uses=1]
+ %52 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.FuncState* %52, i32 0, i32 1 ; [#uses=1]
+ store %struct.Table* %51, %struct.Table** %53, align 4
+ %54 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.lua_State* %54, i32 0, i32 4 ; [#uses=1]
+ %56 = load %struct.lua_TValue** %55, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %56, %struct.lua_TValue** %i_o, align 4
+ %57 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.FuncState* %57, i32 0, i32 1 ; [#uses=1]
+ %59 = load %struct.Table** %58, align 4 ; [#uses=1]
+ %60 = bitcast %struct.Table* %59 to %union.GCObject* ; [#uses=1]
+ %61 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds %struct.lua_TValue* %61, i32 0, i32 0 ; [#uses=1]
+ %63 = getelementptr inbounds %union.anon* %62, i32 0, i32 0 ; [#uses=1]
+ %64 = bitcast double* %63 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %60, %union.GCObject** %64, align 4
+ %65 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.lua_TValue* %65, i32 0, i32 1 ; [#uses=1]
+ store i32 5, i32* %66, align 4
+ %67 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.lua_State* %67, i32 0, i32 9 ; [#uses=1]
+ %69 = load %struct.lua_TValue** %68, align 4 ; [#uses=1]
+ %70 = bitcast %struct.lua_TValue* %69 to i8* ; [#uses=1]
+ %71 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.lua_State* %71, i32 0, i32 4 ; [#uses=1]
+ %73 = load %struct.lua_TValue** %72, align 4 ; [#uses=1]
+ %74 = bitcast %struct.lua_TValue* %73 to i8* ; [#uses=1]
+ %75 = ptrtoint i8* %70 to i32 ; [#uses=1]
+ %76 = ptrtoint i8* %74 to i32 ; [#uses=1]
+ %77 = sub i32 %75, %76 ; [#uses=1]
+ %78 = icmp sle i32 %77, 12 ; [#uses=1]
+ br i1 %78, label %79, label %81
+
+; <label>:79 ; preds = %0
+ %80 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %80, i32 1)
+ br label %82
+
+; <label>:81 ; preds = %0
+ br label %82
+
+; <label>:82 ; preds = %81, %79
+ %83 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %84 = getelementptr inbounds %struct.lua_State* %83, i32 0, i32 4 ; [#uses=2]
+ %85 = load %struct.lua_TValue** %84, align 4 ; [#uses=1]
+ %86 = getelementptr inbounds %struct.lua_TValue* %85, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %86, %struct.lua_TValue** %84, align 4
+ %87 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %88 = getelementptr inbounds %struct.lua_State* %87, i32 0, i32 4 ; [#uses=1]
+ %89 = load %struct.lua_TValue** %88, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %89, %struct.lua_TValue** %i_o1, align 4
+ %90 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %91 = bitcast %struct.Proto* %90 to %union.GCObject* ; [#uses=1]
+ %92 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %93 = getelementptr inbounds %struct.lua_TValue* %92, i32 0, i32 0 ; [#uses=1]
+ %94 = getelementptr inbounds %union.anon* %93, i32 0, i32 0 ; [#uses=1]
+ %95 = bitcast double* %94 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %91, %union.GCObject** %95, align 4
+ %96 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %97 = getelementptr inbounds %struct.lua_TValue* %96, i32 0, i32 1 ; [#uses=1]
+ store i32 9, i32* %97, align 4
+ %98 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %99 = getelementptr inbounds %struct.lua_State* %98, i32 0, i32 9 ; [#uses=1]
+ %100 = load %struct.lua_TValue** %99, align 4 ; [#uses=1]
+ %101 = bitcast %struct.lua_TValue* %100 to i8* ; [#uses=1]
+ %102 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %103 = getelementptr inbounds %struct.lua_State* %102, i32 0, i32 4 ; [#uses=1]
+ %104 = load %struct.lua_TValue** %103, align 4 ; [#uses=1]
+ %105 = bitcast %struct.lua_TValue* %104 to i8* ; [#uses=1]
+ %106 = ptrtoint i8* %101 to i32 ; [#uses=1]
+ %107 = ptrtoint i8* %105 to i32 ; [#uses=1]
+ %108 = sub i32 %106, %107 ; [#uses=1]
+ %109 = icmp sle i32 %108, 12 ; [#uses=1]
+ br i1 %109, label %110, label %112
+
+; <label>:110 ; preds = %82
+ %111 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %111, i32 1)
+ br label %113
+
+; <label>:112 ; preds = %82
+ br label %113
+
+; <label>:113 ; preds = %112, %110
+ %114 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %115 = getelementptr inbounds %struct.lua_State* %114, i32 0, i32 4 ; [#uses=2]
+ %116 = load %struct.lua_TValue** %115, align 4 ; [#uses=1]
+ %117 = getelementptr inbounds %struct.lua_TValue* %116, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %117, %struct.lua_TValue** %115, align 4
+ ret void
+}
+
+; [#uses=4]
+define internal void @_Z5chunkP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=8]
+ %islast = alloca i32, align 4 ; [#uses=3]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 0, i32* %islast, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z10enterlevelP8LexState(%struct.LexState* %2)
+ br label %3
+
+; <label>:3 ; preds = %16, %0
+ %4 = load i32* %islast, align 4 ; [#uses=1]
+ %5 = icmp ne i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %14, label %6
+
+; <label>:6 ; preds = %3
+ %7 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.LexState* %7, i32 0, i32 3 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.Token* %8, i32 0, i32 0 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ %11 = call i32 @_Z12block_followi(i32 %10) ; [#uses=1]
+ %12 = icmp ne i32 %11, 0 ; [#uses=1]
+ %13 = xor i1 %12, true ; [#uses=1]
+ br label %14
+
+; <label>:14 ; preds = %6, %3
+ %15 = phi i1 [ false, %3 ], [ %13, %6 ] ; [#uses=1]
+ br i1 %15, label %16, label %31
+
+; <label>:16 ; preds = %14
+ %17 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %18 = call i32 @_Z9statementP8LexState(%struct.LexState* %17) ; [#uses=1]
+ store i32 %18, i32* %islast, align 4
+ %19 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %20 = call i32 @_Z8testnextP8LexStatei(%struct.LexState* %19, i32 59) ; [#uses=0]
+ %21 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.LexState* %21, i32 0, i32 5 ; [#uses=1]
+ %23 = load %struct.FuncState** %22, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.FuncState* %23, i32 0, i32 13 ; [#uses=1]
+ %25 = load i8* %24, align 1 ; [#uses=1]
+ %26 = zext i8 %25 to i32 ; [#uses=1]
+ %27 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.LexState* %27, i32 0, i32 5 ; [#uses=1]
+ %29 = load %struct.FuncState** %28, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.FuncState* %29, i32 0, i32 9 ; [#uses=1]
+ store i32 %26, i32* %30, align 4
+ br label %3
+
+; <label>:31 ; preds = %14
+ %32 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.LexState* %32, i32 0, i32 6 ; [#uses=1]
+ %34 = load %struct.lua_State** %33, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_State* %34, i32 0, i32 15 ; [#uses=2]
+ %36 = load i16* %35, align 2 ; [#uses=1]
+ %37 = add i16 %36, -1 ; [#uses=1]
+ store i16 %37, i16* %35, align 2
+ ret void
+}
+
+; [#uses=3]
+define internal void @_Z5checkP8LexStatei(%struct.LexState* %ls, i32 %c) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 %c, i32* %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 3 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.Token* %4, i32 0, i32 0 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = load i32* %2, align 4 ; [#uses=1]
+ %8 = icmp ne i32 %6, %7 ; [#uses=1]
+ br i1 %8, label %9, label %12
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %11 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z14error_expectedP8LexStatei(%struct.LexState* %10, i32 %11)
+ br label %12
+
+; <label>:12 ; preds = %9, %0
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z10close_funcP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=6]
+ %L = alloca %struct.lua_State*, align 4 ; [#uses=14]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=20]
+ %f = alloca %struct.Proto*, align 4 ; [#uses=28]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.LexState* %2, i32 0, i32 6 ; [#uses=1]
+ %4 = load %struct.lua_State** %3, align 4 ; [#uses=1]
+ store %struct.lua_State* %4, %struct.lua_State** %L, align 4
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LexState* %5, i32 0, i32 5 ; [#uses=1]
+ %7 = load %struct.FuncState** %6, align 4 ; [#uses=1]
+ store %struct.FuncState* %7, %struct.FuncState** %fs, align 4
+ %8 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.FuncState* %8, i32 0, i32 0 ; [#uses=1]
+ %10 = load %struct.Proto** %9, align 4 ; [#uses=1]
+ store %struct.Proto* %10, %struct.Proto** %f, align 4
+ %11 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z10removevarsP8LexStatei(%struct.LexState* %11, i32 0)
+ %12 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z8luaK_retP9FuncStateii(%struct.FuncState* %12, i32 0, i32 0)
+ %13 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.FuncState* %13, i32 0, i32 6 ; [#uses=1]
+ %15 = load i32* %14, align 4 ; [#uses=1]
+ %16 = add nsw i32 %15, 1 ; [#uses=1]
+ %17 = icmp ule i32 %16, 1073741823 ; [#uses=1]
+ br i1 %17, label %18, label %33
+
+; <label>:18 ; preds = %0
+ %19 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %20 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.Proto* %20, i32 0, i32 4 ; [#uses=1]
+ %22 = load i32** %21, align 4 ; [#uses=1]
+ %23 = bitcast i32* %22 to i8* ; [#uses=1]
+ %24 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.Proto* %24, i32 0, i32 12 ; [#uses=1]
+ %26 = load i32* %25, align 4 ; [#uses=1]
+ %27 = mul i32 %26, 4 ; [#uses=1]
+ %28 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.FuncState* %28, i32 0, i32 6 ; [#uses=1]
+ %30 = load i32* %29, align 4 ; [#uses=1]
+ %31 = mul i32 %30, 4 ; [#uses=1]
+ %32 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %19, i8* %23, i32 %27, i32 %31) ; [#uses=1]
+ br label %36
+
+; <label>:33 ; preds = %0
+ %34 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %35 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %34) ; [#uses=1]
+ br label %36
+
+; <label>:36 ; preds = %33, %18
+ %37 = phi i8* [ %32, %18 ], [ %35, %33 ] ; [#uses=1]
+ %38 = bitcast i8* %37 to i32* ; [#uses=1]
+ %39 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.Proto* %39, i32 0, i32 4 ; [#uses=1]
+ store i32* %38, i32** %40, align 4
+ %41 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.FuncState* %41, i32 0, i32 6 ; [#uses=1]
+ %43 = load i32* %42, align 4 ; [#uses=1]
+ %44 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.Proto* %44, i32 0, i32 12 ; [#uses=1]
+ store i32 %43, i32* %45, align 4
+ %46 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.FuncState* %46, i32 0, i32 6 ; [#uses=1]
+ %48 = load i32* %47, align 4 ; [#uses=1]
+ %49 = add nsw i32 %48, 1 ; [#uses=1]
+ %50 = icmp ule i32 %49, 1073741823 ; [#uses=1]
+ br i1 %50, label %51, label %66
+
+; <label>:51 ; preds = %36
+ %52 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %53 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.Proto* %53, i32 0, i32 6 ; [#uses=1]
+ %55 = load i32** %54, align 4 ; [#uses=1]
+ %56 = bitcast i32* %55 to i8* ; [#uses=1]
+ %57 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.Proto* %57, i32 0, i32 13 ; [#uses=1]
+ %59 = load i32* %58, align 4 ; [#uses=1]
+ %60 = mul i32 %59, 4 ; [#uses=1]
+ %61 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds %struct.FuncState* %61, i32 0, i32 6 ; [#uses=1]
+ %63 = load i32* %62, align 4 ; [#uses=1]
+ %64 = mul i32 %63, 4 ; [#uses=1]
+ %65 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %52, i8* %56, i32 %60, i32 %64) ; [#uses=1]
+ br label %69
+
+; <label>:66 ; preds = %36
+ %67 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %68 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %67) ; [#uses=1]
+ br label %69
+
+; <label>:69 ; preds = %66, %51
+ %70 = phi i8* [ %65, %51 ], [ %68, %66 ] ; [#uses=1]
+ %71 = bitcast i8* %70 to i32* ; [#uses=1]
+ %72 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.Proto* %72, i32 0, i32 6 ; [#uses=1]
+ store i32* %71, i32** %73, align 4
+ %74 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %75 = getelementptr inbounds %struct.FuncState* %74, i32 0, i32 6 ; [#uses=1]
+ %76 = load i32* %75, align 4 ; [#uses=1]
+ %77 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %78 = getelementptr inbounds %struct.Proto* %77, i32 0, i32 13 ; [#uses=1]
+ store i32 %76, i32* %78, align 4
+ %79 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %80 = getelementptr inbounds %struct.FuncState* %79, i32 0, i32 10 ; [#uses=1]
+ %81 = load i32* %80, align 4 ; [#uses=1]
+ %82 = add nsw i32 %81, 1 ; [#uses=1]
+ %83 = icmp ule i32 %82, 357913941 ; [#uses=1]
+ br i1 %83, label %84, label %99
+
+; <label>:84 ; preds = %69
+ %85 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %86 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %87 = getelementptr inbounds %struct.Proto* %86, i32 0, i32 3 ; [#uses=1]
+ %88 = load %struct.lua_TValue** %87, align 4 ; [#uses=1]
+ %89 = bitcast %struct.lua_TValue* %88 to i8* ; [#uses=1]
+ %90 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %91 = getelementptr inbounds %struct.Proto* %90, i32 0, i32 11 ; [#uses=1]
+ %92 = load i32* %91, align 4 ; [#uses=1]
+ %93 = mul i32 %92, 12 ; [#uses=1]
+ %94 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %95 = getelementptr inbounds %struct.FuncState* %94, i32 0, i32 10 ; [#uses=1]
+ %96 = load i32* %95, align 4 ; [#uses=1]
+ %97 = mul i32 %96, 12 ; [#uses=1]
+ %98 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %85, i8* %89, i32 %93, i32 %97) ; [#uses=1]
+ br label %102
+
+; <label>:99 ; preds = %69
+ %100 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %101 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %100) ; [#uses=1]
+ br label %102
+
+; <label>:102 ; preds = %99, %84
+ %103 = phi i8* [ %98, %84 ], [ %101, %99 ] ; [#uses=1]
+ %104 = bitcast i8* %103 to %struct.lua_TValue* ; [#uses=1]
+ %105 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %106 = getelementptr inbounds %struct.Proto* %105, i32 0, i32 3 ; [#uses=1]
+ store %struct.lua_TValue* %104, %struct.lua_TValue** %106, align 4
+ %107 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %108 = getelementptr inbounds %struct.FuncState* %107, i32 0, i32 10 ; [#uses=1]
+ %109 = load i32* %108, align 4 ; [#uses=1]
+ %110 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %111 = getelementptr inbounds %struct.Proto* %110, i32 0, i32 11 ; [#uses=1]
+ store i32 %109, i32* %111, align 4
+ %112 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %113 = getelementptr inbounds %struct.FuncState* %112, i32 0, i32 11 ; [#uses=1]
+ %114 = load i32* %113, align 4 ; [#uses=1]
+ %115 = add nsw i32 %114, 1 ; [#uses=1]
+ %116 = icmp ule i32 %115, 1073741823 ; [#uses=1]
+ br i1 %116, label %117, label %132
+
+; <label>:117 ; preds = %102
+ %118 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %119 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %120 = getelementptr inbounds %struct.Proto* %119, i32 0, i32 5 ; [#uses=1]
+ %121 = load %struct.Proto*** %120, align 4 ; [#uses=1]
+ %122 = bitcast %struct.Proto** %121 to i8* ; [#uses=1]
+ %123 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %124 = getelementptr inbounds %struct.Proto* %123, i32 0, i32 14 ; [#uses=1]
+ %125 = load i32* %124, align 4 ; [#uses=1]
+ %126 = mul i32 %125, 4 ; [#uses=1]
+ %127 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %128 = getelementptr inbounds %struct.FuncState* %127, i32 0, i32 11 ; [#uses=1]
+ %129 = load i32* %128, align 4 ; [#uses=1]
+ %130 = mul i32 %129, 4 ; [#uses=1]
+ %131 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %118, i8* %122, i32 %126, i32 %130) ; [#uses=1]
+ br label %135
+
+; <label>:132 ; preds = %102
+ %133 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %134 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %133) ; [#uses=1]
+ br label %135
+
+; <label>:135 ; preds = %132, %117
+ %136 = phi i8* [ %131, %117 ], [ %134, %132 ] ; [#uses=1]
+ %137 = bitcast i8* %136 to %struct.Proto** ; [#uses=1]
+ %138 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %139 = getelementptr inbounds %struct.Proto* %138, i32 0, i32 5 ; [#uses=1]
+ store %struct.Proto** %137, %struct.Proto*** %139, align 4
+ %140 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %141 = getelementptr inbounds %struct.FuncState* %140, i32 0, i32 11 ; [#uses=1]
+ %142 = load i32* %141, align 4 ; [#uses=1]
+ %143 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %144 = getelementptr inbounds %struct.Proto* %143, i32 0, i32 14 ; [#uses=1]
+ store i32 %142, i32* %144, align 4
+ %145 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %146 = getelementptr inbounds %struct.FuncState* %145, i32 0, i32 12 ; [#uses=1]
+ %147 = load i16* %146, align 2 ; [#uses=1]
+ %148 = sext i16 %147 to i32 ; [#uses=1]
+ %149 = add nsw i32 %148, 1 ; [#uses=1]
+ %150 = icmp ule i32 %149, 357913941 ; [#uses=1]
+ br i1 %150, label %151, label %167
+
+; <label>:151 ; preds = %135
+ %152 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %153 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %154 = getelementptr inbounds %struct.Proto* %153, i32 0, i32 7 ; [#uses=1]
+ %155 = load %struct.LocVar** %154, align 4 ; [#uses=1]
+ %156 = bitcast %struct.LocVar* %155 to i8* ; [#uses=1]
+ %157 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %158 = getelementptr inbounds %struct.Proto* %157, i32 0, i32 15 ; [#uses=1]
+ %159 = load i32* %158, align 4 ; [#uses=1]
+ %160 = mul i32 %159, 12 ; [#uses=1]
+ %161 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %162 = getelementptr inbounds %struct.FuncState* %161, i32 0, i32 12 ; [#uses=1]
+ %163 = load i16* %162, align 2 ; [#uses=1]
+ %164 = sext i16 %163 to i32 ; [#uses=1]
+ %165 = mul i32 %164, 12 ; [#uses=1]
+ %166 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %152, i8* %156, i32 %160, i32 %165) ; [#uses=1]
+ br label %170
+
+; <label>:167 ; preds = %135
+ %168 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %169 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %168) ; [#uses=1]
+ br label %170
+
+; <label>:170 ; preds = %167, %151
+ %171 = phi i8* [ %166, %151 ], [ %169, %167 ] ; [#uses=1]
+ %172 = bitcast i8* %171 to %struct.LocVar* ; [#uses=1]
+ %173 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %174 = getelementptr inbounds %struct.Proto* %173, i32 0, i32 7 ; [#uses=1]
+ store %struct.LocVar* %172, %struct.LocVar** %174, align 4
+ %175 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %176 = getelementptr inbounds %struct.FuncState* %175, i32 0, i32 12 ; [#uses=1]
+ %177 = load i16* %176, align 2 ; [#uses=1]
+ %178 = sext i16 %177 to i32 ; [#uses=1]
+ %179 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %180 = getelementptr inbounds %struct.Proto* %179, i32 0, i32 15 ; [#uses=1]
+ store i32 %178, i32* %180, align 4
+ %181 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %182 = getelementptr inbounds %struct.Proto* %181, i32 0, i32 19 ; [#uses=1]
+ %183 = load i8* %182, align 1 ; [#uses=1]
+ %184 = zext i8 %183 to i32 ; [#uses=1]
+ %185 = add nsw i32 %184, 1 ; [#uses=1]
+ %186 = icmp ule i32 %185, 1073741823 ; [#uses=1]
+ br i1 %186, label %187, label %203
+
+; <label>:187 ; preds = %170
+ %188 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %189 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %190 = getelementptr inbounds %struct.Proto* %189, i32 0, i32 8 ; [#uses=1]
+ %191 = load %union.TString*** %190, align 4 ; [#uses=1]
+ %192 = bitcast %union.TString** %191 to i8* ; [#uses=1]
+ %193 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %194 = getelementptr inbounds %struct.Proto* %193, i32 0, i32 10 ; [#uses=1]
+ %195 = load i32* %194, align 4 ; [#uses=1]
+ %196 = mul i32 %195, 4 ; [#uses=1]
+ %197 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %198 = getelementptr inbounds %struct.Proto* %197, i32 0, i32 19 ; [#uses=1]
+ %199 = load i8* %198, align 1 ; [#uses=1]
+ %200 = zext i8 %199 to i32 ; [#uses=1]
+ %201 = mul i32 %200, 4 ; [#uses=1]
+ %202 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %188, i8* %192, i32 %196, i32 %201) ; [#uses=1]
+ br label %206
+
+; <label>:203 ; preds = %170
+ %204 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %205 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %204) ; [#uses=1]
+ br label %206
+
+; <label>:206 ; preds = %203, %187
+ %207 = phi i8* [ %202, %187 ], [ %205, %203 ] ; [#uses=1]
+ %208 = bitcast i8* %207 to %union.TString** ; [#uses=1]
+ %209 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %210 = getelementptr inbounds %struct.Proto* %209, i32 0, i32 8 ; [#uses=1]
+ store %union.TString** %208, %union.TString*** %210, align 4
+ %211 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %212 = getelementptr inbounds %struct.Proto* %211, i32 0, i32 19 ; [#uses=1]
+ %213 = load i8* %212, align 1 ; [#uses=1]
+ %214 = zext i8 %213 to i32 ; [#uses=1]
+ %215 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %216 = getelementptr inbounds %struct.Proto* %215, i32 0, i32 10 ; [#uses=1]
+ store i32 %214, i32* %216, align 4
+ %217 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %218 = getelementptr inbounds %struct.FuncState* %217, i32 0, i32 2 ; [#uses=1]
+ %219 = load %struct.FuncState** %218, align 4 ; [#uses=1]
+ %220 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %221 = getelementptr inbounds %struct.LexState* %220, i32 0, i32 5 ; [#uses=1]
+ store %struct.FuncState* %219, %struct.FuncState** %221, align 4
+ %222 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %223 = getelementptr inbounds %struct.lua_State* %222, i32 0, i32 4 ; [#uses=2]
+ %224 = load %struct.lua_TValue** %223, align 4 ; [#uses=1]
+ %225 = getelementptr inbounds %struct.lua_TValue* %224, i32 -2 ; [#uses=1]
+ store %struct.lua_TValue* %225, %struct.lua_TValue** %223, align 4
+ %226 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %227 = icmp ne %struct.FuncState* %226, null ; [#uses=1]
+ br i1 %227, label %228, label %230
+
+; <label>:228 ; preds = %206
+ %229 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z12anchor_tokenP8LexState(%struct.LexState* %229)
+ br label %230
+
+; <label>:230 ; preds = %228, %206
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z10enterlevelP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=3]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.LexState* %2, i32 0, i32 6 ; [#uses=1]
+ %4 = load %struct.lua_State** %3, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 15 ; [#uses=2]
+ %6 = load i16* %5, align 2 ; [#uses=1]
+ %7 = add i16 %6, 1 ; [#uses=2]
+ store i16 %7, i16* %5, align 2
+ %8 = zext i16 %7 to i32 ; [#uses=1]
+ %9 = icmp sgt i32 %8, 200 ; [#uses=1]
+ br i1 %9, label %10, label %12
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z13luaX_lexerrorP8LexStatePKci(%struct.LexState* %11, i8* getelementptr inbounds ([33 x i8]* @.str27156, i32 0, i32 0), i32 0)
+ br label %12
+
+; <label>:12 ; preds = %10, %0
+ ret void
+}
+
+; [#uses=2]
+define internal i32 @_Z12block_followi(i32 %token) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ store i32 %token, i32* %2, align 4
+ %3 = load i32* %2, align 4 ; [#uses=1]
+ switch i32 %3, label %5 [
+ i32 260, label %4
+ i32 261, label %4
+ i32 262, label %4
+ i32 276, label %4
+ i32 287, label %4
+ ]
+
+; <label>:4 ; preds = %0, %0, %0, %0, %0
+ store i32 1, i32* %1
+ br label %6
+
+; <label>:5 ; preds = %0
+ store i32 0, i32* %1
+ br label %6
+
+; <label>:6 ; preds = %5, %4
+ %7 = load i32* %1 ; [#uses=1]
+ ret i32 %7
+}
+
+; [#uses=1]
+define internal i32 @_Z9statementP8LexState(%struct.LexState* %ls) {
+ %1 = alloca i32, align 4 ; [#uses=11]
+ %2 = alloca %struct.LexState*, align 4 ; [#uses=19]
+ %line = alloca i32, align 4 ; [#uses=7]
+ store %struct.LexState* %ls, %struct.LexState** %2, align 4
+ %3 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 1 ; [#uses=1]
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ store i32 %5, i32* %line, align 4
+ %6 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.LexState* %6, i32 0, i32 3 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.Token* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ switch i32 %9, label %45 [
+ i32 266, label %10
+ i32 277, label %13
+ i32 259, label %16
+ i32 264, label %21
+ i32 272, label %24
+ i32 265, label %27
+ i32 268, label %30
+ i32 273, label %40
+ i32 258, label %42
+ ]
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %12 = load i32* %line, align 4 ; [#uses=1]
+ call void @_Z6ifstatP8LexStatei(%struct.LexState* %11, i32 %12)
+ store i32 0, i32* %1
+ br label %47
+
+; <label>:13 ; preds = %0
+ %14 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %15 = load i32* %line, align 4 ; [#uses=1]
+ call void @_Z9whilestatP8LexStatei(%struct.LexState* %14, i32 %15)
+ store i32 0, i32* %1
+ br label %47
+
+; <label>:16 ; preds = %0
+ %17 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %17)
+ %18 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ call void @_Z5blockP8LexState(%struct.LexState* %18)
+ %19 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %20 = load i32* %line, align 4 ; [#uses=1]
+ call void @_Z11check_matchP8LexStateiii(%struct.LexState* %19, i32 262, i32 259, i32 %20)
+ store i32 0, i32* %1
+ br label %47
+
+; <label>:21 ; preds = %0
+ %22 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %23 = load i32* %line, align 4 ; [#uses=1]
+ call void @_Z7forstatP8LexStatei(%struct.LexState* %22, i32 %23)
+ store i32 0, i32* %1
+ br label %47
+
+; <label>:24 ; preds = %0
+ %25 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %26 = load i32* %line, align 4 ; [#uses=1]
+ call void @_Z10repeatstatP8LexStatei(%struct.LexState* %25, i32 %26)
+ store i32 0, i32* %1
+ br label %47
+
+; <label>:27 ; preds = %0
+ %28 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %29 = load i32* %line, align 4 ; [#uses=1]
+ call void @_Z8funcstatP8LexStatei(%struct.LexState* %28, i32 %29)
+ store i32 0, i32* %1
+ br label %47
+
+; <label>:30 ; preds = %0
+ %31 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %31)
+ %32 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %33 = call i32 @_Z8testnextP8LexStatei(%struct.LexState* %32, i32 265) ; [#uses=1]
+ %34 = icmp ne i32 %33, 0 ; [#uses=1]
+ br i1 %34, label %35, label %37
+
+; <label>:35 ; preds = %30
+ %36 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ call void @_Z9localfuncP8LexState(%struct.LexState* %36)
+ br label %39
+
+; <label>:37 ; preds = %30
+ %38 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ call void @_Z9localstatP8LexState(%struct.LexState* %38)
+ br label %39
+
+; <label>:39 ; preds = %37, %35
+ store i32 0, i32* %1
+ br label %47
+
+; <label>:40 ; preds = %0
+ %41 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ call void @_Z7retstatP8LexState(%struct.LexState* %41)
+ store i32 1, i32* %1
+ br label %47
+
+; <label>:42 ; preds = %0
+ %43 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %43)
+ %44 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ call void @_Z9breakstatP8LexState(%struct.LexState* %44)
+ store i32 1, i32* %1
+ br label %47
+
+; <label>:45 ; preds = %0
+ %46 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ call void @_Z8exprstatP8LexState(%struct.LexState* %46)
+ store i32 0, i32* %1
+ br label %47
+
+; <label>:47 ; preds = %45, %42, %40, %39, %27, %24, %21, %16, %13, %10
+ %48 = load i32* %1 ; [#uses=1]
+ ret i32 %48
+}
+
+; [#uses=12]
+define internal i32 @_Z8testnextP8LexStatei(%struct.LexState* %ls, i32 %c) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.LexState*, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %2, align 4
+ store i32 %c, i32* %3, align 4
+ %4 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.LexState* %4, i32 0, i32 3 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.Token* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ %8 = load i32* %3, align 4 ; [#uses=1]
+ %9 = icmp eq i32 %7, %8 ; [#uses=1]
+ br i1 %9, label %10, label %12
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.LexState** %2, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %11)
+ store i32 1, i32* %1
+ br label %13
+
+; <label>:12 ; preds = %0
+ store i32 0, i32* %1
+ br label %13
+
+; <label>:13 ; preds = %12, %10
+ %14 = load i32* %1 ; [#uses=1]
+ ret i32 %14
+}
+
+; [#uses=1]
+define internal void @_Z6ifstatP8LexStatei(%struct.LexState* %ls, i32 %line) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=9]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=9]
+ %flist = alloca i32, align 4 ; [#uses=5]
+ %escapelist = alloca i32, align 4 ; [#uses=5]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 %line, i32* %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 5 ; [#uses=1]
+ %5 = load %struct.FuncState** %4, align 4 ; [#uses=1]
+ store %struct.FuncState* %5, %struct.FuncState** %fs, align 4
+ store i32 -1, i32* %escapelist, align 4
+ %6 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %7 = call i32 @_Z15test_then_blockP8LexState(%struct.LexState* %6) ; [#uses=1]
+ store i32 %7, i32* %flist, align 4
+ br label %8
+
+; <label>:8 ; preds = %14, %0
+ %9 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.LexState* %9, i32 0, i32 3 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Token* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ %13 = icmp eq i32 %12, 261 ; [#uses=1]
+ br i1 %13, label %14, label %22
+
+; <label>:14 ; preds = %8
+ %15 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %16 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %17 = call i32 @_Z9luaK_jumpP9FuncState(%struct.FuncState* %16) ; [#uses=1]
+ call void @_Z11luaK_concatP9FuncStatePii(%struct.FuncState* %15, i32* %escapelist, i32 %17)
+ %18 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %19 = load i32* %flist, align 4 ; [#uses=1]
+ call void @_Z16luaK_patchtohereP9FuncStatei(%struct.FuncState* %18, i32 %19)
+ %20 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %21 = call i32 @_Z15test_then_blockP8LexState(%struct.LexState* %20) ; [#uses=1]
+ store i32 %21, i32* %flist, align 4
+ br label %8
+
+; <label>:22 ; preds = %8
+ %23 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.LexState* %23, i32 0, i32 3 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.Token* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = load i32* %25, align 4 ; [#uses=1]
+ %27 = icmp eq i32 %26, 260 ; [#uses=1]
+ br i1 %27, label %28, label %36
+
+; <label>:28 ; preds = %22
+ %29 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %30 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %31 = call i32 @_Z9luaK_jumpP9FuncState(%struct.FuncState* %30) ; [#uses=1]
+ call void @_Z11luaK_concatP9FuncStatePii(%struct.FuncState* %29, i32* %escapelist, i32 %31)
+ %32 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %33 = load i32* %flist, align 4 ; [#uses=1]
+ call void @_Z16luaK_patchtohereP9FuncStatei(%struct.FuncState* %32, i32 %33)
+ %34 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %34)
+ %35 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z5blockP8LexState(%struct.LexState* %35)
+ br label %39
+
+; <label>:36 ; preds = %22
+ %37 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %38 = load i32* %flist, align 4 ; [#uses=1]
+ call void @_Z11luaK_concatP9FuncStatePii(%struct.FuncState* %37, i32* %escapelist, i32 %38)
+ br label %39
+
+; <label>:39 ; preds = %36, %28
+ %40 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %41 = load i32* %escapelist, align 4 ; [#uses=1]
+ call void @_Z16luaK_patchtohereP9FuncStatei(%struct.FuncState* %40, i32 %41)
+ %42 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %43 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z11check_matchP8LexStateiii(%struct.LexState* %42, i32 262, i32 266, i32 %43)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z9whilestatP8LexStatei(%struct.LexState* %ls, i32 %line) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=7]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=7]
+ %whileinit = alloca i32, align 4 ; [#uses=2]
+ %condexit = alloca i32, align 4 ; [#uses=2]
+ %bl = alloca %struct.BlockCnt, align 4 ; [#uses=1]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 %line, i32* %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 5 ; [#uses=1]
+ %5 = load %struct.FuncState** %4, align 4 ; [#uses=1]
+ store %struct.FuncState* %5, %struct.FuncState** %fs, align 4
+ %6 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %6)
+ %7 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %8 = call i32 @_Z13luaK_getlabelP9FuncState(%struct.FuncState* %7) ; [#uses=1]
+ store i32 %8, i32* %whileinit, align 4
+ %9 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %10 = call i32 @_Z4condP8LexState(%struct.LexState* %9) ; [#uses=1]
+ store i32 %10, i32* %condexit, align 4
+ %11 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z10enterblockP9FuncStateP8BlockCnth(%struct.FuncState* %11, %struct.BlockCnt* %bl, i8 zeroext 1)
+ %12 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9checknextP8LexStatei(%struct.LexState* %12, i32 259)
+ %13 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z5blockP8LexState(%struct.LexState* %13)
+ %14 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %15 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %16 = call i32 @_Z9luaK_jumpP9FuncState(%struct.FuncState* %15) ; [#uses=1]
+ %17 = load i32* %whileinit, align 4 ; [#uses=1]
+ call void @_Z14luaK_patchlistP9FuncStateii(%struct.FuncState* %14, i32 %16, i32 %17)
+ %18 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %19 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z11check_matchP8LexStateiii(%struct.LexState* %18, i32 262, i32 277, i32 %19)
+ %20 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z10leaveblockP9FuncState(%struct.FuncState* %20)
+ %21 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %22 = load i32* %condexit, align 4 ; [#uses=1]
+ call void @_Z16luaK_patchtohereP9FuncStatei(%struct.FuncState* %21, i32 %22)
+ ret void
+}
+
+; [#uses=5]
+define internal void @_Z5blockP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=3]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %bl = alloca %struct.BlockCnt, align 4 ; [#uses=1]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.LexState* %2, i32 0, i32 5 ; [#uses=1]
+ %4 = load %struct.FuncState** %3, align 4 ; [#uses=1]
+ store %struct.FuncState* %4, %struct.FuncState** %fs, align 4
+ %5 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z10enterblockP9FuncStateP8BlockCnth(%struct.FuncState* %5, %struct.BlockCnt* %bl, i8 zeroext 0)
+ %6 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z5chunkP8LexState(%struct.LexState* %6)
+ %7 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z10leaveblockP9FuncState(%struct.FuncState* %7)
+ ret void
+}
+
+; [#uses=9]
+define internal void @_Z11check_matchP8LexStateiii(%struct.LexState* %ls, i32 %what, i32 %who, i32 %where) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=8]
+ %2 = alloca i32, align 4 ; [#uses=4]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca i32, align 4 ; [#uses=3]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 %what, i32* %2, align 4
+ store i32 %who, i32* %3, align 4
+ store i32 %where, i32* %4, align 4
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = load i32* %2, align 4 ; [#uses=1]
+ %7 = call i32 @_Z8testnextP8LexStatei(%struct.LexState* %5, i32 %6) ; [#uses=1]
+ %8 = icmp ne i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %32, label %9
+
+; <label>:9 ; preds = %0
+ %10 = load i32* %4, align 4 ; [#uses=1]
+ %11 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.LexState* %11, i32 0, i32 1 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ %14 = icmp eq i32 %10, %13 ; [#uses=1]
+ br i1 %14, label %15, label %18
+
+; <label>:15 ; preds = %9
+ %16 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %17 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z14error_expectedP8LexStatei(%struct.LexState* %16, i32 %17)
+ br label %31
+
+; <label>:18 ; preds = %9
+ %19 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %20 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.LexState* %20, i32 0, i32 6 ; [#uses=1]
+ %22 = load %struct.lua_State** %21, align 4 ; [#uses=1]
+ %23 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %24 = load i32* %2, align 4 ; [#uses=1]
+ %25 = call i8* @_Z14luaX_token2strP8LexStatei(%struct.LexState* %23, i32 %24) ; [#uses=1]
+ %26 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %27 = load i32* %3, align 4 ; [#uses=1]
+ %28 = call i8* @_Z14luaX_token2strP8LexStatei(%struct.LexState* %26, i32 %27) ; [#uses=1]
+ %29 = load i32* %4, align 4 ; [#uses=1]
+ %30 = call i8* (%struct.lua_State*, i8*, ...)* @_Z16luaO_pushfstringP9lua_StatePKcz(%struct.lua_State* %22, i8* getelementptr inbounds ([41 x i8]* @.str25154, i32 0, i32 0), i8* %25, i8* %28, i32 %29) ; [#uses=1]
+ call void @_Z16luaX_syntaxerrorP8LexStatePKc(%struct.LexState* %19, i8* %30)
+ br label %31
+
+; <label>:31 ; preds = %18, %15
+ br label %32
+
+; <label>:32 ; preds = %31, %0
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z7forstatP8LexStatei(%struct.LexState* %ls, i32 %line) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=9]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %varname = alloca %union.TString*, align 4 ; [#uses=3]
+ %bl = alloca %struct.BlockCnt, align 4 ; [#uses=1]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 %line, i32* %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 5 ; [#uses=1]
+ %5 = load %struct.FuncState** %4, align 4 ; [#uses=1]
+ store %struct.FuncState* %5, %struct.FuncState** %fs, align 4
+ %6 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z10enterblockP9FuncStateP8BlockCnth(%struct.FuncState* %6, %struct.BlockCnt* %bl, i8 zeroext 1)
+ %7 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %7)
+ %8 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %9 = call %union.TString* @_Z13str_checknameP8LexState(%struct.LexState* %8) ; [#uses=1]
+ store %union.TString* %9, %union.TString** %varname, align 4
+ %10 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.LexState* %10, i32 0, i32 3 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.Token* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ switch i32 %13, label %21 [
+ i32 61, label %14
+ i32 44, label %18
+ i32 267, label %18
+ ]
+
+; <label>:14 ; preds = %0
+ %15 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %16 = load %union.TString** %varname, align 4 ; [#uses=1]
+ %17 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z6fornumP8LexStateP7TStringi(%struct.LexState* %15, %union.TString* %16, i32 %17)
+ br label %23
+
+; <label>:18 ; preds = %0, %0
+ %19 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %20 = load %union.TString** %varname, align 4 ; [#uses=1]
+ call void @_Z7forlistP8LexStateP7TString(%struct.LexState* %19, %union.TString* %20)
+ br label %23
+
+; <label>:21 ; preds = %0
+ %22 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z16luaX_syntaxerrorP8LexStatePKc(%struct.LexState* %22, i8* getelementptr inbounds ([21 x i8]* @.str18147, i32 0, i32 0))
+ br label %23
+
+; <label>:23 ; preds = %21, %18, %14
+ %24 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %25 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z11check_matchP8LexStateiii(%struct.LexState* %24, i32 262, i32 264, i32 %25)
+ %26 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z10leaveblockP9FuncState(%struct.FuncState* %26)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z10repeatstatP8LexStatei(%struct.LexState* %ls, i32 %line) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=10]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %condexit = alloca i32, align 4 ; [#uses=3]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=8]
+ %repeat_init = alloca i32, align 4 ; [#uses=3]
+ %bl1 = alloca %struct.BlockCnt, align 4 ; [#uses=1]
+ %bl2 = alloca %struct.BlockCnt, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 %line, i32* %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 5 ; [#uses=1]
+ %5 = load %struct.FuncState** %4, align 4 ; [#uses=1]
+ store %struct.FuncState* %5, %struct.FuncState** %fs, align 4
+ %6 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %7 = call i32 @_Z13luaK_getlabelP9FuncState(%struct.FuncState* %6) ; [#uses=1]
+ store i32 %7, i32* %repeat_init, align 4
+ %8 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z10enterblockP9FuncStateP8BlockCnth(%struct.FuncState* %8, %struct.BlockCnt* %bl1, i8 zeroext 1)
+ %9 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z10enterblockP9FuncStateP8BlockCnth(%struct.FuncState* %9, %struct.BlockCnt* %bl2, i8 zeroext 0)
+ %10 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %10)
+ %11 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z5chunkP8LexState(%struct.LexState* %11)
+ %12 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %13 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z11check_matchP8LexStateiii(%struct.LexState* %12, i32 276, i32 272, i32 %13)
+ %14 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %15 = call i32 @_Z4condP8LexState(%struct.LexState* %14) ; [#uses=1]
+ store i32 %15, i32* %condexit, align 4
+ %16 = getelementptr inbounds %struct.BlockCnt* %bl2, i32 0, i32 3 ; [#uses=1]
+ %17 = load i8* %16, align 1 ; [#uses=1]
+ %18 = icmp ne i8 %17, 0 ; [#uses=1]
+ br i1 %18, label %26, label %19
+
+; <label>:19 ; preds = %0
+ %20 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z10leaveblockP9FuncState(%struct.FuncState* %20)
+ %21 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.LexState* %21, i32 0, i32 5 ; [#uses=1]
+ %23 = load %struct.FuncState** %22, align 4 ; [#uses=1]
+ %24 = load i32* %condexit, align 4 ; [#uses=1]
+ %25 = load i32* %repeat_init, align 4 ; [#uses=1]
+ call void @_Z14luaK_patchlistP9FuncStateii(%struct.FuncState* %23, i32 %24, i32 %25)
+ br label %39
+
+; <label>:26 ; preds = %0
+ %27 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9breakstatP8LexState(%struct.LexState* %27)
+ %28 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.LexState* %28, i32 0, i32 5 ; [#uses=1]
+ %30 = load %struct.FuncState** %29, align 4 ; [#uses=1]
+ %31 = load i32* %condexit, align 4 ; [#uses=1]
+ call void @_Z16luaK_patchtohereP9FuncStatei(%struct.FuncState* %30, i32 %31)
+ %32 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z10leaveblockP9FuncState(%struct.FuncState* %32)
+ %33 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.LexState* %33, i32 0, i32 5 ; [#uses=1]
+ %35 = load %struct.FuncState** %34, align 4 ; [#uses=1]
+ %36 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %37 = call i32 @_Z9luaK_jumpP9FuncState(%struct.FuncState* %36) ; [#uses=1]
+ %38 = load i32* %repeat_init, align 4 ; [#uses=1]
+ call void @_Z14luaK_patchlistP9FuncStateii(%struct.FuncState* %35, i32 %37, i32 %38)
+ br label %39
+
+; <label>:39 ; preds = %26, %19
+ %40 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z10leaveblockP9FuncState(%struct.FuncState* %40)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z8funcstatP8LexStatei(%struct.LexState* %ls, i32 %line) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=6]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %needself = alloca i32, align 4 ; [#uses=2]
+ %v = alloca %struct.expdesc, align 4 ; [#uses=2]
+ %b = alloca %struct.expdesc, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 %line, i32* %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %3)
+ %4 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z8funcnameP8LexStateP7expdesc(%struct.LexState* %4, %struct.expdesc* %v) ; [#uses=1]
+ store i32 %5, i32* %needself, align 4
+ %6 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %7 = load i32* %needself, align 4 ; [#uses=1]
+ %8 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z4bodyP8LexStateP7expdescii(%struct.LexState* %6, %struct.expdesc* %b, i32 %7, i32 %8)
+ %9 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.LexState* %9, i32 0, i32 5 ; [#uses=1]
+ %11 = load %struct.FuncState** %10, align 4 ; [#uses=1]
+ call void @_Z13luaK_storevarP9FuncStateP7expdescS2_(%struct.FuncState* %11, %struct.expdesc* %v, %struct.expdesc* %b)
+ %12 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.LexState* %12, i32 0, i32 5 ; [#uses=1]
+ %14 = load %struct.FuncState** %13, align 4 ; [#uses=1]
+ %15 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z12luaK_fixlineP9FuncStatei(%struct.FuncState* %14, i32 %15)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z9localfuncP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=7]
+ %v = alloca %struct.expdesc, align 4 ; [#uses=2]
+ %b = alloca %struct.expdesc, align 4 ; [#uses=2]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=8]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.LexState* %2, i32 0, i32 5 ; [#uses=1]
+ %4 = load %struct.FuncState** %3, align 4 ; [#uses=1]
+ store %struct.FuncState* %4, %struct.FuncState** %fs, align 4
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %7 = call %union.TString* @_Z13str_checknameP8LexState(%struct.LexState* %6) ; [#uses=1]
+ call void @_Z12new_localvarP8LexStateP7TStringi(%struct.LexState* %5, %union.TString* %7, i32 0)
+ %8 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.FuncState* %8, i32 0, i32 9 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ call void @_Z8init_expP7expdesc7expkindi(%struct.expdesc* %v, i32 6, i32 %10)
+ %11 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z16luaK_reserveregsP9FuncStatei(%struct.FuncState* %11, i32 1)
+ %12 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z15adjustlocalvarsP8LexStatei(%struct.LexState* %12, i32 1)
+ %13 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %14 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.LexState* %14, i32 0, i32 1 ; [#uses=1]
+ %16 = load i32* %15, align 4 ; [#uses=1]
+ call void @_Z4bodyP8LexStateP7expdescii(%struct.LexState* %13, %struct.expdesc* %b, i32 0, i32 %16)
+ %17 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z13luaK_storevarP9FuncStateP7expdescS2_(%struct.FuncState* %17, %struct.expdesc* %v, %struct.expdesc* %b)
+ %18 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.FuncState* %18, i32 0, i32 6 ; [#uses=1]
+ %20 = load i32* %19, align 4 ; [#uses=1]
+ %21 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.FuncState* %21, i32 0, i32 13 ; [#uses=1]
+ %23 = load i8* %22, align 1 ; [#uses=1]
+ %24 = zext i8 %23 to i32 ; [#uses=1]
+ %25 = sub nsw i32 %24, 1 ; [#uses=1]
+ %26 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.FuncState* %26, i32 0, i32 15 ; [#uses=1]
+ %28 = getelementptr inbounds [200 x i16]* %27, i32 0, i32 %25 ; [#uses=1]
+ %29 = load i16* %28 ; [#uses=1]
+ %30 = zext i16 %29 to i32 ; [#uses=1]
+ %31 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.FuncState* %31, i32 0, i32 0 ; [#uses=1]
+ %33 = load %struct.Proto** %32, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.Proto* %33, i32 0, i32 7 ; [#uses=1]
+ %35 = load %struct.LocVar** %34, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.LocVar* %35, i32 %30 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.LocVar* %36, i32 0, i32 1 ; [#uses=1]
+ store i32 %20, i32* %37, align 4
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z9localstatP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=8]
+ %nvars = alloca i32, align 4 ; [#uses=5]
+ %nexps = alloca i32, align 4 ; [#uses=3]
+ %e = alloca %struct.expdesc, align 4 ; [#uses=3]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 0, i32* %nvars, align 4
+ br label %2
+
+; <label>:2 ; preds = %8, %0
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %5 = call %union.TString* @_Z13str_checknameP8LexState(%struct.LexState* %4) ; [#uses=1]
+ %6 = load i32* %nvars, align 4 ; [#uses=2]
+ %7 = add nsw i32 %6, 1 ; [#uses=1]
+ store i32 %7, i32* %nvars, align 4
+ call void @_Z12new_localvarP8LexStateP7TStringi(%struct.LexState* %3, %union.TString* %5, i32 %6)
+ br label %8
+
+; <label>:8 ; preds = %2
+ %9 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %10 = call i32 @_Z8testnextP8LexStatei(%struct.LexState* %9, i32 44) ; [#uses=1]
+ %11 = icmp ne i32 %10, 0 ; [#uses=1]
+ br i1 %11, label %2, label %12
+
+; <label>:12 ; preds = %8
+ %13 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %14 = call i32 @_Z8testnextP8LexStatei(%struct.LexState* %13, i32 61) ; [#uses=1]
+ %15 = icmp ne i32 %14, 0 ; [#uses=1]
+ br i1 %15, label %16, label %19
+
+; <label>:16 ; preds = %12
+ %17 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %18 = call i32 @_Z8explist1P8LexStateP7expdesc(%struct.LexState* %17, %struct.expdesc* %e) ; [#uses=1]
+ store i32 %18, i32* %nexps, align 4
+ br label %21
+
+; <label>:19 ; preds = %12
+ %20 = getelementptr inbounds %struct.expdesc* %e, i32 0, i32 0 ; [#uses=1]
+ store i32 0, i32* %20, align 4
+ store i32 0, i32* %nexps, align 4
+ br label %21
+
+; <label>:21 ; preds = %19, %16
+ %22 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %23 = load i32* %nvars, align 4 ; [#uses=1]
+ %24 = load i32* %nexps, align 4 ; [#uses=1]
+ call void @_Z13adjust_assignP8LexStateiiP7expdesc(%struct.LexState* %22, i32 %23, i32 %24, %struct.expdesc* %e)
+ %25 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %26 = load i32* %nvars, align 4 ; [#uses=1]
+ call void @_Z15adjustlocalvarsP8LexStatei(%struct.LexState* %25, i32 %26)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z7retstatP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=6]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=9]
+ %e = alloca %struct.expdesc, align 4 ; [#uses=9]
+ %first = alloca i32, align 4 ; [#uses=5]
+ %nret = alloca i32, align 4 ; [#uses=6]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.LexState* %2, i32 0, i32 5 ; [#uses=1]
+ %4 = load %struct.FuncState** %3, align 4 ; [#uses=1]
+ store %struct.FuncState* %4, %struct.FuncState** %fs, align 4
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %5)
+ %6 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.LexState* %6, i32 0, i32 3 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.Token* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ %10 = call i32 @_Z12block_followi(i32 %9) ; [#uses=1]
+ %11 = icmp ne i32 %10, 0 ; [#uses=1]
+ br i1 %11, label %18, label %12
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.LexState* %13, i32 0, i32 3 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.Token* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = load i32* %15, align 4 ; [#uses=1]
+ %17 = icmp eq i32 %16, 59 ; [#uses=1]
+ br i1 %17, label %18, label %19
+
+; <label>:18 ; preds = %12, %0
+ store i32 0, i32* %nret, align 4
+ store i32 0, i32* %first, align 4
+ br label %80
+
+; <label>:19 ; preds = %12
+ %20 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %21 = call i32 @_Z8explist1P8LexStateP7expdesc(%struct.LexState* %20, %struct.expdesc* %e) ; [#uses=1]
+ store i32 %21, i32* %nret, align 4
+ %22 = getelementptr inbounds %struct.expdesc* %e, i32 0, i32 0 ; [#uses=1]
+ %23 = load i32* %22, align 4 ; [#uses=1]
+ %24 = icmp eq i32 %23, 13 ; [#uses=1]
+ br i1 %24, label %29, label %25
+
+; <label>:25 ; preds = %19
+ %26 = getelementptr inbounds %struct.expdesc* %e, i32 0, i32 0 ; [#uses=1]
+ %27 = load i32* %26, align 4 ; [#uses=1]
+ %28 = icmp eq i32 %27, 14 ; [#uses=1]
+ br i1 %28, label %29, label %66
+
+; <label>:29 ; preds = %25, %19
+ %30 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z15luaK_setreturnsP9FuncStateP7expdesci(%struct.FuncState* %30, %struct.expdesc* %e, i32 -1)
+ %31 = getelementptr inbounds %struct.expdesc* %e, i32 0, i32 0 ; [#uses=1]
+ %32 = load i32* %31, align 4 ; [#uses=1]
+ %33 = icmp eq i32 %32, 13 ; [#uses=1]
+ br i1 %33, label %34, label %61
+
+; <label>:34 ; preds = %29
+ %35 = load i32* %nret, align 4 ; [#uses=1]
+ %36 = icmp eq i32 %35, 1 ; [#uses=1]
+ br i1 %36, label %37, label %61
+
+; <label>:37 ; preds = %34
+ %38 = getelementptr inbounds %struct.expdesc* %e, i32 0, i32 1 ; [#uses=1]
+ %39 = getelementptr inbounds %2* %38, i32 0, i32 0 ; [#uses=1]
+ %40 = getelementptr inbounds %3* %39, i32 0, i32 0 ; [#uses=1]
+ %41 = load i32* %40, align 4 ; [#uses=1]
+ %42 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.FuncState* %42, i32 0, i32 0 ; [#uses=1]
+ %44 = load %struct.Proto** %43, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.Proto* %44, i32 0, i32 4 ; [#uses=1]
+ %46 = load i32** %45, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds i32* %46, i32 %41 ; [#uses=1]
+ %48 = load i32* %47 ; [#uses=1]
+ %49 = and i32 %48, -64 ; [#uses=1]
+ %50 = or i32 %49, 29 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.expdesc* %e, i32 0, i32 1 ; [#uses=1]
+ %52 = getelementptr inbounds %2* %51, i32 0, i32 0 ; [#uses=1]
+ %53 = getelementptr inbounds %3* %52, i32 0, i32 0 ; [#uses=1]
+ %54 = load i32* %53, align 4 ; [#uses=1]
+ %55 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.FuncState* %55, i32 0, i32 0 ; [#uses=1]
+ %57 = load %struct.Proto** %56, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.Proto* %57, i32 0, i32 4 ; [#uses=1]
+ %59 = load i32** %58, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds i32* %59, i32 %54 ; [#uses=1]
+ store i32 %50, i32* %60
+ br label %61
+
+; <label>:61 ; preds = %37, %34, %29
+ %62 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.FuncState* %62, i32 0, i32 13 ; [#uses=1]
+ %64 = load i8* %63, align 1 ; [#uses=1]
+ %65 = zext i8 %64 to i32 ; [#uses=1]
+ store i32 %65, i32* %first, align 4
+ store i32 -1, i32* %nret, align 4
+ br label %79
+
+; <label>:66 ; preds = %25
+ %67 = load i32* %nret, align 4 ; [#uses=1]
+ %68 = icmp eq i32 %67, 1 ; [#uses=1]
+ br i1 %68, label %69, label %72
+
+; <label>:69 ; preds = %66
+ %70 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %71 = call i32 @_Z15luaK_exp2anyregP9FuncStateP7expdesc(%struct.FuncState* %70, %struct.expdesc* %e) ; [#uses=1]
+ store i32 %71, i32* %first, align 4
+ br label %78
+
+; <label>:72 ; preds = %66
+ %73 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z16luaK_exp2nextregP9FuncStateP7expdesc(%struct.FuncState* %73, %struct.expdesc* %e)
+ %74 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %75 = getelementptr inbounds %struct.FuncState* %74, i32 0, i32 13 ; [#uses=1]
+ %76 = load i8* %75, align 1 ; [#uses=1]
+ %77 = zext i8 %76 to i32 ; [#uses=1]
+ store i32 %77, i32* %first, align 4
+ br label %78
+
+; <label>:78 ; preds = %72, %69
+ br label %79
+
+; <label>:79 ; preds = %78, %61
+ br label %80
+
+; <label>:80 ; preds = %79, %18
+ %81 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %82 = load i32* %first, align 4 ; [#uses=1]
+ %83 = load i32* %nret, align 4 ; [#uses=1]
+ call void @_Z8luaK_retP9FuncStateii(%struct.FuncState* %81, i32 %82, i32 %83)
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z9breakstatP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=3]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=5]
+ %bl = alloca %struct.BlockCnt*, align 4 ; [#uses=9]
+ %upval = alloca i32, align 4 ; [#uses=4]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.LexState* %2, i32 0, i32 5 ; [#uses=1]
+ %4 = load %struct.FuncState** %3, align 4 ; [#uses=1]
+ store %struct.FuncState* %4, %struct.FuncState** %fs, align 4
+ %5 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.FuncState* %5, i32 0, i32 5 ; [#uses=1]
+ %7 = load %struct.BlockCnt** %6, align 4 ; [#uses=1]
+ store %struct.BlockCnt* %7, %struct.BlockCnt** %bl, align 4
+ store i32 0, i32* %upval, align 4
+ br label %8
+
+; <label>:8 ; preds = %19, %0
+ %9 = load %struct.BlockCnt** %bl, align 4 ; [#uses=1]
+ %10 = icmp ne %struct.BlockCnt* %9, null ; [#uses=1]
+ br i1 %10, label %11, label %17
+
+; <label>:11 ; preds = %8
+ %12 = load %struct.BlockCnt** %bl, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.BlockCnt* %12, i32 0, i32 4 ; [#uses=1]
+ %14 = load i8* %13, align 1 ; [#uses=1]
+ %15 = icmp ne i8 %14, 0 ; [#uses=1]
+ %16 = xor i1 %15, true ; [#uses=1]
+ br label %17
+
+; <label>:17 ; preds = %11, %8
+ %18 = phi i1 [ false, %8 ], [ %16, %11 ] ; [#uses=1]
+ br i1 %18, label %19, label %29
+
+; <label>:19 ; preds = %17
+ %20 = load %struct.BlockCnt** %bl, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.BlockCnt* %20, i32 0, i32 3 ; [#uses=1]
+ %22 = load i8* %21, align 1 ; [#uses=1]
+ %23 = zext i8 %22 to i32 ; [#uses=1]
+ %24 = load i32* %upval, align 4 ; [#uses=1]
+ %25 = or i32 %24, %23 ; [#uses=1]
+ store i32 %25, i32* %upval, align 4
+ %26 = load %struct.BlockCnt** %bl, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.BlockCnt* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = load %struct.BlockCnt** %27, align 4 ; [#uses=1]
+ store %struct.BlockCnt* %28, %struct.BlockCnt** %bl, align 4
+ br label %8
+
+; <label>:29 ; preds = %17
+ %30 = load %struct.BlockCnt** %bl, align 4 ; [#uses=1]
+ %31 = icmp ne %struct.BlockCnt* %30, null ; [#uses=1]
+ br i1 %31, label %34, label %32
+
+; <label>:32 ; preds = %29
+ %33 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z16luaX_syntaxerrorP8LexStatePKc(%struct.LexState* %33, i8* getelementptr inbounds ([17 x i8]* @.str17146, i32 0, i32 0))
+ br label %34
+
+; <label>:34 ; preds = %32, %29
+ %35 = load i32* %upval, align 4 ; [#uses=1]
+ %36 = icmp ne i32 %35, 0 ; [#uses=1]
+ br i1 %36, label %37, label %44
+
+; <label>:37 ; preds = %34
+ %38 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %39 = load %struct.BlockCnt** %bl, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.BlockCnt* %39, i32 0, i32 2 ; [#uses=1]
+ %41 = load i8* %40, align 1 ; [#uses=1]
+ %42 = zext i8 %41 to i32 ; [#uses=1]
+ %43 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %38, i32 35, i32 %42, i32 0, i32 0) ; [#uses=0]
+ br label %44
+
+; <label>:44 ; preds = %37, %34
+ %45 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %46 = load %struct.BlockCnt** %bl, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.BlockCnt* %46, i32 0, i32 1 ; [#uses=1]
+ %48 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %49 = call i32 @_Z9luaK_jumpP9FuncState(%struct.FuncState* %48) ; [#uses=1]
+ call void @_Z11luaK_concatP9FuncStatePii(%struct.FuncState* %45, i32* %47, i32 %49)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z8exprstatP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=4]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %v = alloca %struct.LHS_assign, align 4 ; [#uses=6]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.LexState* %2, i32 0, i32 5 ; [#uses=1]
+ %4 = load %struct.FuncState** %3, align 4 ; [#uses=1]
+ store %struct.FuncState* %4, %struct.FuncState** %fs, align 4
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LHS_assign* %v, i32 0, i32 1 ; [#uses=1]
+ call void @_Z10primaryexpP8LexStateP7expdesc(%struct.LexState* %5, %struct.expdesc* %6)
+ %7 = getelementptr inbounds %struct.LHS_assign* %v, i32 0, i32 1 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.expdesc* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ %10 = icmp eq i32 %9, 13 ; [#uses=1]
+ br i1 %10, label %11, label %37
+
+; <label>:11 ; preds = %0
+ %12 = getelementptr inbounds %struct.LHS_assign* %v, i32 0, i32 1 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.expdesc* %12, i32 0, i32 1 ; [#uses=1]
+ %14 = getelementptr inbounds %2* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = getelementptr inbounds %3* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = load i32* %15, align 4 ; [#uses=1]
+ %17 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.FuncState* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = load %struct.Proto** %18, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.Proto* %19, i32 0, i32 4 ; [#uses=1]
+ %21 = load i32** %20, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds i32* %21, i32 %16 ; [#uses=1]
+ %23 = load i32* %22 ; [#uses=1]
+ %24 = and i32 %23, -8372225 ; [#uses=1]
+ %25 = or i32 %24, 16384 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.LHS_assign* %v, i32 0, i32 1 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.expdesc* %26, i32 0, i32 1 ; [#uses=1]
+ %28 = getelementptr inbounds %2* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = getelementptr inbounds %3* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = load i32* %29, align 4 ; [#uses=1]
+ %31 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.FuncState* %31, i32 0, i32 0 ; [#uses=1]
+ %33 = load %struct.Proto** %32, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.Proto* %33, i32 0, i32 4 ; [#uses=1]
+ %35 = load i32** %34, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds i32* %35, i32 %30 ; [#uses=1]
+ store i32 %25, i32* %36
+ br label %40
+
+; <label>:37 ; preds = %0
+ %38 = getelementptr inbounds %struct.LHS_assign* %v, i32 0, i32 0 ; [#uses=1]
+ store %struct.LHS_assign* null, %struct.LHS_assign** %38, align 4
+ %39 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z10assignmentP8LexStateP10LHS_assigni(%struct.LexState* %39, %struct.LHS_assign* %v, i32 1)
+ br label %40
+
+; <label>:40 ; preds = %37, %11
+ ret void
+}
+
+; [#uses=3]
+define internal void @_Z10primaryexpP8LexStateP7expdesc(%struct.LexState* %ls, %struct.expdesc* %v) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=10]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=9]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=5]
+ %key = alloca %struct.expdesc, align 4 ; [#uses=2]
+ %key1 = alloca %struct.expdesc, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.expdesc* %v, %struct.expdesc** %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 5 ; [#uses=1]
+ %5 = load %struct.FuncState** %4, align 4 ; [#uses=1]
+ store %struct.FuncState* %5, %struct.FuncState** %fs, align 4
+ %6 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %7 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z9prefixexpP8LexStateP7expdesc(%struct.LexState* %6, %struct.expdesc* %7)
+ br label %8
+
+; <label>:8 ; preds = %36, %0
+ %9 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.LexState* %9, i32 0, i32 3 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Token* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ switch i32 %12, label %35 [
+ i32 46, label %13
+ i32 91, label %16
+ i32 58, label %23
+ i32 40, label %30
+ i32 286, label %30
+ i32 123, label %30
+ ]
+
+; <label>:13 ; preds = %8
+ %14 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %15 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z5fieldP8LexStateP7expdesc(%struct.LexState* %14, %struct.expdesc* %15)
+ br label %36
+
+; <label>:16 ; preds = %8
+ %17 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %18 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %19 = call i32 @_Z15luaK_exp2anyregP9FuncStateP7expdesc(%struct.FuncState* %17, %struct.expdesc* %18) ; [#uses=0]
+ %20 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z6yindexP8LexStateP7expdesc(%struct.LexState* %20, %struct.expdesc* %key)
+ %21 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %22 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z12luaK_indexedP9FuncStateP7expdescS2_(%struct.FuncState* %21, %struct.expdesc* %22, %struct.expdesc* %key)
+ br label %36
+
+; <label>:23 ; preds = %8
+ %24 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %24)
+ %25 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9checknameP8LexStateP7expdesc(%struct.LexState* %25, %struct.expdesc* %key1)
+ %26 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %27 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z9luaK_selfP9FuncStateP7expdescS2_(%struct.FuncState* %26, %struct.expdesc* %27, %struct.expdesc* %key1)
+ %28 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %29 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z8funcargsP8LexStateP7expdesc(%struct.LexState* %28, %struct.expdesc* %29)
+ br label %36
+
+; <label>:30 ; preds = %8, %8, %8
+ %31 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %32 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z16luaK_exp2nextregP9FuncStateP7expdesc(%struct.FuncState* %31, %struct.expdesc* %32)
+ %33 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %34 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z8funcargsP8LexStateP7expdesc(%struct.LexState* %33, %struct.expdesc* %34)
+ br label %36
+
+; <label>:35 ; preds = %8
+ ret void
+
+; <label>:36 ; preds = %30, %23, %16, %13
+ br label %8
+}
+
+; [#uses=2]
+define internal void @_Z10assignmentP8LexStateP10LHS_assigni(%struct.LexState* %ls, %struct.LHS_assign* %lh, i32 %nvars) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=17]
+ %2 = alloca %struct.LHS_assign*, align 4 ; [#uses=7]
+ %3 = alloca i32, align 4 ; [#uses=7]
+ %e = alloca %struct.expdesc, align 4 ; [#uses=6]
+ %nv = alloca %struct.LHS_assign, align 4 ; [#uses=5]
+ %nexps = alloca i32, align 4 ; [#uses=5]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.LHS_assign* %lh, %struct.LHS_assign** %2, align 4
+ store i32 %nvars, i32* %3, align 4
+ %4 = load %struct.LHS_assign** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.LHS_assign* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.expdesc* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ %8 = icmp sle i32 6, %7 ; [#uses=1]
+ br i1 %8, label %9, label %15
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.LHS_assign** %2, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.LHS_assign* %10, i32 0, i32 1 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.expdesc* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ %14 = icmp sle i32 %13, 9 ; [#uses=1]
+ br i1 %14, label %17, label %15
+
+; <label>:15 ; preds = %9, %0
+ %16 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z16luaX_syntaxerrorP8LexStatePKc(%struct.LexState* %16, i8* getelementptr inbounds ([13 x i8]* @.str12957, i32 0, i32 0))
+ br label %17
+
+; <label>:17 ; preds = %15, %9
+ %18 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %19 = call i32 @_Z8testnextP8LexStatei(%struct.LexState* %18, i32 44) ; [#uses=1]
+ %20 = icmp ne i32 %19, 0 ; [#uses=1]
+ br i1 %20, label %21, label %59
+
+; <label>:21 ; preds = %17
+ %22 = load %struct.LHS_assign** %2, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.LHS_assign* %nv, i32 0, i32 0 ; [#uses=1]
+ store %struct.LHS_assign* %22, %struct.LHS_assign** %23, align 4
+ %24 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.LHS_assign* %nv, i32 0, i32 1 ; [#uses=1]
+ call void @_Z10primaryexpP8LexStateP7expdesc(%struct.LexState* %24, %struct.expdesc* %25)
+ %26 = getelementptr inbounds %struct.LHS_assign* %nv, i32 0, i32 1 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.expdesc* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = load i32* %27, align 4 ; [#uses=1]
+ %29 = icmp eq i32 %28, 6 ; [#uses=1]
+ br i1 %29, label %30, label %34
+
+; <label>:30 ; preds = %21
+ %31 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %32 = load %struct.LHS_assign** %2, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.LHS_assign* %nv, i32 0, i32 1 ; [#uses=1]
+ call void @_Z14check_conflictP8LexStateP10LHS_assignP7expdesc(%struct.LexState* %31, %struct.LHS_assign* %32, %struct.expdesc* %33)
+ br label %34
+
+; <label>:34 ; preds = %30, %21
+ %35 = load i32* %3, align 4 ; [#uses=1]
+ %36 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.LexState* %36, i32 0, i32 6 ; [#uses=1]
+ %38 = load %struct.lua_State** %37, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.lua_State* %38, i32 0, i32 15 ; [#uses=1]
+ %40 = load i16* %39, align 2 ; [#uses=1]
+ %41 = zext i16 %40 to i32 ; [#uses=1]
+ %42 = sub nsw i32 200, %41 ; [#uses=1]
+ %43 = icmp sgt i32 %35, %42 ; [#uses=1]
+ br i1 %43, label %44, label %55
+
+; <label>:44 ; preds = %34
+ %45 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.LexState* %45, i32 0, i32 5 ; [#uses=1]
+ %47 = load %struct.FuncState** %46, align 4 ; [#uses=1]
+ %48 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.LexState* %48, i32 0, i32 6 ; [#uses=1]
+ %50 = load %struct.lua_State** %49, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.lua_State* %50, i32 0, i32 15 ; [#uses=1]
+ %52 = load i16* %51, align 2 ; [#uses=1]
+ %53 = zext i16 %52 to i32 ; [#uses=1]
+ %54 = sub nsw i32 200, %53 ; [#uses=1]
+ call void @_Z10errorlimitP9FuncStateiPKc(%struct.FuncState* %47, i32 %54, i8* getelementptr inbounds ([24 x i8]* @.str1130, i32 0, i32 0))
+ br label %55
+
+; <label>:55 ; preds = %44, %34
+ %56 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %57 = load i32* %3, align 4 ; [#uses=1]
+ %58 = add nsw i32 %57, 1 ; [#uses=1]
+ call void @_Z10assignmentP8LexStateP10LHS_assigni(%struct.LexState* %56, %struct.LHS_assign* %nv, i32 %58)
+ br label %94
+
+; <label>:59 ; preds = %17
+ %60 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9checknextP8LexStatei(%struct.LexState* %60, i32 61)
+ %61 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %62 = call i32 @_Z8explist1P8LexStateP7expdesc(%struct.LexState* %61, %struct.expdesc* %e) ; [#uses=1]
+ store i32 %62, i32* %nexps, align 4
+ %63 = load i32* %nexps, align 4 ; [#uses=1]
+ %64 = load i32* %3, align 4 ; [#uses=1]
+ %65 = icmp ne i32 %63, %64 ; [#uses=1]
+ br i1 %65, label %66, label %84
+
+; <label>:66 ; preds = %59
+ %67 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %68 = load i32* %3, align 4 ; [#uses=1]
+ %69 = load i32* %nexps, align 4 ; [#uses=1]
+ call void @_Z13adjust_assignP8LexStateiiP7expdesc(%struct.LexState* %67, i32 %68, i32 %69, %struct.expdesc* %e)
+ %70 = load i32* %nexps, align 4 ; [#uses=1]
+ %71 = load i32* %3, align 4 ; [#uses=1]
+ %72 = icmp sgt i32 %70, %71 ; [#uses=1]
+ br i1 %72, label %73, label %83
+
+; <label>:73 ; preds = %66
+ %74 = load i32* %nexps, align 4 ; [#uses=1]
+ %75 = load i32* %3, align 4 ; [#uses=1]
+ %76 = sub nsw i32 %74, %75 ; [#uses=1]
+ %77 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %78 = getelementptr inbounds %struct.LexState* %77, i32 0, i32 5 ; [#uses=1]
+ %79 = load %struct.FuncState** %78, align 4 ; [#uses=1]
+ %80 = getelementptr inbounds %struct.FuncState* %79, i32 0, i32 9 ; [#uses=2]
+ %81 = load i32* %80, align 4 ; [#uses=1]
+ %82 = sub nsw i32 %81, %76 ; [#uses=1]
+ store i32 %82, i32* %80, align 4
+ br label %83
+
+; <label>:83 ; preds = %73, %66
+ br label %93
+
+; <label>:84 ; preds = %59
+ %85 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %86 = getelementptr inbounds %struct.LexState* %85, i32 0, i32 5 ; [#uses=1]
+ %87 = load %struct.FuncState** %86, align 4 ; [#uses=1]
+ call void @_Z14luaK_setoneretP9FuncStateP7expdesc(%struct.FuncState* %87, %struct.expdesc* %e)
+ %88 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %89 = getelementptr inbounds %struct.LexState* %88, i32 0, i32 5 ; [#uses=1]
+ %90 = load %struct.FuncState** %89, align 4 ; [#uses=1]
+ %91 = load %struct.LHS_assign** %2, align 4 ; [#uses=1]
+ %92 = getelementptr inbounds %struct.LHS_assign* %91, i32 0, i32 1 ; [#uses=1]
+ call void @_Z13luaK_storevarP9FuncStateP7expdescS2_(%struct.FuncState* %90, %struct.expdesc* %92, %struct.expdesc* %e)
+ br label %106
+
+; <label>:93 ; preds = %83
+ br label %94
+
+; <label>:94 ; preds = %93, %55
+ %95 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %96 = getelementptr inbounds %struct.LexState* %95, i32 0, i32 5 ; [#uses=1]
+ %97 = load %struct.FuncState** %96, align 4 ; [#uses=1]
+ %98 = getelementptr inbounds %struct.FuncState* %97, i32 0, i32 9 ; [#uses=1]
+ %99 = load i32* %98, align 4 ; [#uses=1]
+ %100 = sub nsw i32 %99, 1 ; [#uses=1]
+ call void @_Z8init_expP7expdesc7expkindi(%struct.expdesc* %e, i32 12, i32 %100)
+ %101 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %102 = getelementptr inbounds %struct.LexState* %101, i32 0, i32 5 ; [#uses=1]
+ %103 = load %struct.FuncState** %102, align 4 ; [#uses=1]
+ %104 = load %struct.LHS_assign** %2, align 4 ; [#uses=1]
+ %105 = getelementptr inbounds %struct.LHS_assign* %104, i32 0, i32 1 ; [#uses=1]
+ call void @_Z13luaK_storevarP9FuncStateP7expdescS2_(%struct.FuncState* %103, %struct.expdesc* %105, %struct.expdesc* %e)
+ br label %106
+
+; <label>:106 ; preds = %94, %84
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z14check_conflictP8LexStateP10LHS_assignP7expdesc(%struct.LexState* %ls, %struct.LHS_assign* %lh, %struct.expdesc* %v) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=2]
+ %2 = alloca %struct.LHS_assign*, align 4 ; [#uses=9]
+ %3 = alloca %struct.expdesc*, align 4 ; [#uses=4]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=5]
+ %extra = alloca i32, align 4 ; [#uses=3]
+ %conflict = alloca i32, align 4 ; [#uses=4]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.LHS_assign* %lh, %struct.LHS_assign** %2, align 4
+ store %struct.expdesc* %v, %struct.expdesc** %3, align 4
+ %4 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.LexState* %4, i32 0, i32 5 ; [#uses=1]
+ %6 = load %struct.FuncState** %5, align 4 ; [#uses=1]
+ store %struct.FuncState* %6, %struct.FuncState** %fs, align 4
+ %7 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.FuncState* %7, i32 0, i32 9 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ store i32 %9, i32* %extra, align 4
+ store i32 0, i32* %conflict, align 4
+ br label %10
+
+; <label>:10 ; preds = %61, %0
+ %11 = load %struct.LHS_assign** %2, align 4 ; [#uses=1]
+ %12 = icmp ne %struct.LHS_assign* %11, null ; [#uses=1]
+ br i1 %12, label %13, label %65
+
+; <label>:13 ; preds = %10
+ %14 = load %struct.LHS_assign** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.LHS_assign* %14, i32 0, i32 1 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.expdesc* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = load i32* %16, align 4 ; [#uses=1]
+ %18 = icmp eq i32 %17, 9 ; [#uses=1]
+ br i1 %18, label %19, label %60
+
+; <label>:19 ; preds = %13
+ %20 = load %struct.LHS_assign** %2, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.LHS_assign* %20, i32 0, i32 1 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.expdesc* %21, i32 0, i32 1 ; [#uses=1]
+ %23 = getelementptr inbounds %2* %22, i32 0, i32 0 ; [#uses=1]
+ %24 = getelementptr inbounds %3* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = load i32* %24, align 4 ; [#uses=1]
+ %26 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.expdesc* %26, i32 0, i32 1 ; [#uses=1]
+ %28 = getelementptr inbounds %2* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = getelementptr inbounds %3* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = load i32* %29, align 4 ; [#uses=1]
+ %31 = icmp eq i32 %25, %30 ; [#uses=1]
+ br i1 %31, label %32, label %39
+
+; <label>:32 ; preds = %19
+ store i32 1, i32* %conflict, align 4
+ %33 = load i32* %extra, align 4 ; [#uses=1]
+ %34 = load %struct.LHS_assign** %2, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.LHS_assign* %34, i32 0, i32 1 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.expdesc* %35, i32 0, i32 1 ; [#uses=1]
+ %37 = getelementptr inbounds %2* %36, i32 0, i32 0 ; [#uses=1]
+ %38 = getelementptr inbounds %3* %37, i32 0, i32 0 ; [#uses=1]
+ store i32 %33, i32* %38, align 4
+ br label %39
+
+; <label>:39 ; preds = %32, %19
+ %40 = load %struct.LHS_assign** %2, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.LHS_assign* %40, i32 0, i32 1 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.expdesc* %41, i32 0, i32 1 ; [#uses=1]
+ %43 = getelementptr inbounds %2* %42, i32 0, i32 0 ; [#uses=1]
+ %44 = getelementptr inbounds %3* %43, i32 0, i32 1 ; [#uses=1]
+ %45 = load i32* %44, align 4 ; [#uses=1]
+ %46 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.expdesc* %46, i32 0, i32 1 ; [#uses=1]
+ %48 = getelementptr inbounds %2* %47, i32 0, i32 0 ; [#uses=1]
+ %49 = getelementptr inbounds %3* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = load i32* %49, align 4 ; [#uses=1]
+ %51 = icmp eq i32 %45, %50 ; [#uses=1]
+ br i1 %51, label %52, label %59
+
+; <label>:52 ; preds = %39
+ store i32 1, i32* %conflict, align 4
+ %53 = load i32* %extra, align 4 ; [#uses=1]
+ %54 = load %struct.LHS_assign** %2, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.LHS_assign* %54, i32 0, i32 1 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.expdesc* %55, i32 0, i32 1 ; [#uses=1]
+ %57 = getelementptr inbounds %2* %56, i32 0, i32 0 ; [#uses=1]
+ %58 = getelementptr inbounds %3* %57, i32 0, i32 1 ; [#uses=1]
+ store i32 %53, i32* %58, align 4
+ br label %59
+
+; <label>:59 ; preds = %52, %39
+ br label %60
+
+; <label>:60 ; preds = %59, %13
+ br label %61
+
+; <label>:61 ; preds = %60
+ %62 = load %struct.LHS_assign** %2, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.LHS_assign* %62, i32 0, i32 0 ; [#uses=1]
+ %64 = load %struct.LHS_assign** %63, align 4 ; [#uses=1]
+ store %struct.LHS_assign* %64, %struct.LHS_assign** %2, align 4
+ br label %10
+
+; <label>:65 ; preds = %10
+ %66 = load i32* %conflict, align 4 ; [#uses=1]
+ %67 = icmp ne i32 %66, 0 ; [#uses=1]
+ br i1 %67, label %68, label %80
+
+; <label>:68 ; preds = %65
+ %69 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %70 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %71 = getelementptr inbounds %struct.FuncState* %70, i32 0, i32 9 ; [#uses=1]
+ %72 = load i32* %71, align 4 ; [#uses=1]
+ %73 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.expdesc* %73, i32 0, i32 1 ; [#uses=1]
+ %75 = getelementptr inbounds %2* %74, i32 0, i32 0 ; [#uses=1]
+ %76 = getelementptr inbounds %3* %75, i32 0, i32 0 ; [#uses=1]
+ %77 = load i32* %76, align 4 ; [#uses=1]
+ %78 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %69, i32 0, i32 %72, i32 %77, i32 0) ; [#uses=0]
+ %79 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z16luaK_reserveregsP9FuncStatei(%struct.FuncState* %79, i32 1)
+ br label %80
+
+; <label>:80 ; preds = %68, %65
+ ret void
+}
+
+; [#uses=5]
+define internal void @_Z10errorlimitP9FuncStateiPKc(%struct.FuncState* %fs, i32 %limit, i8* %what) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=6]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %3 = alloca i8*, align 4 ; [#uses=3]
+ %msg = alloca i8*, align 4 ; [#uses=2]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %limit, i32* %2, align 4
+ store i8* %what, i8** %3, align 4
+ %4 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.FuncState* %4, i32 0, i32 0 ; [#uses=1]
+ %6 = load %struct.Proto** %5, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.Proto* %6, i32 0, i32 16 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = icmp eq i32 %8, 0 ; [#uses=1]
+ br i1 %9, label %10, label %17
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.FuncState* %11, i32 0, i32 4 ; [#uses=1]
+ %13 = load %struct.lua_State** %12, align 4 ; [#uses=1]
+ %14 = load i32* %2, align 4 ; [#uses=1]
+ %15 = load i8** %3, align 4 ; [#uses=1]
+ %16 = call i8* (%struct.lua_State*, i8*, ...)* @_Z16luaO_pushfstringP9lua_StatePKcz(%struct.lua_State* %13, i8* getelementptr inbounds ([34 x i8]* @.str10139, i32 0, i32 0), i32 %14, i8* %15) ; [#uses=1]
+ br label %29
+
+; <label>:17 ; preds = %0
+ %18 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.FuncState* %18, i32 0, i32 4 ; [#uses=1]
+ %20 = load %struct.lua_State** %19, align 4 ; [#uses=1]
+ %21 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.FuncState* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = load %struct.Proto** %22, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.Proto* %23, i32 0, i32 16 ; [#uses=1]
+ %25 = load i32* %24, align 4 ; [#uses=1]
+ %26 = load i32* %2, align 4 ; [#uses=1]
+ %27 = load i8** %3, align 4 ; [#uses=1]
+ %28 = call i8* (%struct.lua_State*, i8*, ...)* @_Z16luaO_pushfstringP9lua_StatePKcz(%struct.lua_State* %20, i8* getelementptr inbounds ([40 x i8]* @.str11140, i32 0, i32 0), i32 %25, i32 %26, i8* %27) ; [#uses=1]
+ br label %29
+
+; <label>:29 ; preds = %17, %10
+ %30 = phi i8* [ %16, %10 ], [ %28, %17 ] ; [#uses=1]
+ store i8* %30, i8** %msg, align 4
+ %31 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.FuncState* %31, i32 0, i32 3 ; [#uses=1]
+ %33 = load %struct.LexState** %32, align 4 ; [#uses=1]
+ %34 = load i8** %msg, align 4 ; [#uses=1]
+ call void @_Z13luaX_lexerrorP8LexStatePKci(%struct.LexState* %33, i8* %34, i32 0)
+ ret void
+}
+
+; [#uses=12]
+define internal void @_Z9checknextP8LexStatei(%struct.LexState* %ls, i32 %c) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 %c, i32* %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z5checkP8LexStatei(%struct.LexState* %3, i32 %4)
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %5)
+ ret void
+}
+
+; [#uses=5]
+define internal i32 @_Z8explist1P8LexStateP7expdesc(%struct.LexState* %ls, %struct.expdesc* %v) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=5]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=4]
+ %n = alloca i32, align 4 ; [#uses=4]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.expdesc* %v, %struct.expdesc** %2, align 4
+ store i32 1, i32* %n, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z4exprP8LexStateP7expdesc(%struct.LexState* %3, %struct.expdesc* %4)
+ br label %5
+
+; <label>:5 ; preds = %9, %0
+ %6 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %7 = call i32 @_Z8testnextP8LexStatei(%struct.LexState* %6, i32 44) ; [#uses=1]
+ %8 = icmp ne i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %9, label %18
+
+; <label>:9 ; preds = %5
+ %10 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.LexState* %10, i32 0, i32 5 ; [#uses=1]
+ %12 = load %struct.FuncState** %11, align 4 ; [#uses=1]
+ %13 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z16luaK_exp2nextregP9FuncStateP7expdesc(%struct.FuncState* %12, %struct.expdesc* %13)
+ %14 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %15 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z4exprP8LexStateP7expdesc(%struct.LexState* %14, %struct.expdesc* %15)
+ %16 = load i32* %n, align 4 ; [#uses=1]
+ %17 = add nsw i32 %16, 1 ; [#uses=1]
+ store i32 %17, i32* %n, align 4
+ br label %5
+
+; <label>:18 ; preds = %5
+ %19 = load i32* %n, align 4 ; [#uses=1]
+ ret i32 %19
+}
+
+; [#uses=3]
+define internal void @_Z13adjust_assignP8LexStateiiP7expdesc(%struct.LexState* %ls, i32 %nvars, i32 %nexps, %struct.expdesc* %e) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=2]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca %struct.expdesc*, align 4 ; [#uses=6]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=7]
+ %extra = alloca i32, align 4 ; [#uses=11]
+ %reg = alloca i32, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 %nvars, i32* %2, align 4
+ store i32 %nexps, i32* %3, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %4, align 4
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LexState* %5, i32 0, i32 5 ; [#uses=1]
+ %7 = load %struct.FuncState** %6, align 4 ; [#uses=1]
+ store %struct.FuncState* %7, %struct.FuncState** %fs, align 4
+ %8 = load i32* %2, align 4 ; [#uses=1]
+ %9 = load i32* %3, align 4 ; [#uses=1]
+ %10 = sub nsw i32 %8, %9 ; [#uses=1]
+ store i32 %10, i32* %extra, align 4
+ %11 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.expdesc* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ %14 = icmp eq i32 %13, 13 ; [#uses=1]
+ br i1 %14, label %20, label %15
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.expdesc* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = load i32* %17, align 4 ; [#uses=1]
+ %19 = icmp eq i32 %18, 14 ; [#uses=1]
+ br i1 %19, label %20, label %37
+
+; <label>:20 ; preds = %15, %0
+ %21 = load i32* %extra, align 4 ; [#uses=1]
+ %22 = add nsw i32 %21, 1 ; [#uses=1]
+ store i32 %22, i32* %extra, align 4
+ %23 = load i32* %extra, align 4 ; [#uses=1]
+ %24 = icmp slt i32 %23, 0 ; [#uses=1]
+ br i1 %24, label %25, label %26
+
+; <label>:25 ; preds = %20
+ store i32 0, i32* %extra, align 4
+ br label %26
+
+; <label>:26 ; preds = %25, %20
+ %27 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %28 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %29 = load i32* %extra, align 4 ; [#uses=1]
+ call void @_Z15luaK_setreturnsP9FuncStateP7expdesci(%struct.FuncState* %27, %struct.expdesc* %28, i32 %29)
+ %30 = load i32* %extra, align 4 ; [#uses=1]
+ %31 = icmp sgt i32 %30, 1 ; [#uses=1]
+ br i1 %31, label %32, label %36
+
+; <label>:32 ; preds = %26
+ %33 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %34 = load i32* %extra, align 4 ; [#uses=1]
+ %35 = sub nsw i32 %34, 1 ; [#uses=1]
+ call void @_Z16luaK_reserveregsP9FuncStatei(%struct.FuncState* %33, i32 %35)
+ br label %36
+
+; <label>:36 ; preds = %32, %26
+ br label %58
+
+; <label>:37 ; preds = %15
+ %38 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.expdesc* %38, i32 0, i32 0 ; [#uses=1]
+ %40 = load i32* %39, align 4 ; [#uses=1]
+ %41 = icmp ne i32 %40, 0 ; [#uses=1]
+ br i1 %41, label %42, label %45
+
+; <label>:42 ; preds = %37
+ %43 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %44 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z16luaK_exp2nextregP9FuncStateP7expdesc(%struct.FuncState* %43, %struct.expdesc* %44)
+ br label %45
+
+; <label>:45 ; preds = %42, %37
+ %46 = load i32* %extra, align 4 ; [#uses=1]
+ %47 = icmp sgt i32 %46, 0 ; [#uses=1]
+ br i1 %47, label %48, label %57
+
+; <label>:48 ; preds = %45
+ %49 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.FuncState* %49, i32 0, i32 9 ; [#uses=1]
+ %51 = load i32* %50, align 4 ; [#uses=1]
+ store i32 %51, i32* %reg, align 4
+ %52 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %53 = load i32* %extra, align 4 ; [#uses=1]
+ call void @_Z16luaK_reserveregsP9FuncStatei(%struct.FuncState* %52, i32 %53)
+ %54 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %55 = load i32* %reg, align 4 ; [#uses=1]
+ %56 = load i32* %extra, align 4 ; [#uses=1]
+ call void @_Z8luaK_nilP9FuncStateii(%struct.FuncState* %54, i32 %55, i32 %56)
+ br label %57
+
+; <label>:57 ; preds = %48, %45
+ br label %58
+
+; <label>:58 ; preds = %57, %36
+ ret void
+}
+
+; [#uses=14]
+define internal void @_Z8init_expP7expdesc7expkindi(%struct.expdesc* %e, i32 %k, i32 %i) nounwind {
+ %1 = alloca %struct.expdesc*, align 4 ; [#uses=5]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ store %struct.expdesc* %e, %struct.expdesc** %1, align 4
+ store i32 %k, i32* %2, align 4
+ store i32 %i, i32* %3, align 4
+ %4 = load %struct.expdesc** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.expdesc* %4, i32 0, i32 2 ; [#uses=1]
+ store i32 -1, i32* %5, align 4
+ %6 = load %struct.expdesc** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.expdesc* %6, i32 0, i32 3 ; [#uses=1]
+ store i32 -1, i32* %7, align 4
+ %8 = load i32* %2, align 4 ; [#uses=1]
+ %9 = load %struct.expdesc** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.expdesc* %9, i32 0, i32 0 ; [#uses=1]
+ store i32 %8, i32* %10, align 4
+ %11 = load i32* %3, align 4 ; [#uses=1]
+ %12 = load %struct.expdesc** %1, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.expdesc* %12, i32 0, i32 1 ; [#uses=1]
+ %14 = getelementptr inbounds %2* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = getelementptr inbounds %3* %14, i32 0, i32 0 ; [#uses=1]
+ store i32 %11, i32* %15, align 4
+ ret void
+}
+
+; [#uses=8]
+define internal void @_Z4exprP8LexStateP7expdesc(%struct.LexState* %ls, %struct.expdesc* %v) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=2]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.expdesc* %v, %struct.expdesc** %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z7subexprP8LexStateP7expdescj(%struct.LexState* %3, %struct.expdesc* %4, i32 0) ; [#uses=0]
+ ret void
+}
+
+; [#uses=3]
+define internal i32 @_Z7subexprP8LexStateP7expdescj(%struct.LexState* %ls, %struct.expdesc* %v, i32 %limit) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=13]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=6]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %op = alloca i32, align 4 ; [#uses=8]
+ %uop = alloca i32, align 4 ; [#uses=3]
+ %v2 = alloca %struct.expdesc, align 4 ; [#uses=2]
+ %nextop = alloca i32, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.expdesc* %v, %struct.expdesc** %2, align 4
+ store i32 %limit, i32* %3, align 4
+ %4 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z10enterlevelP8LexState(%struct.LexState* %4)
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LexState* %5, i32 0, i32 3 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.Token* %6, i32 0, i32 0 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = call i32 @_Z8getunopri(i32 %8) ; [#uses=1]
+ store i32 %9, i32* %uop, align 4
+ %10 = load i32* %uop, align 4 ; [#uses=1]
+ %11 = icmp ne i32 %10, 3 ; [#uses=1]
+ br i1 %11, label %12, label %22
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %13)
+ %14 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %15 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %16 = call i32 @_Z7subexprP8LexStateP7expdescj(%struct.LexState* %14, %struct.expdesc* %15, i32 8) ; [#uses=0]
+ %17 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.LexState* %17, i32 0, i32 5 ; [#uses=1]
+ %19 = load %struct.FuncState** %18, align 4 ; [#uses=1]
+ %20 = load i32* %uop, align 4 ; [#uses=1]
+ %21 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z11luaK_prefixP9FuncState5UnOprP7expdesc(%struct.FuncState* %19, i32 %20, %struct.expdesc* %21)
+ br label %25
+
+; <label>:22 ; preds = %0
+ %23 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %24 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z9simpleexpP8LexStateP7expdesc(%struct.LexState* %23, %struct.expdesc* %24)
+ br label %25
+
+; <label>:25 ; preds = %22, %12
+ %26 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.LexState* %26, i32 0, i32 3 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.Token* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = load i32* %28, align 4 ; [#uses=1]
+ %30 = call i32 @_Z9getbinopri(i32 %29) ; [#uses=1]
+ store i32 %30, i32* %op, align 4
+ br label %31
+
+; <label>:31 ; preds = %44, %25
+ %32 = load i32* %op, align 4 ; [#uses=1]
+ %33 = icmp ne i32 %32, 15 ; [#uses=1]
+ br i1 %33, label %34, label %42
+
+; <label>:34 ; preds = %31
+ %35 = load i32* %op, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds [15 x %struct.upvaldesc]* @_ZL8priority, i32 0, i32 %35 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.upvaldesc* %36, i32 0, i32 0 ; [#uses=1]
+ %38 = load i8* %37, align 1 ; [#uses=1]
+ %39 = zext i8 %38 to i32 ; [#uses=1]
+ %40 = load i32* %3, align 4 ; [#uses=1]
+ %41 = icmp ugt i32 %39, %40 ; [#uses=1]
+ br label %42
+
+; <label>:42 ; preds = %34, %31
+ %43 = phi i1 [ false, %31 ], [ %41, %34 ] ; [#uses=1]
+ br i1 %43, label %44, label %64
+
+; <label>:44 ; preds = %42
+ %45 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %45)
+ %46 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.LexState* %46, i32 0, i32 5 ; [#uses=1]
+ %48 = load %struct.FuncState** %47, align 4 ; [#uses=1]
+ %49 = load i32* %op, align 4 ; [#uses=1]
+ %50 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z10luaK_infixP9FuncState6BinOprP7expdesc(%struct.FuncState* %48, i32 %49, %struct.expdesc* %50)
+ %51 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %52 = load i32* %op, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds [15 x %struct.upvaldesc]* @_ZL8priority, i32 0, i32 %52 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.upvaldesc* %53, i32 0, i32 1 ; [#uses=1]
+ %55 = load i8* %54, align 1 ; [#uses=1]
+ %56 = zext i8 %55 to i32 ; [#uses=1]
+ %57 = call i32 @_Z7subexprP8LexStateP7expdescj(%struct.LexState* %51, %struct.expdesc* %v2, i32 %56) ; [#uses=1]
+ store i32 %57, i32* %nextop, align 4
+ %58 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.LexState* %58, i32 0, i32 5 ; [#uses=1]
+ %60 = load %struct.FuncState** %59, align 4 ; [#uses=1]
+ %61 = load i32* %op, align 4 ; [#uses=1]
+ %62 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z11luaK_posfixP9FuncState6BinOprP7expdescS3_(%struct.FuncState* %60, i32 %61, %struct.expdesc* %62, %struct.expdesc* %v2)
+ %63 = load i32* %nextop, align 4 ; [#uses=1]
+ store i32 %63, i32* %op, align 4
+ br label %31
+
+; <label>:64 ; preds = %42
+ %65 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.LexState* %65, i32 0, i32 6 ; [#uses=1]
+ %67 = load %struct.lua_State** %66, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.lua_State* %67, i32 0, i32 15 ; [#uses=2]
+ %69 = load i16* %68, align 2 ; [#uses=1]
+ %70 = add i16 %69, -1 ; [#uses=1]
+ store i16 %70, i16* %68, align 2
+ %71 = load i32* %op, align 4 ; [#uses=1]
+ ret i32 %71
+}
+
+; [#uses=1]
+define internal i32 @_Z8getunopri(i32 %op) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=5]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ store i32 %op, i32* %2, align 4
+ %3 = load i32* %2, align 4 ; [#uses=1]
+ switch i32 %3, label %7 [
+ i32 270, label %4
+ i32 45, label %5
+ i32 35, label %6
+ ]
+
+; <label>:4 ; preds = %0
+ store i32 1, i32* %1
+ br label %8
+
+; <label>:5 ; preds = %0
+ store i32 0, i32* %1
+ br label %8
+
+; <label>:6 ; preds = %0
+ store i32 2, i32* %1
+ br label %8
+
+; <label>:7 ; preds = %0
+ store i32 3, i32* %1
+ br label %8
+
+; <label>:8 ; preds = %7, %6, %5, %4
+ %9 = load i32* %1 ; [#uses=1]
+ ret i32 %9
+}
+
+; [#uses=1]
+define internal void @_Z9simpleexpP8LexStateP7expdesc(%struct.LexState* %ls, %struct.expdesc* %v) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=13]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=11]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=4]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.expdesc* %v, %struct.expdesc** %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 3 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.Token* %4, i32 0, i32 0 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ switch i32 %6, label %67 [
+ i32 284, label %7
+ i32 286, label %18
+ i32 269, label %27
+ i32 275, label %29
+ i32 263, label %31
+ i32 279, label %33
+ i32 123, label %57
+ i32 265, label %60
+ ]
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z8init_expP7expdesc7expkindi(%struct.expdesc* %8, i32 5, i32 0)
+ %9 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.LexState* %9, i32 0, i32 3 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Token* %10, i32 0, i32 1 ; [#uses=1]
+ %12 = getelementptr inbounds %union.anon* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = load double* %12, align 4 ; [#uses=1]
+ %14 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.expdesc* %14, i32 0, i32 1 ; [#uses=1]
+ %16 = getelementptr inbounds %2* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = bitcast %3* %16 to double* ; [#uses=1]
+ store double %13, double* %17, align 4
+ br label %70
+
+; <label>:18 ; preds = %0
+ %19 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %20 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %21 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.LexState* %21, i32 0, i32 3 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.Token* %22, i32 0, i32 1 ; [#uses=1]
+ %24 = getelementptr inbounds %union.anon* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = bitcast double* %24 to %union.TString** ; [#uses=1]
+ %26 = load %union.TString** %25, align 4 ; [#uses=1]
+ call void @_Z10codestringP8LexStateP7expdescP7TString(%struct.LexState* %19, %struct.expdesc* %20, %union.TString* %26)
+ br label %70
+
+; <label>:27 ; preds = %0
+ %28 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z8init_expP7expdesc7expkindi(%struct.expdesc* %28, i32 1, i32 0)
+ br label %70
+
+; <label>:29 ; preds = %0
+ %30 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z8init_expP7expdesc7expkindi(%struct.expdesc* %30, i32 2, i32 0)
+ br label %70
+
+; <label>:31 ; preds = %0
+ %32 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z8init_expP7expdesc7expkindi(%struct.expdesc* %32, i32 3, i32 0)
+ br label %70
+
+; <label>:33 ; preds = %0
+ %34 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.LexState* %34, i32 0, i32 5 ; [#uses=1]
+ %36 = load %struct.FuncState** %35, align 4 ; [#uses=1]
+ store %struct.FuncState* %36, %struct.FuncState** %fs, align 4
+ %37 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.FuncState* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = load %struct.Proto** %38, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.Proto* %39, i32 0, i32 21 ; [#uses=1]
+ %41 = load i8* %40, align 1 ; [#uses=1]
+ %42 = icmp ne i8 %41, 0 ; [#uses=1]
+ br i1 %42, label %45, label %43
+
+; <label>:43 ; preds = %33
+ %44 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z16luaX_syntaxerrorP8LexStatePKc(%struct.LexState* %44, i8* getelementptr inbounds ([43 x i8]* @.str2131, i32 0, i32 0))
+ br label %45
+
+; <label>:45 ; preds = %43, %33
+ %46 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.FuncState* %46, i32 0, i32 0 ; [#uses=1]
+ %48 = load %struct.Proto** %47, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.Proto* %48, i32 0, i32 21 ; [#uses=2]
+ %50 = load i8* %49, align 1 ; [#uses=1]
+ %51 = zext i8 %50 to i32 ; [#uses=1]
+ %52 = and i32 %51, -5 ; [#uses=1]
+ %53 = trunc i32 %52 to i8 ; [#uses=1]
+ store i8 %53, i8* %49, align 1
+ %54 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %55 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %56 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %55, i32 37, i32 0, i32 1, i32 0) ; [#uses=1]
+ call void @_Z8init_expP7expdesc7expkindi(%struct.expdesc* %54, i32 14, i32 %56)
+ br label %70
+
+; <label>:57 ; preds = %0
+ %58 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %59 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z11constructorP8LexStateP7expdesc(%struct.LexState* %58, %struct.expdesc* %59)
+ br label %72
+
+; <label>:60 ; preds = %0
+ %61 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %61)
+ %62 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %63 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %64 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %struct.LexState* %64, i32 0, i32 1 ; [#uses=1]
+ %66 = load i32* %65, align 4 ; [#uses=1]
+ call void @_Z4bodyP8LexStateP7expdescii(%struct.LexState* %62, %struct.expdesc* %63, i32 0, i32 %66)
+ br label %72
+
+; <label>:67 ; preds = %0
+ %68 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %69 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z10primaryexpP8LexStateP7expdesc(%struct.LexState* %68, %struct.expdesc* %69)
+ br label %72
+
+; <label>:70 ; preds = %45, %31, %29, %27, %18, %7
+ %71 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %71)
+ br label %72
+
+; <label>:72 ; preds = %70, %67, %60, %57
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z9getbinopri(i32 %op) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=17]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ store i32 %op, i32* %2, align 4
+ %3 = load i32* %2, align 4 ; [#uses=1]
+ switch i32 %3, label %19 [
+ i32 43, label %4
+ i32 45, label %5
+ i32 42, label %6
+ i32 47, label %7
+ i32 37, label %8
+ i32 94, label %9
+ i32 278, label %10
+ i32 283, label %11
+ i32 280, label %12
+ i32 60, label %13
+ i32 282, label %14
+ i32 62, label %15
+ i32 281, label %16
+ i32 257, label %17
+ i32 271, label %18
+ ]
+
+; <label>:4 ; preds = %0
+ store i32 0, i32* %1
+ br label %20
+
+; <label>:5 ; preds = %0
+ store i32 1, i32* %1
+ br label %20
+
+; <label>:6 ; preds = %0
+ store i32 2, i32* %1
+ br label %20
+
+; <label>:7 ; preds = %0
+ store i32 3, i32* %1
+ br label %20
+
+; <label>:8 ; preds = %0
+ store i32 4, i32* %1
+ br label %20
+
+; <label>:9 ; preds = %0
+ store i32 5, i32* %1
+ br label %20
+
+; <label>:10 ; preds = %0
+ store i32 6, i32* %1
+ br label %20
+
+; <label>:11 ; preds = %0
+ store i32 7, i32* %1
+ br label %20
+
+; <label>:12 ; preds = %0
+ store i32 8, i32* %1
+ br label %20
+
+; <label>:13 ; preds = %0
+ store i32 9, i32* %1
+ br label %20
+
+; <label>:14 ; preds = %0
+ store i32 10, i32* %1
+ br label %20
+
+; <label>:15 ; preds = %0
+ store i32 11, i32* %1
+ br label %20
+
+; <label>:16 ; preds = %0
+ store i32 12, i32* %1
+ br label %20
+
+; <label>:17 ; preds = %0
+ store i32 13, i32* %1
+ br label %20
+
+; <label>:18 ; preds = %0
+ store i32 14, i32* %1
+ br label %20
+
+; <label>:19 ; preds = %0
+ store i32 15, i32* %1
+ br label %20
+
+; <label>:20 ; preds = %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4
+ %21 = load i32* %1 ; [#uses=1]
+ ret i32 %21
+}
+
+; [#uses=3]
+define internal void @_Z10codestringP8LexStateP7expdescP7TString(%struct.LexState* %ls, %struct.expdesc* %e, %union.TString* %s) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=2]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=2]
+ %3 = alloca %union.TString*, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %2, align 4
+ store %union.TString* %s, %union.TString** %3, align 4
+ %4 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LexState* %5, i32 0, i32 5 ; [#uses=1]
+ %7 = load %struct.FuncState** %6, align 4 ; [#uses=1]
+ %8 = load %union.TString** %3, align 4 ; [#uses=1]
+ %9 = call i32 @_Z12luaK_stringKP9FuncStateP7TString(%struct.FuncState* %7, %union.TString* %8) ; [#uses=1]
+ call void @_Z8init_expP7expdesc7expkindi(%struct.expdesc* %4, i32 4, i32 %9)
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z11constructorP8LexStateP7expdesc(%struct.LexState* %ls, %struct.expdesc* %t) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=16]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=4]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=8]
+ %line = alloca i32, align 4 ; [#uses=2]
+ %pc = alloca i32, align 4 ; [#uses=6]
+ %cc = alloca %struct.ConsControl, align 4 ; [#uses=13]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.expdesc* %t, %struct.expdesc** %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 5 ; [#uses=1]
+ %5 = load %struct.FuncState** %4, align 4 ; [#uses=1]
+ store %struct.FuncState* %5, %struct.FuncState** %fs, align 4
+ %6 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.LexState* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ store i32 %8, i32* %line, align 4
+ %9 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %10 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %9, i32 10, i32 0, i32 0, i32 0) ; [#uses=1]
+ store i32 %10, i32* %pc, align 4
+ %11 = getelementptr inbounds %struct.ConsControl* %cc, i32 0, i32 4 ; [#uses=1]
+ store i32 0, i32* %11, align 4
+ %12 = getelementptr inbounds %struct.ConsControl* %cc, i32 0, i32 2 ; [#uses=1]
+ store i32 0, i32* %12, align 4
+ %13 = getelementptr inbounds %struct.ConsControl* %cc, i32 0, i32 3 ; [#uses=1]
+ store i32 0, i32* %13, align 4
+ %14 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.ConsControl* %cc, i32 0, i32 1 ; [#uses=1]
+ store %struct.expdesc* %14, %struct.expdesc** %15, align 4
+ %16 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %17 = load i32* %pc, align 4 ; [#uses=1]
+ call void @_Z8init_expP7expdesc7expkindi(%struct.expdesc* %16, i32 11, i32 %17)
+ %18 = getelementptr inbounds %struct.ConsControl* %cc, i32 0, i32 0 ; [#uses=1]
+ call void @_Z8init_expP7expdesc7expkindi(%struct.expdesc* %18, i32 0, i32 0)
+ %19 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.LexState* %19, i32 0, i32 5 ; [#uses=1]
+ %21 = load %struct.FuncState** %20, align 4 ; [#uses=1]
+ %22 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z16luaK_exp2nextregP9FuncStateP7expdesc(%struct.FuncState* %21, %struct.expdesc* %22)
+ %23 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9checknextP8LexStatei(%struct.LexState* %23, i32 123)
+ br label %24
+
+; <label>:24 ; preds = %62, %0
+ %25 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.LexState* %25, i32 0, i32 3 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.Token* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = load i32* %27, align 4 ; [#uses=1]
+ %29 = icmp eq i32 %28, 125 ; [#uses=1]
+ br i1 %29, label %30, label %31
+
+; <label>:30 ; preds = %24
+ br label %64
+
+; <label>:31 ; preds = %24
+ %32 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z14closelistfieldP9FuncStateP11ConsControl(%struct.FuncState* %32, %struct.ConsControl* %cc)
+ %33 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.LexState* %33, i32 0, i32 3 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.Token* %34, i32 0, i32 0 ; [#uses=1]
+ %36 = load i32* %35, align 4 ; [#uses=1]
+ switch i32 %36, label %51 [
+ i32 285, label %37
+ i32 91, label %49
+ ]
+
+; <label>:37 ; preds = %31
+ %38 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z14luaX_lookaheadP8LexState(%struct.LexState* %38)
+ %39 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.LexState* %39, i32 0, i32 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.Token* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = load i32* %41, align 4 ; [#uses=1]
+ %43 = icmp ne i32 %42, 61 ; [#uses=1]
+ br i1 %43, label %44, label %46
+
+; <label>:44 ; preds = %37
+ %45 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9listfieldP8LexStateP11ConsControl(%struct.LexState* %45, %struct.ConsControl* %cc)
+ br label %48
+
+; <label>:46 ; preds = %37
+ %47 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z8recfieldP8LexStateP11ConsControl(%struct.LexState* %47, %struct.ConsControl* %cc)
+ br label %48
+
+; <label>:48 ; preds = %46, %44
+ br label %53
+
+; <label>:49 ; preds = %31
+ %50 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z8recfieldP8LexStateP11ConsControl(%struct.LexState* %50, %struct.ConsControl* %cc)
+ br label %53
+
+; <label>:51 ; preds = %31
+ %52 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9listfieldP8LexStateP11ConsControl(%struct.LexState* %52, %struct.ConsControl* %cc)
+ br label %53
+
+; <label>:53 ; preds = %51, %49, %48
+ br label %54
+
+; <label>:54 ; preds = %53
+ %55 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %56 = call i32 @_Z8testnextP8LexStatei(%struct.LexState* %55, i32 44) ; [#uses=1]
+ %57 = icmp ne i32 %56, 0 ; [#uses=1]
+ br i1 %57, label %62, label %58
+
+; <label>:58 ; preds = %54
+ %59 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %60 = call i32 @_Z8testnextP8LexStatei(%struct.LexState* %59, i32 59) ; [#uses=1]
+ %61 = icmp ne i32 %60, 0 ; [#uses=1]
+ br label %62
+
+; <label>:62 ; preds = %58, %54
+ %63 = phi i1 [ true, %54 ], [ %61, %58 ] ; [#uses=1]
+ br i1 %63, label %24, label %64
+
+; <label>:64 ; preds = %62, %30
+ %65 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %66 = load i32* %line, align 4 ; [#uses=1]
+ call void @_Z11check_matchP8LexStateiii(%struct.LexState* %65, i32 125, i32 123, i32 %66)
+ %67 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z13lastlistfieldP9FuncStateP11ConsControl(%struct.FuncState* %67, %struct.ConsControl* %cc)
+ %68 = load i32* %pc, align 4 ; [#uses=1]
+ %69 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.FuncState* %69, i32 0, i32 0 ; [#uses=1]
+ %71 = load %struct.Proto** %70, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.Proto* %71, i32 0, i32 4 ; [#uses=1]
+ %73 = load i32** %72, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds i32* %73, i32 %68 ; [#uses=1]
+ %75 = load i32* %74 ; [#uses=1]
+ %76 = and i32 %75, 8388607 ; [#uses=1]
+ %77 = getelementptr inbounds %struct.ConsControl* %cc, i32 0, i32 3 ; [#uses=1]
+ %78 = load i32* %77, align 4 ; [#uses=1]
+ %79 = call i32 @_Z11luaO_int2fbj(i32 %78) ; [#uses=1]
+ %80 = shl i32 %79, 23 ; [#uses=1]
+ %81 = and i32 %80, -8388608 ; [#uses=1]
+ %82 = or i32 %76, %81 ; [#uses=1]
+ %83 = load i32* %pc, align 4 ; [#uses=1]
+ %84 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %struct.FuncState* %84, i32 0, i32 0 ; [#uses=1]
+ %86 = load %struct.Proto** %85, align 4 ; [#uses=1]
+ %87 = getelementptr inbounds %struct.Proto* %86, i32 0, i32 4 ; [#uses=1]
+ %88 = load i32** %87, align 4 ; [#uses=1]
+ %89 = getelementptr inbounds i32* %88, i32 %83 ; [#uses=1]
+ store i32 %82, i32* %89
+ %90 = load i32* %pc, align 4 ; [#uses=1]
+ %91 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %92 = getelementptr inbounds %struct.FuncState* %91, i32 0, i32 0 ; [#uses=1]
+ %93 = load %struct.Proto** %92, align 4 ; [#uses=1]
+ %94 = getelementptr inbounds %struct.Proto* %93, i32 0, i32 4 ; [#uses=1]
+ %95 = load i32** %94, align 4 ; [#uses=1]
+ %96 = getelementptr inbounds i32* %95, i32 %90 ; [#uses=1]
+ %97 = load i32* %96 ; [#uses=1]
+ %98 = and i32 %97, -8372225 ; [#uses=1]
+ %99 = getelementptr inbounds %struct.ConsControl* %cc, i32 0, i32 2 ; [#uses=1]
+ %100 = load i32* %99, align 4 ; [#uses=1]
+ %101 = call i32 @_Z11luaO_int2fbj(i32 %100) ; [#uses=1]
+ %102 = shl i32 %101, 14 ; [#uses=1]
+ %103 = and i32 %102, 8372224 ; [#uses=1]
+ %104 = or i32 %98, %103 ; [#uses=1]
+ %105 = load i32* %pc, align 4 ; [#uses=1]
+ %106 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %107 = getelementptr inbounds %struct.FuncState* %106, i32 0, i32 0 ; [#uses=1]
+ %108 = load %struct.Proto** %107, align 4 ; [#uses=1]
+ %109 = getelementptr inbounds %struct.Proto* %108, i32 0, i32 4 ; [#uses=1]
+ %110 = load i32** %109, align 4 ; [#uses=1]
+ %111 = getelementptr inbounds i32* %110, i32 %105 ; [#uses=1]
+ store i32 %104, i32* %111
+ ret void
+}
+
+; [#uses=3]
+define internal void @_Z4bodyP8LexStateP7expdescii(%struct.LexState* %ls, %struct.expdesc* %e, i32 %needself, i32 %line) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=13]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca i32, align 4 ; [#uses=3]
+ %new_fs = alloca %struct.FuncState, align 4 ; [#uses=4]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %2, align 4
+ store i32 %needself, i32* %3, align 4
+ store i32 %line, i32* %4, align 4
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9open_funcP8LexStateP9FuncState(%struct.LexState* %5, %struct.FuncState* %new_fs)
+ %6 = load i32* %4, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.FuncState* %new_fs, i32 0, i32 0 ; [#uses=1]
+ %8 = load %struct.Proto** %7, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.Proto* %8, i32 0, i32 16 ; [#uses=1]
+ store i32 %6, i32* %9, align 4
+ %10 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9checknextP8LexStatei(%struct.LexState* %10, i32 40)
+ %11 = load i32* %3, align 4 ; [#uses=1]
+ %12 = icmp ne i32 %11, 0 ; [#uses=1]
+ br i1 %12, label %13, label %18
+
+; <label>:13 ; preds = %0
+ %14 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %15 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %16 = call %union.TString* @_Z14luaX_newstringP8LexStatePKcj(%struct.LexState* %15, i8* getelementptr inbounds ([5 x i8]* @.str3132, i32 0, i32 0), i32 4) ; [#uses=1]
+ call void @_Z12new_localvarP8LexStateP7TStringi(%struct.LexState* %14, %union.TString* %16, i32 0)
+ %17 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z15adjustlocalvarsP8LexStatei(%struct.LexState* %17, i32 1)
+ br label %18
+
+; <label>:18 ; preds = %13, %0
+ %19 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z7parlistP8LexState(%struct.LexState* %19)
+ %20 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9checknextP8LexStatei(%struct.LexState* %20, i32 41)
+ %21 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z5chunkP8LexState(%struct.LexState* %21)
+ %22 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.LexState* %22, i32 0, i32 1 ; [#uses=1]
+ %24 = load i32* %23, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.FuncState* %new_fs, i32 0, i32 0 ; [#uses=1]
+ %26 = load %struct.Proto** %25, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.Proto* %26, i32 0, i32 17 ; [#uses=1]
+ store i32 %24, i32* %27, align 4
+ %28 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %29 = load i32* %4, align 4 ; [#uses=1]
+ call void @_Z11check_matchP8LexStateiii(%struct.LexState* %28, i32 262, i32 265, i32 %29)
+ %30 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z10close_funcP8LexState(%struct.LexState* %30)
+ %31 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %32 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z11pushclosureP8LexStateP9FuncStateP7expdesc(%struct.LexState* %31, %struct.FuncState* %new_fs, %struct.expdesc* %32)
+ ret void
+}
+
+; [#uses=14]
+define internal void @_Z12new_localvarP8LexStateP7TStringi(%struct.LexState* %ls, %union.TString* %name, i32 %n) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=3]
+ %2 = alloca %union.TString*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=5]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %union.TString* %name, %union.TString** %2, align 4
+ store i32 %n, i32* %3, align 4
+ %4 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.LexState* %4, i32 0, i32 5 ; [#uses=1]
+ %6 = load %struct.FuncState** %5, align 4 ; [#uses=1]
+ store %struct.FuncState* %6, %struct.FuncState** %fs, align 4
+ %7 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.FuncState* %7, i32 0, i32 13 ; [#uses=1]
+ %9 = load i8* %8, align 1 ; [#uses=1]
+ %10 = zext i8 %9 to i32 ; [#uses=1]
+ %11 = load i32* %3, align 4 ; [#uses=1]
+ %12 = add nsw i32 %10, %11 ; [#uses=1]
+ %13 = add nsw i32 %12, 1 ; [#uses=1]
+ %14 = icmp sgt i32 %13, 200 ; [#uses=1]
+ br i1 %14, label %15, label %17
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z10errorlimitP9FuncStateiPKc(%struct.FuncState* %16, i32 200, i8* getelementptr inbounds ([16 x i8]* @.str7136, i32 0, i32 0))
+ br label %17
+
+; <label>:17 ; preds = %15, %0
+ %18 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %19 = load %union.TString** %2, align 4 ; [#uses=1]
+ %20 = call i32 @_Z16registerlocalvarP8LexStateP7TString(%struct.LexState* %18, %union.TString* %19) ; [#uses=1]
+ %21 = trunc i32 %20 to i16 ; [#uses=1]
+ %22 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.FuncState* %22, i32 0, i32 13 ; [#uses=1]
+ %24 = load i8* %23, align 1 ; [#uses=1]
+ %25 = zext i8 %24 to i32 ; [#uses=1]
+ %26 = load i32* %3, align 4 ; [#uses=1]
+ %27 = add nsw i32 %25, %26 ; [#uses=1]
+ %28 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.FuncState* %28, i32 0, i32 15 ; [#uses=1]
+ %30 = getelementptr inbounds [200 x i16]* %29, i32 0, i32 %27 ; [#uses=1]
+ store i16 %21, i16* %30
+ ret void
+}
+
+; [#uses=6]
+define internal void @_Z15adjustlocalvarsP8LexStatei(%struct.LexState* %ls, i32 %nvars) nounwind {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=2]
+ %2 = alloca i32, align 4 ; [#uses=6]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=7]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 %nvars, i32* %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 5 ; [#uses=1]
+ %5 = load %struct.FuncState** %4, align 4 ; [#uses=1]
+ store %struct.FuncState* %5, %struct.FuncState** %fs, align 4
+ %6 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.FuncState* %6, i32 0, i32 13 ; [#uses=1]
+ %8 = load i8* %7, align 1 ; [#uses=1]
+ %9 = zext i8 %8 to i32 ; [#uses=1]
+ %10 = load i32* %2, align 4 ; [#uses=1]
+ %11 = add nsw i32 %9, %10 ; [#uses=1]
+ %12 = trunc i32 %11 to i8 ; [#uses=1]
+ %13 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.FuncState* %13, i32 0, i32 13 ; [#uses=1]
+ store i8 %12, i8* %14, align 1
+ br label %15
+
+; <label>:15 ; preds = %40, %0
+ %16 = load i32* %2, align 4 ; [#uses=1]
+ %17 = icmp ne i32 %16, 0 ; [#uses=1]
+ br i1 %17, label %18, label %43
+
+; <label>:18 ; preds = %15
+ %19 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.FuncState* %19, i32 0, i32 6 ; [#uses=1]
+ %21 = load i32* %20, align 4 ; [#uses=1]
+ %22 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.FuncState* %22, i32 0, i32 13 ; [#uses=1]
+ %24 = load i8* %23, align 1 ; [#uses=1]
+ %25 = zext i8 %24 to i32 ; [#uses=1]
+ %26 = load i32* %2, align 4 ; [#uses=1]
+ %27 = sub nsw i32 %25, %26 ; [#uses=1]
+ %28 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.FuncState* %28, i32 0, i32 15 ; [#uses=1]
+ %30 = getelementptr inbounds [200 x i16]* %29, i32 0, i32 %27 ; [#uses=1]
+ %31 = load i16* %30 ; [#uses=1]
+ %32 = zext i16 %31 to i32 ; [#uses=1]
+ %33 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.FuncState* %33, i32 0, i32 0 ; [#uses=1]
+ %35 = load %struct.Proto** %34, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.Proto* %35, i32 0, i32 7 ; [#uses=1]
+ %37 = load %struct.LocVar** %36, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.LocVar* %37, i32 %32 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.LocVar* %38, i32 0, i32 1 ; [#uses=1]
+ store i32 %21, i32* %39, align 4
+ br label %40
+
+; <label>:40 ; preds = %18
+ %41 = load i32* %2, align 4 ; [#uses=1]
+ %42 = add nsw i32 %41, -1 ; [#uses=1]
+ store i32 %42, i32* %2, align 4
+ br label %15
+
+; <label>:43 ; preds = %15
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z7parlistP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=12]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=5]
+ %f = alloca %struct.Proto*, align 4 ; [#uses=7]
+ %nparams = alloca i32, align 4 ; [#uses=6]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.LexState* %2, i32 0, i32 5 ; [#uses=1]
+ %4 = load %struct.FuncState** %3, align 4 ; [#uses=1]
+ store %struct.FuncState* %4, %struct.FuncState** %fs, align 4
+ %5 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.FuncState* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load %struct.Proto** %6, align 4 ; [#uses=1]
+ store %struct.Proto* %7, %struct.Proto** %f, align 4
+ store i32 0, i32* %nparams, align 4
+ %8 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.Proto* %8, i32 0, i32 21 ; [#uses=1]
+ store i8 0, i8* %9, align 1
+ %10 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.LexState* %10, i32 0, i32 3 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.Token* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ %14 = icmp ne i32 %13, 41 ; [#uses=1]
+ br i1 %14, label %15, label %57
+
+; <label>:15 ; preds = %0
+ br label %16
+
+; <label>:16 ; preds = %54, %15
+ %17 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.LexState* %17, i32 0, i32 3 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.Token* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = load i32* %19, align 4 ; [#uses=1]
+ switch i32 %20, label %42 [
+ i32 285, label %21
+ i32 279, label %27
+ ]
+
+; <label>:21 ; preds = %16
+ %22 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %23 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %24 = call %union.TString* @_Z13str_checknameP8LexState(%struct.LexState* %23) ; [#uses=1]
+ %25 = load i32* %nparams, align 4 ; [#uses=2]
+ %26 = add nsw i32 %25, 1 ; [#uses=1]
+ store i32 %26, i32* %nparams, align 4
+ call void @_Z12new_localvarP8LexStateP7TStringi(%struct.LexState* %22, %union.TString* %24, i32 %25)
+ br label %44
+
+; <label>:27 ; preds = %16
+ %28 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %28)
+ %29 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %30 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %31 = call %union.TString* @_Z14luaX_newstringP8LexStatePKcj(%struct.LexState* %30, i8* getelementptr inbounds ([4 x i8]* @.str5134, i32 0, i32 0), i32 3) ; [#uses=1]
+ %32 = load i32* %nparams, align 4 ; [#uses=2]
+ %33 = add nsw i32 %32, 1 ; [#uses=1]
+ store i32 %33, i32* %nparams, align 4
+ call void @_Z12new_localvarP8LexStateP7TStringi(%struct.LexState* %29, %union.TString* %31, i32 %32)
+ %34 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.Proto* %34, i32 0, i32 21 ; [#uses=1]
+ store i8 5, i8* %35, align 1
+ %36 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.Proto* %36, i32 0, i32 21 ; [#uses=2]
+ %38 = load i8* %37, align 1 ; [#uses=1]
+ %39 = zext i8 %38 to i32 ; [#uses=1]
+ %40 = or i32 %39, 2 ; [#uses=1]
+ %41 = trunc i32 %40 to i8 ; [#uses=1]
+ store i8 %41, i8* %37, align 1
+ br label %44
+
+; <label>:42 ; preds = %16
+ %43 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z16luaX_syntaxerrorP8LexStatePKc(%struct.LexState* %43, i8* getelementptr inbounds ([25 x i8]* @.str6135, i32 0, i32 0))
+ br label %44
+
+; <label>:44 ; preds = %42, %27, %21
+ br label %45
+
+; <label>:45 ; preds = %44
+ %46 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.Proto* %46, i32 0, i32 21 ; [#uses=1]
+ %48 = load i8* %47, align 1 ; [#uses=1]
+ %49 = icmp ne i8 %48, 0 ; [#uses=1]
+ br i1 %49, label %54, label %50
+
+; <label>:50 ; preds = %45
+ %51 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %52 = call i32 @_Z8testnextP8LexStatei(%struct.LexState* %51, i32 44) ; [#uses=1]
+ %53 = icmp ne i32 %52, 0 ; [#uses=1]
+ br label %54
+
+; <label>:54 ; preds = %50, %45
+ %55 = phi i1 [ false, %45 ], [ %53, %50 ] ; [#uses=1]
+ br i1 %55, label %16, label %56
+
+; <label>:56 ; preds = %54
+ br label %57
+
+; <label>:57 ; preds = %56, %0
+ %58 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %59 = load i32* %nparams, align 4 ; [#uses=1]
+ call void @_Z15adjustlocalvarsP8LexStatei(%struct.LexState* %58, i32 %59)
+ %60 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.FuncState* %60, i32 0, i32 13 ; [#uses=1]
+ %62 = load i8* %61, align 1 ; [#uses=1]
+ %63 = zext i8 %62 to i32 ; [#uses=1]
+ %64 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %struct.Proto* %64, i32 0, i32 21 ; [#uses=1]
+ %66 = load i8* %65, align 1 ; [#uses=1]
+ %67 = zext i8 %66 to i32 ; [#uses=1]
+ %68 = and i32 %67, 1 ; [#uses=1]
+ %69 = sub nsw i32 %63, %68 ; [#uses=1]
+ %70 = trunc i32 %69 to i8 ; [#uses=1]
+ %71 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.Proto* %71, i32 0, i32 20 ; [#uses=1]
+ store i8 %70, i8* %72, align 1
+ %73 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %74 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %75 = getelementptr inbounds %struct.FuncState* %74, i32 0, i32 13 ; [#uses=1]
+ %76 = load i8* %75, align 1 ; [#uses=1]
+ %77 = zext i8 %76 to i32 ; [#uses=1]
+ call void @_Z16luaK_reserveregsP9FuncStatei(%struct.FuncState* %73, i32 %77)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z11pushclosureP8LexStateP9FuncStateP7expdesc(%struct.LexState* %ls, %struct.FuncState* %func, %struct.expdesc* %v) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=4]
+ %2 = alloca %struct.FuncState*, align 4 ; [#uses=7]
+ %3 = alloca %struct.expdesc*, align 4 ; [#uses=2]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=7]
+ %f = alloca %struct.Proto*, align 4 ; [#uses=11]
+ %oldsize = alloca i32, align 4 ; [#uses=4]
+ %i = alloca i32, align 4 ; [#uses=6]
+ %o = alloca i32, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.FuncState* %func, %struct.FuncState** %2, align 4
+ store %struct.expdesc* %v, %struct.expdesc** %3, align 4
+ %4 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.LexState* %4, i32 0, i32 5 ; [#uses=1]
+ %6 = load %struct.FuncState** %5, align 4 ; [#uses=1]
+ store %struct.FuncState* %6, %struct.FuncState** %fs, align 4
+ %7 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.FuncState* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = load %struct.Proto** %8, align 4 ; [#uses=1]
+ store %struct.Proto* %9, %struct.Proto** %f, align 4
+ %10 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Proto* %10, i32 0, i32 14 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ store i32 %12, i32* %oldsize, align 4
+ %13 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.FuncState* %13, i32 0, i32 11 ; [#uses=1]
+ %15 = load i32* %14, align 4 ; [#uses=1]
+ %16 = add nsw i32 %15, 1 ; [#uses=1]
+ %17 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.Proto* %17, i32 0, i32 14 ; [#uses=1]
+ %19 = load i32* %18, align 4 ; [#uses=1]
+ %20 = icmp sgt i32 %16, %19 ; [#uses=1]
+ br i1 %20, label %21, label %35
+
+; <label>:21 ; preds = %0
+ %22 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.LexState* %22, i32 0, i32 6 ; [#uses=1]
+ %24 = load %struct.lua_State** %23, align 4 ; [#uses=1]
+ %25 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.Proto* %25, i32 0, i32 5 ; [#uses=1]
+ %27 = load %struct.Proto*** %26, align 4 ; [#uses=1]
+ %28 = bitcast %struct.Proto** %27 to i8* ; [#uses=1]
+ %29 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.Proto* %29, i32 0, i32 14 ; [#uses=1]
+ %31 = call i8* @_Z13luaM_growaux_P9lua_StatePvPijiPKc(%struct.lua_State* %24, i8* %28, i32* %30, i32 4, i32 262143, i8* getelementptr inbounds ([24 x i8]* @.str4133, i32 0, i32 0)) ; [#uses=1]
+ %32 = bitcast i8* %31 to %struct.Proto** ; [#uses=1]
+ %33 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.Proto* %33, i32 0, i32 5 ; [#uses=1]
+ store %struct.Proto** %32, %struct.Proto*** %34, align 4
+ br label %35
+
+; <label>:35 ; preds = %21, %0
+ br label %36
+
+; <label>:36 ; preds = %42, %35
+ %37 = load i32* %oldsize, align 4 ; [#uses=1]
+ %38 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.Proto* %38, i32 0, i32 14 ; [#uses=1]
+ %40 = load i32* %39, align 4 ; [#uses=1]
+ %41 = icmp slt i32 %37, %40 ; [#uses=1]
+ br i1 %41, label %42, label %49
+
+; <label>:42 ; preds = %36
+ %43 = load i32* %oldsize, align 4 ; [#uses=2]
+ %44 = add nsw i32 %43, 1 ; [#uses=1]
+ store i32 %44, i32* %oldsize, align 4
+ %45 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.Proto* %45, i32 0, i32 5 ; [#uses=1]
+ %47 = load %struct.Proto*** %46, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.Proto** %47, i32 %43 ; [#uses=1]
+ store %struct.Proto* null, %struct.Proto** %48
+ br label %36
+
+; <label>:49 ; preds = %36
+ %50 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.FuncState* %50, i32 0, i32 0 ; [#uses=1]
+ %52 = load %struct.Proto** %51, align 4 ; [#uses=1]
+ %53 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.FuncState* %53, i32 0, i32 11 ; [#uses=2]
+ %55 = load i32* %54, align 4 ; [#uses=2]
+ %56 = add nsw i32 %55, 1 ; [#uses=1]
+ store i32 %56, i32* %54, align 4
+ %57 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.Proto* %57, i32 0, i32 5 ; [#uses=1]
+ %59 = load %struct.Proto*** %58, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.Proto** %59, i32 %55 ; [#uses=1]
+ store %struct.Proto* %52, %struct.Proto** %60
+ %61 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds %struct.FuncState* %61, i32 0, i32 0 ; [#uses=1]
+ %63 = load %struct.Proto** %62, align 4 ; [#uses=1]
+ %64 = bitcast %struct.Proto* %63 to %union.GCObject* ; [#uses=1]
+ %65 = getelementptr inbounds %union.GCObject* %64, i32 0, i32 0 ; [#uses=1]
+ %66 = bitcast %struct.lua_State* %65 to %struct.GCheader* ; [#uses=1]
+ %67 = getelementptr inbounds %struct.GCheader* %66, i32 0, i32 2 ; [#uses=1]
+ %68 = load i8* %67, align 1 ; [#uses=1]
+ %69 = zext i8 %68 to i32 ; [#uses=1]
+ %70 = and i32 %69, 3 ; [#uses=1]
+ %71 = icmp ne i32 %70, 0 ; [#uses=1]
+ br i1 %71, label %72, label %92
+
+; <label>:72 ; preds = %49
+ %73 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %74 = bitcast %struct.Proto* %73 to %union.GCObject* ; [#uses=1]
+ %75 = getelementptr inbounds %union.GCObject* %74, i32 0, i32 0 ; [#uses=1]
+ %76 = bitcast %struct.lua_State* %75 to %struct.GCheader* ; [#uses=1]
+ %77 = getelementptr inbounds %struct.GCheader* %76, i32 0, i32 2 ; [#uses=1]
+ %78 = load i8* %77, align 1 ; [#uses=1]
+ %79 = zext i8 %78 to i32 ; [#uses=1]
+ %80 = and i32 %79, 4 ; [#uses=1]
+ %81 = icmp ne i32 %80, 0 ; [#uses=1]
+ br i1 %81, label %82, label %92
+
+; <label>:82 ; preds = %72
+ %83 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %84 = getelementptr inbounds %struct.LexState* %83, i32 0, i32 6 ; [#uses=1]
+ %85 = load %struct.lua_State** %84, align 4 ; [#uses=1]
+ %86 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %87 = bitcast %struct.Proto* %86 to %union.GCObject* ; [#uses=1]
+ %88 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %89 = getelementptr inbounds %struct.FuncState* %88, i32 0, i32 0 ; [#uses=1]
+ %90 = load %struct.Proto** %89, align 4 ; [#uses=1]
+ %91 = bitcast %struct.Proto* %90 to %union.GCObject* ; [#uses=1]
+ call void @_Z13luaC_barrierfP9lua_StateP8GCObjectS2_(%struct.lua_State* %85, %union.GCObject* %87, %union.GCObject* %91)
+ br label %92
+
+; <label>:92 ; preds = %82, %72, %49
+ %93 = load %struct.expdesc** %3, align 4 ; [#uses=1]
+ %94 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %95 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %96 = getelementptr inbounds %struct.FuncState* %95, i32 0, i32 11 ; [#uses=1]
+ %97 = load i32* %96, align 4 ; [#uses=1]
+ %98 = sub nsw i32 %97, 1 ; [#uses=1]
+ %99 = call i32 @_Z12luaK_codeABxP9FuncState6OpCodeij(%struct.FuncState* %94, i32 36, i32 0, i32 %98) ; [#uses=1]
+ call void @_Z8init_expP7expdesc7expkindi(%struct.expdesc* %93, i32 11, i32 %99)
+ store i32 0, i32* %i, align 4
+ br label %100
+
+; <label>:100 ; preds = %132, %92
+ %101 = load i32* %i, align 4 ; [#uses=1]
+ %102 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %103 = getelementptr inbounds %struct.FuncState* %102, i32 0, i32 0 ; [#uses=1]
+ %104 = load %struct.Proto** %103, align 4 ; [#uses=1]
+ %105 = getelementptr inbounds %struct.Proto* %104, i32 0, i32 19 ; [#uses=1]
+ %106 = load i8* %105, align 1 ; [#uses=1]
+ %107 = zext i8 %106 to i32 ; [#uses=1]
+ %108 = icmp slt i32 %101, %107 ; [#uses=1]
+ br i1 %108, label %109, label %135
+
+; <label>:109 ; preds = %100
+ %110 = load i32* %i, align 4 ; [#uses=1]
+ %111 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %112 = getelementptr inbounds %struct.FuncState* %111, i32 0, i32 14 ; [#uses=1]
+ %113 = getelementptr inbounds [60 x %struct.upvaldesc]* %112, i32 0, i32 %110 ; [#uses=1]
+ %114 = getelementptr inbounds %struct.upvaldesc* %113, i32 0, i32 0 ; [#uses=1]
+ %115 = load i8* %114, align 1 ; [#uses=1]
+ %116 = zext i8 %115 to i32 ; [#uses=1]
+ %117 = icmp eq i32 %116, 6 ; [#uses=1]
+ br i1 %117, label %118, label %119
+
+; <label>:118 ; preds = %109
+ br label %120
+
+; <label>:119 ; preds = %109
+ br label %120
+
+; <label>:120 ; preds = %119, %118
+ %121 = phi i32 [ 0, %118 ], [ 4, %119 ] ; [#uses=1]
+ store i32 %121, i32* %o, align 4
+ %122 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %123 = load i32* %o, align 4 ; [#uses=1]
+ %124 = load i32* %i, align 4 ; [#uses=1]
+ %125 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %126 = getelementptr inbounds %struct.FuncState* %125, i32 0, i32 14 ; [#uses=1]
+ %127 = getelementptr inbounds [60 x %struct.upvaldesc]* %126, i32 0, i32 %124 ; [#uses=1]
+ %128 = getelementptr inbounds %struct.upvaldesc* %127, i32 0, i32 1 ; [#uses=1]
+ %129 = load i8* %128, align 1 ; [#uses=1]
+ %130 = zext i8 %129 to i32 ; [#uses=1]
+ %131 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %122, i32 %123, i32 0, i32 %130, i32 0) ; [#uses=0]
+ br label %132
+
+; <label>:132 ; preds = %120
+ %133 = load i32* %i, align 4 ; [#uses=1]
+ %134 = add nsw i32 %133, 1 ; [#uses=1]
+ store i32 %134, i32* %i, align 4
+ br label %100
+
+; <label>:135 ; preds = %100
+ ret void
+}
+
+; [#uses=7]
+define internal %union.TString* @_Z13str_checknameP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=4]
+ %ts = alloca %union.TString*, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z5checkP8LexStatei(%struct.LexState* %2, i32 285)
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 3 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.Token* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = getelementptr inbounds %union.anon* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = bitcast double* %6 to %union.TString** ; [#uses=1]
+ %8 = load %union.TString** %7, align 4 ; [#uses=1]
+ store %union.TString* %8, %union.TString** %ts, align 4
+ %9 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %9)
+ %10 = load %union.TString** %ts, align 4 ; [#uses=1]
+ ret %union.TString* %10
+}
+
+; [#uses=1]
+define internal i32 @_Z16registerlocalvarP8LexStateP7TString(%struct.LexState* %ls, %union.TString* %varname) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=4]
+ %2 = alloca %union.TString*, align 4 ; [#uses=4]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=5]
+ %f = alloca %struct.Proto*, align 4 ; [#uses=11]
+ %oldsize = alloca i32, align 4 ; [#uses=4]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %union.TString* %varname, %union.TString** %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 5 ; [#uses=1]
+ %5 = load %struct.FuncState** %4, align 4 ; [#uses=1]
+ store %struct.FuncState* %5, %struct.FuncState** %fs, align 4
+ %6 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.FuncState* %6, i32 0, i32 0 ; [#uses=1]
+ %8 = load %struct.Proto** %7, align 4 ; [#uses=1]
+ store %struct.Proto* %8, %struct.Proto** %f, align 4
+ %9 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.Proto* %9, i32 0, i32 15 ; [#uses=1]
+ %11 = load i32* %10, align 4 ; [#uses=1]
+ store i32 %11, i32* %oldsize, align 4
+ %12 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.FuncState* %12, i32 0, i32 12 ; [#uses=1]
+ %14 = load i16* %13, align 2 ; [#uses=1]
+ %15 = sext i16 %14 to i32 ; [#uses=1]
+ %16 = add nsw i32 %15, 1 ; [#uses=1]
+ %17 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.Proto* %17, i32 0, i32 15 ; [#uses=1]
+ %19 = load i32* %18, align 4 ; [#uses=1]
+ %20 = icmp sgt i32 %16, %19 ; [#uses=1]
+ br i1 %20, label %21, label %35
+
+; <label>:21 ; preds = %0
+ %22 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.LexState* %22, i32 0, i32 6 ; [#uses=1]
+ %24 = load %struct.lua_State** %23, align 4 ; [#uses=1]
+ %25 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.Proto* %25, i32 0, i32 7 ; [#uses=1]
+ %27 = load %struct.LocVar** %26, align 4 ; [#uses=1]
+ %28 = bitcast %struct.LocVar* %27 to i8* ; [#uses=1]
+ %29 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.Proto* %29, i32 0, i32 15 ; [#uses=1]
+ %31 = call i8* @_Z13luaM_growaux_P9lua_StatePvPijiPKc(%struct.lua_State* %24, i8* %28, i32* %30, i32 12, i32 32767, i8* getelementptr inbounds ([25 x i8]* @.str8137, i32 0, i32 0)) ; [#uses=1]
+ %32 = bitcast i8* %31 to %struct.LocVar* ; [#uses=1]
+ %33 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.Proto* %33, i32 0, i32 7 ; [#uses=1]
+ store %struct.LocVar* %32, %struct.LocVar** %34, align 4
+ br label %35
+
+; <label>:35 ; preds = %21, %0
+ br label %36
+
+; <label>:36 ; preds = %42, %35
+ %37 = load i32* %oldsize, align 4 ; [#uses=1]
+ %38 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.Proto* %38, i32 0, i32 15 ; [#uses=1]
+ %40 = load i32* %39, align 4 ; [#uses=1]
+ %41 = icmp slt i32 %37, %40 ; [#uses=1]
+ br i1 %41, label %42, label %50
+
+; <label>:42 ; preds = %36
+ %43 = load i32* %oldsize, align 4 ; [#uses=2]
+ %44 = add nsw i32 %43, 1 ; [#uses=1]
+ store i32 %44, i32* %oldsize, align 4
+ %45 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.Proto* %45, i32 0, i32 7 ; [#uses=1]
+ %47 = load %struct.LocVar** %46, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.LocVar* %47, i32 %43 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.LocVar* %48, i32 0, i32 0 ; [#uses=1]
+ store %union.TString* null, %union.TString** %49, align 4
+ br label %36
+
+; <label>:50 ; preds = %36
+ %51 = load %union.TString** %2, align 4 ; [#uses=1]
+ %52 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.FuncState* %52, i32 0, i32 12 ; [#uses=1]
+ %54 = load i16* %53, align 2 ; [#uses=1]
+ %55 = sext i16 %54 to i32 ; [#uses=1]
+ %56 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.Proto* %56, i32 0, i32 7 ; [#uses=1]
+ %58 = load %struct.LocVar** %57, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.LocVar* %58, i32 %55 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.LocVar* %59, i32 0, i32 0 ; [#uses=1]
+ store %union.TString* %51, %union.TString** %60, align 4
+ %61 = load %union.TString** %2, align 4 ; [#uses=1]
+ %62 = bitcast %union.TString* %61 to %union.GCObject* ; [#uses=1]
+ %63 = getelementptr inbounds %union.GCObject* %62, i32 0, i32 0 ; [#uses=1]
+ %64 = bitcast %struct.lua_State* %63 to %struct.GCheader* ; [#uses=1]
+ %65 = getelementptr inbounds %struct.GCheader* %64, i32 0, i32 2 ; [#uses=1]
+ %66 = load i8* %65, align 1 ; [#uses=1]
+ %67 = zext i8 %66 to i32 ; [#uses=1]
+ %68 = and i32 %67, 3 ; [#uses=1]
+ %69 = icmp ne i32 %68, 0 ; [#uses=1]
+ br i1 %69, label %70, label %88
+
+; <label>:70 ; preds = %50
+ %71 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %72 = bitcast %struct.Proto* %71 to %union.GCObject* ; [#uses=1]
+ %73 = getelementptr inbounds %union.GCObject* %72, i32 0, i32 0 ; [#uses=1]
+ %74 = bitcast %struct.lua_State* %73 to %struct.GCheader* ; [#uses=1]
+ %75 = getelementptr inbounds %struct.GCheader* %74, i32 0, i32 2 ; [#uses=1]
+ %76 = load i8* %75, align 1 ; [#uses=1]
+ %77 = zext i8 %76 to i32 ; [#uses=1]
+ %78 = and i32 %77, 4 ; [#uses=1]
+ %79 = icmp ne i32 %78, 0 ; [#uses=1]
+ br i1 %79, label %80, label %88
+
+; <label>:80 ; preds = %70
+ %81 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %82 = getelementptr inbounds %struct.LexState* %81, i32 0, i32 6 ; [#uses=1]
+ %83 = load %struct.lua_State** %82, align 4 ; [#uses=1]
+ %84 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %85 = bitcast %struct.Proto* %84 to %union.GCObject* ; [#uses=1]
+ %86 = load %union.TString** %2, align 4 ; [#uses=1]
+ %87 = bitcast %union.TString* %86 to %union.GCObject* ; [#uses=1]
+ call void @_Z13luaC_barrierfP9lua_StateP8GCObjectS2_(%struct.lua_State* %83, %union.GCObject* %85, %union.GCObject* %87)
+ br label %88
+
+; <label>:88 ; preds = %80, %70, %50
+ %89 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %90 = getelementptr inbounds %struct.FuncState* %89, i32 0, i32 12 ; [#uses=2]
+ %91 = load i16* %90, align 2 ; [#uses=2]
+ %92 = add nsw i16 %91, 1 ; [#uses=1]
+ store i16 %92, i16* %90, align 2
+ %93 = sext i16 %91 to i32 ; [#uses=1]
+ ret i32 %93
+}
+
+; [#uses=1]
+define internal void @_Z14closelistfieldP9FuncStateP11ConsControl(%struct.FuncState* %fs, %struct.ConsControl* %cc) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %2 = alloca %struct.ConsControl*, align 4 ; [#uses=9]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.ConsControl* %cc, %struct.ConsControl** %2, align 4
+ %3 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.ConsControl* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.expdesc* %4, i32 0, i32 0 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = icmp eq i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %9
+
+; <label>:8 ; preds = %0
+ br label %37
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %11 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.ConsControl* %11, i32 0, i32 0 ; [#uses=1]
+ call void @_Z16luaK_exp2nextregP9FuncStateP7expdesc(%struct.FuncState* %10, %struct.expdesc* %12)
+ %13 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.ConsControl* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.expdesc* %14, i32 0, i32 0 ; [#uses=1]
+ store i32 0, i32* %15, align 4
+ %16 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.ConsControl* %16, i32 0, i32 4 ; [#uses=1]
+ %18 = load i32* %17, align 4 ; [#uses=1]
+ %19 = icmp eq i32 %18, 50 ; [#uses=1]
+ br i1 %19, label %20, label %37
+
+; <label>:20 ; preds = %9
+ %21 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %22 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.ConsControl* %22, i32 0, i32 1 ; [#uses=1]
+ %24 = load %struct.expdesc** %23, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.expdesc* %24, i32 0, i32 1 ; [#uses=1]
+ %26 = getelementptr inbounds %2* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = getelementptr inbounds %3* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = load i32* %27, align 4 ; [#uses=1]
+ %29 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.ConsControl* %29, i32 0, i32 3 ; [#uses=1]
+ %31 = load i32* %30, align 4 ; [#uses=1]
+ %32 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.ConsControl* %32, i32 0, i32 4 ; [#uses=1]
+ %34 = load i32* %33, align 4 ; [#uses=1]
+ call void @_Z12luaK_setlistP9FuncStateiii(%struct.FuncState* %21, i32 %28, i32 %31, i32 %34)
+ %35 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.ConsControl* %35, i32 0, i32 4 ; [#uses=1]
+ store i32 0, i32* %36, align 4
+ br label %37
+
+; <label>:37 ; preds = %20, %9, %8
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z9listfieldP8LexStateP11ConsControl(%struct.LexState* %ls, %struct.ConsControl* %cc) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=3]
+ %2 = alloca %struct.ConsControl*, align 4 ; [#uses=5]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.ConsControl* %cc, %struct.ConsControl** %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.ConsControl* %4, i32 0, i32 0 ; [#uses=1]
+ call void @_Z4exprP8LexStateP7expdesc(%struct.LexState* %3, %struct.expdesc* %5)
+ %6 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.ConsControl* %6, i32 0, i32 3 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = icmp sgt i32 %8, 2147483645 ; [#uses=1]
+ br i1 %9, label %10, label %14
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.LexState* %11, i32 0, i32 5 ; [#uses=1]
+ %13 = load %struct.FuncState** %12, align 4 ; [#uses=1]
+ call void @_Z10errorlimitP9FuncStateiPKc(%struct.FuncState* %13, i32 2147483645, i8* getelementptr inbounds ([23 x i8]* @.str9138, i32 0, i32 0))
+ br label %14
+
+; <label>:14 ; preds = %10, %0
+ %15 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.ConsControl* %15, i32 0, i32 3 ; [#uses=2]
+ %17 = load i32* %16, align 4 ; [#uses=1]
+ %18 = add nsw i32 %17, 1 ; [#uses=1]
+ store i32 %18, i32* %16, align 4
+ %19 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.ConsControl* %19, i32 0, i32 4 ; [#uses=2]
+ %21 = load i32* %20, align 4 ; [#uses=1]
+ %22 = add nsw i32 %21, 1 ; [#uses=1]
+ store i32 %22, i32* %20, align 4
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z8recfieldP8LexStateP11ConsControl(%struct.LexState* %ls, %struct.ConsControl* %cc) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=8]
+ %2 = alloca %struct.ConsControl*, align 4 ; [#uses=4]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=6]
+ %reg = alloca i32, align 4 ; [#uses=2]
+ %key = alloca %struct.expdesc, align 4 ; [#uses=3]
+ %val = alloca %struct.expdesc, align 4 ; [#uses=2]
+ %rkkey = alloca i32, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.ConsControl* %cc, %struct.ConsControl** %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 5 ; [#uses=1]
+ %5 = load %struct.FuncState** %4, align 4 ; [#uses=1]
+ store %struct.FuncState* %5, %struct.FuncState** %fs, align 4
+ %6 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.LexState* %6, i32 0, i32 5 ; [#uses=1]
+ %8 = load %struct.FuncState** %7, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.FuncState* %8, i32 0, i32 9 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ store i32 %10, i32* %reg, align 4
+ %11 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.LexState* %11, i32 0, i32 3 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.Token* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = load i32* %13, align 4 ; [#uses=1]
+ %15 = icmp eq i32 %14, 285 ; [#uses=1]
+ br i1 %15, label %16, label %25
+
+; <label>:16 ; preds = %0
+ %17 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.ConsControl* %17, i32 0, i32 2 ; [#uses=1]
+ %19 = load i32* %18, align 4 ; [#uses=1]
+ %20 = icmp sgt i32 %19, 2147483645 ; [#uses=1]
+ br i1 %20, label %21, label %23
+
+; <label>:21 ; preds = %16
+ %22 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z10errorlimitP9FuncStateiPKc(%struct.FuncState* %22, i32 2147483645, i8* getelementptr inbounds ([23 x i8]* @.str9138, i32 0, i32 0))
+ br label %23
+
+; <label>:23 ; preds = %21, %16
+ %24 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9checknameP8LexStateP7expdesc(%struct.LexState* %24, %struct.expdesc* %key)
+ br label %27
+
+; <label>:25 ; preds = %0
+ %26 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z6yindexP8LexStateP7expdesc(%struct.LexState* %26, %struct.expdesc* %key)
+ br label %27
+
+; <label>:27 ; preds = %25, %23
+ %28 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.ConsControl* %28, i32 0, i32 2 ; [#uses=2]
+ %30 = load i32* %29, align 4 ; [#uses=1]
+ %31 = add nsw i32 %30, 1 ; [#uses=1]
+ store i32 %31, i32* %29, align 4
+ %32 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9checknextP8LexStatei(%struct.LexState* %32, i32 61)
+ %33 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %34 = call i32 @_Z11luaK_exp2RKP9FuncStateP7expdesc(%struct.FuncState* %33, %struct.expdesc* %key) ; [#uses=1]
+ store i32 %34, i32* %rkkey, align 4
+ %35 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z4exprP8LexStateP7expdesc(%struct.LexState* %35, %struct.expdesc* %val)
+ %36 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %37 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.ConsControl* %37, i32 0, i32 1 ; [#uses=1]
+ %39 = load %struct.expdesc** %38, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.expdesc* %39, i32 0, i32 1 ; [#uses=1]
+ %41 = getelementptr inbounds %2* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = getelementptr inbounds %3* %41, i32 0, i32 0 ; [#uses=1]
+ %43 = load i32* %42, align 4 ; [#uses=1]
+ %44 = load i32* %rkkey, align 4 ; [#uses=1]
+ %45 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %46 = call i32 @_Z11luaK_exp2RKP9FuncStateP7expdesc(%struct.FuncState* %45, %struct.expdesc* %val) ; [#uses=1]
+ %47 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %36, i32 9, i32 %43, i32 %44, i32 %46) ; [#uses=0]
+ %48 = load i32* %reg, align 4 ; [#uses=1]
+ %49 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.FuncState* %49, i32 0, i32 9 ; [#uses=1]
+ store i32 %48, i32* %50, align 4
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z13lastlistfieldP9FuncStateP11ConsControl(%struct.FuncState* %fs, %struct.ConsControl* %cc) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=5]
+ %2 = alloca %struct.ConsControl*, align 4 ; [#uses=13]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.ConsControl* %cc, %struct.ConsControl** %2, align 4
+ %3 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.ConsControl* %3, i32 0, i32 4 ; [#uses=1]
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ %6 = icmp eq i32 %5, 0 ; [#uses=1]
+ br i1 %6, label %7, label %8
+
+; <label>:7 ; preds = %0
+ br label %64
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.ConsControl* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.expdesc* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ %13 = icmp eq i32 %12, 13 ; [#uses=1]
+ br i1 %13, label %20, label %14
+
+; <label>:14 ; preds = %8
+ %15 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.ConsControl* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.expdesc* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = load i32* %17, align 4 ; [#uses=1]
+ %19 = icmp eq i32 %18, 14 ; [#uses=1]
+ br i1 %19, label %20, label %39
+
+; <label>:20 ; preds = %14, %8
+ %21 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %22 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.ConsControl* %22, i32 0, i32 0 ; [#uses=1]
+ call void @_Z15luaK_setreturnsP9FuncStateP7expdesci(%struct.FuncState* %21, %struct.expdesc* %23, i32 -1)
+ %24 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %25 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.ConsControl* %25, i32 0, i32 1 ; [#uses=1]
+ %27 = load %struct.expdesc** %26, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.expdesc* %27, i32 0, i32 1 ; [#uses=1]
+ %29 = getelementptr inbounds %2* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = getelementptr inbounds %3* %29, i32 0, i32 0 ; [#uses=1]
+ %31 = load i32* %30, align 4 ; [#uses=1]
+ %32 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.ConsControl* %32, i32 0, i32 3 ; [#uses=1]
+ %34 = load i32* %33, align 4 ; [#uses=1]
+ call void @_Z12luaK_setlistP9FuncStateiii(%struct.FuncState* %24, i32 %31, i32 %34, i32 -1)
+ %35 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.ConsControl* %35, i32 0, i32 3 ; [#uses=2]
+ %37 = load i32* %36, align 4 ; [#uses=1]
+ %38 = add nsw i32 %37, -1 ; [#uses=1]
+ store i32 %38, i32* %36, align 4
+ br label %64
+
+; <label>:39 ; preds = %14
+ %40 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.ConsControl* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.expdesc* %41, i32 0, i32 0 ; [#uses=1]
+ %43 = load i32* %42, align 4 ; [#uses=1]
+ %44 = icmp ne i32 %43, 0 ; [#uses=1]
+ br i1 %44, label %45, label %49
+
+; <label>:45 ; preds = %39
+ %46 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %47 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.ConsControl* %47, i32 0, i32 0 ; [#uses=1]
+ call void @_Z16luaK_exp2nextregP9FuncStateP7expdesc(%struct.FuncState* %46, %struct.expdesc* %48)
+ br label %49
+
+; <label>:49 ; preds = %45, %39
+ %50 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %51 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.ConsControl* %51, i32 0, i32 1 ; [#uses=1]
+ %53 = load %struct.expdesc** %52, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.expdesc* %53, i32 0, i32 1 ; [#uses=1]
+ %55 = getelementptr inbounds %2* %54, i32 0, i32 0 ; [#uses=1]
+ %56 = getelementptr inbounds %3* %55, i32 0, i32 0 ; [#uses=1]
+ %57 = load i32* %56, align 4 ; [#uses=1]
+ %58 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.ConsControl* %58, i32 0, i32 3 ; [#uses=1]
+ %60 = load i32* %59, align 4 ; [#uses=1]
+ %61 = load %struct.ConsControl** %2, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds %struct.ConsControl* %61, i32 0, i32 4 ; [#uses=1]
+ %63 = load i32* %62, align 4 ; [#uses=1]
+ call void @_Z12luaK_setlistP9FuncStateiii(%struct.FuncState* %50, i32 %57, i32 %60, i32 %63)
+ br label %64
+
+; <label>:64 ; preds = %49, %20, %7
+ ret void
+}
+
+; [#uses=3]
+define internal void @_Z9checknameP8LexStateP7expdesc(%struct.LexState* %ls, %struct.expdesc* %e) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=3]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.expdesc* %e, %struct.expdesc** %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = call %union.TString* @_Z13str_checknameP8LexState(%struct.LexState* %5) ; [#uses=1]
+ call void @_Z10codestringP8LexStateP7expdescP7TString(%struct.LexState* %3, %struct.expdesc* %4, %union.TString* %6)
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z6yindexP8LexStateP7expdesc(%struct.LexState* %ls, %struct.expdesc* %v) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=5]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=3]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.expdesc* %v, %struct.expdesc** %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %3)
+ %4 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %5 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z4exprP8LexStateP7expdesc(%struct.LexState* %4, %struct.expdesc* %5)
+ %6 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.LexState* %6, i32 0, i32 5 ; [#uses=1]
+ %8 = load %struct.FuncState** %7, align 4 ; [#uses=1]
+ %9 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z12luaK_exp2valP9FuncStateP7expdesc(%struct.FuncState* %8, %struct.expdesc* %9)
+ %10 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9checknextP8LexStatei(%struct.LexState* %10, i32 93)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z9prefixexpP8LexStateP7expdesc(%struct.LexState* %ls, %struct.expdesc* %v) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=9]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=4]
+ %line = alloca i32, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.expdesc* %v, %struct.expdesc** %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 3 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.Token* %4, i32 0, i32 0 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ switch i32 %6, label %23 [
+ i32 40, label %7
+ i32 285, label %20
+ ]
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.LexState* %8, i32 0, i32 1 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ store i32 %10, i32* %line, align 4
+ %11 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %11)
+ %12 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %13 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z4exprP8LexStateP7expdesc(%struct.LexState* %12, %struct.expdesc* %13)
+ %14 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %15 = load i32* %line, align 4 ; [#uses=1]
+ call void @_Z11check_matchP8LexStateiii(%struct.LexState* %14, i32 41, i32 40, i32 %15)
+ %16 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.LexState* %16, i32 0, i32 5 ; [#uses=1]
+ %18 = load %struct.FuncState** %17, align 4 ; [#uses=1]
+ %19 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z18luaK_dischargevarsP9FuncStateP7expdesc(%struct.FuncState* %18, %struct.expdesc* %19)
+ br label %25
+
+; <label>:20 ; preds = %0
+ %21 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %22 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z9singlevarP8LexStateP7expdesc(%struct.LexState* %21, %struct.expdesc* %22)
+ br label %25
+
+; <label>:23 ; preds = %0
+ %24 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z16luaX_syntaxerrorP8LexStatePKc(%struct.LexState* %24, i8* getelementptr inbounds ([18 x i8]* @.str14143, i32 0, i32 0))
+ br label %25
+
+; <label>:25 ; preds = %23, %20, %7
+ ret void
+}
+
+; [#uses=3]
+define internal void @_Z5fieldP8LexStateP7expdesc(%struct.LexState* %ls, %struct.expdesc* %v) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=4]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=3]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %key = alloca %struct.expdesc, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.expdesc* %v, %struct.expdesc** %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 5 ; [#uses=1]
+ %5 = load %struct.FuncState** %4, align 4 ; [#uses=1]
+ store %struct.FuncState* %5, %struct.FuncState** %fs, align 4
+ %6 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %7 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %8 = call i32 @_Z15luaK_exp2anyregP9FuncStateP7expdesc(%struct.FuncState* %6, %struct.expdesc* %7) ; [#uses=0]
+ %9 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %9)
+ %10 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9checknameP8LexStateP7expdesc(%struct.LexState* %10, %struct.expdesc* %key)
+ %11 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %12 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z12luaK_indexedP9FuncStateP7expdescS2_(%struct.FuncState* %11, %struct.expdesc* %12, %struct.expdesc* %key)
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z8funcargsP8LexStateP7expdesc(%struct.LexState* %ls, %struct.expdesc* %f) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=15]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=3]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=7]
+ %args = alloca %struct.expdesc, align 4 ; [#uses=9]
+ %base = alloca i32, align 4 ; [#uses=4]
+ %nparams = alloca i32, align 4 ; [#uses=3]
+ %line = alloca i32, align 4 ; [#uses=4]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.expdesc* %f, %struct.expdesc** %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 5 ; [#uses=1]
+ %5 = load %struct.FuncState** %4, align 4 ; [#uses=1]
+ store %struct.FuncState* %5, %struct.FuncState** %fs, align 4
+ %6 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.LexState* %6, i32 0, i32 1 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ store i32 %8, i32* %line, align 4
+ %9 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.LexState* %9, i32 0, i32 3 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Token* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ switch i32 %12, label %48 [
+ i32 40, label %13
+ i32 123, label %37
+ i32 286, label %39
+ ]
+
+; <label>:13 ; preds = %0
+ %14 = load i32* %line, align 4 ; [#uses=1]
+ %15 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.LexState* %15, i32 0, i32 2 ; [#uses=1]
+ %17 = load i32* %16, align 4 ; [#uses=1]
+ %18 = icmp ne i32 %14, %17 ; [#uses=1]
+ br i1 %18, label %19, label %21
+
+; <label>:19 ; preds = %13
+ %20 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z16luaX_syntaxerrorP8LexStatePKc(%struct.LexState* %20, i8* getelementptr inbounds ([49 x i8]* @.str12141, i32 0, i32 0))
+ br label %21
+
+; <label>:21 ; preds = %19, %13
+ %22 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %22)
+ %23 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.LexState* %23, i32 0, i32 3 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.Token* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = load i32* %25, align 4 ; [#uses=1]
+ %27 = icmp eq i32 %26, 41 ; [#uses=1]
+ br i1 %27, label %28, label %30
+
+; <label>:28 ; preds = %21
+ %29 = getelementptr inbounds %struct.expdesc* %args, i32 0, i32 0 ; [#uses=1]
+ store i32 0, i32* %29, align 4
+ br label %34
+
+; <label>:30 ; preds = %21
+ %31 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %32 = call i32 @_Z8explist1P8LexStateP7expdesc(%struct.LexState* %31, %struct.expdesc* %args) ; [#uses=0]
+ %33 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z15luaK_setreturnsP9FuncStateP7expdesci(%struct.FuncState* %33, %struct.expdesc* %args, i32 -1)
+ br label %34
+
+; <label>:34 ; preds = %30, %28
+ %35 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %36 = load i32* %line, align 4 ; [#uses=1]
+ call void @_Z11check_matchP8LexStateiii(%struct.LexState* %35, i32 41, i32 40, i32 %36)
+ br label %50
+
+; <label>:37 ; preds = %0
+ %38 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z11constructorP8LexStateP7expdesc(%struct.LexState* %38, %struct.expdesc* %args)
+ br label %50
+
+; <label>:39 ; preds = %0
+ %40 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %41 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.LexState* %41, i32 0, i32 3 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.Token* %42, i32 0, i32 1 ; [#uses=1]
+ %44 = getelementptr inbounds %union.anon* %43, i32 0, i32 0 ; [#uses=1]
+ %45 = bitcast double* %44 to %union.TString** ; [#uses=1]
+ %46 = load %union.TString** %45, align 4 ; [#uses=1]
+ call void @_Z10codestringP8LexStateP7expdescP7TString(%struct.LexState* %40, %struct.expdesc* %args, %union.TString* %46)
+ %47 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %47)
+ br label %50
+
+; <label>:48 ; preds = %0
+ %49 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z16luaX_syntaxerrorP8LexStatePKc(%struct.LexState* %49, i8* getelementptr inbounds ([28 x i8]* @.str13142, i32 0, i32 0))
+ br label %90
+
+; <label>:50 ; preds = %39, %37, %34
+ %51 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.expdesc* %51, i32 0, i32 1 ; [#uses=1]
+ %53 = getelementptr inbounds %2* %52, i32 0, i32 0 ; [#uses=1]
+ %54 = getelementptr inbounds %3* %53, i32 0, i32 0 ; [#uses=1]
+ %55 = load i32* %54, align 4 ; [#uses=1]
+ store i32 %55, i32* %base, align 4
+ %56 = getelementptr inbounds %struct.expdesc* %args, i32 0, i32 0 ; [#uses=1]
+ %57 = load i32* %56, align 4 ; [#uses=1]
+ %58 = icmp eq i32 %57, 13 ; [#uses=1]
+ br i1 %58, label %63, label %59
+
+; <label>:59 ; preds = %50
+ %60 = getelementptr inbounds %struct.expdesc* %args, i32 0, i32 0 ; [#uses=1]
+ %61 = load i32* %60, align 4 ; [#uses=1]
+ %62 = icmp eq i32 %61, 14 ; [#uses=1]
+ br i1 %62, label %63, label %64
+
+; <label>:63 ; preds = %59, %50
+ store i32 -1, i32* %nparams, align 4
+ br label %77
+
+; <label>:64 ; preds = %59
+ %65 = getelementptr inbounds %struct.expdesc* %args, i32 0, i32 0 ; [#uses=1]
+ %66 = load i32* %65, align 4 ; [#uses=1]
+ %67 = icmp ne i32 %66, 0 ; [#uses=1]
+ br i1 %67, label %68, label %70
+
+; <label>:68 ; preds = %64
+ %69 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z16luaK_exp2nextregP9FuncStateP7expdesc(%struct.FuncState* %69, %struct.expdesc* %args)
+ br label %70
+
+; <label>:70 ; preds = %68, %64
+ %71 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.FuncState* %71, i32 0, i32 9 ; [#uses=1]
+ %73 = load i32* %72, align 4 ; [#uses=1]
+ %74 = load i32* %base, align 4 ; [#uses=1]
+ %75 = add nsw i32 %74, 1 ; [#uses=1]
+ %76 = sub nsw i32 %73, %75 ; [#uses=1]
+ store i32 %76, i32* %nparams, align 4
+ br label %77
+
+; <label>:77 ; preds = %70, %63
+ %78 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %79 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %80 = load i32* %base, align 4 ; [#uses=1]
+ %81 = load i32* %nparams, align 4 ; [#uses=1]
+ %82 = add nsw i32 %81, 1 ; [#uses=1]
+ %83 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %79, i32 28, i32 %80, i32 %82, i32 2) ; [#uses=1]
+ call void @_Z8init_expP7expdesc7expkindi(%struct.expdesc* %78, i32 13, i32 %83)
+ %84 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %85 = load i32* %line, align 4 ; [#uses=1]
+ call void @_Z12luaK_fixlineP9FuncStatei(%struct.FuncState* %84, i32 %85)
+ %86 = load i32* %base, align 4 ; [#uses=1]
+ %87 = add nsw i32 %86, 1 ; [#uses=1]
+ %88 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %89 = getelementptr inbounds %struct.FuncState* %88, i32 0, i32 9 ; [#uses=1]
+ store i32 %87, i32* %89, align 4
+ br label %90
+
+; <label>:90 ; preds = %77, %48
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z9singlevarP8LexStateP7expdesc(%struct.LexState* %ls, %struct.expdesc* %var) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=3]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=3]
+ %varname = alloca %union.TString*, align 4 ; [#uses=3]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.expdesc* %var, %struct.expdesc** %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = call %union.TString* @_Z13str_checknameP8LexState(%struct.LexState* %3) ; [#uses=1]
+ store %union.TString* %4, %union.TString** %varname, align 4
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LexState* %5, i32 0, i32 5 ; [#uses=1]
+ %7 = load %struct.FuncState** %6, align 4 ; [#uses=1]
+ store %struct.FuncState* %7, %struct.FuncState** %fs, align 4
+ %8 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %9 = load %union.TString** %varname, align 4 ; [#uses=1]
+ %10 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %11 = call i32 @_Z12singlevarauxP9FuncStateP7TStringP7expdesci(%struct.FuncState* %8, %union.TString* %9, %struct.expdesc* %10, i32 1) ; [#uses=1]
+ %12 = icmp eq i32 %11, 8 ; [#uses=1]
+ br i1 %12, label %13, label %21
+
+; <label>:13 ; preds = %0
+ %14 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %15 = load %union.TString** %varname, align 4 ; [#uses=1]
+ %16 = call i32 @_Z12luaK_stringKP9FuncStateP7TString(%struct.FuncState* %14, %union.TString* %15) ; [#uses=1]
+ %17 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.expdesc* %17, i32 0, i32 1 ; [#uses=1]
+ %19 = getelementptr inbounds %2* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = getelementptr inbounds %3* %19, i32 0, i32 0 ; [#uses=1]
+ store i32 %16, i32* %20, align 4
+ br label %21
+
+; <label>:21 ; preds = %13, %0
+ ret void
+}
+
+; [#uses=2]
+define internal i32 @_Z12singlevarauxP9FuncStateP7TStringP7expdesci(%struct.FuncState* %fs, %union.TString* %n, %struct.expdesc* %var, i32 %base) {
+ %1 = alloca i32, align 4 ; [#uses=5]
+ %2 = alloca %struct.FuncState*, align 4 ; [#uses=6]
+ %3 = alloca %union.TString*, align 4 ; [#uses=4]
+ %4 = alloca %struct.expdesc*, align 4 ; [#uses=7]
+ %5 = alloca i32, align 4 ; [#uses=2]
+ %v = alloca i32, align 4 ; [#uses=4]
+ store %struct.FuncState* %fs, %struct.FuncState** %2, align 4
+ store %union.TString* %n, %union.TString** %3, align 4
+ store %struct.expdesc* %var, %struct.expdesc** %4, align 4
+ store i32 %base, i32* %5, align 4
+ %6 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %7 = icmp eq %struct.FuncState* %6, null ; [#uses=1]
+ br i1 %7, label %8, label %10
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ call void @_Z8init_expP7expdesc7expkindi(%struct.expdesc* %9, i32 8, i32 255)
+ store i32 8, i32* %1
+ br label %45
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %12 = load %union.TString** %3, align 4 ; [#uses=1]
+ %13 = call i32 @_Z9searchvarP9FuncStateP7TString(%struct.FuncState* %11, %union.TString* %12) ; [#uses=1]
+ store i32 %13, i32* %v, align 4
+ %14 = load i32* %v, align 4 ; [#uses=1]
+ %15 = icmp sge i32 %14, 0 ; [#uses=1]
+ br i1 %15, label %16, label %25
+
+; <label>:16 ; preds = %10
+ %17 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %18 = load i32* %v, align 4 ; [#uses=1]
+ call void @_Z8init_expP7expdesc7expkindi(%struct.expdesc* %17, i32 6, i32 %18)
+ %19 = load i32* %5, align 4 ; [#uses=1]
+ %20 = icmp ne i32 %19, 0 ; [#uses=1]
+ br i1 %20, label %24, label %21
+
+; <label>:21 ; preds = %16
+ %22 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %23 = load i32* %v, align 4 ; [#uses=1]
+ call void @_Z9markupvalP9FuncStatei(%struct.FuncState* %22, i32 %23)
+ br label %24
+
+; <label>:24 ; preds = %21, %16
+ store i32 6, i32* %1
+ br label %45
+
+; <label>:25 ; preds = %10
+ %26 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.FuncState* %26, i32 0, i32 2 ; [#uses=1]
+ %28 = load %struct.FuncState** %27, align 4 ; [#uses=1]
+ %29 = load %union.TString** %3, align 4 ; [#uses=1]
+ %30 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %31 = call i32 @_Z12singlevarauxP9FuncStateP7TStringP7expdesci(%struct.FuncState* %28, %union.TString* %29, %struct.expdesc* %30, i32 0) ; [#uses=1]
+ %32 = icmp eq i32 %31, 8 ; [#uses=1]
+ br i1 %32, label %33, label %34
+
+; <label>:33 ; preds = %25
+ store i32 8, i32* %1
+ br label %45
+
+; <label>:34 ; preds = %25
+ %35 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %36 = load %union.TString** %3, align 4 ; [#uses=1]
+ %37 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %38 = call i32 @_Z12indexupvalueP9FuncStateP7TStringP7expdesc(%struct.FuncState* %35, %union.TString* %36, %struct.expdesc* %37) ; [#uses=1]
+ %39 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.expdesc* %39, i32 0, i32 1 ; [#uses=1]
+ %41 = getelementptr inbounds %2* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = getelementptr inbounds %3* %41, i32 0, i32 0 ; [#uses=1]
+ store i32 %38, i32* %42, align 4
+ %43 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.expdesc* %43, i32 0, i32 0 ; [#uses=1]
+ store i32 7, i32* %44, align 4
+ store i32 7, i32* %1
+ br label %45
+
+; <label>:45 ; preds = %34, %33, %24, %8
+ %46 = load i32* %1 ; [#uses=1]
+ ret i32 %46
+}
+
+; [#uses=1]
+define internal i32 @_Z9searchvarP9FuncStateP7TString(%struct.FuncState* %fs, %union.TString* %n) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.FuncState*, align 4 ; [#uses=4]
+ %3 = alloca %union.TString*, align 4 ; [#uses=2]
+ %i = alloca i32, align 4 ; [#uses=6]
+ store %struct.FuncState* %fs, %struct.FuncState** %2, align 4
+ store %union.TString* %n, %union.TString** %3, align 4
+ %4 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.FuncState* %4, i32 0, i32 13 ; [#uses=1]
+ %6 = load i8* %5, align 1 ; [#uses=1]
+ %7 = zext i8 %6 to i32 ; [#uses=1]
+ %8 = sub nsw i32 %7, 1 ; [#uses=1]
+ store i32 %8, i32* %i, align 4
+ br label %9
+
+; <label>:9 ; preds = %32, %0
+ %10 = load i32* %i, align 4 ; [#uses=1]
+ %11 = icmp sge i32 %10, 0 ; [#uses=1]
+ br i1 %11, label %12, label %35
+
+; <label>:12 ; preds = %9
+ %13 = load %union.TString** %3, align 4 ; [#uses=1]
+ %14 = load i32* %i, align 4 ; [#uses=1]
+ %15 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.FuncState* %15, i32 0, i32 15 ; [#uses=1]
+ %17 = getelementptr inbounds [200 x i16]* %16, i32 0, i32 %14 ; [#uses=1]
+ %18 = load i16* %17 ; [#uses=1]
+ %19 = zext i16 %18 to i32 ; [#uses=1]
+ %20 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.FuncState* %20, i32 0, i32 0 ; [#uses=1]
+ %22 = load %struct.Proto** %21, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.Proto* %22, i32 0, i32 7 ; [#uses=1]
+ %24 = load %struct.LocVar** %23, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.LocVar* %24, i32 %19 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.LocVar* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = load %union.TString** %26, align 4 ; [#uses=1]
+ %28 = icmp eq %union.TString* %13, %27 ; [#uses=1]
+ br i1 %28, label %29, label %31
+
+; <label>:29 ; preds = %12
+ %30 = load i32* %i, align 4 ; [#uses=1]
+ store i32 %30, i32* %1
+ br label %36
+
+; <label>:31 ; preds = %12
+ br label %32
+
+; <label>:32 ; preds = %31
+ %33 = load i32* %i, align 4 ; [#uses=1]
+ %34 = add nsw i32 %33, -1 ; [#uses=1]
+ store i32 %34, i32* %i, align 4
+ br label %9
+
+; <label>:35 ; preds = %9
+ store i32 -1, i32* %1
+ br label %36
+
+; <label>:36 ; preds = %35, %29
+ %37 = load i32* %1 ; [#uses=1]
+ ret i32 %37
+}
+
+; [#uses=1]
+define internal void @_Z9markupvalP9FuncStatei(%struct.FuncState* %fs, i32 %level) nounwind {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=2]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %bl = alloca %struct.BlockCnt*, align 4 ; [#uses=7]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store i32 %level, i32* %2, align 4
+ %3 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.FuncState* %3, i32 0, i32 5 ; [#uses=1]
+ %5 = load %struct.BlockCnt** %4, align 4 ; [#uses=1]
+ store %struct.BlockCnt* %5, %struct.BlockCnt** %bl, align 4
+ br label %6
+
+; <label>:6 ; preds = %18, %0
+ %7 = load %struct.BlockCnt** %bl, align 4 ; [#uses=1]
+ %8 = icmp ne %struct.BlockCnt* %7, null ; [#uses=1]
+ br i1 %8, label %9, label %16
+
+; <label>:9 ; preds = %6
+ %10 = load %struct.BlockCnt** %bl, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.BlockCnt* %10, i32 0, i32 2 ; [#uses=1]
+ %12 = load i8* %11, align 1 ; [#uses=1]
+ %13 = zext i8 %12 to i32 ; [#uses=1]
+ %14 = load i32* %2, align 4 ; [#uses=1]
+ %15 = icmp sgt i32 %13, %14 ; [#uses=1]
+ br label %16
+
+; <label>:16 ; preds = %9, %6
+ %17 = phi i1 [ false, %6 ], [ %15, %9 ] ; [#uses=1]
+ br i1 %17, label %18, label %22
+
+; <label>:18 ; preds = %16
+ %19 = load %struct.BlockCnt** %bl, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.BlockCnt* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = load %struct.BlockCnt** %20, align 4 ; [#uses=1]
+ store %struct.BlockCnt* %21, %struct.BlockCnt** %bl, align 4
+ br label %6
+
+; <label>:22 ; preds = %16
+ %23 = load %struct.BlockCnt** %bl, align 4 ; [#uses=1]
+ %24 = icmp ne %struct.BlockCnt* %23, null ; [#uses=1]
+ br i1 %24, label %25, label %28
+
+; <label>:25 ; preds = %22
+ %26 = load %struct.BlockCnt** %bl, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.BlockCnt* %26, i32 0, i32 3 ; [#uses=1]
+ store i8 1, i8* %27, align 1
+ br label %28
+
+; <label>:28 ; preds = %25, %22
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z12indexupvalueP9FuncStateP7TStringP7expdesc(%struct.FuncState* %fs, %union.TString* %name, %struct.expdesc* %v) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.FuncState*, align 4 ; [#uses=9]
+ %3 = alloca %union.TString*, align 4 ; [#uses=4]
+ %4 = alloca %struct.expdesc*, align 4 ; [#uses=5]
+ %i = alloca i32, align 4 ; [#uses=7]
+ %f = alloca %struct.Proto*, align 4 ; [#uses=18]
+ %oldsize = alloca i32, align 4 ; [#uses=4]
+ store %struct.FuncState* %fs, %struct.FuncState** %2, align 4
+ store %union.TString* %name, %union.TString** %3, align 4
+ store %struct.expdesc* %v, %struct.expdesc** %4, align 4
+ %5 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.FuncState* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load %struct.Proto** %6, align 4 ; [#uses=1]
+ store %struct.Proto* %7, %struct.Proto** %f, align 4
+ %8 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.Proto* %8, i32 0, i32 10 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ store i32 %10, i32* %oldsize, align 4
+ store i32 0, i32* %i, align 4
+ br label %11
+
+; <label>:11 ; preds = %47, %0
+ %12 = load i32* %i, align 4 ; [#uses=1]
+ %13 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.Proto* %13, i32 0, i32 19 ; [#uses=1]
+ %15 = load i8* %14, align 1 ; [#uses=1]
+ %16 = zext i8 %15 to i32 ; [#uses=1]
+ %17 = icmp slt i32 %12, %16 ; [#uses=1]
+ br i1 %17, label %18, label %50
+
+; <label>:18 ; preds = %11
+ %19 = load i32* %i, align 4 ; [#uses=1]
+ %20 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.FuncState* %20, i32 0, i32 14 ; [#uses=1]
+ %22 = getelementptr inbounds [60 x %struct.upvaldesc]* %21, i32 0, i32 %19 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.upvaldesc* %22, i32 0, i32 0 ; [#uses=1]
+ %24 = load i8* %23, align 1 ; [#uses=1]
+ %25 = zext i8 %24 to i32 ; [#uses=1]
+ %26 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.expdesc* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = load i32* %27, align 4 ; [#uses=1]
+ %29 = icmp eq i32 %25, %28 ; [#uses=1]
+ br i1 %29, label %30, label %46
+
+; <label>:30 ; preds = %18
+ %31 = load i32* %i, align 4 ; [#uses=1]
+ %32 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.FuncState* %32, i32 0, i32 14 ; [#uses=1]
+ %34 = getelementptr inbounds [60 x %struct.upvaldesc]* %33, i32 0, i32 %31 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.upvaldesc* %34, i32 0, i32 1 ; [#uses=1]
+ %36 = load i8* %35, align 1 ; [#uses=1]
+ %37 = zext i8 %36 to i32 ; [#uses=1]
+ %38 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.expdesc* %38, i32 0, i32 1 ; [#uses=1]
+ %40 = getelementptr inbounds %2* %39, i32 0, i32 0 ; [#uses=1]
+ %41 = getelementptr inbounds %3* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = load i32* %41, align 4 ; [#uses=1]
+ %43 = icmp eq i32 %37, %42 ; [#uses=1]
+ br i1 %43, label %44, label %46
+
+; <label>:44 ; preds = %30
+ %45 = load i32* %i, align 4 ; [#uses=1]
+ store i32 %45, i32* %1
+ br label %166
+
+; <label>:46 ; preds = %30, %18
+ br label %47
+
+; <label>:47 ; preds = %46
+ %48 = load i32* %i, align 4 ; [#uses=1]
+ %49 = add nsw i32 %48, 1 ; [#uses=1]
+ store i32 %49, i32* %i, align 4
+ br label %11
+
+; <label>:50 ; preds = %11
+ %51 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.Proto* %51, i32 0, i32 19 ; [#uses=1]
+ %53 = load i8* %52, align 1 ; [#uses=1]
+ %54 = zext i8 %53 to i32 ; [#uses=1]
+ %55 = add nsw i32 %54, 1 ; [#uses=1]
+ %56 = icmp sgt i32 %55, 60 ; [#uses=1]
+ br i1 %56, label %57, label %59
+
+; <label>:57 ; preds = %50
+ %58 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ call void @_Z10errorlimitP9FuncStateiPKc(%struct.FuncState* %58, i32 60, i8* getelementptr inbounds ([9 x i8]* @.str15144, i32 0, i32 0))
+ br label %59
+
+; <label>:59 ; preds = %57, %50
+ %60 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.Proto* %60, i32 0, i32 19 ; [#uses=1]
+ %62 = load i8* %61, align 1 ; [#uses=1]
+ %63 = zext i8 %62 to i32 ; [#uses=1]
+ %64 = add nsw i32 %63, 1 ; [#uses=1]
+ %65 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.Proto* %65, i32 0, i32 10 ; [#uses=1]
+ %67 = load i32* %66, align 4 ; [#uses=1]
+ %68 = icmp sgt i32 %64, %67 ; [#uses=1]
+ br i1 %68, label %69, label %83
+
+; <label>:69 ; preds = %59
+ %70 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %71 = getelementptr inbounds %struct.FuncState* %70, i32 0, i32 4 ; [#uses=1]
+ %72 = load %struct.lua_State** %71, align 4 ; [#uses=1]
+ %73 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.Proto* %73, i32 0, i32 8 ; [#uses=1]
+ %75 = load %union.TString*** %74, align 4 ; [#uses=1]
+ %76 = bitcast %union.TString** %75 to i8* ; [#uses=1]
+ %77 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %78 = getelementptr inbounds %struct.Proto* %77, i32 0, i32 10 ; [#uses=1]
+ %79 = call i8* @_Z13luaM_growaux_P9lua_StatePvPijiPKc(%struct.lua_State* %72, i8* %76, i32* %78, i32 4, i32 2147483645, i8* getelementptr inbounds ([1 x i8]* @.str16145, i32 0, i32 0)) ; [#uses=1]
+ %80 = bitcast i8* %79 to %union.TString** ; [#uses=1]
+ %81 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %82 = getelementptr inbounds %struct.Proto* %81, i32 0, i32 8 ; [#uses=1]
+ store %union.TString** %80, %union.TString*** %82, align 4
+ br label %83
+
+; <label>:83 ; preds = %69, %59
+ br label %84
+
+; <label>:84 ; preds = %90, %83
+ %85 = load i32* %oldsize, align 4 ; [#uses=1]
+ %86 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %87 = getelementptr inbounds %struct.Proto* %86, i32 0, i32 10 ; [#uses=1]
+ %88 = load i32* %87, align 4 ; [#uses=1]
+ %89 = icmp slt i32 %85, %88 ; [#uses=1]
+ br i1 %89, label %90, label %97
+
+; <label>:90 ; preds = %84
+ %91 = load i32* %oldsize, align 4 ; [#uses=2]
+ %92 = add nsw i32 %91, 1 ; [#uses=1]
+ store i32 %92, i32* %oldsize, align 4
+ %93 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %94 = getelementptr inbounds %struct.Proto* %93, i32 0, i32 8 ; [#uses=1]
+ %95 = load %union.TString*** %94, align 4 ; [#uses=1]
+ %96 = getelementptr inbounds %union.TString** %95, i32 %91 ; [#uses=1]
+ store %union.TString* null, %union.TString** %96
+ br label %84
+
+; <label>:97 ; preds = %84
+ %98 = load %union.TString** %3, align 4 ; [#uses=1]
+ %99 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %100 = getelementptr inbounds %struct.Proto* %99, i32 0, i32 19 ; [#uses=1]
+ %101 = load i8* %100, align 1 ; [#uses=1]
+ %102 = zext i8 %101 to i32 ; [#uses=1]
+ %103 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %104 = getelementptr inbounds %struct.Proto* %103, i32 0, i32 8 ; [#uses=1]
+ %105 = load %union.TString*** %104, align 4 ; [#uses=1]
+ %106 = getelementptr inbounds %union.TString** %105, i32 %102 ; [#uses=1]
+ store %union.TString* %98, %union.TString** %106
+ %107 = load %union.TString** %3, align 4 ; [#uses=1]
+ %108 = bitcast %union.TString* %107 to %union.GCObject* ; [#uses=1]
+ %109 = getelementptr inbounds %union.GCObject* %108, i32 0, i32 0 ; [#uses=1]
+ %110 = bitcast %struct.lua_State* %109 to %struct.GCheader* ; [#uses=1]
+ %111 = getelementptr inbounds %struct.GCheader* %110, i32 0, i32 2 ; [#uses=1]
+ %112 = load i8* %111, align 1 ; [#uses=1]
+ %113 = zext i8 %112 to i32 ; [#uses=1]
+ %114 = and i32 %113, 3 ; [#uses=1]
+ %115 = icmp ne i32 %114, 0 ; [#uses=1]
+ br i1 %115, label %116, label %134
+
+; <label>:116 ; preds = %97
+ %117 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %118 = bitcast %struct.Proto* %117 to %union.GCObject* ; [#uses=1]
+ %119 = getelementptr inbounds %union.GCObject* %118, i32 0, i32 0 ; [#uses=1]
+ %120 = bitcast %struct.lua_State* %119 to %struct.GCheader* ; [#uses=1]
+ %121 = getelementptr inbounds %struct.GCheader* %120, i32 0, i32 2 ; [#uses=1]
+ %122 = load i8* %121, align 1 ; [#uses=1]
+ %123 = zext i8 %122 to i32 ; [#uses=1]
+ %124 = and i32 %123, 4 ; [#uses=1]
+ %125 = icmp ne i32 %124, 0 ; [#uses=1]
+ br i1 %125, label %126, label %134
+
+; <label>:126 ; preds = %116
+ %127 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %128 = getelementptr inbounds %struct.FuncState* %127, i32 0, i32 4 ; [#uses=1]
+ %129 = load %struct.lua_State** %128, align 4 ; [#uses=1]
+ %130 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %131 = bitcast %struct.Proto* %130 to %union.GCObject* ; [#uses=1]
+ %132 = load %union.TString** %3, align 4 ; [#uses=1]
+ %133 = bitcast %union.TString* %132 to %union.GCObject* ; [#uses=1]
+ call void @_Z13luaC_barrierfP9lua_StateP8GCObjectS2_(%struct.lua_State* %129, %union.GCObject* %131, %union.GCObject* %133)
+ br label %134
+
+; <label>:134 ; preds = %126, %116, %97
+ %135 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %136 = getelementptr inbounds %struct.expdesc* %135, i32 0, i32 0 ; [#uses=1]
+ %137 = load i32* %136, align 4 ; [#uses=1]
+ %138 = trunc i32 %137 to i8 ; [#uses=1]
+ %139 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %140 = getelementptr inbounds %struct.Proto* %139, i32 0, i32 19 ; [#uses=1]
+ %141 = load i8* %140, align 1 ; [#uses=1]
+ %142 = zext i8 %141 to i32 ; [#uses=1]
+ %143 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %144 = getelementptr inbounds %struct.FuncState* %143, i32 0, i32 14 ; [#uses=1]
+ %145 = getelementptr inbounds [60 x %struct.upvaldesc]* %144, i32 0, i32 %142 ; [#uses=1]
+ %146 = getelementptr inbounds %struct.upvaldesc* %145, i32 0, i32 0 ; [#uses=1]
+ store i8 %138, i8* %146, align 1
+ %147 = load %struct.expdesc** %4, align 4 ; [#uses=1]
+ %148 = getelementptr inbounds %struct.expdesc* %147, i32 0, i32 1 ; [#uses=1]
+ %149 = getelementptr inbounds %2* %148, i32 0, i32 0 ; [#uses=1]
+ %150 = getelementptr inbounds %3* %149, i32 0, i32 0 ; [#uses=1]
+ %151 = load i32* %150, align 4 ; [#uses=1]
+ %152 = trunc i32 %151 to i8 ; [#uses=1]
+ %153 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %154 = getelementptr inbounds %struct.Proto* %153, i32 0, i32 19 ; [#uses=1]
+ %155 = load i8* %154, align 1 ; [#uses=1]
+ %156 = zext i8 %155 to i32 ; [#uses=1]
+ %157 = load %struct.FuncState** %2, align 4 ; [#uses=1]
+ %158 = getelementptr inbounds %struct.FuncState* %157, i32 0, i32 14 ; [#uses=1]
+ %159 = getelementptr inbounds [60 x %struct.upvaldesc]* %158, i32 0, i32 %156 ; [#uses=1]
+ %160 = getelementptr inbounds %struct.upvaldesc* %159, i32 0, i32 1 ; [#uses=1]
+ store i8 %152, i8* %160, align 1
+ %161 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %162 = getelementptr inbounds %struct.Proto* %161, i32 0, i32 19 ; [#uses=2]
+ %163 = load i8* %162, align 1 ; [#uses=2]
+ %164 = add i8 %163, 1 ; [#uses=1]
+ store i8 %164, i8* %162, align 1
+ %165 = zext i8 %163 to i32 ; [#uses=1]
+ store i32 %165, i32* %1
+ br label %166
+
+; <label>:166 ; preds = %134, %44
+ %167 = load i32* %1 ; [#uses=1]
+ ret i32 %167
+}
+
+; [#uses=1]
+define internal i32 @_Z8funcnameP8LexStateP7expdesc(%struct.LexState* %ls, %struct.expdesc* %v) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=6]
+ %2 = alloca %struct.expdesc*, align 4 ; [#uses=4]
+ %needself = alloca i32, align 4 ; [#uses=3]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %struct.expdesc* %v, %struct.expdesc** %2, align 4
+ store i32 0, i32* %needself, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z9singlevarP8LexStateP7expdesc(%struct.LexState* %3, %struct.expdesc* %4)
+ br label %5
+
+; <label>:5 ; preds = %11, %0
+ %6 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.LexState* %6, i32 0, i32 3 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.Token* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ %10 = icmp eq i32 %9, 46 ; [#uses=1]
+ br i1 %10, label %11, label %14
+
+; <label>:11 ; preds = %5
+ %12 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %13 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z5fieldP8LexStateP7expdesc(%struct.LexState* %12, %struct.expdesc* %13)
+ br label %5
+
+; <label>:14 ; preds = %5
+ %15 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.LexState* %15, i32 0, i32 3 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.Token* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = load i32* %17, align 4 ; [#uses=1]
+ %19 = icmp eq i32 %18, 58 ; [#uses=1]
+ br i1 %19, label %20, label %23
+
+; <label>:20 ; preds = %14
+ store i32 1, i32* %needself, align 4
+ %21 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %22 = load %struct.expdesc** %2, align 4 ; [#uses=1]
+ call void @_Z5fieldP8LexStateP7expdesc(%struct.LexState* %21, %struct.expdesc* %22)
+ br label %23
+
+; <label>:23 ; preds = %20, %14
+ %24 = load i32* %needself, align 4 ; [#uses=1]
+ ret i32 %24
+}
+
+; [#uses=6]
+define internal void @_Z10enterblockP9FuncStateP8BlockCnth(%struct.FuncState* %fs, %struct.BlockCnt* %bl, i8 zeroext %isbreakable) nounwind {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=4]
+ %2 = alloca %struct.BlockCnt*, align 4 ; [#uses=7]
+ %3 = alloca i8, align 1 ; [#uses=2]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ store %struct.BlockCnt* %bl, %struct.BlockCnt** %2, align 4
+ store i8 %isbreakable, i8* %3, align 1
+ %4 = load %struct.BlockCnt** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.BlockCnt* %4, i32 0, i32 1 ; [#uses=1]
+ store i32 -1, i32* %5, align 4
+ %6 = load i8* %3, align 1 ; [#uses=1]
+ %7 = load %struct.BlockCnt** %2, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.BlockCnt* %7, i32 0, i32 4 ; [#uses=1]
+ store i8 %6, i8* %8, align 1
+ %9 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.FuncState* %9, i32 0, i32 13 ; [#uses=1]
+ %11 = load i8* %10, align 1 ; [#uses=1]
+ %12 = load %struct.BlockCnt** %2, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.BlockCnt* %12, i32 0, i32 2 ; [#uses=1]
+ store i8 %11, i8* %13, align 1
+ %14 = load %struct.BlockCnt** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.BlockCnt* %14, i32 0, i32 3 ; [#uses=1]
+ store i8 0, i8* %15, align 1
+ %16 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.FuncState* %16, i32 0, i32 5 ; [#uses=1]
+ %18 = load %struct.BlockCnt** %17, align 4 ; [#uses=1]
+ %19 = load %struct.BlockCnt** %2, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.BlockCnt* %19, i32 0, i32 0 ; [#uses=1]
+ store %struct.BlockCnt* %18, %struct.BlockCnt** %20, align 4
+ %21 = load %struct.BlockCnt** %2, align 4 ; [#uses=1]
+ %22 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.FuncState* %22, i32 0, i32 5 ; [#uses=1]
+ store %struct.BlockCnt* %21, %struct.BlockCnt** %23, align 4
+ ret void
+}
+
+; [#uses=3]
+define internal i32 @_Z4condP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=3]
+ %v = alloca %struct.expdesc, align 4 ; [#uses=5]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z4exprP8LexStateP7expdesc(%struct.LexState* %2, %struct.expdesc* %v)
+ %3 = getelementptr inbounds %struct.expdesc* %v, i32 0, i32 0 ; [#uses=1]
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = icmp eq i32 %4, 1 ; [#uses=1]
+ br i1 %5, label %6, label %8
+
+; <label>:6 ; preds = %0
+ %7 = getelementptr inbounds %struct.expdesc* %v, i32 0, i32 0 ; [#uses=1]
+ store i32 3, i32* %7, align 4
+ br label %8
+
+; <label>:8 ; preds = %6, %0
+ %9 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.LexState* %9, i32 0, i32 5 ; [#uses=1]
+ %11 = load %struct.FuncState** %10, align 4 ; [#uses=1]
+ call void @_Z13luaK_goiftrueP9FuncStateP7expdesc(%struct.FuncState* %11, %struct.expdesc* %v)
+ %12 = getelementptr inbounds %struct.expdesc* %v, i32 0, i32 3 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ ret i32 %13
+}
+
+; [#uses=7]
+define internal void @_Z10leaveblockP9FuncState(%struct.FuncState* %fs) {
+ %1 = alloca %struct.FuncState*, align 4 ; [#uses=8]
+ %bl = alloca %struct.BlockCnt*, align 4 ; [#uses=6]
+ store %struct.FuncState* %fs, %struct.FuncState** %1, align 4
+ %2 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.FuncState* %2, i32 0, i32 5 ; [#uses=1]
+ %4 = load %struct.BlockCnt** %3, align 4 ; [#uses=1]
+ store %struct.BlockCnt* %4, %struct.BlockCnt** %bl, align 4
+ %5 = load %struct.BlockCnt** %bl, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.BlockCnt* %5, i32 0, i32 0 ; [#uses=1]
+ %7 = load %struct.BlockCnt** %6, align 4 ; [#uses=1]
+ %8 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.FuncState* %8, i32 0, i32 5 ; [#uses=1]
+ store %struct.BlockCnt* %7, %struct.BlockCnt** %9, align 4
+ %10 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.FuncState* %10, i32 0, i32 3 ; [#uses=1]
+ %12 = load %struct.LexState** %11, align 4 ; [#uses=1]
+ %13 = load %struct.BlockCnt** %bl, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.BlockCnt* %13, i32 0, i32 2 ; [#uses=1]
+ %15 = load i8* %14, align 1 ; [#uses=1]
+ %16 = zext i8 %15 to i32 ; [#uses=1]
+ call void @_Z10removevarsP8LexStatei(%struct.LexState* %12, i32 %16)
+ %17 = load %struct.BlockCnt** %bl, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.BlockCnt* %17, i32 0, i32 3 ; [#uses=1]
+ %19 = load i8* %18, align 1 ; [#uses=1]
+ %20 = icmp ne i8 %19, 0 ; [#uses=1]
+ br i1 %20, label %21, label %28
+
+; <label>:21 ; preds = %0
+ %22 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %23 = load %struct.BlockCnt** %bl, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.BlockCnt* %23, i32 0, i32 2 ; [#uses=1]
+ %25 = load i8* %24, align 1 ; [#uses=1]
+ %26 = zext i8 %25 to i32 ; [#uses=1]
+ %27 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %22, i32 35, i32 %26, i32 0, i32 0) ; [#uses=0]
+ br label %28
+
+; <label>:28 ; preds = %21, %0
+ %29 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.FuncState* %29, i32 0, i32 13 ; [#uses=1]
+ %31 = load i8* %30, align 1 ; [#uses=1]
+ %32 = zext i8 %31 to i32 ; [#uses=1]
+ %33 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.FuncState* %33, i32 0, i32 9 ; [#uses=1]
+ store i32 %32, i32* %34, align 4
+ %35 = load %struct.FuncState** %1, align 4 ; [#uses=1]
+ %36 = load %struct.BlockCnt** %bl, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.BlockCnt* %36, i32 0, i32 1 ; [#uses=1]
+ %38 = load i32* %37, align 4 ; [#uses=1]
+ call void @_Z16luaK_patchtohereP9FuncStatei(%struct.FuncState* %35, i32 %38)
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z10removevarsP8LexStatei(%struct.LexState* %ls, i32 %tolevel) nounwind {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=2]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=6]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 %tolevel, i32* %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 5 ; [#uses=1]
+ %5 = load %struct.FuncState** %4, align 4 ; [#uses=1]
+ store %struct.FuncState* %5, %struct.FuncState** %fs, align 4
+ br label %6
+
+; <label>:6 ; preds = %13, %0
+ %7 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.FuncState* %7, i32 0, i32 13 ; [#uses=1]
+ %9 = load i8* %8, align 1 ; [#uses=1]
+ %10 = zext i8 %9 to i32 ; [#uses=1]
+ %11 = load i32* %2, align 4 ; [#uses=1]
+ %12 = icmp sgt i32 %10, %11 ; [#uses=1]
+ br i1 %12, label %13, label %34
+
+; <label>:13 ; preds = %6
+ %14 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.FuncState* %14, i32 0, i32 6 ; [#uses=1]
+ %16 = load i32* %15, align 4 ; [#uses=1]
+ %17 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.FuncState* %17, i32 0, i32 13 ; [#uses=2]
+ %19 = load i8* %18, align 1 ; [#uses=1]
+ %20 = add i8 %19, -1 ; [#uses=2]
+ store i8 %20, i8* %18, align 1
+ %21 = zext i8 %20 to i32 ; [#uses=1]
+ %22 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.FuncState* %22, i32 0, i32 15 ; [#uses=1]
+ %24 = getelementptr inbounds [200 x i16]* %23, i32 0, i32 %21 ; [#uses=1]
+ %25 = load i16* %24 ; [#uses=1]
+ %26 = zext i16 %25 to i32 ; [#uses=1]
+ %27 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.FuncState* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = load %struct.Proto** %28, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.Proto* %29, i32 0, i32 7 ; [#uses=1]
+ %31 = load %struct.LocVar** %30, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.LocVar* %31, i32 %26 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.LocVar* %32, i32 0, i32 2 ; [#uses=1]
+ store i32 %16, i32* %33, align 4
+ br label %6
+
+; <label>:34 ; preds = %6
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z6fornumP8LexStateP7TStringi(%struct.LexState* %ls, %union.TString* %varname, i32 %line) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=16]
+ %2 = alloca %union.TString*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=6]
+ %base = alloca i32, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %union.TString* %varname, %union.TString** %2, align 4
+ store i32 %line, i32* %3, align 4
+ %4 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.LexState* %4, i32 0, i32 5 ; [#uses=1]
+ %6 = load %struct.FuncState** %5, align 4 ; [#uses=1]
+ store %struct.FuncState* %6, %struct.FuncState** %fs, align 4
+ %7 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.FuncState* %7, i32 0, i32 9 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ store i32 %9, i32* %base, align 4
+ %10 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %11 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %12 = call %union.TString* @_Z14luaX_newstringP8LexStatePKcj(%struct.LexState* %11, i8* getelementptr inbounds ([12 x i8]* @.str22151, i32 0, i32 0), i32 11) ; [#uses=1]
+ call void @_Z12new_localvarP8LexStateP7TStringi(%struct.LexState* %10, %union.TString* %12, i32 0)
+ %13 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %14 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %15 = call %union.TString* @_Z14luaX_newstringP8LexStatePKcj(%struct.LexState* %14, i8* getelementptr inbounds ([12 x i8]* @.str23152, i32 0, i32 0), i32 11) ; [#uses=1]
+ call void @_Z12new_localvarP8LexStateP7TStringi(%struct.LexState* %13, %union.TString* %15, i32 1)
+ %16 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %17 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %18 = call %union.TString* @_Z14luaX_newstringP8LexStatePKcj(%struct.LexState* %17, i8* getelementptr inbounds ([11 x i8]* @.str24153, i32 0, i32 0), i32 10) ; [#uses=1]
+ call void @_Z12new_localvarP8LexStateP7TStringi(%struct.LexState* %16, %union.TString* %18, i32 2)
+ %19 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %20 = load %union.TString** %2, align 4 ; [#uses=1]
+ call void @_Z12new_localvarP8LexStateP7TStringi(%struct.LexState* %19, %union.TString* %20, i32 3)
+ %21 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9checknextP8LexStatei(%struct.LexState* %21, i32 61)
+ %22 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %23 = call i32 @_Z4exp1P8LexState(%struct.LexState* %22) ; [#uses=0]
+ %24 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9checknextP8LexStatei(%struct.LexState* %24, i32 44)
+ %25 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %26 = call i32 @_Z4exp1P8LexState(%struct.LexState* %25) ; [#uses=0]
+ %27 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %28 = call i32 @_Z8testnextP8LexStatei(%struct.LexState* %27, i32 44) ; [#uses=1]
+ %29 = icmp ne i32 %28, 0 ; [#uses=1]
+ br i1 %29, label %30, label %33
+
+; <label>:30 ; preds = %0
+ %31 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %32 = call i32 @_Z4exp1P8LexState(%struct.LexState* %31) ; [#uses=0]
+ br label %42
+
+; <label>:33 ; preds = %0
+ %34 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %35 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.FuncState* %35, i32 0, i32 9 ; [#uses=1]
+ %37 = load i32* %36, align 4 ; [#uses=1]
+ %38 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %39 = call i32 @_Z12luaK_numberKP9FuncStated(%struct.FuncState* %38, double 1.000000e+00) ; [#uses=1]
+ %40 = call i32 @_Z12luaK_codeABxP9FuncState6OpCodeij(%struct.FuncState* %34, i32 1, i32 %37, i32 %39) ; [#uses=0]
+ %41 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z16luaK_reserveregsP9FuncStatei(%struct.FuncState* %41, i32 1)
+ br label %42
+
+; <label>:42 ; preds = %33, %30
+ %43 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %44 = load i32* %base, align 4 ; [#uses=1]
+ %45 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z7forbodyP8LexStateiiii(%struct.LexState* %43, i32 %44, i32 %45, i32 1, i32 1)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z7forlistP8LexStateP7TString(%struct.LexState* %ls, %union.TString* %indexname) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=17]
+ %2 = alloca %union.TString*, align 4 ; [#uses=2]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=3]
+ %e = alloca %struct.expdesc, align 4 ; [#uses=2]
+ %nvars = alloca i32, align 4 ; [#uses=12]
+ %line = alloca i32, align 4 ; [#uses=2]
+ %base = alloca i32, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store %union.TString* %indexname, %union.TString** %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.LexState* %3, i32 0, i32 5 ; [#uses=1]
+ %5 = load %struct.FuncState** %4, align 4 ; [#uses=1]
+ store %struct.FuncState* %5, %struct.FuncState** %fs, align 4
+ store i32 0, i32* %nvars, align 4
+ %6 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.FuncState* %6, i32 0, i32 9 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ store i32 %8, i32* %base, align 4
+ %9 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %10 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %11 = call %union.TString* @_Z14luaX_newstringP8LexStatePKcj(%struct.LexState* %10, i8* getelementptr inbounds ([16 x i8]* @.str19148, i32 0, i32 0), i32 15) ; [#uses=1]
+ %12 = load i32* %nvars, align 4 ; [#uses=2]
+ %13 = add nsw i32 %12, 1 ; [#uses=1]
+ store i32 %13, i32* %nvars, align 4
+ call void @_Z12new_localvarP8LexStateP7TStringi(%struct.LexState* %9, %union.TString* %11, i32 %12)
+ %14 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %15 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %16 = call %union.TString* @_Z14luaX_newstringP8LexStatePKcj(%struct.LexState* %15, i8* getelementptr inbounds ([12 x i8]* @.str20149, i32 0, i32 0), i32 11) ; [#uses=1]
+ %17 = load i32* %nvars, align 4 ; [#uses=2]
+ %18 = add nsw i32 %17, 1 ; [#uses=1]
+ store i32 %18, i32* %nvars, align 4
+ call void @_Z12new_localvarP8LexStateP7TStringi(%struct.LexState* %14, %union.TString* %16, i32 %17)
+ %19 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %20 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %21 = call %union.TString* @_Z14luaX_newstringP8LexStatePKcj(%struct.LexState* %20, i8* getelementptr inbounds ([14 x i8]* @.str21150, i32 0, i32 0), i32 13) ; [#uses=1]
+ %22 = load i32* %nvars, align 4 ; [#uses=2]
+ %23 = add nsw i32 %22, 1 ; [#uses=1]
+ store i32 %23, i32* %nvars, align 4
+ call void @_Z12new_localvarP8LexStateP7TStringi(%struct.LexState* %19, %union.TString* %21, i32 %22)
+ %24 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %25 = load %union.TString** %2, align 4 ; [#uses=1]
+ %26 = load i32* %nvars, align 4 ; [#uses=2]
+ %27 = add nsw i32 %26, 1 ; [#uses=1]
+ store i32 %27, i32* %nvars, align 4
+ call void @_Z12new_localvarP8LexStateP7TStringi(%struct.LexState* %24, %union.TString* %25, i32 %26)
+ br label %28
+
+; <label>:28 ; preds = %32, %0
+ %29 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %30 = call i32 @_Z8testnextP8LexStatei(%struct.LexState* %29, i32 44) ; [#uses=1]
+ %31 = icmp ne i32 %30, 0 ; [#uses=1]
+ br i1 %31, label %32, label %38
+
+; <label>:32 ; preds = %28
+ %33 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %34 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %35 = call %union.TString* @_Z13str_checknameP8LexState(%struct.LexState* %34) ; [#uses=1]
+ %36 = load i32* %nvars, align 4 ; [#uses=2]
+ %37 = add nsw i32 %36, 1 ; [#uses=1]
+ store i32 %37, i32* %nvars, align 4
+ call void @_Z12new_localvarP8LexStateP7TStringi(%struct.LexState* %33, %union.TString* %35, i32 %36)
+ br label %28
+
+; <label>:38 ; preds = %28
+ %39 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9checknextP8LexStatei(%struct.LexState* %39, i32 267)
+ %40 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.LexState* %40, i32 0, i32 1 ; [#uses=1]
+ %42 = load i32* %41, align 4 ; [#uses=1]
+ store i32 %42, i32* %line, align 4
+ %43 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %44 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %45 = call i32 @_Z8explist1P8LexStateP7expdesc(%struct.LexState* %44, %struct.expdesc* %e) ; [#uses=1]
+ call void @_Z13adjust_assignP8LexStateiiP7expdesc(%struct.LexState* %43, i32 3, i32 %45, %struct.expdesc* %e)
+ %46 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z15luaK_checkstackP9FuncStatei(%struct.FuncState* %46, i32 3)
+ %47 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %48 = load i32* %base, align 4 ; [#uses=1]
+ %49 = load i32* %line, align 4 ; [#uses=1]
+ %50 = load i32* %nvars, align 4 ; [#uses=1]
+ %51 = sub nsw i32 %50, 3 ; [#uses=1]
+ call void @_Z7forbodyP8LexStateiiii(%struct.LexState* %47, i32 %48, i32 %49, i32 %51, i32 0)
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z7forbodyP8LexStateiiii(%struct.LexState* %ls, i32 %base, i32 %line, i32 %nvars, i32 %isnum) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=6]
+ %2 = alloca i32, align 4 ; [#uses=4]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca i32, align 4 ; [#uses=4]
+ %5 = alloca i32, align 4 ; [#uses=4]
+ %bl = alloca %struct.BlockCnt, align 4 ; [#uses=1]
+ %fs = alloca %struct.FuncState*, align 4 ; [#uses=12]
+ %prep = alloca i32, align 4 ; [#uses=3]
+ %endfor = alloca i32, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 %base, i32* %2, align 4
+ store i32 %line, i32* %3, align 4
+ store i32 %nvars, i32* %4, align 4
+ store i32 %isnum, i32* %5, align 4
+ %6 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.LexState* %6, i32 0, i32 5 ; [#uses=1]
+ %8 = load %struct.FuncState** %7, align 4 ; [#uses=1]
+ store %struct.FuncState* %8, %struct.FuncState** %fs, align 4
+ %9 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z15adjustlocalvarsP8LexStatei(%struct.LexState* %9, i32 3)
+ %10 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9checknextP8LexStatei(%struct.LexState* %10, i32 259)
+ %11 = load i32* %5, align 4 ; [#uses=1]
+ %12 = icmp ne i32 %11, 0 ; [#uses=1]
+ br i1 %12, label %13, label %17
+
+; <label>:13 ; preds = %0
+ %14 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %15 = load i32* %2, align 4 ; [#uses=1]
+ %16 = call i32 @_Z12luaK_codeABxP9FuncState6OpCodeij(%struct.FuncState* %14, i32 32, i32 %15, i32 131070) ; [#uses=1]
+ br label %20
+
+; <label>:17 ; preds = %0
+ %18 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %19 = call i32 @_Z9luaK_jumpP9FuncState(%struct.FuncState* %18) ; [#uses=1]
+ br label %20
+
+; <label>:20 ; preds = %17, %13
+ %21 = phi i32 [ %16, %13 ], [ %19, %17 ] ; [#uses=1]
+ store i32 %21, i32* %prep, align 4
+ %22 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z10enterblockP9FuncStateP8BlockCnth(%struct.FuncState* %22, %struct.BlockCnt* %bl, i8 zeroext 0)
+ %23 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %24 = load i32* %4, align 4 ; [#uses=1]
+ call void @_Z15adjustlocalvarsP8LexStatei(%struct.LexState* %23, i32 %24)
+ %25 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %26 = load i32* %4, align 4 ; [#uses=1]
+ call void @_Z16luaK_reserveregsP9FuncStatei(%struct.FuncState* %25, i32 %26)
+ %27 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z5blockP8LexState(%struct.LexState* %27)
+ %28 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ call void @_Z10leaveblockP9FuncState(%struct.FuncState* %28)
+ %29 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %30 = load i32* %prep, align 4 ; [#uses=1]
+ call void @_Z16luaK_patchtohereP9FuncStatei(%struct.FuncState* %29, i32 %30)
+ %31 = load i32* %5, align 4 ; [#uses=1]
+ %32 = icmp ne i32 %31, 0 ; [#uses=1]
+ br i1 %32, label %33, label %37
+
+; <label>:33 ; preds = %20
+ %34 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %35 = load i32* %2, align 4 ; [#uses=1]
+ %36 = call i32 @_Z12luaK_codeABxP9FuncState6OpCodeij(%struct.FuncState* %34, i32 31, i32 %35, i32 131070) ; [#uses=1]
+ br label %42
+
+; <label>:37 ; preds = %20
+ %38 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %39 = load i32* %2, align 4 ; [#uses=1]
+ %40 = load i32* %4, align 4 ; [#uses=1]
+ %41 = call i32 @_Z12luaK_codeABCP9FuncState6OpCodeiii(%struct.FuncState* %38, i32 33, i32 %39, i32 0, i32 %40) ; [#uses=1]
+ br label %42
+
+; <label>:42 ; preds = %37, %33
+ %43 = phi i32 [ %36, %33 ], [ %41, %37 ] ; [#uses=1]
+ store i32 %43, i32* %endfor, align 4
+ %44 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %45 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z12luaK_fixlineP9FuncStatei(%struct.FuncState* %44, i32 %45)
+ %46 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %47 = load i32* %5, align 4 ; [#uses=1]
+ %48 = icmp ne i32 %47, 0 ; [#uses=1]
+ br i1 %48, label %49, label %51
+
+; <label>:49 ; preds = %42
+ %50 = load i32* %endfor, align 4 ; [#uses=1]
+ br label %54
+
+; <label>:51 ; preds = %42
+ %52 = load %struct.FuncState** %fs, align 4 ; [#uses=1]
+ %53 = call i32 @_Z9luaK_jumpP9FuncState(%struct.FuncState* %52) ; [#uses=1]
+ br label %54
+
+; <label>:54 ; preds = %51, %49
+ %55 = phi i32 [ %50, %49 ], [ %53, %51 ] ; [#uses=1]
+ %56 = load i32* %prep, align 4 ; [#uses=1]
+ %57 = add nsw i32 %56, 1 ; [#uses=1]
+ call void @_Z14luaK_patchlistP9FuncStateii(%struct.FuncState* %46, i32 %55, i32 %57)
+ ret void
+}
+
+; [#uses=3]
+define internal i32 @_Z4exp1P8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=3]
+ %e = alloca %struct.expdesc, align 4 ; [#uses=3]
+ %k = alloca i32, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z4exprP8LexStateP7expdesc(%struct.LexState* %2, %struct.expdesc* %e)
+ %3 = getelementptr inbounds %struct.expdesc* %e, i32 0, i32 0 ; [#uses=1]
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ store i32 %4, i32* %k, align 4
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LexState* %5, i32 0, i32 5 ; [#uses=1]
+ %7 = load %struct.FuncState** %6, align 4 ; [#uses=1]
+ call void @_Z16luaK_exp2nextregP9FuncStateP7expdesc(%struct.FuncState* %7, %struct.expdesc* %e)
+ %8 = load i32* %k, align 4 ; [#uses=1]
+ ret i32 %8
+}
+
+; [#uses=2]
+define internal void @_Z14error_expectedP8LexStatei(%struct.LexState* %ls, i32 %token) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ store i32 %token, i32* %2, align 4
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.LexState* %4, i32 0, i32 6 ; [#uses=1]
+ %6 = load %struct.lua_State** %5, align 4 ; [#uses=1]
+ %7 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %8 = load i32* %2, align 4 ; [#uses=1]
+ %9 = call i8* @_Z14luaX_token2strP8LexStatei(%struct.LexState* %7, i32 %8) ; [#uses=1]
+ %10 = call i8* (%struct.lua_State*, i8*, ...)* @_Z16luaO_pushfstringP9lua_StatePKcz(%struct.lua_State* %6, i8* getelementptr inbounds ([14 x i8]* @.str26155, i32 0, i32 0), i8* %9) ; [#uses=1]
+ call void @_Z16luaX_syntaxerrorP8LexStatePKc(%struct.LexState* %3, i8* %10)
+ ret void
+}
+
+; [#uses=2]
+define internal i32 @_Z15test_then_blockP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=5]
+ %condexit = alloca i32, align 4 ; [#uses=2]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_nextP8LexState(%struct.LexState* %2)
+ %3 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %4 = call i32 @_Z4condP8LexState(%struct.LexState* %3) ; [#uses=1]
+ store i32 %4, i32* %condexit, align 4
+ %5 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z9checknextP8LexStatei(%struct.LexState* %5, i32 274)
+ %6 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ call void @_Z5blockP8LexState(%struct.LexState* %6)
+ %7 = load i32* %condexit, align 4 ; [#uses=1]
+ ret i32 %7
+}
+
+; [#uses=1]
+define internal void @_Z12anchor_tokenP8LexState(%struct.LexState* %ls) {
+ %1 = alloca %struct.LexState*, align 4 ; [#uses=5]
+ %ts = alloca %union.TString*, align 4 ; [#uses=3]
+ store %struct.LexState* %ls, %struct.LexState** %1, align 4
+ %2 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.LexState* %2, i32 0, i32 3 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.Token* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ %6 = icmp eq i32 %5, 285 ; [#uses=1]
+ br i1 %6, label %13, label %7
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.LexState* %8, i32 0, i32 3 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.Token* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = load i32* %10, align 4 ; [#uses=1]
+ %12 = icmp eq i32 %11, 286 ; [#uses=1]
+ br i1 %12, label %13, label %29
+
+; <label>:13 ; preds = %7, %0
+ %14 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.LexState* %14, i32 0, i32 3 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.Token* %15, i32 0, i32 1 ; [#uses=1]
+ %17 = getelementptr inbounds %union.anon* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = bitcast double* %17 to %union.TString** ; [#uses=1]
+ %19 = load %union.TString** %18, align 4 ; [#uses=1]
+ store %union.TString* %19, %union.TString** %ts, align 4
+ %20 = load %struct.LexState** %1, align 4 ; [#uses=1]
+ %21 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %union.TString* %21, i32 1 ; [#uses=1]
+ %23 = bitcast %union.TString* %22 to i8* ; [#uses=1]
+ %24 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %union.TString* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.anon* %25, i32 0, i32 5 ; [#uses=1]
+ %27 = load i32* %26, align 4 ; [#uses=1]
+ %28 = call %union.TString* @_Z14luaX_newstringP8LexStatePKcj(%struct.LexState* %20, i8* %23, i32 %27) ; [#uses=0]
+ br label %29
+
+; <label>:29 ; preds = %13, %7
+ ret void
+}
+
+; [#uses=1]
+define hidden %struct.lua_State* @_Z14luaE_newthreadP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %L1 = alloca %struct.lua_State*, align 4 ; [#uses=11]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %2, i8* null, i32 0, i32 112) ; [#uses=1]
+ %4 = getelementptr inbounds i8* %3, i32 0 ; [#uses=1]
+ %5 = bitcast i8* %4 to %struct.lua_State* ; [#uses=1]
+ store %struct.lua_State* %5, %struct.lua_State** %L1, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %8 = bitcast %struct.lua_State* %7 to %union.GCObject* ; [#uses=1]
+ call void @_Z9luaC_linkP9lua_StateP8GCObjecth(%struct.lua_State* %6, %union.GCObject* %8, i8 zeroext 8)
+ %9 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_State* %10, i32 0, i32 6 ; [#uses=1]
+ %12 = load %struct.global_State** %11, align 4 ; [#uses=1]
+ call void @_Z13preinit_stateP9lua_StateP12global_State(%struct.lua_State* %9, %struct.global_State* %12)
+ %13 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10stack_initP9lua_StateS0_(%struct.lua_State* %13, %struct.lua_State* %14)
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_State* %15, i32 0, i32 22 ; [#uses=1]
+ store %struct.lua_TValue* %16, %struct.lua_TValue** %o2, align 4
+ %17 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_State* %17, i32 0, i32 22 ; [#uses=1]
+ store %struct.lua_TValue* %18, %struct.lua_TValue** %o1, align 4
+ %19 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_TValue* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_TValue* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = bitcast %union.anon* %20 to i8* ; [#uses=1]
+ %24 = bitcast %union.anon* %22 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %23, i8* %24, i32 8, i32 4, i1 false)
+ %25 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_TValue* %25, i32 0, i32 1 ; [#uses=1]
+ %27 = load i32* %26, align 4 ; [#uses=1]
+ %28 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_TValue* %28, i32 0, i32 1 ; [#uses=1]
+ store i32 %27, i32* %29, align 4
+ %30 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_State* %30, i32 0, i32 17 ; [#uses=1]
+ %32 = load i8* %31, align 1 ; [#uses=1]
+ %33 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_State* %33, i32 0, i32 17 ; [#uses=1]
+ store i8 %32, i8* %34, align 1
+ %35 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.lua_State* %35, i32 0, i32 19 ; [#uses=1]
+ %37 = load i32* %36, align 4 ; [#uses=1]
+ %38 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.lua_State* %38, i32 0, i32 19 ; [#uses=1]
+ store i32 %37, i32* %39, align 4
+ %40 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.lua_State* %40, i32 0, i32 21 ; [#uses=1]
+ %42 = load void (%struct.lua_State*, %struct.lua_Debug*)** %41, align 4 ; [#uses=1]
+ %43 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.lua_State* %43, i32 0, i32 21 ; [#uses=1]
+ store void (%struct.lua_State*, %struct.lua_Debug*)* %42, void (%struct.lua_State*, %struct.lua_Debug*)** %44, align 4
+ %45 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.lua_State* %45, i32 0, i32 19 ; [#uses=1]
+ %47 = load i32* %46, align 4 ; [#uses=1]
+ %48 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.lua_State* %48, i32 0, i32 20 ; [#uses=1]
+ store i32 %47, i32* %49, align 4
+ %50 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ ret %struct.lua_State* %50
+}
+
+; [#uses=2]
+define internal void @_Z13preinit_stateP9lua_StateP12global_State(%struct.lua_State* %L, %struct.global_State* %g) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=21]
+ %2 = alloca %struct.global_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.global_State* %g, %struct.global_State** %2, align 4
+ %3 = load %struct.global_State** %2, align 4 ; [#uses=1]
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 6 ; [#uses=1]
+ store %struct.global_State* %3, %struct.global_State** %5, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 10 ; [#uses=1]
+ store %struct.lua_TValue* null, %struct.lua_TValue** %7, align 4
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_State* %8, i32 0, i32 13 ; [#uses=1]
+ store i32 0, i32* %9, align 4
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_State* %10, i32 0, i32 26 ; [#uses=1]
+ store %struct.lua_longjmp* null, %struct.lua_longjmp** %11, align 4
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.lua_State* %12, i32 0, i32 21 ; [#uses=1]
+ store void (%struct.lua_State*, %struct.lua_Debug*)* null, void (%struct.lua_State*, %struct.lua_Debug*)** %13, align 4
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_State* %14, i32 0, i32 17 ; [#uses=1]
+ store i8 0, i8* %15, align 1
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_State* %16, i32 0, i32 19 ; [#uses=1]
+ store i32 0, i32* %17, align 4
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_State* %18, i32 0, i32 18 ; [#uses=1]
+ store i8 1, i8* %19, align 1
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_State* %20, i32 0, i32 19 ; [#uses=1]
+ %22 = load i32* %21, align 4 ; [#uses=1]
+ %23 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_State* %23, i32 0, i32 20 ; [#uses=1]
+ store i32 %22, i32* %24, align 4
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_State* %25, i32 0, i32 24 ; [#uses=1]
+ store %union.GCObject* null, %union.GCObject** %26, align 4
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_State* %27, i32 0, i32 14 ; [#uses=1]
+ store i32 0, i32* %28, align 4
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_State* %29, i32 0, i32 16 ; [#uses=1]
+ store i16 0, i16* %30, align 2
+ %31 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_State* %31, i32 0, i32 15 ; [#uses=1]
+ store i16 0, i16* %32, align 2
+ %33 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_State* %33, i32 0, i32 3 ; [#uses=1]
+ store i8 0, i8* %34, align 1
+ %35 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.lua_State* %35, i32 0, i32 7 ; [#uses=1]
+ store %struct.CallInfo* null, %struct.CallInfo** %36, align 4
+ %37 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.lua_State* %37, i32 0, i32 12 ; [#uses=1]
+ store %struct.CallInfo* null, %struct.CallInfo** %38, align 4
+ %39 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.lua_State* %39, i32 0, i32 8 ; [#uses=1]
+ store i32* null, i32** %40, align 4
+ %41 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.lua_State* %41, i32 0, i32 27 ; [#uses=1]
+ store i32 0, i32* %42, align 4
+ %43 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.lua_State* %43, i32 0, i32 22 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.lua_TValue* %44, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %45, align 4
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z10stack_initP9lua_StateS0_(%struct.lua_State* %L1, %struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=23]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L1, %struct.lua_State** %1, align 4
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %3, i8* null, i32 0, i32 192) ; [#uses=1]
+ %5 = bitcast i8* %4 to %struct.CallInfo* ; [#uses=1]
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 12 ; [#uses=1]
+ store %struct.CallInfo* %5, %struct.CallInfo** %7, align 4
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_State* %8, i32 0, i32 12 ; [#uses=1]
+ %10 = load %struct.CallInfo** %9, align 4 ; [#uses=1]
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_State* %11, i32 0, i32 7 ; [#uses=1]
+ store %struct.CallInfo* %10, %struct.CallInfo** %12, align 4
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_State* %13, i32 0, i32 14 ; [#uses=1]
+ store i32 8, i32* %14, align 4
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_State* %15, i32 0, i32 12 ; [#uses=1]
+ %17 = load %struct.CallInfo** %16, align 4 ; [#uses=1]
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_State* %18, i32 0, i32 14 ; [#uses=1]
+ %20 = load i32* %19, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.CallInfo* %17, i32 %20 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.CallInfo* %21, i32 -1 ; [#uses=1]
+ %23 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_State* %23, i32 0, i32 11 ; [#uses=1]
+ store %struct.CallInfo* %22, %struct.CallInfo** %24, align 4
+ %25 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %26 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %25, i8* null, i32 0, i32 540) ; [#uses=1]
+ %27 = bitcast i8* %26 to %struct.lua_TValue* ; [#uses=1]
+ %28 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_State* %28, i32 0, i32 10 ; [#uses=1]
+ store %struct.lua_TValue* %27, %struct.lua_TValue** %29, align 4
+ %30 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_State* %30, i32 0, i32 13 ; [#uses=1]
+ store i32 45, i32* %31, align 4
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_State* %32, i32 0, i32 10 ; [#uses=1]
+ %34 = load %struct.lua_TValue** %33, align 4 ; [#uses=1]
+ %35 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.lua_State* %35, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %34, %struct.lua_TValue** %36, align 4
+ %37 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.lua_State* %37, i32 0, i32 10 ; [#uses=1]
+ %39 = load %struct.lua_TValue** %38, align 4 ; [#uses=1]
+ %40 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.lua_State* %40, i32 0, i32 13 ; [#uses=1]
+ %42 = load i32* %41, align 4 ; [#uses=1]
+ %43 = sub nsw i32 %42, 5 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.lua_TValue* %39, i32 %43 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.lua_TValue* %44, i32 -1 ; [#uses=1]
+ %46 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.lua_State* %46, i32 0, i32 9 ; [#uses=1]
+ store %struct.lua_TValue* %45, %struct.lua_TValue** %47, align 4
+ %48 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.lua_State* %48, i32 0, i32 4 ; [#uses=1]
+ %50 = load %struct.lua_TValue** %49, align 4 ; [#uses=1]
+ %51 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.lua_State* %51, i32 0, i32 7 ; [#uses=1]
+ %53 = load %struct.CallInfo** %52, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.CallInfo* %53, i32 0, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %50, %struct.lua_TValue** %54, align 4
+ %55 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.lua_State* %55, i32 0, i32 4 ; [#uses=2]
+ %57 = load %struct.lua_TValue** %56, align 4 ; [#uses=2]
+ %58 = getelementptr inbounds %struct.lua_TValue* %57, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %58, %struct.lua_TValue** %56, align 4
+ %59 = getelementptr inbounds %struct.lua_TValue* %57, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %59, align 4
+ %60 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.lua_State* %60, i32 0, i32 4 ; [#uses=1]
+ %62 = load %struct.lua_TValue** %61, align 4 ; [#uses=2]
+ %63 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.lua_State* %63, i32 0, i32 7 ; [#uses=1]
+ %65 = load %struct.CallInfo** %64, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.CallInfo* %65, i32 0, i32 0 ; [#uses=1]
+ store %struct.lua_TValue* %62, %struct.lua_TValue** %66, align 4
+ %67 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.lua_State* %67, i32 0, i32 5 ; [#uses=1]
+ store %struct.lua_TValue* %62, %struct.lua_TValue** %68, align 4
+ %69 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.lua_State* %69, i32 0, i32 4 ; [#uses=1]
+ %71 = load %struct.lua_TValue** %70, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %struct.lua_TValue* %71, i32 20 ; [#uses=1]
+ %73 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.lua_State* %73, i32 0, i32 7 ; [#uses=1]
+ %75 = load %struct.CallInfo** %74, align 4 ; [#uses=1]
+ %76 = getelementptr inbounds %struct.CallInfo* %75, i32 0, i32 2 ; [#uses=1]
+ store %struct.lua_TValue* %72, %struct.lua_TValue** %76, align 4
+ ret void
+}
+
+; [#uses=1]
+define hidden void @_Z15luaE_freethreadP9lua_StateS0_(%struct.lua_State* %L, %struct.lua_State* %L1) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_State* %L1, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 10 ; [#uses=1]
+ %6 = load %struct.lua_TValue** %5, align 4 ; [#uses=1]
+ call void @_Z10luaF_closeP9lua_StateP10lua_TValue(%struct.lua_State* %3, %struct.lua_TValue* %6)
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z9freestackP9lua_StateS0_(%struct.lua_State* %7, %struct.lua_State* %8)
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %11 = bitcast %struct.lua_State* %10 to i8* ; [#uses=1]
+ %12 = getelementptr inbounds i8* %11, i32 0 ; [#uses=1]
+ %13 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %9, i8* %12, i32 112, i32 0) ; [#uses=0]
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z9freestackP9lua_StateS0_(%struct.lua_State* %L, %struct.lua_State* %L1) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_State* %L1, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 12 ; [#uses=1]
+ %6 = load %struct.CallInfo** %5, align 4 ; [#uses=1]
+ %7 = bitcast %struct.CallInfo* %6 to i8* ; [#uses=1]
+ %8 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_State* %8, i32 0, i32 14 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ %11 = mul i32 %10, 24 ; [#uses=1]
+ %12 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %3, i8* %7, i32 %11, i32 0) ; [#uses=0]
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_State* %14, i32 0, i32 10 ; [#uses=1]
+ %16 = load %struct.lua_TValue** %15, align 4 ; [#uses=1]
+ %17 = bitcast %struct.lua_TValue* %16 to i8* ; [#uses=1]
+ %18 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_State* %18, i32 0, i32 13 ; [#uses=1]
+ %20 = load i32* %19, align 4 ; [#uses=1]
+ %21 = mul i32 %20, 12 ; [#uses=1]
+ %22 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %13, i8* %17, i32 %21, i32 0) ; [#uses=0]
+ ret void
+}
+
+; [#uses=1]
+define %struct.lua_State* @_Z12lua_newstatePFPvS_S_jjES_(i8* (i8*, i8*, i32, i32)* %f, i8* %ud) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i8* (i8*, i8*, i32, i32)*, align 4 ; [#uses=3]
+ %3 = alloca i8*, align 4 ; [#uses=3]
+ %i = alloca i32, align 4 ; [#uses=5]
+ %L = alloca %struct.lua_State*, align 4 ; [#uses=14]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=32]
+ %l = alloca i8*, align 4 ; [#uses=3]
+ store i8* (i8*, i8*, i32, i32)* %f, i8* (i8*, i8*, i32, i32)** %2, align 4
+ store i8* %ud, i8** %3, align 4
+ %4 = load i8* (i8*, i8*, i32, i32)** %2, align 4 ; [#uses=1]
+ %5 = load i8** %3, align 4 ; [#uses=1]
+ %6 = call i8* %4(i8* %5, i8* null, i32 0, i32 348) ; [#uses=1]
+ store i8* %6, i8** %l, align 4
+ %7 = load i8** %l, align 4 ; [#uses=1]
+ %8 = icmp eq i8* %7, null ; [#uses=1]
+ br i1 %8, label %9, label %10
+
+; <label>:9 ; preds = %0
+ store %struct.lua_State* null, %struct.lua_State** %1
+ br label %136
+
+; <label>:10 ; preds = %0
+ %11 = load i8** %l, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds i8* %11, i32 0 ; [#uses=1]
+ %13 = bitcast i8* %12 to %struct.lua_State* ; [#uses=1]
+ store %struct.lua_State* %13, %struct.lua_State** %L, align 4
+ %14 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %15 = bitcast %struct.lua_State* %14 to %struct.LG* ; [#uses=1]
+ %16 = getelementptr inbounds %struct.LG* %15, i32 0, i32 1 ; [#uses=1]
+ store %struct.global_State* %16, %struct.global_State** %g, align 4
+ %17 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_State* %17, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject* null, %union.GCObject** %18, align 4
+ %19 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_State* %19, i32 0, i32 1 ; [#uses=1]
+ store i8 8, i8* %20, align 1
+ %21 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.global_State* %21, i32 0, i32 3 ; [#uses=1]
+ store i8 33, i8* %22, align 1
+ %23 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.global_State* %23, i32 0, i32 3 ; [#uses=1]
+ %25 = load i8* %24, align 1 ; [#uses=1]
+ %26 = zext i8 %25 to i32 ; [#uses=1]
+ %27 = and i32 %26, 3 ; [#uses=1]
+ %28 = trunc i32 %27 to i8 ; [#uses=1]
+ %29 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_State* %29, i32 0, i32 2 ; [#uses=1]
+ store i8 %28, i8* %30, align 1
+ %31 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_State* %31, i32 0, i32 2 ; [#uses=2]
+ %33 = load i8* %32, align 1 ; [#uses=1]
+ %34 = zext i8 %33 to i32 ; [#uses=1]
+ %35 = or i32 %34, 96 ; [#uses=1]
+ %36 = trunc i32 %35 to i8 ; [#uses=1]
+ store i8 %36, i8* %32, align 1
+ %37 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %38 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ call void @_Z13preinit_stateP9lua_StateP12global_State(%struct.lua_State* %37, %struct.global_State* %38)
+ %39 = load i8* (i8*, i8*, i32, i32)** %2, align 4 ; [#uses=1]
+ %40 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.global_State* %40, i32 0, i32 1 ; [#uses=1]
+ store i8* (i8*, i8*, i32, i32)* %39, i8* (i8*, i8*, i32, i32)** %41, align 4
+ %42 = load i8** %3, align 4 ; [#uses=1]
+ %43 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.global_State* %43, i32 0, i32 2 ; [#uses=1]
+ store i8* %42, i8** %44, align 4
+ %45 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %46 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.global_State* %46, i32 0, i32 21 ; [#uses=1]
+ store %struct.lua_State* %45, %struct.lua_State** %47, align 4
+ %48 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.global_State* %48, i32 0, i32 22 ; [#uses=1]
+ %50 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.global_State* %50, i32 0, i32 22 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.UpVal* %51, i32 0, i32 4 ; [#uses=1]
+ %53 = getelementptr inbounds %0* %52, i32 0, i32 0 ; [#uses=1]
+ %54 = bitcast %struct.lua_TValue* %53 to %13* ; [#uses=1]
+ %55 = getelementptr inbounds %13* %54, i32 0, i32 0 ; [#uses=1]
+ store %struct.UpVal* %49, %struct.UpVal** %55, align 4
+ %56 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.global_State* %56, i32 0, i32 22 ; [#uses=1]
+ %58 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.global_State* %58, i32 0, i32 22 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.UpVal* %59, i32 0, i32 4 ; [#uses=1]
+ %61 = getelementptr inbounds %0* %60, i32 0, i32 0 ; [#uses=1]
+ %62 = bitcast %struct.lua_TValue* %61 to %13* ; [#uses=1]
+ %63 = getelementptr inbounds %13* %62, i32 0, i32 1 ; [#uses=1]
+ store %struct.UpVal* %57, %struct.UpVal** %63, align 4
+ %64 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %struct.global_State* %64, i32 0, i32 13 ; [#uses=1]
+ store i32 0, i32* %65, align 4
+ %66 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.global_State* %66, i32 0, i32 0 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.stringtable* %67, i32 0, i32 2 ; [#uses=1]
+ store i32 0, i32* %68, align 4
+ %69 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.global_State* %69, i32 0, i32 0 ; [#uses=1]
+ %71 = getelementptr inbounds %struct.stringtable* %70, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %71, align 4
+ %72 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.global_State* %72, i32 0, i32 0 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.stringtable* %73, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject** null, %union.GCObject*** %74, align 4
+ %75 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %76 = getelementptr inbounds %struct.lua_State* %75, i32 0, i32 6 ; [#uses=1]
+ %77 = load %struct.global_State** %76, align 4 ; [#uses=1]
+ %78 = getelementptr inbounds %struct.global_State* %77, i32 0, i32 20 ; [#uses=1]
+ %79 = getelementptr inbounds %struct.lua_TValue* %78, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %79, align 4
+ %80 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.global_State* %80, i32 0, i32 12 ; [#uses=1]
+ %82 = getelementptr inbounds %struct.Mbuffer* %81, i32 0, i32 0 ; [#uses=1]
+ store i8* null, i8** %82, align 4
+ %83 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %84 = getelementptr inbounds %struct.global_State* %83, i32 0, i32 12 ; [#uses=1]
+ %85 = getelementptr inbounds %struct.Mbuffer* %84, i32 0, i32 2 ; [#uses=1]
+ store i32 0, i32* %85, align 4
+ %86 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %87 = getelementptr inbounds %struct.global_State* %86, i32 0, i32 19 ; [#uses=1]
+ store i32 (%struct.lua_State*)* null, i32 (%struct.lua_State*)** %87, align 4
+ %88 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %89 = getelementptr inbounds %struct.global_State* %88, i32 0, i32 4 ; [#uses=1]
+ store i8 0, i8* %89, align 1
+ %90 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %91 = bitcast %struct.lua_State* %90 to %union.GCObject* ; [#uses=1]
+ %92 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %93 = getelementptr inbounds %struct.global_State* %92, i32 0, i32 6 ; [#uses=1]
+ store %union.GCObject* %91, %union.GCObject** %93, align 4
+ %94 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %95 = getelementptr inbounds %struct.global_State* %94, i32 0, i32 5 ; [#uses=1]
+ store i32 0, i32* %95, align 4
+ %96 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %97 = getelementptr inbounds %struct.global_State* %96, i32 0, i32 6 ; [#uses=1]
+ %98 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %99 = getelementptr inbounds %struct.global_State* %98, i32 0, i32 7 ; [#uses=1]
+ store %union.GCObject** %97, %union.GCObject*** %99, align 4
+ %100 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %101 = getelementptr inbounds %struct.global_State* %100, i32 0, i32 8 ; [#uses=1]
+ store %union.GCObject* null, %union.GCObject** %101, align 4
+ %102 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %103 = getelementptr inbounds %struct.global_State* %102, i32 0, i32 9 ; [#uses=1]
+ store %union.GCObject* null, %union.GCObject** %103, align 4
+ %104 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %105 = getelementptr inbounds %struct.global_State* %104, i32 0, i32 10 ; [#uses=1]
+ store %union.GCObject* null, %union.GCObject** %105, align 4
+ %106 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %107 = getelementptr inbounds %struct.global_State* %106, i32 0, i32 11 ; [#uses=1]
+ store %union.GCObject* null, %union.GCObject** %107, align 4
+ %108 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %109 = getelementptr inbounds %struct.global_State* %108, i32 0, i32 14 ; [#uses=1]
+ store i32 348, i32* %109, align 4
+ %110 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %111 = getelementptr inbounds %struct.global_State* %110, i32 0, i32 17 ; [#uses=1]
+ store i32 200, i32* %111, align 4
+ %112 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %113 = getelementptr inbounds %struct.global_State* %112, i32 0, i32 18 ; [#uses=1]
+ store i32 200, i32* %113, align 4
+ %114 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %115 = getelementptr inbounds %struct.global_State* %114, i32 0, i32 16 ; [#uses=1]
+ store i32 0, i32* %115, align 4
+ store i32 0, i32* %i, align 4
+ br label %116
+
+; <label>:116 ; preds = %124, %10
+ %117 = load i32* %i, align 4 ; [#uses=1]
+ %118 = icmp slt i32 %117, 9 ; [#uses=1]
+ br i1 %118, label %119, label %127
+
+; <label>:119 ; preds = %116
+ %120 = load i32* %i, align 4 ; [#uses=1]
+ %121 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %122 = getelementptr inbounds %struct.global_State* %121, i32 0, i32 23 ; [#uses=1]
+ %123 = getelementptr inbounds [9 x %struct.Table*]* %122, i32 0, i32 %120 ; [#uses=1]
+ store %struct.Table* null, %struct.Table** %123
+ br label %124
+
+; <label>:124 ; preds = %119
+ %125 = load i32* %i, align 4 ; [#uses=1]
+ %126 = add nsw i32 %125, 1 ; [#uses=1]
+ store i32 %126, i32* %i, align 4
+ br label %116
+
+; <label>:127 ; preds = %116
+ %128 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %129 = call i32 @_Z20luaD_rawrunprotectedP9lua_StatePFvS0_PvES1_(%struct.lua_State* %128, void (%struct.lua_State*, i8*)* @_Z9f_luaopenP9lua_StatePv, i8* null) ; [#uses=1]
+ %130 = icmp ne i32 %129, 0 ; [#uses=1]
+ br i1 %130, label %131, label %133
+
+; <label>:131 ; preds = %127
+ %132 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ call void @_Z11close_stateP9lua_State(%struct.lua_State* %132)
+ store %struct.lua_State* null, %struct.lua_State** %L, align 4
+ br label %134
+
+; <label>:133 ; preds = %127
+ br label %134
+
+; <label>:134 ; preds = %133, %131
+ %135 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ store %struct.lua_State* %135, %struct.lua_State** %1
+ br label %136
+
+; <label>:136 ; preds = %134, %9
+ %137 = load %struct.lua_State** %1 ; [#uses=1]
+ ret %struct.lua_State* %137
+}
+
+; [#uses=1]
+define internal void @_Z9f_luaopenP9lua_StatePv(%struct.lua_State* %L, i8* %ud) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=12]
+ %2 = alloca i8*, align 4 ; [#uses=1]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=3]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %ud, i8** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 6 ; [#uses=1]
+ %5 = load %struct.global_State** %4, align 4 ; [#uses=1]
+ store %struct.global_State* %5, %struct.global_State** %g, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10stack_initP9lua_StateS0_(%struct.lua_State* %6, %struct.lua_State* %7)
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_State* %8, i32 0, i32 22 ; [#uses=1]
+ store %struct.lua_TValue* %9, %struct.lua_TValue** %i_o, align 4
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = call %struct.Table* @_Z8luaH_newP9lua_Stateii(%struct.lua_State* %10, i32 0, i32 2) ; [#uses=1]
+ %12 = bitcast %struct.Table* %11 to %union.GCObject* ; [#uses=1]
+ %13 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_TValue* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = getelementptr inbounds %union.anon* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = bitcast double* %15 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %12, %union.GCObject** %16, align 4
+ %17 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_TValue* %17, i32 0, i32 1 ; [#uses=1]
+ store i32 5, i32* %18, align 4
+ %19 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_State* %19, i32 0, i32 6 ; [#uses=1]
+ %21 = load %struct.global_State** %20, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.global_State* %21, i32 0, i32 20 ; [#uses=1]
+ store %struct.lua_TValue* %22, %struct.lua_TValue** %i_o1, align 4
+ %23 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %24 = call %struct.Table* @_Z8luaH_newP9lua_Stateii(%struct.lua_State* %23, i32 0, i32 2) ; [#uses=1]
+ %25 = bitcast %struct.Table* %24 to %union.GCObject* ; [#uses=1]
+ %26 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_TValue* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = getelementptr inbounds %union.anon* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = bitcast double* %28 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %25, %union.GCObject** %29, align 4
+ %30 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_TValue* %30, i32 0, i32 1 ; [#uses=1]
+ store i32 5, i32* %31, align 4
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11luaS_resizeP9lua_Statei(%struct.lua_State* %32, i32 32)
+ %33 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9luaT_initP9lua_State(%struct.lua_State* %33)
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9luaX_initP9lua_State(%struct.lua_State* %34)
+ %35 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %36 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %35, i8* getelementptr inbounds ([18 x i8]* @.str158, i32 0, i32 0), i32 17) ; [#uses=1]
+ %37 = getelementptr inbounds %union.TString* %36, i32 0, i32 0 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.anon* %37, i32 0, i32 2 ; [#uses=2]
+ %39 = load i8* %38, align 1 ; [#uses=1]
+ %40 = zext i8 %39 to i32 ; [#uses=1]
+ %41 = or i32 %40, 32 ; [#uses=1]
+ %42 = trunc i32 %41 to i8 ; [#uses=1]
+ store i8 %42, i8* %38, align 1
+ %43 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.global_State* %43, i32 0, i32 14 ; [#uses=1]
+ %45 = load i32* %44, align 4 ; [#uses=1]
+ %46 = mul i32 4, %45 ; [#uses=1]
+ %47 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.global_State* %47, i32 0, i32 13 ; [#uses=1]
+ store i32 %46, i32* %48, align 4
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z11close_stateP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=12]
+ %g = alloca %struct.global_State*, align 4 ; [#uses=7]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 6 ; [#uses=1]
+ %4 = load %struct.global_State** %3, align 4 ; [#uses=1]
+ store %struct.global_State* %4, %struct.global_State** %g, align 4
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 10 ; [#uses=1]
+ %8 = load %struct.lua_TValue** %7, align 4 ; [#uses=1]
+ call void @_Z10luaF_closeP9lua_StateP10lua_TValue(%struct.lua_State* %5, %struct.lua_TValue* %8)
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12luaC_freeallP9lua_State(%struct.lua_State* %9)
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_State* %11, i32 0, i32 6 ; [#uses=1]
+ %13 = load %struct.global_State** %12, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.global_State* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.stringtable* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = load %union.GCObject*** %15, align 4 ; [#uses=1]
+ %17 = bitcast %union.GCObject** %16 to i8* ; [#uses=1]
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_State* %18, i32 0, i32 6 ; [#uses=1]
+ %20 = load %struct.global_State** %19, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.global_State* %20, i32 0, i32 0 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.stringtable* %21, i32 0, i32 2 ; [#uses=1]
+ %23 = load i32* %22, align 4 ; [#uses=1]
+ %24 = mul i32 %23, 4 ; [#uses=1]
+ %25 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %10, i8* %17, i32 %24, i32 0) ; [#uses=0]
+ %26 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %27 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.global_State* %27, i32 0, i32 12 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.Mbuffer* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = load i8** %29, align 4 ; [#uses=1]
+ %31 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.global_State* %31, i32 0, i32 12 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.Mbuffer* %32, i32 0, i32 2 ; [#uses=1]
+ %34 = load i32* %33, align 4 ; [#uses=1]
+ %35 = mul i32 %34, 1 ; [#uses=1]
+ %36 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %26, i8* %30, i32 %35, i32 0) ; [#uses=1]
+ %37 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.global_State* %37, i32 0, i32 12 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.Mbuffer* %38, i32 0, i32 0 ; [#uses=1]
+ store i8* %36, i8** %39, align 4
+ %40 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.global_State* %40, i32 0, i32 12 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.Mbuffer* %41, i32 0, i32 2 ; [#uses=1]
+ store i32 0, i32* %42, align 4
+ %43 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %44 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9freestackP9lua_StateS0_(%struct.lua_State* %43, %struct.lua_State* %44)
+ %45 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.global_State* %45, i32 0, i32 1 ; [#uses=1]
+ %47 = load i8* (i8*, i8*, i32, i32)** %46, align 4 ; [#uses=1]
+ %48 = load %struct.global_State** %g, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.global_State* %48, i32 0, i32 2 ; [#uses=1]
+ %50 = load i8** %49, align 4 ; [#uses=1]
+ %51 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %52 = bitcast %struct.lua_State* %51 to i8* ; [#uses=1]
+ %53 = getelementptr inbounds i8* %52, i32 0 ; [#uses=1]
+ %54 = call i8* %47(i8* %50, i8* %53, i32 348, i32 0) ; [#uses=0]
+ ret void
+}
+
+; [#uses=1]
+define void @_Z9lua_closeP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=16]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.lua_State* %2, i32 0, i32 6 ; [#uses=1]
+ %4 = load %struct.global_State** %3, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.global_State* %4, i32 0, i32 21 ; [#uses=1]
+ %6 = load %struct.lua_State** %5, align 4 ; [#uses=1]
+ store %struct.lua_State* %6, %struct.lua_State** %1, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_State* %8, i32 0, i32 10 ; [#uses=1]
+ %10 = load %struct.lua_TValue** %9, align 4 ; [#uses=1]
+ call void @_Z10luaF_closeP9lua_StateP10lua_TValue(%struct.lua_State* %7, %struct.lua_TValue* %10)
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = call i32 @_Z18luaC_separateudataP9lua_Statei(%struct.lua_State* %11, i32 1) ; [#uses=0]
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_State* %13, i32 0, i32 27 ; [#uses=1]
+ store i32 0, i32* %14, align 4
+ br label %15
+
+; <label>:15 ; preds = %34, %0
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_State* %16, i32 0, i32 12 ; [#uses=1]
+ %18 = load %struct.CallInfo** %17, align 4 ; [#uses=1]
+ %19 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_State* %19, i32 0, i32 7 ; [#uses=1]
+ store %struct.CallInfo* %18, %struct.CallInfo** %20, align 4
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_State* %21, i32 0, i32 7 ; [#uses=1]
+ %23 = load %struct.CallInfo** %22, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.CallInfo* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = load %struct.lua_TValue** %24, align 4 ; [#uses=2]
+ %26 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_State* %26, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %25, %struct.lua_TValue** %27, align 4
+ %28 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_State* %28, i32 0, i32 5 ; [#uses=1]
+ store %struct.lua_TValue* %25, %struct.lua_TValue** %29, align 4
+ %30 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_State* %30, i32 0, i32 16 ; [#uses=1]
+ store i16 0, i16* %31, align 2
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_State* %32, i32 0, i32 15 ; [#uses=1]
+ store i16 0, i16* %33, align 2
+ br label %34
+
+; <label>:34 ; preds = %15
+ %35 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %36 = call i32 @_Z20luaD_rawrunprotectedP9lua_StatePFvS0_PvES1_(%struct.lua_State* %35, void (%struct.lua_State*, i8*)* @_Z11callallgcTMP9lua_StatePv, i8* null) ; [#uses=1]
+ %37 = icmp ne i32 %36, 0 ; [#uses=1]
+ br i1 %37, label %15, label %38
+
+; <label>:38 ; preds = %34
+ %39 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11close_stateP9lua_State(%struct.lua_State* %39)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z11callallgcTMP9lua_StatePv(%struct.lua_State* %L, i8* %ud) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca i8*, align 4 ; [#uses=1]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %ud, i8** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaC_callGCTMP9lua_State(%struct.lua_State* %3)
+ ret void
+}
+
+; [#uses=3]
+define hidden void @_Z11luaS_resizeP9lua_Statei(%struct.lua_State* %L, i32 %newsize) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %2 = alloca i32, align 4 ; [#uses=6]
+ %newhash = alloca %union.GCObject**, align 4 ; [#uses=5]
+ %tb = alloca %struct.stringtable*, align 4 ; [#uses=7]
+ %i = alloca i32, align 4 ; [#uses=10]
+ %p = alloca %union.GCObject*, align 4 ; [#uses=7]
+ %next = alloca %union.GCObject*, align 4 ; [#uses=2]
+ %h = alloca i32, align 4 ; [#uses=2]
+ %h1 = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %newsize, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 6 ; [#uses=1]
+ %5 = load %struct.global_State** %4, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.global_State* %5, i32 0, i32 4 ; [#uses=1]
+ %7 = load i8* %6, align 1 ; [#uses=1]
+ %8 = zext i8 %7 to i32 ; [#uses=1]
+ %9 = icmp eq i32 %8, 2 ; [#uses=1]
+ br i1 %9, label %10, label %11
+
+; <label>:10 ; preds = %0
+ br label %108
+
+; <label>:11 ; preds = %0
+ %12 = load i32* %2, align 4 ; [#uses=1]
+ %13 = add nsw i32 %12, 1 ; [#uses=1]
+ %14 = icmp ule i32 %13, 1073741823 ; [#uses=1]
+ br i1 %14, label %15, label %20
+
+; <label>:15 ; preds = %11
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = load i32* %2, align 4 ; [#uses=1]
+ %18 = mul i32 %17, 4 ; [#uses=1]
+ %19 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %16, i8* null, i32 0, i32 %18) ; [#uses=1]
+ br label %23
+
+; <label>:20 ; preds = %11
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %22 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %21) ; [#uses=1]
+ br label %23
+
+; <label>:23 ; preds = %20, %15
+ %24 = phi i8* [ %19, %15 ], [ %22, %20 ] ; [#uses=1]
+ %25 = bitcast i8* %24 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject** %25, %union.GCObject*** %newhash, align 4
+ %26 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_State* %26, i32 0, i32 6 ; [#uses=1]
+ %28 = load %struct.global_State** %27, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.global_State* %28, i32 0, i32 0 ; [#uses=1]
+ store %struct.stringtable* %29, %struct.stringtable** %tb, align 4
+ store i32 0, i32* %i, align 4
+ br label %30
+
+; <label>:30 ; preds = %38, %23
+ %31 = load i32* %i, align 4 ; [#uses=1]
+ %32 = load i32* %2, align 4 ; [#uses=1]
+ %33 = icmp slt i32 %31, %32 ; [#uses=1]
+ br i1 %33, label %34, label %41
+
+; <label>:34 ; preds = %30
+ %35 = load i32* %i, align 4 ; [#uses=1]
+ %36 = load %union.GCObject*** %newhash, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %union.GCObject** %36, i32 %35 ; [#uses=1]
+ store %union.GCObject* null, %union.GCObject** %37
+ br label %38
+
+; <label>:38 ; preds = %34
+ %39 = load i32* %i, align 4 ; [#uses=1]
+ %40 = add nsw i32 %39, 1 ; [#uses=1]
+ store i32 %40, i32* %i, align 4
+ br label %30
+
+; <label>:41 ; preds = %30
+ store i32 0, i32* %i, align 4
+ br label %42
+
+; <label>:42 ; preds = %88, %41
+ %43 = load i32* %i, align 4 ; [#uses=1]
+ %44 = load %struct.stringtable** %tb, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.stringtable* %44, i32 0, i32 2 ; [#uses=1]
+ %46 = load i32* %45, align 4 ; [#uses=1]
+ %47 = icmp slt i32 %43, %46 ; [#uses=1]
+ br i1 %47, label %48, label %91
+
+; <label>:48 ; preds = %42
+ %49 = load i32* %i, align 4 ; [#uses=1]
+ %50 = load %struct.stringtable** %tb, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.stringtable* %50, i32 0, i32 0 ; [#uses=1]
+ %52 = load %union.GCObject*** %51, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %union.GCObject** %52, i32 %49 ; [#uses=1]
+ %54 = load %union.GCObject** %53 ; [#uses=1]
+ store %union.GCObject* %54, %union.GCObject** %p, align 4
+ br label %55
+
+; <label>:55 ; preds = %58, %48
+ %56 = load %union.GCObject** %p, align 4 ; [#uses=1]
+ %57 = icmp ne %union.GCObject* %56, null ; [#uses=1]
+ br i1 %57, label %58, label %87
+
+; <label>:58 ; preds = %55
+ %59 = load %union.GCObject** %p, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %union.GCObject* %59, i32 0, i32 0 ; [#uses=1]
+ %61 = bitcast %struct.lua_State* %60 to %struct.GCheader* ; [#uses=1]
+ %62 = getelementptr inbounds %struct.GCheader* %61, i32 0, i32 0 ; [#uses=1]
+ %63 = load %union.GCObject** %62, align 4 ; [#uses=1]
+ store %union.GCObject* %63, %union.GCObject** %next, align 4
+ %64 = load %union.GCObject** %p, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %union.GCObject* %64, i32 0, i32 0 ; [#uses=1]
+ %66 = bitcast %struct.lua_State* %65 to %union.TString* ; [#uses=1]
+ %67 = getelementptr inbounds %union.TString* %66, i32 0, i32 0 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.anon* %67, i32 0, i32 4 ; [#uses=1]
+ %69 = load i32* %68, align 4 ; [#uses=1]
+ store i32 %69, i32* %h, align 4
+ %70 = load i32* %h, align 4 ; [#uses=1]
+ %71 = load i32* %2, align 4 ; [#uses=1]
+ %72 = sub nsw i32 %71, 1 ; [#uses=1]
+ %73 = and i32 %70, %72 ; [#uses=1]
+ store i32 %73, i32* %h1, align 4
+ %74 = load i32* %h1, align 4 ; [#uses=1]
+ %75 = load %union.GCObject*** %newhash, align 4 ; [#uses=1]
+ %76 = getelementptr inbounds %union.GCObject** %75, i32 %74 ; [#uses=1]
+ %77 = load %union.GCObject** %76 ; [#uses=1]
+ %78 = load %union.GCObject** %p, align 4 ; [#uses=1]
+ %79 = getelementptr inbounds %union.GCObject* %78, i32 0, i32 0 ; [#uses=1]
+ %80 = bitcast %struct.lua_State* %79 to %struct.GCheader* ; [#uses=1]
+ %81 = getelementptr inbounds %struct.GCheader* %80, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject* %77, %union.GCObject** %81, align 4
+ %82 = load %union.GCObject** %p, align 4 ; [#uses=1]
+ %83 = load i32* %h1, align 4 ; [#uses=1]
+ %84 = load %union.GCObject*** %newhash, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %union.GCObject** %84, i32 %83 ; [#uses=1]
+ store %union.GCObject* %82, %union.GCObject** %85
+ %86 = load %union.GCObject** %next, align 4 ; [#uses=1]
+ store %union.GCObject* %86, %union.GCObject** %p, align 4
+ br label %55
+
+; <label>:87 ; preds = %55
+ br label %88
+
+; <label>:88 ; preds = %87
+ %89 = load i32* %i, align 4 ; [#uses=1]
+ %90 = add nsw i32 %89, 1 ; [#uses=1]
+ store i32 %90, i32* %i, align 4
+ br label %42
+
+; <label>:91 ; preds = %42
+ %92 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %93 = load %struct.stringtable** %tb, align 4 ; [#uses=1]
+ %94 = getelementptr inbounds %struct.stringtable* %93, i32 0, i32 0 ; [#uses=1]
+ %95 = load %union.GCObject*** %94, align 4 ; [#uses=1]
+ %96 = bitcast %union.GCObject** %95 to i8* ; [#uses=1]
+ %97 = load %struct.stringtable** %tb, align 4 ; [#uses=1]
+ %98 = getelementptr inbounds %struct.stringtable* %97, i32 0, i32 2 ; [#uses=1]
+ %99 = load i32* %98, align 4 ; [#uses=1]
+ %100 = mul i32 %99, 4 ; [#uses=1]
+ %101 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %92, i8* %96, i32 %100, i32 0) ; [#uses=0]
+ %102 = load i32* %2, align 4 ; [#uses=1]
+ %103 = load %struct.stringtable** %tb, align 4 ; [#uses=1]
+ %104 = getelementptr inbounds %struct.stringtable* %103, i32 0, i32 2 ; [#uses=1]
+ store i32 %102, i32* %104, align 4
+ %105 = load %union.GCObject*** %newhash, align 4 ; [#uses=1]
+ %106 = load %struct.stringtable** %tb, align 4 ; [#uses=1]
+ %107 = getelementptr inbounds %struct.stringtable* %106, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject** %105, %union.GCObject*** %107, align 4
+ br label %108
+
+; <label>:108 ; preds = %91, %10
+ ret void
+}
+
+; [#uses=19]
+define hidden %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %L, i8* %str, i32 %l) {
+ %1 = alloca %union.TString*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %3 = alloca i8*, align 4 ; [#uses=4]
+ %4 = alloca i32, align 4 ; [#uses=7]
+ %o = alloca %union.GCObject*, align 4 ; [#uses=7]
+ %h = alloca i32, align 4 ; [#uses=7]
+ %step = alloca i32, align 4 ; [#uses=3]
+ %l1 = alloca i32, align 4 ; [#uses=5]
+ %ts = alloca %union.TString*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i8* %str, i8** %3, align 4
+ store i32 %l, i32* %4, align 4
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ store i32 %5, i32* %h, align 4
+ %6 = load i32* %4, align 4 ; [#uses=1]
+ %7 = lshr i32 %6, 5 ; [#uses=1]
+ %8 = add i32 %7, 1 ; [#uses=1]
+ store i32 %8, i32* %step, align 4
+ %9 = load i32* %4, align 4 ; [#uses=1]
+ store i32 %9, i32* %l1, align 4
+ br label %10
+
+; <label>:10 ; preds = %29, %0
+ %11 = load i32* %l1, align 4 ; [#uses=1]
+ %12 = load i32* %step, align 4 ; [#uses=1]
+ %13 = icmp uge i32 %11, %12 ; [#uses=1]
+ br i1 %13, label %14, label %33
+
+; <label>:14 ; preds = %10
+ %15 = load i32* %h, align 4 ; [#uses=1]
+ %16 = load i32* %h, align 4 ; [#uses=1]
+ %17 = shl i32 %16, 5 ; [#uses=1]
+ %18 = load i32* %h, align 4 ; [#uses=1]
+ %19 = lshr i32 %18, 2 ; [#uses=1]
+ %20 = add i32 %17, %19 ; [#uses=1]
+ %21 = load i32* %l1, align 4 ; [#uses=1]
+ %22 = sub i32 %21, 1 ; [#uses=1]
+ %23 = load i8** %3, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds i8* %23, i32 %22 ; [#uses=1]
+ %25 = load i8* %24 ; [#uses=1]
+ %26 = zext i8 %25 to i32 ; [#uses=1]
+ %27 = add i32 %20, %26 ; [#uses=1]
+ %28 = xor i32 %15, %27 ; [#uses=1]
+ store i32 %28, i32* %h, align 4
+ br label %29
+
+; <label>:29 ; preds = %14
+ %30 = load i32* %step, align 4 ; [#uses=1]
+ %31 = load i32* %l1, align 4 ; [#uses=1]
+ %32 = sub i32 %31, %30 ; [#uses=1]
+ store i32 %32, i32* %l1, align 4
+ br label %10
+
+; <label>:33 ; preds = %10
+ %34 = load i32* %h, align 4 ; [#uses=1]
+ %35 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.lua_State* %35, i32 0, i32 6 ; [#uses=1]
+ %37 = load %struct.global_State** %36, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.global_State* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.stringtable* %38, i32 0, i32 2 ; [#uses=1]
+ %40 = load i32* %39, align 4 ; [#uses=1]
+ %41 = sub nsw i32 %40, 1 ; [#uses=1]
+ %42 = and i32 %34, %41 ; [#uses=1]
+ %43 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.lua_State* %43, i32 0, i32 6 ; [#uses=1]
+ %45 = load %struct.global_State** %44, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.global_State* %45, i32 0, i32 0 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.stringtable* %46, i32 0, i32 0 ; [#uses=1]
+ %48 = load %union.GCObject*** %47, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %union.GCObject** %48, i32 %42 ; [#uses=1]
+ %50 = load %union.GCObject** %49 ; [#uses=1]
+ store %union.GCObject* %50, %union.GCObject** %o, align 4
+ br label %51
+
+; <label>:51 ; preds = %101, %33
+ %52 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %53 = icmp ne %union.GCObject* %52, null ; [#uses=1]
+ br i1 %53, label %54, label %107
+
+; <label>:54 ; preds = %51
+ %55 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %union.GCObject* %55, i32 0, i32 0 ; [#uses=1]
+ %57 = bitcast %struct.lua_State* %56 to %union.TString* ; [#uses=1]
+ store %union.TString* %57, %union.TString** %ts, align 4
+ %58 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %union.TString* %58, i32 0, i32 0 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.anon* %59, i32 0, i32 5 ; [#uses=1]
+ %61 = load i32* %60, align 4 ; [#uses=1]
+ %62 = load i32* %4, align 4 ; [#uses=1]
+ %63 = icmp eq i32 %61, %62 ; [#uses=1]
+ br i1 %63, label %64, label %100
+
+; <label>:64 ; preds = %54
+ %65 = load i8** %3, align 4 ; [#uses=1]
+ %66 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %union.TString* %66, i32 1 ; [#uses=1]
+ %68 = bitcast %union.TString* %67 to i8* ; [#uses=1]
+ %69 = load i32* %4, align 4 ; [#uses=1]
+ %70 = call i32 @memcmp(i8* %65, i8* %68, i32 %69) nounwind readonly ; [#uses=1]
+ %71 = icmp eq i32 %70, 0 ; [#uses=1]
+ br i1 %71, label %72, label %100
+
+; <label>:72 ; preds = %64
+ %73 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %union.GCObject* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = bitcast %struct.lua_State* %74 to %struct.GCheader* ; [#uses=1]
+ %76 = getelementptr inbounds %struct.GCheader* %75, i32 0, i32 2 ; [#uses=1]
+ %77 = load i8* %76, align 1 ; [#uses=1]
+ %78 = zext i8 %77 to i32 ; [#uses=1]
+ %79 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %80 = getelementptr inbounds %struct.lua_State* %79, i32 0, i32 6 ; [#uses=1]
+ %81 = load %struct.global_State** %80, align 4 ; [#uses=1]
+ %82 = getelementptr inbounds %struct.global_State* %81, i32 0, i32 3 ; [#uses=1]
+ %83 = load i8* %82, align 1 ; [#uses=1]
+ %84 = zext i8 %83 to i32 ; [#uses=1]
+ %85 = xor i32 %84, 3 ; [#uses=1]
+ %86 = and i32 %78, %85 ; [#uses=1]
+ %87 = and i32 %86, 3 ; [#uses=1]
+ %88 = icmp ne i32 %87, 0 ; [#uses=1]
+ br i1 %88, label %89, label %98
+
+; <label>:89 ; preds = %72
+ %90 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %91 = getelementptr inbounds %union.GCObject* %90, i32 0, i32 0 ; [#uses=1]
+ %92 = bitcast %struct.lua_State* %91 to %struct.GCheader* ; [#uses=1]
+ %93 = getelementptr inbounds %struct.GCheader* %92, i32 0, i32 2 ; [#uses=2]
+ %94 = load i8* %93, align 1 ; [#uses=1]
+ %95 = zext i8 %94 to i32 ; [#uses=1]
+ %96 = xor i32 %95, 3 ; [#uses=1]
+ %97 = trunc i32 %96 to i8 ; [#uses=1]
+ store i8 %97, i8* %93, align 1
+ br label %98
+
+; <label>:98 ; preds = %89, %72
+ %99 = load %union.TString** %ts, align 4 ; [#uses=1]
+ store %union.TString* %99, %union.TString** %1
+ br label %113
+
+; <label>:100 ; preds = %64, %54
+ br label %101
+
+; <label>:101 ; preds = %100
+ %102 = load %union.GCObject** %o, align 4 ; [#uses=1]
+ %103 = getelementptr inbounds %union.GCObject* %102, i32 0, i32 0 ; [#uses=1]
+ %104 = bitcast %struct.lua_State* %103 to %struct.GCheader* ; [#uses=1]
+ %105 = getelementptr inbounds %struct.GCheader* %104, i32 0, i32 0 ; [#uses=1]
+ %106 = load %union.GCObject** %105, align 4 ; [#uses=1]
+ store %union.GCObject* %106, %union.GCObject** %o, align 4
+ br label %51
+
+; <label>:107 ; preds = %51
+ %108 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %109 = load i8** %3, align 4 ; [#uses=1]
+ %110 = load i32* %4, align 4 ; [#uses=1]
+ %111 = load i32* %h, align 4 ; [#uses=1]
+ %112 = call %union.TString* @_Z7newlstrP9lua_StatePKcjj(%struct.lua_State* %108, i8* %109, i32 %110, i32 %111) ; [#uses=1]
+ store %union.TString* %112, %union.TString** %1
+ br label %113
+
+; <label>:113 ; preds = %107, %98
+ %114 = load %union.TString** %1 ; [#uses=1]
+ ret %union.TString* %114
+}
+
+; [#uses=4]
+declare i32 @memcmp(i8*, i8*, i32) nounwind readonly
+
+; [#uses=1]
+define internal %union.TString* @_Z7newlstrP9lua_StatePKcjj(%struct.lua_State* %L, i8* %str, i32 %l, i32 %h) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=6]
+ %4 = alloca i32, align 4 ; [#uses=6]
+ %ts = alloca %union.TString*, align 4 ; [#uses=11]
+ %tb = alloca %struct.stringtable*, align 4 ; [#uses=9]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %str, i8** %2, align 4
+ store i32 %l, i32* %3, align 4
+ store i32 %h, i32* %4, align 4
+ %5 = load i32* %3, align 4 ; [#uses=1]
+ %6 = add i32 %5, 1 ; [#uses=1]
+ %7 = icmp ugt i32 %6, -19 ; [#uses=1]
+ br i1 %7, label %8, label %11
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %9) ; [#uses=0]
+ br label %11
+
+; <label>:11 ; preds = %8, %0
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = load i32* %3, align 4 ; [#uses=1]
+ %14 = add i32 %13, 1 ; [#uses=1]
+ %15 = mul i32 %14, 1 ; [#uses=1]
+ %16 = add i32 %15, 16 ; [#uses=1]
+ %17 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %12, i8* null, i32 0, i32 %16) ; [#uses=1]
+ %18 = bitcast i8* %17 to %union.TString* ; [#uses=1]
+ store %union.TString* %18, %union.TString** %ts, align 4
+ %19 = load i32* %3, align 4 ; [#uses=1]
+ %20 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %union.TString* %20, i32 0, i32 0 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.anon* %21, i32 0, i32 5 ; [#uses=1]
+ store i32 %19, i32* %22, align 4
+ %23 = load i32* %4, align 4 ; [#uses=1]
+ %24 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %union.TString* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.anon* %25, i32 0, i32 4 ; [#uses=1]
+ store i32 %23, i32* %26, align 4
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_State* %27, i32 0, i32 6 ; [#uses=1]
+ %29 = load %struct.global_State** %28, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.global_State* %29, i32 0, i32 3 ; [#uses=1]
+ %31 = load i8* %30, align 1 ; [#uses=1]
+ %32 = zext i8 %31 to i32 ; [#uses=1]
+ %33 = and i32 %32, 3 ; [#uses=1]
+ %34 = trunc i32 %33 to i8 ; [#uses=1]
+ %35 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %union.TString* %35, i32 0, i32 0 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.anon* %36, i32 0, i32 2 ; [#uses=1]
+ store i8 %34, i8* %37, align 1
+ %38 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %union.TString* %38, i32 0, i32 0 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.anon* %39, i32 0, i32 1 ; [#uses=1]
+ store i8 4, i8* %40, align 1
+ %41 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %union.TString* %41, i32 0, i32 0 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.anon* %42, i32 0, i32 3 ; [#uses=1]
+ store i8 0, i8* %43, align 1
+ %44 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %union.TString* %44, i32 1 ; [#uses=1]
+ %46 = bitcast %union.TString* %45 to i8* ; [#uses=1]
+ %47 = load i8** %2, align 4 ; [#uses=1]
+ %48 = load i32* %3, align 4 ; [#uses=1]
+ %49 = mul i32 %48, 1 ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %46, i8* %47, i32 %49, i32 1, i1 false)
+ %50 = load i32* %3, align 4 ; [#uses=1]
+ %51 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %union.TString* %51, i32 1 ; [#uses=1]
+ %53 = bitcast %union.TString* %52 to i8* ; [#uses=1]
+ %54 = getelementptr inbounds i8* %53, i32 %50 ; [#uses=1]
+ store i8 0, i8* %54
+ %55 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.lua_State* %55, i32 0, i32 6 ; [#uses=1]
+ %57 = load %struct.global_State** %56, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.global_State* %57, i32 0, i32 0 ; [#uses=1]
+ store %struct.stringtable* %58, %struct.stringtable** %tb, align 4
+ %59 = load i32* %4, align 4 ; [#uses=1]
+ %60 = load %struct.stringtable** %tb, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.stringtable* %60, i32 0, i32 2 ; [#uses=1]
+ %62 = load i32* %61, align 4 ; [#uses=1]
+ %63 = sub nsw i32 %62, 1 ; [#uses=1]
+ %64 = and i32 %59, %63 ; [#uses=1]
+ store i32 %64, i32* %4, align 4
+ %65 = load i32* %4, align 4 ; [#uses=1]
+ %66 = load %struct.stringtable** %tb, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.stringtable* %66, i32 0, i32 0 ; [#uses=1]
+ %68 = load %union.GCObject*** %67, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %union.GCObject** %68, i32 %65 ; [#uses=1]
+ %70 = load %union.GCObject** %69 ; [#uses=1]
+ %71 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %union.TString* %71, i32 0, i32 0 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.anon* %72, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject* %70, %union.GCObject** %73, align 4
+ %74 = load %union.TString** %ts, align 4 ; [#uses=1]
+ %75 = bitcast %union.TString* %74 to %union.GCObject* ; [#uses=1]
+ %76 = load i32* %4, align 4 ; [#uses=1]
+ %77 = load %struct.stringtable** %tb, align 4 ; [#uses=1]
+ %78 = getelementptr inbounds %struct.stringtable* %77, i32 0, i32 0 ; [#uses=1]
+ %79 = load %union.GCObject*** %78, align 4 ; [#uses=1]
+ %80 = getelementptr inbounds %union.GCObject** %79, i32 %76 ; [#uses=1]
+ store %union.GCObject* %75, %union.GCObject** %80
+ %81 = load %struct.stringtable** %tb, align 4 ; [#uses=1]
+ %82 = getelementptr inbounds %struct.stringtable* %81, i32 0, i32 1 ; [#uses=2]
+ %83 = load i32* %82, align 4 ; [#uses=1]
+ %84 = add i32 %83, 1 ; [#uses=1]
+ store i32 %84, i32* %82, align 4
+ %85 = load %struct.stringtable** %tb, align 4 ; [#uses=1]
+ %86 = getelementptr inbounds %struct.stringtable* %85, i32 0, i32 1 ; [#uses=1]
+ %87 = load i32* %86, align 4 ; [#uses=1]
+ %88 = load %struct.stringtable** %tb, align 4 ; [#uses=1]
+ %89 = getelementptr inbounds %struct.stringtable* %88, i32 0, i32 2 ; [#uses=1]
+ %90 = load i32* %89, align 4 ; [#uses=1]
+ %91 = icmp ugt i32 %87, %90 ; [#uses=1]
+ br i1 %91, label %92, label %103
+
+; <label>:92 ; preds = %11
+ %93 = load %struct.stringtable** %tb, align 4 ; [#uses=1]
+ %94 = getelementptr inbounds %struct.stringtable* %93, i32 0, i32 2 ; [#uses=1]
+ %95 = load i32* %94, align 4 ; [#uses=1]
+ %96 = icmp sle i32 %95, 1073741822 ; [#uses=1]
+ br i1 %96, label %97, label %103
+
+; <label>:97 ; preds = %92
+ %98 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %99 = load %struct.stringtable** %tb, align 4 ; [#uses=1]
+ %100 = getelementptr inbounds %struct.stringtable* %99, i32 0, i32 2 ; [#uses=1]
+ %101 = load i32* %100, align 4 ; [#uses=1]
+ %102 = mul nsw i32 %101, 2 ; [#uses=1]
+ call void @_Z11luaS_resizeP9lua_Statei(%struct.lua_State* %98, i32 %102)
+ br label %103
+
+; <label>:103 ; preds = %97, %92, %11
+ %104 = load %union.TString** %ts, align 4 ; [#uses=1]
+ ret %union.TString* %104
+}
+
+; [#uses=1]
+define hidden %union.Udata* @_Z13luaS_newudataP9lua_StatejP5Table(%struct.lua_State* %L, i32 %s, %struct.Table* %e) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %2 = alloca i32, align 4 ; [#uses=4]
+ %3 = alloca %struct.Table*, align 4 ; [#uses=2]
+ %u = alloca %union.Udata*, align 4 ; [#uses=9]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %s, i32* %2, align 4
+ store %struct.Table* %e, %struct.Table** %3, align 4
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = icmp ugt i32 %4, -23 ; [#uses=1]
+ br i1 %5, label %6, label %9
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %7) ; [#uses=0]
+ br label %9
+
+; <label>:9 ; preds = %6, %0
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = load i32* %2, align 4 ; [#uses=1]
+ %12 = add i32 %11, 20 ; [#uses=1]
+ %13 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %10, i8* null, i32 0, i32 %12) ; [#uses=1]
+ %14 = bitcast i8* %13 to %union.Udata* ; [#uses=1]
+ store %union.Udata* %14, %union.Udata** %u, align 4
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_State* %15, i32 0, i32 6 ; [#uses=1]
+ %17 = load %struct.global_State** %16, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.global_State* %17, i32 0, i32 3 ; [#uses=1]
+ %19 = load i8* %18, align 1 ; [#uses=1]
+ %20 = zext i8 %19 to i32 ; [#uses=1]
+ %21 = and i32 %20, 3 ; [#uses=1]
+ %22 = trunc i32 %21 to i8 ; [#uses=1]
+ %23 = load %union.Udata** %u, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %union.Udata* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = getelementptr inbounds %4* %24, i32 0, i32 2 ; [#uses=1]
+ store i8 %22, i8* %25, align 1
+ %26 = load %union.Udata** %u, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %union.Udata* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = getelementptr inbounds %4* %27, i32 0, i32 1 ; [#uses=1]
+ store i8 7, i8* %28, align 1
+ %29 = load i32* %2, align 4 ; [#uses=1]
+ %30 = load %union.Udata** %u, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %union.Udata* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = getelementptr inbounds %4* %31, i32 0, i32 5 ; [#uses=1]
+ store i32 %29, i32* %32, align 4
+ %33 = load %union.Udata** %u, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %union.Udata* %33, i32 0, i32 0 ; [#uses=1]
+ %35 = getelementptr inbounds %4* %34, i32 0, i32 3 ; [#uses=1]
+ store %struct.Table* null, %struct.Table** %35, align 4
+ %36 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %37 = load %union.Udata** %u, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %union.Udata* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = getelementptr inbounds %4* %38, i32 0, i32 4 ; [#uses=1]
+ store %struct.Table* %36, %struct.Table** %39, align 4
+ %40 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.lua_State* %40, i32 0, i32 6 ; [#uses=1]
+ %42 = load %struct.global_State** %41, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.global_State* %42, i32 0, i32 21 ; [#uses=1]
+ %44 = load %struct.lua_State** %43, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.lua_State* %44, i32 0, i32 0 ; [#uses=1]
+ %46 = load %union.GCObject** %45, align 4 ; [#uses=1]
+ %47 = load %union.Udata** %u, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %union.Udata* %47, i32 0, i32 0 ; [#uses=1]
+ %49 = getelementptr inbounds %4* %48, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject* %46, %union.GCObject** %49, align 4
+ %50 = load %union.Udata** %u, align 4 ; [#uses=1]
+ %51 = bitcast %union.Udata* %50 to %union.GCObject* ; [#uses=1]
+ %52 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.lua_State* %52, i32 0, i32 6 ; [#uses=1]
+ %54 = load %struct.global_State** %53, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.global_State* %54, i32 0, i32 21 ; [#uses=1]
+ %56 = load %struct.lua_State** %55, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.lua_State* %56, i32 0, i32 0 ; [#uses=1]
+ store %union.GCObject* %51, %union.GCObject** %57, align 4
+ %58 = load %union.Udata** %u, align 4 ; [#uses=1]
+ ret %union.Udata* %58
+}
+
+; [#uses=1]
+define hidden i32 @_Z9luaH_nextP9lua_StateP5TableP10lua_TValue(%struct.lua_State* %L, %struct.Table* %t, %struct.lua_TValue* %key) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %3 = alloca %struct.Table*, align 4 ; [#uses=10]
+ %4 = alloca %struct.lua_TValue*, align 4 ; [#uses=6]
+ %i = alloca i32, align 4 ; [#uses=17]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o21 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o12 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o23 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o14 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.Table* %t, %struct.Table** %3, align 4
+ store %struct.lua_TValue* %key, %struct.lua_TValue** %4, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %7 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %8 = call i32 @_Z9findindexP9lua_StateP5TableP10lua_TValue(%struct.lua_State* %5, %struct.Table* %6, %struct.lua_TValue* %7) ; [#uses=1]
+ store i32 %8, i32* %i, align 4
+ %9 = load i32* %i, align 4 ; [#uses=1]
+ %10 = add nsw i32 %9, 1 ; [#uses=1]
+ store i32 %10, i32* %i, align 4
+ br label %11
+
+; <label>:11 ; preds = %55, %0
+ %12 = load i32* %i, align 4 ; [#uses=1]
+ %13 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.Table* %13, i32 0, i32 10 ; [#uses=1]
+ %15 = load i32* %14, align 4 ; [#uses=1]
+ %16 = icmp slt i32 %12, %15 ; [#uses=1]
+ br i1 %16, label %17, label %58
+
+; <label>:17 ; preds = %11
+ %18 = load i32* %i, align 4 ; [#uses=1]
+ %19 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.Table* %19, i32 0, i32 6 ; [#uses=1]
+ %21 = load %struct.lua_TValue** %20, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_TValue* %21, i32 %18 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_TValue* %22, i32 0, i32 1 ; [#uses=1]
+ %24 = load i32* %23, align 4 ; [#uses=1]
+ %25 = icmp eq i32 %24, 0 ; [#uses=1]
+ br i1 %25, label %54, label %26
+
+; <label>:26 ; preds = %17
+ %27 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %27, %struct.lua_TValue** %i_o, align 4
+ %28 = load i32* %i, align 4 ; [#uses=1]
+ %29 = add nsw i32 %28, 1 ; [#uses=1]
+ %30 = sitofp i32 %29 to double ; [#uses=1]
+ %31 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_TValue* %31, i32 0, i32 0 ; [#uses=1]
+ %33 = getelementptr inbounds %union.anon* %32, i32 0, i32 0 ; [#uses=1]
+ store double %30, double* %33, align 4
+ %34 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_TValue* %34, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %35, align 4
+ %36 = load i32* %i, align 4 ; [#uses=1]
+ %37 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.Table* %37, i32 0, i32 6 ; [#uses=1]
+ %39 = load %struct.lua_TValue** %38, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.lua_TValue* %39, i32 %36 ; [#uses=1]
+ store %struct.lua_TValue* %40, %struct.lua_TValue** %o2, align 4
+ %41 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.lua_TValue* %41, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %42, %struct.lua_TValue** %o1, align 4
+ %43 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.lua_TValue* %43, i32 0, i32 0 ; [#uses=1]
+ %45 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.lua_TValue* %45, i32 0, i32 0 ; [#uses=1]
+ %47 = bitcast %union.anon* %44 to i8* ; [#uses=1]
+ %48 = bitcast %union.anon* %46 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %47, i8* %48, i32 8, i32 4, i1 false)
+ %49 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.lua_TValue* %49, i32 0, i32 1 ; [#uses=1]
+ %51 = load i32* %50, align 4 ; [#uses=1]
+ %52 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.lua_TValue* %52, i32 0, i32 1 ; [#uses=1]
+ store i32 %51, i32* %53, align 4
+ store i32 1, i32* %1
+ br label %127
+
+; <label>:54 ; preds = %17
+ br label %55
+
+; <label>:55 ; preds = %54
+ %56 = load i32* %i, align 4 ; [#uses=1]
+ %57 = add nsw i32 %56, 1 ; [#uses=1]
+ store i32 %57, i32* %i, align 4
+ br label %11
+
+; <label>:58 ; preds = %11
+ %59 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %struct.Table* %59, i32 0, i32 10 ; [#uses=1]
+ %61 = load i32* %60, align 4 ; [#uses=1]
+ %62 = load i32* %i, align 4 ; [#uses=1]
+ %63 = sub nsw i32 %62, %61 ; [#uses=1]
+ store i32 %63, i32* %i, align 4
+ br label %64
+
+; <label>:64 ; preds = %123, %58
+ %65 = load i32* %i, align 4 ; [#uses=1]
+ %66 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.Table* %66, i32 0, i32 4 ; [#uses=1]
+ %68 = load i8* %67, align 1 ; [#uses=1]
+ %69 = zext i8 %68 to i32 ; [#uses=1]
+ %70 = shl i32 1, %69 ; [#uses=1]
+ %71 = icmp slt i32 %65, %70 ; [#uses=1]
+ br i1 %71, label %72, label %126
+
+; <label>:72 ; preds = %64
+ %73 = load i32* %i, align 4 ; [#uses=1]
+ %74 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %75 = getelementptr inbounds %struct.Table* %74, i32 0, i32 7 ; [#uses=1]
+ %76 = load %struct.Node** %75, align 4 ; [#uses=1]
+ %77 = getelementptr inbounds %struct.Node* %76, i32 %73 ; [#uses=1]
+ %78 = getelementptr inbounds %struct.Node* %77, i32 0, i32 0 ; [#uses=1]
+ %79 = getelementptr inbounds %struct.lua_TValue* %78, i32 0, i32 1 ; [#uses=1]
+ %80 = load i32* %79, align 4 ; [#uses=1]
+ %81 = icmp eq i32 %80, 0 ; [#uses=1]
+ br i1 %81, label %122, label %82
+
+; <label>:82 ; preds = %72
+ %83 = load i32* %i, align 4 ; [#uses=1]
+ %84 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %struct.Table* %84, i32 0, i32 7 ; [#uses=1]
+ %86 = load %struct.Node** %85, align 4 ; [#uses=1]
+ %87 = getelementptr inbounds %struct.Node* %86, i32 %83 ; [#uses=1]
+ %88 = getelementptr inbounds %struct.Node* %87, i32 0, i32 1 ; [#uses=1]
+ %89 = getelementptr inbounds %union.TKey* %88, i32 0, i32 0 ; [#uses=1]
+ %90 = bitcast %1* %89 to %struct.lua_TValue* ; [#uses=1]
+ store %struct.lua_TValue* %90, %struct.lua_TValue** %o21, align 4
+ %91 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %91, %struct.lua_TValue** %o12, align 4
+ %92 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %93 = getelementptr inbounds %struct.lua_TValue* %92, i32 0, i32 0 ; [#uses=1]
+ %94 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %95 = getelementptr inbounds %struct.lua_TValue* %94, i32 0, i32 0 ; [#uses=1]
+ %96 = bitcast %union.anon* %93 to i8* ; [#uses=1]
+ %97 = bitcast %union.anon* %95 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %96, i8* %97, i32 8, i32 4, i1 false)
+ %98 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %99 = getelementptr inbounds %struct.lua_TValue* %98, i32 0, i32 1 ; [#uses=1]
+ %100 = load i32* %99, align 4 ; [#uses=1]
+ %101 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %102 = getelementptr inbounds %struct.lua_TValue* %101, i32 0, i32 1 ; [#uses=1]
+ store i32 %100, i32* %102, align 4
+ %103 = load i32* %i, align 4 ; [#uses=1]
+ %104 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %105 = getelementptr inbounds %struct.Table* %104, i32 0, i32 7 ; [#uses=1]
+ %106 = load %struct.Node** %105, align 4 ; [#uses=1]
+ %107 = getelementptr inbounds %struct.Node* %106, i32 %103 ; [#uses=1]
+ %108 = getelementptr inbounds %struct.Node* %107, i32 0, i32 0 ; [#uses=1]
+ store %struct.lua_TValue* %108, %struct.lua_TValue** %o23, align 4
+ %109 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %110 = getelementptr inbounds %struct.lua_TValue* %109, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %110, %struct.lua_TValue** %o14, align 4
+ %111 = load %struct.lua_TValue** %o14, align 4 ; [#uses=1]
+ %112 = getelementptr inbounds %struct.lua_TValue* %111, i32 0, i32 0 ; [#uses=1]
+ %113 = load %struct.lua_TValue** %o23, align 4 ; [#uses=1]
+ %114 = getelementptr inbounds %struct.lua_TValue* %113, i32 0, i32 0 ; [#uses=1]
+ %115 = bitcast %union.anon* %112 to i8* ; [#uses=1]
+ %116 = bitcast %union.anon* %114 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %115, i8* %116, i32 8, i32 4, i1 false)
+ %117 = load %struct.lua_TValue** %o23, align 4 ; [#uses=1]
+ %118 = getelementptr inbounds %struct.lua_TValue* %117, i32 0, i32 1 ; [#uses=1]
+ %119 = load i32* %118, align 4 ; [#uses=1]
+ %120 = load %struct.lua_TValue** %o14, align 4 ; [#uses=1]
+ %121 = getelementptr inbounds %struct.lua_TValue* %120, i32 0, i32 1 ; [#uses=1]
+ store i32 %119, i32* %121, align 4
+ store i32 1, i32* %1
+ br label %127
+
+; <label>:122 ; preds = %72
+ br label %123
+
+; <label>:123 ; preds = %122
+ %124 = load i32* %i, align 4 ; [#uses=1]
+ %125 = add nsw i32 %124, 1 ; [#uses=1]
+ store i32 %125, i32* %i, align 4
+ br label %64
+
+; <label>:126 ; preds = %64
+ store i32 0, i32* %1
+ br label %127
+
+; <label>:127 ; preds = %126, %82, %26
+ %128 = load i32* %1 ; [#uses=1]
+ ret i32 %128
+}
+
+; [#uses=1]
+define internal i32 @_Z9findindexP9lua_StateP5TableP10lua_TValue(%struct.lua_State* %L, %struct.Table* %t, %struct.lua_TValue* %key) {
+ %1 = alloca i32, align 4 ; [#uses=5]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %3 = alloca %struct.Table*, align 4 ; [#uses=5]
+ %4 = alloca %struct.lua_TValue*, align 4 ; [#uses=7]
+ %i = alloca i32, align 4 ; [#uses=6]
+ %n = alloca %struct.Node*, align 4 ; [#uses=8]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.Table* %t, %struct.Table** %3, align 4
+ store %struct.lua_TValue* %key, %struct.lua_TValue** %4, align 4
+ %5 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.lua_TValue* %5, i32 0, i32 1 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ %8 = icmp eq i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %9, label %10
+
+; <label>:9 ; preds = %0
+ store i32 -1, i32* %1
+ br label %89
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %12 = call i32 @_Z10arrayindexPK10lua_TValue(%struct.lua_TValue* %11) ; [#uses=1]
+ store i32 %12, i32* %i, align 4
+ %13 = load i32* %i, align 4 ; [#uses=1]
+ %14 = icmp slt i32 0, %13 ; [#uses=1]
+ br i1 %14, label %15, label %24
+
+; <label>:15 ; preds = %10
+ %16 = load i32* %i, align 4 ; [#uses=1]
+ %17 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.Table* %17, i32 0, i32 10 ; [#uses=1]
+ %19 = load i32* %18, align 4 ; [#uses=1]
+ %20 = icmp sle i32 %16, %19 ; [#uses=1]
+ br i1 %20, label %21, label %24
+
+; <label>:21 ; preds = %15
+ %22 = load i32* %i, align 4 ; [#uses=1]
+ %23 = sub nsw i32 %22, 1 ; [#uses=1]
+ store i32 %23, i32* %1
+ br label %89
+
+; <label>:24 ; preds = %15, %10
+ %25 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %26 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %27 = call %struct.Node* @_Z12mainpositionPK5TablePK10lua_TValue(%struct.Table* %25, %struct.lua_TValue* %26) ; [#uses=1]
+ store %struct.Node* %27, %struct.Node** %n, align 4
+ br label %28
+
+; <label>:28 ; preds = %84, %24
+ %29 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.Node* %29, i32 0, i32 1 ; [#uses=1]
+ %31 = getelementptr inbounds %union.TKey* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = bitcast %1* %31 to %struct.lua_TValue* ; [#uses=1]
+ %33 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %34 = call i32 @_Z16luaO_rawequalObjPK10lua_TValueS1_(%struct.lua_TValue* %32, %struct.lua_TValue* %33) ; [#uses=1]
+ %35 = icmp ne i32 %34, 0 ; [#uses=1]
+ br i1 %35, label %62, label %36
+
+; <label>:36 ; preds = %28
+ %37 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.Node* %37, i32 0, i32 1 ; [#uses=1]
+ %39 = getelementptr inbounds %union.TKey* %38, i32 0, i32 0 ; [#uses=1]
+ %40 = getelementptr inbounds %1* %39, i32 0, i32 1 ; [#uses=1]
+ %41 = load i32* %40, align 4 ; [#uses=1]
+ %42 = icmp eq i32 %41, 11 ; [#uses=1]
+ br i1 %42, label %43, label %77
+
+; <label>:43 ; preds = %36
+ %44 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.lua_TValue* %44, i32 0, i32 1 ; [#uses=1]
+ %46 = load i32* %45, align 4 ; [#uses=1]
+ %47 = icmp sge i32 %46, 4 ; [#uses=1]
+ br i1 %47, label %48, label %77
+
+; <label>:48 ; preds = %43
+ %49 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.Node* %49, i32 0, i32 1 ; [#uses=1]
+ %51 = getelementptr inbounds %union.TKey* %50, i32 0, i32 0 ; [#uses=1]
+ %52 = getelementptr inbounds %1* %51, i32 0, i32 0 ; [#uses=1]
+ %53 = getelementptr inbounds %union.anon* %52, i32 0, i32 0 ; [#uses=1]
+ %54 = bitcast double* %53 to %union.GCObject** ; [#uses=1]
+ %55 = load %union.GCObject** %54, align 4 ; [#uses=1]
+ %56 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.lua_TValue* %56, i32 0, i32 0 ; [#uses=1]
+ %58 = getelementptr inbounds %union.anon* %57, i32 0, i32 0 ; [#uses=1]
+ %59 = bitcast double* %58 to %union.GCObject** ; [#uses=1]
+ %60 = load %union.GCObject** %59, align 4 ; [#uses=1]
+ %61 = icmp eq %union.GCObject* %55, %60 ; [#uses=1]
+ br i1 %61, label %62, label %77
+
+; <label>:62 ; preds = %48, %28
+ %63 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %64 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %struct.Table* %64, i32 0, i32 7 ; [#uses=1]
+ %66 = load %struct.Node** %65, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.Node* %66, i32 0 ; [#uses=1]
+ %68 = ptrtoint %struct.Node* %63 to i32 ; [#uses=1]
+ %69 = ptrtoint %struct.Node* %67 to i32 ; [#uses=1]
+ %70 = sub i32 %68, %69 ; [#uses=1]
+ %71 = sdiv exact i32 %70, 28 ; [#uses=1]
+ store i32 %71, i32* %i, align 4
+ %72 = load i32* %i, align 4 ; [#uses=1]
+ %73 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.Table* %73, i32 0, i32 10 ; [#uses=1]
+ %75 = load i32* %74, align 4 ; [#uses=1]
+ %76 = add nsw i32 %72, %75 ; [#uses=1]
+ store i32 %76, i32* %1
+ br label %89
+
+; <label>:77 ; preds = %48, %43, %36
+ %78 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %79 = getelementptr inbounds %struct.Node* %78, i32 0, i32 1 ; [#uses=1]
+ %80 = getelementptr inbounds %union.TKey* %79, i32 0, i32 0 ; [#uses=1]
+ %81 = getelementptr inbounds %1* %80, i32 0, i32 2 ; [#uses=1]
+ %82 = load %struct.Node** %81, align 4 ; [#uses=1]
+ store %struct.Node* %82, %struct.Node** %n, align 4
+ br label %83
+
+; <label>:83 ; preds = %77
+ br label %84
+
+; <label>:84 ; preds = %83
+ %85 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %86 = icmp ne %struct.Node* %85, null ; [#uses=1]
+ br i1 %86, label %28, label %87
+
+; <label>:87 ; preds = %84
+ %88 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %88, i8* getelementptr inbounds ([22 x i8]* @.str3167, i32 0, i32 0))
+ store i32 0, i32* %1
+ br label %89
+
+; <label>:89 ; preds = %87, %62, %21, %9
+ %90 = load i32* %1 ; [#uses=1]
+ ret i32 %90
+}
+
+; [#uses=1]
+define hidden void @_Z16luaH_resizearrayP9lua_StateP5Tablei(%struct.lua_State* %L, %struct.Table* %t, i32 %nasize) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca %struct.Table*, align 4 ; [#uses=4]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %nsize = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.Table* %t, %struct.Table** %2, align 4
+ store i32 %nasize, i32* %3, align 4
+ %4 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.Table* %4, i32 0, i32 7 ; [#uses=1]
+ %6 = load %struct.Node** %5, align 4 ; [#uses=1]
+ %7 = icmp eq %struct.Node* %6, bitcast (%9* @_ZL10dummynode_ to %struct.Node*) ; [#uses=1]
+ br i1 %7, label %8, label %9
+
+; <label>:8 ; preds = %0
+ br label %15
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Table* %10, i32 0, i32 4 ; [#uses=1]
+ %12 = load i8* %11, align 1 ; [#uses=1]
+ %13 = zext i8 %12 to i32 ; [#uses=1]
+ %14 = shl i32 1, %13 ; [#uses=1]
+ br label %15
+
+; <label>:15 ; preds = %9, %8
+ %16 = phi i32 [ 0, %8 ], [ %14, %9 ] ; [#uses=1]
+ store i32 %16, i32* %nsize, align 4
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %18 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %19 = load i32* %3, align 4 ; [#uses=1]
+ %20 = load i32* %nsize, align 4 ; [#uses=1]
+ call void @_Z6resizeP9lua_StateP5Tableii(%struct.lua_State* %17, %struct.Table* %18, i32 %19, i32 %20)
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z6resizeP9lua_StateP5Tableii(%struct.lua_State* %L, %struct.Table* %t, i32 %nasize, i32 %nhsize) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %2 = alloca %struct.Table*, align 4 ; [#uses=13]
+ %3 = alloca i32, align 4 ; [#uses=8]
+ %4 = alloca i32, align 4 ; [#uses=2]
+ %i = alloca i32, align 4 ; [#uses=12]
+ %oldasize = alloca i32, align 4 ; [#uses=5]
+ %oldhsize = alloca i32, align 4 ; [#uses=3]
+ %nold = alloca %struct.Node*, align 4 ; [#uses=4]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %old = alloca %struct.Node*, align 4 ; [#uses=4]
+ %o21 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o12 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.Table* %t, %struct.Table** %2, align 4
+ store i32 %nasize, i32* %3, align 4
+ store i32 %nhsize, i32* %4, align 4
+ %5 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.Table* %5, i32 0, i32 10 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ store i32 %7, i32* %oldasize, align 4
+ %8 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.Table* %8, i32 0, i32 4 ; [#uses=1]
+ %10 = load i8* %9, align 1 ; [#uses=1]
+ %11 = zext i8 %10 to i32 ; [#uses=1]
+ store i32 %11, i32* %oldhsize, align 4
+ %12 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.Table* %12, i32 0, i32 7 ; [#uses=1]
+ %14 = load %struct.Node** %13, align 4 ; [#uses=1]
+ store %struct.Node* %14, %struct.Node** %nold, align 4
+ %15 = load i32* %3, align 4 ; [#uses=1]
+ %16 = load i32* %oldasize, align 4 ; [#uses=1]
+ %17 = icmp sgt i32 %15, %16 ; [#uses=1]
+ br i1 %17, label %18, label %22
+
+; <label>:18 ; preds = %0
+ %19 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %20 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %21 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z14setarrayvectorP9lua_StateP5Tablei(%struct.lua_State* %19, %struct.Table* %20, i32 %21)
+ br label %22
+
+; <label>:22 ; preds = %18, %0
+ %23 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %24 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %25 = load i32* %4, align 4 ; [#uses=1]
+ call void @_Z13setnodevectorP9lua_StateP5Tablei(%struct.lua_State* %23, %struct.Table* %24, i32 %25)
+ %26 = load i32* %3, align 4 ; [#uses=1]
+ %27 = load i32* %oldasize, align 4 ; [#uses=1]
+ %28 = icmp slt i32 %26, %27 ; [#uses=1]
+ br i1 %28, label %29, label %96
+
+; <label>:29 ; preds = %22
+ %30 = load i32* %3, align 4 ; [#uses=1]
+ %31 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.Table* %31, i32 0, i32 10 ; [#uses=1]
+ store i32 %30, i32* %32, align 4
+ %33 = load i32* %3, align 4 ; [#uses=1]
+ store i32 %33, i32* %i, align 4
+ br label %34
+
+; <label>:34 ; preds = %70, %29
+ %35 = load i32* %i, align 4 ; [#uses=1]
+ %36 = load i32* %oldasize, align 4 ; [#uses=1]
+ %37 = icmp slt i32 %35, %36 ; [#uses=1]
+ br i1 %37, label %38, label %73
+
+; <label>:38 ; preds = %34
+ %39 = load i32* %i, align 4 ; [#uses=1]
+ %40 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.Table* %40, i32 0, i32 6 ; [#uses=1]
+ %42 = load %struct.lua_TValue** %41, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.lua_TValue* %42, i32 %39 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.lua_TValue* %43, i32 0, i32 1 ; [#uses=1]
+ %45 = load i32* %44, align 4 ; [#uses=1]
+ %46 = icmp eq i32 %45, 0 ; [#uses=1]
+ br i1 %46, label %69, label %47
+
+; <label>:47 ; preds = %38
+ %48 = load i32* %i, align 4 ; [#uses=1]
+ %49 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.Table* %49, i32 0, i32 6 ; [#uses=1]
+ %51 = load %struct.lua_TValue** %50, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.lua_TValue* %51, i32 %48 ; [#uses=1]
+ store %struct.lua_TValue* %52, %struct.lua_TValue** %o2, align 4
+ %53 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %54 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %55 = load i32* %i, align 4 ; [#uses=1]
+ %56 = add nsw i32 %55, 1 ; [#uses=1]
+ %57 = call %struct.lua_TValue* @_Z11luaH_setnumP9lua_StateP5Tablei(%struct.lua_State* %53, %struct.Table* %54, i32 %56) ; [#uses=1]
+ store %struct.lua_TValue* %57, %struct.lua_TValue** %o1, align 4
+ %58 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.lua_TValue* %58, i32 0, i32 0 ; [#uses=1]
+ %60 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.lua_TValue* %60, i32 0, i32 0 ; [#uses=1]
+ %62 = bitcast %union.anon* %59 to i8* ; [#uses=1]
+ %63 = bitcast %union.anon* %61 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %62, i8* %63, i32 8, i32 4, i1 false)
+ %64 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %struct.lua_TValue* %64, i32 0, i32 1 ; [#uses=1]
+ %66 = load i32* %65, align 4 ; [#uses=1]
+ %67 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.lua_TValue* %67, i32 0, i32 1 ; [#uses=1]
+ store i32 %66, i32* %68, align 4
+ br label %69
+
+; <label>:69 ; preds = %47, %38
+ br label %70
+
+; <label>:70 ; preds = %69
+ %71 = load i32* %i, align 4 ; [#uses=1]
+ %72 = add nsw i32 %71, 1 ; [#uses=1]
+ store i32 %72, i32* %i, align 4
+ br label %34
+
+; <label>:73 ; preds = %34
+ %74 = load i32* %3, align 4 ; [#uses=1]
+ %75 = add nsw i32 %74, 1 ; [#uses=1]
+ %76 = icmp ule i32 %75, 357913941 ; [#uses=1]
+ br i1 %76, label %77, label %88
+
+; <label>:77 ; preds = %73
+ %78 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %79 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %80 = getelementptr inbounds %struct.Table* %79, i32 0, i32 6 ; [#uses=1]
+ %81 = load %struct.lua_TValue** %80, align 4 ; [#uses=1]
+ %82 = bitcast %struct.lua_TValue* %81 to i8* ; [#uses=1]
+ %83 = load i32* %oldasize, align 4 ; [#uses=1]
+ %84 = mul i32 %83, 12 ; [#uses=1]
+ %85 = load i32* %3, align 4 ; [#uses=1]
+ %86 = mul i32 %85, 12 ; [#uses=1]
+ %87 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %78, i8* %82, i32 %84, i32 %86) ; [#uses=1]
+ br label %91
+
+; <label>:88 ; preds = %73
+ %89 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %90 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %89) ; [#uses=1]
+ br label %91
+
+; <label>:91 ; preds = %88, %77
+ %92 = phi i8* [ %87, %77 ], [ %90, %88 ] ; [#uses=1]
+ %93 = bitcast i8* %92 to %struct.lua_TValue* ; [#uses=1]
+ %94 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %95 = getelementptr inbounds %struct.Table* %94, i32 0, i32 6 ; [#uses=1]
+ store %struct.lua_TValue* %93, %struct.lua_TValue** %95, align 4
+ br label %96
+
+; <label>:96 ; preds = %91, %22
+ %97 = load i32* %oldhsize, align 4 ; [#uses=1]
+ %98 = shl i32 1, %97 ; [#uses=1]
+ %99 = sub nsw i32 %98, 1 ; [#uses=1]
+ store i32 %99, i32* %i, align 4
+ br label %100
+
+; <label>:100 ; preds = %134, %96
+ %101 = load i32* %i, align 4 ; [#uses=1]
+ %102 = icmp sge i32 %101, 0 ; [#uses=1]
+ br i1 %102, label %103, label %137
+
+; <label>:103 ; preds = %100
+ %104 = load %struct.Node** %nold, align 4 ; [#uses=1]
+ %105 = load i32* %i, align 4 ; [#uses=1]
+ %106 = getelementptr inbounds %struct.Node* %104, i32 %105 ; [#uses=1]
+ store %struct.Node* %106, %struct.Node** %old, align 4
+ %107 = load %struct.Node** %old, align 4 ; [#uses=1]
+ %108 = getelementptr inbounds %struct.Node* %107, i32 0, i32 0 ; [#uses=1]
+ %109 = getelementptr inbounds %struct.lua_TValue* %108, i32 0, i32 1 ; [#uses=1]
+ %110 = load i32* %109, align 4 ; [#uses=1]
+ %111 = icmp eq i32 %110, 0 ; [#uses=1]
+ br i1 %111, label %133, label %112
+
+; <label>:112 ; preds = %103
+ %113 = load %struct.Node** %old, align 4 ; [#uses=1]
+ %114 = getelementptr inbounds %struct.Node* %113, i32 0, i32 0 ; [#uses=1]
+ store %struct.lua_TValue* %114, %struct.lua_TValue** %o21, align 4
+ %115 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %116 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %117 = load %struct.Node** %old, align 4 ; [#uses=1]
+ %118 = getelementptr inbounds %struct.Node* %117, i32 0, i32 1 ; [#uses=1]
+ %119 = getelementptr inbounds %union.TKey* %118, i32 0, i32 0 ; [#uses=1]
+ %120 = bitcast %1* %119 to %struct.lua_TValue* ; [#uses=1]
+ %121 = call %struct.lua_TValue* @_Z8luaH_setP9lua_StateP5TablePK10lua_TValue(%struct.lua_State* %115, %struct.Table* %116, %struct.lua_TValue* %120) ; [#uses=1]
+ store %struct.lua_TValue* %121, %struct.lua_TValue** %o12, align 4
+ %122 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %123 = getelementptr inbounds %struct.lua_TValue* %122, i32 0, i32 0 ; [#uses=1]
+ %124 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %125 = getelementptr inbounds %struct.lua_TValue* %124, i32 0, i32 0 ; [#uses=1]
+ %126 = bitcast %union.anon* %123 to i8* ; [#uses=1]
+ %127 = bitcast %union.anon* %125 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %126, i8* %127, i32 8, i32 4, i1 false)
+ %128 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %129 = getelementptr inbounds %struct.lua_TValue* %128, i32 0, i32 1 ; [#uses=1]
+ %130 = load i32* %129, align 4 ; [#uses=1]
+ %131 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %132 = getelementptr inbounds %struct.lua_TValue* %131, i32 0, i32 1 ; [#uses=1]
+ store i32 %130, i32* %132, align 4
+ br label %133
+
+; <label>:133 ; preds = %112, %103
+ br label %134
+
+; <label>:134 ; preds = %133
+ %135 = load i32* %i, align 4 ; [#uses=1]
+ %136 = add nsw i32 %135, -1 ; [#uses=1]
+ store i32 %136, i32* %i, align 4
+ br label %100
+
+; <label>:137 ; preds = %100
+ %138 = load %struct.Node** %nold, align 4 ; [#uses=1]
+ %139 = icmp ne %struct.Node* %138, bitcast (%9* @_ZL10dummynode_ to %struct.Node*) ; [#uses=1]
+ br i1 %139, label %140, label %148
+
+; <label>:140 ; preds = %137
+ %141 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %142 = load %struct.Node** %nold, align 4 ; [#uses=1]
+ %143 = bitcast %struct.Node* %142 to i8* ; [#uses=1]
+ %144 = load i32* %oldhsize, align 4 ; [#uses=1]
+ %145 = shl i32 1, %144 ; [#uses=1]
+ %146 = mul i32 %145, 28 ; [#uses=1]
+ %147 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %141, i8* %143, i32 %146, i32 0) ; [#uses=0]
+ br label %148
+
+; <label>:148 ; preds = %140, %137
+ ret void
+}
+
+; [#uses=7]
+define hidden %struct.Table* @_Z8luaH_newP9lua_Stateii(%struct.lua_State* %L, i32 %narray, i32 %nhash) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %t = alloca %struct.Table*, align 4 ; [#uses=11]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %narray, i32* %2, align 4
+ store i32 %nhash, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %4, i8* null, i32 0, i32 32) ; [#uses=1]
+ %6 = bitcast i8* %5 to %struct.Table* ; [#uses=1]
+ store %struct.Table* %6, %struct.Table** %t, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load %struct.Table** %t, align 4 ; [#uses=1]
+ %9 = bitcast %struct.Table* %8 to %union.GCObject* ; [#uses=1]
+ call void @_Z9luaC_linkP9lua_StateP8GCObjecth(%struct.lua_State* %7, %union.GCObject* %9, i8 zeroext 5)
+ %10 = load %struct.Table** %t, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Table* %10, i32 0, i32 5 ; [#uses=1]
+ store %struct.Table* null, %struct.Table** %11, align 4
+ %12 = load %struct.Table** %t, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.Table* %12, i32 0, i32 3 ; [#uses=1]
+ store i8 -1, i8* %13, align 1
+ %14 = load %struct.Table** %t, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.Table* %14, i32 0, i32 6 ; [#uses=1]
+ store %struct.lua_TValue* null, %struct.lua_TValue** %15, align 4
+ %16 = load %struct.Table** %t, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.Table* %16, i32 0, i32 10 ; [#uses=1]
+ store i32 0, i32* %17, align 4
+ %18 = load %struct.Table** %t, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.Table* %18, i32 0, i32 4 ; [#uses=1]
+ store i8 0, i8* %19, align 1
+ %20 = load %struct.Table** %t, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.Table* %20, i32 0, i32 7 ; [#uses=1]
+ store %struct.Node* bitcast (%9* @_ZL10dummynode_ to %struct.Node*), %struct.Node** %21, align 4
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = load %struct.Table** %t, align 4 ; [#uses=1]
+ %24 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z14setarrayvectorP9lua_StateP5Tablei(%struct.lua_State* %22, %struct.Table* %23, i32 %24)
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %26 = load %struct.Table** %t, align 4 ; [#uses=1]
+ %27 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z13setnodevectorP9lua_StateP5Tablei(%struct.lua_State* %25, %struct.Table* %26, i32 %27)
+ %28 = load %struct.Table** %t, align 4 ; [#uses=1]
+ ret %struct.Table* %28
+}
+
+; [#uses=2]
+define internal void @_Z14setarrayvectorP9lua_StateP5Tablei(%struct.lua_State* %L, %struct.Table* %t, i32 %size) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca %struct.Table*, align 4 ; [#uses=7]
+ %3 = alloca i32, align 4 ; [#uses=5]
+ %i = alloca i32, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.Table* %t, %struct.Table** %2, align 4
+ store i32 %size, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = add nsw i32 %4, 1 ; [#uses=1]
+ %6 = icmp ule i32 %5, 357913941 ; [#uses=1]
+ br i1 %6, label %7, label %20
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.Table* %9, i32 0, i32 6 ; [#uses=1]
+ %11 = load %struct.lua_TValue** %10, align 4 ; [#uses=1]
+ %12 = bitcast %struct.lua_TValue* %11 to i8* ; [#uses=1]
+ %13 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.Table* %13, i32 0, i32 10 ; [#uses=1]
+ %15 = load i32* %14, align 4 ; [#uses=1]
+ %16 = mul i32 %15, 12 ; [#uses=1]
+ %17 = load i32* %3, align 4 ; [#uses=1]
+ %18 = mul i32 %17, 12 ; [#uses=1]
+ %19 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %8, i8* %12, i32 %16, i32 %18) ; [#uses=1]
+ br label %23
+
+; <label>:20 ; preds = %0
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %22 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %21) ; [#uses=1]
+ br label %23
+
+; <label>:23 ; preds = %20, %7
+ %24 = phi i8* [ %19, %7 ], [ %22, %20 ] ; [#uses=1]
+ %25 = bitcast i8* %24 to %struct.lua_TValue* ; [#uses=1]
+ %26 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.Table* %26, i32 0, i32 6 ; [#uses=1]
+ store %struct.lua_TValue* %25, %struct.lua_TValue** %27, align 4
+ %28 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.Table* %28, i32 0, i32 10 ; [#uses=1]
+ %30 = load i32* %29, align 4 ; [#uses=1]
+ store i32 %30, i32* %i, align 4
+ br label %31
+
+; <label>:31 ; preds = %42, %23
+ %32 = load i32* %i, align 4 ; [#uses=1]
+ %33 = load i32* %3, align 4 ; [#uses=1]
+ %34 = icmp slt i32 %32, %33 ; [#uses=1]
+ br i1 %34, label %35, label %45
+
+; <label>:35 ; preds = %31
+ %36 = load i32* %i, align 4 ; [#uses=1]
+ %37 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.Table* %37, i32 0, i32 6 ; [#uses=1]
+ %39 = load %struct.lua_TValue** %38, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.lua_TValue* %39, i32 %36 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.lua_TValue* %40, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %41, align 4
+ br label %42
+
+; <label>:42 ; preds = %35
+ %43 = load i32* %i, align 4 ; [#uses=1]
+ %44 = add nsw i32 %43, 1 ; [#uses=1]
+ store i32 %44, i32* %i, align 4
+ br label %31
+
+; <label>:45 ; preds = %31
+ %46 = load i32* %3, align 4 ; [#uses=1]
+ %47 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.Table* %47, i32 0, i32 10 ; [#uses=1]
+ store i32 %46, i32* %48, align 4
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z13setnodevectorP9lua_StateP5Tablei(%struct.lua_State* %L, %struct.Table* %t, i32 %size) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca %struct.Table*, align 4 ; [#uses=7]
+ %3 = alloca i32, align 4 ; [#uses=8]
+ %lsize = alloca i32, align 4 ; [#uses=5]
+ %i = alloca i32, align 4 ; [#uses=5]
+ %n = alloca %struct.Node*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.Table* %t, %struct.Table** %2, align 4
+ store i32 %size, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = icmp eq i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %6, label %9
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.Table* %7, i32 0, i32 7 ; [#uses=1]
+ store %struct.Node* bitcast (%9* @_ZL10dummynode_ to %struct.Node*), %struct.Node** %8, align 4
+ store i32 0, i32* %lsize, align 4
+ br label %62
+
+; <label>:9 ; preds = %0
+ %10 = load i32* %3, align 4 ; [#uses=1]
+ %11 = sub nsw i32 %10, 1 ; [#uses=1]
+ %12 = call i32 @_Z9luaO_log2j(i32 %11) ; [#uses=1]
+ %13 = add nsw i32 %12, 1 ; [#uses=1]
+ store i32 %13, i32* %lsize, align 4
+ %14 = load i32* %lsize, align 4 ; [#uses=1]
+ %15 = icmp sgt i32 %14, 26 ; [#uses=1]
+ br i1 %15, label %16, label %18
+
+; <label>:16 ; preds = %9
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %17, i8* getelementptr inbounds ([15 x i8]* @.str2166, i32 0, i32 0))
+ br label %18
+
+; <label>:18 ; preds = %16, %9
+ %19 = load i32* %lsize, align 4 ; [#uses=1]
+ %20 = shl i32 1, %19 ; [#uses=1]
+ store i32 %20, i32* %3, align 4
+ %21 = load i32* %3, align 4 ; [#uses=1]
+ %22 = add nsw i32 %21, 1 ; [#uses=1]
+ %23 = icmp ule i32 %22, 153391689 ; [#uses=1]
+ br i1 %23, label %24, label %29
+
+; <label>:24 ; preds = %18
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %26 = load i32* %3, align 4 ; [#uses=1]
+ %27 = mul i32 %26, 28 ; [#uses=1]
+ %28 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %25, i8* null, i32 0, i32 %27) ; [#uses=1]
+ br label %32
+
+; <label>:29 ; preds = %18
+ %30 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %31 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %30) ; [#uses=1]
+ br label %32
+
+; <label>:32 ; preds = %29, %24
+ %33 = phi i8* [ %28, %24 ], [ %31, %29 ] ; [#uses=1]
+ %34 = bitcast i8* %33 to %struct.Node* ; [#uses=1]
+ %35 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.Table* %35, i32 0, i32 7 ; [#uses=1]
+ store %struct.Node* %34, %struct.Node** %36, align 4
+ store i32 0, i32* %i, align 4
+ br label %37
+
+; <label>:37 ; preds = %58, %32
+ %38 = load i32* %i, align 4 ; [#uses=1]
+ %39 = load i32* %3, align 4 ; [#uses=1]
+ %40 = icmp slt i32 %38, %39 ; [#uses=1]
+ br i1 %40, label %41, label %61
+
+; <label>:41 ; preds = %37
+ %42 = load i32* %i, align 4 ; [#uses=1]
+ %43 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.Table* %43, i32 0, i32 7 ; [#uses=1]
+ %45 = load %struct.Node** %44, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.Node* %45, i32 %42 ; [#uses=1]
+ store %struct.Node* %46, %struct.Node** %n, align 4
+ %47 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.Node* %47, i32 0, i32 1 ; [#uses=1]
+ %49 = getelementptr inbounds %union.TKey* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = getelementptr inbounds %1* %49, i32 0, i32 2 ; [#uses=1]
+ store %struct.Node* null, %struct.Node** %50, align 4
+ %51 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.Node* %51, i32 0, i32 1 ; [#uses=1]
+ %53 = getelementptr inbounds %union.TKey* %52, i32 0, i32 0 ; [#uses=1]
+ %54 = getelementptr inbounds %1* %53, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %54, align 4
+ %55 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.Node* %55, i32 0, i32 0 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.lua_TValue* %56, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %57, align 4
+ br label %58
+
+; <label>:58 ; preds = %41
+ %59 = load i32* %i, align 4 ; [#uses=1]
+ %60 = add nsw i32 %59, 1 ; [#uses=1]
+ store i32 %60, i32* %i, align 4
+ br label %37
+
+; <label>:61 ; preds = %37
+ br label %62
+
+; <label>:62 ; preds = %61, %6
+ %63 = load i32* %lsize, align 4 ; [#uses=1]
+ %64 = trunc i32 %63 to i8 ; [#uses=1]
+ %65 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.Table* %65, i32 0, i32 4 ; [#uses=1]
+ store i8 %64, i8* %66, align 1
+ %67 = load i32* %3, align 4 ; [#uses=1]
+ %68 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.Table* %68, i32 0, i32 7 ; [#uses=1]
+ %70 = load %struct.Node** %69, align 4 ; [#uses=1]
+ %71 = getelementptr inbounds %struct.Node* %70, i32 %67 ; [#uses=1]
+ %72 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.Table* %72, i32 0, i32 8 ; [#uses=1]
+ store %struct.Node* %71, %struct.Node** %73, align 4
+ ret void
+}
+
+; [#uses=1]
+define hidden void @_Z9luaH_freeP9lua_StateP5Table(%struct.lua_State* %L, %struct.Table* %t) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca %struct.Table*, align 4 ; [#uses=7]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.Table* %t, %struct.Table** %2, align 4
+ %3 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.Table* %3, i32 0, i32 7 ; [#uses=1]
+ %5 = load %struct.Node** %4, align 4 ; [#uses=1]
+ %6 = icmp ne %struct.Node* %5, bitcast (%9* @_ZL10dummynode_ to %struct.Node*) ; [#uses=1]
+ br i1 %6, label %7, label %20
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.Table* %9, i32 0, i32 7 ; [#uses=1]
+ %11 = load %struct.Node** %10, align 4 ; [#uses=1]
+ %12 = bitcast %struct.Node* %11 to i8* ; [#uses=1]
+ %13 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.Table* %13, i32 0, i32 4 ; [#uses=1]
+ %15 = load i8* %14, align 1 ; [#uses=1]
+ %16 = zext i8 %15 to i32 ; [#uses=1]
+ %17 = shl i32 1, %16 ; [#uses=1]
+ %18 = mul i32 %17, 28 ; [#uses=1]
+ %19 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %8, i8* %12, i32 %18, i32 0) ; [#uses=0]
+ br label %20
+
+; <label>:20 ; preds = %7, %0
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %22 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.Table* %22, i32 0, i32 6 ; [#uses=1]
+ %24 = load %struct.lua_TValue** %23, align 4 ; [#uses=1]
+ %25 = bitcast %struct.lua_TValue* %24 to i8* ; [#uses=1]
+ %26 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.Table* %26, i32 0, i32 10 ; [#uses=1]
+ %28 = load i32* %27, align 4 ; [#uses=1]
+ %29 = mul i32 %28, 12 ; [#uses=1]
+ %30 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %21, i8* %25, i32 %29, i32 0) ; [#uses=0]
+ %31 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %32 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %33 = bitcast %struct.Table* %32 to i8* ; [#uses=1]
+ %34 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %31, i8* %33, i32 32, i32 0) ; [#uses=0]
+ ret void
+}
+
+; [#uses=6]
+define hidden %struct.lua_TValue* @_Z11luaH_getnumP5Tablei(%struct.Table* %t, i32 %key) {
+ %1 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %2 = alloca %struct.Table*, align 4 ; [#uses=4]
+ %3 = alloca i32, align 4 ; [#uses=4]
+ %nk = alloca double, align 8 ; [#uses=3]
+ %n = alloca %struct.Node*, align 4 ; [#uses=7]
+ store %struct.Table* %t, %struct.Table** %2, align 4
+ store i32 %key, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = sub nsw i32 %4, 1 ; [#uses=1]
+ %6 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.Table* %6, i32 0, i32 10 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = icmp ult i32 %5, %8 ; [#uses=1]
+ br i1 %9, label %10, label %17
+
+; <label>:10 ; preds = %0
+ %11 = load i32* %3, align 4 ; [#uses=1]
+ %12 = sub nsw i32 %11, 1 ; [#uses=1]
+ %13 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.Table* %13, i32 0, i32 6 ; [#uses=1]
+ %15 = load %struct.lua_TValue** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 %12 ; [#uses=1]
+ store %struct.lua_TValue* %16, %struct.lua_TValue** %1
+ br label %53
+
+; <label>:17 ; preds = %0
+ %18 = load i32* %3, align 4 ; [#uses=1]
+ %19 = sitofp i32 %18 to double ; [#uses=1]
+ store double %19, double* %nk, align 8
+ %20 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %21 = load double* %nk, align 8 ; [#uses=1]
+ %22 = call %struct.Node* @_Z7hashnumPK5Tabled(%struct.Table* %20, double %21) ; [#uses=1]
+ store %struct.Node* %22, %struct.Node** %n, align 4
+ br label %23
+
+; <label>:23 ; preds = %49, %17
+ %24 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.Node* %24, i32 0, i32 1 ; [#uses=1]
+ %26 = getelementptr inbounds %union.TKey* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = getelementptr inbounds %1* %26, i32 0, i32 1 ; [#uses=1]
+ %28 = load i32* %27, align 4 ; [#uses=1]
+ %29 = icmp eq i32 %28, 3 ; [#uses=1]
+ br i1 %29, label %30, label %42
+
+; <label>:30 ; preds = %23
+ %31 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.Node* %31, i32 0, i32 1 ; [#uses=1]
+ %33 = getelementptr inbounds %union.TKey* %32, i32 0, i32 0 ; [#uses=1]
+ %34 = getelementptr inbounds %1* %33, i32 0, i32 0 ; [#uses=1]
+ %35 = getelementptr inbounds %union.anon* %34, i32 0, i32 0 ; [#uses=1]
+ %36 = load double* %35, align 4 ; [#uses=1]
+ %37 = load double* %nk, align 8 ; [#uses=1]
+ %38 = fcmp oeq double %36, %37 ; [#uses=1]
+ br i1 %38, label %39, label %42
+
+; <label>:39 ; preds = %30
+ %40 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.Node* %40, i32 0, i32 0 ; [#uses=1]
+ store %struct.lua_TValue* %41, %struct.lua_TValue** %1
+ br label %53
+
+; <label>:42 ; preds = %30, %23
+ %43 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %struct.Node* %43, i32 0, i32 1 ; [#uses=1]
+ %45 = getelementptr inbounds %union.TKey* %44, i32 0, i32 0 ; [#uses=1]
+ %46 = getelementptr inbounds %1* %45, i32 0, i32 2 ; [#uses=1]
+ %47 = load %struct.Node** %46, align 4 ; [#uses=1]
+ store %struct.Node* %47, %struct.Node** %n, align 4
+ br label %48
+
+; <label>:48 ; preds = %42
+ br label %49
+
+; <label>:49 ; preds = %48
+ %50 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %51 = icmp ne %struct.Node* %50, null ; [#uses=1]
+ br i1 %51, label %23, label %52
+
+; <label>:52 ; preds = %49
+ store %struct.lua_TValue* bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*), %struct.lua_TValue** %1
+ br label %53
+
+; <label>:53 ; preds = %52, %39, %10
+ %54 = load %struct.lua_TValue** %1 ; [#uses=1]
+ ret %struct.lua_TValue* %54
+}
+
+; [#uses=2]
+define internal %struct.Node* @_Z7hashnumPK5Tabled(%struct.Table* %t, double %n) nounwind {
+ %1 = alloca %struct.Node*, align 4 ; [#uses=3]
+ %2 = alloca %struct.Table*, align 4 ; [#uses=4]
+ %3 = alloca double, align 4 ; [#uses=3]
+ %a = alloca [2 x i32], align 4 ; [#uses=4]
+ %i = alloca i32, align 4 ; [#uses=5]
+ store %struct.Table* %t, %struct.Table** %2, align 4
+ store double %n, double* %3, align 8
+ %4 = load double* %3, align 8 ; [#uses=1]
+ %5 = fcmp oeq double %4, 0.000000e+00 ; [#uses=1]
+ br i1 %5, label %6, label %11
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.Table* %7, i32 0, i32 7 ; [#uses=1]
+ %9 = load %struct.Node** %8, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.Node* %9, i32 0 ; [#uses=1]
+ store %struct.Node* %10, %struct.Node** %1
+ br label %43
+
+; <label>:11 ; preds = %0
+ %12 = getelementptr inbounds [2 x i32]* %a, i32 0, i32 0 ; [#uses=1]
+ %13 = bitcast i32* %12 to i8* ; [#uses=1]
+ %14 = bitcast double* %3 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %13, i8* %14, i32 8, i32 1, i1 false)
+ store i32 1, i32* %i, align 4
+ br label %15
+
+; <label>:15 ; preds = %25, %11
+ %16 = load i32* %i, align 4 ; [#uses=1]
+ %17 = icmp slt i32 %16, 2 ; [#uses=1]
+ br i1 %17, label %18, label %28
+
+; <label>:18 ; preds = %15
+ %19 = load i32* %i, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds [2 x i32]* %a, i32 0, i32 %19 ; [#uses=1]
+ %21 = load i32* %20 ; [#uses=1]
+ %22 = getelementptr inbounds [2 x i32]* %a, i32 0, i32 0 ; [#uses=2]
+ %23 = load i32* %22 ; [#uses=1]
+ %24 = add i32 %23, %21 ; [#uses=1]
+ store i32 %24, i32* %22
+ br label %25
+
+; <label>:25 ; preds = %18
+ %26 = load i32* %i, align 4 ; [#uses=1]
+ %27 = add nsw i32 %26, 1 ; [#uses=1]
+ store i32 %27, i32* %i, align 4
+ br label %15
+
+; <label>:28 ; preds = %15
+ %29 = getelementptr inbounds [2 x i32]* %a, i32 0, i32 0 ; [#uses=1]
+ %30 = load i32* %29 ; [#uses=1]
+ %31 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.Table* %31, i32 0, i32 4 ; [#uses=1]
+ %33 = load i8* %32, align 1 ; [#uses=1]
+ %34 = zext i8 %33 to i32 ; [#uses=1]
+ %35 = shl i32 1, %34 ; [#uses=1]
+ %36 = sub nsw i32 %35, 1 ; [#uses=1]
+ %37 = or i32 %36, 1 ; [#uses=1]
+ %38 = urem i32 %30, %37 ; [#uses=1]
+ %39 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.Table* %39, i32 0, i32 7 ; [#uses=1]
+ %41 = load %struct.Node** %40, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.Node* %41, i32 %38 ; [#uses=1]
+ store %struct.Node* %42, %struct.Node** %1
+ br label %43
+
+; <label>:43 ; preds = %28, %6
+ %44 = load %struct.Node** %1 ; [#uses=1]
+ ret %struct.Node* %44
+}
+
+; [#uses=4]
+define hidden %struct.lua_TValue* @_Z11luaH_getstrP5TableP7TString(%struct.Table* %t, %union.TString* %key) nounwind {
+ %1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %2 = alloca %struct.Table*, align 4 ; [#uses=3]
+ %3 = alloca %union.TString*, align 4 ; [#uses=3]
+ %n = alloca %struct.Node*, align 4 ; [#uses=7]
+ store %struct.Table* %t, %struct.Table** %2, align 4
+ store %union.TString* %key, %union.TString** %3, align 4
+ %4 = load %union.TString** %3, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %union.TString* %4, i32 0, i32 0 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.anon* %5, i32 0, i32 4 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ %8 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.Table* %8, i32 0, i32 4 ; [#uses=1]
+ %10 = load i8* %9, align 1 ; [#uses=1]
+ %11 = zext i8 %10 to i32 ; [#uses=1]
+ %12 = shl i32 1, %11 ; [#uses=1]
+ %13 = sub nsw i32 %12, 1 ; [#uses=1]
+ %14 = and i32 %7, %13 ; [#uses=1]
+ %15 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.Table* %15, i32 0, i32 7 ; [#uses=1]
+ %17 = load %struct.Node** %16, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.Node* %17, i32 %14 ; [#uses=1]
+ store %struct.Node* %18, %struct.Node** %n, align 4
+ br label %19
+
+; <label>:19 ; preds = %48, %0
+ %20 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.Node* %20, i32 0, i32 1 ; [#uses=1]
+ %22 = getelementptr inbounds %union.TKey* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = getelementptr inbounds %1* %22, i32 0, i32 1 ; [#uses=1]
+ %24 = load i32* %23, align 4 ; [#uses=1]
+ %25 = icmp eq i32 %24, 4 ; [#uses=1]
+ br i1 %25, label %26, label %41
+
+; <label>:26 ; preds = %19
+ %27 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.Node* %27, i32 0, i32 1 ; [#uses=1]
+ %29 = getelementptr inbounds %union.TKey* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = getelementptr inbounds %1* %29, i32 0, i32 0 ; [#uses=1]
+ %31 = getelementptr inbounds %union.anon* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = bitcast double* %31 to %union.GCObject** ; [#uses=1]
+ %33 = load %union.GCObject** %32, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %union.GCObject* %33, i32 0, i32 0 ; [#uses=1]
+ %35 = bitcast %struct.lua_State* %34 to %union.TString* ; [#uses=1]
+ %36 = load %union.TString** %3, align 4 ; [#uses=1]
+ %37 = icmp eq %union.TString* %35, %36 ; [#uses=1]
+ br i1 %37, label %38, label %41
+
+; <label>:38 ; preds = %26
+ %39 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.Node* %39, i32 0, i32 0 ; [#uses=1]
+ store %struct.lua_TValue* %40, %struct.lua_TValue** %1
+ br label %52
+
+; <label>:41 ; preds = %26, %19
+ %42 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.Node* %42, i32 0, i32 1 ; [#uses=1]
+ %44 = getelementptr inbounds %union.TKey* %43, i32 0, i32 0 ; [#uses=1]
+ %45 = getelementptr inbounds %1* %44, i32 0, i32 2 ; [#uses=1]
+ %46 = load %struct.Node** %45, align 4 ; [#uses=1]
+ store %struct.Node* %46, %struct.Node** %n, align 4
+ br label %47
+
+; <label>:47 ; preds = %41
+ br label %48
+
+; <label>:48 ; preds = %47
+ %49 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %50 = icmp ne %struct.Node* %49, null ; [#uses=1]
+ br i1 %50, label %19, label %51
+
+; <label>:51 ; preds = %48
+ store %struct.lua_TValue* bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*), %struct.lua_TValue** %1
+ br label %52
+
+; <label>:52 ; preds = %51, %38
+ %53 = load %struct.lua_TValue** %1 ; [#uses=1]
+ ret %struct.lua_TValue* %53
+}
+
+; [#uses=3]
+define hidden %struct.lua_TValue* @_Z8luaH_getP5TablePK10lua_TValue(%struct.Table* %t, %struct.lua_TValue* %key) {
+ %1 = alloca %struct.lua_TValue*, align 4 ; [#uses=6]
+ %2 = alloca %struct.Table*, align 4 ; [#uses=4]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=7]
+ %k = alloca i32, align 4 ; [#uses=3]
+ %n = alloca double, align 8 ; [#uses=2]
+ %n1 = alloca %struct.Node*, align 4 ; [#uses=6]
+ store %struct.Table* %t, %struct.Table** %2, align 4
+ store %struct.lua_TValue* %key, %struct.lua_TValue** %3, align 4
+ %4 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_TValue* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ switch i32 %6, label %37 [
+ i32 0, label %7
+ i32 4, label %8
+ i32 3, label %18
+ ]
+
+; <label>:7 ; preds = %0
+ store %struct.lua_TValue* bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*), %struct.lua_TValue** %1
+ br label %63
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %10 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_TValue* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = getelementptr inbounds %union.anon* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = bitcast double* %12 to %union.GCObject** ; [#uses=1]
+ %14 = load %union.GCObject** %13, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %union.GCObject* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = bitcast %struct.lua_State* %15 to %union.TString* ; [#uses=1]
+ %17 = call %struct.lua_TValue* @_Z11luaH_getstrP5TableP7TString(%struct.Table* %9, %union.TString* %16) ; [#uses=1]
+ store %struct.lua_TValue* %17, %struct.lua_TValue** %1
+ br label %63
+
+; <label>:18 ; preds = %0
+ %19 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_TValue* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = getelementptr inbounds %union.anon* %20, i32 0, i32 0 ; [#uses=1]
+ %22 = load double* %21, align 4 ; [#uses=1]
+ store double %22, double* %n, align 8
+ %23 = load double* %n, align 8 ; [#uses=1]
+ %24 = fptosi double %23 to i32 ; [#uses=1]
+ store i32 %24, i32* %k, align 4
+ %25 = load i32* %k, align 4 ; [#uses=1]
+ %26 = sitofp i32 %25 to double ; [#uses=1]
+ %27 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_TValue* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = getelementptr inbounds %union.anon* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = load double* %29, align 4 ; [#uses=1]
+ %31 = fcmp oeq double %26, %30 ; [#uses=1]
+ br i1 %31, label %32, label %36
+
+; <label>:32 ; preds = %18
+ %33 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %34 = load i32* %k, align 4 ; [#uses=1]
+ %35 = call %struct.lua_TValue* @_Z11luaH_getnumP5Tablei(%struct.Table* %33, i32 %34) ; [#uses=1]
+ store %struct.lua_TValue* %35, %struct.lua_TValue** %1
+ br label %63
+
+; <label>:36 ; preds = %18
+ br label %37
+
+; <label>:37 ; preds = %36, %0
+ %38 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %39 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %40 = call %struct.Node* @_Z12mainpositionPK5TablePK10lua_TValue(%struct.Table* %38, %struct.lua_TValue* %39) ; [#uses=1]
+ store %struct.Node* %40, %struct.Node** %n1, align 4
+ br label %41
+
+; <label>:41 ; preds = %59, %37
+ %42 = load %struct.Node** %n1, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.Node* %42, i32 0, i32 1 ; [#uses=1]
+ %44 = getelementptr inbounds %union.TKey* %43, i32 0, i32 0 ; [#uses=1]
+ %45 = bitcast %1* %44 to %struct.lua_TValue* ; [#uses=1]
+ %46 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %47 = call i32 @_Z16luaO_rawequalObjPK10lua_TValueS1_(%struct.lua_TValue* %45, %struct.lua_TValue* %46) ; [#uses=1]
+ %48 = icmp ne i32 %47, 0 ; [#uses=1]
+ br i1 %48, label %49, label %52
+
+; <label>:49 ; preds = %41
+ %50 = load %struct.Node** %n1, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.Node* %50, i32 0, i32 0 ; [#uses=1]
+ store %struct.lua_TValue* %51, %struct.lua_TValue** %1
+ br label %63
+
+; <label>:52 ; preds = %41
+ %53 = load %struct.Node** %n1, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.Node* %53, i32 0, i32 1 ; [#uses=1]
+ %55 = getelementptr inbounds %union.TKey* %54, i32 0, i32 0 ; [#uses=1]
+ %56 = getelementptr inbounds %1* %55, i32 0, i32 2 ; [#uses=1]
+ %57 = load %struct.Node** %56, align 4 ; [#uses=1]
+ store %struct.Node* %57, %struct.Node** %n1, align 4
+ br label %58
+
+; <label>:58 ; preds = %52
+ br label %59
+
+; <label>:59 ; preds = %58
+ %60 = load %struct.Node** %n1, align 4 ; [#uses=1]
+ %61 = icmp ne %struct.Node* %60, null ; [#uses=1]
+ br i1 %61, label %41, label %62
+
+; <label>:62 ; preds = %59
+ store %struct.lua_TValue* bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*), %struct.lua_TValue** %1
+ br label %63
+
+; <label>:63 ; preds = %62, %49, %32, %8, %7
+ %64 = load %struct.lua_TValue** %1 ; [#uses=1]
+ ret %struct.lua_TValue* %64
+}
+
+; [#uses=4]
+define internal %struct.Node* @_Z12mainpositionPK5TablePK10lua_TValue(%struct.Table* %t, %struct.lua_TValue* %key) {
+ %1 = alloca %struct.Node*, align 4 ; [#uses=6]
+ %2 = alloca %struct.Table*, align 4 ; [#uses=10]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=7]
+ store %struct.Table* %t, %struct.Table** %2, align 4
+ store %struct.lua_TValue* %key, %struct.lua_TValue** %3, align 4
+ %4 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_TValue* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ switch i32 %6, label %72 [
+ i32 3, label %7
+ i32 4, label %14
+ i32 1, label %36
+ i32 2, label %53
+ ]
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %9 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_TValue* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = getelementptr inbounds %union.anon* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = load double* %11, align 4 ; [#uses=1]
+ %13 = call %struct.Node* @_Z7hashnumPK5Tabled(%struct.Table* %8, double %12) ; [#uses=1]
+ store %struct.Node* %13, %struct.Node** %1
+ br label %91
+
+; <label>:14 ; preds = %0
+ %15 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = getelementptr inbounds %union.anon* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = bitcast double* %17 to %union.GCObject** ; [#uses=1]
+ %19 = load %union.GCObject** %18, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %union.GCObject* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = bitcast %struct.lua_State* %20 to %union.TString* ; [#uses=1]
+ %22 = getelementptr inbounds %union.TString* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.anon* %22, i32 0, i32 4 ; [#uses=1]
+ %24 = load i32* %23, align 4 ; [#uses=1]
+ %25 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.Table* %25, i32 0, i32 4 ; [#uses=1]
+ %27 = load i8* %26, align 1 ; [#uses=1]
+ %28 = zext i8 %27 to i32 ; [#uses=1]
+ %29 = shl i32 1, %28 ; [#uses=1]
+ %30 = sub nsw i32 %29, 1 ; [#uses=1]
+ %31 = and i32 %24, %30 ; [#uses=1]
+ %32 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.Table* %32, i32 0, i32 7 ; [#uses=1]
+ %34 = load %struct.Node** %33, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.Node* %34, i32 %31 ; [#uses=1]
+ store %struct.Node* %35, %struct.Node** %1
+ br label %91
+
+; <label>:36 ; preds = %0
+ %37 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.lua_TValue* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = getelementptr inbounds %union.anon* %38, i32 0, i32 0 ; [#uses=1]
+ %40 = bitcast double* %39 to i32* ; [#uses=1]
+ %41 = load i32* %40, align 4 ; [#uses=1]
+ %42 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.Table* %42, i32 0, i32 4 ; [#uses=1]
+ %44 = load i8* %43, align 1 ; [#uses=1]
+ %45 = zext i8 %44 to i32 ; [#uses=1]
+ %46 = shl i32 1, %45 ; [#uses=1]
+ %47 = sub nsw i32 %46, 1 ; [#uses=1]
+ %48 = and i32 %41, %47 ; [#uses=1]
+ %49 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.Table* %49, i32 0, i32 7 ; [#uses=1]
+ %51 = load %struct.Node** %50, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.Node* %51, i32 %48 ; [#uses=1]
+ store %struct.Node* %52, %struct.Node** %1
+ br label %91
+
+; <label>:53 ; preds = %0
+ %54 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.lua_TValue* %54, i32 0, i32 0 ; [#uses=1]
+ %56 = getelementptr inbounds %union.anon* %55, i32 0, i32 0 ; [#uses=1]
+ %57 = bitcast double* %56 to i8** ; [#uses=1]
+ %58 = load i8** %57, align 4 ; [#uses=1]
+ %59 = ptrtoint i8* %58 to i32 ; [#uses=1]
+ %60 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.Table* %60, i32 0, i32 4 ; [#uses=1]
+ %62 = load i8* %61, align 1 ; [#uses=1]
+ %63 = zext i8 %62 to i32 ; [#uses=1]
+ %64 = shl i32 1, %63 ; [#uses=1]
+ %65 = sub nsw i32 %64, 1 ; [#uses=1]
+ %66 = or i32 %65, 1 ; [#uses=1]
+ %67 = urem i32 %59, %66 ; [#uses=1]
+ %68 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.Table* %68, i32 0, i32 7 ; [#uses=1]
+ %70 = load %struct.Node** %69, align 4 ; [#uses=1]
+ %71 = getelementptr inbounds %struct.Node* %70, i32 %67 ; [#uses=1]
+ store %struct.Node* %71, %struct.Node** %1
+ br label %91
+
+; <label>:72 ; preds = %0
+ %73 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.lua_TValue* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = getelementptr inbounds %union.anon* %74, i32 0, i32 0 ; [#uses=1]
+ %76 = bitcast double* %75 to %union.GCObject** ; [#uses=1]
+ %77 = load %union.GCObject** %76, align 4 ; [#uses=1]
+ %78 = ptrtoint %union.GCObject* %77 to i32 ; [#uses=1]
+ %79 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %80 = getelementptr inbounds %struct.Table* %79, i32 0, i32 4 ; [#uses=1]
+ %81 = load i8* %80, align 1 ; [#uses=1]
+ %82 = zext i8 %81 to i32 ; [#uses=1]
+ %83 = shl i32 1, %82 ; [#uses=1]
+ %84 = sub nsw i32 %83, 1 ; [#uses=1]
+ %85 = or i32 %84, 1 ; [#uses=1]
+ %86 = urem i32 %78, %85 ; [#uses=1]
+ %87 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %88 = getelementptr inbounds %struct.Table* %87, i32 0, i32 7 ; [#uses=1]
+ %89 = load %struct.Node** %88, align 4 ; [#uses=1]
+ %90 = getelementptr inbounds %struct.Node* %89, i32 %86 ; [#uses=1]
+ store %struct.Node* %90, %struct.Node** %1
+ br label %91
+
+; <label>:91 ; preds = %72, %53, %36, %14, %7
+ %92 = load %struct.Node** %1 ; [#uses=1]
+ ret %struct.Node* %92
+}
+
+; [#uses=5]
+define hidden %struct.lua_TValue* @_Z8luaH_setP9lua_StateP5TablePK10lua_TValue(%struct.lua_State* %L, %struct.Table* %t, %struct.lua_TValue* %key) {
+ %1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %3 = alloca %struct.Table*, align 4 ; [#uses=4]
+ %4 = alloca %struct.lua_TValue*, align 4 ; [#uses=7]
+ %p = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.Table* %t, %struct.Table** %3, align 4
+ store %struct.lua_TValue* %key, %struct.lua_TValue** %4, align 4
+ %5 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %6 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %7 = call %struct.lua_TValue* @_Z8luaH_getP5TablePK10lua_TValue(%struct.Table* %5, %struct.lua_TValue* %6) ; [#uses=1]
+ store %struct.lua_TValue* %7, %struct.lua_TValue** %p, align 4
+ %8 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.Table* %8, i32 0, i32 3 ; [#uses=1]
+ store i8 0, i8* %9, align 1
+ %10 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ %11 = icmp ne %struct.lua_TValue* %10, bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*) ; [#uses=1]
+ br i1 %11, label %12, label %14
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %13, %struct.lua_TValue** %1
+ br label %44
+
+; <label>:14 ; preds = %0
+ %15 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 0, i32 1 ; [#uses=1]
+ %17 = load i32* %16, align 4 ; [#uses=1]
+ %18 = icmp eq i32 %17, 0 ; [#uses=1]
+ br i1 %18, label %19, label %21
+
+; <label>:19 ; preds = %14
+ %20 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %20, i8* getelementptr inbounds ([19 x i8]* @.str164, i32 0, i32 0))
+ br label %39
+
+; <label>:21 ; preds = %14
+ %22 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_TValue* %22, i32 0, i32 1 ; [#uses=1]
+ %24 = load i32* %23, align 4 ; [#uses=1]
+ %25 = icmp eq i32 %24, 3 ; [#uses=1]
+ br i1 %25, label %26, label %38
+
+; <label>:26 ; preds = %21
+ %27 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_TValue* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = getelementptr inbounds %union.anon* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = load double* %29, align 4 ; [#uses=1]
+ %31 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_TValue* %31, i32 0, i32 0 ; [#uses=1]
+ %33 = getelementptr inbounds %union.anon* %32, i32 0, i32 0 ; [#uses=1]
+ %34 = load double* %33, align 4 ; [#uses=1]
+ %35 = fcmp oeq double %30, %34 ; [#uses=1]
+ br i1 %35, label %38, label %36
+
+; <label>:36 ; preds = %26
+ %37 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %37, i8* getelementptr inbounds ([19 x i8]* @.str1165, i32 0, i32 0))
+ br label %38
+
+; <label>:38 ; preds = %36, %26, %21
+ br label %39
+
+; <label>:39 ; preds = %38, %19
+ %40 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %41 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %42 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %43 = call %struct.lua_TValue* @_Z6newkeyP9lua_StateP5TablePK10lua_TValue(%struct.lua_State* %40, %struct.Table* %41, %struct.lua_TValue* %42) ; [#uses=1]
+ store %struct.lua_TValue* %43, %struct.lua_TValue** %1
+ br label %44
+
+; <label>:44 ; preds = %39, %12
+ %45 = load %struct.lua_TValue** %1 ; [#uses=1]
+ ret %struct.lua_TValue* %45
+}
+
+; [#uses=3]
+define internal %struct.lua_TValue* @_Z6newkeyP9lua_StateP5TablePK10lua_TValue(%struct.lua_State* %L, %struct.Table* %t, %struct.lua_TValue* %key) {
+ %1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %3 = alloca %struct.Table*, align 4 ; [#uses=8]
+ %4 = alloca %struct.lua_TValue*, align 4 ; [#uses=8]
+ %mp = alloca %struct.Node*, align 4 ; [#uses=15]
+ %othern = alloca %struct.Node*, align 4 ; [#uses=6]
+ %n = alloca %struct.Node*, align 4 ; [#uses=7]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.Table* %t, %struct.Table** %3, align 4
+ store %struct.lua_TValue* %key, %struct.lua_TValue** %4, align 4
+ %5 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %6 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %7 = call %struct.Node* @_Z12mainpositionPK5TablePK10lua_TValue(%struct.Table* %5, %struct.lua_TValue* %6) ; [#uses=1]
+ store %struct.Node* %7, %struct.Node** %mp, align 4
+ %8 = load %struct.Node** %mp, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.Node* %8, i32 0, i32 0 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_TValue* %9, i32 0, i32 1 ; [#uses=1]
+ %11 = load i32* %10, align 4 ; [#uses=1]
+ %12 = icmp eq i32 %11, 0 ; [#uses=1]
+ br i1 %12, label %13, label %16
+
+; <label>:13 ; preds = %0
+ %14 = load %struct.Node** %mp, align 4 ; [#uses=1]
+ %15 = icmp eq %struct.Node* %14, bitcast (%9* @_ZL10dummynode_ to %struct.Node*) ; [#uses=1]
+ br i1 %15, label %16, label %88
+
+; <label>:16 ; preds = %13, %0
+ %17 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %18 = call %struct.Node* @_Z10getfreeposP5Table(%struct.Table* %17) ; [#uses=1]
+ store %struct.Node* %18, %struct.Node** %n, align 4
+ %19 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %20 = icmp eq %struct.Node* %19, null ; [#uses=1]
+ br i1 %20, label %21, label %29
+
+; <label>:21 ; preds = %16
+ %22 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %23 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %24 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ call void @_Z6rehashP9lua_StateP5TablePK10lua_TValue(%struct.lua_State* %22, %struct.Table* %23, %struct.lua_TValue* %24)
+ %25 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %26 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %27 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %28 = call %struct.lua_TValue* @_Z8luaH_setP9lua_StateP5TablePK10lua_TValue(%struct.lua_State* %25, %struct.Table* %26, %struct.lua_TValue* %27) ; [#uses=1]
+ store %struct.lua_TValue* %28, %struct.lua_TValue** %1
+ br label %137
+
+; <label>:29 ; preds = %16
+ %30 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %31 = load %struct.Node** %mp, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.Node* %31, i32 0, i32 1 ; [#uses=1]
+ %33 = getelementptr inbounds %union.TKey* %32, i32 0, i32 0 ; [#uses=1]
+ %34 = bitcast %1* %33 to %struct.lua_TValue* ; [#uses=1]
+ %35 = call %struct.Node* @_Z12mainpositionPK5TablePK10lua_TValue(%struct.Table* %30, %struct.lua_TValue* %34) ; [#uses=1]
+ store %struct.Node* %35, %struct.Node** %othern, align 4
+ %36 = load %struct.Node** %othern, align 4 ; [#uses=1]
+ %37 = load %struct.Node** %mp, align 4 ; [#uses=1]
+ %38 = icmp ne %struct.Node* %36, %37 ; [#uses=1]
+ br i1 %38, label %39, label %71
+
+; <label>:39 ; preds = %29
+ br label %40
+
+; <label>:40 ; preds = %48, %39
+ %41 = load %struct.Node** %othern, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.Node* %41, i32 0, i32 1 ; [#uses=1]
+ %43 = getelementptr inbounds %union.TKey* %42, i32 0, i32 0 ; [#uses=1]
+ %44 = getelementptr inbounds %1* %43, i32 0, i32 2 ; [#uses=1]
+ %45 = load %struct.Node** %44, align 4 ; [#uses=1]
+ %46 = load %struct.Node** %mp, align 4 ; [#uses=1]
+ %47 = icmp ne %struct.Node* %45, %46 ; [#uses=1]
+ br i1 %47, label %48, label %54
+
+; <label>:48 ; preds = %40
+ %49 = load %struct.Node** %othern, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.Node* %49, i32 0, i32 1 ; [#uses=1]
+ %51 = getelementptr inbounds %union.TKey* %50, i32 0, i32 0 ; [#uses=1]
+ %52 = getelementptr inbounds %1* %51, i32 0, i32 2 ; [#uses=1]
+ %53 = load %struct.Node** %52, align 4 ; [#uses=1]
+ store %struct.Node* %53, %struct.Node** %othern, align 4
+ br label %40
+
+; <label>:54 ; preds = %40
+ %55 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %56 = load %struct.Node** %othern, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.Node* %56, i32 0, i32 1 ; [#uses=1]
+ %58 = getelementptr inbounds %union.TKey* %57, i32 0, i32 0 ; [#uses=1]
+ %59 = getelementptr inbounds %1* %58, i32 0, i32 2 ; [#uses=1]
+ store %struct.Node* %55, %struct.Node** %59, align 4
+ %60 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %61 = load %struct.Node** %mp, align 4 ; [#uses=1]
+ %62 = bitcast %struct.Node* %60 to i8* ; [#uses=1]
+ %63 = bitcast %struct.Node* %61 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %62, i8* %63, i32 28, i32 4, i1 false)
+ %64 = load %struct.Node** %mp, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %struct.Node* %64, i32 0, i32 1 ; [#uses=1]
+ %66 = getelementptr inbounds %union.TKey* %65, i32 0, i32 0 ; [#uses=1]
+ %67 = getelementptr inbounds %1* %66, i32 0, i32 2 ; [#uses=1]
+ store %struct.Node* null, %struct.Node** %67, align 4
+ %68 = load %struct.Node** %mp, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.Node* %68, i32 0, i32 0 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.lua_TValue* %69, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %70, align 4
+ br label %87
+
+; <label>:71 ; preds = %29
+ %72 = load %struct.Node** %mp, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.Node* %72, i32 0, i32 1 ; [#uses=1]
+ %74 = getelementptr inbounds %union.TKey* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = getelementptr inbounds %1* %74, i32 0, i32 2 ; [#uses=1]
+ %76 = load %struct.Node** %75, align 4 ; [#uses=1]
+ %77 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %78 = getelementptr inbounds %struct.Node* %77, i32 0, i32 1 ; [#uses=1]
+ %79 = getelementptr inbounds %union.TKey* %78, i32 0, i32 0 ; [#uses=1]
+ %80 = getelementptr inbounds %1* %79, i32 0, i32 2 ; [#uses=1]
+ store %struct.Node* %76, %struct.Node** %80, align 4
+ %81 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %82 = load %struct.Node** %mp, align 4 ; [#uses=1]
+ %83 = getelementptr inbounds %struct.Node* %82, i32 0, i32 1 ; [#uses=1]
+ %84 = getelementptr inbounds %union.TKey* %83, i32 0, i32 0 ; [#uses=1]
+ %85 = getelementptr inbounds %1* %84, i32 0, i32 2 ; [#uses=1]
+ store %struct.Node* %81, %struct.Node** %85, align 4
+ %86 = load %struct.Node** %n, align 4 ; [#uses=1]
+ store %struct.Node* %86, %struct.Node** %mp, align 4
+ br label %87
+
+; <label>:87 ; preds = %71, %54
+ br label %88
+
+; <label>:88 ; preds = %87, %13
+ %89 = load %struct.Node** %mp, align 4 ; [#uses=1]
+ %90 = getelementptr inbounds %struct.Node* %89, i32 0, i32 1 ; [#uses=1]
+ %91 = getelementptr inbounds %union.TKey* %90, i32 0, i32 0 ; [#uses=1]
+ %92 = getelementptr inbounds %1* %91, i32 0, i32 0 ; [#uses=1]
+ %93 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %94 = getelementptr inbounds %struct.lua_TValue* %93, i32 0, i32 0 ; [#uses=1]
+ %95 = bitcast %union.anon* %92 to i8* ; [#uses=1]
+ %96 = bitcast %union.anon* %94 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %95, i8* %96, i32 8, i32 4, i1 false)
+ %97 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %98 = getelementptr inbounds %struct.lua_TValue* %97, i32 0, i32 1 ; [#uses=1]
+ %99 = load i32* %98, align 4 ; [#uses=1]
+ %100 = load %struct.Node** %mp, align 4 ; [#uses=1]
+ %101 = getelementptr inbounds %struct.Node* %100, i32 0, i32 1 ; [#uses=1]
+ %102 = getelementptr inbounds %union.TKey* %101, i32 0, i32 0 ; [#uses=1]
+ %103 = getelementptr inbounds %1* %102, i32 0, i32 1 ; [#uses=1]
+ store i32 %99, i32* %103, align 4
+ %104 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %105 = getelementptr inbounds %struct.lua_TValue* %104, i32 0, i32 1 ; [#uses=1]
+ %106 = load i32* %105, align 4 ; [#uses=1]
+ %107 = icmp sge i32 %106, 4 ; [#uses=1]
+ br i1 %107, label %108, label %134
+
+; <label>:108 ; preds = %88
+ %109 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %110 = getelementptr inbounds %struct.lua_TValue* %109, i32 0, i32 0 ; [#uses=1]
+ %111 = getelementptr inbounds %union.anon* %110, i32 0, i32 0 ; [#uses=1]
+ %112 = bitcast double* %111 to %union.GCObject** ; [#uses=1]
+ %113 = load %union.GCObject** %112, align 4 ; [#uses=1]
+ %114 = getelementptr inbounds %union.GCObject* %113, i32 0, i32 0 ; [#uses=1]
+ %115 = bitcast %struct.lua_State* %114 to %struct.GCheader* ; [#uses=1]
+ %116 = getelementptr inbounds %struct.GCheader* %115, i32 0, i32 2 ; [#uses=1]
+ %117 = load i8* %116, align 1 ; [#uses=1]
+ %118 = zext i8 %117 to i32 ; [#uses=1]
+ %119 = and i32 %118, 3 ; [#uses=1]
+ %120 = icmp ne i32 %119, 0 ; [#uses=1]
+ br i1 %120, label %121, label %134
+
+; <label>:121 ; preds = %108
+ %122 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %123 = bitcast %struct.Table* %122 to %union.GCObject* ; [#uses=1]
+ %124 = getelementptr inbounds %union.GCObject* %123, i32 0, i32 0 ; [#uses=1]
+ %125 = bitcast %struct.lua_State* %124 to %struct.GCheader* ; [#uses=1]
+ %126 = getelementptr inbounds %struct.GCheader* %125, i32 0, i32 2 ; [#uses=1]
+ %127 = load i8* %126, align 1 ; [#uses=1]
+ %128 = zext i8 %127 to i32 ; [#uses=1]
+ %129 = and i32 %128, 4 ; [#uses=1]
+ %130 = icmp ne i32 %129, 0 ; [#uses=1]
+ br i1 %130, label %131, label %134
+
+; <label>:131 ; preds = %121
+ %132 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %133 = load %struct.Table** %3, align 4 ; [#uses=1]
+ call void @_Z16luaC_barrierbackP9lua_StateP5Table(%struct.lua_State* %132, %struct.Table* %133)
+ br label %134
+
+; <label>:134 ; preds = %131, %121, %108, %88
+ %135 = load %struct.Node** %mp, align 4 ; [#uses=1]
+ %136 = getelementptr inbounds %struct.Node* %135, i32 0, i32 0 ; [#uses=1]
+ store %struct.lua_TValue* %136, %struct.lua_TValue** %1
+ br label %137
+
+; <label>:137 ; preds = %134, %21
+ %138 = load %struct.lua_TValue** %1 ; [#uses=1]
+ ret %struct.lua_TValue* %138
+}
+
+; [#uses=5]
+define hidden %struct.lua_TValue* @_Z11luaH_setnumP9lua_StateP5Tablei(%struct.lua_State* %L, %struct.Table* %t, i32 %key) {
+ %1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %3 = alloca %struct.Table*, align 4 ; [#uses=3]
+ %4 = alloca i32, align 4 ; [#uses=3]
+ %p = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %k = alloca %struct.lua_TValue, align 4 ; [#uses=2]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.Table* %t, %struct.Table** %3, align 4
+ store i32 %key, i32* %4, align 4
+ %5 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %6 = load i32* %4, align 4 ; [#uses=1]
+ %7 = call %struct.lua_TValue* @_Z11luaH_getnumP5Tablei(%struct.Table* %5, i32 %6) ; [#uses=1]
+ store %struct.lua_TValue* %7, %struct.lua_TValue** %p, align 4
+ %8 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ %9 = icmp ne %struct.lua_TValue* %8, bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*) ; [#uses=1]
+ br i1 %9, label %10, label %12
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %11, %struct.lua_TValue** %1
+ br label %23
+
+; <label>:12 ; preds = %0
+ store %struct.lua_TValue* %k, %struct.lua_TValue** %i_o, align 4
+ %13 = load i32* %4, align 4 ; [#uses=1]
+ %14 = sitofp i32 %13 to double ; [#uses=1]
+ %15 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = getelementptr inbounds %union.anon* %16, i32 0, i32 0 ; [#uses=1]
+ store double %14, double* %17, align 4
+ %18 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_TValue* %18, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %19, align 4
+ %20 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %21 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %22 = call %struct.lua_TValue* @_Z6newkeyP9lua_StateP5TablePK10lua_TValue(%struct.lua_State* %20, %struct.Table* %21, %struct.lua_TValue* %k) ; [#uses=1]
+ store %struct.lua_TValue* %22, %struct.lua_TValue** %1
+ br label %23
+
+; <label>:23 ; preds = %12, %10
+ %24 = load %struct.lua_TValue** %1 ; [#uses=1]
+ ret %struct.lua_TValue* %24
+}
+
+; [#uses=2]
+define hidden %struct.lua_TValue* @_Z11luaH_setstrP9lua_StateP5TableP7TString(%struct.lua_State* %L, %struct.Table* %t, %union.TString* %key) {
+ %1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %3 = alloca %struct.Table*, align 4 ; [#uses=3]
+ %4 = alloca %union.TString*, align 4 ; [#uses=3]
+ %p = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %k = alloca %struct.lua_TValue, align 4 ; [#uses=2]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.Table* %t, %struct.Table** %3, align 4
+ store %union.TString* %key, %union.TString** %4, align 4
+ %5 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %6 = load %union.TString** %4, align 4 ; [#uses=1]
+ %7 = call %struct.lua_TValue* @_Z11luaH_getstrP5TableP7TString(%struct.Table* %5, %union.TString* %6) ; [#uses=1]
+ store %struct.lua_TValue* %7, %struct.lua_TValue** %p, align 4
+ %8 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ %9 = icmp ne %struct.lua_TValue* %8, bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*) ; [#uses=1]
+ br i1 %9, label %10, label %12
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_TValue** %p, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %11, %struct.lua_TValue** %1
+ br label %24
+
+; <label>:12 ; preds = %0
+ store %struct.lua_TValue* %k, %struct.lua_TValue** %i_o, align 4
+ %13 = load %union.TString** %4, align 4 ; [#uses=1]
+ %14 = bitcast %union.TString* %13 to %union.GCObject* ; [#uses=1]
+ %15 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.lua_TValue* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = getelementptr inbounds %union.anon* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = bitcast double* %17 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %14, %union.GCObject** %18, align 4
+ %19 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_TValue* %19, i32 0, i32 1 ; [#uses=1]
+ store i32 4, i32* %20, align 4
+ %21 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %22 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %23 = call %struct.lua_TValue* @_Z6newkeyP9lua_StateP5TablePK10lua_TValue(%struct.lua_State* %21, %struct.Table* %22, %struct.lua_TValue* %k) ; [#uses=1]
+ store %struct.lua_TValue* %23, %struct.lua_TValue** %1
+ br label %24
+
+; <label>:24 ; preds = %12, %10
+ %25 = load %struct.lua_TValue** %1 ; [#uses=1]
+ ret %struct.lua_TValue* %25
+}
+
+; [#uses=2]
+define hidden i32 @_Z9luaH_getnP5Table(%struct.Table* %t) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.Table*, align 4 ; [#uses=6]
+ %j = alloca i32, align 4 ; [#uses=8]
+ %i = alloca i32, align 4 ; [#uses=5]
+ %m = alloca i32, align 4 ; [#uses=4]
+ store %struct.Table* %t, %struct.Table** %2, align 4
+ %3 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.Table* %3, i32 0, i32 10 ; [#uses=1]
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ store i32 %5, i32* %j, align 4
+ %6 = load i32* %j, align 4 ; [#uses=1]
+ %7 = icmp ugt i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %45
+
+; <label>:8 ; preds = %0
+ %9 = load i32* %j, align 4 ; [#uses=1]
+ %10 = sub i32 %9, 1 ; [#uses=1]
+ %11 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.Table* %11, i32 0, i32 6 ; [#uses=1]
+ %13 = load %struct.lua_TValue** %12, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.lua_TValue* %13, i32 %10 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_TValue* %14, i32 0, i32 1 ; [#uses=1]
+ %16 = load i32* %15, align 4 ; [#uses=1]
+ %17 = icmp eq i32 %16, 0 ; [#uses=1]
+ br i1 %17, label %18, label %45
+
+; <label>:18 ; preds = %8
+ store i32 0, i32* %i, align 4
+ br label %19
+
+; <label>:19 ; preds = %42, %18
+ %20 = load i32* %j, align 4 ; [#uses=1]
+ %21 = load i32* %i, align 4 ; [#uses=1]
+ %22 = sub i32 %20, %21 ; [#uses=1]
+ %23 = icmp ugt i32 %22, 1 ; [#uses=1]
+ br i1 %23, label %24, label %43
+
+; <label>:24 ; preds = %19
+ %25 = load i32* %i, align 4 ; [#uses=1]
+ %26 = load i32* %j, align 4 ; [#uses=1]
+ %27 = add i32 %25, %26 ; [#uses=1]
+ %28 = udiv i32 %27, 2 ; [#uses=1]
+ store i32 %28, i32* %m, align 4
+ %29 = load i32* %m, align 4 ; [#uses=1]
+ %30 = sub i32 %29, 1 ; [#uses=1]
+ %31 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.Table* %31, i32 0, i32 6 ; [#uses=1]
+ %33 = load %struct.lua_TValue** %32, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_TValue* %33, i32 %30 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_TValue* %34, i32 0, i32 1 ; [#uses=1]
+ %36 = load i32* %35, align 4 ; [#uses=1]
+ %37 = icmp eq i32 %36, 0 ; [#uses=1]
+ br i1 %37, label %38, label %40
+
+; <label>:38 ; preds = %24
+ %39 = load i32* %m, align 4 ; [#uses=1]
+ store i32 %39, i32* %j, align 4
+ br label %42
+
+; <label>:40 ; preds = %24
+ %41 = load i32* %m, align 4 ; [#uses=1]
+ store i32 %41, i32* %i, align 4
+ br label %42
+
+; <label>:42 ; preds = %40, %38
+ br label %19
+
+; <label>:43 ; preds = %19
+ %44 = load i32* %i, align 4 ; [#uses=1]
+ store i32 %44, i32* %1
+ br label %56
+
+; <label>:45 ; preds = %8, %0
+ %46 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.Table* %46, i32 0, i32 7 ; [#uses=1]
+ %48 = load %struct.Node** %47, align 4 ; [#uses=1]
+ %49 = icmp eq %struct.Node* %48, bitcast (%9* @_ZL10dummynode_ to %struct.Node*) ; [#uses=1]
+ br i1 %49, label %50, label %52
+
+; <label>:50 ; preds = %45
+ %51 = load i32* %j, align 4 ; [#uses=1]
+ store i32 %51, i32* %1
+ br label %56
+
+; <label>:52 ; preds = %45
+ %53 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %54 = load i32* %j, align 4 ; [#uses=1]
+ %55 = call i32 @_Z14unbound_searchP5Tablej(%struct.Table* %53, i32 %54) ; [#uses=1]
+ store i32 %55, i32* %1
+ br label %56
+
+; <label>:56 ; preds = %52, %50, %43
+ %57 = load i32* %1 ; [#uses=1]
+ ret i32 %57
+}
+
+; [#uses=1]
+define internal i32 @_Z14unbound_searchP5Tablej(%struct.Table* %t, i32 %j) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.Table*, align 4 ; [#uses=4]
+ %3 = alloca i32, align 4 ; [#uses=12]
+ %i = alloca i32, align 4 ; [#uses=11]
+ %m = alloca i32, align 4 ; [#uses=4]
+ store %struct.Table* %t, %struct.Table** %2, align 4
+ store i32 %j, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ store i32 %4, i32* %i, align 4
+ %5 = load i32* %3, align 4 ; [#uses=1]
+ %6 = add i32 %5, 1 ; [#uses=1]
+ store i32 %6, i32* %3, align 4
+ br label %7
+
+; <label>:7 ; preds = %36, %0
+ %8 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %9 = load i32* %3, align 4 ; [#uses=1]
+ %10 = call %struct.lua_TValue* @_Z11luaH_getnumP5Tablei(%struct.Table* %8, i32 %9) ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_TValue* %10, i32 0, i32 1 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ %13 = icmp eq i32 %12, 0 ; [#uses=1]
+ %14 = xor i1 %13, true ; [#uses=1]
+ br i1 %14, label %15, label %37
+
+; <label>:15 ; preds = %7
+ %16 = load i32* %3, align 4 ; [#uses=1]
+ store i32 %16, i32* %i, align 4
+ %17 = load i32* %3, align 4 ; [#uses=1]
+ %18 = mul i32 %17, 2 ; [#uses=1]
+ store i32 %18, i32* %3, align 4
+ %19 = load i32* %3, align 4 ; [#uses=1]
+ %20 = icmp ugt i32 %19, 2147483645 ; [#uses=1]
+ br i1 %20, label %21, label %36
+
+; <label>:21 ; preds = %15
+ store i32 1, i32* %i, align 4
+ br label %22
+
+; <label>:22 ; preds = %30, %21
+ %23 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %24 = load i32* %i, align 4 ; [#uses=1]
+ %25 = call %struct.lua_TValue* @_Z11luaH_getnumP5Tablei(%struct.Table* %23, i32 %24) ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_TValue* %25, i32 0, i32 1 ; [#uses=1]
+ %27 = load i32* %26, align 4 ; [#uses=1]
+ %28 = icmp eq i32 %27, 0 ; [#uses=1]
+ %29 = xor i1 %28, true ; [#uses=1]
+ br i1 %29, label %30, label %33
+
+; <label>:30 ; preds = %22
+ %31 = load i32* %i, align 4 ; [#uses=1]
+ %32 = add i32 %31, 1 ; [#uses=1]
+ store i32 %32, i32* %i, align 4
+ br label %22
+
+; <label>:33 ; preds = %22
+ %34 = load i32* %i, align 4 ; [#uses=1]
+ %35 = sub i32 %34, 1 ; [#uses=1]
+ store i32 %35, i32* %1
+ br label %61
+
+; <label>:36 ; preds = %15
+ br label %7
+
+; <label>:37 ; preds = %7
+ br label %38
+
+; <label>:38 ; preds = %58, %37
+ %39 = load i32* %3, align 4 ; [#uses=1]
+ %40 = load i32* %i, align 4 ; [#uses=1]
+ %41 = sub i32 %39, %40 ; [#uses=1]
+ %42 = icmp ugt i32 %41, 1 ; [#uses=1]
+ br i1 %42, label %43, label %59
+
+; <label>:43 ; preds = %38
+ %44 = load i32* %i, align 4 ; [#uses=1]
+ %45 = load i32* %3, align 4 ; [#uses=1]
+ %46 = add i32 %44, %45 ; [#uses=1]
+ %47 = udiv i32 %46, 2 ; [#uses=1]
+ store i32 %47, i32* %m, align 4
+ %48 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %49 = load i32* %m, align 4 ; [#uses=1]
+ %50 = call %struct.lua_TValue* @_Z11luaH_getnumP5Tablei(%struct.Table* %48, i32 %49) ; [#uses=1]
+ %51 = getelementptr inbounds %struct.lua_TValue* %50, i32 0, i32 1 ; [#uses=1]
+ %52 = load i32* %51, align 4 ; [#uses=1]
+ %53 = icmp eq i32 %52, 0 ; [#uses=1]
+ br i1 %53, label %54, label %56
+
+; <label>:54 ; preds = %43
+ %55 = load i32* %m, align 4 ; [#uses=1]
+ store i32 %55, i32* %3, align 4
+ br label %58
+
+; <label>:56 ; preds = %43
+ %57 = load i32* %m, align 4 ; [#uses=1]
+ store i32 %57, i32* %i, align 4
+ br label %58
+
+; <label>:58 ; preds = %56, %54
+ br label %38
+
+; <label>:59 ; preds = %38
+ %60 = load i32* %i, align 4 ; [#uses=1]
+ store i32 %60, i32* %1
+ br label %61
+
+; <label>:61 ; preds = %59, %33
+ %62 = load i32* %1 ; [#uses=1]
+ ret i32 %62
+}
+
+; [#uses=1]
+define internal %struct.Node* @_Z10getfreeposP5Table(%struct.Table* %t) nounwind {
+ %1 = alloca %struct.Node*, align 4 ; [#uses=3]
+ %2 = alloca %struct.Table*, align 4 ; [#uses=5]
+ store %struct.Table* %t, %struct.Table** %2, align 4
+ br label %3
+
+; <label>:3 ; preds = %25, %0
+ %4 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.Table* %4, i32 0, i32 8 ; [#uses=2]
+ %6 = load %struct.Node** %5, align 4 ; [#uses=2]
+ %7 = getelementptr inbounds %struct.Node* %6, i32 -1 ; [#uses=1]
+ store %struct.Node* %7, %struct.Node** %5, align 4
+ %8 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.Table* %8, i32 0, i32 7 ; [#uses=1]
+ %10 = load %struct.Node** %9, align 4 ; [#uses=1]
+ %11 = icmp ugt %struct.Node* %6, %10 ; [#uses=1]
+ br i1 %11, label %12, label %26
+
+; <label>:12 ; preds = %3
+ %13 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.Table* %13, i32 0, i32 8 ; [#uses=1]
+ %15 = load %struct.Node** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.Node* %15, i32 0, i32 1 ; [#uses=1]
+ %17 = getelementptr inbounds %union.TKey* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = getelementptr inbounds %1* %17, i32 0, i32 1 ; [#uses=1]
+ %19 = load i32* %18, align 4 ; [#uses=1]
+ %20 = icmp eq i32 %19, 0 ; [#uses=1]
+ br i1 %20, label %21, label %25
+
+; <label>:21 ; preds = %12
+ %22 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.Table* %22, i32 0, i32 8 ; [#uses=1]
+ %24 = load %struct.Node** %23, align 4 ; [#uses=1]
+ store %struct.Node* %24, %struct.Node** %1
+ br label %27
+
+; <label>:25 ; preds = %12
+ br label %3
+
+; <label>:26 ; preds = %3
+ store %struct.Node* null, %struct.Node** %1
+ br label %27
+
+; <label>:27 ; preds = %26, %21
+ %28 = load %struct.Node** %1 ; [#uses=1]
+ ret %struct.Node* %28
+}
+
+; [#uses=1]
+define internal void @_Z6rehashP9lua_StateP5TablePK10lua_TValue(%struct.lua_State* %L, %struct.Table* %t, %struct.lua_TValue* %ek) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca %struct.Table*, align 4 ; [#uses=4]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %nasize = alloca i32, align 4 ; [#uses=7]
+ %na = alloca i32, align 4 ; [#uses=2]
+ %nums = alloca [27 x i32], align 4 ; [#uses=5]
+ %i = alloca i32, align 4 ; [#uses=5]
+ %totaluse = alloca i32, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.Table* %t, %struct.Table** %2, align 4
+ store %struct.lua_TValue* %ek, %struct.lua_TValue** %3, align 4
+ store i32 0, i32* %i, align 4
+ br label %4
+
+; <label>:4 ; preds = %10, %0
+ %5 = load i32* %i, align 4 ; [#uses=1]
+ %6 = icmp sle i32 %5, 26 ; [#uses=1]
+ br i1 %6, label %7, label %13
+
+; <label>:7 ; preds = %4
+ %8 = load i32* %i, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds [27 x i32]* %nums, i32 0, i32 %8 ; [#uses=1]
+ store i32 0, i32* %9
+ br label %10
+
+; <label>:10 ; preds = %7
+ %11 = load i32* %i, align 4 ; [#uses=1]
+ %12 = add nsw i32 %11, 1 ; [#uses=1]
+ store i32 %12, i32* %i, align 4
+ br label %4
+
+; <label>:13 ; preds = %4
+ %14 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds [27 x i32]* %nums, i32 0, i32 0 ; [#uses=1]
+ %16 = call i32 @_Z11numusearrayPK5TablePi(%struct.Table* %14, i32* %15) ; [#uses=1]
+ store i32 %16, i32* %nasize, align 4
+ %17 = load i32* %nasize, align 4 ; [#uses=1]
+ store i32 %17, i32* %totaluse, align 4
+ %18 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds [27 x i32]* %nums, i32 0, i32 0 ; [#uses=1]
+ %20 = call i32 @_Z10numusehashPK5TablePiS2_(%struct.Table* %18, i32* %19, i32* %nasize) ; [#uses=1]
+ %21 = load i32* %totaluse, align 4 ; [#uses=1]
+ %22 = add nsw i32 %21, %20 ; [#uses=1]
+ store i32 %22, i32* %totaluse, align 4
+ %23 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds [27 x i32]* %nums, i32 0, i32 0 ; [#uses=1]
+ %25 = call i32 @_Z8countintPK10lua_TValuePi(%struct.lua_TValue* %23, i32* %24) ; [#uses=1]
+ %26 = load i32* %nasize, align 4 ; [#uses=1]
+ %27 = add nsw i32 %26, %25 ; [#uses=1]
+ store i32 %27, i32* %nasize, align 4
+ %28 = load i32* %totaluse, align 4 ; [#uses=1]
+ %29 = add nsw i32 %28, 1 ; [#uses=1]
+ store i32 %29, i32* %totaluse, align 4
+ %30 = getelementptr inbounds [27 x i32]* %nums, i32 0, i32 0 ; [#uses=1]
+ %31 = call i32 @_Z12computesizesPiS_(i32* %30, i32* %nasize) ; [#uses=1]
+ store i32 %31, i32* %na, align 4
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %34 = load i32* %nasize, align 4 ; [#uses=1]
+ %35 = load i32* %totaluse, align 4 ; [#uses=1]
+ %36 = load i32* %na, align 4 ; [#uses=1]
+ %37 = sub nsw i32 %35, %36 ; [#uses=1]
+ call void @_Z6resizeP9lua_StateP5Tableii(%struct.lua_State* %32, %struct.Table* %33, i32 %34, i32 %37)
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z11numusearrayPK5TablePi(%struct.Table* %t, i32* %nums) nounwind {
+ %1 = alloca %struct.Table*, align 4 ; [#uses=4]
+ %2 = alloca i32*, align 4 ; [#uses=2]
+ %lg = alloca i32, align 4 ; [#uses=5]
+ %ttlg = alloca i32, align 4 ; [#uses=4]
+ %ause = alloca i32, align 4 ; [#uses=4]
+ %i = alloca i32, align 4 ; [#uses=6]
+ %lc = alloca i32, align 4 ; [#uses=5]
+ %lim = alloca i32, align 4 ; [#uses=5]
+ store %struct.Table* %t, %struct.Table** %1, align 4
+ store i32* %nums, i32** %2, align 4
+ store i32 0, i32* %ause, align 4
+ store i32 1, i32* %i, align 4
+ store i32 0, i32* %lg, align 4
+ store i32 1, i32* %ttlg, align 4
+ br label %3
+
+; <label>:3 ; preds = %54, %0
+ %4 = load i32* %lg, align 4 ; [#uses=1]
+ %5 = icmp sle i32 %4, 26 ; [#uses=1]
+ br i1 %5, label %6, label %59
+
+; <label>:6 ; preds = %3
+ store i32 0, i32* %lc, align 4
+ %7 = load i32* %ttlg, align 4 ; [#uses=1]
+ store i32 %7, i32* %lim, align 4
+ %8 = load i32* %lim, align 4 ; [#uses=1]
+ %9 = load %struct.Table** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.Table* %9, i32 0, i32 10 ; [#uses=1]
+ %11 = load i32* %10, align 4 ; [#uses=1]
+ %12 = icmp sgt i32 %8, %11 ; [#uses=1]
+ br i1 %12, label %13, label %22
+
+; <label>:13 ; preds = %6
+ %14 = load %struct.Table** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.Table* %14, i32 0, i32 10 ; [#uses=1]
+ %16 = load i32* %15, align 4 ; [#uses=1]
+ store i32 %16, i32* %lim, align 4
+ %17 = load i32* %i, align 4 ; [#uses=1]
+ %18 = load i32* %lim, align 4 ; [#uses=1]
+ %19 = icmp sgt i32 %17, %18 ; [#uses=1]
+ br i1 %19, label %20, label %21
+
+; <label>:20 ; preds = %13
+ br label %59
+
+; <label>:21 ; preds = %13
+ br label %22
+
+; <label>:22 ; preds = %21, %6
+ br label %23
+
+; <label>:23 ; preds = %41, %22
+ %24 = load i32* %i, align 4 ; [#uses=1]
+ %25 = load i32* %lim, align 4 ; [#uses=1]
+ %26 = icmp sle i32 %24, %25 ; [#uses=1]
+ br i1 %26, label %27, label %44
+
+; <label>:27 ; preds = %23
+ %28 = load i32* %i, align 4 ; [#uses=1]
+ %29 = sub nsw i32 %28, 1 ; [#uses=1]
+ %30 = load %struct.Table** %1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.Table* %30, i32 0, i32 6 ; [#uses=1]
+ %32 = load %struct.lua_TValue** %31, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_TValue* %32, i32 %29 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_TValue* %33, i32 0, i32 1 ; [#uses=1]
+ %35 = load i32* %34, align 4 ; [#uses=1]
+ %36 = icmp eq i32 %35, 0 ; [#uses=1]
+ br i1 %36, label %40, label %37
+
+; <label>:37 ; preds = %27
+ %38 = load i32* %lc, align 4 ; [#uses=1]
+ %39 = add nsw i32 %38, 1 ; [#uses=1]
+ store i32 %39, i32* %lc, align 4
+ br label %40
+
+; <label>:40 ; preds = %37, %27
+ br label %41
+
+; <label>:41 ; preds = %40
+ %42 = load i32* %i, align 4 ; [#uses=1]
+ %43 = add nsw i32 %42, 1 ; [#uses=1]
+ store i32 %43, i32* %i, align 4
+ br label %23
+
+; <label>:44 ; preds = %23
+ %45 = load i32* %lc, align 4 ; [#uses=1]
+ %46 = load i32* %lg, align 4 ; [#uses=1]
+ %47 = load i32** %2, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds i32* %47, i32 %46 ; [#uses=2]
+ %49 = load i32* %48 ; [#uses=1]
+ %50 = add nsw i32 %49, %45 ; [#uses=1]
+ store i32 %50, i32* %48
+ %51 = load i32* %lc, align 4 ; [#uses=1]
+ %52 = load i32* %ause, align 4 ; [#uses=1]
+ %53 = add nsw i32 %52, %51 ; [#uses=1]
+ store i32 %53, i32* %ause, align 4
+ br label %54
+
+; <label>:54 ; preds = %44
+ %55 = load i32* %lg, align 4 ; [#uses=1]
+ %56 = add nsw i32 %55, 1 ; [#uses=1]
+ store i32 %56, i32* %lg, align 4
+ %57 = load i32* %ttlg, align 4 ; [#uses=1]
+ %58 = mul nsw i32 %57, 2 ; [#uses=1]
+ store i32 %58, i32* %ttlg, align 4
+ br label %3
+
+; <label>:59 ; preds = %20, %3
+ %60 = load i32* %ause, align 4 ; [#uses=1]
+ ret i32 %60
+}
+
+; [#uses=1]
+define internal i32 @_Z10numusehashPK5TablePiS2_(%struct.Table* %t, i32* %nums, i32* %pnasize) {
+ %1 = alloca %struct.Table*, align 4 ; [#uses=3]
+ %2 = alloca i32*, align 4 ; [#uses=2]
+ %3 = alloca i32*, align 4 ; [#uses=2]
+ %totaluse = alloca i32, align 4 ; [#uses=4]
+ %ause = alloca i32, align 4 ; [#uses=4]
+ %i = alloca i32, align 4 ; [#uses=4]
+ %n = alloca %struct.Node*, align 4 ; [#uses=3]
+ store %struct.Table* %t, %struct.Table** %1, align 4
+ store i32* %nums, i32** %2, align 4
+ store i32* %pnasize, i32** %3, align 4
+ store i32 0, i32* %totaluse, align 4
+ store i32 0, i32* %ause, align 4
+ %4 = load %struct.Table** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.Table* %4, i32 0, i32 4 ; [#uses=1]
+ %6 = load i8* %5, align 1 ; [#uses=1]
+ %7 = zext i8 %6 to i32 ; [#uses=1]
+ %8 = shl i32 1, %7 ; [#uses=1]
+ store i32 %8, i32* %i, align 4
+ br label %9
+
+; <label>:9 ; preds = %35, %0
+ %10 = load i32* %i, align 4 ; [#uses=2]
+ %11 = add nsw i32 %10, -1 ; [#uses=1]
+ store i32 %11, i32* %i, align 4
+ %12 = icmp ne i32 %10, 0 ; [#uses=1]
+ br i1 %12, label %13, label %36
+
+; <label>:13 ; preds = %9
+ %14 = load i32* %i, align 4 ; [#uses=1]
+ %15 = load %struct.Table** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.Table* %15, i32 0, i32 7 ; [#uses=1]
+ %17 = load %struct.Node** %16, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.Node* %17, i32 %14 ; [#uses=1]
+ store %struct.Node* %18, %struct.Node** %n, align 4
+ %19 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.Node* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_TValue* %20, i32 0, i32 1 ; [#uses=1]
+ %22 = load i32* %21, align 4 ; [#uses=1]
+ %23 = icmp eq i32 %22, 0 ; [#uses=1]
+ br i1 %23, label %35, label %24
+
+; <label>:24 ; preds = %13
+ %25 = load %struct.Node** %n, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.Node* %25, i32 0, i32 1 ; [#uses=1]
+ %27 = getelementptr inbounds %union.TKey* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = bitcast %1* %27 to %struct.lua_TValue* ; [#uses=1]
+ %29 = load i32** %2, align 4 ; [#uses=1]
+ %30 = call i32 @_Z8countintPK10lua_TValuePi(%struct.lua_TValue* %28, i32* %29) ; [#uses=1]
+ %31 = load i32* %ause, align 4 ; [#uses=1]
+ %32 = add nsw i32 %31, %30 ; [#uses=1]
+ store i32 %32, i32* %ause, align 4
+ %33 = load i32* %totaluse, align 4 ; [#uses=1]
+ %34 = add nsw i32 %33, 1 ; [#uses=1]
+ store i32 %34, i32* %totaluse, align 4
+ br label %35
+
+; <label>:35 ; preds = %24, %13
+ br label %9
+
+; <label>:36 ; preds = %9
+ %37 = load i32* %ause, align 4 ; [#uses=1]
+ %38 = load i32** %3, align 4 ; [#uses=2]
+ %39 = load i32* %38 ; [#uses=1]
+ %40 = add nsw i32 %39, %37 ; [#uses=1]
+ store i32 %40, i32* %38
+ %41 = load i32* %totaluse, align 4 ; [#uses=1]
+ ret i32 %41
+}
+
+; [#uses=2]
+define internal i32 @_Z8countintPK10lua_TValuePi(%struct.lua_TValue* %key, i32* %nums) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %3 = alloca i32*, align 4 ; [#uses=2]
+ %k = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_TValue* %key, %struct.lua_TValue** %2, align 4
+ store i32* %nums, i32** %3, align 4
+ %4 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z10arrayindexPK10lua_TValue(%struct.lua_TValue* %4) ; [#uses=1]
+ store i32 %5, i32* %k, align 4
+ %6 = load i32* %k, align 4 ; [#uses=1]
+ %7 = icmp slt i32 0, %6 ; [#uses=1]
+ br i1 %7, label %8, label %20
+
+; <label>:8 ; preds = %0
+ %9 = load i32* %k, align 4 ; [#uses=1]
+ %10 = icmp sle i32 %9, 67108864 ; [#uses=1]
+ br i1 %10, label %11, label %20
+
+; <label>:11 ; preds = %8
+ %12 = load i32* %k, align 4 ; [#uses=1]
+ %13 = sub nsw i32 %12, 1 ; [#uses=1]
+ %14 = call i32 @_Z9luaO_log2j(i32 %13) ; [#uses=1]
+ %15 = add nsw i32 %14, 1 ; [#uses=1]
+ %16 = load i32** %3, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds i32* %16, i32 %15 ; [#uses=2]
+ %18 = load i32* %17 ; [#uses=1]
+ %19 = add nsw i32 %18, 1 ; [#uses=1]
+ store i32 %19, i32* %17
+ store i32 1, i32* %1
+ br label %21
+
+; <label>:20 ; preds = %8, %0
+ store i32 0, i32* %1
+ br label %21
+
+; <label>:21 ; preds = %20, %11
+ %22 = load i32* %1 ; [#uses=1]
+ ret i32 %22
+}
+
+; [#uses=1]
+define internal i32 @_Z12computesizesPiS_(i32* %nums, i32* %narray) nounwind {
+ %1 = alloca i32*, align 4 ; [#uses=3]
+ %2 = alloca i32*, align 4 ; [#uses=4]
+ %i = alloca i32, align 4 ; [#uses=5]
+ %twotoi = alloca i32, align 4 ; [#uses=6]
+ %a = alloca i32, align 4 ; [#uses=6]
+ %na = alloca i32, align 4 ; [#uses=3]
+ %n = alloca i32, align 4 ; [#uses=3]
+ store i32* %nums, i32** %1, align 4
+ store i32* %narray, i32** %2, align 4
+ store i32 0, i32* %a, align 4
+ store i32 0, i32* %na, align 4
+ store i32 0, i32* %n, align 4
+ store i32 0, i32* %i, align 4
+ store i32 1, i32* %twotoi, align 4
+ br label %3
+
+; <label>:3 ; preds = %37, %0
+ %4 = load i32* %twotoi, align 4 ; [#uses=1]
+ %5 = sdiv i32 %4, 2 ; [#uses=1]
+ %6 = load i32** %2, align 4 ; [#uses=1]
+ %7 = load i32* %6 ; [#uses=1]
+ %8 = icmp slt i32 %5, %7 ; [#uses=1]
+ br i1 %8, label %9, label %42
+
+; <label>:9 ; preds = %3
+ %10 = load i32* %i, align 4 ; [#uses=1]
+ %11 = load i32** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds i32* %11, i32 %10 ; [#uses=1]
+ %13 = load i32* %12 ; [#uses=1]
+ %14 = icmp sgt i32 %13, 0 ; [#uses=1]
+ br i1 %14, label %15, label %30
+
+; <label>:15 ; preds = %9
+ %16 = load i32* %i, align 4 ; [#uses=1]
+ %17 = load i32** %1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds i32* %17, i32 %16 ; [#uses=1]
+ %19 = load i32* %18 ; [#uses=1]
+ %20 = load i32* %a, align 4 ; [#uses=1]
+ %21 = add nsw i32 %20, %19 ; [#uses=1]
+ store i32 %21, i32* %a, align 4
+ %22 = load i32* %a, align 4 ; [#uses=1]
+ %23 = load i32* %twotoi, align 4 ; [#uses=1]
+ %24 = sdiv i32 %23, 2 ; [#uses=1]
+ %25 = icmp sgt i32 %22, %24 ; [#uses=1]
+ br i1 %25, label %26, label %29
+
+; <label>:26 ; preds = %15
+ %27 = load i32* %twotoi, align 4 ; [#uses=1]
+ store i32 %27, i32* %n, align 4
+ %28 = load i32* %a, align 4 ; [#uses=1]
+ store i32 %28, i32* %na, align 4
+ br label %29
+
+; <label>:29 ; preds = %26, %15
+ br label %30
+
+; <label>:30 ; preds = %29, %9
+ %31 = load i32* %a, align 4 ; [#uses=1]
+ %32 = load i32** %2, align 4 ; [#uses=1]
+ %33 = load i32* %32 ; [#uses=1]
+ %34 = icmp eq i32 %31, %33 ; [#uses=1]
+ br i1 %34, label %35, label %36
+
+; <label>:35 ; preds = %30
+ br label %42
+
+; <label>:36 ; preds = %30
+ br label %37
+
+; <label>:37 ; preds = %36
+ %38 = load i32* %i, align 4 ; [#uses=1]
+ %39 = add nsw i32 %38, 1 ; [#uses=1]
+ store i32 %39, i32* %i, align 4
+ %40 = load i32* %twotoi, align 4 ; [#uses=1]
+ %41 = mul nsw i32 %40, 2 ; [#uses=1]
+ store i32 %41, i32* %twotoi, align 4
+ br label %3
+
+; <label>:42 ; preds = %35, %3
+ %43 = load i32* %n, align 4 ; [#uses=1]
+ %44 = load i32** %2, align 4 ; [#uses=1]
+ store i32 %43, i32* %44
+ %45 = load i32* %na, align 4 ; [#uses=1]
+ ret i32 %45
+}
+
+; [#uses=2]
+define internal i32 @_Z10arrayindexPK10lua_TValue(%struct.lua_TValue* %key) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %n = alloca double, align 8 ; [#uses=3]
+ %k = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_TValue* %key, %struct.lua_TValue** %2, align 4
+ %3 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_TValue* %3, i32 0, i32 1 ; [#uses=1]
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ %6 = icmp eq i32 %5, 3 ; [#uses=1]
+ br i1 %6, label %7, label %21
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_TValue* %8, i32 0, i32 0 ; [#uses=1]
+ %10 = getelementptr inbounds %union.anon* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = load double* %10, align 4 ; [#uses=1]
+ store double %11, double* %n, align 8
+ %12 = load double* %n, align 8 ; [#uses=1]
+ %13 = fptosi double %12 to i32 ; [#uses=1]
+ store i32 %13, i32* %k, align 4
+ %14 = load i32* %k, align 4 ; [#uses=1]
+ %15 = sitofp i32 %14 to double ; [#uses=1]
+ %16 = load double* %n, align 8 ; [#uses=1]
+ %17 = fcmp oeq double %15, %16 ; [#uses=1]
+ br i1 %17, label %18, label %20
+
+; <label>:18 ; preds = %7
+ %19 = load i32* %k, align 4 ; [#uses=1]
+ store i32 %19, i32* %1
+ br label %22
+
+; <label>:20 ; preds = %7
+ br label %21
+
+; <label>:21 ; preds = %20, %0
+ store i32 -1, i32* %1
+ br label %22
+
+; <label>:22 ; preds = %21, %18
+ %23 = load i32* %1 ; [#uses=1]
+ ret i32 %23
+}
+
+; [#uses=1]
+define hidden void @_Z9luaT_initP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %i = alloca i32, align 4 ; [#uses=8]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 0, i32* %i, align 4
+ br label %2
+
+; <label>:2 ; preds = %34, %0
+ %3 = load i32* %i, align 4 ; [#uses=1]
+ %4 = icmp slt i32 %3, 17 ; [#uses=1]
+ br i1 %4, label %5, label %37
+
+; <label>:5 ; preds = %2
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load i32* %i, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds [17 x i8*]* @_ZZ9luaT_initP9lua_StateE14luaT_eventname, i32 0, i32 %7 ; [#uses=1]
+ %9 = load i8** %8 ; [#uses=1]
+ %10 = load i32* %i, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds [17 x i8*]* @_ZZ9luaT_initP9lua_StateE14luaT_eventname, i32 0, i32 %10 ; [#uses=1]
+ %12 = load i8** %11 ; [#uses=1]
+ %13 = call i32 @strlen(i8* %12) ; [#uses=1]
+ %14 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %6, i8* %9, i32 %13) ; [#uses=1]
+ %15 = load i32* %i, align 4 ; [#uses=1]
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_State* %16, i32 0, i32 6 ; [#uses=1]
+ %18 = load %struct.global_State** %17, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.global_State* %18, i32 0, i32 24 ; [#uses=1]
+ %20 = getelementptr inbounds [17 x %union.TString*]* %19, i32 0, i32 %15 ; [#uses=1]
+ store %union.TString* %14, %union.TString** %20
+ %21 = load i32* %i, align 4 ; [#uses=1]
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_State* %22, i32 0, i32 6 ; [#uses=1]
+ %24 = load %struct.global_State** %23, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.global_State* %24, i32 0, i32 24 ; [#uses=1]
+ %26 = getelementptr inbounds [17 x %union.TString*]* %25, i32 0, i32 %21 ; [#uses=1]
+ %27 = load %union.TString** %26 ; [#uses=1]
+ %28 = getelementptr inbounds %union.TString* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.anon* %28, i32 0, i32 2 ; [#uses=2]
+ %30 = load i8* %29, align 1 ; [#uses=1]
+ %31 = zext i8 %30 to i32 ; [#uses=1]
+ %32 = or i32 %31, 32 ; [#uses=1]
+ %33 = trunc i32 %32 to i8 ; [#uses=1]
+ store i8 %33, i8* %29, align 1
+ br label %34
+
+; <label>:34 ; preds = %5
+ %35 = load i32* %i, align 4 ; [#uses=1]
+ %36 = add nsw i32 %35, 1 ; [#uses=1]
+ store i32 %36, i32* %i, align 4
+ br label %2
+
+; <label>:37 ; preds = %2
+ ret void
+}
+
+; [#uses=7]
+define hidden %struct.lua_TValue* @_Z10luaT_gettmP5Table3TMSP7TString(%struct.Table* %events, i32 %event, %union.TString* %ename) {
+ %1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %2 = alloca %struct.Table*, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca %union.TString*, align 4 ; [#uses=2]
+ %tm = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.Table* %events, %struct.Table** %2, align 4
+ store i32 %event, i32* %3, align 4
+ store %union.TString* %ename, %union.TString** %4, align 4
+ %5 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %6 = load %union.TString** %4, align 4 ; [#uses=1]
+ %7 = call %struct.lua_TValue* @_Z11luaH_getstrP5TableP7TString(%struct.Table* %5, %union.TString* %6) ; [#uses=1]
+ store %struct.lua_TValue* %7, %struct.lua_TValue** %tm, align 4
+ %8 = load %struct.lua_TValue** %tm, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_TValue* %8, i32 0, i32 1 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ %11 = icmp eq i32 %10, 0 ; [#uses=1]
+ br i1 %11, label %12, label %23
+
+; <label>:12 ; preds = %0
+ %13 = load i32* %3, align 4 ; [#uses=1]
+ %14 = shl i32 1, %13 ; [#uses=1]
+ %15 = trunc i32 %14 to i8 ; [#uses=1]
+ %16 = zext i8 %15 to i32 ; [#uses=1]
+ %17 = load %struct.Table** %2, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.Table* %17, i32 0, i32 3 ; [#uses=2]
+ %19 = load i8* %18, align 1 ; [#uses=1]
+ %20 = zext i8 %19 to i32 ; [#uses=1]
+ %21 = or i32 %20, %16 ; [#uses=1]
+ %22 = trunc i32 %21 to i8 ; [#uses=1]
+ store i8 %22, i8* %18, align 1
+ store %struct.lua_TValue* null, %struct.lua_TValue** %1
+ br label %25
+
+; <label>:23 ; preds = %0
+ %24 = load %struct.lua_TValue** %tm, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %24, %struct.lua_TValue** %1
+ br label %25
+
+; <label>:25 ; preds = %23, %12
+ %26 = load %struct.lua_TValue** %1 ; [#uses=1]
+ ret %struct.lua_TValue* %26
+}
+
+; [#uses=7]
+define hidden %struct.lua_TValue* @_Z15luaT_gettmbyobjP9lua_StatePK10lua_TValue3TMS(%struct.lua_State* %L, %struct.lua_TValue* %o, i32 %event) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %mt = alloca %struct.Table*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %o, %struct.lua_TValue** %2, align 4
+ store i32 %event, i32* %3, align 4
+ %4 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_TValue* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ switch i32 %6, label %28 [
+ i32 5, label %7
+ i32 7, label %17
+ ]
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_TValue* %8, i32 0, i32 0 ; [#uses=1]
+ %10 = getelementptr inbounds %union.anon* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = bitcast double* %10 to %union.GCObject** ; [#uses=1]
+ %12 = load %union.GCObject** %11, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %union.GCObject* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = bitcast %struct.lua_State* %13 to %struct.Table* ; [#uses=1]
+ %15 = getelementptr inbounds %struct.Table* %14, i32 0, i32 5 ; [#uses=1]
+ %16 = load %struct.Table** %15, align 4 ; [#uses=1]
+ store %struct.Table* %16, %struct.Table** %mt, align 4
+ br label %38
+
+; <label>:17 ; preds = %0
+ %18 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_TValue* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = getelementptr inbounds %union.anon* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = bitcast double* %20 to %union.GCObject** ; [#uses=1]
+ %22 = load %union.GCObject** %21, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %union.GCObject* %22, i32 0, i32 0 ; [#uses=1]
+ %24 = bitcast %struct.lua_State* %23 to %union.Udata* ; [#uses=1]
+ %25 = getelementptr inbounds %union.Udata* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = getelementptr inbounds %4* %25, i32 0, i32 3 ; [#uses=1]
+ %27 = load %struct.Table** %26, align 4 ; [#uses=1]
+ store %struct.Table* %27, %struct.Table** %mt, align 4
+ br label %38
+
+; <label>:28 ; preds = %0
+ %29 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_TValue* %29, i32 0, i32 1 ; [#uses=1]
+ %31 = load i32* %30, align 4 ; [#uses=1]
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_State* %32, i32 0, i32 6 ; [#uses=1]
+ %34 = load %struct.global_State** %33, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.global_State* %34, i32 0, i32 23 ; [#uses=1]
+ %36 = getelementptr inbounds [9 x %struct.Table*]* %35, i32 0, i32 %31 ; [#uses=1]
+ %37 = load %struct.Table** %36 ; [#uses=1]
+ store %struct.Table* %37, %struct.Table** %mt, align 4
+ br label %38
+
+; <label>:38 ; preds = %28, %17, %7
+ %39 = load %struct.Table** %mt, align 4 ; [#uses=1]
+ %40 = icmp ne %struct.Table* %39, null ; [#uses=1]
+ br i1 %40, label %41, label %51
+
+; <label>:41 ; preds = %38
+ %42 = load %struct.Table** %mt, align 4 ; [#uses=1]
+ %43 = load i32* %3, align 4 ; [#uses=1]
+ %44 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.lua_State* %44, i32 0, i32 6 ; [#uses=1]
+ %46 = load %struct.global_State** %45, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.global_State* %46, i32 0, i32 24 ; [#uses=1]
+ %48 = getelementptr inbounds [17 x %union.TString*]* %47, i32 0, i32 %43 ; [#uses=1]
+ %49 = load %union.TString** %48 ; [#uses=1]
+ %50 = call %struct.lua_TValue* @_Z11luaH_getstrP5TableP7TString(%struct.Table* %42, %union.TString* %49) ; [#uses=1]
+ br label %52
+
+; <label>:51 ; preds = %38
+ br label %52
+
+; <label>:52 ; preds = %51, %41
+ %53 = phi %struct.lua_TValue* [ %50, %41 ], [ bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*), %51 ] ; [#uses=1]
+ ret %struct.lua_TValue* %53
+}
+
+; [#uses=1]
+define hidden %struct.Proto* @_Z11luaU_undumpP9lua_StateP3ZioP7MbufferPKc(%struct.lua_State* %L, %struct.Zio* %Z, %struct.Mbuffer* %buff, i8* %name) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca %struct.Zio*, align 4 ; [#uses=2]
+ %3 = alloca %struct.Mbuffer*, align 4 ; [#uses=2]
+ %4 = alloca i8*, align 4 ; [#uses=6]
+ %S = alloca %14, align 4 ; [#uses=8]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.Zio* %Z, %struct.Zio** %2, align 4
+ store %struct.Mbuffer* %buff, %struct.Mbuffer** %3, align 4
+ store i8* %name, i8** %4, align 4
+ %5 = load i8** %4, align 4 ; [#uses=1]
+ %6 = load i8* %5 ; [#uses=1]
+ %7 = sext i8 %6 to i32 ; [#uses=1]
+ %8 = icmp eq i32 %7, 64 ; [#uses=1]
+ br i1 %8, label %14, label %9
+
+; <label>:9 ; preds = %0
+ %10 = load i8** %4, align 4 ; [#uses=1]
+ %11 = load i8* %10 ; [#uses=1]
+ %12 = sext i8 %11 to i32 ; [#uses=1]
+ %13 = icmp eq i32 %12, 61 ; [#uses=1]
+ br i1 %13, label %14, label %18
+
+; <label>:14 ; preds = %9, %0
+ %15 = load i8** %4, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds i8* %15, i32 1 ; [#uses=1]
+ %17 = getelementptr inbounds %14* %S, i32 0, i32 3 ; [#uses=1]
+ store i8* %16, i8** %17, align 4
+ br label %31
+
+; <label>:18 ; preds = %9
+ %19 = load i8** %4, align 4 ; [#uses=1]
+ %20 = load i8* %19 ; [#uses=1]
+ %21 = sext i8 %20 to i32 ; [#uses=1]
+ %22 = load i8* getelementptr inbounds ([5 x i8]* @.str208, i32 0, i32 0) ; [#uses=1]
+ %23 = sext i8 %22 to i32 ; [#uses=1]
+ %24 = icmp eq i32 %21, %23 ; [#uses=1]
+ br i1 %24, label %25, label %27
+
+; <label>:25 ; preds = %18
+ %26 = getelementptr inbounds %14* %S, i32 0, i32 3 ; [#uses=1]
+ store i8* getelementptr inbounds ([14 x i8]* @.str1209, i32 0, i32 0), i8** %26, align 4
+ br label %30
+
+; <label>:27 ; preds = %18
+ %28 = load i8** %4, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %14* %S, i32 0, i32 3 ; [#uses=1]
+ store i8* %28, i8** %29, align 4
+ br label %30
+
+; <label>:30 ; preds = %27, %25
+ br label %31
+
+; <label>:31 ; preds = %30, %14
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %14* %S, i32 0, i32 0 ; [#uses=1]
+ store %struct.lua_State* %32, %struct.lua_State** %33, align 4
+ %34 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %14* %S, i32 0, i32 1 ; [#uses=1]
+ store %struct.Zio* %34, %struct.Zio** %35, align 4
+ %36 = load %struct.Mbuffer** %3, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %14* %S, i32 0, i32 2 ; [#uses=1]
+ store %struct.Mbuffer* %36, %struct.Mbuffer** %37, align 4
+ call void @_Z10LoadHeaderP9LoadState(%14* %S)
+ %38 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %39 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %38, i8* getelementptr inbounds ([3 x i8]* @.str2210, i32 0, i32 0), i32 2) ; [#uses=1]
+ %40 = call %struct.Proto* @_Z12LoadFunctionP9LoadStateP7TString(%14* %S, %union.TString* %39) ; [#uses=1]
+ ret %struct.Proto* %40
+}
+
+; [#uses=1]
+define internal void @_Z10LoadHeaderP9LoadState(%14* %S) {
+ %1 = alloca %14*, align 4 ; [#uses=3]
+ %h = alloca [12 x i8], align 1 ; [#uses=2]
+ %s = alloca [12 x i8], align 1 ; [#uses=2]
+ store %14* %S, %14** %1, align 4
+ %2 = getelementptr inbounds [12 x i8]* %h, i32 0, i32 0 ; [#uses=1]
+ call void @_Z11luaU_headerPc(i8* %2)
+ %3 = load %14** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds [12 x i8]* %s, i32 0, i32 0 ; [#uses=1]
+ call void @_Z9LoadBlockP9LoadStatePvj(%14* %3, i8* %4, i32 12)
+ %5 = getelementptr inbounds [12 x i8]* %h, i32 0, i32 0 ; [#uses=1]
+ %6 = getelementptr inbounds [12 x i8]* %s, i32 0, i32 0 ; [#uses=1]
+ %7 = call i32 @memcmp(i8* %5, i8* %6, i32 12) nounwind readonly ; [#uses=1]
+ %8 = icmp ne i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %9, label %11
+
+; <label>:9 ; preds = %0
+ %10 = load %14** %1, align 4 ; [#uses=1]
+ call void @_Z5errorP9LoadStatePKc(%14* %10, i8* getelementptr inbounds ([11 x i8]* @.str9217, i32 0, i32 0))
+ br label %11
+
+; <label>:11 ; preds = %9, %0
+ ret void
+}
+
+; [#uses=2]
+define internal %struct.Proto* @_Z12LoadFunctionP9LoadStateP7TString(%14* %S, %union.TString* %p) {
+ %1 = alloca %14*, align 4 ; [#uses=22]
+ %2 = alloca %union.TString*, align 4 ; [#uses=2]
+ %f = alloca %struct.Proto*, align 4 ; [#uses=16]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %14* %S, %14** %1, align 4
+ store %union.TString* %p, %union.TString** %2, align 4
+ %3 = load %14** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %14* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = load %struct.lua_State** %4, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.lua_State* %5, i32 0, i32 15 ; [#uses=2]
+ %7 = load i16* %6, align 2 ; [#uses=1]
+ %8 = add i16 %7, 1 ; [#uses=2]
+ store i16 %8, i16* %6, align 2
+ %9 = zext i16 %8 to i32 ; [#uses=1]
+ %10 = icmp sgt i32 %9, 200 ; [#uses=1]
+ br i1 %10, label %11, label %13
+
+; <label>:11 ; preds = %0
+ %12 = load %14** %1, align 4 ; [#uses=1]
+ call void @_Z5errorP9LoadStatePKc(%14* %12, i8* getelementptr inbounds ([14 x i8]* @.str3211, i32 0, i32 0))
+ br label %13
+
+; <label>:13 ; preds = %11, %0
+ %14 = load %14** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %14* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = load %struct.lua_State** %15, align 4 ; [#uses=1]
+ %17 = call %struct.Proto* @_Z13luaF_newprotoP9lua_State(%struct.lua_State* %16) ; [#uses=1]
+ store %struct.Proto* %17, %struct.Proto** %f, align 4
+ %18 = load %14** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %14* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = load %struct.lua_State** %19, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_State* %20, i32 0, i32 4 ; [#uses=1]
+ %22 = load %struct.lua_TValue** %21, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %22, %struct.lua_TValue** %i_o, align 4
+ %23 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %24 = bitcast %struct.Proto* %23 to %union.GCObject* ; [#uses=1]
+ %25 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_TValue* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = getelementptr inbounds %union.anon* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = bitcast double* %27 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %24, %union.GCObject** %28, align 4
+ %29 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.lua_TValue* %29, i32 0, i32 1 ; [#uses=1]
+ store i32 9, i32* %30, align 4
+ %31 = load %14** %1, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %14* %31, i32 0, i32 0 ; [#uses=1]
+ %33 = load %struct.lua_State** %32, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_State* %33, i32 0, i32 9 ; [#uses=1]
+ %35 = load %struct.lua_TValue** %34, align 4 ; [#uses=1]
+ %36 = bitcast %struct.lua_TValue* %35 to i8* ; [#uses=1]
+ %37 = load %14** %1, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %14* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = load %struct.lua_State** %38, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.lua_State* %39, i32 0, i32 4 ; [#uses=1]
+ %41 = load %struct.lua_TValue** %40, align 4 ; [#uses=1]
+ %42 = bitcast %struct.lua_TValue* %41 to i8* ; [#uses=1]
+ %43 = ptrtoint i8* %36 to i32 ; [#uses=1]
+ %44 = ptrtoint i8* %42 to i32 ; [#uses=1]
+ %45 = sub i32 %43, %44 ; [#uses=1]
+ %46 = icmp sle i32 %45, 12 ; [#uses=1]
+ br i1 %46, label %47, label %51
+
+; <label>:47 ; preds = %13
+ %48 = load %14** %1, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %14* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = load %struct.lua_State** %49, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %50, i32 1)
+ br label %52
+
+; <label>:51 ; preds = %13
+ br label %52
+
+; <label>:52 ; preds = %51, %47
+ %53 = load %14** %1, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %14* %53, i32 0, i32 0 ; [#uses=1]
+ %55 = load %struct.lua_State** %54, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.lua_State* %55, i32 0, i32 4 ; [#uses=2]
+ %57 = load %struct.lua_TValue** %56, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.lua_TValue* %57, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %58, %struct.lua_TValue** %56, align 4
+ %59 = load %14** %1, align 4 ; [#uses=1]
+ %60 = call %union.TString* @_Z10LoadStringP9LoadState(%14* %59) ; [#uses=1]
+ %61 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds %struct.Proto* %61, i32 0, i32 9 ; [#uses=1]
+ store %union.TString* %60, %union.TString** %62, align 4
+ %63 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.Proto* %63, i32 0, i32 9 ; [#uses=1]
+ %65 = load %union.TString** %64, align 4 ; [#uses=1]
+ %66 = icmp eq %union.TString* %65, null ; [#uses=1]
+ br i1 %66, label %67, label %71
+
+; <label>:67 ; preds = %52
+ %68 = load %union.TString** %2, align 4 ; [#uses=1]
+ %69 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.Proto* %69, i32 0, i32 9 ; [#uses=1]
+ store %union.TString* %68, %union.TString** %70, align 4
+ br label %71
+
+; <label>:71 ; preds = %67, %52
+ %72 = load %14** %1, align 4 ; [#uses=1]
+ %73 = call i32 @_Z7LoadIntP9LoadState(%14* %72) ; [#uses=1]
+ %74 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %75 = getelementptr inbounds %struct.Proto* %74, i32 0, i32 16 ; [#uses=1]
+ store i32 %73, i32* %75, align 4
+ %76 = load %14** %1, align 4 ; [#uses=1]
+ %77 = call i32 @_Z7LoadIntP9LoadState(%14* %76) ; [#uses=1]
+ %78 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %79 = getelementptr inbounds %struct.Proto* %78, i32 0, i32 17 ; [#uses=1]
+ store i32 %77, i32* %79, align 4
+ %80 = load %14** %1, align 4 ; [#uses=1]
+ %81 = call i32 @_Z8LoadCharP9LoadState(%14* %80) ; [#uses=1]
+ %82 = trunc i32 %81 to i8 ; [#uses=1]
+ %83 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %84 = getelementptr inbounds %struct.Proto* %83, i32 0, i32 19 ; [#uses=1]
+ store i8 %82, i8* %84, align 1
+ %85 = load %14** %1, align 4 ; [#uses=1]
+ %86 = call i32 @_Z8LoadCharP9LoadState(%14* %85) ; [#uses=1]
+ %87 = trunc i32 %86 to i8 ; [#uses=1]
+ %88 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %89 = getelementptr inbounds %struct.Proto* %88, i32 0, i32 20 ; [#uses=1]
+ store i8 %87, i8* %89, align 1
+ %90 = load %14** %1, align 4 ; [#uses=1]
+ %91 = call i32 @_Z8LoadCharP9LoadState(%14* %90) ; [#uses=1]
+ %92 = trunc i32 %91 to i8 ; [#uses=1]
+ %93 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %94 = getelementptr inbounds %struct.Proto* %93, i32 0, i32 21 ; [#uses=1]
+ store i8 %92, i8* %94, align 1
+ %95 = load %14** %1, align 4 ; [#uses=1]
+ %96 = call i32 @_Z8LoadCharP9LoadState(%14* %95) ; [#uses=1]
+ %97 = trunc i32 %96 to i8 ; [#uses=1]
+ %98 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %99 = getelementptr inbounds %struct.Proto* %98, i32 0, i32 22 ; [#uses=1]
+ store i8 %97, i8* %99, align 1
+ %100 = load %14** %1, align 4 ; [#uses=1]
+ %101 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ call void @_Z8LoadCodeP9LoadStateP5Proto(%14* %100, %struct.Proto* %101)
+ %102 = load %14** %1, align 4 ; [#uses=1]
+ %103 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ call void @_Z13LoadConstantsP9LoadStateP5Proto(%14* %102, %struct.Proto* %103)
+ %104 = load %14** %1, align 4 ; [#uses=1]
+ %105 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ call void @_Z9LoadDebugP9LoadStateP5Proto(%14* %104, %struct.Proto* %105)
+ %106 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ %107 = call i32 @_Z14luaG_checkcodePK5Proto(%struct.Proto* %106) ; [#uses=1]
+ %108 = icmp ne i32 %107, 0 ; [#uses=1]
+ br i1 %108, label %111, label %109
+
+; <label>:109 ; preds = %71
+ %110 = load %14** %1, align 4 ; [#uses=1]
+ call void @_Z5errorP9LoadStatePKc(%14* %110, i8* getelementptr inbounds ([9 x i8]* @.str4212, i32 0, i32 0))
+ br label %111
+
+; <label>:111 ; preds = %109, %71
+ %112 = load %14** %1, align 4 ; [#uses=1]
+ %113 = getelementptr inbounds %14* %112, i32 0, i32 0 ; [#uses=1]
+ %114 = load %struct.lua_State** %113, align 4 ; [#uses=1]
+ %115 = getelementptr inbounds %struct.lua_State* %114, i32 0, i32 4 ; [#uses=2]
+ %116 = load %struct.lua_TValue** %115, align 4 ; [#uses=1]
+ %117 = getelementptr inbounds %struct.lua_TValue* %116, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %117, %struct.lua_TValue** %115, align 4
+ %118 = load %14** %1, align 4 ; [#uses=1]
+ %119 = getelementptr inbounds %14* %118, i32 0, i32 0 ; [#uses=1]
+ %120 = load %struct.lua_State** %119, align 4 ; [#uses=1]
+ %121 = getelementptr inbounds %struct.lua_State* %120, i32 0, i32 15 ; [#uses=2]
+ %122 = load i16* %121, align 2 ; [#uses=1]
+ %123 = add i16 %122, -1 ; [#uses=1]
+ store i16 %123, i16* %121, align 2
+ %124 = load %struct.Proto** %f, align 4 ; [#uses=1]
+ ret %struct.Proto* %124
+}
+
+; [#uses=2]
+define hidden void @_Z11luaU_headerPc(i8* %h) nounwind {
+ %1 = alloca i8*, align 4 ; [#uses=20]
+ %x = alloca i32, align 4 ; [#uses=2]
+ store i8* %h, i8** %1, align 4
+ store i32 1, i32* %x, align 4
+ %2 = load i8** %1, align 4 ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* getelementptr inbounds ([5 x i8]* @.str208, i32 0, i32 0), i32 4, i32 1, i1 false)
+ %3 = load i8** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds i8* %3, i32 4 ; [#uses=1]
+ store i8* %4, i8** %1, align 4
+ %5 = load i8** %1, align 4 ; [#uses=2]
+ %6 = getelementptr inbounds i8* %5, i32 1 ; [#uses=1]
+ store i8* %6, i8** %1, align 4
+ store i8 81, i8* %5
+ %7 = load i8** %1, align 4 ; [#uses=2]
+ %8 = getelementptr inbounds i8* %7, i32 1 ; [#uses=1]
+ store i8* %8, i8** %1, align 4
+ store i8 0, i8* %7
+ %9 = bitcast i32* %x to i8* ; [#uses=1]
+ %10 = load i8* %9 ; [#uses=1]
+ %11 = load i8** %1, align 4 ; [#uses=2]
+ %12 = getelementptr inbounds i8* %11, i32 1 ; [#uses=1]
+ store i8* %12, i8** %1, align 4
+ store i8 %10, i8* %11
+ %13 = load i8** %1, align 4 ; [#uses=2]
+ %14 = getelementptr inbounds i8* %13, i32 1 ; [#uses=1]
+ store i8* %14, i8** %1, align 4
+ store i8 4, i8* %13
+ %15 = load i8** %1, align 4 ; [#uses=2]
+ %16 = getelementptr inbounds i8* %15, i32 1 ; [#uses=1]
+ store i8* %16, i8** %1, align 4
+ store i8 4, i8* %15
+ %17 = load i8** %1, align 4 ; [#uses=2]
+ %18 = getelementptr inbounds i8* %17, i32 1 ; [#uses=1]
+ store i8* %18, i8** %1, align 4
+ store i8 4, i8* %17
+ %19 = load i8** %1, align 4 ; [#uses=2]
+ %20 = getelementptr inbounds i8* %19, i32 1 ; [#uses=1]
+ store i8* %20, i8** %1, align 4
+ store i8 8, i8* %19
+ %21 = load i8** %1, align 4 ; [#uses=2]
+ %22 = getelementptr inbounds i8* %21, i32 1 ; [#uses=1]
+ store i8* %22, i8** %1, align 4
+ store i8 0, i8* %21
+ ret void
+}
+
+; [#uses=6]
+define internal void @_Z5errorP9LoadStatePKc(%14* %S, i8* %why) {
+ %1 = alloca %14*, align 4 ; [#uses=4]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ store %14* %S, %14** %1, align 4
+ store i8* %why, i8** %2, align 4
+ %3 = load %14** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %14* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = load %struct.lua_State** %4, align 4 ; [#uses=1]
+ %6 = load %14** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %14* %6, i32 0, i32 3 ; [#uses=1]
+ %8 = load i8** %7, align 4 ; [#uses=1]
+ %9 = load i8** %2, align 4 ; [#uses=1]
+ %10 = call i8* (%struct.lua_State*, i8*, ...)* @_Z16luaO_pushfstringP9lua_StatePKcz(%struct.lua_State* %5, i8* getelementptr inbounds ([28 x i8]* @.str8216, i32 0, i32 0), i8* %8, i8* %9) ; [#uses=0]
+ %11 = load %14** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %14* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = load %struct.lua_State** %12, align 4 ; [#uses=1]
+ call void @_Z10luaD_throwP9lua_Statei(%struct.lua_State* %13, i32 3)
+ ret void
+}
+
+; [#uses=4]
+define internal %union.TString* @_Z10LoadStringP9LoadState(%14* %S) {
+ %1 = alloca %union.TString*, align 4 ; [#uses=3]
+ %2 = alloca %14*, align 4 ; [#uses=6]
+ %size = alloca i32, align 4 ; [#uses=5]
+ %s = alloca i8*, align 4 ; [#uses=3]
+ store %14* %S, %14** %2, align 4
+ %3 = load %14** %2, align 4 ; [#uses=1]
+ %4 = bitcast i32* %size to i8* ; [#uses=1]
+ call void @_Z9LoadBlockP9LoadStatePvj(%14* %3, i8* %4, i32 4)
+ %5 = load i32* %size, align 4 ; [#uses=1]
+ %6 = icmp eq i32 %5, 0 ; [#uses=1]
+ br i1 %6, label %7, label %8
+
+; <label>:7 ; preds = %0
+ store %union.TString* null, %union.TString** %1
+ br label %27
+
+; <label>:8 ; preds = %0
+ %9 = load %14** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %14* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = load %struct.lua_State** %10, align 4 ; [#uses=1]
+ %12 = load %14** %2, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %14* %12, i32 0, i32 2 ; [#uses=1]
+ %14 = load %struct.Mbuffer** %13, align 4 ; [#uses=1]
+ %15 = load i32* %size, align 4 ; [#uses=1]
+ %16 = call i8* @_Z14luaZ_openspaceP9lua_StateP7Mbufferj(%struct.lua_State* %11, %struct.Mbuffer* %14, i32 %15) ; [#uses=1]
+ store i8* %16, i8** %s, align 4
+ %17 = load %14** %2, align 4 ; [#uses=1]
+ %18 = load i8** %s, align 4 ; [#uses=1]
+ %19 = load i32* %size, align 4 ; [#uses=1]
+ call void @_Z9LoadBlockP9LoadStatePvj(%14* %17, i8* %18, i32 %19)
+ %20 = load %14** %2, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %14* %20, i32 0, i32 0 ; [#uses=1]
+ %22 = load %struct.lua_State** %21, align 4 ; [#uses=1]
+ %23 = load i8** %s, align 4 ; [#uses=1]
+ %24 = load i32* %size, align 4 ; [#uses=1]
+ %25 = sub i32 %24, 1 ; [#uses=1]
+ %26 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %22, i8* %23, i32 %25) ; [#uses=1]
+ store %union.TString* %26, %union.TString** %1
+ br label %27
+
+; <label>:27 ; preds = %8, %7
+ %28 = load %union.TString** %1 ; [#uses=1]
+ ret %union.TString* %28
+}
+
+; [#uses=10]
+define internal i32 @_Z7LoadIntP9LoadState(%14* %S) {
+ %1 = alloca %14*, align 4 ; [#uses=3]
+ %x = alloca i32, align 4 ; [#uses=3]
+ store %14* %S, %14** %1, align 4
+ %2 = load %14** %1, align 4 ; [#uses=1]
+ %3 = bitcast i32* %x to i8* ; [#uses=1]
+ call void @_Z9LoadBlockP9LoadStatePvj(%14* %2, i8* %3, i32 4)
+ %4 = load i32* %x, align 4 ; [#uses=1]
+ %5 = icmp slt i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %6, label %8
+
+; <label>:6 ; preds = %0
+ %7 = load %14** %1, align 4 ; [#uses=1]
+ call void @_Z5errorP9LoadStatePKc(%14* %7, i8* getelementptr inbounds ([12 x i8]* @.str7215, i32 0, i32 0))
+ br label %8
+
+; <label>:8 ; preds = %6, %0
+ %9 = load i32* %x, align 4 ; [#uses=1]
+ ret i32 %9
+}
+
+; [#uses=6]
+define internal i32 @_Z8LoadCharP9LoadState(%14* %S) {
+ %1 = alloca %14*, align 4 ; [#uses=2]
+ %x = alloca i8, align 1 ; [#uses=2]
+ store %14* %S, %14** %1, align 4
+ %2 = load %14** %1, align 4 ; [#uses=1]
+ call void @_Z9LoadBlockP9LoadStatePvj(%14* %2, i8* %x, i32 1)
+ %3 = load i8* %x, align 1 ; [#uses=1]
+ %4 = sext i8 %3 to i32 ; [#uses=1]
+ ret i32 %4
+}
+
+; [#uses=1]
+define internal void @_Z8LoadCodeP9LoadStateP5Proto(%14* %S, %struct.Proto* %f) {
+ %1 = alloca %14*, align 4 ; [#uses=5]
+ %2 = alloca %struct.Proto*, align 4 ; [#uses=4]
+ %n = alloca i32, align 4 ; [#uses=5]
+ store %14* %S, %14** %1, align 4
+ store %struct.Proto* %f, %struct.Proto** %2, align 4
+ %3 = load %14** %1, align 4 ; [#uses=1]
+ %4 = call i32 @_Z7LoadIntP9LoadState(%14* %3) ; [#uses=1]
+ store i32 %4, i32* %n, align 4
+ %5 = load i32* %n, align 4 ; [#uses=1]
+ %6 = add nsw i32 %5, 1 ; [#uses=1]
+ %7 = icmp ule i32 %6, 1073741823 ; [#uses=1]
+ br i1 %7, label %8, label %15
+
+; <label>:8 ; preds = %0
+ %9 = load %14** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %14* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = load %struct.lua_State** %10, align 4 ; [#uses=1]
+ %12 = load i32* %n, align 4 ; [#uses=1]
+ %13 = mul i32 %12, 4 ; [#uses=1]
+ %14 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %11, i8* null, i32 0, i32 %13) ; [#uses=1]
+ br label %20
+
+; <label>:15 ; preds = %0
+ %16 = load %14** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %14* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = load %struct.lua_State** %17, align 4 ; [#uses=1]
+ %19 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %18) ; [#uses=1]
+ br label %20
+
+; <label>:20 ; preds = %15, %8
+ %21 = phi i8* [ %14, %8 ], [ %19, %15 ] ; [#uses=1]
+ %22 = bitcast i8* %21 to i32* ; [#uses=1]
+ %23 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.Proto* %23, i32 0, i32 4 ; [#uses=1]
+ store i32* %22, i32** %24, align 4
+ %25 = load i32* %n, align 4 ; [#uses=1]
+ %26 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.Proto* %26, i32 0, i32 12 ; [#uses=1]
+ store i32 %25, i32* %27, align 4
+ %28 = load %14** %1, align 4 ; [#uses=1]
+ %29 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.Proto* %29, i32 0, i32 4 ; [#uses=1]
+ %31 = load i32** %30, align 4 ; [#uses=1]
+ %32 = bitcast i32* %31 to i8* ; [#uses=1]
+ %33 = load i32* %n, align 4 ; [#uses=1]
+ %34 = mul i32 %33, 4 ; [#uses=1]
+ call void @_Z9LoadBlockP9LoadStatePvj(%14* %28, i8* %32, i32 %34)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z13LoadConstantsP9LoadStateP5Proto(%14* %S, %struct.Proto* %f) {
+ %1 = alloca %14*, align 4 ; [#uses=13]
+ %2 = alloca %struct.Proto*, align 4 ; [#uses=10]
+ %i = alloca i32, align 4 ; [#uses=20]
+ %n = alloca i32, align 4 ; [#uses=12]
+ %o = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %t = alloca i32, align 4 ; [#uses=2]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %14* %S, %14** %1, align 4
+ store %struct.Proto* %f, %struct.Proto** %2, align 4
+ %3 = load %14** %1, align 4 ; [#uses=1]
+ %4 = call i32 @_Z7LoadIntP9LoadState(%14* %3) ; [#uses=1]
+ store i32 %4, i32* %n, align 4
+ %5 = load i32* %n, align 4 ; [#uses=1]
+ %6 = add nsw i32 %5, 1 ; [#uses=1]
+ %7 = icmp ule i32 %6, 357913941 ; [#uses=1]
+ br i1 %7, label %8, label %15
+
+; <label>:8 ; preds = %0
+ %9 = load %14** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %14* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = load %struct.lua_State** %10, align 4 ; [#uses=1]
+ %12 = load i32* %n, align 4 ; [#uses=1]
+ %13 = mul i32 %12, 12 ; [#uses=1]
+ %14 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %11, i8* null, i32 0, i32 %13) ; [#uses=1]
+ br label %20
+
+; <label>:15 ; preds = %0
+ %16 = load %14** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %14* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = load %struct.lua_State** %17, align 4 ; [#uses=1]
+ %19 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %18) ; [#uses=1]
+ br label %20
+
+; <label>:20 ; preds = %15, %8
+ %21 = phi i8* [ %14, %8 ], [ %19, %15 ] ; [#uses=1]
+ %22 = bitcast i8* %21 to %struct.lua_TValue* ; [#uses=1]
+ %23 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.Proto* %23, i32 0, i32 3 ; [#uses=1]
+ store %struct.lua_TValue* %22, %struct.lua_TValue** %24, align 4
+ %25 = load i32* %n, align 4 ; [#uses=1]
+ %26 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.Proto* %26, i32 0, i32 11 ; [#uses=1]
+ store i32 %25, i32* %27, align 4
+ store i32 0, i32* %i, align 4
+ br label %28
+
+; <label>:28 ; preds = %39, %20
+ %29 = load i32* %i, align 4 ; [#uses=1]
+ %30 = load i32* %n, align 4 ; [#uses=1]
+ %31 = icmp slt i32 %29, %30 ; [#uses=1]
+ br i1 %31, label %32, label %42
+
+; <label>:32 ; preds = %28
+ %33 = load i32* %i, align 4 ; [#uses=1]
+ %34 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.Proto* %34, i32 0, i32 3 ; [#uses=1]
+ %36 = load %struct.lua_TValue** %35, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.lua_TValue* %36, i32 %33 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.lua_TValue* %37, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %38, align 4
+ br label %39
+
+; <label>:39 ; preds = %32
+ %40 = load i32* %i, align 4 ; [#uses=1]
+ %41 = add nsw i32 %40, 1 ; [#uses=1]
+ store i32 %41, i32* %i, align 4
+ br label %28
+
+; <label>:42 ; preds = %28
+ store i32 0, i32* %i, align 4
+ br label %43
+
+; <label>:43 ; preds = %94, %42
+ %44 = load i32* %i, align 4 ; [#uses=1]
+ %45 = load i32* %n, align 4 ; [#uses=1]
+ %46 = icmp slt i32 %44, %45 ; [#uses=1]
+ br i1 %46, label %47, label %97
+
+; <label>:47 ; preds = %43
+ %48 = load i32* %i, align 4 ; [#uses=1]
+ %49 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.Proto* %49, i32 0, i32 3 ; [#uses=1]
+ %51 = load %struct.lua_TValue** %50, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.lua_TValue* %51, i32 %48 ; [#uses=1]
+ store %struct.lua_TValue* %52, %struct.lua_TValue** %o, align 4
+ %53 = load %14** %1, align 4 ; [#uses=1]
+ %54 = call i32 @_Z8LoadCharP9LoadState(%14* %53) ; [#uses=1]
+ store i32 %54, i32* %t, align 4
+ %55 = load i32* %t, align 4 ; [#uses=1]
+ switch i32 %55, label %91 [
+ i32 0, label %56
+ i32 1, label %59
+ i32 3, label %71
+ i32 4, label %80
+ ]
+
+; <label>:56 ; preds = %47
+ %57 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.lua_TValue* %57, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %58, align 4
+ br label %93
+
+; <label>:59 ; preds = %47
+ %60 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %60, %struct.lua_TValue** %i_o, align 4
+ %61 = load %14** %1, align 4 ; [#uses=1]
+ %62 = call i32 @_Z8LoadCharP9LoadState(%14* %61) ; [#uses=1]
+ %63 = icmp ne i32 %62, 0 ; [#uses=1]
+ %64 = zext i1 %63 to i32 ; [#uses=1]
+ %65 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.lua_TValue* %65, i32 0, i32 0 ; [#uses=1]
+ %67 = getelementptr inbounds %union.anon* %66, i32 0, i32 0 ; [#uses=1]
+ %68 = bitcast double* %67 to i32* ; [#uses=1]
+ store i32 %64, i32* %68, align 4
+ %69 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.lua_TValue* %69, i32 0, i32 1 ; [#uses=1]
+ store i32 1, i32* %70, align 4
+ br label %93
+
+; <label>:71 ; preds = %47
+ %72 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %72, %struct.lua_TValue** %i_o1, align 4
+ %73 = load %14** %1, align 4 ; [#uses=1]
+ %74 = call double @_Z10LoadNumberP9LoadState(%14* %73) ; [#uses=1]
+ %75 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %76 = getelementptr inbounds %struct.lua_TValue* %75, i32 0, i32 0 ; [#uses=1]
+ %77 = getelementptr inbounds %union.anon* %76, i32 0, i32 0 ; [#uses=1]
+ store double %74, double* %77, align 4
+ %78 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %79 = getelementptr inbounds %struct.lua_TValue* %78, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %79, align 4
+ br label %93
+
+; <label>:80 ; preds = %47
+ %81 = load %struct.lua_TValue** %o, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %81, %struct.lua_TValue** %i_o2, align 4
+ %82 = load %14** %1, align 4 ; [#uses=1]
+ %83 = call %union.TString* @_Z10LoadStringP9LoadState(%14* %82) ; [#uses=1]
+ %84 = bitcast %union.TString* %83 to %union.GCObject* ; [#uses=1]
+ %85 = load %struct.lua_TValue** %i_o2, align 4 ; [#uses=1]
+ %86 = getelementptr inbounds %struct.lua_TValue* %85, i32 0, i32 0 ; [#uses=1]
+ %87 = getelementptr inbounds %union.anon* %86, i32 0, i32 0 ; [#uses=1]
+ %88 = bitcast double* %87 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %84, %union.GCObject** %88, align 4
+ %89 = load %struct.lua_TValue** %i_o2, align 4 ; [#uses=1]
+ %90 = getelementptr inbounds %struct.lua_TValue* %89, i32 0, i32 1 ; [#uses=1]
+ store i32 4, i32* %90, align 4
+ br label %93
+
+; <label>:91 ; preds = %47
+ %92 = load %14** %1, align 4 ; [#uses=1]
+ call void @_Z5errorP9LoadStatePKc(%14* %92, i8* getelementptr inbounds ([13 x i8]* @.str6214, i32 0, i32 0))
+ br label %93
+
+; <label>:93 ; preds = %91, %80, %71, %59, %56
+ br label %94
+
+; <label>:94 ; preds = %93
+ %95 = load i32* %i, align 4 ; [#uses=1]
+ %96 = add nsw i32 %95, 1 ; [#uses=1]
+ store i32 %96, i32* %i, align 4
+ br label %43
+
+; <label>:97 ; preds = %43
+ %98 = load %14** %1, align 4 ; [#uses=1]
+ %99 = call i32 @_Z7LoadIntP9LoadState(%14* %98) ; [#uses=1]
+ store i32 %99, i32* %n, align 4
+ %100 = load i32* %n, align 4 ; [#uses=1]
+ %101 = add nsw i32 %100, 1 ; [#uses=1]
+ %102 = icmp ule i32 %101, 1073741823 ; [#uses=1]
+ br i1 %102, label %103, label %110
+
+; <label>:103 ; preds = %97
+ %104 = load %14** %1, align 4 ; [#uses=1]
+ %105 = getelementptr inbounds %14* %104, i32 0, i32 0 ; [#uses=1]
+ %106 = load %struct.lua_State** %105, align 4 ; [#uses=1]
+ %107 = load i32* %n, align 4 ; [#uses=1]
+ %108 = mul i32 %107, 4 ; [#uses=1]
+ %109 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %106, i8* null, i32 0, i32 %108) ; [#uses=1]
+ br label %115
+
+; <label>:110 ; preds = %97
+ %111 = load %14** %1, align 4 ; [#uses=1]
+ %112 = getelementptr inbounds %14* %111, i32 0, i32 0 ; [#uses=1]
+ %113 = load %struct.lua_State** %112, align 4 ; [#uses=1]
+ %114 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %113) ; [#uses=1]
+ br label %115
+
+; <label>:115 ; preds = %110, %103
+ %116 = phi i8* [ %109, %103 ], [ %114, %110 ] ; [#uses=1]
+ %117 = bitcast i8* %116 to %struct.Proto** ; [#uses=1]
+ %118 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %119 = getelementptr inbounds %struct.Proto* %118, i32 0, i32 5 ; [#uses=1]
+ store %struct.Proto** %117, %struct.Proto*** %119, align 4
+ %120 = load i32* %n, align 4 ; [#uses=1]
+ %121 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %122 = getelementptr inbounds %struct.Proto* %121, i32 0, i32 14 ; [#uses=1]
+ store i32 %120, i32* %122, align 4
+ store i32 0, i32* %i, align 4
+ br label %123
+
+; <label>:123 ; preds = %133, %115
+ %124 = load i32* %i, align 4 ; [#uses=1]
+ %125 = load i32* %n, align 4 ; [#uses=1]
+ %126 = icmp slt i32 %124, %125 ; [#uses=1]
+ br i1 %126, label %127, label %136
+
+; <label>:127 ; preds = %123
+ %128 = load i32* %i, align 4 ; [#uses=1]
+ %129 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %130 = getelementptr inbounds %struct.Proto* %129, i32 0, i32 5 ; [#uses=1]
+ %131 = load %struct.Proto*** %130, align 4 ; [#uses=1]
+ %132 = getelementptr inbounds %struct.Proto** %131, i32 %128 ; [#uses=1]
+ store %struct.Proto* null, %struct.Proto** %132
+ br label %133
+
+; <label>:133 ; preds = %127
+ %134 = load i32* %i, align 4 ; [#uses=1]
+ %135 = add nsw i32 %134, 1 ; [#uses=1]
+ store i32 %135, i32* %i, align 4
+ br label %123
+
+; <label>:136 ; preds = %123
+ store i32 0, i32* %i, align 4
+ br label %137
+
+; <label>:137 ; preds = %152, %136
+ %138 = load i32* %i, align 4 ; [#uses=1]
+ %139 = load i32* %n, align 4 ; [#uses=1]
+ %140 = icmp slt i32 %138, %139 ; [#uses=1]
+ br i1 %140, label %141, label %155
+
+; <label>:141 ; preds = %137
+ %142 = load %14** %1, align 4 ; [#uses=1]
+ %143 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %144 = getelementptr inbounds %struct.Proto* %143, i32 0, i32 9 ; [#uses=1]
+ %145 = load %union.TString** %144, align 4 ; [#uses=1]
+ %146 = call %struct.Proto* @_Z12LoadFunctionP9LoadStateP7TString(%14* %142, %union.TString* %145) ; [#uses=1]
+ %147 = load i32* %i, align 4 ; [#uses=1]
+ %148 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %149 = getelementptr inbounds %struct.Proto* %148, i32 0, i32 5 ; [#uses=1]
+ %150 = load %struct.Proto*** %149, align 4 ; [#uses=1]
+ %151 = getelementptr inbounds %struct.Proto** %150, i32 %147 ; [#uses=1]
+ store %struct.Proto* %146, %struct.Proto** %151
+ br label %152
+
+; <label>:152 ; preds = %141
+ %153 = load i32* %i, align 4 ; [#uses=1]
+ %154 = add nsw i32 %153, 1 ; [#uses=1]
+ store i32 %154, i32* %i, align 4
+ br label %137
+
+; <label>:155 ; preds = %137
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z9LoadDebugP9LoadStateP5Proto(%14* %S, %struct.Proto* %f) {
+ %1 = alloca %14*, align 4 ; [#uses=15]
+ %2 = alloca %struct.Proto*, align 4 ; [#uses=14]
+ %i = alloca i32, align 4 ; [#uses=22]
+ %n = alloca i32, align 4 ; [#uses=17]
+ store %14* %S, %14** %1, align 4
+ store %struct.Proto* %f, %struct.Proto** %2, align 4
+ %3 = load %14** %1, align 4 ; [#uses=1]
+ %4 = call i32 @_Z7LoadIntP9LoadState(%14* %3) ; [#uses=1]
+ store i32 %4, i32* %n, align 4
+ %5 = load i32* %n, align 4 ; [#uses=1]
+ %6 = add nsw i32 %5, 1 ; [#uses=1]
+ %7 = icmp ule i32 %6, 1073741823 ; [#uses=1]
+ br i1 %7, label %8, label %15
+
+; <label>:8 ; preds = %0
+ %9 = load %14** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %14* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = load %struct.lua_State** %10, align 4 ; [#uses=1]
+ %12 = load i32* %n, align 4 ; [#uses=1]
+ %13 = mul i32 %12, 4 ; [#uses=1]
+ %14 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %11, i8* null, i32 0, i32 %13) ; [#uses=1]
+ br label %20
+
+; <label>:15 ; preds = %0
+ %16 = load %14** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %14* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = load %struct.lua_State** %17, align 4 ; [#uses=1]
+ %19 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %18) ; [#uses=1]
+ br label %20
+
+; <label>:20 ; preds = %15, %8
+ %21 = phi i8* [ %14, %8 ], [ %19, %15 ] ; [#uses=1]
+ %22 = bitcast i8* %21 to i32* ; [#uses=1]
+ %23 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.Proto* %23, i32 0, i32 6 ; [#uses=1]
+ store i32* %22, i32** %24, align 4
+ %25 = load i32* %n, align 4 ; [#uses=1]
+ %26 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.Proto* %26, i32 0, i32 13 ; [#uses=1]
+ store i32 %25, i32* %27, align 4
+ %28 = load %14** %1, align 4 ; [#uses=1]
+ %29 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.Proto* %29, i32 0, i32 6 ; [#uses=1]
+ %31 = load i32** %30, align 4 ; [#uses=1]
+ %32 = bitcast i32* %31 to i8* ; [#uses=1]
+ %33 = load i32* %n, align 4 ; [#uses=1]
+ %34 = mul i32 %33, 4 ; [#uses=1]
+ call void @_Z9LoadBlockP9LoadStatePvj(%14* %28, i8* %32, i32 %34)
+ %35 = load %14** %1, align 4 ; [#uses=1]
+ %36 = call i32 @_Z7LoadIntP9LoadState(%14* %35) ; [#uses=1]
+ store i32 %36, i32* %n, align 4
+ %37 = load i32* %n, align 4 ; [#uses=1]
+ %38 = add nsw i32 %37, 1 ; [#uses=1]
+ %39 = icmp ule i32 %38, 357913941 ; [#uses=1]
+ br i1 %39, label %40, label %47
+
+; <label>:40 ; preds = %20
+ %41 = load %14** %1, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %14* %41, i32 0, i32 0 ; [#uses=1]
+ %43 = load %struct.lua_State** %42, align 4 ; [#uses=1]
+ %44 = load i32* %n, align 4 ; [#uses=1]
+ %45 = mul i32 %44, 12 ; [#uses=1]
+ %46 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %43, i8* null, i32 0, i32 %45) ; [#uses=1]
+ br label %52
+
+; <label>:47 ; preds = %20
+ %48 = load %14** %1, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %14* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = load %struct.lua_State** %49, align 4 ; [#uses=1]
+ %51 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %50) ; [#uses=1]
+ br label %52
+
+; <label>:52 ; preds = %47, %40
+ %53 = phi i8* [ %46, %40 ], [ %51, %47 ] ; [#uses=1]
+ %54 = bitcast i8* %53 to %struct.LocVar* ; [#uses=1]
+ %55 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.Proto* %55, i32 0, i32 7 ; [#uses=1]
+ store %struct.LocVar* %54, %struct.LocVar** %56, align 4
+ %57 = load i32* %n, align 4 ; [#uses=1]
+ %58 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.Proto* %58, i32 0, i32 15 ; [#uses=1]
+ store i32 %57, i32* %59, align 4
+ store i32 0, i32* %i, align 4
+ br label %60
+
+; <label>:60 ; preds = %71, %52
+ %61 = load i32* %i, align 4 ; [#uses=1]
+ %62 = load i32* %n, align 4 ; [#uses=1]
+ %63 = icmp slt i32 %61, %62 ; [#uses=1]
+ br i1 %63, label %64, label %74
+
+; <label>:64 ; preds = %60
+ %65 = load i32* %i, align 4 ; [#uses=1]
+ %66 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.Proto* %66, i32 0, i32 7 ; [#uses=1]
+ %68 = load %struct.LocVar** %67, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.LocVar* %68, i32 %65 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.LocVar* %69, i32 0, i32 0 ; [#uses=1]
+ store %union.TString* null, %union.TString** %70, align 4
+ br label %71
+
+; <label>:71 ; preds = %64
+ %72 = load i32* %i, align 4 ; [#uses=1]
+ %73 = add nsw i32 %72, 1 ; [#uses=1]
+ store i32 %73, i32* %i, align 4
+ br label %60
+
+; <label>:74 ; preds = %60
+ store i32 0, i32* %i, align 4
+ br label %75
+
+; <label>:75 ; preds = %104, %74
+ %76 = load i32* %i, align 4 ; [#uses=1]
+ %77 = load i32* %n, align 4 ; [#uses=1]
+ %78 = icmp slt i32 %76, %77 ; [#uses=1]
+ br i1 %78, label %79, label %107
+
+; <label>:79 ; preds = %75
+ %80 = load %14** %1, align 4 ; [#uses=1]
+ %81 = call %union.TString* @_Z10LoadStringP9LoadState(%14* %80) ; [#uses=1]
+ %82 = load i32* %i, align 4 ; [#uses=1]
+ %83 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %84 = getelementptr inbounds %struct.Proto* %83, i32 0, i32 7 ; [#uses=1]
+ %85 = load %struct.LocVar** %84, align 4 ; [#uses=1]
+ %86 = getelementptr inbounds %struct.LocVar* %85, i32 %82 ; [#uses=1]
+ %87 = getelementptr inbounds %struct.LocVar* %86, i32 0, i32 0 ; [#uses=1]
+ store %union.TString* %81, %union.TString** %87, align 4
+ %88 = load %14** %1, align 4 ; [#uses=1]
+ %89 = call i32 @_Z7LoadIntP9LoadState(%14* %88) ; [#uses=1]
+ %90 = load i32* %i, align 4 ; [#uses=1]
+ %91 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %92 = getelementptr inbounds %struct.Proto* %91, i32 0, i32 7 ; [#uses=1]
+ %93 = load %struct.LocVar** %92, align 4 ; [#uses=1]
+ %94 = getelementptr inbounds %struct.LocVar* %93, i32 %90 ; [#uses=1]
+ %95 = getelementptr inbounds %struct.LocVar* %94, i32 0, i32 1 ; [#uses=1]
+ store i32 %89, i32* %95, align 4
+ %96 = load %14** %1, align 4 ; [#uses=1]
+ %97 = call i32 @_Z7LoadIntP9LoadState(%14* %96) ; [#uses=1]
+ %98 = load i32* %i, align 4 ; [#uses=1]
+ %99 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %100 = getelementptr inbounds %struct.Proto* %99, i32 0, i32 7 ; [#uses=1]
+ %101 = load %struct.LocVar** %100, align 4 ; [#uses=1]
+ %102 = getelementptr inbounds %struct.LocVar* %101, i32 %98 ; [#uses=1]
+ %103 = getelementptr inbounds %struct.LocVar* %102, i32 0, i32 2 ; [#uses=1]
+ store i32 %97, i32* %103, align 4
+ br label %104
+
+; <label>:104 ; preds = %79
+ %105 = load i32* %i, align 4 ; [#uses=1]
+ %106 = add nsw i32 %105, 1 ; [#uses=1]
+ store i32 %106, i32* %i, align 4
+ br label %75
+
+; <label>:107 ; preds = %75
+ %108 = load %14** %1, align 4 ; [#uses=1]
+ %109 = call i32 @_Z7LoadIntP9LoadState(%14* %108) ; [#uses=1]
+ store i32 %109, i32* %n, align 4
+ %110 = load i32* %n, align 4 ; [#uses=1]
+ %111 = add nsw i32 %110, 1 ; [#uses=1]
+ %112 = icmp ule i32 %111, 1073741823 ; [#uses=1]
+ br i1 %112, label %113, label %120
+
+; <label>:113 ; preds = %107
+ %114 = load %14** %1, align 4 ; [#uses=1]
+ %115 = getelementptr inbounds %14* %114, i32 0, i32 0 ; [#uses=1]
+ %116 = load %struct.lua_State** %115, align 4 ; [#uses=1]
+ %117 = load i32* %n, align 4 ; [#uses=1]
+ %118 = mul i32 %117, 4 ; [#uses=1]
+ %119 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %116, i8* null, i32 0, i32 %118) ; [#uses=1]
+ br label %125
+
+; <label>:120 ; preds = %107
+ %121 = load %14** %1, align 4 ; [#uses=1]
+ %122 = getelementptr inbounds %14* %121, i32 0, i32 0 ; [#uses=1]
+ %123 = load %struct.lua_State** %122, align 4 ; [#uses=1]
+ %124 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %123) ; [#uses=1]
+ br label %125
+
+; <label>:125 ; preds = %120, %113
+ %126 = phi i8* [ %119, %113 ], [ %124, %120 ] ; [#uses=1]
+ %127 = bitcast i8* %126 to %union.TString** ; [#uses=1]
+ %128 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %129 = getelementptr inbounds %struct.Proto* %128, i32 0, i32 8 ; [#uses=1]
+ store %union.TString** %127, %union.TString*** %129, align 4
+ %130 = load i32* %n, align 4 ; [#uses=1]
+ %131 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %132 = getelementptr inbounds %struct.Proto* %131, i32 0, i32 10 ; [#uses=1]
+ store i32 %130, i32* %132, align 4
+ store i32 0, i32* %i, align 4
+ br label %133
+
+; <label>:133 ; preds = %143, %125
+ %134 = load i32* %i, align 4 ; [#uses=1]
+ %135 = load i32* %n, align 4 ; [#uses=1]
+ %136 = icmp slt i32 %134, %135 ; [#uses=1]
+ br i1 %136, label %137, label %146
+
+; <label>:137 ; preds = %133
+ %138 = load i32* %i, align 4 ; [#uses=1]
+ %139 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %140 = getelementptr inbounds %struct.Proto* %139, i32 0, i32 8 ; [#uses=1]
+ %141 = load %union.TString*** %140, align 4 ; [#uses=1]
+ %142 = getelementptr inbounds %union.TString** %141, i32 %138 ; [#uses=1]
+ store %union.TString* null, %union.TString** %142
+ br label %143
+
+; <label>:143 ; preds = %137
+ %144 = load i32* %i, align 4 ; [#uses=1]
+ %145 = add nsw i32 %144, 1 ; [#uses=1]
+ store i32 %145, i32* %i, align 4
+ br label %133
+
+; <label>:146 ; preds = %133
+ store i32 0, i32* %i, align 4
+ br label %147
+
+; <label>:147 ; preds = %159, %146
+ %148 = load i32* %i, align 4 ; [#uses=1]
+ %149 = load i32* %n, align 4 ; [#uses=1]
+ %150 = icmp slt i32 %148, %149 ; [#uses=1]
+ br i1 %150, label %151, label %162
+
+; <label>:151 ; preds = %147
+ %152 = load %14** %1, align 4 ; [#uses=1]
+ %153 = call %union.TString* @_Z10LoadStringP9LoadState(%14* %152) ; [#uses=1]
+ %154 = load i32* %i, align 4 ; [#uses=1]
+ %155 = load %struct.Proto** %2, align 4 ; [#uses=1]
+ %156 = getelementptr inbounds %struct.Proto* %155, i32 0, i32 8 ; [#uses=1]
+ %157 = load %union.TString*** %156, align 4 ; [#uses=1]
+ %158 = getelementptr inbounds %union.TString** %157, i32 %154 ; [#uses=1]
+ store %union.TString* %153, %union.TString** %158
+ br label %159
+
+; <label>:159 ; preds = %151
+ %160 = load i32* %i, align 4 ; [#uses=1]
+ %161 = add nsw i32 %160, 1 ; [#uses=1]
+ store i32 %161, i32* %i, align 4
+ br label %147
+
+; <label>:162 ; preds = %147
+ ret void
+}
+
+; [#uses=8]
+define internal void @_Z9LoadBlockP9LoadStatePvj(%14* %S, i8* %b, i32 %size) {
+ %1 = alloca %14*, align 4 ; [#uses=3]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %r = alloca i32, align 4 ; [#uses=2]
+ store %14* %S, %14** %1, align 4
+ store i8* %b, i8** %2, align 4
+ store i32 %size, i32* %3, align 4
+ %4 = load %14** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %14* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = load %struct.Zio** %5, align 4 ; [#uses=1]
+ %7 = load i8** %2, align 4 ; [#uses=1]
+ %8 = load i32* %3, align 4 ; [#uses=1]
+ %9 = call i32 @_Z9luaZ_readP3ZioPvj(%struct.Zio* %6, i8* %7, i32 %8) ; [#uses=1]
+ store i32 %9, i32* %r, align 4
+ %10 = load i32* %r, align 4 ; [#uses=1]
+ %11 = icmp ne i32 %10, 0 ; [#uses=1]
+ br i1 %11, label %12, label %14
+
+; <label>:12 ; preds = %0
+ %13 = load %14** %1, align 4 ; [#uses=1]
+ call void @_Z5errorP9LoadStatePKc(%14* %13, i8* getelementptr inbounds ([15 x i8]* @.str5213, i32 0, i32 0))
+ br label %14
+
+; <label>:14 ; preds = %12, %0
+ ret void
+}
+
+; [#uses=1]
+define internal double @_Z10LoadNumberP9LoadState(%14* %S) {
+ %1 = alloca %14*, align 4 ; [#uses=2]
+ %x = alloca double, align 8 ; [#uses=2]
+ store %14* %S, %14** %1, align 4
+ %2 = load %14** %1, align 4 ; [#uses=1]
+ %3 = bitcast double* %x to i8* ; [#uses=1]
+ call void @_Z9LoadBlockP9LoadStatePvj(%14* %2, i8* %3, i32 8)
+ %4 = load double* %x, align 8 ; [#uses=1]
+ ret double %4
+}
+
+; [#uses=9]
+define hidden %struct.lua_TValue* @_Z13luaV_tonumberPK10lua_TValuePS_(%struct.lua_TValue* %obj, %struct.lua_TValue* %n) {
+ %1 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %num = alloca double, align 8 ; [#uses=2]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_TValue* %obj, %struct.lua_TValue** %2, align 4
+ store %struct.lua_TValue* %n, %struct.lua_TValue** %3, align 4
+ %4 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_TValue* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = icmp eq i32 %6, 3 ; [#uses=1]
+ br i1 %7, label %8, label %10
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %9, %struct.lua_TValue** %1
+ br label %37
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 1 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ %14 = icmp eq i32 %13, 4 ; [#uses=1]
+ br i1 %14, label %15, label %36
+
+; <label>:15 ; preds = %10
+ %16 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_TValue* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = getelementptr inbounds %union.anon* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = bitcast double* %18 to %union.GCObject** ; [#uses=1]
+ %20 = load %union.GCObject** %19, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %union.GCObject* %20, i32 0, i32 0 ; [#uses=1]
+ %22 = bitcast %struct.lua_State* %21 to %union.TString* ; [#uses=1]
+ %23 = getelementptr inbounds %union.TString* %22, i32 1 ; [#uses=1]
+ %24 = bitcast %union.TString* %23 to i8* ; [#uses=1]
+ %25 = call i32 @_Z10luaO_str2dPKcPd(i8* %24, double* %num) ; [#uses=1]
+ %26 = icmp ne i32 %25, 0 ; [#uses=1]
+ br i1 %26, label %27, label %36
+
+; <label>:27 ; preds = %15
+ %28 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %28, %struct.lua_TValue** %i_o, align 4
+ %29 = load double* %num, align 8 ; [#uses=1]
+ %30 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_TValue* %30, i32 0, i32 0 ; [#uses=1]
+ %32 = getelementptr inbounds %union.anon* %31, i32 0, i32 0 ; [#uses=1]
+ store double %29, double* %32, align 4
+ %33 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_TValue* %33, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %34, align 4
+ %35 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %35, %struct.lua_TValue** %1
+ br label %37
+
+; <label>:36 ; preds = %15, %10
+ store %struct.lua_TValue* null, %struct.lua_TValue** %1
+ br label %37
+
+; <label>:37 ; preds = %36, %27, %8
+ %38 = load %struct.lua_TValue** %1 ; [#uses=1]
+ ret %struct.lua_TValue* %38
+}
+
+; [#uses=5]
+define hidden i32 @_Z13luaV_tostringP9lua_StateP10lua_TValue(%struct.lua_State* %L, %struct.lua_TValue* %obj) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %s = alloca [32 x i8], align 1 ; [#uses=3]
+ %n = alloca double, align 8 ; [#uses=2]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.lua_TValue* %obj, %struct.lua_TValue** %3, align 4
+ %4 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_TValue* %4, i32 0, i32 1 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = icmp eq i32 %6, 3 ; [#uses=1]
+ br i1 %7, label %9, label %8
+
+; <label>:8 ; preds = %0
+ store i32 0, i32* %1
+ br label %30
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_TValue* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = getelementptr inbounds %union.anon* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = load double* %12, align 4 ; [#uses=1]
+ store double %13, double* %n, align 8
+ %14 = getelementptr inbounds [32 x i8]* %s, i32 0, i32 0 ; [#uses=1]
+ %15 = load double* %n, align 8 ; [#uses=1]
+ %16 = call i32 (i8*, i8*, ...)* @sprintf(i8* %14, i8* getelementptr inbounds ([6 x i8]* @.str220, i32 0, i32 0), double %15) ; [#uses=0]
+ %17 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %17, %struct.lua_TValue** %i_o, align 4
+ %18 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds [32 x i8]* %s, i32 0, i32 0 ; [#uses=1]
+ %20 = getelementptr inbounds [32 x i8]* %s, i32 0, i32 0 ; [#uses=1]
+ %21 = call i32 @strlen(i8* %20) ; [#uses=1]
+ %22 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %18, i8* %19, i32 %21) ; [#uses=1]
+ %23 = bitcast %union.TString* %22 to %union.GCObject* ; [#uses=1]
+ %24 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.lua_TValue* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = getelementptr inbounds %union.anon* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = bitcast double* %26 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %23, %union.GCObject** %27, align 4
+ %28 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_TValue* %28, i32 0, i32 1 ; [#uses=1]
+ store i32 4, i32* %29, align 4
+ store i32 1, i32* %1
+ br label %30
+
+; <label>:30 ; preds = %9, %8
+ %31 = load i32* %1 ; [#uses=1]
+ ret i32 %31
+}
+
+; [#uses=5]
+define hidden void @_Z13luaV_gettableP9lua_StatePK10lua_TValuePS1_S4_(%struct.lua_State* %L, %struct.lua_TValue* %t, %struct.lua_TValue* %key, %struct.lua_TValue* %val) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=7]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %4 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %loop = alloca i32, align 4 ; [#uses=4]
+ %tm = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %h = alloca %struct.Table*, align 4 ; [#uses=5]
+ %res = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %t, %struct.lua_TValue** %2, align 4
+ store %struct.lua_TValue* %key, %struct.lua_TValue** %3, align 4
+ store %struct.lua_TValue* %val, %struct.lua_TValue** %4, align 4
+ store i32 0, i32* %loop, align 4
+ br label %5
+
+; <label>:5 ; preds = %99, %0
+ %6 = load i32* %loop, align 4 ; [#uses=1]
+ %7 = icmp slt i32 %6, 100 ; [#uses=1]
+ br i1 %7, label %8, label %102
+
+; <label>:8 ; preds = %5
+ %9 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_TValue* %9, i32 0, i32 1 ; [#uses=1]
+ %11 = load i32* %10, align 4 ; [#uses=1]
+ %12 = icmp eq i32 %11, 5 ; [#uses=1]
+ br i1 %12, label %13, label %75
+
+; <label>:13 ; preds = %8
+ %14 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_TValue* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = getelementptr inbounds %union.anon* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = bitcast double* %16 to %union.GCObject** ; [#uses=1]
+ %18 = load %union.GCObject** %17, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %union.GCObject* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = bitcast %struct.lua_State* %19 to %struct.Table* ; [#uses=1]
+ store %struct.Table* %20, %struct.Table** %h, align 4
+ %21 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %22 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %23 = call %struct.lua_TValue* @_Z8luaH_getP5TablePK10lua_TValue(%struct.Table* %21, %struct.lua_TValue* %22) ; [#uses=1]
+ store %struct.lua_TValue* %23, %struct.lua_TValue** %res, align 4
+ %24 = load %struct.lua_TValue** %res, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.lua_TValue* %24, i32 0, i32 1 ; [#uses=1]
+ %26 = load i32* %25, align 4 ; [#uses=1]
+ %27 = icmp eq i32 %26, 0 ; [#uses=1]
+ br i1 %27, label %28, label %60
+
+; <label>:28 ; preds = %13
+ %29 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.Table* %29, i32 0, i32 5 ; [#uses=1]
+ %31 = load %struct.Table** %30, align 4 ; [#uses=1]
+ %32 = icmp eq %struct.Table* %31, null ; [#uses=1]
+ br i1 %32, label %33, label %34
+
+; <label>:33 ; preds = %28
+ br label %57
+
+; <label>:34 ; preds = %28
+ %35 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.Table* %35, i32 0, i32 5 ; [#uses=1]
+ %37 = load %struct.Table** %36, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.Table* %37, i32 0, i32 3 ; [#uses=1]
+ %39 = load i8* %38, align 1 ; [#uses=1]
+ %40 = zext i8 %39 to i32 ; [#uses=1]
+ %41 = and i32 %40, 1 ; [#uses=1]
+ %42 = icmp ne i32 %41, 0 ; [#uses=1]
+ br i1 %42, label %43, label %44
+
+; <label>:43 ; preds = %34
+ br label %55
+
+; <label>:44 ; preds = %34
+ %45 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.Table* %45, i32 0, i32 5 ; [#uses=1]
+ %47 = load %struct.Table** %46, align 4 ; [#uses=1]
+ %48 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.lua_State* %48, i32 0, i32 6 ; [#uses=1]
+ %50 = load %struct.global_State** %49, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.global_State* %50, i32 0, i32 24 ; [#uses=1]
+ %52 = getelementptr inbounds [17 x %union.TString*]* %51, i32 0, i32 0 ; [#uses=1]
+ %53 = load %union.TString** %52 ; [#uses=1]
+ %54 = call %struct.lua_TValue* @_Z10luaT_gettmP5Table3TMSP7TString(%struct.Table* %47, i32 0, %union.TString* %53) ; [#uses=1]
+ br label %55
+
+; <label>:55 ; preds = %44, %43
+ %56 = phi %struct.lua_TValue* [ null, %43 ], [ %54, %44 ] ; [#uses=1]
+ br label %57
+
+; <label>:57 ; preds = %55, %33
+ %58 = phi %struct.lua_TValue* [ null, %33 ], [ %56, %55 ] ; [#uses=2]
+ store %struct.lua_TValue* %58, %struct.lua_TValue** %tm, align 4
+ %59 = icmp eq %struct.lua_TValue* %58, null ; [#uses=1]
+ br i1 %59, label %60, label %74
+
+; <label>:60 ; preds = %57, %13
+ %61 = load %struct.lua_TValue** %res, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %61, %struct.lua_TValue** %o2, align 4
+ %62 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %62, %struct.lua_TValue** %o1, align 4
+ %63 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.lua_TValue* %63, i32 0, i32 0 ; [#uses=1]
+ %65 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.lua_TValue* %65, i32 0, i32 0 ; [#uses=1]
+ %67 = bitcast %union.anon* %64 to i8* ; [#uses=1]
+ %68 = bitcast %union.anon* %66 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %67, i8* %68, i32 8, i32 4, i1 false)
+ %69 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.lua_TValue* %69, i32 0, i32 1 ; [#uses=1]
+ %71 = load i32* %70, align 4 ; [#uses=1]
+ %72 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.lua_TValue* %72, i32 0, i32 1 ; [#uses=1]
+ store i32 %71, i32* %73, align 4
+ br label %104
+
+; <label>:74 ; preds = %57
+ br label %86
+
+; <label>:75 ; preds = %8
+ %76 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %77 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %78 = call %struct.lua_TValue* @_Z15luaT_gettmbyobjP9lua_StatePK10lua_TValue3TMS(%struct.lua_State* %76, %struct.lua_TValue* %77, i32 0) ; [#uses=2]
+ store %struct.lua_TValue* %78, %struct.lua_TValue** %tm, align 4
+ %79 = getelementptr inbounds %struct.lua_TValue* %78, i32 0, i32 1 ; [#uses=1]
+ %80 = load i32* %79, align 4 ; [#uses=1]
+ %81 = icmp eq i32 %80, 0 ; [#uses=1]
+ br i1 %81, label %82, label %85
+
+; <label>:82 ; preds = %75
+ %83 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %84 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ call void @_Z14luaG_typeerrorP9lua_StatePK10lua_TValuePKc(%struct.lua_State* %83, %struct.lua_TValue* %84, i8* getelementptr inbounds ([6 x i8]* @.str1221, i32 0, i32 0))
+ br label %85
+
+; <label>:85 ; preds = %82, %75
+ br label %86
+
+; <label>:86 ; preds = %85, %74
+ %87 = load %struct.lua_TValue** %tm, align 4 ; [#uses=1]
+ %88 = getelementptr inbounds %struct.lua_TValue* %87, i32 0, i32 1 ; [#uses=1]
+ %89 = load i32* %88, align 4 ; [#uses=1]
+ %90 = icmp eq i32 %89, 6 ; [#uses=1]
+ br i1 %90, label %91, label %97
+
+; <label>:91 ; preds = %86
+ %92 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %93 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %94 = load %struct.lua_TValue** %tm, align 4 ; [#uses=1]
+ %95 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %96 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ call void @_Z9callTMresP9lua_StateP10lua_TValuePKS1_S4_S4_(%struct.lua_State* %92, %struct.lua_TValue* %93, %struct.lua_TValue* %94, %struct.lua_TValue* %95, %struct.lua_TValue* %96)
+ br label %104
+
+; <label>:97 ; preds = %86
+ %98 = load %struct.lua_TValue** %tm, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %98, %struct.lua_TValue** %2, align 4
+ br label %99
+
+; <label>:99 ; preds = %97
+ %100 = load i32* %loop, align 4 ; [#uses=1]
+ %101 = add nsw i32 %100, 1 ; [#uses=1]
+ store i32 %101, i32* %loop, align 4
+ br label %5
+
+; <label>:102 ; preds = %5
+ %103 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %103, i8* getelementptr inbounds ([17 x i8]* @.str2222, i32 0, i32 0))
+ br label %104
+
+; <label>:104 ; preds = %102, %91, %60
+ ret void
+}
+
+; [#uses=4]
+define internal void @_Z9callTMresP9lua_StateP10lua_TValuePKS1_S4_S4_(%struct.lua_State* %L, %struct.lua_TValue* %res, %struct.lua_TValue* %f, %struct.lua_TValue* %p1, %struct.lua_TValue* %p2) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=14]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %4 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %5 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %result = alloca i32, align 4 ; [#uses=2]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o21 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o12 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o23 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o14 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o25 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o16 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %res, %struct.lua_TValue** %2, align 4
+ store %struct.lua_TValue* %f, %struct.lua_TValue** %3, align 4
+ store %struct.lua_TValue* %p1, %struct.lua_TValue** %4, align 4
+ store %struct.lua_TValue* %p2, %struct.lua_TValue** %5, align 4
+ %6 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %7 = bitcast %struct.lua_TValue* %6 to i8* ; [#uses=1]
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_State* %8, i32 0, i32 10 ; [#uses=1]
+ %10 = load %struct.lua_TValue** %9, align 4 ; [#uses=1]
+ %11 = bitcast %struct.lua_TValue* %10 to i8* ; [#uses=1]
+ %12 = ptrtoint i8* %7 to i32 ; [#uses=1]
+ %13 = ptrtoint i8* %11 to i32 ; [#uses=1]
+ %14 = sub i32 %12, %13 ; [#uses=1]
+ store i32 %14, i32* %result, align 4
+ %15 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %15, %struct.lua_TValue** %o2, align 4
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_State* %16, i32 0, i32 4 ; [#uses=1]
+ %18 = load %struct.lua_TValue** %17, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %18, %struct.lua_TValue** %o1, align 4
+ %19 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_TValue* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_TValue* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = bitcast %union.anon* %20 to i8* ; [#uses=1]
+ %24 = bitcast %union.anon* %22 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %23, i8* %24, i32 8, i32 4, i1 false)
+ %25 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_TValue* %25, i32 0, i32 1 ; [#uses=1]
+ %27 = load i32* %26, align 4 ; [#uses=1]
+ %28 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_TValue* %28, i32 0, i32 1 ; [#uses=1]
+ store i32 %27, i32* %29, align 4
+ %30 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %30, %struct.lua_TValue** %o21, align 4
+ %31 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_State* %31, i32 0, i32 4 ; [#uses=1]
+ %33 = load %struct.lua_TValue** %32, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_TValue* %33, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %34, %struct.lua_TValue** %o12, align 4
+ %35 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.lua_TValue* %35, i32 0, i32 0 ; [#uses=1]
+ %37 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.lua_TValue* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = bitcast %union.anon* %36 to i8* ; [#uses=1]
+ %40 = bitcast %union.anon* %38 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %39, i8* %40, i32 8, i32 4, i1 false)
+ %41 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.lua_TValue* %41, i32 0, i32 1 ; [#uses=1]
+ %43 = load i32* %42, align 4 ; [#uses=1]
+ %44 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.lua_TValue* %44, i32 0, i32 1 ; [#uses=1]
+ store i32 %43, i32* %45, align 4
+ %46 = load %struct.lua_TValue** %5, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %46, %struct.lua_TValue** %o23, align 4
+ %47 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.lua_State* %47, i32 0, i32 4 ; [#uses=1]
+ %49 = load %struct.lua_TValue** %48, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.lua_TValue* %49, i32 2 ; [#uses=1]
+ store %struct.lua_TValue* %50, %struct.lua_TValue** %o14, align 4
+ %51 = load %struct.lua_TValue** %o14, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.lua_TValue* %51, i32 0, i32 0 ; [#uses=1]
+ %53 = load %struct.lua_TValue** %o23, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.lua_TValue* %53, i32 0, i32 0 ; [#uses=1]
+ %55 = bitcast %union.anon* %52 to i8* ; [#uses=1]
+ %56 = bitcast %union.anon* %54 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %55, i8* %56, i32 8, i32 4, i1 false)
+ %57 = load %struct.lua_TValue** %o23, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.lua_TValue* %57, i32 0, i32 1 ; [#uses=1]
+ %59 = load i32* %58, align 4 ; [#uses=1]
+ %60 = load %struct.lua_TValue** %o14, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.lua_TValue* %60, i32 0, i32 1 ; [#uses=1]
+ store i32 %59, i32* %61, align 4
+ %62 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.lua_State* %62, i32 0, i32 9 ; [#uses=1]
+ %64 = load %struct.lua_TValue** %63, align 4 ; [#uses=1]
+ %65 = bitcast %struct.lua_TValue* %64 to i8* ; [#uses=1]
+ %66 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.lua_State* %66, i32 0, i32 4 ; [#uses=1]
+ %68 = load %struct.lua_TValue** %67, align 4 ; [#uses=1]
+ %69 = bitcast %struct.lua_TValue* %68 to i8* ; [#uses=1]
+ %70 = ptrtoint i8* %65 to i32 ; [#uses=1]
+ %71 = ptrtoint i8* %69 to i32 ; [#uses=1]
+ %72 = sub i32 %70, %71 ; [#uses=1]
+ %73 = icmp sle i32 %72, 36 ; [#uses=1]
+ br i1 %73, label %74, label %76
+
+; <label>:74 ; preds = %0
+ %75 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %75, i32 3)
+ br label %77
+
+; <label>:76 ; preds = %0
+ br label %77
+
+; <label>:77 ; preds = %76, %74
+ %78 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %79 = getelementptr inbounds %struct.lua_State* %78, i32 0, i32 4 ; [#uses=2]
+ %80 = load %struct.lua_TValue** %79, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.lua_TValue* %80, i32 3 ; [#uses=1]
+ store %struct.lua_TValue* %81, %struct.lua_TValue** %79, align 4
+ %82 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %83 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %84 = getelementptr inbounds %struct.lua_State* %83, i32 0, i32 4 ; [#uses=1]
+ %85 = load %struct.lua_TValue** %84, align 4 ; [#uses=1]
+ %86 = getelementptr inbounds %struct.lua_TValue* %85, i32 -3 ; [#uses=1]
+ call void @_Z9luaD_callP9lua_StateP10lua_TValuei(%struct.lua_State* %82, %struct.lua_TValue* %86, i32 1)
+ %87 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %88 = getelementptr inbounds %struct.lua_State* %87, i32 0, i32 10 ; [#uses=1]
+ %89 = load %struct.lua_TValue** %88, align 4 ; [#uses=1]
+ %90 = bitcast %struct.lua_TValue* %89 to i8* ; [#uses=1]
+ %91 = load i32* %result, align 4 ; [#uses=1]
+ %92 = getelementptr inbounds i8* %90, i32 %91 ; [#uses=1]
+ %93 = bitcast i8* %92 to %struct.lua_TValue* ; [#uses=1]
+ store %struct.lua_TValue* %93, %struct.lua_TValue** %2, align 4
+ %94 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %95 = getelementptr inbounds %struct.lua_State* %94, i32 0, i32 4 ; [#uses=2]
+ %96 = load %struct.lua_TValue** %95, align 4 ; [#uses=1]
+ %97 = getelementptr inbounds %struct.lua_TValue* %96, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %97, %struct.lua_TValue** %95, align 4
+ %98 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %99 = getelementptr inbounds %struct.lua_State* %98, i32 0, i32 4 ; [#uses=1]
+ %100 = load %struct.lua_TValue** %99, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %100, %struct.lua_TValue** %o25, align 4
+ %101 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %101, %struct.lua_TValue** %o16, align 4
+ %102 = load %struct.lua_TValue** %o16, align 4 ; [#uses=1]
+ %103 = getelementptr inbounds %struct.lua_TValue* %102, i32 0, i32 0 ; [#uses=1]
+ %104 = load %struct.lua_TValue** %o25, align 4 ; [#uses=1]
+ %105 = getelementptr inbounds %struct.lua_TValue* %104, i32 0, i32 0 ; [#uses=1]
+ %106 = bitcast %union.anon* %103 to i8* ; [#uses=1]
+ %107 = bitcast %union.anon* %105 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %106, i8* %107, i32 8, i32 4, i1 false)
+ %108 = load %struct.lua_TValue** %o25, align 4 ; [#uses=1]
+ %109 = getelementptr inbounds %struct.lua_TValue* %108, i32 0, i32 1 ; [#uses=1]
+ %110 = load i32* %109, align 4 ; [#uses=1]
+ %111 = load %struct.lua_TValue** %o16, align 4 ; [#uses=1]
+ %112 = getelementptr inbounds %struct.lua_TValue* %111, i32 0, i32 1 ; [#uses=1]
+ store i32 %110, i32* %112, align 4
+ ret void
+}
+
+; [#uses=4]
+define hidden void @_Z13luaV_settableP9lua_StatePK10lua_TValuePS1_S4_(%struct.lua_State* %L, %struct.lua_TValue* %t, %struct.lua_TValue* %key, %struct.lua_TValue* %val) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=7]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %4 = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %loop = alloca i32, align 4 ; [#uses=4]
+ %tm = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %h = alloca %struct.Table*, align 4 ; [#uses=7]
+ %oldval = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %t, %struct.lua_TValue** %2, align 4
+ store %struct.lua_TValue* %key, %struct.lua_TValue** %3, align 4
+ store %struct.lua_TValue* %val, %struct.lua_TValue** %4, align 4
+ store i32 0, i32* %loop, align 4
+ br label %5
+
+; <label>:5 ; preds = %131, %0
+ %6 = load i32* %loop, align 4 ; [#uses=1]
+ %7 = icmp slt i32 %6, 100 ; [#uses=1]
+ br i1 %7, label %8, label %134
+
+; <label>:8 ; preds = %5
+ %9 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_TValue* %9, i32 0, i32 1 ; [#uses=1]
+ %11 = load i32* %10, align 4 ; [#uses=1]
+ %12 = icmp eq i32 %11, 5 ; [#uses=1]
+ br i1 %12, label %13, label %107
+
+; <label>:13 ; preds = %8
+ %14 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_TValue* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = getelementptr inbounds %union.anon* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = bitcast double* %16 to %union.GCObject** ; [#uses=1]
+ %18 = load %union.GCObject** %17, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %union.GCObject* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = bitcast %struct.lua_State* %19 to %struct.Table* ; [#uses=1]
+ store %struct.Table* %20, %struct.Table** %h, align 4
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %22 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %23 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %24 = call %struct.lua_TValue* @_Z8luaH_setP9lua_StateP5TablePK10lua_TValue(%struct.lua_State* %21, %struct.Table* %22, %struct.lua_TValue* %23) ; [#uses=1]
+ store %struct.lua_TValue* %24, %struct.lua_TValue** %oldval, align 4
+ %25 = load %struct.lua_TValue** %oldval, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_TValue* %25, i32 0, i32 1 ; [#uses=1]
+ %27 = load i32* %26, align 4 ; [#uses=1]
+ %28 = icmp eq i32 %27, 0 ; [#uses=1]
+ br i1 %28, label %29, label %61
+
+; <label>:29 ; preds = %13
+ %30 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.Table* %30, i32 0, i32 5 ; [#uses=1]
+ %32 = load %struct.Table** %31, align 4 ; [#uses=1]
+ %33 = icmp eq %struct.Table* %32, null ; [#uses=1]
+ br i1 %33, label %34, label %35
+
+; <label>:34 ; preds = %29
+ br label %58
+
+; <label>:35 ; preds = %29
+ %36 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.Table* %36, i32 0, i32 5 ; [#uses=1]
+ %38 = load %struct.Table** %37, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.Table* %38, i32 0, i32 3 ; [#uses=1]
+ %40 = load i8* %39, align 1 ; [#uses=1]
+ %41 = zext i8 %40 to i32 ; [#uses=1]
+ %42 = and i32 %41, 2 ; [#uses=1]
+ %43 = icmp ne i32 %42, 0 ; [#uses=1]
+ br i1 %43, label %44, label %45
+
+; <label>:44 ; preds = %35
+ br label %56
+
+; <label>:45 ; preds = %35
+ %46 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.Table* %46, i32 0, i32 5 ; [#uses=1]
+ %48 = load %struct.Table** %47, align 4 ; [#uses=1]
+ %49 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.lua_State* %49, i32 0, i32 6 ; [#uses=1]
+ %51 = load %struct.global_State** %50, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.global_State* %51, i32 0, i32 24 ; [#uses=1]
+ %53 = getelementptr inbounds [17 x %union.TString*]* %52, i32 0, i32 1 ; [#uses=1]
+ %54 = load %union.TString** %53 ; [#uses=1]
+ %55 = call %struct.lua_TValue* @_Z10luaT_gettmP5Table3TMSP7TString(%struct.Table* %48, i32 1, %union.TString* %54) ; [#uses=1]
+ br label %56
+
+; <label>:56 ; preds = %45, %44
+ %57 = phi %struct.lua_TValue* [ null, %44 ], [ %55, %45 ] ; [#uses=1]
+ br label %58
+
+; <label>:58 ; preds = %56, %34
+ %59 = phi %struct.lua_TValue* [ null, %34 ], [ %57, %56 ] ; [#uses=2]
+ store %struct.lua_TValue* %59, %struct.lua_TValue** %tm, align 4
+ %60 = icmp eq %struct.lua_TValue* %59, null ; [#uses=1]
+ br i1 %60, label %61, label %106
+
+; <label>:61 ; preds = %58, %13
+ %62 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %62, %struct.lua_TValue** %o2, align 4
+ %63 = load %struct.lua_TValue** %oldval, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %63, %struct.lua_TValue** %o1, align 4
+ %64 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %struct.lua_TValue* %64, i32 0, i32 0 ; [#uses=1]
+ %66 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.lua_TValue* %66, i32 0, i32 0 ; [#uses=1]
+ %68 = bitcast %union.anon* %65 to i8* ; [#uses=1]
+ %69 = bitcast %union.anon* %67 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %68, i8* %69, i32 8, i32 4, i1 false)
+ %70 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %71 = getelementptr inbounds %struct.lua_TValue* %70, i32 0, i32 1 ; [#uses=1]
+ %72 = load i32* %71, align 4 ; [#uses=1]
+ %73 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.lua_TValue* %73, i32 0, i32 1 ; [#uses=1]
+ store i32 %72, i32* %74, align 4
+ %75 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %76 = getelementptr inbounds %struct.lua_TValue* %75, i32 0, i32 1 ; [#uses=1]
+ %77 = load i32* %76, align 4 ; [#uses=1]
+ %78 = icmp sge i32 %77, 4 ; [#uses=1]
+ br i1 %78, label %79, label %105
+
+; <label>:79 ; preds = %61
+ %80 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.lua_TValue* %80, i32 0, i32 0 ; [#uses=1]
+ %82 = getelementptr inbounds %union.anon* %81, i32 0, i32 0 ; [#uses=1]
+ %83 = bitcast double* %82 to %union.GCObject** ; [#uses=1]
+ %84 = load %union.GCObject** %83, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %union.GCObject* %84, i32 0, i32 0 ; [#uses=1]
+ %86 = bitcast %struct.lua_State* %85 to %struct.GCheader* ; [#uses=1]
+ %87 = getelementptr inbounds %struct.GCheader* %86, i32 0, i32 2 ; [#uses=1]
+ %88 = load i8* %87, align 1 ; [#uses=1]
+ %89 = zext i8 %88 to i32 ; [#uses=1]
+ %90 = and i32 %89, 3 ; [#uses=1]
+ %91 = icmp ne i32 %90, 0 ; [#uses=1]
+ br i1 %91, label %92, label %105
+
+; <label>:92 ; preds = %79
+ %93 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %94 = bitcast %struct.Table* %93 to %union.GCObject* ; [#uses=1]
+ %95 = getelementptr inbounds %union.GCObject* %94, i32 0, i32 0 ; [#uses=1]
+ %96 = bitcast %struct.lua_State* %95 to %struct.GCheader* ; [#uses=1]
+ %97 = getelementptr inbounds %struct.GCheader* %96, i32 0, i32 2 ; [#uses=1]
+ %98 = load i8* %97, align 1 ; [#uses=1]
+ %99 = zext i8 %98 to i32 ; [#uses=1]
+ %100 = and i32 %99, 4 ; [#uses=1]
+ %101 = icmp ne i32 %100, 0 ; [#uses=1]
+ br i1 %101, label %102, label %105
+
+; <label>:102 ; preds = %92
+ %103 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %104 = load %struct.Table** %h, align 4 ; [#uses=1]
+ call void @_Z16luaC_barrierbackP9lua_StateP5Table(%struct.lua_State* %103, %struct.Table* %104)
+ br label %105
+
+; <label>:105 ; preds = %102, %92, %79, %61
+ br label %136
+
+; <label>:106 ; preds = %58
+ br label %118
+
+; <label>:107 ; preds = %8
+ %108 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %109 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %110 = call %struct.lua_TValue* @_Z15luaT_gettmbyobjP9lua_StatePK10lua_TValue3TMS(%struct.lua_State* %108, %struct.lua_TValue* %109, i32 1) ; [#uses=2]
+ store %struct.lua_TValue* %110, %struct.lua_TValue** %tm, align 4
+ %111 = getelementptr inbounds %struct.lua_TValue* %110, i32 0, i32 1 ; [#uses=1]
+ %112 = load i32* %111, align 4 ; [#uses=1]
+ %113 = icmp eq i32 %112, 0 ; [#uses=1]
+ br i1 %113, label %114, label %117
+
+; <label>:114 ; preds = %107
+ %115 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %116 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ call void @_Z14luaG_typeerrorP9lua_StatePK10lua_TValuePKc(%struct.lua_State* %115, %struct.lua_TValue* %116, i8* getelementptr inbounds ([6 x i8]* @.str1221, i32 0, i32 0))
+ br label %117
+
+; <label>:117 ; preds = %114, %107
+ br label %118
+
+; <label>:118 ; preds = %117, %106
+ %119 = load %struct.lua_TValue** %tm, align 4 ; [#uses=1]
+ %120 = getelementptr inbounds %struct.lua_TValue* %119, i32 0, i32 1 ; [#uses=1]
+ %121 = load i32* %120, align 4 ; [#uses=1]
+ %122 = icmp eq i32 %121, 6 ; [#uses=1]
+ br i1 %122, label %123, label %129
+
+; <label>:123 ; preds = %118
+ %124 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %125 = load %struct.lua_TValue** %tm, align 4 ; [#uses=1]
+ %126 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %127 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %128 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ call void @_Z6callTMP9lua_StatePK10lua_TValueS3_S3_S3_(%struct.lua_State* %124, %struct.lua_TValue* %125, %struct.lua_TValue* %126, %struct.lua_TValue* %127, %struct.lua_TValue* %128)
+ br label %136
+
+; <label>:129 ; preds = %118
+ %130 = load %struct.lua_TValue** %tm, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %130, %struct.lua_TValue** %2, align 4
+ br label %131
+
+; <label>:131 ; preds = %129
+ %132 = load i32* %loop, align 4 ; [#uses=1]
+ %133 = add nsw i32 %132, 1 ; [#uses=1]
+ store i32 %133, i32* %loop, align 4
+ br label %5
+
+; <label>:134 ; preds = %5
+ %135 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %135, i8* getelementptr inbounds ([17 x i8]* @.str3223, i32 0, i32 0))
+ br label %136
+
+; <label>:136 ; preds = %134, %123, %105
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z6callTMP9lua_StatePK10lua_TValueS3_S3_S3_(%struct.lua_State* %L, %struct.lua_TValue* %f, %struct.lua_TValue* %p1, %struct.lua_TValue* %p2, %struct.lua_TValue* %p3) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=11]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %4 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %5 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o21 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o12 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o23 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o14 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o25 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o16 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %f, %struct.lua_TValue** %2, align 4
+ store %struct.lua_TValue* %p1, %struct.lua_TValue** %3, align 4
+ store %struct.lua_TValue* %p2, %struct.lua_TValue** %4, align 4
+ store %struct.lua_TValue* %p3, %struct.lua_TValue** %5, align 4
+ %6 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %6, %struct.lua_TValue** %o2, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_State* %7, i32 0, i32 4 ; [#uses=1]
+ %9 = load %struct.lua_TValue** %8, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %9, %struct.lua_TValue** %o1, align 4
+ %10 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_TValue* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.lua_TValue* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = bitcast %union.anon* %11 to i8* ; [#uses=1]
+ %15 = bitcast %union.anon* %13 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %14, i8* %15, i32 8, i32 4, i1 false)
+ %16 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_TValue* %16, i32 0, i32 1 ; [#uses=1]
+ %18 = load i32* %17, align 4 ; [#uses=1]
+ %19 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_TValue* %19, i32 0, i32 1 ; [#uses=1]
+ store i32 %18, i32* %20, align 4
+ %21 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %21, %struct.lua_TValue** %o21, align 4
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_State* %22, i32 0, i32 4 ; [#uses=1]
+ %24 = load %struct.lua_TValue** %23, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.lua_TValue* %24, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %25, %struct.lua_TValue** %o12, align 4
+ %26 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_TValue* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_TValue* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = bitcast %union.anon* %27 to i8* ; [#uses=1]
+ %31 = bitcast %union.anon* %29 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %30, i8* %31, i32 8, i32 4, i1 false)
+ %32 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_TValue* %32, i32 0, i32 1 ; [#uses=1]
+ %34 = load i32* %33, align 4 ; [#uses=1]
+ %35 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.lua_TValue* %35, i32 0, i32 1 ; [#uses=1]
+ store i32 %34, i32* %36, align 4
+ %37 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %37, %struct.lua_TValue** %o23, align 4
+ %38 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.lua_State* %38, i32 0, i32 4 ; [#uses=1]
+ %40 = load %struct.lua_TValue** %39, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.lua_TValue* %40, i32 2 ; [#uses=1]
+ store %struct.lua_TValue* %41, %struct.lua_TValue** %o14, align 4
+ %42 = load %struct.lua_TValue** %o14, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.lua_TValue* %42, i32 0, i32 0 ; [#uses=1]
+ %44 = load %struct.lua_TValue** %o23, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds %struct.lua_TValue* %44, i32 0, i32 0 ; [#uses=1]
+ %46 = bitcast %union.anon* %43 to i8* ; [#uses=1]
+ %47 = bitcast %union.anon* %45 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %46, i8* %47, i32 8, i32 4, i1 false)
+ %48 = load %struct.lua_TValue** %o23, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.lua_TValue* %48, i32 0, i32 1 ; [#uses=1]
+ %50 = load i32* %49, align 4 ; [#uses=1]
+ %51 = load %struct.lua_TValue** %o14, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.lua_TValue* %51, i32 0, i32 1 ; [#uses=1]
+ store i32 %50, i32* %52, align 4
+ %53 = load %struct.lua_TValue** %5, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %53, %struct.lua_TValue** %o25, align 4
+ %54 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.lua_State* %54, i32 0, i32 4 ; [#uses=1]
+ %56 = load %struct.lua_TValue** %55, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.lua_TValue* %56, i32 3 ; [#uses=1]
+ store %struct.lua_TValue* %57, %struct.lua_TValue** %o16, align 4
+ %58 = load %struct.lua_TValue** %o16, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.lua_TValue* %58, i32 0, i32 0 ; [#uses=1]
+ %60 = load %struct.lua_TValue** %o25, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.lua_TValue* %60, i32 0, i32 0 ; [#uses=1]
+ %62 = bitcast %union.anon* %59 to i8* ; [#uses=1]
+ %63 = bitcast %union.anon* %61 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %62, i8* %63, i32 8, i32 4, i1 false)
+ %64 = load %struct.lua_TValue** %o25, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %struct.lua_TValue* %64, i32 0, i32 1 ; [#uses=1]
+ %66 = load i32* %65, align 4 ; [#uses=1]
+ %67 = load %struct.lua_TValue** %o16, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.lua_TValue* %67, i32 0, i32 1 ; [#uses=1]
+ store i32 %66, i32* %68, align 4
+ %69 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds %struct.lua_State* %69, i32 0, i32 9 ; [#uses=1]
+ %71 = load %struct.lua_TValue** %70, align 4 ; [#uses=1]
+ %72 = bitcast %struct.lua_TValue* %71 to i8* ; [#uses=1]
+ %73 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.lua_State* %73, i32 0, i32 4 ; [#uses=1]
+ %75 = load %struct.lua_TValue** %74, align 4 ; [#uses=1]
+ %76 = bitcast %struct.lua_TValue* %75 to i8* ; [#uses=1]
+ %77 = ptrtoint i8* %72 to i32 ; [#uses=1]
+ %78 = ptrtoint i8* %76 to i32 ; [#uses=1]
+ %79 = sub i32 %77, %78 ; [#uses=1]
+ %80 = icmp sle i32 %79, 48 ; [#uses=1]
+ br i1 %80, label %81, label %83
+
+; <label>:81 ; preds = %0
+ %82 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %82, i32 4)
+ br label %84
+
+; <label>:83 ; preds = %0
+ br label %84
+
+; <label>:84 ; preds = %83, %81
+ %85 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %86 = getelementptr inbounds %struct.lua_State* %85, i32 0, i32 4 ; [#uses=2]
+ %87 = load %struct.lua_TValue** %86, align 4 ; [#uses=1]
+ %88 = getelementptr inbounds %struct.lua_TValue* %87, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %88, %struct.lua_TValue** %86, align 4
+ %89 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %90 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %91 = getelementptr inbounds %struct.lua_State* %90, i32 0, i32 4 ; [#uses=1]
+ %92 = load %struct.lua_TValue** %91, align 4 ; [#uses=1]
+ %93 = getelementptr inbounds %struct.lua_TValue* %92, i32 -4 ; [#uses=1]
+ call void @_Z9luaD_callP9lua_StateP10lua_TValuei(%struct.lua_State* %89, %struct.lua_TValue* %93, i32 0)
+ ret void
+}
+
+; [#uses=2]
+define hidden i32 @_Z13luaV_lessthanP9lua_StatePK10lua_TValueS3_(%struct.lua_State* %L, %struct.lua_TValue* %l, %struct.lua_TValue* %r) {
+ %1 = alloca i32, align 4 ; [#uses=6]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=9]
+ %4 = alloca %struct.lua_TValue*, align 4 ; [#uses=7]
+ %res = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.lua_TValue* %l, %struct.lua_TValue** %3, align 4
+ store %struct.lua_TValue* %r, %struct.lua_TValue** %4, align 4
+ %5 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.lua_TValue* %5, i32 0, i32 1 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ %8 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_TValue* %8, i32 0, i32 1 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ %11 = icmp ne i32 %7, %10 ; [#uses=1]
+ br i1 %11, label %12, label %17
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %15 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %16 = call i32 @_Z15luaG_ordererrorP9lua_StatePK10lua_TValueS3_(%struct.lua_State* %13, %struct.lua_TValue* %14, %struct.lua_TValue* %15) ; [#uses=1]
+ store i32 %16, i32* %1
+ br label %72
+
+; <label>:17 ; preds = %0
+ %18 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_TValue* %18, i32 0, i32 1 ; [#uses=1]
+ %20 = load i32* %19, align 4 ; [#uses=1]
+ %21 = icmp eq i32 %20, 3 ; [#uses=1]
+ br i1 %21, label %22, label %33
+
+; <label>:22 ; preds = %17
+ %23 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_TValue* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = getelementptr inbounds %union.anon* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = load double* %25, align 4 ; [#uses=1]
+ %27 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_TValue* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = getelementptr inbounds %union.anon* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = load double* %29, align 4 ; [#uses=1]
+ %31 = fcmp olt double %26, %30 ; [#uses=1]
+ %32 = zext i1 %31 to i32 ; [#uses=1]
+ store i32 %32, i32* %1
+ br label %72
+
+; <label>:33 ; preds = %17
+ %34 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_TValue* %34, i32 0, i32 1 ; [#uses=1]
+ %36 = load i32* %35, align 4 ; [#uses=1]
+ %37 = icmp eq i32 %36, 4 ; [#uses=1]
+ br i1 %37, label %38, label %56
+
+; <label>:38 ; preds = %33
+ %39 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.lua_TValue* %39, i32 0, i32 0 ; [#uses=1]
+ %41 = getelementptr inbounds %union.anon* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = bitcast double* %41 to %union.GCObject** ; [#uses=1]
+ %43 = load %union.GCObject** %42, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %union.GCObject* %43, i32 0, i32 0 ; [#uses=1]
+ %45 = bitcast %struct.lua_State* %44 to %union.TString* ; [#uses=1]
+ %46 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.lua_TValue* %46, i32 0, i32 0 ; [#uses=1]
+ %48 = getelementptr inbounds %union.anon* %47, i32 0, i32 0 ; [#uses=1]
+ %49 = bitcast double* %48 to %union.GCObject** ; [#uses=1]
+ %50 = load %union.GCObject** %49, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %union.GCObject* %50, i32 0, i32 0 ; [#uses=1]
+ %52 = bitcast %struct.lua_State* %51 to %union.TString* ; [#uses=1]
+ %53 = call i32 @_Z8l_strcmpPK7TStringS1_(%union.TString* %45, %union.TString* %52) ; [#uses=1]
+ %54 = icmp slt i32 %53, 0 ; [#uses=1]
+ %55 = zext i1 %54 to i32 ; [#uses=1]
+ store i32 %55, i32* %1
+ br label %72
+
+; <label>:56 ; preds = %33
+ %57 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %58 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %59 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %60 = call i32 @_Z12call_orderTMP9lua_StatePK10lua_TValueS3_3TMS(%struct.lua_State* %57, %struct.lua_TValue* %58, %struct.lua_TValue* %59, i32 13) ; [#uses=2]
+ store i32 %60, i32* %res, align 4
+ %61 = icmp ne i32 %60, -1 ; [#uses=1]
+ br i1 %61, label %62, label %64
+
+; <label>:62 ; preds = %56
+ %63 = load i32* %res, align 4 ; [#uses=1]
+ store i32 %63, i32* %1
+ br label %72
+
+; <label>:64 ; preds = %56
+ br label %65
+
+; <label>:65 ; preds = %64
+ br label %66
+
+; <label>:66 ; preds = %65
+ br label %67
+
+; <label>:67 ; preds = %66
+ %68 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %69 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %70 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %71 = call i32 @_Z15luaG_ordererrorP9lua_StatePK10lua_TValueS3_(%struct.lua_State* %68, %struct.lua_TValue* %69, %struct.lua_TValue* %70) ; [#uses=1]
+ store i32 %71, i32* %1
+ br label %72
+
+; <label>:72 ; preds = %67, %62, %38, %22, %12
+ %73 = load i32* %1 ; [#uses=1]
+ ret i32 %73
+}
+
+; [#uses=2]
+define internal i32 @_Z8l_strcmpPK7TStringS1_(%union.TString* %ls, %union.TString* %rs) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %union.TString*, align 4 ; [#uses=3]
+ %3 = alloca %union.TString*, align 4 ; [#uses=3]
+ %l = alloca i8*, align 4 ; [#uses=5]
+ %ll = alloca i32, align 4 ; [#uses=5]
+ %r = alloca i8*, align 4 ; [#uses=4]
+ %lr = alloca i32, align 4 ; [#uses=4]
+ %temp = alloca i32, align 4 ; [#uses=3]
+ %len = alloca i32, align 4 ; [#uses=10]
+ store %union.TString* %ls, %union.TString** %2, align 4
+ store %union.TString* %rs, %union.TString** %3, align 4
+ %4 = load %union.TString** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %union.TString* %4, i32 1 ; [#uses=1]
+ %6 = bitcast %union.TString* %5 to i8* ; [#uses=1]
+ store i8* %6, i8** %l, align 4
+ %7 = load %union.TString** %2, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %union.TString* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.anon* %8, i32 0, i32 5 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ store i32 %10, i32* %ll, align 4
+ %11 = load %union.TString** %3, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %union.TString* %11, i32 1 ; [#uses=1]
+ %13 = bitcast %union.TString* %12 to i8* ; [#uses=1]
+ store i8* %13, i8** %r, align 4
+ %14 = load %union.TString** %3, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %union.TString* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.anon* %15, i32 0, i32 5 ; [#uses=1]
+ %17 = load i32* %16, align 4 ; [#uses=1]
+ store i32 %17, i32* %lr, align 4
+ br label %18
+
+; <label>:18 ; preds = %58, %0
+ %19 = load i8** %l, align 4 ; [#uses=1]
+ %20 = load i8** %r, align 4 ; [#uses=1]
+ %21 = call i32 @strcoll(i8* %19, i8* %20) nounwind readonly ; [#uses=1]
+ store i32 %21, i32* %temp, align 4
+ %22 = load i32* %temp, align 4 ; [#uses=1]
+ %23 = icmp ne i32 %22, 0 ; [#uses=1]
+ br i1 %23, label %24, label %26
+
+; <label>:24 ; preds = %18
+ %25 = load i32* %temp, align 4 ; [#uses=1]
+ store i32 %25, i32* %1
+ br label %59
+
+; <label>:26 ; preds = %18
+ %27 = load i8** %l, align 4 ; [#uses=1]
+ %28 = call i32 @strlen(i8* %27) ; [#uses=1]
+ store i32 %28, i32* %len, align 4
+ %29 = load i32* %len, align 4 ; [#uses=1]
+ %30 = load i32* %lr, align 4 ; [#uses=1]
+ %31 = icmp eq i32 %29, %30 ; [#uses=1]
+ br i1 %31, label %32, label %37
+
+; <label>:32 ; preds = %26
+ %33 = load i32* %len, align 4 ; [#uses=1]
+ %34 = load i32* %ll, align 4 ; [#uses=1]
+ %35 = icmp eq i32 %33, %34 ; [#uses=1]
+ %36 = select i1 %35, i32 0, i32 1 ; [#uses=1]
+ store i32 %36, i32* %1
+ br label %59
+
+; <label>:37 ; preds = %26
+ %38 = load i32* %len, align 4 ; [#uses=1]
+ %39 = load i32* %ll, align 4 ; [#uses=1]
+ %40 = icmp eq i32 %38, %39 ; [#uses=1]
+ br i1 %40, label %41, label %42
+
+; <label>:41 ; preds = %37
+ store i32 -1, i32* %1
+ br label %59
+
+; <label>:42 ; preds = %37
+ br label %43
+
+; <label>:43 ; preds = %42
+ %44 = load i32* %len, align 4 ; [#uses=1]
+ %45 = add i32 %44, 1 ; [#uses=1]
+ store i32 %45, i32* %len, align 4
+ %46 = load i32* %len, align 4 ; [#uses=1]
+ %47 = load i8** %l, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds i8* %47, i32 %46 ; [#uses=1]
+ store i8* %48, i8** %l, align 4
+ %49 = load i32* %len, align 4 ; [#uses=1]
+ %50 = load i32* %ll, align 4 ; [#uses=1]
+ %51 = sub i32 %50, %49 ; [#uses=1]
+ store i32 %51, i32* %ll, align 4
+ %52 = load i32* %len, align 4 ; [#uses=1]
+ %53 = load i8** %r, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds i8* %53, i32 %52 ; [#uses=1]
+ store i8* %54, i8** %r, align 4
+ %55 = load i32* %len, align 4 ; [#uses=1]
+ %56 = load i32* %lr, align 4 ; [#uses=1]
+ %57 = sub i32 %56, %55 ; [#uses=1]
+ store i32 %57, i32* %lr, align 4
+ br label %58
+
+; <label>:58 ; preds = %43
+ br label %18
+
+; <label>:59 ; preds = %41, %32, %24
+ %60 = load i32* %1 ; [#uses=1]
+ ret i32 %60
+}
+
+; [#uses=3]
+define internal i32 @_Z12call_orderTMP9lua_StatePK10lua_TValueS3_3TMS(%struct.lua_State* %L, %struct.lua_TValue* %p1, %struct.lua_TValue* %p2, i32 %event) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %4 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %5 = alloca i32, align 4 ; [#uses=3]
+ %tm1 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %tm2 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.lua_TValue* %p1, %struct.lua_TValue** %3, align 4
+ store %struct.lua_TValue* %p2, %struct.lua_TValue** %4, align 4
+ store i32 %event, i32* %5, align 4
+ %6 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %7 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %8 = load i32* %5, align 4 ; [#uses=1]
+ %9 = call %struct.lua_TValue* @_Z15luaT_gettmbyobjP9lua_StatePK10lua_TValue3TMS(%struct.lua_State* %6, %struct.lua_TValue* %7, i32 %8) ; [#uses=1]
+ store %struct.lua_TValue* %9, %struct.lua_TValue** %tm1, align 4
+ %10 = load %struct.lua_TValue** %tm1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_TValue* %10, i32 0, i32 1 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ %13 = icmp eq i32 %12, 0 ; [#uses=1]
+ br i1 %13, label %14, label %15
+
+; <label>:14 ; preds = %0
+ store i32 -1, i32* %1
+ br label %61
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %17 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %18 = load i32* %5, align 4 ; [#uses=1]
+ %19 = call %struct.lua_TValue* @_Z15luaT_gettmbyobjP9lua_StatePK10lua_TValue3TMS(%struct.lua_State* %16, %struct.lua_TValue* %17, i32 %18) ; [#uses=1]
+ store %struct.lua_TValue* %19, %struct.lua_TValue** %tm2, align 4
+ %20 = load %struct.lua_TValue** %tm1, align 4 ; [#uses=1]
+ %21 = load %struct.lua_TValue** %tm2, align 4 ; [#uses=1]
+ %22 = call i32 @_Z16luaO_rawequalObjPK10lua_TValueS1_(%struct.lua_TValue* %20, %struct.lua_TValue* %21) ; [#uses=1]
+ %23 = icmp ne i32 %22, 0 ; [#uses=1]
+ br i1 %23, label %25, label %24
+
+; <label>:24 ; preds = %15
+ store i32 -1, i32* %1
+ br label %61
+
+; <label>:25 ; preds = %15
+ %26 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_State* %27, i32 0, i32 4 ; [#uses=1]
+ %29 = load %struct.lua_TValue** %28, align 4 ; [#uses=1]
+ %30 = load %struct.lua_TValue** %tm1, align 4 ; [#uses=1]
+ %31 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %32 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ call void @_Z9callTMresP9lua_StateP10lua_TValuePKS1_S4_S4_(%struct.lua_State* %26, %struct.lua_TValue* %29, %struct.lua_TValue* %30, %struct.lua_TValue* %31, %struct.lua_TValue* %32)
+ %33 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.lua_State* %33, i32 0, i32 4 ; [#uses=1]
+ %35 = load %struct.lua_TValue** %34, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.lua_TValue* %35, i32 0, i32 1 ; [#uses=1]
+ %37 = load i32* %36, align 4 ; [#uses=1]
+ %38 = icmp eq i32 %37, 0 ; [#uses=1]
+ br i1 %38, label %57, label %39
+
+; <label>:39 ; preds = %25
+ %40 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.lua_State* %40, i32 0, i32 4 ; [#uses=1]
+ %42 = load %struct.lua_TValue** %41, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.lua_TValue* %42, i32 0, i32 1 ; [#uses=1]
+ %44 = load i32* %43, align 4 ; [#uses=1]
+ %45 = icmp eq i32 %44, 1 ; [#uses=1]
+ br i1 %45, label %46, label %55
+
+; <label>:46 ; preds = %39
+ %47 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.lua_State* %47, i32 0, i32 4 ; [#uses=1]
+ %49 = load %struct.lua_TValue** %48, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.lua_TValue* %49, i32 0, i32 0 ; [#uses=1]
+ %51 = getelementptr inbounds %union.anon* %50, i32 0, i32 0 ; [#uses=1]
+ %52 = bitcast double* %51 to i32* ; [#uses=1]
+ %53 = load i32* %52, align 4 ; [#uses=1]
+ %54 = icmp eq i32 %53, 0 ; [#uses=1]
+ br label %55
+
+; <label>:55 ; preds = %46, %39
+ %56 = phi i1 [ false, %39 ], [ %54, %46 ] ; [#uses=1]
+ br label %57
+
+; <label>:57 ; preds = %55, %25
+ %58 = phi i1 [ true, %25 ], [ %56, %55 ] ; [#uses=1]
+ %59 = xor i1 %58, true ; [#uses=1]
+ %60 = zext i1 %59 to i32 ; [#uses=1]
+ store i32 %60, i32* %1
+ br label %61
+
+; <label>:61 ; preds = %57, %24, %14
+ %62 = load i32* %1 ; [#uses=1]
+ ret i32 %62
+}
+
+; [#uses=2]
+define hidden i32 @_Z13luaV_equalvalP9lua_StatePK10lua_TValueS3_(%struct.lua_State* %L, %struct.lua_TValue* %t1, %struct.lua_TValue* %t2) {
+ %1 = alloca i32, align 4 ; [#uses=10]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=11]
+ %4 = alloca %struct.lua_TValue*, align 4 ; [#uses=10]
+ %tm = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.lua_TValue* %t1, %struct.lua_TValue** %3, align 4
+ store %struct.lua_TValue* %t2, %struct.lua_TValue** %4, align 4
+ %5 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.lua_TValue* %5, i32 0, i32 1 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ switch i32 %7, label %126 [
+ i32 0, label %8
+ i32 3, label %9
+ i32 1, label %20
+ i32 2, label %33
+ i32 7, label %46
+ i32 5, label %88
+ ]
+
+; <label>:8 ; preds = %0
+ store i32 1, i32* %1
+ br label %179
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_TValue* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = getelementptr inbounds %union.anon* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = load double* %12, align 4 ; [#uses=1]
+ %14 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_TValue* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = getelementptr inbounds %union.anon* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = load double* %16, align 4 ; [#uses=1]
+ %18 = fcmp oeq double %13, %17 ; [#uses=1]
+ %19 = zext i1 %18 to i32 ; [#uses=1]
+ store i32 %19, i32* %1
+ br label %179
+
+; <label>:20 ; preds = %0
+ %21 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_TValue* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = getelementptr inbounds %union.anon* %22, i32 0, i32 0 ; [#uses=1]
+ %24 = bitcast double* %23 to i32* ; [#uses=1]
+ %25 = load i32* %24, align 4 ; [#uses=1]
+ %26 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_TValue* %26, i32 0, i32 0 ; [#uses=1]
+ %28 = getelementptr inbounds %union.anon* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = bitcast double* %28 to i32* ; [#uses=1]
+ %30 = load i32* %29, align 4 ; [#uses=1]
+ %31 = icmp eq i32 %25, %30 ; [#uses=1]
+ %32 = zext i1 %31 to i32 ; [#uses=1]
+ store i32 %32, i32* %1
+ br label %179
+
+; <label>:33 ; preds = %0
+ %34 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_TValue* %34, i32 0, i32 0 ; [#uses=1]
+ %36 = getelementptr inbounds %union.anon* %35, i32 0, i32 0 ; [#uses=1]
+ %37 = bitcast double* %36 to i8** ; [#uses=1]
+ %38 = load i8** %37, align 4 ; [#uses=1]
+ %39 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.lua_TValue* %39, i32 0, i32 0 ; [#uses=1]
+ %41 = getelementptr inbounds %union.anon* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = bitcast double* %41 to i8** ; [#uses=1]
+ %43 = load i8** %42, align 4 ; [#uses=1]
+ %44 = icmp eq i8* %38, %43 ; [#uses=1]
+ %45 = zext i1 %44 to i32 ; [#uses=1]
+ store i32 %45, i32* %1
+ br label %179
+
+; <label>:46 ; preds = %0
+ %47 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.lua_TValue* %47, i32 0, i32 0 ; [#uses=1]
+ %49 = getelementptr inbounds %union.anon* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = bitcast double* %49 to %union.GCObject** ; [#uses=1]
+ %51 = load %union.GCObject** %50, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %union.GCObject* %51, i32 0, i32 0 ; [#uses=1]
+ %53 = bitcast %struct.lua_State* %52 to %union.Udata* ; [#uses=1]
+ %54 = getelementptr inbounds %union.Udata* %53, i32 0, i32 0 ; [#uses=1]
+ %55 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.lua_TValue* %55, i32 0, i32 0 ; [#uses=1]
+ %57 = getelementptr inbounds %union.anon* %56, i32 0, i32 0 ; [#uses=1]
+ %58 = bitcast double* %57 to %union.GCObject** ; [#uses=1]
+ %59 = load %union.GCObject** %58, align 4 ; [#uses=1]
+ %60 = getelementptr inbounds %union.GCObject* %59, i32 0, i32 0 ; [#uses=1]
+ %61 = bitcast %struct.lua_State* %60 to %union.Udata* ; [#uses=1]
+ %62 = getelementptr inbounds %union.Udata* %61, i32 0, i32 0 ; [#uses=1]
+ %63 = icmp eq %4* %54, %62 ; [#uses=1]
+ br i1 %63, label %64, label %65
+
+; <label>:64 ; preds = %46
+ store i32 1, i32* %1
+ br label %179
+
+; <label>:65 ; preds = %46
+ %66 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %67 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.lua_TValue* %67, i32 0, i32 0 ; [#uses=1]
+ %69 = getelementptr inbounds %union.anon* %68, i32 0, i32 0 ; [#uses=1]
+ %70 = bitcast double* %69 to %union.GCObject** ; [#uses=1]
+ %71 = load %union.GCObject** %70, align 4 ; [#uses=1]
+ %72 = getelementptr inbounds %union.GCObject* %71, i32 0, i32 0 ; [#uses=1]
+ %73 = bitcast %struct.lua_State* %72 to %union.Udata* ; [#uses=1]
+ %74 = getelementptr inbounds %union.Udata* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = getelementptr inbounds %4* %74, i32 0, i32 3 ; [#uses=1]
+ %76 = load %struct.Table** %75, align 4 ; [#uses=1]
+ %77 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %78 = getelementptr inbounds %struct.lua_TValue* %77, i32 0, i32 0 ; [#uses=1]
+ %79 = getelementptr inbounds %union.anon* %78, i32 0, i32 0 ; [#uses=1]
+ %80 = bitcast double* %79 to %union.GCObject** ; [#uses=1]
+ %81 = load %union.GCObject** %80, align 4 ; [#uses=1]
+ %82 = getelementptr inbounds %union.GCObject* %81, i32 0, i32 0 ; [#uses=1]
+ %83 = bitcast %struct.lua_State* %82 to %union.Udata* ; [#uses=1]
+ %84 = getelementptr inbounds %union.Udata* %83, i32 0, i32 0 ; [#uses=1]
+ %85 = getelementptr inbounds %4* %84, i32 0, i32 3 ; [#uses=1]
+ %86 = load %struct.Table** %85, align 4 ; [#uses=1]
+ %87 = call %struct.lua_TValue* @_Z10get_compTMP9lua_StateP5TableS2_3TMS(%struct.lua_State* %66, %struct.Table* %76, %struct.Table* %86, i32 4) ; [#uses=1]
+ store %struct.lua_TValue* %87, %struct.lua_TValue** %tm, align 4
+ br label %139
+
+; <label>:88 ; preds = %0
+ %89 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %90 = getelementptr inbounds %struct.lua_TValue* %89, i32 0, i32 0 ; [#uses=1]
+ %91 = getelementptr inbounds %union.anon* %90, i32 0, i32 0 ; [#uses=1]
+ %92 = bitcast double* %91 to %union.GCObject** ; [#uses=1]
+ %93 = load %union.GCObject** %92, align 4 ; [#uses=1]
+ %94 = getelementptr inbounds %union.GCObject* %93, i32 0, i32 0 ; [#uses=1]
+ %95 = bitcast %struct.lua_State* %94 to %struct.Table* ; [#uses=1]
+ %96 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %97 = getelementptr inbounds %struct.lua_TValue* %96, i32 0, i32 0 ; [#uses=1]
+ %98 = getelementptr inbounds %union.anon* %97, i32 0, i32 0 ; [#uses=1]
+ %99 = bitcast double* %98 to %union.GCObject** ; [#uses=1]
+ %100 = load %union.GCObject** %99, align 4 ; [#uses=1]
+ %101 = getelementptr inbounds %union.GCObject* %100, i32 0, i32 0 ; [#uses=1]
+ %102 = bitcast %struct.lua_State* %101 to %struct.Table* ; [#uses=1]
+ %103 = icmp eq %struct.Table* %95, %102 ; [#uses=1]
+ br i1 %103, label %104, label %105
+
+; <label>:104 ; preds = %88
+ store i32 1, i32* %1
+ br label %179
+
+; <label>:105 ; preds = %88
+ %106 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %107 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %108 = getelementptr inbounds %struct.lua_TValue* %107, i32 0, i32 0 ; [#uses=1]
+ %109 = getelementptr inbounds %union.anon* %108, i32 0, i32 0 ; [#uses=1]
+ %110 = bitcast double* %109 to %union.GCObject** ; [#uses=1]
+ %111 = load %union.GCObject** %110, align 4 ; [#uses=1]
+ %112 = getelementptr inbounds %union.GCObject* %111, i32 0, i32 0 ; [#uses=1]
+ %113 = bitcast %struct.lua_State* %112 to %struct.Table* ; [#uses=1]
+ %114 = getelementptr inbounds %struct.Table* %113, i32 0, i32 5 ; [#uses=1]
+ %115 = load %struct.Table** %114, align 4 ; [#uses=1]
+ %116 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %117 = getelementptr inbounds %struct.lua_TValue* %116, i32 0, i32 0 ; [#uses=1]
+ %118 = getelementptr inbounds %union.anon* %117, i32 0, i32 0 ; [#uses=1]
+ %119 = bitcast double* %118 to %union.GCObject** ; [#uses=1]
+ %120 = load %union.GCObject** %119, align 4 ; [#uses=1]
+ %121 = getelementptr inbounds %union.GCObject* %120, i32 0, i32 0 ; [#uses=1]
+ %122 = bitcast %struct.lua_State* %121 to %struct.Table* ; [#uses=1]
+ %123 = getelementptr inbounds %struct.Table* %122, i32 0, i32 5 ; [#uses=1]
+ %124 = load %struct.Table** %123, align 4 ; [#uses=1]
+ %125 = call %struct.lua_TValue* @_Z10get_compTMP9lua_StateP5TableS2_3TMS(%struct.lua_State* %106, %struct.Table* %115, %struct.Table* %124, i32 4) ; [#uses=1]
+ store %struct.lua_TValue* %125, %struct.lua_TValue** %tm, align 4
+ br label %139
+
+; <label>:126 ; preds = %0
+ %127 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %128 = getelementptr inbounds %struct.lua_TValue* %127, i32 0, i32 0 ; [#uses=1]
+ %129 = getelementptr inbounds %union.anon* %128, i32 0, i32 0 ; [#uses=1]
+ %130 = bitcast double* %129 to %union.GCObject** ; [#uses=1]
+ %131 = load %union.GCObject** %130, align 4 ; [#uses=1]
+ %132 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %133 = getelementptr inbounds %struct.lua_TValue* %132, i32 0, i32 0 ; [#uses=1]
+ %134 = getelementptr inbounds %union.anon* %133, i32 0, i32 0 ; [#uses=1]
+ %135 = bitcast double* %134 to %union.GCObject** ; [#uses=1]
+ %136 = load %union.GCObject** %135, align 4 ; [#uses=1]
+ %137 = icmp eq %union.GCObject* %131, %136 ; [#uses=1]
+ %138 = zext i1 %137 to i32 ; [#uses=1]
+ store i32 %138, i32* %1
+ br label %179
+
+; <label>:139 ; preds = %105, %65
+ %140 = load %struct.lua_TValue** %tm, align 4 ; [#uses=1]
+ %141 = icmp eq %struct.lua_TValue* %140, null ; [#uses=1]
+ br i1 %141, label %142, label %143
+
+; <label>:142 ; preds = %139
+ store i32 0, i32* %1
+ br label %179
+
+; <label>:143 ; preds = %139
+ %144 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %145 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %146 = getelementptr inbounds %struct.lua_State* %145, i32 0, i32 4 ; [#uses=1]
+ %147 = load %struct.lua_TValue** %146, align 4 ; [#uses=1]
+ %148 = load %struct.lua_TValue** %tm, align 4 ; [#uses=1]
+ %149 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %150 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ call void @_Z9callTMresP9lua_StateP10lua_TValuePKS1_S4_S4_(%struct.lua_State* %144, %struct.lua_TValue* %147, %struct.lua_TValue* %148, %struct.lua_TValue* %149, %struct.lua_TValue* %150)
+ %151 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %152 = getelementptr inbounds %struct.lua_State* %151, i32 0, i32 4 ; [#uses=1]
+ %153 = load %struct.lua_TValue** %152, align 4 ; [#uses=1]
+ %154 = getelementptr inbounds %struct.lua_TValue* %153, i32 0, i32 1 ; [#uses=1]
+ %155 = load i32* %154, align 4 ; [#uses=1]
+ %156 = icmp eq i32 %155, 0 ; [#uses=1]
+ br i1 %156, label %175, label %157
+
+; <label>:157 ; preds = %143
+ %158 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %159 = getelementptr inbounds %struct.lua_State* %158, i32 0, i32 4 ; [#uses=1]
+ %160 = load %struct.lua_TValue** %159, align 4 ; [#uses=1]
+ %161 = getelementptr inbounds %struct.lua_TValue* %160, i32 0, i32 1 ; [#uses=1]
+ %162 = load i32* %161, align 4 ; [#uses=1]
+ %163 = icmp eq i32 %162, 1 ; [#uses=1]
+ br i1 %163, label %164, label %173
+
+; <label>:164 ; preds = %157
+ %165 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %166 = getelementptr inbounds %struct.lua_State* %165, i32 0, i32 4 ; [#uses=1]
+ %167 = load %struct.lua_TValue** %166, align 4 ; [#uses=1]
+ %168 = getelementptr inbounds %struct.lua_TValue* %167, i32 0, i32 0 ; [#uses=1]
+ %169 = getelementptr inbounds %union.anon* %168, i32 0, i32 0 ; [#uses=1]
+ %170 = bitcast double* %169 to i32* ; [#uses=1]
+ %171 = load i32* %170, align 4 ; [#uses=1]
+ %172 = icmp eq i32 %171, 0 ; [#uses=1]
+ br label %173
+
+; <label>:173 ; preds = %164, %157
+ %174 = phi i1 [ false, %157 ], [ %172, %164 ] ; [#uses=1]
+ br label %175
+
+; <label>:175 ; preds = %173, %143
+ %176 = phi i1 [ true, %143 ], [ %174, %173 ] ; [#uses=1]
+ %177 = xor i1 %176, true ; [#uses=1]
+ %178 = zext i1 %177 to i32 ; [#uses=1]
+ store i32 %178, i32* %1
+ br label %179
+
+; <label>:179 ; preds = %175, %142, %126, %104, %64, %33, %20, %9, %8
+ %180 = load i32* %1 ; [#uses=1]
+ ret i32 %180
+}
+
+; [#uses=2]
+define internal %struct.lua_TValue* @_Z10get_compTMP9lua_StateP5TableS2_3TMS(%struct.lua_State* %L, %struct.Table* %mt1, %struct.Table* %mt2, i32 %event) {
+ %1 = alloca %struct.lua_TValue*, align 4 ; [#uses=6]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %3 = alloca %struct.Table*, align 4 ; [#uses=5]
+ %4 = alloca %struct.Table*, align 4 ; [#uses=5]
+ %5 = alloca i32, align 4 ; [#uses=7]
+ %tm1 = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %tm2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.Table* %mt1, %struct.Table** %3, align 4
+ store %struct.Table* %mt2, %struct.Table** %4, align 4
+ store i32 %event, i32* %5, align 4
+ %6 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %7 = icmp eq %struct.Table* %6, null ; [#uses=1]
+ br i1 %7, label %8, label %9
+
+; <label>:8 ; preds = %0
+ br label %32
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Table* %10, i32 0, i32 3 ; [#uses=1]
+ %12 = load i8* %11, align 1 ; [#uses=1]
+ %13 = zext i8 %12 to i32 ; [#uses=1]
+ %14 = load i32* %5, align 4 ; [#uses=1]
+ %15 = shl i32 1, %14 ; [#uses=1]
+ %16 = and i32 %13, %15 ; [#uses=1]
+ %17 = icmp ne i32 %16, 0 ; [#uses=1]
+ br i1 %17, label %18, label %19
+
+; <label>:18 ; preds = %9
+ br label %30
+
+; <label>:19 ; preds = %9
+ %20 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %21 = load i32* %5, align 4 ; [#uses=1]
+ %22 = load i32* %5, align 4 ; [#uses=1]
+ %23 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_State* %23, i32 0, i32 6 ; [#uses=1]
+ %25 = load %struct.global_State** %24, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.global_State* %25, i32 0, i32 24 ; [#uses=1]
+ %27 = getelementptr inbounds [17 x %union.TString*]* %26, i32 0, i32 %22 ; [#uses=1]
+ %28 = load %union.TString** %27 ; [#uses=1]
+ %29 = call %struct.lua_TValue* @_Z10luaT_gettmP5Table3TMSP7TString(%struct.Table* %20, i32 %21, %union.TString* %28) ; [#uses=1]
+ br label %30
+
+; <label>:30 ; preds = %19, %18
+ %31 = phi %struct.lua_TValue* [ null, %18 ], [ %29, %19 ] ; [#uses=1]
+ br label %32
+
+; <label>:32 ; preds = %30, %8
+ %33 = phi %struct.lua_TValue* [ null, %8 ], [ %31, %30 ] ; [#uses=1]
+ store %struct.lua_TValue* %33, %struct.lua_TValue** %tm1, align 4
+ %34 = load %struct.lua_TValue** %tm1, align 4 ; [#uses=1]
+ %35 = icmp eq %struct.lua_TValue* %34, null ; [#uses=1]
+ br i1 %35, label %36, label %37
+
+; <label>:36 ; preds = %32
+ store %struct.lua_TValue* null, %struct.lua_TValue** %1
+ br label %83
+
+; <label>:37 ; preds = %32
+ %38 = load %struct.Table** %3, align 4 ; [#uses=1]
+ %39 = load %struct.Table** %4, align 4 ; [#uses=1]
+ %40 = icmp eq %struct.Table* %38, %39 ; [#uses=1]
+ br i1 %40, label %41, label %43
+
+; <label>:41 ; preds = %37
+ %42 = load %struct.lua_TValue** %tm1, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %42, %struct.lua_TValue** %1
+ br label %83
+
+; <label>:43 ; preds = %37
+ %44 = load %struct.Table** %4, align 4 ; [#uses=1]
+ %45 = icmp eq %struct.Table* %44, null ; [#uses=1]
+ br i1 %45, label %46, label %47
+
+; <label>:46 ; preds = %43
+ br label %70
+
+; <label>:47 ; preds = %43
+ %48 = load %struct.Table** %4, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.Table* %48, i32 0, i32 3 ; [#uses=1]
+ %50 = load i8* %49, align 1 ; [#uses=1]
+ %51 = zext i8 %50 to i32 ; [#uses=1]
+ %52 = load i32* %5, align 4 ; [#uses=1]
+ %53 = shl i32 1, %52 ; [#uses=1]
+ %54 = and i32 %51, %53 ; [#uses=1]
+ %55 = icmp ne i32 %54, 0 ; [#uses=1]
+ br i1 %55, label %56, label %57
+
+; <label>:56 ; preds = %47
+ br label %68
+
+; <label>:57 ; preds = %47
+ %58 = load %struct.Table** %4, align 4 ; [#uses=1]
+ %59 = load i32* %5, align 4 ; [#uses=1]
+ %60 = load i32* %5, align 4 ; [#uses=1]
+ %61 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds %struct.lua_State* %61, i32 0, i32 6 ; [#uses=1]
+ %63 = load %struct.global_State** %62, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.global_State* %63, i32 0, i32 24 ; [#uses=1]
+ %65 = getelementptr inbounds [17 x %union.TString*]* %64, i32 0, i32 %60 ; [#uses=1]
+ %66 = load %union.TString** %65 ; [#uses=1]
+ %67 = call %struct.lua_TValue* @_Z10luaT_gettmP5Table3TMSP7TString(%struct.Table* %58, i32 %59, %union.TString* %66) ; [#uses=1]
+ br label %68
+
+; <label>:68 ; preds = %57, %56
+ %69 = phi %struct.lua_TValue* [ null, %56 ], [ %67, %57 ] ; [#uses=1]
+ br label %70
+
+; <label>:70 ; preds = %68, %46
+ %71 = phi %struct.lua_TValue* [ null, %46 ], [ %69, %68 ] ; [#uses=1]
+ store %struct.lua_TValue* %71, %struct.lua_TValue** %tm2, align 4
+ %72 = load %struct.lua_TValue** %tm2, align 4 ; [#uses=1]
+ %73 = icmp eq %struct.lua_TValue* %72, null ; [#uses=1]
+ br i1 %73, label %74, label %75
+
+; <label>:74 ; preds = %70
+ store %struct.lua_TValue* null, %struct.lua_TValue** %1
+ br label %83
+
+; <label>:75 ; preds = %70
+ %76 = load %struct.lua_TValue** %tm1, align 4 ; [#uses=1]
+ %77 = load %struct.lua_TValue** %tm2, align 4 ; [#uses=1]
+ %78 = call i32 @_Z16luaO_rawequalObjPK10lua_TValueS1_(%struct.lua_TValue* %76, %struct.lua_TValue* %77) ; [#uses=1]
+ %79 = icmp ne i32 %78, 0 ; [#uses=1]
+ br i1 %79, label %80, label %82
+
+; <label>:80 ; preds = %75
+ %81 = load %struct.lua_TValue** %tm1, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %81, %struct.lua_TValue** %1
+ br label %83
+
+; <label>:82 ; preds = %75
+ store %struct.lua_TValue* null, %struct.lua_TValue** %1
+ br label %83
+
+; <label>:83 ; preds = %82, %80, %74, %41, %36
+ %84 = load %struct.lua_TValue** %1 ; [#uses=1]
+ ret %struct.lua_TValue* %84
+}
+
+; [#uses=3]
+define hidden void @_Z11luaV_concatP9lua_Stateii(%struct.lua_State* %L, i32 %total, i32 %last) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=11]
+ %2 = alloca i32, align 4 ; [#uses=5]
+ %3 = alloca i32, align 4 ; [#uses=4]
+ %top = alloca %struct.lua_TValue*, align 4 ; [#uses=20]
+ %n = alloca i32, align 4 ; [#uses=12]
+ %tl = alloca i32, align 4 ; [#uses=10]
+ %buffer = alloca i8*, align 4 ; [#uses=3]
+ %i = alloca i32, align 4 ; [#uses=6]
+ %l = alloca i32, align 4 ; [#uses=3]
+ %l1 = alloca i32, align 4 ; [#uses=3]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %total, i32* %2, align 4
+ store i32 %last, i32* %3, align 4
+ br label %4
+
+; <label>:4 ; preds = %218, %0
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.lua_State* %5, i32 0, i32 5 ; [#uses=1]
+ %7 = load %struct.lua_TValue** %6, align 4 ; [#uses=1]
+ %8 = load i32* %3, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_TValue* %7, i32 %8 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.lua_TValue* %9, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %10, %struct.lua_TValue** %top, align 4
+ store i32 2, i32* %n, align 4
+ %11 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 -2 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.lua_TValue* %12, i32 0, i32 1 ; [#uses=1]
+ %14 = load i32* %13, align 4 ; [#uses=1]
+ %15 = icmp eq i32 %14, 4 ; [#uses=1]
+ br i1 %15, label %22, label %16
+
+; <label>:16 ; preds = %4
+ %17 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_TValue* %17, i32 -2 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_TValue* %18, i32 0, i32 1 ; [#uses=1]
+ %20 = load i32* %19, align 4 ; [#uses=1]
+ %21 = icmp eq i32 %20, 3 ; [#uses=1]
+ br i1 %21, label %22, label %34
+
+; <label>:22 ; preds = %16, %4
+ %23 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_TValue* %23, i32 -1 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.lua_TValue* %24, i32 0, i32 1 ; [#uses=1]
+ %26 = load i32* %25, align 4 ; [#uses=1]
+ %27 = icmp eq i32 %26, 4 ; [#uses=1]
+ br i1 %27, label %51, label %28
+
+; <label>:28 ; preds = %22
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %30 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.lua_TValue* %30, i32 -1 ; [#uses=1]
+ %32 = call i32 @_Z13luaV_tostringP9lua_StateP10lua_TValue(%struct.lua_State* %29, %struct.lua_TValue* %31) ; [#uses=1]
+ %33 = icmp ne i32 %32, 0 ; [#uses=1]
+ br i1 %33, label %51, label %34
+
+; <label>:34 ; preds = %28, %16
+ %35 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %36 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.lua_TValue* %36, i32 -2 ; [#uses=1]
+ %38 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.lua_TValue* %38, i32 -1 ; [#uses=1]
+ %40 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.lua_TValue* %40, i32 -2 ; [#uses=1]
+ %42 = call i32 @_Z10call_binTMP9lua_StatePK10lua_TValueS3_PS1_3TMS(%struct.lua_State* %35, %struct.lua_TValue* %37, %struct.lua_TValue* %39, %struct.lua_TValue* %41, i32 15) ; [#uses=1]
+ %43 = icmp ne i32 %42, 0 ; [#uses=1]
+ br i1 %43, label %50, label %44
+
+; <label>:44 ; preds = %34
+ %45 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %46 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.lua_TValue* %46, i32 -2 ; [#uses=1]
+ %48 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.lua_TValue* %48, i32 -1 ; [#uses=1]
+ call void @_Z16luaG_concaterrorP9lua_StateP10lua_TValueS2_(%struct.lua_State* %45, %struct.lua_TValue* %47, %struct.lua_TValue* %49)
+ br label %50
+
+; <label>:50 ; preds = %44, %34
+ br label %209
+
+; <label>:51 ; preds = %28, %22
+ %52 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.lua_TValue* %52, i32 -1 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.lua_TValue* %53, i32 0, i32 0 ; [#uses=1]
+ %55 = getelementptr inbounds %union.anon* %54, i32 0, i32 0 ; [#uses=1]
+ %56 = bitcast double* %55 to %union.GCObject** ; [#uses=1]
+ %57 = load %union.GCObject** %56, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %union.GCObject* %57, i32 0, i32 0 ; [#uses=1]
+ %59 = bitcast %struct.lua_State* %58 to %union.TString* ; [#uses=1]
+ %60 = getelementptr inbounds %union.TString* %59, i32 0, i32 0 ; [#uses=1]
+ %61 = getelementptr inbounds %struct.anon* %60, i32 0, i32 5 ; [#uses=1]
+ %62 = load i32* %61, align 4 ; [#uses=1]
+ %63 = icmp eq i32 %62, 0 ; [#uses=1]
+ br i1 %63, label %64, label %78
+
+; <label>:64 ; preds = %51
+ %65 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.lua_TValue* %65, i32 -2 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.lua_TValue* %66, i32 0, i32 1 ; [#uses=1]
+ %68 = load i32* %67, align 4 ; [#uses=1]
+ %69 = icmp eq i32 %68, 4 ; [#uses=1]
+ br i1 %69, label %76, label %70
+
+; <label>:70 ; preds = %64
+ %71 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %72 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.lua_TValue* %72, i32 -2 ; [#uses=1]
+ %74 = call i32 @_Z13luaV_tostringP9lua_StateP10lua_TValue(%struct.lua_State* %71, %struct.lua_TValue* %73) ; [#uses=1]
+ %75 = icmp ne i32 %74, 0 ; [#uses=1]
+ br label %76
+
+; <label>:76 ; preds = %70, %64
+ %77 = phi i1 [ true, %64 ], [ %75, %70 ] ; [#uses=0]
+ br label %208
+
+; <label>:78 ; preds = %51
+ %79 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %80 = getelementptr inbounds %struct.lua_TValue* %79, i32 -1 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.lua_TValue* %80, i32 0, i32 0 ; [#uses=1]
+ %82 = getelementptr inbounds %union.anon* %81, i32 0, i32 0 ; [#uses=1]
+ %83 = bitcast double* %82 to %union.GCObject** ; [#uses=1]
+ %84 = load %union.GCObject** %83, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %union.GCObject* %84, i32 0, i32 0 ; [#uses=1]
+ %86 = bitcast %struct.lua_State* %85 to %union.TString* ; [#uses=1]
+ %87 = getelementptr inbounds %union.TString* %86, i32 0, i32 0 ; [#uses=1]
+ %88 = getelementptr inbounds %struct.anon* %87, i32 0, i32 5 ; [#uses=1]
+ %89 = load i32* %88, align 4 ; [#uses=1]
+ store i32 %89, i32* %tl, align 4
+ store i32 1, i32* %n, align 4
+ br label %90
+
+; <label>:90 ; preds = %141, %78
+ %91 = load i32* %n, align 4 ; [#uses=1]
+ %92 = load i32* %2, align 4 ; [#uses=1]
+ %93 = icmp slt i32 %91, %92 ; [#uses=1]
+ br i1 %93, label %94, label %114
+
+; <label>:94 ; preds = %90
+ %95 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %96 = load i32* %n, align 4 ; [#uses=1]
+ %97 = sub i32 0, %96 ; [#uses=1]
+ %98 = getelementptr inbounds %struct.lua_TValue* %95, i32 %97 ; [#uses=1]
+ %99 = getelementptr inbounds %struct.lua_TValue* %98, i32 -1 ; [#uses=1]
+ %100 = getelementptr inbounds %struct.lua_TValue* %99, i32 0, i32 1 ; [#uses=1]
+ %101 = load i32* %100, align 4 ; [#uses=1]
+ %102 = icmp eq i32 %101, 4 ; [#uses=1]
+ br i1 %102, label %112, label %103
+
+; <label>:103 ; preds = %94
+ %104 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %105 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %106 = load i32* %n, align 4 ; [#uses=1]
+ %107 = sub i32 0, %106 ; [#uses=1]
+ %108 = getelementptr inbounds %struct.lua_TValue* %105, i32 %107 ; [#uses=1]
+ %109 = getelementptr inbounds %struct.lua_TValue* %108, i32 -1 ; [#uses=1]
+ %110 = call i32 @_Z13luaV_tostringP9lua_StateP10lua_TValue(%struct.lua_State* %104, %struct.lua_TValue* %109) ; [#uses=1]
+ %111 = icmp ne i32 %110, 0 ; [#uses=1]
+ br label %112
+
+; <label>:112 ; preds = %103, %94
+ %113 = phi i1 [ true, %94 ], [ %111, %103 ] ; [#uses=1]
+ br label %114
+
+; <label>:114 ; preds = %112, %90
+ %115 = phi i1 [ false, %90 ], [ %113, %112 ] ; [#uses=1]
+ br i1 %115, label %116, label %144
+
+; <label>:116 ; preds = %114
+ %117 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %118 = load i32* %n, align 4 ; [#uses=1]
+ %119 = sub i32 0, %118 ; [#uses=1]
+ %120 = getelementptr inbounds %struct.lua_TValue* %117, i32 %119 ; [#uses=1]
+ %121 = getelementptr inbounds %struct.lua_TValue* %120, i32 -1 ; [#uses=1]
+ %122 = getelementptr inbounds %struct.lua_TValue* %121, i32 0, i32 0 ; [#uses=1]
+ %123 = getelementptr inbounds %union.anon* %122, i32 0, i32 0 ; [#uses=1]
+ %124 = bitcast double* %123 to %union.GCObject** ; [#uses=1]
+ %125 = load %union.GCObject** %124, align 4 ; [#uses=1]
+ %126 = getelementptr inbounds %union.GCObject* %125, i32 0, i32 0 ; [#uses=1]
+ %127 = bitcast %struct.lua_State* %126 to %union.TString* ; [#uses=1]
+ %128 = getelementptr inbounds %union.TString* %127, i32 0, i32 0 ; [#uses=1]
+ %129 = getelementptr inbounds %struct.anon* %128, i32 0, i32 5 ; [#uses=1]
+ %130 = load i32* %129, align 4 ; [#uses=1]
+ store i32 %130, i32* %l, align 4
+ %131 = load i32* %l, align 4 ; [#uses=1]
+ %132 = load i32* %tl, align 4 ; [#uses=1]
+ %133 = sub i32 -3, %132 ; [#uses=1]
+ %134 = icmp uge i32 %131, %133 ; [#uses=1]
+ br i1 %134, label %135, label %137
+
+; <label>:135 ; preds = %116
+ %136 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %136, i8* getelementptr inbounds ([23 x i8]* @.str4224, i32 0, i32 0))
+ br label %137
+
+; <label>:137 ; preds = %135, %116
+ %138 = load i32* %l, align 4 ; [#uses=1]
+ %139 = load i32* %tl, align 4 ; [#uses=1]
+ %140 = add i32 %139, %138 ; [#uses=1]
+ store i32 %140, i32* %tl, align 4
+ br label %141
+
+; <label>:141 ; preds = %137
+ %142 = load i32* %n, align 4 ; [#uses=1]
+ %143 = add nsw i32 %142, 1 ; [#uses=1]
+ store i32 %143, i32* %n, align 4
+ br label %90
+
+; <label>:144 ; preds = %114
+ %145 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %146 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %147 = getelementptr inbounds %struct.lua_State* %146, i32 0, i32 6 ; [#uses=1]
+ %148 = load %struct.global_State** %147, align 4 ; [#uses=1]
+ %149 = getelementptr inbounds %struct.global_State* %148, i32 0, i32 12 ; [#uses=1]
+ %150 = load i32* %tl, align 4 ; [#uses=1]
+ %151 = call i8* @_Z14luaZ_openspaceP9lua_StateP7Mbufferj(%struct.lua_State* %145, %struct.Mbuffer* %149, i32 %150) ; [#uses=1]
+ store i8* %151, i8** %buffer, align 4
+ store i32 0, i32* %tl, align 4
+ %152 = load i32* %n, align 4 ; [#uses=1]
+ store i32 %152, i32* %i, align 4
+ br label %153
+
+; <label>:153 ; preds = %189, %144
+ %154 = load i32* %i, align 4 ; [#uses=1]
+ %155 = icmp sgt i32 %154, 0 ; [#uses=1]
+ br i1 %155, label %156, label %192
+
+; <label>:156 ; preds = %153
+ %157 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %158 = load i32* %i, align 4 ; [#uses=1]
+ %159 = sub i32 0, %158 ; [#uses=1]
+ %160 = getelementptr inbounds %struct.lua_TValue* %157, i32 %159 ; [#uses=1]
+ %161 = getelementptr inbounds %struct.lua_TValue* %160, i32 0, i32 0 ; [#uses=1]
+ %162 = getelementptr inbounds %union.anon* %161, i32 0, i32 0 ; [#uses=1]
+ %163 = bitcast double* %162 to %union.GCObject** ; [#uses=1]
+ %164 = load %union.GCObject** %163, align 4 ; [#uses=1]
+ %165 = getelementptr inbounds %union.GCObject* %164, i32 0, i32 0 ; [#uses=1]
+ %166 = bitcast %struct.lua_State* %165 to %union.TString* ; [#uses=1]
+ %167 = getelementptr inbounds %union.TString* %166, i32 0, i32 0 ; [#uses=1]
+ %168 = getelementptr inbounds %struct.anon* %167, i32 0, i32 5 ; [#uses=1]
+ %169 = load i32* %168, align 4 ; [#uses=1]
+ store i32 %169, i32* %l1, align 4
+ %170 = load i8** %buffer, align 4 ; [#uses=1]
+ %171 = load i32* %tl, align 4 ; [#uses=1]
+ %172 = getelementptr inbounds i8* %170, i32 %171 ; [#uses=1]
+ %173 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %174 = load i32* %i, align 4 ; [#uses=1]
+ %175 = sub i32 0, %174 ; [#uses=1]
+ %176 = getelementptr inbounds %struct.lua_TValue* %173, i32 %175 ; [#uses=1]
+ %177 = getelementptr inbounds %struct.lua_TValue* %176, i32 0, i32 0 ; [#uses=1]
+ %178 = getelementptr inbounds %union.anon* %177, i32 0, i32 0 ; [#uses=1]
+ %179 = bitcast double* %178 to %union.GCObject** ; [#uses=1]
+ %180 = load %union.GCObject** %179, align 4 ; [#uses=1]
+ %181 = getelementptr inbounds %union.GCObject* %180, i32 0, i32 0 ; [#uses=1]
+ %182 = bitcast %struct.lua_State* %181 to %union.TString* ; [#uses=1]
+ %183 = getelementptr inbounds %union.TString* %182, i32 1 ; [#uses=1]
+ %184 = bitcast %union.TString* %183 to i8* ; [#uses=1]
+ %185 = load i32* %l1, align 4 ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %172, i8* %184, i32 %185, i32 1, i1 false)
+ %186 = load i32* %l1, align 4 ; [#uses=1]
+ %187 = load i32* %tl, align 4 ; [#uses=1]
+ %188 = add i32 %187, %186 ; [#uses=1]
+ store i32 %188, i32* %tl, align 4
+ br label %189
+
+; <label>:189 ; preds = %156
+ %190 = load i32* %i, align 4 ; [#uses=1]
+ %191 = add nsw i32 %190, -1 ; [#uses=1]
+ store i32 %191, i32* %i, align 4
+ br label %153
+
+; <label>:192 ; preds = %153
+ %193 = load %struct.lua_TValue** %top, align 4 ; [#uses=1]
+ %194 = load i32* %n, align 4 ; [#uses=1]
+ %195 = sub i32 0, %194 ; [#uses=1]
+ %196 = getelementptr inbounds %struct.lua_TValue* %193, i32 %195 ; [#uses=1]
+ store %struct.lua_TValue* %196, %struct.lua_TValue** %i_o, align 4
+ %197 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %198 = load i8** %buffer, align 4 ; [#uses=1]
+ %199 = load i32* %tl, align 4 ; [#uses=1]
+ %200 = call %union.TString* @_Z12luaS_newlstrP9lua_StatePKcj(%struct.lua_State* %197, i8* %198, i32 %199) ; [#uses=1]
+ %201 = bitcast %union.TString* %200 to %union.GCObject* ; [#uses=1]
+ %202 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %203 = getelementptr inbounds %struct.lua_TValue* %202, i32 0, i32 0 ; [#uses=1]
+ %204 = getelementptr inbounds %union.anon* %203, i32 0, i32 0 ; [#uses=1]
+ %205 = bitcast double* %204 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %201, %union.GCObject** %205, align 4
+ %206 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %207 = getelementptr inbounds %struct.lua_TValue* %206, i32 0, i32 1 ; [#uses=1]
+ store i32 4, i32* %207, align 4
+ br label %208
+
+; <label>:208 ; preds = %192, %76
+ br label %209
+
+; <label>:209 ; preds = %208, %50
+ %210 = load i32* %n, align 4 ; [#uses=1]
+ %211 = sub nsw i32 %210, 1 ; [#uses=1]
+ %212 = load i32* %2, align 4 ; [#uses=1]
+ %213 = sub nsw i32 %212, %211 ; [#uses=1]
+ store i32 %213, i32* %2, align 4
+ %214 = load i32* %n, align 4 ; [#uses=1]
+ %215 = sub nsw i32 %214, 1 ; [#uses=1]
+ %216 = load i32* %3, align 4 ; [#uses=1]
+ %217 = sub nsw i32 %216, %215 ; [#uses=1]
+ store i32 %217, i32* %3, align 4
+ br label %218
+
+; <label>:218 ; preds = %209
+ %219 = load i32* %2, align 4 ; [#uses=1]
+ %220 = icmp sgt i32 %219, 1 ; [#uses=1]
+ br i1 %220, label %4, label %221
+
+; <label>:221 ; preds = %218
+ ret void
+}
+
+; [#uses=3]
+define internal i32 @_Z10call_binTMP9lua_StatePK10lua_TValueS3_PS1_3TMS(%struct.lua_State* %L, %struct.lua_TValue* %p1, %struct.lua_TValue* %p2, %struct.lua_TValue* %res, i32 %event) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %4 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %5 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %6 = alloca i32, align 4 ; [#uses=3]
+ %tm = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.lua_TValue* %p1, %struct.lua_TValue** %3, align 4
+ store %struct.lua_TValue* %p2, %struct.lua_TValue** %4, align 4
+ store %struct.lua_TValue* %res, %struct.lua_TValue** %5, align 4
+ store i32 %event, i32* %6, align 4
+ %7 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %8 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %9 = load i32* %6, align 4 ; [#uses=1]
+ %10 = call %struct.lua_TValue* @_Z15luaT_gettmbyobjP9lua_StatePK10lua_TValue3TMS(%struct.lua_State* %7, %struct.lua_TValue* %8, i32 %9) ; [#uses=1]
+ store %struct.lua_TValue* %10, %struct.lua_TValue** %tm, align 4
+ %11 = load %struct.lua_TValue** %tm, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 1 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ %14 = icmp eq i32 %13, 0 ; [#uses=1]
+ br i1 %14, label %15, label %20
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %17 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %18 = load i32* %6, align 4 ; [#uses=1]
+ %19 = call %struct.lua_TValue* @_Z15luaT_gettmbyobjP9lua_StatePK10lua_TValue3TMS(%struct.lua_State* %16, %struct.lua_TValue* %17, i32 %18) ; [#uses=1]
+ store %struct.lua_TValue* %19, %struct.lua_TValue** %tm, align 4
+ br label %20
+
+; <label>:20 ; preds = %15, %0
+ %21 = load %struct.lua_TValue** %tm, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.lua_TValue* %21, i32 0, i32 1 ; [#uses=1]
+ %23 = load i32* %22, align 4 ; [#uses=1]
+ %24 = icmp eq i32 %23, 0 ; [#uses=1]
+ br i1 %24, label %25, label %26
+
+; <label>:25 ; preds = %20
+ store i32 0, i32* %1
+ br label %32
+
+; <label>:26 ; preds = %20
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %28 = load %struct.lua_TValue** %5, align 4 ; [#uses=1]
+ %29 = load %struct.lua_TValue** %tm, align 4 ; [#uses=1]
+ %30 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %31 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ call void @_Z9callTMresP9lua_StateP10lua_TValuePKS1_S4_S4_(%struct.lua_State* %27, %struct.lua_TValue* %28, %struct.lua_TValue* %29, %struct.lua_TValue* %30, %struct.lua_TValue* %31)
+ store i32 1, i32* %1
+ br label %32
+
+; <label>:32 ; preds = %26, %25
+ %33 = load i32* %1 ; [#uses=1]
+ ret i32 %33
+}
+
+; [#uses=2]
+define hidden void @_Z12luaV_executeP9lua_Statei(%struct.lua_State* %L, i32 %nexeccalls) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=129]
+ %2 = alloca i32, align 4 ; [#uses=5]
+ %cl = alloca %struct.LClosure*, align 4 ; [#uses=10]
+ %base = alloca %struct.lua_TValue*, align 4 ; [#uses=64]
+ %k = alloca %struct.lua_TValue*, align 4 ; [#uses=26]
+ %pc = alloca i32*, align 4 ; [#uses=75]
+ %i = alloca i32, align 4 ; [#uses=110]
+ %ra = alloca %struct.lua_TValue*, align 4 ; [#uses=72]
+ %o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o21 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o12 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %rb = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %b = alloca i32, align 4 ; [#uses=2]
+ %o23 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o14 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %g = alloca %struct.lua_TValue, align 4 ; [#uses=2]
+ %rb5 = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %i_o6 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %g7 = alloca %struct.lua_TValue, align 4 ; [#uses=2]
+ %i_o8 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %uv = alloca %struct.UpVal*, align 4 ; [#uses=4]
+ %o29 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o110 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %b11 = alloca i32, align 4 ; [#uses=2]
+ %c = alloca i32, align 4 ; [#uses=2]
+ %i_o12 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %rb13 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o214 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o115 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %rb16 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %rc = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %nb = alloca double, align 8 ; [#uses=2]
+ %nc = alloca double, align 8 ; [#uses=2]
+ %i_o17 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %rb18 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %rc19 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %nb20 = alloca double, align 8 ; [#uses=2]
+ %nc21 = alloca double, align 8 ; [#uses=2]
+ %i_o22 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %rb23 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %rc24 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %nb25 = alloca double, align 8 ; [#uses=2]
+ %nc26 = alloca double, align 8 ; [#uses=2]
+ %i_o27 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %rb28 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %rc29 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %nb30 = alloca double, align 8 ; [#uses=2]
+ %nc31 = alloca double, align 8 ; [#uses=2]
+ %i_o32 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %rb33 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %rc34 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %nb35 = alloca double, align 8 ; [#uses=3]
+ %nc36 = alloca double, align 8 ; [#uses=3]
+ %i_o37 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %rb38 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %rc39 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %nb40 = alloca double, align 8 ; [#uses=2]
+ %nc41 = alloca double, align 8 ; [#uses=2]
+ %i_o42 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %rb43 = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %nb44 = alloca double, align 8 ; [#uses=2]
+ %i_o45 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %res = alloca i32, align 4 ; [#uses=2]
+ %i_o46 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %rb47 = alloca %struct.lua_TValue*, align 4 ; [#uses=6]
+ %i_o48 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o49 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %b50 = alloca i32, align 4 ; [#uses=3]
+ %c51 = alloca i32, align 4 ; [#uses=3]
+ %o252 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o153 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %rb54 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %rc55 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %rb56 = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %o257 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o158 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %b59 = alloca i32, align 4 ; [#uses=3]
+ %nresults = alloca i32, align 4 ; [#uses=3]
+ %b60 = alloca i32, align 4 ; [#uses=3]
+ %ci = alloca %struct.CallInfo*, align 4 ; [#uses=10]
+ %aux = alloca i32, align 4 ; [#uses=7]
+ %func = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %pfunc = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %o261 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o162 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %b63 = alloca i32, align 4 ; [#uses=5]
+ %step = alloca double, align 8 ; [#uses=3]
+ %idx = alloca double, align 8 ; [#uses=5]
+ %limit = alloca double, align 8 ; [#uses=3]
+ %i_o64 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o65 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %init = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %plimit = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %pstep = alloca %struct.lua_TValue*, align 4 ; [#uses=5]
+ %i_o66 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %cb = alloca %struct.lua_TValue*, align 4 ; [#uses=10]
+ %o267 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o168 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o269 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o170 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o271 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o172 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o273 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o174 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %n = alloca i32, align 4 ; [#uses=8]
+ %c75 = alloca i32, align 4 ; [#uses=4]
+ %last = alloca i32, align 4 ; [#uses=5]
+ %h = alloca %struct.Table*, align 4 ; [#uses=6]
+ %val = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %o276 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o177 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %p = alloca %struct.Proto*, align 4 ; [#uses=3]
+ %ncl = alloca %union.Closure*, align 4 ; [#uses=5]
+ %nup = alloca i32, align 4 ; [#uses=3]
+ %j = alloca i32, align 4 ; [#uses=6]
+ %i_o78 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %b79 = alloca i32, align 4 ; [#uses=4]
+ %j80 = alloca i32, align 4 ; [#uses=8]
+ %ci81 = alloca %struct.CallInfo*, align 4 ; [#uses=4]
+ %n82 = alloca i32, align 4 ; [#uses=7]
+ %o283 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %o184 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %nexeccalls, i32* %2, align 4
+ br label %3
+
+; <label>:3 ; preds = %1630, %1561, %1455, %0
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.lua_State* %4, i32 0, i32 8 ; [#uses=1]
+ %6 = load i32** %5, align 4 ; [#uses=1]
+ store i32* %6, i32** %pc, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.lua_State* %7, i32 0, i32 7 ; [#uses=1]
+ %9 = load %struct.CallInfo** %8, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.CallInfo* %9, i32 0, i32 1 ; [#uses=1]
+ %11 = load %struct.lua_TValue** %10, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.lua_TValue* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = getelementptr inbounds %union.anon* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = bitcast double* %13 to %union.GCObject** ; [#uses=1]
+ %15 = load %union.GCObject** %14, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds %union.GCObject* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = bitcast %struct.lua_State* %16 to %union.Closure* ; [#uses=1]
+ %18 = getelementptr inbounds %union.Closure* %17, i32 0, i32 0 ; [#uses=1]
+ %19 = bitcast %struct.CClosure* %18 to %struct.LClosure* ; [#uses=1]
+ store %struct.LClosure* %19, %struct.LClosure** %cl, align 4
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.lua_State* %20, i32 0, i32 5 ; [#uses=1]
+ %22 = load %struct.lua_TValue** %21, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %22, %struct.lua_TValue** %base, align 4
+ %23 = load %struct.LClosure** %cl, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.LClosure* %23, i32 0, i32 7 ; [#uses=1]
+ %25 = load %struct.Proto** %24, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.Proto* %25, i32 0, i32 3 ; [#uses=1]
+ %27 = load %struct.lua_TValue** %26, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %27, %struct.lua_TValue** %k, align 4
+ br label %28
+
+; <label>:28 ; preds = %2187, %2186, %2076, %1975, %1974, %1851, %1729, %1680, %1582, %1469, %1428, %1373, %1333, %1269, %1205, %1126, %1103, %1073, %1003, %971, %936, %856, %771, %691, %611, %531, %446, %399, %357, %312, %229, %223, %170, %147, %146, %131, %95, %77, %3
+ %29 = load i32** %pc, align 4 ; [#uses=2]
+ %30 = getelementptr inbounds i32* %29, i32 1 ; [#uses=1]
+ store i32* %30, i32** %pc, align 4
+ %31 = load i32* %29 ; [#uses=1]
+ store i32 %31, i32* %i, align 4
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds %struct.lua_State* %32, i32 0, i32 17 ; [#uses=1]
+ %34 = load i8* %33, align 1 ; [#uses=1]
+ %35 = zext i8 %34 to i32 ; [#uses=1]
+ %36 = and i32 %35, 12 ; [#uses=1]
+ %37 = icmp ne i32 %36, 0 ; [#uses=1]
+ br i1 %37, label %38, label %68
+
+; <label>:38 ; preds = %28
+ %39 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.lua_State* %39, i32 0, i32 20 ; [#uses=2]
+ %41 = load i32* %40, align 4 ; [#uses=1]
+ %42 = add nsw i32 %41, -1 ; [#uses=2]
+ store i32 %42, i32* %40, align 4
+ %43 = icmp eq i32 %42, 0 ; [#uses=1]
+ br i1 %43, label %51, label %44
+
+; <label>:44 ; preds = %38
+ %45 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.lua_State* %45, i32 0, i32 17 ; [#uses=1]
+ %47 = load i8* %46, align 1 ; [#uses=1]
+ %48 = zext i8 %47 to i32 ; [#uses=1]
+ %49 = and i32 %48, 4 ; [#uses=1]
+ %50 = icmp ne i32 %49, 0 ; [#uses=1]
+ br i1 %50, label %51, label %68
+
+; <label>:51 ; preds = %44, %38
+ %52 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %53 = load i32** %pc, align 4 ; [#uses=1]
+ call void @_Z9traceexecP9lua_StatePKj(%struct.lua_State* %52, i32* %53)
+ %54 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.lua_State* %54, i32 0, i32 3 ; [#uses=1]
+ %56 = load i8* %55, align 1 ; [#uses=1]
+ %57 = zext i8 %56 to i32 ; [#uses=1]
+ %58 = icmp eq i32 %57, 1 ; [#uses=1]
+ br i1 %58, label %59, label %64
+
+; <label>:59 ; preds = %51
+ %60 = load i32** %pc, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds i32* %60, i32 -1 ; [#uses=1]
+ %62 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %63 = getelementptr inbounds %struct.lua_State* %62, i32 0, i32 8 ; [#uses=1]
+ store i32* %61, i32** %63, align 4
+ br label %2188
+
+; <label>:64 ; preds = %51
+ %65 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.lua_State* %65, i32 0, i32 5 ; [#uses=1]
+ %67 = load %struct.lua_TValue** %66, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %67, %struct.lua_TValue** %base, align 4
+ br label %68
+
+; <label>:68 ; preds = %64, %44, %28
+ %69 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %70 = load i32* %i, align 4 ; [#uses=1]
+ %71 = lshr i32 %70, 6 ; [#uses=1]
+ %72 = and i32 %71, 255 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.lua_TValue* %69, i32 %72 ; [#uses=1]
+ store %struct.lua_TValue* %73, %struct.lua_TValue** %ra, align 4
+ %74 = load i32* %i, align 4 ; [#uses=1]
+ %75 = lshr i32 %74, 0 ; [#uses=1]
+ %76 = and i32 %75, 63 ; [#uses=1]
+ switch i32 %76, label %2187 [
+ i32 0, label %77
+ i32 1, label %95
+ i32 2, label %113
+ i32 3, label %132
+ i32 4, label %147
+ i32 5, label %170
+ i32 6, label %195
+ i32 7, label %229
+ i32 8, label %253
+ i32 9, label %313
+ i32 10, label %362
+ i32 11, label %403
+ i32 12, label %452
+ i32 13, label %532
+ i32 14, label %612
+ i32 15, label %692
+ i32 16, label %772
+ i32 17, label %857
+ i32 18, label %937
+ i32 19, label %972
+ i32 20, label %1014
+ i32 21, label %1074
+ i32 22, label %1126
+ i32 23, label %1133
+ i32 24, label %1211
+ i32 25, label %1275
+ i32 26, label %1339
+ i32 27, label %1376
+ i32 28, label %1431
+ i32 29, label %1474
+ i32 30, label %1587
+ i32 31, label %1631
+ i32 32, label %1681
+ i32 33, label %1751
+ i32 34, label %1854
+ i32 35, label %1975
+ i32 36, label %1978
+ i32 37, label %2080
+ ]
+
+; <label>:77 ; preds = %68
+ %78 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %79 = load i32* %i, align 4 ; [#uses=1]
+ %80 = lshr i32 %79, 23 ; [#uses=1]
+ %81 = and i32 %80, 511 ; [#uses=1]
+ %82 = getelementptr inbounds %struct.lua_TValue* %78, i32 %81 ; [#uses=1]
+ store %struct.lua_TValue* %82, %struct.lua_TValue** %o2, align 4
+ %83 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %83, %struct.lua_TValue** %o1, align 4
+ %84 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %struct.lua_TValue* %84, i32 0, i32 0 ; [#uses=1]
+ %86 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %87 = getelementptr inbounds %struct.lua_TValue* %86, i32 0, i32 0 ; [#uses=1]
+ %88 = bitcast %union.anon* %85 to i8* ; [#uses=1]
+ %89 = bitcast %union.anon* %87 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %88, i8* %89, i32 8, i32 4, i1 false)
+ %90 = load %struct.lua_TValue** %o2, align 4 ; [#uses=1]
+ %91 = getelementptr inbounds %struct.lua_TValue* %90, i32 0, i32 1 ; [#uses=1]
+ %92 = load i32* %91, align 4 ; [#uses=1]
+ %93 = load %struct.lua_TValue** %o1, align 4 ; [#uses=1]
+ %94 = getelementptr inbounds %struct.lua_TValue* %93, i32 0, i32 1 ; [#uses=1]
+ store i32 %92, i32* %94, align 4
+ br label %28
+
+; <label>:95 ; preds = %68
+ %96 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %97 = load i32* %i, align 4 ; [#uses=1]
+ %98 = lshr i32 %97, 14 ; [#uses=1]
+ %99 = and i32 %98, 262143 ; [#uses=1]
+ %100 = getelementptr inbounds %struct.lua_TValue* %96, i32 %99 ; [#uses=1]
+ store %struct.lua_TValue* %100, %struct.lua_TValue** %o21, align 4
+ %101 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %101, %struct.lua_TValue** %o12, align 4
+ %102 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %103 = getelementptr inbounds %struct.lua_TValue* %102, i32 0, i32 0 ; [#uses=1]
+ %104 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %105 = getelementptr inbounds %struct.lua_TValue* %104, i32 0, i32 0 ; [#uses=1]
+ %106 = bitcast %union.anon* %103 to i8* ; [#uses=1]
+ %107 = bitcast %union.anon* %105 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %106, i8* %107, i32 8, i32 4, i1 false)
+ %108 = load %struct.lua_TValue** %o21, align 4 ; [#uses=1]
+ %109 = getelementptr inbounds %struct.lua_TValue* %108, i32 0, i32 1 ; [#uses=1]
+ %110 = load i32* %109, align 4 ; [#uses=1]
+ %111 = load %struct.lua_TValue** %o12, align 4 ; [#uses=1]
+ %112 = getelementptr inbounds %struct.lua_TValue* %111, i32 0, i32 1 ; [#uses=1]
+ store i32 %110, i32* %112, align 4
+ br label %28
+
+; <label>:113 ; preds = %68
+ %114 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %114, %struct.lua_TValue** %i_o, align 4
+ %115 = load i32* %i, align 4 ; [#uses=1]
+ %116 = lshr i32 %115, 23 ; [#uses=1]
+ %117 = and i32 %116, 511 ; [#uses=1]
+ %118 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %119 = getelementptr inbounds %struct.lua_TValue* %118, i32 0, i32 0 ; [#uses=1]
+ %120 = getelementptr inbounds %union.anon* %119, i32 0, i32 0 ; [#uses=1]
+ %121 = bitcast double* %120 to i32* ; [#uses=1]
+ store i32 %117, i32* %121, align 4
+ %122 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %123 = getelementptr inbounds %struct.lua_TValue* %122, i32 0, i32 1 ; [#uses=1]
+ store i32 1, i32* %123, align 4
+ %124 = load i32* %i, align 4 ; [#uses=1]
+ %125 = lshr i32 %124, 14 ; [#uses=1]
+ %126 = and i32 %125, 511 ; [#uses=1]
+ %127 = icmp ne i32 %126, 0 ; [#uses=1]
+ br i1 %127, label %128, label %131
+
+; <label>:128 ; preds = %113
+ %129 = load i32** %pc, align 4 ; [#uses=1]
+ %130 = getelementptr inbounds i32* %129, i32 1 ; [#uses=1]
+ store i32* %130, i32** %pc, align 4
+ br label %131
+
+; <label>:131 ; preds = %128, %113
+ br label %28
+
+; <label>:132 ; preds = %68
+ %133 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %134 = load i32* %i, align 4 ; [#uses=1]
+ %135 = lshr i32 %134, 23 ; [#uses=1]
+ %136 = and i32 %135, 511 ; [#uses=1]
+ %137 = getelementptr inbounds %struct.lua_TValue* %133, i32 %136 ; [#uses=1]
+ store %struct.lua_TValue* %137, %struct.lua_TValue** %rb, align 4
+ br label %138
+
+; <label>:138 ; preds = %142, %132
+ %139 = load %struct.lua_TValue** %rb, align 4 ; [#uses=2]
+ %140 = getelementptr inbounds %struct.lua_TValue* %139, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %140, %struct.lua_TValue** %rb, align 4
+ %141 = getelementptr inbounds %struct.lua_TValue* %139, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %141, align 4
+ br label %142
+
+; <label>:142 ; preds = %138
+ %143 = load %struct.lua_TValue** %rb, align 4 ; [#uses=1]
+ %144 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %145 = icmp uge %struct.lua_TValue* %143, %144 ; [#uses=1]
+ br i1 %145, label %138, label %146
+
+; <label>:146 ; preds = %142
+ br label %28
+
+; <label>:147 ; preds = %68
+ %148 = load i32* %i, align 4 ; [#uses=1]
+ %149 = lshr i32 %148, 23 ; [#uses=1]
+ %150 = and i32 %149, 511 ; [#uses=1]
+ store i32 %150, i32* %b, align 4
+ %151 = load i32* %b, align 4 ; [#uses=1]
+ %152 = load %struct.LClosure** %cl, align 4 ; [#uses=1]
+ %153 = getelementptr inbounds %struct.LClosure* %152, i32 0, i32 8 ; [#uses=1]
+ %154 = getelementptr inbounds [1 x %struct.UpVal*]* %153, i32 0, i32 %151 ; [#uses=1]
+ %155 = load %struct.UpVal** %154 ; [#uses=1]
+ %156 = getelementptr inbounds %struct.UpVal* %155, i32 0, i32 3 ; [#uses=1]
+ %157 = load %struct.lua_TValue** %156, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %157, %struct.lua_TValue** %o23, align 4
+ %158 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %158, %struct.lua_TValue** %o14, align 4
+ %159 = load %struct.lua_TValue** %o14, align 4 ; [#uses=1]
+ %160 = getelementptr inbounds %struct.lua_TValue* %159, i32 0, i32 0 ; [#uses=1]
+ %161 = load %struct.lua_TValue** %o23, align 4 ; [#uses=1]
+ %162 = getelementptr inbounds %struct.lua_TValue* %161, i32 0, i32 0 ; [#uses=1]
+ %163 = bitcast %union.anon* %160 to i8* ; [#uses=1]
+ %164 = bitcast %union.anon* %162 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %163, i8* %164, i32 8, i32 4, i1 false)
+ %165 = load %struct.lua_TValue** %o23, align 4 ; [#uses=1]
+ %166 = getelementptr inbounds %struct.lua_TValue* %165, i32 0, i32 1 ; [#uses=1]
+ %167 = load i32* %166, align 4 ; [#uses=1]
+ %168 = load %struct.lua_TValue** %o14, align 4 ; [#uses=1]
+ %169 = getelementptr inbounds %struct.lua_TValue* %168, i32 0, i32 1 ; [#uses=1]
+ store i32 %167, i32* %169, align 4
+ br label %28
+
+; <label>:170 ; preds = %68
+ %171 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %172 = load i32* %i, align 4 ; [#uses=1]
+ %173 = lshr i32 %172, 14 ; [#uses=1]
+ %174 = and i32 %173, 262143 ; [#uses=1]
+ %175 = getelementptr inbounds %struct.lua_TValue* %171, i32 %174 ; [#uses=1]
+ store %struct.lua_TValue* %175, %struct.lua_TValue** %rb5, align 4
+ store %struct.lua_TValue* %g, %struct.lua_TValue** %i_o6, align 4
+ %176 = load %struct.LClosure** %cl, align 4 ; [#uses=1]
+ %177 = getelementptr inbounds %struct.LClosure* %176, i32 0, i32 6 ; [#uses=1]
+ %178 = load %struct.Table** %177, align 4 ; [#uses=1]
+ %179 = bitcast %struct.Table* %178 to %union.GCObject* ; [#uses=1]
+ %180 = load %struct.lua_TValue** %i_o6, align 4 ; [#uses=1]
+ %181 = getelementptr inbounds %struct.lua_TValue* %180, i32 0, i32 0 ; [#uses=1]
+ %182 = getelementptr inbounds %union.anon* %181, i32 0, i32 0 ; [#uses=1]
+ %183 = bitcast double* %182 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %179, %union.GCObject** %183, align 4
+ %184 = load %struct.lua_TValue** %i_o6, align 4 ; [#uses=1]
+ %185 = getelementptr inbounds %struct.lua_TValue* %184, i32 0, i32 1 ; [#uses=1]
+ store i32 5, i32* %185, align 4
+ %186 = load i32** %pc, align 4 ; [#uses=1]
+ %187 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %188 = getelementptr inbounds %struct.lua_State* %187, i32 0, i32 8 ; [#uses=1]
+ store i32* %186, i32** %188, align 4
+ %189 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %190 = load %struct.lua_TValue** %rb5, align 4 ; [#uses=1]
+ %191 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ call void @_Z13luaV_gettableP9lua_StatePK10lua_TValuePS1_S4_(%struct.lua_State* %189, %struct.lua_TValue* %g, %struct.lua_TValue* %190, %struct.lua_TValue* %191)
+ %192 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %193 = getelementptr inbounds %struct.lua_State* %192, i32 0, i32 5 ; [#uses=1]
+ %194 = load %struct.lua_TValue** %193, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %194, %struct.lua_TValue** %base, align 4
+ br label %28
+
+; <label>:195 ; preds = %68
+ %196 = load i32** %pc, align 4 ; [#uses=1]
+ %197 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %198 = getelementptr inbounds %struct.lua_State* %197, i32 0, i32 8 ; [#uses=1]
+ store i32* %196, i32** %198, align 4
+ %199 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %200 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %201 = load i32* %i, align 4 ; [#uses=1]
+ %202 = lshr i32 %201, 23 ; [#uses=1]
+ %203 = and i32 %202, 511 ; [#uses=1]
+ %204 = getelementptr inbounds %struct.lua_TValue* %200, i32 %203 ; [#uses=1]
+ %205 = load i32* %i, align 4 ; [#uses=1]
+ %206 = lshr i32 %205, 14 ; [#uses=1]
+ %207 = and i32 %206, 511 ; [#uses=1]
+ %208 = and i32 %207, 256 ; [#uses=1]
+ %209 = icmp ne i32 %208, 0 ; [#uses=1]
+ br i1 %209, label %210, label %217
+
+; <label>:210 ; preds = %195
+ %211 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %212 = load i32* %i, align 4 ; [#uses=1]
+ %213 = lshr i32 %212, 14 ; [#uses=1]
+ %214 = and i32 %213, 511 ; [#uses=1]
+ %215 = and i32 %214, -257 ; [#uses=1]
+ %216 = getelementptr inbounds %struct.lua_TValue* %211, i32 %215 ; [#uses=1]
+ br label %223
+
+; <label>:217 ; preds = %195
+ %218 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %219 = load i32* %i, align 4 ; [#uses=1]
+ %220 = lshr i32 %219, 14 ; [#uses=1]
+ %221 = and i32 %220, 511 ; [#uses=1]
+ %222 = getelementptr inbounds %struct.lua_TValue* %218, i32 %221 ; [#uses=1]
+ br label %223
+
+; <label>:223 ; preds = %217, %210
+ %224 = phi %struct.lua_TValue* [ %216, %210 ], [ %222, %217 ] ; [#uses=1]
+ %225 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ call void @_Z13luaV_gettableP9lua_StatePK10lua_TValuePS1_S4_(%struct.lua_State* %199, %struct.lua_TValue* %204, %struct.lua_TValue* %224, %struct.lua_TValue* %225)
+ %226 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %227 = getelementptr inbounds %struct.lua_State* %226, i32 0, i32 5 ; [#uses=1]
+ %228 = load %struct.lua_TValue** %227, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %228, %struct.lua_TValue** %base, align 4
+ br label %28
+
+; <label>:229 ; preds = %68
+ store %struct.lua_TValue* %g7, %struct.lua_TValue** %i_o8, align 4
+ %230 = load %struct.LClosure** %cl, align 4 ; [#uses=1]
+ %231 = getelementptr inbounds %struct.LClosure* %230, i32 0, i32 6 ; [#uses=1]
+ %232 = load %struct.Table** %231, align 4 ; [#uses=1]
+ %233 = bitcast %struct.Table* %232 to %union.GCObject* ; [#uses=1]
+ %234 = load %struct.lua_TValue** %i_o8, align 4 ; [#uses=1]
+ %235 = getelementptr inbounds %struct.lua_TValue* %234, i32 0, i32 0 ; [#uses=1]
+ %236 = getelementptr inbounds %union.anon* %235, i32 0, i32 0 ; [#uses=1]
+ %237 = bitcast double* %236 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %233, %union.GCObject** %237, align 4
+ %238 = load %struct.lua_TValue** %i_o8, align 4 ; [#uses=1]
+ %239 = getelementptr inbounds %struct.lua_TValue* %238, i32 0, i32 1 ; [#uses=1]
+ store i32 5, i32* %239, align 4
+ %240 = load i32** %pc, align 4 ; [#uses=1]
+ %241 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %242 = getelementptr inbounds %struct.lua_State* %241, i32 0, i32 8 ; [#uses=1]
+ store i32* %240, i32** %242, align 4
+ %243 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %244 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %245 = load i32* %i, align 4 ; [#uses=1]
+ %246 = lshr i32 %245, 14 ; [#uses=1]
+ %247 = and i32 %246, 262143 ; [#uses=1]
+ %248 = getelementptr inbounds %struct.lua_TValue* %244, i32 %247 ; [#uses=1]
+ %249 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ call void @_Z13luaV_settableP9lua_StatePK10lua_TValuePS1_S4_(%struct.lua_State* %243, %struct.lua_TValue* %g7, %struct.lua_TValue* %248, %struct.lua_TValue* %249)
+ %250 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %251 = getelementptr inbounds %struct.lua_State* %250, i32 0, i32 5 ; [#uses=1]
+ %252 = load %struct.lua_TValue** %251, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %252, %struct.lua_TValue** %base, align 4
+ br label %28
+
+; <label>:253 ; preds = %68
+ %254 = load i32* %i, align 4 ; [#uses=1]
+ %255 = lshr i32 %254, 23 ; [#uses=1]
+ %256 = and i32 %255, 511 ; [#uses=1]
+ %257 = load %struct.LClosure** %cl, align 4 ; [#uses=1]
+ %258 = getelementptr inbounds %struct.LClosure* %257, i32 0, i32 8 ; [#uses=1]
+ %259 = getelementptr inbounds [1 x %struct.UpVal*]* %258, i32 0, i32 %256 ; [#uses=1]
+ %260 = load %struct.UpVal** %259 ; [#uses=1]
+ store %struct.UpVal* %260, %struct.UpVal** %uv, align 4
+ %261 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %261, %struct.lua_TValue** %o29, align 4
+ %262 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %263 = getelementptr inbounds %struct.UpVal* %262, i32 0, i32 3 ; [#uses=1]
+ %264 = load %struct.lua_TValue** %263, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %264, %struct.lua_TValue** %o110, align 4
+ %265 = load %struct.lua_TValue** %o110, align 4 ; [#uses=1]
+ %266 = getelementptr inbounds %struct.lua_TValue* %265, i32 0, i32 0 ; [#uses=1]
+ %267 = load %struct.lua_TValue** %o29, align 4 ; [#uses=1]
+ %268 = getelementptr inbounds %struct.lua_TValue* %267, i32 0, i32 0 ; [#uses=1]
+ %269 = bitcast %union.anon* %266 to i8* ; [#uses=1]
+ %270 = bitcast %union.anon* %268 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %269, i8* %270, i32 8, i32 4, i1 false)
+ %271 = load %struct.lua_TValue** %o29, align 4 ; [#uses=1]
+ %272 = getelementptr inbounds %struct.lua_TValue* %271, i32 0, i32 1 ; [#uses=1]
+ %273 = load i32* %272, align 4 ; [#uses=1]
+ %274 = load %struct.lua_TValue** %o110, align 4 ; [#uses=1]
+ %275 = getelementptr inbounds %struct.lua_TValue* %274, i32 0, i32 1 ; [#uses=1]
+ store i32 %273, i32* %275, align 4
+ %276 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %277 = getelementptr inbounds %struct.lua_TValue* %276, i32 0, i32 1 ; [#uses=1]
+ %278 = load i32* %277, align 4 ; [#uses=1]
+ %279 = icmp sge i32 %278, 4 ; [#uses=1]
+ br i1 %279, label %280, label %312
+
+; <label>:280 ; preds = %253
+ %281 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %282 = getelementptr inbounds %struct.lua_TValue* %281, i32 0, i32 0 ; [#uses=1]
+ %283 = getelementptr inbounds %union.anon* %282, i32 0, i32 0 ; [#uses=1]
+ %284 = bitcast double* %283 to %union.GCObject** ; [#uses=1]
+ %285 = load %union.GCObject** %284, align 4 ; [#uses=1]
+ %286 = getelementptr inbounds %union.GCObject* %285, i32 0, i32 0 ; [#uses=1]
+ %287 = bitcast %struct.lua_State* %286 to %struct.GCheader* ; [#uses=1]
+ %288 = getelementptr inbounds %struct.GCheader* %287, i32 0, i32 2 ; [#uses=1]
+ %289 = load i8* %288, align 1 ; [#uses=1]
+ %290 = zext i8 %289 to i32 ; [#uses=1]
+ %291 = and i32 %290, 3 ; [#uses=1]
+ %292 = icmp ne i32 %291, 0 ; [#uses=1]
+ br i1 %292, label %293, label %312
+
+; <label>:293 ; preds = %280
+ %294 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %295 = bitcast %struct.UpVal* %294 to %union.GCObject* ; [#uses=1]
+ %296 = getelementptr inbounds %union.GCObject* %295, i32 0, i32 0 ; [#uses=1]
+ %297 = bitcast %struct.lua_State* %296 to %struct.GCheader* ; [#uses=1]
+ %298 = getelementptr inbounds %struct.GCheader* %297, i32 0, i32 2 ; [#uses=1]
+ %299 = load i8* %298, align 1 ; [#uses=1]
+ %300 = zext i8 %299 to i32 ; [#uses=1]
+ %301 = and i32 %300, 4 ; [#uses=1]
+ %302 = icmp ne i32 %301, 0 ; [#uses=1]
+ br i1 %302, label %303, label %312
+
+; <label>:303 ; preds = %293
+ %304 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %305 = load %struct.UpVal** %uv, align 4 ; [#uses=1]
+ %306 = bitcast %struct.UpVal* %305 to %union.GCObject* ; [#uses=1]
+ %307 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %308 = getelementptr inbounds %struct.lua_TValue* %307, i32 0, i32 0 ; [#uses=1]
+ %309 = getelementptr inbounds %union.anon* %308, i32 0, i32 0 ; [#uses=1]
+ %310 = bitcast double* %309 to %union.GCObject** ; [#uses=1]
+ %311 = load %union.GCObject** %310, align 4 ; [#uses=1]
+ call void @_Z13luaC_barrierfP9lua_StateP8GCObjectS2_(%struct.lua_State* %304, %union.GCObject* %306, %union.GCObject* %311)
+ br label %312
+
+; <label>:312 ; preds = %303, %293, %280, %253
+ br label %28
+
+; <label>:313 ; preds = %68
+ %314 = load i32** %pc, align 4 ; [#uses=1]
+ %315 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %316 = getelementptr inbounds %struct.lua_State* %315, i32 0, i32 8 ; [#uses=1]
+ store i32* %314, i32** %316, align 4
+ %317 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %318 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %319 = load i32* %i, align 4 ; [#uses=1]
+ %320 = lshr i32 %319, 23 ; [#uses=1]
+ %321 = and i32 %320, 511 ; [#uses=1]
+ %322 = and i32 %321, 256 ; [#uses=1]
+ %323 = icmp ne i32 %322, 0 ; [#uses=1]
+ br i1 %323, label %324, label %331
+
+; <label>:324 ; preds = %313
+ %325 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %326 = load i32* %i, align 4 ; [#uses=1]
+ %327 = lshr i32 %326, 23 ; [#uses=1]
+ %328 = and i32 %327, 511 ; [#uses=1]
+ %329 = and i32 %328, -257 ; [#uses=1]
+ %330 = getelementptr inbounds %struct.lua_TValue* %325, i32 %329 ; [#uses=1]
+ br label %337
+
+; <label>:331 ; preds = %313
+ %332 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %333 = load i32* %i, align 4 ; [#uses=1]
+ %334 = lshr i32 %333, 23 ; [#uses=1]
+ %335 = and i32 %334, 511 ; [#uses=1]
+ %336 = getelementptr inbounds %struct.lua_TValue* %332, i32 %335 ; [#uses=1]
+ br label %337
+
+; <label>:337 ; preds = %331, %324
+ %338 = phi %struct.lua_TValue* [ %330, %324 ], [ %336, %331 ] ; [#uses=1]
+ %339 = load i32* %i, align 4 ; [#uses=1]
+ %340 = lshr i32 %339, 14 ; [#uses=1]
+ %341 = and i32 %340, 511 ; [#uses=1]
+ %342 = and i32 %341, 256 ; [#uses=1]
+ %343 = icmp ne i32 %342, 0 ; [#uses=1]
+ br i1 %343, label %344, label %351
+
+; <label>:344 ; preds = %337
+ %345 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %346 = load i32* %i, align 4 ; [#uses=1]
+ %347 = lshr i32 %346, 14 ; [#uses=1]
+ %348 = and i32 %347, 511 ; [#uses=1]
+ %349 = and i32 %348, -257 ; [#uses=1]
+ %350 = getelementptr inbounds %struct.lua_TValue* %345, i32 %349 ; [#uses=1]
+ br label %357
+
+; <label>:351 ; preds = %337
+ %352 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %353 = load i32* %i, align 4 ; [#uses=1]
+ %354 = lshr i32 %353, 14 ; [#uses=1]
+ %355 = and i32 %354, 511 ; [#uses=1]
+ %356 = getelementptr inbounds %struct.lua_TValue* %352, i32 %355 ; [#uses=1]
+ br label %357
+
+; <label>:357 ; preds = %351, %344
+ %358 = phi %struct.lua_TValue* [ %350, %344 ], [ %356, %351 ] ; [#uses=1]
+ call void @_Z13luaV_settableP9lua_StatePK10lua_TValuePS1_S4_(%struct.lua_State* %317, %struct.lua_TValue* %318, %struct.lua_TValue* %338, %struct.lua_TValue* %358)
+ %359 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %360 = getelementptr inbounds %struct.lua_State* %359, i32 0, i32 5 ; [#uses=1]
+ %361 = load %struct.lua_TValue** %360, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %361, %struct.lua_TValue** %base, align 4
+ br label %28
+
+; <label>:362 ; preds = %68
+ %363 = load i32* %i, align 4 ; [#uses=1]
+ %364 = lshr i32 %363, 23 ; [#uses=1]
+ %365 = and i32 %364, 511 ; [#uses=1]
+ store i32 %365, i32* %b11, align 4
+ %366 = load i32* %i, align 4 ; [#uses=1]
+ %367 = lshr i32 %366, 14 ; [#uses=1]
+ %368 = and i32 %367, 511 ; [#uses=1]
+ store i32 %368, i32* %c, align 4
+ %369 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %369, %struct.lua_TValue** %i_o12, align 4
+ %370 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %371 = load i32* %b11, align 4 ; [#uses=1]
+ %372 = call i32 @_Z11luaO_fb2inti(i32 %371) ; [#uses=1]
+ %373 = load i32* %c, align 4 ; [#uses=1]
+ %374 = call i32 @_Z11luaO_fb2inti(i32 %373) ; [#uses=1]
+ %375 = call %struct.Table* @_Z8luaH_newP9lua_Stateii(%struct.lua_State* %370, i32 %372, i32 %374) ; [#uses=1]
+ %376 = bitcast %struct.Table* %375 to %union.GCObject* ; [#uses=1]
+ %377 = load %struct.lua_TValue** %i_o12, align 4 ; [#uses=1]
+ %378 = getelementptr inbounds %struct.lua_TValue* %377, i32 0, i32 0 ; [#uses=1]
+ %379 = getelementptr inbounds %union.anon* %378, i32 0, i32 0 ; [#uses=1]
+ %380 = bitcast double* %379 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %376, %union.GCObject** %380, align 4
+ %381 = load %struct.lua_TValue** %i_o12, align 4 ; [#uses=1]
+ %382 = getelementptr inbounds %struct.lua_TValue* %381, i32 0, i32 1 ; [#uses=1]
+ store i32 5, i32* %382, align 4
+ %383 = load i32** %pc, align 4 ; [#uses=1]
+ %384 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %385 = getelementptr inbounds %struct.lua_State* %384, i32 0, i32 8 ; [#uses=1]
+ store i32* %383, i32** %385, align 4
+ %386 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %387 = getelementptr inbounds %struct.lua_State* %386, i32 0, i32 6 ; [#uses=1]
+ %388 = load %struct.global_State** %387, align 4 ; [#uses=1]
+ %389 = getelementptr inbounds %struct.global_State* %388, i32 0, i32 14 ; [#uses=1]
+ %390 = load i32* %389, align 4 ; [#uses=1]
+ %391 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %392 = getelementptr inbounds %struct.lua_State* %391, i32 0, i32 6 ; [#uses=1]
+ %393 = load %struct.global_State** %392, align 4 ; [#uses=1]
+ %394 = getelementptr inbounds %struct.global_State* %393, i32 0, i32 13 ; [#uses=1]
+ %395 = load i32* %394, align 4 ; [#uses=1]
+ %396 = icmp uge i32 %390, %395 ; [#uses=1]
+ br i1 %396, label %397, label %399
+
+; <label>:397 ; preds = %362
+ %398 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9luaC_stepP9lua_State(%struct.lua_State* %398)
+ br label %399
+
+; <label>:399 ; preds = %397, %362
+ %400 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %401 = getelementptr inbounds %struct.lua_State* %400, i32 0, i32 5 ; [#uses=1]
+ %402 = load %struct.lua_TValue** %401, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %402, %struct.lua_TValue** %base, align 4
+ br label %28
+
+; <label>:403 ; preds = %68
+ %404 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %405 = load i32* %i, align 4 ; [#uses=1]
+ %406 = lshr i32 %405, 23 ; [#uses=1]
+ %407 = and i32 %406, 511 ; [#uses=1]
+ %408 = getelementptr inbounds %struct.lua_TValue* %404, i32 %407 ; [#uses=1]
+ store %struct.lua_TValue* %408, %struct.lua_TValue** %rb13, align 4
+ %409 = load %struct.lua_TValue** %rb13, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %409, %struct.lua_TValue** %o214, align 4
+ %410 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %411 = getelementptr inbounds %struct.lua_TValue* %410, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %411, %struct.lua_TValue** %o115, align 4
+ %412 = load %struct.lua_TValue** %o115, align 4 ; [#uses=1]
+ %413 = getelementptr inbounds %struct.lua_TValue* %412, i32 0, i32 0 ; [#uses=1]
+ %414 = load %struct.lua_TValue** %o214, align 4 ; [#uses=1]
+ %415 = getelementptr inbounds %struct.lua_TValue* %414, i32 0, i32 0 ; [#uses=1]
+ %416 = bitcast %union.anon* %413 to i8* ; [#uses=1]
+ %417 = bitcast %union.anon* %415 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %416, i8* %417, i32 8, i32 4, i1 false)
+ %418 = load %struct.lua_TValue** %o214, align 4 ; [#uses=1]
+ %419 = getelementptr inbounds %struct.lua_TValue* %418, i32 0, i32 1 ; [#uses=1]
+ %420 = load i32* %419, align 4 ; [#uses=1]
+ %421 = load %struct.lua_TValue** %o115, align 4 ; [#uses=1]
+ %422 = getelementptr inbounds %struct.lua_TValue* %421, i32 0, i32 1 ; [#uses=1]
+ store i32 %420, i32* %422, align 4
+ %423 = load i32** %pc, align 4 ; [#uses=1]
+ %424 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %425 = getelementptr inbounds %struct.lua_State* %424, i32 0, i32 8 ; [#uses=1]
+ store i32* %423, i32** %425, align 4
+ %426 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %427 = load %struct.lua_TValue** %rb13, align 4 ; [#uses=1]
+ %428 = load i32* %i, align 4 ; [#uses=1]
+ %429 = lshr i32 %428, 14 ; [#uses=1]
+ %430 = and i32 %429, 511 ; [#uses=1]
+ %431 = and i32 %430, 256 ; [#uses=1]
+ %432 = icmp ne i32 %431, 0 ; [#uses=1]
+ br i1 %432, label %433, label %440
+
+; <label>:433 ; preds = %403
+ %434 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %435 = load i32* %i, align 4 ; [#uses=1]
+ %436 = lshr i32 %435, 14 ; [#uses=1]
+ %437 = and i32 %436, 511 ; [#uses=1]
+ %438 = and i32 %437, -257 ; [#uses=1]
+ %439 = getelementptr inbounds %struct.lua_TValue* %434, i32 %438 ; [#uses=1]
+ br label %446
+
+; <label>:440 ; preds = %403
+ %441 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %442 = load i32* %i, align 4 ; [#uses=1]
+ %443 = lshr i32 %442, 14 ; [#uses=1]
+ %444 = and i32 %443, 511 ; [#uses=1]
+ %445 = getelementptr inbounds %struct.lua_TValue* %441, i32 %444 ; [#uses=1]
+ br label %446
+
+; <label>:446 ; preds = %440, %433
+ %447 = phi %struct.lua_TValue* [ %439, %433 ], [ %445, %440 ] ; [#uses=1]
+ %448 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ call void @_Z13luaV_gettableP9lua_StatePK10lua_TValuePS1_S4_(%struct.lua_State* %426, %struct.lua_TValue* %427, %struct.lua_TValue* %447, %struct.lua_TValue* %448)
+ %449 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %450 = getelementptr inbounds %struct.lua_State* %449, i32 0, i32 5 ; [#uses=1]
+ %451 = load %struct.lua_TValue** %450, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %451, %struct.lua_TValue** %base, align 4
+ br label %28
+
+; <label>:452 ; preds = %68
+ %453 = load i32* %i, align 4 ; [#uses=1]
+ %454 = lshr i32 %453, 23 ; [#uses=1]
+ %455 = and i32 %454, 511 ; [#uses=1]
+ %456 = and i32 %455, 256 ; [#uses=1]
+ %457 = icmp ne i32 %456, 0 ; [#uses=1]
+ br i1 %457, label %458, label %465
+
+; <label>:458 ; preds = %452
+ %459 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %460 = load i32* %i, align 4 ; [#uses=1]
+ %461 = lshr i32 %460, 23 ; [#uses=1]
+ %462 = and i32 %461, 511 ; [#uses=1]
+ %463 = and i32 %462, -257 ; [#uses=1]
+ %464 = getelementptr inbounds %struct.lua_TValue* %459, i32 %463 ; [#uses=1]
+ br label %471
+
+; <label>:465 ; preds = %452
+ %466 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %467 = load i32* %i, align 4 ; [#uses=1]
+ %468 = lshr i32 %467, 23 ; [#uses=1]
+ %469 = and i32 %468, 511 ; [#uses=1]
+ %470 = getelementptr inbounds %struct.lua_TValue* %466, i32 %469 ; [#uses=1]
+ br label %471
+
+; <label>:471 ; preds = %465, %458
+ %472 = phi %struct.lua_TValue* [ %464, %458 ], [ %470, %465 ] ; [#uses=1]
+ store %struct.lua_TValue* %472, %struct.lua_TValue** %rb16, align 4
+ %473 = load i32* %i, align 4 ; [#uses=1]
+ %474 = lshr i32 %473, 14 ; [#uses=1]
+ %475 = and i32 %474, 511 ; [#uses=1]
+ %476 = and i32 %475, 256 ; [#uses=1]
+ %477 = icmp ne i32 %476, 0 ; [#uses=1]
+ br i1 %477, label %478, label %485
+
+; <label>:478 ; preds = %471
+ %479 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %480 = load i32* %i, align 4 ; [#uses=1]
+ %481 = lshr i32 %480, 14 ; [#uses=1]
+ %482 = and i32 %481, 511 ; [#uses=1]
+ %483 = and i32 %482, -257 ; [#uses=1]
+ %484 = getelementptr inbounds %struct.lua_TValue* %479, i32 %483 ; [#uses=1]
+ br label %491
+
+; <label>:485 ; preds = %471
+ %486 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %487 = load i32* %i, align 4 ; [#uses=1]
+ %488 = lshr i32 %487, 14 ; [#uses=1]
+ %489 = and i32 %488, 511 ; [#uses=1]
+ %490 = getelementptr inbounds %struct.lua_TValue* %486, i32 %489 ; [#uses=1]
+ br label %491
+
+; <label>:491 ; preds = %485, %478
+ %492 = phi %struct.lua_TValue* [ %484, %478 ], [ %490, %485 ] ; [#uses=1]
+ store %struct.lua_TValue* %492, %struct.lua_TValue** %rc, align 4
+ %493 = load %struct.lua_TValue** %rb16, align 4 ; [#uses=1]
+ %494 = getelementptr inbounds %struct.lua_TValue* %493, i32 0, i32 1 ; [#uses=1]
+ %495 = load i32* %494, align 4 ; [#uses=1]
+ %496 = icmp eq i32 %495, 3 ; [#uses=1]
+ br i1 %496, label %497, label %520
+
+; <label>:497 ; preds = %491
+ %498 = load %struct.lua_TValue** %rc, align 4 ; [#uses=1]
+ %499 = getelementptr inbounds %struct.lua_TValue* %498, i32 0, i32 1 ; [#uses=1]
+ %500 = load i32* %499, align 4 ; [#uses=1]
+ %501 = icmp eq i32 %500, 3 ; [#uses=1]
+ br i1 %501, label %502, label %520
+
+; <label>:502 ; preds = %497
+ %503 = load %struct.lua_TValue** %rb16, align 4 ; [#uses=1]
+ %504 = getelementptr inbounds %struct.lua_TValue* %503, i32 0, i32 0 ; [#uses=1]
+ %505 = getelementptr inbounds %union.anon* %504, i32 0, i32 0 ; [#uses=1]
+ %506 = load double* %505, align 4 ; [#uses=1]
+ store double %506, double* %nb, align 8
+ %507 = load %struct.lua_TValue** %rc, align 4 ; [#uses=1]
+ %508 = getelementptr inbounds %struct.lua_TValue* %507, i32 0, i32 0 ; [#uses=1]
+ %509 = getelementptr inbounds %union.anon* %508, i32 0, i32 0 ; [#uses=1]
+ %510 = load double* %509, align 4 ; [#uses=1]
+ store double %510, double* %nc, align 8
+ %511 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %511, %struct.lua_TValue** %i_o17, align 4
+ %512 = load double* %nb, align 8 ; [#uses=1]
+ %513 = load double* %nc, align 8 ; [#uses=1]
+ %514 = fadd double %512, %513 ; [#uses=1]
+ %515 = load %struct.lua_TValue** %i_o17, align 4 ; [#uses=1]
+ %516 = getelementptr inbounds %struct.lua_TValue* %515, i32 0, i32 0 ; [#uses=1]
+ %517 = getelementptr inbounds %union.anon* %516, i32 0, i32 0 ; [#uses=1]
+ store double %514, double* %517, align 4
+ %518 = load %struct.lua_TValue** %i_o17, align 4 ; [#uses=1]
+ %519 = getelementptr inbounds %struct.lua_TValue* %518, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %519, align 4
+ br label %531
+
+; <label>:520 ; preds = %497, %491
+ %521 = load i32** %pc, align 4 ; [#uses=1]
+ %522 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %523 = getelementptr inbounds %struct.lua_State* %522, i32 0, i32 8 ; [#uses=1]
+ store i32* %521, i32** %523, align 4
+ %524 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %525 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %526 = load %struct.lua_TValue** %rb16, align 4 ; [#uses=1]
+ %527 = load %struct.lua_TValue** %rc, align 4 ; [#uses=1]
+ call void @_Z5ArithP9lua_StateP10lua_TValuePKS1_S4_3TMS(%struct.lua_State* %524, %struct.lua_TValue* %525, %struct.lua_TValue* %526, %struct.lua_TValue* %527, i32 5)
+ %528 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %529 = getelementptr inbounds %struct.lua_State* %528, i32 0, i32 5 ; [#uses=1]
+ %530 = load %struct.lua_TValue** %529, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %530, %struct.lua_TValue** %base, align 4
+ br label %531
+
+; <label>:531 ; preds = %520, %502
+ br label %28
+
+; <label>:532 ; preds = %68
+ %533 = load i32* %i, align 4 ; [#uses=1]
+ %534 = lshr i32 %533, 23 ; [#uses=1]
+ %535 = and i32 %534, 511 ; [#uses=1]
+ %536 = and i32 %535, 256 ; [#uses=1]
+ %537 = icmp ne i32 %536, 0 ; [#uses=1]
+ br i1 %537, label %538, label %545
+
+; <label>:538 ; preds = %532
+ %539 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %540 = load i32* %i, align 4 ; [#uses=1]
+ %541 = lshr i32 %540, 23 ; [#uses=1]
+ %542 = and i32 %541, 511 ; [#uses=1]
+ %543 = and i32 %542, -257 ; [#uses=1]
+ %544 = getelementptr inbounds %struct.lua_TValue* %539, i32 %543 ; [#uses=1]
+ br label %551
+
+; <label>:545 ; preds = %532
+ %546 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %547 = load i32* %i, align 4 ; [#uses=1]
+ %548 = lshr i32 %547, 23 ; [#uses=1]
+ %549 = and i32 %548, 511 ; [#uses=1]
+ %550 = getelementptr inbounds %struct.lua_TValue* %546, i32 %549 ; [#uses=1]
+ br label %551
+
+; <label>:551 ; preds = %545, %538
+ %552 = phi %struct.lua_TValue* [ %544, %538 ], [ %550, %545 ] ; [#uses=1]
+ store %struct.lua_TValue* %552, %struct.lua_TValue** %rb18, align 4
+ %553 = load i32* %i, align 4 ; [#uses=1]
+ %554 = lshr i32 %553, 14 ; [#uses=1]
+ %555 = and i32 %554, 511 ; [#uses=1]
+ %556 = and i32 %555, 256 ; [#uses=1]
+ %557 = icmp ne i32 %556, 0 ; [#uses=1]
+ br i1 %557, label %558, label %565
+
+; <label>:558 ; preds = %551
+ %559 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %560 = load i32* %i, align 4 ; [#uses=1]
+ %561 = lshr i32 %560, 14 ; [#uses=1]
+ %562 = and i32 %561, 511 ; [#uses=1]
+ %563 = and i32 %562, -257 ; [#uses=1]
+ %564 = getelementptr inbounds %struct.lua_TValue* %559, i32 %563 ; [#uses=1]
+ br label %571
+
+; <label>:565 ; preds = %551
+ %566 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %567 = load i32* %i, align 4 ; [#uses=1]
+ %568 = lshr i32 %567, 14 ; [#uses=1]
+ %569 = and i32 %568, 511 ; [#uses=1]
+ %570 = getelementptr inbounds %struct.lua_TValue* %566, i32 %569 ; [#uses=1]
+ br label %571
+
+; <label>:571 ; preds = %565, %558
+ %572 = phi %struct.lua_TValue* [ %564, %558 ], [ %570, %565 ] ; [#uses=1]
+ store %struct.lua_TValue* %572, %struct.lua_TValue** %rc19, align 4
+ %573 = load %struct.lua_TValue** %rb18, align 4 ; [#uses=1]
+ %574 = getelementptr inbounds %struct.lua_TValue* %573, i32 0, i32 1 ; [#uses=1]
+ %575 = load i32* %574, align 4 ; [#uses=1]
+ %576 = icmp eq i32 %575, 3 ; [#uses=1]
+ br i1 %576, label %577, label %600
+
+; <label>:577 ; preds = %571
+ %578 = load %struct.lua_TValue** %rc19, align 4 ; [#uses=1]
+ %579 = getelementptr inbounds %struct.lua_TValue* %578, i32 0, i32 1 ; [#uses=1]
+ %580 = load i32* %579, align 4 ; [#uses=1]
+ %581 = icmp eq i32 %580, 3 ; [#uses=1]
+ br i1 %581, label %582, label %600
+
+; <label>:582 ; preds = %577
+ %583 = load %struct.lua_TValue** %rb18, align 4 ; [#uses=1]
+ %584 = getelementptr inbounds %struct.lua_TValue* %583, i32 0, i32 0 ; [#uses=1]
+ %585 = getelementptr inbounds %union.anon* %584, i32 0, i32 0 ; [#uses=1]
+ %586 = load double* %585, align 4 ; [#uses=1]
+ store double %586, double* %nb20, align 8
+ %587 = load %struct.lua_TValue** %rc19, align 4 ; [#uses=1]
+ %588 = getelementptr inbounds %struct.lua_TValue* %587, i32 0, i32 0 ; [#uses=1]
+ %589 = getelementptr inbounds %union.anon* %588, i32 0, i32 0 ; [#uses=1]
+ %590 = load double* %589, align 4 ; [#uses=1]
+ store double %590, double* %nc21, align 8
+ %591 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %591, %struct.lua_TValue** %i_o22, align 4
+ %592 = load double* %nb20, align 8 ; [#uses=1]
+ %593 = load double* %nc21, align 8 ; [#uses=1]
+ %594 = fsub double %592, %593 ; [#uses=1]
+ %595 = load %struct.lua_TValue** %i_o22, align 4 ; [#uses=1]
+ %596 = getelementptr inbounds %struct.lua_TValue* %595, i32 0, i32 0 ; [#uses=1]
+ %597 = getelementptr inbounds %union.anon* %596, i32 0, i32 0 ; [#uses=1]
+ store double %594, double* %597, align 4
+ %598 = load %struct.lua_TValue** %i_o22, align 4 ; [#uses=1]
+ %599 = getelementptr inbounds %struct.lua_TValue* %598, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %599, align 4
+ br label %611
+
+; <label>:600 ; preds = %577, %571
+ %601 = load i32** %pc, align 4 ; [#uses=1]
+ %602 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %603 = getelementptr inbounds %struct.lua_State* %602, i32 0, i32 8 ; [#uses=1]
+ store i32* %601, i32** %603, align 4
+ %604 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %605 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %606 = load %struct.lua_TValue** %rb18, align 4 ; [#uses=1]
+ %607 = load %struct.lua_TValue** %rc19, align 4 ; [#uses=1]
+ call void @_Z5ArithP9lua_StateP10lua_TValuePKS1_S4_3TMS(%struct.lua_State* %604, %struct.lua_TValue* %605, %struct.lua_TValue* %606, %struct.lua_TValue* %607, i32 6)
+ %608 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %609 = getelementptr inbounds %struct.lua_State* %608, i32 0, i32 5 ; [#uses=1]
+ %610 = load %struct.lua_TValue** %609, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %610, %struct.lua_TValue** %base, align 4
+ br label %611
+
+; <label>:611 ; preds = %600, %582
+ br label %28
+
+; <label>:612 ; preds = %68
+ %613 = load i32* %i, align 4 ; [#uses=1]
+ %614 = lshr i32 %613, 23 ; [#uses=1]
+ %615 = and i32 %614, 511 ; [#uses=1]
+ %616 = and i32 %615, 256 ; [#uses=1]
+ %617 = icmp ne i32 %616, 0 ; [#uses=1]
+ br i1 %617, label %618, label %625
+
+; <label>:618 ; preds = %612
+ %619 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %620 = load i32* %i, align 4 ; [#uses=1]
+ %621 = lshr i32 %620, 23 ; [#uses=1]
+ %622 = and i32 %621, 511 ; [#uses=1]
+ %623 = and i32 %622, -257 ; [#uses=1]
+ %624 = getelementptr inbounds %struct.lua_TValue* %619, i32 %623 ; [#uses=1]
+ br label %631
+
+; <label>:625 ; preds = %612
+ %626 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %627 = load i32* %i, align 4 ; [#uses=1]
+ %628 = lshr i32 %627, 23 ; [#uses=1]
+ %629 = and i32 %628, 511 ; [#uses=1]
+ %630 = getelementptr inbounds %struct.lua_TValue* %626, i32 %629 ; [#uses=1]
+ br label %631
+
+; <label>:631 ; preds = %625, %618
+ %632 = phi %struct.lua_TValue* [ %624, %618 ], [ %630, %625 ] ; [#uses=1]
+ store %struct.lua_TValue* %632, %struct.lua_TValue** %rb23, align 4
+ %633 = load i32* %i, align 4 ; [#uses=1]
+ %634 = lshr i32 %633, 14 ; [#uses=1]
+ %635 = and i32 %634, 511 ; [#uses=1]
+ %636 = and i32 %635, 256 ; [#uses=1]
+ %637 = icmp ne i32 %636, 0 ; [#uses=1]
+ br i1 %637, label %638, label %645
+
+; <label>:638 ; preds = %631
+ %639 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %640 = load i32* %i, align 4 ; [#uses=1]
+ %641 = lshr i32 %640, 14 ; [#uses=1]
+ %642 = and i32 %641, 511 ; [#uses=1]
+ %643 = and i32 %642, -257 ; [#uses=1]
+ %644 = getelementptr inbounds %struct.lua_TValue* %639, i32 %643 ; [#uses=1]
+ br label %651
+
+; <label>:645 ; preds = %631
+ %646 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %647 = load i32* %i, align 4 ; [#uses=1]
+ %648 = lshr i32 %647, 14 ; [#uses=1]
+ %649 = and i32 %648, 511 ; [#uses=1]
+ %650 = getelementptr inbounds %struct.lua_TValue* %646, i32 %649 ; [#uses=1]
+ br label %651
+
+; <label>:651 ; preds = %645, %638
+ %652 = phi %struct.lua_TValue* [ %644, %638 ], [ %650, %645 ] ; [#uses=1]
+ store %struct.lua_TValue* %652, %struct.lua_TValue** %rc24, align 4
+ %653 = load %struct.lua_TValue** %rb23, align 4 ; [#uses=1]
+ %654 = getelementptr inbounds %struct.lua_TValue* %653, i32 0, i32 1 ; [#uses=1]
+ %655 = load i32* %654, align 4 ; [#uses=1]
+ %656 = icmp eq i32 %655, 3 ; [#uses=1]
+ br i1 %656, label %657, label %680
+
+; <label>:657 ; preds = %651
+ %658 = load %struct.lua_TValue** %rc24, align 4 ; [#uses=1]
+ %659 = getelementptr inbounds %struct.lua_TValue* %658, i32 0, i32 1 ; [#uses=1]
+ %660 = load i32* %659, align 4 ; [#uses=1]
+ %661 = icmp eq i32 %660, 3 ; [#uses=1]
+ br i1 %661, label %662, label %680
+
+; <label>:662 ; preds = %657
+ %663 = load %struct.lua_TValue** %rb23, align 4 ; [#uses=1]
+ %664 = getelementptr inbounds %struct.lua_TValue* %663, i32 0, i32 0 ; [#uses=1]
+ %665 = getelementptr inbounds %union.anon* %664, i32 0, i32 0 ; [#uses=1]
+ %666 = load double* %665, align 4 ; [#uses=1]
+ store double %666, double* %nb25, align 8
+ %667 = load %struct.lua_TValue** %rc24, align 4 ; [#uses=1]
+ %668 = getelementptr inbounds %struct.lua_TValue* %667, i32 0, i32 0 ; [#uses=1]
+ %669 = getelementptr inbounds %union.anon* %668, i32 0, i32 0 ; [#uses=1]
+ %670 = load double* %669, align 4 ; [#uses=1]
+ store double %670, double* %nc26, align 8
+ %671 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %671, %struct.lua_TValue** %i_o27, align 4
+ %672 = load double* %nb25, align 8 ; [#uses=1]
+ %673 = load double* %nc26, align 8 ; [#uses=1]
+ %674 = fmul double %672, %673 ; [#uses=1]
+ %675 = load %struct.lua_TValue** %i_o27, align 4 ; [#uses=1]
+ %676 = getelementptr inbounds %struct.lua_TValue* %675, i32 0, i32 0 ; [#uses=1]
+ %677 = getelementptr inbounds %union.anon* %676, i32 0, i32 0 ; [#uses=1]
+ store double %674, double* %677, align 4
+ %678 = load %struct.lua_TValue** %i_o27, align 4 ; [#uses=1]
+ %679 = getelementptr inbounds %struct.lua_TValue* %678, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %679, align 4
+ br label %691
+
+; <label>:680 ; preds = %657, %651
+ %681 = load i32** %pc, align 4 ; [#uses=1]
+ %682 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %683 = getelementptr inbounds %struct.lua_State* %682, i32 0, i32 8 ; [#uses=1]
+ store i32* %681, i32** %683, align 4
+ %684 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %685 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %686 = load %struct.lua_TValue** %rb23, align 4 ; [#uses=1]
+ %687 = load %struct.lua_TValue** %rc24, align 4 ; [#uses=1]
+ call void @_Z5ArithP9lua_StateP10lua_TValuePKS1_S4_3TMS(%struct.lua_State* %684, %struct.lua_TValue* %685, %struct.lua_TValue* %686, %struct.lua_TValue* %687, i32 7)
+ %688 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %689 = getelementptr inbounds %struct.lua_State* %688, i32 0, i32 5 ; [#uses=1]
+ %690 = load %struct.lua_TValue** %689, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %690, %struct.lua_TValue** %base, align 4
+ br label %691
+
+; <label>:691 ; preds = %680, %662
+ br label %28
+
+; <label>:692 ; preds = %68
+ %693 = load i32* %i, align 4 ; [#uses=1]
+ %694 = lshr i32 %693, 23 ; [#uses=1]
+ %695 = and i32 %694, 511 ; [#uses=1]
+ %696 = and i32 %695, 256 ; [#uses=1]
+ %697 = icmp ne i32 %696, 0 ; [#uses=1]
+ br i1 %697, label %698, label %705
+
+; <label>:698 ; preds = %692
+ %699 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %700 = load i32* %i, align 4 ; [#uses=1]
+ %701 = lshr i32 %700, 23 ; [#uses=1]
+ %702 = and i32 %701, 511 ; [#uses=1]
+ %703 = and i32 %702, -257 ; [#uses=1]
+ %704 = getelementptr inbounds %struct.lua_TValue* %699, i32 %703 ; [#uses=1]
+ br label %711
+
+; <label>:705 ; preds = %692
+ %706 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %707 = load i32* %i, align 4 ; [#uses=1]
+ %708 = lshr i32 %707, 23 ; [#uses=1]
+ %709 = and i32 %708, 511 ; [#uses=1]
+ %710 = getelementptr inbounds %struct.lua_TValue* %706, i32 %709 ; [#uses=1]
+ br label %711
+
+; <label>:711 ; preds = %705, %698
+ %712 = phi %struct.lua_TValue* [ %704, %698 ], [ %710, %705 ] ; [#uses=1]
+ store %struct.lua_TValue* %712, %struct.lua_TValue** %rb28, align 4
+ %713 = load i32* %i, align 4 ; [#uses=1]
+ %714 = lshr i32 %713, 14 ; [#uses=1]
+ %715 = and i32 %714, 511 ; [#uses=1]
+ %716 = and i32 %715, 256 ; [#uses=1]
+ %717 = icmp ne i32 %716, 0 ; [#uses=1]
+ br i1 %717, label %718, label %725
+
+; <label>:718 ; preds = %711
+ %719 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %720 = load i32* %i, align 4 ; [#uses=1]
+ %721 = lshr i32 %720, 14 ; [#uses=1]
+ %722 = and i32 %721, 511 ; [#uses=1]
+ %723 = and i32 %722, -257 ; [#uses=1]
+ %724 = getelementptr inbounds %struct.lua_TValue* %719, i32 %723 ; [#uses=1]
+ br label %731
+
+; <label>:725 ; preds = %711
+ %726 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %727 = load i32* %i, align 4 ; [#uses=1]
+ %728 = lshr i32 %727, 14 ; [#uses=1]
+ %729 = and i32 %728, 511 ; [#uses=1]
+ %730 = getelementptr inbounds %struct.lua_TValue* %726, i32 %729 ; [#uses=1]
+ br label %731
+
+; <label>:731 ; preds = %725, %718
+ %732 = phi %struct.lua_TValue* [ %724, %718 ], [ %730, %725 ] ; [#uses=1]
+ store %struct.lua_TValue* %732, %struct.lua_TValue** %rc29, align 4
+ %733 = load %struct.lua_TValue** %rb28, align 4 ; [#uses=1]
+ %734 = getelementptr inbounds %struct.lua_TValue* %733, i32 0, i32 1 ; [#uses=1]
+ %735 = load i32* %734, align 4 ; [#uses=1]
+ %736 = icmp eq i32 %735, 3 ; [#uses=1]
+ br i1 %736, label %737, label %760
+
+; <label>:737 ; preds = %731
+ %738 = load %struct.lua_TValue** %rc29, align 4 ; [#uses=1]
+ %739 = getelementptr inbounds %struct.lua_TValue* %738, i32 0, i32 1 ; [#uses=1]
+ %740 = load i32* %739, align 4 ; [#uses=1]
+ %741 = icmp eq i32 %740, 3 ; [#uses=1]
+ br i1 %741, label %742, label %760
+
+; <label>:742 ; preds = %737
+ %743 = load %struct.lua_TValue** %rb28, align 4 ; [#uses=1]
+ %744 = getelementptr inbounds %struct.lua_TValue* %743, i32 0, i32 0 ; [#uses=1]
+ %745 = getelementptr inbounds %union.anon* %744, i32 0, i32 0 ; [#uses=1]
+ %746 = load double* %745, align 4 ; [#uses=1]
+ store double %746, double* %nb30, align 8
+ %747 = load %struct.lua_TValue** %rc29, align 4 ; [#uses=1]
+ %748 = getelementptr inbounds %struct.lua_TValue* %747, i32 0, i32 0 ; [#uses=1]
+ %749 = getelementptr inbounds %union.anon* %748, i32 0, i32 0 ; [#uses=1]
+ %750 = load double* %749, align 4 ; [#uses=1]
+ store double %750, double* %nc31, align 8
+ %751 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %751, %struct.lua_TValue** %i_o32, align 4
+ %752 = load double* %nb30, align 8 ; [#uses=1]
+ %753 = load double* %nc31, align 8 ; [#uses=1]
+ %754 = fdiv double %752, %753 ; [#uses=1]
+ %755 = load %struct.lua_TValue** %i_o32, align 4 ; [#uses=1]
+ %756 = getelementptr inbounds %struct.lua_TValue* %755, i32 0, i32 0 ; [#uses=1]
+ %757 = getelementptr inbounds %union.anon* %756, i32 0, i32 0 ; [#uses=1]
+ store double %754, double* %757, align 4
+ %758 = load %struct.lua_TValue** %i_o32, align 4 ; [#uses=1]
+ %759 = getelementptr inbounds %struct.lua_TValue* %758, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %759, align 4
+ br label %771
+
+; <label>:760 ; preds = %737, %731
+ %761 = load i32** %pc, align 4 ; [#uses=1]
+ %762 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %763 = getelementptr inbounds %struct.lua_State* %762, i32 0, i32 8 ; [#uses=1]
+ store i32* %761, i32** %763, align 4
+ %764 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %765 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %766 = load %struct.lua_TValue** %rb28, align 4 ; [#uses=1]
+ %767 = load %struct.lua_TValue** %rc29, align 4 ; [#uses=1]
+ call void @_Z5ArithP9lua_StateP10lua_TValuePKS1_S4_3TMS(%struct.lua_State* %764, %struct.lua_TValue* %765, %struct.lua_TValue* %766, %struct.lua_TValue* %767, i32 8)
+ %768 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %769 = getelementptr inbounds %struct.lua_State* %768, i32 0, i32 5 ; [#uses=1]
+ %770 = load %struct.lua_TValue** %769, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %770, %struct.lua_TValue** %base, align 4
+ br label %771
+
+; <label>:771 ; preds = %760, %742
+ br label %28
+
+; <label>:772 ; preds = %68
+ %773 = load i32* %i, align 4 ; [#uses=1]
+ %774 = lshr i32 %773, 23 ; [#uses=1]
+ %775 = and i32 %774, 511 ; [#uses=1]
+ %776 = and i32 %775, 256 ; [#uses=1]
+ %777 = icmp ne i32 %776, 0 ; [#uses=1]
+ br i1 %777, label %778, label %785
+
+; <label>:778 ; preds = %772
+ %779 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %780 = load i32* %i, align 4 ; [#uses=1]
+ %781 = lshr i32 %780, 23 ; [#uses=1]
+ %782 = and i32 %781, 511 ; [#uses=1]
+ %783 = and i32 %782, -257 ; [#uses=1]
+ %784 = getelementptr inbounds %struct.lua_TValue* %779, i32 %783 ; [#uses=1]
+ br label %791
+
+; <label>:785 ; preds = %772
+ %786 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %787 = load i32* %i, align 4 ; [#uses=1]
+ %788 = lshr i32 %787, 23 ; [#uses=1]
+ %789 = and i32 %788, 511 ; [#uses=1]
+ %790 = getelementptr inbounds %struct.lua_TValue* %786, i32 %789 ; [#uses=1]
+ br label %791
+
+; <label>:791 ; preds = %785, %778
+ %792 = phi %struct.lua_TValue* [ %784, %778 ], [ %790, %785 ] ; [#uses=1]
+ store %struct.lua_TValue* %792, %struct.lua_TValue** %rb33, align 4
+ %793 = load i32* %i, align 4 ; [#uses=1]
+ %794 = lshr i32 %793, 14 ; [#uses=1]
+ %795 = and i32 %794, 511 ; [#uses=1]
+ %796 = and i32 %795, 256 ; [#uses=1]
+ %797 = icmp ne i32 %796, 0 ; [#uses=1]
+ br i1 %797, label %798, label %805
+
+; <label>:798 ; preds = %791
+ %799 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %800 = load i32* %i, align 4 ; [#uses=1]
+ %801 = lshr i32 %800, 14 ; [#uses=1]
+ %802 = and i32 %801, 511 ; [#uses=1]
+ %803 = and i32 %802, -257 ; [#uses=1]
+ %804 = getelementptr inbounds %struct.lua_TValue* %799, i32 %803 ; [#uses=1]
+ br label %811
+
+; <label>:805 ; preds = %791
+ %806 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %807 = load i32* %i, align 4 ; [#uses=1]
+ %808 = lshr i32 %807, 14 ; [#uses=1]
+ %809 = and i32 %808, 511 ; [#uses=1]
+ %810 = getelementptr inbounds %struct.lua_TValue* %806, i32 %809 ; [#uses=1]
+ br label %811
+
+; <label>:811 ; preds = %805, %798
+ %812 = phi %struct.lua_TValue* [ %804, %798 ], [ %810, %805 ] ; [#uses=1]
+ store %struct.lua_TValue* %812, %struct.lua_TValue** %rc34, align 4
+ %813 = load %struct.lua_TValue** %rb33, align 4 ; [#uses=1]
+ %814 = getelementptr inbounds %struct.lua_TValue* %813, i32 0, i32 1 ; [#uses=1]
+ %815 = load i32* %814, align 4 ; [#uses=1]
+ %816 = icmp eq i32 %815, 3 ; [#uses=1]
+ br i1 %816, label %817, label %845
+
+; <label>:817 ; preds = %811
+ %818 = load %struct.lua_TValue** %rc34, align 4 ; [#uses=1]
+ %819 = getelementptr inbounds %struct.lua_TValue* %818, i32 0, i32 1 ; [#uses=1]
+ %820 = load i32* %819, align 4 ; [#uses=1]
+ %821 = icmp eq i32 %820, 3 ; [#uses=1]
+ br i1 %821, label %822, label %845
+
+; <label>:822 ; preds = %817
+ %823 = load %struct.lua_TValue** %rb33, align 4 ; [#uses=1]
+ %824 = getelementptr inbounds %struct.lua_TValue* %823, i32 0, i32 0 ; [#uses=1]
+ %825 = getelementptr inbounds %union.anon* %824, i32 0, i32 0 ; [#uses=1]
+ %826 = load double* %825, align 4 ; [#uses=1]
+ store double %826, double* %nb35, align 8
+ %827 = load %struct.lua_TValue** %rc34, align 4 ; [#uses=1]
+ %828 = getelementptr inbounds %struct.lua_TValue* %827, i32 0, i32 0 ; [#uses=1]
+ %829 = getelementptr inbounds %union.anon* %828, i32 0, i32 0 ; [#uses=1]
+ %830 = load double* %829, align 4 ; [#uses=1]
+ store double %830, double* %nc36, align 8
+ %831 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %831, %struct.lua_TValue** %i_o37, align 4
+ %832 = load double* %nb35, align 8 ; [#uses=1]
+ %833 = load double* %nb35, align 8 ; [#uses=1]
+ %834 = load double* %nc36, align 8 ; [#uses=1]
+ %835 = fdiv double %833, %834 ; [#uses=1]
+ %836 = call double @floor(double %835) nounwind readnone ; [#uses=1]
+ %837 = load double* %nc36, align 8 ; [#uses=1]
+ %838 = fmul double %836, %837 ; [#uses=1]
+ %839 = fsub double %832, %838 ; [#uses=1]
+ %840 = load %struct.lua_TValue** %i_o37, align 4 ; [#uses=1]
+ %841 = getelementptr inbounds %struct.lua_TValue* %840, i32 0, i32 0 ; [#uses=1]
+ %842 = getelementptr inbounds %union.anon* %841, i32 0, i32 0 ; [#uses=1]
+ store double %839, double* %842, align 4
+ %843 = load %struct.lua_TValue** %i_o37, align 4 ; [#uses=1]
+ %844 = getelementptr inbounds %struct.lua_TValue* %843, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %844, align 4
+ br label %856
+
+; <label>:845 ; preds = %817, %811
+ %846 = load i32** %pc, align 4 ; [#uses=1]
+ %847 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %848 = getelementptr inbounds %struct.lua_State* %847, i32 0, i32 8 ; [#uses=1]
+ store i32* %846, i32** %848, align 4
+ %849 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %850 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %851 = load %struct.lua_TValue** %rb33, align 4 ; [#uses=1]
+ %852 = load %struct.lua_TValue** %rc34, align 4 ; [#uses=1]
+ call void @_Z5ArithP9lua_StateP10lua_TValuePKS1_S4_3TMS(%struct.lua_State* %849, %struct.lua_TValue* %850, %struct.lua_TValue* %851, %struct.lua_TValue* %852, i32 9)
+ %853 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %854 = getelementptr inbounds %struct.lua_State* %853, i32 0, i32 5 ; [#uses=1]
+ %855 = load %struct.lua_TValue** %854, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %855, %struct.lua_TValue** %base, align 4
+ br label %856
+
+; <label>:856 ; preds = %845, %822
+ br label %28
+
+; <label>:857 ; preds = %68
+ %858 = load i32* %i, align 4 ; [#uses=1]
+ %859 = lshr i32 %858, 23 ; [#uses=1]
+ %860 = and i32 %859, 511 ; [#uses=1]
+ %861 = and i32 %860, 256 ; [#uses=1]
+ %862 = icmp ne i32 %861, 0 ; [#uses=1]
+ br i1 %862, label %863, label %870
+
+; <label>:863 ; preds = %857
+ %864 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %865 = load i32* %i, align 4 ; [#uses=1]
+ %866 = lshr i32 %865, 23 ; [#uses=1]
+ %867 = and i32 %866, 511 ; [#uses=1]
+ %868 = and i32 %867, -257 ; [#uses=1]
+ %869 = getelementptr inbounds %struct.lua_TValue* %864, i32 %868 ; [#uses=1]
+ br label %876
+
+; <label>:870 ; preds = %857
+ %871 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %872 = load i32* %i, align 4 ; [#uses=1]
+ %873 = lshr i32 %872, 23 ; [#uses=1]
+ %874 = and i32 %873, 511 ; [#uses=1]
+ %875 = getelementptr inbounds %struct.lua_TValue* %871, i32 %874 ; [#uses=1]
+ br label %876
+
+; <label>:876 ; preds = %870, %863
+ %877 = phi %struct.lua_TValue* [ %869, %863 ], [ %875, %870 ] ; [#uses=1]
+ store %struct.lua_TValue* %877, %struct.lua_TValue** %rb38, align 4
+ %878 = load i32* %i, align 4 ; [#uses=1]
+ %879 = lshr i32 %878, 14 ; [#uses=1]
+ %880 = and i32 %879, 511 ; [#uses=1]
+ %881 = and i32 %880, 256 ; [#uses=1]
+ %882 = icmp ne i32 %881, 0 ; [#uses=1]
+ br i1 %882, label %883, label %890
+
+; <label>:883 ; preds = %876
+ %884 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %885 = load i32* %i, align 4 ; [#uses=1]
+ %886 = lshr i32 %885, 14 ; [#uses=1]
+ %887 = and i32 %886, 511 ; [#uses=1]
+ %888 = and i32 %887, -257 ; [#uses=1]
+ %889 = getelementptr inbounds %struct.lua_TValue* %884, i32 %888 ; [#uses=1]
+ br label %896
+
+; <label>:890 ; preds = %876
+ %891 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %892 = load i32* %i, align 4 ; [#uses=1]
+ %893 = lshr i32 %892, 14 ; [#uses=1]
+ %894 = and i32 %893, 511 ; [#uses=1]
+ %895 = getelementptr inbounds %struct.lua_TValue* %891, i32 %894 ; [#uses=1]
+ br label %896
+
+; <label>:896 ; preds = %890, %883
+ %897 = phi %struct.lua_TValue* [ %889, %883 ], [ %895, %890 ] ; [#uses=1]
+ store %struct.lua_TValue* %897, %struct.lua_TValue** %rc39, align 4
+ %898 = load %struct.lua_TValue** %rb38, align 4 ; [#uses=1]
+ %899 = getelementptr inbounds %struct.lua_TValue* %898, i32 0, i32 1 ; [#uses=1]
+ %900 = load i32* %899, align 4 ; [#uses=1]
+ %901 = icmp eq i32 %900, 3 ; [#uses=1]
+ br i1 %901, label %902, label %925
+
+; <label>:902 ; preds = %896
+ %903 = load %struct.lua_TValue** %rc39, align 4 ; [#uses=1]
+ %904 = getelementptr inbounds %struct.lua_TValue* %903, i32 0, i32 1 ; [#uses=1]
+ %905 = load i32* %904, align 4 ; [#uses=1]
+ %906 = icmp eq i32 %905, 3 ; [#uses=1]
+ br i1 %906, label %907, label %925
+
+; <label>:907 ; preds = %902
+ %908 = load %struct.lua_TValue** %rb38, align 4 ; [#uses=1]
+ %909 = getelementptr inbounds %struct.lua_TValue* %908, i32 0, i32 0 ; [#uses=1]
+ %910 = getelementptr inbounds %union.anon* %909, i32 0, i32 0 ; [#uses=1]
+ %911 = load double* %910, align 4 ; [#uses=1]
+ store double %911, double* %nb40, align 8
+ %912 = load %struct.lua_TValue** %rc39, align 4 ; [#uses=1]
+ %913 = getelementptr inbounds %struct.lua_TValue* %912, i32 0, i32 0 ; [#uses=1]
+ %914 = getelementptr inbounds %union.anon* %913, i32 0, i32 0 ; [#uses=1]
+ %915 = load double* %914, align 4 ; [#uses=1]
+ store double %915, double* %nc41, align 8
+ %916 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %916, %struct.lua_TValue** %i_o42, align 4
+ %917 = load double* %nb40, align 8 ; [#uses=1]
+ %918 = load double* %nc41, align 8 ; [#uses=1]
+ %919 = call double @llvm.pow.f64(double %917, double %918) ; [#uses=1]
+ %920 = load %struct.lua_TValue** %i_o42, align 4 ; [#uses=1]
+ %921 = getelementptr inbounds %struct.lua_TValue* %920, i32 0, i32 0 ; [#uses=1]
+ %922 = getelementptr inbounds %union.anon* %921, i32 0, i32 0 ; [#uses=1]
+ store double %919, double* %922, align 4
+ %923 = load %struct.lua_TValue** %i_o42, align 4 ; [#uses=1]
+ %924 = getelementptr inbounds %struct.lua_TValue* %923, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %924, align 4
+ br label %936
+
+; <label>:925 ; preds = %902, %896
+ %926 = load i32** %pc, align 4 ; [#uses=1]
+ %927 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %928 = getelementptr inbounds %struct.lua_State* %927, i32 0, i32 8 ; [#uses=1]
+ store i32* %926, i32** %928, align 4
+ %929 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %930 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %931 = load %struct.lua_TValue** %rb38, align 4 ; [#uses=1]
+ %932 = load %struct.lua_TValue** %rc39, align 4 ; [#uses=1]
+ call void @_Z5ArithP9lua_StateP10lua_TValuePKS1_S4_3TMS(%struct.lua_State* %929, %struct.lua_TValue* %930, %struct.lua_TValue* %931, %struct.lua_TValue* %932, i32 10)
+ %933 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %934 = getelementptr inbounds %struct.lua_State* %933, i32 0, i32 5 ; [#uses=1]
+ %935 = load %struct.lua_TValue** %934, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %935, %struct.lua_TValue** %base, align 4
+ br label %936
+
+; <label>:936 ; preds = %925, %907
+ br label %28
+
+; <label>:937 ; preds = %68
+ %938 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %939 = load i32* %i, align 4 ; [#uses=1]
+ %940 = lshr i32 %939, 23 ; [#uses=1]
+ %941 = and i32 %940, 511 ; [#uses=1]
+ %942 = getelementptr inbounds %struct.lua_TValue* %938, i32 %941 ; [#uses=1]
+ store %struct.lua_TValue* %942, %struct.lua_TValue** %rb43, align 4
+ %943 = load %struct.lua_TValue** %rb43, align 4 ; [#uses=1]
+ %944 = getelementptr inbounds %struct.lua_TValue* %943, i32 0, i32 1 ; [#uses=1]
+ %945 = load i32* %944, align 4 ; [#uses=1]
+ %946 = icmp eq i32 %945, 3 ; [#uses=1]
+ br i1 %946, label %947, label %960
+
+; <label>:947 ; preds = %937
+ %948 = load %struct.lua_TValue** %rb43, align 4 ; [#uses=1]
+ %949 = getelementptr inbounds %struct.lua_TValue* %948, i32 0, i32 0 ; [#uses=1]
+ %950 = getelementptr inbounds %union.anon* %949, i32 0, i32 0 ; [#uses=1]
+ %951 = load double* %950, align 4 ; [#uses=1]
+ store double %951, double* %nb44, align 8
+ %952 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %952, %struct.lua_TValue** %i_o45, align 4
+ %953 = load double* %nb44, align 8 ; [#uses=1]
+ %954 = fsub double -0.000000e+00, %953 ; [#uses=1]
+ %955 = load %struct.lua_TValue** %i_o45, align 4 ; [#uses=1]
+ %956 = getelementptr inbounds %struct.lua_TValue* %955, i32 0, i32 0 ; [#uses=1]
+ %957 = getelementptr inbounds %union.anon* %956, i32 0, i32 0 ; [#uses=1]
+ store double %954, double* %957, align 4
+ %958 = load %struct.lua_TValue** %i_o45, align 4 ; [#uses=1]
+ %959 = getelementptr inbounds %struct.lua_TValue* %958, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %959, align 4
+ br label %971
+
+; <label>:960 ; preds = %937
+ %961 = load i32** %pc, align 4 ; [#uses=1]
+ %962 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %963 = getelementptr inbounds %struct.lua_State* %962, i32 0, i32 8 ; [#uses=1]
+ store i32* %961, i32** %963, align 4
+ %964 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %965 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %966 = load %struct.lua_TValue** %rb43, align 4 ; [#uses=1]
+ %967 = load %struct.lua_TValue** %rb43, align 4 ; [#uses=1]
+ call void @_Z5ArithP9lua_StateP10lua_TValuePKS1_S4_3TMS(%struct.lua_State* %964, %struct.lua_TValue* %965, %struct.lua_TValue* %966, %struct.lua_TValue* %967, i32 11)
+ %968 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %969 = getelementptr inbounds %struct.lua_State* %968, i32 0, i32 5 ; [#uses=1]
+ %970 = load %struct.lua_TValue** %969, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %970, %struct.lua_TValue** %base, align 4
+ br label %971
+
+; <label>:971 ; preds = %960, %947
+ br label %28
+
+; <label>:972 ; preds = %68
+ %973 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %974 = load i32* %i, align 4 ; [#uses=1]
+ %975 = lshr i32 %974, 23 ; [#uses=1]
+ %976 = and i32 %975, 511 ; [#uses=1]
+ %977 = getelementptr inbounds %struct.lua_TValue* %973, i32 %976 ; [#uses=1]
+ %978 = getelementptr inbounds %struct.lua_TValue* %977, i32 0, i32 1 ; [#uses=1]
+ %979 = load i32* %978, align 4 ; [#uses=1]
+ %980 = icmp eq i32 %979, 0 ; [#uses=1]
+ br i1 %980, label %1003, label %981
+
+; <label>:981 ; preds = %972
+ %982 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %983 = load i32* %i, align 4 ; [#uses=1]
+ %984 = lshr i32 %983, 23 ; [#uses=1]
+ %985 = and i32 %984, 511 ; [#uses=1]
+ %986 = getelementptr inbounds %struct.lua_TValue* %982, i32 %985 ; [#uses=1]
+ %987 = getelementptr inbounds %struct.lua_TValue* %986, i32 0, i32 1 ; [#uses=1]
+ %988 = load i32* %987, align 4 ; [#uses=1]
+ %989 = icmp eq i32 %988, 1 ; [#uses=1]
+ br i1 %989, label %990, label %1001
+
+; <label>:990 ; preds = %981
+ %991 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %992 = load i32* %i, align 4 ; [#uses=1]
+ %993 = lshr i32 %992, 23 ; [#uses=1]
+ %994 = and i32 %993, 511 ; [#uses=1]
+ %995 = getelementptr inbounds %struct.lua_TValue* %991, i32 %994 ; [#uses=1]
+ %996 = getelementptr inbounds %struct.lua_TValue* %995, i32 0, i32 0 ; [#uses=1]
+ %997 = getelementptr inbounds %union.anon* %996, i32 0, i32 0 ; [#uses=1]
+ %998 = bitcast double* %997 to i32* ; [#uses=1]
+ %999 = load i32* %998, align 4 ; [#uses=1]
+ %1000 = icmp eq i32 %999, 0 ; [#uses=1]
+ br label %1001
+
+; <label>:1001 ; preds = %990, %981
+ %1002 = phi i1 [ false, %981 ], [ %1000, %990 ] ; [#uses=1]
+ br label %1003
+
+; <label>:1003 ; preds = %1001, %972
+ %1004 = phi i1 [ true, %972 ], [ %1002, %1001 ] ; [#uses=1]
+ %1005 = zext i1 %1004 to i32 ; [#uses=1]
+ store i32 %1005, i32* %res, align 4
+ %1006 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1006, %struct.lua_TValue** %i_o46, align 4
+ %1007 = load i32* %res, align 4 ; [#uses=1]
+ %1008 = load %struct.lua_TValue** %i_o46, align 4 ; [#uses=1]
+ %1009 = getelementptr inbounds %struct.lua_TValue* %1008, i32 0, i32 0 ; [#uses=1]
+ %1010 = getelementptr inbounds %union.anon* %1009, i32 0, i32 0 ; [#uses=1]
+ %1011 = bitcast double* %1010 to i32* ; [#uses=1]
+ store i32 %1007, i32* %1011, align 4
+ %1012 = load %struct.lua_TValue** %i_o46, align 4 ; [#uses=1]
+ %1013 = getelementptr inbounds %struct.lua_TValue* %1012, i32 0, i32 1 ; [#uses=1]
+ store i32 1, i32* %1013, align 4
+ br label %28
+
+; <label>:1014 ; preds = %68
+ %1015 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %1016 = load i32* %i, align 4 ; [#uses=1]
+ %1017 = lshr i32 %1016, 23 ; [#uses=1]
+ %1018 = and i32 %1017, 511 ; [#uses=1]
+ %1019 = getelementptr inbounds %struct.lua_TValue* %1015, i32 %1018 ; [#uses=1]
+ store %struct.lua_TValue* %1019, %struct.lua_TValue** %rb47, align 4
+ %1020 = load %struct.lua_TValue** %rb47, align 4 ; [#uses=1]
+ %1021 = getelementptr inbounds %struct.lua_TValue* %1020, i32 0, i32 1 ; [#uses=1]
+ %1022 = load i32* %1021, align 4 ; [#uses=1]
+ switch i32 %1022, label %1057 [
+ i32 5, label %1023
+ i32 4, label %1039
+ ]
+
+; <label>:1023 ; preds = %1014
+ %1024 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1024, %struct.lua_TValue** %i_o48, align 4
+ %1025 = load %struct.lua_TValue** %rb47, align 4 ; [#uses=1]
+ %1026 = getelementptr inbounds %struct.lua_TValue* %1025, i32 0, i32 0 ; [#uses=1]
+ %1027 = getelementptr inbounds %union.anon* %1026, i32 0, i32 0 ; [#uses=1]
+ %1028 = bitcast double* %1027 to %union.GCObject** ; [#uses=1]
+ %1029 = load %union.GCObject** %1028, align 4 ; [#uses=1]
+ %1030 = getelementptr inbounds %union.GCObject* %1029, i32 0, i32 0 ; [#uses=1]
+ %1031 = bitcast %struct.lua_State* %1030 to %struct.Table* ; [#uses=1]
+ %1032 = call i32 @_Z9luaH_getnP5Table(%struct.Table* %1031) ; [#uses=1]
+ %1033 = sitofp i32 %1032 to double ; [#uses=1]
+ %1034 = load %struct.lua_TValue** %i_o48, align 4 ; [#uses=1]
+ %1035 = getelementptr inbounds %struct.lua_TValue* %1034, i32 0, i32 0 ; [#uses=1]
+ %1036 = getelementptr inbounds %union.anon* %1035, i32 0, i32 0 ; [#uses=1]
+ store double %1033, double* %1036, align 4
+ %1037 = load %struct.lua_TValue** %i_o48, align 4 ; [#uses=1]
+ %1038 = getelementptr inbounds %struct.lua_TValue* %1037, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %1038, align 4
+ br label %1073
+
+; <label>:1039 ; preds = %1014
+ %1040 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1040, %struct.lua_TValue** %i_o49, align 4
+ %1041 = load %struct.lua_TValue** %rb47, align 4 ; [#uses=1]
+ %1042 = getelementptr inbounds %struct.lua_TValue* %1041, i32 0, i32 0 ; [#uses=1]
+ %1043 = getelementptr inbounds %union.anon* %1042, i32 0, i32 0 ; [#uses=1]
+ %1044 = bitcast double* %1043 to %union.GCObject** ; [#uses=1]
+ %1045 = load %union.GCObject** %1044, align 4 ; [#uses=1]
+ %1046 = getelementptr inbounds %union.GCObject* %1045, i32 0, i32 0 ; [#uses=1]
+ %1047 = bitcast %struct.lua_State* %1046 to %union.TString* ; [#uses=1]
+ %1048 = getelementptr inbounds %union.TString* %1047, i32 0, i32 0 ; [#uses=1]
+ %1049 = getelementptr inbounds %struct.anon* %1048, i32 0, i32 5 ; [#uses=1]
+ %1050 = load i32* %1049, align 4 ; [#uses=1]
+ %1051 = uitofp i32 %1050 to double ; [#uses=1]
+ %1052 = load %struct.lua_TValue** %i_o49, align 4 ; [#uses=1]
+ %1053 = getelementptr inbounds %struct.lua_TValue* %1052, i32 0, i32 0 ; [#uses=1]
+ %1054 = getelementptr inbounds %union.anon* %1053, i32 0, i32 0 ; [#uses=1]
+ store double %1051, double* %1054, align 4
+ %1055 = load %struct.lua_TValue** %i_o49, align 4 ; [#uses=1]
+ %1056 = getelementptr inbounds %struct.lua_TValue* %1055, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %1056, align 4
+ br label %1073
+
+; <label>:1057 ; preds = %1014
+ %1058 = load i32** %pc, align 4 ; [#uses=1]
+ %1059 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1060 = getelementptr inbounds %struct.lua_State* %1059, i32 0, i32 8 ; [#uses=1]
+ store i32* %1058, i32** %1060, align 4
+ %1061 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1062 = load %struct.lua_TValue** %rb47, align 4 ; [#uses=1]
+ %1063 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1064 = call i32 @_Z10call_binTMP9lua_StatePK10lua_TValueS3_PS1_3TMS(%struct.lua_State* %1061, %struct.lua_TValue* %1062, %struct.lua_TValue* bitcast (%7* @luaO_nilobject_ to %struct.lua_TValue*), %struct.lua_TValue* %1063, i32 12) ; [#uses=1]
+ %1065 = icmp ne i32 %1064, 0 ; [#uses=1]
+ br i1 %1065, label %1069, label %1066
+
+; <label>:1066 ; preds = %1057
+ %1067 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1068 = load %struct.lua_TValue** %rb47, align 4 ; [#uses=1]
+ call void @_Z14luaG_typeerrorP9lua_StatePK10lua_TValuePKc(%struct.lua_State* %1067, %struct.lua_TValue* %1068, i8* getelementptr inbounds ([14 x i8]* @.str5225, i32 0, i32 0))
+ br label %1069
+
+; <label>:1069 ; preds = %1066, %1057
+ %1070 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1071 = getelementptr inbounds %struct.lua_State* %1070, i32 0, i32 5 ; [#uses=1]
+ %1072 = load %struct.lua_TValue** %1071, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1072, %struct.lua_TValue** %base, align 4
+ br label %1073
+
+; <label>:1073 ; preds = %1069, %1039, %1023
+ br label %28
+
+; <label>:1074 ; preds = %68
+ %1075 = load i32* %i, align 4 ; [#uses=1]
+ %1076 = lshr i32 %1075, 23 ; [#uses=1]
+ %1077 = and i32 %1076, 511 ; [#uses=1]
+ store i32 %1077, i32* %b50, align 4
+ %1078 = load i32* %i, align 4 ; [#uses=1]
+ %1079 = lshr i32 %1078, 14 ; [#uses=1]
+ %1080 = and i32 %1079, 511 ; [#uses=1]
+ store i32 %1080, i32* %c51, align 4
+ %1081 = load i32** %pc, align 4 ; [#uses=1]
+ %1082 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1083 = getelementptr inbounds %struct.lua_State* %1082, i32 0, i32 8 ; [#uses=1]
+ store i32* %1081, i32** %1083, align 4
+ %1084 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1085 = load i32* %c51, align 4 ; [#uses=1]
+ %1086 = load i32* %b50, align 4 ; [#uses=1]
+ %1087 = sub nsw i32 %1085, %1086 ; [#uses=1]
+ %1088 = add nsw i32 %1087, 1 ; [#uses=1]
+ %1089 = load i32* %c51, align 4 ; [#uses=1]
+ call void @_Z11luaV_concatP9lua_Stateii(%struct.lua_State* %1084, i32 %1088, i32 %1089)
+ %1090 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1091 = getelementptr inbounds %struct.lua_State* %1090, i32 0, i32 6 ; [#uses=1]
+ %1092 = load %struct.global_State** %1091, align 4 ; [#uses=1]
+ %1093 = getelementptr inbounds %struct.global_State* %1092, i32 0, i32 14 ; [#uses=1]
+ %1094 = load i32* %1093, align 4 ; [#uses=1]
+ %1095 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1096 = getelementptr inbounds %struct.lua_State* %1095, i32 0, i32 6 ; [#uses=1]
+ %1097 = load %struct.global_State** %1096, align 4 ; [#uses=1]
+ %1098 = getelementptr inbounds %struct.global_State* %1097, i32 0, i32 13 ; [#uses=1]
+ %1099 = load i32* %1098, align 4 ; [#uses=1]
+ %1100 = icmp uge i32 %1094, %1099 ; [#uses=1]
+ br i1 %1100, label %1101, label %1103
+
+; <label>:1101 ; preds = %1074
+ %1102 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9luaC_stepP9lua_State(%struct.lua_State* %1102)
+ br label %1103
+
+; <label>:1103 ; preds = %1101, %1074
+ %1104 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1105 = getelementptr inbounds %struct.lua_State* %1104, i32 0, i32 5 ; [#uses=1]
+ %1106 = load %struct.lua_TValue** %1105, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1106, %struct.lua_TValue** %base, align 4
+ %1107 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %1108 = load i32* %b50, align 4 ; [#uses=1]
+ %1109 = getelementptr inbounds %struct.lua_TValue* %1107, i32 %1108 ; [#uses=1]
+ store %struct.lua_TValue* %1109, %struct.lua_TValue** %o252, align 4
+ %1110 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %1111 = load i32* %i, align 4 ; [#uses=1]
+ %1112 = lshr i32 %1111, 6 ; [#uses=1]
+ %1113 = and i32 %1112, 255 ; [#uses=1]
+ %1114 = getelementptr inbounds %struct.lua_TValue* %1110, i32 %1113 ; [#uses=1]
+ store %struct.lua_TValue* %1114, %struct.lua_TValue** %o153, align 4
+ %1115 = load %struct.lua_TValue** %o153, align 4 ; [#uses=1]
+ %1116 = getelementptr inbounds %struct.lua_TValue* %1115, i32 0, i32 0 ; [#uses=1]
+ %1117 = load %struct.lua_TValue** %o252, align 4 ; [#uses=1]
+ %1118 = getelementptr inbounds %struct.lua_TValue* %1117, i32 0, i32 0 ; [#uses=1]
+ %1119 = bitcast %union.anon* %1116 to i8* ; [#uses=1]
+ %1120 = bitcast %union.anon* %1118 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1119, i8* %1120, i32 8, i32 4, i1 false)
+ %1121 = load %struct.lua_TValue** %o252, align 4 ; [#uses=1]
+ %1122 = getelementptr inbounds %struct.lua_TValue* %1121, i32 0, i32 1 ; [#uses=1]
+ %1123 = load i32* %1122, align 4 ; [#uses=1]
+ %1124 = load %struct.lua_TValue** %o153, align 4 ; [#uses=1]
+ %1125 = getelementptr inbounds %struct.lua_TValue* %1124, i32 0, i32 1 ; [#uses=1]
+ store i32 %1123, i32* %1125, align 4
+ br label %28
+
+; <label>:1126 ; preds = %68
+ %1127 = load i32* %i, align 4 ; [#uses=1]
+ %1128 = lshr i32 %1127, 14 ; [#uses=1]
+ %1129 = and i32 %1128, 262143 ; [#uses=1]
+ %1130 = sub nsw i32 %1129, 131071 ; [#uses=1]
+ %1131 = load i32** %pc, align 4 ; [#uses=1]
+ %1132 = getelementptr inbounds i32* %1131, i32 %1130 ; [#uses=1]
+ store i32* %1132, i32** %pc, align 4
+ br label %28
+
+; <label>:1133 ; preds = %68
+ %1134 = load i32* %i, align 4 ; [#uses=1]
+ %1135 = lshr i32 %1134, 23 ; [#uses=1]
+ %1136 = and i32 %1135, 511 ; [#uses=1]
+ %1137 = and i32 %1136, 256 ; [#uses=1]
+ %1138 = icmp ne i32 %1137, 0 ; [#uses=1]
+ br i1 %1138, label %1139, label %1146
+
+; <label>:1139 ; preds = %1133
+ %1140 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %1141 = load i32* %i, align 4 ; [#uses=1]
+ %1142 = lshr i32 %1141, 23 ; [#uses=1]
+ %1143 = and i32 %1142, 511 ; [#uses=1]
+ %1144 = and i32 %1143, -257 ; [#uses=1]
+ %1145 = getelementptr inbounds %struct.lua_TValue* %1140, i32 %1144 ; [#uses=1]
+ br label %1152
+
+; <label>:1146 ; preds = %1133
+ %1147 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %1148 = load i32* %i, align 4 ; [#uses=1]
+ %1149 = lshr i32 %1148, 23 ; [#uses=1]
+ %1150 = and i32 %1149, 511 ; [#uses=1]
+ %1151 = getelementptr inbounds %struct.lua_TValue* %1147, i32 %1150 ; [#uses=1]
+ br label %1152
+
+; <label>:1152 ; preds = %1146, %1139
+ %1153 = phi %struct.lua_TValue* [ %1145, %1139 ], [ %1151, %1146 ] ; [#uses=1]
+ store %struct.lua_TValue* %1153, %struct.lua_TValue** %rb54, align 4
+ %1154 = load i32* %i, align 4 ; [#uses=1]
+ %1155 = lshr i32 %1154, 14 ; [#uses=1]
+ %1156 = and i32 %1155, 511 ; [#uses=1]
+ %1157 = and i32 %1156, 256 ; [#uses=1]
+ %1158 = icmp ne i32 %1157, 0 ; [#uses=1]
+ br i1 %1158, label %1159, label %1166
+
+; <label>:1159 ; preds = %1152
+ %1160 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %1161 = load i32* %i, align 4 ; [#uses=1]
+ %1162 = lshr i32 %1161, 14 ; [#uses=1]
+ %1163 = and i32 %1162, 511 ; [#uses=1]
+ %1164 = and i32 %1163, -257 ; [#uses=1]
+ %1165 = getelementptr inbounds %struct.lua_TValue* %1160, i32 %1164 ; [#uses=1]
+ br label %1172
+
+; <label>:1166 ; preds = %1152
+ %1167 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %1168 = load i32* %i, align 4 ; [#uses=1]
+ %1169 = lshr i32 %1168, 14 ; [#uses=1]
+ %1170 = and i32 %1169, 511 ; [#uses=1]
+ %1171 = getelementptr inbounds %struct.lua_TValue* %1167, i32 %1170 ; [#uses=1]
+ br label %1172
+
+; <label>:1172 ; preds = %1166, %1159
+ %1173 = phi %struct.lua_TValue* [ %1165, %1159 ], [ %1171, %1166 ] ; [#uses=1]
+ store %struct.lua_TValue* %1173, %struct.lua_TValue** %rc55, align 4
+ %1174 = load i32** %pc, align 4 ; [#uses=1]
+ %1175 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1176 = getelementptr inbounds %struct.lua_State* %1175, i32 0, i32 8 ; [#uses=1]
+ store i32* %1174, i32** %1176, align 4
+ %1177 = load %struct.lua_TValue** %rb54, align 4 ; [#uses=1]
+ %1178 = getelementptr inbounds %struct.lua_TValue* %1177, i32 0, i32 1 ; [#uses=1]
+ %1179 = load i32* %1178, align 4 ; [#uses=1]
+ %1180 = load %struct.lua_TValue** %rc55, align 4 ; [#uses=1]
+ %1181 = getelementptr inbounds %struct.lua_TValue* %1180, i32 0, i32 1 ; [#uses=1]
+ %1182 = load i32* %1181, align 4 ; [#uses=1]
+ %1183 = icmp eq i32 %1179, %1182 ; [#uses=1]
+ br i1 %1183, label %1184, label %1190
+
+; <label>:1184 ; preds = %1172
+ %1185 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1186 = load %struct.lua_TValue** %rb54, align 4 ; [#uses=1]
+ %1187 = load %struct.lua_TValue** %rc55, align 4 ; [#uses=1]
+ %1188 = call i32 @_Z13luaV_equalvalP9lua_StatePK10lua_TValueS3_(%struct.lua_State* %1185, %struct.lua_TValue* %1186, %struct.lua_TValue* %1187) ; [#uses=1]
+ %1189 = icmp ne i32 %1188, 0 ; [#uses=1]
+ br label %1190
+
+; <label>:1190 ; preds = %1184, %1172
+ %1191 = phi i1 [ false, %1172 ], [ %1189, %1184 ] ; [#uses=1]
+ %1192 = zext i1 %1191 to i32 ; [#uses=1]
+ %1193 = load i32* %i, align 4 ; [#uses=1]
+ %1194 = lshr i32 %1193, 6 ; [#uses=1]
+ %1195 = and i32 %1194, 255 ; [#uses=1]
+ %1196 = icmp eq i32 %1192, %1195 ; [#uses=1]
+ br i1 %1196, label %1197, label %1205
+
+; <label>:1197 ; preds = %1190
+ %1198 = load i32** %pc, align 4 ; [#uses=1]
+ %1199 = load i32* %1198 ; [#uses=1]
+ %1200 = lshr i32 %1199, 14 ; [#uses=1]
+ %1201 = and i32 %1200, 262143 ; [#uses=1]
+ %1202 = sub nsw i32 %1201, 131071 ; [#uses=1]
+ %1203 = load i32** %pc, align 4 ; [#uses=1]
+ %1204 = getelementptr inbounds i32* %1203, i32 %1202 ; [#uses=1]
+ store i32* %1204, i32** %pc, align 4
+ br label %1205
+
+; <label>:1205 ; preds = %1197, %1190
+ %1206 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1207 = getelementptr inbounds %struct.lua_State* %1206, i32 0, i32 5 ; [#uses=1]
+ %1208 = load %struct.lua_TValue** %1207, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1208, %struct.lua_TValue** %base, align 4
+ %1209 = load i32** %pc, align 4 ; [#uses=1]
+ %1210 = getelementptr inbounds i32* %1209, i32 1 ; [#uses=1]
+ store i32* %1210, i32** %pc, align 4
+ br label %28
+
+; <label>:1211 ; preds = %68
+ %1212 = load i32** %pc, align 4 ; [#uses=1]
+ %1213 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1214 = getelementptr inbounds %struct.lua_State* %1213, i32 0, i32 8 ; [#uses=1]
+ store i32* %1212, i32** %1214, align 4
+ %1215 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1216 = load i32* %i, align 4 ; [#uses=1]
+ %1217 = lshr i32 %1216, 23 ; [#uses=1]
+ %1218 = and i32 %1217, 511 ; [#uses=1]
+ %1219 = and i32 %1218, 256 ; [#uses=1]
+ %1220 = icmp ne i32 %1219, 0 ; [#uses=1]
+ br i1 %1220, label %1221, label %1228
+
+; <label>:1221 ; preds = %1211
+ %1222 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %1223 = load i32* %i, align 4 ; [#uses=1]
+ %1224 = lshr i32 %1223, 23 ; [#uses=1]
+ %1225 = and i32 %1224, 511 ; [#uses=1]
+ %1226 = and i32 %1225, -257 ; [#uses=1]
+ %1227 = getelementptr inbounds %struct.lua_TValue* %1222, i32 %1226 ; [#uses=1]
+ br label %1234
+
+; <label>:1228 ; preds = %1211
+ %1229 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %1230 = load i32* %i, align 4 ; [#uses=1]
+ %1231 = lshr i32 %1230, 23 ; [#uses=1]
+ %1232 = and i32 %1231, 511 ; [#uses=1]
+ %1233 = getelementptr inbounds %struct.lua_TValue* %1229, i32 %1232 ; [#uses=1]
+ br label %1234
+
+; <label>:1234 ; preds = %1228, %1221
+ %1235 = phi %struct.lua_TValue* [ %1227, %1221 ], [ %1233, %1228 ] ; [#uses=1]
+ %1236 = load i32* %i, align 4 ; [#uses=1]
+ %1237 = lshr i32 %1236, 14 ; [#uses=1]
+ %1238 = and i32 %1237, 511 ; [#uses=1]
+ %1239 = and i32 %1238, 256 ; [#uses=1]
+ %1240 = icmp ne i32 %1239, 0 ; [#uses=1]
+ br i1 %1240, label %1241, label %1248
+
+; <label>:1241 ; preds = %1234
+ %1242 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %1243 = load i32* %i, align 4 ; [#uses=1]
+ %1244 = lshr i32 %1243, 14 ; [#uses=1]
+ %1245 = and i32 %1244, 511 ; [#uses=1]
+ %1246 = and i32 %1245, -257 ; [#uses=1]
+ %1247 = getelementptr inbounds %struct.lua_TValue* %1242, i32 %1246 ; [#uses=1]
+ br label %1254
+
+; <label>:1248 ; preds = %1234
+ %1249 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %1250 = load i32* %i, align 4 ; [#uses=1]
+ %1251 = lshr i32 %1250, 14 ; [#uses=1]
+ %1252 = and i32 %1251, 511 ; [#uses=1]
+ %1253 = getelementptr inbounds %struct.lua_TValue* %1249, i32 %1252 ; [#uses=1]
+ br label %1254
+
+; <label>:1254 ; preds = %1248, %1241
+ %1255 = phi %struct.lua_TValue* [ %1247, %1241 ], [ %1253, %1248 ] ; [#uses=1]
+ %1256 = call i32 @_Z13luaV_lessthanP9lua_StatePK10lua_TValueS3_(%struct.lua_State* %1215, %struct.lua_TValue* %1235, %struct.lua_TValue* %1255) ; [#uses=1]
+ %1257 = load i32* %i, align 4 ; [#uses=1]
+ %1258 = lshr i32 %1257, 6 ; [#uses=1]
+ %1259 = and i32 %1258, 255 ; [#uses=1]
+ %1260 = icmp eq i32 %1256, %1259 ; [#uses=1]
+ br i1 %1260, label %1261, label %1269
+
+; <label>:1261 ; preds = %1254
+ %1262 = load i32** %pc, align 4 ; [#uses=1]
+ %1263 = load i32* %1262 ; [#uses=1]
+ %1264 = lshr i32 %1263, 14 ; [#uses=1]
+ %1265 = and i32 %1264, 262143 ; [#uses=1]
+ %1266 = sub nsw i32 %1265, 131071 ; [#uses=1]
+ %1267 = load i32** %pc, align 4 ; [#uses=1]
+ %1268 = getelementptr inbounds i32* %1267, i32 %1266 ; [#uses=1]
+ store i32* %1268, i32** %pc, align 4
+ br label %1269
+
+; <label>:1269 ; preds = %1261, %1254
+ %1270 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1271 = getelementptr inbounds %struct.lua_State* %1270, i32 0, i32 5 ; [#uses=1]
+ %1272 = load %struct.lua_TValue** %1271, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1272, %struct.lua_TValue** %base, align 4
+ %1273 = load i32** %pc, align 4 ; [#uses=1]
+ %1274 = getelementptr inbounds i32* %1273, i32 1 ; [#uses=1]
+ store i32* %1274, i32** %pc, align 4
+ br label %28
+
+; <label>:1275 ; preds = %68
+ %1276 = load i32** %pc, align 4 ; [#uses=1]
+ %1277 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1278 = getelementptr inbounds %struct.lua_State* %1277, i32 0, i32 8 ; [#uses=1]
+ store i32* %1276, i32** %1278, align 4
+ %1279 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1280 = load i32* %i, align 4 ; [#uses=1]
+ %1281 = lshr i32 %1280, 23 ; [#uses=1]
+ %1282 = and i32 %1281, 511 ; [#uses=1]
+ %1283 = and i32 %1282, 256 ; [#uses=1]
+ %1284 = icmp ne i32 %1283, 0 ; [#uses=1]
+ br i1 %1284, label %1285, label %1292
+
+; <label>:1285 ; preds = %1275
+ %1286 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %1287 = load i32* %i, align 4 ; [#uses=1]
+ %1288 = lshr i32 %1287, 23 ; [#uses=1]
+ %1289 = and i32 %1288, 511 ; [#uses=1]
+ %1290 = and i32 %1289, -257 ; [#uses=1]
+ %1291 = getelementptr inbounds %struct.lua_TValue* %1286, i32 %1290 ; [#uses=1]
+ br label %1298
+
+; <label>:1292 ; preds = %1275
+ %1293 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %1294 = load i32* %i, align 4 ; [#uses=1]
+ %1295 = lshr i32 %1294, 23 ; [#uses=1]
+ %1296 = and i32 %1295, 511 ; [#uses=1]
+ %1297 = getelementptr inbounds %struct.lua_TValue* %1293, i32 %1296 ; [#uses=1]
+ br label %1298
+
+; <label>:1298 ; preds = %1292, %1285
+ %1299 = phi %struct.lua_TValue* [ %1291, %1285 ], [ %1297, %1292 ] ; [#uses=1]
+ %1300 = load i32* %i, align 4 ; [#uses=1]
+ %1301 = lshr i32 %1300, 14 ; [#uses=1]
+ %1302 = and i32 %1301, 511 ; [#uses=1]
+ %1303 = and i32 %1302, 256 ; [#uses=1]
+ %1304 = icmp ne i32 %1303, 0 ; [#uses=1]
+ br i1 %1304, label %1305, label %1312
+
+; <label>:1305 ; preds = %1298
+ %1306 = load %struct.lua_TValue** %k, align 4 ; [#uses=1]
+ %1307 = load i32* %i, align 4 ; [#uses=1]
+ %1308 = lshr i32 %1307, 14 ; [#uses=1]
+ %1309 = and i32 %1308, 511 ; [#uses=1]
+ %1310 = and i32 %1309, -257 ; [#uses=1]
+ %1311 = getelementptr inbounds %struct.lua_TValue* %1306, i32 %1310 ; [#uses=1]
+ br label %1318
+
+; <label>:1312 ; preds = %1298
+ %1313 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %1314 = load i32* %i, align 4 ; [#uses=1]
+ %1315 = lshr i32 %1314, 14 ; [#uses=1]
+ %1316 = and i32 %1315, 511 ; [#uses=1]
+ %1317 = getelementptr inbounds %struct.lua_TValue* %1313, i32 %1316 ; [#uses=1]
+ br label %1318
+
+; <label>:1318 ; preds = %1312, %1305
+ %1319 = phi %struct.lua_TValue* [ %1311, %1305 ], [ %1317, %1312 ] ; [#uses=1]
+ %1320 = call i32 @_Z9lessequalP9lua_StatePK10lua_TValueS3_(%struct.lua_State* %1279, %struct.lua_TValue* %1299, %struct.lua_TValue* %1319) ; [#uses=1]
+ %1321 = load i32* %i, align 4 ; [#uses=1]
+ %1322 = lshr i32 %1321, 6 ; [#uses=1]
+ %1323 = and i32 %1322, 255 ; [#uses=1]
+ %1324 = icmp eq i32 %1320, %1323 ; [#uses=1]
+ br i1 %1324, label %1325, label %1333
+
+; <label>:1325 ; preds = %1318
+ %1326 = load i32** %pc, align 4 ; [#uses=1]
+ %1327 = load i32* %1326 ; [#uses=1]
+ %1328 = lshr i32 %1327, 14 ; [#uses=1]
+ %1329 = and i32 %1328, 262143 ; [#uses=1]
+ %1330 = sub nsw i32 %1329, 131071 ; [#uses=1]
+ %1331 = load i32** %pc, align 4 ; [#uses=1]
+ %1332 = getelementptr inbounds i32* %1331, i32 %1330 ; [#uses=1]
+ store i32* %1332, i32** %pc, align 4
+ br label %1333
+
+; <label>:1333 ; preds = %1325, %1318
+ %1334 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1335 = getelementptr inbounds %struct.lua_State* %1334, i32 0, i32 5 ; [#uses=1]
+ %1336 = load %struct.lua_TValue** %1335, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1336, %struct.lua_TValue** %base, align 4
+ %1337 = load i32** %pc, align 4 ; [#uses=1]
+ %1338 = getelementptr inbounds i32* %1337, i32 1 ; [#uses=1]
+ store i32* %1338, i32** %pc, align 4
+ br label %28
+
+; <label>:1339 ; preds = %68
+ %1340 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1341 = getelementptr inbounds %struct.lua_TValue* %1340, i32 0, i32 1 ; [#uses=1]
+ %1342 = load i32* %1341, align 4 ; [#uses=1]
+ %1343 = icmp eq i32 %1342, 0 ; [#uses=1]
+ br i1 %1343, label %1358, label %1344
+
+; <label>:1344 ; preds = %1339
+ %1345 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1346 = getelementptr inbounds %struct.lua_TValue* %1345, i32 0, i32 1 ; [#uses=1]
+ %1347 = load i32* %1346, align 4 ; [#uses=1]
+ %1348 = icmp eq i32 %1347, 1 ; [#uses=1]
+ br i1 %1348, label %1349, label %1356
+
+; <label>:1349 ; preds = %1344
+ %1350 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1351 = getelementptr inbounds %struct.lua_TValue* %1350, i32 0, i32 0 ; [#uses=1]
+ %1352 = getelementptr inbounds %union.anon* %1351, i32 0, i32 0 ; [#uses=1]
+ %1353 = bitcast double* %1352 to i32* ; [#uses=1]
+ %1354 = load i32* %1353, align 4 ; [#uses=1]
+ %1355 = icmp eq i32 %1354, 0 ; [#uses=1]
+ br label %1356
+
+; <label>:1356 ; preds = %1349, %1344
+ %1357 = phi i1 [ false, %1344 ], [ %1355, %1349 ] ; [#uses=1]
+ br label %1358
+
+; <label>:1358 ; preds = %1356, %1339
+ %1359 = phi i1 [ true, %1339 ], [ %1357, %1356 ] ; [#uses=1]
+ %1360 = zext i1 %1359 to i32 ; [#uses=1]
+ %1361 = load i32* %i, align 4 ; [#uses=1]
+ %1362 = lshr i32 %1361, 14 ; [#uses=1]
+ %1363 = and i32 %1362, 511 ; [#uses=1]
+ %1364 = icmp ne i32 %1360, %1363 ; [#uses=1]
+ br i1 %1364, label %1365, label %1373
+
+; <label>:1365 ; preds = %1358
+ %1366 = load i32** %pc, align 4 ; [#uses=1]
+ %1367 = load i32* %1366 ; [#uses=1]
+ %1368 = lshr i32 %1367, 14 ; [#uses=1]
+ %1369 = and i32 %1368, 262143 ; [#uses=1]
+ %1370 = sub nsw i32 %1369, 131071 ; [#uses=1]
+ %1371 = load i32** %pc, align 4 ; [#uses=1]
+ %1372 = getelementptr inbounds i32* %1371, i32 %1370 ; [#uses=1]
+ store i32* %1372, i32** %pc, align 4
+ br label %1373
+
+; <label>:1373 ; preds = %1365, %1358
+ %1374 = load i32** %pc, align 4 ; [#uses=1]
+ %1375 = getelementptr inbounds i32* %1374, i32 1 ; [#uses=1]
+ store i32* %1375, i32** %pc, align 4
+ br label %28
+
+; <label>:1376 ; preds = %68
+ %1377 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %1378 = load i32* %i, align 4 ; [#uses=1]
+ %1379 = lshr i32 %1378, 23 ; [#uses=1]
+ %1380 = and i32 %1379, 511 ; [#uses=1]
+ %1381 = getelementptr inbounds %struct.lua_TValue* %1377, i32 %1380 ; [#uses=1]
+ store %struct.lua_TValue* %1381, %struct.lua_TValue** %rb56, align 4
+ %1382 = load %struct.lua_TValue** %rb56, align 4 ; [#uses=1]
+ %1383 = getelementptr inbounds %struct.lua_TValue* %1382, i32 0, i32 1 ; [#uses=1]
+ %1384 = load i32* %1383, align 4 ; [#uses=1]
+ %1385 = icmp eq i32 %1384, 0 ; [#uses=1]
+ br i1 %1385, label %1400, label %1386
+
+; <label>:1386 ; preds = %1376
+ %1387 = load %struct.lua_TValue** %rb56, align 4 ; [#uses=1]
+ %1388 = getelementptr inbounds %struct.lua_TValue* %1387, i32 0, i32 1 ; [#uses=1]
+ %1389 = load i32* %1388, align 4 ; [#uses=1]
+ %1390 = icmp eq i32 %1389, 1 ; [#uses=1]
+ br i1 %1390, label %1391, label %1398
+
+; <label>:1391 ; preds = %1386
+ %1392 = load %struct.lua_TValue** %rb56, align 4 ; [#uses=1]
+ %1393 = getelementptr inbounds %struct.lua_TValue* %1392, i32 0, i32 0 ; [#uses=1]
+ %1394 = getelementptr inbounds %union.anon* %1393, i32 0, i32 0 ; [#uses=1]
+ %1395 = bitcast double* %1394 to i32* ; [#uses=1]
+ %1396 = load i32* %1395, align 4 ; [#uses=1]
+ %1397 = icmp eq i32 %1396, 0 ; [#uses=1]
+ br label %1398
+
+; <label>:1398 ; preds = %1391, %1386
+ %1399 = phi i1 [ false, %1386 ], [ %1397, %1391 ] ; [#uses=1]
+ br label %1400
+
+; <label>:1400 ; preds = %1398, %1376
+ %1401 = phi i1 [ true, %1376 ], [ %1399, %1398 ] ; [#uses=1]
+ %1402 = zext i1 %1401 to i32 ; [#uses=1]
+ %1403 = load i32* %i, align 4 ; [#uses=1]
+ %1404 = lshr i32 %1403, 14 ; [#uses=1]
+ %1405 = and i32 %1404, 511 ; [#uses=1]
+ %1406 = icmp ne i32 %1402, %1405 ; [#uses=1]
+ br i1 %1406, label %1407, label %1428
+
+; <label>:1407 ; preds = %1400
+ %1408 = load %struct.lua_TValue** %rb56, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1408, %struct.lua_TValue** %o257, align 4
+ %1409 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1409, %struct.lua_TValue** %o158, align 4
+ %1410 = load %struct.lua_TValue** %o158, align 4 ; [#uses=1]
+ %1411 = getelementptr inbounds %struct.lua_TValue* %1410, i32 0, i32 0 ; [#uses=1]
+ %1412 = load %struct.lua_TValue** %o257, align 4 ; [#uses=1]
+ %1413 = getelementptr inbounds %struct.lua_TValue* %1412, i32 0, i32 0 ; [#uses=1]
+ %1414 = bitcast %union.anon* %1411 to i8* ; [#uses=1]
+ %1415 = bitcast %union.anon* %1413 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1414, i8* %1415, i32 8, i32 4, i1 false)
+ %1416 = load %struct.lua_TValue** %o257, align 4 ; [#uses=1]
+ %1417 = getelementptr inbounds %struct.lua_TValue* %1416, i32 0, i32 1 ; [#uses=1]
+ %1418 = load i32* %1417, align 4 ; [#uses=1]
+ %1419 = load %struct.lua_TValue** %o158, align 4 ; [#uses=1]
+ %1420 = getelementptr inbounds %struct.lua_TValue* %1419, i32 0, i32 1 ; [#uses=1]
+ store i32 %1418, i32* %1420, align 4
+ %1421 = load i32** %pc, align 4 ; [#uses=1]
+ %1422 = load i32* %1421 ; [#uses=1]
+ %1423 = lshr i32 %1422, 14 ; [#uses=1]
+ %1424 = and i32 %1423, 262143 ; [#uses=1]
+ %1425 = sub nsw i32 %1424, 131071 ; [#uses=1]
+ %1426 = load i32** %pc, align 4 ; [#uses=1]
+ %1427 = getelementptr inbounds i32* %1426, i32 %1425 ; [#uses=1]
+ store i32* %1427, i32** %pc, align 4
+ br label %1428
+
+; <label>:1428 ; preds = %1407, %1400
+ %1429 = load i32** %pc, align 4 ; [#uses=1]
+ %1430 = getelementptr inbounds i32* %1429, i32 1 ; [#uses=1]
+ store i32* %1430, i32** %pc, align 4
+ br label %28
+
+; <label>:1431 ; preds = %68
+ %1432 = load i32* %i, align 4 ; [#uses=1]
+ %1433 = lshr i32 %1432, 23 ; [#uses=1]
+ %1434 = and i32 %1433, 511 ; [#uses=1]
+ store i32 %1434, i32* %b59, align 4
+ %1435 = load i32* %i, align 4 ; [#uses=1]
+ %1436 = lshr i32 %1435, 14 ; [#uses=1]
+ %1437 = and i32 %1436, 511 ; [#uses=1]
+ %1438 = sub nsw i32 %1437, 1 ; [#uses=1]
+ store i32 %1438, i32* %nresults, align 4
+ %1439 = load i32* %b59, align 4 ; [#uses=1]
+ %1440 = icmp ne i32 %1439, 0 ; [#uses=1]
+ br i1 %1440, label %1441, label %1447
+
+; <label>:1441 ; preds = %1431
+ %1442 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1443 = load i32* %b59, align 4 ; [#uses=1]
+ %1444 = getelementptr inbounds %struct.lua_TValue* %1442, i32 %1443 ; [#uses=1]
+ %1445 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1446 = getelementptr inbounds %struct.lua_State* %1445, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %1444, %struct.lua_TValue** %1446, align 4
+ br label %1447
+
+; <label>:1447 ; preds = %1441, %1431
+ %1448 = load i32** %pc, align 4 ; [#uses=1]
+ %1449 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1450 = getelementptr inbounds %struct.lua_State* %1449, i32 0, i32 8 ; [#uses=1]
+ store i32* %1448, i32** %1450, align 4
+ %1451 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1452 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1453 = load i32* %nresults, align 4 ; [#uses=1]
+ %1454 = call i32 @_Z12luaD_precallP9lua_StateP10lua_TValuei(%struct.lua_State* %1451, %struct.lua_TValue* %1452, i32 %1453) ; [#uses=1]
+ switch i32 %1454, label %1473 [
+ i32 0, label %1455
+ i32 1, label %1458
+ ]
+
+; <label>:1455 ; preds = %1447
+ %1456 = load i32* %2, align 4 ; [#uses=1]
+ %1457 = add nsw i32 %1456, 1 ; [#uses=1]
+ store i32 %1457, i32* %2, align 4
+ br label %3
+
+; <label>:1458 ; preds = %1447
+ %1459 = load i32* %nresults, align 4 ; [#uses=1]
+ %1460 = icmp sge i32 %1459, 0 ; [#uses=1]
+ br i1 %1460, label %1461, label %1469
+
+; <label>:1461 ; preds = %1458
+ %1462 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1463 = getelementptr inbounds %struct.lua_State* %1462, i32 0, i32 7 ; [#uses=1]
+ %1464 = load %struct.CallInfo** %1463, align 4 ; [#uses=1]
+ %1465 = getelementptr inbounds %struct.CallInfo* %1464, i32 0, i32 2 ; [#uses=1]
+ %1466 = load %struct.lua_TValue** %1465, align 4 ; [#uses=1]
+ %1467 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1468 = getelementptr inbounds %struct.lua_State* %1467, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %1466, %struct.lua_TValue** %1468, align 4
+ br label %1469
+
+; <label>:1469 ; preds = %1461, %1458
+ %1470 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1471 = getelementptr inbounds %struct.lua_State* %1470, i32 0, i32 5 ; [#uses=1]
+ %1472 = load %struct.lua_TValue** %1471, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1472, %struct.lua_TValue** %base, align 4
+ br label %28
+
+; <label>:1473 ; preds = %1447
+ br label %2188
+
+; <label>:1474 ; preds = %68
+ %1475 = load i32* %i, align 4 ; [#uses=1]
+ %1476 = lshr i32 %1475, 23 ; [#uses=1]
+ %1477 = and i32 %1476, 511 ; [#uses=1]
+ store i32 %1477, i32* %b60, align 4
+ %1478 = load i32* %b60, align 4 ; [#uses=1]
+ %1479 = icmp ne i32 %1478, 0 ; [#uses=1]
+ br i1 %1479, label %1480, label %1486
+
+; <label>:1480 ; preds = %1474
+ %1481 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1482 = load i32* %b60, align 4 ; [#uses=1]
+ %1483 = getelementptr inbounds %struct.lua_TValue* %1481, i32 %1482 ; [#uses=1]
+ %1484 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1485 = getelementptr inbounds %struct.lua_State* %1484, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %1483, %struct.lua_TValue** %1485, align 4
+ br label %1486
+
+; <label>:1486 ; preds = %1480, %1474
+ %1487 = load i32** %pc, align 4 ; [#uses=1]
+ %1488 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1489 = getelementptr inbounds %struct.lua_State* %1488, i32 0, i32 8 ; [#uses=1]
+ store i32* %1487, i32** %1489, align 4
+ %1490 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1491 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1492 = call i32 @_Z12luaD_precallP9lua_StateP10lua_TValuei(%struct.lua_State* %1490, %struct.lua_TValue* %1491, i32 -1) ; [#uses=1]
+ switch i32 %1492, label %1586 [
+ i32 0, label %1493
+ i32 1, label %1582
+ ]
+
+; <label>:1493 ; preds = %1486
+ %1494 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1495 = getelementptr inbounds %struct.lua_State* %1494, i32 0, i32 7 ; [#uses=1]
+ %1496 = load %struct.CallInfo** %1495, align 4 ; [#uses=1]
+ %1497 = getelementptr inbounds %struct.CallInfo* %1496, i32 -1 ; [#uses=1]
+ store %struct.CallInfo* %1497, %struct.CallInfo** %ci, align 4
+ %1498 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %1499 = getelementptr inbounds %struct.CallInfo* %1498, i32 0, i32 1 ; [#uses=1]
+ %1500 = load %struct.lua_TValue** %1499, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1500, %struct.lua_TValue** %func, align 4
+ %1501 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %1502 = getelementptr inbounds %struct.CallInfo* %1501, i32 1 ; [#uses=1]
+ %1503 = getelementptr inbounds %struct.CallInfo* %1502, i32 0, i32 1 ; [#uses=1]
+ %1504 = load %struct.lua_TValue** %1503, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1504, %struct.lua_TValue** %pfunc, align 4
+ %1505 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1506 = getelementptr inbounds %struct.lua_State* %1505, i32 0, i32 24 ; [#uses=1]
+ %1507 = load %union.GCObject** %1506, align 4 ; [#uses=1]
+ %1508 = icmp ne %union.GCObject* %1507, null ; [#uses=1]
+ br i1 %1508, label %1509, label %1514
+
+; <label>:1509 ; preds = %1493
+ %1510 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1511 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %1512 = getelementptr inbounds %struct.CallInfo* %1511, i32 0, i32 0 ; [#uses=1]
+ %1513 = load %struct.lua_TValue** %1512, align 4 ; [#uses=1]
+ call void @_Z10luaF_closeP9lua_StateP10lua_TValue(%struct.lua_State* %1510, %struct.lua_TValue* %1513)
+ br label %1514
+
+; <label>:1514 ; preds = %1509, %1493
+ %1515 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %1516 = getelementptr inbounds %struct.CallInfo* %1515, i32 0, i32 1 ; [#uses=1]
+ %1517 = load %struct.lua_TValue** %1516, align 4 ; [#uses=1]
+ %1518 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %1519 = getelementptr inbounds %struct.CallInfo* %1518, i32 1 ; [#uses=1]
+ %1520 = getelementptr inbounds %struct.CallInfo* %1519, i32 0, i32 0 ; [#uses=1]
+ %1521 = load %struct.lua_TValue** %1520, align 4 ; [#uses=1]
+ %1522 = load %struct.lua_TValue** %pfunc, align 4 ; [#uses=1]
+ %1523 = ptrtoint %struct.lua_TValue* %1521 to i32 ; [#uses=1]
+ %1524 = ptrtoint %struct.lua_TValue* %1522 to i32 ; [#uses=1]
+ %1525 = sub i32 %1523, %1524 ; [#uses=1]
+ %1526 = sdiv exact i32 %1525, 12 ; [#uses=1]
+ %1527 = getelementptr inbounds %struct.lua_TValue* %1517, i32 %1526 ; [#uses=2]
+ %1528 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %1529 = getelementptr inbounds %struct.CallInfo* %1528, i32 0, i32 0 ; [#uses=1]
+ store %struct.lua_TValue* %1527, %struct.lua_TValue** %1529, align 4
+ %1530 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1531 = getelementptr inbounds %struct.lua_State* %1530, i32 0, i32 5 ; [#uses=1]
+ store %struct.lua_TValue* %1527, %struct.lua_TValue** %1531, align 4
+ store i32 0, i32* %aux, align 4
+ br label %1532
+
+; <label>:1532 ; preds = %1558, %1514
+ %1533 = load %struct.lua_TValue** %pfunc, align 4 ; [#uses=1]
+ %1534 = load i32* %aux, align 4 ; [#uses=1]
+ %1535 = getelementptr inbounds %struct.lua_TValue* %1533, i32 %1534 ; [#uses=1]
+ %1536 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1537 = getelementptr inbounds %struct.lua_State* %1536, i32 0, i32 4 ; [#uses=1]
+ %1538 = load %struct.lua_TValue** %1537, align 4 ; [#uses=1]
+ %1539 = icmp ult %struct.lua_TValue* %1535, %1538 ; [#uses=1]
+ br i1 %1539, label %1540, label %1561
+
+; <label>:1540 ; preds = %1532
+ %1541 = load %struct.lua_TValue** %pfunc, align 4 ; [#uses=1]
+ %1542 = load i32* %aux, align 4 ; [#uses=1]
+ %1543 = getelementptr inbounds %struct.lua_TValue* %1541, i32 %1542 ; [#uses=1]
+ store %struct.lua_TValue* %1543, %struct.lua_TValue** %o261, align 4
+ %1544 = load %struct.lua_TValue** %func, align 4 ; [#uses=1]
+ %1545 = load i32* %aux, align 4 ; [#uses=1]
+ %1546 = getelementptr inbounds %struct.lua_TValue* %1544, i32 %1545 ; [#uses=1]
+ store %struct.lua_TValue* %1546, %struct.lua_TValue** %o162, align 4
+ %1547 = load %struct.lua_TValue** %o162, align 4 ; [#uses=1]
+ %1548 = getelementptr inbounds %struct.lua_TValue* %1547, i32 0, i32 0 ; [#uses=1]
+ %1549 = load %struct.lua_TValue** %o261, align 4 ; [#uses=1]
+ %1550 = getelementptr inbounds %struct.lua_TValue* %1549, i32 0, i32 0 ; [#uses=1]
+ %1551 = bitcast %union.anon* %1548 to i8* ; [#uses=1]
+ %1552 = bitcast %union.anon* %1550 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1551, i8* %1552, i32 8, i32 4, i1 false)
+ %1553 = load %struct.lua_TValue** %o261, align 4 ; [#uses=1]
+ %1554 = getelementptr inbounds %struct.lua_TValue* %1553, i32 0, i32 1 ; [#uses=1]
+ %1555 = load i32* %1554, align 4 ; [#uses=1]
+ %1556 = load %struct.lua_TValue** %o162, align 4 ; [#uses=1]
+ %1557 = getelementptr inbounds %struct.lua_TValue* %1556, i32 0, i32 1 ; [#uses=1]
+ store i32 %1555, i32* %1557, align 4
+ br label %1558
+
+; <label>:1558 ; preds = %1540
+ %1559 = load i32* %aux, align 4 ; [#uses=1]
+ %1560 = add nsw i32 %1559, 1 ; [#uses=1]
+ store i32 %1560, i32* %aux, align 4
+ br label %1532
+
+; <label>:1561 ; preds = %1532
+ %1562 = load %struct.lua_TValue** %func, align 4 ; [#uses=1]
+ %1563 = load i32* %aux, align 4 ; [#uses=1]
+ %1564 = getelementptr inbounds %struct.lua_TValue* %1562, i32 %1563 ; [#uses=2]
+ %1565 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1566 = getelementptr inbounds %struct.lua_State* %1565, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %1564, %struct.lua_TValue** %1566, align 4
+ %1567 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %1568 = getelementptr inbounds %struct.CallInfo* %1567, i32 0, i32 2 ; [#uses=1]
+ store %struct.lua_TValue* %1564, %struct.lua_TValue** %1568, align 4
+ %1569 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1570 = getelementptr inbounds %struct.lua_State* %1569, i32 0, i32 8 ; [#uses=1]
+ %1571 = load i32** %1570, align 4 ; [#uses=1]
+ %1572 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %1573 = getelementptr inbounds %struct.CallInfo* %1572, i32 0, i32 3 ; [#uses=1]
+ store i32* %1571, i32** %1573, align 4
+ %1574 = load %struct.CallInfo** %ci, align 4 ; [#uses=1]
+ %1575 = getelementptr inbounds %struct.CallInfo* %1574, i32 0, i32 5 ; [#uses=2]
+ %1576 = load i32* %1575, align 4 ; [#uses=1]
+ %1577 = add nsw i32 %1576, 1 ; [#uses=1]
+ store i32 %1577, i32* %1575, align 4
+ %1578 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1579 = getelementptr inbounds %struct.lua_State* %1578, i32 0, i32 7 ; [#uses=2]
+ %1580 = load %struct.CallInfo** %1579, align 4 ; [#uses=1]
+ %1581 = getelementptr inbounds %struct.CallInfo* %1580, i32 -1 ; [#uses=1]
+ store %struct.CallInfo* %1581, %struct.CallInfo** %1579, align 4
+ br label %3
+
+; <label>:1582 ; preds = %1486
+ %1583 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1584 = getelementptr inbounds %struct.lua_State* %1583, i32 0, i32 5 ; [#uses=1]
+ %1585 = load %struct.lua_TValue** %1584, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1585, %struct.lua_TValue** %base, align 4
+ br label %28
+
+; <label>:1586 ; preds = %1486
+ br label %2188
+
+; <label>:1587 ; preds = %68
+ %1588 = load i32* %i, align 4 ; [#uses=1]
+ %1589 = lshr i32 %1588, 23 ; [#uses=1]
+ %1590 = and i32 %1589, 511 ; [#uses=1]
+ store i32 %1590, i32* %b63, align 4
+ %1591 = load i32* %b63, align 4 ; [#uses=1]
+ %1592 = icmp ne i32 %1591, 0 ; [#uses=1]
+ br i1 %1592, label %1593, label %1600
+
+; <label>:1593 ; preds = %1587
+ %1594 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1595 = load i32* %b63, align 4 ; [#uses=1]
+ %1596 = getelementptr inbounds %struct.lua_TValue* %1594, i32 %1595 ; [#uses=1]
+ %1597 = getelementptr inbounds %struct.lua_TValue* %1596, i32 -1 ; [#uses=1]
+ %1598 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1599 = getelementptr inbounds %struct.lua_State* %1598, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %1597, %struct.lua_TValue** %1599, align 4
+ br label %1600
+
+; <label>:1600 ; preds = %1593, %1587
+ %1601 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1602 = getelementptr inbounds %struct.lua_State* %1601, i32 0, i32 24 ; [#uses=1]
+ %1603 = load %union.GCObject** %1602, align 4 ; [#uses=1]
+ %1604 = icmp ne %union.GCObject* %1603, null ; [#uses=1]
+ br i1 %1604, label %1605, label %1608
+
+; <label>:1605 ; preds = %1600
+ %1606 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1607 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ call void @_Z10luaF_closeP9lua_StateP10lua_TValue(%struct.lua_State* %1606, %struct.lua_TValue* %1607)
+ br label %1608
+
+; <label>:1608 ; preds = %1605, %1600
+ %1609 = load i32** %pc, align 4 ; [#uses=1]
+ %1610 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1611 = getelementptr inbounds %struct.lua_State* %1610, i32 0, i32 8 ; [#uses=1]
+ store i32* %1609, i32** %1611, align 4
+ %1612 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1613 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1614 = call i32 @_Z12luaD_poscallP9lua_StateP10lua_TValue(%struct.lua_State* %1612, %struct.lua_TValue* %1613) ; [#uses=1]
+ store i32 %1614, i32* %b63, align 4
+ %1615 = load i32* %2, align 4 ; [#uses=1]
+ %1616 = add nsw i32 %1615, -1 ; [#uses=2]
+ store i32 %1616, i32* %2, align 4
+ %1617 = icmp eq i32 %1616, 0 ; [#uses=1]
+ br i1 %1617, label %1618, label %1619
+
+; <label>:1618 ; preds = %1608
+ br label %2188
+
+; <label>:1619 ; preds = %1608
+ %1620 = load i32* %b63, align 4 ; [#uses=1]
+ %1621 = icmp ne i32 %1620, 0 ; [#uses=1]
+ br i1 %1621, label %1622, label %1630
+
+; <label>:1622 ; preds = %1619
+ %1623 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1624 = getelementptr inbounds %struct.lua_State* %1623, i32 0, i32 7 ; [#uses=1]
+ %1625 = load %struct.CallInfo** %1624, align 4 ; [#uses=1]
+ %1626 = getelementptr inbounds %struct.CallInfo* %1625, i32 0, i32 2 ; [#uses=1]
+ %1627 = load %struct.lua_TValue** %1626, align 4 ; [#uses=1]
+ %1628 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1629 = getelementptr inbounds %struct.lua_State* %1628, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %1627, %struct.lua_TValue** %1629, align 4
+ br label %1630
+
+; <label>:1630 ; preds = %1622, %1619
+ br label %3
+
+; <label>:1631 ; preds = %68
+ %1632 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1633 = getelementptr inbounds %struct.lua_TValue* %1632, i32 2 ; [#uses=1]
+ %1634 = getelementptr inbounds %struct.lua_TValue* %1633, i32 0, i32 0 ; [#uses=1]
+ %1635 = getelementptr inbounds %union.anon* %1634, i32 0, i32 0 ; [#uses=1]
+ %1636 = load double* %1635, align 4 ; [#uses=1]
+ store double %1636, double* %step, align 8
+ %1637 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1638 = getelementptr inbounds %struct.lua_TValue* %1637, i32 0, i32 0 ; [#uses=1]
+ %1639 = getelementptr inbounds %union.anon* %1638, i32 0, i32 0 ; [#uses=1]
+ %1640 = load double* %1639, align 4 ; [#uses=1]
+ %1641 = load double* %step, align 8 ; [#uses=1]
+ %1642 = fadd double %1640, %1641 ; [#uses=1]
+ store double %1642, double* %idx, align 8
+ %1643 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1644 = getelementptr inbounds %struct.lua_TValue* %1643, i32 1 ; [#uses=1]
+ %1645 = getelementptr inbounds %struct.lua_TValue* %1644, i32 0, i32 0 ; [#uses=1]
+ %1646 = getelementptr inbounds %union.anon* %1645, i32 0, i32 0 ; [#uses=1]
+ %1647 = load double* %1646, align 4 ; [#uses=1]
+ store double %1647, double* %limit, align 8
+ %1648 = load double* %step, align 8 ; [#uses=1]
+ %1649 = fcmp olt double 0.000000e+00, %1648 ; [#uses=1]
+ br i1 %1649, label %1650, label %1654
+
+; <label>:1650 ; preds = %1631
+ %1651 = load double* %idx, align 8 ; [#uses=1]
+ %1652 = load double* %limit, align 8 ; [#uses=1]
+ %1653 = fcmp ole double %1651, %1652 ; [#uses=1]
+ br i1 %1653, label %1658, label %1680
+
+; <label>:1654 ; preds = %1631
+ %1655 = load double* %limit, align 8 ; [#uses=1]
+ %1656 = load double* %idx, align 8 ; [#uses=1]
+ %1657 = fcmp ole double %1655, %1656 ; [#uses=1]
+ br i1 %1657, label %1658, label %1680
+
+; <label>:1658 ; preds = %1654, %1650
+ %1659 = load i32* %i, align 4 ; [#uses=1]
+ %1660 = lshr i32 %1659, 14 ; [#uses=1]
+ %1661 = and i32 %1660, 262143 ; [#uses=1]
+ %1662 = sub nsw i32 %1661, 131071 ; [#uses=1]
+ %1663 = load i32** %pc, align 4 ; [#uses=1]
+ %1664 = getelementptr inbounds i32* %1663, i32 %1662 ; [#uses=1]
+ store i32* %1664, i32** %pc, align 4
+ %1665 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1665, %struct.lua_TValue** %i_o64, align 4
+ %1666 = load double* %idx, align 8 ; [#uses=1]
+ %1667 = load %struct.lua_TValue** %i_o64, align 4 ; [#uses=1]
+ %1668 = getelementptr inbounds %struct.lua_TValue* %1667, i32 0, i32 0 ; [#uses=1]
+ %1669 = getelementptr inbounds %union.anon* %1668, i32 0, i32 0 ; [#uses=1]
+ store double %1666, double* %1669, align 4
+ %1670 = load %struct.lua_TValue** %i_o64, align 4 ; [#uses=1]
+ %1671 = getelementptr inbounds %struct.lua_TValue* %1670, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %1671, align 4
+ %1672 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1673 = getelementptr inbounds %struct.lua_TValue* %1672, i32 3 ; [#uses=1]
+ store %struct.lua_TValue* %1673, %struct.lua_TValue** %i_o65, align 4
+ %1674 = load double* %idx, align 8 ; [#uses=1]
+ %1675 = load %struct.lua_TValue** %i_o65, align 4 ; [#uses=1]
+ %1676 = getelementptr inbounds %struct.lua_TValue* %1675, i32 0, i32 0 ; [#uses=1]
+ %1677 = getelementptr inbounds %union.anon* %1676, i32 0, i32 0 ; [#uses=1]
+ store double %1674, double* %1677, align 4
+ %1678 = load %struct.lua_TValue** %i_o65, align 4 ; [#uses=1]
+ %1679 = getelementptr inbounds %struct.lua_TValue* %1678, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %1679, align 4
+ br label %1680
+
+; <label>:1680 ; preds = %1658, %1654, %1650
+ br label %28
+
+; <label>:1681 ; preds = %68
+ %1682 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1682, %struct.lua_TValue** %init, align 4
+ %1683 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1684 = getelementptr inbounds %struct.lua_TValue* %1683, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %1684, %struct.lua_TValue** %plimit, align 4
+ %1685 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1686 = getelementptr inbounds %struct.lua_TValue* %1685, i32 2 ; [#uses=1]
+ store %struct.lua_TValue* %1686, %struct.lua_TValue** %pstep, align 4
+ %1687 = load i32** %pc, align 4 ; [#uses=1]
+ %1688 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1689 = getelementptr inbounds %struct.lua_State* %1688, i32 0, i32 8 ; [#uses=1]
+ store i32* %1687, i32** %1689, align 4
+ %1690 = load %struct.lua_TValue** %init, align 4 ; [#uses=1]
+ %1691 = getelementptr inbounds %struct.lua_TValue* %1690, i32 0, i32 1 ; [#uses=1]
+ %1692 = load i32* %1691, align 4 ; [#uses=1]
+ %1693 = icmp eq i32 %1692, 3 ; [#uses=1]
+ br i1 %1693, label %1701, label %1694
+
+; <label>:1694 ; preds = %1681
+ %1695 = load %struct.lua_TValue** %init, align 4 ; [#uses=1]
+ %1696 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1697 = call %struct.lua_TValue* @_Z13luaV_tonumberPK10lua_TValuePS_(%struct.lua_TValue* %1695, %struct.lua_TValue* %1696) ; [#uses=2]
+ store %struct.lua_TValue* %1697, %struct.lua_TValue** %init, align 4
+ %1698 = icmp ne %struct.lua_TValue* %1697, null ; [#uses=1]
+ br i1 %1698, label %1701, label %1699
+
+; <label>:1699 ; preds = %1694
+ %1700 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %1700, i8* getelementptr inbounds ([37 x i8]* @.str6226, i32 0, i32 0))
+ br label %1729
+
+; <label>:1701 ; preds = %1694, %1681
+ %1702 = load %struct.lua_TValue** %plimit, align 4 ; [#uses=1]
+ %1703 = getelementptr inbounds %struct.lua_TValue* %1702, i32 0, i32 1 ; [#uses=1]
+ %1704 = load i32* %1703, align 4 ; [#uses=1]
+ %1705 = icmp eq i32 %1704, 3 ; [#uses=1]
+ br i1 %1705, label %1714, label %1706
+
+; <label>:1706 ; preds = %1701
+ %1707 = load %struct.lua_TValue** %plimit, align 4 ; [#uses=1]
+ %1708 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1709 = getelementptr inbounds %struct.lua_TValue* %1708, i32 1 ; [#uses=1]
+ %1710 = call %struct.lua_TValue* @_Z13luaV_tonumberPK10lua_TValuePS_(%struct.lua_TValue* %1707, %struct.lua_TValue* %1709) ; [#uses=2]
+ store %struct.lua_TValue* %1710, %struct.lua_TValue** %plimit, align 4
+ %1711 = icmp ne %struct.lua_TValue* %1710, null ; [#uses=1]
+ br i1 %1711, label %1714, label %1712
+
+; <label>:1712 ; preds = %1706
+ %1713 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %1713, i8* getelementptr inbounds ([29 x i8]* @.str7227, i32 0, i32 0))
+ br label %1728
+
+; <label>:1714 ; preds = %1706, %1701
+ %1715 = load %struct.lua_TValue** %pstep, align 4 ; [#uses=1]
+ %1716 = getelementptr inbounds %struct.lua_TValue* %1715, i32 0, i32 1 ; [#uses=1]
+ %1717 = load i32* %1716, align 4 ; [#uses=1]
+ %1718 = icmp eq i32 %1717, 3 ; [#uses=1]
+ br i1 %1718, label %1727, label %1719
+
+; <label>:1719 ; preds = %1714
+ %1720 = load %struct.lua_TValue** %pstep, align 4 ; [#uses=1]
+ %1721 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1722 = getelementptr inbounds %struct.lua_TValue* %1721, i32 2 ; [#uses=1]
+ %1723 = call %struct.lua_TValue* @_Z13luaV_tonumberPK10lua_TValuePS_(%struct.lua_TValue* %1720, %struct.lua_TValue* %1722) ; [#uses=2]
+ store %struct.lua_TValue* %1723, %struct.lua_TValue** %pstep, align 4
+ %1724 = icmp ne %struct.lua_TValue* %1723, null ; [#uses=1]
+ br i1 %1724, label %1727, label %1725
+
+; <label>:1725 ; preds = %1719
+ %1726 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void (%struct.lua_State*, i8*, ...)* @_Z13luaG_runerrorP9lua_StatePKcz(%struct.lua_State* %1726, i8* getelementptr inbounds ([28 x i8]* @.str8228, i32 0, i32 0))
+ br label %1727
+
+; <label>:1727 ; preds = %1725, %1719, %1714
+ br label %1728
+
+; <label>:1728 ; preds = %1727, %1712
+ br label %1729
+
+; <label>:1729 ; preds = %1728, %1699
+ %1730 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1730, %struct.lua_TValue** %i_o66, align 4
+ %1731 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1732 = getelementptr inbounds %struct.lua_TValue* %1731, i32 0, i32 0 ; [#uses=1]
+ %1733 = getelementptr inbounds %union.anon* %1732, i32 0, i32 0 ; [#uses=1]
+ %1734 = load double* %1733, align 4 ; [#uses=1]
+ %1735 = load %struct.lua_TValue** %pstep, align 4 ; [#uses=1]
+ %1736 = getelementptr inbounds %struct.lua_TValue* %1735, i32 0, i32 0 ; [#uses=1]
+ %1737 = getelementptr inbounds %union.anon* %1736, i32 0, i32 0 ; [#uses=1]
+ %1738 = load double* %1737, align 4 ; [#uses=1]
+ %1739 = fsub double %1734, %1738 ; [#uses=1]
+ %1740 = load %struct.lua_TValue** %i_o66, align 4 ; [#uses=1]
+ %1741 = getelementptr inbounds %struct.lua_TValue* %1740, i32 0, i32 0 ; [#uses=1]
+ %1742 = getelementptr inbounds %union.anon* %1741, i32 0, i32 0 ; [#uses=1]
+ store double %1739, double* %1742, align 4
+ %1743 = load %struct.lua_TValue** %i_o66, align 4 ; [#uses=1]
+ %1744 = getelementptr inbounds %struct.lua_TValue* %1743, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %1744, align 4
+ %1745 = load i32* %i, align 4 ; [#uses=1]
+ %1746 = lshr i32 %1745, 14 ; [#uses=1]
+ %1747 = and i32 %1746, 262143 ; [#uses=1]
+ %1748 = sub nsw i32 %1747, 131071 ; [#uses=1]
+ %1749 = load i32** %pc, align 4 ; [#uses=1]
+ %1750 = getelementptr inbounds i32* %1749, i32 %1748 ; [#uses=1]
+ store i32* %1750, i32** %pc, align 4
+ br label %28
+
+; <label>:1751 ; preds = %68
+ %1752 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1753 = getelementptr inbounds %struct.lua_TValue* %1752, i32 3 ; [#uses=1]
+ store %struct.lua_TValue* %1753, %struct.lua_TValue** %cb, align 4
+ %1754 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1755 = getelementptr inbounds %struct.lua_TValue* %1754, i32 2 ; [#uses=1]
+ store %struct.lua_TValue* %1755, %struct.lua_TValue** %o267, align 4
+ %1756 = load %struct.lua_TValue** %cb, align 4 ; [#uses=1]
+ %1757 = getelementptr inbounds %struct.lua_TValue* %1756, i32 2 ; [#uses=1]
+ store %struct.lua_TValue* %1757, %struct.lua_TValue** %o168, align 4
+ %1758 = load %struct.lua_TValue** %o168, align 4 ; [#uses=1]
+ %1759 = getelementptr inbounds %struct.lua_TValue* %1758, i32 0, i32 0 ; [#uses=1]
+ %1760 = load %struct.lua_TValue** %o267, align 4 ; [#uses=1]
+ %1761 = getelementptr inbounds %struct.lua_TValue* %1760, i32 0, i32 0 ; [#uses=1]
+ %1762 = bitcast %union.anon* %1759 to i8* ; [#uses=1]
+ %1763 = bitcast %union.anon* %1761 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1762, i8* %1763, i32 8, i32 4, i1 false)
+ %1764 = load %struct.lua_TValue** %o267, align 4 ; [#uses=1]
+ %1765 = getelementptr inbounds %struct.lua_TValue* %1764, i32 0, i32 1 ; [#uses=1]
+ %1766 = load i32* %1765, align 4 ; [#uses=1]
+ %1767 = load %struct.lua_TValue** %o168, align 4 ; [#uses=1]
+ %1768 = getelementptr inbounds %struct.lua_TValue* %1767, i32 0, i32 1 ; [#uses=1]
+ store i32 %1766, i32* %1768, align 4
+ %1769 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1770 = getelementptr inbounds %struct.lua_TValue* %1769, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %1770, %struct.lua_TValue** %o269, align 4
+ %1771 = load %struct.lua_TValue** %cb, align 4 ; [#uses=1]
+ %1772 = getelementptr inbounds %struct.lua_TValue* %1771, i32 1 ; [#uses=1]
+ store %struct.lua_TValue* %1772, %struct.lua_TValue** %o170, align 4
+ %1773 = load %struct.lua_TValue** %o170, align 4 ; [#uses=1]
+ %1774 = getelementptr inbounds %struct.lua_TValue* %1773, i32 0, i32 0 ; [#uses=1]
+ %1775 = load %struct.lua_TValue** %o269, align 4 ; [#uses=1]
+ %1776 = getelementptr inbounds %struct.lua_TValue* %1775, i32 0, i32 0 ; [#uses=1]
+ %1777 = bitcast %union.anon* %1774 to i8* ; [#uses=1]
+ %1778 = bitcast %union.anon* %1776 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1777, i8* %1778, i32 8, i32 4, i1 false)
+ %1779 = load %struct.lua_TValue** %o269, align 4 ; [#uses=1]
+ %1780 = getelementptr inbounds %struct.lua_TValue* %1779, i32 0, i32 1 ; [#uses=1]
+ %1781 = load i32* %1780, align 4 ; [#uses=1]
+ %1782 = load %struct.lua_TValue** %o170, align 4 ; [#uses=1]
+ %1783 = getelementptr inbounds %struct.lua_TValue* %1782, i32 0, i32 1 ; [#uses=1]
+ store i32 %1781, i32* %1783, align 4
+ %1784 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1784, %struct.lua_TValue** %o271, align 4
+ %1785 = load %struct.lua_TValue** %cb, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1785, %struct.lua_TValue** %o172, align 4
+ %1786 = load %struct.lua_TValue** %o172, align 4 ; [#uses=1]
+ %1787 = getelementptr inbounds %struct.lua_TValue* %1786, i32 0, i32 0 ; [#uses=1]
+ %1788 = load %struct.lua_TValue** %o271, align 4 ; [#uses=1]
+ %1789 = getelementptr inbounds %struct.lua_TValue* %1788, i32 0, i32 0 ; [#uses=1]
+ %1790 = bitcast %union.anon* %1787 to i8* ; [#uses=1]
+ %1791 = bitcast %union.anon* %1789 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1790, i8* %1791, i32 8, i32 4, i1 false)
+ %1792 = load %struct.lua_TValue** %o271, align 4 ; [#uses=1]
+ %1793 = getelementptr inbounds %struct.lua_TValue* %1792, i32 0, i32 1 ; [#uses=1]
+ %1794 = load i32* %1793, align 4 ; [#uses=1]
+ %1795 = load %struct.lua_TValue** %o172, align 4 ; [#uses=1]
+ %1796 = getelementptr inbounds %struct.lua_TValue* %1795, i32 0, i32 1 ; [#uses=1]
+ store i32 %1794, i32* %1796, align 4
+ %1797 = load %struct.lua_TValue** %cb, align 4 ; [#uses=1]
+ %1798 = getelementptr inbounds %struct.lua_TValue* %1797, i32 3 ; [#uses=1]
+ %1799 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1800 = getelementptr inbounds %struct.lua_State* %1799, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %1798, %struct.lua_TValue** %1800, align 4
+ %1801 = load i32** %pc, align 4 ; [#uses=1]
+ %1802 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1803 = getelementptr inbounds %struct.lua_State* %1802, i32 0, i32 8 ; [#uses=1]
+ store i32* %1801, i32** %1803, align 4
+ %1804 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1805 = load %struct.lua_TValue** %cb, align 4 ; [#uses=1]
+ %1806 = load i32* %i, align 4 ; [#uses=1]
+ %1807 = lshr i32 %1806, 14 ; [#uses=1]
+ %1808 = and i32 %1807, 511 ; [#uses=1]
+ call void @_Z9luaD_callP9lua_StateP10lua_TValuei(%struct.lua_State* %1804, %struct.lua_TValue* %1805, i32 %1808)
+ %1809 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1810 = getelementptr inbounds %struct.lua_State* %1809, i32 0, i32 5 ; [#uses=1]
+ %1811 = load %struct.lua_TValue** %1810, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1811, %struct.lua_TValue** %base, align 4
+ %1812 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1813 = getelementptr inbounds %struct.lua_State* %1812, i32 0, i32 7 ; [#uses=1]
+ %1814 = load %struct.CallInfo** %1813, align 4 ; [#uses=1]
+ %1815 = getelementptr inbounds %struct.CallInfo* %1814, i32 0, i32 2 ; [#uses=1]
+ %1816 = load %struct.lua_TValue** %1815, align 4 ; [#uses=1]
+ %1817 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1818 = getelementptr inbounds %struct.lua_State* %1817, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %1816, %struct.lua_TValue** %1818, align 4
+ %1819 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %1820 = load i32* %i, align 4 ; [#uses=1]
+ %1821 = lshr i32 %1820, 6 ; [#uses=1]
+ %1822 = and i32 %1821, 255 ; [#uses=1]
+ %1823 = getelementptr inbounds %struct.lua_TValue* %1819, i32 %1822 ; [#uses=1]
+ %1824 = getelementptr inbounds %struct.lua_TValue* %1823, i32 3 ; [#uses=1]
+ store %struct.lua_TValue* %1824, %struct.lua_TValue** %cb, align 4
+ %1825 = load %struct.lua_TValue** %cb, align 4 ; [#uses=1]
+ %1826 = getelementptr inbounds %struct.lua_TValue* %1825, i32 0, i32 1 ; [#uses=1]
+ %1827 = load i32* %1826, align 4 ; [#uses=1]
+ %1828 = icmp eq i32 %1827, 0 ; [#uses=1]
+ br i1 %1828, label %1851, label %1829
+
+; <label>:1829 ; preds = %1751
+ %1830 = load %struct.lua_TValue** %cb, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1830, %struct.lua_TValue** %o273, align 4
+ %1831 = load %struct.lua_TValue** %cb, align 4 ; [#uses=1]
+ %1832 = getelementptr inbounds %struct.lua_TValue* %1831, i32 -1 ; [#uses=1]
+ store %struct.lua_TValue* %1832, %struct.lua_TValue** %o174, align 4
+ %1833 = load %struct.lua_TValue** %o174, align 4 ; [#uses=1]
+ %1834 = getelementptr inbounds %struct.lua_TValue* %1833, i32 0, i32 0 ; [#uses=1]
+ %1835 = load %struct.lua_TValue** %o273, align 4 ; [#uses=1]
+ %1836 = getelementptr inbounds %struct.lua_TValue* %1835, i32 0, i32 0 ; [#uses=1]
+ %1837 = bitcast %union.anon* %1834 to i8* ; [#uses=1]
+ %1838 = bitcast %union.anon* %1836 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1837, i8* %1838, i32 8, i32 4, i1 false)
+ %1839 = load %struct.lua_TValue** %o273, align 4 ; [#uses=1]
+ %1840 = getelementptr inbounds %struct.lua_TValue* %1839, i32 0, i32 1 ; [#uses=1]
+ %1841 = load i32* %1840, align 4 ; [#uses=1]
+ %1842 = load %struct.lua_TValue** %o174, align 4 ; [#uses=1]
+ %1843 = getelementptr inbounds %struct.lua_TValue* %1842, i32 0, i32 1 ; [#uses=1]
+ store i32 %1841, i32* %1843, align 4
+ %1844 = load i32** %pc, align 4 ; [#uses=1]
+ %1845 = load i32* %1844 ; [#uses=1]
+ %1846 = lshr i32 %1845, 14 ; [#uses=1]
+ %1847 = and i32 %1846, 262143 ; [#uses=1]
+ %1848 = sub nsw i32 %1847, 131071 ; [#uses=1]
+ %1849 = load i32** %pc, align 4 ; [#uses=1]
+ %1850 = getelementptr inbounds i32* %1849, i32 %1848 ; [#uses=1]
+ store i32* %1850, i32** %pc, align 4
+ br label %1851
+
+; <label>:1851 ; preds = %1829, %1751
+ %1852 = load i32** %pc, align 4 ; [#uses=1]
+ %1853 = getelementptr inbounds i32* %1852, i32 1 ; [#uses=1]
+ store i32* %1853, i32** %pc, align 4
+ br label %28
+
+; <label>:1854 ; preds = %68
+ %1855 = load i32* %i, align 4 ; [#uses=1]
+ %1856 = lshr i32 %1855, 23 ; [#uses=1]
+ %1857 = and i32 %1856, 511 ; [#uses=1]
+ store i32 %1857, i32* %n, align 4
+ %1858 = load i32* %i, align 4 ; [#uses=1]
+ %1859 = lshr i32 %1858, 14 ; [#uses=1]
+ %1860 = and i32 %1859, 511 ; [#uses=1]
+ store i32 %1860, i32* %c75, align 4
+ %1861 = load i32* %n, align 4 ; [#uses=1]
+ %1862 = icmp eq i32 %1861, 0 ; [#uses=1]
+ br i1 %1862, label %1863, label %1880
+
+; <label>:1863 ; preds = %1854
+ %1864 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1865 = getelementptr inbounds %struct.lua_State* %1864, i32 0, i32 4 ; [#uses=1]
+ %1866 = load %struct.lua_TValue** %1865, align 4 ; [#uses=1]
+ %1867 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1868 = ptrtoint %struct.lua_TValue* %1866 to i32 ; [#uses=1]
+ %1869 = ptrtoint %struct.lua_TValue* %1867 to i32 ; [#uses=1]
+ %1870 = sub i32 %1868, %1869 ; [#uses=1]
+ %1871 = sdiv exact i32 %1870, 12 ; [#uses=1]
+ %1872 = sub nsw i32 %1871, 1 ; [#uses=1]
+ store i32 %1872, i32* %n, align 4
+ %1873 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1874 = getelementptr inbounds %struct.lua_State* %1873, i32 0, i32 7 ; [#uses=1]
+ %1875 = load %struct.CallInfo** %1874, align 4 ; [#uses=1]
+ %1876 = getelementptr inbounds %struct.CallInfo* %1875, i32 0, i32 2 ; [#uses=1]
+ %1877 = load %struct.lua_TValue** %1876, align 4 ; [#uses=1]
+ %1878 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1879 = getelementptr inbounds %struct.lua_State* %1878, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %1877, %struct.lua_TValue** %1879, align 4
+ br label %1880
+
+; <label>:1880 ; preds = %1863, %1854
+ %1881 = load i32* %c75, align 4 ; [#uses=1]
+ %1882 = icmp eq i32 %1881, 0 ; [#uses=1]
+ br i1 %1882, label %1883, label %1887
+
+; <label>:1883 ; preds = %1880
+ %1884 = load i32** %pc, align 4 ; [#uses=2]
+ %1885 = getelementptr inbounds i32* %1884, i32 1 ; [#uses=1]
+ store i32* %1885, i32** %pc, align 4
+ %1886 = load i32* %1884 ; [#uses=1]
+ store i32 %1886, i32* %c75, align 4
+ br label %1887
+
+; <label>:1887 ; preds = %1883, %1880
+ %1888 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1889 = getelementptr inbounds %struct.lua_TValue* %1888, i32 0, i32 1 ; [#uses=1]
+ %1890 = load i32* %1889, align 4 ; [#uses=1]
+ %1891 = icmp eq i32 %1890, 5 ; [#uses=1]
+ br i1 %1891, label %1893, label %1892
+
+; <label>:1892 ; preds = %1887
+ br label %2187
+
+; <label>:1893 ; preds = %1887
+ %1894 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1895 = getelementptr inbounds %struct.lua_TValue* %1894, i32 0, i32 0 ; [#uses=1]
+ %1896 = getelementptr inbounds %union.anon* %1895, i32 0, i32 0 ; [#uses=1]
+ %1897 = bitcast double* %1896 to %union.GCObject** ; [#uses=1]
+ %1898 = load %union.GCObject** %1897, align 4 ; [#uses=1]
+ %1899 = getelementptr inbounds %union.GCObject* %1898, i32 0, i32 0 ; [#uses=1]
+ %1900 = bitcast %struct.lua_State* %1899 to %struct.Table* ; [#uses=1]
+ store %struct.Table* %1900, %struct.Table** %h, align 4
+ %1901 = load i32* %c75, align 4 ; [#uses=1]
+ %1902 = sub nsw i32 %1901, 1 ; [#uses=1]
+ %1903 = mul nsw i32 %1902, 50 ; [#uses=1]
+ %1904 = load i32* %n, align 4 ; [#uses=1]
+ %1905 = add nsw i32 %1903, %1904 ; [#uses=1]
+ store i32 %1905, i32* %last, align 4
+ %1906 = load i32* %last, align 4 ; [#uses=1]
+ %1907 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %1908 = getelementptr inbounds %struct.Table* %1907, i32 0, i32 10 ; [#uses=1]
+ %1909 = load i32* %1908, align 4 ; [#uses=1]
+ %1910 = icmp sgt i32 %1906, %1909 ; [#uses=1]
+ br i1 %1910, label %1911, label %1915
+
+; <label>:1911 ; preds = %1893
+ %1912 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1913 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %1914 = load i32* %last, align 4 ; [#uses=1]
+ call void @_Z16luaH_resizearrayP9lua_StateP5Tablei(%struct.lua_State* %1912, %struct.Table* %1913, i32 %1914)
+ br label %1915
+
+; <label>:1915 ; preds = %1911, %1893
+ br label %1916
+
+; <label>:1916 ; preds = %1971, %1915
+ %1917 = load i32* %n, align 4 ; [#uses=1]
+ %1918 = icmp sgt i32 %1917, 0 ; [#uses=1]
+ br i1 %1918, label %1919, label %1974
+
+; <label>:1919 ; preds = %1916
+ %1920 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %1921 = load i32* %n, align 4 ; [#uses=1]
+ %1922 = getelementptr inbounds %struct.lua_TValue* %1920, i32 %1921 ; [#uses=1]
+ store %struct.lua_TValue* %1922, %struct.lua_TValue** %val, align 4
+ %1923 = load %struct.lua_TValue** %val, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %1923, %struct.lua_TValue** %o276, align 4
+ %1924 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1925 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %1926 = load i32* %last, align 4 ; [#uses=2]
+ %1927 = add nsw i32 %1926, -1 ; [#uses=1]
+ store i32 %1927, i32* %last, align 4
+ %1928 = call %struct.lua_TValue* @_Z11luaH_setnumP9lua_StateP5Tablei(%struct.lua_State* %1924, %struct.Table* %1925, i32 %1926) ; [#uses=1]
+ store %struct.lua_TValue* %1928, %struct.lua_TValue** %o177, align 4
+ %1929 = load %struct.lua_TValue** %o177, align 4 ; [#uses=1]
+ %1930 = getelementptr inbounds %struct.lua_TValue* %1929, i32 0, i32 0 ; [#uses=1]
+ %1931 = load %struct.lua_TValue** %o276, align 4 ; [#uses=1]
+ %1932 = getelementptr inbounds %struct.lua_TValue* %1931, i32 0, i32 0 ; [#uses=1]
+ %1933 = bitcast %union.anon* %1930 to i8* ; [#uses=1]
+ %1934 = bitcast %union.anon* %1932 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1933, i8* %1934, i32 8, i32 4, i1 false)
+ %1935 = load %struct.lua_TValue** %o276, align 4 ; [#uses=1]
+ %1936 = getelementptr inbounds %struct.lua_TValue* %1935, i32 0, i32 1 ; [#uses=1]
+ %1937 = load i32* %1936, align 4 ; [#uses=1]
+ %1938 = load %struct.lua_TValue** %o177, align 4 ; [#uses=1]
+ %1939 = getelementptr inbounds %struct.lua_TValue* %1938, i32 0, i32 1 ; [#uses=1]
+ store i32 %1937, i32* %1939, align 4
+ %1940 = load %struct.lua_TValue** %val, align 4 ; [#uses=1]
+ %1941 = getelementptr inbounds %struct.lua_TValue* %1940, i32 0, i32 1 ; [#uses=1]
+ %1942 = load i32* %1941, align 4 ; [#uses=1]
+ %1943 = icmp sge i32 %1942, 4 ; [#uses=1]
+ br i1 %1943, label %1944, label %1970
+
+; <label>:1944 ; preds = %1919
+ %1945 = load %struct.lua_TValue** %val, align 4 ; [#uses=1]
+ %1946 = getelementptr inbounds %struct.lua_TValue* %1945, i32 0, i32 0 ; [#uses=1]
+ %1947 = getelementptr inbounds %union.anon* %1946, i32 0, i32 0 ; [#uses=1]
+ %1948 = bitcast double* %1947 to %union.GCObject** ; [#uses=1]
+ %1949 = load %union.GCObject** %1948, align 4 ; [#uses=1]
+ %1950 = getelementptr inbounds %union.GCObject* %1949, i32 0, i32 0 ; [#uses=1]
+ %1951 = bitcast %struct.lua_State* %1950 to %struct.GCheader* ; [#uses=1]
+ %1952 = getelementptr inbounds %struct.GCheader* %1951, i32 0, i32 2 ; [#uses=1]
+ %1953 = load i8* %1952, align 1 ; [#uses=1]
+ %1954 = zext i8 %1953 to i32 ; [#uses=1]
+ %1955 = and i32 %1954, 3 ; [#uses=1]
+ %1956 = icmp ne i32 %1955, 0 ; [#uses=1]
+ br i1 %1956, label %1957, label %1970
+
+; <label>:1957 ; preds = %1944
+ %1958 = load %struct.Table** %h, align 4 ; [#uses=1]
+ %1959 = bitcast %struct.Table* %1958 to %union.GCObject* ; [#uses=1]
+ %1960 = getelementptr inbounds %union.GCObject* %1959, i32 0, i32 0 ; [#uses=1]
+ %1961 = bitcast %struct.lua_State* %1960 to %struct.GCheader* ; [#uses=1]
+ %1962 = getelementptr inbounds %struct.GCheader* %1961, i32 0, i32 2 ; [#uses=1]
+ %1963 = load i8* %1962, align 1 ; [#uses=1]
+ %1964 = zext i8 %1963 to i32 ; [#uses=1]
+ %1965 = and i32 %1964, 4 ; [#uses=1]
+ %1966 = icmp ne i32 %1965, 0 ; [#uses=1]
+ br i1 %1966, label %1967, label %1970
+
+; <label>:1967 ; preds = %1957
+ %1968 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1969 = load %struct.Table** %h, align 4 ; [#uses=1]
+ call void @_Z16luaC_barrierbackP9lua_StateP5Table(%struct.lua_State* %1968, %struct.Table* %1969)
+ br label %1970
+
+; <label>:1970 ; preds = %1967, %1957, %1944, %1919
+ br label %1971
+
+; <label>:1971 ; preds = %1970
+ %1972 = load i32* %n, align 4 ; [#uses=1]
+ %1973 = add nsw i32 %1972, -1 ; [#uses=1]
+ store i32 %1973, i32* %n, align 4
+ br label %1916
+
+; <label>:1974 ; preds = %1916
+ br label %28
+
+; <label>:1975 ; preds = %68
+ %1976 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1977 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ call void @_Z10luaF_closeP9lua_StateP10lua_TValue(%struct.lua_State* %1976, %struct.lua_TValue* %1977)
+ br label %28
+
+; <label>:1978 ; preds = %68
+ %1979 = load i32* %i, align 4 ; [#uses=1]
+ %1980 = lshr i32 %1979, 14 ; [#uses=1]
+ %1981 = and i32 %1980, 262143 ; [#uses=1]
+ %1982 = load %struct.LClosure** %cl, align 4 ; [#uses=1]
+ %1983 = getelementptr inbounds %struct.LClosure* %1982, i32 0, i32 7 ; [#uses=1]
+ %1984 = load %struct.Proto** %1983, align 4 ; [#uses=1]
+ %1985 = getelementptr inbounds %struct.Proto* %1984, i32 0, i32 5 ; [#uses=1]
+ %1986 = load %struct.Proto*** %1985, align 4 ; [#uses=1]
+ %1987 = getelementptr inbounds %struct.Proto** %1986, i32 %1981 ; [#uses=1]
+ %1988 = load %struct.Proto** %1987 ; [#uses=1]
+ store %struct.Proto* %1988, %struct.Proto** %p, align 4
+ %1989 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %1990 = getelementptr inbounds %struct.Proto* %1989, i32 0, i32 19 ; [#uses=1]
+ %1991 = load i8* %1990, align 1 ; [#uses=1]
+ %1992 = zext i8 %1991 to i32 ; [#uses=1]
+ store i32 %1992, i32* %nup, align 4
+ %1993 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %1994 = load i32* %nup, align 4 ; [#uses=1]
+ %1995 = load %struct.LClosure** %cl, align 4 ; [#uses=1]
+ %1996 = getelementptr inbounds %struct.LClosure* %1995, i32 0, i32 6 ; [#uses=1]
+ %1997 = load %struct.Table** %1996, align 4 ; [#uses=1]
+ %1998 = call %union.Closure* @_Z16luaF_newLclosureP9lua_StateiP5Table(%struct.lua_State* %1993, i32 %1994, %struct.Table* %1997) ; [#uses=1]
+ store %union.Closure* %1998, %union.Closure** %ncl, align 4
+ %1999 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %2000 = load %union.Closure** %ncl, align 4 ; [#uses=1]
+ %2001 = getelementptr inbounds %union.Closure* %2000, i32 0, i32 0 ; [#uses=1]
+ %2002 = bitcast %struct.CClosure* %2001 to %struct.LClosure* ; [#uses=1]
+ %2003 = getelementptr inbounds %struct.LClosure* %2002, i32 0, i32 7 ; [#uses=1]
+ store %struct.Proto* %1999, %struct.Proto** %2003, align 4
+ store i32 0, i32* %j, align 4
+ br label %2004
+
+; <label>:2004 ; preds = %2045, %1978
+ %2005 = load i32* %j, align 4 ; [#uses=1]
+ %2006 = load i32* %nup, align 4 ; [#uses=1]
+ %2007 = icmp slt i32 %2005, %2006 ; [#uses=1]
+ br i1 %2007, label %2008, label %2050
+
+; <label>:2008 ; preds = %2004
+ %2009 = load i32** %pc, align 4 ; [#uses=1]
+ %2010 = load i32* %2009 ; [#uses=1]
+ %2011 = lshr i32 %2010, 0 ; [#uses=1]
+ %2012 = and i32 %2011, 63 ; [#uses=1]
+ %2013 = icmp eq i32 %2012, 4 ; [#uses=1]
+ br i1 %2013, label %2014, label %2029
+
+; <label>:2014 ; preds = %2008
+ %2015 = load i32** %pc, align 4 ; [#uses=1]
+ %2016 = load i32* %2015 ; [#uses=1]
+ %2017 = lshr i32 %2016, 23 ; [#uses=1]
+ %2018 = and i32 %2017, 511 ; [#uses=1]
+ %2019 = load %struct.LClosure** %cl, align 4 ; [#uses=1]
+ %2020 = getelementptr inbounds %struct.LClosure* %2019, i32 0, i32 8 ; [#uses=1]
+ %2021 = getelementptr inbounds [1 x %struct.UpVal*]* %2020, i32 0, i32 %2018 ; [#uses=1]
+ %2022 = load %struct.UpVal** %2021 ; [#uses=1]
+ %2023 = load i32* %j, align 4 ; [#uses=1]
+ %2024 = load %union.Closure** %ncl, align 4 ; [#uses=1]
+ %2025 = getelementptr inbounds %union.Closure* %2024, i32 0, i32 0 ; [#uses=1]
+ %2026 = bitcast %struct.CClosure* %2025 to %struct.LClosure* ; [#uses=1]
+ %2027 = getelementptr inbounds %struct.LClosure* %2026, i32 0, i32 8 ; [#uses=1]
+ %2028 = getelementptr inbounds [1 x %struct.UpVal*]* %2027, i32 0, i32 %2023 ; [#uses=1]
+ store %struct.UpVal* %2022, %struct.UpVal** %2028
+ br label %2044
+
+; <label>:2029 ; preds = %2008
+ %2030 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %2031 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %2032 = load i32** %pc, align 4 ; [#uses=1]
+ %2033 = load i32* %2032 ; [#uses=1]
+ %2034 = lshr i32 %2033, 23 ; [#uses=1]
+ %2035 = and i32 %2034, 511 ; [#uses=1]
+ %2036 = getelementptr inbounds %struct.lua_TValue* %2031, i32 %2035 ; [#uses=1]
+ %2037 = call %struct.UpVal* @_Z14luaF_findupvalP9lua_StateP10lua_TValue(%struct.lua_State* %2030, %struct.lua_TValue* %2036) ; [#uses=1]
+ %2038 = load i32* %j, align 4 ; [#uses=1]
+ %2039 = load %union.Closure** %ncl, align 4 ; [#uses=1]
+ %2040 = getelementptr inbounds %union.Closure* %2039, i32 0, i32 0 ; [#uses=1]
+ %2041 = bitcast %struct.CClosure* %2040 to %struct.LClosure* ; [#uses=1]
+ %2042 = getelementptr inbounds %struct.LClosure* %2041, i32 0, i32 8 ; [#uses=1]
+ %2043 = getelementptr inbounds [1 x %struct.UpVal*]* %2042, i32 0, i32 %2038 ; [#uses=1]
+ store %struct.UpVal* %2037, %struct.UpVal** %2043
+ br label %2044
+
+; <label>:2044 ; preds = %2029, %2014
+ br label %2045
+
+; <label>:2045 ; preds = %2044
+ %2046 = load i32* %j, align 4 ; [#uses=1]
+ %2047 = add nsw i32 %2046, 1 ; [#uses=1]
+ store i32 %2047, i32* %j, align 4
+ %2048 = load i32** %pc, align 4 ; [#uses=1]
+ %2049 = getelementptr inbounds i32* %2048, i32 1 ; [#uses=1]
+ store i32* %2049, i32** %pc, align 4
+ br label %2004
+
+; <label>:2050 ; preds = %2004
+ %2051 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %2051, %struct.lua_TValue** %i_o78, align 4
+ %2052 = load %union.Closure** %ncl, align 4 ; [#uses=1]
+ %2053 = bitcast %union.Closure* %2052 to %union.GCObject* ; [#uses=1]
+ %2054 = load %struct.lua_TValue** %i_o78, align 4 ; [#uses=1]
+ %2055 = getelementptr inbounds %struct.lua_TValue* %2054, i32 0, i32 0 ; [#uses=1]
+ %2056 = getelementptr inbounds %union.anon* %2055, i32 0, i32 0 ; [#uses=1]
+ %2057 = bitcast double* %2056 to %union.GCObject** ; [#uses=1]
+ store %union.GCObject* %2053, %union.GCObject** %2057, align 4
+ %2058 = load %struct.lua_TValue** %i_o78, align 4 ; [#uses=1]
+ %2059 = getelementptr inbounds %struct.lua_TValue* %2058, i32 0, i32 1 ; [#uses=1]
+ store i32 6, i32* %2059, align 4
+ %2060 = load i32** %pc, align 4 ; [#uses=1]
+ %2061 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %2062 = getelementptr inbounds %struct.lua_State* %2061, i32 0, i32 8 ; [#uses=1]
+ store i32* %2060, i32** %2062, align 4
+ %2063 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %2064 = getelementptr inbounds %struct.lua_State* %2063, i32 0, i32 6 ; [#uses=1]
+ %2065 = load %struct.global_State** %2064, align 4 ; [#uses=1]
+ %2066 = getelementptr inbounds %struct.global_State* %2065, i32 0, i32 14 ; [#uses=1]
+ %2067 = load i32* %2066, align 4 ; [#uses=1]
+ %2068 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %2069 = getelementptr inbounds %struct.lua_State* %2068, i32 0, i32 6 ; [#uses=1]
+ %2070 = load %struct.global_State** %2069, align 4 ; [#uses=1]
+ %2071 = getelementptr inbounds %struct.global_State* %2070, i32 0, i32 13 ; [#uses=1]
+ %2072 = load i32* %2071, align 4 ; [#uses=1]
+ %2073 = icmp uge i32 %2067, %2072 ; [#uses=1]
+ br i1 %2073, label %2074, label %2076
+
+; <label>:2074 ; preds = %2050
+ %2075 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9luaC_stepP9lua_State(%struct.lua_State* %2075)
+ br label %2076
+
+; <label>:2076 ; preds = %2074, %2050
+ %2077 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %2078 = getelementptr inbounds %struct.lua_State* %2077, i32 0, i32 5 ; [#uses=1]
+ %2079 = load %struct.lua_TValue** %2078, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %2079, %struct.lua_TValue** %base, align 4
+ br label %28
+
+; <label>:2080 ; preds = %68
+ %2081 = load i32* %i, align 4 ; [#uses=1]
+ %2082 = lshr i32 %2081, 23 ; [#uses=1]
+ %2083 = and i32 %2082, 511 ; [#uses=1]
+ %2084 = sub nsw i32 %2083, 1 ; [#uses=1]
+ store i32 %2084, i32* %b79, align 4
+ %2085 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %2086 = getelementptr inbounds %struct.lua_State* %2085, i32 0, i32 7 ; [#uses=1]
+ %2087 = load %struct.CallInfo** %2086, align 4 ; [#uses=1]
+ store %struct.CallInfo* %2087, %struct.CallInfo** %ci81, align 4
+ %2088 = load %struct.CallInfo** %ci81, align 4 ; [#uses=1]
+ %2089 = getelementptr inbounds %struct.CallInfo* %2088, i32 0, i32 0 ; [#uses=1]
+ %2090 = load %struct.lua_TValue** %2089, align 4 ; [#uses=1]
+ %2091 = load %struct.CallInfo** %ci81, align 4 ; [#uses=1]
+ %2092 = getelementptr inbounds %struct.CallInfo* %2091, i32 0, i32 1 ; [#uses=1]
+ %2093 = load %struct.lua_TValue** %2092, align 4 ; [#uses=1]
+ %2094 = ptrtoint %struct.lua_TValue* %2090 to i32 ; [#uses=1]
+ %2095 = ptrtoint %struct.lua_TValue* %2093 to i32 ; [#uses=1]
+ %2096 = sub i32 %2094, %2095 ; [#uses=1]
+ %2097 = sdiv exact i32 %2096, 12 ; [#uses=1]
+ %2098 = load %struct.LClosure** %cl, align 4 ; [#uses=1]
+ %2099 = getelementptr inbounds %struct.LClosure* %2098, i32 0, i32 7 ; [#uses=1]
+ %2100 = load %struct.Proto** %2099, align 4 ; [#uses=1]
+ %2101 = getelementptr inbounds %struct.Proto* %2100, i32 0, i32 20 ; [#uses=1]
+ %2102 = load i8* %2101, align 1 ; [#uses=1]
+ %2103 = zext i8 %2102 to i32 ; [#uses=1]
+ %2104 = sub nsw i32 %2097, %2103 ; [#uses=1]
+ %2105 = sub nsw i32 %2104, 1 ; [#uses=1]
+ store i32 %2105, i32* %n82, align 4
+ %2106 = load i32* %b79, align 4 ; [#uses=1]
+ %2107 = icmp eq i32 %2106, -1 ; [#uses=1]
+ br i1 %2107, label %2108, label %2145
+
+; <label>:2108 ; preds = %2080
+ %2109 = load i32** %pc, align 4 ; [#uses=1]
+ %2110 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %2111 = getelementptr inbounds %struct.lua_State* %2110, i32 0, i32 8 ; [#uses=1]
+ store i32* %2109, i32** %2111, align 4
+ %2112 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %2113 = getelementptr inbounds %struct.lua_State* %2112, i32 0, i32 9 ; [#uses=1]
+ %2114 = load %struct.lua_TValue** %2113, align 4 ; [#uses=1]
+ %2115 = bitcast %struct.lua_TValue* %2114 to i8* ; [#uses=1]
+ %2116 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %2117 = getelementptr inbounds %struct.lua_State* %2116, i32 0, i32 4 ; [#uses=1]
+ %2118 = load %struct.lua_TValue** %2117, align 4 ; [#uses=1]
+ %2119 = bitcast %struct.lua_TValue* %2118 to i8* ; [#uses=1]
+ %2120 = ptrtoint i8* %2115 to i32 ; [#uses=1]
+ %2121 = ptrtoint i8* %2119 to i32 ; [#uses=1]
+ %2122 = sub i32 %2120, %2121 ; [#uses=1]
+ %2123 = load i32* %n82, align 4 ; [#uses=1]
+ %2124 = mul nsw i32 %2123, 12 ; [#uses=1]
+ %2125 = icmp sle i32 %2122, %2124 ; [#uses=1]
+ br i1 %2125, label %2126, label %2129
+
+; <label>:2126 ; preds = %2108
+ %2127 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %2128 = load i32* %n82, align 4 ; [#uses=1]
+ call void @_Z14luaD_growstackP9lua_Statei(%struct.lua_State* %2127, i32 %2128)
+ br label %2130
+
+; <label>:2129 ; preds = %2108
+ br label %2130
+
+; <label>:2130 ; preds = %2129, %2126
+ %2131 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %2132 = getelementptr inbounds %struct.lua_State* %2131, i32 0, i32 5 ; [#uses=1]
+ %2133 = load %struct.lua_TValue** %2132, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %2133, %struct.lua_TValue** %base, align 4
+ %2134 = load %struct.lua_TValue** %base, align 4 ; [#uses=1]
+ %2135 = load i32* %i, align 4 ; [#uses=1]
+ %2136 = lshr i32 %2135, 6 ; [#uses=1]
+ %2137 = and i32 %2136, 255 ; [#uses=1]
+ %2138 = getelementptr inbounds %struct.lua_TValue* %2134, i32 %2137 ; [#uses=1]
+ store %struct.lua_TValue* %2138, %struct.lua_TValue** %ra, align 4
+ %2139 = load i32* %n82, align 4 ; [#uses=1]
+ store i32 %2139, i32* %b79, align 4
+ %2140 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %2141 = load i32* %n82, align 4 ; [#uses=1]
+ %2142 = getelementptr inbounds %struct.lua_TValue* %2140, i32 %2141 ; [#uses=1]
+ %2143 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %2144 = getelementptr inbounds %struct.lua_State* %2143, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_TValue* %2142, %struct.lua_TValue** %2144, align 4
+ br label %2145
+
+; <label>:2145 ; preds = %2130, %2080
+ store i32 0, i32* %j80, align 4
+ br label %2146
+
+; <label>:2146 ; preds = %2183, %2145
+ %2147 = load i32* %j80, align 4 ; [#uses=1]
+ %2148 = load i32* %b79, align 4 ; [#uses=1]
+ %2149 = icmp slt i32 %2147, %2148 ; [#uses=1]
+ br i1 %2149, label %2150, label %2186
+
+; <label>:2150 ; preds = %2146
+ %2151 = load i32* %j80, align 4 ; [#uses=1]
+ %2152 = load i32* %n82, align 4 ; [#uses=1]
+ %2153 = icmp slt i32 %2151, %2152 ; [#uses=1]
+ br i1 %2153, label %2154, label %2177
+
+; <label>:2154 ; preds = %2150
+ %2155 = load %struct.CallInfo** %ci81, align 4 ; [#uses=1]
+ %2156 = getelementptr inbounds %struct.CallInfo* %2155, i32 0, i32 0 ; [#uses=1]
+ %2157 = load %struct.lua_TValue** %2156, align 4 ; [#uses=1]
+ %2158 = load i32* %n82, align 4 ; [#uses=1]
+ %2159 = sub i32 0, %2158 ; [#uses=1]
+ %2160 = getelementptr inbounds %struct.lua_TValue* %2157, i32 %2159 ; [#uses=1]
+ %2161 = load i32* %j80, align 4 ; [#uses=1]
+ %2162 = getelementptr inbounds %struct.lua_TValue* %2160, i32 %2161 ; [#uses=1]
+ store %struct.lua_TValue* %2162, %struct.lua_TValue** %o283, align 4
+ %2163 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %2164 = load i32* %j80, align 4 ; [#uses=1]
+ %2165 = getelementptr inbounds %struct.lua_TValue* %2163, i32 %2164 ; [#uses=1]
+ store %struct.lua_TValue* %2165, %struct.lua_TValue** %o184, align 4
+ %2166 = load %struct.lua_TValue** %o184, align 4 ; [#uses=1]
+ %2167 = getelementptr inbounds %struct.lua_TValue* %2166, i32 0, i32 0 ; [#uses=1]
+ %2168 = load %struct.lua_TValue** %o283, align 4 ; [#uses=1]
+ %2169 = getelementptr inbounds %struct.lua_TValue* %2168, i32 0, i32 0 ; [#uses=1]
+ %2170 = bitcast %union.anon* %2167 to i8* ; [#uses=1]
+ %2171 = bitcast %union.anon* %2169 to i8* ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2170, i8* %2171, i32 8, i32 4, i1 false)
+ %2172 = load %struct.lua_TValue** %o283, align 4 ; [#uses=1]
+ %2173 = getelementptr inbounds %struct.lua_TValue* %2172, i32 0, i32 1 ; [#uses=1]
+ %2174 = load i32* %2173, align 4 ; [#uses=1]
+ %2175 = load %struct.lua_TValue** %o184, align 4 ; [#uses=1]
+ %2176 = getelementptr inbounds %struct.lua_TValue* %2175, i32 0, i32 1 ; [#uses=1]
+ store i32 %2174, i32* %2176, align 4
+ br label %2182
+
+; <label>:2177 ; preds = %2150
+ %2178 = load %struct.lua_TValue** %ra, align 4 ; [#uses=1]
+ %2179 = load i32* %j80, align 4 ; [#uses=1]
+ %2180 = getelementptr inbounds %struct.lua_TValue* %2178, i32 %2179 ; [#uses=1]
+ %2181 = getelementptr inbounds %struct.lua_TValue* %2180, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %2181, align 4
+ br label %2182
+
+; <label>:2182 ; preds = %2177, %2154
+ br label %2183
+
+; <label>:2183 ; preds = %2182
+ %2184 = load i32* %j80, align 4 ; [#uses=1]
+ %2185 = add nsw i32 %2184, 1 ; [#uses=1]
+ store i32 %2185, i32* %j80, align 4
+ br label %2146
+
+; <label>:2186 ; preds = %2146
+ br label %28
+
+; <label>:2187 ; preds = %1892, %68
+ br label %28
+
+; <label>:2188 ; preds = %1618, %1586, %1473, %59
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z9traceexecP9lua_StatePKj(%struct.lua_State* %L, i32* %pc) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=10]
+ %2 = alloca i32*, align 4 ; [#uses=4]
+ %mask = alloca i8, align 1 ; [#uses=3]
+ %oldpc = alloca i32*, align 4 ; [#uses=3]
+ %p = alloca %struct.Proto*, align 4 ; [#uses=7]
+ %npc = alloca i32, align 4 ; [#uses=3]
+ %newline = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32* %pc, i32** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.lua_State* %3, i32 0, i32 17 ; [#uses=1]
+ %5 = load i8* %4, align 1 ; [#uses=1]
+ store i8 %5, i8* %mask, align 1
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.lua_State* %6, i32 0, i32 8 ; [#uses=1]
+ %8 = load i32** %7, align 4 ; [#uses=1]
+ store i32* %8, i32** %oldpc, align 4
+ %9 = load i32** %2, align 4 ; [#uses=1]
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.lua_State* %10, i32 0, i32 8 ; [#uses=1]
+ store i32* %9, i32** %11, align 4
+ %12 = load i8* %mask, align 1 ; [#uses=1]
+ %13 = zext i8 %12 to i32 ; [#uses=1]
+ %14 = and i32 %13, 8 ; [#uses=1]
+ %15 = icmp ne i32 %14, 0 ; [#uses=1]
+ br i1 %15, label %16, label %28
+
+; <label>:16 ; preds = %0
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.lua_State* %17, i32 0, i32 20 ; [#uses=1]
+ %19 = load i32* %18, align 4 ; [#uses=1]
+ %20 = icmp eq i32 %19, 0 ; [#uses=1]
+ br i1 %20, label %21, label %28
+
+; <label>:21 ; preds = %16
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.lua_State* %22, i32 0, i32 19 ; [#uses=1]
+ %24 = load i32* %23, align 4 ; [#uses=1]
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_State* %25, i32 0, i32 20 ; [#uses=1]
+ store i32 %24, i32* %26, align 4
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaD_callhookP9lua_Stateii(%struct.lua_State* %27, i32 3, i32 -1)
+ br label %28
+
+; <label>:28 ; preds = %21, %16, %0
+ %29 = load i8* %mask, align 1 ; [#uses=1]
+ %30 = zext i8 %29 to i32 ; [#uses=1]
+ %31 = and i32 %30, 4 ; [#uses=1]
+ %32 = icmp ne i32 %31, 0 ; [#uses=1]
+ br i1 %32, label %33, label %107
+
+; <label>:33 ; preds = %28
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_State* %34, i32 0, i32 7 ; [#uses=1]
+ %36 = load %struct.CallInfo** %35, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.CallInfo* %36, i32 0, i32 1 ; [#uses=1]
+ %38 = load %struct.lua_TValue** %37, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.lua_TValue* %38, i32 0, i32 0 ; [#uses=1]
+ %40 = getelementptr inbounds %union.anon* %39, i32 0, i32 0 ; [#uses=1]
+ %41 = bitcast double* %40 to %union.GCObject** ; [#uses=1]
+ %42 = load %union.GCObject** %41, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %union.GCObject* %42, i32 0, i32 0 ; [#uses=1]
+ %44 = bitcast %struct.lua_State* %43 to %union.Closure* ; [#uses=1]
+ %45 = getelementptr inbounds %union.Closure* %44, i32 0, i32 0 ; [#uses=1]
+ %46 = bitcast %struct.CClosure* %45 to %struct.LClosure* ; [#uses=1]
+ %47 = getelementptr inbounds %struct.LClosure* %46, i32 0, i32 7 ; [#uses=1]
+ %48 = load %struct.Proto** %47, align 4 ; [#uses=1]
+ store %struct.Proto* %48, %struct.Proto** %p, align 4
+ %49 = load i32** %2, align 4 ; [#uses=1]
+ %50 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %struct.Proto* %50, i32 0, i32 4 ; [#uses=1]
+ %52 = load i32** %51, align 4 ; [#uses=1]
+ %53 = ptrtoint i32* %49 to i32 ; [#uses=1]
+ %54 = ptrtoint i32* %52 to i32 ; [#uses=1]
+ %55 = sub i32 %53, %54 ; [#uses=1]
+ %56 = sdiv exact i32 %55, 4 ; [#uses=1]
+ %57 = sub nsw i32 %56, 1 ; [#uses=1]
+ store i32 %57, i32* %npc, align 4
+ %58 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.Proto* %58, i32 0, i32 6 ; [#uses=1]
+ %60 = load i32** %59, align 4 ; [#uses=1]
+ %61 = icmp ne i32* %60, null ; [#uses=1]
+ br i1 %61, label %62, label %69
+
+; <label>:62 ; preds = %33
+ %63 = load i32* %npc, align 4 ; [#uses=1]
+ %64 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %struct.Proto* %64, i32 0, i32 6 ; [#uses=1]
+ %66 = load i32** %65, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds i32* %66, i32 %63 ; [#uses=1]
+ %68 = load i32* %67 ; [#uses=1]
+ br label %70
+
+; <label>:69 ; preds = %33
+ br label %70
+
+; <label>:70 ; preds = %69, %62
+ %71 = phi i32 [ %68, %62 ], [ 0, %69 ] ; [#uses=1]
+ store i32 %71, i32* %newline, align 4
+ %72 = load i32* %npc, align 4 ; [#uses=1]
+ %73 = icmp eq i32 %72, 0 ; [#uses=1]
+ br i1 %73, label %103, label %74
+
+; <label>:74 ; preds = %70
+ %75 = load i32** %2, align 4 ; [#uses=1]
+ %76 = load i32** %oldpc, align 4 ; [#uses=1]
+ %77 = icmp ule i32* %75, %76 ; [#uses=1]
+ br i1 %77, label %103, label %78
+
+; <label>:78 ; preds = %74
+ %79 = load i32* %newline, align 4 ; [#uses=1]
+ %80 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.Proto* %80, i32 0, i32 6 ; [#uses=1]
+ %82 = load i32** %81, align 4 ; [#uses=1]
+ %83 = icmp ne i32* %82, null ; [#uses=1]
+ br i1 %83, label %84, label %99
+
+; <label>:84 ; preds = %78
+ %85 = load i32** %oldpc, align 4 ; [#uses=1]
+ %86 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %87 = getelementptr inbounds %struct.Proto* %86, i32 0, i32 4 ; [#uses=1]
+ %88 = load i32** %87, align 4 ; [#uses=1]
+ %89 = ptrtoint i32* %85 to i32 ; [#uses=1]
+ %90 = ptrtoint i32* %88 to i32 ; [#uses=1]
+ %91 = sub i32 %89, %90 ; [#uses=1]
+ %92 = sdiv exact i32 %91, 4 ; [#uses=1]
+ %93 = sub nsw i32 %92, 1 ; [#uses=1]
+ %94 = load %struct.Proto** %p, align 4 ; [#uses=1]
+ %95 = getelementptr inbounds %struct.Proto* %94, i32 0, i32 6 ; [#uses=1]
+ %96 = load i32** %95, align 4 ; [#uses=1]
+ %97 = getelementptr inbounds i32* %96, i32 %93 ; [#uses=1]
+ %98 = load i32* %97 ; [#uses=1]
+ br label %100
+
+; <label>:99 ; preds = %78
+ br label %100
+
+; <label>:100 ; preds = %99, %84
+ %101 = phi i32 [ %98, %84 ], [ 0, %99 ] ; [#uses=1]
+ %102 = icmp ne i32 %79, %101 ; [#uses=1]
+ br i1 %102, label %103, label %106
+
+; <label>:103 ; preds = %100, %74, %70
+ %104 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %105 = load i32* %newline, align 4 ; [#uses=1]
+ call void @_Z13luaD_callhookP9lua_Stateii(%struct.lua_State* %104, i32 2, i32 %105)
+ br label %106
+
+; <label>:106 ; preds = %103, %100
+ br label %107
+
+; <label>:107 ; preds = %106, %28
+ ret void
+}
+
+; [#uses=7]
+define internal void @_Z5ArithP9lua_StateP10lua_TValuePKS1_S4_3TMS(%struct.lua_State* %L, %struct.lua_TValue* %ra, %struct.lua_TValue* %rb, %struct.lua_TValue* %rc, i32 %op) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_TValue*, align 4 ; [#uses=9]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %4 = alloca %struct.lua_TValue*, align 4 ; [#uses=4]
+ %5 = alloca i32, align 4 ; [#uses=3]
+ %tempb = alloca %struct.lua_TValue, align 4 ; [#uses=1]
+ %tempc = alloca %struct.lua_TValue, align 4 ; [#uses=1]
+ %b = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %c = alloca %struct.lua_TValue*, align 4 ; [#uses=2]
+ %nb = alloca double, align 8 ; [#uses=9]
+ %nc = alloca double, align 8 ; [#uses=8]
+ %i_o = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o1 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o2 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o3 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o4 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o5 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ %i_o6 = alloca %struct.lua_TValue*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_TValue* %ra, %struct.lua_TValue** %2, align 4
+ store %struct.lua_TValue* %rb, %struct.lua_TValue** %3, align 4
+ store %struct.lua_TValue* %rc, %struct.lua_TValue** %4, align 4
+ store i32 %op, i32* %5, align 4
+ %6 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %7 = call %struct.lua_TValue* @_Z13luaV_tonumberPK10lua_TValuePS_(%struct.lua_TValue* %6, %struct.lua_TValue* %tempb) ; [#uses=2]
+ store %struct.lua_TValue* %7, %struct.lua_TValue** %b, align 4
+ %8 = icmp ne %struct.lua_TValue* %7, null ; [#uses=1]
+ br i1 %8, label %9, label %99
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %11 = call %struct.lua_TValue* @_Z13luaV_tonumberPK10lua_TValuePS_(%struct.lua_TValue* %10, %struct.lua_TValue* %tempc) ; [#uses=2]
+ store %struct.lua_TValue* %11, %struct.lua_TValue** %c, align 4
+ %12 = icmp ne %struct.lua_TValue* %11, null ; [#uses=1]
+ br i1 %12, label %13, label %99
+
+; <label>:13 ; preds = %9
+ %14 = load %struct.lua_TValue** %b, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_TValue* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = getelementptr inbounds %union.anon* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = load double* %16, align 4 ; [#uses=1]
+ store double %17, double* %nb, align 8
+ %18 = load %struct.lua_TValue** %c, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_TValue* %18, i32 0, i32 0 ; [#uses=1]
+ %20 = getelementptr inbounds %union.anon* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = load double* %20, align 4 ; [#uses=1]
+ store double %21, double* %nc, align 8
+ %22 = load i32* %5, align 4 ; [#uses=1]
+ switch i32 %22, label %97 [
+ i32 5, label %23
+ i32 6, label %33
+ i32 7, label %43
+ i32 8, label %53
+ i32 9, label %63
+ i32 10, label %78
+ i32 11, label %88
+ ]
+
+; <label>:23 ; preds = %13
+ %24 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %24, %struct.lua_TValue** %i_o, align 4
+ %25 = load double* %nb, align 8 ; [#uses=1]
+ %26 = load double* %nc, align 8 ; [#uses=1]
+ %27 = fadd double %25, %26 ; [#uses=1]
+ %28 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.lua_TValue* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = getelementptr inbounds %union.anon* %29, i32 0, i32 0 ; [#uses=1]
+ store double %27, double* %30, align 4
+ %31 = load %struct.lua_TValue** %i_o, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.lua_TValue* %31, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %32, align 4
+ br label %98
+
+; <label>:33 ; preds = %13
+ %34 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %34, %struct.lua_TValue** %i_o1, align 4
+ %35 = load double* %nb, align 8 ; [#uses=1]
+ %36 = load double* %nc, align 8 ; [#uses=1]
+ %37 = fsub double %35, %36 ; [#uses=1]
+ %38 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.lua_TValue* %38, i32 0, i32 0 ; [#uses=1]
+ %40 = getelementptr inbounds %union.anon* %39, i32 0, i32 0 ; [#uses=1]
+ store double %37, double* %40, align 4
+ %41 = load %struct.lua_TValue** %i_o1, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.lua_TValue* %41, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %42, align 4
+ br label %98
+
+; <label>:43 ; preds = %13
+ %44 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %44, %struct.lua_TValue** %i_o2, align 4
+ %45 = load double* %nb, align 8 ; [#uses=1]
+ %46 = load double* %nc, align 8 ; [#uses=1]
+ %47 = fmul double %45, %46 ; [#uses=1]
+ %48 = load %struct.lua_TValue** %i_o2, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.lua_TValue* %48, i32 0, i32 0 ; [#uses=1]
+ %50 = getelementptr inbounds %union.anon* %49, i32 0, i32 0 ; [#uses=1]
+ store double %47, double* %50, align 4
+ %51 = load %struct.lua_TValue** %i_o2, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.lua_TValue* %51, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %52, align 4
+ br label %98
+
+; <label>:53 ; preds = %13
+ %54 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %54, %struct.lua_TValue** %i_o3, align 4
+ %55 = load double* %nb, align 8 ; [#uses=1]
+ %56 = load double* %nc, align 8 ; [#uses=1]
+ %57 = fdiv double %55, %56 ; [#uses=1]
+ %58 = load %struct.lua_TValue** %i_o3, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.lua_TValue* %58, i32 0, i32 0 ; [#uses=1]
+ %60 = getelementptr inbounds %union.anon* %59, i32 0, i32 0 ; [#uses=1]
+ store double %57, double* %60, align 4
+ %61 = load %struct.lua_TValue** %i_o3, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds %struct.lua_TValue* %61, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %62, align 4
+ br label %98
+
+; <label>:63 ; preds = %13
+ %64 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %64, %struct.lua_TValue** %i_o4, align 4
+ %65 = load double* %nb, align 8 ; [#uses=1]
+ %66 = load double* %nb, align 8 ; [#uses=1]
+ %67 = load double* %nc, align 8 ; [#uses=1]
+ %68 = fdiv double %66, %67 ; [#uses=1]
+ %69 = call double @floor(double %68) nounwind readnone ; [#uses=1]
+ %70 = load double* %nc, align 8 ; [#uses=1]
+ %71 = fmul double %69, %70 ; [#uses=1]
+ %72 = fsub double %65, %71 ; [#uses=1]
+ %73 = load %struct.lua_TValue** %i_o4, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.lua_TValue* %73, i32 0, i32 0 ; [#uses=1]
+ %75 = getelementptr inbounds %union.anon* %74, i32 0, i32 0 ; [#uses=1]
+ store double %72, double* %75, align 4
+ %76 = load %struct.lua_TValue** %i_o4, align 4 ; [#uses=1]
+ %77 = getelementptr inbounds %struct.lua_TValue* %76, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %77, align 4
+ br label %98
+
+; <label>:78 ; preds = %13
+ %79 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %79, %struct.lua_TValue** %i_o5, align 4
+ %80 = load double* %nb, align 8 ; [#uses=1]
+ %81 = load double* %nc, align 8 ; [#uses=1]
+ %82 = call double @llvm.pow.f64(double %80, double %81) ; [#uses=1]
+ %83 = load %struct.lua_TValue** %i_o5, align 4 ; [#uses=1]
+ %84 = getelementptr inbounds %struct.lua_TValue* %83, i32 0, i32 0 ; [#uses=1]
+ %85 = getelementptr inbounds %union.anon* %84, i32 0, i32 0 ; [#uses=1]
+ store double %82, double* %85, align 4
+ %86 = load %struct.lua_TValue** %i_o5, align 4 ; [#uses=1]
+ %87 = getelementptr inbounds %struct.lua_TValue* %86, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %87, align 4
+ br label %98
+
+; <label>:88 ; preds = %13
+ %89 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ store %struct.lua_TValue* %89, %struct.lua_TValue** %i_o6, align 4
+ %90 = load double* %nb, align 8 ; [#uses=1]
+ %91 = fsub double -0.000000e+00, %90 ; [#uses=1]
+ %92 = load %struct.lua_TValue** %i_o6, align 4 ; [#uses=1]
+ %93 = getelementptr inbounds %struct.lua_TValue* %92, i32 0, i32 0 ; [#uses=1]
+ %94 = getelementptr inbounds %union.anon* %93, i32 0, i32 0 ; [#uses=1]
+ store double %91, double* %94, align 4
+ %95 = load %struct.lua_TValue** %i_o6, align 4 ; [#uses=1]
+ %96 = getelementptr inbounds %struct.lua_TValue* %95, i32 0, i32 1 ; [#uses=1]
+ store i32 3, i32* %96, align 4
+ br label %98
+
+; <label>:97 ; preds = %13
+ br label %98
+
+; <label>:98 ; preds = %97, %88, %78, %63, %53, %43, %33, %23
+ br label %112
+
+; <label>:99 ; preds = %9, %0
+ %100 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %101 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %102 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %103 = load %struct.lua_TValue** %2, align 4 ; [#uses=1]
+ %104 = load i32* %5, align 4 ; [#uses=1]
+ %105 = call i32 @_Z10call_binTMP9lua_StatePK10lua_TValueS3_PS1_3TMS(%struct.lua_State* %100, %struct.lua_TValue* %101, %struct.lua_TValue* %102, %struct.lua_TValue* %103, i32 %104) ; [#uses=1]
+ %106 = icmp ne i32 %105, 0 ; [#uses=1]
+ br i1 %106, label %111, label %107
+
+; <label>:107 ; preds = %99
+ %108 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %109 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %110 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ call void @_Z15luaG_aritherrorP9lua_StatePK10lua_TValueS3_(%struct.lua_State* %108, %struct.lua_TValue* %109, %struct.lua_TValue* %110)
+ br label %111
+
+; <label>:111 ; preds = %107, %99
+ br label %112
+
+; <label>:112 ; preds = %111, %98
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z9lessequalP9lua_StatePK10lua_TValueS3_(%struct.lua_State* %L, %struct.lua_TValue* %l, %struct.lua_TValue* %r) {
+ %1 = alloca i32, align 4 ; [#uses=7]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %3 = alloca %struct.lua_TValue*, align 4 ; [#uses=10]
+ %4 = alloca %struct.lua_TValue*, align 4 ; [#uses=8]
+ %res = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.lua_TValue* %l, %struct.lua_TValue** %3, align 4
+ store %struct.lua_TValue* %r, %struct.lua_TValue** %4, align 4
+ %5 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.lua_TValue* %5, i32 0, i32 1 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ %8 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.lua_TValue* %8, i32 0, i32 1 ; [#uses=1]
+ %10 = load i32* %9, align 4 ; [#uses=1]
+ %11 = icmp ne i32 %7, %10 ; [#uses=1]
+ br i1 %11, label %12, label %17
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %15 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %16 = call i32 @_Z15luaG_ordererrorP9lua_StatePK10lua_TValueS3_(%struct.lua_State* %13, %struct.lua_TValue* %14, %struct.lua_TValue* %15) ; [#uses=1]
+ store i32 %16, i32* %1
+ br label %84
+
+; <label>:17 ; preds = %0
+ %18 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.lua_TValue* %18, i32 0, i32 1 ; [#uses=1]
+ %20 = load i32* %19, align 4 ; [#uses=1]
+ %21 = icmp eq i32 %20, 3 ; [#uses=1]
+ br i1 %21, label %22, label %33
+
+; <label>:22 ; preds = %17
+ %23 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.lua_TValue* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = getelementptr inbounds %union.anon* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = load double* %25, align 4 ; [#uses=1]
+ %27 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.lua_TValue* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = getelementptr inbounds %union.anon* %28, i32 0, i32 0 ; [#uses=1]
+ %30 = load double* %29, align 4 ; [#uses=1]
+ %31 = fcmp ole double %26, %30 ; [#uses=1]
+ %32 = zext i1 %31 to i32 ; [#uses=1]
+ store i32 %32, i32* %1
+ br label %84
+
+; <label>:33 ; preds = %17
+ %34 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.lua_TValue* %34, i32 0, i32 1 ; [#uses=1]
+ %36 = load i32* %35, align 4 ; [#uses=1]
+ %37 = icmp eq i32 %36, 4 ; [#uses=1]
+ br i1 %37, label %38, label %56
+
+; <label>:38 ; preds = %33
+ %39 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.lua_TValue* %39, i32 0, i32 0 ; [#uses=1]
+ %41 = getelementptr inbounds %union.anon* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = bitcast double* %41 to %union.GCObject** ; [#uses=1]
+ %43 = load %union.GCObject** %42, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds %union.GCObject* %43, i32 0, i32 0 ; [#uses=1]
+ %45 = bitcast %struct.lua_State* %44 to %union.TString* ; [#uses=1]
+ %46 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.lua_TValue* %46, i32 0, i32 0 ; [#uses=1]
+ %48 = getelementptr inbounds %union.anon* %47, i32 0, i32 0 ; [#uses=1]
+ %49 = bitcast double* %48 to %union.GCObject** ; [#uses=1]
+ %50 = load %union.GCObject** %49, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds %union.GCObject* %50, i32 0, i32 0 ; [#uses=1]
+ %52 = bitcast %struct.lua_State* %51 to %union.TString* ; [#uses=1]
+ %53 = call i32 @_Z8l_strcmpPK7TStringS1_(%union.TString* %45, %union.TString* %52) ; [#uses=1]
+ %54 = icmp sle i32 %53, 0 ; [#uses=1]
+ %55 = zext i1 %54 to i32 ; [#uses=1]
+ store i32 %55, i32* %1
+ br label %84
+
+; <label>:56 ; preds = %33
+ %57 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %58 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %59 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %60 = call i32 @_Z12call_orderTMP9lua_StatePK10lua_TValueS3_3TMS(%struct.lua_State* %57, %struct.lua_TValue* %58, %struct.lua_TValue* %59, i32 14) ; [#uses=2]
+ store i32 %60, i32* %res, align 4
+ %61 = icmp ne i32 %60, -1 ; [#uses=1]
+ br i1 %61, label %62, label %64
+
+; <label>:62 ; preds = %56
+ %63 = load i32* %res, align 4 ; [#uses=1]
+ store i32 %63, i32* %1
+ br label %84
+
+; <label>:64 ; preds = %56
+ %65 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %66 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %67 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %68 = call i32 @_Z12call_orderTMP9lua_StatePK10lua_TValueS3_3TMS(%struct.lua_State* %65, %struct.lua_TValue* %66, %struct.lua_TValue* %67, i32 13) ; [#uses=2]
+ store i32 %68, i32* %res, align 4
+ %69 = icmp ne i32 %68, -1 ; [#uses=1]
+ br i1 %69, label %70, label %75
+
+; <label>:70 ; preds = %64
+ %71 = load i32* %res, align 4 ; [#uses=1]
+ %72 = icmp ne i32 %71, 0 ; [#uses=1]
+ %73 = xor i1 %72, true ; [#uses=1]
+ %74 = zext i1 %73 to i32 ; [#uses=1]
+ store i32 %74, i32* %1
+ br label %84
+
+; <label>:75 ; preds = %64
+ br label %76
+
+; <label>:76 ; preds = %75
+ br label %77
+
+; <label>:77 ; preds = %76
+ br label %78
+
+; <label>:78 ; preds = %77
+ br label %79
+
+; <label>:79 ; preds = %78
+ %80 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %81 = load %struct.lua_TValue** %3, align 4 ; [#uses=1]
+ %82 = load %struct.lua_TValue** %4, align 4 ; [#uses=1]
+ %83 = call i32 @_Z15luaG_ordererrorP9lua_StatePK10lua_TValueS3_(%struct.lua_State* %80, %struct.lua_TValue* %81, %struct.lua_TValue* %82) ; [#uses=1]
+ store i32 %83, i32* %1
+ br label %84
+
+; <label>:84 ; preds = %79, %70, %62, %38, %22, %12
+ %85 = load i32* %1 ; [#uses=1]
+ ret i32 %85
+}
+
+; [#uses=1]
+declare i32 @strcoll(i8*, i8*) nounwind readonly
+
+; [#uses=36]
+define hidden i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %z) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.Zio*, align 4 ; [#uses=7]
+ %size = alloca i32, align 4 ; [#uses=3]
+ %L = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %buff = alloca i8*, align 4 ; [#uses=3]
+ store %struct.Zio* %z, %struct.Zio** %2, align 4
+ %3 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.Zio* %3, i32 0, i32 4 ; [#uses=1]
+ %5 = load %struct.lua_State** %4, align 4 ; [#uses=1]
+ store %struct.lua_State* %5, %struct.lua_State** %L, align 4
+ %6 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.Zio* %6, i32 0, i32 2 ; [#uses=1]
+ %8 = load i8* (%struct.lua_State*, i8*, i32*)** %7, align 4 ; [#uses=1]
+ %9 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %10 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.Zio* %10, i32 0, i32 3 ; [#uses=1]
+ %12 = load i8** %11, align 4 ; [#uses=1]
+ %13 = call i8* %8(%struct.lua_State* %9, i8* %12, i32* %size) ; [#uses=1]
+ store i8* %13, i8** %buff, align 4
+ %14 = load i8** %buff, align 4 ; [#uses=1]
+ %15 = icmp eq i8* %14, null ; [#uses=1]
+ br i1 %15, label %19, label %16
+
+; <label>:16 ; preds = %0
+ %17 = load i32* %size, align 4 ; [#uses=1]
+ %18 = icmp eq i32 %17, 0 ; [#uses=1]
+ br i1 %18, label %19, label %20
+
+; <label>:19 ; preds = %16, %0
+ store i32 -1, i32* %1
+ br label %34
+
+; <label>:20 ; preds = %16
+ %21 = load i32* %size, align 4 ; [#uses=1]
+ %22 = sub i32 %21, 1 ; [#uses=1]
+ %23 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.Zio* %23, i32 0, i32 0 ; [#uses=1]
+ store i32 %22, i32* %24, align 4
+ %25 = load i8** %buff, align 4 ; [#uses=1]
+ %26 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.Zio* %26, i32 0, i32 1 ; [#uses=1]
+ store i8* %25, i8** %27, align 4
+ %28 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.Zio* %28, i32 0, i32 1 ; [#uses=2]
+ %30 = load i8** %29, align 4 ; [#uses=2]
+ %31 = getelementptr inbounds i8* %30, i32 1 ; [#uses=1]
+ store i8* %31, i8** %29, align 4
+ %32 = load i8* %30 ; [#uses=1]
+ %33 = zext i8 %32 to i32 ; [#uses=1]
+ store i32 %33, i32* %1
+ br label %34
+
+; <label>:34 ; preds = %20, %19
+ %35 = load i32* %1 ; [#uses=1]
+ ret i32 %35
+}
+
+; [#uses=2]
+define hidden i32 @_Z14luaZ_lookaheadP3Zio(%struct.Zio* %z) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.Zio*, align 4 ; [#uses=6]
+ store %struct.Zio* %z, %struct.Zio** %2, align 4
+ %3 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.Zio* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ %6 = icmp eq i32 %5, 0 ; [#uses=1]
+ br i1 %6, label %7, label %22
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %9 = call i32 @_Z9luaZ_fillP3Zio(%struct.Zio* %8) ; [#uses=1]
+ %10 = icmp eq i32 %9, -1 ; [#uses=1]
+ br i1 %10, label %11, label %12
+
+; <label>:11 ; preds = %7
+ store i32 -1, i32* %1
+ br label %28
+
+; <label>:12 ; preds = %7
+ %13 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.Zio* %13, i32 0, i32 0 ; [#uses=2]
+ %15 = load i32* %14, align 4 ; [#uses=1]
+ %16 = add i32 %15, 1 ; [#uses=1]
+ store i32 %16, i32* %14, align 4
+ %17 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.Zio* %17, i32 0, i32 1 ; [#uses=2]
+ %19 = load i8** %18, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds i8* %19, i32 -1 ; [#uses=1]
+ store i8* %20, i8** %18, align 4
+ br label %21
+
+; <label>:21 ; preds = %12
+ br label %22
+
+; <label>:22 ; preds = %21, %0
+ %23 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.Zio* %23, i32 0, i32 1 ; [#uses=1]
+ %25 = load i8** %24, align 4 ; [#uses=1]
+ %26 = load i8* %25 ; [#uses=1]
+ %27 = zext i8 %26 to i32 ; [#uses=1]
+ store i32 %27, i32* %1
+ br label %28
+
+; <label>:28 ; preds = %22, %11
+ %29 = load i32* %1 ; [#uses=1]
+ ret i32 %29
+}
+
+; [#uses=1]
+define hidden void @_Z9luaZ_initP9lua_StateP3ZioPFPKcS0_PvPjES5_(%struct.lua_State* %L, %struct.Zio* %z, i8* (%struct.lua_State*, i8*, i32*)* %reader, i8* %data) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca %struct.Zio*, align 4 ; [#uses=6]
+ %3 = alloca i8* (%struct.lua_State*, i8*, i32*)*, align 4 ; [#uses=2]
+ %4 = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.Zio* %z, %struct.Zio** %2, align 4
+ store i8* (%struct.lua_State*, i8*, i32*)* %reader, i8* (%struct.lua_State*, i8*, i32*)** %3, align 4
+ store i8* %data, i8** %4, align 4
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.Zio* %6, i32 0, i32 4 ; [#uses=1]
+ store %struct.lua_State* %5, %struct.lua_State** %7, align 4
+ %8 = load i8* (%struct.lua_State*, i8*, i32*)** %3, align 4 ; [#uses=1]
+ %9 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.Zio* %9, i32 0, i32 2 ; [#uses=1]
+ store i8* (%struct.lua_State*, i8*, i32*)* %8, i8* (%struct.lua_State*, i8*, i32*)** %10, align 4
+ %11 = load i8** %4, align 4 ; [#uses=1]
+ %12 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.Zio* %12, i32 0, i32 3 ; [#uses=1]
+ store i8* %11, i8** %13, align 4
+ %14 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.Zio* %14, i32 0, i32 0 ; [#uses=1]
+ store i32 0, i32* %15, align 4
+ %16 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.Zio* %16, i32 0, i32 1 ; [#uses=1]
+ store i8* null, i8** %17, align 4
+ ret void
+}
+
+; [#uses=1]
+define hidden i32 @_Z9luaZ_readP3ZioPvj(%struct.Zio* %z, i8* %b, i32 %n) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.Zio*, align 4 ; [#uses=7]
+ %3 = alloca i8*, align 4 ; [#uses=4]
+ %4 = alloca i32, align 4 ; [#uses=7]
+ %m = alloca i32, align 4 ; [#uses=6]
+ store %struct.Zio* %z, %struct.Zio** %2, align 4
+ store i8* %b, i8** %3, align 4
+ store i32 %n, i32* %4, align 4
+ br label %5
+
+; <label>:5 ; preds = %26, %0
+ %6 = load i32* %4, align 4 ; [#uses=1]
+ %7 = icmp ne i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %49
+
+; <label>:8 ; preds = %5
+ %9 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %10 = call i32 @_Z14luaZ_lookaheadP3Zio(%struct.Zio* %9) ; [#uses=1]
+ %11 = icmp eq i32 %10, -1 ; [#uses=1]
+ br i1 %11, label %12, label %14
+
+; <label>:12 ; preds = %8
+ %13 = load i32* %4, align 4 ; [#uses=1]
+ store i32 %13, i32* %1
+ br label %50
+
+; <label>:14 ; preds = %8
+ %15 = load i32* %4, align 4 ; [#uses=1]
+ %16 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.Zio* %16, i32 0, i32 0 ; [#uses=1]
+ %18 = load i32* %17, align 4 ; [#uses=1]
+ %19 = icmp ule i32 %15, %18 ; [#uses=1]
+ br i1 %19, label %20, label %22
+
+; <label>:20 ; preds = %14
+ %21 = load i32* %4, align 4 ; [#uses=1]
+ br label %26
+
+; <label>:22 ; preds = %14
+ %23 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.Zio* %23, i32 0, i32 0 ; [#uses=1]
+ %25 = load i32* %24, align 4 ; [#uses=1]
+ br label %26
+
+; <label>:26 ; preds = %22, %20
+ %27 = phi i32 [ %21, %20 ], [ %25, %22 ] ; [#uses=1]
+ store i32 %27, i32* %m, align 4
+ %28 = load i8** %3, align 4 ; [#uses=1]
+ %29 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %30 = getelementptr inbounds %struct.Zio* %29, i32 0, i32 1 ; [#uses=1]
+ %31 = load i8** %30, align 4 ; [#uses=1]
+ %32 = load i32* %m, align 4 ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %28, i8* %31, i32 %32, i32 1, i1 false)
+ %33 = load i32* %m, align 4 ; [#uses=1]
+ %34 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.Zio* %34, i32 0, i32 0 ; [#uses=2]
+ %36 = load i32* %35, align 4 ; [#uses=1]
+ %37 = sub i32 %36, %33 ; [#uses=1]
+ store i32 %37, i32* %35, align 4
+ %38 = load i32* %m, align 4 ; [#uses=1]
+ %39 = load %struct.Zio** %2, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.Zio* %39, i32 0, i32 1 ; [#uses=2]
+ %41 = load i8** %40, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds i8* %41, i32 %38 ; [#uses=1]
+ store i8* %42, i8** %40, align 4
+ %43 = load i8** %3, align 4 ; [#uses=1]
+ %44 = load i32* %m, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds i8* %43, i32 %44 ; [#uses=1]
+ store i8* %45, i8** %3, align 4
+ %46 = load i32* %m, align 4 ; [#uses=1]
+ %47 = load i32* %4, align 4 ; [#uses=1]
+ %48 = sub i32 %47, %46 ; [#uses=1]
+ store i32 %48, i32* %4, align 4
+ br label %5
+
+; <label>:49 ; preds = %5
+ store i32 0, i32* %1
+ br label %50
+
+; <label>:50 ; preds = %49, %12
+ %51 = load i32* %1 ; [#uses=1]
+ ret i32 %51
+}
+
+; [#uses=2]
+define hidden i8* @_Z14luaZ_openspaceP9lua_StateP7Mbufferj(%struct.lua_State* %L, %struct.Mbuffer* %buff, i32 %n) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca %struct.Mbuffer*, align 4 ; [#uses=7]
+ %3 = alloca i32, align 4 ; [#uses=7]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.Mbuffer* %buff, %struct.Mbuffer** %2, align 4
+ store i32 %n, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = load %struct.Mbuffer** %2, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.Mbuffer* %5, i32 0, i32 2 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ %8 = icmp ugt i32 %4, %7 ; [#uses=1]
+ br i1 %8, label %9, label %39
+
+; <label>:9 ; preds = %0
+ %10 = load i32* %3, align 4 ; [#uses=1]
+ %11 = icmp ult i32 %10, 32 ; [#uses=1]
+ br i1 %11, label %12, label %13
+
+; <label>:12 ; preds = %9
+ store i32 32, i32* %3, align 4
+ br label %13
+
+; <label>:13 ; preds = %12, %9
+ %14 = load i32* %3, align 4 ; [#uses=1]
+ %15 = add i32 %14, 1 ; [#uses=1]
+ %16 = icmp ule i32 %15, -3 ; [#uses=1]
+ br i1 %16, label %17, label %29
+
+; <label>:17 ; preds = %13
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = load %struct.Mbuffer** %2, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.Mbuffer* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = load i8** %20, align 4 ; [#uses=1]
+ %22 = load %struct.Mbuffer** %2, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds %struct.Mbuffer* %22, i32 0, i32 2 ; [#uses=1]
+ %24 = load i32* %23, align 4 ; [#uses=1]
+ %25 = mul i32 %24, 1 ; [#uses=1]
+ %26 = load i32* %3, align 4 ; [#uses=1]
+ %27 = mul i32 %26, 1 ; [#uses=1]
+ %28 = call i8* @_Z13luaM_realloc_P9lua_StatePvjj(%struct.lua_State* %18, i8* %21, i32 %25, i32 %27) ; [#uses=1]
+ br label %32
+
+; <label>:29 ; preds = %13
+ %30 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %31 = call i8* @_Z11luaM_toobigP9lua_State(%struct.lua_State* %30) ; [#uses=1]
+ br label %32
+
+; <label>:32 ; preds = %29, %17
+ %33 = phi i8* [ %28, %17 ], [ %31, %29 ] ; [#uses=1]
+ %34 = load %struct.Mbuffer** %2, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.Mbuffer* %34, i32 0, i32 0 ; [#uses=1]
+ store i8* %33, i8** %35, align 4
+ %36 = load i32* %3, align 4 ; [#uses=1]
+ %37 = load %struct.Mbuffer** %2, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.Mbuffer* %37, i32 0, i32 2 ; [#uses=1]
+ store i32 %36, i32* %38, align 4
+ br label %39
+
+; <label>:39 ; preds = %32, %0
+ %40 = load %struct.Mbuffer** %2, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.Mbuffer* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = load i8** %41, align 4 ; [#uses=1]
+ ret i8* %42
+}
+
+; [#uses=24]
+define i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %L, i32 %narg, i8* %extramsg) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %3 = alloca i32, align 4 ; [#uses=6]
+ %4 = alloca i8*, align 4 ; [#uses=4]
+ %ar = alloca %struct.lua_Debug, align 4 ; [#uses=7]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %narg, i32* %3, align 4
+ store i8* %extramsg, i8** %4, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = call i32 @_Z12lua_getstackP9lua_StateiP9lua_Debug(%struct.lua_State* %5, i32 0, %struct.lua_Debug* %ar) ; [#uses=1]
+ %7 = icmp ne i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %13, label %8
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %10 = load i32* %3, align 4 ; [#uses=1]
+ %11 = load i8** %4, align 4 ; [#uses=1]
+ %12 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %9, i8* getelementptr inbounds ([22 x i8]* @.str242, i32 0, i32 0), i32 %10, i8* %11) ; [#uses=1]
+ store i32 %12, i32* %1
+ br label %45
+
+; <label>:13 ; preds = %0
+ %14 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %15 = call i32 @_Z11lua_getinfoP9lua_StatePKcP9lua_Debug(%struct.lua_State* %14, i8* getelementptr inbounds ([2 x i8]* @.str124358, i32 0, i32 0), %struct.lua_Debug* %ar) ; [#uses=0]
+ %16 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 2 ; [#uses=1]
+ %17 = load i8** %16, align 4 ; [#uses=1]
+ %18 = call i32 @strcmp(i8* %17, i8* getelementptr inbounds ([7 x i8]* @.str2244, i32 0, i32 0)) nounwind readonly ; [#uses=1]
+ %19 = icmp eq i32 %18, 0 ; [#uses=1]
+ br i1 %19, label %20, label %32
+
+; <label>:20 ; preds = %13
+ %21 = load i32* %3, align 4 ; [#uses=1]
+ %22 = add nsw i32 %21, -1 ; [#uses=1]
+ store i32 %22, i32* %3, align 4
+ %23 = load i32* %3, align 4 ; [#uses=1]
+ %24 = icmp eq i32 %23, 0 ; [#uses=1]
+ br i1 %24, label %25, label %31
+
+; <label>:25 ; preds = %20
+ %26 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 1 ; [#uses=1]
+ %28 = load i8** %27, align 4 ; [#uses=1]
+ %29 = load i8** %4, align 4 ; [#uses=1]
+ %30 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %26, i8* getelementptr inbounds ([30 x i8]* @.str3245, i32 0, i32 0), i8* %28, i8* %29) ; [#uses=1]
+ store i32 %30, i32* %1
+ br label %45
+
+; <label>:31 ; preds = %20
+ br label %32
+
+; <label>:32 ; preds = %31, %13
+ %33 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 1 ; [#uses=1]
+ %34 = load i8** %33, align 4 ; [#uses=1]
+ %35 = icmp eq i8* %34, null ; [#uses=1]
+ br i1 %35, label %36, label %38
+
+; <label>:36 ; preds = %32
+ %37 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 1 ; [#uses=1]
+ store i8* getelementptr inbounds ([2 x i8]* @.str4246, i32 0, i32 0), i8** %37, align 4
+ br label %38
+
+; <label>:38 ; preds = %36, %32
+ %39 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %40 = load i32* %3, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 1 ; [#uses=1]
+ %42 = load i8** %41, align 4 ; [#uses=1]
+ %43 = load i8** %4, align 4 ; [#uses=1]
+ %44 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %39, i8* getelementptr inbounds ([30 x i8]* @.str5247, i32 0, i32 0), i32 %40, i8* %42, i8* %43) ; [#uses=1]
+ store i32 %44, i32* %1
+ br label %45
+
+; <label>:45 ; preds = %38, %25, %8
+ %46 = load i32* %1 ; [#uses=1]
+ ret i32 %46
+}
+
+; [#uses=53]
+define i32 @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %L, i8* %fmt, ...) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %argp = alloca i8*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %fmt, i8** %2, align 4
+ %3 = bitcast i8** %argp to i8* ; [#uses=1]
+ call void @llvm.va_start(i8* %3)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10luaL_whereP9lua_Statei(%struct.lua_State* %4, i32 1)
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = load i8** %2, align 4 ; [#uses=1]
+ %7 = load i8** %argp, align 4 ; [#uses=1]
+ %8 = call i8* @_Z16lua_pushvfstringP9lua_StatePKcPc(%struct.lua_State* %5, i8* %6, i8* %7) ; [#uses=0]
+ %9 = bitcast i8** %argp to i8* ; [#uses=1]
+ call void @llvm.va_end(i8* %9)
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_concatP9lua_Statei(%struct.lua_State* %10, i32 2)
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = call i32 @_Z9lua_errorP9lua_State(%struct.lua_State* %11) ; [#uses=1]
+ ret i32 %12
+}
+
+; [#uses=2]
+define i32 @_Z13luaL_typerrorP9lua_StateiPKc(%struct.lua_State* %L, i32 %narg, i8* %tname) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ %msg = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %narg, i32* %2, align 4
+ store i8* %tname, i8** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i8** %3, align 4 ; [#uses=1]
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load i32* %2, align 4 ; [#uses=1]
+ %9 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %7, i32 %8) ; [#uses=1]
+ %10 = call i8* @_Z12lua_typenameP9lua_Statei(%struct.lua_State* %6, i32 %9) ; [#uses=1]
+ %11 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %4, i8* getelementptr inbounds ([20 x i8]* @.str6248, i32 0, i32 0), i8* %5, i8* %10) ; [#uses=1]
+ store i8* %11, i8** %msg, align 4
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = load i32* %2, align 4 ; [#uses=1]
+ %14 = load i8** %msg, align 4 ; [#uses=1]
+ %15 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %12, i32 %13, i8* %14) ; [#uses=1]
+ ret i32 %15
+}
+
+; [#uses=3]
+define void @_Z10luaL_whereP9lua_Statei(%struct.lua_State* %L, i32 %level) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %ar = alloca %struct.lua_Debug, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %level, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z12lua_getstackP9lua_StateiP9lua_Debug(%struct.lua_State* %3, i32 %4, %struct.lua_Debug* %ar) ; [#uses=1]
+ %6 = icmp ne i32 %5, 0 ; [#uses=1]
+ br i1 %6, label %7, label %21
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = call i32 @_Z11lua_getinfoP9lua_StatePKcP9lua_Debug(%struct.lua_State* %8, i8* getelementptr inbounds ([3 x i8]* @.str7249, i32 0, i32 0), %struct.lua_Debug* %ar) ; [#uses=0]
+ %10 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 5 ; [#uses=1]
+ %11 = load i32* %10, align 4 ; [#uses=1]
+ %12 = icmp sgt i32 %11, 0 ; [#uses=1]
+ br i1 %12, label %13, label %20
+
+; <label>:13 ; preds = %7
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 9 ; [#uses=1]
+ %16 = getelementptr inbounds [60 x i8]* %15, i32 0, i32 0 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 5 ; [#uses=1]
+ %18 = load i32* %17, align 4 ; [#uses=1]
+ %19 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %14, i8* getelementptr inbounds ([8 x i8]* @.str8250, i32 0, i32 0), i8* %16, i32 %18) ; [#uses=0]
+ br label %23
+
+; <label>:20 ; preds = %7
+ br label %21
+
+; <label>:21 ; preds = %20, %0
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %22, i8* getelementptr inbounds ([1 x i8]* @.str9251, i32 0, i32 0), i32 0)
+ br label %23
+
+; <label>:23 ; preds = %21, %13
+ ret void
+}
+
+; [#uses=4]
+define i32 @_Z16luaL_checkoptionP9lua_StateiPKcPKS2_(%struct.lua_State* %L, i32 %narg, i8* %def, i8** %lst) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %3 = alloca i32, align 4 ; [#uses=4]
+ %4 = alloca i8*, align 4 ; [#uses=3]
+ %5 = alloca i8**, align 4 ; [#uses=3]
+ %name = alloca i8*, align 4 ; [#uses=3]
+ %i = alloca i32, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %narg, i32* %3, align 4
+ store i8* %def, i8** %4, align 4
+ store i8** %lst, i8*** %5, align 4
+ %6 = load i8** %4, align 4 ; [#uses=1]
+ %7 = icmp ne i8* %6, null ; [#uses=1]
+ br i1 %7, label %8, label %13
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %10 = load i32* %3, align 4 ; [#uses=1]
+ %11 = load i8** %4, align 4 ; [#uses=1]
+ %12 = call i8* @_Z15luaL_optlstringP9lua_StateiPKcPj(%struct.lua_State* %9, i32 %10, i8* %11, i32* null) ; [#uses=1]
+ br label %17
+
+; <label>:13 ; preds = %0
+ %14 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %15 = load i32* %3, align 4 ; [#uses=1]
+ %16 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %14, i32 %15, i32* null) ; [#uses=1]
+ br label %17
+
+; <label>:17 ; preds = %13, %8
+ %18 = phi i8* [ %12, %8 ], [ %16, %13 ] ; [#uses=1]
+ store i8* %18, i8** %name, align 4
+ store i32 0, i32* %i, align 4
+ br label %19
+
+; <label>:19 ; preds = %36, %17
+ %20 = load i32* %i, align 4 ; [#uses=1]
+ %21 = load i8*** %5, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds i8** %21, i32 %20 ; [#uses=1]
+ %23 = load i8** %22 ; [#uses=1]
+ %24 = icmp ne i8* %23, null ; [#uses=1]
+ br i1 %24, label %25, label %39
+
+; <label>:25 ; preds = %19
+ %26 = load i32* %i, align 4 ; [#uses=1]
+ %27 = load i8*** %5, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds i8** %27, i32 %26 ; [#uses=1]
+ %29 = load i8** %28 ; [#uses=1]
+ %30 = load i8** %name, align 4 ; [#uses=1]
+ %31 = call i32 @strcmp(i8* %29, i8* %30) nounwind readonly ; [#uses=1]
+ %32 = icmp eq i32 %31, 0 ; [#uses=1]
+ br i1 %32, label %33, label %35
+
+; <label>:33 ; preds = %25
+ %34 = load i32* %i, align 4 ; [#uses=1]
+ store i32 %34, i32* %1
+ br label %46
+
+; <label>:35 ; preds = %25
+ br label %36
+
+; <label>:36 ; preds = %35
+ %37 = load i32* %i, align 4 ; [#uses=1]
+ %38 = add nsw i32 %37, 1 ; [#uses=1]
+ store i32 %38, i32* %i, align 4
+ br label %19
+
+; <label>:39 ; preds = %19
+ %40 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %41 = load i32* %3, align 4 ; [#uses=1]
+ %42 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %43 = load i8** %name, align 4 ; [#uses=1]
+ %44 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %42, i8* getelementptr inbounds ([20 x i8]* @.str10252, i32 0, i32 0), i8* %43) ; [#uses=1]
+ %45 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %40, i32 %41, i8* %44) ; [#uses=1]
+ store i32 %45, i32* %1
+ br label %46
+
+; <label>:46 ; preds = %39, %33
+ %47 = load i32* %1 ; [#uses=1]
+ ret i32 %47
+}
+
+; [#uses=13]
+define i8* @_Z15luaL_optlstringP9lua_StateiPKcPj(%struct.lua_State* %L, i32 %narg, i8* %def, i32* %len) {
+ %1 = alloca i8*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %4 = alloca i8*, align 4 ; [#uses=4]
+ %5 = alloca i32*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %narg, i32* %3, align 4
+ store i8* %def, i8** %4, align 4
+ store i32* %len, i32** %5, align 4
+ %6 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %7 = load i32* %3, align 4 ; [#uses=1]
+ %8 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %6, i32 %7) ; [#uses=1]
+ %9 = icmp sle i32 %8, 0 ; [#uses=1]
+ br i1 %9, label %10, label %25
+
+; <label>:10 ; preds = %0
+ %11 = load i32** %5, align 4 ; [#uses=1]
+ %12 = icmp ne i32* %11, null ; [#uses=1]
+ br i1 %12, label %13, label %23
+
+; <label>:13 ; preds = %10
+ %14 = load i8** %4, align 4 ; [#uses=1]
+ %15 = icmp ne i8* %14, null ; [#uses=1]
+ br i1 %15, label %16, label %19
+
+; <label>:16 ; preds = %13
+ %17 = load i8** %4, align 4 ; [#uses=1]
+ %18 = call i32 @strlen(i8* %17) ; [#uses=1]
+ br label %20
+
+; <label>:19 ; preds = %13
+ br label %20
+
+; <label>:20 ; preds = %19, %16
+ %21 = phi i32 [ %18, %16 ], [ 0, %19 ] ; [#uses=1]
+ %22 = load i32** %5, align 4 ; [#uses=1]
+ store i32 %21, i32* %22
+ br label %23
+
+; <label>:23 ; preds = %20, %10
+ %24 = load i8** %4, align 4 ; [#uses=1]
+ store i8* %24, i8** %1
+ br label %30
+
+; <label>:25 ; preds = %0
+ %26 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %27 = load i32* %3, align 4 ; [#uses=1]
+ %28 = load i32** %5, align 4 ; [#uses=1]
+ %29 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %26, i32 %27, i32* %28) ; [#uses=1]
+ store i8* %29, i8** %1
+ br label %30
+
+; <label>:30 ; preds = %25, %23
+ %31 = load i8** %1 ; [#uses=1]
+ ret i8* %31
+}
+
+; [#uses=37]
+define i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %L, i32 %narg, i32* %len) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %3 = alloca i32*, align 4 ; [#uses=2]
+ %s = alloca i8*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %narg, i32* %2, align 4
+ store i32* %len, i32** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = load i32** %3, align 4 ; [#uses=1]
+ %7 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %4, i32 %5, i32* %6) ; [#uses=1]
+ store i8* %7, i8** %s, align 4
+ %8 = load i8** %s, align 4 ; [#uses=1]
+ %9 = icmp ne i8* %8, null ; [#uses=1]
+ br i1 %9, label %13, label %10
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z9tag_errorP9lua_Stateii(%struct.lua_State* %11, i32 %12, i32 4)
+ br label %13
+
+; <label>:13 ; preds = %10, %0
+ %14 = load i8** %s, align 4 ; [#uses=1]
+ ret i8* %14
+}
+
+; [#uses=2]
+define i32 @_Z17luaL_newmetatableP9lua_StatePKc(%struct.lua_State* %L, i8* %tname) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %3 = alloca i8*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i8* %tname, i8** %3, align 4
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = load i8** %3, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %4, i32 -10000, i8* %5)
+ %6 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %7 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %6, i32 -1) ; [#uses=1]
+ %8 = icmp eq i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %10, label %9
+
+; <label>:9 ; preds = %0
+ store i32 0, i32* %1
+ br label %16
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %11, i32 -2)
+ %12 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_createtableP9lua_Stateii(%struct.lua_State* %12, i32 0, i32 0)
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %13, i32 -1)
+ %14 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %15 = load i8** %3, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %14, i32 -10000, i8* %15)
+ store i32 1, i32* %1
+ br label %16
+
+; <label>:16 ; preds = %10, %9
+ %17 = load i32* %1 ; [#uses=1]
+ ret i32 %17
+}
+
+; [#uses=6]
+define i8* @_Z15luaL_checkudataP9lua_StateiPKc(%struct.lua_State* %L, i32 %ud, i8* %tname) {
+ %1 = alloca i8*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %3 = alloca i32, align 4 ; [#uses=4]
+ %4 = alloca i8*, align 4 ; [#uses=3]
+ %p = alloca i8*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %ud, i32* %3, align 4
+ store i8* %tname, i8** %4, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = load i32* %3, align 4 ; [#uses=1]
+ %7 = call i8* @_Z14lua_touserdataP9lua_Statei(%struct.lua_State* %5, i32 %6) ; [#uses=1]
+ store i8* %7, i8** %p, align 4
+ %8 = load i8** %p, align 4 ; [#uses=1]
+ %9 = icmp ne i8* %8, null ; [#uses=1]
+ br i1 %9, label %10, label %26
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %12 = load i32* %3, align 4 ; [#uses=1]
+ %13 = call i32 @_Z16lua_getmetatableP9lua_Statei(%struct.lua_State* %11, i32 %12) ; [#uses=1]
+ %14 = icmp ne i32 %13, 0 ; [#uses=1]
+ br i1 %14, label %15, label %25
+
+; <label>:15 ; preds = %10
+ %16 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %17 = load i8** %4, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %16, i32 -10000, i8* %17)
+ %18 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %19 = call i32 @_Z12lua_rawequalP9lua_Stateii(%struct.lua_State* %18, i32 -1, i32 -2) ; [#uses=1]
+ %20 = icmp ne i32 %19, 0 ; [#uses=1]
+ br i1 %20, label %21, label %24
+
+; <label>:21 ; preds = %15
+ %22 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %22, i32 -3)
+ %23 = load i8** %p, align 4 ; [#uses=1]
+ store i8* %23, i8** %1
+ br label %31
+
+; <label>:24 ; preds = %15
+ br label %25
+
+; <label>:25 ; preds = %24, %10
+ br label %26
+
+; <label>:26 ; preds = %25, %0
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %28 = load i32* %3, align 4 ; [#uses=1]
+ %29 = load i8** %4, align 4 ; [#uses=1]
+ %30 = call i32 @_Z13luaL_typerrorP9lua_StateiPKc(%struct.lua_State* %27, i32 %28, i8* %29) ; [#uses=0]
+ store i8* null, i8** %1
+ br label %31
+
+; <label>:31 ; preds = %26, %21
+ %32 = load i8** %1 ; [#uses=1]
+ ret i8* %32
+}
+
+; [#uses=6]
+define void @_Z15luaL_checkstackP9lua_StateiPKc(%struct.lua_State* %L, i32 %space, i8* %mes) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %space, i32* %2, align 4
+ store i8* %mes, i8** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = call i32 @_Z14lua_checkstackP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ %7 = icmp ne i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %12, label %8
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = load i8** %3, align 4 ; [#uses=1]
+ %11 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %9, i8* getelementptr inbounds ([20 x i8]* @.str11253, i32 0, i32 0), i8* %10) ; [#uses=0]
+ br label %12
+
+; <label>:12 ; preds = %8, %0
+ ret void
+}
+
+; [#uses=28]
+define void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %L, i32 %narg, i32 %t) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %narg, i32* %2, align 4
+ store i32 %t, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ %7 = load i32* %3, align 4 ; [#uses=1]
+ %8 = icmp ne i32 %6, %7 ; [#uses=1]
+ br i1 %8, label %9, label %13
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = load i32* %2, align 4 ; [#uses=1]
+ %12 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z9tag_errorP9lua_Stateii(%struct.lua_State* %10, i32 %11, i32 %12)
+ br label %13
+
+; <label>:13 ; preds = %9, %0
+ ret void
+}
+
+; [#uses=4]
+define internal void @_Z9tag_errorP9lua_Stateii(%struct.lua_State* %L, i32 %narg, i32 %tag) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %narg, i32* %2, align 4
+ store i32 %tag, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load i32* %3, align 4 ; [#uses=1]
+ %8 = call i8* @_Z12lua_typenameP9lua_Statei(%struct.lua_State* %6, i32 %7) ; [#uses=1]
+ %9 = call i32 @_Z13luaL_typerrorP9lua_StateiPKc(%struct.lua_State* %4, i32 %5, i8* %8) ; [#uses=0]
+ ret void
+}
+
+; [#uses=16]
+define void @_Z13luaL_checkanyP9lua_Statei(%struct.lua_State* %L, i32 %narg) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %narg, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ %6 = icmp eq i32 %5, -1 ; [#uses=1]
+ br i1 %6, label %7, label %11
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = load i32* %2, align 4 ; [#uses=1]
+ %10 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %8, i32 %9, i8* getelementptr inbounds ([15 x i8]* @.str12254, i32 0, i32 0)) ; [#uses=0]
+ br label %11
+
+; <label>:11 ; preds = %7, %0
+ ret void
+}
+
+; [#uses=38]
+define double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %L, i32 %narg) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=4]
+ %d = alloca double, align 8 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %narg, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call double @_Z12lua_tonumberP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store double %5, double* %d, align 8
+ %6 = load double* %d, align 8 ; [#uses=1]
+ %7 = fcmp oeq double %6, 0.000000e+00 ; [#uses=1]
+ br i1 %7, label %8, label %16
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = load i32* %2, align 4 ; [#uses=1]
+ %11 = call i32 @_Z12lua_isnumberP9lua_Statei(%struct.lua_State* %9, i32 %10) ; [#uses=1]
+ %12 = icmp ne i32 %11, 0 ; [#uses=1]
+ br i1 %12, label %16, label %13
+
+; <label>:13 ; preds = %8
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z9tag_errorP9lua_Stateii(%struct.lua_State* %14, i32 %15, i32 3)
+ br label %16
+
+; <label>:16 ; preds = %13, %8, %0
+ %17 = load double* %d, align 8 ; [#uses=1]
+ ret double %17
+}
+
+; [#uses=1]
+define double @_Z14luaL_optnumberP9lua_Stateid(%struct.lua_State* %L, i32 %narg, double %def) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %3 = alloca double, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %narg, i32* %2, align 4
+ store double %def, double* %3, align 8
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ %7 = icmp sle i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %10
+
+; <label>:8 ; preds = %0
+ %9 = load double* %3, align 8 ; [#uses=1]
+ br label %14
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = load i32* %2, align 4 ; [#uses=1]
+ %13 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %11, i32 %12) ; [#uses=1]
+ br label %14
+
+; <label>:14 ; preds = %10, %8
+ %15 = phi double [ %9, %8 ], [ %13, %10 ] ; [#uses=1]
+ ret double %15
+}
+
+; [#uses=20]
+define i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %L, i32 %narg) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=4]
+ %d = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %narg, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z13lua_tointegerP9lua_Statei(%struct.lua_State* %3, i32 %4) ; [#uses=1]
+ store i32 %5, i32* %d, align 4
+ %6 = load i32* %d, align 4 ; [#uses=1]
+ %7 = icmp eq i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %16
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = load i32* %2, align 4 ; [#uses=1]
+ %11 = call i32 @_Z12lua_isnumberP9lua_Statei(%struct.lua_State* %9, i32 %10) ; [#uses=1]
+ %12 = icmp ne i32 %11, 0 ; [#uses=1]
+ br i1 %12, label %16, label %13
+
+; <label>:13 ; preds = %8
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z9tag_errorP9lua_Stateii(%struct.lua_State* %14, i32 %15, i32 3)
+ br label %16
+
+; <label>:16 ; preds = %13, %8, %0
+ %17 = load i32* %d, align 4 ; [#uses=1]
+ ret i32 %17
+}
+
+; [#uses=16]
+define i32 @_Z15luaL_optintegerP9lua_Stateii(%struct.lua_State* %L, i32 %narg, i32 %def) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %narg, i32* %2, align 4
+ store i32 %def, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %4, i32 %5) ; [#uses=1]
+ %7 = icmp sle i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %10
+
+; <label>:8 ; preds = %0
+ %9 = load i32* %3, align 4 ; [#uses=1]
+ br label %14
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = load i32* %2, align 4 ; [#uses=1]
+ %13 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %11, i32 %12) ; [#uses=1]
+ br label %14
+
+; <label>:14 ; preds = %10, %8
+ %15 = phi i32 [ %9, %8 ], [ %13, %10 ] ; [#uses=1]
+ ret i32 %15
+}
+
+; [#uses=3]
+define i32 @_Z17luaL_getmetafieldP9lua_StateiPKc(%struct.lua_State* %L, i32 %obj, i8* %event) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %obj, i32* %3, align 4
+ store i8* %event, i8** %4, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = load i32* %3, align 4 ; [#uses=1]
+ %7 = call i32 @_Z16lua_getmetatableP9lua_Statei(%struct.lua_State* %5, i32 %6) ; [#uses=1]
+ %8 = icmp ne i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %10, label %9
+
+; <label>:9 ; preds = %0
+ store i32 0, i32* %1
+ br label %21
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %12 = load i8** %4, align 4 ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %11, i8* %12)
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_rawgetP9lua_Statei(%struct.lua_State* %13, i32 -2)
+ %14 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %15 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %14, i32 -1) ; [#uses=1]
+ %16 = icmp eq i32 %15, 0 ; [#uses=1]
+ br i1 %16, label %17, label %19
+
+; <label>:17 ; preds = %10
+ %18 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %18, i32 -3)
+ store i32 0, i32* %1
+ br label %21
+
+; <label>:19 ; preds = %10
+ %20 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_removeP9lua_Statei(%struct.lua_State* %20, i32 -2)
+ store i32 1, i32* %1
+ br label %21
+
+; <label>:21 ; preds = %19, %17, %9
+ %22 = load i32* %1 ; [#uses=1]
+ ret i32 %22
+}
+
+; [#uses=1]
+define i32 @_Z13luaL_callmetaP9lua_StateiPKc(%struct.lua_State* %L, i32 %obj, i8* %event) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %3 = alloca i32, align 4 ; [#uses=8]
+ %4 = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %obj, i32* %3, align 4
+ store i8* %event, i8** %4, align 4
+ %5 = load i32* %3, align 4 ; [#uses=1]
+ %6 = icmp sgt i32 %5, 0 ; [#uses=1]
+ br i1 %6, label %10, label %7
+
+; <label>:7 ; preds = %0
+ %8 = load i32* %3, align 4 ; [#uses=1]
+ %9 = icmp sle i32 %8, -10000 ; [#uses=1]
+ br i1 %9, label %10, label %12
+
+; <label>:10 ; preds = %7, %0
+ %11 = load i32* %3, align 4 ; [#uses=1]
+ br label %18
+
+; <label>:12 ; preds = %7
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %13) ; [#uses=1]
+ %15 = load i32* %3, align 4 ; [#uses=1]
+ %16 = add nsw i32 %14, %15 ; [#uses=1]
+ %17 = add nsw i32 %16, 1 ; [#uses=1]
+ br label %18
+
+; <label>:18 ; preds = %12, %10
+ %19 = phi i32 [ %11, %10 ], [ %17, %12 ] ; [#uses=1]
+ store i32 %19, i32* %3, align 4
+ %20 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %21 = load i32* %3, align 4 ; [#uses=1]
+ %22 = load i8** %4, align 4 ; [#uses=1]
+ %23 = call i32 @_Z17luaL_getmetafieldP9lua_StateiPKc(%struct.lua_State* %20, i32 %21, i8* %22) ; [#uses=1]
+ %24 = icmp ne i32 %23, 0 ; [#uses=1]
+ br i1 %24, label %26, label %25
+
+; <label>:25 ; preds = %18
+ store i32 0, i32* %1
+ br label %30
+
+; <label>:26 ; preds = %18
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %28 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %27, i32 %28)
+ %29 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z8lua_callP9lua_Stateii(%struct.lua_State* %29, i32 1, i32 1)
+ store i32 1, i32* %1
+ br label %30
+
+; <label>:30 ; preds = %26, %25
+ %31 = load i32* %1 ; [#uses=1]
+ ret i32 %31
+}
+
+; [#uses=11]
+define void @_Z13luaL_registerP9lua_StatePKcPK8luaL_Reg(%struct.lua_State* %L, i8* %libname, %struct.luaL_Reg* %l) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %3 = alloca %struct.luaL_Reg*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %libname, i8** %2, align 4
+ store %struct.luaL_Reg* %l, %struct.luaL_Reg** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i8** %2, align 4 ; [#uses=1]
+ %6 = load %struct.luaL_Reg** %3, align 4 ; [#uses=1]
+ call void @_Z12luaL_openlibP9lua_StatePKcPK8luaL_Regi(%struct.lua_State* %4, i8* %5, %struct.luaL_Reg* %6, i32 0)
+ ret void
+}
+
+; [#uses=1]
+define void @_Z12luaL_openlibP9lua_StatePKcPK8luaL_Regi(%struct.lua_State* %L, i8* %libname, %struct.luaL_Reg* %l, i32 %nup) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=15]
+ %2 = alloca i8*, align 4 ; [#uses=6]
+ %3 = alloca %struct.luaL_Reg*, align 4 ; [#uses=7]
+ %4 = alloca i32, align 4 ; [#uses=7]
+ %size = alloca i32, align 4 ; [#uses=2]
+ %i = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %libname, i8** %2, align 4
+ store %struct.luaL_Reg* %l, %struct.luaL_Reg** %3, align 4
+ store i32 %nup, i32* %4, align 4
+ %5 = load i8** %2, align 4 ; [#uses=1]
+ %6 = icmp ne i8* %5, null ; [#uses=1]
+ br i1 %6, label %7, label %38
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.luaL_Reg** %3, align 4 ; [#uses=1]
+ %9 = call i32 @_Z7libsizePK8luaL_Reg(%struct.luaL_Reg* %8) ; [#uses=1]
+ store i32 %9, i32* %size, align 4
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = call i8* @_Z14luaL_findtableP9lua_StateiPKci(%struct.lua_State* %10, i32 -10000, i8* getelementptr inbounds ([8 x i8]* @.str13255, i32 0, i32 0), i32 1) ; [#uses=0]
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = load i8** %2, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %12, i32 -1, i8* %13)
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %14, i32 -1) ; [#uses=1]
+ %16 = icmp eq i32 %15, 5 ; [#uses=1]
+ br i1 %16, label %32, label %17
+
+; <label>:17 ; preds = %7
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %18, i32 -2)
+ %19 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %20 = load i8** %2, align 4 ; [#uses=1]
+ %21 = load i32* %size, align 4 ; [#uses=1]
+ %22 = call i8* @_Z14luaL_findtableP9lua_StateiPKci(%struct.lua_State* %19, i32 -10002, i8* %20, i32 %21) ; [#uses=1]
+ %23 = icmp ne i8* %22, null ; [#uses=1]
+ br i1 %23, label %24, label %28
+
+; <label>:24 ; preds = %17
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %26 = load i8** %2, align 4 ; [#uses=1]
+ %27 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %25, i8* getelementptr inbounds ([30 x i8]* @.str14256, i32 0, i32 0), i8* %26) ; [#uses=0]
+ br label %28
+
+; <label>:28 ; preds = %24, %17
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %29, i32 -1)
+ %30 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %31 = load i8** %2, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %30, i32 -3, i8* %31)
+ br label %32
+
+; <label>:32 ; preds = %28, %7
+ %33 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_removeP9lua_Statei(%struct.lua_State* %33, i32 -2)
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %35 = load i32* %4, align 4 ; [#uses=1]
+ %36 = add nsw i32 %35, 1 ; [#uses=1]
+ %37 = sub nsw i32 0, %36 ; [#uses=1]
+ call void @_Z10lua_insertP9lua_Statei(%struct.lua_State* %34, i32 %37)
+ br label %38
+
+; <label>:38 ; preds = %32, %0
+ br label %39
+
+; <label>:39 ; preds = %69, %38
+ %40 = load %struct.luaL_Reg** %3, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.luaL_Reg* %40, i32 0, i32 0 ; [#uses=1]
+ %42 = load i8** %41, align 4 ; [#uses=1]
+ %43 = icmp ne i8* %42, null ; [#uses=1]
+ br i1 %43, label %44, label %72
+
+; <label>:44 ; preds = %39
+ store i32 0, i32* %i, align 4
+ br label %45
+
+; <label>:45 ; preds = %53, %44
+ %46 = load i32* %i, align 4 ; [#uses=1]
+ %47 = load i32* %4, align 4 ; [#uses=1]
+ %48 = icmp slt i32 %46, %47 ; [#uses=1]
+ br i1 %48, label %49, label %56
+
+; <label>:49 ; preds = %45
+ %50 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %51 = load i32* %4, align 4 ; [#uses=1]
+ %52 = sub nsw i32 0, %51 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %50, i32 %52)
+ br label %53
+
+; <label>:53 ; preds = %49
+ %54 = load i32* %i, align 4 ; [#uses=1]
+ %55 = add nsw i32 %54, 1 ; [#uses=1]
+ store i32 %55, i32* %i, align 4
+ br label %45
+
+; <label>:56 ; preds = %45
+ %57 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %58 = load %struct.luaL_Reg** %3, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.luaL_Reg* %58, i32 0, i32 1 ; [#uses=1]
+ %60 = load i32 (%struct.lua_State*)** %59, align 4 ; [#uses=1]
+ %61 = load i32* %4, align 4 ; [#uses=1]
+ call void @_Z16lua_pushcclosureP9lua_StatePFiS0_Ei(%struct.lua_State* %57, i32 (%struct.lua_State*)* %60, i32 %61)
+ %62 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %63 = load i32* %4, align 4 ; [#uses=1]
+ %64 = add nsw i32 %63, 2 ; [#uses=1]
+ %65 = sub nsw i32 0, %64 ; [#uses=1]
+ %66 = load %struct.luaL_Reg** %3, align 4 ; [#uses=1]
+ %67 = getelementptr inbounds %struct.luaL_Reg* %66, i32 0, i32 0 ; [#uses=1]
+ %68 = load i8** %67, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %62, i32 %65, i8* %68)
+ br label %69
+
+; <label>:69 ; preds = %56
+ %70 = load %struct.luaL_Reg** %3, align 4 ; [#uses=1]
+ %71 = getelementptr inbounds %struct.luaL_Reg* %70, i32 1 ; [#uses=1]
+ store %struct.luaL_Reg* %71, %struct.luaL_Reg** %3, align 4
+ br label %39
+
+; <label>:72 ; preds = %39
+ %73 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %74 = load i32* %4, align 4 ; [#uses=1]
+ %75 = sub nsw i32 0, %74 ; [#uses=1]
+ %76 = sub nsw i32 %75, 1 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %73, i32 %76)
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z7libsizePK8luaL_Reg(%struct.luaL_Reg* %l) nounwind {
+ %1 = alloca %struct.luaL_Reg*, align 4 ; [#uses=4]
+ %size = alloca i32, align 4 ; [#uses=4]
+ store %struct.luaL_Reg* %l, %struct.luaL_Reg** %1, align 4
+ store i32 0, i32* %size, align 4
+ br label %2
+
+; <label>:2 ; preds = %10, %0
+ %3 = load %struct.luaL_Reg** %1, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.luaL_Reg* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = load i8** %4, align 4 ; [#uses=1]
+ %6 = icmp ne i8* %5, null ; [#uses=1]
+ br i1 %6, label %7, label %13
+
+; <label>:7 ; preds = %2
+ %8 = load i32* %size, align 4 ; [#uses=1]
+ %9 = add nsw i32 %8, 1 ; [#uses=1]
+ store i32 %9, i32* %size, align 4
+ br label %10
+
+; <label>:10 ; preds = %7
+ %11 = load %struct.luaL_Reg** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.luaL_Reg* %11, i32 1 ; [#uses=1]
+ store %struct.luaL_Reg* %12, %struct.luaL_Reg** %1, align 4
+ br label %2
+
+; <label>:13 ; preds = %2
+ %14 = load i32* %size, align 4 ; [#uses=1]
+ ret i32 %14
+}
+
+; [#uses=4]
+define i8* @_Z14luaL_findtableP9lua_StateiPKci(%struct.lua_State* %L, i32 %idx, i8* %fname, i32 %szhint) {
+ %1 = alloca i8*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=13]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca i8*, align 4 ; [#uses=10]
+ %5 = alloca i32, align 4 ; [#uses=2]
+ %e = alloca i8*, align 4 ; [#uses=8]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %idx, i32* %3, align 4
+ store i8* %fname, i8** %4, align 4
+ store i32 %szhint, i32* %5, align 4
+ %6 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %7 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %6, i32 %7)
+ br label %8
+
+; <label>:8 ; preds = %60, %0
+ %9 = load i8** %4, align 4 ; [#uses=1]
+ %10 = call i8* @strchr(i8* %9, i32 46) ; [#uses=1]
+ store i8* %10, i8** %e, align 4
+ %11 = load i8** %e, align 4 ; [#uses=1]
+ %12 = icmp eq i8* %11, null ; [#uses=1]
+ br i1 %12, label %13, label %18
+
+; <label>:13 ; preds = %8
+ %14 = load i8** %4, align 4 ; [#uses=1]
+ %15 = load i8** %4, align 4 ; [#uses=1]
+ %16 = call i32 @strlen(i8* %15) ; [#uses=1]
+ %17 = getelementptr inbounds i8* %14, i32 %16 ; [#uses=1]
+ store i8* %17, i8** %e, align 4
+ br label %18
+
+; <label>:18 ; preds = %13, %8
+ %19 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %20 = load i8** %4, align 4 ; [#uses=1]
+ %21 = load i8** %e, align 4 ; [#uses=1]
+ %22 = load i8** %4, align 4 ; [#uses=1]
+ %23 = ptrtoint i8* %21 to i32 ; [#uses=1]
+ %24 = ptrtoint i8* %22 to i32 ; [#uses=1]
+ %25 = sub i32 %23, %24 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %19, i8* %20, i32 %25)
+ %26 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_rawgetP9lua_Statei(%struct.lua_State* %26, i32 -2)
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %28 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %27, i32 -1) ; [#uses=1]
+ %29 = icmp eq i32 %28, 0 ; [#uses=1]
+ br i1 %29, label %30, label %48
+
+; <label>:30 ; preds = %18
+ %31 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %31, i32 -2)
+ %32 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %33 = load i8** %e, align 4 ; [#uses=1]
+ %34 = load i8* %33 ; [#uses=1]
+ %35 = sext i8 %34 to i32 ; [#uses=1]
+ %36 = icmp eq i32 %35, 46 ; [#uses=1]
+ %37 = load i32* %5, align 4 ; [#uses=1]
+ %38 = select i1 %36, i32 1, i32 %37 ; [#uses=1]
+ call void @_Z15lua_createtableP9lua_Stateii(%struct.lua_State* %32, i32 0, i32 %38)
+ %39 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %40 = load i8** %4, align 4 ; [#uses=1]
+ %41 = load i8** %e, align 4 ; [#uses=1]
+ %42 = load i8** %4, align 4 ; [#uses=1]
+ %43 = ptrtoint i8* %41 to i32 ; [#uses=1]
+ %44 = ptrtoint i8* %42 to i32 ; [#uses=1]
+ %45 = sub i32 %43, %44 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %39, i8* %40, i32 %45)
+ %46 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %46, i32 -2)
+ %47 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z12lua_settableP9lua_Statei(%struct.lua_State* %47, i32 -4)
+ br label %56
+
+; <label>:48 ; preds = %18
+ %49 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %50 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %49, i32 -1) ; [#uses=1]
+ %51 = icmp eq i32 %50, 5 ; [#uses=1]
+ br i1 %51, label %55, label %52
+
+; <label>:52 ; preds = %48
+ %53 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %53, i32 -3)
+ %54 = load i8** %4, align 4 ; [#uses=1]
+ store i8* %54, i8** %1
+ br label %66
+
+; <label>:55 ; preds = %48
+ br label %56
+
+; <label>:56 ; preds = %55, %30
+ %57 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_removeP9lua_Statei(%struct.lua_State* %57, i32 -2)
+ %58 = load i8** %e, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds i8* %58, i32 1 ; [#uses=1]
+ store i8* %59, i8** %4, align 4
+ br label %60
+
+; <label>:60 ; preds = %56
+ %61 = load i8** %e, align 4 ; [#uses=1]
+ %62 = load i8* %61 ; [#uses=1]
+ %63 = sext i8 %62 to i32 ; [#uses=1]
+ %64 = icmp eq i32 %63, 46 ; [#uses=1]
+ br i1 %64, label %8, label %65
+
+; <label>:65 ; preds = %60
+ store i8* null, i8** %1
+ br label %66
+
+; <label>:66 ; preds = %65, %52
+ %67 = load i8** %1 ; [#uses=1]
+ ret i8* %67
+}
+
+; [#uses=5]
+define i8* @_Z9luaL_gsubP9lua_StatePKcS2_S2_(%struct.lua_State* %L, i8* %s, i8* %p, i8* %r) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i8*, align 4 ; [#uses=6]
+ %3 = alloca i8*, align 4 ; [#uses=3]
+ %4 = alloca i8*, align 4 ; [#uses=2]
+ %wild = alloca i8*, align 4 ; [#uses=3]
+ %l = alloca i32, align 4 ; [#uses=2]
+ %b = alloca %struct.luaL_Buffer, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %s, i8** %2, align 4
+ store i8* %p, i8** %3, align 4
+ store i8* %r, i8** %4, align 4
+ %5 = load i8** %3, align 4 ; [#uses=1]
+ %6 = call i32 @strlen(i8* %5) ; [#uses=1]
+ store i32 %6, i32* %l, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_buffinitP9lua_StateP11luaL_Buffer(%struct.lua_State* %7, %struct.luaL_Buffer* %b)
+ br label %8
+
+; <label>:8 ; preds = %13, %0
+ %9 = load i8** %2, align 4 ; [#uses=1]
+ %10 = load i8** %3, align 4 ; [#uses=1]
+ %11 = call i8* @strstr(i8* %9, i8* %10) ; [#uses=2]
+ store i8* %11, i8** %wild, align 4
+ %12 = icmp ne i8* %11, null ; [#uses=1]
+ br i1 %12, label %13, label %24
+
+; <label>:13 ; preds = %8
+ %14 = load i8** %2, align 4 ; [#uses=1]
+ %15 = load i8** %wild, align 4 ; [#uses=1]
+ %16 = load i8** %2, align 4 ; [#uses=1]
+ %17 = ptrtoint i8* %15 to i32 ; [#uses=1]
+ %18 = ptrtoint i8* %16 to i32 ; [#uses=1]
+ %19 = sub i32 %17, %18 ; [#uses=1]
+ call void @_Z15luaL_addlstringP11luaL_BufferPKcj(%struct.luaL_Buffer* %b, i8* %14, i32 %19)
+ %20 = load i8** %4, align 4 ; [#uses=1]
+ call void @_Z14luaL_addstringP11luaL_BufferPKc(%struct.luaL_Buffer* %b, i8* %20)
+ %21 = load i8** %wild, align 4 ; [#uses=1]
+ %22 = load i32* %l, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds i8* %21, i32 %22 ; [#uses=1]
+ store i8* %23, i8** %2, align 4
+ br label %8
+
+; <label>:24 ; preds = %8
+ %25 = load i8** %2, align 4 ; [#uses=1]
+ call void @_Z14luaL_addstringP11luaL_BufferPKc(%struct.luaL_Buffer* %b, i8* %25)
+ call void @_Z15luaL_pushresultP11luaL_Buffer(%struct.luaL_Buffer* %b)
+ %26 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %27 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %26, i32 -1, i32* null) ; [#uses=1]
+ ret i8* %27
+}
+
+; [#uses=13]
+define void @_Z13luaL_buffinitP9lua_StateP11luaL_Buffer(%struct.lua_State* %L, %struct.luaL_Buffer* %B) nounwind {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca %struct.luaL_Buffer*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.luaL_Buffer* %B, %struct.luaL_Buffer** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.luaL_Buffer* %4, i32 0, i32 2 ; [#uses=1]
+ store %struct.lua_State* %3, %struct.lua_State** %5, align 4
+ %6 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.luaL_Buffer* %6, i32 0, i32 3 ; [#uses=1]
+ %8 = getelementptr inbounds [8192 x i8]* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.luaL_Buffer* %9, i32 0, i32 0 ; [#uses=1]
+ store i8* %8, i8** %10, align 4
+ %11 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.luaL_Buffer* %11, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %12, align 4
+ ret void
+}
+
+; [#uses=11]
+define void @_Z15luaL_addlstringP11luaL_BufferPKcj(%struct.luaL_Buffer* %B, i8* %s, i32 %l) {
+ %1 = alloca %struct.luaL_Buffer*, align 4 ; [#uses=5]
+ %2 = alloca i8*, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ store %struct.luaL_Buffer* %B, %struct.luaL_Buffer** %1, align 4
+ store i8* %s, i8** %2, align 4
+ store i32 %l, i32* %3, align 4
+ br label %4
+
+; <label>:4 ; preds = %21, %0
+ %5 = load i32* %3, align 4 ; [#uses=2]
+ %6 = add i32 %5, -1 ; [#uses=1]
+ store i32 %6, i32* %3, align 4
+ %7 = icmp ne i32 %5, 0 ; [#uses=1]
+ br i1 %7, label %8, label %30
+
+; <label>:8 ; preds = %4
+ %9 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.luaL_Buffer* %9, i32 0, i32 0 ; [#uses=1]
+ %11 = load i8** %10, align 4 ; [#uses=1]
+ %12 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.luaL_Buffer* %12, i32 0, i32 3 ; [#uses=1]
+ %14 = getelementptr inbounds [8192 x i8]* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = getelementptr inbounds i8* %14, i32 8192 ; [#uses=1]
+ %16 = icmp ult i8* %11, %15 ; [#uses=1]
+ br i1 %16, label %21, label %17
+
+; <label>:17 ; preds = %8
+ %18 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %19 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %18) ; [#uses=1]
+ %20 = icmp ne i8* %19, null ; [#uses=1]
+ br label %21
+
+; <label>:21 ; preds = %17, %8
+ %22 = phi i1 [ true, %8 ], [ %20, %17 ] ; [#uses=0]
+ %23 = load i8** %2, align 4 ; [#uses=2]
+ %24 = getelementptr inbounds i8* %23, i32 1 ; [#uses=1]
+ store i8* %24, i8** %2, align 4
+ %25 = load i8* %23 ; [#uses=1]
+ %26 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.luaL_Buffer* %26, i32 0, i32 0 ; [#uses=2]
+ %28 = load i8** %27, align 4 ; [#uses=2]
+ %29 = getelementptr inbounds i8* %28, i32 1 ; [#uses=1]
+ store i8* %29, i8** %27, align 4
+ store i8 %25, i8* %28
+ br label %4
+
+; <label>:30 ; preds = %4
+ ret void
+}
+
+; [#uses=2]
+define void @_Z14luaL_addstringP11luaL_BufferPKc(%struct.luaL_Buffer* %B, i8* %s) {
+ %1 = alloca %struct.luaL_Buffer*, align 4 ; [#uses=2]
+ %2 = alloca i8*, align 4 ; [#uses=3]
+ store %struct.luaL_Buffer* %B, %struct.luaL_Buffer** %1, align 4
+ store i8* %s, i8** %2, align 4
+ %3 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %4 = load i8** %2, align 4 ; [#uses=1]
+ %5 = load i8** %2, align 4 ; [#uses=1]
+ %6 = call i32 @strlen(i8* %5) ; [#uses=1]
+ call void @_Z15luaL_addlstringP11luaL_BufferPKcj(%struct.luaL_Buffer* %3, i8* %4, i32 %6)
+ ret void
+}
+
+; [#uses=14]
+define void @_Z15luaL_pushresultP11luaL_Buffer(%struct.luaL_Buffer* %B) {
+ %1 = alloca %struct.luaL_Buffer*, align 4 ; [#uses=5]
+ store %struct.luaL_Buffer* %B, %struct.luaL_Buffer** %1, align 4
+ %2 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z11emptybufferP11luaL_Buffer(%struct.luaL_Buffer* %2) ; [#uses=0]
+ %4 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.luaL_Buffer* %4, i32 0, i32 2 ; [#uses=1]
+ %6 = load %struct.lua_State** %5, align 4 ; [#uses=1]
+ %7 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.luaL_Buffer* %7, i32 0, i32 1 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ call void @_Z10lua_concatP9lua_Statei(%struct.lua_State* %6, i32 %9)
+ %10 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.luaL_Buffer* %10, i32 0, i32 1 ; [#uses=1]
+ store i32 1, i32* %11, align 4
+ ret void
+}
+
+; [#uses=18]
+define i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %B) {
+ %1 = alloca %struct.luaL_Buffer*, align 4 ; [#uses=4]
+ store %struct.luaL_Buffer* %B, %struct.luaL_Buffer** %1, align 4
+ %2 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z11emptybufferP11luaL_Buffer(%struct.luaL_Buffer* %2) ; [#uses=1]
+ %4 = icmp ne i32 %3, 0 ; [#uses=1]
+ br i1 %4, label %5, label %7
+
+; <label>:5 ; preds = %0
+ %6 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ call void @_Z11adjuststackP11luaL_Buffer(%struct.luaL_Buffer* %6)
+ br label %7
+
+; <label>:7 ; preds = %5, %0
+ %8 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.luaL_Buffer* %8, i32 0, i32 3 ; [#uses=1]
+ %10 = getelementptr inbounds [8192 x i8]* %9, i32 0, i32 0 ; [#uses=1]
+ ret i8* %10
+}
+
+; [#uses=3]
+define internal i32 @_Z11emptybufferP11luaL_Buffer(%struct.luaL_Buffer* %B) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.luaL_Buffer*, align 4 ; [#uses=8]
+ %l = alloca i32, align 4 ; [#uses=3]
+ store %struct.luaL_Buffer* %B, %struct.luaL_Buffer** %2, align 4
+ %3 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.luaL_Buffer* %3, i32 0, i32 0 ; [#uses=1]
+ %5 = load i8** %4, align 4 ; [#uses=1]
+ %6 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.luaL_Buffer* %6, i32 0, i32 3 ; [#uses=1]
+ %8 = getelementptr inbounds [8192 x i8]* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = ptrtoint i8* %5 to i32 ; [#uses=1]
+ %10 = ptrtoint i8* %8 to i32 ; [#uses=1]
+ %11 = sub i32 %9, %10 ; [#uses=1]
+ store i32 %11, i32* %l, align 4
+ %12 = load i32* %l, align 4 ; [#uses=1]
+ %13 = icmp eq i32 %12, 0 ; [#uses=1]
+ br i1 %13, label %14, label %15
+
+; <label>:14 ; preds = %0
+ store i32 0, i32* %1
+ br label %32
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.luaL_Buffer* %16, i32 0, i32 2 ; [#uses=1]
+ %18 = load %struct.lua_State** %17, align 4 ; [#uses=1]
+ %19 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.luaL_Buffer* %19, i32 0, i32 3 ; [#uses=1]
+ %21 = getelementptr inbounds [8192 x i8]* %20, i32 0, i32 0 ; [#uses=1]
+ %22 = load i32* %l, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %18, i8* %21, i32 %22)
+ %23 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.luaL_Buffer* %23, i32 0, i32 3 ; [#uses=1]
+ %25 = getelementptr inbounds [8192 x i8]* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.luaL_Buffer* %26, i32 0, i32 0 ; [#uses=1]
+ store i8* %25, i8** %27, align 4
+ %28 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.luaL_Buffer* %28, i32 0, i32 1 ; [#uses=2]
+ %30 = load i32* %29, align 4 ; [#uses=1]
+ %31 = add nsw i32 %30, 1 ; [#uses=1]
+ store i32 %31, i32* %29, align 4
+ store i32 1, i32* %1
+ br label %32
+
+; <label>:32 ; preds = %15, %14
+ %33 = load i32* %1 ; [#uses=1]
+ ret i32 %33
+}
+
+; [#uses=2]
+define internal void @_Z11adjuststackP11luaL_Buffer(%struct.luaL_Buffer* %B) {
+ %1 = alloca %struct.luaL_Buffer*, align 4 ; [#uses=7]
+ %L = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %toget = alloca i32, align 4 ; [#uses=8]
+ %toplen = alloca i32, align 4 ; [#uses=4]
+ %l = alloca i32, align 4 ; [#uses=3]
+ store %struct.luaL_Buffer* %B, %struct.luaL_Buffer** %1, align 4
+ %2 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.luaL_Buffer* %2, i32 0, i32 1 ; [#uses=1]
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = icmp sgt i32 %4, 1 ; [#uses=1]
+ br i1 %5, label %6, label %54
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.luaL_Buffer* %7, i32 0, i32 2 ; [#uses=1]
+ %9 = load %struct.lua_State** %8, align 4 ; [#uses=1]
+ store %struct.lua_State* %9, %struct.lua_State** %L, align 4
+ store i32 1, i32* %toget, align 4
+ %10 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %11 = call i32 @_Z10lua_objlenP9lua_Statei(%struct.lua_State* %10, i32 -1) ; [#uses=1]
+ store i32 %11, i32* %toplen, align 4
+ br label %12
+
+; <label>:12 ; preds = %37, %6
+ %13 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %14 = load i32* %toget, align 4 ; [#uses=1]
+ %15 = add nsw i32 %14, 1 ; [#uses=1]
+ %16 = sub nsw i32 0, %15 ; [#uses=1]
+ %17 = call i32 @_Z10lua_objlenP9lua_Statei(%struct.lua_State* %13, i32 %16) ; [#uses=1]
+ store i32 %17, i32* %l, align 4
+ %18 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.luaL_Buffer* %18, i32 0, i32 1 ; [#uses=1]
+ %20 = load i32* %19, align 4 ; [#uses=1]
+ %21 = load i32* %toget, align 4 ; [#uses=1]
+ %22 = sub nsw i32 %20, %21 ; [#uses=1]
+ %23 = add nsw i32 %22, 1 ; [#uses=1]
+ %24 = icmp sge i32 %23, 10 ; [#uses=1]
+ br i1 %24, label %29, label %25
+
+; <label>:25 ; preds = %12
+ %26 = load i32* %toplen, align 4 ; [#uses=1]
+ %27 = load i32* %l, align 4 ; [#uses=1]
+ %28 = icmp ugt i32 %26, %27 ; [#uses=1]
+ br i1 %28, label %29, label %35
+
+; <label>:29 ; preds = %25, %12
+ %30 = load i32* %l, align 4 ; [#uses=1]
+ %31 = load i32* %toplen, align 4 ; [#uses=1]
+ %32 = add i32 %31, %30 ; [#uses=1]
+ store i32 %32, i32* %toplen, align 4
+ %33 = load i32* %toget, align 4 ; [#uses=1]
+ %34 = add nsw i32 %33, 1 ; [#uses=1]
+ store i32 %34, i32* %toget, align 4
+ br label %36
+
+; <label>:35 ; preds = %25
+ br label %43
+
+; <label>:36 ; preds = %29
+ br label %37
+
+; <label>:37 ; preds = %36
+ %38 = load i32* %toget, align 4 ; [#uses=1]
+ %39 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.luaL_Buffer* %39, i32 0, i32 1 ; [#uses=1]
+ %41 = load i32* %40, align 4 ; [#uses=1]
+ %42 = icmp slt i32 %38, %41 ; [#uses=1]
+ br i1 %42, label %12, label %43
+
+; <label>:43 ; preds = %37, %35
+ %44 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %45 = load i32* %toget, align 4 ; [#uses=1]
+ call void @_Z10lua_concatP9lua_Statei(%struct.lua_State* %44, i32 %45)
+ %46 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.luaL_Buffer* %46, i32 0, i32 1 ; [#uses=1]
+ %48 = load i32* %47, align 4 ; [#uses=1]
+ %49 = load i32* %toget, align 4 ; [#uses=1]
+ %50 = sub nsw i32 %48, %49 ; [#uses=1]
+ %51 = add nsw i32 %50, 1 ; [#uses=1]
+ %52 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.luaL_Buffer* %52, i32 0, i32 1 ; [#uses=1]
+ store i32 %51, i32* %53, align 4
+ br label %54
+
+; <label>:54 ; preds = %43, %0
+ ret void
+}
+
+; [#uses=4]
+define void @_Z13luaL_addvalueP11luaL_Buffer(%struct.luaL_Buffer* %B) {
+ %1 = alloca %struct.luaL_Buffer*, align 4 ; [#uses=9]
+ %L = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %vl = alloca i32, align 4 ; [#uses=4]
+ %s = alloca i8*, align 4 ; [#uses=2]
+ store %struct.luaL_Buffer* %B, %struct.luaL_Buffer** %1, align 4
+ %2 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %3 = getelementptr inbounds %struct.luaL_Buffer* %2, i32 0, i32 2 ; [#uses=1]
+ %4 = load %struct.lua_State** %3, align 4 ; [#uses=1]
+ store %struct.lua_State* %4, %struct.lua_State** %L, align 4
+ %5 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %6 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %5, i32 -1, i32* %vl) ; [#uses=1]
+ store i8* %6, i8** %s, align 4
+ %7 = load i32* %vl, align 4 ; [#uses=1]
+ %8 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.luaL_Buffer* %8, i32 0, i32 0 ; [#uses=1]
+ %10 = load i8** %9, align 4 ; [#uses=1]
+ %11 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.luaL_Buffer* %11, i32 0, i32 3 ; [#uses=1]
+ %13 = getelementptr inbounds [8192 x i8]* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = ptrtoint i8* %10 to i32 ; [#uses=1]
+ %15 = ptrtoint i8* %13 to i32 ; [#uses=1]
+ %16 = sub i32 %14, %15 ; [#uses=1]
+ %17 = sub nsw i32 8192, %16 ; [#uses=1]
+ %18 = icmp ule i32 %7, %17 ; [#uses=1]
+ br i1 %18, label %19, label %31
+
+; <label>:19 ; preds = %0
+ %20 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.luaL_Buffer* %20, i32 0, i32 0 ; [#uses=1]
+ %22 = load i8** %21, align 4 ; [#uses=1]
+ %23 = load i8** %s, align 4 ; [#uses=1]
+ %24 = load i32* %vl, align 4 ; [#uses=1]
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %22, i8* %23, i32 %24, i32 1, i1 false)
+ %25 = load i32* %vl, align 4 ; [#uses=1]
+ %26 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.luaL_Buffer* %26, i32 0, i32 0 ; [#uses=2]
+ %28 = load i8** %27, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds i8* %28, i32 %25 ; [#uses=1]
+ store i8* %29, i8** %27, align 4
+ %30 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %30, i32 -2)
+ br label %43
+
+; <label>:31 ; preds = %0
+ %32 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %33 = call i32 @_Z11emptybufferP11luaL_Buffer(%struct.luaL_Buffer* %32) ; [#uses=1]
+ %34 = icmp ne i32 %33, 0 ; [#uses=1]
+ br i1 %34, label %35, label %37
+
+; <label>:35 ; preds = %31
+ %36 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ call void @_Z10lua_insertP9lua_Statei(%struct.lua_State* %36, i32 -2)
+ br label %37
+
+; <label>:37 ; preds = %35, %31
+ %38 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.luaL_Buffer* %38, i32 0, i32 1 ; [#uses=2]
+ %40 = load i32* %39, align 4 ; [#uses=1]
+ %41 = add nsw i32 %40, 1 ; [#uses=1]
+ store i32 %41, i32* %39, align 4
+ %42 = load %struct.luaL_Buffer** %1, align 4 ; [#uses=1]
+ call void @_Z11adjuststackP11luaL_Buffer(%struct.luaL_Buffer* %42)
+ br label %43
+
+; <label>:43 ; preds = %37, %19
+ ret void
+}
+
+; [#uses=0]
+define i32 @_Z8luaL_refP9lua_Statei(%struct.lua_State* %L, i32 %t) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=11]
+ %3 = alloca i32, align 4 ; [#uses=11]
+ %ref = alloca i32, align 4 ; [#uses=8]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %t, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = icmp sgt i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %9, label %6
+
+; <label>:6 ; preds = %0
+ %7 = load i32* %3, align 4 ; [#uses=1]
+ %8 = icmp sle i32 %7, -10000 ; [#uses=1]
+ br i1 %8, label %9, label %11
+
+; <label>:9 ; preds = %6, %0
+ %10 = load i32* %3, align 4 ; [#uses=1]
+ br label %17
+
+; <label>:11 ; preds = %6
+ %12 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %13 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %12) ; [#uses=1]
+ %14 = load i32* %3, align 4 ; [#uses=1]
+ %15 = add nsw i32 %13, %14 ; [#uses=1]
+ %16 = add nsw i32 %15, 1 ; [#uses=1]
+ br label %17
+
+; <label>:17 ; preds = %11, %9
+ %18 = phi i32 [ %10, %9 ], [ %16, %11 ] ; [#uses=1]
+ store i32 %18, i32* %3, align 4
+ %19 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %20 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %19, i32 -1) ; [#uses=1]
+ %21 = icmp eq i32 %20, 0 ; [#uses=1]
+ br i1 %21, label %22, label %24
+
+; <label>:22 ; preds = %17
+ %23 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %23, i32 -2)
+ store i32 -1, i32* %1
+ br label %49
+
+; <label>:24 ; preds = %17
+ %25 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %26 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %25, i32 %26, i32 0)
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %28 = call i32 @_Z13lua_tointegerP9lua_Statei(%struct.lua_State* %27, i32 -1) ; [#uses=1]
+ store i32 %28, i32* %ref, align 4
+ %29 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %29, i32 -2)
+ %30 = load i32* %ref, align 4 ; [#uses=1]
+ %31 = icmp ne i32 %30, 0 ; [#uses=1]
+ br i1 %31, label %32, label %38
+
+; <label>:32 ; preds = %24
+ %33 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %34 = load i32* %3, align 4 ; [#uses=1]
+ %35 = load i32* %ref, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %33, i32 %34, i32 %35)
+ %36 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %37 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z11lua_rawsetiP9lua_Stateii(%struct.lua_State* %36, i32 %37, i32 0)
+ br label %44
+
+; <label>:38 ; preds = %24
+ %39 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %40 = load i32* %3, align 4 ; [#uses=1]
+ %41 = call i32 @_Z10lua_objlenP9lua_Statei(%struct.lua_State* %39, i32 %40) ; [#uses=1]
+ store i32 %41, i32* %ref, align 4
+ %42 = load i32* %ref, align 4 ; [#uses=1]
+ %43 = add nsw i32 %42, 1 ; [#uses=1]
+ store i32 %43, i32* %ref, align 4
+ br label %44
+
+; <label>:44 ; preds = %38, %32
+ %45 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %46 = load i32* %3, align 4 ; [#uses=1]
+ %47 = load i32* %ref, align 4 ; [#uses=1]
+ call void @_Z11lua_rawsetiP9lua_Stateii(%struct.lua_State* %45, i32 %46, i32 %47)
+ %48 = load i32* %ref, align 4 ; [#uses=1]
+ store i32 %48, i32* %1
+ br label %49
+
+; <label>:49 ; preds = %44, %22
+ %50 = load i32* %1 ; [#uses=1]
+ ret i32 %50
+}
+
+; [#uses=0]
+define void @_Z10luaL_unrefP9lua_Stateii(%struct.lua_State* %L, i32 %t, i32 %ref) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %2 = alloca i32, align 4 ; [#uses=9]
+ %3 = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %t, i32* %2, align 4
+ store i32 %ref, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = icmp sge i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %6, label %31
+
+; <label>:6 ; preds = %0
+ %7 = load i32* %2, align 4 ; [#uses=1]
+ %8 = icmp sgt i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %12, label %9
+
+; <label>:9 ; preds = %6
+ %10 = load i32* %2, align 4 ; [#uses=1]
+ %11 = icmp sle i32 %10, -10000 ; [#uses=1]
+ br i1 %11, label %12, label %14
+
+; <label>:12 ; preds = %9, %6
+ %13 = load i32* %2, align 4 ; [#uses=1]
+ br label %20
+
+; <label>:14 ; preds = %9
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %15) ; [#uses=1]
+ %17 = load i32* %2, align 4 ; [#uses=1]
+ %18 = add nsw i32 %16, %17 ; [#uses=1]
+ %19 = add nsw i32 %18, 1 ; [#uses=1]
+ br label %20
+
+; <label>:20 ; preds = %14, %12
+ %21 = phi i32 [ %13, %12 ], [ %19, %14 ] ; [#uses=1]
+ store i32 %21, i32* %2, align 4
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %22, i32 %23, i32 0)
+ %24 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %25 = load i32* %2, align 4 ; [#uses=1]
+ %26 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z11lua_rawsetiP9lua_Stateii(%struct.lua_State* %24, i32 %25, i32 %26)
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %28 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %27, i32 %28)
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %30 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z11lua_rawsetiP9lua_Stateii(%struct.lua_State* %29, i32 %30, i32 0)
+ br label %31
+
+; <label>:31 ; preds = %20, %0
+ ret void
+}
+
+; [#uses=5]
+define i32 @_Z13luaL_loadfileP9lua_StatePKc(%struct.lua_State* %L, i8* %filename) {
+ %1 = alloca i32, align 4 ; [#uses=5]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=11]
+ %3 = alloca i8*, align 4 ; [#uses=7]
+ %lf = alloca %struct.LoadF, align 4 ; [#uses=17]
+ %status = alloca i32, align 4 ; [#uses=2]
+ %readstatus = alloca i32, align 4 ; [#uses=2]
+ %c = alloca i32, align 4 ; [#uses=10]
+ %fnameindex = alloca i32, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i8* %filename, i8** %3, align 4
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %4) ; [#uses=1]
+ %6 = add nsw i32 %5, 1 ; [#uses=1]
+ store i32 %6, i32* %fnameindex, align 4
+ %7 = getelementptr inbounds %struct.LoadF* %lf, i32 0, i32 0 ; [#uses=1]
+ store i32 0, i32* %7, align 4
+ %8 = load i8** %3, align 4 ; [#uses=1]
+ %9 = icmp eq i8* %8, null ; [#uses=1]
+ br i1 %9, label %10, label %14
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %11, i8* getelementptr inbounds ([7 x i8]* @.str15257, i32 0, i32 0), i32 6)
+ %12 = load %struct._IO_FILE** @stdin, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.LoadF* %lf, i32 0, i32 1 ; [#uses=1]
+ store %struct._IO_FILE* %12, %struct._IO_FILE** %13, align 4
+ br label %29
+
+; <label>:14 ; preds = %0
+ %15 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %16 = load i8** %3, align 4 ; [#uses=1]
+ %17 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %15, i8* getelementptr inbounds ([4 x i8]* @.str16258, i32 0, i32 0), i8* %16) ; [#uses=0]
+ %18 = load i8** %3, align 4 ; [#uses=1]
+ %19 = call %struct._IO_FILE* @fopen(i8* %18, i8* getelementptr inbounds ([2 x i8]* @.str17259, i32 0, i32 0)) ; [#uses=1]
+ %20 = getelementptr inbounds %struct.LoadF* %lf, i32 0, i32 1 ; [#uses=1]
+ store %struct._IO_FILE* %19, %struct._IO_FILE** %20, align 4
+ %21 = getelementptr inbounds %struct.LoadF* %lf, i32 0, i32 1 ; [#uses=1]
+ %22 = load %struct._IO_FILE** %21, align 4 ; [#uses=1]
+ %23 = icmp eq %struct._IO_FILE* %22, null ; [#uses=1]
+ br i1 %23, label %24, label %28
+
+; <label>:24 ; preds = %14
+ %25 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %26 = load i32* %fnameindex, align 4 ; [#uses=1]
+ %27 = call i32 @_Z7errfileP9lua_StatePKci(%struct.lua_State* %25, i8* getelementptr inbounds ([5 x i8]* @.str18260, i32 0, i32 0), i32 %26) ; [#uses=1]
+ store i32 %27, i32* %1
+ br label %125
+
+; <label>:28 ; preds = %14
+ br label %29
+
+; <label>:29 ; preds = %28, %10
+ %30 = getelementptr inbounds %struct.LoadF* %lf, i32 0, i32 1 ; [#uses=1]
+ %31 = load %struct._IO_FILE** %30, align 4 ; [#uses=1]
+ %32 = call i32 @_IO_getc(%struct._IO_FILE* %31) ; [#uses=1]
+ store i32 %32, i32* %c, align 4
+ %33 = load i32* %c, align 4 ; [#uses=1]
+ %34 = icmp eq i32 %33, 35 ; [#uses=1]
+ br i1 %34, label %35, label %56
+
+; <label>:35 ; preds = %29
+ %36 = getelementptr inbounds %struct.LoadF* %lf, i32 0, i32 0 ; [#uses=1]
+ store i32 1, i32* %36, align 4
+ br label %37
+
+; <label>:37 ; preds = %47, %35
+ %38 = getelementptr inbounds %struct.LoadF* %lf, i32 0, i32 1 ; [#uses=1]
+ %39 = load %struct._IO_FILE** %38, align 4 ; [#uses=1]
+ %40 = call i32 @_IO_getc(%struct._IO_FILE* %39) ; [#uses=2]
+ store i32 %40, i32* %c, align 4
+ %41 = icmp ne i32 %40, -1 ; [#uses=1]
+ br i1 %41, label %42, label %45
+
+; <label>:42 ; preds = %37
+ %43 = load i32* %c, align 4 ; [#uses=1]
+ %44 = icmp ne i32 %43, 10 ; [#uses=1]
+ br label %45
+
+; <label>:45 ; preds = %42, %37
+ %46 = phi i1 [ false, %37 ], [ %44, %42 ] ; [#uses=1]
+ br i1 %46, label %47, label %48
+
+; <label>:47 ; preds = %45
+ br label %37
+
+; <label>:48 ; preds = %45
+ %49 = load i32* %c, align 4 ; [#uses=1]
+ %50 = icmp eq i32 %49, 10 ; [#uses=1]
+ br i1 %50, label %51, label %55
+
+; <label>:51 ; preds = %48
+ %52 = getelementptr inbounds %struct.LoadF* %lf, i32 0, i32 1 ; [#uses=1]
+ %53 = load %struct._IO_FILE** %52, align 4 ; [#uses=1]
+ %54 = call i32 @_IO_getc(%struct._IO_FILE* %53) ; [#uses=1]
+ store i32 %54, i32* %c, align 4
+ br label %55
+
+; <label>:55 ; preds = %51, %48
+ br label %56
+
+; <label>:56 ; preds = %55, %29
+ %57 = load i32* %c, align 4 ; [#uses=1]
+ %58 = load i8* getelementptr inbounds ([5 x i8]* @.str19261, i32 0, i32 0) ; [#uses=1]
+ %59 = sext i8 %58 to i32 ; [#uses=1]
+ %60 = icmp eq i32 %57, %59 ; [#uses=1]
+ br i1 %60, label %61, label %93
+
+; <label>:61 ; preds = %56
+ %62 = load i8** %3, align 4 ; [#uses=1]
+ %63 = icmp ne i8* %62, null ; [#uses=1]
+ br i1 %63, label %64, label %93
+
+; <label>:64 ; preds = %61
+ %65 = load i8** %3, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds %struct.LoadF* %lf, i32 0, i32 1 ; [#uses=1]
+ %67 = load %struct._IO_FILE** %66, align 4 ; [#uses=1]
+ %68 = call %struct._IO_FILE* @freopen(i8* %65, i8* getelementptr inbounds ([3 x i8]* @.str20262, i32 0, i32 0), %struct._IO_FILE* %67) ; [#uses=1]
+ %69 = getelementptr inbounds %struct.LoadF* %lf, i32 0, i32 1 ; [#uses=1]
+ store %struct._IO_FILE* %68, %struct._IO_FILE** %69, align 4
+ %70 = getelementptr inbounds %struct.LoadF* %lf, i32 0, i32 1 ; [#uses=1]
+ %71 = load %struct._IO_FILE** %70, align 4 ; [#uses=1]
+ %72 = icmp eq %struct._IO_FILE* %71, null ; [#uses=1]
+ br i1 %72, label %73, label %77
+
+; <label>:73 ; preds = %64
+ %74 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %75 = load i32* %fnameindex, align 4 ; [#uses=1]
+ %76 = call i32 @_Z7errfileP9lua_StatePKci(%struct.lua_State* %74, i8* getelementptr inbounds ([7 x i8]* @.str21263, i32 0, i32 0), i32 %75) ; [#uses=1]
+ store i32 %76, i32* %1
+ br label %125
+
+; <label>:77 ; preds = %64
+ br label %78
+
+; <label>:78 ; preds = %90, %77
+ %79 = getelementptr inbounds %struct.LoadF* %lf, i32 0, i32 1 ; [#uses=1]
+ %80 = load %struct._IO_FILE** %79, align 4 ; [#uses=1]
+ %81 = call i32 @_IO_getc(%struct._IO_FILE* %80) ; [#uses=2]
+ store i32 %81, i32* %c, align 4
+ %82 = icmp ne i32 %81, -1 ; [#uses=1]
+ br i1 %82, label %83, label %88
+
+; <label>:83 ; preds = %78
+ %84 = load i32* %c, align 4 ; [#uses=1]
+ %85 = load i8* getelementptr inbounds ([5 x i8]* @.str19261, i32 0, i32 0) ; [#uses=1]
+ %86 = sext i8 %85 to i32 ; [#uses=1]
+ %87 = icmp ne i32 %84, %86 ; [#uses=1]
+ br label %88
+
+; <label>:88 ; preds = %83, %78
+ %89 = phi i1 [ false, %78 ], [ %87, %83 ] ; [#uses=1]
+ br i1 %89, label %90, label %91
+
+; <label>:90 ; preds = %88
+ br label %78
+
+; <label>:91 ; preds = %88
+ %92 = getelementptr inbounds %struct.LoadF* %lf, i32 0, i32 0 ; [#uses=1]
+ store i32 0, i32* %92, align 4
+ br label %93
+
+; <label>:93 ; preds = %91, %61, %56
+ %94 = load i32* %c, align 4 ; [#uses=1]
+ %95 = getelementptr inbounds %struct.LoadF* %lf, i32 0, i32 1 ; [#uses=1]
+ %96 = load %struct._IO_FILE** %95, align 4 ; [#uses=1]
+ %97 = call i32 @ungetc(i32 %94, %struct._IO_FILE* %96) ; [#uses=0]
+ %98 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %99 = bitcast %struct.LoadF* %lf to i8* ; [#uses=1]
+ %100 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %101 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %100, i32 -1, i32* null) ; [#uses=1]
+ %102 = call i32 @_Z8lua_loadP9lua_StatePFPKcS0_PvPjES3_S2_(%struct.lua_State* %98, i8* (%struct.lua_State*, i8*, i32*)* @_Z4getFP9lua_StatePvPj, i8* %99, i8* %101) ; [#uses=1]
+ store i32 %102, i32* %status, align 4
+ %103 = getelementptr inbounds %struct.LoadF* %lf, i32 0, i32 1 ; [#uses=1]
+ %104 = load %struct._IO_FILE** %103, align 4 ; [#uses=1]
+ %105 = call i32 @ferror(%struct._IO_FILE* %104) nounwind ; [#uses=1]
+ store i32 %105, i32* %readstatus, align 4
+ %106 = load i8** %3, align 4 ; [#uses=1]
+ %107 = icmp ne i8* %106, null ; [#uses=1]
+ br i1 %107, label %108, label %112
+
+; <label>:108 ; preds = %93
+ %109 = getelementptr inbounds %struct.LoadF* %lf, i32 0, i32 1 ; [#uses=1]
+ %110 = load %struct._IO_FILE** %109, align 4 ; [#uses=1]
+ %111 = call i32 @fclose(%struct._IO_FILE* %110) ; [#uses=0]
+ br label %112
+
+; <label>:112 ; preds = %108, %93
+ %113 = load i32* %readstatus, align 4 ; [#uses=1]
+ %114 = icmp ne i32 %113, 0 ; [#uses=1]
+ br i1 %114, label %115, label %121
+
+; <label>:115 ; preds = %112
+ %116 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %117 = load i32* %fnameindex, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %116, i32 %117)
+ %118 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %119 = load i32* %fnameindex, align 4 ; [#uses=1]
+ %120 = call i32 @_Z7errfileP9lua_StatePKci(%struct.lua_State* %118, i8* getelementptr inbounds ([5 x i8]* @.str22264, i32 0, i32 0), i32 %119) ; [#uses=1]
+ store i32 %120, i32* %1
+ br label %125
+
+; <label>:121 ; preds = %112
+ %122 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %123 = load i32* %fnameindex, align 4 ; [#uses=1]
+ call void @_Z10lua_removeP9lua_Statei(%struct.lua_State* %122, i32 %123)
+ %124 = load i32* %status, align 4 ; [#uses=1]
+ store i32 %124, i32* %1
+ br label %125
+
+; <label>:125 ; preds = %121, %115, %73, %24
+ %126 = load i32* %1 ; [#uses=1]
+ ret i32 %126
+}
+
+; [#uses=5]
+declare %struct._IO_FILE* @fopen(i8*, i8*)
+
+; [#uses=3]
+define internal i32 @_Z7errfileP9lua_StatePKci(%struct.lua_State* %L, i8* %what, i32 %fnameindex) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %serr = alloca i8*, align 4 ; [#uses=2]
+ %filename = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %what, i8** %2, align 4
+ store i32 %fnameindex, i32* %3, align 4
+ %4 = call i32* @__errno_location() nounwind readnone ; [#uses=1]
+ %5 = load i32* %4 ; [#uses=1]
+ %6 = call i8* @strerror(i32 %5) ; [#uses=1]
+ store i8* %6, i8** %serr, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load i32* %3, align 4 ; [#uses=1]
+ %9 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %7, i32 %8, i32* null) ; [#uses=1]
+ %10 = getelementptr inbounds i8* %9, i32 1 ; [#uses=1]
+ store i8* %10, i8** %filename, align 4
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = load i8** %2, align 4 ; [#uses=1]
+ %13 = load i8** %filename, align 4 ; [#uses=1]
+ %14 = load i8** %serr, align 4 ; [#uses=1]
+ %15 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %11, i8* getelementptr inbounds ([17 x i8]* @.str25267, i32 0, i32 0), i8* %12, i8* %13, i8* %14) ; [#uses=0]
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z10lua_removeP9lua_Statei(%struct.lua_State* %16, i32 %17)
+ ret i32 6
+}
+
+; [#uses=5]
+declare i32 @_IO_getc(%struct._IO_FILE*)
+
+; [#uses=1]
+declare %struct._IO_FILE* @freopen(i8*, i8*, %struct._IO_FILE*)
+
+; [#uses=2]
+declare i32 @ungetc(i32, %struct._IO_FILE*)
+
+; [#uses=1]
+define internal i8* @_Z4getFP9lua_StatePvPj(%struct.lua_State* %L, i8* %ud, i32* %size) {
+ %1 = alloca i8*, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=1]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ %4 = alloca i32*, align 4 ; [#uses=4]
+ %lf = alloca %struct.LoadF*, align 4 ; [#uses=7]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i8* %ud, i8** %3, align 4
+ store i32* %size, i32** %4, align 4
+ %5 = load i8** %3, align 4 ; [#uses=1]
+ %6 = bitcast i8* %5 to %struct.LoadF* ; [#uses=1]
+ store %struct.LoadF* %6, %struct.LoadF** %lf, align 4
+ %7 = load %struct.LoadF** %lf, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.LoadF* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ %10 = icmp ne i32 %9, 0 ; [#uses=1]
+ br i1 %10, label %11, label %15
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.LoadF** %lf, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds %struct.LoadF* %12, i32 0, i32 0 ; [#uses=1]
+ store i32 0, i32* %13, align 4
+ %14 = load i32** %4, align 4 ; [#uses=1]
+ store i32 1, i32* %14
+ store i8* getelementptr inbounds ([2 x i8]* @.str24266, i32 0, i32 0), i8** %1
+ br label %41
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.LoadF** %lf, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.LoadF* %16, i32 0, i32 1 ; [#uses=1]
+ %18 = load %struct._IO_FILE** %17, align 4 ; [#uses=1]
+ %19 = call i32 @feof(%struct._IO_FILE* %18) nounwind ; [#uses=1]
+ %20 = icmp ne i32 %19, 0 ; [#uses=1]
+ br i1 %20, label %21, label %22
+
+; <label>:21 ; preds = %15
+ store i8* null, i8** %1
+ br label %41
+
+; <label>:22 ; preds = %15
+ %23 = load %struct.LoadF** %lf, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.LoadF* %23, i32 0, i32 2 ; [#uses=1]
+ %25 = getelementptr inbounds [8192 x i8]* %24, i32 0, i32 0 ; [#uses=1]
+ %26 = load %struct.LoadF** %lf, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.LoadF* %26, i32 0, i32 1 ; [#uses=1]
+ %28 = load %struct._IO_FILE** %27, align 4 ; [#uses=1]
+ %29 = call i32 @fread(i8* %25, i32 1, i32 8192, %struct._IO_FILE* %28) ; [#uses=1]
+ %30 = load i32** %4, align 4 ; [#uses=1]
+ store i32 %29, i32* %30
+ %31 = load i32** %4, align 4 ; [#uses=1]
+ %32 = load i32* %31 ; [#uses=1]
+ %33 = icmp ugt i32 %32, 0 ; [#uses=1]
+ br i1 %33, label %34, label %38
+
+; <label>:34 ; preds = %22
+ %35 = load %struct.LoadF** %lf, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds %struct.LoadF* %35, i32 0, i32 2 ; [#uses=1]
+ %37 = getelementptr inbounds [8192 x i8]* %36, i32 0, i32 0 ; [#uses=1]
+ br label %39
+
+; <label>:38 ; preds = %22
+ br label %39
+
+; <label>:39 ; preds = %38, %34
+ %40 = phi i8* [ %37, %34 ], [ null, %38 ] ; [#uses=1]
+ store i8* %40, i8** %1
+ br label %41
+
+; <label>:41 ; preds = %39, %21, %11
+ %42 = load i8** %1 ; [#uses=1]
+ ret i8* %42
+}
+
+; [#uses=3]
+declare i32 @ferror(%struct._IO_FILE*) nounwind
+
+; [#uses=3]
+declare i32 @fclose(%struct._IO_FILE*)
+
+; [#uses=5]
+define i32 @_Z15luaL_loadbufferP9lua_StatePKcjS2_(%struct.lua_State* %L, i8* %buff, i32 %size, i8* %name) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca i8*, align 4 ; [#uses=2]
+ %ls = alloca %struct.LoadS, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %buff, i8** %2, align 4
+ store i32 %size, i32* %3, align 4
+ store i8* %name, i8** %4, align 4
+ %5 = load i8** %2, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.LoadS* %ls, i32 0, i32 0 ; [#uses=1]
+ store i8* %5, i8** %6, align 4
+ %7 = load i32* %3, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.LoadS* %ls, i32 0, i32 1 ; [#uses=1]
+ store i32 %7, i32* %8, align 4
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = bitcast %struct.LoadS* %ls to i8* ; [#uses=1]
+ %11 = load i8** %4, align 4 ; [#uses=1]
+ %12 = call i32 @_Z8lua_loadP9lua_StatePFPKcS0_PvPjES3_S2_(%struct.lua_State* %9, i8* (%struct.lua_State*, i8*, i32*)* @_Z4getSP9lua_StatePvPj, i8* %10, i8* %11) ; [#uses=1]
+ ret i32 %12
+}
+
+; [#uses=1]
+define internal i8* @_Z4getSP9lua_StatePvPj(%struct.lua_State* %L, i8* %ud, i32* %size) nounwind {
+ %1 = alloca i8*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=1]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ %4 = alloca i32*, align 4 ; [#uses=2]
+ %ls = alloca %struct.LoadS*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i8* %ud, i8** %3, align 4
+ store i32* %size, i32** %4, align 4
+ %5 = load i8** %3, align 4 ; [#uses=1]
+ %6 = bitcast i8* %5 to %struct.LoadS* ; [#uses=1]
+ store %struct.LoadS* %6, %struct.LoadS** %ls, align 4
+ %7 = load %struct.LoadS** %ls, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.LoadS* %7, i32 0, i32 1 ; [#uses=1]
+ %9 = load i32* %8, align 4 ; [#uses=1]
+ %10 = icmp eq i32 %9, 0 ; [#uses=1]
+ br i1 %10, label %11, label %12
+
+; <label>:11 ; preds = %0
+ store i8* null, i8** %1
+ br label %22
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.LoadS** %ls, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.LoadS* %13, i32 0, i32 1 ; [#uses=1]
+ %15 = load i32* %14, align 4 ; [#uses=1]
+ %16 = load i32** %4, align 4 ; [#uses=1]
+ store i32 %15, i32* %16
+ %17 = load %struct.LoadS** %ls, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.LoadS* %17, i32 0, i32 1 ; [#uses=1]
+ store i32 0, i32* %18, align 4
+ %19 = load %struct.LoadS** %ls, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.LoadS* %19, i32 0, i32 0 ; [#uses=1]
+ %21 = load i8** %20, align 4 ; [#uses=1]
+ store i8* %21, i8** %1
+ br label %22
+
+; <label>:22 ; preds = %12, %11
+ %23 = load i8** %1 ; [#uses=1]
+ ret i8* %23
+}
+
+; [#uses=0]
+define i32 @_Z15luaL_loadstringP9lua_StatePKc(%struct.lua_State* %L, i8* %s) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca i8*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %s, i8** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i8** %2, align 4 ; [#uses=1]
+ %5 = load i8** %2, align 4 ; [#uses=1]
+ %6 = call i32 @strlen(i8* %5) ; [#uses=1]
+ %7 = load i8** %2, align 4 ; [#uses=1]
+ %8 = call i32 @_Z15luaL_loadbufferP9lua_StatePKcjS2_(%struct.lua_State* %3, i8* %4, i32 %6, i8* %7) ; [#uses=1]
+ ret i32 %8
+}
+
+; [#uses=1]
+define %struct.lua_State* @_Z13luaL_newstatev() {
+ %L = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %1 = call %struct.lua_State* @_Z12lua_newstatePFPvS_S_jjES_(i8* (i8*, i8*, i32, i32)* @_Z7l_allocPvS_jj, i8* null) ; [#uses=1]
+ store %struct.lua_State* %1, %struct.lua_State** %L, align 4
+ %2 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %3 = icmp ne %struct.lua_State* %2, null ; [#uses=1]
+ br i1 %3, label %4, label %7
+
+; <label>:4 ; preds = %0
+ %5 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %6 = call i32 (%struct.lua_State*)* (%struct.lua_State*, i32 (%struct.lua_State*)*)* @_Z11lua_atpanicP9lua_StatePFiS0_E(%struct.lua_State* %5, i32 (%struct.lua_State*)* @_Z5panicP9lua_State) ; [#uses=0]
+ br label %7
+
+; <label>:7 ; preds = %4, %0
+ %8 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ ret %struct.lua_State* %8
+}
+
+; [#uses=1]
+define internal i8* @_Z7l_allocPvS_jj(i8* %ud, i8* %ptr, i32 %osize, i32 %nsize) nounwind {
+ %1 = alloca i8*, align 4 ; [#uses=3]
+ %2 = alloca i8*, align 4 ; [#uses=1]
+ %3 = alloca i8*, align 4 ; [#uses=3]
+ %4 = alloca i32, align 4 ; [#uses=1]
+ %5 = alloca i32, align 4 ; [#uses=3]
+ store i8* %ud, i8** %2, align 4
+ store i8* %ptr, i8** %3, align 4
+ store i32 %osize, i32* %4, align 4
+ store i32 %nsize, i32* %5, align 4
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = icmp eq i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %10
+
+; <label>:8 ; preds = %0
+ %9 = load i8** %3, align 4 ; [#uses=1]
+ call void @free(i8* %9) nounwind
+ store i8* null, i8** %1
+ br label %14
+
+; <label>:10 ; preds = %0
+ %11 = load i8** %3, align 4 ; [#uses=1]
+ %12 = load i32* %5, align 4 ; [#uses=1]
+ %13 = call i8* @realloc(i8* %11, i32 %12) ; [#uses=1]
+ store i8* %13, i8** %1
+ br label %14
+
+; <label>:14 ; preds = %10, %8
+ %15 = load i8** %1 ; [#uses=1]
+ ret i8* %15
+}
+
+; [#uses=1]
+define internal i32 @_Z5panicP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct._IO_FILE** @stderr, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %3, i32 -1, i32* null) ; [#uses=1]
+ %5 = call i32 (%struct._IO_FILE*, i8*, ...)* @fprintf(%struct._IO_FILE* %2, i8* getelementptr inbounds ([50 x i8]* @.str23265, i32 0, i32 0), i8* %4) ; [#uses=0]
+ ret i32 0
+}
+
+; [#uses=1]
+declare void @free(i8*) nounwind
+
+; [#uses=1]
+declare i8* @realloc(i8*, i32) nounwind
+
+; [#uses=1]
+declare i32 @feof(%struct._IO_FILE*) nounwind
+
+; [#uses=2]
+declare i32 @fread(i8*, i32, i32, %struct._IO_FILE*)
+
+; [#uses=6]
+declare i8* @strerror(i32) nounwind
+
+; [#uses=5]
+declare i32* @__errno_location() nounwind readnone
+
+; [#uses=1]
+define internal i32 @_Z11luaB_assertP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13luaL_checkanyP9lua_Statei(%struct.lua_State* %3, i32 1)
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z13lua_tobooleanP9lua_Statei(%struct.lua_State* %4, i32 1) ; [#uses=1]
+ %6 = icmp ne i32 %5, 0 ; [#uses=1]
+ br i1 %6, label %12, label %7
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %9 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %10 = call i8* @_Z15luaL_optlstringP9lua_StateiPKcPj(%struct.lua_State* %9, i32 2, i8* getelementptr inbounds ([18 x i8]* @.str78, i32 0, i32 0), i32* null) ; [#uses=1]
+ %11 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %8, i8* getelementptr inbounds ([3 x i8]* @.str77317, i32 0, i32 0), i8* %10) ; [#uses=1]
+ store i32 %11, i32* %1
+ br label %15
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %13) ; [#uses=1]
+ store i32 %14, i32* %1
+ br label %15
+
+; <label>:15 ; preds = %12, %7
+ %16 = load i32* %1 ; [#uses=1]
+ ret i32 %16
+}
+
+; [#uses=1]
+define internal i32 @_Z19luaB_collectgarbageP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %o = alloca i32, align 4 ; [#uses=3]
+ %ex = alloca i32, align 4 ; [#uses=2]
+ %res = alloca i32, align 4 ; [#uses=4]
+ %b = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i32 @_Z16luaL_checkoptionP9lua_StateiPKcPKS2_(%struct.lua_State* %3, i32 1, i8* getelementptr inbounds ([8 x i8]* @.str72316, i32 0, i32 0), i8** getelementptr inbounds ([8 x i8*]* @_ZZ19luaB_collectgarbageP9lua_StateE4opts, i32 0, i32 0)) ; [#uses=1]
+ store i32 %4, i32* %o, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = call i32 @_Z15luaL_optintegerP9lua_Stateii(%struct.lua_State* %5, i32 2, i32 0) ; [#uses=1]
+ store i32 %6, i32* %ex, align 4
+ %7 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %8 = load i32* %o, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds [7 x i32]* @_ZZ19luaB_collectgarbageP9lua_StateE7optsnum, i32 0, i32 %8 ; [#uses=1]
+ %10 = load i32* %9 ; [#uses=1]
+ %11 = load i32* %ex, align 4 ; [#uses=1]
+ %12 = call i32 @_Z6lua_gcP9lua_Stateii(%struct.lua_State* %7, i32 %10, i32 %11) ; [#uses=1]
+ store i32 %12, i32* %res, align 4
+ %13 = load i32* %o, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds [7 x i32]* @_ZZ19luaB_collectgarbageP9lua_StateE7optsnum, i32 0, i32 %13 ; [#uses=1]
+ %15 = load i32* %14 ; [#uses=1]
+ switch i32 %15, label %29 [
+ i32 3, label %16
+ i32 5, label %26
+ ]
+
+; <label>:16 ; preds = %0
+ %17 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %18 = call i32 @_Z6lua_gcP9lua_Stateii(%struct.lua_State* %17, i32 4, i32 0) ; [#uses=1]
+ store i32 %18, i32* %b, align 4
+ %19 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %20 = load i32* %res, align 4 ; [#uses=1]
+ %21 = sitofp i32 %20 to double ; [#uses=1]
+ %22 = load i32* %b, align 4 ; [#uses=1]
+ %23 = sitofp i32 %22 to double ; [#uses=1]
+ %24 = fdiv double %23, 1.024000e+03 ; [#uses=1]
+ %25 = fadd double %21, %24 ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %19, double %25)
+ store i32 1, i32* %1
+ br label %33
+
+; <label>:26 ; preds = %0
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %28 = load i32* %res, align 4 ; [#uses=1]
+ call void @_Z15lua_pushbooleanP9lua_Statei(%struct.lua_State* %27, i32 %28)
+ store i32 1, i32* %1
+ br label %33
+
+; <label>:29 ; preds = %0
+ %30 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %31 = load i32* %res, align 4 ; [#uses=1]
+ %32 = sitofp i32 %31 to double ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %30, double %32)
+ store i32 1, i32* %1
+ br label %33
+
+; <label>:33 ; preds = %29, %26, %16
+ %34 = load i32* %1 ; [#uses=1]
+ ret i32 %34
+}
+
+; [#uses=1]
+define internal i32 @_Z11luaB_dofileP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %fname = alloca i8*, align 4 ; [#uses=2]
+ %n = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z15luaL_optlstringP9lua_StateiPKcPj(%struct.lua_State* %2, i32 1, i8* null, i32* null) ; [#uses=1]
+ store i8* %3, i8** %fname, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %4) ; [#uses=1]
+ store i32 %5, i32* %n, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load i8** %fname, align 4 ; [#uses=1]
+ %8 = call i32 @_Z13luaL_loadfileP9lua_StatePKc(%struct.lua_State* %6, i8* %7) ; [#uses=1]
+ %9 = icmp ne i32 %8, 0 ; [#uses=1]
+ br i1 %9, label %10, label %13
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = call i32 @_Z9lua_errorP9lua_State(%struct.lua_State* %11) ; [#uses=0]
+ br label %13
+
+; <label>:13 ; preds = %10, %0
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z8lua_callP9lua_Stateii(%struct.lua_State* %14, i32 0, i32 -1)
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %15) ; [#uses=1]
+ %17 = load i32* %n, align 4 ; [#uses=1]
+ %18 = sub nsw i32 %16, %17 ; [#uses=1]
+ ret i32 %18
+}
+
+; [#uses=1]
+define internal i32 @_Z10luaB_errorP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %level = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z15luaL_optintegerP9lua_Stateii(%struct.lua_State* %2, i32 2, i32 1) ; [#uses=1]
+ store i32 %3, i32* %level, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %4, i32 1)
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = call i32 @_Z12lua_isstringP9lua_Statei(%struct.lua_State* %5, i32 1) ; [#uses=1]
+ %7 = icmp ne i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %16
+
+; <label>:8 ; preds = %0
+ %9 = load i32* %level, align 4 ; [#uses=1]
+ %10 = icmp sgt i32 %9, 0 ; [#uses=1]
+ br i1 %10, label %11, label %16
+
+; <label>:11 ; preds = %8
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = load i32* %level, align 4 ; [#uses=1]
+ call void @_Z10luaL_whereP9lua_Statei(%struct.lua_State* %12, i32 %13)
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %14, i32 1)
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_concatP9lua_Statei(%struct.lua_State* %15, i32 2)
+ br label %16
+
+; <label>:16 ; preds = %11, %8, %0
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %18 = call i32 @_Z9lua_errorP9lua_State(%struct.lua_State* %17) ; [#uses=1]
+ ret i32 %18
+}
+
+; [#uses=1]
+define internal i32 @_Z11luaB_gcinfoP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call i32 @_Z6lua_gcP9lua_Stateii(%struct.lua_State* %3, i32 3, i32 0) ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %2, i32 %4)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z12luaB_getfenvP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z7getfuncP9lua_Statei(%struct.lua_State* %2, i32 1)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call i32 @_Z15lua_iscfunctionP9lua_Statei(%struct.lua_State* %3, i32 -1) ; [#uses=1]
+ %5 = icmp ne i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %6, label %8
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %7, i32 -10002)
+ br label %10
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11lua_getfenvP9lua_Statei(%struct.lua_State* %9, i32 -1)
+ br label %10
+
+; <label>:10 ; preds = %8, %6
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z17luaB_getmetatableP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13luaL_checkanyP9lua_Statei(%struct.lua_State* %3, i32 1)
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z16lua_getmetatableP9lua_Statei(%struct.lua_State* %4, i32 1) ; [#uses=1]
+ %6 = icmp ne i32 %5, 0 ; [#uses=1]
+ br i1 %6, label %9, label %7
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %8)
+ store i32 1, i32* %1
+ br label %12
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %11 = call i32 @_Z17luaL_getmetafieldP9lua_StateiPKc(%struct.lua_State* %10, i32 1, i8* getelementptr inbounds ([12 x i8]* @.str56, i32 0, i32 0)) ; [#uses=0]
+ store i32 1, i32* %1
+ br label %12
+
+; <label>:12 ; preds = %9, %7
+ %13 = load i32* %1 ; [#uses=1]
+ ret i32 %13
+}
+
+; [#uses=1]
+define internal i32 @_Z13luaB_loadfileP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %fname = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z15luaL_optlstringP9lua_StateiPKcPj(%struct.lua_State* %2, i32 1, i8* null, i32* null) ; [#uses=1]
+ store i8* %3, i8** %fname, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = load i8** %fname, align 4 ; [#uses=1]
+ %7 = call i32 @_Z13luaL_loadfileP9lua_StatePKc(%struct.lua_State* %5, i8* %6) ; [#uses=1]
+ %8 = call i32 @_Z8load_auxP9lua_Statei(%struct.lua_State* %4, i32 %7) ; [#uses=1]
+ ret i32 %8
+}
+
+; [#uses=1]
+define internal i32 @_Z9luaB_loadP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %status = alloca i32, align 4 ; [#uses=2]
+ %cname = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z15luaL_optlstringP9lua_StateiPKcPj(%struct.lua_State* %2, i32 2, i8* getelementptr inbounds ([8 x i8]* @.str67, i32 0, i32 0), i32* null) ; [#uses=1]
+ store i8* %3, i8** %cname, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %4, i32 1, i32 6)
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %5, i32 3)
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load i8** %cname, align 4 ; [#uses=1]
+ %8 = call i32 @_Z8lua_loadP9lua_StatePFPKcS0_PvPjES3_S2_(%struct.lua_State* %6, i8* (%struct.lua_State*, i8*, i32*)* @_Z14generic_readerP9lua_StatePvPj, i8* null, i8* %7) ; [#uses=1]
+ store i32 %8, i32* %status, align 4
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = load i32* %status, align 4 ; [#uses=1]
+ %11 = call i32 @_Z8load_auxP9lua_Statei(%struct.lua_State* %9, i32 %10) ; [#uses=1]
+ ret i32 %11
+}
+
+; [#uses=1]
+define internal i32 @_Z15luaB_loadstringP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %l = alloca i32, align 4 ; [#uses=2]
+ %s = alloca i8*, align 4 ; [#uses=3]
+ %chunkname = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %2, i32 1, i32* %l) ; [#uses=1]
+ store i8* %3, i8** %s, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i8** %s, align 4 ; [#uses=1]
+ %6 = call i8* @_Z15luaL_optlstringP9lua_StateiPKcPj(%struct.lua_State* %4, i32 2, i8* %5, i32* null) ; [#uses=1]
+ store i8* %6, i8** %chunkname, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = load i8** %s, align 4 ; [#uses=1]
+ %10 = load i32* %l, align 4 ; [#uses=1]
+ %11 = load i8** %chunkname, align 4 ; [#uses=1]
+ %12 = call i32 @_Z15luaL_loadbufferP9lua_StatePKcjS2_(%struct.lua_State* %8, i8* %9, i32 %10, i8* %11) ; [#uses=1]
+ %13 = call i32 @_Z8load_auxP9lua_Statei(%struct.lua_State* %7, i32 %12) ; [#uses=1]
+ ret i32 %13
+}
+
+; [#uses=2]
+define internal i32 @_Z9luaB_nextP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %3, i32 1, i32 5)
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %4, i32 2)
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = call i32 @_Z8lua_nextP9lua_Statei(%struct.lua_State* %5, i32 1) ; [#uses=1]
+ %7 = icmp ne i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %9
+
+; <label>:8 ; preds = %0
+ store i32 2, i32* %1
+ br label %11
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %10)
+ store i32 1, i32* %1
+ br label %11
+
+; <label>:11 ; preds = %9, %8
+ %12 = load i32* %1 ; [#uses=1]
+ ret i32 %12
+}
+
+; [#uses=1]
+define internal i32 @_Z10luaB_pcallP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %status = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_checkanyP9lua_Statei(%struct.lua_State* %2, i32 1)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %4) ; [#uses=1]
+ %6 = sub nsw i32 %5, 1 ; [#uses=1]
+ %7 = call i32 @_Z9lua_pcallP9lua_Stateiii(%struct.lua_State* %3, i32 %6, i32 -1, i32 0) ; [#uses=1]
+ store i32 %7, i32* %status, align 4
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = load i32* %status, align 4 ; [#uses=1]
+ %10 = icmp eq i32 %9, 0 ; [#uses=1]
+ %11 = zext i1 %10 to i32 ; [#uses=1]
+ call void @_Z15lua_pushbooleanP9lua_Statei(%struct.lua_State* %8, i32 %11)
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_insertP9lua_Statei(%struct.lua_State* %12, i32 1)
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %13) ; [#uses=1]
+ ret i32 %14
+}
+
+; [#uses=1]
+define internal i32 @_Z10luaB_printP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %n = alloca i32, align 4 ; [#uses=2]
+ %i = alloca i32, align 4 ; [#uses=6]
+ %s = alloca i8*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %3) ; [#uses=1]
+ store i32 %4, i32* %n, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %5, i32 -10002, i8* getelementptr inbounds ([9 x i8]* @.str20288, i32 0, i32 0))
+ store i32 1, i32* %i, align 4
+ br label %6
+
+; <label>:6 ; preds = %33, %0
+ %7 = load i32* %i, align 4 ; [#uses=1]
+ %8 = load i32* %n, align 4 ; [#uses=1]
+ %9 = icmp sle i32 %7, %8 ; [#uses=1]
+ br i1 %9, label %10, label %36
+
+; <label>:10 ; preds = %6
+ %11 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %11, i32 -1)
+ %12 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %13 = load i32* %i, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %12, i32 %13)
+ %14 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z8lua_callP9lua_Stateii(%struct.lua_State* %14, i32 1, i32 1)
+ %15 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %16 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %15, i32 -1, i32* null) ; [#uses=1]
+ store i8* %16, i8** %s, align 4
+ %17 = load i8** %s, align 4 ; [#uses=1]
+ %18 = icmp eq i8* %17, null ; [#uses=1]
+ br i1 %18, label %19, label %22
+
+; <label>:19 ; preds = %10
+ %20 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %21 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %20, i8* getelementptr inbounds ([43 x i8]* @.str64, i32 0, i32 0)) ; [#uses=1]
+ store i32 %21, i32* %1
+ br label %39
+
+; <label>:22 ; preds = %10
+ %23 = load i32* %i, align 4 ; [#uses=1]
+ %24 = icmp sgt i32 %23, 1 ; [#uses=1]
+ br i1 %24, label %25, label %28
+
+; <label>:25 ; preds = %22
+ %26 = load %struct._IO_FILE** @stdout, align 4 ; [#uses=1]
+ %27 = call i32 @fputs(i8* getelementptr inbounds ([2 x i8]* @.str65, i32 0, i32 0), %struct._IO_FILE* %26) ; [#uses=0]
+ br label %28
+
+; <label>:28 ; preds = %25, %22
+ %29 = load i8** %s, align 4 ; [#uses=1]
+ %30 = load %struct._IO_FILE** @stdout, align 4 ; [#uses=1]
+ %31 = call i32 @fputs(i8* %29, %struct._IO_FILE* %30) ; [#uses=0]
+ %32 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %32, i32 -2)
+ br label %33
+
+; <label>:33 ; preds = %28
+ %34 = load i32* %i, align 4 ; [#uses=1]
+ %35 = add nsw i32 %34, 1 ; [#uses=1]
+ store i32 %35, i32* %i, align 4
+ br label %6
+
+; <label>:36 ; preds = %6
+ %37 = load %struct._IO_FILE** @stdout, align 4 ; [#uses=1]
+ %38 = call i32 @fputs(i8* getelementptr inbounds ([2 x i8]* @.str66, i32 0, i32 0), %struct._IO_FILE* %37) ; [#uses=0]
+ store i32 0, i32* %1
+ br label %39
+
+; <label>:39 ; preds = %36, %19
+ %40 = load i32* %1 ; [#uses=1]
+ ret i32 %40
+}
+
+; [#uses=1]
+define internal i32 @_Z13luaB_rawequalP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_checkanyP9lua_Statei(%struct.lua_State* %2, i32 1)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_checkanyP9lua_Statei(%struct.lua_State* %3, i32 2)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = call i32 @_Z12lua_rawequalP9lua_Stateii(%struct.lua_State* %5, i32 1, i32 2) ; [#uses=1]
+ call void @_Z15lua_pushbooleanP9lua_Statei(%struct.lua_State* %4, i32 %6)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z11luaB_rawgetP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %2, i32 1, i32 5)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_checkanyP9lua_Statei(%struct.lua_State* %3, i32 2)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %4, i32 2)
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_rawgetP9lua_Statei(%struct.lua_State* %5, i32 1)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z11luaB_rawsetP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %2, i32 1, i32 5)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_checkanyP9lua_Statei(%struct.lua_State* %3, i32 2)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_checkanyP9lua_Statei(%struct.lua_State* %4, i32 3)
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %5, i32 3)
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_rawsetP9lua_Statei(%struct.lua_State* %6, i32 1)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z11luaB_selectP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %n = alloca i32, align 4 ; [#uses=6]
+ %i = alloca i32, align 4 ; [#uses=8]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %3) ; [#uses=1]
+ store i32 %4, i32* %n, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %5, i32 1) ; [#uses=1]
+ %7 = icmp eq i32 %6, 4 ; [#uses=1]
+ br i1 %7, label %8, label %18
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %10 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %9, i32 1, i32* null) ; [#uses=1]
+ %11 = load i8* %10 ; [#uses=1]
+ %12 = sext i8 %11 to i32 ; [#uses=1]
+ %13 = icmp eq i32 %12, 35 ; [#uses=1]
+ br i1 %13, label %14, label %18
+
+; <label>:14 ; preds = %8
+ %15 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %16 = load i32* %n, align 4 ; [#uses=1]
+ %17 = sub nsw i32 %16, 1 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %15, i32 %17)
+ store i32 1, i32* %1
+ br label %46
+
+; <label>:18 ; preds = %8, %0
+ %19 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %20 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %19, i32 1) ; [#uses=1]
+ store i32 %20, i32* %i, align 4
+ %21 = load i32* %i, align 4 ; [#uses=1]
+ %22 = icmp slt i32 %21, 0 ; [#uses=1]
+ br i1 %22, label %23, label %27
+
+; <label>:23 ; preds = %18
+ %24 = load i32* %n, align 4 ; [#uses=1]
+ %25 = load i32* %i, align 4 ; [#uses=1]
+ %26 = add nsw i32 %24, %25 ; [#uses=1]
+ store i32 %26, i32* %i, align 4
+ br label %34
+
+; <label>:27 ; preds = %18
+ %28 = load i32* %i, align 4 ; [#uses=1]
+ %29 = load i32* %n, align 4 ; [#uses=1]
+ %30 = icmp sgt i32 %28, %29 ; [#uses=1]
+ br i1 %30, label %31, label %33
+
+; <label>:31 ; preds = %27
+ %32 = load i32* %n, align 4 ; [#uses=1]
+ store i32 %32, i32* %i, align 4
+ br label %33
+
+; <label>:33 ; preds = %31, %27
+ br label %34
+
+; <label>:34 ; preds = %33, %23
+ %35 = load i32* %i, align 4 ; [#uses=1]
+ %36 = icmp sle i32 1, %35 ; [#uses=1]
+ br i1 %36, label %41, label %37
+
+; <label>:37 ; preds = %34
+ %38 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %39 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %38, i32 1, i8* getelementptr inbounds ([19 x i8]* @.str63, i32 0, i32 0)) ; [#uses=1]
+ %40 = icmp ne i32 %39, 0 ; [#uses=1]
+ br label %41
+
+; <label>:41 ; preds = %37, %34
+ %42 = phi i1 [ true, %34 ], [ %40, %37 ] ; [#uses=0]
+ %43 = load i32* %n, align 4 ; [#uses=1]
+ %44 = load i32* %i, align 4 ; [#uses=1]
+ %45 = sub nsw i32 %43, %44 ; [#uses=1]
+ store i32 %45, i32* %1
+ br label %46
+
+; <label>:46 ; preds = %41, %14
+ %47 = load i32* %1 ; [#uses=1]
+ ret i32 %47
+}
+
+; [#uses=1]
+define internal i32 @_Z12luaB_setfenvP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=12]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %3, i32 2, i32 5)
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z7getfuncP9lua_Statei(%struct.lua_State* %4, i32 0)
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %5, i32 2)
+ %6 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %7 = call i32 @_Z12lua_isnumberP9lua_Statei(%struct.lua_State* %6, i32 1) ; [#uses=1]
+ %8 = icmp ne i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %9, label %19
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %11 = call double @_Z12lua_tonumberP9lua_Statei(%struct.lua_State* %10, i32 1) ; [#uses=1]
+ %12 = fcmp oeq double %11, 0.000000e+00 ; [#uses=1]
+ br i1 %12, label %13, label %19
+
+; <label>:13 ; preds = %9
+ %14 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %15 = call i32 @_Z14lua_pushthreadP9lua_State(%struct.lua_State* %14) ; [#uses=0]
+ %16 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_insertP9lua_Statei(%struct.lua_State* %16, i32 -2)
+ %17 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %18 = call i32 @_Z11lua_setfenvP9lua_Statei(%struct.lua_State* %17, i32 -2) ; [#uses=0]
+ store i32 0, i32* %1
+ br label %32
+
+; <label>:19 ; preds = %9, %0
+ %20 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %21 = call i32 @_Z15lua_iscfunctionP9lua_Statei(%struct.lua_State* %20, i32 -2) ; [#uses=1]
+ %22 = icmp ne i32 %21, 0 ; [#uses=1]
+ br i1 %22, label %27, label %23
+
+; <label>:23 ; preds = %19
+ %24 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %25 = call i32 @_Z11lua_setfenvP9lua_Statei(%struct.lua_State* %24, i32 -2) ; [#uses=1]
+ %26 = icmp eq i32 %25, 0 ; [#uses=1]
+ br i1 %26, label %27, label %30
+
+; <label>:27 ; preds = %23, %19
+ %28 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %29 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %28, i8* getelementptr inbounds ([52 x i8]* @.str58, i32 0, i32 0)) ; [#uses=0]
+ br label %30
+
+; <label>:30 ; preds = %27, %23
+ br label %31
+
+; <label>:31 ; preds = %30
+ store i32 1, i32* %1
+ br label %32
+
+; <label>:32 ; preds = %31, %13
+ %33 = load i32* %1 ; [#uses=1]
+ ret i32 %33
+}
+
+; [#uses=1]
+define internal i32 @_Z17luaB_setmetatableP9lua_State(%struct.lua_State* %L) {
+; <label>:0
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %t = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %2, i32 2) ; [#uses=1]
+ store i32 %3, i32* %t, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %4, i32 1, i32 5)
+ %5 = load i32* %t, align 4 ; [#uses=1]
+ %6 = icmp eq i32 %5, 0 ; [#uses=1]
+ br i1 %6, label %14, label %7
+
+; <label>:7 ; preds = %0
+ %8 = load i32* %t, align 4 ; [#uses=1]
+ %9 = icmp eq i32 %8, 5 ; [#uses=1]
+ br i1 %9, label %14, label %10
+
+; <label>:10 ; preds = %7
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %11, i32 2, i8* getelementptr inbounds ([22 x i8]* @.str55, i32 0, i32 0)) ; [#uses=1]
+ %13 = icmp ne i32 %12, 0 ; [#uses=1]
+ br label %14
+
+; <label>:14 ; preds = %10, %7, %0
+ %15 = phi i1 [ true, %7 ], [ true, %0 ], [ %13, %10 ] ; [#uses=0]
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = call i32 @_Z17luaL_getmetafieldP9lua_StateiPKc(%struct.lua_State* %16, i32 1, i8* getelementptr inbounds ([12 x i8]* @.str56, i32 0, i32 0)) ; [#uses=1]
+ %18 = icmp ne i32 %17, 0 ; [#uses=1]
+ br i1 %18, label %19, label %22
+
+; <label>:19 ; preds = %14
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %21 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %20, i8* getelementptr inbounds ([36 x i8]* @.str57, i32 0, i32 0)) ; [#uses=0]
+ br label %22
+
+; <label>:22 ; preds = %19, %14
+ %23 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %23, i32 2)
+ %24 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %25 = call i32 @_Z16lua_setmetatableP9lua_Statei(%struct.lua_State* %24, i32 1) ; [#uses=0]
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z13luaB_tonumberP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=10]
+ %base = alloca i32, align 4 ; [#uses=5]
+ %s1 = alloca i8*, align 4 ; [#uses=3]
+ %s2 = alloca i8*, align 4 ; [#uses=6]
+ %n = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i32 @_Z15luaL_optintegerP9lua_Stateii(%struct.lua_State* %3, i32 2, i32 10) ; [#uses=1]
+ store i32 %4, i32* %base, align 4
+ %5 = load i32* %base, align 4 ; [#uses=1]
+ %6 = icmp eq i32 %5, 10 ; [#uses=1]
+ br i1 %6, label %7, label %17
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13luaL_checkanyP9lua_Statei(%struct.lua_State* %8, i32 1)
+ %9 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %10 = call i32 @_Z12lua_isnumberP9lua_Statei(%struct.lua_State* %9, i32 1) ; [#uses=1]
+ %11 = icmp ne i32 %10, 0 ; [#uses=1]
+ br i1 %11, label %12, label %16
+
+; <label>:12 ; preds = %7
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %15 = call double @_Z12lua_tonumberP9lua_Statei(%struct.lua_State* %14, i32 1) ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %13, double %15)
+ store i32 1, i32* %1
+ br label %60
+
+; <label>:16 ; preds = %7
+ br label %58
+
+; <label>:17 ; preds = %0
+ %18 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %19 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %18, i32 1, i32* null) ; [#uses=1]
+ store i8* %19, i8** %s1, align 4
+ %20 = load i32* %base, align 4 ; [#uses=1]
+ %21 = icmp sle i32 2, %20 ; [#uses=1]
+ br i1 %21, label %22, label %25
+
+; <label>:22 ; preds = %17
+ %23 = load i32* %base, align 4 ; [#uses=1]
+ %24 = icmp sle i32 %23, 36 ; [#uses=1]
+ br i1 %24, label %29, label %25
+
+; <label>:25 ; preds = %22, %17
+ %26 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %27 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %26, i32 2, i8* getelementptr inbounds ([18 x i8]* @.str54, i32 0, i32 0)) ; [#uses=1]
+ %28 = icmp ne i32 %27, 0 ; [#uses=1]
+ br label %29
+
+; <label>:29 ; preds = %25, %22
+ %30 = phi i1 [ true, %22 ], [ %28, %25 ] ; [#uses=0]
+ %31 = load i8** %s1, align 4 ; [#uses=1]
+ %32 = load i32* %base, align 4 ; [#uses=1]
+ %33 = call i32 @strtoul(i8* %31, i8** %s2, i32 %32) nounwind ; [#uses=1]
+ store i32 %33, i32* %n, align 4
+ %34 = load i8** %s1, align 4 ; [#uses=1]
+ %35 = load i8** %s2, align 4 ; [#uses=1]
+ %36 = icmp ne i8* %34, %35 ; [#uses=1]
+ br i1 %36, label %37, label %57
+
+; <label>:37 ; preds = %29
+ br label %38
+
+; <label>:38 ; preds = %44, %37
+ %39 = load i8** %s2, align 4 ; [#uses=1]
+ %40 = load i8* %39 ; [#uses=1]
+ %41 = zext i8 %40 to i32 ; [#uses=1]
+ %42 = call i32 @isspace(i32 %41) nounwind ; [#uses=1]
+ %43 = icmp ne i32 %42, 0 ; [#uses=1]
+ br i1 %43, label %44, label %47
+
+; <label>:44 ; preds = %38
+ %45 = load i8** %s2, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds i8* %45, i32 1 ; [#uses=1]
+ store i8* %46, i8** %s2, align 4
+ br label %38
+
+; <label>:47 ; preds = %38
+ %48 = load i8** %s2, align 4 ; [#uses=1]
+ %49 = load i8* %48 ; [#uses=1]
+ %50 = sext i8 %49 to i32 ; [#uses=1]
+ %51 = icmp eq i32 %50, 0 ; [#uses=1]
+ br i1 %51, label %52, label %56
+
+; <label>:52 ; preds = %47
+ %53 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %54 = load i32* %n, align 4 ; [#uses=1]
+ %55 = uitofp i32 %54 to double ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %53, double %55)
+ store i32 1, i32* %1
+ br label %60
+
+; <label>:56 ; preds = %47
+ br label %57
+
+; <label>:57 ; preds = %56, %29
+ br label %58
+
+; <label>:58 ; preds = %57, %16
+ %59 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %59)
+ store i32 1, i32* %1
+ br label %60
+
+; <label>:60 ; preds = %58, %52, %12
+ %61 = load i32* %1 ; [#uses=1]
+ ret i32 %61
+}
+
+; [#uses=1]
+define internal i32 @_Z13luaB_tostringP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=14]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13luaL_checkanyP9lua_Statei(%struct.lua_State* %3, i32 1)
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z13luaL_callmetaP9lua_StateiPKc(%struct.lua_State* %4, i32 1, i8* getelementptr inbounds ([11 x i8]* @.str49, i32 0, i32 0)) ; [#uses=1]
+ %6 = icmp ne i32 %5, 0 ; [#uses=1]
+ br i1 %6, label %7, label %8
+
+; <label>:7 ; preds = %0
+ store i32 1, i32* %1
+ br label %38
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %10 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %9, i32 1) ; [#uses=1]
+ switch i32 %10, label %28 [
+ i32 3, label %11
+ i32 4, label %15
+ i32 1, label %17
+ i32 0, label %26
+ ]
+
+; <label>:11 ; preds = %8
+ %12 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %13, i32 1, i32* null) ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %12, i8* %14)
+ br label %37
+
+; <label>:15 ; preds = %8
+ %16 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %16, i32 1)
+ br label %37
+
+; <label>:17 ; preds = %8
+ %18 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %19 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %20 = call i32 @_Z13lua_tobooleanP9lua_Statei(%struct.lua_State* %19, i32 1) ; [#uses=1]
+ %21 = icmp ne i32 %20, 0 ; [#uses=1]
+ br i1 %21, label %22, label %23
+
+; <label>:22 ; preds = %17
+ br label %24
+
+; <label>:23 ; preds = %17
+ br label %24
+
+; <label>:24 ; preds = %23, %22
+ %25 = phi i8* [ getelementptr inbounds ([5 x i8]* @.str50, i32 0, i32 0), %22 ], [ getelementptr inbounds ([6 x i8]* @.str51, i32 0, i32 0), %23 ] ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %18, i8* %25)
+ br label %37
+
+; <label>:26 ; preds = %8
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %27, i8* getelementptr inbounds ([4 x i8]* @.str52, i32 0, i32 0), i32 3)
+ br label %37
+
+; <label>:28 ; preds = %8
+ %29 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %30 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %31 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %32 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %31, i32 1) ; [#uses=1]
+ %33 = call i8* @_Z12lua_typenameP9lua_Statei(%struct.lua_State* %30, i32 %32) ; [#uses=1]
+ %34 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %35 = call i8* @_Z13lua_topointerP9lua_Statei(%struct.lua_State* %34, i32 1) ; [#uses=1]
+ %36 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %29, i8* getelementptr inbounds ([7 x i8]* @.str53, i32 0, i32 0), i8* %33, i8* %35) ; [#uses=0]
+ br label %37
+
+; <label>:37 ; preds = %28, %26, %24, %15, %11
+ store i32 1, i32* %1
+ br label %38
+
+; <label>:38 ; preds = %37, %7
+ %39 = load i32* %1 ; [#uses=1]
+ ret i32 %39
+}
+
+; [#uses=1]
+define internal i32 @_Z9luaB_typeP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_checkanyP9lua_Statei(%struct.lua_State* %2, i32 1)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %5, i32 1) ; [#uses=1]
+ %7 = call i8* @_Z12lua_typenameP9lua_Statei(%struct.lua_State* %4, i32 %6) ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %3, i8* %7)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z11luaB_unpackP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=10]
+ %i = alloca i32, align 4 ; [#uses=7]
+ %e = alloca i32, align 4 ; [#uses=4]
+ %n = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %3, i32 1, i32 5)
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z15luaL_optintegerP9lua_Stateii(%struct.lua_State* %4, i32 2, i32 1) ; [#uses=1]
+ store i32 %5, i32* %i, align 4
+ %6 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %7 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %6, i32 3) ; [#uses=1]
+ %8 = icmp sle i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %9, label %12
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %11 = call i32 @_Z10lua_objlenP9lua_Statei(%struct.lua_State* %10, i32 1) ; [#uses=1]
+ br label %15
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %13, i32 3) ; [#uses=1]
+ br label %15
+
+; <label>:15 ; preds = %12, %9
+ %16 = phi i32 [ %11, %9 ], [ %14, %12 ] ; [#uses=1]
+ store i32 %16, i32* %e, align 4
+ %17 = load i32* %i, align 4 ; [#uses=1]
+ %18 = load i32* %e, align 4 ; [#uses=1]
+ %19 = icmp sgt i32 %17, %18 ; [#uses=1]
+ br i1 %19, label %20, label %21
+
+; <label>:20 ; preds = %15
+ store i32 0, i32* %1
+ br label %49
+
+; <label>:21 ; preds = %15
+ %22 = load i32* %e, align 4 ; [#uses=1]
+ %23 = load i32* %i, align 4 ; [#uses=1]
+ %24 = sub nsw i32 %22, %23 ; [#uses=1]
+ %25 = add nsw i32 %24, 1 ; [#uses=1]
+ store i32 %25, i32* %n, align 4
+ %26 = load i32* %n, align 4 ; [#uses=1]
+ %27 = icmp sle i32 %26, 0 ; [#uses=1]
+ br i1 %27, label %33, label %28
+
+; <label>:28 ; preds = %21
+ %29 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %30 = load i32* %n, align 4 ; [#uses=1]
+ %31 = call i32 @_Z14lua_checkstackP9lua_Statei(%struct.lua_State* %29, i32 %30) ; [#uses=1]
+ %32 = icmp ne i32 %31, 0 ; [#uses=1]
+ br i1 %32, label %36, label %33
+
+; <label>:33 ; preds = %28, %21
+ %34 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %35 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %34, i8* getelementptr inbounds ([27 x i8]* @.str48, i32 0, i32 0)) ; [#uses=1]
+ store i32 %35, i32* %1
+ br label %49
+
+; <label>:36 ; preds = %28
+ %37 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %38 = load i32* %i, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %37, i32 1, i32 %38)
+ br label %39
+
+; <label>:39 ; preds = %44, %36
+ %40 = load i32* %i, align 4 ; [#uses=2]
+ %41 = add nsw i32 %40, 1 ; [#uses=1]
+ store i32 %41, i32* %i, align 4
+ %42 = load i32* %e, align 4 ; [#uses=1]
+ %43 = icmp slt i32 %40, %42 ; [#uses=1]
+ br i1 %43, label %44, label %47
+
+; <label>:44 ; preds = %39
+ %45 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %46 = load i32* %i, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %45, i32 1, i32 %46)
+ br label %39
+
+; <label>:47 ; preds = %39
+ %48 = load i32* %n, align 4 ; [#uses=1]
+ store i32 %48, i32* %1
+ br label %49
+
+; <label>:49 ; preds = %47, %33, %20
+ %50 = load i32* %1 ; [#uses=1]
+ ret i32 %50
+}
+
+; [#uses=1]
+define internal i32 @_Z11luaB_xpcallP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %status = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_checkanyP9lua_Statei(%struct.lua_State* %2, i32 2)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %3, i32 2)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_insertP9lua_Statei(%struct.lua_State* %4, i32 1)
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = call i32 @_Z9lua_pcallP9lua_Stateiii(%struct.lua_State* %5, i32 0, i32 -1, i32 1) ; [#uses=1]
+ store i32 %6, i32* %status, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load i32* %status, align 4 ; [#uses=1]
+ %9 = icmp eq i32 %8, 0 ; [#uses=1]
+ %10 = zext i1 %9 to i32 ; [#uses=1]
+ call void @_Z15lua_pushbooleanP9lua_Statei(%struct.lua_State* %7, i32 %10)
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11lua_replaceP9lua_Statei(%struct.lua_State* %11, i32 1)
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %12) ; [#uses=1]
+ ret i32 %13
+}
+
+; [#uses=2]
+define internal i32 @_Z13luaB_cocreateP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %NL = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call %struct.lua_State* @_Z13lua_newthreadP9lua_State(%struct.lua_State* %2) ; [#uses=1]
+ store %struct.lua_State* %3, %struct.lua_State** %NL, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %4, i32 1) ; [#uses=1]
+ %6 = icmp eq i32 %5, 6 ; [#uses=1]
+ br i1 %6, label %7, label %11
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = call i32 @_Z15lua_iscfunctionP9lua_Statei(%struct.lua_State* %8, i32 1) ; [#uses=1]
+ %10 = icmp ne i32 %9, 0 ; [#uses=1]
+ br i1 %10, label %11, label %15
+
+; <label>:11 ; preds = %7, %0
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %12, i32 1, i8* getelementptr inbounds ([22 x i8]* @.str47315, i32 0, i32 0)) ; [#uses=1]
+ %14 = icmp ne i32 %13, 0 ; [#uses=1]
+ br label %15
+
+; <label>:15 ; preds = %11, %7
+ %16 = phi i1 [ true, %7 ], [ %14, %11 ] ; [#uses=0]
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %17, i32 1)
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = load %struct.lua_State** %NL, align 4 ; [#uses=1]
+ call void @_Z9lua_xmoveP9lua_StateS0_i(%struct.lua_State* %18, %struct.lua_State* %19, i32 1)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z13luaB_coresumeP9lua_State(%struct.lua_State* %L) {
+; <label>:0
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %co = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %r = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call %struct.lua_State* @_Z12lua_tothreadP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ store %struct.lua_State* %4, %struct.lua_State** %co, align 4
+ %5 = load %struct.lua_State** %co, align 4 ; [#uses=1]
+ %6 = icmp ne %struct.lua_State* %5, null ; [#uses=1]
+ br i1 %6, label %11, label %7
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %9 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %8, i32 1, i8* getelementptr inbounds ([19 x i8]* @.str46314, i32 0, i32 0)) ; [#uses=1]
+ %10 = icmp ne i32 %9, 0 ; [#uses=1]
+ br label %11
+
+; <label>:11 ; preds = %7, %0
+ %12 = phi i1 [ true, %0 ], [ %10, %7 ] ; [#uses=0]
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = load %struct.lua_State** %co, align 4 ; [#uses=1]
+ %15 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %16 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %15) ; [#uses=1]
+ %17 = sub nsw i32 %16, 1 ; [#uses=1]
+ %18 = call i32 @_Z9auxresumeP9lua_StateS0_i(%struct.lua_State* %13, %struct.lua_State* %14, i32 %17) ; [#uses=1]
+ store i32 %18, i32* %r, align 4
+ %19 = load i32* %r, align 4 ; [#uses=1]
+ %20 = icmp slt i32 %19, 0 ; [#uses=1]
+ br i1 %20, label %21, label %24
+
+; <label>:21 ; preds = %11
+ %22 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushbooleanP9lua_Statei(%struct.lua_State* %22, i32 0)
+ %23 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_insertP9lua_Statei(%struct.lua_State* %23, i32 -2)
+ store i32 2, i32* %1
+ br label %32
+
+; <label>:24 ; preds = %11
+ %25 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushbooleanP9lua_Statei(%struct.lua_State* %25, i32 1)
+ %26 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %27 = load i32* %r, align 4 ; [#uses=1]
+ %28 = add nsw i32 %27, 1 ; [#uses=1]
+ %29 = sub nsw i32 0, %28 ; [#uses=1]
+ call void @_Z10lua_insertP9lua_Statei(%struct.lua_State* %26, i32 %29)
+ %30 = load i32* %r, align 4 ; [#uses=1]
+ %31 = add nsw i32 %30, 1 ; [#uses=1]
+ store i32 %31, i32* %1
+ br label %32
+
+; <label>:32 ; preds = %24, %21
+ %33 = load i32* %1 ; [#uses=1]
+ ret i32 %33
+}
+
+; [#uses=1]
+define internal i32 @_Z14luaB_corunningP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z14lua_pushthreadP9lua_State(%struct.lua_State* %2) ; [#uses=1]
+ %4 = icmp ne i32 %3, 0 ; [#uses=1]
+ br i1 %4, label %5, label %7
+
+; <label>:5 ; preds = %0
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %6)
+ br label %7
+
+; <label>:7 ; preds = %5, %0
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z13luaB_costatusP9lua_State(%struct.lua_State* %L) {
+; <label>:0
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %co = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call %struct.lua_State* @_Z12lua_tothreadP9lua_Statei(%struct.lua_State* %2, i32 1) ; [#uses=1]
+ store %struct.lua_State* %3, %struct.lua_State** %co, align 4
+ %4 = load %struct.lua_State** %co, align 4 ; [#uses=1]
+ %5 = icmp ne %struct.lua_State* %4, null ; [#uses=1]
+ br i1 %5, label %10, label %6
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %7, i32 1, i8* getelementptr inbounds ([19 x i8]* @.str46314, i32 0, i32 0)) ; [#uses=1]
+ %9 = icmp ne i32 %8, 0 ; [#uses=1]
+ br label %10
+
+; <label>:10 ; preds = %6, %0
+ %11 = phi i1 [ true, %0 ], [ %9, %6 ] ; [#uses=0]
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = load %struct.lua_State** %co, align 4 ; [#uses=1]
+ %15 = call i32 @_Z8costatusP9lua_StateS0_(%struct.lua_State* %13, %struct.lua_State* %14) ; [#uses=1]
+ %16 = getelementptr inbounds [4 x i8*]* @_ZL9statnames, i32 0, i32 %15 ; [#uses=1]
+ %17 = load i8** %16 ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %12, i8* %17)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z11luaB_cowrapP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z13luaB_cocreateP9lua_State(%struct.lua_State* %2) ; [#uses=0]
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z16lua_pushcclosureP9lua_StatePFiS0_Ei(%struct.lua_State* %4, i32 (%struct.lua_State*)* @_Z12luaB_auxwrapP9lua_State, i32 1)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z10luaB_yieldP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %3) ; [#uses=1]
+ %5 = call i32 @_Z9lua_yieldP9lua_Statei(%struct.lua_State* %2, i32 %4) ; [#uses=1]
+ ret i32 %5
+}
+
+; [#uses=1]
+define i32 @_Z12luaopen_baseP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9base_openP9lua_State(%struct.lua_State* %2)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_registerP9lua_StatePKcPK8luaL_Reg(%struct.lua_State* %3, i8* getelementptr inbounds ([10 x i8]* @.str30298, i32 0, i32 0), %struct.luaL_Reg* getelementptr inbounds ([7 x %struct.luaL_Reg]* @_ZL8co_funcs, i32 0, i32 0))
+ ret i32 2
+}
+
+; [#uses=1]
+define internal void @_Z9base_openP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=15]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %2, i32 -10002)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %3, i32 -10002, i8* getelementptr inbounds ([3 x i8]* @.str31299, i32 0, i32 0))
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_registerP9lua_StatePKcPK8luaL_Reg(%struct.lua_State* %4, i8* getelementptr inbounds ([3 x i8]* @.str31299, i32 0, i32 0), %struct.luaL_Reg* getelementptr inbounds ([25 x %struct.luaL_Reg]* @_ZL10base_funcs, i32 0, i32 0))
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %5, i8* getelementptr inbounds ([8 x i8]* @.str32300, i32 0, i32 0), i32 7)
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %6, i32 -10002, i8* getelementptr inbounds ([9 x i8]* @.str33301, i32 0, i32 0))
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z7auxopenP9lua_StatePKcPFiS0_ES4_(%struct.lua_State* %7, i8* getelementptr inbounds ([7 x i8]* @.str34302, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11luaB_ipairsP9lua_State, i32 (%struct.lua_State*)* @_Z9ipairsauxP9lua_State)
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z7auxopenP9lua_StatePKcPFiS0_ES4_(%struct.lua_State* %8, i8* getelementptr inbounds ([6 x i8]* @.str35303, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z10luaB_pairsP9lua_State, i32 (%struct.lua_State*)* @_Z9luaB_nextP9lua_State)
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_createtableP9lua_Stateii(%struct.lua_State* %9, i32 0, i32 1)
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %10, i32 -1)
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = call i32 @_Z16lua_setmetatableP9lua_Statei(%struct.lua_State* %11, i32 -2) ; [#uses=0]
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %13, i8* getelementptr inbounds ([3 x i8]* @.str36304, i32 0, i32 0), i32 2)
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %14, i32 -2, i8* getelementptr inbounds ([7 x i8]* @.str37305, i32 0, i32 0))
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z16lua_pushcclosureP9lua_StatePFiS0_Ei(%struct.lua_State* %15, i32 (%struct.lua_State*)* @_Z13luaB_newproxyP9lua_State, i32 1)
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %16, i32 -10002, i8* getelementptr inbounds ([9 x i8]* @.str38306, i32 0, i32 0))
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z7auxopenP9lua_StatePKcPFiS0_ES4_(%struct.lua_State* %L, i8* %name, i32 (%struct.lua_State*)* %f, i32 (%struct.lua_State*)* %u) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %3 = alloca i32 (%struct.lua_State*)*, align 4 ; [#uses=2]
+ %4 = alloca i32 (%struct.lua_State*)*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %name, i8** %2, align 4
+ store i32 (%struct.lua_State*)* %f, i32 (%struct.lua_State*)** %3, align 4
+ store i32 (%struct.lua_State*)* %u, i32 (%struct.lua_State*)** %4, align 4
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = load i32 (%struct.lua_State*)** %4, align 4 ; [#uses=1]
+ call void @_Z16lua_pushcclosureP9lua_StatePFiS0_Ei(%struct.lua_State* %5, i32 (%struct.lua_State*)* %6, i32 0)
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load i32 (%struct.lua_State*)** %3, align 4 ; [#uses=1]
+ call void @_Z16lua_pushcclosureP9lua_StatePFiS0_Ei(%struct.lua_State* %7, i32 (%struct.lua_State*)* %8, i32 1)
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = load i8** %2, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %9, i32 -2, i8* %10)
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z11luaB_ipairsP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %2, i32 1, i32 5)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %3, i32 -10003)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %4, i32 1)
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %5, i32 0)
+ ret i32 3
+}
+
+; [#uses=1]
+define internal i32 @_Z9ipairsauxP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %i = alloca i32, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %2, i32 2) ; [#uses=1]
+ store i32 %3, i32* %i, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %4, i32 1, i32 5)
+ %5 = load i32* %i, align 4 ; [#uses=1]
+ %6 = add nsw i32 %5, 1 ; [#uses=1]
+ store i32 %6, i32* %i, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load i32* %i, align 4 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %7, i32 %8)
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = load i32* %i, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %9, i32 1, i32 %10)
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %11, i32 -1) ; [#uses=1]
+ %13 = icmp eq i32 %12, 0 ; [#uses=1]
+ %14 = select i1 %13, i32 0, i32 2 ; [#uses=1]
+ ret i32 %14
+}
+
+; [#uses=1]
+define internal i32 @_Z10luaB_pairsP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %2, i32 1, i32 5)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %3, i32 -10003)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %4, i32 1)
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %5)
+ ret i32 3
+}
+
+; [#uses=1]
+define internal i32 @_Z13luaB_newproxyP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=16]
+ %validproxy = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %3, i32 1)
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = call i8* @_Z15lua_newuserdataP9lua_Statej(%struct.lua_State* %4, i32 0) ; [#uses=0]
+ %6 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %7 = call i32 @_Z13lua_tobooleanP9lua_Statei(%struct.lua_State* %6, i32 1) ; [#uses=1]
+ %8 = icmp eq i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %9, label %10
+
+; <label>:9 ; preds = %0
+ store i32 1, i32* %1
+ br label %43
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %12 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %11, i32 1) ; [#uses=1]
+ %13 = icmp eq i32 %12, 1 ; [#uses=1]
+ br i1 %13, label %14, label %19
+
+; <label>:14 ; preds = %10
+ %15 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_createtableP9lua_Stateii(%struct.lua_State* %15, i32 0, i32 0)
+ %16 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %16, i32 -1)
+ %17 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushbooleanP9lua_Statei(%struct.lua_State* %17, i32 1)
+ %18 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_rawsetP9lua_Statei(%struct.lua_State* %18, i32 -10003)
+ br label %39
+
+; <label>:19 ; preds = %10
+ store i32 0, i32* %validproxy, align 4
+ %20 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %21 = call i32 @_Z16lua_getmetatableP9lua_Statei(%struct.lua_State* %20, i32 1) ; [#uses=1]
+ %22 = icmp ne i32 %21, 0 ; [#uses=1]
+ br i1 %22, label %23, label %28
+
+; <label>:23 ; preds = %19
+ %24 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_rawgetP9lua_Statei(%struct.lua_State* %24, i32 -10003)
+ %25 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %26 = call i32 @_Z13lua_tobooleanP9lua_Statei(%struct.lua_State* %25, i32 -1) ; [#uses=1]
+ store i32 %26, i32* %validproxy, align 4
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %27, i32 -2)
+ br label %28
+
+; <label>:28 ; preds = %23, %19
+ %29 = load i32* %validproxy, align 4 ; [#uses=1]
+ %30 = icmp ne i32 %29, 0 ; [#uses=1]
+ br i1 %30, label %35, label %31
+
+; <label>:31 ; preds = %28
+ %32 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %33 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %32, i32 1, i8* getelementptr inbounds ([26 x i8]* @.str39307, i32 0, i32 0)) ; [#uses=1]
+ %34 = icmp ne i32 %33, 0 ; [#uses=1]
+ br label %35
+
+; <label>:35 ; preds = %31, %28
+ %36 = phi i1 [ true, %28 ], [ %34, %31 ] ; [#uses=0]
+ %37 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %38 = call i32 @_Z16lua_getmetatableP9lua_Statei(%struct.lua_State* %37, i32 1) ; [#uses=0]
+ br label %39
+
+; <label>:39 ; preds = %35, %14
+ br label %40
+
+; <label>:40 ; preds = %39
+ %41 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %42 = call i32 @_Z16lua_setmetatableP9lua_Statei(%struct.lua_State* %41, i32 2) ; [#uses=0]
+ store i32 1, i32* %1
+ br label %43
+
+; <label>:43 ; preds = %40, %9
+ %44 = load i32* %1 ; [#uses=1]
+ ret i32 %44
+}
+
+; [#uses=1]
+define internal i32 @_Z12luaB_auxwrapP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %co = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %r = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call %struct.lua_State* @_Z12lua_tothreadP9lua_Statei(%struct.lua_State* %2, i32 -10003) ; [#uses=1]
+ store %struct.lua_State* %3, %struct.lua_State** %co, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load %struct.lua_State** %co, align 4 ; [#uses=1]
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %6) ; [#uses=1]
+ %8 = call i32 @_Z9auxresumeP9lua_StateS0_i(%struct.lua_State* %4, %struct.lua_State* %5, i32 %7) ; [#uses=1]
+ store i32 %8, i32* %r, align 4
+ %9 = load i32* %r, align 4 ; [#uses=1]
+ %10 = icmp slt i32 %9, 0 ; [#uses=1]
+ br i1 %10, label %11, label %22
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = call i32 @_Z12lua_isstringP9lua_Statei(%struct.lua_State* %12, i32 -1) ; [#uses=1]
+ %14 = icmp ne i32 %13, 0 ; [#uses=1]
+ br i1 %14, label %15, label %19
+
+; <label>:15 ; preds = %11
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10luaL_whereP9lua_Statei(%struct.lua_State* %16, i32 1)
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_insertP9lua_Statei(%struct.lua_State* %17, i32 -2)
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_concatP9lua_Statei(%struct.lua_State* %18, i32 2)
+ br label %19
+
+; <label>:19 ; preds = %15, %11
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %21 = call i32 @_Z9lua_errorP9lua_State(%struct.lua_State* %20) ; [#uses=0]
+ br label %22
+
+; <label>:22 ; preds = %19, %0
+ %23 = load i32* %r, align 4 ; [#uses=1]
+ ret i32 %23
+}
+
+; [#uses=2]
+define internal i32 @_Z9auxresumeP9lua_StateS0_i(%struct.lua_State* %L, %struct.lua_State* %co, i32 %narg) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=10]
+ %3 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %4 = alloca i32, align 4 ; [#uses=4]
+ %status = alloca i32, align 4 ; [#uses=6]
+ %nres = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.lua_State* %co, %struct.lua_State** %3, align 4
+ store i32 %narg, i32* %4, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = load %struct.lua_State** %3, align 4 ; [#uses=1]
+ %7 = call i32 @_Z8costatusP9lua_StateS0_(%struct.lua_State* %5, %struct.lua_State* %6) ; [#uses=1]
+ store i32 %7, i32* %status, align 4
+ %8 = load %struct.lua_State** %3, align 4 ; [#uses=1]
+ %9 = load i32* %4, align 4 ; [#uses=1]
+ %10 = call i32 @_Z14lua_checkstackP9lua_Statei(%struct.lua_State* %8, i32 %9) ; [#uses=1]
+ %11 = icmp ne i32 %10, 0 ; [#uses=1]
+ br i1 %11, label %15, label %12
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %13, i8* getelementptr inbounds ([29 x i8]* @.str40308, i32 0, i32 0)) ; [#uses=0]
+ br label %15
+
+; <label>:15 ; preds = %12, %0
+ %16 = load i32* %status, align 4 ; [#uses=1]
+ %17 = icmp ne i32 %16, 1 ; [#uses=1]
+ br i1 %17, label %18, label %24
+
+; <label>:18 ; preds = %15
+ %19 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %20 = load i32* %status, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds [4 x i8*]* @_ZL9statnames, i32 0, i32 %20 ; [#uses=1]
+ %22 = load i8** %21 ; [#uses=1]
+ %23 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %19, i8* getelementptr inbounds ([27 x i8]* @.str41309, i32 0, i32 0), i8* %22) ; [#uses=0]
+ store i32 -1, i32* %1
+ br label %57
+
+; <label>:24 ; preds = %15
+ %25 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %26 = load %struct.lua_State** %3, align 4 ; [#uses=1]
+ %27 = load i32* %4, align 4 ; [#uses=1]
+ call void @_Z9lua_xmoveP9lua_StateS0_i(%struct.lua_State* %25, %struct.lua_State* %26, i32 %27)
+ %28 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %29 = load %struct.lua_State** %3, align 4 ; [#uses=1]
+ call void @_Z12lua_setlevelP9lua_StateS0_(%struct.lua_State* %28, %struct.lua_State* %29)
+ %30 = load %struct.lua_State** %3, align 4 ; [#uses=1]
+ %31 = load i32* %4, align 4 ; [#uses=1]
+ %32 = call i32 @_Z10lua_resumeP9lua_Statei(%struct.lua_State* %30, i32 %31) ; [#uses=1]
+ store i32 %32, i32* %status, align 4
+ %33 = load i32* %status, align 4 ; [#uses=1]
+ %34 = icmp eq i32 %33, 0 ; [#uses=1]
+ br i1 %34, label %38, label %35
+
+; <label>:35 ; preds = %24
+ %36 = load i32* %status, align 4 ; [#uses=1]
+ %37 = icmp eq i32 %36, 1 ; [#uses=1]
+ br i1 %37, label %38, label %54
+
+; <label>:38 ; preds = %35, %24
+ %39 = load %struct.lua_State** %3, align 4 ; [#uses=1]
+ %40 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %39) ; [#uses=1]
+ store i32 %40, i32* %nres, align 4
+ %41 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %42 = load i32* %nres, align 4 ; [#uses=1]
+ %43 = add nsw i32 %42, 1 ; [#uses=1]
+ %44 = call i32 @_Z14lua_checkstackP9lua_Statei(%struct.lua_State* %41, i32 %43) ; [#uses=1]
+ %45 = icmp ne i32 %44, 0 ; [#uses=1]
+ br i1 %45, label %49, label %46
+
+; <label>:46 ; preds = %38
+ %47 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %48 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %47, i8* getelementptr inbounds ([27 x i8]* @.str42310, i32 0, i32 0)) ; [#uses=0]
+ br label %49
+
+; <label>:49 ; preds = %46, %38
+ %50 = load %struct.lua_State** %3, align 4 ; [#uses=1]
+ %51 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %52 = load i32* %nres, align 4 ; [#uses=1]
+ call void @_Z9lua_xmoveP9lua_StateS0_i(%struct.lua_State* %50, %struct.lua_State* %51, i32 %52)
+ %53 = load i32* %nres, align 4 ; [#uses=1]
+ store i32 %53, i32* %1
+ br label %57
+
+; <label>:54 ; preds = %35
+ %55 = load %struct.lua_State** %3, align 4 ; [#uses=1]
+ %56 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z9lua_xmoveP9lua_StateS0_i(%struct.lua_State* %55, %struct.lua_State* %56, i32 1)
+ store i32 -1, i32* %1
+ br label %57
+
+; <label>:57 ; preds = %54, %49, %18
+ %58 = load i32* %1 ; [#uses=1]
+ ret i32 %58
+}
+
+; [#uses=2]
+define internal i32 @_Z8costatusP9lua_StateS0_(%struct.lua_State* %L, %struct.lua_State* %co) {
+ %1 = alloca i32, align 4 ; [#uses=7]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %3 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %ar = alloca %struct.lua_Debug, align 4 ; [#uses=1]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct.lua_State* %co, %struct.lua_State** %3, align 4
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = load %struct.lua_State** %3, align 4 ; [#uses=1]
+ %6 = icmp eq %struct.lua_State* %4, %5 ; [#uses=1]
+ br i1 %6, label %7, label %8
+
+; <label>:7 ; preds = %0
+ store i32 0, i32* %1
+ br label %24
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %3, align 4 ; [#uses=1]
+ %10 = call i32 @_Z10lua_statusP9lua_State(%struct.lua_State* %9) ; [#uses=1]
+ switch i32 %10, label %23 [
+ i32 1, label %11
+ i32 0, label %12
+ ]
+
+; <label>:11 ; preds = %8
+ store i32 1, i32* %1
+ br label %24
+
+; <label>:12 ; preds = %8
+ %13 = load %struct.lua_State** %3, align 4 ; [#uses=1]
+ %14 = call i32 @_Z12lua_getstackP9lua_StateiP9lua_Debug(%struct.lua_State* %13, i32 0, %struct.lua_Debug* %ar) ; [#uses=1]
+ %15 = icmp sgt i32 %14, 0 ; [#uses=1]
+ br i1 %15, label %16, label %17
+
+; <label>:16 ; preds = %12
+ store i32 2, i32* %1
+ br label %24
+
+; <label>:17 ; preds = %12
+ %18 = load %struct.lua_State** %3, align 4 ; [#uses=1]
+ %19 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %18) ; [#uses=1]
+ %20 = icmp eq i32 %19, 0 ; [#uses=1]
+ br i1 %20, label %21, label %22
+
+; <label>:21 ; preds = %17
+ store i32 3, i32* %1
+ br label %24
+
+; <label>:22 ; preds = %17
+ store i32 1, i32* %1
+ br label %24
+
+; <label>:23 ; preds = %8
+ store i32 3, i32* %1
+ br label %24
+
+; <label>:24 ; preds = %23, %22, %21, %16, %11, %7
+ %25 = load i32* %1 ; [#uses=1]
+ ret i32 %25
+}
+
+; [#uses=2]
+define internal void @_Z7getfuncP9lua_Statei(%struct.lua_State* %L, i32 %opt) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=11]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %ar = alloca %struct.lua_Debug, align 4 ; [#uses=2]
+ %level = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %opt, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = icmp eq i32 %4, 6 ; [#uses=1]
+ br i1 %5, label %6, label %8
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %7, i32 1)
+ br label %45
+
+; <label>:8 ; preds = %0
+ %9 = load i32* %2, align 4 ; [#uses=1]
+ %10 = icmp ne i32 %9, 0 ; [#uses=1]
+ br i1 %10, label %11, label %14
+
+; <label>:11 ; preds = %8
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = call i32 @_Z15luaL_optintegerP9lua_Stateii(%struct.lua_State* %12, i32 1, i32 1) ; [#uses=1]
+ br label %17
+
+; <label>:14 ; preds = %8
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %15, i32 1) ; [#uses=1]
+ br label %17
+
+; <label>:17 ; preds = %14, %11
+ %18 = phi i32 [ %13, %11 ], [ %16, %14 ] ; [#uses=1]
+ store i32 %18, i32* %level, align 4
+ %19 = load i32* %level, align 4 ; [#uses=1]
+ %20 = icmp sge i32 %19, 0 ; [#uses=1]
+ br i1 %20, label %25, label %21
+
+; <label>:21 ; preds = %17
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %22, i32 1, i8* getelementptr inbounds ([27 x i8]* @.str59, i32 0, i32 0)) ; [#uses=1]
+ %24 = icmp ne i32 %23, 0 ; [#uses=1]
+ br label %25
+
+; <label>:25 ; preds = %21, %17
+ %26 = phi i1 [ true, %17 ], [ %24, %21 ] ; [#uses=0]
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %28 = load i32* %level, align 4 ; [#uses=1]
+ %29 = call i32 @_Z12lua_getstackP9lua_StateiP9lua_Debug(%struct.lua_State* %27, i32 %28, %struct.lua_Debug* %ar) ; [#uses=1]
+ %30 = icmp eq i32 %29, 0 ; [#uses=1]
+ br i1 %30, label %31, label %34
+
+; <label>:31 ; preds = %25
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %32, i32 1, i8* getelementptr inbounds ([14 x i8]* @.str60, i32 0, i32 0)) ; [#uses=0]
+ br label %34
+
+; <label>:34 ; preds = %31, %25
+ %35 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %36 = call i32 @_Z11lua_getinfoP9lua_StatePKcP9lua_Debug(%struct.lua_State* %35, i8* getelementptr inbounds ([2 x i8]* @.str61, i32 0, i32 0), %struct.lua_Debug* %ar) ; [#uses=0]
+ %37 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %38 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %37, i32 -1) ; [#uses=1]
+ %39 = icmp eq i32 %38, 0 ; [#uses=1]
+ br i1 %39, label %40, label %44
+
+; <label>:40 ; preds = %34
+ %41 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %42 = load i32* %level, align 4 ; [#uses=1]
+ %43 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %41, i8* getelementptr inbounds ([50 x i8]* @.str62, i32 0, i32 0), i32 %42) ; [#uses=0]
+ br label %44
+
+; <label>:44 ; preds = %40, %34
+ br label %45
+
+; <label>:45 ; preds = %44, %6
+ ret void
+}
+
+; [#uses=3]
+define internal i32 @_Z8load_auxP9lua_Statei(%struct.lua_State* %L, i32 %status) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %status, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = icmp eq i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %6, label %7
+
+; <label>:6 ; preds = %0
+ store i32 1, i32* %1
+ br label %10
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %8)
+ %9 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_insertP9lua_Statei(%struct.lua_State* %9, i32 -2)
+ store i32 2, i32* %1
+ br label %10
+
+; <label>:10 ; preds = %7, %6
+ %11 = load i32* %1 ; [#uses=1]
+ ret i32 %11
+}
+
+; [#uses=1]
+define internal i8* @_Z14generic_readerP9lua_StatePvPj(%struct.lua_State* %L, i8* %ud, i32* %size) {
+ %1 = alloca i8*, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %3 = alloca i8*, align 4 ; [#uses=1]
+ %4 = alloca i32*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i8* %ud, i8** %3, align 4
+ store i32* %size, i32** %4, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15luaL_checkstackP9lua_StateiPKc(%struct.lua_State* %5, i32 2, i8* getelementptr inbounds ([26 x i8]* @.str68, i32 0, i32 0))
+ %6 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %6, i32 1)
+ %7 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z8lua_callP9lua_Stateii(%struct.lua_State* %7, i32 0, i32 1)
+ %8 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %9 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %8, i32 -1) ; [#uses=1]
+ %10 = icmp eq i32 %9, 0 ; [#uses=1]
+ br i1 %10, label %11, label %13
+
+; <label>:11 ; preds = %0
+ %12 = load i32** %4, align 4 ; [#uses=1]
+ store i32 0, i32* %12
+ store i8* null, i8** %1
+ br label %27
+
+; <label>:13 ; preds = %0
+ %14 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %15 = call i32 @_Z12lua_isstringP9lua_Statei(%struct.lua_State* %14, i32 -1) ; [#uses=1]
+ %16 = icmp ne i32 %15, 0 ; [#uses=1]
+ br i1 %16, label %17, label %22
+
+; <label>:17 ; preds = %13
+ %18 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z11lua_replaceP9lua_Statei(%struct.lua_State* %18, i32 3)
+ %19 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %20 = load i32** %4, align 4 ; [#uses=1]
+ %21 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %19, i32 3, i32* %20) ; [#uses=1]
+ store i8* %21, i8** %1
+ br label %27
+
+; <label>:22 ; preds = %13
+ %23 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %24 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %23, i8* getelementptr inbounds ([37 x i8]* @.str69, i32 0, i32 0)) ; [#uses=0]
+ br label %25
+
+; <label>:25 ; preds = %22
+ br label %26
+
+; <label>:26 ; preds = %25
+ store i8* null, i8** %1
+ br label %27
+
+; <label>:27 ; preds = %26, %17, %11
+ %28 = load i8** %1 ; [#uses=1]
+ ret i8* %28
+}
+
+; [#uses=1]
+define internal i32 @_Z8db_debugP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %buffer = alloca [250 x i8], align 1 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ br label %2
+
+; <label>:2 ; preds = %32, %0
+ %3 = load %struct._IO_FILE** @stderr, align 4 ; [#uses=1]
+ %4 = call i32 @fputs(i8* getelementptr inbounds ([12 x i8]* @.str50368, i32 0, i32 0), %struct._IO_FILE* %3) ; [#uses=0]
+ %5 = getelementptr inbounds [250 x i8]* %buffer, i32 0, i32 0 ; [#uses=1]
+ %6 = load %struct._IO_FILE** @stdin, align 4 ; [#uses=1]
+ %7 = call i8* @fgets(i8* %5, i32 250, %struct._IO_FILE* %6) ; [#uses=1]
+ %8 = icmp eq i8* %7, null ; [#uses=1]
+ br i1 %8, label %13, label %9
+
+; <label>:9 ; preds = %2
+ %10 = getelementptr inbounds [250 x i8]* %buffer, i32 0, i32 0 ; [#uses=1]
+ %11 = call i32 @strcmp(i8* %10, i8* getelementptr inbounds ([6 x i8]* @.str51369, i32 0, i32 0)) nounwind readonly ; [#uses=1]
+ %12 = icmp eq i32 %11, 0 ; [#uses=1]
+ br i1 %12, label %13, label %14
+
+; <label>:13 ; preds = %9, %2
+ ret i32 0
+
+; <label>:14 ; preds = %9
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds [250 x i8]* %buffer, i32 0, i32 0 ; [#uses=1]
+ %17 = getelementptr inbounds [250 x i8]* %buffer, i32 0, i32 0 ; [#uses=1]
+ %18 = call i32 @strlen(i8* %17) ; [#uses=1]
+ %19 = call i32 @_Z15luaL_loadbufferP9lua_StatePKcjS2_(%struct.lua_State* %15, i8* %16, i32 %18, i8* getelementptr inbounds ([17 x i8]* @.str52370, i32 0, i32 0)) ; [#uses=1]
+ %20 = icmp ne i32 %19, 0 ; [#uses=1]
+ br i1 %20, label %25, label %21
+
+; <label>:21 ; preds = %14
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = call i32 @_Z9lua_pcallP9lua_Stateiii(%struct.lua_State* %22, i32 0, i32 0, i32 0) ; [#uses=1]
+ %24 = icmp ne i32 %23, 0 ; [#uses=1]
+ br i1 %24, label %25, label %32
+
+; <label>:25 ; preds = %21, %14
+ %26 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %27 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %26, i32 -1, i32* null) ; [#uses=1]
+ %28 = load %struct._IO_FILE** @stderr, align 4 ; [#uses=1]
+ %29 = call i32 @fputs(i8* %27, %struct._IO_FILE* %28) ; [#uses=0]
+ %30 = load %struct._IO_FILE** @stderr, align 4 ; [#uses=1]
+ %31 = call i32 @fputs(i8* getelementptr inbounds ([2 x i8]* @.str15333, i32 0, i32 0), %struct._IO_FILE* %30) ; [#uses=0]
+ br label %32
+
+; <label>:32 ; preds = %25, %21
+ %33 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %33, i32 0)
+ br label %2
+}
+
+; [#uses=1]
+define internal i32 @_Z10db_getfenvP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11lua_getfenvP9lua_Statei(%struct.lua_State* %2, i32 1)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z10db_gethookP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %arg = alloca i32, align 4 ; [#uses=1]
+ %L1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %buff = alloca [5 x i8], align 1 ; [#uses=1]
+ %mask = alloca i32, align 4 ; [#uses=2]
+ %hook = alloca void (%struct.lua_State*, %struct.lua_Debug*)*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call %struct.lua_State* @_Z9getthreadP9lua_StatePi(%struct.lua_State* %2, i32* %arg) ; [#uses=1]
+ store %struct.lua_State* %3, %struct.lua_State** %L1, align 4
+ %4 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z15lua_gethookmaskP9lua_State(%struct.lua_State* %4) ; [#uses=1]
+ store i32 %5, i32* %mask, align 4
+ %6 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %7 = call void (%struct.lua_State*, %struct.lua_Debug*)* (%struct.lua_State*)* @_Z11lua_gethookP9lua_State(%struct.lua_State* %6) ; [#uses=1]
+ store void (%struct.lua_State*, %struct.lua_Debug*)* %7, void (%struct.lua_State*, %struct.lua_Debug*)** %hook, align 4
+ %8 = load void (%struct.lua_State*, %struct.lua_Debug*)** %hook, align 4 ; [#uses=1]
+ %9 = icmp ne void (%struct.lua_State*, %struct.lua_Debug*)* %8, null ; [#uses=1]
+ br i1 %9, label %10, label %15
+
+; <label>:10 ; preds = %0
+ %11 = load void (%struct.lua_State*, %struct.lua_Debug*)** %hook, align 4 ; [#uses=1]
+ %12 = icmp ne void (%struct.lua_State*, %struct.lua_Debug*)* %11, @_Z5hookfP9lua_StateP9lua_Debug ; [#uses=1]
+ br i1 %12, label %13, label %15
+
+; <label>:13 ; preds = %10
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %14, i8* getelementptr inbounds ([14 x i8]* @.str49367, i32 0, i32 0), i32 13)
+ br label %22
+
+; <label>:15 ; preds = %10, %0
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12gethooktableP9lua_State(%struct.lua_State* %16)
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %18 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %19 = bitcast %struct.lua_State* %18 to i8* ; [#uses=1]
+ call void @_Z21lua_pushlightuserdataP9lua_StatePv(%struct.lua_State* %17, i8* %19)
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_rawgetP9lua_Statei(%struct.lua_State* %20, i32 -2)
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_removeP9lua_Statei(%struct.lua_State* %21, i32 -2)
+ br label %22
+
+; <label>:22 ; preds = %15, %13
+ %23 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %24 = load i32* %mask, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds [5 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ %26 = call i8* @_Z10unmakemaskiPc(i32 %24, i8* %25) ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %23, i8* %26)
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %28 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %29 = call i32 @_Z16lua_gethookcountP9lua_State(%struct.lua_State* %28) ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %27, i32 %29)
+ ret i32 3
+}
+
+; [#uses=1]
+define internal i32 @_Z10db_getinfoP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=5]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=25]
+ %ar = alloca %struct.lua_Debug, align 4 ; [#uses=11]
+ %arg = alloca i32, align 4 ; [#uses=8]
+ %L1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %options = alloca i8*, align 4 ; [#uses=10]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call %struct.lua_State* @_Z9getthreadP9lua_StatePi(%struct.lua_State* %3, i32* %arg) ; [#uses=1]
+ store %struct.lua_State* %4, %struct.lua_State** %L1, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = load i32* %arg, align 4 ; [#uses=1]
+ %7 = add nsw i32 %6, 2 ; [#uses=1]
+ %8 = call i8* @_Z15luaL_optlstringP9lua_StateiPKcPj(%struct.lua_State* %5, i32 %7, i8* getelementptr inbounds ([6 x i8]* @.str34352, i32 0, i32 0), i32* null) ; [#uses=1]
+ store i8* %8, i8** %options, align 4
+ %9 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %10 = load i32* %arg, align 4 ; [#uses=1]
+ %11 = add nsw i32 %10, 1 ; [#uses=1]
+ %12 = call i32 @_Z12lua_isnumberP9lua_Statei(%struct.lua_State* %9, i32 %11) ; [#uses=1]
+ %13 = icmp ne i32 %12, 0 ; [#uses=1]
+ br i1 %13, label %14, label %25
+
+; <label>:14 ; preds = %0
+ %15 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %16 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %17 = load i32* %arg, align 4 ; [#uses=1]
+ %18 = add nsw i32 %17, 1 ; [#uses=1]
+ %19 = call i32 @_Z13lua_tointegerP9lua_Statei(%struct.lua_State* %16, i32 %18) ; [#uses=1]
+ %20 = call i32 @_Z12lua_getstackP9lua_StateiP9lua_Debug(%struct.lua_State* %15, i32 %19, %struct.lua_Debug* %ar) ; [#uses=1]
+ %21 = icmp ne i32 %20, 0 ; [#uses=1]
+ br i1 %21, label %24, label %22
+
+; <label>:22 ; preds = %14
+ %23 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %23)
+ store i32 1, i32* %1
+ br label %121
+
+; <label>:24 ; preds = %14
+ br label %48
+
+; <label>:25 ; preds = %0
+ %26 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %27 = load i32* %arg, align 4 ; [#uses=1]
+ %28 = add nsw i32 %27, 1 ; [#uses=1]
+ %29 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %26, i32 %28) ; [#uses=1]
+ %30 = icmp eq i32 %29, 6 ; [#uses=1]
+ br i1 %30, label %31, label %42
+
+; <label>:31 ; preds = %25
+ %32 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %33 = load i8** %options, align 4 ; [#uses=1]
+ %34 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %32, i8* getelementptr inbounds ([4 x i8]* @.str35353, i32 0, i32 0), i8* %33) ; [#uses=0]
+ %35 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %36 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %35, i32 -1, i32* null) ; [#uses=1]
+ store i8* %36, i8** %options, align 4
+ %37 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %38 = load i32* %arg, align 4 ; [#uses=1]
+ %39 = add nsw i32 %38, 1 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %37, i32 %39)
+ %40 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %41 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ call void @_Z9lua_xmoveP9lua_StateS0_i(%struct.lua_State* %40, %struct.lua_State* %41, i32 1)
+ br label %47
+
+; <label>:42 ; preds = %25
+ %43 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %44 = load i32* %arg, align 4 ; [#uses=1]
+ %45 = add nsw i32 %44, 1 ; [#uses=1]
+ %46 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %43, i32 %45, i8* getelementptr inbounds ([27 x i8]* @.str36354, i32 0, i32 0)) ; [#uses=1]
+ store i32 %46, i32* %1
+ br label %121
+
+; <label>:47 ; preds = %31
+ br label %48
+
+; <label>:48 ; preds = %47, %24
+ %49 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %50 = load i8** %options, align 4 ; [#uses=1]
+ %51 = call i32 @_Z11lua_getinfoP9lua_StatePKcP9lua_Debug(%struct.lua_State* %49, i8* %50, %struct.lua_Debug* %ar) ; [#uses=1]
+ %52 = icmp ne i32 %51, 0 ; [#uses=1]
+ br i1 %52, label %58, label %53
+
+; <label>:53 ; preds = %48
+ %54 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %55 = load i32* %arg, align 4 ; [#uses=1]
+ %56 = add nsw i32 %55, 2 ; [#uses=1]
+ %57 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %54, i32 %56, i8* getelementptr inbounds ([15 x i8]* @.str37355, i32 0, i32 0)) ; [#uses=1]
+ store i32 %57, i32* %1
+ br label %121
+
+; <label>:58 ; preds = %48
+ %59 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_createtableP9lua_Stateii(%struct.lua_State* %59, i32 0, i32 2)
+ %60 = load i8** %options, align 4 ; [#uses=1]
+ %61 = call i8* @strchr(i8* %60, i32 83) ; [#uses=1]
+ %62 = icmp ne i8* %61, null ; [#uses=1]
+ br i1 %62, label %63, label %79
+
+; <label>:63 ; preds = %58
+ %64 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 4 ; [#uses=1]
+ %66 = load i8** %65, align 4 ; [#uses=1]
+ call void @_Z8settabssP9lua_StatePKcS2_(%struct.lua_State* %64, i8* getelementptr inbounds ([7 x i8]* @.str38356, i32 0, i32 0), i8* %66)
+ %67 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 9 ; [#uses=1]
+ %69 = getelementptr inbounds [60 x i8]* %68, i32 0, i32 0 ; [#uses=1]
+ call void @_Z8settabssP9lua_StatePKcS2_(%struct.lua_State* %67, i8* getelementptr inbounds ([10 x i8]* @.str39357, i32 0, i32 0), i8* %69)
+ %70 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %71 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 7 ; [#uses=1]
+ %72 = load i32* %71, align 4 ; [#uses=1]
+ call void @_Z8settabsiP9lua_StatePKci(%struct.lua_State* %70, i8* getelementptr inbounds ([12 x i8]* @.str40358, i32 0, i32 0), i32 %72)
+ %73 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 8 ; [#uses=1]
+ %75 = load i32* %74, align 4 ; [#uses=1]
+ call void @_Z8settabsiP9lua_StatePKci(%struct.lua_State* %73, i8* getelementptr inbounds ([16 x i8]* @.str41359, i32 0, i32 0), i32 %75)
+ %76 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %77 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 3 ; [#uses=1]
+ %78 = load i8** %77, align 4 ; [#uses=1]
+ call void @_Z8settabssP9lua_StatePKcS2_(%struct.lua_State* %76, i8* getelementptr inbounds ([5 x i8]* @.str42360, i32 0, i32 0), i8* %78)
+ br label %79
+
+; <label>:79 ; preds = %63, %58
+ %80 = load i8** %options, align 4 ; [#uses=1]
+ %81 = call i8* @strchr(i8* %80, i32 108) ; [#uses=1]
+ %82 = icmp ne i8* %81, null ; [#uses=1]
+ br i1 %82, label %83, label %87
+
+; <label>:83 ; preds = %79
+ %84 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %85 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 5 ; [#uses=1]
+ %86 = load i32* %85, align 4 ; [#uses=1]
+ call void @_Z8settabsiP9lua_StatePKci(%struct.lua_State* %84, i8* getelementptr inbounds ([12 x i8]* @.str43361, i32 0, i32 0), i32 %86)
+ br label %87
+
+; <label>:87 ; preds = %83, %79
+ %88 = load i8** %options, align 4 ; [#uses=1]
+ %89 = call i8* @strchr(i8* %88, i32 117) ; [#uses=1]
+ %90 = icmp ne i8* %89, null ; [#uses=1]
+ br i1 %90, label %91, label %95
+
+; <label>:91 ; preds = %87
+ %92 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %93 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 6 ; [#uses=1]
+ %94 = load i32* %93, align 4 ; [#uses=1]
+ call void @_Z8settabsiP9lua_StatePKci(%struct.lua_State* %92, i8* getelementptr inbounds ([5 x i8]* @.str44362, i32 0, i32 0), i32 %94)
+ br label %95
+
+; <label>:95 ; preds = %91, %87
+ %96 = load i8** %options, align 4 ; [#uses=1]
+ %97 = call i8* @strchr(i8* %96, i32 110) ; [#uses=1]
+ %98 = icmp ne i8* %97, null ; [#uses=1]
+ br i1 %98, label %99, label %106
+
+; <label>:99 ; preds = %95
+ %100 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %101 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 1 ; [#uses=1]
+ %102 = load i8** %101, align 4 ; [#uses=1]
+ call void @_Z8settabssP9lua_StatePKcS2_(%struct.lua_State* %100, i8* getelementptr inbounds ([5 x i8]* @.str45363, i32 0, i32 0), i8* %102)
+ %103 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %104 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 2 ; [#uses=1]
+ %105 = load i8** %104, align 4 ; [#uses=1]
+ call void @_Z8settabssP9lua_StatePKcS2_(%struct.lua_State* %103, i8* getelementptr inbounds ([9 x i8]* @.str46364, i32 0, i32 0), i8* %105)
+ br label %106
+
+; <label>:106 ; preds = %99, %95
+ %107 = load i8** %options, align 4 ; [#uses=1]
+ %108 = call i8* @strchr(i8* %107, i32 76) ; [#uses=1]
+ %109 = icmp ne i8* %108, null ; [#uses=1]
+ br i1 %109, label %110, label %113
+
+; <label>:110 ; preds = %106
+ %111 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %112 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ call void @_Z16treatstackoptionP9lua_StateS0_PKc(%struct.lua_State* %111, %struct.lua_State* %112, i8* getelementptr inbounds ([12 x i8]* @.str47365, i32 0, i32 0))
+ br label %113
+
+; <label>:113 ; preds = %110, %106
+ %114 = load i8** %options, align 4 ; [#uses=1]
+ %115 = call i8* @strchr(i8* %114, i32 102) ; [#uses=1]
+ %116 = icmp ne i8* %115, null ; [#uses=1]
+ br i1 %116, label %117, label %120
+
+; <label>:117 ; preds = %113
+ %118 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %119 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ call void @_Z16treatstackoptionP9lua_StateS0_PKc(%struct.lua_State* %118, %struct.lua_State* %119, i8* getelementptr inbounds ([5 x i8]* @.str48366, i32 0, i32 0))
+ br label %120
+
+; <label>:120 ; preds = %117, %113
+ store i32 1, i32* %1
+ br label %121
+
+; <label>:121 ; preds = %120, %53, %42, %22
+ %122 = load i32* %1 ; [#uses=1]
+ ret i32 %122
+}
+
+; [#uses=1]
+define internal i32 @_Z11db_getlocalP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %arg = alloca i32, align 4 ; [#uses=4]
+ %L1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %ar = alloca %struct.lua_Debug, align 4 ; [#uses=2]
+ %name = alloca i8*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call %struct.lua_State* @_Z9getthreadP9lua_StatePi(%struct.lua_State* %3, i32* %arg) ; [#uses=1]
+ store %struct.lua_State* %4, %struct.lua_State** %L1, align 4
+ %5 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %6 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %7 = load i32* %arg, align 4 ; [#uses=1]
+ %8 = add nsw i32 %7, 1 ; [#uses=1]
+ %9 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %6, i32 %8) ; [#uses=1]
+ %10 = call i32 @_Z12lua_getstackP9lua_StateiP9lua_Debug(%struct.lua_State* %5, i32 %9, %struct.lua_Debug* %ar) ; [#uses=1]
+ %11 = icmp ne i32 %10, 0 ; [#uses=1]
+ br i1 %11, label %17, label %12
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = load i32* %arg, align 4 ; [#uses=1]
+ %15 = add nsw i32 %14, 1 ; [#uses=1]
+ %16 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %13, i32 %15, i8* getelementptr inbounds ([19 x i8]* @.str27345, i32 0, i32 0)) ; [#uses=1]
+ store i32 %16, i32* %1
+ br label %34
+
+; <label>:17 ; preds = %0
+ %18 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %19 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %20 = load i32* %arg, align 4 ; [#uses=1]
+ %21 = add nsw i32 %20, 2 ; [#uses=1]
+ %22 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %19, i32 %21) ; [#uses=1]
+ %23 = call i8* @_Z12lua_getlocalP9lua_StatePK9lua_Debugi(%struct.lua_State* %18, %struct.lua_Debug* %ar, i32 %22) ; [#uses=1]
+ store i8* %23, i8** %name, align 4
+ %24 = load i8** %name, align 4 ; [#uses=1]
+ %25 = icmp ne i8* %24, null ; [#uses=1]
+ br i1 %25, label %26, label %32
+
+; <label>:26 ; preds = %17
+ %27 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %28 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z9lua_xmoveP9lua_StateS0_i(%struct.lua_State* %27, %struct.lua_State* %28, i32 1)
+ %29 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %30 = load i8** %name, align 4 ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %29, i8* %30)
+ %31 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %31, i32 -2)
+ store i32 2, i32* %1
+ br label %34
+
+; <label>:32 ; preds = %17
+ %33 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %33)
+ store i32 1, i32* %1
+ br label %34
+
+; <label>:34 ; preds = %32, %26, %12
+ %35 = load i32* %1 ; [#uses=1]
+ ret i32 %35
+}
+
+; [#uses=1]
+define internal i32 @_Z14db_getregistryP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %2, i32 -10000)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z15db_getmetatableP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_checkanyP9lua_Statei(%struct.lua_State* %2, i32 1)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call i32 @_Z16lua_getmetatableP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = icmp ne i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %8, label %6
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %7)
+ br label %8
+
+; <label>:8 ; preds = %6, %0
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z13db_getupvalueP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z10auxupvalueP9lua_Statei(%struct.lua_State* %2, i32 1) ; [#uses=1]
+ ret i32 %3
+}
+
+; [#uses=1]
+define internal i32 @_Z10db_setfenvP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %2, i32 2, i32 5)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %3, i32 2)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z11lua_setfenvP9lua_Statei(%struct.lua_State* %4, i32 1) ; [#uses=1]
+ %6 = icmp eq i32 %5, 0 ; [#uses=1]
+ br i1 %6, label %7, label %10
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %8, i8* getelementptr inbounds ([52 x i8]* @.str33351, i32 0, i32 0)) ; [#uses=0]
+ br label %10
+
+; <label>:10 ; preds = %7, %0
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z10db_sethookP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=12]
+ %arg = alloca i32, align 4 ; [#uses=7]
+ %mask = alloca i32, align 4 ; [#uses=3]
+ %count = alloca i32, align 4 ; [#uses=4]
+ %func = alloca void (%struct.lua_State*, %struct.lua_Debug*)*, align 4 ; [#uses=3]
+ %L1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %smask = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call %struct.lua_State* @_Z9getthreadP9lua_StatePi(%struct.lua_State* %2, i32* %arg) ; [#uses=1]
+ store %struct.lua_State* %3, %struct.lua_State** %L1, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %arg, align 4 ; [#uses=1]
+ %6 = add nsw i32 %5, 1 ; [#uses=1]
+ %7 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %4, i32 %6) ; [#uses=1]
+ %8 = icmp sle i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %9, label %13
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = load i32* %arg, align 4 ; [#uses=1]
+ %12 = add nsw i32 %11, 1 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %10, i32 %12)
+ store void (%struct.lua_State*, %struct.lua_Debug*)* null, void (%struct.lua_State*, %struct.lua_Debug*)** %func, align 4
+ store i32 0, i32* %mask, align 4
+ store i32 0, i32* %count, align 4
+ br label %28
+
+; <label>:13 ; preds = %0
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = load i32* %arg, align 4 ; [#uses=1]
+ %16 = add nsw i32 %15, 2 ; [#uses=1]
+ %17 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %14, i32 %16, i32* null) ; [#uses=1]
+ store i8* %17, i8** %smask, align 4
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = load i32* %arg, align 4 ; [#uses=1]
+ %20 = add nsw i32 %19, 1 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %18, i32 %20, i32 6)
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %22 = load i32* %arg, align 4 ; [#uses=1]
+ %23 = add nsw i32 %22, 3 ; [#uses=1]
+ %24 = call i32 @_Z15luaL_optintegerP9lua_Stateii(%struct.lua_State* %21, i32 %23, i32 0) ; [#uses=1]
+ store i32 %24, i32* %count, align 4
+ store void (%struct.lua_State*, %struct.lua_Debug*)* @_Z5hookfP9lua_StateP9lua_Debug, void (%struct.lua_State*, %struct.lua_Debug*)** %func, align 4
+ %25 = load i8** %smask, align 4 ; [#uses=1]
+ %26 = load i32* %count, align 4 ; [#uses=1]
+ %27 = call i32 @_Z8makemaskPKci(i8* %25, i32 %26) ; [#uses=1]
+ store i32 %27, i32* %mask, align 4
+ br label %28
+
+; <label>:28 ; preds = %13, %9
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12gethooktableP9lua_State(%struct.lua_State* %29)
+ %30 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %31 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %32 = bitcast %struct.lua_State* %31 to i8* ; [#uses=1]
+ call void @_Z21lua_pushlightuserdataP9lua_StatePv(%struct.lua_State* %30, i8* %32)
+ %33 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %34 = load i32* %arg, align 4 ; [#uses=1]
+ %35 = add nsw i32 %34, 1 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %33, i32 %35)
+ %36 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_rawsetP9lua_Statei(%struct.lua_State* %36, i32 -3)
+ %37 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %37, i32 -2)
+ %38 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %39 = load void (%struct.lua_State*, %struct.lua_Debug*)** %func, align 4 ; [#uses=1]
+ %40 = load i32* %mask, align 4 ; [#uses=1]
+ %41 = load i32* %count, align 4 ; [#uses=1]
+ %42 = call i32 @_Z11lua_sethookP9lua_StatePFvS0_P9lua_DebugEii(%struct.lua_State* %38, void (%struct.lua_State*, %struct.lua_Debug*)* %39, i32 %40, i32 %41) ; [#uses=0]
+ ret i32 0
+}
+
+; [#uses=1]
+define internal i32 @_Z11db_setlocalP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %arg = alloca i32, align 4 ; [#uses=6]
+ %L1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %ar = alloca %struct.lua_Debug, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call %struct.lua_State* @_Z9getthreadP9lua_StatePi(%struct.lua_State* %3, i32* %arg) ; [#uses=1]
+ store %struct.lua_State* %4, %struct.lua_State** %L1, align 4
+ %5 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %6 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %7 = load i32* %arg, align 4 ; [#uses=1]
+ %8 = add nsw i32 %7, 1 ; [#uses=1]
+ %9 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %6, i32 %8) ; [#uses=1]
+ %10 = call i32 @_Z12lua_getstackP9lua_StateiP9lua_Debug(%struct.lua_State* %5, i32 %9, %struct.lua_Debug* %ar) ; [#uses=1]
+ %11 = icmp ne i32 %10, 0 ; [#uses=1]
+ br i1 %11, label %17, label %12
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = load i32* %arg, align 4 ; [#uses=1]
+ %15 = add nsw i32 %14, 1 ; [#uses=1]
+ %16 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %13, i32 %15, i8* getelementptr inbounds ([19 x i8]* @.str27345, i32 0, i32 0)) ; [#uses=1]
+ store i32 %16, i32* %1
+ br label %33
+
+; <label>:17 ; preds = %0
+ %18 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %19 = load i32* %arg, align 4 ; [#uses=1]
+ %20 = add nsw i32 %19, 3 ; [#uses=1]
+ call void @_Z13luaL_checkanyP9lua_Statei(%struct.lua_State* %18, i32 %20)
+ %21 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %22 = load i32* %arg, align 4 ; [#uses=1]
+ %23 = add nsw i32 %22, 3 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %21, i32 %23)
+ %24 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %25 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ call void @_Z9lua_xmoveP9lua_StateS0_i(%struct.lua_State* %24, %struct.lua_State* %25, i32 1)
+ %26 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %27 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %28 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %29 = load i32* %arg, align 4 ; [#uses=1]
+ %30 = add nsw i32 %29, 2 ; [#uses=1]
+ %31 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %28, i32 %30) ; [#uses=1]
+ %32 = call i8* @_Z12lua_setlocalP9lua_StatePK9lua_Debugi(%struct.lua_State* %27, %struct.lua_Debug* %ar, i32 %31) ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %26, i8* %32)
+ store i32 1, i32* %1
+ br label %33
+
+; <label>:33 ; preds = %17, %12
+ %34 = load i32* %1 ; [#uses=1]
+ ret i32 %34
+}
+
+; [#uses=1]
+define internal i32 @_Z15db_setmetatableP9lua_State(%struct.lua_State* %L) {
+; <label>:0
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %t = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %2, i32 2) ; [#uses=1]
+ store i32 %3, i32* %t, align 4
+ %4 = load i32* %t, align 4 ; [#uses=1]
+ %5 = icmp eq i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %13, label %6
+
+; <label>:6 ; preds = %0
+ %7 = load i32* %t, align 4 ; [#uses=1]
+ %8 = icmp eq i32 %7, 5 ; [#uses=1]
+ br i1 %8, label %13, label %9
+
+; <label>:9 ; preds = %6
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %10, i32 2, i8* getelementptr inbounds ([22 x i8]* @.str26344, i32 0, i32 0)) ; [#uses=1]
+ %12 = icmp ne i32 %11, 0 ; [#uses=1]
+ br label %13
+
+; <label>:13 ; preds = %9, %6, %0
+ %14 = phi i1 [ true, %6 ], [ true, %0 ], [ %12, %9 ] ; [#uses=0]
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %15, i32 2)
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %18 = call i32 @_Z16lua_setmetatableP9lua_Statei(%struct.lua_State* %17, i32 1) ; [#uses=1]
+ call void @_Z15lua_pushbooleanP9lua_Statei(%struct.lua_State* %16, i32 %18)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z13db_setupvalueP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_checkanyP9lua_Statei(%struct.lua_State* %2, i32 3)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call i32 @_Z10auxupvalueP9lua_Statei(%struct.lua_State* %3, i32 0) ; [#uses=1]
+ ret i32 %4
+}
+
+; [#uses=1]
+define internal i32 @_Z10db_errorfbP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=23]
+ %level = alloca i32, align 4 ; [#uses=11]
+ %firstpart = alloca i32, align 4 ; [#uses=3]
+ %arg = alloca i32, align 4 ; [#uses=7]
+ %L1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %ar = alloca %struct.lua_Debug, align 4 ; [#uses=14]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 1, i32* %firstpart, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call %struct.lua_State* @_Z9getthreadP9lua_StatePi(%struct.lua_State* %3, i32* %arg) ; [#uses=1]
+ store %struct.lua_State* %4, %struct.lua_State** %L1, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = load i32* %arg, align 4 ; [#uses=1]
+ %7 = add nsw i32 %6, 2 ; [#uses=1]
+ %8 = call i32 @_Z12lua_isnumberP9lua_Statei(%struct.lua_State* %5, i32 %7) ; [#uses=1]
+ %9 = icmp ne i32 %8, 0 ; [#uses=1]
+ br i1 %9, label %10, label %16
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %12 = load i32* %arg, align 4 ; [#uses=1]
+ %13 = add nsw i32 %12, 2 ; [#uses=1]
+ %14 = call i32 @_Z13lua_tointegerP9lua_Statei(%struct.lua_State* %11, i32 %13) ; [#uses=1]
+ store i32 %14, i32* %level, align 4
+ %15 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %15, i32 -2)
+ br label %21
+
+; <label>:16 ; preds = %0
+ %17 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %18 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %19 = icmp eq %struct.lua_State* %17, %18 ; [#uses=1]
+ %20 = select i1 %19, i32 1, i32 0 ; [#uses=1]
+ store i32 %20, i32* %level, align 4
+ br label %21
+
+; <label>:21 ; preds = %16, %10
+ %22 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %23 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %22) ; [#uses=1]
+ %24 = load i32* %arg, align 4 ; [#uses=1]
+ %25 = icmp eq i32 %23, %24 ; [#uses=1]
+ br i1 %25, label %26, label %28
+
+; <label>:26 ; preds = %21
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %27, i8* getelementptr inbounds ([1 x i8]* @.str14332, i32 0, i32 0), i32 0)
+ br label %38
+
+; <label>:28 ; preds = %21
+ %29 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %30 = load i32* %arg, align 4 ; [#uses=1]
+ %31 = add nsw i32 %30, 1 ; [#uses=1]
+ %32 = call i32 @_Z12lua_isstringP9lua_Statei(%struct.lua_State* %29, i32 %31) ; [#uses=1]
+ %33 = icmp ne i32 %32, 0 ; [#uses=1]
+ br i1 %33, label %35, label %34
+
+; <label>:34 ; preds = %28
+ store i32 1, i32* %1
+ br label %145
+
+; <label>:35 ; preds = %28
+ %36 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %36, i8* getelementptr inbounds ([2 x i8]* @.str15333, i32 0, i32 0), i32 1)
+ br label %37
+
+; <label>:37 ; preds = %35
+ br label %38
+
+; <label>:38 ; preds = %37, %26
+ %39 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %39, i8* getelementptr inbounds ([17 x i8]* @.str16334, i32 0, i32 0), i32 16)
+ br label %40
+
+; <label>:40 ; preds = %133, %73, %38
+ %41 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %42 = load i32* %level, align 4 ; [#uses=2]
+ %43 = add nsw i32 %42, 1 ; [#uses=1]
+ store i32 %43, i32* %level, align 4
+ %44 = call i32 @_Z12lua_getstackP9lua_StateiP9lua_Debug(%struct.lua_State* %41, i32 %42, %struct.lua_Debug* %ar) ; [#uses=1]
+ %45 = icmp ne i32 %44, 0 ; [#uses=1]
+ br i1 %45, label %46, label %139
+
+; <label>:46 ; preds = %40
+ %47 = load i32* %level, align 4 ; [#uses=1]
+ %48 = icmp sgt i32 %47, 12 ; [#uses=1]
+ br i1 %48, label %49, label %74
+
+; <label>:49 ; preds = %46
+ %50 = load i32* %firstpart, align 4 ; [#uses=1]
+ %51 = icmp ne i32 %50, 0 ; [#uses=1]
+ br i1 %51, label %52, label %74
+
+; <label>:52 ; preds = %49
+ %53 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %54 = load i32* %level, align 4 ; [#uses=1]
+ %55 = add nsw i32 %54, 10 ; [#uses=1]
+ %56 = call i32 @_Z12lua_getstackP9lua_StateiP9lua_Debug(%struct.lua_State* %53, i32 %55, %struct.lua_Debug* %ar) ; [#uses=1]
+ %57 = icmp ne i32 %56, 0 ; [#uses=1]
+ br i1 %57, label %61, label %58
+
+; <label>:58 ; preds = %52
+ %59 = load i32* %level, align 4 ; [#uses=1]
+ %60 = add nsw i32 %59, -1 ; [#uses=1]
+ store i32 %60, i32* %level, align 4
+ br label %73
+
+; <label>:61 ; preds = %52
+ %62 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %62, i8* getelementptr inbounds ([6 x i8]* @.str17335, i32 0, i32 0), i32 5)
+ br label %63
+
+; <label>:63 ; preds = %69, %61
+ %64 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %65 = load i32* %level, align 4 ; [#uses=1]
+ %66 = add nsw i32 %65, 10 ; [#uses=1]
+ %67 = call i32 @_Z12lua_getstackP9lua_StateiP9lua_Debug(%struct.lua_State* %64, i32 %66, %struct.lua_Debug* %ar) ; [#uses=1]
+ %68 = icmp ne i32 %67, 0 ; [#uses=1]
+ br i1 %68, label %69, label %72
+
+; <label>:69 ; preds = %63
+ %70 = load i32* %level, align 4 ; [#uses=1]
+ %71 = add nsw i32 %70, 1 ; [#uses=1]
+ store i32 %71, i32* %level, align 4
+ br label %63
+
+; <label>:72 ; preds = %63
+ br label %73
+
+; <label>:73 ; preds = %72, %58
+ store i32 0, i32* %firstpart, align 4
+ br label %40
+
+; <label>:74 ; preds = %49, %46
+ %75 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %75, i8* getelementptr inbounds ([3 x i8]* @.str18336, i32 0, i32 0), i32 2)
+ %76 = load %struct.lua_State** %L1, align 4 ; [#uses=1]
+ %77 = call i32 @_Z11lua_getinfoP9lua_StatePKcP9lua_Debug(%struct.lua_State* %76, i8* getelementptr inbounds ([4 x i8]* @.str19337, i32 0, i32 0), %struct.lua_Debug* %ar) ; [#uses=0]
+ %78 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %79 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 9 ; [#uses=1]
+ %80 = getelementptr inbounds [60 x i8]* %79, i32 0, i32 0 ; [#uses=1]
+ %81 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %78, i8* getelementptr inbounds ([4 x i8]* @.str20338, i32 0, i32 0), i8* %80) ; [#uses=0]
+ %82 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 5 ; [#uses=1]
+ %83 = load i32* %82, align 4 ; [#uses=1]
+ %84 = icmp sgt i32 %83, 0 ; [#uses=1]
+ br i1 %84, label %85, label %90
+
+; <label>:85 ; preds = %74
+ %86 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %87 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 5 ; [#uses=1]
+ %88 = load i32* %87, align 4 ; [#uses=1]
+ %89 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %86, i8* getelementptr inbounds ([4 x i8]* @.str21339, i32 0, i32 0), i32 %88) ; [#uses=0]
+ br label %90
+
+; <label>:90 ; preds = %85, %74
+ %91 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 2 ; [#uses=1]
+ %92 = load i8** %91, align 4 ; [#uses=1]
+ %93 = load i8* %92 ; [#uses=1]
+ %94 = sext i8 %93 to i32 ; [#uses=1]
+ %95 = icmp ne i32 %94, 0 ; [#uses=1]
+ br i1 %95, label %96, label %101
+
+; <label>:96 ; preds = %90
+ %97 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %98 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 1 ; [#uses=1]
+ %99 = load i8** %98, align 4 ; [#uses=1]
+ %100 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %97, i8* getelementptr inbounds ([18 x i8]* @.str22340, i32 0, i32 0), i8* %99) ; [#uses=0]
+ br label %133
+
+; <label>:101 ; preds = %90
+ %102 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 3 ; [#uses=1]
+ %103 = load i8** %102, align 4 ; [#uses=1]
+ %104 = load i8* %103 ; [#uses=1]
+ %105 = sext i8 %104 to i32 ; [#uses=1]
+ %106 = icmp eq i32 %105, 109 ; [#uses=1]
+ br i1 %106, label %107, label %110
+
+; <label>:107 ; preds = %101
+ %108 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %109 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %108, i8* getelementptr inbounds ([15 x i8]* @.str23341, i32 0, i32 0)) ; [#uses=0]
+ br label %132
+
+; <label>:110 ; preds = %101
+ %111 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 3 ; [#uses=1]
+ %112 = load i8** %111, align 4 ; [#uses=1]
+ %113 = load i8* %112 ; [#uses=1]
+ %114 = sext i8 %113 to i32 ; [#uses=1]
+ %115 = icmp eq i32 %114, 67 ; [#uses=1]
+ br i1 %115, label %122, label %116
+
+; <label>:116 ; preds = %110
+ %117 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 3 ; [#uses=1]
+ %118 = load i8** %117, align 4 ; [#uses=1]
+ %119 = load i8* %118 ; [#uses=1]
+ %120 = sext i8 %119 to i32 ; [#uses=1]
+ %121 = icmp eq i32 %120, 116 ; [#uses=1]
+ br i1 %121, label %122, label %124
+
+; <label>:122 ; preds = %116, %110
+ %123 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %123, i8* getelementptr inbounds ([3 x i8]* @.str24342, i32 0, i32 0), i32 2)
+ br label %131
+
+; <label>:124 ; preds = %116
+ %125 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %126 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 9 ; [#uses=1]
+ %127 = getelementptr inbounds [60 x i8]* %126, i32 0, i32 0 ; [#uses=1]
+ %128 = getelementptr inbounds %struct.lua_Debug* %ar, i32 0, i32 7 ; [#uses=1]
+ %129 = load i32* %128, align 4 ; [#uses=1]
+ %130 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %125, i8* getelementptr inbounds ([21 x i8]* @.str25343, i32 0, i32 0), i8* %127, i32 %129) ; [#uses=0]
+ br label %131
+
+; <label>:131 ; preds = %124, %122
+ br label %132
+
+; <label>:132 ; preds = %131, %107
+ br label %133
+
+; <label>:133 ; preds = %132, %96
+ %134 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %135 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %136 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %135) ; [#uses=1]
+ %137 = load i32* %arg, align 4 ; [#uses=1]
+ %138 = sub nsw i32 %136, %137 ; [#uses=1]
+ call void @_Z10lua_concatP9lua_Statei(%struct.lua_State* %134, i32 %138)
+ br label %40
+
+; <label>:139 ; preds = %40
+ %140 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %141 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %142 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %141) ; [#uses=1]
+ %143 = load i32* %arg, align 4 ; [#uses=1]
+ %144 = sub nsw i32 %142, %143 ; [#uses=1]
+ call void @_Z10lua_concatP9lua_Statei(%struct.lua_State* %140, i32 %144)
+ store i32 1, i32* %1
+ br label %145
+
+; <label>:145 ; preds = %139, %34
+ %146 = load i32* %1 ; [#uses=1]
+ ret i32 %146
+}
+
+; [#uses=1]
+define i32 @_Z13luaopen_debugP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_registerP9lua_StatePKcPK8luaL_Reg(%struct.lua_State* %2, i8* getelementptr inbounds ([6 x i8]* @.str318, i32 0, i32 0), %struct.luaL_Reg* getelementptr inbounds ([15 x %struct.luaL_Reg]* @_ZL5dblib, i32 0, i32 0))
+ ret i32 1
+}
+
+; [#uses=6]
+define internal %struct.lua_State* @_Z9getthreadP9lua_StatePi(%struct.lua_State* %L, i32* %arg) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %3 = alloca i32*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32* %arg, i32** %3, align 4
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %4, i32 1) ; [#uses=1]
+ %6 = icmp eq i32 %5, 8 ; [#uses=1]
+ br i1 %6, label %7, label %11
+
+; <label>:7 ; preds = %0
+ %8 = load i32** %3, align 4 ; [#uses=1]
+ store i32 1, i32* %8
+ %9 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %10 = call %struct.lua_State* @_Z12lua_tothreadP9lua_Statei(%struct.lua_State* %9, i32 1) ; [#uses=1]
+ store %struct.lua_State* %10, %struct.lua_State** %1
+ br label %14
+
+; <label>:11 ; preds = %0
+ %12 = load i32** %3, align 4 ; [#uses=1]
+ store i32 0, i32* %12
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ store %struct.lua_State* %13, %struct.lua_State** %1
+ br label %14
+
+; <label>:14 ; preds = %11, %7
+ %15 = load %struct.lua_State** %1 ; [#uses=1]
+ ret %struct.lua_State* %15
+}
+
+; [#uses=2]
+define internal i32 @_Z10auxupvalueP9lua_Statei(%struct.lua_State* %L, i32 %get) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %3 = alloca i32, align 4 ; [#uses=4]
+ %name = alloca i8*, align 4 ; [#uses=3]
+ %n = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %get, i32* %3, align 4
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %4, i32 2) ; [#uses=1]
+ store i32 %5, i32* %n, align 4
+ %6 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %6, i32 1, i32 6)
+ %7 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %8 = call i32 @_Z15lua_iscfunctionP9lua_Statei(%struct.lua_State* %7, i32 1) ; [#uses=1]
+ %9 = icmp ne i32 %8, 0 ; [#uses=1]
+ br i1 %9, label %10, label %11
+
+; <label>:10 ; preds = %0
+ store i32 0, i32* %1
+ br label %36
+
+; <label>:11 ; preds = %0
+ %12 = load i32* %3, align 4 ; [#uses=1]
+ %13 = icmp ne i32 %12, 0 ; [#uses=1]
+ br i1 %13, label %14, label %18
+
+; <label>:14 ; preds = %11
+ %15 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %16 = load i32* %n, align 4 ; [#uses=1]
+ %17 = call i8* @_Z14lua_getupvalueP9lua_Stateii(%struct.lua_State* %15, i32 1, i32 %16) ; [#uses=1]
+ br label %22
+
+; <label>:18 ; preds = %11
+ %19 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %20 = load i32* %n, align 4 ; [#uses=1]
+ %21 = call i8* @_Z14lua_setupvalueP9lua_Stateii(%struct.lua_State* %19, i32 1, i32 %20) ; [#uses=1]
+ br label %22
+
+; <label>:22 ; preds = %18, %14
+ %23 = phi i8* [ %17, %14 ], [ %21, %18 ] ; [#uses=1]
+ store i8* %23, i8** %name, align 4
+ %24 = load i8** %name, align 4 ; [#uses=1]
+ %25 = icmp eq i8* %24, null ; [#uses=1]
+ br i1 %25, label %26, label %27
+
+; <label>:26 ; preds = %22
+ store i32 0, i32* %1
+ br label %36
+
+; <label>:27 ; preds = %22
+ %28 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %29 = load i8** %name, align 4 ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %28, i8* %29)
+ %30 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %31 = load i32* %3, align 4 ; [#uses=1]
+ %32 = add nsw i32 %31, 1 ; [#uses=1]
+ %33 = sub nsw i32 0, %32 ; [#uses=1]
+ call void @_Z10lua_insertP9lua_Statei(%struct.lua_State* %30, i32 %33)
+ %34 = load i32* %3, align 4 ; [#uses=1]
+ %35 = add nsw i32 %34, 1 ; [#uses=1]
+ store i32 %35, i32* %1
+ br label %36
+
+; <label>:36 ; preds = %27, %26, %10
+ %37 = load i32* %1 ; [#uses=1]
+ ret i32 %37
+}
+
+; [#uses=2]
+define internal void @_Z5hookfP9lua_StateP9lua_Debug(%struct.lua_State* %L, %struct.lua_Debug* %ar) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=11]
+ %2 = alloca %struct.lua_Debug*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_Debug* %ar, %struct.lua_Debug** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z21lua_pushlightuserdataP9lua_StatePv(%struct.lua_State* %3, i8* @_ZL8KEY_HOOK)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_rawgetP9lua_Statei(%struct.lua_State* %4, i32 -10000)
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = bitcast %struct.lua_State* %6 to i8* ; [#uses=1]
+ call void @_Z21lua_pushlightuserdataP9lua_StatePv(%struct.lua_State* %5, i8* %7)
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_rawgetP9lua_Statei(%struct.lua_State* %8, i32 -2)
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %9, i32 -1) ; [#uses=1]
+ %11 = icmp eq i32 %10, 6 ; [#uses=1]
+ br i1 %11, label %12, label %32
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = load %struct.lua_Debug** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.lua_Debug* %14, i32 0, i32 0 ; [#uses=1]
+ %16 = load i32* %15, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds [5 x i8*]* @_ZZ5hookfP9lua_StateP9lua_DebugE9hooknames, i32 0, i32 %16 ; [#uses=1]
+ %18 = load i8** %17 ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %13, i8* %18)
+ %19 = load %struct.lua_Debug** %2, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.lua_Debug* %19, i32 0, i32 5 ; [#uses=1]
+ %21 = load i32* %20, align 4 ; [#uses=1]
+ %22 = icmp sge i32 %21, 0 ; [#uses=1]
+ br i1 %22, label %23, label %28
+
+; <label>:23 ; preds = %12
+ %24 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %25 = load %struct.lua_Debug** %2, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.lua_Debug* %25, i32 0, i32 5 ; [#uses=1]
+ %27 = load i32* %26, align 4 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %24, i32 %27)
+ br label %30
+
+; <label>:28 ; preds = %12
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %29)
+ br label %30
+
+; <label>:30 ; preds = %28, %23
+ %31 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z8lua_callP9lua_Stateii(%struct.lua_State* %31, i32 2, i32 0)
+ br label %32
+
+; <label>:32 ; preds = %30, %0
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z8makemaskPKci(i8* %smask, i32 %count) nounwind {
+ %1 = alloca i8*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %mask = alloca i32, align 4 ; [#uses=10]
+ store i8* %smask, i8** %1, align 4
+ store i32 %count, i32* %2, align 4
+ store i32 0, i32* %mask, align 4
+ %3 = load i8** %1, align 4 ; [#uses=1]
+ %4 = call i8* @strchr(i8* %3, i32 99) ; [#uses=1]
+ %5 = icmp ne i8* %4, null ; [#uses=1]
+ br i1 %5, label %6, label %9
+
+; <label>:6 ; preds = %0
+ %7 = load i32* %mask, align 4 ; [#uses=1]
+ %8 = or i32 %7, 1 ; [#uses=1]
+ store i32 %8, i32* %mask, align 4
+ br label %9
+
+; <label>:9 ; preds = %6, %0
+ %10 = load i8** %1, align 4 ; [#uses=1]
+ %11 = call i8* @strchr(i8* %10, i32 114) ; [#uses=1]
+ %12 = icmp ne i8* %11, null ; [#uses=1]
+ br i1 %12, label %13, label %16
+
+; <label>:13 ; preds = %9
+ %14 = load i32* %mask, align 4 ; [#uses=1]
+ %15 = or i32 %14, 2 ; [#uses=1]
+ store i32 %15, i32* %mask, align 4
+ br label %16
+
+; <label>:16 ; preds = %13, %9
+ %17 = load i8** %1, align 4 ; [#uses=1]
+ %18 = call i8* @strchr(i8* %17, i32 108) ; [#uses=1]
+ %19 = icmp ne i8* %18, null ; [#uses=1]
+ br i1 %19, label %20, label %23
+
+; <label>:20 ; preds = %16
+ %21 = load i32* %mask, align 4 ; [#uses=1]
+ %22 = or i32 %21, 4 ; [#uses=1]
+ store i32 %22, i32* %mask, align 4
+ br label %23
+
+; <label>:23 ; preds = %20, %16
+ %24 = load i32* %2, align 4 ; [#uses=1]
+ %25 = icmp sgt i32 %24, 0 ; [#uses=1]
+ br i1 %25, label %26, label %29
+
+; <label>:26 ; preds = %23
+ %27 = load i32* %mask, align 4 ; [#uses=1]
+ %28 = or i32 %27, 8 ; [#uses=1]
+ store i32 %28, i32* %mask, align 4
+ br label %29
+
+; <label>:29 ; preds = %26, %23
+ %30 = load i32* %mask, align 4 ; [#uses=1]
+ ret i32 %30
+}
+
+; [#uses=2]
+define internal void @_Z12gethooktableP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z21lua_pushlightuserdataP9lua_StatePv(%struct.lua_State* %2, i8* @_ZL8KEY_HOOK)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_rawgetP9lua_Statei(%struct.lua_State* %3, i32 -10000)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %4, i32 -1) ; [#uses=1]
+ %6 = icmp eq i32 %5, 5 ; [#uses=1]
+ br i1 %6, label %13, label %7
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %8, i32 -2)
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_createtableP9lua_Stateii(%struct.lua_State* %9, i32 0, i32 1)
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z21lua_pushlightuserdataP9lua_StatePv(%struct.lua_State* %10, i8* @_ZL8KEY_HOOK)
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %11, i32 -2)
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_rawsetP9lua_Statei(%struct.lua_State* %12, i32 -10000)
+ br label %13
+
+; <label>:13 ; preds = %7, %0
+ ret void
+}
+
+; [#uses=5]
+define internal void @_Z8settabssP9lua_StatePKcS2_(%struct.lua_State* %L, i8* %i, i8* %v) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %i, i8** %2, align 4
+ store i8* %v, i8** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i8** %3, align 4 ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %4, i8* %5)
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load i8** %2, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %6, i32 -2, i8* %7)
+ ret void
+}
+
+; [#uses=4]
+define internal void @_Z8settabsiP9lua_StatePKci(%struct.lua_State* %L, i8* %i, i32 %v) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %i, i8** %2, align 4
+ store i32 %v, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %4, i32 %5)
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load i8** %2, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %6, i32 -2, i8* %7)
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z16treatstackoptionP9lua_StateS0_PKc(%struct.lua_State* %L, %struct.lua_State* %L1, i8* %fname) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.lua_State* %L1, %struct.lua_State** %2, align 4
+ store i8* %fname, i8** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = icmp eq %struct.lua_State* %4, %5 ; [#uses=1]
+ br i1 %6, label %7, label %10
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %8, i32 -2)
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_removeP9lua_Statei(%struct.lua_State* %9, i32 -3)
+ br label %13
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9lua_xmoveP9lua_StateS0_i(%struct.lua_State* %11, %struct.lua_State* %12, i32 1)
+ br label %13
+
+; <label>:13 ; preds = %10, %7
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = load i8** %3, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %14, i32 -2, i8* %15)
+ ret void
+}
+
+; [#uses=1]
+define internal i8* @_Z10unmakemaskiPc(i32 %mask, i8* %smask) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca i8*, align 4 ; [#uses=6]
+ %i = alloca i32, align 4 ; [#uses=8]
+ store i32 %mask, i32* %1, align 4
+ store i8* %smask, i8** %2, align 4
+ store i32 0, i32* %i, align 4
+ %3 = load i32* %1, align 4 ; [#uses=1]
+ %4 = and i32 %3, 1 ; [#uses=1]
+ %5 = icmp ne i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %6, label %11
+
+; <label>:6 ; preds = %0
+ %7 = load i32* %i, align 4 ; [#uses=2]
+ %8 = add nsw i32 %7, 1 ; [#uses=1]
+ store i32 %8, i32* %i, align 4
+ %9 = load i8** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds i8* %9, i32 %7 ; [#uses=1]
+ store i8 99, i8* %10
+ br label %11
+
+; <label>:11 ; preds = %6, %0
+ %12 = load i32* %1, align 4 ; [#uses=1]
+ %13 = and i32 %12, 2 ; [#uses=1]
+ %14 = icmp ne i32 %13, 0 ; [#uses=1]
+ br i1 %14, label %15, label %20
+
+; <label>:15 ; preds = %11
+ %16 = load i32* %i, align 4 ; [#uses=2]
+ %17 = add nsw i32 %16, 1 ; [#uses=1]
+ store i32 %17, i32* %i, align 4
+ %18 = load i8** %2, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds i8* %18, i32 %16 ; [#uses=1]
+ store i8 114, i8* %19
+ br label %20
+
+; <label>:20 ; preds = %15, %11
+ %21 = load i32* %1, align 4 ; [#uses=1]
+ %22 = and i32 %21, 4 ; [#uses=1]
+ %23 = icmp ne i32 %22, 0 ; [#uses=1]
+ br i1 %23, label %24, label %29
+
+; <label>:24 ; preds = %20
+ %25 = load i32* %i, align 4 ; [#uses=2]
+ %26 = add nsw i32 %25, 1 ; [#uses=1]
+ store i32 %26, i32* %i, align 4
+ %27 = load i8** %2, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds i8* %27, i32 %25 ; [#uses=1]
+ store i8 108, i8* %28
+ br label %29
+
+; <label>:29 ; preds = %24, %20
+ %30 = load i32* %i, align 4 ; [#uses=1]
+ %31 = load i8** %2, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds i8* %31, i32 %30 ; [#uses=1]
+ store i8 0, i8* %32
+ %33 = load i8** %2, align 4 ; [#uses=1]
+ ret i8* %33
+}
+
+; [#uses=1]
+define internal i32 @_Z8io_closeP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %2, i32 1) ; [#uses=1]
+ %4 = icmp eq i32 %3, -1 ; [#uses=1]
+ br i1 %4, label %5, label %7
+
+; <label>:5 ; preds = %0
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %6, i32 -10001, i32 2)
+ br label %7
+
+; <label>:7 ; preds = %5, %0
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = call %struct._IO_FILE* @_Z6tofileP9lua_State(%struct.lua_State* %8) ; [#uses=0]
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = call i32 @_Z9aux_closeP9lua_State(%struct.lua_State* %10) ; [#uses=1]
+ ret i32 %11
+}
+
+; [#uses=1]
+define internal i32 @_Z8io_flushP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call %struct._IO_FILE* @_Z9getiofileP9lua_Statei(%struct.lua_State* %3, i32 2) ; [#uses=1]
+ %5 = call i32 @fflush(%struct._IO_FILE* %4) ; [#uses=1]
+ %6 = icmp eq i32 %5, 0 ; [#uses=1]
+ %7 = zext i1 %6 to i32 ; [#uses=1]
+ %8 = call i32 @_Z10pushresultP9lua_StateiPKc(%struct.lua_State* %2, i32 %7, i8* null) ; [#uses=1]
+ ret i32 %8
+}
+
+; [#uses=1]
+define internal i32 @_Z8io_inputP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z8g_iofileP9lua_StateiPKc(%struct.lua_State* %2, i32 1, i8* getelementptr inbounds ([2 x i8]* @.str43414, i32 0, i32 0)) ; [#uses=1]
+ ret i32 %3
+}
+
+; [#uses=1]
+define internal i32 @_Z8io_linesP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %filename = alloca i8*, align 4 ; [#uses=3]
+ %pf = alloca %struct._IO_FILE**, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = icmp sle i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %6, label %10
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %7, i32 -10001, i32 1)
+ %8 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %9 = call i32 @_Z7f_linesP9lua_State(%struct.lua_State* %8) ; [#uses=1]
+ store i32 %9, i32* %1
+ br label %28
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %12 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %11, i32 1, i32* null) ; [#uses=1]
+ store i8* %12, i8** %filename, align 4
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = call %struct._IO_FILE** @_Z7newfileP9lua_State(%struct.lua_State* %13) ; [#uses=1]
+ store %struct._IO_FILE** %14, %struct._IO_FILE*** %pf, align 4
+ %15 = load i8** %filename, align 4 ; [#uses=1]
+ %16 = call %struct._IO_FILE* @fopen(i8* %15, i8* getelementptr inbounds ([2 x i8]* @.str43414, i32 0, i32 0)) ; [#uses=1]
+ %17 = load %struct._IO_FILE*** %pf, align 4 ; [#uses=1]
+ store %struct._IO_FILE* %16, %struct._IO_FILE** %17
+ %18 = load %struct._IO_FILE*** %pf, align 4 ; [#uses=1]
+ %19 = load %struct._IO_FILE** %18 ; [#uses=1]
+ %20 = icmp eq %struct._IO_FILE* %19, null ; [#uses=1]
+ br i1 %20, label %21, label %24
+
+; <label>:21 ; preds = %10
+ %22 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %23 = load i8** %filename, align 4 ; [#uses=1]
+ call void @_Z9fileerrorP9lua_StateiPKc(%struct.lua_State* %22, i32 1, i8* %23)
+ br label %24
+
+; <label>:24 ; preds = %21, %10
+ %25 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %26 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %27 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %26) ; [#uses=1]
+ call void @_Z9aux_linesP9lua_Stateii(%struct.lua_State* %25, i32 %27, i32 1)
+ store i32 1, i32* %1
+ br label %28
+
+; <label>:28 ; preds = %24, %6
+ %29 = load i32* %1 ; [#uses=1]
+ ret i32 %29
+}
+
+; [#uses=1]
+define internal i32 @_Z7io_openP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %filename = alloca i8*, align 4 ; [#uses=3]
+ %mode = alloca i8*, align 4 ; [#uses=2]
+ %pf = alloca %struct._IO_FILE**, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %2, i32 1, i32* null) ; [#uses=1]
+ store i8* %3, i8** %filename, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i8* @_Z15luaL_optlstringP9lua_StateiPKcPj(%struct.lua_State* %4, i32 2, i8* getelementptr inbounds ([2 x i8]* @.str43414, i32 0, i32 0), i32* null) ; [#uses=1]
+ store i8* %5, i8** %mode, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = call %struct._IO_FILE** @_Z7newfileP9lua_State(%struct.lua_State* %6) ; [#uses=1]
+ store %struct._IO_FILE** %7, %struct._IO_FILE*** %pf, align 4
+ %8 = load i8** %filename, align 4 ; [#uses=1]
+ %9 = load i8** %mode, align 4 ; [#uses=1]
+ %10 = call %struct._IO_FILE* @fopen(i8* %8, i8* %9) ; [#uses=1]
+ %11 = load %struct._IO_FILE*** %pf, align 4 ; [#uses=1]
+ store %struct._IO_FILE* %10, %struct._IO_FILE** %11
+ %12 = load %struct._IO_FILE*** %pf, align 4 ; [#uses=1]
+ %13 = load %struct._IO_FILE** %12 ; [#uses=1]
+ %14 = icmp eq %struct._IO_FILE* %13, null ; [#uses=1]
+ br i1 %14, label %15, label %19
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = load i8** %filename, align 4 ; [#uses=1]
+ %18 = call i32 @_Z10pushresultP9lua_StateiPKc(%struct.lua_State* %16, i32 0, i8* %17) ; [#uses=1]
+ br label %20
+
+; <label>:19 ; preds = %0
+ br label %20
+
+; <label>:20 ; preds = %19, %15
+ %21 = phi i32 [ %18, %15 ], [ 1, %19 ] ; [#uses=1]
+ ret i32 %21
+}
+
+; [#uses=1]
+define internal i32 @_Z9io_outputP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z8g_iofileP9lua_StateiPKc(%struct.lua_State* %2, i32 2, i8* getelementptr inbounds ([2 x i8]* @.str45416, i32 0, i32 0)) ; [#uses=1]
+ ret i32 %3
+}
+
+; [#uses=1]
+define internal i32 @_Z8io_popenP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %filename = alloca i8*, align 4 ; [#uses=2]
+ %mode = alloca i8*, align 4 ; [#uses=1]
+ %pf = alloca %struct._IO_FILE**, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %2, i32 1, i32* null) ; [#uses=1]
+ store i8* %3, i8** %filename, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i8* @_Z15luaL_optlstringP9lua_StateiPKcPj(%struct.lua_State* %4, i32 2, i8* getelementptr inbounds ([2 x i8]* @.str43414, i32 0, i32 0), i32* null) ; [#uses=1]
+ store i8* %5, i8** %mode, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = call %struct._IO_FILE** @_Z7newfileP9lua_State(%struct.lua_State* %6) ; [#uses=1]
+ store %struct._IO_FILE** %7, %struct._IO_FILE*** %pf, align 4
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %8, i8* getelementptr inbounds ([22 x i8]* @.str44415, i32 0, i32 0)) ; [#uses=0]
+ %10 = load %struct._IO_FILE*** %pf, align 4 ; [#uses=1]
+ store %struct._IO_FILE* null, %struct._IO_FILE** %10
+ %11 = load %struct._IO_FILE*** %pf, align 4 ; [#uses=1]
+ %12 = load %struct._IO_FILE** %11 ; [#uses=1]
+ %13 = icmp eq %struct._IO_FILE* %12, null ; [#uses=1]
+ br i1 %13, label %14, label %18
+
+; <label>:14 ; preds = %0
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %16 = load i8** %filename, align 4 ; [#uses=1]
+ %17 = call i32 @_Z10pushresultP9lua_StateiPKc(%struct.lua_State* %15, i32 0, i8* %16) ; [#uses=1]
+ br label %19
+
+; <label>:18 ; preds = %0
+ br label %19
+
+; <label>:19 ; preds = %18, %14
+ %20 = phi i32 [ %17, %14 ], [ 1, %18 ] ; [#uses=1]
+ ret i32 %20
+}
+
+; [#uses=1]
+define internal i32 @_Z7io_readP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call %struct._IO_FILE* @_Z9getiofileP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call i32 @_Z6g_readP9lua_StateP8_IO_FILEi(%struct.lua_State* %2, %struct._IO_FILE* %4, i32 1) ; [#uses=1]
+ ret i32 %5
+}
+
+; [#uses=1]
+define internal i32 @_Z10io_tmpfileP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %pf = alloca %struct._IO_FILE**, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call %struct._IO_FILE** @_Z7newfileP9lua_State(%struct.lua_State* %2) ; [#uses=1]
+ store %struct._IO_FILE** %3, %struct._IO_FILE*** %pf, align 4
+ %4 = call %struct._IO_FILE* @tmpfile() ; [#uses=1]
+ %5 = load %struct._IO_FILE*** %pf, align 4 ; [#uses=1]
+ store %struct._IO_FILE* %4, %struct._IO_FILE** %5
+ %6 = load %struct._IO_FILE*** %pf, align 4 ; [#uses=1]
+ %7 = load %struct._IO_FILE** %6 ; [#uses=1]
+ %8 = icmp eq %struct._IO_FILE* %7, null ; [#uses=1]
+ br i1 %8, label %9, label %12
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = call i32 @_Z10pushresultP9lua_StateiPKc(%struct.lua_State* %10, i32 0, i8* null) ; [#uses=1]
+ br label %13
+
+; <label>:12 ; preds = %0
+ br label %13
+
+; <label>:13 ; preds = %12, %9
+ %14 = phi i32 [ %11, %9 ], [ 1, %12 ] ; [#uses=1]
+ ret i32 %14
+}
+
+; [#uses=1]
+define internal i32 @_Z7io_typeP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %ud = alloca i8*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_checkanyP9lua_Statei(%struct.lua_State* %2, i32 1)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call i8* @_Z14lua_touserdataP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ store i8* %4, i8** %ud, align 4
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %5, i32 -10000, i8* getelementptr inbounds ([6 x i8]* @.str19390, i32 0, i32 0))
+ %6 = load i8** %ud, align 4 ; [#uses=1]
+ %7 = icmp eq i8* %6, null ; [#uses=1]
+ br i1 %7, label %16, label %8
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = call i32 @_Z16lua_getmetatableP9lua_Statei(%struct.lua_State* %9, i32 1) ; [#uses=1]
+ %11 = icmp ne i32 %10, 0 ; [#uses=1]
+ br i1 %11, label %12, label %16
+
+; <label>:12 ; preds = %8
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = call i32 @_Z12lua_rawequalP9lua_Stateii(%struct.lua_State* %13, i32 -2, i32 -1) ; [#uses=1]
+ %15 = icmp ne i32 %14, 0 ; [#uses=1]
+ br i1 %15, label %18, label %16
+
+; <label>:16 ; preds = %12, %8, %0
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %17)
+ br label %28
+
+; <label>:18 ; preds = %12
+ %19 = load i8** %ud, align 4 ; [#uses=1]
+ %20 = bitcast i8* %19 to %struct._IO_FILE** ; [#uses=1]
+ %21 = load %struct._IO_FILE** %20 ; [#uses=1]
+ %22 = icmp eq %struct._IO_FILE* %21, null ; [#uses=1]
+ br i1 %22, label %23, label %25
+
+; <label>:23 ; preds = %18
+ %24 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %24, i8* getelementptr inbounds ([12 x i8]* @.str41412, i32 0, i32 0), i32 11)
+ br label %27
+
+; <label>:25 ; preds = %18
+ %26 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %26, i8* getelementptr inbounds ([5 x i8]* @.str42413, i32 0, i32 0), i32 4)
+ br label %27
+
+; <label>:27 ; preds = %25, %23
+ br label %28
+
+; <label>:28 ; preds = %27, %16
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z8io_writeP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call %struct._IO_FILE* @_Z9getiofileP9lua_Statei(%struct.lua_State* %3, i32 2) ; [#uses=1]
+ %5 = call i32 @_Z7g_writeP9lua_StateP8_IO_FILEi(%struct.lua_State* %2, %struct._IO_FILE* %4, i32 1) ; [#uses=1]
+ ret i32 %5
+}
+
+; [#uses=1]
+define internal i32 @_Z7f_flushP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call %struct._IO_FILE* @_Z6tofileP9lua_State(%struct.lua_State* %3) ; [#uses=1]
+ %5 = call i32 @fflush(%struct._IO_FILE* %4) ; [#uses=1]
+ %6 = icmp eq i32 %5, 0 ; [#uses=1]
+ %7 = zext i1 %6 to i32 ; [#uses=1]
+ %8 = call i32 @_Z10pushresultP9lua_StateiPKc(%struct.lua_State* %2, i32 %7, i8* null) ; [#uses=1]
+ ret i32 %8
+}
+
+; [#uses=2]
+define internal i32 @_Z7f_linesP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call %struct._IO_FILE* @_Z6tofileP9lua_State(%struct.lua_State* %2) ; [#uses=0]
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z9aux_linesP9lua_Stateii(%struct.lua_State* %4, i32 1, i32 0)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z6f_readP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call %struct._IO_FILE* @_Z6tofileP9lua_State(%struct.lua_State* %3) ; [#uses=1]
+ %5 = call i32 @_Z6g_readP9lua_StateP8_IO_FILEi(%struct.lua_State* %2, %struct._IO_FILE* %4, i32 2) ; [#uses=1]
+ ret i32 %5
+}
+
+; [#uses=1]
+define internal i32 @_Z6f_seekP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %f = alloca %struct._IO_FILE*, align 4 ; [#uses=3]
+ %op = alloca i32, align 4 ; [#uses=4]
+ %offset = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call %struct._IO_FILE* @_Z6tofileP9lua_State(%struct.lua_State* %3) ; [#uses=1]
+ store %struct._IO_FILE* %4, %struct._IO_FILE** %f, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = call i32 @_Z16luaL_checkoptionP9lua_StateiPKcPKS2_(%struct.lua_State* %5, i32 2, i8* getelementptr inbounds ([4 x i8]* @.str33404, i32 0, i32 0), i8** getelementptr inbounds ([4 x i8*]* @_ZZ6f_seekP9lua_StateE9modenames, i32 0, i32 0)) ; [#uses=1]
+ store i32 %6, i32* %op, align 4
+ %7 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %8 = call i32 @_Z15luaL_optintegerP9lua_Stateii(%struct.lua_State* %7, i32 3, i32 0) ; [#uses=1]
+ store i32 %8, i32* %offset, align 4
+ %9 = load %struct._IO_FILE** %f, align 4 ; [#uses=1]
+ %10 = load i32* %offset, align 4 ; [#uses=1]
+ %11 = load i32* %op, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds [3 x i32]* @_ZZ6f_seekP9lua_StateE4mode, i32 0, i32 %11 ; [#uses=1]
+ %13 = load i32* %12 ; [#uses=1]
+ %14 = call i32 @fseek(%struct._IO_FILE* %9, i32 %10, i32 %13) ; [#uses=1]
+ store i32 %14, i32* %op, align 4
+ %15 = load i32* %op, align 4 ; [#uses=1]
+ %16 = icmp ne i32 %15, 0 ; [#uses=1]
+ br i1 %16, label %17, label %20
+
+; <label>:17 ; preds = %0
+ %18 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %19 = call i32 @_Z10pushresultP9lua_StateiPKc(%struct.lua_State* %18, i32 0, i8* null) ; [#uses=1]
+ store i32 %19, i32* %1
+ br label %24
+
+; <label>:20 ; preds = %0
+ %21 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %22 = load %struct._IO_FILE** %f, align 4 ; [#uses=1]
+ %23 = call i32 @ftell(%struct._IO_FILE* %22) ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %21, i32 %23)
+ store i32 1, i32* %1
+ br label %24
+
+; <label>:24 ; preds = %20, %17
+ %25 = load i32* %1 ; [#uses=1]
+ ret i32 %25
+}
+
+; [#uses=1]
+define internal i32 @_Z9f_setvbufP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %f = alloca %struct._IO_FILE*, align 4 ; [#uses=2]
+ %op = alloca i32, align 4 ; [#uses=2]
+ %sz = alloca i32, align 4 ; [#uses=2]
+ %res = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call %struct._IO_FILE* @_Z6tofileP9lua_State(%struct.lua_State* %2) ; [#uses=1]
+ store %struct._IO_FILE* %3, %struct._IO_FILE** %f, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z16luaL_checkoptionP9lua_StateiPKcPKS2_(%struct.lua_State* %4, i32 2, i8* null, i8** getelementptr inbounds ([4 x i8*]* @_ZZ9f_setvbufP9lua_StateE9modenames, i32 0, i32 0)) ; [#uses=1]
+ store i32 %5, i32* %op, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = call i32 @_Z15luaL_optintegerP9lua_Stateii(%struct.lua_State* %6, i32 3, i32 8192) ; [#uses=1]
+ store i32 %7, i32* %sz, align 4
+ %8 = load %struct._IO_FILE** %f, align 4 ; [#uses=1]
+ %9 = load i32* %op, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds [3 x i32]* @_ZZ9f_setvbufP9lua_StateE4mode, i32 0, i32 %9 ; [#uses=1]
+ %11 = load i32* %10 ; [#uses=1]
+ %12 = load i32* %sz, align 4 ; [#uses=1]
+ %13 = call i32 @setvbuf(%struct._IO_FILE* %8, i8* null, i32 %11, i32 %12) nounwind ; [#uses=1]
+ store i32 %13, i32* %res, align 4
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = load i32* %res, align 4 ; [#uses=1]
+ %16 = icmp eq i32 %15, 0 ; [#uses=1]
+ %17 = zext i1 %16 to i32 ; [#uses=1]
+ %18 = call i32 @_Z10pushresultP9lua_StateiPKc(%struct.lua_State* %14, i32 %17, i8* null) ; [#uses=1]
+ ret i32 %18
+}
+
+; [#uses=1]
+define internal i32 @_Z7f_writeP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call %struct._IO_FILE* @_Z6tofileP9lua_State(%struct.lua_State* %3) ; [#uses=1]
+ %5 = call i32 @_Z7g_writeP9lua_StateP8_IO_FILEi(%struct.lua_State* %2, %struct._IO_FILE* %4, i32 2) ; [#uses=1]
+ ret i32 %5
+}
+
+; [#uses=1]
+define internal i32 @_Z5io_gcP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %f = alloca %struct._IO_FILE*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z15luaL_checkudataP9lua_StateiPKc(%struct.lua_State* %2, i32 1, i8* getelementptr inbounds ([6 x i8]* @.str19390, i32 0, i32 0)) ; [#uses=1]
+ %4 = bitcast i8* %3 to %struct._IO_FILE** ; [#uses=1]
+ %5 = load %struct._IO_FILE** %4 ; [#uses=1]
+ store %struct._IO_FILE* %5, %struct._IO_FILE** %f, align 4
+ %6 = load %struct._IO_FILE** %f, align 4 ; [#uses=1]
+ %7 = icmp ne %struct._IO_FILE* %6, null ; [#uses=1]
+ br i1 %7, label %8, label %11
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = call i32 @_Z9aux_closeP9lua_State(%struct.lua_State* %9) ; [#uses=0]
+ br label %11
+
+; <label>:11 ; preds = %8, %0
+ ret i32 0
+}
+
+; [#uses=1]
+define internal i32 @_Z11io_tostringP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %f = alloca %struct._IO_FILE*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z15luaL_checkudataP9lua_StateiPKc(%struct.lua_State* %2, i32 1, i8* getelementptr inbounds ([6 x i8]* @.str19390, i32 0, i32 0)) ; [#uses=1]
+ %4 = bitcast i8* %3 to %struct._IO_FILE** ; [#uses=1]
+ %5 = load %struct._IO_FILE** %4 ; [#uses=1]
+ store %struct._IO_FILE* %5, %struct._IO_FILE** %f, align 4
+ %6 = load %struct._IO_FILE** %f, align 4 ; [#uses=1]
+ %7 = icmp eq %struct._IO_FILE* %6, null ; [#uses=1]
+ br i1 %7, label %8, label %10
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %9, i8* getelementptr inbounds ([14 x i8]* @.str25396, i32 0, i32 0), i32 13)
+ br label %14
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = load %struct._IO_FILE** %f, align 4 ; [#uses=1]
+ %13 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %11, i8* getelementptr inbounds ([10 x i8]* @.str26397, i32 0, i32 0), %struct._IO_FILE* %12) ; [#uses=0]
+ br label %14
+
+; <label>:14 ; preds = %10, %8
+ ret i32 1
+}
+
+; [#uses=1]
+define i32 @_Z10luaopen_ioP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=14]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10createmetaP9lua_State(%struct.lua_State* %2)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z7newfenvP9lua_StatePFiS0_E(%struct.lua_State* %3, i32 (%struct.lua_State*)* @_Z9io_fcloseP9lua_State)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11lua_replaceP9lua_Statei(%struct.lua_State* %4, i32 -10001)
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_registerP9lua_StatePKcPK8luaL_Reg(%struct.lua_State* %5, i8* getelementptr inbounds ([3 x i8]* @.str15386, i32 0, i32 0), %struct.luaL_Reg* getelementptr inbounds ([12 x %struct.luaL_Reg]* @_ZL5iolib, i32 0, i32 0))
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z7newfenvP9lua_StatePFiS0_E(%struct.lua_State* %6, i32 (%struct.lua_State*)* @_Z10io_nocloseP9lua_State)
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load %struct._IO_FILE** @stdin, align 4 ; [#uses=1]
+ call void @_Z13createstdfileP9lua_StateP8_IO_FILEiPKc(%struct.lua_State* %7, %struct._IO_FILE* %8, i32 1, i8* getelementptr inbounds ([6 x i8]* @.str16387, i32 0, i32 0))
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = load %struct._IO_FILE** @stdout, align 4 ; [#uses=1]
+ call void @_Z13createstdfileP9lua_StateP8_IO_FILEiPKc(%struct.lua_State* %9, %struct._IO_FILE* %10, i32 2, i8* getelementptr inbounds ([7 x i8]* @.str17388, i32 0, i32 0))
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = load %struct._IO_FILE** @stderr, align 4 ; [#uses=1]
+ call void @_Z13createstdfileP9lua_StateP8_IO_FILEiPKc(%struct.lua_State* %11, %struct._IO_FILE* %12, i32 0, i8* getelementptr inbounds ([7 x i8]* @.str18389, i32 0, i32 0))
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %13, i32 -2)
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %14, i32 -1, i8* getelementptr inbounds ([6 x i8]* @.str6377, i32 0, i32 0))
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z7newfenvP9lua_StatePFiS0_E(%struct.lua_State* %15, i32 (%struct.lua_State*)* @_Z9io_pcloseP9lua_State)
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = call i32 @_Z11lua_setfenvP9lua_Statei(%struct.lua_State* %16, i32 -2) ; [#uses=0]
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %18, i32 -2)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal void @_Z10createmetaP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z17luaL_newmetatableP9lua_StatePKc(%struct.lua_State* %2, i8* getelementptr inbounds ([6 x i8]* @.str19390, i32 0, i32 0)) ; [#uses=0]
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %4, i32 -1)
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %5, i32 -2, i8* getelementptr inbounds ([8 x i8]* @.str24395, i32 0, i32 0))
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_registerP9lua_StatePKcPK8luaL_Reg(%struct.lua_State* %6, i8* null, %struct.luaL_Reg* getelementptr inbounds ([10 x %struct.luaL_Reg]* @_ZL4flib, i32 0, i32 0))
+ ret void
+}
+
+; [#uses=3]
+define internal void @_Z7newfenvP9lua_StatePFiS0_E(%struct.lua_State* %L, i32 (%struct.lua_State*)* %cls) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32 (%struct.lua_State*)*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 (%struct.lua_State*)* %cls, i32 (%struct.lua_State*)** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_createtableP9lua_Stateii(%struct.lua_State* %3, i32 0, i32 1)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32 (%struct.lua_State*)** %2, align 4 ; [#uses=1]
+ call void @_Z16lua_pushcclosureP9lua_StatePFiS0_Ei(%struct.lua_State* %4, i32 (%struct.lua_State*)* %5, i32 0)
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %6, i32 -2, i8* getelementptr inbounds ([8 x i8]* @.str23394, i32 0, i32 0))
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z9io_fcloseP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %p = alloca %struct._IO_FILE**, align 4 ; [#uses=3]
+ %ok = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z15luaL_checkudataP9lua_StateiPKc(%struct.lua_State* %2, i32 1, i8* getelementptr inbounds ([6 x i8]* @.str19390, i32 0, i32 0)) ; [#uses=1]
+ %4 = bitcast i8* %3 to %struct._IO_FILE** ; [#uses=1]
+ store %struct._IO_FILE** %4, %struct._IO_FILE*** %p, align 4
+ %5 = load %struct._IO_FILE*** %p, align 4 ; [#uses=1]
+ %6 = load %struct._IO_FILE** %5 ; [#uses=1]
+ %7 = call i32 @fclose(%struct._IO_FILE* %6) ; [#uses=1]
+ %8 = icmp eq i32 %7, 0 ; [#uses=1]
+ %9 = zext i1 %8 to i32 ; [#uses=1]
+ store i32 %9, i32* %ok, align 4
+ %10 = load %struct._IO_FILE*** %p, align 4 ; [#uses=1]
+ store %struct._IO_FILE* null, %struct._IO_FILE** %10
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = load i32* %ok, align 4 ; [#uses=1]
+ %13 = call i32 @_Z10pushresultP9lua_StateiPKc(%struct.lua_State* %11, i32 %12, i8* null) ; [#uses=1]
+ ret i32 %13
+}
+
+; [#uses=1]
+define internal i32 @_Z10io_nocloseP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %2)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %3, i8* getelementptr inbounds ([27 x i8]* @.str22393, i32 0, i32 0), i32 26)
+ ret i32 2
+}
+
+; [#uses=3]
+define internal void @_Z13createstdfileP9lua_StateP8_IO_FILEiPKc(%struct.lua_State* %L, %struct._IO_FILE* %f, i32 %k, i8* %fname) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %2 = alloca %struct._IO_FILE*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %4 = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct._IO_FILE* %f, %struct._IO_FILE** %2, align 4
+ store i32 %k, i32* %3, align 4
+ store i8* %fname, i8** %4, align 4
+ %5 = load %struct._IO_FILE** %2, align 4 ; [#uses=1]
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = call %struct._IO_FILE** @_Z7newfileP9lua_State(%struct.lua_State* %6) ; [#uses=1]
+ store %struct._IO_FILE* %5, %struct._IO_FILE** %7
+ %8 = load i32* %3, align 4 ; [#uses=1]
+ %9 = icmp sgt i32 %8, 0 ; [#uses=1]
+ br i1 %9, label %10, label %14
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %11, i32 -1)
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z11lua_rawsetiP9lua_Stateii(%struct.lua_State* %12, i32 -10001, i32 %13)
+ br label %14
+
+; <label>:14 ; preds = %10, %0
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %15, i32 -2)
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = call i32 @_Z11lua_setfenvP9lua_Statei(%struct.lua_State* %16, i32 -2) ; [#uses=0]
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = load i8** %4, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %18, i32 -3, i8* %19)
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z9io_pcloseP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %p = alloca %struct._IO_FILE**, align 4 ; [#uses=3]
+ %ok = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z15luaL_checkudataP9lua_StateiPKc(%struct.lua_State* %2, i32 1, i8* getelementptr inbounds ([6 x i8]* @.str19390, i32 0, i32 0)) ; [#uses=1]
+ %4 = bitcast i8* %3 to %struct._IO_FILE** ; [#uses=1]
+ store %struct._IO_FILE** %4, %struct._IO_FILE*** %p, align 4
+ %5 = load %struct._IO_FILE*** %p, align 4 ; [#uses=0]
+ store i32 0, i32* %ok, align 4
+ %6 = load %struct._IO_FILE*** %p, align 4 ; [#uses=1]
+ store %struct._IO_FILE* null, %struct._IO_FILE** %6
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load i32* %ok, align 4 ; [#uses=1]
+ %9 = call i32 @_Z10pushresultP9lua_StateiPKc(%struct.lua_State* %7, i32 %8, i8* null) ; [#uses=1]
+ ret i32 %9
+}
+
+; [#uses=11]
+define internal i32 @_Z10pushresultP9lua_StateiPKc(%struct.lua_State* %L, i32 %i, i8* %filename) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca i8*, align 4 ; [#uses=3]
+ %en = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %i, i32* %3, align 4
+ store i8* %filename, i8** %4, align 4
+ %5 = call i32* @__errno_location() nounwind readnone ; [#uses=1]
+ %6 = load i32* %5 ; [#uses=1]
+ store i32 %6, i32* %en, align 4
+ %7 = load i32* %3, align 4 ; [#uses=1]
+ %8 = icmp ne i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %9, label %11
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushbooleanP9lua_Statei(%struct.lua_State* %10, i32 1)
+ store i32 1, i32* %1
+ br label %29
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %12)
+ %13 = load i8** %4, align 4 ; [#uses=1]
+ %14 = icmp ne i8* %13, null ; [#uses=1]
+ br i1 %14, label %15, label %21
+
+; <label>:15 ; preds = %11
+ %16 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %17 = load i8** %4, align 4 ; [#uses=1]
+ %18 = load i32* %en, align 4 ; [#uses=1]
+ %19 = call i8* @strerror(i32 %18) ; [#uses=1]
+ %20 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %16, i8* getelementptr inbounds ([7 x i8]* @.str20391, i32 0, i32 0), i8* %17, i8* %19) ; [#uses=0]
+ br label %26
+
+; <label>:21 ; preds = %11
+ %22 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %23 = load i32* %en, align 4 ; [#uses=1]
+ %24 = call i8* @strerror(i32 %23) ; [#uses=1]
+ %25 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %22, i8* getelementptr inbounds ([3 x i8]* @.str21392, i32 0, i32 0), i8* %24) ; [#uses=0]
+ br label %26
+
+; <label>:26 ; preds = %21, %15
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %28 = load i32* %en, align 4 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %27, i32 %28)
+ store i32 3, i32* %1
+ br label %29
+
+; <label>:29 ; preds = %26, %9
+ %30 = load i32* %1 ; [#uses=1]
+ ret i32 %30
+}
+
+; [#uses=6]
+define internal %struct._IO_FILE** @_Z7newfileP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %pf = alloca %struct._IO_FILE**, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z15lua_newuserdataP9lua_Statej(%struct.lua_State* %2, i32 4) ; [#uses=1]
+ %4 = bitcast i8* %3 to %struct._IO_FILE** ; [#uses=1]
+ store %struct._IO_FILE** %4, %struct._IO_FILE*** %pf, align 4
+ %5 = load %struct._IO_FILE*** %pf, align 4 ; [#uses=1]
+ store %struct._IO_FILE* null, %struct._IO_FILE** %5
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %6, i32 -10000, i8* getelementptr inbounds ([6 x i8]* @.str19390, i32 0, i32 0))
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = call i32 @_Z16lua_setmetatableP9lua_Statei(%struct.lua_State* %7, i32 -2) ; [#uses=0]
+ %9 = load %struct._IO_FILE*** %pf, align 4 ; [#uses=1]
+ ret %struct._IO_FILE** %9
+}
+
+; [#uses=3]
+define internal i32 @_Z9aux_closeP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11lua_getfenvP9lua_Statei(%struct.lua_State* %2, i32 1)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %3, i32 -1, i8* getelementptr inbounds ([8 x i8]* @.str23394, i32 0, i32 0))
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i32 (%struct.lua_State*)* (%struct.lua_State*, i32)* @_Z15lua_tocfunctionP9lua_Statei(%struct.lua_State* %4, i32 -1) ; [#uses=1]
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = call i32 %5(%struct.lua_State* %6) ; [#uses=1]
+ ret i32 %7
+}
+
+; [#uses=2]
+define internal i32 @_Z7g_writeP9lua_StateP8_IO_FILEi(%struct.lua_State* %L, %struct._IO_FILE* %f, i32 %arg) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %2 = alloca %struct._IO_FILE*, align 4 ; [#uses=3]
+ %3 = alloca i32, align 4 ; [#uses=6]
+ %nargs = alloca i32, align 4 ; [#uses=3]
+ %status = alloca i32, align 4 ; [#uses=6]
+ %l = alloca i32, align 4 ; [#uses=3]
+ %s = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct._IO_FILE* %f, %struct._IO_FILE** %2, align 4
+ store i32 %arg, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %4) ; [#uses=1]
+ %6 = sub nsw i32 %5, 1 ; [#uses=1]
+ store i32 %6, i32* %nargs, align 4
+ store i32 1, i32* %status, align 4
+ br label %7
+
+; <label>:7 ; preds = %46, %0
+ %8 = load i32* %nargs, align 4 ; [#uses=2]
+ %9 = add nsw i32 %8, -1 ; [#uses=1]
+ store i32 %9, i32* %nargs, align 4
+ %10 = icmp ne i32 %8, 0 ; [#uses=1]
+ br i1 %10, label %11, label %49
+
+; <label>:11 ; preds = %7
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = load i32* %3, align 4 ; [#uses=1]
+ %14 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %12, i32 %13) ; [#uses=1]
+ %15 = icmp eq i32 %14, 3 ; [#uses=1]
+ br i1 %15, label %16, label %29
+
+; <label>:16 ; preds = %11
+ %17 = load i32* %status, align 4 ; [#uses=1]
+ %18 = icmp ne i32 %17, 0 ; [#uses=1]
+ br i1 %18, label %19, label %26
+
+; <label>:19 ; preds = %16
+ %20 = load %struct._IO_FILE** %2, align 4 ; [#uses=1]
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %22 = load i32* %3, align 4 ; [#uses=1]
+ %23 = call double @_Z12lua_tonumberP9lua_Statei(%struct.lua_State* %21, i32 %22) ; [#uses=1]
+ %24 = call i32 (%struct._IO_FILE*, i8*, ...)* @fprintf(%struct._IO_FILE* %20, i8* getelementptr inbounds ([6 x i8]* @.str28399, i32 0, i32 0), double %23) ; [#uses=1]
+ %25 = icmp sgt i32 %24, 0 ; [#uses=1]
+ br label %26
+
+; <label>:26 ; preds = %19, %16
+ %27 = phi i1 [ false, %16 ], [ %25, %19 ] ; [#uses=1]
+ %28 = zext i1 %27 to i32 ; [#uses=1]
+ store i32 %28, i32* %status, align 4
+ br label %45
+
+; <label>:29 ; preds = %11
+ %30 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %31 = load i32* %3, align 4 ; [#uses=1]
+ %32 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %30, i32 %31, i32* %l) ; [#uses=1]
+ store i8* %32, i8** %s, align 4
+ %33 = load i32* %status, align 4 ; [#uses=1]
+ %34 = icmp ne i32 %33, 0 ; [#uses=1]
+ br i1 %34, label %35, label %42
+
+; <label>:35 ; preds = %29
+ %36 = load i8** %s, align 4 ; [#uses=1]
+ %37 = load i32* %l, align 4 ; [#uses=1]
+ %38 = load %struct._IO_FILE** %2, align 4 ; [#uses=1]
+ %39 = call i32 @fwrite(i8* %36, i32 1, i32 %37, %struct._IO_FILE* %38) ; [#uses=1]
+ %40 = load i32* %l, align 4 ; [#uses=1]
+ %41 = icmp eq i32 %39, %40 ; [#uses=1]
+ br label %42
+
+; <label>:42 ; preds = %35, %29
+ %43 = phi i1 [ false, %29 ], [ %41, %35 ] ; [#uses=1]
+ %44 = zext i1 %43 to i32 ; [#uses=1]
+ store i32 %44, i32* %status, align 4
+ br label %45
+
+; <label>:45 ; preds = %42, %26
+ br label %46
+
+; <label>:46 ; preds = %45
+ %47 = load i32* %3, align 4 ; [#uses=1]
+ %48 = add nsw i32 %47, 1 ; [#uses=1]
+ store i32 %48, i32* %3, align 4
+ br label %7
+
+; <label>:49 ; preds = %7
+ %50 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %51 = load i32* %status, align 4 ; [#uses=1]
+ %52 = call i32 @_Z10pushresultP9lua_StateiPKc(%struct.lua_State* %50, i32 %51, i8* null) ; [#uses=1]
+ ret i32 %52
+}
+
+; [#uses=8]
+define internal %struct._IO_FILE* @_Z6tofileP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %f = alloca %struct._IO_FILE**, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z15luaL_checkudataP9lua_StateiPKc(%struct.lua_State* %2, i32 1, i8* getelementptr inbounds ([6 x i8]* @.str19390, i32 0, i32 0)) ; [#uses=1]
+ %4 = bitcast i8* %3 to %struct._IO_FILE** ; [#uses=1]
+ store %struct._IO_FILE** %4, %struct._IO_FILE*** %f, align 4
+ %5 = load %struct._IO_FILE*** %f, align 4 ; [#uses=1]
+ %6 = load %struct._IO_FILE** %5 ; [#uses=1]
+ %7 = icmp eq %struct._IO_FILE* %6, null ; [#uses=1]
+ br i1 %7, label %8, label %11
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %9, i8* getelementptr inbounds ([29 x i8]* @.str27398, i32 0, i32 0)) ; [#uses=0]
+ br label %11
+
+; <label>:11 ; preds = %8, %0
+ %12 = load %struct._IO_FILE*** %f, align 4 ; [#uses=1]
+ %13 = load %struct._IO_FILE** %12 ; [#uses=1]
+ ret %struct._IO_FILE* %13
+}
+
+; [#uses=1]
+declare i32 @fwrite(i8*, i32, i32, %struct._IO_FILE*)
+
+; [#uses=1]
+declare i32 @setvbuf(%struct._IO_FILE*, i8*, i32, i32) nounwind
+
+; [#uses=1]
+declare i32 @fseek(%struct._IO_FILE*, i32, i32)
+
+; [#uses=1]
+declare i32 @ftell(%struct._IO_FILE*)
+
+; [#uses=2]
+define internal i32 @_Z6g_readP9lua_StateP8_IO_FILEi(%struct.lua_State* %L, %struct._IO_FILE* %f, i32 %first) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=17]
+ %3 = alloca %struct._IO_FILE*, align 4 ; [#uses=9]
+ %4 = alloca i32, align 4 ; [#uses=4]
+ %nargs = alloca i32, align 4 ; [#uses=5]
+ %success = alloca i32, align 4 ; [#uses=8]
+ %n = alloca i32, align 4 ; [#uses=10]
+ %l = alloca i32, align 4 ; [#uses=3]
+ %p = alloca i8*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct._IO_FILE* %f, %struct._IO_FILE** %3, align 4
+ store i32 %first, i32* %4, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %5) ; [#uses=1]
+ %7 = sub nsw i32 %6, 1 ; [#uses=1]
+ store i32 %7, i32* %nargs, align 4
+ %8 = load %struct._IO_FILE** %3, align 4 ; [#uses=1]
+ call void @clearerr(%struct._IO_FILE* %8) nounwind
+ %9 = load i32* %nargs, align 4 ; [#uses=1]
+ %10 = icmp eq i32 %9, 0 ; [#uses=1]
+ br i1 %10, label %11, label %17
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %13 = load %struct._IO_FILE** %3, align 4 ; [#uses=1]
+ %14 = call i32 @_Z9read_lineP9lua_StateP8_IO_FILE(%struct.lua_State* %12, %struct._IO_FILE* %13) ; [#uses=1]
+ store i32 %14, i32* %success, align 4
+ %15 = load i32* %4, align 4 ; [#uses=1]
+ %16 = add nsw i32 %15, 1 ; [#uses=1]
+ store i32 %16, i32* %n, align 4
+ br label %98
+
+; <label>:17 ; preds = %0
+ %18 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %19 = load i32* %nargs, align 4 ; [#uses=1]
+ %20 = add nsw i32 %19, 20 ; [#uses=1]
+ call void @_Z15luaL_checkstackP9lua_StateiPKc(%struct.lua_State* %18, i32 %20, i8* getelementptr inbounds ([19 x i8]* @.str35406, i32 0, i32 0))
+ store i32 1, i32* %success, align 4
+ %21 = load i32* %4, align 4 ; [#uses=1]
+ store i32 %21, i32* %n, align 4
+ br label %22
+
+; <label>:22 ; preds = %94, %17
+ %23 = load i32* %nargs, align 4 ; [#uses=2]
+ %24 = add nsw i32 %23, -1 ; [#uses=1]
+ store i32 %24, i32* %nargs, align 4
+ %25 = icmp ne i32 %23, 0 ; [#uses=1]
+ br i1 %25, label %26, label %29
+
+; <label>:26 ; preds = %22
+ %27 = load i32* %success, align 4 ; [#uses=1]
+ %28 = icmp ne i32 %27, 0 ; [#uses=1]
+ br label %29
+
+; <label>:29 ; preds = %26, %22
+ %30 = phi i1 [ false, %22 ], [ %28, %26 ] ; [#uses=1]
+ br i1 %30, label %31, label %97
+
+; <label>:31 ; preds = %29
+ %32 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %33 = load i32* %n, align 4 ; [#uses=1]
+ %34 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %32, i32 %33) ; [#uses=1]
+ %35 = icmp eq i32 %34, 3 ; [#uses=1]
+ br i1 %35, label %36, label %53
+
+; <label>:36 ; preds = %31
+ %37 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %38 = load i32* %n, align 4 ; [#uses=1]
+ %39 = call i32 @_Z13lua_tointegerP9lua_Statei(%struct.lua_State* %37, i32 %38) ; [#uses=1]
+ store i32 %39, i32* %l, align 4
+ %40 = load i32* %l, align 4 ; [#uses=1]
+ %41 = icmp eq i32 %40, 0 ; [#uses=1]
+ br i1 %41, label %42, label %46
+
+; <label>:42 ; preds = %36
+ %43 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %44 = load %struct._IO_FILE** %3, align 4 ; [#uses=1]
+ %45 = call i32 @_Z8test_eofP9lua_StateP8_IO_FILE(%struct.lua_State* %43, %struct._IO_FILE* %44) ; [#uses=1]
+ br label %51
+
+; <label>:46 ; preds = %36
+ %47 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %48 = load %struct._IO_FILE** %3, align 4 ; [#uses=1]
+ %49 = load i32* %l, align 4 ; [#uses=1]
+ %50 = call i32 @_Z10read_charsP9lua_StateP8_IO_FILEj(%struct.lua_State* %47, %struct._IO_FILE* %48, i32 %49) ; [#uses=1]
+ br label %51
+
+; <label>:51 ; preds = %46, %42
+ %52 = phi i32 [ %45, %42 ], [ %50, %46 ] ; [#uses=1]
+ store i32 %52, i32* %success, align 4
+ br label %93
+
+; <label>:53 ; preds = %31
+ %54 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %55 = load i32* %n, align 4 ; [#uses=1]
+ %56 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %54, i32 %55, i32* null) ; [#uses=1]
+ store i8* %56, i8** %p, align 4
+ %57 = load i8** %p, align 4 ; [#uses=1]
+ %58 = icmp ne i8* %57, null ; [#uses=1]
+ br i1 %58, label %59, label %65
+
+; <label>:59 ; preds = %53
+ %60 = load i8** %p, align 4 ; [#uses=1]
+ %61 = getelementptr inbounds i8* %60, i32 0 ; [#uses=1]
+ %62 = load i8* %61 ; [#uses=1]
+ %63 = sext i8 %62 to i32 ; [#uses=1]
+ %64 = icmp eq i32 %63, 42 ; [#uses=1]
+ br i1 %64, label %70, label %65
+
+; <label>:65 ; preds = %59, %53
+ %66 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %67 = load i32* %n, align 4 ; [#uses=1]
+ %68 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %66, i32 %67, i8* getelementptr inbounds ([15 x i8]* @.str36407, i32 0, i32 0)) ; [#uses=1]
+ %69 = icmp ne i32 %68, 0 ; [#uses=1]
+ br label %70
+
+; <label>:70 ; preds = %65, %59
+ %71 = phi i1 [ true, %59 ], [ %69, %65 ] ; [#uses=0]
+ %72 = load i8** %p, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds i8* %72, i32 1 ; [#uses=1]
+ %74 = load i8* %73 ; [#uses=1]
+ %75 = sext i8 %74 to i32 ; [#uses=1]
+ switch i32 %75, label %88 [
+ i32 110, label %76
+ i32 108, label %80
+ i32 97, label %84
+ ]
+
+; <label>:76 ; preds = %70
+ %77 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %78 = load %struct._IO_FILE** %3, align 4 ; [#uses=1]
+ %79 = call i32 @_Z11read_numberP9lua_StateP8_IO_FILE(%struct.lua_State* %77, %struct._IO_FILE* %78) ; [#uses=1]
+ store i32 %79, i32* %success, align 4
+ br label %92
+
+; <label>:80 ; preds = %70
+ %81 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %82 = load %struct._IO_FILE** %3, align 4 ; [#uses=1]
+ %83 = call i32 @_Z9read_lineP9lua_StateP8_IO_FILE(%struct.lua_State* %81, %struct._IO_FILE* %82) ; [#uses=1]
+ store i32 %83, i32* %success, align 4
+ br label %92
+
+; <label>:84 ; preds = %70
+ %85 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %86 = load %struct._IO_FILE** %3, align 4 ; [#uses=1]
+ %87 = call i32 @_Z10read_charsP9lua_StateP8_IO_FILEj(%struct.lua_State* %85, %struct._IO_FILE* %86, i32 -1) ; [#uses=0]
+ store i32 1, i32* %success, align 4
+ br label %92
+
+; <label>:88 ; preds = %70
+ %89 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %90 = load i32* %n, align 4 ; [#uses=1]
+ %91 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %89, i32 %90, i8* getelementptr inbounds ([15 x i8]* @.str37408, i32 0, i32 0)) ; [#uses=1]
+ store i32 %91, i32* %1
+ br label %115
+
+; <label>:92 ; preds = %84, %80, %76
+ br label %93
+
+; <label>:93 ; preds = %92, %51
+ br label %94
+
+; <label>:94 ; preds = %93
+ %95 = load i32* %n, align 4 ; [#uses=1]
+ %96 = add nsw i32 %95, 1 ; [#uses=1]
+ store i32 %96, i32* %n, align 4
+ br label %22
+
+; <label>:97 ; preds = %29
+ br label %98
+
+; <label>:98 ; preds = %97, %11
+ %99 = load %struct._IO_FILE** %3, align 4 ; [#uses=1]
+ %100 = call i32 @ferror(%struct._IO_FILE* %99) nounwind ; [#uses=1]
+ %101 = icmp ne i32 %100, 0 ; [#uses=1]
+ br i1 %101, label %102, label %105
+
+; <label>:102 ; preds = %98
+ %103 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %104 = call i32 @_Z10pushresultP9lua_StateiPKc(%struct.lua_State* %103, i32 0, i8* null) ; [#uses=1]
+ store i32 %104, i32* %1
+ br label %115
+
+; <label>:105 ; preds = %98
+ %106 = load i32* %success, align 4 ; [#uses=1]
+ %107 = icmp ne i32 %106, 0 ; [#uses=1]
+ br i1 %107, label %111, label %108
+
+; <label>:108 ; preds = %105
+ %109 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %109, i32 -2)
+ %110 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %110)
+ br label %111
+
+; <label>:111 ; preds = %108, %105
+ %112 = load i32* %n, align 4 ; [#uses=1]
+ %113 = load i32* %4, align 4 ; [#uses=1]
+ %114 = sub nsw i32 %112, %113 ; [#uses=1]
+ store i32 %114, i32* %1
+ br label %115
+
+; <label>:115 ; preds = %111, %102, %88
+ %116 = load i32* %1 ; [#uses=1]
+ ret i32 %116
+}
+
+; [#uses=1]
+declare void @clearerr(%struct._IO_FILE*) nounwind
+
+; [#uses=3]
+define internal i32 @_Z9read_lineP9lua_StateP8_IO_FILE(%struct.lua_State* %L, %struct._IO_FILE* %f) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %3 = alloca %struct._IO_FILE*, align 4 ; [#uses=2]
+ %b = alloca %struct.luaL_Buffer, align 4 ; [#uses=6]
+ %l = alloca i32, align 4 ; [#uses=5]
+ %p = alloca i8*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct._IO_FILE* %f, %struct._IO_FILE** %3, align 4
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13luaL_buffinitP9lua_StateP11luaL_Buffer(%struct.lua_State* %4, %struct.luaL_Buffer* %b)
+ br label %5
+
+; <label>:5 ; preds = %40, %0
+ %6 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %b) ; [#uses=1]
+ store i8* %6, i8** %p, align 4
+ %7 = load i8** %p, align 4 ; [#uses=1]
+ %8 = load %struct._IO_FILE** %3, align 4 ; [#uses=1]
+ %9 = call i8* @fgets(i8* %7, i32 8192, %struct._IO_FILE* %8) ; [#uses=1]
+ %10 = icmp eq i8* %9, null ; [#uses=1]
+ br i1 %10, label %11, label %16
+
+; <label>:11 ; preds = %5
+ call void @_Z15luaL_pushresultP11luaL_Buffer(%struct.luaL_Buffer* %b)
+ %12 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %13 = call i32 @_Z10lua_objlenP9lua_Statei(%struct.lua_State* %12, i32 -1) ; [#uses=1]
+ %14 = icmp ugt i32 %13, 0 ; [#uses=1]
+ %15 = zext i1 %14 to i32 ; [#uses=1]
+ store i32 %15, i32* %1
+ br label %41
+
+; <label>:16 ; preds = %5
+ %17 = load i8** %p, align 4 ; [#uses=1]
+ %18 = call i32 @strlen(i8* %17) ; [#uses=1]
+ store i32 %18, i32* %l, align 4
+ %19 = load i32* %l, align 4 ; [#uses=1]
+ %20 = icmp eq i32 %19, 0 ; [#uses=1]
+ br i1 %20, label %29, label %21
+
+; <label>:21 ; preds = %16
+ %22 = load i32* %l, align 4 ; [#uses=1]
+ %23 = sub i32 %22, 1 ; [#uses=1]
+ %24 = load i8** %p, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds i8* %24, i32 %23 ; [#uses=1]
+ %26 = load i8* %25 ; [#uses=1]
+ %27 = sext i8 %26 to i32 ; [#uses=1]
+ %28 = icmp ne i32 %27, 10 ; [#uses=1]
+ br i1 %28, label %29, label %34
+
+; <label>:29 ; preds = %21, %16
+ %30 = load i32* %l, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=2]
+ %32 = load i8** %31, align 4 ; [#uses=1]
+ %33 = getelementptr inbounds i8* %32, i32 %30 ; [#uses=1]
+ store i8* %33, i8** %31, align 4
+ br label %40
+
+; <label>:34 ; preds = %21
+ %35 = load i32* %l, align 4 ; [#uses=1]
+ %36 = sub i32 %35, 1 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=2]
+ %38 = load i8** %37, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds i8* %38, i32 %36 ; [#uses=1]
+ store i8* %39, i8** %37, align 4
+ call void @_Z15luaL_pushresultP11luaL_Buffer(%struct.luaL_Buffer* %b)
+ store i32 1, i32* %1
+ br label %41
+
+; <label>:40 ; preds = %29
+ br label %5
+
+; <label>:41 ; preds = %34, %11
+ %42 = load i32* %1 ; [#uses=1]
+ ret i32 %42
+}
+
+; [#uses=1]
+define internal i32 @_Z8test_eofP9lua_StateP8_IO_FILE(%struct.lua_State* %L, %struct._IO_FILE* %f) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca %struct._IO_FILE*, align 4 ; [#uses=3]
+ %c = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct._IO_FILE* %f, %struct._IO_FILE** %2, align 4
+ %3 = load %struct._IO_FILE** %2, align 4 ; [#uses=1]
+ %4 = call i32 @_IO_getc(%struct._IO_FILE* %3) ; [#uses=1]
+ store i32 %4, i32* %c, align 4
+ %5 = load i32* %c, align 4 ; [#uses=1]
+ %6 = load %struct._IO_FILE** %2, align 4 ; [#uses=1]
+ %7 = call i32 @ungetc(i32 %5, %struct._IO_FILE* %6) ; [#uses=0]
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %8, i8* null, i32 0)
+ %9 = load i32* %c, align 4 ; [#uses=1]
+ %10 = icmp ne i32 %9, -1 ; [#uses=1]
+ %11 = zext i1 %10 to i32 ; [#uses=1]
+ ret i32 %11
+}
+
+; [#uses=2]
+define internal i32 @_Z10read_charsP9lua_StateP8_IO_FILEj(%struct.lua_State* %L, %struct._IO_FILE* %f, i32 %n) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca %struct._IO_FILE*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=7]
+ %rlen = alloca i32, align 4 ; [#uses=5]
+ %nr = alloca i32, align 4 ; [#uses=4]
+ %b = alloca %struct.luaL_Buffer, align 4 ; [#uses=4]
+ %p = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct._IO_FILE* %f, %struct._IO_FILE** %2, align 4
+ store i32 %n, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_buffinitP9lua_StateP11luaL_Buffer(%struct.lua_State* %4, %struct.luaL_Buffer* %b)
+ store i32 8192, i32* %rlen, align 4
+ br label %5
+
+; <label>:5 ; preds = %31, %0
+ %6 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %b) ; [#uses=1]
+ store i8* %6, i8** %p, align 4
+ %7 = load i32* %rlen, align 4 ; [#uses=1]
+ %8 = load i32* %3, align 4 ; [#uses=1]
+ %9 = icmp ugt i32 %7, %8 ; [#uses=1]
+ br i1 %9, label %10, label %12
+
+; <label>:10 ; preds = %5
+ %11 = load i32* %3, align 4 ; [#uses=1]
+ store i32 %11, i32* %rlen, align 4
+ br label %12
+
+; <label>:12 ; preds = %10, %5
+ %13 = load i8** %p, align 4 ; [#uses=1]
+ %14 = load i32* %rlen, align 4 ; [#uses=1]
+ %15 = load %struct._IO_FILE** %2, align 4 ; [#uses=1]
+ %16 = call i32 @fread(i8* %13, i32 1, i32 %14, %struct._IO_FILE* %15) ; [#uses=1]
+ store i32 %16, i32* %nr, align 4
+ %17 = load i32* %nr, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=2]
+ %19 = load i8** %18, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds i8* %19, i32 %17 ; [#uses=1]
+ store i8* %20, i8** %18, align 4
+ %21 = load i32* %nr, align 4 ; [#uses=1]
+ %22 = load i32* %3, align 4 ; [#uses=1]
+ %23 = sub i32 %22, %21 ; [#uses=1]
+ store i32 %23, i32* %3, align 4
+ br label %24
+
+; <label>:24 ; preds = %12
+ %25 = load i32* %3, align 4 ; [#uses=1]
+ %26 = icmp ugt i32 %25, 0 ; [#uses=1]
+ br i1 %26, label %27, label %31
+
+; <label>:27 ; preds = %24
+ %28 = load i32* %nr, align 4 ; [#uses=1]
+ %29 = load i32* %rlen, align 4 ; [#uses=1]
+ %30 = icmp eq i32 %28, %29 ; [#uses=1]
+ br label %31
+
+; <label>:31 ; preds = %27, %24
+ %32 = phi i1 [ false, %24 ], [ %30, %27 ] ; [#uses=1]
+ br i1 %32, label %5, label %33
+
+; <label>:33 ; preds = %31
+ call void @_Z15luaL_pushresultP11luaL_Buffer(%struct.luaL_Buffer* %b)
+ %34 = load i32* %3, align 4 ; [#uses=1]
+ %35 = icmp eq i32 %34, 0 ; [#uses=1]
+ br i1 %35, label %40, label %36
+
+; <label>:36 ; preds = %33
+ %37 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %38 = call i32 @_Z10lua_objlenP9lua_Statei(%struct.lua_State* %37, i32 -1) ; [#uses=1]
+ %39 = icmp ugt i32 %38, 0 ; [#uses=1]
+ br label %40
+
+; <label>:40 ; preds = %36, %33
+ %41 = phi i1 [ true, %33 ], [ %39, %36 ] ; [#uses=1]
+ %42 = zext i1 %41 to i32 ; [#uses=1]
+ ret i32 %42
+}
+
+; [#uses=1]
+define internal i32 @_Z11read_numberP9lua_StateP8_IO_FILE(%struct.lua_State* %L, %struct._IO_FILE* %f) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %3 = alloca %struct._IO_FILE*, align 4 ; [#uses=2]
+ %d = alloca double, align 8 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store %struct._IO_FILE* %f, %struct._IO_FILE** %3, align 4
+ %4 = load %struct._IO_FILE** %3, align 4 ; [#uses=1]
+ %5 = call i32 (%struct._IO_FILE*, i8*, ...)* @fscanf(%struct._IO_FILE* %4, i8* getelementptr inbounds ([4 x i8]* @.str38409, i32 0, i32 0), double* %d) ; [#uses=1]
+ %6 = icmp eq i32 %5, 1 ; [#uses=1]
+ br i1 %6, label %7, label %10
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %9 = load double* %d, align 8 ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %8, double %9)
+ store i32 1, i32* %1
+ br label %11
+
+; <label>:10 ; preds = %0
+ store i32 0, i32* %1
+ br label %11
+
+; <label>:11 ; preds = %10, %7
+ %12 = load i32* %1 ; [#uses=1]
+ ret i32 %12
+}
+
+; [#uses=1]
+declare i32 @fscanf(%struct._IO_FILE*, i8*, ...)
+
+; [#uses=2]
+define internal void @_Z9aux_linesP9lua_Stateii(%struct.lua_State* %L, i32 %idx, i32 %toclose) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %idx, i32* %2, align 4
+ store i32 %toclose, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %4, i32 %5)
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z15lua_pushbooleanP9lua_Statei(%struct.lua_State* %6, i32 %7)
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z16lua_pushcclosureP9lua_StatePFiS0_Ei(%struct.lua_State* %8, i32 (%struct.lua_State*)* @_Z11io_readlineP9lua_State, i32 2)
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z11io_readlineP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %f = alloca %struct._IO_FILE*, align 4 ; [#uses=4]
+ %sucess = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i8* @_Z14lua_touserdataP9lua_Statei(%struct.lua_State* %3, i32 -10003) ; [#uses=1]
+ %5 = bitcast i8* %4 to %struct._IO_FILE** ; [#uses=1]
+ %6 = load %struct._IO_FILE** %5 ; [#uses=1]
+ store %struct._IO_FILE* %6, %struct._IO_FILE** %f, align 4
+ %7 = load %struct._IO_FILE** %f, align 4 ; [#uses=1]
+ %8 = icmp eq %struct._IO_FILE* %7, null ; [#uses=1]
+ br i1 %8, label %9, label %12
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %11 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %10, i8* getelementptr inbounds ([23 x i8]* @.str39410, i32 0, i32 0)) ; [#uses=0]
+ br label %12
+
+; <label>:12 ; preds = %9, %0
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = load %struct._IO_FILE** %f, align 4 ; [#uses=1]
+ %15 = call i32 @_Z9read_lineP9lua_StateP8_IO_FILE(%struct.lua_State* %13, %struct._IO_FILE* %14) ; [#uses=1]
+ store i32 %15, i32* %sucess, align 4
+ %16 = load %struct._IO_FILE** %f, align 4 ; [#uses=1]
+ %17 = call i32 @ferror(%struct._IO_FILE* %16) nounwind ; [#uses=1]
+ %18 = icmp ne i32 %17, 0 ; [#uses=1]
+ br i1 %18, label %19, label %25
+
+; <label>:19 ; preds = %12
+ %20 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %21 = call i32* @__errno_location() nounwind readnone ; [#uses=1]
+ %22 = load i32* %21 ; [#uses=1]
+ %23 = call i8* @strerror(i32 %22) ; [#uses=1]
+ %24 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %20, i8* getelementptr inbounds ([3 x i8]* @.str21392, i32 0, i32 0), i8* %23) ; [#uses=1]
+ store i32 %24, i32* %1
+ br label %39
+
+; <label>:25 ; preds = %12
+ %26 = load i32* %sucess, align 4 ; [#uses=1]
+ %27 = icmp ne i32 %26, 0 ; [#uses=1]
+ br i1 %27, label %28, label %29
+
+; <label>:28 ; preds = %25
+ store i32 1, i32* %1
+ br label %39
+
+; <label>:29 ; preds = %25
+ %30 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %31 = call i32 @_Z13lua_tobooleanP9lua_Statei(%struct.lua_State* %30, i32 -10004) ; [#uses=1]
+ %32 = icmp ne i32 %31, 0 ; [#uses=1]
+ br i1 %32, label %33, label %38
+
+; <label>:33 ; preds = %29
+ %34 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %34, i32 0)
+ %35 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %35, i32 -10003)
+ %36 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %37 = call i32 @_Z9aux_closeP9lua_State(%struct.lua_State* %36) ; [#uses=0]
+ br label %38
+
+; <label>:38 ; preds = %33, %29
+ store i32 0, i32* %1
+ br label %39
+
+; <label>:39 ; preds = %38, %28, %19
+ %40 = load i32* %1 ; [#uses=1]
+ ret i32 %40
+}
+
+; [#uses=3]
+define internal %struct._IO_FILE* @_Z9getiofileP9lua_Statei(%struct.lua_State* %L, i32 %findex) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %f = alloca %struct._IO_FILE*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %findex, i32* %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %3, i32 -10001, i32 %4)
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = call i8* @_Z14lua_touserdataP9lua_Statei(%struct.lua_State* %5, i32 -1) ; [#uses=1]
+ %7 = bitcast i8* %6 to %struct._IO_FILE** ; [#uses=1]
+ %8 = load %struct._IO_FILE** %7 ; [#uses=1]
+ store %struct._IO_FILE* %8, %struct._IO_FILE** %f, align 4
+ %9 = load %struct._IO_FILE** %f, align 4 ; [#uses=1]
+ %10 = icmp eq %struct._IO_FILE* %9, null ; [#uses=1]
+ br i1 %10, label %11, label %18
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = load i32* %2, align 4 ; [#uses=1]
+ %14 = sub nsw i32 %13, 1 ; [#uses=1]
+ %15 = getelementptr inbounds [2 x i8*]* @_ZL6fnames, i32 0, i32 %14 ; [#uses=1]
+ %16 = load i8** %15 ; [#uses=1]
+ %17 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %12, i8* getelementptr inbounds ([27 x i8]* @.str40411, i32 0, i32 0), i8* %16) ; [#uses=0]
+ br label %18
+
+; <label>:18 ; preds = %11, %0
+ %19 = load %struct._IO_FILE** %f, align 4 ; [#uses=1]
+ ret %struct._IO_FILE* %19
+}
+
+; [#uses=1]
+declare %struct._IO_FILE* @tmpfile()
+
+; [#uses=2]
+define internal i32 @_Z8g_iofileP9lua_StateiPKc(%struct.lua_State* %L, i32 %f, i8* %mode) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %2 = alloca i32, align 4 ; [#uses=3]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ %filename = alloca i8*, align 4 ; [#uses=4]
+ %pf = alloca %struct._IO_FILE**, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %f, i32* %2, align 4
+ store i8* %mode, i8** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %4, i32 1) ; [#uses=1]
+ %6 = icmp sle i32 %5, 0 ; [#uses=1]
+ br i1 %6, label %33, label %7
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %8, i32 1, i32* null) ; [#uses=1]
+ store i8* %9, i8** %filename, align 4
+ %10 = load i8** %filename, align 4 ; [#uses=1]
+ %11 = icmp ne i8* %10, null ; [#uses=1]
+ br i1 %11, label %12, label %26
+
+; <label>:12 ; preds = %7
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = call %struct._IO_FILE** @_Z7newfileP9lua_State(%struct.lua_State* %13) ; [#uses=1]
+ store %struct._IO_FILE** %14, %struct._IO_FILE*** %pf, align 4
+ %15 = load i8** %filename, align 4 ; [#uses=1]
+ %16 = load i8** %3, align 4 ; [#uses=1]
+ %17 = call %struct._IO_FILE* @fopen(i8* %15, i8* %16) ; [#uses=1]
+ %18 = load %struct._IO_FILE*** %pf, align 4 ; [#uses=1]
+ store %struct._IO_FILE* %17, %struct._IO_FILE** %18
+ %19 = load %struct._IO_FILE*** %pf, align 4 ; [#uses=1]
+ %20 = load %struct._IO_FILE** %19 ; [#uses=1]
+ %21 = icmp eq %struct._IO_FILE* %20, null ; [#uses=1]
+ br i1 %21, label %22, label %25
+
+; <label>:22 ; preds = %12
+ %23 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %24 = load i8** %filename, align 4 ; [#uses=1]
+ call void @_Z9fileerrorP9lua_StateiPKc(%struct.lua_State* %23, i32 1, i8* %24)
+ br label %25
+
+; <label>:25 ; preds = %22, %12
+ br label %30
+
+; <label>:26 ; preds = %7
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %28 = call %struct._IO_FILE* @_Z6tofileP9lua_State(%struct.lua_State* %27) ; [#uses=0]
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %29, i32 1)
+ br label %30
+
+; <label>:30 ; preds = %26, %25
+ %31 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %32 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z11lua_rawsetiP9lua_Stateii(%struct.lua_State* %31, i32 -10001, i32 %32)
+ br label %33
+
+; <label>:33 ; preds = %30, %0
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %35 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %34, i32 -10001, i32 %35)
+ ret i32 1
+}
+
+; [#uses=2]
+define internal void @_Z9fileerrorP9lua_StateiPKc(%struct.lua_State* %L, i32 %arg, i8* %filename) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %arg, i32* %2, align 4
+ store i8* %filename, i8** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i8** %3, align 4 ; [#uses=1]
+ %6 = call i32* @__errno_location() nounwind readnone ; [#uses=1]
+ %7 = load i32* %6 ; [#uses=1]
+ %8 = call i8* @strerror(i32 %7) ; [#uses=1]
+ %9 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %4, i8* getelementptr inbounds ([7 x i8]* @.str20391, i32 0, i32 0), i8* %5, i8* %8) ; [#uses=0]
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = load i32* %2, align 4 ; [#uses=1]
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %12, i32 -1, i32* null) ; [#uses=1]
+ %14 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %10, i32 %11, i8* %13) ; [#uses=0]
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z8math_absP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call double @fabs(double %4) nounwind readnone ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z9math_acosP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call double @acos(double %4) nounwind ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z9math_asinP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call double @asin(double %4) nounwind ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z10math_atan2P9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %5, i32 2) ; [#uses=1]
+ %7 = call double @atan2(double %4, double %6) nounwind ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %7)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z9math_atanP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call double @atan(double %4) nounwind ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z9math_ceilP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call double @ceil(double %4) nounwind readnone ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z9math_coshP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call double @cosh(double %4) nounwind ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z8math_cosP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call double @cos(double %4) ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z8math_degP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = fdiv double %4, 0x3F91DF46A2529D39 ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z8math_expP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call double @exp(double %4) nounwind ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z10math_floorP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call double @floor(double %4) nounwind readnone ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z9math_fmodP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %5, i32 2) ; [#uses=1]
+ %7 = call double @fmod(double %4, double %6) nounwind ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %7)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z10math_frexpP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %e = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call double @frexp(double %4, i32* %e) nounwind ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load i32* %e, align 4 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %6, i32 %7)
+ ret i32 2
+}
+
+; [#uses=1]
+define internal i32 @_Z10math_ldexpP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %5, i32 2) ; [#uses=1]
+ %7 = call double @ldexp(double %4, i32 %6) nounwind ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %7)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z10math_log10P9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call double @log10(double %4) nounwind ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z8math_logP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call double @log(double %4) nounwind ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z8math_maxP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %n = alloca i32, align 4 ; [#uses=2]
+ %dmax = alloca double, align 8 ; [#uses=4]
+ %i = alloca i32, align 4 ; [#uses=5]
+ %d = alloca double, align 8 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %2) ; [#uses=1]
+ store i32 %3, i32* %n, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %4, i32 1) ; [#uses=1]
+ store double %5, double* %dmax, align 8
+ store i32 2, i32* %i, align 4
+ br label %6
+
+; <label>:6 ; preds = %20, %0
+ %7 = load i32* %i, align 4 ; [#uses=1]
+ %8 = load i32* %n, align 4 ; [#uses=1]
+ %9 = icmp sle i32 %7, %8 ; [#uses=1]
+ br i1 %9, label %10, label %23
+
+; <label>:10 ; preds = %6
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = load i32* %i, align 4 ; [#uses=1]
+ %13 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %11, i32 %12) ; [#uses=1]
+ store double %13, double* %d, align 8
+ %14 = load double* %d, align 8 ; [#uses=1]
+ %15 = load double* %dmax, align 8 ; [#uses=1]
+ %16 = fcmp ogt double %14, %15 ; [#uses=1]
+ br i1 %16, label %17, label %19
+
+; <label>:17 ; preds = %10
+ %18 = load double* %d, align 8 ; [#uses=1]
+ store double %18, double* %dmax, align 8
+ br label %19
+
+; <label>:19 ; preds = %17, %10
+ br label %20
+
+; <label>:20 ; preds = %19
+ %21 = load i32* %i, align 4 ; [#uses=1]
+ %22 = add nsw i32 %21, 1 ; [#uses=1]
+ store i32 %22, i32* %i, align 4
+ br label %6
+
+; <label>:23 ; preds = %6
+ %24 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %25 = load double* %dmax, align 8 ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %24, double %25)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z8math_minP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %n = alloca i32, align 4 ; [#uses=2]
+ %dmin = alloca double, align 8 ; [#uses=4]
+ %i = alloca i32, align 4 ; [#uses=5]
+ %d = alloca double, align 8 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %2) ; [#uses=1]
+ store i32 %3, i32* %n, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %4, i32 1) ; [#uses=1]
+ store double %5, double* %dmin, align 8
+ store i32 2, i32* %i, align 4
+ br label %6
+
+; <label>:6 ; preds = %20, %0
+ %7 = load i32* %i, align 4 ; [#uses=1]
+ %8 = load i32* %n, align 4 ; [#uses=1]
+ %9 = icmp sle i32 %7, %8 ; [#uses=1]
+ br i1 %9, label %10, label %23
+
+; <label>:10 ; preds = %6
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = load i32* %i, align 4 ; [#uses=1]
+ %13 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %11, i32 %12) ; [#uses=1]
+ store double %13, double* %d, align 8
+ %14 = load double* %d, align 8 ; [#uses=1]
+ %15 = load double* %dmin, align 8 ; [#uses=1]
+ %16 = fcmp olt double %14, %15 ; [#uses=1]
+ br i1 %16, label %17, label %19
+
+; <label>:17 ; preds = %10
+ %18 = load double* %d, align 8 ; [#uses=1]
+ store double %18, double* %dmin, align 8
+ br label %19
+
+; <label>:19 ; preds = %17, %10
+ br label %20
+
+; <label>:20 ; preds = %19
+ %21 = load i32* %i, align 4 ; [#uses=1]
+ %22 = add nsw i32 %21, 1 ; [#uses=1]
+ store i32 %22, i32* %i, align 4
+ br label %6
+
+; <label>:23 ; preds = %6
+ %24 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %25 = load double* %dmin, align 8 ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %24, double %25)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z9math_modfP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %ip = alloca double, align 8 ; [#uses=2]
+ %fp = alloca double, align 8 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %2, i32 1) ; [#uses=1]
+ %4 = call double @modf(double %3, double* %ip) nounwind ; [#uses=1]
+ store double %4, double* %fp, align 8
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = load double* %ip, align 8 ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %5, double %6)
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = load double* %fp, align 8 ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %7, double %8)
+ ret i32 2
+}
+
+; [#uses=1]
+define internal i32 @_Z8math_powP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %5, i32 2) ; [#uses=1]
+ %7 = call double @llvm.pow.f64(double %4, double %6) ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %7)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z8math_radP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = fmul double %4, 0x3F91DF46A2529D39 ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z11math_randomP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=11]
+ %r = alloca double, align 8 ; [#uses=4]
+ %u = alloca i32, align 4 ; [#uses=3]
+ %l = alloca i32, align 4 ; [#uses=4]
+ %u1 = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = call i32 @rand() nounwind ; [#uses=1]
+ %4 = srem i32 %3, 2147483647 ; [#uses=1]
+ %5 = sitofp i32 %4 to double ; [#uses=1]
+ %6 = fdiv double %5, 0x41DFFFFFFFC00000 ; [#uses=1]
+ store double %6, double* %r, align 8
+ %7 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %8 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %7) ; [#uses=1]
+ switch i32 %8, label %56 [
+ i32 0, label %9
+ i32 1, label %12
+ i32 2, label %30
+ ]
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %11 = load double* %r, align 8 ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %10, double %11)
+ br label %59
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %13, i32 1) ; [#uses=1]
+ store i32 %14, i32* %u, align 4
+ %15 = load i32* %u, align 4 ; [#uses=1]
+ %16 = icmp sle i32 1, %15 ; [#uses=1]
+ br i1 %16, label %21, label %17
+
+; <label>:17 ; preds = %12
+ %18 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %19 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %18, i32 1, i8* getelementptr inbounds ([18 x i8]* @.str32449, i32 0, i32 0)) ; [#uses=1]
+ %20 = icmp ne i32 %19, 0 ; [#uses=1]
+ br label %21
+
+; <label>:21 ; preds = %17, %12
+ %22 = phi i1 [ true, %12 ], [ %20, %17 ] ; [#uses=0]
+ %23 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %24 = load double* %r, align 8 ; [#uses=1]
+ %25 = load i32* %u, align 4 ; [#uses=1]
+ %26 = sitofp i32 %25 to double ; [#uses=1]
+ %27 = fmul double %24, %26 ; [#uses=1]
+ %28 = call double @floor(double %27) nounwind readnone ; [#uses=1]
+ %29 = fadd double %28, 1.000000e+00 ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %23, double %29)
+ br label %59
+
+; <label>:30 ; preds = %0
+ %31 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %32 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %31, i32 1) ; [#uses=1]
+ store i32 %32, i32* %l, align 4
+ %33 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %34 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %33, i32 2) ; [#uses=1]
+ store i32 %34, i32* %u1, align 4
+ %35 = load i32* %l, align 4 ; [#uses=1]
+ %36 = load i32* %u1, align 4 ; [#uses=1]
+ %37 = icmp sle i32 %35, %36 ; [#uses=1]
+ br i1 %37, label %42, label %38
+
+; <label>:38 ; preds = %30
+ %39 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %40 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %39, i32 2, i8* getelementptr inbounds ([18 x i8]* @.str32449, i32 0, i32 0)) ; [#uses=1]
+ %41 = icmp ne i32 %40, 0 ; [#uses=1]
+ br label %42
+
+; <label>:42 ; preds = %38, %30
+ %43 = phi i1 [ true, %30 ], [ %41, %38 ] ; [#uses=0]
+ %44 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %45 = load double* %r, align 8 ; [#uses=1]
+ %46 = load i32* %u1, align 4 ; [#uses=1]
+ %47 = load i32* %l, align 4 ; [#uses=1]
+ %48 = sub nsw i32 %46, %47 ; [#uses=1]
+ %49 = add nsw i32 %48, 1 ; [#uses=1]
+ %50 = sitofp i32 %49 to double ; [#uses=1]
+ %51 = fmul double %45, %50 ; [#uses=1]
+ %52 = call double @floor(double %51) nounwind readnone ; [#uses=1]
+ %53 = load i32* %l, align 4 ; [#uses=1]
+ %54 = sitofp i32 %53 to double ; [#uses=1]
+ %55 = fadd double %52, %54 ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %44, double %55)
+ br label %59
+
+; <label>:56 ; preds = %0
+ %57 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %58 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %57, i8* getelementptr inbounds ([26 x i8]* @.str33450, i32 0, i32 0)) ; [#uses=1]
+ store i32 %58, i32* %1
+ br label %60
+
+; <label>:59 ; preds = %42, %21, %9
+ store i32 1, i32* %1
+ br label %60
+
+; <label>:60 ; preds = %59, %56
+ %61 = load i32* %1 ; [#uses=1]
+ ret i32 %61
+}
+
+; [#uses=1]
+define internal i32 @_Z15math_randomseedP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %2, i32 1) ; [#uses=1]
+ call void @srand(i32 %3) nounwind
+ ret i32 0
+}
+
+; [#uses=1]
+define internal i32 @_Z9math_sinhP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call double @sinh(double %4) nounwind ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z8math_sinP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call double @sin(double %4) ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z9math_sqrtP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call double @sqrt(double %4) ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z9math_tanhP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call double @tanh(double %4) nounwind ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z8math_tanP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = call double @tan(double %4) nounwind ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define i32 @_Z12luaopen_mathP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_registerP9lua_StatePKcPK8luaL_Reg(%struct.lua_State* %2, i8* getelementptr inbounds ([5 x i8]* @.str28445, i32 0, i32 0), %struct.luaL_Reg* getelementptr inbounds ([29 x %struct.luaL_Reg]* @_ZL7mathlib, i32 0, i32 0))
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %3, double 0x400921FB54442D18)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %4, i32 -2, i8* getelementptr inbounds ([3 x i8]* @.str29446, i32 0, i32 0))
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %5, double 0x7FF0000000000000)
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %6, i32 -2, i8* getelementptr inbounds ([5 x i8]* @.str30447, i32 0, i32 0))
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %7, i32 -1, i8* getelementptr inbounds ([5 x i8]* @.str11428, i32 0, i32 0))
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %8, i32 -2, i8* getelementptr inbounds ([4 x i8]* @.str31448, i32 0, i32 0))
+ ret i32 1
+}
+
+; [#uses=1]
+declare double @tan(double) nounwind
+
+; [#uses=1]
+declare double @tanh(double) nounwind
+
+; [#uses=1]
+declare double @sqrt(double) nounwind readnone
+
+; [#uses=1]
+declare double @sin(double) nounwind readnone
+
+; [#uses=1]
+declare double @sinh(double) nounwind
+
+; [#uses=1]
+declare void @srand(i32) nounwind
+
+; [#uses=1]
+declare i32 @rand() nounwind
+
+; [#uses=1]
+declare double @modf(double, double*) nounwind
+
+; [#uses=1]
+declare double @log(double) nounwind
+
+; [#uses=1]
+declare double @log10(double) nounwind
+
+; [#uses=1]
+declare double @ldexp(double, i32) nounwind
+
+; [#uses=1]
+declare double @frexp(double, i32*) nounwind
+
+; [#uses=1]
+declare double @fmod(double, double) nounwind
+
+; [#uses=1]
+declare double @exp(double) nounwind
+
+; [#uses=1]
+declare double @cos(double) nounwind readnone
+
+; [#uses=1]
+declare double @cosh(double) nounwind
+
+; [#uses=1]
+declare double @ceil(double) nounwind readnone
+
+; [#uses=1]
+declare double @atan(double) nounwind
+
+; [#uses=1]
+declare double @atan2(double, double) nounwind
+
+; [#uses=1]
+declare double @asin(double) nounwind
+
+; [#uses=1]
+declare double @acos(double) nounwind
+
+; [#uses=1]
+declare double @fabs(double) nounwind readnone
+
+; [#uses=1]
+define internal i32 @_Z8os_clockP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @clock() nounwind ; [#uses=1]
+ %4 = sitofp i32 %3 to double ; [#uses=1]
+ %5 = fdiv double %4, 1.000000e+06 ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z7os_dateP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=16]
+ %s = alloca i8*, align 4 ; [#uses=13]
+ %t = alloca i32, align 4 ; [#uses=3]
+ %stm = alloca %struct.tm*, align 4 ; [#uses=13]
+ %cc = alloca [3 x i8], align 1 ; [#uses=4]
+ %b = alloca %struct.luaL_Buffer, align 4 ; [#uses=7]
+ %reslen = alloca i32, align 4 ; [#uses=2]
+ %buff = alloca [200 x i8], align 1 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z15luaL_optlstringP9lua_StateiPKcPj(%struct.lua_State* %2, i32 1, i8* getelementptr inbounds ([3 x i8]* @.str27479, i32 0, i32 0), i32* null) ; [#uses=1]
+ store i8* %3, i8** %s, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %4, i32 2) ; [#uses=1]
+ %6 = icmp sle i32 %5, 0 ; [#uses=1]
+ br i1 %6, label %7, label %9
+
+; <label>:7 ; preds = %0
+ %8 = call i32 @time(i32* null) nounwind ; [#uses=1]
+ br label %13
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %10, i32 2) ; [#uses=1]
+ %12 = fptosi double %11 to i32 ; [#uses=1]
+ br label %13
+
+; <label>:13 ; preds = %9, %7
+ %14 = phi i32 [ %8, %7 ], [ %12, %9 ] ; [#uses=1]
+ store i32 %14, i32* %t, align 4
+ %15 = load i8** %s, align 4 ; [#uses=1]
+ %16 = load i8* %15 ; [#uses=1]
+ %17 = sext i8 %16 to i32 ; [#uses=1]
+ %18 = icmp eq i32 %17, 33 ; [#uses=1]
+ br i1 %18, label %19, label %23
+
+; <label>:19 ; preds = %13
+ %20 = call %struct.tm* @gmtime(i32* %t) nounwind ; [#uses=1]
+ store %struct.tm* %20, %struct.tm** %stm, align 4
+ %21 = load i8** %s, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds i8* %21, i32 1 ; [#uses=1]
+ store i8* %22, i8** %s, align 4
+ br label %25
+
+; <label>:23 ; preds = %13
+ %24 = call %struct.tm* @localtime(i32* %t) nounwind ; [#uses=1]
+ store %struct.tm* %24, %struct.tm** %stm, align 4
+ br label %25
+
+; <label>:25 ; preds = %23, %19
+ %26 = load %struct.tm** %stm, align 4 ; [#uses=1]
+ %27 = icmp eq %struct.tm* %26, null ; [#uses=1]
+ br i1 %27, label %28, label %30
+
+; <label>:28 ; preds = %25
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %29)
+ br label %129
+
+; <label>:30 ; preds = %25
+ %31 = load i8** %s, align 4 ; [#uses=1]
+ %32 = call i32 @strcmp(i8* %31, i8* getelementptr inbounds ([3 x i8]* @.str28480, i32 0, i32 0)) nounwind readonly ; [#uses=1]
+ %33 = icmp eq i32 %32, 0 ; [#uses=1]
+ br i1 %33, label %34, label %76
+
+; <label>:34 ; preds = %30
+ %35 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_createtableP9lua_Stateii(%struct.lua_State* %35, i32 0, i32 9)
+ %36 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %37 = load %struct.tm** %stm, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.tm* %37, i32 0, i32 0 ; [#uses=1]
+ %39 = load i32* %38, align 4 ; [#uses=1]
+ call void @_Z8setfieldP9lua_StatePKci(%struct.lua_State* %36, i8* getelementptr inbounds ([4 x i8]* @.str13465, i32 0, i32 0), i32 %39)
+ %40 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %41 = load %struct.tm** %stm, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds %struct.tm* %41, i32 0, i32 1 ; [#uses=1]
+ %43 = load i32* %42, align 4 ; [#uses=1]
+ call void @_Z8setfieldP9lua_StatePKci(%struct.lua_State* %40, i8* getelementptr inbounds ([4 x i8]* @.str14466, i32 0, i32 0), i32 %43)
+ %44 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %45 = load %struct.tm** %stm, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.tm* %45, i32 0, i32 2 ; [#uses=1]
+ %47 = load i32* %46, align 4 ; [#uses=1]
+ call void @_Z8setfieldP9lua_StatePKci(%struct.lua_State* %44, i8* getelementptr inbounds ([5 x i8]* @.str15467, i32 0, i32 0), i32 %47)
+ %48 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %49 = load %struct.tm** %stm, align 4 ; [#uses=1]
+ %50 = getelementptr inbounds %struct.tm* %49, i32 0, i32 3 ; [#uses=1]
+ %51 = load i32* %50, align 4 ; [#uses=1]
+ call void @_Z8setfieldP9lua_StatePKci(%struct.lua_State* %48, i8* getelementptr inbounds ([4 x i8]* @.str16468, i32 0, i32 0), i32 %51)
+ %52 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %53 = load %struct.tm** %stm, align 4 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.tm* %53, i32 0, i32 4 ; [#uses=1]
+ %55 = load i32* %54, align 4 ; [#uses=1]
+ %56 = add nsw i32 %55, 1 ; [#uses=1]
+ call void @_Z8setfieldP9lua_StatePKci(%struct.lua_State* %52, i8* getelementptr inbounds ([6 x i8]* @.str17469, i32 0, i32 0), i32 %56)
+ %57 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %58 = load %struct.tm** %stm, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.tm* %58, i32 0, i32 5 ; [#uses=1]
+ %60 = load i32* %59, align 4 ; [#uses=1]
+ %61 = add nsw i32 %60, 1900 ; [#uses=1]
+ call void @_Z8setfieldP9lua_StatePKci(%struct.lua_State* %57, i8* getelementptr inbounds ([5 x i8]* @.str18470, i32 0, i32 0), i32 %61)
+ %62 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %63 = load %struct.tm** %stm, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds %struct.tm* %63, i32 0, i32 6 ; [#uses=1]
+ %65 = load i32* %64, align 4 ; [#uses=1]
+ %66 = add nsw i32 %65, 1 ; [#uses=1]
+ call void @_Z8setfieldP9lua_StatePKci(%struct.lua_State* %62, i8* getelementptr inbounds ([5 x i8]* @.str29481, i32 0, i32 0), i32 %66)
+ %67 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %68 = load %struct.tm** %stm, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.tm* %68, i32 0, i32 7 ; [#uses=1]
+ %70 = load i32* %69, align 4 ; [#uses=1]
+ %71 = add nsw i32 %70, 1 ; [#uses=1]
+ call void @_Z8setfieldP9lua_StatePKci(%struct.lua_State* %67, i8* getelementptr inbounds ([5 x i8]* @.str30482, i32 0, i32 0), i32 %71)
+ %72 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %73 = load %struct.tm** %stm, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds %struct.tm* %73, i32 0, i32 8 ; [#uses=1]
+ %75 = load i32* %74, align 4 ; [#uses=1]
+ call void @_Z12setboolfieldP9lua_StatePKci(%struct.lua_State* %72, i8* getelementptr inbounds ([6 x i8]* @.str19471, i32 0, i32 0), i32 %75)
+ br label %128
+
+; <label>:76 ; preds = %30
+ %77 = getelementptr inbounds [3 x i8]* %cc, i32 0, i32 0 ; [#uses=1]
+ store i8 37, i8* %77
+ %78 = getelementptr inbounds [3 x i8]* %cc, i32 0, i32 2 ; [#uses=1]
+ store i8 0, i8* %78
+ %79 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_buffinitP9lua_StateP11luaL_Buffer(%struct.lua_State* %79, %struct.luaL_Buffer* %b)
+ br label %80
+
+; <label>:80 ; preds = %124, %76
+ %81 = load i8** %s, align 4 ; [#uses=1]
+ %82 = load i8* %81 ; [#uses=1]
+ %83 = icmp ne i8 %82, 0 ; [#uses=1]
+ br i1 %83, label %84, label %127
+
+; <label>:84 ; preds = %80
+ %85 = load i8** %s, align 4 ; [#uses=1]
+ %86 = load i8* %85 ; [#uses=1]
+ %87 = sext i8 %86 to i32 ; [#uses=1]
+ %88 = icmp ne i32 %87, 37 ; [#uses=1]
+ br i1 %88, label %95, label %89
+
+; <label>:89 ; preds = %84
+ %90 = load i8** %s, align 4 ; [#uses=1]
+ %91 = getelementptr inbounds i8* %90, i32 1 ; [#uses=1]
+ %92 = load i8* %91 ; [#uses=1]
+ %93 = sext i8 %92 to i32 ; [#uses=1]
+ %94 = icmp eq i32 %93, 0 ; [#uses=1]
+ br i1 %94, label %95, label %112
+
+; <label>:95 ; preds = %89, %84
+ %96 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=1]
+ %97 = load i8** %96, align 4 ; [#uses=1]
+ %98 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 3 ; [#uses=1]
+ %99 = getelementptr inbounds [8192 x i8]* %98, i32 0, i32 0 ; [#uses=1]
+ %100 = getelementptr inbounds i8* %99, i32 8192 ; [#uses=1]
+ %101 = icmp ult i8* %97, %100 ; [#uses=1]
+ br i1 %101, label %105, label %102
+
+; <label>:102 ; preds = %95
+ %103 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %b) ; [#uses=1]
+ %104 = icmp ne i8* %103, null ; [#uses=1]
+ br label %105
+
+; <label>:105 ; preds = %102, %95
+ %106 = phi i1 [ true, %95 ], [ %104, %102 ] ; [#uses=0]
+ %107 = load i8** %s, align 4 ; [#uses=1]
+ %108 = load i8* %107 ; [#uses=1]
+ %109 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=2]
+ %110 = load i8** %109, align 4 ; [#uses=2]
+ %111 = getelementptr inbounds i8* %110, i32 1 ; [#uses=1]
+ store i8* %111, i8** %109, align 4
+ store i8 %108, i8* %110
+ br label %123
+
+; <label>:112 ; preds = %89
+ %113 = load i8** %s, align 4 ; [#uses=1]
+ %114 = getelementptr inbounds i8* %113, i32 1 ; [#uses=2]
+ store i8* %114, i8** %s, align 4
+ %115 = load i8* %114 ; [#uses=1]
+ %116 = getelementptr inbounds [3 x i8]* %cc, i32 0, i32 1 ; [#uses=1]
+ store i8 %115, i8* %116
+ %117 = getelementptr inbounds [200 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ %118 = getelementptr inbounds [3 x i8]* %cc, i32 0, i32 0 ; [#uses=1]
+ %119 = load %struct.tm** %stm, align 4 ; [#uses=1]
+ %120 = call i32 @strftime(i8* %117, i32 200, i8* %118, %struct.tm* %119) nounwind ; [#uses=1]
+ store i32 %120, i32* %reslen, align 4
+ %121 = getelementptr inbounds [200 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ %122 = load i32* %reslen, align 4 ; [#uses=1]
+ call void @_Z15luaL_addlstringP11luaL_BufferPKcj(%struct.luaL_Buffer* %b, i8* %121, i32 %122)
+ br label %123
+
+; <label>:123 ; preds = %112, %105
+ br label %124
+
+; <label>:124 ; preds = %123
+ %125 = load i8** %s, align 4 ; [#uses=1]
+ %126 = getelementptr inbounds i8* %125, i32 1 ; [#uses=1]
+ store i8* %126, i8** %s, align 4
+ br label %80
+
+; <label>:127 ; preds = %80
+ call void @_Z15luaL_pushresultP11luaL_Buffer(%struct.luaL_Buffer* %b)
+ br label %128
+
+; <label>:128 ; preds = %127, %34
+ br label %129
+
+; <label>:129 ; preds = %128, %28
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z11os_difftimeP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = fptosi double %4 to i32 ; [#uses=1]
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = call double @_Z14luaL_optnumberP9lua_Stateid(%struct.lua_State* %6, i32 2, double 0.000000e+00) ; [#uses=1]
+ %8 = fptosi double %7 to i32 ; [#uses=1]
+ %9 = call double @difftime(i32 %5, i32 %8) nounwind readnone ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %2, double %9)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z10os_executeP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call i8* @_Z15luaL_optlstringP9lua_StateiPKcPj(%struct.lua_State* %3, i32 1, i8* null, i32* null) ; [#uses=1]
+ %5 = call i32 @system(i8* %4) ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %2, i32 %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z7os_exitP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=1]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i32 @_Z15luaL_optintegerP9lua_Stateii(%struct.lua_State* %3, i32 1, i32 0) ; [#uses=1]
+ call void @exit(i32 %4) noreturn
+ unreachable
+ ; No predecessors!
+ %6 = load i32* %1 ; [#uses=1]
+ ret i32 %6
+}
+
+; [#uses=1]
+define internal i32 @_Z9os_getenvP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %3, i32 1, i32* null) ; [#uses=1]
+ %5 = call i8* @getenv(i8* %4) nounwind ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %2, i8* %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z9os_removeP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %filename = alloca i8*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %2, i32 1, i32* null) ; [#uses=1]
+ store i8* %3, i8** %filename, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i8** %filename, align 4 ; [#uses=1]
+ %6 = call i32 @remove(i8* %5) nounwind ; [#uses=1]
+ %7 = icmp eq i32 %6, 0 ; [#uses=1]
+ %8 = zext i1 %7 to i32 ; [#uses=1]
+ %9 = load i8** %filename, align 4 ; [#uses=1]
+ %10 = call i32 @_Z13os_pushresultP9lua_StateiPKc(%struct.lua_State* %4, i32 %8, i8* %9) ; [#uses=1]
+ ret i32 %10
+}
+
+; [#uses=1]
+define internal i32 @_Z9os_renameP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %fromname = alloca i8*, align 4 ; [#uses=3]
+ %toname = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %2, i32 1, i32* null) ; [#uses=1]
+ store i8* %3, i8** %fromname, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %4, i32 2, i32* null) ; [#uses=1]
+ store i8* %5, i8** %toname, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load i8** %fromname, align 4 ; [#uses=1]
+ %8 = load i8** %toname, align 4 ; [#uses=1]
+ %9 = call i32 @rename(i8* %7, i8* %8) nounwind ; [#uses=1]
+ %10 = icmp eq i32 %9, 0 ; [#uses=1]
+ %11 = zext i1 %10 to i32 ; [#uses=1]
+ %12 = load i8** %fromname, align 4 ; [#uses=1]
+ %13 = call i32 @_Z13os_pushresultP9lua_StateiPKc(%struct.lua_State* %6, i32 %11, i8* %12) ; [#uses=1]
+ ret i32 %13
+}
+
+; [#uses=1]
+define internal i32 @_Z12os_setlocaleP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %l = alloca i8*, align 4 ; [#uses=2]
+ %op = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z15luaL_optlstringP9lua_StateiPKcPj(%struct.lua_State* %2, i32 1, i8* null, i32* null) ; [#uses=1]
+ store i8* %3, i8** %l, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z16luaL_checkoptionP9lua_StateiPKcPKS2_(%struct.lua_State* %4, i32 2, i8* getelementptr inbounds ([4 x i8]* @.str21473, i32 0, i32 0), i8** getelementptr inbounds ([7 x i8*]* @_ZZ12os_setlocaleP9lua_StateE8catnames, i32 0, i32 0)) ; [#uses=1]
+ store i32 %5, i32* %op, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load i32* %op, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds [6 x i32]* @_ZZ12os_setlocaleP9lua_StateE3cat, i32 0, i32 %7 ; [#uses=1]
+ %9 = load i32* %8 ; [#uses=1]
+ %10 = load i8** %l, align 4 ; [#uses=1]
+ %11 = call i8* @setlocale(i32 %9, i8* %10) nounwind ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %6, i8* %11)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z7os_timeP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=13]
+ %t = alloca i32, align 4 ; [#uses=4]
+ %ts = alloca %struct.tm, align 4 ; [#uses=8]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %2, i32 1) ; [#uses=1]
+ %4 = icmp sle i32 %3, 0 ; [#uses=1]
+ br i1 %4, label %5, label %7
+
+; <label>:5 ; preds = %0
+ %6 = call i32 @time(i32* null) nounwind ; [#uses=1]
+ store i32 %6, i32* %t, align 4
+ br label %34
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %8, i32 1, i32 5)
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %9, i32 1)
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = call i32 @_Z8getfieldP9lua_StatePKci(%struct.lua_State* %10, i8* getelementptr inbounds ([4 x i8]* @.str13465, i32 0, i32 0), i32 0) ; [#uses=1]
+ %12 = getelementptr inbounds %struct.tm* %ts, i32 0, i32 0 ; [#uses=1]
+ store i32 %11, i32* %12, align 4
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = call i32 @_Z8getfieldP9lua_StatePKci(%struct.lua_State* %13, i8* getelementptr inbounds ([4 x i8]* @.str14466, i32 0, i32 0), i32 0) ; [#uses=1]
+ %15 = getelementptr inbounds %struct.tm* %ts, i32 0, i32 1 ; [#uses=1]
+ store i32 %14, i32* %15, align 4
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = call i32 @_Z8getfieldP9lua_StatePKci(%struct.lua_State* %16, i8* getelementptr inbounds ([5 x i8]* @.str15467, i32 0, i32 0), i32 12) ; [#uses=1]
+ %18 = getelementptr inbounds %struct.tm* %ts, i32 0, i32 2 ; [#uses=1]
+ store i32 %17, i32* %18, align 4
+ %19 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %20 = call i32 @_Z8getfieldP9lua_StatePKci(%struct.lua_State* %19, i8* getelementptr inbounds ([4 x i8]* @.str16468, i32 0, i32 0), i32 -1) ; [#uses=1]
+ %21 = getelementptr inbounds %struct.tm* %ts, i32 0, i32 3 ; [#uses=1]
+ store i32 %20, i32* %21, align 4
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = call i32 @_Z8getfieldP9lua_StatePKci(%struct.lua_State* %22, i8* getelementptr inbounds ([6 x i8]* @.str17469, i32 0, i32 0), i32 -1) ; [#uses=1]
+ %24 = sub nsw i32 %23, 1 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.tm* %ts, i32 0, i32 4 ; [#uses=1]
+ store i32 %24, i32* %25, align 4
+ %26 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %27 = call i32 @_Z8getfieldP9lua_StatePKci(%struct.lua_State* %26, i8* getelementptr inbounds ([5 x i8]* @.str18470, i32 0, i32 0), i32 -1) ; [#uses=1]
+ %28 = sub nsw i32 %27, 1900 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.tm* %ts, i32 0, i32 5 ; [#uses=1]
+ store i32 %28, i32* %29, align 4
+ %30 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %31 = call i32 @_Z12getboolfieldP9lua_StatePKc(%struct.lua_State* %30, i8* getelementptr inbounds ([6 x i8]* @.str19471, i32 0, i32 0)) ; [#uses=1]
+ %32 = getelementptr inbounds %struct.tm* %ts, i32 0, i32 8 ; [#uses=1]
+ store i32 %31, i32* %32, align 4
+ %33 = call i32 @mktime(%struct.tm* %ts) nounwind ; [#uses=1]
+ store i32 %33, i32* %t, align 4
+ br label %34
+
+; <label>:34 ; preds = %7, %5
+ %35 = load i32* %t, align 4 ; [#uses=1]
+ %36 = icmp eq i32 %35, -1 ; [#uses=1]
+ br i1 %36, label %37, label %39
+
+; <label>:37 ; preds = %34
+ %38 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %38)
+ br label %43
+
+; <label>:39 ; preds = %34
+ %40 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %41 = load i32* %t, align 4 ; [#uses=1]
+ %42 = sitofp i32 %41 to double ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %40, double %42)
+ br label %43
+
+; <label>:43 ; preds = %39, %37
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z10os_tmpnameP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %buff = alloca [20 x i8], align 1 ; [#uses=2]
+ %err = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = getelementptr inbounds [20 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ %4 = call i8* @tmpnam(i8* %3) nounwind ; [#uses=1]
+ %5 = icmp eq i8* %4, null ; [#uses=1]
+ %6 = zext i1 %5 to i32 ; [#uses=1]
+ store i32 %6, i32* %err, align 4
+ %7 = load i32* %err, align 4 ; [#uses=1]
+ %8 = icmp ne i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %9, label %12
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %11 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %10, i8* getelementptr inbounds ([37 x i8]* @.str12464, i32 0, i32 0)) ; [#uses=1]
+ store i32 %11, i32* %1
+ br label %15
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds [20 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %13, i8* %14)
+ store i32 1, i32* %1
+ br label %15
+
+; <label>:15 ; preds = %12, %9
+ %16 = load i32* %1 ; [#uses=1]
+ ret i32 %16
+}
+
+; [#uses=1]
+define i32 @_Z10luaopen_osP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_registerP9lua_StatePKcPK8luaL_Reg(%struct.lua_State* %2, i8* getelementptr inbounds ([3 x i8]* @.str11463, i32 0, i32 0), %struct.luaL_Reg* getelementptr inbounds ([12 x %struct.luaL_Reg]* @_ZL6syslib, i32 0, i32 0))
+ ret i32 1
+}
+
+; [#uses=1]
+declare i8* @tmpnam(i8*) nounwind
+
+; [#uses=2]
+declare i32 @time(i32*) nounwind
+
+; [#uses=6]
+define internal i32 @_Z8getfieldP9lua_StatePKci(%struct.lua_State* %L, i8* %key, i32 %d) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %3 = alloca i8*, align 4 ; [#uses=3]
+ %4 = alloca i32, align 4 ; [#uses=3]
+ %res = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i8* %key, i8** %3, align 4
+ store i32 %d, i32* %4, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = load i8** %3, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %5, i32 -1, i8* %6)
+ %7 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %8 = call i32 @_Z12lua_isnumberP9lua_Statei(%struct.lua_State* %7, i32 -1) ; [#uses=1]
+ %9 = icmp ne i32 %8, 0 ; [#uses=1]
+ br i1 %9, label %10, label %13
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %12 = call i32 @_Z13lua_tointegerP9lua_Statei(%struct.lua_State* %11, i32 -1) ; [#uses=1]
+ store i32 %12, i32* %res, align 4
+ br label %22
+
+; <label>:13 ; preds = %0
+ %14 = load i32* %4, align 4 ; [#uses=1]
+ %15 = icmp slt i32 %14, 0 ; [#uses=1]
+ br i1 %15, label %16, label %20
+
+; <label>:16 ; preds = %13
+ %17 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %18 = load i8** %3, align 4 ; [#uses=1]
+ %19 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %17, i8* getelementptr inbounds ([33 x i8]* @.str20472, i32 0, i32 0), i8* %18) ; [#uses=1]
+ store i32 %19, i32* %1
+ br label %25
+
+; <label>:20 ; preds = %13
+ %21 = load i32* %4, align 4 ; [#uses=1]
+ store i32 %21, i32* %res, align 4
+ br label %22
+
+; <label>:22 ; preds = %20, %10
+ %23 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %23, i32 -2)
+ %24 = load i32* %res, align 4 ; [#uses=1]
+ store i32 %24, i32* %1
+ br label %25
+
+; <label>:25 ; preds = %22, %16
+ %26 = load i32* %1 ; [#uses=1]
+ ret i32 %26
+}
+
+; [#uses=1]
+define internal i32 @_Z12getboolfieldP9lua_StatePKc(%struct.lua_State* %L, i8* %key) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %res = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %key, i8** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i8** %2, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %3, i32 -1, i8* %4)
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %5, i32 -1) ; [#uses=1]
+ %7 = icmp eq i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %9
+
+; <label>:8 ; preds = %0
+ br label %12
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = call i32 @_Z13lua_tobooleanP9lua_Statei(%struct.lua_State* %10, i32 -1) ; [#uses=1]
+ br label %12
+
+; <label>:12 ; preds = %9, %8
+ %13 = phi i32 [ -1, %8 ], [ %11, %9 ] ; [#uses=1]
+ store i32 %13, i32* %res, align 4
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %14, i32 -2)
+ %15 = load i32* %res, align 4 ; [#uses=1]
+ ret i32 %15
+}
+
+; [#uses=1]
+declare i32 @mktime(%struct.tm*) nounwind
+
+; [#uses=1]
+declare i8* @setlocale(i32, i8*) nounwind
+
+; [#uses=2]
+define internal i32 @_Z13os_pushresultP9lua_StateiPKc(%struct.lua_State* %L, i32 %i, i8* %filename) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca i8*, align 4 ; [#uses=2]
+ %en = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %i, i32* %3, align 4
+ store i8* %filename, i8** %4, align 4
+ %5 = call i32* @__errno_location() nounwind readnone ; [#uses=1]
+ %6 = load i32* %5 ; [#uses=1]
+ store i32 %6, i32* %en, align 4
+ %7 = load i32* %3, align 4 ; [#uses=1]
+ %8 = icmp ne i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %9, label %11
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushbooleanP9lua_Statei(%struct.lua_State* %10, i32 1)
+ store i32 1, i32* %1
+ br label %20
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %12)
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = load i8** %4, align 4 ; [#uses=1]
+ %15 = load i32* %en, align 4 ; [#uses=1]
+ %16 = call i8* @strerror(i32 %15) ; [#uses=1]
+ %17 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %13, i8* getelementptr inbounds ([7 x i8]* @.str26478, i32 0, i32 0), i8* %14, i8* %16) ; [#uses=0]
+ %18 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %19 = load i32* %en, align 4 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %18, i32 %19)
+ store i32 3, i32* %1
+ br label %20
+
+; <label>:20 ; preds = %11, %9
+ %21 = load i32* %1 ; [#uses=1]
+ ret i32 %21
+}
+
+; [#uses=1]
+declare i32 @rename(i8*, i8*) nounwind
+
+; [#uses=1]
+declare i32 @remove(i8*) nounwind
+
+; [#uses=1]
+declare i32 @system(i8*)
+
+; [#uses=1]
+declare double @difftime(i32, i32) nounwind readnone
+
+; [#uses=1]
+declare %struct.tm* @gmtime(i32*) nounwind
+
+; [#uses=1]
+declare %struct.tm* @localtime(i32*) nounwind
+
+; [#uses=8]
+define internal void @_Z8setfieldP9lua_StatePKci(%struct.lua_State* %L, i8* %key, i32 %value) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %key, i8** %2, align 4
+ store i32 %value, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %4, i32 %5)
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load i8** %2, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %6, i32 -2, i8* %7)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z12setboolfieldP9lua_StatePKci(%struct.lua_State* %L, i8* %key, i32 %value) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %key, i8** %2, align 4
+ store i32 %value, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = icmp slt i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %6, label %7
+
+; <label>:6 ; preds = %0
+ br label %12
+
+; <label>:7 ; preds = %0
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z15lua_pushbooleanP9lua_Statei(%struct.lua_State* %8, i32 %9)
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = load i8** %2, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %10, i32 -2, i8* %11)
+ br label %12
+
+; <label>:12 ; preds = %7, %6
+ ret void
+}
+
+; [#uses=1]
+declare i32 @strftime(i8*, i32, i8*, %struct.tm*) nounwind
+
+; [#uses=1]
+declare i32 @clock() nounwind
+
+; [#uses=1]
+define internal i32 @_Z7tconcatP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=10]
+ %b = alloca %struct.luaL_Buffer, align 4 ; [#uses=5]
+ %lsep = alloca i32, align 4 ; [#uses=2]
+ %i = alloca i32, align 4 ; [#uses=7]
+ %last = alloca i32, align 4 ; [#uses=3]
+ %sep = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z15luaL_optlstringP9lua_StateiPKcPj(%struct.lua_State* %2, i32 2, i8* getelementptr inbounds ([1 x i8]* @.str10493, i32 0, i32 0), i32* %lsep) ; [#uses=1]
+ store i8* %3, i8** %sep, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %4, i32 1, i32 5)
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = call i32 @_Z15luaL_optintegerP9lua_Stateii(%struct.lua_State* %5, i32 3, i32 1) ; [#uses=1]
+ store i32 %6, i32* %i, align 4
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %7, i32 4) ; [#uses=1]
+ %9 = icmp sle i32 %8, 0 ; [#uses=1]
+ br i1 %9, label %10, label %13
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = call i32 @_Z10lua_objlenP9lua_Statei(%struct.lua_State* %11, i32 1) ; [#uses=1]
+ br label %16
+
+; <label>:13 ; preds = %0
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %14, i32 4) ; [#uses=1]
+ br label %16
+
+; <label>:16 ; preds = %13, %10
+ %17 = phi i32 [ %12, %10 ], [ %15, %13 ] ; [#uses=1]
+ store i32 %17, i32* %last, align 4
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_buffinitP9lua_StateP11luaL_Buffer(%struct.lua_State* %18, %struct.luaL_Buffer* %b)
+ br label %19
+
+; <label>:19 ; preds = %28, %16
+ %20 = load i32* %i, align 4 ; [#uses=1]
+ %21 = load i32* %last, align 4 ; [#uses=1]
+ %22 = icmp slt i32 %20, %21 ; [#uses=1]
+ br i1 %22, label %23, label %31
+
+; <label>:23 ; preds = %19
+ %24 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %25 = load i32* %i, align 4 ; [#uses=1]
+ call void @_Z8addfieldP9lua_StateP11luaL_Bufferi(%struct.lua_State* %24, %struct.luaL_Buffer* %b, i32 %25)
+ %26 = load i8** %sep, align 4 ; [#uses=1]
+ %27 = load i32* %lsep, align 4 ; [#uses=1]
+ call void @_Z15luaL_addlstringP11luaL_BufferPKcj(%struct.luaL_Buffer* %b, i8* %26, i32 %27)
+ br label %28
+
+; <label>:28 ; preds = %23
+ %29 = load i32* %i, align 4 ; [#uses=1]
+ %30 = add nsw i32 %29, 1 ; [#uses=1]
+ store i32 %30, i32* %i, align 4
+ br label %19
+
+; <label>:31 ; preds = %19
+ %32 = load i32* %i, align 4 ; [#uses=1]
+ %33 = load i32* %last, align 4 ; [#uses=1]
+ %34 = icmp eq i32 %32, %33 ; [#uses=1]
+ br i1 %34, label %35, label %38
+
+; <label>:35 ; preds = %31
+ %36 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %37 = load i32* %i, align 4 ; [#uses=1]
+ call void @_Z8addfieldP9lua_StateP11luaL_Bufferi(%struct.lua_State* %36, %struct.luaL_Buffer* %b, i32 %37)
+ br label %38
+
+; <label>:38 ; preds = %35, %31
+ call void @_Z15luaL_pushresultP11luaL_Buffer(%struct.luaL_Buffer* %b)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z7foreachP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=11]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %3, i32 1, i32 5)
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %4, i32 2, i32 6)
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %5)
+ br label %6
+
+; <label>:6 ; preds = %19, %0
+ %7 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %8 = call i32 @_Z8lua_nextP9lua_Statei(%struct.lua_State* %7, i32 1) ; [#uses=1]
+ %9 = icmp ne i32 %8, 0 ; [#uses=1]
+ br i1 %9, label %10, label %21
+
+; <label>:10 ; preds = %6
+ %11 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %11, i32 2)
+ %12 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %12, i32 -3)
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %13, i32 -3)
+ %14 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z8lua_callP9lua_Stateii(%struct.lua_State* %14, i32 2, i32 1)
+ %15 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %16 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %15, i32 -1) ; [#uses=1]
+ %17 = icmp eq i32 %16, 0 ; [#uses=1]
+ br i1 %17, label %19, label %18
+
+; <label>:18 ; preds = %10
+ store i32 1, i32* %1
+ br label %22
+
+; <label>:19 ; preds = %10
+ %20 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %20, i32 -3)
+ br label %6
+
+; <label>:21 ; preds = %6
+ store i32 0, i32* %1
+ br label %22
+
+; <label>:22 ; preds = %21, %18
+ %23 = load i32* %1 ; [#uses=1]
+ ret i32 %23
+}
+
+; [#uses=1]
+define internal i32 @_Z8foreachiP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=10]
+ %i = alloca i32, align 4 ; [#uses=6]
+ %n = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %3, i32 1, i32 5)
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z10lua_objlenP9lua_Statei(%struct.lua_State* %4, i32 1) ; [#uses=1]
+ store i32 %5, i32* %n, align 4
+ %6 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %6, i32 2, i32 6)
+ store i32 1, i32* %i, align 4
+ br label %7
+
+; <label>:7 ; preds = %24, %0
+ %8 = load i32* %i, align 4 ; [#uses=1]
+ %9 = load i32* %n, align 4 ; [#uses=1]
+ %10 = icmp sle i32 %8, %9 ; [#uses=1]
+ br i1 %10, label %11, label %27
+
+; <label>:11 ; preds = %7
+ %12 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %12, i32 2)
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = load i32* %i, align 4 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %13, i32 %14)
+ %15 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %16 = load i32* %i, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %15, i32 1, i32 %16)
+ %17 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z8lua_callP9lua_Stateii(%struct.lua_State* %17, i32 2, i32 1)
+ %18 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %19 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %18, i32 -1) ; [#uses=1]
+ %20 = icmp eq i32 %19, 0 ; [#uses=1]
+ br i1 %20, label %22, label %21
+
+; <label>:21 ; preds = %11
+ store i32 1, i32* %1
+ br label %28
+
+; <label>:22 ; preds = %11
+ %23 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %23, i32 -2)
+ br label %24
+
+; <label>:24 ; preds = %22
+ %25 = load i32* %i, align 4 ; [#uses=1]
+ %26 = add nsw i32 %25, 1 ; [#uses=1]
+ store i32 %26, i32* %i, align 4
+ br label %7
+
+; <label>:27 ; preds = %7
+ store i32 0, i32* %1
+ br label %28
+
+; <label>:28 ; preds = %27, %21
+ %29 = load i32* %1 ; [#uses=1]
+ ret i32 %29
+}
+
+; [#uses=1]
+define internal i32 @_Z4getnP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %3, i32 1, i32 5)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z10lua_objlenP9lua_Statei(%struct.lua_State* %4, i32 1) ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %2, i32 %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z4maxnP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %max = alloca double, align 8 ; [#uses=4]
+ %v = alloca double, align 8 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store double 0.000000e+00, double* %max, align 8
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %2, i32 1, i32 5)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %3)
+ br label %4
+
+; <label>:4 ; preds = %22, %0
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = call i32 @_Z8lua_nextP9lua_Statei(%struct.lua_State* %5, i32 1) ; [#uses=1]
+ %7 = icmp ne i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %23
+
+; <label>:8 ; preds = %4
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %9, i32 -2)
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %10, i32 -1) ; [#uses=1]
+ %12 = icmp eq i32 %11, 3 ; [#uses=1]
+ br i1 %12, label %13, label %22
+
+; <label>:13 ; preds = %8
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = call double @_Z12lua_tonumberP9lua_Statei(%struct.lua_State* %14, i32 -1) ; [#uses=1]
+ store double %15, double* %v, align 8
+ %16 = load double* %v, align 8 ; [#uses=1]
+ %17 = load double* %max, align 8 ; [#uses=1]
+ %18 = fcmp ogt double %16, %17 ; [#uses=1]
+ br i1 %18, label %19, label %21
+
+; <label>:19 ; preds = %13
+ %20 = load double* %v, align 8 ; [#uses=1]
+ store double %20, double* %max, align 8
+ br label %21
+
+; <label>:21 ; preds = %19, %13
+ br label %22
+
+; <label>:22 ; preds = %21, %8
+ br label %4
+
+; <label>:23 ; preds = %4
+ %24 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %25 = load double* %max, align 8 ; [#uses=1]
+ call void @_Z14lua_pushnumberP9lua_Stated(%struct.lua_State* %24, double %25)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z7tinsertP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %e = alloca i32, align 4 ; [#uses=5]
+ %pos = alloca i32, align 4 ; [#uses=6]
+ %i = alloca i32, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %3, i32 1, i32 5)
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z10lua_objlenP9lua_Statei(%struct.lua_State* %4, i32 1) ; [#uses=1]
+ %6 = add nsw i32 %5, 1 ; [#uses=1]
+ store i32 %6, i32* %e, align 4
+ %7 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %8 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %7) ; [#uses=1]
+ switch i32 %8, label %35 [
+ i32 2, label %9
+ i32 3, label %11
+ ]
+
+; <label>:9 ; preds = %0
+ %10 = load i32* %e, align 4 ; [#uses=1]
+ store i32 %10, i32* %pos, align 4
+ br label %38
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %13 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %12, i32 2) ; [#uses=1]
+ store i32 %13, i32* %pos, align 4
+ %14 = load i32* %pos, align 4 ; [#uses=1]
+ %15 = load i32* %e, align 4 ; [#uses=1]
+ %16 = icmp sgt i32 %14, %15 ; [#uses=1]
+ br i1 %16, label %17, label %19
+
+; <label>:17 ; preds = %11
+ %18 = load i32* %pos, align 4 ; [#uses=1]
+ store i32 %18, i32* %e, align 4
+ br label %19
+
+; <label>:19 ; preds = %17, %11
+ %20 = load i32* %e, align 4 ; [#uses=1]
+ store i32 %20, i32* %i, align 4
+ br label %21
+
+; <label>:21 ; preds = %31, %19
+ %22 = load i32* %i, align 4 ; [#uses=1]
+ %23 = load i32* %pos, align 4 ; [#uses=1]
+ %24 = icmp sgt i32 %22, %23 ; [#uses=1]
+ br i1 %24, label %25, label %34
+
+; <label>:25 ; preds = %21
+ %26 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %27 = load i32* %i, align 4 ; [#uses=1]
+ %28 = sub nsw i32 %27, 1 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %26, i32 1, i32 %28)
+ %29 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %30 = load i32* %i, align 4 ; [#uses=1]
+ call void @_Z11lua_rawsetiP9lua_Stateii(%struct.lua_State* %29, i32 1, i32 %30)
+ br label %31
+
+; <label>:31 ; preds = %25
+ %32 = load i32* %i, align 4 ; [#uses=1]
+ %33 = add nsw i32 %32, -1 ; [#uses=1]
+ store i32 %33, i32* %i, align 4
+ br label %21
+
+; <label>:34 ; preds = %21
+ br label %38
+
+; <label>:35 ; preds = %0
+ %36 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %37 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %36, i8* getelementptr inbounds ([38 x i8]* @.str13496, i32 0, i32 0)) ; [#uses=1]
+ store i32 %37, i32* %1
+ br label %41
+
+; <label>:38 ; preds = %34, %9
+ %39 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %40 = load i32* %pos, align 4 ; [#uses=1]
+ call void @_Z11lua_rawsetiP9lua_Stateii(%struct.lua_State* %39, i32 1, i32 %40)
+ store i32 0, i32* %1
+ br label %41
+
+; <label>:41 ; preds = %38, %35
+ %42 = load i32* %1 ; [#uses=1]
+ ret i32 %42
+}
+
+; [#uses=1]
+define internal i32 @_Z7tremoveP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %e = alloca i32, align 4 ; [#uses=5]
+ %pos = alloca i32, align 4 ; [#uses=9]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %3, i32 1, i32 5)
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = call i32 @_Z10lua_objlenP9lua_Statei(%struct.lua_State* %4, i32 1) ; [#uses=1]
+ store i32 %5, i32* %e, align 4
+ %6 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %7 = load i32* %e, align 4 ; [#uses=1]
+ %8 = call i32 @_Z15luaL_optintegerP9lua_Stateii(%struct.lua_State* %6, i32 2, i32 %7) ; [#uses=1]
+ store i32 %8, i32* %pos, align 4
+ %9 = load i32* %pos, align 4 ; [#uses=1]
+ %10 = icmp sle i32 1, %9 ; [#uses=1]
+ br i1 %10, label %11, label %15
+
+; <label>:11 ; preds = %0
+ %12 = load i32* %pos, align 4 ; [#uses=1]
+ %13 = load i32* %e, align 4 ; [#uses=1]
+ %14 = icmp sle i32 %12, %13 ; [#uses=1]
+ br i1 %14, label %16, label %15
+
+; <label>:15 ; preds = %11, %0
+ store i32 0, i32* %1
+ br label %36
+
+; <label>:16 ; preds = %11
+ %17 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %18 = load i32* %pos, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %17, i32 1, i32 %18)
+ br label %19
+
+; <label>:19 ; preds = %29, %16
+ %20 = load i32* %pos, align 4 ; [#uses=1]
+ %21 = load i32* %e, align 4 ; [#uses=1]
+ %22 = icmp slt i32 %20, %21 ; [#uses=1]
+ br i1 %22, label %23, label %32
+
+; <label>:23 ; preds = %19
+ %24 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %25 = load i32* %pos, align 4 ; [#uses=1]
+ %26 = add nsw i32 %25, 1 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %24, i32 1, i32 %26)
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %28 = load i32* %pos, align 4 ; [#uses=1]
+ call void @_Z11lua_rawsetiP9lua_Stateii(%struct.lua_State* %27, i32 1, i32 %28)
+ br label %29
+
+; <label>:29 ; preds = %23
+ %30 = load i32* %pos, align 4 ; [#uses=1]
+ %31 = add nsw i32 %30, 1 ; [#uses=1]
+ store i32 %31, i32* %pos, align 4
+ br label %19
+
+; <label>:32 ; preds = %19
+ %33 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %33)
+ %34 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %35 = load i32* %e, align 4 ; [#uses=1]
+ call void @_Z11lua_rawsetiP9lua_Stateii(%struct.lua_State* %34, i32 1, i32 %35)
+ store i32 1, i32* %1
+ br label %36
+
+; <label>:36 ; preds = %32, %15
+ %37 = load i32* %1 ; [#uses=1]
+ ret i32 %37
+}
+
+; [#uses=1]
+define internal i32 @_Z4setnP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %2, i32 1, i32 5)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %3, i8* getelementptr inbounds ([19 x i8]* @.str12495, i32 0, i32 0)) ; [#uses=0]
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %5, i32 1)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z4sortP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %n = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %2, i32 1, i32 5)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call i32 @_Z10lua_objlenP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ store i32 %4, i32* %n, align 4
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15luaL_checkstackP9lua_StateiPKc(%struct.lua_State* %5, i32 40, i8* getelementptr inbounds ([1 x i8]* @.str10493, i32 0, i32 0))
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %6, i32 2) ; [#uses=1]
+ %8 = icmp sle i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %11, label %9
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %10, i32 2, i32 6)
+ br label %11
+
+; <label>:11 ; preds = %9, %0
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %12, i32 2)
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = load i32* %n, align 4 ; [#uses=1]
+ call void @_Z7auxsortP9lua_Stateii(%struct.lua_State* %13, i32 1, i32 %14)
+ ret i32 0
+}
+
+; [#uses=1]
+define i32 @_Z13luaopen_tableP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_registerP9lua_StatePKcPK8luaL_Reg(%struct.lua_State* %2, i8* getelementptr inbounds ([6 x i8]* @.str9492, i32 0, i32 0), %struct.luaL_Reg* getelementptr inbounds ([10 x %struct.luaL_Reg]* @_ZL9tab_funcs, i32 0, i32 0))
+ ret i32 1
+}
+
+; [#uses=2]
+define internal void @_Z7auxsortP9lua_Stateii(%struct.lua_State* %L, i32 %l, i32 %u) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=33]
+ %2 = alloca i32, align 4 ; [#uses=14]
+ %3 = alloca i32, align 4 ; [#uses=18]
+ %i = alloca i32, align 4 ; [#uses=22]
+ %j = alloca i32, align 4 ; [#uses=10]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %l, i32* %2, align 4
+ store i32 %u, i32* %3, align 4
+ br label %4
+
+; <label>:4 ; preds = %151, %0
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = load i32* %3, align 4 ; [#uses=1]
+ %7 = icmp slt i32 %5, %6 ; [#uses=1]
+ br i1 %7, label %8, label %155
+
+; <label>:8 ; preds = %4
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %9, i32 1, i32 %10)
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %11, i32 1, i32 %12)
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = call i32 @_Z9sort_compP9lua_Stateii(%struct.lua_State* %13, i32 -1, i32 -2) ; [#uses=1]
+ %15 = icmp ne i32 %14, 0 ; [#uses=1]
+ br i1 %15, label %16, label %20
+
+; <label>:16 ; preds = %8
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %18 = load i32* %2, align 4 ; [#uses=1]
+ %19 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z4set2P9lua_Stateii(%struct.lua_State* %17, i32 %18, i32 %19)
+ br label %22
+
+; <label>:20 ; preds = %8
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %21, i32 -3)
+ br label %22
+
+; <label>:22 ; preds = %20, %16
+ %23 = load i32* %3, align 4 ; [#uses=1]
+ %24 = load i32* %2, align 4 ; [#uses=1]
+ %25 = sub nsw i32 %23, %24 ; [#uses=1]
+ %26 = icmp eq i32 %25, 1 ; [#uses=1]
+ br i1 %26, label %27, label %28
+
+; <label>:27 ; preds = %22
+ br label %155
+
+; <label>:28 ; preds = %22
+ %29 = load i32* %2, align 4 ; [#uses=1]
+ %30 = load i32* %3, align 4 ; [#uses=1]
+ %31 = add nsw i32 %29, %30 ; [#uses=1]
+ %32 = sdiv i32 %31, 2 ; [#uses=1]
+ store i32 %32, i32* %i, align 4
+ %33 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %34 = load i32* %i, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %33, i32 1, i32 %34)
+ %35 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %36 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %35, i32 1, i32 %36)
+ %37 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %38 = call i32 @_Z9sort_compP9lua_Stateii(%struct.lua_State* %37, i32 -2, i32 -1) ; [#uses=1]
+ %39 = icmp ne i32 %38, 0 ; [#uses=1]
+ br i1 %39, label %40, label %44
+
+; <label>:40 ; preds = %28
+ %41 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %42 = load i32* %i, align 4 ; [#uses=1]
+ %43 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z4set2P9lua_Stateii(%struct.lua_State* %41, i32 %42, i32 %43)
+ br label %58
+
+; <label>:44 ; preds = %28
+ %45 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %45, i32 -2)
+ %46 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %47 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %46, i32 1, i32 %47)
+ %48 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %49 = call i32 @_Z9sort_compP9lua_Stateii(%struct.lua_State* %48, i32 -1, i32 -2) ; [#uses=1]
+ %50 = icmp ne i32 %49, 0 ; [#uses=1]
+ br i1 %50, label %51, label %55
+
+; <label>:51 ; preds = %44
+ %52 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %53 = load i32* %i, align 4 ; [#uses=1]
+ %54 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z4set2P9lua_Stateii(%struct.lua_State* %52, i32 %53, i32 %54)
+ br label %57
+
+; <label>:55 ; preds = %44
+ %56 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %56, i32 -3)
+ br label %57
+
+; <label>:57 ; preds = %55, %51
+ br label %58
+
+; <label>:58 ; preds = %57, %40
+ %59 = load i32* %3, align 4 ; [#uses=1]
+ %60 = load i32* %2, align 4 ; [#uses=1]
+ %61 = sub nsw i32 %59, %60 ; [#uses=1]
+ %62 = icmp eq i32 %61, 2 ; [#uses=1]
+ br i1 %62, label %63, label %64
+
+; <label>:63 ; preds = %58
+ br label %155
+
+; <label>:64 ; preds = %58
+ %65 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %66 = load i32* %i, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %65, i32 1, i32 %66)
+ %67 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %67, i32 -1)
+ %68 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %69 = load i32* %3, align 4 ; [#uses=1]
+ %70 = sub nsw i32 %69, 1 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %68, i32 1, i32 %70)
+ %71 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %72 = load i32* %i, align 4 ; [#uses=1]
+ %73 = load i32* %3, align 4 ; [#uses=1]
+ %74 = sub nsw i32 %73, 1 ; [#uses=1]
+ call void @_Z4set2P9lua_Stateii(%struct.lua_State* %71, i32 %72, i32 %74)
+ %75 = load i32* %2, align 4 ; [#uses=1]
+ store i32 %75, i32* %i, align 4
+ %76 = load i32* %3, align 4 ; [#uses=1]
+ %77 = sub nsw i32 %76, 1 ; [#uses=1]
+ store i32 %77, i32* %j, align 4
+ br label %78
+
+; <label>:78 ; preds = %118, %64
+ br label %79
+
+; <label>:79 ; preds = %93, %78
+ %80 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %81 = load i32* %i, align 4 ; [#uses=1]
+ %82 = add nsw i32 %81, 1 ; [#uses=2]
+ store i32 %82, i32* %i, align 4
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %80, i32 1, i32 %82)
+ %83 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %84 = call i32 @_Z9sort_compP9lua_Stateii(%struct.lua_State* %83, i32 -1, i32 -2) ; [#uses=1]
+ %85 = icmp ne i32 %84, 0 ; [#uses=1]
+ br i1 %85, label %86, label %95
+
+; <label>:86 ; preds = %79
+ %87 = load i32* %i, align 4 ; [#uses=1]
+ %88 = load i32* %3, align 4 ; [#uses=1]
+ %89 = icmp sgt i32 %87, %88 ; [#uses=1]
+ br i1 %89, label %90, label %93
+
+; <label>:90 ; preds = %86
+ %91 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %92 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %91, i8* getelementptr inbounds ([35 x i8]* @.str11494, i32 0, i32 0)) ; [#uses=0]
+ br label %93
+
+; <label>:93 ; preds = %90, %86
+ %94 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %94, i32 -2)
+ br label %79
+
+; <label>:95 ; preds = %79
+ br label %96
+
+; <label>:96 ; preds = %110, %95
+ %97 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %98 = load i32* %j, align 4 ; [#uses=1]
+ %99 = add nsw i32 %98, -1 ; [#uses=2]
+ store i32 %99, i32* %j, align 4
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %97, i32 1, i32 %99)
+ %100 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %101 = call i32 @_Z9sort_compP9lua_Stateii(%struct.lua_State* %100, i32 -3, i32 -1) ; [#uses=1]
+ %102 = icmp ne i32 %101, 0 ; [#uses=1]
+ br i1 %102, label %103, label %112
+
+; <label>:103 ; preds = %96
+ %104 = load i32* %j, align 4 ; [#uses=1]
+ %105 = load i32* %2, align 4 ; [#uses=1]
+ %106 = icmp slt i32 %104, %105 ; [#uses=1]
+ br i1 %106, label %107, label %110
+
+; <label>:107 ; preds = %103
+ %108 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %109 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %108, i8* getelementptr inbounds ([35 x i8]* @.str11494, i32 0, i32 0)) ; [#uses=0]
+ br label %110
+
+; <label>:110 ; preds = %107, %103
+ %111 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %111, i32 -2)
+ br label %96
+
+; <label>:112 ; preds = %96
+ %113 = load i32* %j, align 4 ; [#uses=1]
+ %114 = load i32* %i, align 4 ; [#uses=1]
+ %115 = icmp slt i32 %113, %114 ; [#uses=1]
+ br i1 %115, label %116, label %118
+
+; <label>:116 ; preds = %112
+ %117 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %117, i32 -4)
+ br label %122
+
+; <label>:118 ; preds = %112
+ %119 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %120 = load i32* %i, align 4 ; [#uses=1]
+ %121 = load i32* %j, align 4 ; [#uses=1]
+ call void @_Z4set2P9lua_Stateii(%struct.lua_State* %119, i32 %120, i32 %121)
+ br label %78
+
+; <label>:122 ; preds = %116
+ %123 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %124 = load i32* %3, align 4 ; [#uses=1]
+ %125 = sub nsw i32 %124, 1 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %123, i32 1, i32 %125)
+ %126 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %127 = load i32* %i, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %126, i32 1, i32 %127)
+ %128 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %129 = load i32* %3, align 4 ; [#uses=1]
+ %130 = sub nsw i32 %129, 1 ; [#uses=1]
+ %131 = load i32* %i, align 4 ; [#uses=1]
+ call void @_Z4set2P9lua_Stateii(%struct.lua_State* %128, i32 %130, i32 %131)
+ %132 = load i32* %i, align 4 ; [#uses=1]
+ %133 = load i32* %2, align 4 ; [#uses=1]
+ %134 = sub nsw i32 %132, %133 ; [#uses=1]
+ %135 = load i32* %3, align 4 ; [#uses=1]
+ %136 = load i32* %i, align 4 ; [#uses=1]
+ %137 = sub nsw i32 %135, %136 ; [#uses=1]
+ %138 = icmp slt i32 %134, %137 ; [#uses=1]
+ br i1 %138, label %139, label %145
+
+; <label>:139 ; preds = %122
+ %140 = load i32* %2, align 4 ; [#uses=1]
+ store i32 %140, i32* %j, align 4
+ %141 = load i32* %i, align 4 ; [#uses=1]
+ %142 = sub nsw i32 %141, 1 ; [#uses=1]
+ store i32 %142, i32* %i, align 4
+ %143 = load i32* %i, align 4 ; [#uses=1]
+ %144 = add nsw i32 %143, 2 ; [#uses=1]
+ store i32 %144, i32* %2, align 4
+ br label %151
+
+; <label>:145 ; preds = %122
+ %146 = load i32* %i, align 4 ; [#uses=1]
+ %147 = add nsw i32 %146, 1 ; [#uses=1]
+ store i32 %147, i32* %j, align 4
+ %148 = load i32* %3, align 4 ; [#uses=1]
+ store i32 %148, i32* %i, align 4
+ %149 = load i32* %j, align 4 ; [#uses=1]
+ %150 = sub nsw i32 %149, 2 ; [#uses=1]
+ store i32 %150, i32* %3, align 4
+ br label %151
+
+; <label>:151 ; preds = %145, %139
+ %152 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %153 = load i32* %j, align 4 ; [#uses=1]
+ %154 = load i32* %i, align 4 ; [#uses=1]
+ call void @_Z7auxsortP9lua_Stateii(%struct.lua_State* %152, i32 %153, i32 %154)
+ br label %4
+
+; <label>:155 ; preds = %63, %27, %4
+ ret void
+}
+
+; [#uses=5]
+define internal i32 @_Z9sort_compP9lua_Stateii(%struct.lua_State* %L, i32 %a, i32 %b) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %4 = alloca i32, align 4 ; [#uses=3]
+ %res = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %a, i32* %3, align 4
+ store i32 %b, i32* %4, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %5, i32 2) ; [#uses=1]
+ %7 = icmp eq i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %21, label %8
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %9, i32 2)
+ %10 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %11 = load i32* %3, align 4 ; [#uses=1]
+ %12 = sub nsw i32 %11, 1 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %10, i32 %12)
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = load i32* %4, align 4 ; [#uses=1]
+ %15 = sub nsw i32 %14, 2 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %13, i32 %15)
+ %16 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z8lua_callP9lua_Stateii(%struct.lua_State* %16, i32 2, i32 1)
+ %17 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %18 = call i32 @_Z13lua_tobooleanP9lua_Statei(%struct.lua_State* %17, i32 -1) ; [#uses=1]
+ store i32 %18, i32* %res, align 4
+ %19 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %19, i32 -2)
+ %20 = load i32* %res, align 4 ; [#uses=1]
+ store i32 %20, i32* %1
+ br label %26
+
+; <label>:21 ; preds = %0
+ %22 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %23 = load i32* %3, align 4 ; [#uses=1]
+ %24 = load i32* %4, align 4 ; [#uses=1]
+ %25 = call i32 @_Z12lua_lessthanP9lua_Stateii(%struct.lua_State* %22, i32 %23, i32 %24) ; [#uses=1]
+ store i32 %25, i32* %1
+ br label %26
+
+; <label>:26 ; preds = %21, %8
+ %27 = load i32* %1 ; [#uses=1]
+ ret i32 %27
+}
+
+; [#uses=6]
+define internal void @_Z4set2P9lua_Stateii(%struct.lua_State* %L, i32 %i, i32 %j) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %i, i32* %2, align 4
+ store i32 %j, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ call void @_Z11lua_rawsetiP9lua_Stateii(%struct.lua_State* %4, i32 1, i32 %5)
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z11lua_rawsetiP9lua_Stateii(%struct.lua_State* %6, i32 1, i32 %7)
+ ret void
+}
+
+; [#uses=2]
+define internal void @_Z8addfieldP9lua_StateP11luaL_Bufferi(%struct.lua_State* %L, %struct.luaL_Buffer* %b, i32 %i) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %2 = alloca %struct.luaL_Buffer*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.luaL_Buffer* %b, %struct.luaL_Buffer** %2, align 4
+ store i32 %i, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %4, i32 1, i32 %5)
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = call i32 @_Z12lua_isstringP9lua_Statei(%struct.lua_State* %6, i32 -1) ; [#uses=1]
+ %8 = icmp ne i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %17, label %9
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %12, i32 -1) ; [#uses=1]
+ %14 = call i8* @_Z12lua_typenameP9lua_Statei(%struct.lua_State* %11, i32 %13) ; [#uses=1]
+ %15 = load i32* %3, align 4 ; [#uses=1]
+ %16 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %10, i8* getelementptr inbounds ([53 x i8]* @.str14497, i32 0, i32 0), i8* %14, i32 %15) ; [#uses=0]
+ br label %17
+
+; <label>:17 ; preds = %9, %0
+ %18 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ call void @_Z13luaL_addvalueP11luaL_Buffer(%struct.luaL_Buffer* %18)
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z8str_byteP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %l = alloca i32, align 4 ; [#uses=5]
+ %s = alloca i8*, align 4 ; [#uses=2]
+ %posi = alloca i32, align 4 ; [#uses=8]
+ %pose = alloca i32, align 4 ; [#uses=6]
+ %n = alloca i32, align 4 ; [#uses=5]
+ %i = alloca i32, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %3, i32 1, i32* %l) ; [#uses=1]
+ store i8* %4, i8** %s, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = call i32 @_Z15luaL_optintegerP9lua_Stateii(%struct.lua_State* %5, i32 2, i32 1) ; [#uses=1]
+ %7 = load i32* %l, align 4 ; [#uses=1]
+ %8 = call i32 @_Z8posrelatij(i32 %6, i32 %7) ; [#uses=1]
+ store i32 %8, i32* %posi, align 4
+ %9 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %10 = load i32* %posi, align 4 ; [#uses=1]
+ %11 = call i32 @_Z15luaL_optintegerP9lua_Stateii(%struct.lua_State* %9, i32 3, i32 %10) ; [#uses=1]
+ %12 = load i32* %l, align 4 ; [#uses=1]
+ %13 = call i32 @_Z8posrelatij(i32 %11, i32 %12) ; [#uses=1]
+ store i32 %13, i32* %pose, align 4
+ %14 = load i32* %posi, align 4 ; [#uses=1]
+ %15 = icmp sle i32 %14, 0 ; [#uses=1]
+ br i1 %15, label %16, label %17
+
+; <label>:16 ; preds = %0
+ store i32 1, i32* %posi, align 4
+ br label %17
+
+; <label>:17 ; preds = %16, %0
+ %18 = load i32* %pose, align 4 ; [#uses=1]
+ %19 = load i32* %l, align 4 ; [#uses=1]
+ %20 = icmp ugt i32 %18, %19 ; [#uses=1]
+ br i1 %20, label %21, label %23
+
+; <label>:21 ; preds = %17
+ %22 = load i32* %l, align 4 ; [#uses=1]
+ store i32 %22, i32* %pose, align 4
+ br label %23
+
+; <label>:23 ; preds = %21, %17
+ %24 = load i32* %posi, align 4 ; [#uses=1]
+ %25 = load i32* %pose, align 4 ; [#uses=1]
+ %26 = icmp sgt i32 %24, %25 ; [#uses=1]
+ br i1 %26, label %27, label %28
+
+; <label>:27 ; preds = %23
+ store i32 0, i32* %1
+ br label %63
+
+; <label>:28 ; preds = %23
+ %29 = load i32* %pose, align 4 ; [#uses=1]
+ %30 = load i32* %posi, align 4 ; [#uses=1]
+ %31 = sub nsw i32 %29, %30 ; [#uses=1]
+ %32 = add nsw i32 %31, 1 ; [#uses=1]
+ store i32 %32, i32* %n, align 4
+ %33 = load i32* %posi, align 4 ; [#uses=1]
+ %34 = load i32* %n, align 4 ; [#uses=1]
+ %35 = add nsw i32 %33, %34 ; [#uses=1]
+ %36 = load i32* %pose, align 4 ; [#uses=1]
+ %37 = icmp sle i32 %35, %36 ; [#uses=1]
+ br i1 %37, label %38, label %41
+
+; <label>:38 ; preds = %28
+ %39 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %40 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %39, i8* getelementptr inbounds ([22 x i8]* @.str39537, i32 0, i32 0)) ; [#uses=0]
+ br label %41
+
+; <label>:41 ; preds = %38, %28
+ %42 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %43 = load i32* %n, align 4 ; [#uses=1]
+ call void @_Z15luaL_checkstackP9lua_StateiPKc(%struct.lua_State* %42, i32 %43, i8* getelementptr inbounds ([22 x i8]* @.str39537, i32 0, i32 0))
+ store i32 0, i32* %i, align 4
+ br label %44
+
+; <label>:44 ; preds = %58, %41
+ %45 = load i32* %i, align 4 ; [#uses=1]
+ %46 = load i32* %n, align 4 ; [#uses=1]
+ %47 = icmp slt i32 %45, %46 ; [#uses=1]
+ br i1 %47, label %48, label %61
+
+; <label>:48 ; preds = %44
+ %49 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %50 = load i32* %posi, align 4 ; [#uses=1]
+ %51 = load i32* %i, align 4 ; [#uses=1]
+ %52 = add nsw i32 %50, %51 ; [#uses=1]
+ %53 = sub nsw i32 %52, 1 ; [#uses=1]
+ %54 = load i8** %s, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds i8* %54, i32 %53 ; [#uses=1]
+ %56 = load i8* %55 ; [#uses=1]
+ %57 = zext i8 %56 to i32 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %49, i32 %57)
+ br label %58
+
+; <label>:58 ; preds = %48
+ %59 = load i32* %i, align 4 ; [#uses=1]
+ %60 = add nsw i32 %59, 1 ; [#uses=1]
+ store i32 %60, i32* %i, align 4
+ br label %44
+
+; <label>:61 ; preds = %44
+ %62 = load i32* %n, align 4 ; [#uses=1]
+ store i32 %62, i32* %1
+ br label %63
+
+; <label>:63 ; preds = %61, %27
+ %64 = load i32* %1 ; [#uses=1]
+ ret i32 %64
+}
+
+; [#uses=1]
+define internal i32 @_Z8str_charP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %n = alloca i32, align 4 ; [#uses=2]
+ %i = alloca i32, align 4 ; [#uses=6]
+ %b = alloca %struct.luaL_Buffer, align 4 ; [#uses=6]
+ %c = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %2) ; [#uses=1]
+ store i32 %3, i32* %n, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_buffinitP9lua_StateP11luaL_Buffer(%struct.lua_State* %4, %struct.luaL_Buffer* %b)
+ store i32 1, i32* %i, align 4
+ br label %5
+
+; <label>:5 ; preds = %41, %0
+ %6 = load i32* %i, align 4 ; [#uses=1]
+ %7 = load i32* %n, align 4 ; [#uses=1]
+ %8 = icmp sle i32 %6, %7 ; [#uses=1]
+ br i1 %8, label %9, label %44
+
+; <label>:9 ; preds = %5
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = load i32* %i, align 4 ; [#uses=1]
+ %12 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %10, i32 %11) ; [#uses=1]
+ store i32 %12, i32* %c, align 4
+ %13 = load i32* %c, align 4 ; [#uses=1]
+ %14 = trunc i32 %13 to i8 ; [#uses=1]
+ %15 = zext i8 %14 to i32 ; [#uses=1]
+ %16 = load i32* %c, align 4 ; [#uses=1]
+ %17 = icmp eq i32 %15, %16 ; [#uses=1]
+ br i1 %17, label %23, label %18
+
+; <label>:18 ; preds = %9
+ %19 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %20 = load i32* %i, align 4 ; [#uses=1]
+ %21 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %19, i32 %20, i8* getelementptr inbounds ([14 x i8]* @.str38536, i32 0, i32 0)) ; [#uses=1]
+ %22 = icmp ne i32 %21, 0 ; [#uses=1]
+ br label %23
+
+; <label>:23 ; preds = %18, %9
+ %24 = phi i1 [ true, %9 ], [ %22, %18 ] ; [#uses=0]
+ %25 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=1]
+ %26 = load i8** %25, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 3 ; [#uses=1]
+ %28 = getelementptr inbounds [8192 x i8]* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = getelementptr inbounds i8* %28, i32 8192 ; [#uses=1]
+ %30 = icmp ult i8* %26, %29 ; [#uses=1]
+ br i1 %30, label %34, label %31
+
+; <label>:31 ; preds = %23
+ %32 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %b) ; [#uses=1]
+ %33 = icmp ne i8* %32, null ; [#uses=1]
+ br label %34
+
+; <label>:34 ; preds = %31, %23
+ %35 = phi i1 [ true, %23 ], [ %33, %31 ] ; [#uses=0]
+ %36 = load i32* %c, align 4 ; [#uses=1]
+ %37 = trunc i32 %36 to i8 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=2]
+ %39 = load i8** %38, align 4 ; [#uses=2]
+ %40 = getelementptr inbounds i8* %39, i32 1 ; [#uses=1]
+ store i8* %40, i8** %38, align 4
+ store i8 %37, i8* %39
+ br label %41
+
+; <label>:41 ; preds = %34
+ %42 = load i32* %i, align 4 ; [#uses=1]
+ %43 = add nsw i32 %42, 1 ; [#uses=1]
+ store i32 %43, i32* %i, align 4
+ br label %5
+
+; <label>:44 ; preds = %5
+ call void @_Z15luaL_pushresultP11luaL_Buffer(%struct.luaL_Buffer* %b)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z8str_dumpP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %b = alloca %struct.luaL_Buffer, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %2, i32 1, i32 6)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %3, i32 1)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_buffinitP9lua_StateP11luaL_Buffer(%struct.lua_State* %4, %struct.luaL_Buffer* %b)
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = bitcast %struct.luaL_Buffer* %b to i8* ; [#uses=1]
+ %7 = call i32 @_Z8lua_dumpP9lua_StatePFiS0_PKvjPvES3_(%struct.lua_State* %5, i32 (%struct.lua_State*, i8*, i32, i8*)* @_Z6writerP9lua_StatePKvjPv, i8* %6) ; [#uses=1]
+ %8 = icmp ne i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %9, label %12
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %10, i8* getelementptr inbounds ([30 x i8]* @.str37535, i32 0, i32 0)) ; [#uses=0]
+ br label %12
+
+; <label>:12 ; preds = %9, %0
+ call void @_Z15luaL_pushresultP11luaL_Buffer(%struct.luaL_Buffer* %b)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z8str_findP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z12str_find_auxP9lua_Statei(%struct.lua_State* %2, i32 1) ; [#uses=1]
+ ret i32 %3
+}
+
+; [#uses=1]
+define internal i32 @_Z10str_formatP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=12]
+ %arg = alloca i32, align 4 ; [#uses=11]
+ %sfl = alloca i32, align 4 ; [#uses=2]
+ %strfrmt = alloca i8*, align 4 ; [#uses=15]
+ %strfrmt_end = alloca i8*, align 4 ; [#uses=2]
+ %b = alloca %struct.luaL_Buffer, align 4 ; [#uses=13]
+ %form = alloca [18 x i8], align 1 ; [#uses=9]
+ %buff = alloca [512 x i8], align 1 ; [#uses=7]
+ %l = alloca i32, align 4 ; [#uses=2]
+ %s = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 1, i32* %arg, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = load i32* %arg, align 4 ; [#uses=1]
+ %5 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %3, i32 %4, i32* %sfl) ; [#uses=1]
+ store i8* %5, i8** %strfrmt, align 4
+ %6 = load i8** %strfrmt, align 4 ; [#uses=1]
+ %7 = load i32* %sfl, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds i8* %6, i32 %7 ; [#uses=1]
+ store i8* %8, i8** %strfrmt_end, align 4
+ %9 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13luaL_buffinitP9lua_StateP11luaL_Buffer(%struct.lua_State* %9, %struct.luaL_Buffer* %b)
+ br label %10
+
+; <label>:10 ; preds = %138, %118, %105, %0
+ %11 = load i8** %strfrmt, align 4 ; [#uses=1]
+ %12 = load i8** %strfrmt_end, align 4 ; [#uses=1]
+ %13 = icmp ult i8* %11, %12 ; [#uses=1]
+ br i1 %13, label %14, label %139
+
+; <label>:14 ; preds = %10
+ %15 = load i8** %strfrmt, align 4 ; [#uses=1]
+ %16 = load i8* %15 ; [#uses=1]
+ %17 = sext i8 %16 to i32 ; [#uses=1]
+ %18 = icmp ne i32 %17, 37 ; [#uses=1]
+ br i1 %18, label %19, label %37
+
+; <label>:19 ; preds = %14
+ %20 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=1]
+ %21 = load i8** %20, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 3 ; [#uses=1]
+ %23 = getelementptr inbounds [8192 x i8]* %22, i32 0, i32 0 ; [#uses=1]
+ %24 = getelementptr inbounds i8* %23, i32 8192 ; [#uses=1]
+ %25 = icmp ult i8* %21, %24 ; [#uses=1]
+ br i1 %25, label %29, label %26
+
+; <label>:26 ; preds = %19
+ %27 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %b) ; [#uses=1]
+ %28 = icmp ne i8* %27, null ; [#uses=1]
+ br label %29
+
+; <label>:29 ; preds = %26, %19
+ %30 = phi i1 [ true, %19 ], [ %28, %26 ] ; [#uses=0]
+ %31 = load i8** %strfrmt, align 4 ; [#uses=2]
+ %32 = getelementptr inbounds i8* %31, i32 1 ; [#uses=1]
+ store i8* %32, i8** %strfrmt, align 4
+ %33 = load i8* %31 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=2]
+ %35 = load i8** %34, align 4 ; [#uses=2]
+ %36 = getelementptr inbounds i8* %35, i32 1 ; [#uses=1]
+ store i8* %36, i8** %34, align 4
+ store i8 %33, i8* %35
+ br label %138
+
+; <label>:37 ; preds = %14
+ %38 = load i8** %strfrmt, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds i8* %38, i32 1 ; [#uses=2]
+ store i8* %39, i8** %strfrmt, align 4
+ %40 = load i8* %39 ; [#uses=1]
+ %41 = sext i8 %40 to i32 ; [#uses=1]
+ %42 = icmp eq i32 %41, 37 ; [#uses=1]
+ br i1 %42, label %43, label %61
+
+; <label>:43 ; preds = %37
+ %44 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=1]
+ %45 = load i8** %44, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 3 ; [#uses=1]
+ %47 = getelementptr inbounds [8192 x i8]* %46, i32 0, i32 0 ; [#uses=1]
+ %48 = getelementptr inbounds i8* %47, i32 8192 ; [#uses=1]
+ %49 = icmp ult i8* %45, %48 ; [#uses=1]
+ br i1 %49, label %53, label %50
+
+; <label>:50 ; preds = %43
+ %51 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %b) ; [#uses=1]
+ %52 = icmp ne i8* %51, null ; [#uses=1]
+ br label %53
+
+; <label>:53 ; preds = %50, %43
+ %54 = phi i1 [ true, %43 ], [ %52, %50 ] ; [#uses=0]
+ %55 = load i8** %strfrmt, align 4 ; [#uses=2]
+ %56 = getelementptr inbounds i8* %55, i32 1 ; [#uses=1]
+ store i8* %56, i8** %strfrmt, align 4
+ %57 = load i8* %55 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=2]
+ %59 = load i8** %58, align 4 ; [#uses=2]
+ %60 = getelementptr inbounds i8* %59, i32 1 ; [#uses=1]
+ store i8* %60, i8** %58, align 4
+ store i8 %57, i8* %59
+ br label %137
+
+; <label>:61 ; preds = %37
+ %62 = load i32* %arg, align 4 ; [#uses=1]
+ %63 = add nsw i32 %62, 1 ; [#uses=1]
+ store i32 %63, i32* %arg, align 4
+ %64 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %65 = load i8** %strfrmt, align 4 ; [#uses=1]
+ %66 = getelementptr inbounds [18 x i8]* %form, i32 0, i32 0 ; [#uses=1]
+ %67 = call i8* @_Z10scanformatP9lua_StatePKcPc(%struct.lua_State* %64, i8* %65, i8* %66) ; [#uses=1]
+ store i8* %67, i8** %strfrmt, align 4
+ %68 = load i8** %strfrmt, align 4 ; [#uses=2]
+ %69 = getelementptr inbounds i8* %68, i32 1 ; [#uses=1]
+ store i8* %69, i8** %strfrmt, align 4
+ %70 = load i8* %68 ; [#uses=1]
+ %71 = sext i8 %70 to i32 ; [#uses=1]
+ switch i32 %71, label %126 [
+ i32 99, label %72
+ i32 100, label %80
+ i32 105, label %80
+ i32 111, label %89
+ i32 117, label %89
+ i32 120, label %89
+ i32 88, label %89
+ i32 101, label %98
+ i32 69, label %98
+ i32 102, label %98
+ i32 103, label %98
+ i32 71, label %98
+ i32 113, label %105
+ i32 115, label %108
+ ]
+
+; <label>:72 ; preds = %61
+ %73 = getelementptr inbounds [512 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ %74 = getelementptr inbounds [18 x i8]* %form, i32 0, i32 0 ; [#uses=1]
+ %75 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %76 = load i32* %arg, align 4 ; [#uses=1]
+ %77 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %75, i32 %76) ; [#uses=1]
+ %78 = fptosi double %77 to i32 ; [#uses=1]
+ %79 = call i32 (i8*, i8*, ...)* @sprintf(i8* %73, i8* %74, i32 %78) ; [#uses=0]
+ br label %133
+
+; <label>:80 ; preds = %61, %61
+ %81 = getelementptr inbounds [18 x i8]* %form, i32 0, i32 0 ; [#uses=1]
+ call void @_Z9addintlenPc(i8* %81)
+ %82 = getelementptr inbounds [512 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ %83 = getelementptr inbounds [18 x i8]* %form, i32 0, i32 0 ; [#uses=1]
+ %84 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %85 = load i32* %arg, align 4 ; [#uses=1]
+ %86 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %84, i32 %85) ; [#uses=1]
+ %87 = fptosi double %86 to i32 ; [#uses=1]
+ %88 = call i32 (i8*, i8*, ...)* @sprintf(i8* %82, i8* %83, i32 %87) ; [#uses=0]
+ br label %133
+
+; <label>:89 ; preds = %61, %61, %61, %61
+ %90 = getelementptr inbounds [18 x i8]* %form, i32 0, i32 0 ; [#uses=1]
+ call void @_Z9addintlenPc(i8* %90)
+ %91 = getelementptr inbounds [512 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ %92 = getelementptr inbounds [18 x i8]* %form, i32 0, i32 0 ; [#uses=1]
+ %93 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %94 = load i32* %arg, align 4 ; [#uses=1]
+ %95 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %93, i32 %94) ; [#uses=1]
+ %96 = fptoui double %95 to i32 ; [#uses=1]
+ %97 = call i32 (i8*, i8*, ...)* @sprintf(i8* %91, i8* %92, i32 %96) ; [#uses=0]
+ br label %133
+
+; <label>:98 ; preds = %61, %61, %61, %61, %61
+ %99 = getelementptr inbounds [512 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ %100 = getelementptr inbounds [18 x i8]* %form, i32 0, i32 0 ; [#uses=1]
+ %101 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %102 = load i32* %arg, align 4 ; [#uses=1]
+ %103 = call double @_Z16luaL_checknumberP9lua_Statei(%struct.lua_State* %101, i32 %102) ; [#uses=1]
+ %104 = call i32 (i8*, i8*, ...)* @sprintf(i8* %99, i8* %100, double %103) ; [#uses=0]
+ br label %133
+
+; <label>:105 ; preds = %61
+ %106 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %107 = load i32* %arg, align 4 ; [#uses=1]
+ call void @_Z9addquotedP9lua_StateP11luaL_Bufferi(%struct.lua_State* %106, %struct.luaL_Buffer* %b, i32 %107)
+ br label %10
+
+; <label>:108 ; preds = %61
+ %109 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %110 = load i32* %arg, align 4 ; [#uses=1]
+ %111 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %109, i32 %110, i32* %l) ; [#uses=1]
+ store i8* %111, i8** %s, align 4
+ %112 = getelementptr inbounds [18 x i8]* %form, i32 0, i32 0 ; [#uses=1]
+ %113 = call i8* @strchr(i8* %112, i32 46) ; [#uses=1]
+ %114 = icmp ne i8* %113, null ; [#uses=1]
+ br i1 %114, label %121, label %115
+
+; <label>:115 ; preds = %108
+ %116 = load i32* %l, align 4 ; [#uses=1]
+ %117 = icmp uge i32 %116, 100 ; [#uses=1]
+ br i1 %117, label %118, label %121
+
+; <label>:118 ; preds = %115
+ %119 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %120 = load i32* %arg, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %119, i32 %120)
+ call void @_Z13luaL_addvalueP11luaL_Buffer(%struct.luaL_Buffer* %b)
+ br label %10
+
+; <label>:121 ; preds = %115, %108
+ %122 = getelementptr inbounds [512 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ %123 = getelementptr inbounds [18 x i8]* %form, i32 0, i32 0 ; [#uses=1]
+ %124 = load i8** %s, align 4 ; [#uses=1]
+ %125 = call i32 (i8*, i8*, ...)* @sprintf(i8* %122, i8* %123, i8* %124) ; [#uses=0]
+ br label %133
+
+; <label>:126 ; preds = %61
+ %127 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %128 = load i8** %strfrmt, align 4 ; [#uses=1]
+ %129 = getelementptr inbounds i8* %128, i32 -1 ; [#uses=1]
+ %130 = load i8* %129 ; [#uses=1]
+ %131 = sext i8 %130 to i32 ; [#uses=1]
+ %132 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %127, i8* getelementptr inbounds ([34 x i8]* @.str30528, i32 0, i32 0), i32 %131) ; [#uses=1]
+ store i32 %132, i32* %1
+ br label %140
+
+; <label>:133 ; preds = %121, %98, %89, %80, %72
+ %134 = getelementptr inbounds [512 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ %135 = getelementptr inbounds [512 x i8]* %buff, i32 0, i32 0 ; [#uses=1]
+ %136 = call i32 @strlen(i8* %135) ; [#uses=1]
+ call void @_Z15luaL_addlstringP11luaL_BufferPKcj(%struct.luaL_Buffer* %b, i8* %134, i32 %136)
+ br label %137
+
+; <label>:137 ; preds = %133, %53
+ br label %138
+
+; <label>:138 ; preds = %137, %29
+ br label %10
+
+; <label>:139 ; preds = %10
+ call void @_Z15luaL_pushresultP11luaL_Buffer(%struct.luaL_Buffer* %b)
+ store i32 1, i32* %1
+ br label %140
+
+; <label>:140 ; preds = %139, %126
+ %141 = load i32* %1 ; [#uses=1]
+ ret i32 %141
+}
+
+; [#uses=1]
+define internal i32 @_Z11gfind_nodefP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %2, i8* getelementptr inbounds ([46 x i8]* @.str29527, i32 0, i32 0)) ; [#uses=1]
+ ret i32 %3
+}
+
+; [#uses=1]
+define internal i32 @_Z6gmatchP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %2, i32 1, i32* null) ; [#uses=0]
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %4, i32 2, i32* null) ; [#uses=0]
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %6, i32 2)
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %7, i32 0)
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z16lua_pushcclosureP9lua_StatePFiS0_Ei(%struct.lua_State* %8, i32 (%struct.lua_State*)* @_Z10gmatch_auxP9lua_State, i32 3)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z8str_gsubP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %srcl = alloca i32, align 4 ; [#uses=3]
+ %src = alloca i8*, align 4 ; [#uses=12]
+ %p = alloca i8*, align 4 ; [#uses=5]
+ %tr = alloca i32, align 4 ; [#uses=5]
+ %max_s = alloca i32, align 4 ; [#uses=2]
+ %anchor = alloca i32, align 4 ; [#uses=2]
+ %n = alloca i32, align 4 ; [#uses=5]
+ %ms = alloca %struct.MatchState, align 4 ; [#uses=8]
+ %b = alloca %struct.luaL_Buffer, align 4 ; [#uses=8]
+ %e = alloca i8*, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %2, i32 1, i32* %srcl) ; [#uses=1]
+ store i8* %3, i8** %src, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %4, i32 2, i32* null) ; [#uses=1]
+ store i8* %5, i8** %p, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %6, i32 3) ; [#uses=1]
+ store i32 %7, i32* %tr, align 4
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = load i32* %srcl, align 4 ; [#uses=1]
+ %10 = add i32 %9, 1 ; [#uses=1]
+ %11 = call i32 @_Z15luaL_optintegerP9lua_Stateii(%struct.lua_State* %8, i32 4, i32 %10) ; [#uses=1]
+ store i32 %11, i32* %max_s, align 4
+ %12 = load i8** %p, align 4 ; [#uses=1]
+ %13 = load i8* %12 ; [#uses=1]
+ %14 = sext i8 %13 to i32 ; [#uses=1]
+ %15 = icmp eq i32 %14, 94 ; [#uses=1]
+ br i1 %15, label %16, label %19
+
+; <label>:16 ; preds = %0
+ %17 = load i8** %p, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds i8* %17, i32 1 ; [#uses=1]
+ store i8* %18, i8** %p, align 4
+ br label %20
+
+; <label>:19 ; preds = %0
+ br label %20
+
+; <label>:20 ; preds = %19, %16
+ %21 = phi i32 [ 1, %16 ], [ 0, %19 ] ; [#uses=1]
+ store i32 %21, i32* %anchor, align 4
+ store i32 0, i32* %n, align 4
+ %22 = load i32* %tr, align 4 ; [#uses=1]
+ %23 = icmp eq i32 %22, 3 ; [#uses=1]
+ br i1 %23, label %37, label %24
+
+; <label>:24 ; preds = %20
+ %25 = load i32* %tr, align 4 ; [#uses=1]
+ %26 = icmp eq i32 %25, 4 ; [#uses=1]
+ br i1 %26, label %37, label %27
+
+; <label>:27 ; preds = %24
+ %28 = load i32* %tr, align 4 ; [#uses=1]
+ %29 = icmp eq i32 %28, 6 ; [#uses=1]
+ br i1 %29, label %37, label %30
+
+; <label>:30 ; preds = %27
+ %31 = load i32* %tr, align 4 ; [#uses=1]
+ %32 = icmp eq i32 %31, 5 ; [#uses=1]
+ br i1 %32, label %37, label %33
+
+; <label>:33 ; preds = %30
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %35 = call i32 @_Z13luaL_argerrorP9lua_StateiPKc(%struct.lua_State* %34, i32 3, i8* getelementptr inbounds ([31 x i8]* @.str27525, i32 0, i32 0)) ; [#uses=1]
+ %36 = icmp ne i32 %35, 0 ; [#uses=1]
+ br label %37
+
+; <label>:37 ; preds = %33, %30, %27, %24, %20
+ %38 = phi i1 [ true, %30 ], [ true, %27 ], [ true, %24 ], [ true, %20 ], [ %36, %33 ] ; [#uses=0]
+ %39 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_buffinitP9lua_StateP11luaL_Buffer(%struct.lua_State* %39, %struct.luaL_Buffer* %b)
+ %40 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.MatchState* %ms, i32 0, i32 2 ; [#uses=1]
+ store %struct.lua_State* %40, %struct.lua_State** %41, align 4
+ %42 = load i8** %src, align 4 ; [#uses=1]
+ %43 = getelementptr inbounds %struct.MatchState* %ms, i32 0, i32 0 ; [#uses=1]
+ store i8* %42, i8** %43, align 4
+ %44 = load i8** %src, align 4 ; [#uses=1]
+ %45 = load i32* %srcl, align 4 ; [#uses=1]
+ %46 = getelementptr inbounds i8* %44, i32 %45 ; [#uses=1]
+ %47 = getelementptr inbounds %struct.MatchState* %ms, i32 0, i32 1 ; [#uses=1]
+ store i8* %46, i8** %47, align 4
+ br label %48
+
+; <label>:48 ; preds = %102, %37
+ %49 = load i32* %n, align 4 ; [#uses=1]
+ %50 = load i32* %max_s, align 4 ; [#uses=1]
+ %51 = icmp slt i32 %49, %50 ; [#uses=1]
+ br i1 %51, label %52, label %103
+
+; <label>:52 ; preds = %48
+ %53 = getelementptr inbounds %struct.MatchState* %ms, i32 0, i32 3 ; [#uses=1]
+ store i32 0, i32* %53, align 4
+ %54 = load i8** %src, align 4 ; [#uses=1]
+ %55 = load i8** %p, align 4 ; [#uses=1]
+ %56 = call i8* @_Z5matchP10MatchStatePKcS2_(%struct.MatchState* %ms, i8* %54, i8* %55) ; [#uses=1]
+ store i8* %56, i8** %e, align 4
+ %57 = load i8** %e, align 4 ; [#uses=1]
+ %58 = icmp ne i8* %57, null ; [#uses=1]
+ br i1 %58, label %59, label %64
+
+; <label>:59 ; preds = %52
+ %60 = load i32* %n, align 4 ; [#uses=1]
+ %61 = add nsw i32 %60, 1 ; [#uses=1]
+ store i32 %61, i32* %n, align 4
+ %62 = load i8** %src, align 4 ; [#uses=1]
+ %63 = load i8** %e, align 4 ; [#uses=1]
+ call void @_Z9add_valueP10MatchStateP11luaL_BufferPKcS4_(%struct.MatchState* %ms, %struct.luaL_Buffer* %b, i8* %62, i8* %63)
+ br label %64
+
+; <label>:64 ; preds = %59, %52
+ %65 = load i8** %e, align 4 ; [#uses=1]
+ %66 = icmp ne i8* %65, null ; [#uses=1]
+ br i1 %66, label %67, label %73
+
+; <label>:67 ; preds = %64
+ %68 = load i8** %e, align 4 ; [#uses=1]
+ %69 = load i8** %src, align 4 ; [#uses=1]
+ %70 = icmp ugt i8* %68, %69 ; [#uses=1]
+ br i1 %70, label %71, label %73
+
+; <label>:71 ; preds = %67
+ %72 = load i8** %e, align 4 ; [#uses=1]
+ store i8* %72, i8** %src, align 4
+ br label %98
+
+; <label>:73 ; preds = %67, %64
+ %74 = load i8** %src, align 4 ; [#uses=1]
+ %75 = getelementptr inbounds %struct.MatchState* %ms, i32 0, i32 1 ; [#uses=1]
+ %76 = load i8** %75, align 4 ; [#uses=1]
+ %77 = icmp ult i8* %74, %76 ; [#uses=1]
+ br i1 %77, label %78, label %96
+
+; <label>:78 ; preds = %73
+ %79 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=1]
+ %80 = load i8** %79, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 3 ; [#uses=1]
+ %82 = getelementptr inbounds [8192 x i8]* %81, i32 0, i32 0 ; [#uses=1]
+ %83 = getelementptr inbounds i8* %82, i32 8192 ; [#uses=1]
+ %84 = icmp ult i8* %80, %83 ; [#uses=1]
+ br i1 %84, label %88, label %85
+
+; <label>:85 ; preds = %78
+ %86 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %b) ; [#uses=1]
+ %87 = icmp ne i8* %86, null ; [#uses=1]
+ br label %88
+
+; <label>:88 ; preds = %85, %78
+ %89 = phi i1 [ true, %78 ], [ %87, %85 ] ; [#uses=0]
+ %90 = load i8** %src, align 4 ; [#uses=2]
+ %91 = getelementptr inbounds i8* %90, i32 1 ; [#uses=1]
+ store i8* %91, i8** %src, align 4
+ %92 = load i8* %90 ; [#uses=1]
+ %93 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=2]
+ %94 = load i8** %93, align 4 ; [#uses=2]
+ %95 = getelementptr inbounds i8* %94, i32 1 ; [#uses=1]
+ store i8* %95, i8** %93, align 4
+ store i8 %92, i8* %94
+ br label %97
+
+; <label>:96 ; preds = %73
+ br label %103
+
+; <label>:97 ; preds = %88
+ br label %98
+
+; <label>:98 ; preds = %97, %71
+ %99 = load i32* %anchor, align 4 ; [#uses=1]
+ %100 = icmp ne i32 %99, 0 ; [#uses=1]
+ br i1 %100, label %101, label %102
+
+; <label>:101 ; preds = %98
+ br label %103
+
+; <label>:102 ; preds = %98
+ br label %48
+
+; <label>:103 ; preds = %101, %96, %48
+ %104 = load i8** %src, align 4 ; [#uses=1]
+ %105 = getelementptr inbounds %struct.MatchState* %ms, i32 0, i32 1 ; [#uses=1]
+ %106 = load i8** %105, align 4 ; [#uses=1]
+ %107 = load i8** %src, align 4 ; [#uses=1]
+ %108 = ptrtoint i8* %106 to i32 ; [#uses=1]
+ %109 = ptrtoint i8* %107 to i32 ; [#uses=1]
+ %110 = sub i32 %108, %109 ; [#uses=1]
+ call void @_Z15luaL_addlstringP11luaL_BufferPKcj(%struct.luaL_Buffer* %b, i8* %104, i32 %110)
+ call void @_Z15luaL_pushresultP11luaL_Buffer(%struct.luaL_Buffer* %b)
+ %111 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %112 = load i32* %n, align 4 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %111, i32 %112)
+ ret i32 2
+}
+
+; [#uses=1]
+define internal i32 @_Z7str_lenP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %l = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %2, i32 1, i32* %l) ; [#uses=0]
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %l, align 4 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %4, i32 %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z9str_lowerP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %l = alloca i32, align 4 ; [#uses=2]
+ %i = alloca i32, align 4 ; [#uses=5]
+ %b = alloca %struct.luaL_Buffer, align 4 ; [#uses=6]
+ %s = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %2, i32 1, i32* %l) ; [#uses=1]
+ store i8* %3, i8** %s, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_buffinitP9lua_StateP11luaL_Buffer(%struct.lua_State* %4, %struct.luaL_Buffer* %b)
+ store i32 0, i32* %i, align 4
+ br label %5
+
+; <label>:5 ; preds = %31, %0
+ %6 = load i32* %i, align 4 ; [#uses=1]
+ %7 = load i32* %l, align 4 ; [#uses=1]
+ %8 = icmp ult i32 %6, %7 ; [#uses=1]
+ br i1 %8, label %9, label %34
+
+; <label>:9 ; preds = %5
+ %10 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=1]
+ %11 = load i8** %10, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 3 ; [#uses=1]
+ %13 = getelementptr inbounds [8192 x i8]* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = getelementptr inbounds i8* %13, i32 8192 ; [#uses=1]
+ %15 = icmp ult i8* %11, %14 ; [#uses=1]
+ br i1 %15, label %19, label %16
+
+; <label>:16 ; preds = %9
+ %17 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %b) ; [#uses=1]
+ %18 = icmp ne i8* %17, null ; [#uses=1]
+ br label %19
+
+; <label>:19 ; preds = %16, %9
+ %20 = phi i1 [ true, %9 ], [ %18, %16 ] ; [#uses=0]
+ %21 = load i32* %i, align 4 ; [#uses=1]
+ %22 = load i8** %s, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds i8* %22, i32 %21 ; [#uses=1]
+ %24 = load i8* %23 ; [#uses=1]
+ %25 = zext i8 %24 to i32 ; [#uses=1]
+ %26 = call i32 @tolower(i32 %25) nounwind ; [#uses=1]
+ %27 = trunc i32 %26 to i8 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=2]
+ %29 = load i8** %28, align 4 ; [#uses=2]
+ %30 = getelementptr inbounds i8* %29, i32 1 ; [#uses=1]
+ store i8* %30, i8** %28, align 4
+ store i8 %27, i8* %29
+ br label %31
+
+; <label>:31 ; preds = %19
+ %32 = load i32* %i, align 4 ; [#uses=1]
+ %33 = add i32 %32, 1 ; [#uses=1]
+ store i32 %33, i32* %i, align 4
+ br label %5
+
+; <label>:34 ; preds = %5
+ call void @_Z15luaL_pushresultP11luaL_Buffer(%struct.luaL_Buffer* %b)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z9str_matchP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z12str_find_auxP9lua_Statei(%struct.lua_State* %2, i32 0) ; [#uses=1]
+ ret i32 %3
+}
+
+; [#uses=1]
+define internal i32 @_Z7str_repP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %l = alloca i32, align 4 ; [#uses=2]
+ %b = alloca %struct.luaL_Buffer, align 4 ; [#uses=3]
+ %s = alloca i8*, align 4 ; [#uses=2]
+ %n = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %2, i32 1, i32* %l) ; [#uses=1]
+ store i8* %3, i8** %s, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %4, i32 2) ; [#uses=1]
+ store i32 %5, i32* %n, align 4
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_buffinitP9lua_StateP11luaL_Buffer(%struct.lua_State* %6, %struct.luaL_Buffer* %b)
+ br label %7
+
+; <label>:7 ; preds = %11, %0
+ %8 = load i32* %n, align 4 ; [#uses=2]
+ %9 = add nsw i32 %8, -1 ; [#uses=1]
+ store i32 %9, i32* %n, align 4
+ %10 = icmp sgt i32 %8, 0 ; [#uses=1]
+ br i1 %10, label %11, label %14
+
+; <label>:11 ; preds = %7
+ %12 = load i8** %s, align 4 ; [#uses=1]
+ %13 = load i32* %l, align 4 ; [#uses=1]
+ call void @_Z15luaL_addlstringP11luaL_BufferPKcj(%struct.luaL_Buffer* %b, i8* %12, i32 %13)
+ br label %7
+
+; <label>:14 ; preds = %7
+ call void @_Z15luaL_pushresultP11luaL_Buffer(%struct.luaL_Buffer* %b)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z11str_reverseP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %l = alloca i32, align 4 ; [#uses=4]
+ %b = alloca %struct.luaL_Buffer, align 4 ; [#uses=6]
+ %s = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %2, i32 1, i32* %l) ; [#uses=1]
+ store i8* %3, i8** %s, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_buffinitP9lua_StateP11luaL_Buffer(%struct.lua_State* %4, %struct.luaL_Buffer* %b)
+ br label %5
+
+; <label>:5 ; preds = %19, %0
+ %6 = load i32* %l, align 4 ; [#uses=2]
+ %7 = add i32 %6, -1 ; [#uses=1]
+ store i32 %7, i32* %l, align 4
+ %8 = icmp ne i32 %6, 0 ; [#uses=1]
+ br i1 %8, label %9, label %28
+
+; <label>:9 ; preds = %5
+ %10 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=1]
+ %11 = load i8** %10, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 3 ; [#uses=1]
+ %13 = getelementptr inbounds [8192 x i8]* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = getelementptr inbounds i8* %13, i32 8192 ; [#uses=1]
+ %15 = icmp ult i8* %11, %14 ; [#uses=1]
+ br i1 %15, label %19, label %16
+
+; <label>:16 ; preds = %9
+ %17 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %b) ; [#uses=1]
+ %18 = icmp ne i8* %17, null ; [#uses=1]
+ br label %19
+
+; <label>:19 ; preds = %16, %9
+ %20 = phi i1 [ true, %9 ], [ %18, %16 ] ; [#uses=0]
+ %21 = load i32* %l, align 4 ; [#uses=1]
+ %22 = load i8** %s, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds i8* %22, i32 %21 ; [#uses=1]
+ %24 = load i8* %23 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=2]
+ %26 = load i8** %25, align 4 ; [#uses=2]
+ %27 = getelementptr inbounds i8* %26, i32 1 ; [#uses=1]
+ store i8* %27, i8** %25, align 4
+ store i8 %24, i8* %26
+ br label %5
+
+; <label>:28 ; preds = %5
+ call void @_Z15luaL_pushresultP11luaL_Buffer(%struct.luaL_Buffer* %b)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z7str_subP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %l = alloca i32, align 4 ; [#uses=5]
+ %s = alloca i8*, align 4 ; [#uses=2]
+ %start = alloca i32, align 4 ; [#uses=6]
+ %end = alloca i32, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %2, i32 1, i32* %l) ; [#uses=1]
+ store i8* %3, i8** %s, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z17luaL_checkintegerP9lua_Statei(%struct.lua_State* %4, i32 2) ; [#uses=1]
+ %6 = load i32* %l, align 4 ; [#uses=1]
+ %7 = call i32 @_Z8posrelatij(i32 %5, i32 %6) ; [#uses=1]
+ store i32 %7, i32* %start, align 4
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = call i32 @_Z15luaL_optintegerP9lua_Stateii(%struct.lua_State* %8, i32 3, i32 -1) ; [#uses=1]
+ %10 = load i32* %l, align 4 ; [#uses=1]
+ %11 = call i32 @_Z8posrelatij(i32 %9, i32 %10) ; [#uses=1]
+ store i32 %11, i32* %end, align 4
+ %12 = load i32* %start, align 4 ; [#uses=1]
+ %13 = icmp slt i32 %12, 1 ; [#uses=1]
+ br i1 %13, label %14, label %15
+
+; <label>:14 ; preds = %0
+ store i32 1, i32* %start, align 4
+ br label %15
+
+; <label>:15 ; preds = %14, %0
+ %16 = load i32* %end, align 4 ; [#uses=1]
+ %17 = load i32* %l, align 4 ; [#uses=1]
+ %18 = icmp sgt i32 %16, %17 ; [#uses=1]
+ br i1 %18, label %19, label %21
+
+; <label>:19 ; preds = %15
+ %20 = load i32* %l, align 4 ; [#uses=1]
+ store i32 %20, i32* %end, align 4
+ br label %21
+
+; <label>:21 ; preds = %19, %15
+ %22 = load i32* %start, align 4 ; [#uses=1]
+ %23 = load i32* %end, align 4 ; [#uses=1]
+ %24 = icmp sle i32 %22, %23 ; [#uses=1]
+ br i1 %24, label %25, label %35
+
+; <label>:25 ; preds = %21
+ %26 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %27 = load i8** %s, align 4 ; [#uses=1]
+ %28 = load i32* %start, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds i8* %27, i32 %28 ; [#uses=1]
+ %30 = getelementptr inbounds i8* %29, i32 -1 ; [#uses=1]
+ %31 = load i32* %end, align 4 ; [#uses=1]
+ %32 = load i32* %start, align 4 ; [#uses=1]
+ %33 = sub nsw i32 %31, %32 ; [#uses=1]
+ %34 = add nsw i32 %33, 1 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %26, i8* %30, i32 %34)
+ br label %37
+
+; <label>:35 ; preds = %21
+ %36 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %36, i8* getelementptr inbounds ([1 x i8]* @.str16514, i32 0, i32 0), i32 0)
+ br label %37
+
+; <label>:37 ; preds = %35, %25
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z9str_upperP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %l = alloca i32, align 4 ; [#uses=2]
+ %i = alloca i32, align 4 ; [#uses=5]
+ %b = alloca %struct.luaL_Buffer, align 4 ; [#uses=6]
+ %s = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %2, i32 1, i32* %l) ; [#uses=1]
+ store i8* %3, i8** %s, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_buffinitP9lua_StateP11luaL_Buffer(%struct.lua_State* %4, %struct.luaL_Buffer* %b)
+ store i32 0, i32* %i, align 4
+ br label %5
+
+; <label>:5 ; preds = %31, %0
+ %6 = load i32* %i, align 4 ; [#uses=1]
+ %7 = load i32* %l, align 4 ; [#uses=1]
+ %8 = icmp ult i32 %6, %7 ; [#uses=1]
+ br i1 %8, label %9, label %34
+
+; <label>:9 ; preds = %5
+ %10 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=1]
+ %11 = load i8** %10, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 3 ; [#uses=1]
+ %13 = getelementptr inbounds [8192 x i8]* %12, i32 0, i32 0 ; [#uses=1]
+ %14 = getelementptr inbounds i8* %13, i32 8192 ; [#uses=1]
+ %15 = icmp ult i8* %11, %14 ; [#uses=1]
+ br i1 %15, label %19, label %16
+
+; <label>:16 ; preds = %9
+ %17 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %b) ; [#uses=1]
+ %18 = icmp ne i8* %17, null ; [#uses=1]
+ br label %19
+
+; <label>:19 ; preds = %16, %9
+ %20 = phi i1 [ true, %9 ], [ %18, %16 ] ; [#uses=0]
+ %21 = load i32* %i, align 4 ; [#uses=1]
+ %22 = load i8** %s, align 4 ; [#uses=1]
+ %23 = getelementptr inbounds i8* %22, i32 %21 ; [#uses=1]
+ %24 = load i8* %23 ; [#uses=1]
+ %25 = zext i8 %24 to i32 ; [#uses=1]
+ %26 = call i32 @toupper(i32 %25) nounwind ; [#uses=1]
+ %27 = trunc i32 %26 to i8 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.luaL_Buffer* %b, i32 0, i32 0 ; [#uses=2]
+ %29 = load i8** %28, align 4 ; [#uses=2]
+ %30 = getelementptr inbounds i8* %29, i32 1 ; [#uses=1]
+ store i8* %30, i8** %28, align 4
+ store i8 %27, i8* %29
+ br label %31
+
+; <label>:31 ; preds = %19
+ %32 = load i32* %i, align 4 ; [#uses=1]
+ %33 = add i32 %32, 1 ; [#uses=1]
+ store i32 %33, i32* %i, align 4
+ br label %5
+
+; <label>:34 ; preds = %5
+ call void @_Z15luaL_pushresultP11luaL_Buffer(%struct.luaL_Buffer* %b)
+ ret i32 1
+}
+
+; [#uses=1]
+define i32 @_Z14luaopen_stringP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_registerP9lua_StatePKcPK8luaL_Reg(%struct.lua_State* %2, i8* getelementptr inbounds ([7 x i8]* @.str15513, i32 0, i32 0), %struct.luaL_Reg* getelementptr inbounds ([16 x %struct.luaL_Reg]* @_ZL6strlib, i32 0, i32 0))
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %3, i32 -1, i8* getelementptr inbounds ([7 x i8]* @.str6504, i32 0, i32 0))
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %4, i32 -2, i8* getelementptr inbounds ([6 x i8]* @.str5503, i32 0, i32 0))
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15createmetatableP9lua_State(%struct.lua_State* %5)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal void @_Z15createmetatableP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_createtableP9lua_Stateii(%struct.lua_State* %2, i32 0, i32 1)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %3, i8* getelementptr inbounds ([1 x i8]* @.str16514, i32 0, i32 0), i32 0)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %4, i32 -2)
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = call i32 @_Z16lua_setmetatableP9lua_Statei(%struct.lua_State* %5, i32 -2) ; [#uses=0]
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %7, i32 -2)
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %8, i32 -2)
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %9, i32 -2, i8* getelementptr inbounds ([8 x i8]* @.str17515, i32 0, i32 0))
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %10, i32 -2)
+ ret void
+}
+
+; [#uses=1]
+declare i32 @toupper(i32) nounwind
+
+; [#uses=5]
+define internal i32 @_Z8posrelatij(i32 %pos, i32 %len) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=6]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ store i32 %pos, i32* %1, align 4
+ store i32 %len, i32* %2, align 4
+ %3 = load i32* %1, align 4 ; [#uses=1]
+ %4 = icmp slt i32 %3, 0 ; [#uses=1]
+ br i1 %4, label %5, label %10
+
+; <label>:5 ; preds = %0
+ %6 = load i32* %2, align 4 ; [#uses=1]
+ %7 = add nsw i32 %6, 1 ; [#uses=1]
+ %8 = load i32* %1, align 4 ; [#uses=1]
+ %9 = add nsw i32 %8, %7 ; [#uses=1]
+ store i32 %9, i32* %1, align 4
+ br label %10
+
+; <label>:10 ; preds = %5, %0
+ %11 = load i32* %1, align 4 ; [#uses=1]
+ %12 = icmp sge i32 %11, 0 ; [#uses=1]
+ %13 = load i32* %1, align 4 ; [#uses=1]
+ %14 = select i1 %12, i32 %13, i32 0 ; [#uses=1]
+ ret i32 %14
+}
+
+; [#uses=2]
+define internal i32 @_Z12str_find_auxP9lua_Statei(%struct.lua_State* %L, i32 %find) {
+ %1 = alloca i32, align 4 ; [#uses=5]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=11]
+ %3 = alloca i32, align 4 ; [#uses=3]
+ %l1 = alloca i32, align 4 ; [#uses=6]
+ %l2 = alloca i32, align 4 ; [#uses=3]
+ %s = alloca i8*, align 4 ; [#uses=9]
+ %p = alloca i8*, align 4 ; [#uses=7]
+ %init = alloca i32, align 4 ; [#uses=8]
+ %s2 = alloca i8*, align 4 ; [#uses=4]
+ %ms = alloca %struct.MatchState, align 4 ; [#uses=8]
+ %anchor = alloca i32, align 4 ; [#uses=2]
+ %s1 = alloca i8*, align 4 ; [#uses=6]
+ %res = alloca i8*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i32 %find, i32* %3, align 4
+ %4 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %5 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %4, i32 1, i32* %l1) ; [#uses=1]
+ store i8* %5, i8** %s, align 4
+ %6 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %7 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %6, i32 2, i32* %l2) ; [#uses=1]
+ store i8* %7, i8** %p, align 4
+ %8 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %9 = call i32 @_Z15luaL_optintegerP9lua_Stateii(%struct.lua_State* %8, i32 3, i32 1) ; [#uses=1]
+ %10 = load i32* %l1, align 4 ; [#uses=1]
+ %11 = call i32 @_Z8posrelatij(i32 %9, i32 %10) ; [#uses=1]
+ %12 = sub nsw i32 %11, 1 ; [#uses=1]
+ store i32 %12, i32* %init, align 4
+ %13 = load i32* %init, align 4 ; [#uses=1]
+ %14 = icmp slt i32 %13, 0 ; [#uses=1]
+ br i1 %14, label %15, label %16
+
+; <label>:15 ; preds = %0
+ store i32 0, i32* %init, align 4
+ br label %23
+
+; <label>:16 ; preds = %0
+ %17 = load i32* %init, align 4 ; [#uses=1]
+ %18 = load i32* %l1, align 4 ; [#uses=1]
+ %19 = icmp ugt i32 %17, %18 ; [#uses=1]
+ br i1 %19, label %20, label %22
+
+; <label>:20 ; preds = %16
+ %21 = load i32* %l1, align 4 ; [#uses=1]
+ store i32 %21, i32* %init, align 4
+ br label %22
+
+; <label>:22 ; preds = %20, %16
+ br label %23
+
+; <label>:23 ; preds = %22, %15
+ %24 = load i32* %3, align 4 ; [#uses=1]
+ %25 = icmp ne i32 %24, 0 ; [#uses=1]
+ br i1 %25, label %26, label %63
+
+; <label>:26 ; preds = %23
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %28 = call i32 @_Z13lua_tobooleanP9lua_Statei(%struct.lua_State* %27, i32 4) ; [#uses=1]
+ %29 = icmp ne i32 %28, 0 ; [#uses=1]
+ br i1 %29, label %34, label %30
+
+; <label>:30 ; preds = %26
+ %31 = load i8** %p, align 4 ; [#uses=1]
+ %32 = call i8* @strpbrk(i8* %31, i8* getelementptr inbounds ([11 x i8]* @.str18516, i32 0, i32 0)) ; [#uses=1]
+ %33 = icmp eq i8* %32, null ; [#uses=1]
+ br i1 %33, label %34, label %63
+
+; <label>:34 ; preds = %30, %26
+ %35 = load i8** %s, align 4 ; [#uses=1]
+ %36 = load i32* %init, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds i8* %35, i32 %36 ; [#uses=1]
+ %38 = load i32* %l1, align 4 ; [#uses=1]
+ %39 = load i32* %init, align 4 ; [#uses=1]
+ %40 = sub i32 %38, %39 ; [#uses=1]
+ %41 = load i8** %p, align 4 ; [#uses=1]
+ %42 = load i32* %l2, align 4 ; [#uses=1]
+ %43 = call i8* @_Z8lmemfindPKcjS0_j(i8* %37, i32 %40, i8* %41, i32 %42) ; [#uses=1]
+ store i8* %43, i8** %s2, align 4
+ %44 = load i8** %s2, align 4 ; [#uses=1]
+ %45 = icmp ne i8* %44, null ; [#uses=1]
+ br i1 %45, label %46, label %62
+
+; <label>:46 ; preds = %34
+ %47 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %48 = load i8** %s2, align 4 ; [#uses=1]
+ %49 = load i8** %s, align 4 ; [#uses=1]
+ %50 = ptrtoint i8* %48 to i32 ; [#uses=1]
+ %51 = ptrtoint i8* %49 to i32 ; [#uses=1]
+ %52 = sub i32 %50, %51 ; [#uses=1]
+ %53 = add nsw i32 %52, 1 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %47, i32 %53)
+ %54 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %55 = load i8** %s2, align 4 ; [#uses=1]
+ %56 = load i8** %s, align 4 ; [#uses=1]
+ %57 = ptrtoint i8* %55 to i32 ; [#uses=1]
+ %58 = ptrtoint i8* %56 to i32 ; [#uses=1]
+ %59 = sub i32 %57, %58 ; [#uses=1]
+ %60 = load i32* %l2, align 4 ; [#uses=1]
+ %61 = add i32 %59, %60 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %54, i32 %61)
+ store i32 2, i32* %1
+ br label %130
+
+; <label>:62 ; preds = %34
+ br label %128
+
+; <label>:63 ; preds = %30, %23
+ %64 = load i8** %p, align 4 ; [#uses=1]
+ %65 = load i8* %64 ; [#uses=1]
+ %66 = sext i8 %65 to i32 ; [#uses=1]
+ %67 = icmp eq i32 %66, 94 ; [#uses=1]
+ br i1 %67, label %68, label %71
+
+; <label>:68 ; preds = %63
+ %69 = load i8** %p, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds i8* %69, i32 1 ; [#uses=1]
+ store i8* %70, i8** %p, align 4
+ br label %72
+
+; <label>:71 ; preds = %63
+ br label %72
+
+; <label>:72 ; preds = %71, %68
+ %73 = phi i32 [ 1, %68 ], [ 0, %71 ] ; [#uses=1]
+ store i32 %73, i32* %anchor, align 4
+ %74 = load i8** %s, align 4 ; [#uses=1]
+ %75 = load i32* %init, align 4 ; [#uses=1]
+ %76 = getelementptr inbounds i8* %74, i32 %75 ; [#uses=1]
+ store i8* %76, i8** %s1, align 4
+ %77 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %78 = getelementptr inbounds %struct.MatchState* %ms, i32 0, i32 2 ; [#uses=1]
+ store %struct.lua_State* %77, %struct.lua_State** %78, align 4
+ %79 = load i8** %s, align 4 ; [#uses=1]
+ %80 = getelementptr inbounds %struct.MatchState* %ms, i32 0, i32 0 ; [#uses=1]
+ store i8* %79, i8** %80, align 4
+ %81 = load i8** %s, align 4 ; [#uses=1]
+ %82 = load i32* %l1, align 4 ; [#uses=1]
+ %83 = getelementptr inbounds i8* %81, i32 %82 ; [#uses=1]
+ %84 = getelementptr inbounds %struct.MatchState* %ms, i32 0, i32 1 ; [#uses=1]
+ store i8* %83, i8** %84, align 4
+ br label %85
+
+; <label>:85 ; preds = %125, %72
+ %86 = getelementptr inbounds %struct.MatchState* %ms, i32 0, i32 3 ; [#uses=1]
+ store i32 0, i32* %86, align 4
+ %87 = load i8** %s1, align 4 ; [#uses=1]
+ %88 = load i8** %p, align 4 ; [#uses=1]
+ %89 = call i8* @_Z5matchP10MatchStatePKcS2_(%struct.MatchState* %ms, i8* %87, i8* %88) ; [#uses=2]
+ store i8* %89, i8** %res, align 4
+ %90 = icmp ne i8* %89, null ; [#uses=1]
+ br i1 %90, label %91, label %114
+
+; <label>:91 ; preds = %85
+ %92 = load i32* %3, align 4 ; [#uses=1]
+ %93 = icmp ne i32 %92, 0 ; [#uses=1]
+ br i1 %93, label %94, label %110
+
+; <label>:94 ; preds = %91
+ %95 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %96 = load i8** %s1, align 4 ; [#uses=1]
+ %97 = load i8** %s, align 4 ; [#uses=1]
+ %98 = ptrtoint i8* %96 to i32 ; [#uses=1]
+ %99 = ptrtoint i8* %97 to i32 ; [#uses=1]
+ %100 = sub i32 %98, %99 ; [#uses=1]
+ %101 = add nsw i32 %100, 1 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %95, i32 %101)
+ %102 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %103 = load i8** %res, align 4 ; [#uses=1]
+ %104 = load i8** %s, align 4 ; [#uses=1]
+ %105 = ptrtoint i8* %103 to i32 ; [#uses=1]
+ %106 = ptrtoint i8* %104 to i32 ; [#uses=1]
+ %107 = sub i32 %105, %106 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %102, i32 %107)
+ %108 = call i32 @_Z13push_capturesP10MatchStatePKcS2_(%struct.MatchState* %ms, i8* null, i8* null) ; [#uses=1]
+ %109 = add nsw i32 %108, 2 ; [#uses=1]
+ store i32 %109, i32* %1
+ br label %130
+
+; <label>:110 ; preds = %91
+ %111 = load i8** %s1, align 4 ; [#uses=1]
+ %112 = load i8** %res, align 4 ; [#uses=1]
+ %113 = call i32 @_Z13push_capturesP10MatchStatePKcS2_(%struct.MatchState* %ms, i8* %111, i8* %112) ; [#uses=1]
+ store i32 %113, i32* %1
+ br label %130
+
+; <label>:114 ; preds = %85
+ br label %115
+
+; <label>:115 ; preds = %114
+ %116 = load i8** %s1, align 4 ; [#uses=2]
+ %117 = getelementptr inbounds i8* %116, i32 1 ; [#uses=1]
+ store i8* %117, i8** %s1, align 4
+ %118 = getelementptr inbounds %struct.MatchState* %ms, i32 0, i32 1 ; [#uses=1]
+ %119 = load i8** %118, align 4 ; [#uses=1]
+ %120 = icmp ult i8* %116, %119 ; [#uses=1]
+ br i1 %120, label %121, label %125
+
+; <label>:121 ; preds = %115
+ %122 = load i32* %anchor, align 4 ; [#uses=1]
+ %123 = icmp ne i32 %122, 0 ; [#uses=1]
+ %124 = xor i1 %123, true ; [#uses=1]
+ br label %125
+
+; <label>:125 ; preds = %121, %115
+ %126 = phi i1 [ false, %115 ], [ %124, %121 ] ; [#uses=1]
+ br i1 %126, label %85, label %127
+
+; <label>:127 ; preds = %125
+ br label %128
+
+; <label>:128 ; preds = %127, %62
+ %129 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %129)
+ store i32 1, i32* %1
+ br label %130
+
+; <label>:130 ; preds = %128, %110, %94, %46
+ %131 = load i32* %1 ; [#uses=1]
+ ret i32 %131
+}
+
+; [#uses=1]
+declare i8* @strpbrk(i8*, i8*) nounwind readonly
+
+; [#uses=1]
+define internal i8* @_Z8lmemfindPKcjS0_j(i8* %s1, i32 %l1, i8* %s2, i32 %l2) nounwind {
+ %1 = alloca i8*, align 4 ; [#uses=5]
+ %2 = alloca i8*, align 4 ; [#uses=5]
+ %3 = alloca i32, align 4 ; [#uses=8]
+ %4 = alloca i8*, align 4 ; [#uses=3]
+ %5 = alloca i32, align 4 ; [#uses=7]
+ %init = alloca i8*, align 4 ; [#uses=7]
+ store i8* %s1, i8** %2, align 4
+ store i32 %l1, i32* %3, align 4
+ store i8* %s2, i8** %4, align 4
+ store i32 %l2, i32* %5, align 4
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = icmp eq i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %10
+
+; <label>:8 ; preds = %0
+ %9 = load i8** %2, align 4 ; [#uses=1]
+ store i8* %9, i8** %1
+ br label %57
+
+; <label>:10 ; preds = %0
+ %11 = load i32* %5, align 4 ; [#uses=1]
+ %12 = load i32* %3, align 4 ; [#uses=1]
+ %13 = icmp ugt i32 %11, %12 ; [#uses=1]
+ br i1 %13, label %14, label %15
+
+; <label>:14 ; preds = %10
+ store i8* null, i8** %1
+ br label %57
+
+; <label>:15 ; preds = %10
+ %16 = load i32* %5, align 4 ; [#uses=1]
+ %17 = add i32 %16, -1 ; [#uses=1]
+ store i32 %17, i32* %5, align 4
+ %18 = load i32* %3, align 4 ; [#uses=1]
+ %19 = load i32* %5, align 4 ; [#uses=1]
+ %20 = sub i32 %18, %19 ; [#uses=1]
+ store i32 %20, i32* %3, align 4
+ br label %21
+
+; <label>:21 ; preds = %55, %15
+ %22 = load i32* %3, align 4 ; [#uses=1]
+ %23 = icmp ugt i32 %22, 0 ; [#uses=1]
+ br i1 %23, label %24, label %32
+
+; <label>:24 ; preds = %21
+ %25 = load i8** %2, align 4 ; [#uses=1]
+ %26 = load i8** %4, align 4 ; [#uses=1]
+ %27 = load i8* %26 ; [#uses=1]
+ %28 = sext i8 %27 to i32 ; [#uses=1]
+ %29 = load i32* %3, align 4 ; [#uses=1]
+ %30 = call i8* @memchr(i8* %25, i32 %28, i32 %29) ; [#uses=2]
+ store i8* %30, i8** %init, align 4
+ %31 = icmp ne i8* %30, null ; [#uses=1]
+ br label %32
+
+; <label>:32 ; preds = %24, %21
+ %33 = phi i1 [ false, %21 ], [ %31, %24 ] ; [#uses=1]
+ br i1 %33, label %34, label %56
+
+; <label>:34 ; preds = %32
+ %35 = load i8** %init, align 4 ; [#uses=1]
+ %36 = getelementptr inbounds i8* %35, i32 1 ; [#uses=1]
+ store i8* %36, i8** %init, align 4
+ %37 = load i8** %init, align 4 ; [#uses=1]
+ %38 = load i8** %4, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds i8* %38, i32 1 ; [#uses=1]
+ %40 = load i32* %5, align 4 ; [#uses=1]
+ %41 = call i32 @memcmp(i8* %37, i8* %39, i32 %40) nounwind readonly ; [#uses=1]
+ %42 = icmp eq i32 %41, 0 ; [#uses=1]
+ br i1 %42, label %43, label %46
+
+; <label>:43 ; preds = %34
+ %44 = load i8** %init, align 4 ; [#uses=1]
+ %45 = getelementptr inbounds i8* %44, i32 -1 ; [#uses=1]
+ store i8* %45, i8** %1
+ br label %57
+
+; <label>:46 ; preds = %34
+ %47 = load i8** %init, align 4 ; [#uses=1]
+ %48 = load i8** %2, align 4 ; [#uses=1]
+ %49 = ptrtoint i8* %47 to i32 ; [#uses=1]
+ %50 = ptrtoint i8* %48 to i32 ; [#uses=1]
+ %51 = sub i32 %49, %50 ; [#uses=1]
+ %52 = load i32* %3, align 4 ; [#uses=1]
+ %53 = sub i32 %52, %51 ; [#uses=1]
+ store i32 %53, i32* %3, align 4
+ %54 = load i8** %init, align 4 ; [#uses=1]
+ store i8* %54, i8** %2, align 4
+ br label %55
+
+; <label>:55 ; preds = %46
+ br label %21
+
+; <label>:56 ; preds = %32
+ store i8* null, i8** %1
+ br label %57
+
+; <label>:57 ; preds = %56, %43, %14, %8
+ %58 = load i8** %1 ; [#uses=1]
+ ret i8* %58
+}
+
+; [#uses=8]
+define internal i8* @_Z5matchP10MatchStatePKcS2_(%struct.MatchState* %ms, i8* %s, i8* %p) {
+ %1 = alloca i8*, align 4 ; [#uses=14]
+ %2 = alloca %struct.MatchState*, align 4 ; [#uses=16]
+ %3 = alloca i8*, align 4 ; [#uses=24]
+ %4 = alloca i8*, align 4 ; [#uses=29]
+ %ep = alloca i8*, align 4 ; [#uses=4]
+ %previous = alloca i8, align 1 ; [#uses=2]
+ %ep1 = alloca i8*, align 4 ; [#uses=9]
+ %m = alloca i32, align 4 ; [#uses=4]
+ %res = alloca i8*, align 4 ; [#uses=2]
+ store %struct.MatchState* %ms, %struct.MatchState** %2, align 4
+ store i8* %s, i8** %3, align 4
+ store i8* %p, i8** %4, align 4
+ br label %5
+
+; <label>:5 ; preds = %208, %176, %115, %95, %47, %0
+ %6 = load i8** %4, align 4 ; [#uses=1]
+ %7 = load i8* %6 ; [#uses=1]
+ %8 = sext i8 %7 to i32 ; [#uses=1]
+ switch i32 %8, label %139 [
+ i32 40, label %9
+ i32 41, label %27
+ i32 37, label %33
+ i32 0, label %119
+ i32 36, label %121
+ ]
+
+; <label>:9 ; preds = %5
+ %10 = load i8** %4, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds i8* %10, i32 1 ; [#uses=1]
+ %12 = load i8* %11 ; [#uses=1]
+ %13 = sext i8 %12 to i32 ; [#uses=1]
+ %14 = icmp eq i32 %13, 41 ; [#uses=1]
+ br i1 %14, label %15, label %21
+
+; <label>:15 ; preds = %9
+ %16 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %17 = load i8** %3, align 4 ; [#uses=1]
+ %18 = load i8** %4, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds i8* %18, i32 2 ; [#uses=1]
+ %20 = call i8* @_Z13start_captureP10MatchStatePKcS2_i(%struct.MatchState* %16, i8* %17, i8* %19, i32 -2) ; [#uses=1]
+ store i8* %20, i8** %1
+ br label %212
+
+; <label>:21 ; preds = %9
+ %22 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %23 = load i8** %3, align 4 ; [#uses=1]
+ %24 = load i8** %4, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds i8* %24, i32 1 ; [#uses=1]
+ %26 = call i8* @_Z13start_captureP10MatchStatePKcS2_i(%struct.MatchState* %22, i8* %23, i8* %25, i32 -1) ; [#uses=1]
+ store i8* %26, i8** %1
+ br label %212
+
+; <label>:27 ; preds = %5
+ %28 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %29 = load i8** %3, align 4 ; [#uses=1]
+ %30 = load i8** %4, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds i8* %30, i32 1 ; [#uses=1]
+ %32 = call i8* @_Z11end_captureP10MatchStatePKcS2_(%struct.MatchState* %28, i8* %29, i8* %31) ; [#uses=1]
+ store i8* %32, i8** %1
+ br label %212
+
+; <label>:33 ; preds = %5
+ %34 = load i8** %4, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds i8* %34, i32 1 ; [#uses=1]
+ %36 = load i8* %35 ; [#uses=1]
+ %37 = sext i8 %36 to i32 ; [#uses=1]
+ switch i32 %37, label %97 [
+ i32 98, label %38
+ i32 102, label %50
+ ]
+
+; <label>:38 ; preds = %33
+ %39 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %40 = load i8** %3, align 4 ; [#uses=1]
+ %41 = load i8** %4, align 4 ; [#uses=1]
+ %42 = getelementptr inbounds i8* %41, i32 2 ; [#uses=1]
+ %43 = call i8* @_Z12matchbalanceP10MatchStatePKcS2_(%struct.MatchState* %39, i8* %40, i8* %42) ; [#uses=1]
+ store i8* %43, i8** %3, align 4
+ %44 = load i8** %3, align 4 ; [#uses=1]
+ %45 = icmp eq i8* %44, null ; [#uses=1]
+ br i1 %45, label %46, label %47
+
+; <label>:46 ; preds = %38
+ store i8* null, i8** %1
+ br label %212
+
+; <label>:47 ; preds = %38
+ %48 = load i8** %4, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds i8* %48, i32 4 ; [#uses=1]
+ store i8* %49, i8** %4, align 4
+ br label %5
+
+; <label>:50 ; preds = %33
+ %51 = load i8** %4, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds i8* %51, i32 2 ; [#uses=1]
+ store i8* %52, i8** %4, align 4
+ %53 = load i8** %4, align 4 ; [#uses=1]
+ %54 = load i8* %53 ; [#uses=1]
+ %55 = sext i8 %54 to i32 ; [#uses=1]
+ %56 = icmp ne i32 %55, 91 ; [#uses=1]
+ br i1 %56, label %57, label %62
+
+; <label>:57 ; preds = %50
+ %58 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %59 = getelementptr inbounds %struct.MatchState* %58, i32 0, i32 2 ; [#uses=1]
+ %60 = load %struct.lua_State** %59, align 4 ; [#uses=1]
+ %61 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %60, i8* getelementptr inbounds ([35 x i8]* @.str22520, i32 0, i32 0)) ; [#uses=0]
+ br label %62
+
+; <label>:62 ; preds = %57, %50
+ %63 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %64 = load i8** %4, align 4 ; [#uses=1]
+ %65 = call i8* @_Z8classendP10MatchStatePKc(%struct.MatchState* %63, i8* %64) ; [#uses=1]
+ store i8* %65, i8** %ep, align 4
+ %66 = load i8** %3, align 4 ; [#uses=1]
+ %67 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %68 = getelementptr inbounds %struct.MatchState* %67, i32 0, i32 0 ; [#uses=1]
+ %69 = load i8** %68, align 4 ; [#uses=1]
+ %70 = icmp eq i8* %66, %69 ; [#uses=1]
+ br i1 %70, label %71, label %72
+
+; <label>:71 ; preds = %62
+ br label %76
+
+; <label>:72 ; preds = %62
+ %73 = load i8** %3, align 4 ; [#uses=1]
+ %74 = getelementptr inbounds i8* %73, i32 -1 ; [#uses=1]
+ %75 = load i8* %74 ; [#uses=1]
+ br label %76
+
+; <label>:76 ; preds = %72, %71
+ %77 = phi i8 [ 0, %71 ], [ %75, %72 ] ; [#uses=1]
+ store i8 %77, i8* %previous, align 1
+ %78 = load i8* %previous, align 1 ; [#uses=1]
+ %79 = zext i8 %78 to i32 ; [#uses=1]
+ %80 = load i8** %4, align 4 ; [#uses=1]
+ %81 = load i8** %ep, align 4 ; [#uses=1]
+ %82 = getelementptr inbounds i8* %81, i32 -1 ; [#uses=1]
+ %83 = call i32 @_Z17matchbracketclassiPKcS0_(i32 %79, i8* %80, i8* %82) ; [#uses=1]
+ %84 = icmp ne i32 %83, 0 ; [#uses=1]
+ br i1 %84, label %94, label %85
+
+; <label>:85 ; preds = %76
+ %86 = load i8** %3, align 4 ; [#uses=1]
+ %87 = load i8* %86 ; [#uses=1]
+ %88 = zext i8 %87 to i32 ; [#uses=1]
+ %89 = load i8** %4, align 4 ; [#uses=1]
+ %90 = load i8** %ep, align 4 ; [#uses=1]
+ %91 = getelementptr inbounds i8* %90, i32 -1 ; [#uses=1]
+ %92 = call i32 @_Z17matchbracketclassiPKcS0_(i32 %88, i8* %89, i8* %91) ; [#uses=1]
+ %93 = icmp ne i32 %92, 0 ; [#uses=1]
+ br i1 %93, label %95, label %94
+
+; <label>:94 ; preds = %85, %76
+ store i8* null, i8** %1
+ br label %212
+
+; <label>:95 ; preds = %85
+ %96 = load i8** %ep, align 4 ; [#uses=1]
+ store i8* %96, i8** %4, align 4
+ br label %5
+
+; <label>:97 ; preds = %33
+ %98 = load i8** %4, align 4 ; [#uses=1]
+ %99 = getelementptr inbounds i8* %98, i32 1 ; [#uses=1]
+ %100 = load i8* %99 ; [#uses=1]
+ %101 = zext i8 %100 to i32 ; [#uses=1]
+ %102 = call i32 @isdigit(i32 %101) nounwind ; [#uses=1]
+ %103 = icmp ne i32 %102, 0 ; [#uses=1]
+ br i1 %103, label %104, label %118
+
+; <label>:104 ; preds = %97
+ %105 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %106 = load i8** %3, align 4 ; [#uses=1]
+ %107 = load i8** %4, align 4 ; [#uses=1]
+ %108 = getelementptr inbounds i8* %107, i32 1 ; [#uses=1]
+ %109 = load i8* %108 ; [#uses=1]
+ %110 = zext i8 %109 to i32 ; [#uses=1]
+ %111 = call i8* @_Z13match_captureP10MatchStatePKci(%struct.MatchState* %105, i8* %106, i32 %110) ; [#uses=1]
+ store i8* %111, i8** %3, align 4
+ %112 = load i8** %3, align 4 ; [#uses=1]
+ %113 = icmp eq i8* %112, null ; [#uses=1]
+ br i1 %113, label %114, label %115
+
+; <label>:114 ; preds = %104
+ store i8* null, i8** %1
+ br label %212
+
+; <label>:115 ; preds = %104
+ %116 = load i8** %4, align 4 ; [#uses=1]
+ %117 = getelementptr inbounds i8* %116, i32 2 ; [#uses=1]
+ store i8* %117, i8** %4, align 4
+ br label %5
+
+; <label>:118 ; preds = %97
+ br label %140
+
+; <label>:119 ; preds = %5
+ %120 = load i8** %3, align 4 ; [#uses=1]
+ store i8* %120, i8** %1
+ br label %212
+
+; <label>:121 ; preds = %5
+ %122 = load i8** %4, align 4 ; [#uses=1]
+ %123 = getelementptr inbounds i8* %122, i32 1 ; [#uses=1]
+ %124 = load i8* %123 ; [#uses=1]
+ %125 = sext i8 %124 to i32 ; [#uses=1]
+ %126 = icmp eq i32 %125, 0 ; [#uses=1]
+ br i1 %126, label %127, label %138
+
+; <label>:127 ; preds = %121
+ %128 = load i8** %3, align 4 ; [#uses=1]
+ %129 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %130 = getelementptr inbounds %struct.MatchState* %129, i32 0, i32 1 ; [#uses=1]
+ %131 = load i8** %130, align 4 ; [#uses=1]
+ %132 = icmp eq i8* %128, %131 ; [#uses=1]
+ br i1 %132, label %133, label %135
+
+; <label>:133 ; preds = %127
+ %134 = load i8** %3, align 4 ; [#uses=1]
+ br label %136
+
+; <label>:135 ; preds = %127
+ br label %136
+
+; <label>:136 ; preds = %135, %133
+ %137 = phi i8* [ %134, %133 ], [ null, %135 ] ; [#uses=1]
+ store i8* %137, i8** %1
+ br label %212
+
+; <label>:138 ; preds = %121
+ br label %140
+
+; <label>:139 ; preds = %5
+ br label %140
+
+; <label>:140 ; preds = %139, %138, %118
+ %141 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %142 = load i8** %4, align 4 ; [#uses=1]
+ %143 = call i8* @_Z8classendP10MatchStatePKc(%struct.MatchState* %141, i8* %142) ; [#uses=1]
+ store i8* %143, i8** %ep1, align 4
+ %144 = load i8** %3, align 4 ; [#uses=1]
+ %145 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %146 = getelementptr inbounds %struct.MatchState* %145, i32 0, i32 1 ; [#uses=1]
+ %147 = load i8** %146, align 4 ; [#uses=1]
+ %148 = icmp ult i8* %144, %147 ; [#uses=1]
+ br i1 %148, label %149, label %157
+
+; <label>:149 ; preds = %140
+ %150 = load i8** %3, align 4 ; [#uses=1]
+ %151 = load i8* %150 ; [#uses=1]
+ %152 = zext i8 %151 to i32 ; [#uses=1]
+ %153 = load i8** %4, align 4 ; [#uses=1]
+ %154 = load i8** %ep1, align 4 ; [#uses=1]
+ %155 = call i32 @_Z11singlematchiPKcS0_(i32 %152, i8* %153, i8* %154) ; [#uses=1]
+ %156 = icmp ne i32 %155, 0 ; [#uses=1]
+ br label %157
+
+; <label>:157 ; preds = %149, %140
+ %158 = phi i1 [ false, %140 ], [ %156, %149 ] ; [#uses=1]
+ %159 = zext i1 %158 to i32 ; [#uses=1]
+ store i32 %159, i32* %m, align 4
+ %160 = load i8** %ep1, align 4 ; [#uses=1]
+ %161 = load i8* %160 ; [#uses=1]
+ %162 = sext i8 %161 to i32 ; [#uses=1]
+ switch i32 %162, label %204 [
+ i32 63, label %163
+ i32 42, label %179
+ i32 43, label %185
+ i32 45, label %198
+ ]
+
+; <label>:163 ; preds = %157
+ %164 = load i32* %m, align 4 ; [#uses=1]
+ %165 = icmp ne i32 %164, 0 ; [#uses=1]
+ br i1 %165, label %166, label %176
+
+; <label>:166 ; preds = %163
+ %167 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %168 = load i8** %3, align 4 ; [#uses=1]
+ %169 = getelementptr inbounds i8* %168, i32 1 ; [#uses=1]
+ %170 = load i8** %ep1, align 4 ; [#uses=1]
+ %171 = getelementptr inbounds i8* %170, i32 1 ; [#uses=1]
+ %172 = call i8* @_Z5matchP10MatchStatePKcS2_(%struct.MatchState* %167, i8* %169, i8* %171) ; [#uses=2]
+ store i8* %172, i8** %res, align 4
+ %173 = icmp ne i8* %172, null ; [#uses=1]
+ br i1 %173, label %174, label %176
+
+; <label>:174 ; preds = %166
+ %175 = load i8** %res, align 4 ; [#uses=1]
+ store i8* %175, i8** %1
+ br label %212
+
+; <label>:176 ; preds = %166, %163
+ %177 = load i8** %ep1, align 4 ; [#uses=1]
+ %178 = getelementptr inbounds i8* %177, i32 1 ; [#uses=1]
+ store i8* %178, i8** %4, align 4
+ br label %5
+
+; <label>:179 ; preds = %157
+ %180 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %181 = load i8** %3, align 4 ; [#uses=1]
+ %182 = load i8** %4, align 4 ; [#uses=1]
+ %183 = load i8** %ep1, align 4 ; [#uses=1]
+ %184 = call i8* @_Z10max_expandP10MatchStatePKcS2_S2_(%struct.MatchState* %180, i8* %181, i8* %182, i8* %183) ; [#uses=1]
+ store i8* %184, i8** %1
+ br label %212
+
+; <label>:185 ; preds = %157
+ %186 = load i32* %m, align 4 ; [#uses=1]
+ %187 = icmp ne i32 %186, 0 ; [#uses=1]
+ br i1 %187, label %188, label %195
+
+; <label>:188 ; preds = %185
+ %189 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %190 = load i8** %3, align 4 ; [#uses=1]
+ %191 = getelementptr inbounds i8* %190, i32 1 ; [#uses=1]
+ %192 = load i8** %4, align 4 ; [#uses=1]
+ %193 = load i8** %ep1, align 4 ; [#uses=1]
+ %194 = call i8* @_Z10max_expandP10MatchStatePKcS2_S2_(%struct.MatchState* %189, i8* %191, i8* %192, i8* %193) ; [#uses=1]
+ br label %196
+
+; <label>:195 ; preds = %185
+ br label %196
+
+; <label>:196 ; preds = %195, %188
+ %197 = phi i8* [ %194, %188 ], [ null, %195 ] ; [#uses=1]
+ store i8* %197, i8** %1
+ br label %212
+
+; <label>:198 ; preds = %157
+ %199 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %200 = load i8** %3, align 4 ; [#uses=1]
+ %201 = load i8** %4, align 4 ; [#uses=1]
+ %202 = load i8** %ep1, align 4 ; [#uses=1]
+ %203 = call i8* @_Z10min_expandP10MatchStatePKcS2_S2_(%struct.MatchState* %199, i8* %200, i8* %201, i8* %202) ; [#uses=1]
+ store i8* %203, i8** %1
+ br label %212
+
+; <label>:204 ; preds = %157
+ %205 = load i32* %m, align 4 ; [#uses=1]
+ %206 = icmp ne i32 %205, 0 ; [#uses=1]
+ br i1 %206, label %208, label %207
+
+; <label>:207 ; preds = %204
+ store i8* null, i8** %1
+ br label %212
+
+; <label>:208 ; preds = %204
+ %209 = load i8** %3, align 4 ; [#uses=1]
+ %210 = getelementptr inbounds i8* %209, i32 1 ; [#uses=1]
+ store i8* %210, i8** %3, align 4
+ %211 = load i8** %ep1, align 4 ; [#uses=1]
+ store i8* %211, i8** %4, align 4
+ br label %5
+
+; <label>:212 ; preds = %207, %198, %196, %179, %174, %136, %119, %114, %94, %46, %27, %21, %15
+ %213 = load i8** %1 ; [#uses=1]
+ ret i8* %213
+}
+
+; [#uses=4]
+define internal i32 @_Z13push_capturesP10MatchStatePKcS2_(%struct.MatchState* %ms, i8* %s, i8* %e) {
+ %1 = alloca %struct.MatchState*, align 4 ; [#uses=5]
+ %2 = alloca i8*, align 4 ; [#uses=3]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ %i = alloca i32, align 4 ; [#uses=5]
+ %nlevels = alloca i32, align 4 ; [#uses=4]
+ store %struct.MatchState* %ms, %struct.MatchState** %1, align 4
+ store i8* %s, i8** %2, align 4
+ store i8* %e, i8** %3, align 4
+ %4 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %5 = getelementptr inbounds %struct.MatchState* %4, i32 0, i32 3 ; [#uses=1]
+ %6 = load i32* %5, align 4 ; [#uses=1]
+ %7 = icmp eq i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %8, label %12
+
+; <label>:8 ; preds = %0
+ %9 = load i8** %2, align 4 ; [#uses=1]
+ %10 = icmp ne i8* %9, null ; [#uses=1]
+ br i1 %10, label %11, label %12
+
+; <label>:11 ; preds = %8
+ br label %16
+
+; <label>:12 ; preds = %8, %0
+ %13 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.MatchState* %13, i32 0, i32 3 ; [#uses=1]
+ %15 = load i32* %14, align 4 ; [#uses=1]
+ br label %16
+
+; <label>:16 ; preds = %12, %11
+ %17 = phi i32 [ 1, %11 ], [ %15, %12 ] ; [#uses=1]
+ store i32 %17, i32* %nlevels, align 4
+ %18 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.MatchState* %18, i32 0, i32 2 ; [#uses=1]
+ %20 = load %struct.lua_State** %19, align 4 ; [#uses=1]
+ %21 = load i32* %nlevels, align 4 ; [#uses=1]
+ call void @_Z15luaL_checkstackP9lua_StateiPKc(%struct.lua_State* %20, i32 %21, i8* getelementptr inbounds ([18 x i8]* @.str19517, i32 0, i32 0))
+ store i32 0, i32* %i, align 4
+ br label %22
+
+; <label>:22 ; preds = %31, %16
+ %23 = load i32* %i, align 4 ; [#uses=1]
+ %24 = load i32* %nlevels, align 4 ; [#uses=1]
+ %25 = icmp slt i32 %23, %24 ; [#uses=1]
+ br i1 %25, label %26, label %34
+
+; <label>:26 ; preds = %22
+ %27 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %28 = load i32* %i, align 4 ; [#uses=1]
+ %29 = load i8** %2, align 4 ; [#uses=1]
+ %30 = load i8** %3, align 4 ; [#uses=1]
+ call void @_Z15push_onecaptureP10MatchStateiPKcS2_(%struct.MatchState* %27, i32 %28, i8* %29, i8* %30)
+ br label %31
+
+; <label>:31 ; preds = %26
+ %32 = load i32* %i, align 4 ; [#uses=1]
+ %33 = add nsw i32 %32, 1 ; [#uses=1]
+ store i32 %33, i32* %i, align 4
+ br label %22
+
+; <label>:34 ; preds = %22
+ %35 = load i32* %nlevels, align 4 ; [#uses=1]
+ ret i32 %35
+}
+
+; [#uses=3]
+define internal void @_Z15push_onecaptureP10MatchStateiPKcS2_(%struct.MatchState* %ms, i32 %i, i8* %s, i8* %e) {
+ %1 = alloca %struct.MatchState*, align 4 ; [#uses=11]
+ %2 = alloca i32, align 4 ; [#uses=6]
+ %3 = alloca i8*, align 4 ; [#uses=3]
+ %4 = alloca i8*, align 4 ; [#uses=2]
+ %l = alloca i32, align 4 ; [#uses=4]
+ store %struct.MatchState* %ms, %struct.MatchState** %1, align 4
+ store i32 %i, i32* %2, align 4
+ store i8* %s, i8** %3, align 4
+ store i8* %e, i8** %4, align 4
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds %struct.MatchState* %6, i32 0, i32 3 ; [#uses=1]
+ %8 = load i32* %7, align 4 ; [#uses=1]
+ %9 = icmp sge i32 %5, %8 ; [#uses=1]
+ br i1 %9, label %10, label %29
+
+; <label>:10 ; preds = %0
+ %11 = load i32* %2, align 4 ; [#uses=1]
+ %12 = icmp eq i32 %11, 0 ; [#uses=1]
+ br i1 %12, label %13, label %23
+
+; <label>:13 ; preds = %10
+ %14 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.MatchState* %14, i32 0, i32 2 ; [#uses=1]
+ %16 = load %struct.lua_State** %15, align 4 ; [#uses=1]
+ %17 = load i8** %3, align 4 ; [#uses=1]
+ %18 = load i8** %4, align 4 ; [#uses=1]
+ %19 = load i8** %3, align 4 ; [#uses=1]
+ %20 = ptrtoint i8* %18 to i32 ; [#uses=1]
+ %21 = ptrtoint i8* %19 to i32 ; [#uses=1]
+ %22 = sub i32 %20, %21 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %16, i8* %17, i32 %22)
+ br label %28
+
+; <label>:23 ; preds = %10
+ %24 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.MatchState* %24, i32 0, i32 2 ; [#uses=1]
+ %26 = load %struct.lua_State** %25, align 4 ; [#uses=1]
+ %27 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %26, i8* getelementptr inbounds ([22 x i8]* @.str20518, i32 0, i32 0)) ; [#uses=0]
+ br label %28
+
+; <label>:28 ; preds = %23, %13
+ br label %75
+
+; <label>:29 ; preds = %0
+ %30 = load i32* %2, align 4 ; [#uses=1]
+ %31 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds %struct.MatchState* %31, i32 0, i32 4 ; [#uses=1]
+ %33 = getelementptr inbounds [32 x %struct.LoadS]* %32, i32 0, i32 %30 ; [#uses=1]
+ %34 = getelementptr inbounds %struct.LoadS* %33, i32 0, i32 1 ; [#uses=1]
+ %35 = load i32* %34, align 4 ; [#uses=1]
+ store i32 %35, i32* %l, align 4
+ %36 = load i32* %l, align 4 ; [#uses=1]
+ %37 = icmp eq i32 %36, -1 ; [#uses=1]
+ br i1 %37, label %38, label %43
+
+; <label>:38 ; preds = %29
+ %39 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.MatchState* %39, i32 0, i32 2 ; [#uses=1]
+ %41 = load %struct.lua_State** %40, align 4 ; [#uses=1]
+ %42 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %41, i8* getelementptr inbounds ([19 x i8]* @.str21519, i32 0, i32 0)) ; [#uses=0]
+ br label %43
+
+; <label>:43 ; preds = %38, %29
+ %44 = load i32* %l, align 4 ; [#uses=1]
+ %45 = icmp eq i32 %44, -2 ; [#uses=1]
+ br i1 %45, label %46, label %63
+
+; <label>:46 ; preds = %43
+ %47 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds %struct.MatchState* %47, i32 0, i32 2 ; [#uses=1]
+ %49 = load %struct.lua_State** %48, align 4 ; [#uses=1]
+ %50 = load i32* %2, align 4 ; [#uses=1]
+ %51 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds %struct.MatchState* %51, i32 0, i32 4 ; [#uses=1]
+ %53 = getelementptr inbounds [32 x %struct.LoadS]* %52, i32 0, i32 %50 ; [#uses=1]
+ %54 = getelementptr inbounds %struct.LoadS* %53, i32 0, i32 0 ; [#uses=1]
+ %55 = load i8** %54, align 4 ; [#uses=1]
+ %56 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %57 = getelementptr inbounds %struct.MatchState* %56, i32 0, i32 0 ; [#uses=1]
+ %58 = load i8** %57, align 4 ; [#uses=1]
+ %59 = ptrtoint i8* %55 to i32 ; [#uses=1]
+ %60 = ptrtoint i8* %58 to i32 ; [#uses=1]
+ %61 = sub i32 %59, %60 ; [#uses=1]
+ %62 = add nsw i32 %61, 1 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %49, i32 %62)
+ br label %74
+
+; <label>:63 ; preds = %43
+ %64 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %65 = getelementptr inbounds %struct.MatchState* %64, i32 0, i32 2 ; [#uses=1]
+ %66 = load %struct.lua_State** %65, align 4 ; [#uses=1]
+ %67 = load i32* %2, align 4 ; [#uses=1]
+ %68 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.MatchState* %68, i32 0, i32 4 ; [#uses=1]
+ %70 = getelementptr inbounds [32 x %struct.LoadS]* %69, i32 0, i32 %67 ; [#uses=1]
+ %71 = getelementptr inbounds %struct.LoadS* %70, i32 0, i32 0 ; [#uses=1]
+ %72 = load i8** %71, align 4 ; [#uses=1]
+ %73 = load i32* %l, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %66, i8* %72, i32 %73)
+ br label %74
+
+; <label>:74 ; preds = %63, %46
+ br label %75
+
+; <label>:75 ; preds = %74, %28
+ ret void
+}
+
+; [#uses=2]
+define internal i8* @_Z13start_captureP10MatchStatePKcS2_i(%struct.MatchState* %ms, i8* %s, i8* %p, i32 %what) {
+ %1 = alloca %struct.MatchState*, align 4 ; [#uses=8]
+ %2 = alloca i8*, align 4 ; [#uses=3]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ %4 = alloca i32, align 4 ; [#uses=2]
+ %res = alloca i8*, align 4 ; [#uses=2]
+ %level = alloca i32, align 4 ; [#uses=5]
+ store %struct.MatchState* %ms, %struct.MatchState** %1, align 4
+ store i8* %s, i8** %2, align 4
+ store i8* %p, i8** %3, align 4
+ store i32 %what, i32* %4, align 4
+ %5 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.MatchState* %5, i32 0, i32 3 ; [#uses=1]
+ %7 = load i32* %6, align 4 ; [#uses=1]
+ store i32 %7, i32* %level, align 4
+ %8 = load i32* %level, align 4 ; [#uses=1]
+ %9 = icmp sge i32 %8, 32 ; [#uses=1]
+ br i1 %9, label %10, label %15
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.MatchState* %11, i32 0, i32 2 ; [#uses=1]
+ %13 = load %struct.lua_State** %12, align 4 ; [#uses=1]
+ %14 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %13, i8* getelementptr inbounds ([18 x i8]* @.str19517, i32 0, i32 0)) ; [#uses=0]
+ br label %15
+
+; <label>:15 ; preds = %10, %0
+ %16 = load i8** %2, align 4 ; [#uses=1]
+ %17 = load i32* %level, align 4 ; [#uses=1]
+ %18 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.MatchState* %18, i32 0, i32 4 ; [#uses=1]
+ %20 = getelementptr inbounds [32 x %struct.LoadS]* %19, i32 0, i32 %17 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.LoadS* %20, i32 0, i32 0 ; [#uses=1]
+ store i8* %16, i8** %21, align 4
+ %22 = load i32* %4, align 4 ; [#uses=1]
+ %23 = load i32* %level, align 4 ; [#uses=1]
+ %24 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.MatchState* %24, i32 0, i32 4 ; [#uses=1]
+ %26 = getelementptr inbounds [32 x %struct.LoadS]* %25, i32 0, i32 %23 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.LoadS* %26, i32 0, i32 1 ; [#uses=1]
+ store i32 %22, i32* %27, align 4
+ %28 = load i32* %level, align 4 ; [#uses=1]
+ %29 = add nsw i32 %28, 1 ; [#uses=1]
+ %30 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.MatchState* %30, i32 0, i32 3 ; [#uses=1]
+ store i32 %29, i32* %31, align 4
+ %32 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %33 = load i8** %2, align 4 ; [#uses=1]
+ %34 = load i8** %3, align 4 ; [#uses=1]
+ %35 = call i8* @_Z5matchP10MatchStatePKcS2_(%struct.MatchState* %32, i8* %33, i8* %34) ; [#uses=2]
+ store i8* %35, i8** %res, align 4
+ %36 = icmp eq i8* %35, null ; [#uses=1]
+ br i1 %36, label %37, label %42
+
+; <label>:37 ; preds = %15
+ %38 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds %struct.MatchState* %38, i32 0, i32 3 ; [#uses=2]
+ %40 = load i32* %39, align 4 ; [#uses=1]
+ %41 = add nsw i32 %40, -1 ; [#uses=1]
+ store i32 %41, i32* %39, align 4
+ br label %42
+
+; <label>:42 ; preds = %37, %15
+ %43 = load i8** %res, align 4 ; [#uses=1]
+ ret i8* %43
+}
+
+; [#uses=1]
+define internal i8* @_Z11end_captureP10MatchStatePKcS2_(%struct.MatchState* %ms, i8* %s, i8* %p) {
+ %1 = alloca %struct.MatchState*, align 4 ; [#uses=6]
+ %2 = alloca i8*, align 4 ; [#uses=3]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ %l = alloca i32, align 4 ; [#uses=4]
+ %res = alloca i8*, align 4 ; [#uses=2]
+ store %struct.MatchState* %ms, %struct.MatchState** %1, align 4
+ store i8* %s, i8** %2, align 4
+ store i8* %p, i8** %3, align 4
+ %4 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %5 = call i32 @_Z16capture_to_closeP10MatchState(%struct.MatchState* %4) ; [#uses=1]
+ store i32 %5, i32* %l, align 4
+ %6 = load i8** %2, align 4 ; [#uses=1]
+ %7 = load i32* %l, align 4 ; [#uses=1]
+ %8 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds %struct.MatchState* %8, i32 0, i32 4 ; [#uses=1]
+ %10 = getelementptr inbounds [32 x %struct.LoadS]* %9, i32 0, i32 %7 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.LoadS* %10, i32 0, i32 0 ; [#uses=1]
+ %12 = load i8** %11, align 4 ; [#uses=1]
+ %13 = ptrtoint i8* %6 to i32 ; [#uses=1]
+ %14 = ptrtoint i8* %12 to i32 ; [#uses=1]
+ %15 = sub i32 %13, %14 ; [#uses=1]
+ %16 = load i32* %l, align 4 ; [#uses=1]
+ %17 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds %struct.MatchState* %17, i32 0, i32 4 ; [#uses=1]
+ %19 = getelementptr inbounds [32 x %struct.LoadS]* %18, i32 0, i32 %16 ; [#uses=1]
+ %20 = getelementptr inbounds %struct.LoadS* %19, i32 0, i32 1 ; [#uses=1]
+ store i32 %15, i32* %20, align 4
+ %21 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %22 = load i8** %2, align 4 ; [#uses=1]
+ %23 = load i8** %3, align 4 ; [#uses=1]
+ %24 = call i8* @_Z5matchP10MatchStatePKcS2_(%struct.MatchState* %21, i8* %22, i8* %23) ; [#uses=2]
+ store i8* %24, i8** %res, align 4
+ %25 = icmp eq i8* %24, null ; [#uses=1]
+ br i1 %25, label %26, label %32
+
+; <label>:26 ; preds = %0
+ %27 = load i32* %l, align 4 ; [#uses=1]
+ %28 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %29 = getelementptr inbounds %struct.MatchState* %28, i32 0, i32 4 ; [#uses=1]
+ %30 = getelementptr inbounds [32 x %struct.LoadS]* %29, i32 0, i32 %27 ; [#uses=1]
+ %31 = getelementptr inbounds %struct.LoadS* %30, i32 0, i32 1 ; [#uses=1]
+ store i32 -1, i32* %31, align 4
+ br label %32
+
+; <label>:32 ; preds = %26, %0
+ %33 = load i8** %res, align 4 ; [#uses=1]
+ ret i8* %33
+}
+
+; [#uses=1]
+define internal i8* @_Z12matchbalanceP10MatchStatePKcS2_(%struct.MatchState* %ms, i8* %s, i8* %p) {
+ %1 = alloca i8*, align 4 ; [#uses=4]
+ %2 = alloca %struct.MatchState*, align 4 ; [#uses=3]
+ %3 = alloca i8*, align 4 ; [#uses=7]
+ %4 = alloca i8*, align 4 ; [#uses=6]
+ %b = alloca i32, align 4 ; [#uses=2]
+ %e = alloca i32, align 4 ; [#uses=2]
+ %cont = alloca i32, align 4 ; [#uses=5]
+ store %struct.MatchState* %ms, %struct.MatchState** %2, align 4
+ store i8* %s, i8** %3, align 4
+ store i8* %p, i8** %4, align 4
+ %5 = load i8** %4, align 4 ; [#uses=1]
+ %6 = load i8* %5 ; [#uses=1]
+ %7 = sext i8 %6 to i32 ; [#uses=1]
+ %8 = icmp eq i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %15, label %9
+
+; <label>:9 ; preds = %0
+ %10 = load i8** %4, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds i8* %10, i32 1 ; [#uses=1]
+ %12 = load i8* %11 ; [#uses=1]
+ %13 = sext i8 %12 to i32 ; [#uses=1]
+ %14 = icmp eq i32 %13, 0 ; [#uses=1]
+ br i1 %14, label %15, label %20
+
+; <label>:15 ; preds = %9, %0
+ %16 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.MatchState* %16, i32 0, i32 2 ; [#uses=1]
+ %18 = load %struct.lua_State** %17, align 4 ; [#uses=1]
+ %19 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %18, i8* getelementptr inbounds ([19 x i8]* @.str25523, i32 0, i32 0)) ; [#uses=0]
+ br label %20
+
+; <label>:20 ; preds = %15, %9
+ %21 = load i8** %3, align 4 ; [#uses=1]
+ %22 = load i8* %21 ; [#uses=1]
+ %23 = sext i8 %22 to i32 ; [#uses=1]
+ %24 = load i8** %4, align 4 ; [#uses=1]
+ %25 = load i8* %24 ; [#uses=1]
+ %26 = sext i8 %25 to i32 ; [#uses=1]
+ %27 = icmp ne i32 %23, %26 ; [#uses=1]
+ br i1 %27, label %28, label %29
+
+; <label>:28 ; preds = %20
+ store i8* null, i8** %1
+ br label %71
+
+; <label>:29 ; preds = %20
+ %30 = load i8** %4, align 4 ; [#uses=1]
+ %31 = load i8* %30 ; [#uses=1]
+ %32 = sext i8 %31 to i32 ; [#uses=1]
+ store i32 %32, i32* %b, align 4
+ %33 = load i8** %4, align 4 ; [#uses=1]
+ %34 = getelementptr inbounds i8* %33, i32 1 ; [#uses=1]
+ %35 = load i8* %34 ; [#uses=1]
+ %36 = sext i8 %35 to i32 ; [#uses=1]
+ store i32 %36, i32* %e, align 4
+ store i32 1, i32* %cont, align 4
+ br label %37
+
+; <label>:37 ; preds = %68, %29
+ %38 = load i8** %3, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds i8* %38, i32 1 ; [#uses=2]
+ store i8* %39, i8** %3, align 4
+ %40 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %41 = getelementptr inbounds %struct.MatchState* %40, i32 0, i32 1 ; [#uses=1]
+ %42 = load i8** %41, align 4 ; [#uses=1]
+ %43 = icmp ult i8* %39, %42 ; [#uses=1]
+ br i1 %43, label %44, label %69
+
+; <label>:44 ; preds = %37
+ %45 = load i8** %3, align 4 ; [#uses=1]
+ %46 = load i8* %45 ; [#uses=1]
+ %47 = sext i8 %46 to i32 ; [#uses=1]
+ %48 = load i32* %e, align 4 ; [#uses=1]
+ %49 = icmp eq i32 %47, %48 ; [#uses=1]
+ br i1 %49, label %50, label %58
+
+; <label>:50 ; preds = %44
+ %51 = load i32* %cont, align 4 ; [#uses=1]
+ %52 = add nsw i32 %51, -1 ; [#uses=2]
+ store i32 %52, i32* %cont, align 4
+ %53 = icmp eq i32 %52, 0 ; [#uses=1]
+ br i1 %53, label %54, label %57
+
+; <label>:54 ; preds = %50
+ %55 = load i8** %3, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds i8* %55, i32 1 ; [#uses=1]
+ store i8* %56, i8** %1
+ br label %71
+
+; <label>:57 ; preds = %50
+ br label %68
+
+; <label>:58 ; preds = %44
+ %59 = load i8** %3, align 4 ; [#uses=1]
+ %60 = load i8* %59 ; [#uses=1]
+ %61 = sext i8 %60 to i32 ; [#uses=1]
+ %62 = load i32* %b, align 4 ; [#uses=1]
+ %63 = icmp eq i32 %61, %62 ; [#uses=1]
+ br i1 %63, label %64, label %67
+
+; <label>:64 ; preds = %58
+ %65 = load i32* %cont, align 4 ; [#uses=1]
+ %66 = add nsw i32 %65, 1 ; [#uses=1]
+ store i32 %66, i32* %cont, align 4
+ br label %67
+
+; <label>:67 ; preds = %64, %58
+ br label %68
+
+; <label>:68 ; preds = %67, %57
+ br label %37
+
+; <label>:69 ; preds = %37
+ br label %70
+
+; <label>:70 ; preds = %69
+ store i8* null, i8** %1
+ br label %71
+
+; <label>:71 ; preds = %70, %54, %28
+ %72 = load i8** %1 ; [#uses=1]
+ ret i8* %72
+}
+
+; [#uses=2]
+define internal i8* @_Z8classendP10MatchStatePKc(%struct.MatchState* %ms, i8* %p) {
+ %1 = alloca i8*, align 4 ; [#uses=4]
+ %2 = alloca %struct.MatchState*, align 4 ; [#uses=3]
+ %3 = alloca i8*, align 4 ; [#uses=17]
+ store %struct.MatchState* %ms, %struct.MatchState** %2, align 4
+ store i8* %p, i8** %3, align 4
+ %4 = load i8** %3, align 4 ; [#uses=2]
+ %5 = getelementptr inbounds i8* %4, i32 1 ; [#uses=1]
+ store i8* %5, i8** %3, align 4
+ %6 = load i8* %4 ; [#uses=1]
+ %7 = sext i8 %6 to i32 ; [#uses=1]
+ switch i32 %7, label %63 [
+ i32 37, label %8
+ i32 91, label %21
+ ]
+
+; <label>:8 ; preds = %0
+ %9 = load i8** %3, align 4 ; [#uses=1]
+ %10 = load i8* %9 ; [#uses=1]
+ %11 = sext i8 %10 to i32 ; [#uses=1]
+ %12 = icmp eq i32 %11, 0 ; [#uses=1]
+ br i1 %12, label %13, label %18
+
+; <label>:13 ; preds = %8
+ %14 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.MatchState* %14, i32 0, i32 2 ; [#uses=1]
+ %16 = load %struct.lua_State** %15, align 4 ; [#uses=1]
+ %17 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %16, i8* getelementptr inbounds ([35 x i8]* @.str23521, i32 0, i32 0)) ; [#uses=0]
+ br label %18
+
+; <label>:18 ; preds = %13, %8
+ %19 = load i8** %3, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds i8* %19, i32 1 ; [#uses=1]
+ store i8* %20, i8** %1
+ br label %65
+
+; <label>:21 ; preds = %0
+ %22 = load i8** %3, align 4 ; [#uses=1]
+ %23 = load i8* %22 ; [#uses=1]
+ %24 = sext i8 %23 to i32 ; [#uses=1]
+ %25 = icmp eq i32 %24, 94 ; [#uses=1]
+ br i1 %25, label %26, label %29
+
+; <label>:26 ; preds = %21
+ %27 = load i8** %3, align 4 ; [#uses=1]
+ %28 = getelementptr inbounds i8* %27, i32 1 ; [#uses=1]
+ store i8* %28, i8** %3, align 4
+ br label %29
+
+; <label>:29 ; preds = %26, %21
+ br label %30
+
+; <label>:30 ; preds = %55, %29
+ %31 = load i8** %3, align 4 ; [#uses=1]
+ %32 = load i8* %31 ; [#uses=1]
+ %33 = sext i8 %32 to i32 ; [#uses=1]
+ %34 = icmp eq i32 %33, 0 ; [#uses=1]
+ br i1 %34, label %35, label %40
+
+; <label>:35 ; preds = %30
+ %36 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds %struct.MatchState* %36, i32 0, i32 2 ; [#uses=1]
+ %38 = load %struct.lua_State** %37, align 4 ; [#uses=1]
+ %39 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %38, i8* getelementptr inbounds ([32 x i8]* @.str24522, i32 0, i32 0)) ; [#uses=0]
+ br label %40
+
+; <label>:40 ; preds = %35, %30
+ %41 = load i8** %3, align 4 ; [#uses=2]
+ %42 = getelementptr inbounds i8* %41, i32 1 ; [#uses=1]
+ store i8* %42, i8** %3, align 4
+ %43 = load i8* %41 ; [#uses=1]
+ %44 = sext i8 %43 to i32 ; [#uses=1]
+ %45 = icmp eq i32 %44, 37 ; [#uses=1]
+ br i1 %45, label %46, label %54
+
+; <label>:46 ; preds = %40
+ %47 = load i8** %3, align 4 ; [#uses=1]
+ %48 = load i8* %47 ; [#uses=1]
+ %49 = sext i8 %48 to i32 ; [#uses=1]
+ %50 = icmp ne i32 %49, 0 ; [#uses=1]
+ br i1 %50, label %51, label %54
+
+; <label>:51 ; preds = %46
+ %52 = load i8** %3, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds i8* %52, i32 1 ; [#uses=1]
+ store i8* %53, i8** %3, align 4
+ br label %54
+
+; <label>:54 ; preds = %51, %46, %40
+ br label %55
+
+; <label>:55 ; preds = %54
+ %56 = load i8** %3, align 4 ; [#uses=1]
+ %57 = load i8* %56 ; [#uses=1]
+ %58 = sext i8 %57 to i32 ; [#uses=1]
+ %59 = icmp ne i32 %58, 93 ; [#uses=1]
+ br i1 %59, label %30, label %60
+
+; <label>:60 ; preds = %55
+ %61 = load i8** %3, align 4 ; [#uses=1]
+ %62 = getelementptr inbounds i8* %61, i32 1 ; [#uses=1]
+ store i8* %62, i8** %1
+ br label %65
+
+; <label>:63 ; preds = %0
+ %64 = load i8** %3, align 4 ; [#uses=1]
+ store i8* %64, i8** %1
+ br label %65
+
+; <label>:65 ; preds = %63, %60, %18
+ %66 = load i8** %1 ; [#uses=1]
+ ret i8* %66
+}
+
+; [#uses=3]
+define internal i32 @_Z17matchbracketclassiPKcS0_(i32 %c, i8* %p, i8* %ec) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=5]
+ %2 = alloca i32, align 4 ; [#uses=5]
+ %3 = alloca i8*, align 4 ; [#uses=17]
+ %4 = alloca i8*, align 4 ; [#uses=3]
+ %sig = alloca i32, align 4 ; [#uses=6]
+ store i32 %c, i32* %2, align 4
+ store i8* %p, i8** %3, align 4
+ store i8* %ec, i8** %4, align 4
+ store i32 1, i32* %sig, align 4
+ %5 = load i8** %3, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds i8* %5, i32 1 ; [#uses=1]
+ %7 = load i8* %6 ; [#uses=1]
+ %8 = sext i8 %7 to i32 ; [#uses=1]
+ %9 = icmp eq i32 %8, 94 ; [#uses=1]
+ br i1 %9, label %10, label %13
+
+; <label>:10 ; preds = %0
+ store i32 0, i32* %sig, align 4
+ %11 = load i8** %3, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds i8* %11, i32 1 ; [#uses=1]
+ store i8* %12, i8** %3, align 4
+ br label %13
+
+; <label>:13 ; preds = %10, %0
+ br label %14
+
+; <label>:14 ; preds = %75, %13
+ %15 = load i8** %3, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds i8* %15, i32 1 ; [#uses=2]
+ store i8* %16, i8** %3, align 4
+ %17 = load i8** %4, align 4 ; [#uses=1]
+ %18 = icmp ult i8* %16, %17 ; [#uses=1]
+ br i1 %18, label %19, label %76
+
+; <label>:19 ; preds = %14
+ %20 = load i8** %3, align 4 ; [#uses=1]
+ %21 = load i8* %20 ; [#uses=1]
+ %22 = sext i8 %21 to i32 ; [#uses=1]
+ %23 = icmp eq i32 %22, 37 ; [#uses=1]
+ br i1 %23, label %24, label %36
+
+; <label>:24 ; preds = %19
+ %25 = load i8** %3, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds i8* %25, i32 1 ; [#uses=1]
+ store i8* %26, i8** %3, align 4
+ %27 = load i32* %2, align 4 ; [#uses=1]
+ %28 = load i8** %3, align 4 ; [#uses=1]
+ %29 = load i8* %28 ; [#uses=1]
+ %30 = zext i8 %29 to i32 ; [#uses=1]
+ %31 = call i32 @_Z11match_classii(i32 %27, i32 %30) ; [#uses=1]
+ %32 = icmp ne i32 %31, 0 ; [#uses=1]
+ br i1 %32, label %33, label %35
+
+; <label>:33 ; preds = %24
+ %34 = load i32* %sig, align 4 ; [#uses=1]
+ store i32 %34, i32* %1
+ br label %81
+
+; <label>:35 ; preds = %24
+ br label %75
+
+; <label>:36 ; preds = %19
+ %37 = load i8** %3, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds i8* %37, i32 1 ; [#uses=1]
+ %39 = load i8* %38 ; [#uses=1]
+ %40 = sext i8 %39 to i32 ; [#uses=1]
+ %41 = icmp eq i32 %40, 45 ; [#uses=1]
+ br i1 %41, label %42, label %65
+
+; <label>:42 ; preds = %36
+ %43 = load i8** %3, align 4 ; [#uses=1]
+ %44 = getelementptr inbounds i8* %43, i32 2 ; [#uses=1]
+ %45 = load i8** %4, align 4 ; [#uses=1]
+ %46 = icmp ult i8* %44, %45 ; [#uses=1]
+ br i1 %46, label %47, label %65
+
+; <label>:47 ; preds = %42
+ %48 = load i8** %3, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds i8* %48, i32 2 ; [#uses=1]
+ store i8* %49, i8** %3, align 4
+ %50 = load i8** %3, align 4 ; [#uses=1]
+ %51 = getelementptr inbounds i8* %50, i32 -2 ; [#uses=1]
+ %52 = load i8* %51 ; [#uses=1]
+ %53 = zext i8 %52 to i32 ; [#uses=1]
+ %54 = load i32* %2, align 4 ; [#uses=1]
+ %55 = icmp sle i32 %53, %54 ; [#uses=1]
+ br i1 %55, label %56, label %64
+
+; <label>:56 ; preds = %47
+ %57 = load i32* %2, align 4 ; [#uses=1]
+ %58 = load i8** %3, align 4 ; [#uses=1]
+ %59 = load i8* %58 ; [#uses=1]
+ %60 = zext i8 %59 to i32 ; [#uses=1]
+ %61 = icmp sle i32 %57, %60 ; [#uses=1]
+ br i1 %61, label %62, label %64
+
+; <label>:62 ; preds = %56
+ %63 = load i32* %sig, align 4 ; [#uses=1]
+ store i32 %63, i32* %1
+ br label %81
+
+; <label>:64 ; preds = %56, %47
+ br label %74
+
+; <label>:65 ; preds = %42, %36
+ %66 = load i8** %3, align 4 ; [#uses=1]
+ %67 = load i8* %66 ; [#uses=1]
+ %68 = zext i8 %67 to i32 ; [#uses=1]
+ %69 = load i32* %2, align 4 ; [#uses=1]
+ %70 = icmp eq i32 %68, %69 ; [#uses=1]
+ br i1 %70, label %71, label %73
+
+; <label>:71 ; preds = %65
+ %72 = load i32* %sig, align 4 ; [#uses=1]
+ store i32 %72, i32* %1
+ br label %81
+
+; <label>:73 ; preds = %65
+ br label %74
+
+; <label>:74 ; preds = %73, %64
+ br label %75
+
+; <label>:75 ; preds = %74, %35
+ br label %14
+
+; <label>:76 ; preds = %14
+ %77 = load i32* %sig, align 4 ; [#uses=1]
+ %78 = icmp ne i32 %77, 0 ; [#uses=1]
+ %79 = xor i1 %78, true ; [#uses=1]
+ %80 = zext i1 %79 to i32 ; [#uses=1]
+ store i32 %80, i32* %1
+ br label %81
+
+; <label>:81 ; preds = %76, %71, %62, %33
+ %82 = load i32* %1 ; [#uses=1]
+ ret i32 %82
+}
+
+; [#uses=1]
+define internal i8* @_Z13match_captureP10MatchStatePKci(%struct.MatchState* %ms, i8* %s, i32 %l) {
+ %1 = alloca i8*, align 4 ; [#uses=3]
+ %2 = alloca %struct.MatchState*, align 4 ; [#uses=5]
+ %3 = alloca i8*, align 4 ; [#uses=4]
+ %4 = alloca i32, align 4 ; [#uses=5]
+ %len = alloca i32, align 4 ; [#uses=4]
+ store %struct.MatchState* %ms, %struct.MatchState** %2, align 4
+ store i8* %s, i8** %3, align 4
+ store i32 %l, i32* %4, align 4
+ %5 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %6 = load i32* %4, align 4 ; [#uses=1]
+ %7 = call i32 @_Z13check_captureP10MatchStatei(%struct.MatchState* %5, i32 %6) ; [#uses=1]
+ store i32 %7, i32* %4, align 4
+ %8 = load i32* %4, align 4 ; [#uses=1]
+ %9 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.MatchState* %9, i32 0, i32 4 ; [#uses=1]
+ %11 = getelementptr inbounds [32 x %struct.LoadS]* %10, i32 0, i32 %8 ; [#uses=1]
+ %12 = getelementptr inbounds %struct.LoadS* %11, i32 0, i32 1 ; [#uses=1]
+ %13 = load i32* %12, align 4 ; [#uses=1]
+ store i32 %13, i32* %len, align 4
+ %14 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %15 = getelementptr inbounds %struct.MatchState* %14, i32 0, i32 1 ; [#uses=1]
+ %16 = load i8** %15, align 4 ; [#uses=1]
+ %17 = load i8** %3, align 4 ; [#uses=1]
+ %18 = ptrtoint i8* %16 to i32 ; [#uses=1]
+ %19 = ptrtoint i8* %17 to i32 ; [#uses=1]
+ %20 = sub i32 %18, %19 ; [#uses=1]
+ %21 = load i32* %len, align 4 ; [#uses=1]
+ %22 = icmp uge i32 %20, %21 ; [#uses=1]
+ br i1 %22, label %23, label %38
+
+; <label>:23 ; preds = %0
+ %24 = load i32* %4, align 4 ; [#uses=1]
+ %25 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %26 = getelementptr inbounds %struct.MatchState* %25, i32 0, i32 4 ; [#uses=1]
+ %27 = getelementptr inbounds [32 x %struct.LoadS]* %26, i32 0, i32 %24 ; [#uses=1]
+ %28 = getelementptr inbounds %struct.LoadS* %27, i32 0, i32 0 ; [#uses=1]
+ %29 = load i8** %28, align 4 ; [#uses=1]
+ %30 = load i8** %3, align 4 ; [#uses=1]
+ %31 = load i32* %len, align 4 ; [#uses=1]
+ %32 = call i32 @memcmp(i8* %29, i8* %30, i32 %31) nounwind readonly ; [#uses=1]
+ %33 = icmp eq i32 %32, 0 ; [#uses=1]
+ br i1 %33, label %34, label %38
+
+; <label>:34 ; preds = %23
+ %35 = load i8** %3, align 4 ; [#uses=1]
+ %36 = load i32* %len, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds i8* %35, i32 %36 ; [#uses=1]
+ store i8* %37, i8** %1
+ br label %39
+
+; <label>:38 ; preds = %23, %0
+ store i8* null, i8** %1
+ br label %39
+
+; <label>:39 ; preds = %38, %34
+ %40 = load i8** %1 ; [#uses=1]
+ ret i8* %40
+}
+
+; [#uses=3]
+define internal i32 @_Z11singlematchiPKcS0_(i32 %c, i8* %p, i8* %ep) {
+ %1 = alloca i32, align 4 ; [#uses=5]
+ %2 = alloca i32, align 4 ; [#uses=4]
+ %3 = alloca i8*, align 4 ; [#uses=5]
+ %4 = alloca i8*, align 4 ; [#uses=2]
+ store i32 %c, i32* %2, align 4
+ store i8* %p, i8** %3, align 4
+ store i8* %ep, i8** %4, align 4
+ %5 = load i8** %3, align 4 ; [#uses=1]
+ %6 = load i8* %5 ; [#uses=1]
+ %7 = sext i8 %6 to i32 ; [#uses=1]
+ switch i32 %7, label %22 [
+ i32 46, label %8
+ i32 37, label %9
+ i32 91, label %16
+ ]
+
+; <label>:8 ; preds = %0
+ store i32 1, i32* %1
+ br label %29
+
+; <label>:9 ; preds = %0
+ %10 = load i32* %2, align 4 ; [#uses=1]
+ %11 = load i8** %3, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds i8* %11, i32 1 ; [#uses=1]
+ %13 = load i8* %12 ; [#uses=1]
+ %14 = zext i8 %13 to i32 ; [#uses=1]
+ %15 = call i32 @_Z11match_classii(i32 %10, i32 %14) ; [#uses=1]
+ store i32 %15, i32* %1
+ br label %29
+
+; <label>:16 ; preds = %0
+ %17 = load i32* %2, align 4 ; [#uses=1]
+ %18 = load i8** %3, align 4 ; [#uses=1]
+ %19 = load i8** %4, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds i8* %19, i32 -1 ; [#uses=1]
+ %21 = call i32 @_Z17matchbracketclassiPKcS0_(i32 %17, i8* %18, i8* %20) ; [#uses=1]
+ store i32 %21, i32* %1
+ br label %29
+
+; <label>:22 ; preds = %0
+ %23 = load i8** %3, align 4 ; [#uses=1]
+ %24 = load i8* %23 ; [#uses=1]
+ %25 = zext i8 %24 to i32 ; [#uses=1]
+ %26 = load i32* %2, align 4 ; [#uses=1]
+ %27 = icmp eq i32 %25, %26 ; [#uses=1]
+ %28 = zext i1 %27 to i32 ; [#uses=1]
+ store i32 %28, i32* %1
+ br label %29
+
+; <label>:29 ; preds = %22, %16, %9, %8
+ %30 = load i32* %1 ; [#uses=1]
+ ret i32 %30
+}
+
+; [#uses=2]
+define internal i8* @_Z10max_expandP10MatchStatePKcS2_S2_(%struct.MatchState* %ms, i8* %s, i8* %p, i8* %ep) {
+ %1 = alloca i8*, align 4 ; [#uses=3]
+ %2 = alloca %struct.MatchState*, align 4 ; [#uses=3]
+ %3 = alloca i8*, align 4 ; [#uses=4]
+ %4 = alloca i8*, align 4 ; [#uses=2]
+ %5 = alloca i8*, align 4 ; [#uses=3]
+ %i = alloca i32, align 4 ; [#uses=9]
+ %res = alloca i8*, align 4 ; [#uses=3]
+ store %struct.MatchState* %ms, %struct.MatchState** %2, align 4
+ store i8* %s, i8** %3, align 4
+ store i8* %p, i8** %4, align 4
+ store i8* %ep, i8** %5, align 4
+ store i32 0, i32* %i, align 4
+ br label %6
+
+; <label>:6 ; preds = %26, %0
+ %7 = load i8** %3, align 4 ; [#uses=1]
+ %8 = load i32* %i, align 4 ; [#uses=1]
+ %9 = getelementptr inbounds i8* %7, i32 %8 ; [#uses=1]
+ %10 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.MatchState* %10, i32 0, i32 1 ; [#uses=1]
+ %12 = load i8** %11, align 4 ; [#uses=1]
+ %13 = icmp ult i8* %9, %12 ; [#uses=1]
+ br i1 %13, label %14, label %24
+
+; <label>:14 ; preds = %6
+ %15 = load i8** %3, align 4 ; [#uses=1]
+ %16 = load i32* %i, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds i8* %15, i32 %16 ; [#uses=1]
+ %18 = load i8* %17 ; [#uses=1]
+ %19 = zext i8 %18 to i32 ; [#uses=1]
+ %20 = load i8** %4, align 4 ; [#uses=1]
+ %21 = load i8** %5, align 4 ; [#uses=1]
+ %22 = call i32 @_Z11singlematchiPKcS0_(i32 %19, i8* %20, i8* %21) ; [#uses=1]
+ %23 = icmp ne i32 %22, 0 ; [#uses=1]
+ br label %24
+
+; <label>:24 ; preds = %14, %6
+ %25 = phi i1 [ false, %6 ], [ %23, %14 ] ; [#uses=1]
+ br i1 %25, label %26, label %29
+
+; <label>:26 ; preds = %24
+ %27 = load i32* %i, align 4 ; [#uses=1]
+ %28 = add nsw i32 %27, 1 ; [#uses=1]
+ store i32 %28, i32* %i, align 4
+ br label %6
+
+; <label>:29 ; preds = %24
+ br label %30
+
+; <label>:30 ; preds = %45, %29
+ %31 = load i32* %i, align 4 ; [#uses=1]
+ %32 = icmp sge i32 %31, 0 ; [#uses=1]
+ br i1 %32, label %33, label %48
+
+; <label>:33 ; preds = %30
+ %34 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %35 = load i8** %3, align 4 ; [#uses=1]
+ %36 = load i32* %i, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds i8* %35, i32 %36 ; [#uses=1]
+ %38 = load i8** %5, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds i8* %38, i32 1 ; [#uses=1]
+ %40 = call i8* @_Z5matchP10MatchStatePKcS2_(%struct.MatchState* %34, i8* %37, i8* %39) ; [#uses=1]
+ store i8* %40, i8** %res, align 4
+ %41 = load i8** %res, align 4 ; [#uses=1]
+ %42 = icmp ne i8* %41, null ; [#uses=1]
+ br i1 %42, label %43, label %45
+
+; <label>:43 ; preds = %33
+ %44 = load i8** %res, align 4 ; [#uses=1]
+ store i8* %44, i8** %1
+ br label %49
+
+; <label>:45 ; preds = %33
+ %46 = load i32* %i, align 4 ; [#uses=1]
+ %47 = add nsw i32 %46, -1 ; [#uses=1]
+ store i32 %47, i32* %i, align 4
+ br label %30
+
+; <label>:48 ; preds = %30
+ store i8* null, i8** %1
+ br label %49
+
+; <label>:49 ; preds = %48, %43
+ %50 = load i8** %1 ; [#uses=1]
+ ret i8* %50
+}
+
+; [#uses=1]
+define internal i8* @_Z10min_expandP10MatchStatePKcS2_S2_(%struct.MatchState* %ms, i8* %s, i8* %p, i8* %ep) {
+ %1 = alloca i8*, align 4 ; [#uses=3]
+ %2 = alloca %struct.MatchState*, align 4 ; [#uses=3]
+ %3 = alloca i8*, align 4 ; [#uses=6]
+ %4 = alloca i8*, align 4 ; [#uses=2]
+ %5 = alloca i8*, align 4 ; [#uses=3]
+ %res = alloca i8*, align 4 ; [#uses=3]
+ store %struct.MatchState* %ms, %struct.MatchState** %2, align 4
+ store i8* %s, i8** %3, align 4
+ store i8* %p, i8** %4, align 4
+ store i8* %ep, i8** %5, align 4
+ br label %6
+
+; <label>:6 ; preds = %35, %0
+ %7 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %8 = load i8** %3, align 4 ; [#uses=1]
+ %9 = load i8** %5, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds i8* %9, i32 1 ; [#uses=1]
+ %11 = call i8* @_Z5matchP10MatchStatePKcS2_(%struct.MatchState* %7, i8* %8, i8* %10) ; [#uses=1]
+ store i8* %11, i8** %res, align 4
+ %12 = load i8** %res, align 4 ; [#uses=1]
+ %13 = icmp ne i8* %12, null ; [#uses=1]
+ br i1 %13, label %14, label %16
+
+; <label>:14 ; preds = %6
+ %15 = load i8** %res, align 4 ; [#uses=1]
+ store i8* %15, i8** %1
+ br label %36
+
+; <label>:16 ; preds = %6
+ %17 = load i8** %3, align 4 ; [#uses=1]
+ %18 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.MatchState* %18, i32 0, i32 1 ; [#uses=1]
+ %20 = load i8** %19, align 4 ; [#uses=1]
+ %21 = icmp ult i8* %17, %20 ; [#uses=1]
+ br i1 %21, label %22, label %33
+
+; <label>:22 ; preds = %16
+ %23 = load i8** %3, align 4 ; [#uses=1]
+ %24 = load i8* %23 ; [#uses=1]
+ %25 = zext i8 %24 to i32 ; [#uses=1]
+ %26 = load i8** %4, align 4 ; [#uses=1]
+ %27 = load i8** %5, align 4 ; [#uses=1]
+ %28 = call i32 @_Z11singlematchiPKcS0_(i32 %25, i8* %26, i8* %27) ; [#uses=1]
+ %29 = icmp ne i32 %28, 0 ; [#uses=1]
+ br i1 %29, label %30, label %33
+
+; <label>:30 ; preds = %22
+ %31 = load i8** %3, align 4 ; [#uses=1]
+ %32 = getelementptr inbounds i8* %31, i32 1 ; [#uses=1]
+ store i8* %32, i8** %3, align 4
+ br label %34
+
+; <label>:33 ; preds = %22, %16
+ store i8* null, i8** %1
+ br label %36
+
+; <label>:34 ; preds = %30
+ br label %35
+
+; <label>:35 ; preds = %34
+ br label %6
+
+; <label>:36 ; preds = %33, %14
+ %37 = load i8** %1 ; [#uses=1]
+ ret i8* %37
+}
+
+; [#uses=2]
+define internal i32 @_Z11match_classii(i32 %c, i32 %cl) nounwind {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca i32, align 4 ; [#uses=12]
+ %3 = alloca i32, align 4 ; [#uses=4]
+ %res = alloca i32, align 4 ; [#uses=12]
+ store i32 %c, i32* %2, align 4
+ store i32 %cl, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = call i32 @tolower(i32 %4) nounwind ; [#uses=1]
+ switch i32 %5, label %37 [
+ i32 97, label %6
+ i32 99, label %9
+ i32 100, label %12
+ i32 108, label %15
+ i32 112, label %18
+ i32 115, label %21
+ i32 117, label %24
+ i32 119, label %27
+ i32 120, label %30
+ i32 122, label %33
+ ]
+
+; <label>:6 ; preds = %0
+ %7 = load i32* %2, align 4 ; [#uses=1]
+ %8 = call i32 @isalpha(i32 %7) nounwind ; [#uses=1]
+ store i32 %8, i32* %res, align 4
+ br label %42
+
+; <label>:9 ; preds = %0
+ %10 = load i32* %2, align 4 ; [#uses=1]
+ %11 = call i32 @iscntrl(i32 %10) nounwind ; [#uses=1]
+ store i32 %11, i32* %res, align 4
+ br label %42
+
+; <label>:12 ; preds = %0
+ %13 = load i32* %2, align 4 ; [#uses=1]
+ %14 = call i32 @isdigit(i32 %13) nounwind ; [#uses=1]
+ store i32 %14, i32* %res, align 4
+ br label %42
+
+; <label>:15 ; preds = %0
+ %16 = load i32* %2, align 4 ; [#uses=1]
+ %17 = call i32 @islower(i32 %16) nounwind ; [#uses=1]
+ store i32 %17, i32* %res, align 4
+ br label %42
+
+; <label>:18 ; preds = %0
+ %19 = load i32* %2, align 4 ; [#uses=1]
+ %20 = call i32 @ispunct(i32 %19) nounwind ; [#uses=1]
+ store i32 %20, i32* %res, align 4
+ br label %42
+
+; <label>:21 ; preds = %0
+ %22 = load i32* %2, align 4 ; [#uses=1]
+ %23 = call i32 @isspace(i32 %22) nounwind ; [#uses=1]
+ store i32 %23, i32* %res, align 4
+ br label %42
+
+; <label>:24 ; preds = %0
+ %25 = load i32* %2, align 4 ; [#uses=1]
+ %26 = call i32 @isupper(i32 %25) nounwind ; [#uses=1]
+ store i32 %26, i32* %res, align 4
+ br label %42
+
+; <label>:27 ; preds = %0
+ %28 = load i32* %2, align 4 ; [#uses=1]
+ %29 = call i32 @isalnum(i32 %28) nounwind ; [#uses=1]
+ store i32 %29, i32* %res, align 4
+ br label %42
+
+; <label>:30 ; preds = %0
+ %31 = load i32* %2, align 4 ; [#uses=1]
+ %32 = call i32 @isxdigit(i32 %31) nounwind ; [#uses=1]
+ store i32 %32, i32* %res, align 4
+ br label %42
+
+; <label>:33 ; preds = %0
+ %34 = load i32* %2, align 4 ; [#uses=1]
+ %35 = icmp eq i32 %34, 0 ; [#uses=1]
+ %36 = zext i1 %35 to i32 ; [#uses=1]
+ store i32 %36, i32* %res, align 4
+ br label %42
+
+; <label>:37 ; preds = %0
+ %38 = load i32* %3, align 4 ; [#uses=1]
+ %39 = load i32* %2, align 4 ; [#uses=1]
+ %40 = icmp eq i32 %38, %39 ; [#uses=1]
+ %41 = zext i1 %40 to i32 ; [#uses=1]
+ store i32 %41, i32* %1
+ br label %55
+
+; <label>:42 ; preds = %33, %30, %27, %24, %21, %18, %15, %12, %9, %6
+ %43 = load i32* %3, align 4 ; [#uses=1]
+ %44 = call i32 @islower(i32 %43) nounwind ; [#uses=1]
+ %45 = icmp ne i32 %44, 0 ; [#uses=1]
+ br i1 %45, label %46, label %48
+
+; <label>:46 ; preds = %42
+ %47 = load i32* %res, align 4 ; [#uses=1]
+ br label %53
+
+; <label>:48 ; preds = %42
+ %49 = load i32* %res, align 4 ; [#uses=1]
+ %50 = icmp ne i32 %49, 0 ; [#uses=1]
+ %51 = xor i1 %50, true ; [#uses=1]
+ %52 = zext i1 %51 to i32 ; [#uses=1]
+ br label %53
+
+; <label>:53 ; preds = %48, %46
+ %54 = phi i32 [ %47, %46 ], [ %52, %48 ] ; [#uses=1]
+ store i32 %54, i32* %1
+ br label %55
+
+; <label>:55 ; preds = %53, %37
+ %56 = load i32* %1 ; [#uses=1]
+ ret i32 %56
+}
+
+; [#uses=2]
+declare i32 @tolower(i32) nounwind
+
+; [#uses=2]
+declare i32 @islower(i32) nounwind
+
+; [#uses=1]
+declare i32 @ispunct(i32) nounwind
+
+; [#uses=1]
+declare i32 @isupper(i32) nounwind
+
+; [#uses=1]
+declare i32 @isxdigit(i32) nounwind
+
+; [#uses=1]
+define internal i32 @_Z13check_captureP10MatchStatei(%struct.MatchState* %ms, i32 %l) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.MatchState*, align 4 ; [#uses=4]
+ %3 = alloca i32, align 4 ; [#uses=7]
+ store %struct.MatchState* %ms, %struct.MatchState** %2, align 4
+ store i32 %l, i32* %3, align 4
+ %4 = load i32* %3, align 4 ; [#uses=1]
+ %5 = sub nsw i32 %4, 49 ; [#uses=1]
+ store i32 %5, i32* %3, align 4
+ %6 = load i32* %3, align 4 ; [#uses=1]
+ %7 = icmp slt i32 %6, 0 ; [#uses=1]
+ br i1 %7, label %22, label %8
+
+; <label>:8 ; preds = %0
+ %9 = load i32* %3, align 4 ; [#uses=1]
+ %10 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.MatchState* %10, i32 0, i32 3 ; [#uses=1]
+ %12 = load i32* %11, align 4 ; [#uses=1]
+ %13 = icmp sge i32 %9, %12 ; [#uses=1]
+ br i1 %13, label %22, label %14
+
+; <label>:14 ; preds = %8
+ %15 = load i32* %3, align 4 ; [#uses=1]
+ %16 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %17 = getelementptr inbounds %struct.MatchState* %16, i32 0, i32 4 ; [#uses=1]
+ %18 = getelementptr inbounds [32 x %struct.LoadS]* %17, i32 0, i32 %15 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.LoadS* %18, i32 0, i32 1 ; [#uses=1]
+ %20 = load i32* %19, align 4 ; [#uses=1]
+ %21 = icmp eq i32 %20, -1 ; [#uses=1]
+ br i1 %21, label %22, label %27
+
+; <label>:22 ; preds = %14, %8, %0
+ %23 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds %struct.MatchState* %23, i32 0, i32 2 ; [#uses=1]
+ %25 = load %struct.lua_State** %24, align 4 ; [#uses=1]
+ %26 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %25, i8* getelementptr inbounds ([22 x i8]* @.str20518, i32 0, i32 0)) ; [#uses=1]
+ store i32 %26, i32* %1
+ br label %29
+
+; <label>:27 ; preds = %14
+ %28 = load i32* %3, align 4 ; [#uses=1]
+ store i32 %28, i32* %1
+ br label %29
+
+; <label>:29 ; preds = %27, %22
+ %30 = load i32* %1 ; [#uses=1]
+ ret i32 %30
+}
+
+; [#uses=1]
+define internal i32 @_Z16capture_to_closeP10MatchState(%struct.MatchState* %ms) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.MatchState*, align 4 ; [#uses=4]
+ %level = alloca i32, align 4 ; [#uses=8]
+ store %struct.MatchState* %ms, %struct.MatchState** %2, align 4
+ %3 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.MatchState* %3, i32 0, i32 3 ; [#uses=1]
+ %5 = load i32* %4, align 4 ; [#uses=1]
+ store i32 %5, i32* %level, align 4
+ %6 = load i32* %level, align 4 ; [#uses=1]
+ %7 = add nsw i32 %6, -1 ; [#uses=1]
+ store i32 %7, i32* %level, align 4
+ br label %8
+
+; <label>:8 ; preds = %22, %0
+ %9 = load i32* %level, align 4 ; [#uses=1]
+ %10 = icmp sge i32 %9, 0 ; [#uses=1]
+ br i1 %10, label %11, label %25
+
+; <label>:11 ; preds = %8
+ %12 = load i32* %level, align 4 ; [#uses=1]
+ %13 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.MatchState* %13, i32 0, i32 4 ; [#uses=1]
+ %15 = getelementptr inbounds [32 x %struct.LoadS]* %14, i32 0, i32 %12 ; [#uses=1]
+ %16 = getelementptr inbounds %struct.LoadS* %15, i32 0, i32 1 ; [#uses=1]
+ %17 = load i32* %16, align 4 ; [#uses=1]
+ %18 = icmp eq i32 %17, -1 ; [#uses=1]
+ br i1 %18, label %19, label %21
+
+; <label>:19 ; preds = %11
+ %20 = load i32* %level, align 4 ; [#uses=1]
+ store i32 %20, i32* %1
+ br label %30
+
+; <label>:21 ; preds = %11
+ br label %22
+
+; <label>:22 ; preds = %21
+ %23 = load i32* %level, align 4 ; [#uses=1]
+ %24 = add nsw i32 %23, -1 ; [#uses=1]
+ store i32 %24, i32* %level, align 4
+ br label %8
+
+; <label>:25 ; preds = %8
+ %26 = load %struct.MatchState** %2, align 4 ; [#uses=1]
+ %27 = getelementptr inbounds %struct.MatchState* %26, i32 0, i32 2 ; [#uses=1]
+ %28 = load %struct.lua_State** %27, align 4 ; [#uses=1]
+ %29 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %28, i8* getelementptr inbounds ([24 x i8]* @.str26524, i32 0, i32 0)) ; [#uses=1]
+ store i32 %29, i32* %1
+ br label %30
+
+; <label>:30 ; preds = %25, %19
+ %31 = load i32* %1 ; [#uses=1]
+ ret i32 %31
+}
+
+; [#uses=1]
+declare i8* @memchr(i8*, i32, i32) nounwind readonly
+
+; [#uses=1]
+define internal void @_Z9add_valueP10MatchStateP11luaL_BufferPKcS4_(%struct.MatchState* %ms, %struct.luaL_Buffer* %b, i8* %s, i8* %e) {
+ %1 = alloca %struct.MatchState*, align 4 ; [#uses=5]
+ %2 = alloca %struct.luaL_Buffer*, align 4 ; [#uses=3]
+ %3 = alloca i8*, align 4 ; [#uses=6]
+ %4 = alloca i8*, align 4 ; [#uses=5]
+ %L = alloca %struct.lua_State*, align 4 ; [#uses=12]
+ %n = alloca i32, align 4 ; [#uses=2]
+ store %struct.MatchState* %ms, %struct.MatchState** %1, align 4
+ store %struct.luaL_Buffer* %b, %struct.luaL_Buffer** %2, align 4
+ store i8* %s, i8** %3, align 4
+ store i8* %e, i8** %4, align 4
+ %5 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.MatchState* %5, i32 0, i32 2 ; [#uses=1]
+ %7 = load %struct.lua_State** %6, align 4 ; [#uses=1]
+ store %struct.lua_State* %7, %struct.lua_State** %L, align 4
+ %8 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %9 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %8, i32 3) ; [#uses=1]
+ switch i32 %9, label %28 [
+ i32 3, label %10
+ i32 4, label %10
+ i32 6, label %15
+ i32 5, label %23
+ ]
+
+; <label>:10 ; preds = %0, %0
+ %11 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %12 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %13 = load i8** %3, align 4 ; [#uses=1]
+ %14 = load i8** %4, align 4 ; [#uses=1]
+ call void @_Z5add_sP10MatchStateP11luaL_BufferPKcS4_(%struct.MatchState* %11, %struct.luaL_Buffer* %12, i8* %13, i8* %14)
+ br label %55
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %16, i32 3)
+ %17 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %18 = load i8** %3, align 4 ; [#uses=1]
+ %19 = load i8** %4, align 4 ; [#uses=1]
+ %20 = call i32 @_Z13push_capturesP10MatchStatePKcS2_(%struct.MatchState* %17, i8* %18, i8* %19) ; [#uses=1]
+ store i32 %20, i32* %n, align 4
+ %21 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %22 = load i32* %n, align 4 ; [#uses=1]
+ call void @_Z8lua_callP9lua_Stateii(%struct.lua_State* %21, i32 %22, i32 1)
+ br label %28
+
+; <label>:23 ; preds = %0
+ %24 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %25 = load i8** %3, align 4 ; [#uses=1]
+ %26 = load i8** %4, align 4 ; [#uses=1]
+ call void @_Z15push_onecaptureP10MatchStateiPKcS2_(%struct.MatchState* %24, i32 0, i8* %25, i8* %26)
+ %27 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ call void @_Z12lua_gettableP9lua_Statei(%struct.lua_State* %27, i32 3)
+ br label %28
+
+; <label>:28 ; preds = %23, %15, %0
+ %29 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %30 = call i32 @_Z13lua_tobooleanP9lua_Statei(%struct.lua_State* %29, i32 -1) ; [#uses=1]
+ %31 = icmp ne i32 %30, 0 ; [#uses=1]
+ br i1 %31, label %41, label %32
+
+; <label>:32 ; preds = %28
+ %33 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %33, i32 -2)
+ %34 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %35 = load i8** %3, align 4 ; [#uses=1]
+ %36 = load i8** %4, align 4 ; [#uses=1]
+ %37 = load i8** %3, align 4 ; [#uses=1]
+ %38 = ptrtoint i8* %36 to i32 ; [#uses=1]
+ %39 = ptrtoint i8* %37 to i32 ; [#uses=1]
+ %40 = sub i32 %38, %39 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %34, i8* %35, i32 %40)
+ br label %53
+
+; <label>:41 ; preds = %28
+ %42 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %43 = call i32 @_Z12lua_isstringP9lua_Statei(%struct.lua_State* %42, i32 -1) ; [#uses=1]
+ %44 = icmp ne i32 %43, 0 ; [#uses=1]
+ br i1 %44, label %52, label %45
+
+; <label>:45 ; preds = %41
+ %46 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %47 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %48 = load %struct.lua_State** %L, align 4 ; [#uses=1]
+ %49 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %48, i32 -1) ; [#uses=1]
+ %50 = call i8* @_Z12lua_typenameP9lua_Statei(%struct.lua_State* %47, i32 %49) ; [#uses=1]
+ %51 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %46, i8* getelementptr inbounds ([33 x i8]* @.str28526, i32 0, i32 0), i8* %50) ; [#uses=0]
+ br label %52
+
+; <label>:52 ; preds = %45, %41
+ br label %53
+
+; <label>:53 ; preds = %52, %32
+ %54 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ call void @_Z13luaL_addvalueP11luaL_Buffer(%struct.luaL_Buffer* %54)
+ br label %55
+
+; <label>:55 ; preds = %53, %10
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z5add_sP10MatchStateP11luaL_BufferPKcS4_(%struct.MatchState* %ms, %struct.luaL_Buffer* %b, i8* %s, i8* %e) {
+ %1 = alloca %struct.MatchState*, align 4 ; [#uses=3]
+ %2 = alloca %struct.luaL_Buffer*, align 4 ; [#uses=11]
+ %3 = alloca i8*, align 4 ; [#uses=4]
+ %4 = alloca i8*, align 4 ; [#uses=3]
+ %l = alloca i32, align 4 ; [#uses=2]
+ %i = alloca i32, align 4 ; [#uses=12]
+ %news = alloca i8*, align 4 ; [#uses=7]
+ store %struct.MatchState* %ms, %struct.MatchState** %1, align 4
+ store %struct.luaL_Buffer* %b, %struct.luaL_Buffer** %2, align 4
+ store i8* %s, i8** %3, align 4
+ store i8* %e, i8** %4, align 4
+ %5 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %6 = getelementptr inbounds %struct.MatchState* %5, i32 0, i32 2 ; [#uses=1]
+ %7 = load %struct.lua_State** %6, align 4 ; [#uses=1]
+ %8 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %7, i32 3, i32* %l) ; [#uses=1]
+ store i8* %8, i8** %news, align 4
+ store i32 0, i32* %i, align 4
+ br label %9
+
+; <label>:9 ; preds = %105, %0
+ %10 = load i32* %i, align 4 ; [#uses=1]
+ %11 = load i32* %l, align 4 ; [#uses=1]
+ %12 = icmp ult i32 %10, %11 ; [#uses=1]
+ br i1 %12, label %13, label %108
+
+; <label>:13 ; preds = %9
+ %14 = load i32* %i, align 4 ; [#uses=1]
+ %15 = load i8** %news, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds i8* %15, i32 %14 ; [#uses=1]
+ %17 = load i8* %16 ; [#uses=1]
+ %18 = sext i8 %17 to i32 ; [#uses=1]
+ %19 = icmp ne i32 %18, 37 ; [#uses=1]
+ br i1 %19, label %20, label %43
+
+; <label>:20 ; preds = %13
+ %21 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.luaL_Buffer* %21, i32 0, i32 0 ; [#uses=1]
+ %23 = load i8** %22, align 4 ; [#uses=1]
+ %24 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %25 = getelementptr inbounds %struct.luaL_Buffer* %24, i32 0, i32 3 ; [#uses=1]
+ %26 = getelementptr inbounds [8192 x i8]* %25, i32 0, i32 0 ; [#uses=1]
+ %27 = getelementptr inbounds i8* %26, i32 8192 ; [#uses=1]
+ %28 = icmp ult i8* %23, %27 ; [#uses=1]
+ br i1 %28, label %33, label %29
+
+; <label>:29 ; preds = %20
+ %30 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %31 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %30) ; [#uses=1]
+ %32 = icmp ne i8* %31, null ; [#uses=1]
+ br label %33
+
+; <label>:33 ; preds = %29, %20
+ %34 = phi i1 [ true, %20 ], [ %32, %29 ] ; [#uses=0]
+ %35 = load i32* %i, align 4 ; [#uses=1]
+ %36 = load i8** %news, align 4 ; [#uses=1]
+ %37 = getelementptr inbounds i8* %36, i32 %35 ; [#uses=1]
+ %38 = load i8* %37 ; [#uses=1]
+ %39 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %40 = getelementptr inbounds %struct.luaL_Buffer* %39, i32 0, i32 0 ; [#uses=2]
+ %41 = load i8** %40, align 4 ; [#uses=2]
+ %42 = getelementptr inbounds i8* %41, i32 1 ; [#uses=1]
+ store i8* %42, i8** %40, align 4
+ store i8 %38, i8* %41
+ br label %104
+
+; <label>:43 ; preds = %13
+ %44 = load i32* %i, align 4 ; [#uses=1]
+ %45 = add i32 %44, 1 ; [#uses=1]
+ store i32 %45, i32* %i, align 4
+ %46 = load i32* %i, align 4 ; [#uses=1]
+ %47 = load i8** %news, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds i8* %47, i32 %46 ; [#uses=1]
+ %49 = load i8* %48 ; [#uses=1]
+ %50 = zext i8 %49 to i32 ; [#uses=1]
+ %51 = call i32 @isdigit(i32 %50) nounwind ; [#uses=1]
+ %52 = icmp ne i32 %51, 0 ; [#uses=1]
+ br i1 %52, label %76, label %53
+
+; <label>:53 ; preds = %43
+ %54 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %55 = getelementptr inbounds %struct.luaL_Buffer* %54, i32 0, i32 0 ; [#uses=1]
+ %56 = load i8** %55, align 4 ; [#uses=1]
+ %57 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %58 = getelementptr inbounds %struct.luaL_Buffer* %57, i32 0, i32 3 ; [#uses=1]
+ %59 = getelementptr inbounds [8192 x i8]* %58, i32 0, i32 0 ; [#uses=1]
+ %60 = getelementptr inbounds i8* %59, i32 8192 ; [#uses=1]
+ %61 = icmp ult i8* %56, %60 ; [#uses=1]
+ br i1 %61, label %66, label %62
+
+; <label>:62 ; preds = %53
+ %63 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %64 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %63) ; [#uses=1]
+ %65 = icmp ne i8* %64, null ; [#uses=1]
+ br label %66
+
+; <label>:66 ; preds = %62, %53
+ %67 = phi i1 [ true, %53 ], [ %65, %62 ] ; [#uses=0]
+ %68 = load i32* %i, align 4 ; [#uses=1]
+ %69 = load i8** %news, align 4 ; [#uses=1]
+ %70 = getelementptr inbounds i8* %69, i32 %68 ; [#uses=1]
+ %71 = load i8* %70 ; [#uses=1]
+ %72 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds %struct.luaL_Buffer* %72, i32 0, i32 0 ; [#uses=2]
+ %74 = load i8** %73, align 4 ; [#uses=2]
+ %75 = getelementptr inbounds i8* %74, i32 1 ; [#uses=1]
+ store i8* %75, i8** %73, align 4
+ store i8 %71, i8* %74
+ br label %103
+
+; <label>:76 ; preds = %43
+ %77 = load i32* %i, align 4 ; [#uses=1]
+ %78 = load i8** %news, align 4 ; [#uses=1]
+ %79 = getelementptr inbounds i8* %78, i32 %77 ; [#uses=1]
+ %80 = load i8* %79 ; [#uses=1]
+ %81 = sext i8 %80 to i32 ; [#uses=1]
+ %82 = icmp eq i32 %81, 48 ; [#uses=1]
+ br i1 %82, label %83, label %91
+
+; <label>:83 ; preds = %76
+ %84 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %85 = load i8** %3, align 4 ; [#uses=1]
+ %86 = load i8** %4, align 4 ; [#uses=1]
+ %87 = load i8** %3, align 4 ; [#uses=1]
+ %88 = ptrtoint i8* %86 to i32 ; [#uses=1]
+ %89 = ptrtoint i8* %87 to i32 ; [#uses=1]
+ %90 = sub i32 %88, %89 ; [#uses=1]
+ call void @_Z15luaL_addlstringP11luaL_BufferPKcj(%struct.luaL_Buffer* %84, i8* %85, i32 %90)
+ br label %102
+
+; <label>:91 ; preds = %76
+ %92 = load %struct.MatchState** %1, align 4 ; [#uses=1]
+ %93 = load i32* %i, align 4 ; [#uses=1]
+ %94 = load i8** %news, align 4 ; [#uses=1]
+ %95 = getelementptr inbounds i8* %94, i32 %93 ; [#uses=1]
+ %96 = load i8* %95 ; [#uses=1]
+ %97 = sext i8 %96 to i32 ; [#uses=1]
+ %98 = sub nsw i32 %97, 49 ; [#uses=1]
+ %99 = load i8** %3, align 4 ; [#uses=1]
+ %100 = load i8** %4, align 4 ; [#uses=1]
+ call void @_Z15push_onecaptureP10MatchStateiPKcS2_(%struct.MatchState* %92, i32 %98, i8* %99, i8* %100)
+ %101 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ call void @_Z13luaL_addvalueP11luaL_Buffer(%struct.luaL_Buffer* %101)
+ br label %102
+
+; <label>:102 ; preds = %91, %83
+ br label %103
+
+; <label>:103 ; preds = %102, %66
+ br label %104
+
+; <label>:104 ; preds = %103, %33
+ br label %105
+
+; <label>:105 ; preds = %104
+ %106 = load i32* %i, align 4 ; [#uses=1]
+ %107 = add i32 %106, 1 ; [#uses=1]
+ store i32 %107, i32* %i, align 4
+ br label %9
+
+; <label>:108 ; preds = %9
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z10gmatch_auxP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %ms = alloca %struct.MatchState, align 4 ; [#uses=7]
+ %ls = alloca i32, align 4 ; [#uses=2]
+ %s = alloca i8*, align 4 ; [#uses=5]
+ %p = alloca i8*, align 4 ; [#uses=2]
+ %src = alloca i8*, align 4 ; [#uses=7]
+ %e = alloca i8*, align 4 ; [#uses=4]
+ %newstart = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %3, i32 -10003, i32* %ls) ; [#uses=1]
+ store i8* %4, i8** %s, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %5, i32 -10004, i32* null) ; [#uses=1]
+ store i8* %6, i8** %p, align 4
+ %7 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.MatchState* %ms, i32 0, i32 2 ; [#uses=1]
+ store %struct.lua_State* %7, %struct.lua_State** %8, align 4
+ %9 = load i8** %s, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.MatchState* %ms, i32 0, i32 0 ; [#uses=1]
+ store i8* %9, i8** %10, align 4
+ %11 = load i8** %s, align 4 ; [#uses=1]
+ %12 = load i32* %ls, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds i8* %11, i32 %12 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.MatchState* %ms, i32 0, i32 1 ; [#uses=1]
+ store i8* %13, i8** %14, align 4
+ %15 = load i8** %s, align 4 ; [#uses=1]
+ %16 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %17 = call i32 @_Z13lua_tointegerP9lua_Statei(%struct.lua_State* %16, i32 -10005) ; [#uses=1]
+ %18 = getelementptr inbounds i8* %15, i32 %17 ; [#uses=1]
+ store i8* %18, i8** %src, align 4
+ br label %19
+
+; <label>:19 ; preds = %50, %0
+ %20 = load i8** %src, align 4 ; [#uses=1]
+ %21 = getelementptr inbounds %struct.MatchState* %ms, i32 0, i32 1 ; [#uses=1]
+ %22 = load i8** %21, align 4 ; [#uses=1]
+ %23 = icmp ule i8* %20, %22 ; [#uses=1]
+ br i1 %23, label %24, label %53
+
+; <label>:24 ; preds = %19
+ %25 = getelementptr inbounds %struct.MatchState* %ms, i32 0, i32 3 ; [#uses=1]
+ store i32 0, i32* %25, align 4
+ %26 = load i8** %src, align 4 ; [#uses=1]
+ %27 = load i8** %p, align 4 ; [#uses=1]
+ %28 = call i8* @_Z5matchP10MatchStatePKcS2_(%struct.MatchState* %ms, i8* %26, i8* %27) ; [#uses=2]
+ store i8* %28, i8** %e, align 4
+ %29 = icmp ne i8* %28, null ; [#uses=1]
+ br i1 %29, label %30, label %49
+
+; <label>:30 ; preds = %24
+ %31 = load i8** %e, align 4 ; [#uses=1]
+ %32 = load i8** %s, align 4 ; [#uses=1]
+ %33 = ptrtoint i8* %31 to i32 ; [#uses=1]
+ %34 = ptrtoint i8* %32 to i32 ; [#uses=1]
+ %35 = sub i32 %33, %34 ; [#uses=1]
+ store i32 %35, i32* %newstart, align 4
+ %36 = load i8** %e, align 4 ; [#uses=1]
+ %37 = load i8** %src, align 4 ; [#uses=1]
+ %38 = icmp eq i8* %36, %37 ; [#uses=1]
+ br i1 %38, label %39, label %42
+
+; <label>:39 ; preds = %30
+ %40 = load i32* %newstart, align 4 ; [#uses=1]
+ %41 = add nsw i32 %40, 1 ; [#uses=1]
+ store i32 %41, i32* %newstart, align 4
+ br label %42
+
+; <label>:42 ; preds = %39, %30
+ %43 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %44 = load i32* %newstart, align 4 ; [#uses=1]
+ call void @_Z15lua_pushintegerP9lua_Statei(%struct.lua_State* %43, i32 %44)
+ %45 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z11lua_replaceP9lua_Statei(%struct.lua_State* %45, i32 -10005)
+ %46 = load i8** %src, align 4 ; [#uses=1]
+ %47 = load i8** %e, align 4 ; [#uses=1]
+ %48 = call i32 @_Z13push_capturesP10MatchStatePKcS2_(%struct.MatchState* %ms, i8* %46, i8* %47) ; [#uses=1]
+ store i32 %48, i32* %1
+ br label %54
+
+; <label>:49 ; preds = %24
+ br label %50
+
+; <label>:50 ; preds = %49
+ %51 = load i8** %src, align 4 ; [#uses=1]
+ %52 = getelementptr inbounds i8* %51, i32 1 ; [#uses=1]
+ store i8* %52, i8** %src, align 4
+ br label %19
+
+; <label>:53 ; preds = %19
+ store i32 0, i32* %1
+ br label %54
+
+; <label>:54 ; preds = %53, %42
+ %55 = load i32* %1 ; [#uses=1]
+ ret i32 %55
+}
+
+; [#uses=1]
+define internal i8* @_Z10scanformatP9lua_StatePKcPc(%struct.lua_State* %L, i8* %strfrmt, i8* %form) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=3]
+ %2 = alloca i8*, align 4 ; [#uses=6]
+ %3 = alloca i8*, align 4 ; [#uses=7]
+ %p = alloca i8*, align 4 ; [#uses=25]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %strfrmt, i8** %2, align 4
+ store i8* %form, i8** %3, align 4
+ %4 = load i8** %2, align 4 ; [#uses=1]
+ store i8* %4, i8** %p, align 4
+ br label %5
+
+; <label>:5 ; preds = %18, %0
+ %6 = load i8** %p, align 4 ; [#uses=1]
+ %7 = load i8* %6 ; [#uses=1]
+ %8 = sext i8 %7 to i32 ; [#uses=1]
+ %9 = icmp ne i32 %8, 0 ; [#uses=1]
+ br i1 %9, label %10, label %16
+
+; <label>:10 ; preds = %5
+ %11 = load i8** %p, align 4 ; [#uses=1]
+ %12 = load i8* %11 ; [#uses=1]
+ %13 = sext i8 %12 to i32 ; [#uses=1]
+ %14 = call i8* @strchr(i8* getelementptr inbounds ([6 x i8]* @.str34532, i32 0, i32 0), i32 %13) ; [#uses=1]
+ %15 = icmp ne i8* %14, null ; [#uses=1]
+ br label %16
+
+; <label>:16 ; preds = %10, %5
+ %17 = phi i1 [ false, %5 ], [ %15, %10 ] ; [#uses=1]
+ br i1 %17, label %18, label %21
+
+; <label>:18 ; preds = %16
+ %19 = load i8** %p, align 4 ; [#uses=1]
+ %20 = getelementptr inbounds i8* %19, i32 1 ; [#uses=1]
+ store i8* %20, i8** %p, align 4
+ br label %5
+
+; <label>:21 ; preds = %16
+ %22 = load i8** %p, align 4 ; [#uses=1]
+ %23 = load i8** %2, align 4 ; [#uses=1]
+ %24 = ptrtoint i8* %22 to i32 ; [#uses=1]
+ %25 = ptrtoint i8* %23 to i32 ; [#uses=1]
+ %26 = sub i32 %24, %25 ; [#uses=1]
+ %27 = icmp uge i32 %26, 6 ; [#uses=1]
+ br i1 %27, label %28, label %31
+
+; <label>:28 ; preds = %21
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %30 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %29, i8* getelementptr inbounds ([32 x i8]* @.str35533, i32 0, i32 0)) ; [#uses=0]
+ br label %31
+
+; <label>:31 ; preds = %28, %21
+ %32 = load i8** %p, align 4 ; [#uses=1]
+ %33 = load i8* %32 ; [#uses=1]
+ %34 = zext i8 %33 to i32 ; [#uses=1]
+ %35 = call i32 @isdigit(i32 %34) nounwind ; [#uses=1]
+ %36 = icmp ne i32 %35, 0 ; [#uses=1]
+ br i1 %36, label %37, label %40
+
+; <label>:37 ; preds = %31
+ %38 = load i8** %p, align 4 ; [#uses=1]
+ %39 = getelementptr inbounds i8* %38, i32 1 ; [#uses=1]
+ store i8* %39, i8** %p, align 4
+ br label %40
+
+; <label>:40 ; preds = %37, %31
+ %41 = load i8** %p, align 4 ; [#uses=1]
+ %42 = load i8* %41 ; [#uses=1]
+ %43 = zext i8 %42 to i32 ; [#uses=1]
+ %44 = call i32 @isdigit(i32 %43) nounwind ; [#uses=1]
+ %45 = icmp ne i32 %44, 0 ; [#uses=1]
+ br i1 %45, label %46, label %49
+
+; <label>:46 ; preds = %40
+ %47 = load i8** %p, align 4 ; [#uses=1]
+ %48 = getelementptr inbounds i8* %47, i32 1 ; [#uses=1]
+ store i8* %48, i8** %p, align 4
+ br label %49
+
+; <label>:49 ; preds = %46, %40
+ %50 = load i8** %p, align 4 ; [#uses=1]
+ %51 = load i8* %50 ; [#uses=1]
+ %52 = sext i8 %51 to i32 ; [#uses=1]
+ %53 = icmp eq i32 %52, 46 ; [#uses=1]
+ br i1 %53, label %54, label %75
+
+; <label>:54 ; preds = %49
+ %55 = load i8** %p, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds i8* %55, i32 1 ; [#uses=1]
+ store i8* %56, i8** %p, align 4
+ %57 = load i8** %p, align 4 ; [#uses=1]
+ %58 = load i8* %57 ; [#uses=1]
+ %59 = zext i8 %58 to i32 ; [#uses=1]
+ %60 = call i32 @isdigit(i32 %59) nounwind ; [#uses=1]
+ %61 = icmp ne i32 %60, 0 ; [#uses=1]
+ br i1 %61, label %62, label %65
+
+; <label>:62 ; preds = %54
+ %63 = load i8** %p, align 4 ; [#uses=1]
+ %64 = getelementptr inbounds i8* %63, i32 1 ; [#uses=1]
+ store i8* %64, i8** %p, align 4
+ br label %65
+
+; <label>:65 ; preds = %62, %54
+ %66 = load i8** %p, align 4 ; [#uses=1]
+ %67 = load i8* %66 ; [#uses=1]
+ %68 = zext i8 %67 to i32 ; [#uses=1]
+ %69 = call i32 @isdigit(i32 %68) nounwind ; [#uses=1]
+ %70 = icmp ne i32 %69, 0 ; [#uses=1]
+ br i1 %70, label %71, label %74
+
+; <label>:71 ; preds = %65
+ %72 = load i8** %p, align 4 ; [#uses=1]
+ %73 = getelementptr inbounds i8* %72, i32 1 ; [#uses=1]
+ store i8* %73, i8** %p, align 4
+ br label %74
+
+; <label>:74 ; preds = %71, %65
+ br label %75
+
+; <label>:75 ; preds = %74, %49
+ %76 = load i8** %p, align 4 ; [#uses=1]
+ %77 = load i8* %76 ; [#uses=1]
+ %78 = zext i8 %77 to i32 ; [#uses=1]
+ %79 = call i32 @isdigit(i32 %78) nounwind ; [#uses=1]
+ %80 = icmp ne i32 %79, 0 ; [#uses=1]
+ br i1 %80, label %81, label %84
+
+; <label>:81 ; preds = %75
+ %82 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %83 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %82, i8* getelementptr inbounds ([45 x i8]* @.str36534, i32 0, i32 0)) ; [#uses=0]
+ br label %84
+
+; <label>:84 ; preds = %81, %75
+ %85 = load i8** %3, align 4 ; [#uses=2]
+ %86 = getelementptr inbounds i8* %85, i32 1 ; [#uses=1]
+ store i8* %86, i8** %3, align 4
+ store i8 37, i8* %85
+ %87 = load i8** %3, align 4 ; [#uses=1]
+ %88 = load i8** %2, align 4 ; [#uses=1]
+ %89 = load i8** %p, align 4 ; [#uses=1]
+ %90 = load i8** %2, align 4 ; [#uses=1]
+ %91 = ptrtoint i8* %89 to i32 ; [#uses=1]
+ %92 = ptrtoint i8* %90 to i32 ; [#uses=1]
+ %93 = sub i32 %91, %92 ; [#uses=1]
+ %94 = add nsw i32 %93, 1 ; [#uses=1]
+ %95 = call i8* @strncpy(i8* %87, i8* %88, i32 %94) ; [#uses=0]
+ %96 = load i8** %p, align 4 ; [#uses=1]
+ %97 = load i8** %2, align 4 ; [#uses=1]
+ %98 = ptrtoint i8* %96 to i32 ; [#uses=1]
+ %99 = ptrtoint i8* %97 to i32 ; [#uses=1]
+ %100 = sub i32 %98, %99 ; [#uses=1]
+ %101 = add nsw i32 %100, 1 ; [#uses=1]
+ %102 = load i8** %3, align 4 ; [#uses=1]
+ %103 = getelementptr inbounds i8* %102, i32 %101 ; [#uses=1]
+ store i8* %103, i8** %3, align 4
+ %104 = load i8** %3, align 4 ; [#uses=1]
+ store i8 0, i8* %104
+ %105 = load i8** %p, align 4 ; [#uses=1]
+ ret i8* %105
+}
+
+; [#uses=2]
+define internal void @_Z9addintlenPc(i8* %form) nounwind {
+ %1 = alloca i8*, align 4 ; [#uses=6]
+ %l = alloca i32, align 4 ; [#uses=5]
+ %spec = alloca i8, align 1 ; [#uses=2]
+ store i8* %form, i8** %1, align 4
+ %2 = load i8** %1, align 4 ; [#uses=1]
+ %3 = call i32 @strlen(i8* %2) ; [#uses=1]
+ store i32 %3, i32* %l, align 4
+ %4 = load i32* %l, align 4 ; [#uses=1]
+ %5 = sub i32 %4, 1 ; [#uses=1]
+ %6 = load i8** %1, align 4 ; [#uses=1]
+ %7 = getelementptr inbounds i8* %6, i32 %5 ; [#uses=1]
+ %8 = load i8* %7 ; [#uses=1]
+ store i8 %8, i8* %spec, align 1
+ %9 = load i8** %1, align 4 ; [#uses=1]
+ %10 = load i32* %l, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds i8* %9, i32 %10 ; [#uses=1]
+ %12 = getelementptr inbounds i8* %11, i32 -1 ; [#uses=1]
+ %13 = call i8* @strcpy(i8* %12, i8* getelementptr inbounds ([2 x i8]* @.str33531, i32 0, i32 0)) ; [#uses=0]
+ %14 = load i8* %spec, align 1 ; [#uses=1]
+ %15 = load i32* %l, align 4 ; [#uses=1]
+ %16 = add i32 %15, 2 ; [#uses=1]
+ %17 = sub i32 %16, 2 ; [#uses=1]
+ %18 = load i8** %1, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds i8* %18, i32 %17 ; [#uses=1]
+ store i8 %14, i8* %19
+ %20 = load i32* %l, align 4 ; [#uses=1]
+ %21 = add i32 %20, 2 ; [#uses=1]
+ %22 = sub i32 %21, 1 ; [#uses=1]
+ %23 = load i8** %1, align 4 ; [#uses=1]
+ %24 = getelementptr inbounds i8* %23, i32 %22 ; [#uses=1]
+ store i8 0, i8* %24
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z9addquotedP9lua_StateP11luaL_Bufferi(%struct.lua_State* %L, %struct.luaL_Buffer* %b, i32 %arg) {
+; <label>:0
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca %struct.luaL_Buffer*, align 4 ; [#uses=23]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %l = alloca i32, align 4 ; [#uses=3]
+ %s = alloca i8*, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.luaL_Buffer* %b, %struct.luaL_Buffer** %2, align 4
+ store i32 %arg, i32* %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = load i32* %3, align 4 ; [#uses=1]
+ %6 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %4, i32 %5, i32* %l) ; [#uses=1]
+ store i8* %6, i8** %s, align 4
+ %7 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %8 = getelementptr inbounds %struct.luaL_Buffer* %7, i32 0, i32 0 ; [#uses=1]
+ %9 = load i8** %8, align 4 ; [#uses=1]
+ %10 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds %struct.luaL_Buffer* %10, i32 0, i32 3 ; [#uses=1]
+ %12 = getelementptr inbounds [8192 x i8]* %11, i32 0, i32 0 ; [#uses=1]
+ %13 = getelementptr inbounds i8* %12, i32 8192 ; [#uses=1]
+ %14 = icmp ult i8* %9, %13 ; [#uses=1]
+ br i1 %14, label %19, label %15
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %17 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %16) ; [#uses=1]
+ %18 = icmp ne i8* %17, null ; [#uses=1]
+ br label %19
+
+; <label>:19 ; preds = %15, %0
+ %20 = phi i1 [ true, %0 ], [ %18, %15 ] ; [#uses=0]
+ %21 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %22 = getelementptr inbounds %struct.luaL_Buffer* %21, i32 0, i32 0 ; [#uses=2]
+ %23 = load i8** %22, align 4 ; [#uses=2]
+ %24 = getelementptr inbounds i8* %23, i32 1 ; [#uses=1]
+ store i8* %24, i8** %22, align 4
+ store i8 34, i8* %23
+ br label %25
+
+; <label>:25 ; preds = %97, %19
+ %26 = load i32* %l, align 4 ; [#uses=2]
+ %27 = add i32 %26, -1 ; [#uses=1]
+ store i32 %27, i32* %l, align 4
+ %28 = icmp ne i32 %26, 0 ; [#uses=1]
+ br i1 %28, label %29, label %100
+
+; <label>:29 ; preds = %25
+ %30 = load i8** %s, align 4 ; [#uses=1]
+ %31 = load i8* %30 ; [#uses=1]
+ %32 = sext i8 %31 to i32 ; [#uses=1]
+ switch i32 %32, label %76 [
+ i32 34, label %33
+ i32 92, label %33
+ i32 10, label %33
+ i32 13, label %72
+ i32 0, label %74
+ ]
+
+; <label>:33 ; preds = %29, %29, %29
+ %34 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %35 = getelementptr inbounds %struct.luaL_Buffer* %34, i32 0, i32 0 ; [#uses=1]
+ %36 = load i8** %35, align 4 ; [#uses=1]
+ %37 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %38 = getelementptr inbounds %struct.luaL_Buffer* %37, i32 0, i32 3 ; [#uses=1]
+ %39 = getelementptr inbounds [8192 x i8]* %38, i32 0, i32 0 ; [#uses=1]
+ %40 = getelementptr inbounds i8* %39, i32 8192 ; [#uses=1]
+ %41 = icmp ult i8* %36, %40 ; [#uses=1]
+ br i1 %41, label %46, label %42
+
+; <label>:42 ; preds = %33
+ %43 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %44 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %43) ; [#uses=1]
+ %45 = icmp ne i8* %44, null ; [#uses=1]
+ br label %46
+
+; <label>:46 ; preds = %42, %33
+ %47 = phi i1 [ true, %33 ], [ %45, %42 ] ; [#uses=0]
+ %48 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %49 = getelementptr inbounds %struct.luaL_Buffer* %48, i32 0, i32 0 ; [#uses=2]
+ %50 = load i8** %49, align 4 ; [#uses=2]
+ %51 = getelementptr inbounds i8* %50, i32 1 ; [#uses=1]
+ store i8* %51, i8** %49, align 4
+ store i8 92, i8* %50
+ %52 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %53 = getelementptr inbounds %struct.luaL_Buffer* %52, i32 0, i32 0 ; [#uses=1]
+ %54 = load i8** %53, align 4 ; [#uses=1]
+ %55 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %56 = getelementptr inbounds %struct.luaL_Buffer* %55, i32 0, i32 3 ; [#uses=1]
+ %57 = getelementptr inbounds [8192 x i8]* %56, i32 0, i32 0 ; [#uses=1]
+ %58 = getelementptr inbounds i8* %57, i32 8192 ; [#uses=1]
+ %59 = icmp ult i8* %54, %58 ; [#uses=1]
+ br i1 %59, label %64, label %60
+
+; <label>:60 ; preds = %46
+ %61 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %62 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %61) ; [#uses=1]
+ %63 = icmp ne i8* %62, null ; [#uses=1]
+ br label %64
+
+; <label>:64 ; preds = %60, %46
+ %65 = phi i1 [ true, %46 ], [ %63, %60 ] ; [#uses=0]
+ %66 = load i8** %s, align 4 ; [#uses=1]
+ %67 = load i8* %66 ; [#uses=1]
+ %68 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %69 = getelementptr inbounds %struct.luaL_Buffer* %68, i32 0, i32 0 ; [#uses=2]
+ %70 = load i8** %69, align 4 ; [#uses=2]
+ %71 = getelementptr inbounds i8* %70, i32 1 ; [#uses=1]
+ store i8* %71, i8** %69, align 4
+ store i8 %67, i8* %70
+ br label %97
+
+; <label>:72 ; preds = %29
+ %73 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ call void @_Z15luaL_addlstringP11luaL_BufferPKcj(%struct.luaL_Buffer* %73, i8* getelementptr inbounds ([3 x i8]* @.str31529, i32 0, i32 0), i32 2)
+ br label %97
+
+; <label>:74 ; preds = %29
+ %75 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ call void @_Z15luaL_addlstringP11luaL_BufferPKcj(%struct.luaL_Buffer* %75, i8* getelementptr inbounds ([5 x i8]* @.str32530, i32 0, i32 0), i32 4)
+ br label %97
+
+; <label>:76 ; preds = %29
+ %77 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %78 = getelementptr inbounds %struct.luaL_Buffer* %77, i32 0, i32 0 ; [#uses=1]
+ %79 = load i8** %78, align 4 ; [#uses=1]
+ %80 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %81 = getelementptr inbounds %struct.luaL_Buffer* %80, i32 0, i32 3 ; [#uses=1]
+ %82 = getelementptr inbounds [8192 x i8]* %81, i32 0, i32 0 ; [#uses=1]
+ %83 = getelementptr inbounds i8* %82, i32 8192 ; [#uses=1]
+ %84 = icmp ult i8* %79, %83 ; [#uses=1]
+ br i1 %84, label %89, label %85
+
+; <label>:85 ; preds = %76
+ %86 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %87 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %86) ; [#uses=1]
+ %88 = icmp ne i8* %87, null ; [#uses=1]
+ br label %89
+
+; <label>:89 ; preds = %85, %76
+ %90 = phi i1 [ true, %76 ], [ %88, %85 ] ; [#uses=0]
+ %91 = load i8** %s, align 4 ; [#uses=1]
+ %92 = load i8* %91 ; [#uses=1]
+ %93 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %94 = getelementptr inbounds %struct.luaL_Buffer* %93, i32 0, i32 0 ; [#uses=2]
+ %95 = load i8** %94, align 4 ; [#uses=2]
+ %96 = getelementptr inbounds i8* %95, i32 1 ; [#uses=1]
+ store i8* %96, i8** %94, align 4
+ store i8 %92, i8* %95
+ br label %97
+
+; <label>:97 ; preds = %89, %74, %72, %64
+ %98 = load i8** %s, align 4 ; [#uses=1]
+ %99 = getelementptr inbounds i8* %98, i32 1 ; [#uses=1]
+ store i8* %99, i8** %s, align 4
+ br label %25
+
+; <label>:100 ; preds = %25
+ %101 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %102 = getelementptr inbounds %struct.luaL_Buffer* %101, i32 0, i32 0 ; [#uses=1]
+ %103 = load i8** %102, align 4 ; [#uses=1]
+ %104 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %105 = getelementptr inbounds %struct.luaL_Buffer* %104, i32 0, i32 3 ; [#uses=1]
+ %106 = getelementptr inbounds [8192 x i8]* %105, i32 0, i32 0 ; [#uses=1]
+ %107 = getelementptr inbounds i8* %106, i32 8192 ; [#uses=1]
+ %108 = icmp ult i8* %103, %107 ; [#uses=1]
+ br i1 %108, label %113, label %109
+
+; <label>:109 ; preds = %100
+ %110 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %111 = call i8* @_Z15luaL_prepbufferP11luaL_Buffer(%struct.luaL_Buffer* %110) ; [#uses=1]
+ %112 = icmp ne i8* %111, null ; [#uses=1]
+ br label %113
+
+; <label>:113 ; preds = %109, %100
+ %114 = phi i1 [ true, %100 ], [ %112, %109 ] ; [#uses=0]
+ %115 = load %struct.luaL_Buffer** %2, align 4 ; [#uses=1]
+ %116 = getelementptr inbounds %struct.luaL_Buffer* %115, i32 0, i32 0 ; [#uses=2]
+ %117 = load i8** %116, align 4 ; [#uses=2]
+ %118 = getelementptr inbounds i8* %117, i32 1 ; [#uses=1]
+ store i8* %118, i8** %116, align 4
+ store i8 34, i8* %117
+ ret void
+}
+
+; [#uses=1]
+define internal i32 @_Z6writerP9lua_StatePKvjPv(%struct.lua_State* %L, i8* %b, i32 %size, i8* %B) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=1]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %3 = alloca i32, align 4 ; [#uses=2]
+ %4 = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %b, i8** %2, align 4
+ store i32 %size, i32* %3, align 4
+ store i8* %B, i8** %4, align 4
+ %5 = load i8** %4, align 4 ; [#uses=1]
+ %6 = bitcast i8* %5 to %struct.luaL_Buffer* ; [#uses=1]
+ %7 = load i8** %2, align 4 ; [#uses=1]
+ %8 = load i32* %3, align 4 ; [#uses=1]
+ call void @_Z15luaL_addlstringP11luaL_BufferPKcj(%struct.luaL_Buffer* %6, i8* %7, i32 %8)
+ ret i32 0
+}
+
+; [#uses=1]
+define internal i32 @_Z10ll_loadlibP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %path = alloca i8*, align 4 ; [#uses=2]
+ %init = alloca i8*, align 4 ; [#uses=2]
+ %stat = alloca i32, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %3, i32 1, i32* null) ; [#uses=1]
+ store i8* %4, i8** %path, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %5, i32 2, i32* null) ; [#uses=1]
+ store i8* %6, i8** %init, align 4
+ %7 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %8 = load i8** %path, align 4 ; [#uses=1]
+ %9 = load i8** %init, align 4 ; [#uses=1]
+ %10 = call i32 @_Z11ll_loadfuncP9lua_StatePKcS2_(%struct.lua_State* %7, i8* %8, i8* %9) ; [#uses=1]
+ store i32 %10, i32* %stat, align 4
+ %11 = load i32* %stat, align 4 ; [#uses=1]
+ %12 = icmp eq i32 %11, 0 ; [#uses=1]
+ br i1 %12, label %13, label %14
+
+; <label>:13 ; preds = %0
+ store i32 1, i32* %1
+ br label %24
+
+; <label>:14 ; preds = %0
+ %15 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z11lua_pushnilP9lua_State(%struct.lua_State* %15)
+ %16 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_insertP9lua_Statei(%struct.lua_State* %16, i32 -2)
+ %17 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %18 = load i32* %stat, align 4 ; [#uses=1]
+ %19 = icmp eq i32 %18, 1 ; [#uses=1]
+ br i1 %19, label %20, label %21
+
+; <label>:20 ; preds = %14
+ br label %22
+
+; <label>:21 ; preds = %14
+ br label %22
+
+; <label>:22 ; preds = %21, %20
+ %23 = phi i8* [ getelementptr inbounds ([7 x i8]* @.str50588, i32 0, i32 0), %20 ], [ getelementptr inbounds ([5 x i8]* @.str51589, i32 0, i32 0), %21 ] ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %17, i8* %23)
+ store i32 3, i32* %1
+ br label %24
+
+; <label>:24 ; preds = %22, %13
+ %25 = load i32* %1 ; [#uses=1]
+ ret i32 %25
+}
+
+; [#uses=1]
+define internal i32 @_Z9ll_seeallP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z14luaL_checktypeP9lua_Stateii(%struct.lua_State* %2, i32 1, i32 5)
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = call i32 @_Z16lua_getmetatableP9lua_Statei(%struct.lua_State* %3, i32 1) ; [#uses=1]
+ %5 = icmp ne i32 %4, 0 ; [#uses=1]
+ br i1 %5, label %11, label %6
+
+; <label>:6 ; preds = %0
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_createtableP9lua_Stateii(%struct.lua_State* %7, i32 0, i32 1)
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %8, i32 -1)
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = call i32 @_Z16lua_setmetatableP9lua_Statei(%struct.lua_State* %9, i32 1) ; [#uses=0]
+ br label %11
+
+; <label>:11 ; preds = %6, %0
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %12, i32 -10002)
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %13, i32 -2, i8* getelementptr inbounds ([8 x i8]* @.str49587, i32 0, i32 0))
+ ret i32 0
+}
+
+; [#uses=1]
+define internal i32 @_Z9ll_moduleP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=19]
+ %modname = alloca i8*, align 4 ; [#uses=6]
+ %loaded = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %3, i32 1, i32* null) ; [#uses=1]
+ store i8* %4, i8** %modname, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = call i32 @_Z10lua_gettopP9lua_State(%struct.lua_State* %5) ; [#uses=1]
+ %7 = add nsw i32 %6, 1 ; [#uses=1]
+ store i32 %7, i32* %loaded, align 4
+ %8 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %8, i32 -10000, i8* getelementptr inbounds ([8 x i8]* @.str16554, i32 0, i32 0))
+ %9 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %10 = load i32* %loaded, align 4 ; [#uses=1]
+ %11 = load i8** %modname, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %9, i32 %10, i8* %11)
+ %12 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %13 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %12, i32 -1) ; [#uses=1]
+ %14 = icmp eq i32 %13, 5 ; [#uses=1]
+ br i1 %14, label %30, label %15
+
+; <label>:15 ; preds = %0
+ %16 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %16, i32 -2)
+ %17 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %18 = load i8** %modname, align 4 ; [#uses=1]
+ %19 = call i8* @_Z14luaL_findtableP9lua_StateiPKci(%struct.lua_State* %17, i32 -10002, i8* %18, i32 1) ; [#uses=1]
+ %20 = icmp ne i8* %19, null ; [#uses=1]
+ br i1 %20, label %21, label %25
+
+; <label>:21 ; preds = %15
+ %22 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %23 = load i8** %modname, align 4 ; [#uses=1]
+ %24 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %22, i8* getelementptr inbounds ([30 x i8]* @.str43581, i32 0, i32 0), i8* %23) ; [#uses=1]
+ store i32 %24, i32* %1
+ br label %47
+
+; <label>:25 ; preds = %15
+ %26 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %26, i32 -1)
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %28 = load i32* %loaded, align 4 ; [#uses=1]
+ %29 = load i8** %modname, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %27, i32 %28, i8* %29)
+ br label %30
+
+; <label>:30 ; preds = %25, %0
+ %31 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %31, i32 -1, i8* getelementptr inbounds ([6 x i8]* @.str44582, i32 0, i32 0))
+ %32 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %33 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %32, i32 -1) ; [#uses=1]
+ %34 = icmp eq i32 %33, 0 ; [#uses=1]
+ br i1 %34, label %37, label %35
+
+; <label>:35 ; preds = %30
+ %36 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %36, i32 -2)
+ br label %41
+
+; <label>:37 ; preds = %30
+ %38 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %38, i32 -2)
+ %39 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %40 = load i8** %modname, align 4 ; [#uses=1]
+ call void @_Z7modinitP9lua_StatePKc(%struct.lua_State* %39, i8* %40)
+ br label %41
+
+; <label>:41 ; preds = %37, %35
+ %42 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %42, i32 -1)
+ %43 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z7setfenvP9lua_State(%struct.lua_State* %43)
+ %44 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %45 = load i32* %loaded, align 4 ; [#uses=1]
+ %46 = sub nsw i32 %45, 1 ; [#uses=1]
+ call void @_Z9dooptionsP9lua_Statei(%struct.lua_State* %44, i32 %46)
+ store i32 0, i32* %1
+ br label %47
+
+; <label>:47 ; preds = %41, %21
+ %48 = load i32* %1 ; [#uses=1]
+ ret i32 %48
+}
+
+; [#uses=1]
+define internal i32 @_Z10ll_requireP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=33]
+ %name = alloca i8*, align 4 ; [#uses=10]
+ %i = alloca i32, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %3, i32 1, i32* null) ; [#uses=1]
+ store i8* %4, i8** %name, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %5, i32 1)
+ %6 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %6, i32 -10000, i8* getelementptr inbounds ([8 x i8]* @.str16554, i32 0, i32 0))
+ %7 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %8 = load i8** %name, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %7, i32 2, i8* %8)
+ %9 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %10 = call i32 @_Z13lua_tobooleanP9lua_Statei(%struct.lua_State* %9, i32 -1) ; [#uses=1]
+ %11 = icmp ne i32 %10, 0 ; [#uses=1]
+ br i1 %11, label %12, label %21
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %14 = call i8* @_Z14lua_touserdataP9lua_Statei(%struct.lua_State* %13, i32 -1) ; [#uses=1]
+ %15 = icmp eq i8* %14, bitcast (i32* @_ZL9sentinel_ to i8*) ; [#uses=1]
+ br i1 %15, label %16, label %20
+
+; <label>:16 ; preds = %12
+ %17 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %18 = load i8** %name, align 4 ; [#uses=1]
+ %19 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %17, i8* getelementptr inbounds ([43 x i8]* @.str40578, i32 0, i32 0), i8* %18) ; [#uses=0]
+ br label %20
+
+; <label>:20 ; preds = %16, %12
+ store i32 1, i32* %1
+ br label %89
+
+; <label>:21 ; preds = %0
+ %22 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %22, i32 -10001, i8* getelementptr inbounds ([8 x i8]* @.str7545, i32 0, i32 0))
+ %23 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %24 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %23, i32 -1) ; [#uses=1]
+ %25 = icmp eq i32 %24, 5 ; [#uses=1]
+ br i1 %25, label %29, label %26
+
+; <label>:26 ; preds = %21
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %28 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %27, i8* getelementptr inbounds ([34 x i8]* @.str41579, i32 0, i32 0)) ; [#uses=0]
+ br label %29
+
+; <label>:29 ; preds = %26, %21
+ %30 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %30, i8* getelementptr inbounds ([1 x i8]* @.str33571, i32 0, i32 0), i32 0)
+ store i32 1, i32* %i, align 4
+ br label %31
+
+; <label>:31 ; preds = %61, %29
+ %32 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %33 = load i32* %i, align 4 ; [#uses=1]
+ call void @_Z11lua_rawgetiP9lua_Stateii(%struct.lua_State* %32, i32 -2, i32 %33)
+ %34 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %35 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %34, i32 -1) ; [#uses=1]
+ %36 = icmp eq i32 %35, 0 ; [#uses=1]
+ br i1 %36, label %37, label %43
+
+; <label>:37 ; preds = %31
+ %38 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %39 = load i8** %name, align 4 ; [#uses=1]
+ %40 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %41 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %40, i32 -2, i32* null) ; [#uses=1]
+ %42 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %38, i8* getelementptr inbounds ([25 x i8]* @.str42580, i32 0, i32 0), i8* %39, i8* %41) ; [#uses=0]
+ br label %43
+
+; <label>:43 ; preds = %37, %31
+ %44 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %45 = load i8** %name, align 4 ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %44, i8* %45)
+ %46 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z8lua_callP9lua_Stateii(%struct.lua_State* %46, i32 1, i32 1)
+ %47 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %48 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %47, i32 -1) ; [#uses=1]
+ %49 = icmp eq i32 %48, 6 ; [#uses=1]
+ br i1 %49, label %50, label %51
+
+; <label>:50 ; preds = %43
+ br label %64
+
+; <label>:51 ; preds = %43
+ %52 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %53 = call i32 @_Z12lua_isstringP9lua_Statei(%struct.lua_State* %52, i32 -1) ; [#uses=1]
+ %54 = icmp ne i32 %53, 0 ; [#uses=1]
+ br i1 %54, label %55, label %57
+
+; <label>:55 ; preds = %51
+ %56 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_concatP9lua_Statei(%struct.lua_State* %56, i32 2)
+ br label %59
+
+; <label>:57 ; preds = %51
+ %58 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %58, i32 -2)
+ br label %59
+
+; <label>:59 ; preds = %57, %55
+ br label %60
+
+; <label>:60 ; preds = %59
+ br label %61
+
+; <label>:61 ; preds = %60
+ %62 = load i32* %i, align 4 ; [#uses=1]
+ %63 = add nsw i32 %62, 1 ; [#uses=1]
+ store i32 %63, i32* %i, align 4
+ br label %31
+
+; <label>:64 ; preds = %50
+ %65 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z21lua_pushlightuserdataP9lua_StatePv(%struct.lua_State* %65, i8* bitcast (i32* @_ZL9sentinel_ to i8*))
+ %66 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %67 = load i8** %name, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %66, i32 2, i8* %67)
+ %68 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %69 = load i8** %name, align 4 ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %68, i8* %69)
+ %70 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z8lua_callP9lua_Stateii(%struct.lua_State* %70, i32 1, i32 1)
+ %71 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %72 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %71, i32 -1) ; [#uses=1]
+ %73 = icmp eq i32 %72, 0 ; [#uses=1]
+ br i1 %73, label %77, label %74
+
+; <label>:74 ; preds = %64
+ %75 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %76 = load i8** %name, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %75, i32 2, i8* %76)
+ br label %77
+
+; <label>:77 ; preds = %74, %64
+ %78 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %79 = load i8** %name, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %78, i32 2, i8* %79)
+ %80 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %81 = call i8* @_Z14lua_touserdataP9lua_Statei(%struct.lua_State* %80, i32 -1) ; [#uses=1]
+ %82 = icmp eq i8* %81, bitcast (i32* @_ZL9sentinel_ to i8*) ; [#uses=1]
+ br i1 %82, label %83, label %88
+
+; <label>:83 ; preds = %77
+ %84 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushbooleanP9lua_Statei(%struct.lua_State* %84, i32 1)
+ %85 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %85, i32 -1)
+ %86 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %87 = load i8** %name, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %86, i32 2, i8* %87)
+ br label %88
+
+; <label>:88 ; preds = %83, %77
+ store i32 1, i32* %1
+ br label %89
+
+; <label>:89 ; preds = %88, %20
+ %90 = load i32* %1 ; [#uses=1]
+ ret i32 %90
+}
+
+; [#uses=1]
+define internal i32 @_Z14loader_preloadP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %name = alloca i8*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %2, i32 1, i32* null) ; [#uses=1]
+ store i8* %3, i8** %name, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %4, i32 -10001, i8* getelementptr inbounds ([8 x i8]* @.str18556, i32 0, i32 0))
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %5, i32 -1) ; [#uses=1]
+ %7 = icmp eq i32 %6, 5 ; [#uses=1]
+ br i1 %7, label %11, label %8
+
+; <label>:8 ; preds = %0
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %10 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %9, i8* getelementptr inbounds ([34 x i8]* @.str38576, i32 0, i32 0)) ; [#uses=0]
+ br label %11
+
+; <label>:11 ; preds = %8, %0
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = load i8** %name, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %12, i32 -1, i8* %13)
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %14, i32 -1) ; [#uses=1]
+ %16 = icmp eq i32 %15, 0 ; [#uses=1]
+ br i1 %16, label %17, label %21
+
+; <label>:17 ; preds = %11
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = load i8** %name, align 4 ; [#uses=1]
+ %20 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %18, i8* getelementptr inbounds ([33 x i8]* @.str39577, i32 0, i32 0), i8* %19) ; [#uses=0]
+ br label %21
+
+; <label>:21 ; preds = %17, %11
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z10loader_LuaP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %filename = alloca i8*, align 4 ; [#uses=4]
+ %name = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %3, i32 1, i32* null) ; [#uses=1]
+ store i8* %4, i8** %name, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = load i8** %name, align 4 ; [#uses=1]
+ %7 = call i8* @_Z8findfileP9lua_StatePKcS2_(%struct.lua_State* %5, i8* %6, i8* getelementptr inbounds ([5 x i8]* @.str8546, i32 0, i32 0)) ; [#uses=1]
+ store i8* %7, i8** %filename, align 4
+ %8 = load i8** %filename, align 4 ; [#uses=1]
+ %9 = icmp eq i8* %8, null ; [#uses=1]
+ br i1 %9, label %10, label %11
+
+; <label>:10 ; preds = %0
+ store i32 1, i32* %1
+ br label %20
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %13 = load i8** %filename, align 4 ; [#uses=1]
+ %14 = call i32 @_Z13luaL_loadfileP9lua_StatePKc(%struct.lua_State* %12, i8* %13) ; [#uses=1]
+ %15 = icmp ne i32 %14, 0 ; [#uses=1]
+ br i1 %15, label %16, label %19
+
+; <label>:16 ; preds = %11
+ %17 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %18 = load i8** %filename, align 4 ; [#uses=1]
+ call void @_Z9loaderrorP9lua_StatePKc(%struct.lua_State* %17, i8* %18)
+ br label %19
+
+; <label>:19 ; preds = %16, %11
+ store i32 1, i32* %1
+ br label %20
+
+; <label>:20 ; preds = %19, %10
+ %21 = load i32* %1 ; [#uses=1]
+ ret i32 %21
+}
+
+; [#uses=1]
+define internal i32 @_Z8loader_CP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %funcname = alloca i8*, align 4 ; [#uses=2]
+ %name = alloca i8*, align 4 ; [#uses=3]
+ %filename = alloca i8*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %3, i32 1, i32* null) ; [#uses=1]
+ store i8* %4, i8** %name, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = load i8** %name, align 4 ; [#uses=1]
+ %7 = call i8* @_Z8findfileP9lua_StatePKcS2_(%struct.lua_State* %5, i8* %6, i8* getelementptr inbounds ([6 x i8]* @.str11549, i32 0, i32 0)) ; [#uses=1]
+ store i8* %7, i8** %filename, align 4
+ %8 = load i8** %filename, align 4 ; [#uses=1]
+ %9 = icmp eq i8* %8, null ; [#uses=1]
+ br i1 %9, label %10, label %11
+
+; <label>:10 ; preds = %0
+ store i32 1, i32* %1
+ br label %24
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %13 = load i8** %name, align 4 ; [#uses=1]
+ %14 = call i8* @_Z10mkfuncnameP9lua_StatePKc(%struct.lua_State* %12, i8* %13) ; [#uses=1]
+ store i8* %14, i8** %funcname, align 4
+ %15 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %16 = load i8** %filename, align 4 ; [#uses=1]
+ %17 = load i8** %funcname, align 4 ; [#uses=1]
+ %18 = call i32 @_Z11ll_loadfuncP9lua_StatePKcS2_(%struct.lua_State* %15, i8* %16, i8* %17) ; [#uses=1]
+ %19 = icmp ne i32 %18, 0 ; [#uses=1]
+ br i1 %19, label %20, label %23
+
+; <label>:20 ; preds = %11
+ %21 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %22 = load i8** %filename, align 4 ; [#uses=1]
+ call void @_Z9loaderrorP9lua_StatePKc(%struct.lua_State* %21, i8* %22)
+ br label %23
+
+; <label>:23 ; preds = %20, %11
+ store i32 1, i32* %1
+ br label %24
+
+; <label>:24 ; preds = %23, %10
+ %25 = load i32* %1 ; [#uses=1]
+ ret i32 %25
+}
+
+; [#uses=1]
+define internal i32 @_Z12loader_CrootP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca i32, align 4 ; [#uses=5]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=9]
+ %funcname = alloca i8*, align 4 ; [#uses=2]
+ %filename = alloca i8*, align 4 ; [#uses=5]
+ %name = alloca i8*, align 4 ; [#uses=6]
+ %p = alloca i8*, align 4 ; [#uses=3]
+ %stat = alloca i32, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ %3 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %4 = call i8* @_Z17luaL_checklstringP9lua_StateiPj(%struct.lua_State* %3, i32 1, i32* null) ; [#uses=1]
+ store i8* %4, i8** %name, align 4
+ %5 = load i8** %name, align 4 ; [#uses=1]
+ %6 = call i8* @strchr(i8* %5, i32 46) ; [#uses=1]
+ store i8* %6, i8** %p, align 4
+ %7 = load i8** %p, align 4 ; [#uses=1]
+ %8 = icmp eq i8* %7, null ; [#uses=1]
+ br i1 %8, label %9, label %10
+
+; <label>:9 ; preds = %0
+ store i32 0, i32* %1
+ br label %46
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %12 = load i8** %name, align 4 ; [#uses=1]
+ %13 = load i8** %p, align 4 ; [#uses=1]
+ %14 = load i8** %name, align 4 ; [#uses=1]
+ %15 = ptrtoint i8* %13 to i32 ; [#uses=1]
+ %16 = ptrtoint i8* %14 to i32 ; [#uses=1]
+ %17 = sub i32 %15, %16 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %11, i8* %12, i32 %17)
+ %18 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %19 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %20 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %19, i32 -1, i32* null) ; [#uses=1]
+ %21 = call i8* @_Z8findfileP9lua_StatePKcS2_(%struct.lua_State* %18, i8* %20, i8* getelementptr inbounds ([6 x i8]* @.str11549, i32 0, i32 0)) ; [#uses=1]
+ store i8* %21, i8** %filename, align 4
+ %22 = load i8** %filename, align 4 ; [#uses=1]
+ %23 = icmp eq i8* %22, null ; [#uses=1]
+ br i1 %23, label %24, label %25
+
+; <label>:24 ; preds = %10
+ store i32 1, i32* %1
+ br label %46
+
+; <label>:25 ; preds = %10
+ %26 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %27 = load i8** %name, align 4 ; [#uses=1]
+ %28 = call i8* @_Z10mkfuncnameP9lua_StatePKc(%struct.lua_State* %26, i8* %27) ; [#uses=1]
+ store i8* %28, i8** %funcname, align 4
+ %29 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %30 = load i8** %filename, align 4 ; [#uses=1]
+ %31 = load i8** %funcname, align 4 ; [#uses=1]
+ %32 = call i32 @_Z11ll_loadfuncP9lua_StatePKcS2_(%struct.lua_State* %29, i8* %30, i8* %31) ; [#uses=2]
+ store i32 %32, i32* %stat, align 4
+ %33 = icmp ne i32 %32, 0 ; [#uses=1]
+ br i1 %33, label %34, label %45
+
+; <label>:34 ; preds = %25
+ %35 = load i32* %stat, align 4 ; [#uses=1]
+ %36 = icmp ne i32 %35, 2 ; [#uses=1]
+ br i1 %36, label %37, label %40
+
+; <label>:37 ; preds = %34
+ %38 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %39 = load i8** %filename, align 4 ; [#uses=1]
+ call void @_Z9loaderrorP9lua_StatePKc(%struct.lua_State* %38, i8* %39)
+ br label %40
+
+; <label>:40 ; preds = %37, %34
+ %41 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %42 = load i8** %name, align 4 ; [#uses=1]
+ %43 = load i8** %filename, align 4 ; [#uses=1]
+ %44 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %41, i8* getelementptr inbounds ([30 x i8]* @.str22560, i32 0, i32 0), i8* %42, i8* %43) ; [#uses=0]
+ store i32 1, i32* %1
+ br label %46
+
+; <label>:45 ; preds = %25
+ store i32 1, i32* %1
+ br label %46
+
+; <label>:46 ; preds = %45, %40, %24, %9
+ %47 = load i32* %1 ; [#uses=1]
+ ret i32 %47
+}
+
+; [#uses=1]
+define i32 @_Z15luaopen_packageP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=22]
+ %i = alloca i32, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z17luaL_newmetatableP9lua_StatePKc(%struct.lua_State* %2, i8* getelementptr inbounds ([9 x i8]* @.str4542, i32 0, i32 0)) ; [#uses=0]
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z16lua_pushcclosureP9lua_StatePFiS0_Ei(%struct.lua_State* %4, i32 (%struct.lua_State*)* @_Z4gctmP9lua_State, i32 0)
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %5, i32 -2, i8* getelementptr inbounds ([5 x i8]* @.str5543, i32 0, i32 0))
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_registerP9lua_StatePKcPK8luaL_Reg(%struct.lua_State* %6, i8* getelementptr inbounds ([8 x i8]* @.str6544, i32 0, i32 0), %struct.luaL_Reg* getelementptr inbounds ([3 x %struct.luaL_Reg]* @_ZL8pk_funcs, i32 0, i32 0))
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %7, i32 -1)
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z11lua_replaceP9lua_Statei(%struct.lua_State* %8, i32 -10001)
+ %9 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_createtableP9lua_Stateii(%struct.lua_State* %9, i32 0, i32 4)
+ store i32 0, i32* %i, align 4
+ br label %10
+
+; <label>:10 ; preds = %23, %0
+ %11 = load i32* %i, align 4 ; [#uses=1]
+ %12 = getelementptr inbounds [5 x i32 (%struct.lua_State*)*]* @_ZL7loaders, i32 0, i32 %11 ; [#uses=1]
+ %13 = load i32 (%struct.lua_State*)** %12 ; [#uses=1]
+ %14 = icmp ne i32 (%struct.lua_State*)* %13, null ; [#uses=1]
+ br i1 %14, label %15, label %26
+
+; <label>:15 ; preds = %10
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = load i32* %i, align 4 ; [#uses=1]
+ %18 = getelementptr inbounds [5 x i32 (%struct.lua_State*)*]* @_ZL7loaders, i32 0, i32 %17 ; [#uses=1]
+ %19 = load i32 (%struct.lua_State*)** %18 ; [#uses=1]
+ call void @_Z16lua_pushcclosureP9lua_StatePFiS0_Ei(%struct.lua_State* %16, i32 (%struct.lua_State*)* %19, i32 0)
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %21 = load i32* %i, align 4 ; [#uses=1]
+ %22 = add nsw i32 %21, 1 ; [#uses=1]
+ call void @_Z11lua_rawsetiP9lua_Stateii(%struct.lua_State* %20, i32 -2, i32 %22)
+ br label %23
+
+; <label>:23 ; preds = %15
+ %24 = load i32* %i, align 4 ; [#uses=1]
+ %25 = add nsw i32 %24, 1 ; [#uses=1]
+ store i32 %25, i32* %i, align 4
+ br label %10
+
+; <label>:26 ; preds = %10
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %27, i32 -2, i8* getelementptr inbounds ([8 x i8]* @.str7545, i32 0, i32 0))
+ %28 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z7setpathP9lua_StatePKcS2_S2_(%struct.lua_State* %28, i8* getelementptr inbounds ([5 x i8]* @.str8546, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str9547, i32 0, i32 0), i8* getelementptr inbounds ([138 x i8]* @.str10548, i32 0, i32 0))
+ %29 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z7setpathP9lua_StatePKcS2_S2_(%struct.lua_State* %29, i8* getelementptr inbounds ([6 x i8]* @.str11549, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str12550, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8]* @.str13551, i32 0, i32 0))
+ %30 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %30, i8* getelementptr inbounds ([10 x i8]* @.str14552, i32 0, i32 0), i32 9)
+ %31 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %31, i32 -2, i8* getelementptr inbounds ([7 x i8]* @.str15553, i32 0, i32 0))
+ %32 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %33 = call i8* @_Z14luaL_findtableP9lua_StateiPKci(%struct.lua_State* %32, i32 -10000, i8* getelementptr inbounds ([8 x i8]* @.str16554, i32 0, i32 0), i32 2) ; [#uses=0]
+ %34 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %34, i32 -2, i8* getelementptr inbounds ([7 x i8]* @.str17555, i32 0, i32 0))
+ %35 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_createtableP9lua_Stateii(%struct.lua_State* %35, i32 0, i32 0)
+ %36 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %36, i32 -2, i8* getelementptr inbounds ([8 x i8]* @.str18556, i32 0, i32 0))
+ %37 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %37, i32 -10002)
+ %38 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13luaL_registerP9lua_StatePKcPK8luaL_Reg(%struct.lua_State* %38, i8* null, %struct.luaL_Reg* getelementptr inbounds ([3 x %struct.luaL_Reg]* @_ZL8ll_funcs, i32 0, i32 0))
+ %39 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %39, i32 -2)
+ ret i32 1
+}
+
+; [#uses=1]
+define internal i32 @_Z4gctmP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %lib = alloca i8**, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i8* @_Z15luaL_checkudataP9lua_StateiPKc(%struct.lua_State* %2, i32 1, i8* getelementptr inbounds ([9 x i8]* @.str4542, i32 0, i32 0)) ; [#uses=1]
+ %4 = bitcast i8* %3 to i8** ; [#uses=1]
+ store i8** %4, i8*** %lib, align 4
+ %5 = load i8*** %lib, align 4 ; [#uses=1]
+ %6 = load i8** %5 ; [#uses=1]
+ %7 = icmp ne i8* %6, null ; [#uses=1]
+ br i1 %7, label %8, label %11
+
+; <label>:8 ; preds = %0
+ %9 = load i8*** %lib, align 4 ; [#uses=1]
+ %10 = load i8** %9 ; [#uses=1]
+ call void @_Z12ll_unloadlibPv(i8* %10)
+ br label %11
+
+; <label>:11 ; preds = %8, %0
+ %12 = load i8*** %lib, align 4 ; [#uses=1]
+ store i8* null, i8** %12
+ ret i32 0
+}
+
+; [#uses=2]
+define internal void @_Z7setpathP9lua_StatePKcS2_S2_(%struct.lua_State* %L, i8* %fieldname, i8* %envname, i8* %def) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=6]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %3 = alloca i8*, align 4 ; [#uses=2]
+ %4 = alloca i8*, align 4 ; [#uses=3]
+ %path = alloca i8*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %fieldname, i8** %2, align 4
+ store i8* %envname, i8** %3, align 4
+ store i8* %def, i8** %4, align 4
+ %5 = load i8** %3, align 4 ; [#uses=1]
+ %6 = call i8* @getenv(i8* %5) nounwind ; [#uses=1]
+ store i8* %6, i8** %path, align 4
+ %7 = load i8** %path, align 4 ; [#uses=1]
+ %8 = icmp eq i8* %7, null ; [#uses=1]
+ br i1 %8, label %9, label %12
+
+; <label>:9 ; preds = %0
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = load i8** %4, align 4 ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %10, i8* %11)
+ br label %21
+
+; <label>:12 ; preds = %0
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = load i8** %path, align 4 ; [#uses=1]
+ %15 = call i8* @_Z9luaL_gsubP9lua_StatePKcS2_S2_(%struct.lua_State* %13, i8* %14, i8* getelementptr inbounds ([3 x i8]* @.str19557, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str20558, i32 0, i32 0)) ; [#uses=1]
+ store i8* %15, i8** %path, align 4
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = load i8** %path, align 4 ; [#uses=1]
+ %18 = load i8** %4, align 4 ; [#uses=1]
+ %19 = call i8* @_Z9luaL_gsubP9lua_StatePKcS2_S2_(%struct.lua_State* %16, i8* %17, i8* getelementptr inbounds ([2 x i8]* @.str21559, i32 0, i32 0), i8* %18) ; [#uses=0]
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_removeP9lua_Statei(%struct.lua_State* %20, i32 -2)
+ br label %21
+
+; <label>:21 ; preds = %12, %9
+ %22 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %23 = load i8** %2, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %22, i32 -2, i8* %23)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z12ll_unloadlibPv(i8* %lib) nounwind {
+ %1 = alloca i8*, align 4 ; [#uses=1]
+ store i8* %lib, i8** %1, align 4
+ ret void
+}
+
+; [#uses=3]
+define internal i8* @_Z8findfileP9lua_StatePKcS2_(%struct.lua_State* %L, i8* %name, i8* %pname) {
+ %1 = alloca i8*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=13]
+ %3 = alloca i8*, align 4 ; [#uses=4]
+ %4 = alloca i8*, align 4 ; [#uses=3]
+ %path = alloca i8*, align 4 ; [#uses=4]
+ %filename = alloca i8*, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i8* %name, i8** %3, align 4
+ store i8* %pname, i8** %4, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = load i8** %3, align 4 ; [#uses=1]
+ %7 = call i8* @_Z9luaL_gsubP9lua_StatePKcS2_S2_(%struct.lua_State* %5, i8* %6, i8* getelementptr inbounds ([2 x i8]* @.str28566, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8]* @.str31569, i32 0, i32 0)) ; [#uses=1]
+ store i8* %7, i8** %3, align 4
+ %8 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %9 = load i8** %4, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %8, i32 -10001, i8* %9)
+ %10 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %11 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %10, i32 -1, i32* null) ; [#uses=1]
+ store i8* %11, i8** %path, align 4
+ %12 = load i8** %path, align 4 ; [#uses=1]
+ %13 = icmp eq i8* %12, null ; [#uses=1]
+ br i1 %13, label %14, label %18
+
+; <label>:14 ; preds = %0
+ %15 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %16 = load i8** %4, align 4 ; [#uses=1]
+ %17 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %15, i8* getelementptr inbounds ([30 x i8]* @.str32570, i32 0, i32 0), i8* %16) ; [#uses=0]
+ br label %18
+
+; <label>:18 ; preds = %14, %0
+ %19 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %19, i8* getelementptr inbounds ([1 x i8]* @.str33571, i32 0, i32 0), i32 0)
+ br label %20
+
+; <label>:20 ; preds = %37, %18
+ %21 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %22 = load i8** %path, align 4 ; [#uses=1]
+ %23 = call i8* @_Z16pushnexttemplateP9lua_StatePKc(%struct.lua_State* %21, i8* %22) ; [#uses=2]
+ store i8* %23, i8** %path, align 4
+ %24 = icmp ne i8* %23, null ; [#uses=1]
+ br i1 %24, label %25, label %43
+
+; <label>:25 ; preds = %20
+ %26 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %27 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %28 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %27, i32 -1, i32* null) ; [#uses=1]
+ %29 = load i8** %3, align 4 ; [#uses=1]
+ %30 = call i8* @_Z9luaL_gsubP9lua_StatePKcS2_S2_(%struct.lua_State* %26, i8* %28, i8* getelementptr inbounds ([2 x i8]* @.str34572, i32 0, i32 0), i8* %29) ; [#uses=1]
+ store i8* %30, i8** %filename, align 4
+ %31 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_removeP9lua_Statei(%struct.lua_State* %31, i32 -2)
+ %32 = load i8** %filename, align 4 ; [#uses=1]
+ %33 = call i32 @_Z8readablePKc(i8* %32) ; [#uses=1]
+ %34 = icmp ne i32 %33, 0 ; [#uses=1]
+ br i1 %34, label %35, label %37
+
+; <label>:35 ; preds = %25
+ %36 = load i8** %filename, align 4 ; [#uses=1]
+ store i8* %36, i8** %1
+ br label %44
+
+; <label>:37 ; preds = %25
+ %38 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %39 = load i8** %filename, align 4 ; [#uses=1]
+ %40 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %38, i8* getelementptr inbounds ([15 x i8]* @.str35573, i32 0, i32 0), i8* %39) ; [#uses=0]
+ %41 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_removeP9lua_Statei(%struct.lua_State* %41, i32 -2)
+ %42 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ call void @_Z10lua_concatP9lua_Statei(%struct.lua_State* %42, i32 2)
+ br label %20
+
+; <label>:43 ; preds = %20
+ store i8* null, i8** %1
+ br label %44
+
+; <label>:44 ; preds = %43, %35
+ %45 = load i8** %1 ; [#uses=1]
+ ret i8* %45
+}
+
+; [#uses=2]
+define internal i8* @_Z10mkfuncnameP9lua_StatePKc(%struct.lua_State* %L, i8* %modname) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i8*, align 4 ; [#uses=4]
+ %funcname = alloca i8*, align 4 ; [#uses=4]
+ %mark = alloca i8*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %modname, i8** %2, align 4
+ %3 = load i8** %2, align 4 ; [#uses=1]
+ %4 = load i8* getelementptr inbounds ([2 x i8]* @.str27565, i32 0, i32 0) ; [#uses=1]
+ %5 = sext i8 %4 to i32 ; [#uses=1]
+ %6 = call i8* @strchr(i8* %3, i32 %5) ; [#uses=1]
+ store i8* %6, i8** %mark, align 4
+ %7 = load i8** %mark, align 4 ; [#uses=1]
+ %8 = icmp ne i8* %7, null ; [#uses=1]
+ br i1 %8, label %9, label %12
+
+; <label>:9 ; preds = %0
+ %10 = load i8** %mark, align 4 ; [#uses=1]
+ %11 = getelementptr inbounds i8* %10, i32 1 ; [#uses=1]
+ store i8* %11, i8** %2, align 4
+ br label %12
+
+; <label>:12 ; preds = %9, %0
+ %13 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %14 = load i8** %2, align 4 ; [#uses=1]
+ %15 = call i8* @_Z9luaL_gsubP9lua_StatePKcS2_S2_(%struct.lua_State* %13, i8* %14, i8* getelementptr inbounds ([2 x i8]* @.str28566, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8]* @.str29567, i32 0, i32 0)) ; [#uses=1]
+ store i8* %15, i8** %funcname, align 4
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = load i8** %funcname, align 4 ; [#uses=1]
+ %18 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %16, i8* getelementptr inbounds ([11 x i8]* @.str30568, i32 0, i32 0), i8* %17) ; [#uses=1]
+ store i8* %18, i8** %funcname, align 4
+ %19 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_removeP9lua_Statei(%struct.lua_State* %19, i32 -2)
+ %20 = load i8** %funcname, align 4 ; [#uses=1]
+ ret i8* %20
+}
+
+; [#uses=3]
+define internal i32 @_Z11ll_loadfuncP9lua_StatePKcS2_(%struct.lua_State* %L, i8* %path, i8* %sym) {
+ %1 = alloca i32, align 4 ; [#uses=4]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=5]
+ %3 = alloca i8*, align 4 ; [#uses=3]
+ %4 = alloca i8*, align 4 ; [#uses=2]
+ %reg = alloca i8**, align 4 ; [#uses=5]
+ %f = alloca i32 (%struct.lua_State*)*, align 4 ; [#uses=3]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i8* %path, i8** %3, align 4
+ store i8* %sym, i8** %4, align 4
+ %5 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %6 = load i8** %3, align 4 ; [#uses=1]
+ %7 = call i8** @_Z11ll_registerP9lua_StatePKc(%struct.lua_State* %5, i8* %6) ; [#uses=1]
+ store i8** %7, i8*** %reg, align 4
+ %8 = load i8*** %reg, align 4 ; [#uses=1]
+ %9 = load i8** %8 ; [#uses=1]
+ %10 = icmp eq i8* %9, null ; [#uses=1]
+ br i1 %10, label %11, label %16
+
+; <label>:11 ; preds = %0
+ %12 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %13 = load i8** %3, align 4 ; [#uses=1]
+ %14 = call i8* @_Z7ll_loadP9lua_StatePKc(%struct.lua_State* %12, i8* %13) ; [#uses=1]
+ %15 = load i8*** %reg, align 4 ; [#uses=1]
+ store i8* %14, i8** %15
+ br label %16
+
+; <label>:16 ; preds = %11, %0
+ %17 = load i8*** %reg, align 4 ; [#uses=1]
+ %18 = load i8** %17 ; [#uses=1]
+ %19 = icmp eq i8* %18, null ; [#uses=1]
+ br i1 %19, label %20, label %21
+
+; <label>:20 ; preds = %16
+ store i32 1, i32* %1
+ br label %33
+
+; <label>:21 ; preds = %16
+ %22 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %23 = load i8*** %reg, align 4 ; [#uses=1]
+ %24 = load i8** %23 ; [#uses=1]
+ %25 = load i8** %4, align 4 ; [#uses=1]
+ %26 = call i32 (%struct.lua_State*)* (%struct.lua_State*, i8*, i8*)* @_Z6ll_symP9lua_StatePvPKc(%struct.lua_State* %22, i8* %24, i8* %25) ; [#uses=1]
+ store i32 (%struct.lua_State*)* %26, i32 (%struct.lua_State*)** %f, align 4
+ %27 = load i32 (%struct.lua_State*)** %f, align 4 ; [#uses=1]
+ %28 = icmp eq i32 (%struct.lua_State*)* %27, null ; [#uses=1]
+ br i1 %28, label %29, label %30
+
+; <label>:29 ; preds = %21
+ store i32 2, i32* %1
+ br label %33
+
+; <label>:30 ; preds = %21
+ %31 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %32 = load i32 (%struct.lua_State*)** %f, align 4 ; [#uses=1]
+ call void @_Z16lua_pushcclosureP9lua_StatePFiS0_Ei(%struct.lua_State* %31, i32 (%struct.lua_State*)* %32, i32 0)
+ store i32 0, i32* %1
+ br label %33
+
+; <label>:33 ; preds = %30, %29, %20
+ %34 = load i32* %1 ; [#uses=1]
+ ret i32 %34
+}
+
+; [#uses=3]
+define internal void @_Z9loaderrorP9lua_StatePKc(%struct.lua_State* %L, i8* %filename) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %filename, i8** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %5 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %4, i32 1, i32* null) ; [#uses=1]
+ %6 = load i8** %2, align 4 ; [#uses=1]
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = call i8* @_Z13lua_tolstringP9lua_StateiPj(%struct.lua_State* %7, i32 -1, i32* null) ; [#uses=1]
+ %9 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %3, i8* getelementptr inbounds ([46 x i8]* @.str23561, i32 0, i32 0), i8* %5, i8* %6, i8* %8) ; [#uses=0]
+ ret void
+}
+
+; [#uses=1]
+define internal i8** @_Z11ll_registerP9lua_StatePKc(%struct.lua_State* %L, i8* %path) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=12]
+ %2 = alloca i8*, align 4 ; [#uses=3]
+ %plib = alloca i8**, align 4 ; [#uses=4]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %path, i8** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %4 = load i8** %2, align 4 ; [#uses=1]
+ %5 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %3, i8* getelementptr inbounds ([5 x i8]* @.str25563, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str26564, i32 0, i32 0), i8* %4) ; [#uses=0]
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_gettableP9lua_Statei(%struct.lua_State* %6, i32 -10000)
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %8 = call i32 @_Z8lua_typeP9lua_Statei(%struct.lua_State* %7, i32 -1) ; [#uses=1]
+ %9 = icmp eq i32 %8, 0 ; [#uses=1]
+ br i1 %9, label %14, label %10
+
+; <label>:10 ; preds = %0
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %12 = call i8* @_Z14lua_touserdataP9lua_Statei(%struct.lua_State* %11, i32 -1) ; [#uses=1]
+ %13 = bitcast i8* %12 to i8** ; [#uses=1]
+ store i8** %13, i8*** %plib, align 4
+ br label %28
+
+; <label>:14 ; preds = %0
+ %15 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %15, i32 -2)
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %17 = call i8* @_Z15lua_newuserdataP9lua_Statej(%struct.lua_State* %16, i32 4) ; [#uses=1]
+ %18 = bitcast i8* %17 to i8** ; [#uses=1]
+ store i8** %18, i8*** %plib, align 4
+ %19 = load i8*** %plib, align 4 ; [#uses=1]
+ store i8* null, i8** %19
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_getfieldP9lua_StateiPKc(%struct.lua_State* %20, i32 -10000, i8* getelementptr inbounds ([9 x i8]* @.str4542, i32 0, i32 0))
+ %21 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %22 = call i32 @_Z16lua_setmetatableP9lua_Statei(%struct.lua_State* %21, i32 -2) ; [#uses=0]
+ %23 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %24 = load i8** %2, align 4 ; [#uses=1]
+ %25 = call i8* (%struct.lua_State*, i8*, ...)* @_Z15lua_pushfstringP9lua_StatePKcz(%struct.lua_State* %23, i8* getelementptr inbounds ([5 x i8]* @.str25563, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str26564, i32 0, i32 0), i8* %24) ; [#uses=0]
+ %26 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %26, i32 -2)
+ %27 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_settableP9lua_Statei(%struct.lua_State* %27, i32 -10000)
+ br label %28
+
+; <label>:28 ; preds = %14, %10
+ %29 = load i8*** %plib, align 4 ; [#uses=1]
+ ret i8** %29
+}
+
+; [#uses=1]
+define internal i8* @_Z7ll_loadP9lua_StatePKc(%struct.lua_State* %L, i8* %path) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca i8*, align 4 ; [#uses=1]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %path, i8** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %3, i8* getelementptr inbounds ([59 x i8]* @.str24562, i32 0, i32 0), i32 58)
+ ret i8* null
+}
+
+; [#uses=1]
+define internal i32 (%struct.lua_State*)* @_Z6ll_symP9lua_StatePvPKc(%struct.lua_State* %L, i8* %lib, i8* %sym) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %2 = alloca i8*, align 4 ; [#uses=1]
+ %3 = alloca i8*, align 4 ; [#uses=1]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %lib, i8** %2, align 4
+ store i8* %sym, i8** %3, align 4
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %4, i8* getelementptr inbounds ([59 x i8]* @.str24562, i32 0, i32 0), i32 58)
+ ret i32 (%struct.lua_State*)* null
+}
+
+; [#uses=1]
+define internal i8* @_Z16pushnexttemplateP9lua_StatePKc(%struct.lua_State* %L, i8* %path) {
+ %1 = alloca i8*, align 4 ; [#uses=3]
+ %2 = alloca %struct.lua_State*, align 4 ; [#uses=2]
+ %3 = alloca i8*, align 4 ; [#uses=10]
+ %l = alloca i8*, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %2, align 4
+ store i8* %path, i8** %3, align 4
+ br label %4
+
+; <label>:4 ; preds = %11, %0
+ %5 = load i8** %3, align 4 ; [#uses=1]
+ %6 = load i8* %5 ; [#uses=1]
+ %7 = sext i8 %6 to i32 ; [#uses=1]
+ %8 = load i8* getelementptr inbounds ([2 x i8]* @.str37575, i32 0, i32 0) ; [#uses=1]
+ %9 = sext i8 %8 to i32 ; [#uses=1]
+ %10 = icmp eq i32 %7, %9 ; [#uses=1]
+ br i1 %10, label %11, label %14
+
+; <label>:11 ; preds = %4
+ %12 = load i8** %3, align 4 ; [#uses=1]
+ %13 = getelementptr inbounds i8* %12, i32 1 ; [#uses=1]
+ store i8* %13, i8** %3, align 4
+ br label %4
+
+; <label>:14 ; preds = %4
+ %15 = load i8** %3, align 4 ; [#uses=1]
+ %16 = load i8* %15 ; [#uses=1]
+ %17 = sext i8 %16 to i32 ; [#uses=1]
+ %18 = icmp eq i32 %17, 0 ; [#uses=1]
+ br i1 %18, label %19, label %20
+
+; <label>:19 ; preds = %14
+ store i8* null, i8** %1
+ br label %41
+
+; <label>:20 ; preds = %14
+ %21 = load i8** %3, align 4 ; [#uses=1]
+ %22 = load i8* getelementptr inbounds ([2 x i8]* @.str37575, i32 0, i32 0) ; [#uses=1]
+ %23 = sext i8 %22 to i32 ; [#uses=1]
+ %24 = call i8* @strchr(i8* %21, i32 %23) ; [#uses=1]
+ store i8* %24, i8** %l, align 4
+ %25 = load i8** %l, align 4 ; [#uses=1]
+ %26 = icmp eq i8* %25, null ; [#uses=1]
+ br i1 %26, label %27, label %32
+
+; <label>:27 ; preds = %20
+ %28 = load i8** %3, align 4 ; [#uses=1]
+ %29 = load i8** %3, align 4 ; [#uses=1]
+ %30 = call i32 @strlen(i8* %29) ; [#uses=1]
+ %31 = getelementptr inbounds i8* %28, i32 %30 ; [#uses=1]
+ store i8* %31, i8** %l, align 4
+ br label %32
+
+; <label>:32 ; preds = %27, %20
+ %33 = load %struct.lua_State** %2, align 4 ; [#uses=1]
+ %34 = load i8** %3, align 4 ; [#uses=1]
+ %35 = load i8** %l, align 4 ; [#uses=1]
+ %36 = load i8** %3, align 4 ; [#uses=1]
+ %37 = ptrtoint i8* %35 to i32 ; [#uses=1]
+ %38 = ptrtoint i8* %36 to i32 ; [#uses=1]
+ %39 = sub i32 %37, %38 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %33, i8* %34, i32 %39)
+ %40 = load i8** %l, align 4 ; [#uses=1]
+ store i8* %40, i8** %1
+ br label %41
+
+; <label>:41 ; preds = %32, %19
+ %42 = load i8** %1 ; [#uses=1]
+ ret i8* %42
+}
+
+; [#uses=1]
+define internal i32 @_Z8readablePKc(i8* %filename) {
+ %1 = alloca i32, align 4 ; [#uses=3]
+ %2 = alloca i8*, align 4 ; [#uses=2]
+ %f = alloca %struct._IO_FILE*, align 4 ; [#uses=3]
+ store i8* %filename, i8** %2, align 4
+ %3 = load i8** %2, align 4 ; [#uses=1]
+ %4 = call %struct._IO_FILE* @fopen(i8* %3, i8* getelementptr inbounds ([2 x i8]* @.str36574, i32 0, i32 0)) ; [#uses=1]
+ store %struct._IO_FILE* %4, %struct._IO_FILE** %f, align 4
+ %5 = load %struct._IO_FILE** %f, align 4 ; [#uses=1]
+ %6 = icmp eq %struct._IO_FILE* %5, null ; [#uses=1]
+ br i1 %6, label %7, label %8
+
+; <label>:7 ; preds = %0
+ store i32 0, i32* %1
+ br label %11
+
+; <label>:8 ; preds = %0
+ %9 = load %struct._IO_FILE** %f, align 4 ; [#uses=1]
+ %10 = call i32 @fclose(%struct._IO_FILE* %9) ; [#uses=0]
+ store i32 1, i32* %1
+ br label %11
+
+; <label>:11 ; preds = %8, %7
+ %12 = load i32* %1 ; [#uses=1]
+ ret i32 %12
+}
+
+; [#uses=1]
+define internal void @_Z7modinitP9lua_StatePKc(%struct.lua_State* %L, i8* %modname) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=7]
+ %2 = alloca i8*, align 4 ; [#uses=6]
+ %dot = alloca i8*, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i8* %modname, i8** %2, align 4
+ %3 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %3, i32 -1)
+ %4 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %4, i32 -2, i8* getelementptr inbounds ([3 x i8]* @.str47585, i32 0, i32 0))
+ %5 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %6 = load i8** %2, align 4 ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %5, i8* %6)
+ %7 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %7, i32 -2, i8* getelementptr inbounds ([6 x i8]* @.str44582, i32 0, i32 0))
+ %8 = load i8** %2, align 4 ; [#uses=1]
+ %9 = call i8* @strrchr(i8* %8, i32 46) ; [#uses=1]
+ store i8* %9, i8** %dot, align 4
+ %10 = load i8** %dot, align 4 ; [#uses=1]
+ %11 = icmp eq i8* %10, null ; [#uses=1]
+ br i1 %11, label %12, label %14
+
+; <label>:12 ; preds = %0
+ %13 = load i8** %2, align 4 ; [#uses=1]
+ store i8* %13, i8** %dot, align 4
+ br label %17
+
+; <label>:14 ; preds = %0
+ %15 = load i8** %dot, align 4 ; [#uses=1]
+ %16 = getelementptr inbounds i8* %15, i32 1 ; [#uses=1]
+ store i8* %16, i8** %dot, align 4
+ br label %17
+
+; <label>:17 ; preds = %14, %12
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = load i8** %2, align 4 ; [#uses=1]
+ %20 = load i8** %dot, align 4 ; [#uses=1]
+ %21 = load i8** %2, align 4 ; [#uses=1]
+ %22 = ptrtoint i8* %20 to i32 ; [#uses=1]
+ %23 = ptrtoint i8* %21 to i32 ; [#uses=1]
+ %24 = sub i32 %22, %23 ; [#uses=1]
+ call void @_Z15lua_pushlstringP9lua_StatePKcj(%struct.lua_State* %18, i8* %19, i32 %24)
+ %25 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z12lua_setfieldP9lua_StateiPKc(%struct.lua_State* %25, i32 -2, i8* getelementptr inbounds ([9 x i8]* @.str48586, i32 0, i32 0))
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z7setfenvP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=8]
+ %ar = alloca %struct.lua_Debug, align 4 ; [#uses=2]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ %2 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %3 = call i32 @_Z12lua_getstackP9lua_StateiP9lua_Debug(%struct.lua_State* %2, i32 1, %struct.lua_Debug* %ar) ; [#uses=1]
+ %4 = icmp eq i32 %3, 0 ; [#uses=1]
+ br i1 %4, label %13, label %5
+
+; <label>:5 ; preds = %0
+ %6 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %7 = call i32 @_Z11lua_getinfoP9lua_StatePKcP9lua_Debug(%struct.lua_State* %6, i8* getelementptr inbounds ([2 x i8]* @.str45583, i32 0, i32 0), %struct.lua_Debug* %ar) ; [#uses=1]
+ %8 = icmp eq i32 %7, 0 ; [#uses=1]
+ br i1 %8, label %13, label %9
+
+; <label>:9 ; preds = %5
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %11 = call i32 @_Z15lua_iscfunctionP9lua_Statei(%struct.lua_State* %10, i32 -1) ; [#uses=1]
+ %12 = icmp ne i32 %11, 0 ; [#uses=1]
+ br i1 %12, label %13, label %16
+
+; <label>:13 ; preds = %9, %5, %0
+ %14 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %15 = call i32 (%struct.lua_State*, i8*, ...)* @_Z10luaL_errorP9lua_StatePKcz(%struct.lua_State* %14, i8* getelementptr inbounds ([40 x i8]* @.str46584, i32 0, i32 0)) ; [#uses=0]
+ br label %16
+
+; <label>:16 ; preds = %13, %9
+ %17 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %17, i32 -2)
+ %18 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %19 = call i32 @_Z11lua_setfenvP9lua_Statei(%struct.lua_State* %18, i32 -2) ; [#uses=0]
+ %20 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z10lua_settopP9lua_Statei(%struct.lua_State* %20, i32 -2)
+ ret void
+}
+
+; [#uses=1]
+define internal void @_Z9dooptionsP9lua_Statei(%struct.lua_State* %L, i32 %n) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %2 = alloca i32, align 4 ; [#uses=2]
+ %i = alloca i32, align 4 ; [#uses=5]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store i32 %n, i32* %2, align 4
+ store i32 2, i32* %i, align 4
+ br label %3
+
+; <label>:3 ; preds = %12, %0
+ %4 = load i32* %i, align 4 ; [#uses=1]
+ %5 = load i32* %2, align 4 ; [#uses=1]
+ %6 = icmp sle i32 %4, %5 ; [#uses=1]
+ br i1 %6, label %7, label %15
+
+; <label>:7 ; preds = %3
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = load i32* %i, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %8, i32 %9)
+ %10 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z13lua_pushvalueP9lua_Statei(%struct.lua_State* %10, i32 -2)
+ %11 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z8lua_callP9lua_Stateii(%struct.lua_State* %11, i32 1, i32 0)
+ br label %12
+
+; <label>:12 ; preds = %7
+ %13 = load i32* %i, align 4 ; [#uses=1]
+ %14 = add nsw i32 %13, 1 ; [#uses=1]
+ store i32 %14, i32* %i, align 4
+ br label %3
+
+; <label>:15 ; preds = %3
+ ret void
+}
+
+; [#uses=1]
+declare i8* @strrchr(i8*, i32) nounwind readonly
+
+; [#uses=1]
+define void @_Z13luaL_openlibsP9lua_State(%struct.lua_State* %L) {
+ %1 = alloca %struct.lua_State*, align 4 ; [#uses=4]
+ %lib = alloca %struct.luaL_Reg*, align 4 ; [#uses=6]
+ store %struct.lua_State* %L, %struct.lua_State** %1, align 4
+ store %struct.luaL_Reg* getelementptr inbounds ([9 x %struct.luaL_Reg]* @_ZL7lualibs, i32 0, i32 0), %struct.luaL_Reg** %lib, align 4
+ br label %2
+
+; <label>:2 ; preds = %17, %0
+ %3 = load %struct.luaL_Reg** %lib, align 4 ; [#uses=1]
+ %4 = getelementptr inbounds %struct.luaL_Reg* %3, i32 0, i32 1 ; [#uses=1]
+ %5 = load i32 (%struct.lua_State*)** %4, align 4 ; [#uses=1]
+ %6 = icmp ne i32 (%struct.lua_State*)* %5, null ; [#uses=1]
+ br i1 %6, label %7, label %20
+
+; <label>:7 ; preds = %2
+ %8 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %9 = load %struct.luaL_Reg** %lib, align 4 ; [#uses=1]
+ %10 = getelementptr inbounds %struct.luaL_Reg* %9, i32 0, i32 1 ; [#uses=1]
+ %11 = load i32 (%struct.lua_State*)** %10, align 4 ; [#uses=1]
+ call void @_Z16lua_pushcclosureP9lua_StatePFiS0_Ei(%struct.lua_State* %8, i32 (%struct.lua_State*)* %11, i32 0)
+ %12 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ %13 = load %struct.luaL_Reg** %lib, align 4 ; [#uses=1]
+ %14 = getelementptr inbounds %struct.luaL_Reg* %13, i32 0, i32 0 ; [#uses=1]
+ %15 = load i8** %14, align 4 ; [#uses=1]
+ call void @_Z14lua_pushstringP9lua_StatePKc(%struct.lua_State* %12, i8* %15)
+ %16 = load %struct.lua_State** %1, align 4 ; [#uses=1]
+ call void @_Z8lua_callP9lua_Stateii(%struct.lua_State* %16, i32 1, i32 0)
+ br label %17
+
+; <label>:17 ; preds = %7
+ %18 = load %struct.luaL_Reg** %lib, align 4 ; [#uses=1]
+ %19 = getelementptr inbounds %struct.luaL_Reg* %18, i32 1 ; [#uses=1]
+ store %struct.luaL_Reg* %19, %struct.luaL_Reg** %lib, align 4
+ br label %2
+
+; <label>:20 ; preds = %2
+ ret void
+}
diff --git a/tests/runner.py b/tests/runner.py
index 871c76e4..0a8c50dc 100644
--- a/tests/runner.py
+++ b/tests/runner.py
@@ -1051,8 +1051,8 @@ if 'benchmark' not in sys.argv:
def test_bullet(self):
self.do_ll_test(path_from_root(['tests', 'bullet', 'bulletTest.ll']), open(path_from_root(['tests', 'bullet', 'output.txt']), 'r').read())
- #def test_lua(self):
- # self.do_ll_test(path_from_root(['tests', 'lua', 'lua.ll']), 'hello world!', args=['-e', '''"print('hello world!')"'''])
+ def test_lua(self):
+ self.do_ll_test(path_from_root(['tests', 'lua', 'lua.ll']), 'hello lua world!', args=['-e', '''print("hello lua world!")'''])
### Test cases in separate files