Home | History | Annotate | Download | only in octane
      1 // Portions copyright 2012 Google, Inc.
      2 // Copyright 2012 Onan Games. All rights reserved.
      3 // Redistribution and use in source and binary forms, with or without
      4 // modification, are permitted provided that the following conditions are
      5 // met:
      6 //
      7 //     * Redistributions of source code must retain the above copyright
      8 //       notice, this list of conditions and the following disclaimer.
      9 //     * Redistributions in binary form must reproduce the above
     10 //       copyright notice, this list of conditions and the following
     11 //       disclaimer in the documentation and/or other materials provided
     12 //       with the distribution.
     13 //     * Neither the name of Google Inc. nor the names of its
     14 //       contributors may be used to endorse or promote products derived
     15 //       from this software without specific prior written permission.
     16 //
     17 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     18 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     19 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     20 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     21 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     22 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     23 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     24 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     25 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     26 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     27 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     28 
     29 
     30 var MandreelBenchmark = new BenchmarkSuite('Mandreel', 14000000,
     31                                             [new Benchmark('Mandreel',
     32                                                            runMandreel,
     33                                                            setupMandreel,
     34                                                            tearDownMandreel,
     35                                                            4)]);
     36 
     37 function setupMandreel() {
     38 
     39   // Check for Typed Arrays support, throw error if not.
     40   if (!(typeof Uint8Array != "undefined" &&
     41     typeof Float64Array != "undefined" &&
     42     typeof (new Uint8Array(0)).subarray != "undefined")) {
     43       throw "TypedArrayUnsupported";
     44   }
     45 
     46   my_old_constructors = mandreel_call_constructors;
     47   mandreel_call_constructors = my_mandreel_call_constructors;
     48   startApp();
     49   _mandreelAppAudioReady();
     50 }
     51 
     52 function runMandreel() {
     53   Mandreel_currentTime = 0;
     54   var sp = g_stack_pointer+800*1024;
     55   for (var i=0;i<mandreel_total_memory/4;i++) {
     56     heap32[i] = my_heap32[i];
     57   }
     58   tlsf_ptr = 0;
     59   heapNewPos = my_heapNewPos;
     60   my_old_constructors(llvm_2E_global_ctors,5,sp);
     61   heapU32[sp>>2] = 640;
     62   heapU32[(sp+4)>>2] = 480;
     63   __mandreel_internal_SetResolution(sp);
     64   __mandreel_internal_init(g_stack_pointer+800*1024);
     65   __init(g_stack_pointer+800*1024);
     66   for (var i = 0; i < 20; i++) {
     67     render();
     68     Mandreel_flushTimeouts();
     69   }
     70   Mandreel_checkState();
     71 }
     72 
     73 function tearDownMandreel() {
     74   my_old_constructors = null;
     75   my_heap = null;
     76   my_heap8 = null;
     77   my_heap32 = null;
     78 
     79   heap = null;
     80   heap8 = null;
     81   heapU8 = null;
     82   heap16 = null;
     83   heapU16 = null;
     84   heap32 = null;
     85   heapU32 = null;
     86   heapFloat = null;
     87   heapDouble = null;
     88   mandreelAppUsePackAsyncTexture = null;
     89 }
     90 
     91 // Mocks for browser functions.
     92 
     93 function Mandreel_setTimeout(cmd, delay) {
     94   timeouts.push(cmd);
     95 }
     96 
     97 function Mandreel_flushTimeouts() {
     98   while (Mandreel_timeouts.length != 0) {
     99     var next = Mandreel_timeouts.pop();
    100     eval(next);
    101   }
    102 }
    103 
    104 Mandreel_timeouts = new Array();
    105 
    106 Mandreel_XMLHttpRequest = function() {
    107   this.open = function(type, url, some_bool) {
    108     this.url = url;
    109   }
    110   this.overrideMimeType = function() {
    111   }
    112   this.send = function() {
    113     this.response = null;
    114     this.readyState = 4;
    115     this.status = 0;
    116     this.onreadystatechange();
    117   }
    118 };
    119 
    120 function Mandreel_Element(type) {
    121   this.element_type = type;
    122   this.insertBefore = function() {
    123   }
    124 }
    125 
    126 
    127 function Mandreel_Context() {
    128 }
    129 
    130 function Mandreel_Canvas() {
    131 }
    132 
    133 function Mandreel_CanvasDiv() {
    134 }
    135 
    136 Mandreel_document = {
    137   createElement : function(element_type) {
    138     var element = new Mandreel_Element(element_type);
    139     element.parentNode = new Mandreel_Element("dummy_parent");
    140     return element;
    141   },
    142   getElementById : function(name) {
    143     if (name === "canvas") {
    144       return new Mandreel_Canvas();
    145     } else if (name === "canvasDiv") {
    146       return new Mandreel_CanvasDiv();
    147     } else {
    148       return undefined;
    149     }
    150   },
    151   getElementsByTagName : function(element) {
    152     if (element === "script") {
    153       return new Array(new this.createElement(element));
    154     }
    155   }
    156 
    157 };
    158 
    159 Mandreel_window = {
    160   WebGLRenderingContext: {},
    161   Float64Array: Float64Array,
    162   Float32Array: Float32Array,
    163   Int32Array: Int32Array,
    164   Uint32Array: Uint32Array,
    165   Int16Array: Int16Array,
    166   Uint16Array: Uint16Array,
    167   Int8Array: Int8Array,
    168   Uint8Array: Uint8Array,
    169   setTimeout: Mandreel_setTimeout,
    170   addEventListener : function () {},
    171   document: Mandreel_document
    172 };
    173 
    174 function dump(x) { }
    175 
    176 alert = typeof alert != "undefined" ? alert : function(x) {
    177   print(x);
    178 }
    179 
    180 var my_old_constructors;
    181 var my_heap;
    182 var my_heap8;
    183 var my_heap32;
    184 var my_heapNewPos;
    185 
    186 function my_mandreel_call_constructors(_ptr, size,stackPos) {
    187   my_heapNewPos = heapNewPos;
    188   my_heap = new ArrayBuffer(mandreel_total_memory);
    189   my_heap8 = new Int8Array(my_heap);
    190   my_heap32 = new Int32Array(my_heap);
    191   for (var i=0;i<mandreel_total_memory/4;i++) {
    192     my_heap32[i] = heap32[i];
    193   }
    194   my_old_constructors(_ptr,size,stackPos);
    195 }
    196 
    197 
    198 var Mandreel_currentTime = 0;
    199 
    200 function Date_now() {
    201    Mandreel_currentTime += 16;
    202    return Mandreel_currentTime;
    203 }
    204 
    205 function Mandreel_checkState() {
    206   var sum = 0;
    207   for (var i = 0; i < heap32.length; i += 100) {
    208     sum = (sum * 3 + heap32[i]) & 0xFFFFFF;
    209   }
    210   if (sum != 8001026) {
    211     alert("Check sum mismatch: expected ???, actual " + sum);
    212   }
    213 }
    214 
    215 // Original Mandreel code follows.
    216 // Modifications for benchmarking are marked in comments.
    217 
    218 // Start of js/main.js file:
    219 
    220 ////////////////////////////////////////////
    221 function startApp(_platform)
    222 {
    223 	// Start mandreel
    224 	var params =
    225 	{
    226 		platform : _platform,
    227 		width : 1024,
    228 		height : 768,
    229 		webglCanvas : "canvas",
    230 		flashCanvas : "FlashDiv",
    231 		workingFolderFlash : "data/as3/",
    232 		workingFolderWebgl : "data/js/",
    233 		swfFlash : "mandreel.swf",
    234 		log : true
    235 	};
    236 	mandreelAppStart(appStartState,params);
    237 }
    238 
    239 ////////////////////////////////////////////
    240 function appStartState(state,param)
    241 {
    242 	// mandreel.js program is been loaded
    243 	if ( state == "loadingScript" )
    244 	{
    245 	}
    246 
    247 	// mandreel.js program has been loaded
    248 	if ( state == "scriptLoaded" )
    249 	{
    250 	}
    251 
    252 	// loading pack data file
    253 	if (state == "loadingData")
    254 	{
    255 		// param bytes loaded
    256 	}
    257 
    258 	// Audio system is been started
    259 	if ( state == "loadingAudio" )
    260 	{
    261 	}
    262 
    263 	// Audio system is ready and the default audio preloading has been done
    264 	if ( state == "audioLoaded" )
    265 	{
    266 	}
    267 
    268 
    269 
    270 	// Mandreel has been started, render will start automatically
    271 	if ( state == "ready" )
    272 	{
    273 		// Hide loading image
    274 		var canvasElement = Mandreel_document.getElementById('loading');
    275 		if ( canvasElement != null )
    276 			canvasElement.style.visibility = "hidden";
    277 	}
    278 
    279 	// An error has been produced during the start process and the app must quit
    280 	if ( state == "error" )
    281 	{
    282 		if ( param == "webgl_not_found" )
    283 		{
    284 			window.location = "http://get.webgl.org";
    285 			return;
    286 		}
    287 		alert(param);
    288 	}
    289 }
    290 
    291 // End of js/main.js file.
    292 
    293 // Start of js/mandreelapp.js file.
    294 
    295 var mandreelAppMandreelJs = "mandreel.js";
    296 var mandreelAppMandreelJsCompressed = false;
    297 var mandreelAppWorkingFolder = "data/js/";
    298 var mandreelAppLog = false;
    299 var mandreelAppLocalHost = "http://localhost";
    300 var mandreelAppReadDataFromLocalHost = false;
    301 var mandreelAppReadMandreelJsFromLocalHost = false;
    302 var mandreelAppHostedAudioServer = null;
    303 var mandreelAppHostedAudioUrl = null;
    304 var mandrelCurrentFatVersion = "1.4";
    305 var mandreelAppPlatform = "webgl";
    306 var mandreelAppCanvasWidth = 1024;
    307 var mandreelAppCanvasHeight = 768;
    308 var mandreelAppWidthSrc = 1024;
    309 var mandreelAppHeightSrc = 768;
    310 var mandreelAppCanvasName = "canvas";
    311 var mandreelAppCanvasDiv = "canvasDiv";
    312 var mandreelAppUseFlashSockets = false;
    313 var mandreelAppUsePackAsyncTexture = new Array();
    314 //var mandreelBufferPackAsyncTexture = null;
    315 var mandreelAppForceFocus = true;
    316 var _imandreel_pause_game = false;
    317 
    318 /* The following code was removed for benchmarking:
    319 navigator.pointer = navigator.pointer || navigator.webkitPointer || navigator.mozPointer || null;*/
    320 
    321 /* The following code was removed for benchmarking:
    322  if (!Date_now) {
    323    Date_now = function() {
    324      return +new Date();
    325    };
    326  };*/
    327 
    328 ////////////////////////////////////////////
    329 
    330 if (Mandreel_window["console"])
    331 {
    332 	if (!Mandreel_window["dump"]) Mandreel_window["dump"] = function dump(str){ if ( mandreelAppLog ) console.log(str) };
    333 }
    334 else
    335 {
    336 	if (!Mandreel_window["dump"]) Mandreel_window["dump"] = function dump(str){ };
    337 }
    338 
    339 /* The following code is removed for benchmarking:
    340 var mandreel_BrowserDetect = {
    341 	init: function () {
    342 		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
    343 		this.version = this.searchVersion(navigator.userAgent)
    344 			|| this.searchVersion(navigator.appVersion)
    345 			|| "an unknown version";
    346 		this.OS = this.searchString(this.dataOS) || "an unknown OS";
    347 	},
    348 	searchString: function (data) {
    349 		for (var i=0;i<data.length;i++)	{
    350 			var dataString = data[i].string;
    351 			var dataProp = data[i].prop;
    352 			this.versionSearchString = data[i].versionSearch || data[i].identity;
    353 			if (dataString) {
    354 				if (dataString.indexOf(data[i].subString) != -1)
    355 					return data[i].identity;
    356 			}
    357 			else if (dataProp)
    358 				return data[i].identity;
    359 		}
    360 	},
    361 	searchVersion: function (dataString) {
    362 		var index = dataString.indexOf(this.versionSearchString);
    363 		if (index == -1) return;
    364 		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
    365 	},
    366 	dataBrowser: [
    367 		{
    368 			string: navigator.userAgent,
    369 			subString: "Chrome",
    370 			identity: "Chrome"
    371 		},
    372 		{ 	string: navigator.userAgent,
    373 			subString: "OmniWeb",
    374 			versionSearch: "OmniWeb/",
    375 			identity: "OmniWeb"
    376 		},
    377 		{
    378 			string: navigator.vendor,
    379 			subString: "Apple",
    380 			identity: "Safari",
    381 			versionSearch: "Version"
    382 		},
    383 		{
    384 			prop: window.opera,
    385 			identity: "Opera",
    386 			versionSearch: "Version"
    387 		},
    388 		{
    389 			string: navigator.vendor,
    390 			subString: "iCab",
    391 			identity: "iCab"
    392 		},
    393 		{
    394 			string: navigator.vendor,
    395 			subString: "KDE",
    396 			identity: "Konqueror"
    397 		},
    398 		{
    399 			string: navigator.userAgent,
    400 			subString: "Firefox",
    401 			identity: "Firefox"
    402 		},
    403 		{
    404 			string: navigator.vendor,
    405 			subString: "Camino",
    406 			identity: "Camino"
    407 		},
    408 		{		// for newer Netscapes (6+)
    409 			string: navigator.userAgent,
    410 			subString: "Netscape",
    411 			identity: "Netscape"
    412 		},
    413 		{
    414 			string: navigator.userAgent,
    415 			subString: "MSIE",
    416 			identity: "Explorer",
    417 			versionSearch: "MSIE"
    418 		},
    419 		{
    420 			string: navigator.userAgent,
    421 			subString: "Gecko",
    422 			identity: "Mozilla",
    423 			versionSearch: "rv"
    424 		},
    425 		{ 		// for older Netscapes (4-)
    426 			string: navigator.userAgent,
    427 			subString: "Mozilla",
    428 			identity: "Netscape",
    429 			versionSearch: "Mozilla"
    430 		}
    431 	],
    432 	dataOS : [
    433 		{
    434 			string: navigator.platform,
    435 			subString: "Win",
    436 			identity: "Windows"
    437 		},
    438 		{
    439 			string: navigator.platform,
    440 			subString: "Mac",
    441 			identity: "Mac"
    442 		},
    443 		{
    444 			   string: navigator.userAgent,
    445 			   subString: "iPhone",
    446 			   identity: "iPhone/iPod"
    447 	    },
    448 		{
    449 			string: navigator.platform,
    450 			subString: "Linux",
    451 			identity: "Linux"
    452 		}
    453 	]
    454 
    455 };
    456 mandreel_BrowserDetect.init(); */
    457 
    458 ////////////////////////////////////////////
    459 var mandreel_packfiledata_name = null;
    460 var mandreel_packfiledata_compressed = false;
    461 var mandreel_packfiledata_size = 0;
    462 var mandreel_total_packtexture_size = 0;
    463 var mandreel_total_pogfile_size = 0;
    464 var mandreel_loaded_packtexture_size = 0;
    465 var mandreel_jslzma_size = 0;
    466 var mandreel_swf_size = 0;
    467 
    468 var mandreelJsScriptLoaded_loaded = false;
    469 
    470 var mandreel_swf_last_total_size = 0;
    471 function mandreel_swf_size_updated(str)
    472 {
    473 	var params = str.split(',');
    474 	if ( mandreel_swf_size == 0 )
    475 	{
    476 		mandreel_swf_last_loaded_size = 0;
    477 	}
    478 	mandreel_swf_size = parseInt(params[0]);
    479 	var loaded = parseInt(params[1]);
    480 	var delta_size = loaded - mandreel_swf_last_loaded_size;
    481 	mandreel_swf_last_loaded_size = loaded;
    482 
    483 	var percentage = ((100*loaded)/mandreel_swf_size)|0;
    484 	if (percentage>100)
    485 		percentage = 100;
    486 
    487 	if ( mandreelAppStartStateFunc )
    488 		mandreelAppStartStateFunc("loadingScriptUpdate",percentage);
    489 
    490 	imandreel_update_load(delta_size,0);
    491 }
    492 
    493 function mandreel_swf_size_loaded(str)
    494 {
    495 	if ( mandreelAppStartStateFunc )
    496 		mandreelAppStartStateFunc("scriptLoaded","");
    497 }
    498 
    499 function mandreelNextDecompress(mandreel_result_lzma)
    500 {
    501 
    502 	if ( mandreelAppStartStateFunc )
    503 	{
    504 		var totalBytesLeft = mandreel_result_lzma.totalSize - mandreel_result_lzma.remainingBytes;
    505 
    506 		var percentage;
    507 
    508 		if (totalBytesLeft == 0)
    509 			percentage = 0;
    510 		else
    511 			percentage = ((100*totalBytesLeft)/mandreel_result_lzma.totalSize)|0;
    512 
    513 		mandreelAppStartStateFunc("uncompressingDataUpdate",percentage);
    514 	}
    515 
    516 	var old_result = mandreel_result_lzma;
    517 	mandreel_result_lzma = LZMA.decompress2(mandreel_result_lzma.inStream,mandreel_result_lzma.inStream,mandreel_result_lzma.outStream,mandreel_result_lzma);
    518 
    519 	if (mandreel_result_lzma == null)
    520 	{
    521 		//setTimeout(mandreelLoadScript,10,old_result.my_outStream.data);
    522 
    523 		//mandreel_fs_saveFile('data.bin', old_result.my_outStream.arrayBuffer);
    524 		//callback(old_result.my_outStream.arrayBuffer);
    525 		//alert('done');
    526 		mandreelLoadPackData(old_result.my_outStream.arrayBuffer,true);
    527 	}
    528 	else
    529 	{
    530 		Mandreel_setTimeout(mandreelNextDecompress,10,mandreel_result_lzma);
    531 	}
    532 
    533 
    534 }
    535 
    536 function mandreel_load_packfile(array_buffer)
    537 {
    538 	if (array_buffer)
    539 	{
    540 		mandreelLoadPackData(array_buffer,false);
    541 		return;
    542 	}
    543 
    544 	var working_folder = mandreelAppWorkingFolder;
    545 	if ( mandreelAppReadDataFromLocalHost )
    546 		working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder;
    547 	var packdata_request = new XMLHttpRequest();
    548 	var url = working_folder+mandreel_packfiledata_name;
    549 
    550 	packdata_request.open("GET", url, true);
    551 
    552 	if("responseType" in packdata_request)
    553 		packdata_request.responseType="arraybuffer";
    554 	else
    555 		packdata_request.overrideMimeType('text/plain; charset=x-user-defined');
    556 
    557 	var last_loaded_size = 0;
    558 
    559 	packdata_request.onreadystatechange = function()
    560 	{
    561 		if (packdata_request.readyState != 4) return;
    562 
    563 		if (packdata_request.status == 200)
    564 		{
    565 			var buffer;
    566 			if (packdata_request.responseType=="arraybuffer")
    567 				buffer=packdata_request.response;
    568 			else if (packdata_request.mozResponseArrayBuffer != null)
    569 				buffer = packdata_request.mozResponseArrayBuffer;
    570 			else
    571 				buffer=packdata_request.response;
    572 
    573 			if (mandreel_packfiledata_compressed)
    574 			{
    575 				var inStream = {
    576 				  data: new Uint8Array(buffer),
    577 				  offset: 0,
    578 				  readByte: function(){
    579 					return this.data[this.offset ++];
    580 				  }
    581 				};
    582 
    583 				var outStream = {
    584 				  data: null,
    585 				  offset: 0,
    586 				  binary_mode : true,
    587 				  writeByte: function(value){
    588 					this.data[this.offset ++] = value;
    589 				  }
    590 				};
    591 
    592 
    593 				var result = LZMA.decompress2(inStream,inStream,outStream,null);
    594 
    595 				if (result == null)
    596 					mandreelLoadPackData(outStream.arrayBuffer,true);
    597 				else
    598 					Mandreel_setTimeout(mandreelNextDecompress,10,result);
    599 			}
    600 			else
    601 				mandreelLoadPackData(buffer,true);
    602 		}
    603 		else
    604 		{
    605 			if ( mandreelAppStartStateFunc )
    606 				mandreelAppStartStateFunc("error","can't load packfile data");
    607 		}
    608 	}
    609 	packdata_request.onprogress = function(e)
    610 	{
    611 		var delta_size = e.loaded - last_loaded_size;
    612 		last_loaded_size = e.loaded;
    613 		var percentage = ((100*e.loaded)/mandreel_packfiledata_size)|0;
    614 
    615 
    616 		imandreel_update_load(delta_size,0);
    617 
    618 		if (percentage>100)
    619 			percentage = 100;
    620 
    621 		if ( mandreelAppStartStateFunc )
    622 			mandreelAppStartStateFunc("loadingData",percentage);
    623 	}
    624 
    625 	packdata_request.send();
    626 }
    627 
    628 function mandreelJsScriptLoaded()
    629 {
    630 	if (mandreelJsScriptLoaded_loaded)
    631 		return;
    632 
    633 	if (typeof(mandreel_cache_files)=="undefined")
    634 	{
    635 		Mandreel_setTimeout(mandreelJsScriptLoaded,10);
    636 		return;
    637 	}
    638 
    639 	mandreelJsScriptLoaded_loaded = true;
    640 
    641 	if ( mandreelAppStartStateFunc )
    642 		mandreelAppStartStateFunc("scriptLoaded","");
    643 
    644 	if (mandreel_packfiledata_name)
    645 	{
    646 
    647 		mandreel_fs_load_binary(mandreel_packfiledata_name, mandreel_load_packfile);
    648 
    649 
    650 	}
    651 	else
    652 	{
    653 		mandreelCacheMandreelFat();
    654 		imandreelJsScriptLoaded();
    655 	}
    656 }
    657 
    658 function imandreelLoadAudio()
    659 {
    660 	g_mandreel_working_folder = mandreelAppWorkingFolder;
    661 	if ( mandreelAppReadDataFromLocalHost )
    662 		g_mandreel_working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder;
    663 
    664 	// load audio
    665 	if ( mandreelAppStartStateFunc )
    666 		mandreelAppStartStateFunc("loadingAudio","");
    667 	mandreel_start_audio(mandreelAppHostedAudioServer,mandreelAppHostedAudioUrl,_mandreelAppAudioReady);
    668 }
    669 
    670 var _mandreel_currentPackTexture = '';
    671 
    672 function imandreel_packasynctexture_loaded(buffer,save_file)
    673 {
    674 	if (save_file)
    675 		mandreel_fs_saveFile(_mandreel_currentPackTexture,buffer);
    676 
    677 	//mandreelBufferPackAsyncTexture = buffer;
    678 	Mandreel_TextureAsync_PackBufferData[_mandreel_currentPackTexture] = buffer;
    679 
    680 	imandreelLoadNextTexturePack();
    681 }
    682 
    683 var mandreel_update_total_size = 0;
    684 
    685 function imandreel_update_load(size, total)
    686 {
    687 	if (total == 0)
    688 		total = mandreel_packfiledata_size + mandreel_total_packtexture_size + mandreel_total_pogfile_size + mandreel_jslzma_size + mandreel_swf_size;
    689 
    690 
    691 	mandreel_update_total_size+=size;
    692 
    693 	var percentage = ((100*mandreel_update_total_size)/total)|0;
    694 
    695 	if (percentage>100)
    696 		percentage = 100;
    697 	if (mandreelAppStartStateFunc)
    698 		mandreelAppStartStateFunc("loadingProgress",percentage);
    699 
    700 }
    701 
    702 
    703 function imandreel_packasynctexture_load(array_buffer)
    704 {
    705 	if (array_buffer)
    706 	{
    707 		imandreel_packasynctexture_loaded(array_buffer, false);
    708 		return;
    709 	}
    710 
    711 
    712 	var working_folder = mandreelAppWorkingFolder;
    713 	if ( mandreelAppReadDataFromLocalHost )
    714 		working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder;
    715 	var packdata_request = new XMLHttpRequest();
    716 	var url = working_folder+_mandreel_currentPackTexture;
    717 
    718 	packdata_request.open("GET", url, true);
    719 
    720 	if("responseType" in packdata_request)
    721 		packdata_request.responseType="arraybuffer";
    722 	else
    723 		packdata_request.overrideMimeType('text/plain; charset=x-user-defined');
    724 
    725 	var last_loaded_size = 0;
    726 
    727 	packdata_request.onreadystatechange = function()
    728 	{
    729 		if (packdata_request.readyState != 4) return;
    730 
    731 		if (packdata_request.status == 200)
    732 		{
    733 			var buffer;
    734 			if (packdata_request.responseType=="arraybuffer")
    735 				buffer=packdata_request.response;
    736 			else if (packdata_request.mozResponseArrayBuffer != null)
    737 				buffer = packdata_request.mozResponseArrayBuffer;
    738 			else
    739 				buffer=packdata_request.response;
    740 
    741 			imandreel_packasynctexture_loaded(buffer, true);
    742 		}
    743 		else
    744 		{
    745 			if ( mandreelAppStartStateFunc )
    746 				mandreelAppStartStateFunc("error","can't load textureasync pack data");
    747 		}
    748 	}
    749 	packdata_request.onprogress = function(e)
    750 	{
    751 		var delta_size = e.loaded - last_loaded_size;
    752 		last_loaded_size = e.loaded;
    753 		mandreel_loaded_packtexture_size+=delta_size;
    754 
    755 		imandreel_update_load(delta_size,0);
    756 
    757 		var percentage = ((100*mandreel_loaded_packtexture_size)/mandreel_total_packtexture_size)|0;
    758 
    759 		if (percentage>100)
    760 			percentage = 100;
    761 
    762 		if ( mandreelAppStartStateFunc )
    763 			mandreelAppStartStateFunc("loadingTextureAsyncPack",percentage);
    764 	}
    765 
    766 	packdata_request.send();
    767 
    768 }
    769 
    770 function imandreelLoadNextTexturePack()
    771 {
    772 	if (mandreelAppUsePackAsyncTexture.length)
    773 	{
    774 		_mandreel_currentPackTexture = mandreelAppUsePackAsyncTexture.pop();
    775 		mandreel_fs_load_binary(_mandreel_currentPackTexture, imandreel_packasynctexture_load);
    776 	}
    777 	else
    778 		imandreelLoadAudio();
    779 }
    780 
    781 function imandreelJsScriptLoaded()
    782 {
    783 	imandreelLoadNextTexturePack();
    784 }
    785 
    786 ////////////////////////////////////////////
    787 
    788 function mandreelDecompressJSReady(code, save_file)
    789 {
    790 	if (save_file)
    791 		mandreel_fs_saveFile(mandreelAppMandreelJs + ".lzma", code);
    792 
    793 	var ga = Mandreel_document.createElement('script');
    794 	ga.type = "text/javascript";
    795 	ga.text = code;
    796 	var s = Mandreel_document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    797 	s.parentNode.removeChild(ga);
    798 	mandreelJsScriptLoaded();
    799 }
    800 
    801 function mandreelNextDecompressJS(mandreel_result_lzma)
    802 {
    803 
    804 	if ( mandreelAppStartStateFunc )
    805 	{
    806 		var totalBytesLeft = mandreel_result_lzma.totalSize - mandreel_result_lzma.remainingBytes;
    807 
    808 		var percentage;
    809 
    810 		if (totalBytesLeft == 0)
    811 			percentage = 0;
    812 		else
    813 			percentage = ((100*totalBytesLeft)/mandreel_result_lzma.totalSize)|0;
    814 
    815 		mandreelAppStartStateFunc("uncompressingScriptUpdate",percentage);
    816 	}
    817 
    818 	var old_result = mandreel_result_lzma;
    819 	mandreel_result_lzma = LZMA.decompress2(mandreel_result_lzma.inStream,mandreel_result_lzma.inStream,mandreel_result_lzma.outStream,mandreel_result_lzma);
    820 
    821 	if (mandreel_result_lzma == null)
    822 	{
    823 		mandreelDecompressJSReady(old_result.my_outStream.data,true);
    824 	}
    825 	else
    826 	{
    827 		Mandreel_setTimeout(mandreelNextDecompressJS,10,mandreel_result_lzma);
    828 	}
    829 
    830 
    831 }
    832 
    833 function mandreel_load_compressed_js(code_js)
    834 {
    835 	if (code_js)
    836 	{
    837 		mandreelDecompressJSReady(code_js,false);
    838 		return;
    839 	}
    840 	 var xmlhttp_get = new XMLHttpRequest();
    841 
    842 	 var url = mandreelAppMandreelJs + ".lzma";
    843 	 if ( mandreelAppReadMandreelJsFromLocalHost )
    844 		url = mandreelAppLocalHost+"/"+url;
    845 
    846 	 xmlhttp_get.open('GET',url);
    847 
    848 
    849 	if("responseType" in xmlhttp_get)
    850 		xmlhttp_get.responseType="arraybuffer";
    851 	else
    852 		xmlhttp_get.overrideMimeType('text/plain; charset=x-user-defined');
    853 
    854 	var last_loaded_size = 0;
    855 
    856 	xmlhttp_get.onreadystatechange = function()
    857 	{
    858 		if (xmlhttp_get.readyState==4)
    859 		{
    860 			if (xmlhttp_get.status==200 || xmlhttp_get.status==0)
    861 			{
    862 
    863 				var inStream = {
    864 				  data: new Uint8Array(xmlhttp_get.response),
    865 				  offset: 0,
    866 				  readByte: function(){
    867 					return this.data[this.offset ++];
    868 				  }
    869 				};
    870 
    871 				var outStream = {
    872 				  data: new String(""),
    873 				  offset: 0,
    874 				  binary_mode : false,
    875 				  writeByte: function(value){
    876 					this.data+=String.fromCharCode(value);
    877 				  }
    878 				};
    879 
    880 
    881 				var result = LZMA.decompress2(inStream,inStream,outStream,null);
    882 				if (result == null)
    883 					mandreelDecompressJSReady(outStream.data,true);
    884 				else
    885 					Mandreel_setTimeout(mandreelNextDecompressJS,10,result);
    886 			}
    887 			else
    888 			{
    889 				alert('error ' + xmlhttp_get.status);
    890 			}
    891 		}
    892 
    893 	}
    894 
    895 	xmlhttp_get.onprogress = function(e)
    896 	{
    897 		var delta_size = e.loaded - last_loaded_size;
    898 		last_loaded_size = e.loaded;
    899 
    900 		var percentage = ((100*e.loaded)/e.total)|0;
    901 
    902 		mandreel_jslzma_size = e.total;
    903 
    904 		imandreel_update_load(delta_size,0);
    905 
    906 		if (percentage>100)
    907 			percentage = 100;
    908 
    909 		if ( mandreelAppStartStateFunc )
    910 			mandreelAppStartStateFunc("loadingScriptUpdate",percentage);
    911 	}
    912 
    913 	xmlhttp_get.send();
    914 
    915 }
    916 
    917 function mandreelLoadMandreelJsScript()
    918 {
    919 	if (mandreelAppMandreelJsCompressed)
    920 	{
    921 		mandreel_fs_load_text(mandreelAppMandreelJs + ".lzma", mandreel_load_compressed_js);
    922 
    923 	}
    924 	else
    925 	{
    926 		var ga = Mandreel_document.createElement('script');
    927 		ga.type = 'text/javascript';
    928 		ga.async = true;
    929 		ga.onload = ga.onreadystatechange = mandreelJsScriptLoaded;
    930 		var url = mandreelAppMandreelJs;
    931 		if ( mandreelAppReadMandreelJsFromLocalHost )
    932 			ga.src = mandreelAppLocalHost+"/"+url;
    933 		else
    934 			ga.src = url;
    935 		var s = Mandreel_document.getElementsByTagName('script')[0];
    936 		if ( mandreelAppStartStateFunc )
    937 			mandreelAppStartStateFunc("loadingScript","");
    938 		s.parentNode.insertBefore(ga, s);
    939 	}
    940 }
    941 
    942 ////////////////////////////////////////////
    943 function mandreelFatLoaded()
    944 {
    945 	if ( mandreelAppPlatform == "nacl" )
    946 	{
    947 		g_mandreel_working_folder = mandreelAppWorkingFolder;
    948 		if ( mandreelAppReadDataFromLocalHost )
    949 			g_mandreel_working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder;
    950 
    951 		// load audio
    952 		if ( mandreelAppStartStateFunc )
    953 			mandreelAppStartStateFunc("loadingAudio","");
    954 		_mandreelAppAudioReady();
    955 	}
    956 	else
    957 		mandreelLoadMandreelJsScript();
    958 }
    959 
    960 var mandreelFatData = "";
    961 var mandreelFatPreloadRequest = 0;
    962 ////////////////////////////////////////////
    963 
    964 function mandreel_chanka_fixfile(fileName)
    965 {
    966 	var fileNameNoExt = fileName.toLowerCase();
    967 	fileNameNoExt = fileNameNoExt.replace(/\\/g,"/");
    968 
    969 	fileNameNoExt =  fileNameNoExt.substr(1);
    970 
    971 	var new_fileName = '';
    972 
    973 	for(var j = 0; j < fileNameNoExt.length; j++)
    974 	{
    975 		var data = fileNameNoExt.charCodeAt(j);
    976 
    977 		if (data != 13)
    978 		{
    979 			 var t = String.fromCharCode(data);
    980 			 new_fileName+=t;
    981 		}
    982 	}
    983 
    984 	return 	new_fileName;
    985 }
    986 
    987 function mandreel_removecr(my_string)
    988 {
    989 	var new_string = '';
    990 	for(var j = 0; j < my_string.length; j++)
    991 	{
    992 		var data = my_string.charCodeAt(j);
    993 
    994 		if (data != 13)
    995 		{
    996 			 var t = String.fromCharCode(data);
    997 			 new_string+=t;
    998 		}
    999 	}
   1000 
   1001 	return 	new_string;
   1002 }
   1003 
   1004 function mandreelCacheMandreelFat()
   1005 {
   1006 	var array_mandreel_fat = new ArrayBuffer(mandreelFatData.length+1);
   1007 
   1008 
   1009 	{
   1010 		var j;
   1011 		var len = mandreelFatData.length;
   1012 		var data_char;
   1013 
   1014 		var my_bytes = new Uint8Array(array_mandreel_fat);
   1015 
   1016 		for(j = 0; j < len; j++)
   1017 		{
   1018 			data_char = mandreelFatData.charCodeAt(j);
   1019 
   1020 			my_bytes[j] = data_char;
   1021 		}
   1022 		my_bytes[j] = 0;
   1023 	}
   1024 
   1025 
   1026 	mandreel_cache_files['mandreel.fat'] = array_mandreel_fat;
   1027 }
   1028 
   1029 function mandreelLoadPackData(data, save_pack)
   1030 {
   1031 	var files = mandreelFatData.split('\n');
   1032 
   1033 	var current_dir = '';
   1034 	var current_offset = 0;
   1035 
   1036 	if (save_pack)
   1037 		mandreel_fs_saveFile(mandreel_packfiledata_name,data);
   1038 
   1039 
   1040 	for (var i=0;i<files.length;++i)
   1041 	{
   1042 		var file_data = files[i].split(',');
   1043 
   1044 		if (file_data[0] == 'dir')
   1045 		{
   1046 			current_dir = file_data[1];
   1047 			//current_dir = current_dir.substr(0,current_dir.lengh-1);
   1048 		}
   1049 		else if (file_data[0] == 'file')
   1050 		{
   1051 			var file_name = current_dir + file_data[1];
   1052 			file_name = mandreel_chanka_fixfile(file_name) ;
   1053 			//dump('new file ' + file_name + ' ' + current_offset);
   1054 			//dump(file_name);
   1055 			var file_size = parseInt(file_data[2]);
   1056 
   1057 			var my_array = new ArrayBuffer(file_size);
   1058 
   1059 			var my_bytes = new Uint8Array(my_array);
   1060 
   1061 			var data_bytes = new Uint8Array(data,current_offset,file_size);
   1062 
   1063 			my_bytes.set(data_bytes);
   1064 
   1065 			mandreel_cache_files[file_name] = my_array;
   1066 
   1067 
   1068 			current_offset+=file_size;
   1069 
   1070 
   1071 		}
   1072 	}
   1073 
   1074 
   1075 
   1076 	g_mandreel_datafiles_sufix = '';
   1077 	mandreelCacheMandreelFat();
   1078 
   1079 	imandreelJsScriptLoaded();
   1080 }
   1081 
   1082 var preCreatedWebAudioContext = null;
   1083 
   1084 function mandreelLoadFat()
   1085 {
   1086 	mandreelFatPreloadRequest = new Mandreel_XMLHttpRequest();
   1087 	var working_folder = mandreelAppWorkingFolder;
   1088 	if ( mandreelAppReadDataFromLocalHost )
   1089 		working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder;
   1090 	var url = working_folder+"mandreel.fat.dat";
   1091 	if ( mandreelAppPlatform == "nacl" )
   1092 		url = working_folder+"mandreel.fat";
   1093 	mandreelFatPreloadRequest.open("GET", url, true);
   1094 	mandreelFatPreloadRequest.onreadystatechange = function()
   1095 	{
   1096 		if (mandreelFatPreloadRequest.readyState != 4) return;
   1097 		if ( mandreelFatPreloadRequest.status != 404 && mandreelFatPreloadRequest.response != null )
   1098 		{
   1099 			mandreelFatData = mandreelFatPreloadRequest.response;
   1100 		}
   1101 		if ( mandreelFatData == "" )
   1102 		{
   1103 			dump("error loading mandreel.fat file, Maybe the working folder is not correctly set???");
   1104 		}
   1105 
   1106 		var packfiledata = null;
   1107 		var compressed = false;
   1108 		var packfiledata_size = 0;
   1109 		var total_packtexture_size = 0;
   1110 		var pogsize = 0;
   1111 
   1112 		// Check version
   1113 		var FatLines = mandreelFatData.split('\n');
   1114 		for ( var i=0;i<FatLines.length;++i )
   1115 		{
   1116 			var line = mandreel_removecr(FatLines[i]);
   1117 			var params = line.split(',');
   1118 			if ( params[0] == "version" )
   1119 			{
   1120 				if ( params[1] != mandrelCurrentFatVersion )
   1121 					dump("warning: mandreel.fat version number is ("+params[1]+") and it should be ("+mandrelCurrentFatVersion+")");
   1122 
   1123 			}
   1124 			else if ( params[0] == "platform" && params[1] != "js" && (mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas")  )
   1125 				dump("warning: mandreel.fat platform is ("+params[1]+") and it should be (js)");
   1126 			else if ( params[0] == "platform" && params[1] != "nacl" && mandreelAppPlatform == "nacl"  )
   1127 				dump("warning: mandreel.fat platform is ("+params[1]+") and it should be (nacl)");
   1128 			else if (params[0] == 'packdata')
   1129 			{
   1130 				packfiledata = params[1];
   1131 				compressed = params[2].charAt(0) == '1';
   1132 				packfiledata_size =  parseInt(params[3], 10);
   1133 			}
   1134 			else if (params[0] == 'flashsockets')
   1135 			{
   1136 				mandreelAppUseFlashSockets = true;
   1137 			}
   1138 			else if (params[0] == 'packtexture')
   1139 			{
   1140 				var filename = params[1];
   1141 				var size_packtexture = parseInt(params[3], 10);
   1142 				total_packtexture_size+=size_packtexture;
   1143 				mandreelAppUsePackAsyncTexture.push(filename);
   1144 			}
   1145 			else if (params[0] == 'audiopreloadfile')
   1146 			{
   1147 				pogsize = parseInt(params[2],10);
   1148 			}
   1149 			else if (params[0] == 'audiodriver' && params[1] == 'webaudio')
   1150 			{
   1151 				try	{ preCreatedWebAudioContext = new webkitAudioContext(); } catch(err) { preCreatedWebAudioContext = null; }
   1152 			}
   1153 		}
   1154 
   1155 		if ( preCreatedWebAudioContext != null )
   1156 			mandreel_total_pogfile_size = pogsize;
   1157 		mandreel_packfiledata_name = packfiledata;
   1158 		mandreel_packfiledata_compressed = compressed;
   1159 		mandreel_packfiledata_size = packfiledata_size;
   1160 		mandreel_total_packtexture_size = total_packtexture_size;
   1161 		mandreelFatLoaded();
   1162 	}
   1163 	mandreelFatPreloadRequest.send();
   1164 }
   1165 
   1166 var mandreelAppStartStateFunc = 0;
   1167 var mandreelDisableSpaceKey = true;
   1168 ////////////////////////////////////////////
   1169 function mandreelAppStart(startStateFunc,params)
   1170 {
   1171 	mandreelAppStartStateFunc = startStateFunc;
   1172 
   1173 
   1174 
   1175 
   1176 	if ( typeof(params.log) != 'undefined' )
   1177 		mandreelAppLog = params.log;
   1178 
   1179 	if ( typeof(params.platform) != 'undefined' )
   1180 		mandreelAppPlatform = params.platform;
   1181 
   1182 	if (typeof(params.mandreelJSCompressed) != 'undefined' )
   1183 		mandreelAppMandreelJsCompressed = params.mandreelJSCompressed;
   1184 
   1185 
   1186 /*	 The following code is removed for benchmarking:
   1187 	if ((mandreel_BrowserDetect.browser == 'Chrome' || mandreel_BrowserDetect.browser == 'Safari') && mandreel_BrowserDetect.OS == 'Mac' && mandreelAppPlatform == "flash")
   1188 		mandreelDisableSpaceKey = false; */
   1189 
   1190 	if ( mandreelAppPlatform != "webgl" && mandreelAppPlatform != "flash" && mandreelAppPlatform != "nacl" && mandreelAppPlatform != "canvas" && mandreelAppPlatform != "plugin")
   1191 	{
   1192 		mandreelAppStartStateFunc("error",'platform ('+mandreelAppPlatform+') not supported');
   1193 		return;
   1194 	}
   1195 
   1196 	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
   1197 	{
   1198 		mandreelAppWorkingFolder = "data/js/";
   1199 		if ( typeof(params.workingFolderWebgl) != 'undefined' )
   1200 			mandreelAppWorkingFolder = params.workingFolderWebgl;
   1201 		// Check Float64Array availability
   1202 		if ( !Mandreel_window["Float64Array"] )
   1203 		{
   1204 			mandreelAppStartStateFunc("error",'Browser unsupported: Float64Array not available');
   1205 			return;
   1206 		}
   1207 
   1208 		var flashElement = Mandreel_document.getElementById('FlashWrapper');
   1209 		if ( flashElement != null )
   1210 		{
   1211 			flashElement.style.visibility = "hidden";
   1212 			flashElement.style.width = "0px";
   1213 			flashElement.style.height = "0px";
   1214 		}
   1215 		var flashElement = Mandreel_document.getElementById('FlashDiv');
   1216 		if ( flashElement != null )
   1217 		{
   1218 			flashElement.style.visibility = "hidden";
   1219 			flashElement.style.width = "0px";
   1220 			flashElement.style.height = "0px";
   1221 		}
   1222 
   1223 		// Setup WebGL
   1224 		if ( typeof(params.webglCanvas) == 'undefined' )
   1225 		{
   1226 			mandreelAppStartStateFunc("error",'canvas parameter not found');
   1227 			return;
   1228 		}
   1229 		var canvas = Mandreel_document.getElementById(params.webglCanvas);
   1230 		if ( canvas == null )
   1231 		{
   1232 			mandreelAppStartStateFunc("error",'canvas object ('+params.webglCanvas+') not found');
   1233 			return;
   1234 		}
   1235 		if ( params.width != null )
   1236 		{
   1237 			canvas.width = params.width;
   1238 			mandreelAppWidthSrc = params.width;
   1239 		}
   1240 		if ( params.height != null )
   1241 		{
   1242 			canvas.height = params.height;
   1243 			mandreelAppHeightSrc = params.height;
   1244 		}
   1245 		if ( mandreelAppPlatform == "webgl" )
   1246 		{
   1247 			// The following code is removed for benchmarking:
   1248 			// imandreel_gl = WebGLUtils.setupWebGL(canvas,{premultipliedAlpha:false,alpha:false});
   1249 			// if (imandreel_gl == null)
   1250 			// {
   1251 			//	mandreelAppStartStateFunc("error","webgl_not_found");
   1252 			//	return;
   1253 			// }
   1254 		}
   1255 
   1256 		if ( mandreelAppPlatform == "canvas" )
   1257 		{
   1258 			imandreel_ctx_canvas = canvas.getContext('2d');
   1259 			if ( imandreel_ctx_canvas == null )
   1260 			{
   1261 				mandreelAppStartStateFunc("error","canvas context 2d not found");
   1262 				return;
   1263 			}
   1264 		}
   1265 
   1266 		if (params.cache != null)
   1267 		{
   1268 			//alert( params.cache.size + params.cache.url);
   1269 			mandreel_fs_init(function() { if ( mandreelAppStartStateFunc )
   1270 				mandreelAppStartStateFunc("loadingFat","");
   1271 			mandreelLoadFat();}, params.cache.size,params.cache.url);
   1272 		}
   1273 		else
   1274 		{
   1275 			// load Fat
   1276 			if ( mandreelAppStartStateFunc )
   1277 				mandreelAppStartStateFunc("loadingFat","");
   1278 			mandreelLoadFat();
   1279 		}
   1280 	}
   1281 
   1282 	if ( mandreelAppPlatform == "flash" )
   1283 	{
   1284 		mandreelAppWorkingFolder = "data/as3/";
   1285 		if ( typeof(params.workingFolderFlash) != 'undefined' )
   1286 			mandreelAppWorkingFolder = params.workingFolderFlash;
   1287 		if (!swfobject.hasFlashPlayerVersion('11.2.0'))
   1288 		{
   1289 			mandreelAppStartStateFunc("error","flash 11 not found");
   1290 			return;
   1291 		}
   1292 
   1293 		if ( typeof(params.flashCanvas) == 'undefined' )
   1294 		{
   1295 			mandreelAppStartStateFunc("error",'canvas parameter not found');
   1296 			return;
   1297 		}
   1298 
   1299 		if ( true ) // hide webgl canvas
   1300 		{
   1301 			var canvas = Mandreel_document.getElementById(mandreelAppCanvasDiv);
   1302 			if ( canvas != null )
   1303 			{
   1304 				canvas.style.visibility = "hidden";
   1305 				canvas.style.width = "0px";
   1306 				canvas.style.height = "0px";
   1307 			}
   1308 		}
   1309 
   1310 		if ( params.width != null )
   1311 		{
   1312 			mandreelAppCanvasWidth = params.width;
   1313 		}
   1314 		if ( params.height != null )
   1315 		{
   1316 			mandreelAppCanvasHeight = params.height;
   1317 		}
   1318 
   1319 		mandreelAppCanvasDiv = params.flashCanvas;
   1320 
   1321 		try
   1322 		{
   1323 			var mandreelSocketsSwf = "mandreel.swf";
   1324 			if ( typeof(params.swfFlash) != 'undefined' )
   1325 				mandreelSocketsSwf = params.swfFlash;
   1326 
   1327 			var my_flashvars = "workingFolder=" + encodeURIComponent(mandreelAppWorkingFolder);
   1328 			if ( typeof(params.log) != 'undefined' && params.log == true)
   1329 			  my_flashvars += "&log=true"
   1330 			my_flashvars += "&width=" + params.width;
   1331 			my_flashvars += "&height=" + params.height;
   1332 			my_flashvars += "&swfloader=" + mandreelSocketsSwf;
   1333 
   1334 			if (typeof(params.restore_context) != 'undefined' && params.restore_context == true)
   1335 				my_flashvars += "&restore_context=1";
   1336 
   1337 			if (typeof(params.antialiasing) != 'undefined')
   1338 				my_flashvars += "&antialiasing=" + params.antialiasing;
   1339 
   1340 			if (typeof(params.right_click_enable) != 'undefined' && params.right_click_enable == true)
   1341 				my_flashvars += "&right_click=1";
   1342 
   1343 			if (typeof(params.disable_depth) != 'undefined' && params.disable_depth == true)
   1344 				my_flashvars += "&disable_depth=1";
   1345 
   1346 			var swfname = "mandreelloader.swf";
   1347 			if ( typeof(params.swfPreloader) != 'undefined' && params.swfPreloader == false)
   1348 				swfname = mandreelSocketsSwf;
   1349 
   1350 			var swf = swfobject.createSWF({ data:swfname, width:"100%", height:"100%" }, { menu:"false",allowScriptAccess:"always",allowFullScreen:"true",wmode:"direct",scale:"noscale",salign :"tl",bgcolor:"#000000",flashvars:my_flashvars}, params.flashCanvas);
   1351 			if ( !swf )
   1352 			{
   1353 				mandreelAppStartStateFunc("error","error loading " + swfname);
   1354 				return;
   1355 			}
   1356 			else
   1357 			{
   1358 				if ( mandreelAppStartStateFunc )
   1359 					mandreelAppStartStateFunc("loadingScript","");
   1360 			}
   1361 		}
   1362 		catch(err)
   1363 		{
   1364 			mandreelAppStartStateFunc("error","exception " + err + " while loading " + mandreelSocketsSwf);
   1365 			return;
   1366 		}
   1367 
   1368 		appStartState('loadingScript');
   1369 	}
   1370 
   1371 	if ( mandreelAppPlatform == "nacl" )
   1372 	{
   1373 		mandreelAppWorkingFolder = "data/nacl/";
   1374 
   1375 		// load Fat
   1376 		if ( mandreelAppStartStateFunc )
   1377 			mandreelAppStartStateFunc("loadingFat","");
   1378 		mandreelLoadFat();
   1379 
   1380 	}
   1381 
   1382 	if ( mandreelAppPlatform == "plugin" )
   1383 	{
   1384 		mandreelInitPluginPlatform(params);
   1385 	}
   1386 }
   1387 
   1388 
   1389 ////////////////////////////////////////////
   1390 function MandreelAudioStartedNacl()
   1391 {
   1392 	var helloWorldModule = null;
   1393 	helloWorldModule = Mandreel_document.getElementById('hello_world');
   1394 	helloWorldModule.postMessage('init');
   1395 	var flashElement = Mandreel_document.getElementById('FlashWrapper');
   1396 	if ( flashElement != null )
   1397 		flashElement.style.visibility = "hidden";
   1398 	mandreelAppStartStateFunc("ready",mandreelAppCanvasWidth,mandreelAppCanvasHeight);
   1399 }
   1400 
   1401 ////////////////////////////////////////////
   1402 function _mandreelAppStartReady()
   1403 {
   1404 	if ( mandreelAppPlatform == "nacl" )
   1405 	{
   1406 		wa_initWebAudio();
   1407 		mandreel_webAudio_PreloadAssets();
   1408 	}
   1409 	else
   1410 	{
   1411 		if ( mandreelAppStartStateFunc )
   1412 		{
   1413 			mandreelAppStartRenderWebGL();
   1414 			mandreelAppStartStateFunc("ready",mandreelAppCanvasWidth,mandreelAppCanvasHeight);
   1415 		}
   1416 	}
   1417 }
   1418 ////////////////////////////////////////////
   1419 function _mandreelAppAudioReady()
   1420 {
   1421 	if ( mandreelAppStartStateFunc )
   1422 		mandreelAppStartStateFunc("audioLoaded","");
   1423 
   1424 	if ( mandreelAppUseFlashSockets )
   1425 		mandreel_flash_sockets_load_flash(_mandreelAppStartReady);
   1426 	else
   1427 		_mandreelAppStartReady();
   1428 }
   1429 
   1430 ////////////////////////////////////////////
   1431 function mandreelAppInit()
   1432 {
   1433 	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
   1434 	{
   1435 		global_init(g_stack_pointer+800*1024);
   1436 
   1437 		//Mandreel_TextureAsync_PackBufferData[_mandreel_currentPackTexture] = mandreelBufferPackAsyncTexture;
   1438 		//mandreelBufferPackAsyncTexture = null;
   1439 		var sp = g_stack_pointer+800*1024;
   1440 		heapU32[sp>>2] = mandreelAppCanvasWidth;
   1441 		heapU32[(sp+4)>>2] = mandreelAppCanvasHeight;
   1442 		__mandreel_internal_SetResolution(sp);
   1443 		__mandreel_internal_init(g_stack_pointer+800*1024);
   1444 		__init(g_stack_pointer+800*1024);
   1445 	}
   1446 }
   1447 
   1448 ////////////////////////////////////////////
   1449 function mandreelAppDraw(elapsed)
   1450 {
   1451 	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
   1452 	{
   1453 		if ( mandreelAppPlatform == "canvas" && imandreel_ctx_canvas != null )
   1454 		{
   1455 			var canvas = Mandreel_document.getElementById(mandreelAppCanvasName);
   1456 			imandreel_ctx_canvas.clearRect(0,0,canvas.width,canvas.height);
   1457 		}
   1458 		var sp = g_stack_pointer+800*1024;
   1459 		__mandreel_internal_preupdate(sp);
   1460 		heapU32[sp>>2] = elapsed;
   1461 		__draw(sp);
   1462 		__mandreel_internal_update(sp);
   1463 		__mandreel_process_async_calls();
   1464 	}
   1465 }
   1466 
   1467 ////////////////////////////////////////////
   1468 function mandreelAppMouseWheel(delta)
   1469 {
   1470 	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
   1471 	{
   1472 		var i7 = MandreelLockFrame();
   1473 		heap32[(i7+0)>>2] = delta;
   1474 		__mouseWheelDelta(i7);
   1475 		MandreelUnlockFrame();
   1476 	}
   1477 }
   1478 
   1479 ////////////////////////////////////////////
   1480 function mandreelAppMouseMove(x,y)
   1481 {
   1482 	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
   1483 	{
   1484 		var i7 = MandreelLockFrame();
   1485 		heap32[(i7+0)>>2] = x;
   1486 		heap32[(i7+4)>>2] = y;
   1487 		__mouseMove(i7);
   1488 		MandreelUnlockFrame();
   1489 	}
   1490 }
   1491 
   1492 ////////////////////////////////////////////
   1493 function mandreelAppResize(x,y)
   1494 {
   1495 	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
   1496 	{
   1497 		var i7 = MandreelLockFrame();
   1498 		heap32[(i7+0)>>2] = x;
   1499 		heap32[(i7+4)>>2] = y;
   1500 		__resize(i7);
   1501 		heap32[(i7+0)>>2] = x;
   1502 		heap32[(i7+4)>>2] = y;
   1503 		__mandreel_internal_SetResolution(i7);
   1504 		MandreelUnlockFrame();
   1505 	}
   1506 }
   1507 
   1508 ////////////////////////////////////////////
   1509 function mandreelAppMouseButton(down,x,y)
   1510 {
   1511 	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
   1512 	{
   1513 		var i7 = MandreelLockFrame();
   1514 		heap32[(i7+0)>>2] = down;
   1515 		heap32[(i7+4)>>2] = x;
   1516 		heap32[(i7+8)>>2] = y;
   1517 		__mouseButton(i7);
   1518 		MandreelUnlockFrame();
   1519 	}
   1520 }
   1521 
   1522 ////////////////////////////////////////////
   1523 function mandreelAppMouseDblClick(x,y)
   1524 {
   1525 	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
   1526 	{
   1527 		var i7 = MandreelLockFrame();
   1528 		heap32[(i7+0)>>2] = x;
   1529 		heap32[(i7+4)>>2] = y;
   1530 		__mouseDoubleClick(i7);
   1531 		MandreelUnlockFrame();
   1532 	}
   1533 }
   1534 
   1535 ////////////////////////////////////////////
   1536 function mandreelAppKeyEvent(down,keyId)
   1537 {
   1538 	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
   1539 	{
   1540 		var i7 = MandreelLockFrame();
   1541 		heap32[(i7+0)>>2] = down;
   1542 		heap32[(i7+4)>>2] = keyId;
   1543 		__keyEvent(i7);
   1544 		MandreelUnlockFrame();
   1545 	}
   1546 }
   1547 
   1548 ////////////////////////////////////////////
   1549 function mandreelAppGetPlatform()
   1550 {
   1551 	return mandreelAppPlatform;
   1552 }
   1553 
   1554 ////////////////////////////////////////////
   1555 function mandreelAppGetElementAbsolutePos(elementName)
   1556 {
   1557 	var element = Mandreel_document.getElementById(elementName);
   1558 	var res = new Object();
   1559 	res.x = 0; res.y = 0;
   1560 	if (element !== null)
   1561 	{
   1562 		if (element.getBoundingClientRect)
   1563 		{
   1564 			var viewportElement = Mandreel_document.documentElement;
   1565 			var box = element.getBoundingClientRect();
   1566 			var scrollLeft = viewportElement.scrollLeft;
   1567 			var scrollTop = viewportElement.scrollTop;
   1568 			res.x = box.left + scrollLeft;
   1569 			res.y = box.top + scrollTop;
   1570 		}
   1571 		else
   1572 		{ //for old browsers
   1573 			res.x = element.offsetLeft;
   1574 			res.y = element.offsetTop;
   1575 			var parentNode = element.parentNode;
   1576 			var borderWidth = null;
   1577 			while (offsetParent != null)
   1578 			{
   1579 				res.x += offsetParent.offsetLeft;
   1580 				res.y += offsetParent.offsetTop;
   1581 				var parentTagName = offsetParent.tagName.toLowerCase();
   1582 				if ((__isIEOld && parentTagName != "table") ||
   1583 					((__isFireFoxNew || __isChrome) &&
   1584 						parentTagName == "td"))
   1585 				{
   1586 					borderWidth = kGetBorderWidth(offsetParent);
   1587 					res.x += borderWidth.left;
   1588 					res.y += borderWidth.top;
   1589 				}
   1590 
   1591 				if (offsetParent != Mandreel_document.body &&
   1592 				offsetParent != Mandreel_document.documentElement)
   1593 				{
   1594 					res.x -= offsetParent.scrollLeft;
   1595 					res.y -= offsetParent.scrollTop;
   1596 				}
   1597 
   1598 				//next lines are necessary to fix the problem
   1599 				//with offsetParent
   1600 				if (!__isIE && !__isOperaOld || __isIENew)
   1601 				{
   1602 					while (offsetParent != parentNode &&
   1603 						parentNode !== null) {
   1604 						res.x -= parentNode.scrollLeft;
   1605 						res.y -= parentNode.scrollTop;
   1606 						if (__isFireFoxOld || __isWebKit)
   1607 						{
   1608 						    borderWidth =
   1609 						     kGetBorderWidth(parentNode);
   1610 						    res.x += borderWidth.left;
   1611 						    res.y += borderWidth.top;
   1612 						}
   1613 						parentNode = parentNode.parentNode;
   1614 					}
   1615 				}
   1616 
   1617 				parentNode = offsetParent.parentNode;
   1618 				offsetParent = offsetParent.offsetParent;
   1619 			}
   1620 		}
   1621 	}
   1622 	return res;
   1623 }
   1624 function __getIEVersion()
   1625 {
   1626 	var rv = -1; // Return value assumes failure.
   1627 	if (navigator.appName == 'Microsoft Internet Explorer')
   1628 	{
   1629 		var ua = navigator.userAgent;
   1630 		var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
   1631 		if (re.exec(ua) != null)
   1632 			rv = parseFloat(RegExp.$1);
   1633 	}
   1634 	return rv;
   1635 }
   1636 function __getOperaVersion()
   1637 {
   1638 	var rv = 0; // Default value
   1639 	if (Mandreel_window.opera)
   1640 	{
   1641 		var sver = Mandreel_window.opera.version();
   1642 		rv = parseFloat(sver);
   1643 	}
   1644 	return rv;
   1645 }
   1646 /* The following code was removed for benchmarking:
   1647 var __userAgent = navigator.userAgent;
   1648 var __isIE =  navigator.appVersion.match(/MSIE/) != null;
   1649 var __IEVersion = __getIEVersion();
   1650 var __isIENew = __isIE && __IEVersion >= 8;
   1651 var __isIEOld = __isIE && !__isIENew;
   1652 var __isFireFox = __userAgent.match(/firefox/i) != null;
   1653 var __isFireFoxOld = __isFireFox && ((__userAgent.match(/firefox\/2./i) != null) || (__userAgent.match(/firefox\/1./i) != null));
   1654 var __isFireFoxNew = __isFireFox && !__isFireFoxOld;
   1655 var __isWebKit =  navigator.appVersion.match(/WebKit/) != null;
   1656 var __isChrome =  navigator.appVersion.match(/Chrome/) != null;
   1657 var __isOpera =  Mandreel_window.opera != null;
   1658 var __operaVersion = __getOperaVersion();
   1659 var __isOperaOld = __isOpera && (__operaVersion < 10); */
   1660 function __parseBorderWidth(width)
   1661 {
   1662 	var res = 0;
   1663 	if (typeof(width) == "string" && width != null && width != "" )
   1664 	{
   1665 		var p = width.indexOf("px");
   1666 		if (p >= 0)
   1667 		{
   1668 			res = parseInt(width.substring(0, p));
   1669 		}
   1670 		else
   1671 		{
   1672 			//do not know how to calculate other values (such as 0.5em or 0.1cm) correctly now so just set the width to 1 pixel
   1673 			res = 1;
   1674 		}
   1675 	}
   1676 	return res;
   1677 }
   1678 function __getBorderWidth(element)
   1679 {
   1680 	var res = new Object();
   1681 	res.left = 0; res.top = 0; res.right = 0; res.bottom = 0;
   1682 	if (Mandreel_window.getComputedStyle)
   1683 	{
   1684 		//for Firefox
   1685 		var elStyle = Mandreel_window.getComputedStyle(element, null);
   1686 		res.left = parseInt(elStyle.borderLeftWidth.slice(0, -2));
   1687 		res.top = parseInt(elStyle.borderTopWidth.slice(0, -2));
   1688 		res.right = parseInt(elStyle.borderRightWidth.slice(0, -2));
   1689 		res.bottom = parseInt(elStyle.borderBottomWidth.slice(0, -2));
   1690 	}
   1691 	else
   1692 	{
   1693 		//for other browsers
   1694 		res.left = __parseBorderWidth(element.style.borderLeftWidth);
   1695 		res.top = __parseBorderWidth(element.style.borderTopWidth);
   1696 		res.right = __parseBorderWidth(element.style.borderRightWidth);
   1697 		res.bottom = __parseBorderWidth(element.style.borderBottomWidth);
   1698 	}
   1699 	return res;
   1700 }
   1701 
   1702 
   1703 ////////////////////////////////////////////
   1704 // WebGL
   1705 ////////////////////////////////////////////
   1706 	var imandreel_gl = null;
   1707 	var imandreel_ctx_canvas = null;
   1708 	var imandreel_is_ready = 0;
   1709 	var imandreel_oldTime = Date_now();
   1710 
   1711 	function mandreel_wheel(event) { imandreel_onMouseWheel(event);event.preventDefault(); event.returnValue=false; }
   1712 
   1713 	////////////////////////////////////////////
   1714 	function mandreelAppStartRenderWebGL()
   1715 	{
   1716 /* The following code was removed for benchmarking:
   1717 		var canvas = document.getElementById(mandreelAppCanvasName);
   1718 
   1719 		mandreelAppCanvasWidth = canvas.width;
   1720 		mandreelAppCanvasHeight = canvas.height;
   1721 
   1722 		// Register event handlers
   1723 		if(window.addEventListener){ window.addEventListener('DOMMouseScroll',mandreel_wheel,false); }  window.onmousewheel=document.onmousewheel=mandreel_wheel;
   1724 
   1725 		window.addEventListener('mousedown',imandreel_onMouseDown,false);
   1726 		window.addEventListener('mouseup',imandreel_onMouseUp,false);
   1727 		window.addEventListener('mousemove',imandreel_onMouseMove,false);
   1728 		window.addEventListener('dblclick',imandreel_onMouseDblClick,false);
   1729 
   1730 		document.body.oncontextmenu = function() { return false;};
   1731 
   1732 		var canvasDiv = document.getElementById(mandreelAppCanvasDiv);
   1733 		canvasDiv.addEventListener('keydown',imandreel_onKeyDown,false);
   1734 		canvasDiv.addEventListener('keyup',imandreel_onKeyUp,false);
   1735 		canvasDiv.focus();*/
   1736 
   1737 		// Call mandreel app init funtion (__init())
   1738 		mandreelAppInit();
   1739 
   1740 		// Start rendering
   1741 		imandreel_is_ready = 1;
   1742 		//imandreel_render();
   1743 	}
   1744 
   1745 	////////////////////////////////////////////
   1746 	function imandreel_render()
   1747 	{
   1748 		if( ABORT )
   1749 			return;
   1750 
   1751 		var canvas = Mandreel_document.getElementById(mandreelAppCanvasName);
   1752 		WebGLUtils.requestAnimationFrame(canvas, imandreel_render);
   1753 
   1754 
   1755 		// Reshape
   1756 		if (canvas.clientWidth != mandreelAppCanvasWidth || canvas.clientHeight != mandreelAppCanvasHeight)
   1757 		{
   1758 			mandreelAppCanvasWidth = canvas.clientWidth;
   1759 			mandreelAppCanvasHeight = canvas.clientHeight;
   1760 			imandreel_gl.viewport(0, 0, mandreelAppCanvasWidth, mandreelAppCanvasHeight);
   1761 		}
   1762 
   1763 		// Set the focus to the canvas div
   1764 		if (mandreelAppForceFocus)
   1765 		{
   1766 			var canvasDiv = Mandreel_document.getElementById(mandreelAppCanvasDiv);
   1767 			canvasDiv.focus();
   1768 		}
   1769 
   1770 		// Call mandreel app draw funtion (__draw())
   1771 		var nowTime = Date_now();
   1772 		if (!g_mandreel_frame_locked)
   1773 		{
   1774 			g_mandreel_frame_inframe = true;
   1775 			if (!_imandreel_pause_game)
   1776 				mandreelAppDraw(nowTime-imandreel_oldTime);
   1777 			g_mandreel_frame_inframe = false;
   1778 		}
   1779 		imandreel_oldTime = nowTime;
   1780 	}
   1781 
   1782 	function render()
   1783 	{
   1784 		// Call mandreel app draw funtion (__draw())
   1785 		var nowTime = Date_now();
   1786 		if (!g_mandreel_frame_locked)
   1787 		{
   1788 			g_mandreel_frame_inframe = true;
   1789 			if (!_imandreel_pause_game)
   1790 				mandreelAppDraw(nowTime-imandreel_oldTime);
   1791 			g_mandreel_frame_inframe = false;
   1792 		}
   1793 		imandreel_oldTime = nowTime;
   1794 	}
   1795 
   1796 	var imandreel_last_movex = 0;
   1797 	var imandreel_last_movey = 0;
   1798 
   1799 	////////////////////////////////////////////
   1800 	function imandreel_onMouseMove(e)
   1801 	{
   1802 		if (!imandreel_is_ready)
   1803 			return;
   1804 
   1805 		if (_imandreel_pause_game)
   1806 			return;
   1807 
   1808 		var pos = mandreelAppGetElementAbsolutePos(mandreelAppCanvasName);
   1809 		var setX = e.clientX - pos.x;
   1810 		var setY = e.clientY - pos.y;
   1811 
   1812 		  if(navigator.pointer && navigator.pointer.isLocked) {
   1813             var deltaX = event.movementX || event.webkitMovementX || event.mozMovementX || 0;
   1814             var deltaY = event.movementY || event.webkitMovementY || event.mozMovementX || 0;
   1815 
   1816 			setX = imandreel_last_movex+deltaX;
   1817 			setY = imandreel_last_movey+deltaY;
   1818 			}
   1819 
   1820 
   1821 		imandreel_last_movex = setX;
   1822 		imandreel_last_movey = setY;
   1823 		mandreelAppMouseMove(setX,setY);
   1824 	}
   1825 
   1826 	////////////////////////////////////////////
   1827 	function imandreel_onMouseDblClick(e)
   1828 	{
   1829 		if (!imandreel_is_ready)
   1830 			return;
   1831 
   1832 		if (_imandreel_pause_game)
   1833 			return;
   1834 
   1835 		var pos = mandreelAppGetElementAbsolutePos(mandreelAppCanvasName);
   1836 		var setX = e.clientX - pos.x;
   1837 		var setY = e.clientY - pos.y;
   1838 		mandreelAppMouseDblClick(setX,setY);
   1839 	}
   1840 
   1841 	////////////////////////////////////////////
   1842 	var mandreel_mouse_down = false;
   1843 	var mandreel_rmouse_down = false;
   1844 	function imandreel_onMouseDown(e)
   1845 	{
   1846 		if (!imandreel_is_ready)
   1847 			return;
   1848 
   1849 		if (_imandreel_pause_game)
   1850 			return;
   1851 
   1852 		var rightclick;
   1853 		if (!e) var e = Mandreel_window.event;
   1854 		if (e.which) rightclick = (e.which == 3);
   1855 		else if (e.button) rightclick = (e.button == 2);
   1856 
   1857 		var pos = mandreelAppGetElementAbsolutePos(mandreelAppCanvasName);
   1858 		var setX = e.clientX - pos.x;
   1859 		var setY = e.clientY - pos.y;
   1860 
   1861 		if (!rightclick)
   1862 		{
   1863 			if (mandreel_mouse_down)
   1864 				return;
   1865 
   1866 			mandreel_mouse_down = true;
   1867 			mandreelAppMouseButton(1,setX,setY);
   1868 		}
   1869 		else
   1870 		{
   1871 			if (mandreel_rmouse_down)
   1872 				return;
   1873 
   1874 			mandreel_rmouse_down = true;
   1875 			mandreelAppMouseButton(3,setX,setY);
   1876 		}
   1877 	}
   1878 
   1879 	////////////////////////////////////////////
   1880 	function imandreel_onMouseUp(e)
   1881 	{
   1882 		if (!imandreel_is_ready)
   1883 			return;
   1884 
   1885 		if (_imandreel_pause_game)
   1886 			return;
   1887 
   1888 		var rightclick;
   1889 		if (!e) var e = Mandreel_window.event;
   1890 		if (e.which) rightclick = (e.which == 3);
   1891 		else if (e.button) rightclick = (e.button == 2);
   1892 
   1893 		var pos = mandreelAppGetElementAbsolutePos(mandreelAppCanvasName);
   1894 		var setX = e.clientX - pos.x;
   1895 		var setY = e.clientY - pos.y;
   1896 
   1897 
   1898 		if (!rightclick)
   1899 		{
   1900 			if (mandreel_mouse_down == false)
   1901 				return;
   1902 
   1903 			mandreel_mouse_down = false;
   1904 			mandreelAppMouseButton(0,setX,setY);
   1905 		}
   1906 		else
   1907 		{
   1908 			if (mandreel_rmouse_down == false)
   1909 				return;
   1910 
   1911 			mandreel_rmouse_down = false;
   1912 			mandreelAppMouseButton(2,setX,setY);
   1913 		}
   1914 	}
   1915 
   1916 	////////////////////////////////////////////
   1917 	function imandreel_onMouseWheel(e)
   1918 	{
   1919 		if (!imandreel_is_ready)
   1920 			return;
   1921 
   1922 		if (_imandreel_pause_game)
   1923 			return;
   1924 
   1925 		mandreelAppMouseWheel(e.wheelDelta);
   1926 	}
   1927 
   1928 	////////////////////////////////////////////
   1929 	function imandreel_onKeyUp(e)
   1930 	{
   1931 		if (!imandreel_is_ready)
   1932 			return;
   1933 
   1934 		if (_imandreel_pause_game)
   1935 			return;
   1936 
   1937 		var KeyID = e.keyCode;
   1938 		mandreelAppKeyEvent(0,KeyID);
   1939 	}
   1940 
   1941 	////////////////////////////////////////////
   1942 	Mandreel_window.onkeydown = function(e)
   1943 	{
   1944 		if (mandreelDisableSpaceKey == false && e.keyCode == 32)
   1945 			return;
   1946 		return !(e.keyCode == 32 || e.keyCode == 9);
   1947 	};
   1948 
   1949 	////////////////////////////////////////////
   1950 	function imandreel_onKeyDown(e)
   1951 	{
   1952 		if (e.which === 8) // disable back button on browser
   1953         {
   1954 	        e.preventDefault();
   1955 	    }
   1956 		if (!imandreel_is_ready)
   1957 			return;
   1958 
   1959 		if (_imandreel_pause_game)
   1960 			return;
   1961 
   1962 		var KeyID = e.keyCode;
   1963 		mandreelAppKeyEvent(1,KeyID);
   1964 	}
   1965 
   1966 
   1967 ////////////////////////////////////////////
   1968 // Flash
   1969 ////////////////////////////////////////////
   1970 
   1971 (function(){
   1972 		try {
   1973 			// Disabling SWFObject's Autohide feature
   1974 			if (typeof swfobject.switchOffAutoHideShow === "function") {
   1975 				swfobject.switchOffAutoHideShow();
   1976 			}
   1977 		} catch(e) {}
   1978 	})();
   1979 
   1980 var imandreel_flash_global_sp = 0;
   1981 var imandreel_flash_global_sp2 = 0;
   1982 var imandreel_flash_current_sp = 0;
   1983 
   1984 function MandreelInterSwfLoaded2()
   1985 {
   1986 }
   1987 function MandreelInterSwfLoaded()
   1988 {
   1989 	appStartState('scriptLoaded');
   1990 	var flashMovie = swfobject.getObjectById(mandreelAppCanvasDiv)
   1991 	dump(flashMovie.width);
   1992 	flashMovie.MandreelInit();
   1993 
   1994 	imandreel_flash_global_sp = MandreelInterGetSWF().MandreelInterGetGlobalStack();
   1995 	imandreel_flash_global_sp2 = MandreelInterGetSWF().MandreelInterGetGlobalStack2();
   1996 	if ( mandreelAppStartStateFunc )
   1997 		mandreelAppStartStateFunc("ready",mandreelAppCanvasWidth,mandreelAppCanvasHeight);
   1998 }
   1999 
   2000 
   2001 
   2002 var g_mandreel_swf = null;
   2003 
   2004 function MandreelInterGetSWF()
   2005 {
   2006 	if (g_mandreel_swf)
   2007 		return g_mandreel_swf;
   2008 
   2009 	g_mandreel_swf = swfobject.getObjectById(mandreelAppCanvasDiv)
   2010 	return g_mandreel_swf;
   2011 }
   2012 
   2013 function MandreelInterWriteInt(ptr, value)
   2014 {
   2015 	MandreelInterGetSWF().MandreelInterWriteInt(ptr,value);
   2016 }
   2017 
   2018 function MandreelInterWriteFloat(ptr, value)
   2019 {
   2020 	MandreelInterGetSWF().MandreelInterWriteFloat(ptr,value);
   2021 }
   2022 
   2023 function MandreelInterWriteString(ptr, value)
   2024 {
   2025 	MandreelInterGetSWF().MandreelInterWriteString(ptr,value);
   2026 }
   2027 
   2028 function MandreelInterWriteWString(ptr, value)
   2029 {
   2030 	MandreelInterGetSWF().MandreelInterWriteWString(ptr,value);
   2031 }
   2032 
   2033 function MandreelInterCallFunctionRaw(sp, func_name, returnType)
   2034 {
   2035 	return MandreelInterGetSWF().MandreelInterCallFunctionRaw(sp,func_name,returnType);
   2036 }
   2037 
   2038 
   2039 function assert(condition, _text) {
   2040 //console.assert(condition, _text);
   2041     if (!condition) {
   2042       var text = "Assertion failed: " + _text;
   2043       alert(text + ':\n' + (new Error).stack);
   2044       ABORT = true;
   2045       throw "Assertion: " + text;
   2046     }
   2047   }
   2048 
   2049 
   2050 
   2051 function MandreelLockFrame()
   2052 {
   2053 	MandreelInterGetSWF().MandreelLockFrame();
   2054 
   2055 	imandreel_flash_current_sp += 300*1024;
   2056 
   2057 	assert(imandreel_flash_current_sp<1024*1024);
   2058 
   2059 	return imandreel_flash_current_sp;
   2060 }
   2061 
   2062 function MandreelPause()
   2063 {
   2064 	MandreelInterGetSWF().MandreelPause();
   2065 }
   2066 
   2067 function MandreelResume()
   2068 {
   2069 	MandreelInterGetSWF().MandreelResume();
   2070 }
   2071 
   2072 
   2073 function MandreelUnlockFrame()
   2074 {
   2075 	imandreel_flash_current_sp -= 300*1024;
   2076 	MandreelInterGetSWF().MandreelUnlockFrame();
   2077 }
   2078 
   2079 
   2080 
   2081 function MandreelInterCallFunctionAsync(func_name,param)
   2082 {
   2083 	return MandreelInterGetSWF().MandreelInterCallFunctionAsync(func_name, param);
   2084 }
   2085 
   2086 
   2087 function MandreelInterCallFunction(returnType,func_name)
   2088 {
   2089 	var size_params = 0;
   2090 
   2091 	var i;
   2092 	var num_params = (arguments.length-2)/2;
   2093 	num_params|=0;
   2094 	for (i=2;i<num_params*2+2;i+=2)
   2095 	{
   2096 		var type = arguments[i];
   2097 
   2098 		var size_arg = 0;
   2099 		switch(type)
   2100 		{
   2101 			case 'int':
   2102 				size_arg = 4;
   2103 				break;
   2104 			case 'float':
   2105 				size_arg = 4;
   2106 				break;
   2107 			case 'string':
   2108 				size_arg = 4;
   2109 				size_arg += ((arguments[i+1].length + 4) & 0xfffffffc);
   2110 				break;
   2111 			case 'wstring':
   2112 				size_arg = 4;
   2113 				size_arg += ((arguments[i+1].length*2 + 4) & 0xfffffffc);
   2114 				break;
   2115 			default:
   2116 				assert(false);
   2117 		}
   2118 
   2119 		size_params += size_arg;
   2120 	}
   2121 
   2122 	// stack always 8 byte aligned
   2123 	size_params=((size_params+7)& 0xfffffff8);
   2124 
   2125 	var sp = 0;
   2126 
   2127 	if (i<(arguments.length))
   2128 		sp = arguments[i];
   2129 	else
   2130 	{
   2131 		assert(false);
   2132 	}
   2133 
   2134 
   2135 	sp-=size_params;
   2136 
   2137 	MandreelLockFrame();
   2138 
   2139 	var offset = 0;
   2140 	var ptr_data = num_params*4+sp;
   2141     for (i=2;i<num_params*2+2;i+=2)
   2142 	{
   2143 		var type = arguments[i];
   2144 
   2145 
   2146 		var size_arg = 0;
   2147 		switch(type)
   2148 		{
   2149 			case 'int':
   2150 				MandreelInterWriteInt((sp+offset),arguments[i+1]);
   2151 				break;
   2152 			case 'float':
   2153 				MandreelInterWriteFloat((sp+offset),arguments[i+1]);
   2154 				break;
   2155 			case 'string':
   2156 				{
   2157 					MandreelInterWriteInt((sp+offset),ptr_data);
   2158 					var string = arguments[i+1];
   2159 					MandreelInterWriteString(ptr_data,string);
   2160 
   2161 					ptr_data += ((string.length + 4) & 0xfffffffc);
   2162 				}
   2163 				break;
   2164 			case 'wstring':
   2165 				{
   2166 					MandreelInterWriteInt((sp+offset),ptr_data);
   2167 					var string = arguments[i+1];
   2168 					MandreelInterWriteWString(ptr_data,string);
   2169 
   2170 					ptr_data += ((string.length*2 + 4) & 0xfffffffc);
   2171 				}
   2172 				break;
   2173 			default:
   2174 				assert(false);
   2175 		}
   2176 		offset+=4;
   2177 	}
   2178 
   2179 	return_value = MandreelInterCallFunctionRaw(sp, func_name, returnType);
   2180 
   2181 	MandreelUnlockFrame();
   2182 
   2183 	if (returnType == 'int')
   2184 		return parseInt(return_value);
   2185 	else if (returnType == 'float')
   2186 		return parseFloat(return_value);
   2187 
   2188 	return;
   2189 }
   2190 
   2191 
   2192 
   2193 // file system
   2194 
   2195 var g_mandreel_timestamp_fs = 0;
   2196 var g_mandreel_fs = null;
   2197 
   2198 function onMandreelQuotaOk(fs)
   2199 {
   2200 	g_mandreel_fs = fs;
   2201 	dump('onMandreelQuotaOk');
   2202 }
   2203 
   2204 
   2205 function MandreelFsErrorHandler(e) {
   2206   var msg = '';
   2207 
   2208   switch (e.code) {
   2209     case FileError.QUOTA_EXCEEDED_ERR:
   2210       msg = 'QUOTA_EXCEEDED_ERR';
   2211       break;
   2212     case FileError.NOT_FOUND_ERR:
   2213       msg = 'NOT_FOUND_ERR';
   2214       break;
   2215     case FileError.SECURITY_ERR:
   2216       msg = 'SECURITY_ERR';
   2217       break;
   2218     case FileError.INVALID_MODIFICATION_ERR:
   2219       msg = 'INVALID_MODIFICATION_ERR';
   2220       break;
   2221     case FileError.INVALID_STATE_ERR:
   2222       msg = 'INVALID_STATE_ERR';
   2223       break;
   2224     default:
   2225       msg = 'Unknown Error';
   2226       break;
   2227   };
   2228 
   2229   dump('Error: ' + msg);
   2230   dump(e);
   2231 }
   2232 
   2233 var indexedDB = Mandreel_window.indexedDB || Mandreel_window.webkitIndexedDB ||
   2234                 Mandreel_window.mozIndexedDB;
   2235 
   2236 if ('webkitIndexedDB' in Mandreel_window) {
   2237   Mandreel_window.IDBTransaction = Mandreel_window.webkitIDBTransaction;
   2238   Mandreel_window.IDBKeyRange = Mandreel_window.webkitIDBKeyRange;
   2239 }
   2240 
   2241 
   2242 var mandreel_indexedDB = {};
   2243 mandreel_indexedDB.db = null;
   2244 mandreel_indexedDB.callback_init = false;
   2245 
   2246 mandreel_indexedDB.onerror = function(e) {
   2247   dump(e);
   2248 };
   2249 
   2250 mandreel_indexedDB.init = function(callback)
   2251 {
   2252  try {
   2253 	var request = indexedDB.open('my_cache', 2);
   2254 
   2255 	request.onerror = function(event) {
   2256 		callback(false);
   2257 		};
   2258 	request.onupgradeneeded = function(event) {
   2259 	dump('onupgradeneeded\n');
   2260 	mandreel_indexedDB.db = event.target.result;
   2261     var db = mandreel_indexedDB.db;
   2262 	var objectStore = db.createObjectStore("cache",{keyPath: "fileName"});
   2263 	}
   2264 
   2265   request.onsuccess = function(event) {
   2266   dump('onsuccess\n');
   2267     mandreel_indexedDB.db = event.target.result;
   2268     	callback(true);
   2269 
   2270   };
   2271   }
   2272   catch(e)
   2273   {
   2274 	callback(false);
   2275   }
   2276 
   2277 }
   2278 
   2279 function mandreel_fs_init(callback, size_bytes, url_time)
   2280 {
   2281 
   2282 	g_mandreel_timestamp_fs = 99999999999999;
   2283 
   2284 
   2285 
   2286 
   2287 	var aux = null;
   2288 	try	{ aux = webkitStorageInfo; } catch(err) { aux = null; }
   2289 	if (aux == null)
   2290 	{
   2291 		//callback(false);
   2292 
   2293 		var time_request = new XMLHttpRequest();
   2294 	time_request.open('GET',url_time);
   2295 	time_request.onreadystatechange = function()
   2296 	{
   2297 		if (time_request.readyState==4)
   2298 		{
   2299 			if (time_request.status==200 || time_request.status==0)
   2300 			{
   2301 
   2302 				if (time_request.responseText)
   2303 				{
   2304 					g_mandreel_timestamp_fs = parseFloat(time_request.responseText);
   2305 					dump('mandreel_init_fs time ' + g_mandreel_timestamp_fs);
   2306 				}
   2307 			}
   2308 
   2309 			mandreel_indexedDB.init(callback);
   2310 		}
   2311 	}
   2312 	time_request.send();
   2313 
   2314 
   2315 		return;
   2316 	}
   2317 
   2318 	webkitStorageInfo.requestQuota(
   2319 		webkitStorageInfo.PERSISTENT ,   // or PERSISTENT
   2320 		size_bytes,
   2321 		function(bytes) {  dump('request quota succeed');},
   2322 		function () { dump('request quota failed');} );
   2323 
   2324 
   2325 //	g_mandreel_timestamp_fs =0;
   2326 
   2327 	var time_request = new XMLHttpRequest();
   2328 	time_request.open('GET',url_time);
   2329 	time_request.onreadystatechange = function()
   2330 	{
   2331 		if (time_request.readyState==4)
   2332 		{
   2333 			if (time_request.status==200 || time_request.status==0)
   2334 			{
   2335 
   2336 				if (time_request.responseText)
   2337 				{
   2338 					g_mandreel_timestamp_fs = parseFloat(time_request.responseText);
   2339 					dump('mandreel_init_fs time ' + g_mandreel_timestamp_fs);
   2340 				}
   2341 			}
   2342 
   2343 			var my_requestFileSystem  = Mandreel_window.requestFileSystem || Mandreel_window.webkitRequestFileSystem;
   2344 
   2345 			my_requestFileSystem(Mandreel_window.PERSISTENT, size_bytes,
   2346 				function(result)
   2347 				{
   2348 					onMandreelQuotaOk(result);
   2349 
   2350 
   2351 					if (callback)
   2352 						Mandreel_setTimeout(callback, 100, true);
   2353 				} , function(e) { MandreelFsErrorHandler(e); if (callback) callback(false); } );
   2354 		}
   2355 	}
   2356 	time_request.send();
   2357 }
   2358 
   2359 
   2360 mandreel_indexedDB.load = function(file_name, callback)
   2361 {
   2362 	var db = mandreel_indexedDB.db;
   2363 	var trans = db.transaction(["cache"]);
   2364 	var store = trans.objectStore("cache");
   2365 
   2366 	var key = file_name;
   2367 
   2368 	 var getReq = store.get(key);
   2369 	   getReq.onsuccess = function (ev) {
   2370 			if (getReq.result)
   2371 	{
   2372 	dump('chanka ' + g_mandreel_timestamp_fs + ' ' + getReq.result.timeStamp + '\n');
   2373 				if (getReq.result.timeStamp>=g_mandreel_timestamp_fs)
   2374 					callback(getReq.result.data);
   2375 				else
   2376 					callback(null);
   2377 			}
   2378 			else
   2379 				callback(null);
   2380 	   }
   2381 	   getReq.onerror = function (ev) {
   2382 		   console.log("index.get failed. Error: " + ev.message);
   2383 	   }
   2384 }
   2385 
   2386 function mandreel_fs_get_url(file_name, callback)
   2387 {
   2388 	if (mandreel_indexedDB.db)
   2389 	{
   2390 		callback(null);
   2391 		return;
   2392 	}
   2393 
   2394 
   2395 	if (g_mandreel_fs == null)
   2396 	{
   2397 		callback(null);
   2398 		return;
   2399 	}
   2400 
   2401 	g_mandreel_fs.root.getFile(file_name, {}, function(fileEntry) {
   2402 
   2403 	fileEntry.getMetadata(function(metaData){
   2404 	var my_seconds = metaData.modificationTime.getTime()/1000;
   2405 
   2406 	if (g_mandreel_timestamp_fs>my_seconds)
   2407 	{
   2408 		callback(null);
   2409 	}
   2410 	else
   2411 	{
   2412 		//alert('mandreel_fscachefile2');
   2413 
   2414 
   2415 		if (Mandreel_window.localStorage.getItem(mandreel_fs_get_key(file_name)) != null)
   2416 			callback(fileEntry.toURL());
   2417 		else
   2418 			callback(null);
   2419 
   2420 	}
   2421 
   2422 
   2423 		}, MandreelFsErrorHandler);
   2424 
   2425 
   2426   }, function(error) {callback(null);});
   2427 
   2428 	 return;
   2429 
   2430 }
   2431 
   2432 function mandreel_fs_load_binary(file_name, callback)
   2433  {
   2434 	if (mandreel_indexedDB.db)
   2435 	{
   2436 		mandreel_indexedDB.load(file_name,callback);
   2437 		return;
   2438 	}
   2439 
   2440 
   2441 	if (g_mandreel_fs == null)
   2442 	{
   2443 		callback(null);
   2444 		return;
   2445 	}
   2446 
   2447 
   2448 	g_mandreel_fs.root.getFile(file_name, {}, function(fileEntry) {
   2449 
   2450 	fileEntry.getMetadata(function(metaData){
   2451 	var my_seconds = metaData.modificationTime.getTime()/1000;
   2452 
   2453 	if (g_mandreel_timestamp_fs>my_seconds)
   2454 	{
   2455 		dump('mandreel_fscachefile1');
   2456 		Mandreel_window.localStorage.removeItem(mandreel_fs_get_key(file_name));
   2457 		fileEntry.remove(function() {
   2458 				callback(null);
   2459 			}, MandreelFsErrorHandler);
   2460 
   2461 	}
   2462 	else
   2463 	{
   2464 		//alert('mandreel_fscachefile2');
   2465 		dump('mandreel_fscachefile2 ' + my_seconds);
   2466 
   2467 		fileEntry.file(function(file) {
   2468 
   2469 				var reader = new FileReader();
   2470 
   2471 
   2472 			   reader.onloadend = function(e) {
   2473 
   2474 				   if (this.result.byteLength && Mandreel_window.localStorage.getItem(mandreel_fs_get_key(file_name)) != null)
   2475 				   {
   2476 						dump('mandreel_fs_loadFile ' + file_name);
   2477 						callback(this.result);
   2478 					}
   2479 					else
   2480 						callback(null);
   2481 
   2482 			   };
   2483 
   2484 
   2485 				 reader.readAsArrayBuffer(file);
   2486 
   2487 
   2488 			}, MandreelFsErrorHandler);
   2489 
   2490 	}
   2491 
   2492 
   2493 		}, MandreelFsErrorHandler);
   2494 
   2495 
   2496   }, function(error) {dump('mandreel_fscachefile3');	callback(null);});
   2497 
   2498 	 return;
   2499  }
   2500 
   2501 
   2502  mandreel_indexedDB.save = function(file_name, data)
   2503 {
   2504 	var db = mandreel_indexedDB.db;
   2505 
   2506 
   2507   var trans = db.transaction(["cache"], IDBTransaction.READ_WRITE);
   2508   var store = trans.objectStore("cache");
   2509   var request = store.put({
   2510     "data": data,
   2511 	"timeStamp" : Date_now()/1000,
   2512     "fileName" : file_name
   2513   });
   2514 
   2515   request.onsuccess = function(e) {
   2516     // Re-render all the todo's
   2517    // html5rocks.indexedDB.getAllTodoItems();
   2518    dump('mandreel_indexedDB.save ok ');
   2519   };
   2520 
   2521   request.onerror = function(e) {
   2522     dump('mandreel_indexedDB.save onerror ' + file_name);
   2523 	dump(e);
   2524   };
   2525 }
   2526 
   2527 function mandreel_fs_get_key(name)
   2528 {
   2529 	return 'mandreel_fs_' + name;
   2530 }
   2531 
   2532 function mandreel_is_filesystem()
   2533 {
   2534 	if (mandreel_indexedDB.db)
   2535 		return false;
   2536 
   2537 	if (!g_mandreel_fs)
   2538 		return false;
   2539 
   2540 	return true;
   2541 }
   2542 
   2543 function mandreel_is_indexeddb()
   2544 {
   2545 	if (mandreel_indexedDB.db)
   2546 		return true;
   2547 
   2548 	return false;
   2549 }
   2550 
   2551  function mandreel_fs_saveFile(name, my_arrayBuffer)
   2552 {
   2553 	if (mandreel_indexedDB.db)
   2554 	{
   2555 		mandreel_indexedDB.save(name,my_arrayBuffer);
   2556 		return;
   2557 	}
   2558 
   2559 	if (!g_mandreel_fs)
   2560 		return;
   2561 
   2562 	Mandreel_window.localStorage.removeItem(mandreel_fs_get_key(name));
   2563 	g_mandreel_fs.root.getFile(name, {create: true}, function(fileEntry) {
   2564 
   2565     // Create a FileWriter object for our FileEntry (log.txt).
   2566     fileEntry.createWriter(function(fileWriter) {
   2567 
   2568       fileWriter.onwriteend = function(e) {
   2569 		Mandreel_window.localStorage.setItem(mandreel_fs_get_key(name),'valid');
   2570         dump('Write completed.');
   2571       };
   2572 
   2573       fileWriter.onerror = function(e) {
   2574         dump('Write failed: ' + e.toString());
   2575       };
   2576 
   2577 	  var my_BlobBuilder = Mandreel_window.MozBlobBuilder || Mandreel_window.WebKitBlobBuilder || Mandreel_window.BlobBuilder;
   2578 
   2579 	  var bb = new my_BlobBuilder(); // Note: window.WebKitBlobBuilder in Chrome 12.
   2580       bb.append(my_arrayBuffer);
   2581       fileWriter.write(bb.getBlob('text/plain'));
   2582 
   2583 
   2584 
   2585     }, MandreelFsErrorHandler);
   2586 
   2587   }, MandreelFsErrorHandler);
   2588 }
   2589 
   2590 
   2591 function mandreel_fs_load_text(file_name, callback)
   2592  {
   2593 
   2594 	if (mandreel_indexedDB.db)
   2595 	{
   2596 		mandreel_indexedDB.load(file_name,callback);
   2597 		return;
   2598 	}
   2599 
   2600 	if (g_mandreel_fs == null)
   2601 	{
   2602 		callback(null);
   2603 		return;
   2604 	}
   2605 
   2606 
   2607 	g_mandreel_fs.root.getFile(file_name, {}, function(fileEntry) {
   2608 
   2609 	fileEntry.getMetadata(function(metaData){
   2610 	var my_seconds = metaData.modificationTime.getTime()/1000;
   2611 
   2612 	if (g_mandreel_timestamp_fs>my_seconds)
   2613 	{
   2614 		dump('mandreel_fscachefile1');
   2615 		Mandreel_window.localStorage.removeItem(mandreel_fs_get_key(file_name));
   2616 		fileEntry.remove(function() {
   2617 				callback(null);
   2618 			}, MandreelFsErrorHandler);
   2619 
   2620 	}
   2621 	else
   2622 	{
   2623 		//alert('mandreel_fscachefile2');
   2624 		dump('mandreel_fscachefile2 ' + my_seconds);
   2625 
   2626 		fileEntry.file(function(file) {
   2627 
   2628 				var reader = new FileReader();
   2629 
   2630 
   2631 			   reader.onloadend = function(e) {
   2632 
   2633 
   2634 				   if (this.result.length && Mandreel_window.localStorage.getItem(mandreel_fs_get_key(file_name)) != null)
   2635 				   {
   2636 						dump('mandreel_fs_loadFile ' + file_name);
   2637 						callback(this.result);
   2638 					}
   2639 					else
   2640 						callback(null);
   2641 
   2642 			   };
   2643 
   2644 
   2645 				 reader.readAsText(file);
   2646 
   2647 
   2648 			}, MandreelFsErrorHandler);
   2649 
   2650 	}
   2651 
   2652 
   2653 		}, MandreelFsErrorHandler);
   2654 
   2655 
   2656   }, function(error) {dump('mandreel_fscachefile3');	callback(null);});
   2657 
   2658 	 return;
   2659  }
   2660 
   2661 
   2662  // full screen
   2663 
   2664 
   2665 /* The following code was removed for benchmarking:
   2666  var __screen = screen; */
   2667 
   2668 	try
   2669 	{
   2670 	(function(global) {
   2671     "use strict";
   2672 	var elementPrototype = (global.HTMLElement || global.Element)["prototype"];
   2673 
   2674 	 // document.isFullScreen
   2675     if(!Mandreel_document.hasOwnProperty("fullscreenEnabled")) {
   2676         var getter = (function() {
   2677             // These are the functions that match the spec, and should be preferred
   2678             if("webkitIsFullScreen" in Mandreel_document) {
   2679                 return function() { return Mandreel_document.webkitIsFullScreen; }
   2680             }
   2681             if("mozFullScreen" in Mandreel_document) {
   2682                 return function() { return Mandreel_document.mozFullScreen; }
   2683             }
   2684             return function() { return false }; // not supported, never fullscreen
   2685         })();
   2686 
   2687         Object.defineProperty(Mandreel_document, "fullscreenEnabled", {
   2688             enumerable: true, configurable: false, writeable: false,
   2689             get: getter
   2690         });
   2691     }
   2692 
   2693     if(!Mandreel_document.hasOwnProperty("fullscreenElement")) {
   2694         var getter = (function() {
   2695             // These are the functions that match the spec, and should be preferred
   2696             if("webkitFullscreenElement" in Mandreel_document) {
   2697                 return function() { return Mandreel_document.webkitFullscreenElement; }
   2698             }
   2699             if("mozFullscreenElemen" in Mandreel_document) {
   2700                 return function() { return Mandreel_document.mozFullscreenElemen; }
   2701             }
   2702             return function() { return null }; // not supported
   2703         })();
   2704 
   2705         Object.defineProperty(Mandreel_document, "fullscreenElement", {
   2706             enumerable: true, configurable: false, writeable: false,
   2707             get: getter
   2708         });
   2709     }
   2710 
   2711     // Document event: fullscreenchange
   2712     function fullscreenchange(oldEvent) {
   2713         var newEvent = Mandreel_document.createEvent("CustomEvent");
   2714         newEvent.initCustomEvent("fullscreenchange", true, false, null);
   2715         // TODO: Any need for variable copy?
   2716         Mandreel_document.dispatchEvent(newEvent);
   2717     }
   2718     Mandreel_document.addEventListener("webkitfullscreenchange", fullscreenchange, false);
   2719     Mandreel_document.addEventListener("mozfullscreenchange", fullscreenchange, false);
   2720 
   2721     // Document event: fullscreenerror
   2722     function fullscreenerror(oldEvent) {
   2723         var newEvent = Mandreel_document.createEvent("CustomEvent");
   2724         newEvent.initCustomEvent("fullscreenerror", true, false, null);
   2725         // TODO: Any need for variable copy?
   2726         Mandreel_document.dispatchEvent(newEvent);
   2727     }
   2728     Mandreel_document.addEventListener("webkitfullscreenerror", fullscreenerror, false);
   2729     Mandreel_document.addEventListener("mozfullscreenerror", fullscreenerror, false);
   2730 
   2731     // element.requestFullScreen
   2732     if(!elementPrototype.requestFullScreen) {
   2733         elementPrototype.requestFullScreen = (function() {
   2734             if(elementPrototype.webkitRequestFullScreen) {
   2735                 return function() {
   2736                     this.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
   2737                 }
   2738             }
   2739 
   2740             return  elementPrototype.mozRequestFullScreen    ||
   2741                     function(){ /* unsupported, fail silently */ };
   2742         })();
   2743     }
   2744 
   2745     // document.cancelFullscreen
   2746     if(!Mandreel_document.cancelFullScreen) {
   2747         Mandreel_document.cancelFullScreen = (function() {
   2748             return  Mandreel_document.webkitCancelFullScreen ||
   2749                     Mandreel_document.mozCancelFullScreen ||
   2750                     function(){ /* unsupported, fail silently */ };
   2751         })();
   2752     }
   2753 	})((typeof(exports) != 'undefined') ? global : Mandreel_window);
   2754 	}
   2755 	catch(e)
   2756 	{
   2757 	}
   2758 
   2759 
   2760 try
   2761 	{
   2762 var __onErrorFullscreen = function() {
   2763   dump("Mouse lock was not successful.");
   2764 };
   2765 
   2766 Mandreel_document.addEventListener('fullscreenchange', function(e) {
   2767 
   2768 var width;
   2769 var height;
   2770  var canvas = Mandreel_document.getElementById(mandreelAppCanvasName);
   2771  if(Mandreel_document.fullscreenEnabled) {
   2772 
   2773 
   2774             width = __screen.width;
   2775             height = __screen.height;
   2776 
   2777         } else {
   2778             width = mandreelAppWidthSrc;
   2779             height = mandreelAppHeightSrc;
   2780         }
   2781 
   2782 		canvas.width = width;
   2783 		canvas.height = height;
   2784 		mandreelAppResize(width, height);
   2785 
   2786   if (Mandreel_document.fullscreenEnabled && navigator.pointer) {
   2787     navigator.pointer.lock(Mandreel_document.body, function() {
   2788       // Locked and ready to play.
   2789     }, __onErrorFullscreen);
   2790   }
   2791 }, false);
   2792 
   2793 }
   2794 catch(e)
   2795 {
   2796 }
   2797 
   2798 
   2799 
   2800 function mandreelAppFullscreen(enable)
   2801 {
   2802 	var canvas = Mandreel_document.getElementById(mandreelAppCanvasName);
   2803 	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
   2804 	{
   2805 		if (canvas)
   2806 		{
   2807 			if (enable)
   2808 				canvas.requestFullScreen();
   2809 			else
   2810 				Mandreel_document.cancelFullScreen();
   2811 		}
   2812 	}
   2813 }
   2814 
   2815 
   2816 function mandreelAppDisableForceFocus()
   2817 {
   2818 	mandreelAppForceFocus = false;
   2819 }
   2820 
   2821 function mandreelAppEnableForceFocus()
   2822 {
   2823 	mandreelAppForceFocus = true;
   2824 }
   2825 
   2826 var imandreel_base64 = {};
   2827 imandreel_base64.PADCHAR = '=';
   2828 imandreel_base64.ALPHA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
   2829 
   2830 imandreel_base64.makeDOMException = function() {
   2831     // sadly in FF,Safari,Chrome you can't make a DOMException
   2832     var e, tmp;
   2833 
   2834     try {
   2835         return new DOMException(DOMException.INVALID_CHARACTER_ERR);
   2836     } catch (tmp) {
   2837         // not available, just passback a duck-typed equiv
   2838         // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error
   2839         // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/prototype
   2840         var ex = new Error("DOM Exception 5");
   2841 
   2842         // ex.number and ex.description is IE-specific.
   2843         ex.code = ex.number = 5;
   2844         ex.name = ex.description = "INVALID_CHARACTER_ERR";
   2845 
   2846         // Safari/Chrome output format
   2847         ex.toString = function() { return 'Error: ' + ex.name + ': ' + ex.message; };
   2848         return ex;
   2849     }
   2850 }
   2851 
   2852 imandreel_base64.getbyte64 = function(s,i) {
   2853     // This is oddly fast, except on Chrome/V8.
   2854     //  Minimal or no improvement in performance by using a
   2855     //   object with properties mapping chars to value (eg. 'A': 0)
   2856     var idx = imandreel_base64.ALPHA.indexOf(s.charAt(i));
   2857     if (idx === -1) {
   2858         throw imandreel_base64.makeDOMException();
   2859     }
   2860     return idx;
   2861 }
   2862 
   2863 imandreel_base64.decode = function(s) {
   2864     // convert to string
   2865     s = '' + s;
   2866     var getbyte64 = imandreel_base64.getbyte64;
   2867     var pads, i, b10;
   2868     var imax = s.length
   2869     if (imax === 0) {
   2870         return s;
   2871     }
   2872 
   2873     if (imax % 4 !== 0) {
   2874         throw imandreel_base64.makeDOMException();
   2875     }
   2876 
   2877     pads = 0
   2878     if (s.charAt(imax - 1) === imandreel_base64.PADCHAR) {
   2879         pads = 1;
   2880         if (s.charAt(imax - 2) === imandreel_base64.PADCHAR) {
   2881             pads = 2;
   2882         }
   2883         // either way, we want to ignore this last block
   2884         imax -= 4;
   2885     }
   2886 
   2887     var x = [];
   2888     for (i = 0; i < imax; i += 4) {
   2889         b10 = (getbyte64(s,i) << 18) | (getbyte64(s,i+1) << 12) |
   2890             (getbyte64(s,i+2) << 6) | getbyte64(s,i+3);
   2891         x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 0xff, b10 & 0xff));
   2892     }
   2893 
   2894     switch (pads) {
   2895     case 1:
   2896         b10 = (getbyte64(s,i) << 18) | (getbyte64(s,i+1) << 12) | (getbyte64(s,i+2) << 6);
   2897         x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 0xff));
   2898         break;
   2899     case 2:
   2900         b10 = (getbyte64(s,i) << 18) | (getbyte64(s,i+1) << 12);
   2901         x.push(String.fromCharCode(b10 >> 16));
   2902         break;
   2903     }
   2904     return x.join('');
   2905 }
   2906 
   2907 if (!Mandreel_window.atob) {
   2908 Mandreel_window.atob = function(a) { return  imandreel_base64.decode(a); }
   2909 }
   2910 
   2911 
   2912 function imandreel_interop_callbridge(new_method, sp)
   2913 {
   2914 
   2915 	var n = new Array();
   2916 
   2917 	for( var i = 2; i < arguments.length; i++ )
   2918 	{
   2919 
   2920 		if (typeof arguments[i] == 'string')
   2921 			n.push(atob(arguments[i]));
   2922 		else
   2923 			n.push(arguments[i]);
   2924 	}
   2925 
   2926 	var total_args = arguments.length-2;
   2927 
   2928 	switch(total_args)
   2929 	{
   2930 		case 0:
   2931 			return Mandreel_window[new_method](sp);
   2932 		case 1:
   2933 			return Mandreel_window[new_method](sp, n[0]);
   2934 		case 2:
   2935 			return Mandreel_window[new_method](sp, n[0], n[1]);
   2936 		case 3:
   2937 			return Mandreel_window[new_method](sp, n[0], n[1], n[2]);
   2938 		case 4:
   2939 			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3]);
   2940 		case 5:
   2941 			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4]);
   2942 		case 6:
   2943 			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5]);
   2944 		case 7:
   2945 			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6]);
   2946 		case 8:
   2947 			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7]);
   2948 		case 9:
   2949 			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8]);
   2950 		case 10:
   2951 			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9]);
   2952 		case 11:
   2953 			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10]);
   2954 		case 12:
   2955 			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11]);
   2956 		case 13:
   2957 			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11], n[12]);
   2958 		case 14:
   2959 			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11], n[12], n[13]);
   2960 		case 15:
   2961 			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11], n[12], n[13], n[14]);
   2962 		case 16:
   2963 			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11], n[12], n[13], n[14], n[15]);
   2964 		break;
   2965 	}
   2966 
   2967 }
   2968 function imandreel_as3_dump(param)
   2969 {
   2970 	dump(atob(param));
   2971 }
   2972 
   2973 
   2974 var mandreel_embed_plugin;
   2975 
   2976 function PluginMandreelInterWriteInt(ptr, value)
   2977 {
   2978 	mandreel_embed_plugin.MandreelInterCalls("WriteInt", ptr,value);
   2979 }
   2980 
   2981 function PluginMandreelInterWriteFloat(ptr, value)
   2982 {
   2983 	mandreel_embed_plugin.MandreelInterCalls("WriteFloat", ptr,value);
   2984 }
   2985 
   2986 function PluginMandreelInterWriteString(ptr, value)
   2987 {
   2988 	mandreel_embed_plugin.MandreelInterCalls("WriteString", ptr,value);
   2989 }
   2990 
   2991 function PluginMandreelInterWriteWString(ptr, value)
   2992 {
   2993 	mandreel_embed_plugin.MandreelInterCalls("WriteWString", ptr,value);
   2994 }
   2995 
   2996 var mandreel_plugin_current_sp = 0;
   2997 
   2998 function PluginMandreelLockFrame()
   2999 {
   3000 	var result = mandreel_embed_plugin.MandreelInterCalls("LockFrame");
   3001 
   3002 	mandreel_plugin_current_sp+=300*1024;
   3003 
   3004 	assert(mandreel_plugin_current_sp<1024*1024);
   3005 
   3006 	return result+mandreel_plugin_current_sp;
   3007 }
   3008 
   3009 function PluginMandreelPause()
   3010 {
   3011 	mandreel_embed_plugin.MandreelInterCalls("Pause");
   3012 }
   3013 
   3014 function PluginMandreelResume()
   3015 {
   3016 	mandreel_embed_plugin.MandreelInterCalls("Resume");
   3017 }
   3018 
   3019 
   3020 function PluginMandreelUnlockFrame()
   3021 {
   3022 	mandreel_embed_plugin.MandreelInterCalls("UnlockFrame");
   3023 
   3024 	mandreel_plugin_current_sp-=300*1024;
   3025 }
   3026 
   3027 function PluginMandreelInterCallFunction()
   3028 {
   3029 	var total_args = arguments.length;
   3030 
   3031 	switch(total_args)
   3032 	{
   3033 		case 0:
   3034 			return mandreel_embed_plugin.MandreelInterCallFunction();
   3035 		case 1:
   3036 			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0]);
   3037 		case 2:
   3038 			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1]);
   3039 		case 3:
   3040 			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2]);
   3041 		case 4:
   3042 			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3]);
   3043 		case 5:
   3044 			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);
   3045 		case 6:
   3046 			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);
   3047 		case 7:
   3048 			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6]);
   3049 		case 8:
   3050 			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7]);
   3051 		case 9:
   3052 			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8]);
   3053 		case 10:
   3054 			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9]);
   3055 		case 11:
   3056 			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10]);
   3057 		case 12:
   3058 			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11]);
   3059 		case 13:
   3060 			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11], arguments[12]);
   3061 		case 14:
   3062 			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11], arguments[12], arguments[13]);
   3063 		case 15:
   3064 			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11], arguments[12], arguments[13], arguments[14]);
   3065 		case 16:
   3066 			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11], arguments[12], arguments[13], arguments[14], arguments[15]);
   3067 		break;
   3068 	}
   3069 }
   3070 
   3071 function mandreel_plugin_draw()
   3072 {
   3073 	var canvas = Mandreel_document.getElementById('canvasDiv');
   3074 	WebGLUtils.requestAnimationFrame(canvas, mandreel_plugin_draw);
   3075 	mandreel_embed_plugin.MandreelInterCalls("AppDraw");
   3076 
   3077 }
   3078 
   3079 function mandreelInitPluginPlatform(params)
   3080 {
   3081 
   3082 	if ( params.width != null )
   3083 		mandreelAppWidthSrc = params.width;
   3084 
   3085 	if ( params.height != null )
   3086 		mandreelAppHeightSrc = params.height;
   3087 
   3088 
   3089 	mandreel_embed_plugin = Mandreel_document.createElement('embed');
   3090 	mandreel_embed_plugin.setAttribute('width',mandreelAppWidthSrc);
   3091 	mandreel_embed_plugin.setAttribute('height',mandreelAppHeightSrc);
   3092 	mandreel_embed_plugin.setAttribute('type',"application/halfbrick-npruntime-scriptable-plugin");
   3093 
   3094 	var div = Mandreel_document.getElementById('canvasDiv');
   3095 
   3096 
   3097 	var oChild=div.firstChild;
   3098 
   3099 	div.replaceChild(mandreel_embed_plugin, oChild);
   3100 
   3101 	var flashElement = Mandreel_document.getElementById('FlashWrapper');
   3102 	if ( flashElement != null )
   3103 	{
   3104 		flashElement.style.visibility = "hidden";
   3105 		flashElement.style.width = "0px";
   3106 		flashElement.style.height = "0px";
   3107 	}
   3108 
   3109 
   3110 
   3111 
   3112 
   3113 	Mandreel_window.MandreelInterWriteInt     = PluginMandreelInterWriteInt;
   3114 	Mandreel_window.MandreelInterWriteFloat   = PluginMandreelInterWriteInt;
   3115 	Mandreel_window.MandreelInterWriteString  = PluginMandreelInterWriteString;
   3116 	Mandreel_window.MandreelInterWriteWString = PluginMandreelInterWriteWString;
   3117 	Mandreel_window.MandreelLockFrame         = PluginMandreelLockFrame;
   3118 	Mandreel_window.MandreelUnlockFrame       = PluginMandreelUnlockFrame;
   3119 	Mandreel_window.MandreelInterCallFunction = PluginMandreelInterCallFunction;
   3120 	Mandreel_window.MandreelPause 			 = PluginMandreelPause;
   3121 	Mandreel_window.MandreelResume 			 = PluginMandreelResume;
   3122 
   3123 	Mandreel_setTimeout(function () {
   3124 
   3125 	if ( typeof(params.pluginSolutionName) != 'undefined' )
   3126 		mandreel_embed_plugin.init(params.pluginDLL, params.pluginWorkingFolder,params.pluginSolutionName);
   3127 	else
   3128 		mandreel_embed_plugin.init(params.pluginDLL, params.pluginWorkingFolder);
   3129 
   3130 
   3131 	mandreelAppStartStateFunc("ready",mandreelAppWidthSrc,mandreelAppHeightSrc);
   3132 
   3133 	Mandreel_setTimeout("mandreel_plugin_draw()", 16);
   3134 	}, 100);
   3135 
   3136 }
   3137 
   3138 
   3139 function MandreelInterSwfProgress(mode, percentage, bytes, totalbytes)
   3140 {
   3141 	imandreel_update_load(bytes, totalbytes);
   3142 	if (mode == 'files')
   3143 	{
   3144 		if ( mandreelAppStartStateFunc )
   3145 			mandreelAppStartStateFunc("loadingData",percentage);
   3146 	}
   3147 	else if (mode == 'audio')
   3148 	{
   3149 		if ( mandreelAppStartStateFunc )
   3150 			mandreelAppStartStateFunc("loadingAudioUpdate",percentage);
   3151 	}
   3152 	else if (mode == 'textureasync')
   3153 	{
   3154 		if ( mandreelAppStartStateFunc )
   3155 			mandreelAppStartStateFunc("loadingTextureAsyncPack",percentage);
   3156 	}
   3157 
   3158 }
   3159 
   3160 function MandreelInterSwfCheckMethod(method)
   3161 {
   3162 	if (typeof(Mandreel_window[method])=="undefined")
   3163 		return 0;
   3164 	else
   3165 		return 1;
   3166 }
   3167 
   3168 // End of js/mandreelapp.js file.
   3169 
   3170 // Start of mandreel.js file.
   3171 
   3172 var mandreel_total_memory = 15908864;
   3173 var mandreel_stack_memory = 1048576;
   3174 var mandreel_heap_memory = 13591752; //init_memory = 744248
   3175 /////////////////////////////////////////////
   3176 // Heap
   3177 /////////////////////////////////////////////
   3178 var heap;
   3179 var heap8;
   3180 var heapU8;
   3181 var heap16;
   3182 var heapU16;
   3183 var heap32;
   3184 var heapU32;
   3185 var heapFloat;
   3186 var heapDouble;
   3187 var heapNewPos = 512;
   3188 
   3189 var ABORT = false;
   3190 
   3191 var g_mandreel_cache_files = false;
   3192 
   3193 
   3194 var g_mandreel_frame_locked = false;
   3195 var g_mandreel_frame_inframe = false;
   3196 
   3197 var mandreel_cache_files = [];
   3198 var g_mandreel_working_folder = 'DataPC/';
   3199 var g_mandreel_datafiles_sufix = '.dat';
   3200 var __FUNCTION_TABLE__ = [];
   3201 var mandreel_pos_function_table = 1;
   3202 function register_delegate(ptr_func)
   3203 {
   3204 	var functionId = mandreel_pos_function_table;
   3205 	__FUNCTION_TABLE__[functionId] = ptr_func;
   3206 
   3207 	mandreel_pos_function_table++;
   3208 	return functionId*4;
   3209 }
   3210 
   3211 
   3212 var g_addr_emit = 0;
   3213 function emit_start(addr)
   3214 {
   3215 	g_addr_emit = addr;
   3216 }
   3217 
   3218 function emit_8(data)
   3219 {
   3220 	heapU8[g_addr_emit] = data;
   3221 	g_addr_emit++;
   3222 }
   3223 
   3224 function emit_16(data)
   3225 {
   3226 	heapU16[g_addr_emit>>1] = data;
   3227 	g_addr_emit+=2;
   3228 }
   3229 
   3230 function emit_32(data)
   3231 {
   3232 	heapU32[g_addr_emit>>2] = data;
   3233 	g_addr_emit+=4;
   3234 }
   3235 
   3236 function emit_fill(data, size)
   3237 {
   3238 	var j;
   3239 	for (j=0;j<size;j++)
   3240 	{
   3241 		heapU8[g_addr_emit] = data;
   3242 		g_addr_emit++;
   3243 	}
   3244 }
   3245 
   3246 function emit_string(v)
   3247 {
   3248 	var j;
   3249 	var len = v.length;
   3250 	var data;
   3251 
   3252 	for(j = 0; j < len; j++)
   3253 	{
   3254 		data = v.charCodeAt(j);
   3255 
   3256 		heapU8[g_addr_emit] = data;
   3257 		g_addr_emit++;
   3258 	}
   3259 }
   3260 
   3261 
   3262 
   3263 
   3264 
   3265 var g_stack_pointer = Malloc(mandreel_stack_memory);
   3266 
   3267 function assert_unalign()
   3268 {
   3269 	dump("fatal error: unaligned memory access detected!!!!");
   3270 	assert(false);
   3271 }
   3272 
   3273 function _assert(sp)
   3274 {
   3275 	var p0 = heap32[sp>>2];sp+=4;
   3276   var p1 = heap32[sp>>2];sp+=4;
   3277   var line = heap32[sp>>2];sp+=4;
   3278 	var name = get_string_from_ptr(p0);
   3279 	var file = get_string_from_ptr(p1);
   3280 	assert(false, name + file + ' ' + line);
   3281 }
   3282 __cxa_pure_virtual.__index__ = 0;
   3283 function __cxa_pure_virtual()
   3284 {
   3285 	assert(0);
   3286 }
   3287 
   3288 // operator delete[]
   3289 function _ZdaPv(sp)
   3290 {
   3291 	free(sp);
   3292 }
   3293 
   3294 // operator delete
   3295 function _ZdlPv(sp)
   3296 {
   3297 	free(sp);
   3298 }
   3299 
   3300 // operator new[](unsigned int)
   3301 function _Znaj(sp)
   3302 {
   3303 	malloc(sp);
   3304 }
   3305 // operator new[](unsigned int)
   3306 function _Znwj(sp)
   3307 {
   3308 	malloc(sp);
   3309 }
   3310 
   3311 function abort(sp)
   3312 {
   3313 	assert(0);
   3314 }
   3315 
   3316 var r_g0 = 0;
   3317 var r_g1 = 0;
   3318 var f_g0 = 0;
   3319 
   3320 //isFinite(aux)
   3321 //isNaN(aux)
   3322 
   3323 var tlsf_ptr = 0;
   3324 
   3325 
   3326 function initHeap()
   3327 {
   3328 	heap = new ArrayBuffer(mandreel_total_memory);
   3329 	heap8 = new Int8Array(heap);
   3330 	heapU8 = new Uint8Array(heap);
   3331 	heap16 = new Int16Array(heap);
   3332 	heapU16 = new Uint16Array(heap);
   3333 	heap32 = new Int32Array(heap);
   3334 	heapU32 = new Uint32Array(heap);
   3335 	heapFloat = new Float32Array(heap);
   3336 	heapDouble = new Float64Array(heap);
   3337 
   3338 
   3339 	for (var i=0;i<mandreel_total_memory/4;i++)
   3340 	{
   3341 		heapU32[i] = 0;
   3342 	}
   3343 }
   3344 
   3345 function Malloc(bytes)
   3346 {
   3347 	if ( heap == undefined )
   3348 	{
   3349 		//initHeap();
   3350 	}
   3351 	var newOffset = heapNewPos;
   3352 	// Always 32 bit aligned
   3353 	heapNewPos += ((bytes + 3) & 0xfffffffc);
   3354 
   3355 	if (heapNewPos>mandreel_total_memory)
   3356 	{
   3357 		assert(false);
   3358 	}
   3359 
   3360 	return newOffset;
   3361 }
   3362 
   3363 function assert(condition, _text) {
   3364 //console.assert(condition, _text);
   3365     if (!condition) {
   3366       var text = "Assertion failed: " + _text;
   3367       alert(text + ':\n' + (new Error).stack);
   3368       ABORT = true;
   3369       throw "Assertion: " + text;
   3370     }
   3371   }
   3372 
   3373   function my_assert(sp)
   3374   {
   3375 	var p0 = heap32[sp>>2];sp+=4;
   3376   var p1 = heap32[sp>>2];sp+=4;
   3377 	//var name = get_string_from_ptr(p1);
   3378 
   3379 	assert(false, 'hola');
   3380   }
   3381 
   3382   function WriteHeapDouble(addr, value)
   3383   {
   3384   //assert((addr&7)==0);
   3385 	heapDouble[addr>>3] = value;
   3386   }
   3387 
   3388     function WriteHeapU64(addr, value)
   3389   {
   3390 	heap32[addr>>2] = value.l;
   3391 	heap32[(addr>>2)+1] = value.h;
   3392   }
   3393 
   3394 
   3395 var arg_test_local = Malloc(8);
   3396 function my_arg_test(sp)
   3397 {
   3398 	var ptr = heapU32[sp>>2];
   3399 	var size = heapU32[(sp+4)>>2];
   3400 
   3401 	var arg = heapU32[ptr>>2];
   3402 
   3403 
   3404 	if (size == 4)
   3405 	{
   3406 	heap32[ptr>>2] = arg+4;
   3407 
   3408 	arg = heap32[arg>>2];
   3409 
   3410 	heap32[arg_test_local>>2] = arg;
   3411 
   3412 	//dump('my_arg_test ' + arg + ' ' + ptr + '\n');
   3413 
   3414 	}
   3415 	else
   3416 	{
   3417 		arg = (arg+7) & ~7;
   3418 
   3419 		heap32[ptr>>2] = arg+8;
   3420 
   3421 	//assert((arg&7)==0);
   3422 	var value0 = heap32[arg>>2];
   3423 	var value1 = heap32[(arg+4)>>2];
   3424 	//arg = llvm_readDouble(arg);
   3425 
   3426 	//assert((arg_test_local&7)==0);
   3427 
   3428 	heap32[arg_test_local>>2] = value0;
   3429 	heap32[(arg_test_local+4)>>2] = value1;
   3430 
   3431 	//llvm_writeDouble(arg_test_local,arg);
   3432 
   3433 	//dump('my_arg_test ' + arg + ' ' + ptr + '\n');
   3434 
   3435 
   3436 	}
   3437 
   3438 
   3439 
   3440 
   3441 	r_g0 = arg_test_local;
   3442 }
   3443 
   3444 
   3445 
   3446 
   3447 
   3448 
   3449 function uint(value) {
   3450     if (value >= 0) return value;
   3451     return 4294967296 + value;
   3452   }
   3453 
   3454 
   3455 
   3456 function puts(sp)
   3457 {
   3458 	var addr = heapU32[sp>>2];
   3459 
   3460 	var name = get_string_from_ptr(addr);
   3461 
   3462 	name+='\n';
   3463 
   3464 	dump(name);
   3465 
   3466 }
   3467 
   3468 function _Z11print_valued(_stack_pos, value)
   3469 {
   3470 	dump(value);
   3471 	dump('\n');
   3472 }
   3473 
   3474 function _Z11print_labelPKc(_stack_pos, addr)
   3475 {
   3476 	puts(_stack_pos,addr);
   3477 	dump('\n');
   3478 }
   3479 
   3480 
   3481 
   3482 
   3483 function gettimeofday(sp)
   3484   {
   3485   var ptr = heap32[sp>>2];
   3486   var time_ms = Date_now();
   3487 	heap32[ptr>>2] = time_ms/1000;
   3488 	heap32[(ptr>>2)+1] = (time_ms%1000)*1000;
   3489 	r_g0 = 0;
   3490   }
   3491 
   3492 
   3493   function free(sp)
   3494   {
   3495 	var ptr = heapU32[sp>>2];
   3496   	sp-=8;
   3497 
   3498 	heap32[(sp)>>2] = tlsf_ptr;
   3499 	heap32[(sp+4)>>2] = ptr;
   3500 	tlsf_free(sp);
   3501   }
   3502 
   3503   function malloc_size(sp)
   3504   {
   3505   var ptr = heapU32[sp>>2];
   3506 
   3507 	sp-=4;
   3508 
   3509 	heap32[(sp)>>2] = ptr;
   3510 	tlsf_block_size(sp);
   3511   }
   3512 
   3513 
   3514   function realloc(sp)
   3515   {
   3516 	var ptr = heapU32[sp>>2];
   3517 	var size = heapU32[(sp+4)>>2];
   3518 
   3519 	//assert(ptr == 0);
   3520 
   3521 	sp-=12;
   3522 
   3523 	//dump('realloc ' + sp + ' ' + ptr + ' ' + size + '\n');
   3524 
   3525 	heap32[(sp)>>2] = tlsf_ptr;
   3526 	heap32[(sp+4)>>2] = ptr;
   3527 	heap32[(sp+8)>>2] = size;
   3528 	tlsf_realloc(sp);
   3529 
   3530 	//dump('return ' + r_g0 + '\n');
   3531   }
   3532 
   3533   var llvm_double_addr = Malloc(8);
   3534 
   3535   function llvm_writeDouble(addr,src)
   3536   {
   3537   //assert((llvm_double_addr&7)==0);
   3538 	heapDouble[llvm_double_addr>>3] = src;
   3539 
   3540 	//assert((addr&7)==0);
   3541 
   3542 	var val0 = heap32[(llvm_double_addr)>>2];
   3543 	var val1 = heap32[(llvm_double_addr+4)>>2];
   3544 
   3545 	heap32[(addr)>>2] = val0;
   3546 	heap32[(addr+4)>>2] = val1;
   3547   }
   3548 
   3549   function llvm_readDouble(addr)
   3550   {
   3551   	//assert((addr&7)==0);
   3552 
   3553 	var val0 = heap32[(addr)>>2];
   3554 	var val1 = heap32[(addr+4)>>2];
   3555 
   3556 	heap32[(llvm_double_addr)>>2] = val0;
   3557 	heap32[(llvm_double_addr+4)>>2] = val1;
   3558 
   3559 
   3560 //	assert((llvm_double_addr&7)==0);
   3561 	var result = heapDouble[llvm_double_addr>>3];
   3562 
   3563 
   3564 	return result;
   3565 
   3566   }
   3567 
   3568   function llvm_move_double(addr_dst, addr_src)
   3569   {
   3570 
   3571 	var val0 = heapU32[(addr_src)>>2];
   3572 	var val1 = heapU32[(addr_src+4)>>2];
   3573 
   3574 	heapU32[(addr_dst)>>2] = val0;
   3575 	heapU32[(addr_dst+4)>>2] = val1;
   3576 
   3577   }
   3578 
   3579   function llvm_move_float(addr_dst, addr_src)
   3580   {
   3581 	heapU32[(addr_dst)] = heapU32[(addr_src)];
   3582   }
   3583 
   3584   function malloc(sp)
   3585   {
   3586 	var size = heapU32[sp>>2];
   3587 
   3588 	if (size == 0)
   3589 	{
   3590 		size = 4;
   3591 	}
   3592 
   3593 
   3594 	if (tlsf_ptr == 0)
   3595 	{
   3596 		var addr = Malloc(mandreel_heap_memory);
   3597 
   3598 		sp-=8;
   3599 		heap32[(sp)>>2] = addr;
   3600 		heap32[(sp+4)>>2] = mandreel_heap_memory;
   3601 		tlsf_create(sp);
   3602 		tlsf_ptr = r_g0;
   3603 	}
   3604 
   3605 	sp-=8;
   3606 
   3607 	heap32[(sp)>>2] = tlsf_ptr;
   3608 	heap32[(sp+4)>>2] = size;
   3609 	tlsf_malloc(sp);
   3610 
   3611 	if (r_g0 == 0)
   3612 	{
   3613 		dump('malloc failed ' + size + '\n');
   3614 		assert(false);
   3615 	}
   3616   }
   3617 
   3618 
   3619    function log10f(sp)
   3620   {
   3621   var value = heapFloat[sp>>2];
   3622 	f_g0 = Math.log(value)/Math.LN10;
   3623   }
   3624 
   3625    function log10(sp)
   3626   {
   3627   var value = heapDouble[sp>>3];
   3628 	f_g0 = Math.log(value)/Math.LN10;
   3629   }
   3630 
   3631 function logf(sp)
   3632   {
   3633   var value = heapFloat[sp>>2];
   3634 	f_g0 = Math.log(value);
   3635   }
   3636 
   3637   function log(sp)
   3638   {
   3639   var value = heapDouble[sp>>3];
   3640 	f_g0 = Math.log(value);
   3641   }
   3642 
   3643 
   3644 
   3645   function cosf(sp)
   3646   {
   3647   var value = heapFloat[sp>>2];
   3648 	f_g0 = Math.cos(value);
   3649 	//assert (isNaN(f_g0) == false);
   3650   }
   3651 
   3652   function acosf(sp)
   3653   {
   3654   var value = heapFloat[sp>>2];
   3655 	f_g0 = Math.acos(value);
   3656   }
   3657 
   3658   function asinf(sp)
   3659   {
   3660   var value = heapFloat[sp>>2];
   3661 	f_g0 = Math.asin(value);
   3662   }
   3663 
   3664   function asin(sp)
   3665   {
   3666   var value = heapDouble[sp>>3];
   3667 	f_g0 = Math.asin(value);
   3668   }
   3669 
   3670   function acos(sp)
   3671   {
   3672   var value = heapDouble[sp>>3];
   3673 	f_g0 = Math.acos(value);
   3674   }
   3675 
   3676   function floor(sp)
   3677   {
   3678   var value = heapDouble[sp>>3];
   3679 	f_g0 = Math.floor(value);
   3680   }
   3681 
   3682   function floorf(sp)
   3683   {
   3684   var value = heapFloat[sp>>2];
   3685 	f_g0 = Math.floor(value);
   3686   }
   3687 
   3688   function round(sp)
   3689   {
   3690   var value = heapDouble[sp>>3];
   3691 	f_g0 = Math.round(value);
   3692   }
   3693 
   3694   function roundf(sp)
   3695   {
   3696   var value = heapFloat[sp>>2];
   3697 	f_g0 = Math.round(value);
   3698   }
   3699 
   3700   function ceilf(sp)
   3701   {
   3702   var value = heapFloat[sp>>2];
   3703 	f_g0 = Math.ceil(value);
   3704   }
   3705 
   3706   function ceil(sp)
   3707   {
   3708   var value = heapDouble[sp>>3];
   3709 	f_g0 = Math.ceil(value);
   3710   }
   3711 
   3712 
   3713   function exp2(sp)
   3714   {
   3715   var value = heapDouble[sp>>3];
   3716 
   3717 	f_g0 = Math.pow(2,value);
   3718   }
   3719 
   3720   function exp2f(sp)
   3721   {
   3722   var value = heapFloat[sp>>2];
   3723 
   3724 	f_g0 = Math.pow(2,value);
   3725   }
   3726 
   3727 
   3728 
   3729   function pow(sp)
   3730   {
   3731   var value = heapDouble[sp>>3];
   3732   var value2 = heapDouble[(sp+8)>>3];
   3733 	f_g0 = Math.pow(value,value2);
   3734   }
   3735 
   3736   function powf(sp)
   3737   {
   3738   var value = heapFloat[sp>>2];
   3739   var value2 = heapFloat[(sp+4)>>2];
   3740 	f_g0 = Math.pow(value,value2);
   3741   }
   3742 
   3743   function cos(sp)
   3744   {
   3745   var value = heapDouble[sp>>3];
   3746 	f_g0 = Math.cos(value);
   3747 	//assert (isNaN(f_g0) == false);
   3748   }
   3749 
   3750   function tan(sp)
   3751   {
   3752   var value = heapDouble[sp>>3];
   3753 	f_g0 = Math.tan(value);
   3754 	//assert (isNaN(f_g0) == false);
   3755   }
   3756 
   3757    function sinf(sp)
   3758   {
   3759   var value = heapFloat[sp>>2];
   3760 	f_g0 = Math.sin(value);
   3761 
   3762 	//assert (isNaN(f_g0) == false);
   3763   }
   3764 
   3765   function expf(sp)
   3766   {
   3767   var value = heapFloat[sp>>2];
   3768 	f_g0 = Math.exp(value);
   3769   }
   3770 
   3771   function exp(sp)
   3772   {
   3773   var value = heapDouble[sp>>3];
   3774 	f_g0 = Math.exp(value);
   3775   }
   3776 
   3777   function tanf(sp)
   3778   {
   3779   var value = heapFloat[sp>>2];
   3780 	f_g0 = Math.tan(value);
   3781   }
   3782 
   3783  function atanf(sp)
   3784   {
   3785   var value = heapFloat[sp>>2];
   3786 	f_g0 = Math.atan(value);
   3787   }
   3788 
   3789   function atan(sp)
   3790   {
   3791   var value = heapDouble[sp>>3];
   3792 	f_g0 = Math.atan(value);
   3793   }
   3794 
   3795   function abs(sp)
   3796   {
   3797   var value = heap32[sp>>2];
   3798   if (value<0)
   3799   r_g0 = -value;
   3800   else
   3801   r_g0 = value;
   3802   }
   3803 
   3804   function sin(sp)
   3805   {
   3806   var value = heapDouble[sp>>3];
   3807 	f_g0 = Math.sin(value);
   3808   }
   3809 
   3810   function sqrtf(sp)
   3811   {
   3812   var value = heapFloat[sp>>2];
   3813 	f_g0 = Math.sqrt(value);
   3814   }
   3815 
   3816   function sqrt(sp)
   3817   {
   3818   var value = heapDouble[sp>>3];
   3819 	f_g0 = Math.sqrt(value);
   3820   }
   3821 
   3822   function fmod(sp)
   3823   {
   3824   var value = heapDouble[sp>>3];sp+=8;
   3825   var value2 = heapDouble[sp>>3];
   3826 	f_g0 = value % value2;
   3827   }
   3828 
   3829    function fmodf(sp)
   3830   {
   3831   var value = heapFloat[sp>>2];sp+=4;
   3832   var value2 = heapFloat[sp>>2];
   3833 	f_g0 = value % value2;
   3834   }
   3835 
   3836 
   3837   function atan2f(sp)
   3838   {
   3839   var x = heapFloat[sp>>2];sp+=4;
   3840   var y = heapFloat[sp>>2];
   3841 	f_g0 = Math.atan2(x,y);
   3842   }
   3843 
   3844   function atan2(sp)
   3845   {
   3846   var x = heapDouble[sp>>3];
   3847   var y = heapDouble[(sp+8)>>3];
   3848 	f_g0 = Math.atan2(x,y);
   3849   }
   3850 
   3851   function fabs(sp)
   3852   {
   3853   var value = heapDouble[sp>>3];
   3854 	f_g0 = Math.abs(value);
   3855   }
   3856 
   3857 
   3858   function _Z18OutputDebugStringAPKc(sp)
   3859   {
   3860   puts(sp);
   3861 
   3862   }
   3863 
   3864 
   3865   function getenv(sp)
   3866   {
   3867   r_g0 = 0;
   3868   }
   3869 
   3870 
   3871   function mandreel_fcmp_ord(X, Y)
   3872   {
   3873 	return (X == X && Y == Y);
   3874   }
   3875 
   3876   function mandreel_fcmp_uno(X, Y)
   3877 {
   3878 
   3879         return (X != X || Y != Y);
   3880 }
   3881 
   3882 var llvm_errno = Malloc(4);
   3883 function _errno(sp)
   3884 {
   3885 	r_g0 = llvm_errno;
   3886 }
   3887 
   3888 
   3889 
   3890 
   3891 if (!Mandreel_window["dump"])
   3892 	Mandreel_window["dump"] = function dump(str){console.log(str)} ;
   3893 
   3894 
   3895 
   3896 
   3897   function get_string_from_ptr(ptr)
   3898   {
   3899 	var ret = "";
   3900 
   3901 	if (ptr == 0)
   3902 		return ret;
   3903 
   3904 	var i = 0;
   3905 	while (1) {
   3906   //    if ((ptr.pos + i) >= ptr.slab.length) { return "<< Invalid read: " + (ptr.pos+i) + " : " + ptr.slab.length + " >>"; } else {}
   3907 	if (heapU8[ptr + i] == 0)
   3908 		break;
   3909 
   3910       var t = String.fromCharCode(heapU8[ptr + i]);
   3911       ret += t;
   3912       i += 1;
   3913     }
   3914 
   3915 	return ret;
   3916   }
   3917 
   3918   function fill_ptr_from_string(ptr, v)
   3919   {
   3920 	var j;
   3921 	var len = v.length;
   3922 	var data;
   3923 
   3924   	for(j = 0; j < len; j++)
   3925 	{
   3926 		data = v.charCodeAt(j);
   3927 
   3928 		heapU8[ptr] = data;
   3929 		ptr++;
   3930 	}
   3931 		heapU8[ptr] = 0;
   3932 	}
   3933 
   3934   var file_ids = [];
   3935   var current_file_id = 20;
   3936 
   3937   function create_file_id(buffer)
   3938   {
   3939 	this.buffer = buffer;
   3940 	this.offset = 0;
   3941 	this.byteArray = new Uint8Array(buffer);
   3942   }
   3943 
   3944   function mandreel_rewind(sp)
   3945   {
   3946   var file_id = heap32[sp>>2];sp+=4;
   3947 
   3948   file_ids[file_id].offset = 0;
   3949 
   3950 	r_g0 = 0;
   3951 
   3952 	//return 0;
   3953   }
   3954 
   3955 
   3956   function mandreel_fseek(sp)
   3957   {
   3958   var file_id = heap32[sp>>2];sp+=4;
   3959   var pos = heap32[sp>>2];sp+=4;
   3960   var type = heap32[sp>>2];sp+=4;
   3961 
   3962 	if (type == 2)
   3963 	{
   3964 		file_ids[file_id].offset = file_ids[file_id].buffer.byteLength + pos;
   3965 	}
   3966 	else if (type == 1)
   3967 	{
   3968 		file_ids[file_id].offset = file_ids[file_id].offset + pos;
   3969 
   3970 	}
   3971 	else if (type == 0)
   3972 	{
   3973 		file_ids[file_id].offset = pos;
   3974 
   3975 	}
   3976 
   3977 	r_g0 = 0;
   3978 
   3979 	//return 0;
   3980   }
   3981 
   3982   function mandreel_fclose(sp)
   3983   {
   3984   var file_id = heap32[sp>>2];sp+=4;
   3985 
   3986 	file_ids[file_id] = null;
   3987 	r_g0 = 0;
   3988 	//return 0;
   3989   }
   3990 
   3991 
   3992 
   3993   function mandreel_feof(sp)
   3994   {
   3995   var file_id = heap32[sp>>2];sp+=4;
   3996 
   3997   var offset = file_ids[file_id].offset;
   3998   var total = file_ids[file_id].buffer.byteLength;
   3999 
   4000   if (offset>=total)
   4001   r_g0 = 1;
   4002   else
   4003   r_g0 = 0;
   4004 
   4005   }
   4006 
   4007   function mandreel_getc(sp)
   4008   {
   4009   var file_id = heap32[sp>>2];sp+=4;
   4010 
   4011 
   4012   var offset = file_ids[file_id].offset;
   4013 
   4014 
   4015 	var buffer = file_ids[file_id].buffer;
   4016 
   4017 	var byteArray = file_ids[file_id].byteArray;
   4018 
   4019 	var total = 1;
   4020 
   4021 	var result;
   4022 
   4023 	if ((offset+total)>buffer.byteLength)
   4024 	{
   4025 		result = -1;
   4026 	}
   4027 	else
   4028 	{
   4029 		result = byteArray[offset];
   4030 		file_ids[file_id].offset+=total;
   4031 	}
   4032 
   4033 	r_g0 = result;
   4034   }
   4035 
   4036 
   4037 
   4038   function mandreel_fread(sp)
   4039   {
   4040   var ptr = heap32[sp>>2];sp+=4;
   4041   var size = heap32[sp>>2];sp+=4;
   4042   var count = heap32[sp>>2];sp+=4;
   4043   var file_id = heap32[sp>>2];sp+=4;
   4044 
   4045   var offset = file_ids[file_id].offset;
   4046 
   4047   //dump('fread ' + ptr + ' ' + size + ' ' + count + ' ' + file_id + ' ' + offset + '\n');
   4048 
   4049 	var buffer = file_ids[file_id].buffer;
   4050 
   4051 	var total = size*count;
   4052 
   4053 	if ((offset+total)>buffer.byteLength)
   4054 		total = buffer.byteLength-offset;
   4055 
   4056 	var byteArray = file_ids[file_id].byteArray;
   4057 
   4058 
   4059 	var sub_array = byteArray.subarray(offset, offset+total);
   4060 
   4061 	heapU8.set(sub_array,ptr);
   4062 
   4063 
   4064 	//heapU8.set(byteArray, ptr);
   4065 	//for (var i=0;i<total;++i)
   4066 	//{
   4067 //		heapU8[ptr+i] = byteArray[i+offset];
   4068 //	}
   4069 
   4070 
   4071 	file_ids[file_id].offset+=total;
   4072 
   4073 	r_g0 = total/size;
   4074 	//return total;
   4075   }
   4076 
   4077   function mandreel_ftell(sp)
   4078   {
   4079   var file_id = heap32[sp>>2];sp+=4;
   4080 
   4081 	var value = file_ids[file_id].offset;
   4082 	//dump('offset ftell ' + value + '\n');
   4083 	r_g0 = value;
   4084 	//return value;
   4085   }
   4086 
   4087   function _Z30mandreel_fopen_enable_checkfatb(sp)
   4088   {
   4089   }
   4090 
   4091   function mandreel_ungetc(sp)
   4092   {
   4093 	var my_char = heap32[sp>>2];sp+=4;
   4094 	var file_id = heap32[sp>>2];sp+=4;
   4095 
   4096 	var offset = file_ids[file_id].offset-1;
   4097 
   4098 	var byteArray = file_ids[file_id].byteArray;
   4099 
   4100 	assert(byteArray[offset] == my_char);
   4101 
   4102 	file_ids[file_id].offset = offset;
   4103 
   4104 	return my_char;
   4105   }
   4106   function mandreel_fopen(sp)
   4107   {
   4108   var ptr_name = heap32[sp>>2];sp+=4;
   4109   var ptr_flags = heap32[sp>>2];sp+=4;
   4110 
   4111 
   4112 	var name = get_string_from_ptr(ptr_name);
   4113 	var flags = get_string_from_ptr(ptr_flags);
   4114 	//dump('fopen\n');
   4115 	//dump(name);
   4116 	//dump('\n');
   4117 	//dump(flags);
   4118 	//dump('\n');
   4119 
   4120 	var buffer;
   4121 
   4122 	var full_name;
   4123 
   4124 	name = name.toLowerCase();
   4125 
   4126 	name = name.replace(/\\/g,"/");
   4127 
   4128 	full_name	= g_mandreel_working_folder + name + g_mandreel_datafiles_sufix;
   4129 
   4130 
   4131 	buffer =mandreel_cache_files[name];
   4132 
   4133 	if (buffer == null)
   4134 	{
   4135 	r_g0 = 0;
   4136 	return;
   4137 	}
   4138 
   4139 
   4140 
   4141 	//dump('\nopening file ' + full_name + ' ' + buffer.byteLength + '\n');
   4142 
   4143 
   4144 	file_ids[current_file_id] = new create_file_id(buffer);
   4145 
   4146 	var old_id = current_file_id;
   4147 	current_file_id++;
   4148 
   4149 	r_g0 = old_id;
   4150 	//return old_id;
   4151   }
   4152 
   4153   function llvm_store_unalign32_float(addr, value)
   4154   {
   4155 	heapFloat[0] = value;
   4156 	var data = heap32[0];
   4157 	heap8[addr] = data&0xff;
   4158 	heap8[addr+1] = (data>>>8)&0xff;
   4159 	heap8[addr+2] = (data>>>16)&0xff;
   4160 	heap8[addr+3] = (data>>>24)&0xff;
   4161   }
   4162   function llvm_store_unalign32(addr, value)
   4163   {
   4164 	heap8[addr] = value&0xff;
   4165 	heap8[addr+1] = (value>>>8)&0xff;
   4166 	heap8[addr+2] = (value>>>16)&0xff;
   4167 	heap8[addr+3] = (value>>>24)&0xff;
   4168   }
   4169 
   4170   function llvm_read_unalign32(addr)
   4171   {
   4172 	var value;
   4173 	value = heapU8[addr];
   4174 	value |= heapU8[addr+1]<<8;
   4175 	value |= heapU8[addr+2]<<16;
   4176 	value |= heapU8[addr+3]<<24;
   4177 	return value;
   4178   }
   4179 
   4180   function llvm_read_unalign32_float(addr)
   4181   {
   4182 	var value;
   4183 	value = heapU8[addr];
   4184 	value |= heapU8[addr+1]<<8;
   4185 	value |= heapU8[addr+2]<<16;
   4186 	value |= heapU8[addr+3]<<24;
   4187 
   4188 	heap32[0] = value;
   4189 	return  heapFloat[0];
   4190   }
   4191 
   4192   function mandreel_getlocalstorage()
   4193   {
   4194 	return Mandreel_window.localStorage;
   4195 	//return Mandreel_window.sessionStorage;
   4196   }
   4197 
   4198   function mandreel_openls(sp)
   4199   {
   4200 	var ptr_name = heap32[sp>>2];sp+=4;
   4201 
   4202 	var key = get_string_from_ptr(ptr_name);
   4203 
   4204 	var my_localStorage = mandreel_getlocalstorage();
   4205 
   4206 	var value = my_localStorage.getItem(key);
   4207 
   4208 	if (value == null)
   4209 	{
   4210 		r_g0 = -1;
   4211 		return;
   4212 	}
   4213 
   4214 
   4215 	var length = my_localStorage.getItem(key + '_size');
   4216 
   4217 	if (length == null)
   4218 	{
   4219 		r_g0 = -1;
   4220 		return;
   4221 	}
   4222 
   4223 
   4224 
   4225 
   4226 	dump('mandreel_openls ' + key + ' return ' + length);
   4227 
   4228 
   4229 	r_g0 = parseInt(length);
   4230 
   4231 
   4232 
   4233 	return;
   4234 
   4235   }
   4236 
   4237   function mandreel_readls(sp)
   4238   {
   4239 	var ptr_name = heap32[sp>>2];sp+=4;
   4240 	var data_dst = heap32[sp>>2];sp+=4;
   4241 	var data_len = heap32[sp>>2];sp+=4;
   4242 
   4243 	var key = get_string_from_ptr(ptr_name);
   4244 
   4245 	var my_localStorage = mandreel_getlocalstorage();
   4246 
   4247 	var value = my_localStorage.getItem(key);
   4248 
   4249 	var data = JSON.parse(value);
   4250 
   4251 
   4252 	for (var i=0;i<data_len;++i)
   4253 	{
   4254 		heapU8[data_dst+i] = data[i];
   4255 	}
   4256 
   4257 	r_g0 =  data_len;
   4258 	return;
   4259 
   4260 }
   4261 
   4262 function mandreel_removels(sp)
   4263  {
   4264  var ptr_name_a = heap32[sp>>2];sp+=4;
   4265  var key_a = get_string_from_ptr(ptr_name_a);
   4266 
   4267  var my_localStorage = mandreel_getlocalstorage();
   4268 
   4269 	my_localStorage.removeItem(key_a);
   4270 	my_localStorage.removeItem(key_a + '_size');
   4271 	r_g0 = 0;
   4272 
   4273  }
   4274 
   4275 
   4276 function mandreel_renamels(sp)
   4277  {
   4278  var ptr_name_a = heap32[sp>>2];sp+=4;
   4279   var ptr_name_b = heap32[sp>>2];sp+=4;
   4280 
   4281   var key_a = get_string_from_ptr(ptr_name_a);
   4282   var key_b = get_string_from_ptr(ptr_name_b);
   4283 
   4284   var my_localStorage = mandreel_getlocalstorage();
   4285 
   4286 
   4287   var value = my_localStorage.getItem(key_a);
   4288   var value2 = my_localStorage.getItem(key_a + '_size');
   4289 
   4290   if (value != null && value2 != null)
   4291   {
   4292 	my_localStorage.setItem(key_b, value);
   4293 	my_localStorage.setItem(key_b + '_size', value2);
   4294 
   4295 	my_localStorage.removeItem(key_a);
   4296 	my_localStorage.removeItem(key_a + '_size');
   4297 
   4298 
   4299 	r_g0 = 0;
   4300 }
   4301 else
   4302  r_g0 = -1;
   4303  }
   4304 
   4305 function mandreel_writels(sp)
   4306   {
   4307 	var ptr_name = heap32[sp>>2];sp+=4;
   4308 	var data_src = heap32[sp>>2];sp+=4;
   4309 	var data_len = heap32[sp>>2];sp+=4;
   4310 
   4311 	var key = get_string_from_ptr(ptr_name);
   4312 
   4313 
   4314 
   4315 	var data = new Uint8Array(heap,data_src,data_len);
   4316 
   4317 	var value = JSON.stringify(data);
   4318 
   4319 	var my_localStorage = mandreel_getlocalstorage();
   4320 
   4321 	try
   4322 	{
   4323 		my_localStorage.setItem(key, value);
   4324 	} catch(e)
   4325 	{
   4326 		dump('error saving ' + key);
   4327 		dump(e.message);
   4328 		r_g0 =  0;
   4329 		return;
   4330 	}
   4331 
   4332 	try
   4333 	{
   4334 		my_localStorage.setItem(key + '_size', data_len);
   4335 	} catch(e)
   4336 	{
   4337 		dump('error saving ' + key);
   4338 		dump(e.message);
   4339 		r_g0 =  0;
   4340 		return;
   4341 	}
   4342 
   4343 
   4344 	r_g0 =  data_len;
   4345 	return;
   4346 
   4347 }
   4348 
   4349 function mandreel_call_constructors(_ptr, size,stackPos)
   4350 {
   4351 var ptr = _ptr;
   4352 
   4353 ptr = ptr >> 2;
   4354 
   4355 for (var i=0;i<size;++i)
   4356 {
   4357 
   4358 
   4359 var tag = heap32[ptr];
   4360 var ptr_id = heap32[ptr+1];
   4361 
   4362 __FUNCTION_TABLE__[(ptr_id)>>2](stackPos);
   4363 
   4364 ptr+=2;
   4365 
   4366 }
   4367 }
   4368 
   4369 function get_string_from_wptr(ptr)
   4370   {
   4371 	var ret = "";
   4372 
   4373 	if (ptr == 0)
   4374 		return ret;
   4375 
   4376 	assert((ptr&1)==0);
   4377 	ptr>>=1;
   4378 	var i = 0;
   4379 	while (1) {
   4380   //    if ((ptr.pos + i) >= ptr.slab.length) { return "<< Invalid read: " + (ptr.pos+i) + " : " + ptr.slab.length + " >>"; } else {}
   4381 	if (heapU16[ptr + i] == 0)
   4382 		break;
   4383 
   4384       var t = String.fromCharCode(heapU16[ptr + i]);
   4385      // if (t == "\0") { break; } else {}
   4386       ret += t;
   4387       i += 1;
   4388     }
   4389 
   4390 	return ret;
   4391   }
   4392 
   4393   function fill_wptr_from_string(ptr, v)
   4394   {
   4395 	var j;
   4396 	var len = v.length;
   4397 	var data;
   4398 
   4399 	assert((ptr&1)==0);
   4400 	ptr>>=1;
   4401 
   4402   	for(j = 0; j < len; j++)
   4403 	{
   4404 		data = v.charCodeAt(j);
   4405 
   4406 		heapU16[ptr] = data;
   4407 		ptr++;
   4408 	}
   4409 		heapU16[ptr] = 0;
   4410 	}
   4411 
   4412 function mandreelInterGetParams(sp)
   4413 {
   4414 	var params = [];
   4415 
   4416 	var offset = 0;
   4417 	for (i=1;i<arguments.length;++i)
   4418 	{
   4419 		var type = arguments[i];
   4420 
   4421 		switch(type)
   4422 		{
   4423 			case 'int':
   4424 				params[i-1] = heap32[(sp+offset)>>2];
   4425 				break;
   4426 			case 'float':
   4427 				params[i-1] = heapFloat[(sp+offset)>>2];
   4428 				break;
   4429 			case 'string':
   4430 				params[i-1] = get_string_from_ptr(heap32[(sp+offset)>>2]);
   4431 				break;
   4432 			default:
   4433 				assert(false);
   4434 		}
   4435 		offset+=4;
   4436 	}
   4437 
   4438 	return params;
   4439 }
   4440 
   4441 function mandreelInterRetParam(type, value)
   4442 {
   4443 	switch(type)
   4444 	{
   4445 		case 'int':
   4446 			r_g0 = value;
   4447 			break;
   4448 		case 'float':
   4449 			f_g0 = value;
   4450 			break;
   4451 		default:
   4452 			assert(false);
   4453 	}
   4454 
   4455 	return 0;
   4456 }
   4457 
   4458 function MandreelInterGetFunctionPtr(value)
   4459 {
   4460 	return __FUNCTION_TABLE__[value >> 2];
   4461 }
   4462 
   4463 
   4464 function MandreelInterCallFunction(returnType,func_name)
   4465 {
   4466 	var size_params = 0;
   4467 
   4468 	var i;
   4469 	var num_params = (arguments.length-2)/2;
   4470 	num_params|=0;
   4471 	for (i=2;i<num_params*2+2;i+=2)
   4472 	{
   4473 		var type = arguments[i];
   4474 
   4475 		var size_arg = 0;
   4476 		switch(type)
   4477 		{
   4478 			case 'int':
   4479 				size_arg = 4;
   4480 				break;
   4481 			case 'float':
   4482 				size_arg = 4;
   4483 				break;
   4484 			case 'string':
   4485 				size_arg = 4;
   4486 				size_arg += ((arguments[i+1].length + 4) & 0xfffffffc);
   4487 				break;
   4488 			case 'wstring':
   4489 				size_arg = 4;
   4490 				size_arg += ((arguments[i+1].length*2 + 4) & 0xfffffffc);
   4491 				break;
   4492 			default:
   4493 				assert(false);
   4494 		}
   4495 
   4496 		size_params += size_arg;
   4497 	}
   4498 
   4499 	// stack always 8 byte aligned
   4500 	size_params=((size_params+7)& 0xfffffff8);
   4501 
   4502 	var sp = 0;
   4503 
   4504 	if (i<(arguments.length))
   4505 		sp = arguments[i];
   4506 	else
   4507 	{
   4508 		assert(false,"MandreelInterCallFunction missing stack pointer paramenter");
   4509 		//assert(g_mandreel_frame_locked == true);
   4510 		//sp = g_stack_pointer+800*1024;
   4511 	}
   4512 
   4513 	sp-=size_params;
   4514 
   4515 	var offset = 0;
   4516 	var ptr_data = num_params*4+sp;
   4517     for (i=2;i<num_params*2+2;i+=2)
   4518 	{
   4519 		var type = arguments[i];
   4520 
   4521 		var size_arg = 0;
   4522 		switch(type)
   4523 		{
   4524 			case 'int':
   4525 				heap32[(sp+offset)>>2] = arguments[i+1];
   4526 				break;
   4527 			case 'float':
   4528 				heapFloat[(sp+offset)>>2] = arguments[i+1];
   4529 				break;
   4530 			case 'string':
   4531 				{
   4532 					heap32[(sp+offset)>>2] = ptr_data;
   4533 					var string = arguments[i+1];
   4534 					fill_ptr_from_string(ptr_data,string);
   4535 
   4536 					ptr_data += ((string.length + 4) & 0xfffffffc);
   4537 				}
   4538 				break;
   4539 			case 'wstring':
   4540 				{
   4541 					MandreelInterWriteInt((sp+offset),ptr_data);
   4542 					var string = arguments[i+1];
   4543 					MandreelInterWriteWString(ptr_data,string);
   4544 
   4545 					ptr_data += ((string.length*2 + 4) & 0xfffffffc);
   4546 				}
   4547 				break;
   4548 			default:
   4549 				assert(false);
   4550 		}
   4551 		offset+=4;
   4552 	}
   4553 
   4554 	Mandreel_window[func_name](sp);
   4555 
   4556 	if (returnType == 'int')
   4557 		return r_g0;
   4558 	else if (returnType == 'float')
   4559 		return f_g0;
   4560 	else
   4561 	{
   4562 		assert(returnType == 'void');
   4563 		return;
   4564 	}
   4565 }
   4566 
   4567 
   4568 function MandreelInterCallFunctionPtr(returnType,func_ptr)
   4569 {
   4570 	var size_params = 0;
   4571 
   4572 	var i;
   4573 	var num_params = (arguments.length-2)/2;
   4574 	num_params|=0;
   4575 	for (i=2;i<num_params*2+2;i+=2)
   4576 	{
   4577 		var type = arguments[i];
   4578 
   4579 		var size_arg = 0;
   4580 		switch(type)
   4581 		{
   4582 			case 'int':
   4583 				size_arg = 4;
   4584 				break;
   4585 			case 'float':
   4586 				size_arg = 4;
   4587 				break;
   4588 			case 'string':
   4589 				size_arg = 4;
   4590 				size_arg += ((arguments[i+1].length + 4) & 0xfffffffc);
   4591 				break;
   4592 			case 'wstring':
   4593 				size_arg = 4;
   4594 				size_arg += ((arguments[i+1].length*2 + 4) & 0xfffffffc);
   4595 				break;
   4596 			default:
   4597 				assert(false);
   4598 		}
   4599 
   4600 		size_params += size_arg;
   4601 	}
   4602 
   4603 	// stack always 8 byte aligned
   4604 	size_params=((size_params+7)& 0xfffffff8);
   4605 
   4606 	var sp = 0;
   4607 
   4608 	if (i<(arguments.length))
   4609 		sp = arguments[i];
   4610 	else
   4611 	{
   4612 		assert(false);
   4613 		//assert(g_mandreel_frame_locked == true);
   4614 		//sp = g_stack_pointer+800*1024;
   4615 	}
   4616 
   4617 	sp-=size_params;
   4618 
   4619 	var offset = 0;
   4620 	var ptr_data = num_params*4+sp;
   4621     for (i=2;i<num_params*2+2;i+=2)
   4622 	{
   4623 		var type = arguments[i];
   4624 
   4625 		var size_arg = 0;
   4626 		switch(type)
   4627 		{
   4628 			case 'int':
   4629 				heap32[(sp+offset)>>2] = arguments[i+1];
   4630 				break;
   4631 			case 'float':
   4632 				heapFloat[(sp+offset)>>2] = arguments[i+1];
   4633 				break;
   4634 			case 'string':
   4635 				{
   4636 					heap32[(sp+offset)>>2] = ptr_data;
   4637 					var string = arguments[i+1];
   4638 					fill_ptr_from_string(ptr_data,string);
   4639 
   4640 					ptr_data += ((string.length + 4) & 0xfffffffc);
   4641 				}
   4642 				break;
   4643 			case 'wstring':
   4644 				{
   4645 					MandreelInterWriteInt((sp+offset),ptr_data);
   4646 					var string = arguments[i+1];
   4647 					MandreelInterWriteWString(ptr_data,string);
   4648 
   4649 					ptr_data += ((string.length*2 + 4) & 0xfffffffc);
   4650 				}
   4651 				break;
   4652 			default:
   4653 				assert(false);
   4654 		}
   4655 		offset+=4;
   4656 	}
   4657 
   4658 	__FUNCTION_TABLE__[(func_ptr)>>2](sp);
   4659 
   4660 	if (returnType == 'int')
   4661 		return r_g0;
   4662 	else if (returnType == 'float')
   4663 		return f_g0;
   4664 	else
   4665 	{
   4666 		assert(returnType == 'void');
   4667 		return;
   4668 	}
   4669 }
   4670 
   4671 
   4672 var MANDREEL_HTTP_REQUEST_MODE_GET = 0;
   4673 var MANDREEL_HTTP_REQUEST_MODE_POST = 1;
   4674 var MANDREEL_HTTP_REQUEST_MODE_PUT = 2;
   4675 
   4676 var MANDREEL_HTTP_REQUEST_STATUS_ERROR = 0;
   4677 var MANDREEL_HTTP_REQUEST_STATUS_BUSY = 1;
   4678 var MANDREEL_HTTP_REQUEST_STATUS_FINISHED = 2;
   4679 var MANDREEL_HTTP_REQUEST_STATUS_INIT = 3;
   4680 
   4681 
   4682 var mandreel_js_mapping_ids = [];
   4683 var mandreel_js_mapping_ids_free = [];
   4684 
   4685 
   4686 function Mandreel_HttpRequest_Create(sp)
   4687 {
   4688 	var ptr_url = heap32[sp>>2];sp+=4;
   4689 	var type = heap32[sp>>2];sp+=4;
   4690 
   4691 
   4692 	var url = get_string_from_ptr(ptr_url);
   4693 
   4694 
   4695 	var str_type = 'GET';
   4696 	if (type == MANDREEL_HTTP_REQUEST_MODE_GET)
   4697 		str_type = 'GET';
   4698 	else if (type == MANDREEL_HTTP_REQUEST_MODE_PUT)
   4699 		str_type = 'PUT';
   4700 	else if (type == MANDREEL_HTTP_REQUEST_MODE_POST)
   4701 		str_type = 'POST';
   4702 
   4703 	var xmlhttp_get = new XMLHttpRequest();
   4704 	xmlhttp_get.open(str_type,url);
   4705 
   4706 	if("responseType" in xmlhttp_get)
   4707 		xmlhttp_get.responseType="arraybuffer";
   4708     else
   4709 	{
   4710 		xmlhttp_get.overrideMimeType('text/plain; charset=x-user-defined');
   4711 	}
   4712 
   4713 	if (mandreel_js_mapping_ids_free.length == 0)
   4714 		mandreel_js_mapping_ids_free.push(mandreel_js_mapping_ids.length);
   4715 
   4716 	var new_id = mandreel_js_mapping_ids_free.pop();
   4717 
   4718 	var my_state = {
   4719 	buffer : null,
   4720 	httpRequest : xmlhttp_get,
   4721 	status : MANDREEL_HTTP_REQUEST_STATUS_INIT,
   4722 	offset_read : 0
   4723   };
   4724 
   4725 
   4726 
   4727 	mandreel_js_mapping_ids[new_id] = my_state;
   4728 
   4729 	r_g0 = new_id+1;
   4730 }
   4731 
   4732 function Mandreel_HttpRequest_Send(sp)
   4733 {
   4734 	var _id = heap32[sp>>2];sp+=4;
   4735 	var ptr_data = heap32[sp>>2];sp+=4;
   4736 	var id = _id-1;
   4737 
   4738 	var data;
   4739 
   4740 	if (ptr_data)
   4741 		data = get_string_from_ptr(ptr_data);
   4742 	else
   4743 		data = null;
   4744 
   4745 	var my_state = mandreel_js_mapping_ids[id];
   4746 
   4747 
   4748 	my_state.status = MANDREEL_HTTP_REQUEST_STATUS_BUSY;
   4749 
   4750 	my_state.httpRequest.onreadystatechange = function()
   4751 	{
   4752 		if (my_state.httpRequest.readyState==4)
   4753 		{
   4754 			if (my_state.httpRequest.status==200)
   4755 			{
   4756 				var buffer;
   4757 
   4758 				if (my_state.httpRequest.responseType=="arraybuffer")
   4759 					buffer=my_state.httpRequest.response;
   4760 				else if (my_state.httpRequest.mozResponseArrayBuffer != null)
   4761 					buffer = my_state.httpRequest.mozResponseArrayBuffer;
   4762 				else
   4763 					buffer=my_state.httpRequest.response;
   4764 
   4765 				my_state.status = MANDREEL_HTTP_REQUEST_STATUS_FINISHED;
   4766 				my_state.buffer =  new Uint8Array(buffer);
   4767 				//alert(my_state.buffer.length);
   4768 
   4769 				//alert(mandreel_js_mapping_ids[id].buffer);
   4770 
   4771 			}
   4772 			else
   4773 				my_state.status = MANDREEL_HTTP_REQUEST_STATUS_ERROR;
   4774 		}
   4775 	}
   4776 
   4777 	my_state.httpRequest.send(data);
   4778 }
   4779 
   4780 
   4781 function Mandreel_HttpRequest_Status(sp)
   4782 {
   4783 	var _id = heap32[sp>>2];sp+=4;
   4784 	var id = _id-1;
   4785 
   4786 
   4787 	r_g0 = mandreel_js_mapping_ids[id].status;
   4788 }
   4789 
   4790 function Mandreel_HttpRequest_Read(sp)
   4791 {
   4792 	var _id = heap32[sp>>2];sp+=4;
   4793 	var ptr = heap32[sp>>2];sp+=4;
   4794 	var size = heap32[sp>>2];sp+=4;
   4795 	var id = _id-1;
   4796 
   4797 	var remaining_bytes =  mandreel_js_mapping_ids[id].buffer.length - mandreel_js_mapping_ids[id].offset_read;
   4798 
   4799 	if (size>remaining_bytes)
   4800 		size = remaining_bytes;
   4801 
   4802 	var sub_array = mandreel_js_mapping_ids[id].buffer.subarray(mandreel_js_mapping_ids[id].offset_read, mandreel_js_mapping_ids[id].offset_read+size);
   4803 	heapU8.set(sub_array,ptr);
   4804 
   4805 	mandreel_js_mapping_ids[id].offset_read+=size;
   4806 
   4807 	r_g0 = size;
   4808 }
   4809 
   4810 function Mandreel_HttpRequest_BytesAvalable(sp)
   4811 {
   4812 	var _id = heap32[sp>>2];sp+=4;
   4813 	var id = _id-1;
   4814 
   4815 
   4816 	if (mandreel_js_mapping_ids[id].buffer)
   4817 		r_g0 = mandreel_js_mapping_ids[id].buffer.length - mandreel_js_mapping_ids[id].offset_read;
   4818 	else
   4819 		r_g0 = 0;
   4820 }
   4821 
   4822 function Mandreel_HttpRequest_Close(sp)
   4823 {
   4824 	var _id = heap32[sp>>2];sp+=4;
   4825 	var id = _id-1;
   4826 
   4827 	mandreel_js_mapping_ids[id] = null;
   4828 	mandreel_js_mapping_ids_free.push(id);
   4829 }
   4830 
   4831 function Mandreel_HttpRequest_SetRequestHeader(sp)
   4832 {
   4833 	var _id = heap32[sp>>2];sp+=4;
   4834 	var ptr_a = heap32[sp>>2];sp+=4;
   4835 	var ptr_b = heap32[sp>>2];sp+=4;
   4836 	var id = _id-1;
   4837 
   4838 	var str_a = get_string_from_ptr(ptr_a);
   4839 	var str_b = get_string_from_ptr(ptr_b);
   4840 
   4841 	var my_state = mandreel_js_mapping_ids[id];
   4842 
   4843 	my_state.httpRequest.setRequestHeader(str_a, str_b);
   4844 }
   4845 
   4846 
   4847 var Mandreel_TextureAsync_textures = 0;
   4848 var Mandreel_TextureAsync_textures_loaded = 0;
   4849 
   4850 var Mandreel_TextureAsync_PackBufferData = new Array();
   4851 
   4852 function Mandreel_TextureAsync_SetData(sp)
   4853 {
   4854 	var texture_id = heap32[sp>>2];sp+=4;
   4855 
   4856 	var tex = array_ids_ogl[texture_id];
   4857 
   4858 	if ( mandreelAppPlatform != "canvas" )
   4859 	{
   4860 		imandreel_gl.texImage2D(imandreel_gl.TEXTURE_2D, 0, imandreel_gl.RGBA, imandreel_gl.RGBA, imandreel_gl.UNSIGNED_BYTE, tex.image);
   4861 		tex.image = null;
   4862 	}
   4863 }
   4864 
   4865 function Mandreel_TextureAsync_CheckPending(sp)
   4866 {
   4867 	r_g0 = Mandreel_TextureAsync_textures - Mandreel_TextureAsync_textures_loaded;
   4868 }
   4869 
   4870 function Mandreel_TextureAsync_GetProperties(sp)
   4871 {
   4872 	var texture_id = heap32[sp>>2];sp+=4;
   4873 	var ptr_width = heap32[sp>>2];sp+=4;
   4874 	var ptr_height = heap32[sp>>2];sp+=4;
   4875 
   4876 	var tex = array_ids_ogl[texture_id];
   4877 
   4878 	if (tex == null || tex.mandreel_width == undefined)
   4879 		r_g0 = 0;
   4880 	else
   4881 	{
   4882 		heap32[ptr_width>>2] = tex.mandreel_width;
   4883 		heap32[ptr_height>>2] = tex.mandreel_height;
   4884 		r_g0 = 1;
   4885 	}
   4886 }
   4887 
   4888 function mandreel_arrayBufferDataUri(offset, size, buffer) {
   4889 var bytes = new Uint8Array(buffer,offset,size)
   4890    var ascii = '';
   4891    for (var i=0; i<bytes.length; i++)
   4892      ascii += String.fromCharCode(bytes[i]);
   4893    var base64 = btoa(ascii);
   4894 
   4895   if (/^\x89PNG/.test(ascii))
   4896     return 'data:image/png;base64,'+base64;
   4897   else
   4898     return 'data:image/jpeg;base64,'+base64;
   4899   }
   4900 
   4901  function mandreel_texture_async_fix_name(name)
   4902 {
   4903 	var ascii = '';
   4904 
   4905 	var j;
   4906 	var len = name.length;
   4907 
   4908 
   4909 	for(j = 0; j < len; j++)
   4910 	{
   4911 		var my_char = name[j];
   4912 
   4913 		if (my_char == '/')
   4914 			my_char = '_';
   4915 
   4916 		ascii+=my_char;
   4917 
   4918 	}
   4919 
   4920    return ascii;
   4921 }
   4922 
   4923 
   4924 
   4925 function Mandreel_TextureAsync_Load(sp)
   4926 {
   4927 	var ptr_name = heap32[sp>>2];sp+=4;
   4928 	var texture_id = heap32[sp>>2];sp+=4;
   4929 
   4930 	var name = get_string_from_ptr(ptr_name);
   4931 
   4932 	var nameSrc = name;
   4933 
   4934 	name = name.toLowerCase();
   4935 
   4936 
   4937 	var full_name	= g_mandreel_working_folder + name;
   4938 
   4939 	var image  = new Image();
   4940 
   4941 
   4942 	Mandreel_TextureAsync_textures++;
   4943 
   4944 	var imgURL = null;
   4945 
   4946 
   4947 
   4948 
   4949 	image.onerror = function() {
   4950           dump('error loading texture ' + image.src + '\n');
   4951 		  Mandreel_TextureAsync_textures_loaded++;
   4952       }
   4953 	image.onload = function()
   4954 	{
   4955 		if (imgURL)
   4956 		{
   4957 			var URL = Mandreel_window.URL || Mandreel_window.webkitURL;
   4958 			URL.revokeObjectURL(imgURL);
   4959 		}
   4960 		if ( mandreelAppPlatform == "canvas" )
   4961 		{
   4962 			array_ids_ogl[texture_id] = image;
   4963 			Mandreel_TextureAsync_textures_loaded++;
   4964 		}
   4965 		else
   4966 		{
   4967 			var tex = array_ids_ogl[texture_id];
   4968 			if (tex)
   4969 			{
   4970 				tex.image = image;
   4971 				tex.mandreel_width = image.width;
   4972 				tex.mandreel_height = image.height;
   4973 				Mandreel_TextureAsync_textures_loaded++;
   4974 
   4975 				var sp = MandreelLockFrame();
   4976 				MandreelInterCallFunction('void',"Mandreel_TextureAsync_Loaded",'int',texture_id,'int',image.width,'int',image.height, sp);
   4977 				MandreelUnlockFrame();
   4978 		}
   4979 			else
   4980 			{
   4981 				dump('texture not valid ' + texture_id + ' ' + name + '\n');
   4982 				Mandreel_TextureAsync_textures_loaded++;
   4983 			}
   4984 		}
   4985 
   4986 
   4987 	}
   4988 
   4989 	var new_sp = sp-4096;
   4990 
   4991 	var packfile = new_sp + 2048;
   4992 	var offset_ptr = new_sp + 2048+1024;
   4993 	var size_ptr = new_sp + 2048+1024+4;
   4994 
   4995 	fill_ptr_from_string(new_sp + 1024,name);
   4996 
   4997 	heap32[(new_sp)>>2] = new_sp + 1024;
   4998 	heap32[(new_sp+4)>>2] = offset_ptr;
   4999 	heap32[(new_sp+8)>>2] = size_ptr;
   5000 	heap32[(new_sp+12)>>2] = packfile;
   5001 	iMandreel_TextureAsync_GetPackOffset(new_sp);
   5002 
   5003 
   5004 	var image_src;
   5005 
   5006 	var image_src_valid = true;
   5007 
   5008 	if (r_g0)
   5009 	{
   5010 		var packfilename = get_string_from_ptr(packfile);
   5011 		image_src = mandreel_arrayBufferDataUri(heap32[offset_ptr>>2],heap32[size_ptr>>2],Mandreel_TextureAsync_PackBufferData[packfilename]);
   5012 	}
   5013 	else
   5014 	{
   5015 
   5016 		if (nameSrc.search('http:') != -1 || nameSrc.search('https:') != -1)
   5017 		{
   5018 			image.crossOrigin = 'anonymous'; // no credentials flag. Same as
   5019 			image_src = nameSrc;
   5020 		}
   5021 		else
   5022 		{
   5023 			if (mandreel_is_filesystem())
   5024 			{
   5025 				image_src_valid = false;
   5026 
   5027 				var new_name = mandreel_texture_async_fix_name(full_name);
   5028 				mandreel_fs_get_url(new_name, function Mandreel_TextureAsync_Load_FS(data) {
   5029 					if (data)
   5030 					{
   5031 						image.src = data;
   5032 					}
   5033 					else
   5034 					{
   5035 						var packdata_request = new XMLHttpRequest();
   5036 
   5037 						packdata_request.open("GET", full_name, true);
   5038 
   5039 						if("responseType" in packdata_request)
   5040 							packdata_request.responseType="arraybuffer";
   5041 						else
   5042 							packdata_request.overrideMimeType('text/plain; charset=x-user-defined');
   5043 
   5044 						packdata_request.onreadystatechange = function()
   5045 						{
   5046 							if (packdata_request.readyState != 4) return;
   5047 
   5048 							if (packdata_request.status == 200)
   5049 							{
   5050 								var buffer;
   5051 								if (packdata_request.responseType=="arraybuffer")
   5052 									buffer=packdata_request.response;
   5053 								else if (packdata_request.mozResponseArrayBuffer != null)
   5054 									buffer = packdata_request.mozResponseArrayBuffer;
   5055 								else
   5056 									buffer=packdata_request.response;
   5057 
   5058 								mandreel_fs_saveFile(new_name, buffer);
   5059 
   5060 								var uri = mandreel_arrayBufferDataUri(0,buffer.byteLength,buffer);
   5061 
   5062 								image.src = uri;
   5063 
   5064 							}
   5065 							else
   5066 							{
   5067 
   5068 								Mandreel_TextureAsync_textures_loaded++;
   5069 
   5070 							}
   5071 						}
   5072 
   5073 						packdata_request.send();
   5074 
   5075 					}
   5076 				}
   5077 				);
   5078 			}
   5079 			else if (mandreel_is_indexeddb())
   5080 			{
   5081 				image_src_valid = false;
   5082 
   5083 				var new_name = mandreel_texture_async_fix_name(full_name);
   5084 				mandreel_indexedDB.load(new_name,function Mandreel_TextureAsync_Load_IDB(data) {
   5085 					if (data)
   5086 					{
   5087 						 var URL = Mandreel_window.URL || Mandreel_window.webkitURL;
   5088 
   5089 
   5090 						// Create and revoke ObjectURL
   5091 						imgURL = URL.createObjectURL(data);
   5092 
   5093 						image.src = imgURL;
   5094 					}
   5095 					else
   5096 					{
   5097 						var packdata_request = new XMLHttpRequest();
   5098 
   5099 						packdata_request.open("GET", full_name, true);
   5100 
   5101 						 packdata_request.responseType = "blob";
   5102 
   5103 
   5104 
   5105 						packdata_request.onreadystatechange = function()
   5106 						{
   5107 							if (packdata_request.readyState != 4) return;
   5108 
   5109 							if (packdata_request.status == 200)
   5110 							{
   5111 								var buffer=packdata_request.response;
   5112 
   5113 								 var URL = Mandreel_window.URL || Mandreel_window.webkitURL;
   5114 
   5115 								// Create and revoke ObjectURL
   5116 								imgURL = URL.createObjectURL(buffer);
   5117 
   5118 								image.src = imgURL;
   5119 
   5120 								mandreel_fs_saveFile(new_name, buffer);
   5121 
   5122 							}
   5123 							else
   5124 							{
   5125 
   5126 								Mandreel_TextureAsync_textures_loaded++;
   5127 
   5128 							}
   5129 						}
   5130 
   5131 						packdata_request.send();
   5132 					}
   5133 
   5134 				}
   5135 				);
   5136 			}
   5137 			else
   5138 				image_src = full_name;
   5139 		}
   5140 	}
   5141 
   5142 
   5143 	if (image_src_valid)
   5144 	{
   5145 		setTimeout( function Mandreel_TextureAsync_Load_callback() {
   5146 						image.src = image_src;
   5147 					}, 1);
   5148 	}
   5149 }
   5150 
   5151 
   5152 
   5153 function __sandbox_OutputDebugString(sp)
   5154 {
   5155 	puts(sp);
   5156 }
   5157 
   5158 
   5159 
   5160 
   5161 var MANDREELCALLJS_TYPE_RETURN_VOID = 0;
   5162 var MANDREELCALLJS_TYPE_INT = 1;
   5163 var MANDREELCALLJS_TYPE_FLOAT =  2;
   5164 var MANDREELCALLJS_TYPE_STRING =  3;
   5165 var MANDREELCALLJS_TYPE_RETURN_INT =  4;
   5166 var MANDREELCALLJS_TYPE_RETURN_FLOAT =  5;
   5167 
   5168 function MandreelInterWriteString(ptr, value)
   5169 {
   5170 	fill_ptr_from_string(ptr,value);
   5171 }
   5172 
   5173 function MandreelInterWriteWString(ptr, value)
   5174 {
   5175 	fill_wptr_from_string(ptr, value);
   5176 }
   5177 
   5178 function MandreelInterWriteFloat(ptr, value)
   5179 {
   5180 	heapFloat[ptr>>2] = value;
   5181 }
   5182 
   5183 function MandreelPause()
   5184 {
   5185 	_imandreel_pause_game = true;
   5186 }
   5187 
   5188 function MandreelResume()
   5189 {
   5190 	_imandreel_pause_game = false;
   5191 }
   5192 
   5193 
   5194 function MandreelLockFrame()
   5195 {
   5196 	assert(g_mandreel_frame_inframe == false, "calling lockframe during render frame");
   5197 	assert(g_mandreel_frame_locked == false, "calling lockframe twice");
   5198 	g_mandreel_frame_locked = true;
   5199 
   5200 	return g_stack_pointer+800*1024;
   5201 }
   5202 
   5203 function MandreelUnlockFrame()
   5204 {
   5205 	assert(g_mandreel_frame_inframe == false);
   5206 	g_mandreel_frame_locked = false;
   5207 }
   5208 
   5209 
   5210 function MandreelInterWriteInt(ptr, value)
   5211 {
   5212 	heap32[ptr>>2] = value;
   5213 }
   5214 
   5215 function MandreelInterStringFromWPtr(ptr)
   5216 {
   5217 	return get_string_from_wptr(ptr);
   5218 }
   5219 
   5220 function MandreelInterStringFromPtr(ptr)
   5221 {
   5222 	return get_string_from_ptr(ptr);
   5223 }
   5224 
   5225 function mandreel_my_call_external_array(method, params)
   5226 {
   5227 	var result
   5228 	var resultString;
   5229 	try
   5230 	{
   5231 		switch(params.length)
   5232 		{
   5233 			case 1:
   5234 				resultString = Mandreel_window[method](params[0]);
   5235 				break;
   5236 			case 2:
   5237 				resultString = Mandreel_window[method](params[0],params[1]);
   5238 				break;
   5239 			case 3:
   5240 				resultString = Mandreel_window[method](params[0],params[1],params[2]);
   5241 				break;
   5242 			case 4:
   5243 				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3]);
   5244 				break;
   5245 			case 5:
   5246 				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4]);
   5247 				break;
   5248 			case 6:
   5249 				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5]);
   5250 				break;
   5251 			case 7:
   5252 				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6]);
   5253 				break;
   5254 			case 8:
   5255 				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7]);
   5256 				break;
   5257 			case 9:
   5258 				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8]);
   5259 				break;
   5260 			case 10:
   5261 				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9]);
   5262 				break;
   5263 			case 11:
   5264 				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10]);
   5265 				break;
   5266 			case 12:
   5267 				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11]);
   5268 				break;
   5269 			case 13:
   5270 				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12]);
   5271 				break;
   5272 			case 14:
   5273 				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13]);
   5274 				break;
   5275 			case 15:
   5276 				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14]);
   5277 				break;
   5278 			default:
   5279 				assert(false);
   5280 		}
   5281 		result = 0;
   5282 	} catch(e) { dump('error calling ' + method + '\n'); dump(e); result = 1;}
   5283 
   5284 	return [result,resultString];
   5285 }
   5286 
   5287 
   5288 function Mandreel_InterJS_Call(sp)
   5289 {
   5290 	var new_sp = sp;
   5291 	var method_ptr = heap32[sp>>2];sp+=4;
   5292 	var method = get_string_from_ptr(method_ptr);
   5293 
   5294 	var params = new Array();
   5295 
   5296 
   5297 	params.push(new_sp);
   5298 
   5299 	var var_int;
   5300 	var var_string;
   5301 	var var_double;
   5302 
   5303 	var return_type;
   5304 	var return_ptr;
   5305 	while (true)
   5306 	{
   5307 		var my_type = heap32[sp>>2];sp+=4;
   5308 
   5309 
   5310 		if (my_type == MANDREELCALLJS_TYPE_RETURN_VOID)
   5311 		{
   5312 			return_type = my_type;
   5313 			break;
   5314 		}
   5315 		else if (my_type == MANDREELCALLJS_TYPE_INT)
   5316 		{
   5317 			var_int = heap32[sp>>2];
   5318 
   5319 			params.push(var_int);
   5320 			sp+=4;
   5321 		}
   5322 		else if (my_type == MANDREELCALLJS_TYPE_FLOAT)
   5323 		{
   5324 			sp = (sp+7) & ~7;
   5325 
   5326 			var_double = llvm_readDouble(sp);
   5327 
   5328 			params.push(var_double);
   5329 			sp+=8;
   5330 		}
   5331 		else if (my_type == MANDREELCALLJS_TYPE_STRING)
   5332 		{
   5333 			var_int = heap32[sp>>2];
   5334 			var_string = get_string_from_ptr(var_int);
   5335 
   5336 			params.push(var_string);
   5337 			sp+=4;
   5338 		}
   5339 		else if (my_type == MANDREELCALLJS_TYPE_RETURN_INT)
   5340 		{
   5341 			return_type = my_type;
   5342 			return_ptr = heap32[sp>>2];
   5343 			break;
   5344 		}
   5345 		else if (my_type == MANDREELCALLJS_TYPE_RETURN_FLOAT)
   5346 		{
   5347 			return_type = my_type;
   5348 			return_ptr = heap32[sp>>2];
   5349 			break;
   5350 		}
   5351 		else
   5352 		{
   5353 			assert(false, "invalid arguments calling Mandreel_InterJS_Call");
   5354 		}
   5355 	}
   5356 
   5357 	var result = mandreel_my_call_external_array(method,params);
   5358 
   5359 	r_g0 = result[0];
   5360 
   5361 
   5362 	if (r_g0 == 0)
   5363 	{
   5364 		if (return_type == MANDREELCALLJS_TYPE_RETURN_INT)
   5365 		{
   5366 			heap32[return_ptr>>2] = result[1];
   5367 		}
   5368 		else if (return_type == MANDREELCALLJS_TYPE_RETURN_FLOAT)
   5369 		{
   5370 			heapFloat[return_ptr>>2] = result[1];
   5371 		}
   5372 
   5373 	}
   5374 }
   5375 
   5376 function iMandreelRegisterExternalCallback()
   5377 {
   5378 }
   5379 
   5380 function __mandreel_internal_CreateWindow()
   5381 {
   5382 }
   5383 
   5384 var __mandreel_async_calls_mandreel = [];
   5385 var __mandreel_async_calls_js = [];
   5386 
   5387 
   5388 function Mandreel_InterJS_AsyncCall(sp)
   5389 {
   5390 	var method_ptr = heap32[sp>>2];sp+=4;
   5391 	var _func_name = get_string_from_ptr(method_ptr);
   5392 	var param_ptr = heap32[sp>>2];sp+=4;
   5393 	var _param = get_string_from_ptr(param_ptr);
   5394 
   5395 	__mandreel_async_calls_js.push({func_name:_func_name,param:_param});
   5396 }
   5397 
   5398 
   5399 
   5400 
   5401 function MandreelInterCallFunctionAsync(_func_name, _param)
   5402 {
   5403 	__mandreel_async_calls_mandreel.push({func_name:_func_name,param:_param});
   5404 
   5405 
   5406 }
   5407 
   5408 function __mandreel_process_async_calls()
   5409 {
   5410 	if (__mandreel_async_calls_mandreel.length)
   5411 	{
   5412 		var temp_list = __mandreel_async_calls_mandreel.slice(0);
   5413 
   5414 		__mandreel_async_calls_mandreel = [];
   5415 
   5416 		for (var i=0;i<temp_list.length;++i)
   5417 		{
   5418 			var param = temp_list[i].param;
   5419 			var func_name = temp_list[i].func_name;
   5420 
   5421 			var size = ((param.length + 1)+7)&0xFFFFFFF8;
   5422 
   5423 			var sp = g_stack_pointer+800*1024;
   5424 
   5425 			var str_ptr = sp - size;
   5426 			fill_ptr_from_string(str_ptr,param);
   5427 
   5428 			sp = str_ptr - 4;
   5429 			heap32[sp>>2] = str_ptr;
   5430 
   5431 			Mandreel_window[func_name](sp);
   5432 		}
   5433 	}
   5434 
   5435 	if (__mandreel_async_calls_js.length)
   5436 	{
   5437 		var temp_list = __mandreel_async_calls_js.slice(0);
   5438 
   5439 		__mandreel_async_calls_js = [];
   5440 
   5441 		for (var i=0;i<temp_list.length;++i)
   5442 		{
   5443 			var param = temp_list[i].param;
   5444 			var func_name = temp_list[i].func_name;
   5445 
   5446 			Mandreel_window[func_name](param);
   5447 
   5448 		}
   5449 	}
   5450 }
   5451 
   5452 function mandreel_internal_isCanvas(sp)
   5453 {
   5454 	if ( mandreelAppPlatform == "canvas" )
   5455 		r_g0 = 1;
   5456 	else
   5457 		r_g0 = 0;
   5458 }
   5459 
   5460 function Mandreel_Device_SetFullScreen(sp)
   5461 {
   5462 	var enable = heap32[sp>>2];sp+=4;
   5463 	mandreelAppFullscreen(enable);
   5464 }
   5465 
   5466 var array_ids_ogl = [];
   5467 
   5468 var max_ogl_id = 8192;
   5469 
   5470 var array_ids_ogl_enable = [];
   5471 var g_current_program_id = 0;
   5472 
   5473 
   5474 var uniformArrays2 = [];
   5475 var uniformArrays3 = [];
   5476 var uniformArrays4 = [];
   5477 var uniformArraysCreated = 0;
   5478 var mandreel_draw_enable = true;
   5479 
   5480 
   5481 if (typeof imandreel_gl=="undefined")
   5482 {
   5483 	alert('using old template, update code');
   5484 }
   5485 
   5486 function myglCreateUniformArrays()
   5487 {
   5488 	if ( uniformArraysCreated == 0 )
   5489 	{
   5490 		for(var i=0; i<256;i++ )
   5491 		{
   5492 			uniformArrays2[i] = new Float32Array(i*2);
   5493 			uniformArrays3[i] = new Float32Array(i*3);
   5494 			uniformArrays4[i] = new Float32Array(i*4);
   5495 		}
   5496 		uniformArraysCreated = 1;
   5497 	}
   5498 }
   5499 
   5500 var my_super_id = 1;
   5501 function myglNewSlot()
   5502 {
   5503 	//var id = array_ids_ogl_enable.pop();
   5504 	var id = my_super_id;
   5505 	my_super_id++;
   5506 	return id;
   5507 }
   5508 
   5509 function myglFreeSlot(id)
   5510 {
   5511 	//array_ids_ogl_enable.push(id);
   5512 }
   5513 
   5514 
   5515 function myglCreateProgram(sp)
   5516 {
   5517 	var id = myglNewSlot();
   5518 	var program = imandreel_gl.createProgram();
   5519 
   5520 	program.uniform_locations_current_id = 0;
   5521 	program.array_uniform_locations = [];
   5522 
   5523 	array_ids_ogl[id] = program;
   5524 
   5525 
   5526 	r_g0 = id;
   5527 }
   5528 
   5529 function myglCreateShader(sp)
   5530 {
   5531 	var type = heap32[sp>>2];sp+=4;
   5532 	var id = myglNewSlot();
   5533 
   5534 	array_ids_ogl[id] = imandreel_gl.createShader(type);
   5535 
   5536 	r_g0 = id;
   5537 }
   5538 
   5539 function myglAttachShader(sp)
   5540 {
   5541 	var program_id = heap32[sp>>2];sp+=4;
   5542 	var shader_id = heap32[sp>>2];sp+=4;
   5543 
   5544 	imandreel_gl.attachShader(array_ids_ogl[program_id], array_ids_ogl[shader_id]);
   5545 }
   5546 
   5547 function myglBindAttribLocation(sp)
   5548 {
   5549 	var program_id = heap32[sp>>2];sp+=4;
   5550 	var index = heap32[sp>>2];sp+=4;
   5551 	var ptr_string = heap32[sp>>2];sp+=4;
   5552 
   5553 	var string = get_string_from_ptr(ptr_string);
   5554 
   5555 	imandreel_gl.bindAttribLocation(array_ids_ogl[program_id], index, string);
   5556 }
   5557 
   5558 function myglLinkProgram(sp)
   5559 {
   5560 	var program_id = heap32[sp>>2];sp+=4;
   5561 
   5562 	imandreel_gl.linkProgram(array_ids_ogl[program_id]);
   5563 }
   5564 
   5565 function myglShaderSource(sp)
   5566 {
   5567 	var id = heap32[sp>>2];sp+=4;
   5568 	var ptr_string = heap32[sp>>2];sp+=4;
   5569 
   5570 	var shader = array_ids_ogl[id];
   5571 
   5572 	var shader_code = get_string_from_ptr(ptr_string);
   5573 
   5574 	//dump(shader_code);
   5575 
   5576 
   5577 	imandreel_gl.shaderSource(shader, shader_code);
   5578 }
   5579 
   5580 
   5581 function myglDrawArrays(sp)
   5582 {
   5583 	var mode = heap32[sp>>2];sp+=4;
   5584 	var first = heap32[sp>>2];sp+=4;
   5585 	var count = heap32[sp>>2];sp+=4;
   5586 
   5587 	if (mandreel_draw_enable)
   5588 		imandreel_gl.drawArrays(mode, first, count);
   5589 
   5590 
   5591 	//dump('draw arrays ' + mode + ' ' + first + ' ' + count + '\n');
   5592  }
   5593 
   5594 function myglDrawElements(sp)
   5595 {
   5596 	var mode = heapU32[sp>>2]; sp+=4;
   5597 	var count = heapU32[sp>>2]; sp+=4;
   5598 	var type = heapU32[sp>>2]; sp+=4;
   5599 	var offset = heapU32[sp>>2]; sp+=4;
   5600 
   5601 
   5602 	if (mandreel_draw_enable)
   5603 		imandreel_gl.drawElements(mode, count, type, offset);
   5604 
   5605 
   5606 
   5607 }
   5608 
   5609 function myglCreateTexture(sp)
   5610 {
   5611 	var id = myglNewSlot();
   5612 	array_ids_ogl[id] = imandreel_gl.createTexture();
   5613 
   5614 	r_g0 = id;
   5615 }
   5616 
   5617 function myglCreateRenderBuffer(sp) {
   5618 	var id = myglNewSlot();
   5619     array_ids_ogl[id] = imandreel_gl.createRenderbuffer();
   5620 
   5621     r_g0 = id;
   5622 }
   5623 
   5624 function myglCreateFrameBuffer(sp) {
   5625 	var id = myglNewSlot();
   5626     array_ids_ogl[id] = imandreel_gl.createFramebuffer();
   5627 
   5628     r_g0 = id;
   5629 }
   5630 
   5631 function myglBindFramebuffer(sp)
   5632 {
   5633     var target = heap32[sp >> 2]; sp += 4;
   5634     var framebuffer_id = heap32[sp >> 2]; sp += 4;
   5635 
   5636 	if (framebuffer_id != 0)
   5637 	{
   5638 		var framebuffer = array_ids_ogl[framebuffer_id];
   5639 		imandreel_gl.bindFramebuffer(target,framebuffer);
   5640 	}
   5641 	else
   5642 		imandreel_gl.bindFramebuffer(target,null);
   5643 
   5644 }
   5645 
   5646 function myglBindRenderbuffer(sp)
   5647 {
   5648     var target = heap32[sp >> 2]; sp += 4;
   5649     var renderbuffer_id = heap32[sp >> 2]; sp += 4;
   5650 
   5651     var renderbuffer = array_ids_ogl[renderbuffer_id];
   5652 
   5653     imandreel_gl.bindRenderbuffer(target,renderbuffer);
   5654 
   5655 }
   5656 
   5657 
   5658 function myglRenderbufferStorage(sp) {
   5659     var target = heap32[sp >> 2]; sp += 4;
   5660     var internalformat = heap32[sp >> 2]; sp += 4;
   5661     var witdth = heap32[sp >> 2]; sp += 4;
   5662     var height = heap32[sp >> 2]; sp += 4;
   5663 
   5664     imandreel_gl.renderbufferStorage(target, internalformat, witdth, height);
   5665 
   5666 }
   5667 
   5668 function myglFramebufferRenderbuffer (sp)
   5669 {
   5670   var target = heap32[sp>>2];sp+=4;
   5671   var attachment = heap32[sp>>2];sp+=4;
   5672   var renderbuffertarget = heap32[sp>>2];sp+=4;
   5673   var renderbuffer_id = heap32[sp>>2];sp+=4;
   5674 
   5675     var renderbuffer = array_ids_ogl[renderbuffer_id];
   5676 
   5677     imandreel_gl.framebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
   5678 
   5679 }
   5680 
   5681 function myglFramebufferTexture2D (sp)
   5682 {
   5683   var target = heap32[sp>>2];sp+=4;
   5684   var attachment = heap32[sp>>2];sp+=4;
   5685   var textarget = heap32[sp>>2];sp+=4;
   5686   var texture_id = heap32[sp>>2];sp+=4;
   5687   var level = heap32[sp>>2];sp+=4;
   5688 
   5689   var texture = array_ids_ogl[texture_id];
   5690 
   5691   imandreel_gl.framebufferTexture2D(target, attachment, textarget, texture, level);
   5692 
   5693 
   5694 }
   5695 
   5696 function myglTexImage2D(sp)
   5697  {
   5698   var target = heap32[sp>>2];sp+=4;
   5699   var level = heap32[sp>>2];sp+=4;
   5700   var internalFormat = heap32[sp>>2];sp+=4;
   5701   var width = heap32[sp>>2];sp+=4;
   5702   var height = heap32[sp>>2];sp+=4;
   5703   var border = heap32[sp>>2];sp+=4;
   5704   var format = heap32[sp>>2];sp+=4;
   5705   var type = heap32[sp>>2];sp+=4;
   5706   var data = heap32[sp>>2];sp+=4;
   5707 
   5708   if (level>0 && target==imandreel_gl.TEXTURE_2D)
   5709 	return;
   5710 
   5711    if (data == 0)
   5712   {
   5713 	//imandreel_gl.texImage2D(target, level, internalFormat, width, height, border, format, type, null);
   5714 	var buffer;
   5715 	var bufferView;
   5716 
   5717 	if (type == imandreel_gl.UNSIGNED_SHORT_5_6_5 || type == imandreel_gl.UNSIGNED_SHORT_4_4_4_4 || type == imandreel_gl.UNSIGNED_SHORT_5_5_5_1)
   5718     {
   5719 		buffer = new ArrayBuffer(width*height*2);
   5720 		bufferView = new Uint16Array(buffer);
   5721 	}
   5722 	else
   5723 	{
   5724 		var size;
   5725 		if (format == imandreel_gl.LUMINANCE)
   5726 			size = width*height;
   5727 		else if (format == imandreel_gl.RGB)
   5728 			size = width*height*3;
   5729 		else if (format == imandreel_gl.RGBA)
   5730 			size = width*height*4;
   5731 		else if (format == imandreel_gl.ALPHA)
   5732 			size = width*height;
   5733 		else if (format == imandreel_gl.LUMINANCE_ALPHA)
   5734 			size = width*height*2;
   5735 
   5736 		buffer = new ArrayBuffer(size);
   5737 		bufferView = new Uint8Array(buffer);
   5738 	}
   5739 
   5740 	imandreel_gl.texImage2D(target, level, internalFormat, width, height, border, format, type, bufferView);
   5741 	return;
   5742   }
   5743 
   5744 
   5745   	var bufferView;
   5746    if (type == imandreel_gl.UNSIGNED_SHORT_5_6_5 || type == imandreel_gl.UNSIGNED_SHORT_4_4_4_4 || type == imandreel_gl.UNSIGNED_SHORT_5_5_5_1)
   5747    {
   5748 		bufferView = new Uint16Array(heap,data,width*height);
   5749 	}
   5750 	else if (type == imandreel_gl.UNSIGNED_BYTE)
   5751 	{
   5752 		if (format == imandreel_gl.LUMINANCE)
   5753 			bufferView = new Uint8Array(heap,data,width*height);
   5754 		else if (format == imandreel_gl.RGB)
   5755 			bufferView = new Uint8Array(heap,data,width*height*3);
   5756 		else if (format == imandreel_gl.RGBA)
   5757 			bufferView = new Uint8Array(heap,data,width*height*4);
   5758 		else if (format == imandreel_gl.ALPHA)
   5759 			bufferView = new Uint8Array(heap,data,width*height);
   5760 		else if (format == imandreel_gl.LUMINANCE_ALPHA)
   5761 			bufferView = new Uint8Array(heap,data,width*height*2);
   5762 		else
   5763 		{
   5764 			dump('format unknown ' + format + '\n');
   5765 			assert(false);
   5766 		}
   5767 	}
   5768 	else
   5769 	{
   5770 	dump('type unknown ' + type + '\n');
   5771 		assert(false);
   5772 	}
   5773 
   5774   imandreel_gl.texImage2D(target, level, internalFormat, width, height, border, format, type, bufferView);
   5775   if ((width&(width-1))==0 && (height&(height-1))==0)
   5776   {
   5777     if (target==imandreel_gl.TEXTURE_2D)
   5778 	imandreel_gl.generateMipmap(target);
   5779 }
   5780  }
   5781   function myglStencilFunc(sp)
   5782   {
   5783   var func = heap32[sp>>2];sp+=4;
   5784   var ref = heap32[sp>>2];sp+=4;
   5785   var mask = heap32[sp>>2];sp+=4;
   5786 
   5787   imandreel_gl.stencilFunc(func, ref, mask);
   5788   }
   5789 
   5790   function myglStencilFuncSeparate(sp)
   5791   {
   5792   var face = heap32[sp>>2];sp+=4;
   5793   var func = heap32[sp>>2];sp+=4;
   5794   var ref = heap32[sp>>2];sp+=4;
   5795   var mask = heap32[sp>>2];sp+=4;
   5796 
   5797   imandreel_gl.stencilFuncSeparate(face,func,ref,mask);
   5798   }
   5799 
   5800   function myglStencilMaskSeparate(sp)
   5801   {
   5802   var face = heap32[sp>>2];sp+=4;
   5803    var mask = heap32[sp>>2];sp+=4;
   5804 
   5805    imandreel_gl.stencilMaskSeparate(face,mask);
   5806   }
   5807 
   5808   function myglStencilMask(sp)
   5809   {
   5810    var mask = heap32[sp>>2];sp+=4;
   5811 
   5812    imandreel_gl.stencilMask(mask);
   5813   }
   5814   function myglStencilOp (sp)
   5815   {
   5816    var fail = heap32[sp>>2];sp+=4;
   5817   var zfail = heap32[sp>>2];sp+=4;
   5818    var zpass = heap32[sp>>2];sp+=4;
   5819 
   5820   imandreel_gl.stencilOp(fail, zfail, zpass);
   5821   }
   5822 
   5823   function myglStencilOpSeparate (sp)
   5824   {
   5825   var face = heap32[sp>>2];sp+=4;
   5826    var fail = heap32[sp>>2];sp+=4;
   5827   var zfail = heap32[sp>>2];sp+=4;
   5828    var zpass = heap32[sp>>2];sp+=4;
   5829 
   5830   imandreel_gl.stencilOpSeparate(face, fail, zfail, zpass);
   5831   }
   5832 
   5833  function myglTexSubImage2D(sp)
   5834  {
   5835   var target = heap32[sp>>2];sp+=4;
   5836   var level = heap32[sp>>2];sp+=4;
   5837   var xoffset = heap32[sp>>2];sp+=4;
   5838   var yoffset = heap32[sp>>2];sp+=4;
   5839   var width = heap32[sp>>2];sp+=4;
   5840   var height = heap32[sp>>2];sp+=4;
   5841   var format = heap32[sp>>2];sp+=4;
   5842   var type = heap32[sp>>2];sp+=4;
   5843   var data = heap32[sp>>2];sp+=4;
   5844 
   5845 
   5846 
   5847   	var bufferView;
   5848    if (type == imandreel_gl.UNSIGNED_SHORT_5_6_5 || type == imandreel_gl.UNSIGNED_SHORT_4_4_4_4 || type == imandreel_gl.UNSIGNED_SHORT_5_5_5_1)
   5849    {
   5850 		bufferView = new Uint16Array(heap,data,width*height);
   5851 	}
   5852 	else if (type == imandreel_gl.UNSIGNED_BYTE)
   5853 	{
   5854 		if (format == imandreel_gl.LUMINANCE)
   5855 			bufferView = new Uint8Array(heap,data,width*height);
   5856 		else if (format == imandreel_gl.RGB)
   5857 			bufferView = new Uint8Array(heap,data,width*height*3);
   5858 		else if (format == imandreel_gl.RGBA)
   5859 			bufferView = new Uint8Array(heap,data,width*height*4);
   5860 		else if (format == imandreel_gl.ALPHA)
   5861 			bufferView = new Uint8Array(heap,data,width*height);
   5862 	}
   5863 
   5864   imandreel_gl.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, bufferView);
   5865  }
   5866 
   5867 
   5868   function myglCreateBuffer(sp)
   5869 {
   5870 	var id = myglNewSlot();
   5871 	array_ids_ogl[id] = imandreel_gl.createBuffer();
   5872 
   5873 	r_g0 = id;
   5874 }
   5875 
   5876 var glBufferDataArray = [];
   5877 
   5878 function myglBufferData(sp)
   5879 {
   5880 	var target = heapU32[sp>>2]; sp+=4;
   5881 	var size = heapU32[sp>>2]; sp+=4;
   5882 	var data = heapU32[sp>>2]; sp+=4;
   5883 	var usage = heapU32[sp>>2]; sp+=4;
   5884 
   5885 	if (data == 0)
   5886 		imandreel_gl.bufferData(target, size, usage);
   5887 	else
   5888 	{
   5889 		if (usage == imandreel_gl.STATIC_DRAW || true)
   5890 		{
   5891 			var buffer_data = new Int8Array(heap, data, size);
   5892 			imandreel_gl.bufferData(target, buffer_data, usage);
   5893 		}
   5894 		else
   5895 		{
   5896 			var new_size = size/4;
   5897 			var buffer_data = glBufferDataArray[new_size];
   5898 
   5899 			if (buffer_data == null)
   5900 			{
   5901 				buffer_data =  new Int32Array(new_size);
   5902 				glBufferDataArray[new_size] = buffer_data;
   5903 			}
   5904 
   5905 			var new_data = data>>2;
   5906 
   5907 			for ( var i = 0 ; i < new_size ; ++i )
   5908 			{
   5909 				buffer_data[i] = heap32[new_data+i];
   5910 			}
   5911 
   5912 			imandreel_gl.bufferData(target, buffer_data, usage);
   5913 		}
   5914 	}
   5915 }
   5916 
   5917 function myglBufferSubData(sp)
   5918 {
   5919 	var target = heapU32[sp>>2]; sp+=4;
   5920 	var offset = heapU32[sp>>2]; sp+=4;
   5921 	var size = heapU32[sp>>2]; sp+=4;
   5922 	var data = heapU32[sp>>2]; sp+=4;
   5923 
   5924 
   5925 	var buffer_data = new Int8Array(heap, data, size);
   5926 	imandreel_gl.bufferSubData(target, offset, buffer_data);
   5927 
   5928 //	dump('buffer sub data ' + offset + ' ' + size + ' ' + data + '\n')
   5929 
   5930 }
   5931 
   5932 
   5933 function myglBindBuffer(sp)
   5934 {
   5935 	var target = heapU32[sp>>2]; sp+=4;
   5936 	var id = heapU32[sp>>2]; sp+=4;
   5937 
   5938 	imandreel_gl.bindBuffer(target, array_ids_ogl[id]);
   5939 }
   5940 
   5941 
   5942 function myglUseProgram(sp)
   5943 {
   5944 	var program_id = heap32[sp>>2];sp+=4;
   5945 
   5946 	g_current_program_id = program_id;
   5947 
   5948 	imandreel_gl.useProgram(array_ids_ogl[program_id]);
   5949 
   5950 }
   5951 
   5952 function myglDisableVertexAttribArray(sp)
   5953 {
   5954 	var idx = heapU32[sp>>2];sp+=4;
   5955 	imandreel_gl.disableVertexAttribArray(idx);
   5956 }
   5957 function myglEnableVertexAttribArray(sp)
   5958 {
   5959 	var idx = heapU32[sp>>2];sp+=4;
   5960 	imandreel_gl.enableVertexAttribArray(idx);
   5961 }
   5962 
   5963 function myglVertexAttribPointer(sp)
   5964 {
   5965 	var idx = heapU32[sp>>2];sp+=4;
   5966 	var size = heapU32[sp>>2];sp+=4;
   5967 	var type = heapU32[sp>>2];sp+=4;
   5968 	var normalized = heapU32[sp>>2];sp+=4;
   5969 	var stride = heapU32[sp>>2];sp+=4;
   5970 	var ptr = heapU32[sp>>2];sp+=4;
   5971 
   5972 	//dump(idx + ' ' + size + ' ' + type + ' ' + normalized + ' ' + stride + ' ' + ptr + '\n');
   5973 
   5974 
   5975 	imandreel_gl.vertexAttribPointer(idx, size, type, normalized, stride, ptr);
   5976 }
   5977 
   5978 function myglPolygonOffset(sp)
   5979 {
   5980 	var factor = heapFloat[sp>>2]; sp+=4;
   5981 	var units = heapFloat[sp>>2]; sp+=4;
   5982 	imandreel_gl.polygonOffset(factor, units);
   5983 }
   5984 
   5985 function myglEnable(sp)
   5986  {
   5987 	var value = heap32[sp>>2];sp+=4;
   5988 
   5989 	imandreel_gl.enable(value);
   5990   }
   5991 
   5992 function myglDisable(sp)
   5993  {
   5994 	var value = heap32[sp>>2];sp+=4;
   5995 
   5996 	imandreel_gl.disable(value);
   5997   }
   5998 
   5999   function myglDepthFunc(sp)
   6000   {
   6001 	var func = heapU32[sp>>2];sp+=4;
   6002 
   6003 	imandreel_gl.depthFunc(func);
   6004 
   6005   }
   6006 
   6007   function myglGenerateMipmap(sp)
   6008   {
   6009 	var texture_type = heap32[sp>>2];sp+=4;
   6010 	imandreel_gl.generateMipmap(texture_type);
   6011   }
   6012 
   6013   function myglPixelStorei (sp)
   6014   {
   6015 	var pname = heap32[sp>>2];sp+=4;
   6016 	var param = heap32[sp>>2];sp+=4;
   6017 	imandreel_gl.pixelStorei(pname,param);
   6018   }
   6019 
   6020 
   6021   function myglBindTexture(sp)
   6022   {
   6023   var texture_type = heap32[sp>>2];sp+=4;
   6024   var texture_id = heap32[sp>>2];sp+=4;
   6025 
   6026 if (texture_id == 0)
   6027 {
   6028 	imandreel_gl.bindTexture(texture_type, null);
   6029 }
   6030 else
   6031 {
   6032 	var tex = array_ids_ogl[texture_id];
   6033 	imandreel_gl.bindTexture(texture_type, tex);
   6034 	}
   6035 
   6036   }
   6037 
   6038   function myglActiveTexture(sp)
   6039 {
   6040 	var param = heapU32[sp>>2];sp+=4;
   6041 	imandreel_gl.activeTexture(param);
   6042 }
   6043 
   6044 function myglCompileShader(sp)
   6045 {
   6046 	var id = heap32[sp>>2];sp+=4;
   6047 
   6048 	var shader = array_ids_ogl[id];
   6049 
   6050 	imandreel_gl.compileShader(shader);
   6051 }
   6052 
   6053 function myglGetUniformLocation(sp)
   6054 {
   6055 	var program_id = heap32[sp>>2];sp+=4;
   6056 	var ptr_string = heap32[sp>>2];sp+=4;
   6057 
   6058 	var string = get_string_from_ptr(ptr_string);
   6059 	var program = array_ids_ogl[program_id];
   6060 	var result = imandreel_gl.getUniformLocation(program, string);
   6061 
   6062 	if (result != null)
   6063 	{
   6064 		program.array_uniform_locations[program.uniform_locations_current_id] = result;
   6065 		r_g0 = program.uniform_locations_current_id;
   6066 		program.uniform_locations_current_id++;
   6067 	}
   6068 	else
   6069 		r_g0 = -1;
   6070 }
   6071 
   6072 function myglIsEnabled(sp)
   6073 {
   6074 	var cap = heap32[sp>>2];sp+=4;
   6075 
   6076 	r_g0 = imandreel_gl.isEnabled(cap);
   6077 }
   6078 
   6079 
   6080 function myglUniform1i(sp)
   6081 {
   6082 	var index = heap32[sp>>2];sp+=4;
   6083 	var value = heap32[sp>>2];sp+=4;
   6084 
   6085 	var program = array_ids_ogl[g_current_program_id];
   6086 
   6087 	var uniform_value = program.array_uniform_locations[index];
   6088 
   6089 	imandreel_gl.uniform1i(uniform_value, value);
   6090 }
   6091 
   6092 function myglUniform2i(sp)
   6093 {
   6094 	var index = heap32[sp>>2];sp+=4;
   6095 	var x = heap32[sp>>2];sp+=4;
   6096 	var y = heap32[sp>>2];sp+=4;
   6097 
   6098 	var program = array_ids_ogl[g_current_program_id];
   6099 
   6100 	var uniform_value = program.array_uniform_locations[index];
   6101 
   6102 	imandreel_gl.uniform2i(uniform_value, x,y);
   6103 }
   6104 
   6105 function myglUniform3i(sp)
   6106 {
   6107 	var index = heap32[sp>>2];sp+=4;
   6108 	var x = heap32[sp>>2];sp+=4;
   6109 	var y = heap32[sp>>2];sp+=4;
   6110 	var z = heap32[sp>>2];sp+=4;
   6111 
   6112 	var program = array_ids_ogl[g_current_program_id];
   6113 
   6114 	var uniform_value = program.array_uniform_locations[index];
   6115 
   6116 	imandreel_gl.uniform3i(uniform_value, x,y,z);
   6117 }
   6118 
   6119 function myglUniform4i(sp)
   6120 {
   6121 	var index = heap32[sp>>2];sp+=4;
   6122 	var x = heap32[sp>>2];sp+=4;
   6123 	var y = heap32[sp>>2];sp+=4;
   6124 	var z = heap32[sp>>2];sp+=4;
   6125 	var w = heap32[sp>>2];sp+=4;
   6126 
   6127 	var program = array_ids_ogl[g_current_program_id];
   6128 
   6129 	var uniform_value = program.array_uniform_locations[index];
   6130 
   6131 	imandreel_gl.uniform4i(uniform_value, x,y,z,w);
   6132 }
   6133 
   6134 function myglUniform1f(sp)
   6135 {
   6136 	var index = heap32[sp>>2];sp+=4;
   6137 	var value = heapFloat[sp>>2];sp+=4;
   6138 
   6139 	var program = array_ids_ogl[g_current_program_id];
   6140 
   6141 	var uniform_value = program.array_uniform_locations[index];
   6142 
   6143 	imandreel_gl.uniform1f(uniform_value, value);
   6144 }
   6145 
   6146 function myglUniform3f(sp)
   6147 {
   6148 	var index = heap32[sp>>2];sp+=4;
   6149 	var x = heapFloat[sp>>2];sp+=4;
   6150 	var y = heapFloat[sp>>2];sp+=4;
   6151 	var z = heapFloat[sp>>2];sp+=4;
   6152 
   6153 	var program = array_ids_ogl[g_current_program_id];
   6154 
   6155 	var uniform_value = program.array_uniform_locations[index];
   6156 
   6157 	imandreel_gl.uniform3f(uniform_value, x,y,z);
   6158 }
   6159 
   6160 function myglUniform2f(sp)
   6161 {
   6162 	var index = heap32[sp>>2];sp+=4;
   6163 	var x = heapFloat[sp>>2];sp+=4;
   6164 	var y = heapFloat[sp>>2];sp+=4;
   6165 
   6166 	var program = array_ids_ogl[g_current_program_id];
   6167 
   6168 	var uniform_value = program.array_uniform_locations[index];
   6169 
   6170 	imandreel_gl.uniform2f(uniform_value, x,y);
   6171 }
   6172 
   6173 
   6174 function myglUniform4f(sp)
   6175 {
   6176 	var index = heap32[sp>>2];sp+=4;
   6177 	var x = heapFloat[sp>>2];sp+=4;
   6178 	var y = heapFloat[sp>>2];sp+=4;
   6179 	var z = heapFloat[sp>>2];sp+=4;
   6180 	var w = heapFloat[sp>>2];sp+=4;
   6181 
   6182 	var program = array_ids_ogl[g_current_program_id];
   6183 	var uniform_value = program.array_uniform_locations[index];
   6184 
   6185 	imandreel_gl.uniform4f(uniform_value, x,y,z,w);
   6186 }
   6187 
   6188 function myglUniform1fv(sp)
   6189 {
   6190 	var index = heap32[sp>>2];sp+=4;
   6191 	var count = heap32[sp>>2];sp+=4;
   6192 	var data = heap32[sp>>2];sp+=4;
   6193 
   6194 	var new_data = data>>2;
   6195 	var new_count = count;
   6196 	var bufferView = new Float32Array(new_count);
   6197 
   6198 	for ( var i = 0 ; i < new_count ; ++i )
   6199 	{
   6200 		bufferView[i] = heapFloat[new_data+i];
   6201 	}
   6202 
   6203 	var program = array_ids_ogl[g_current_program_id];
   6204 	var uniform_value = program.array_uniform_locations[index];
   6205 	imandreel_gl.uniform1fv(uniform_value, bufferView);
   6206 
   6207 
   6208 }
   6209 
   6210 function myglUniform1iv(sp)
   6211 {
   6212 	var index = heap32[sp>>2];sp+=4;
   6213 	var count = heap32[sp>>2];sp+=4;
   6214 	var data = heap32[sp>>2];sp+=4;
   6215 
   6216 	var new_data = data>>2;
   6217 	var new_count = count;
   6218 	var bufferView = new Int32Array(new_count);
   6219 
   6220 	for ( var i = 0 ; i < new_count ; ++i )
   6221 	{
   6222 		bufferView[i] = heap32[new_data+i];
   6223 	}
   6224 
   6225 	var program = array_ids_ogl[g_current_program_id];
   6226 	var uniform_value = program.array_uniform_locations[index];
   6227 	imandreel_gl.uniform1iv(uniform_value, bufferView);
   6228 }
   6229 
   6230 function myglUniform2iv(sp)
   6231 {
   6232 	var index = heap32[sp>>2];sp+=4;
   6233 	var count = heap32[sp>>2];sp+=4;
   6234 	var data = heap32[sp>>2];sp+=4;
   6235 
   6236 	var new_data = data>>2;
   6237 	var new_count = count*2;
   6238 	var bufferView = new Int32Array(new_count);
   6239 
   6240 	for ( var i = 0 ; i < new_count ; ++i )
   6241 	{
   6242 		bufferView[i] = heap32[new_data+i];
   6243 	}
   6244 
   6245 	var program = array_ids_ogl[g_current_program_id];
   6246 	var uniform_value = program.array_uniform_locations[index];
   6247 	imandreel_gl.uniform2iv(uniform_value, bufferView);
   6248 }
   6249 
   6250 function myglUniform3iv(sp)
   6251 {
   6252 	var index = heap32[sp>>2];sp+=4;
   6253 	var count = heap32[sp>>2];sp+=4;
   6254 	var data = heap32[sp>>2];sp+=4;
   6255 
   6256 	var new_data = data>>2;
   6257 	var new_count = count*3;
   6258 	var bufferView = new Int32Array(new_count);
   6259 
   6260 	for ( var i = 0 ; i < new_count ; ++i )
   6261 	{
   6262 		bufferView[i] = heap32[new_data+i];
   6263 	}
   6264 
   6265 	var program = array_ids_ogl[g_current_program_id];
   6266 	var uniform_value = program.array_uniform_locations[index];
   6267 	imandreel_gl.uniform3iv(uniform_value, bufferView);
   6268 }
   6269 
   6270 function myglUniform4iv(sp)
   6271 {
   6272 	var index = heap32[sp>>2];sp+=4;
   6273 	var count = heap32[sp>>2];sp+=4;
   6274 	var data = heap32[sp>>2];sp+=4;
   6275 
   6276 	var new_data = data>>2;
   6277 	var new_count = count*4;
   6278 	var bufferView = new Int32Array(new_count);
   6279 
   6280 	for ( var i = 0 ; i < new_count ; ++i )
   6281 	{
   6282 		bufferView[i] = heap32[new_data+i];
   6283 	}
   6284 
   6285 	var program = array_ids_ogl[g_current_program_id];
   6286 	var uniform_value = program.array_uniform_locations[index];
   6287 	imandreel_gl.uniform4iv(uniform_value, bufferView);
   6288 }
   6289 
   6290 
   6291 
   6292 function myglUniform3fv(sp)
   6293 {
   6294 	myglCreateUniformArrays();
   6295 
   6296 	var index = heap32[sp>>2];sp+=4;
   6297 	var count = heap32[sp>>2];sp+=4;
   6298 	var data = heap32[sp>>2];sp+=4;
   6299 
   6300 	var new_data = data>>2;
   6301 	var new_count = count*3;
   6302 	var bufferView = uniformArrays3[count];
   6303 
   6304 	for ( var i = 0 ; i < new_count ; ++i )
   6305 	{
   6306 		bufferView[i] = heapFloat[new_data+i];
   6307 	}
   6308 
   6309 	var program = array_ids_ogl[g_current_program_id];
   6310 	var uniform_value = program.array_uniform_locations[index];
   6311 	imandreel_gl.uniform3fv(uniform_value, bufferView);
   6312 }
   6313 
   6314 function myglUniform2fv(sp)
   6315 {
   6316 	myglCreateUniformArrays();
   6317 
   6318     var index = heap32[sp >> 2]; sp += 4;
   6319     var count = heap32[sp >> 2]; sp += 4;
   6320     var data = heap32[sp >> 2]; sp += 4;
   6321 
   6322 	var new_data = data>>2;
   6323 	var new_count = count*2;
   6324 	var bufferView = uniformArrays2[count];
   6325 
   6326 	for ( var i = 0 ; i < new_count ; ++i )
   6327 	{
   6328 		bufferView[i] = heapFloat[new_data+i];
   6329 	}
   6330 
   6331 
   6332 	var program = array_ids_ogl[g_current_program_id];
   6333     var uniform_value = program.array_uniform_locations[index];
   6334     imandreel_gl.uniform2fv(uniform_value, bufferView);
   6335 }
   6336 
   6337 
   6338 function myglUniform4fv(sp)
   6339 {
   6340 	myglCreateUniformArrays();
   6341 
   6342 	var index = heap32[sp>>2];sp+=4;
   6343 	var count = heap32[sp>>2];sp+=4;
   6344 	var data = heap32[sp>>2];sp+=4;
   6345 
   6346 
   6347 	var new_data = data>>2;
   6348 	var new_count = count*4;
   6349 	var bufferView = uniformArrays4[count];
   6350 
   6351 	for ( var i = 0 ; i < new_count ; ++i )
   6352 	{
   6353 		bufferView[i] = heapFloat[new_data+i];
   6354 	}
   6355 
   6356 
   6357 	var program = array_ids_ogl[g_current_program_id];
   6358 	var uniform_value = program.array_uniform_locations[index];
   6359 	imandreel_gl.uniform4fv(uniform_value, bufferView);
   6360 }
   6361 
   6362 
   6363 function myglUniformMatrix4fv(sp)
   6364 {
   6365 	myglCreateUniformArrays();
   6366 
   6367 	var index = heap32[sp>>2];sp+=4;
   6368 	var count = heap32[sp>>2];sp+=4;
   6369 	var transpose = heap32[sp>>2];sp+=4;
   6370 	var ptr = heap32[sp>>2];sp+=4;
   6371 
   6372 	var program = array_ids_ogl[g_current_program_id];
   6373 	var uniform_value = program.array_uniform_locations[index];
   6374 
   6375 	//var buffer_data = new Float32Array(heap, ptr, count*16);
   6376 	for ( var i = 0 ; i < count*16 ; ++i )
   6377 	{
   6378 		uniformArrays4[count*4][i] = heapFloat[(ptr>>2)+i];
   6379 	}
   6380 
   6381 	//imandreel_gl.uniformMatrix4fv(uniform_value, transpose, buffer_data);
   6382 	//imandreel_gl.uniformMatrix4fv(uniform_value, transpose, heapFloat.subarray(ptr/4,(ptr/4)+(count*16)));
   6383 	imandreel_gl.uniformMatrix4fv(uniform_value, transpose, uniformArrays4[count*4]);
   6384 }
   6385 
   6386 function myglUniformMatrix3fv(sp)
   6387 {
   6388 	myglCreateUniformArrays();
   6389 
   6390 	var index = heap32[sp>>2];sp+=4;
   6391 	var count = heap32[sp>>2];sp+=4;
   6392 	var transpose = heap32[sp>>2];sp+=4;
   6393 	var ptr = heap32[sp>>2];sp+=4;
   6394 
   6395 	var program = array_ids_ogl[g_current_program_id];
   6396 	var uniform_value = program.array_uniform_locations[index];
   6397 
   6398 	//var buffer_data = new Float32Array(heap, ptr, count*9);
   6399 	for ( var i = 0 ; i < count*9 ; ++i )
   6400 	{
   6401 		uniformArrays3[count*3][i] = heapFloat[(ptr>>2)+i];
   6402 	}
   6403 
   6404 	//imandreel_gl.uniformMatrix3fv(uniform_value, transpose, buffer_data);
   6405 	//imandreel_gl.uniformMatrix3fv(uniform_value, transpose, heapFloat.subarray(ptr/4,(ptr/4)+(count*9)));
   6406 	imandreel_gl.uniformMatrix3fv(uniform_value, transpose, uniformArrays3[count*3]);
   6407 }
   6408 
   6409 
   6410 
   6411 function myglValidateProgram(sp)
   6412 {
   6413 	var program_id = heap32[sp>>2];sp+=4;
   6414 
   6415 	imandreel_gl.validateProgram(array_ids_ogl[program_id]);
   6416 }
   6417 
   6418 function myglGetAttribLocation(sp)
   6419 {
   6420 	var program_id = heap32[sp>>2];sp+=4;
   6421 	var ptr_string = heap32[sp>>2];sp+=4;
   6422 
   6423 	var string = get_string_from_ptr(ptr_string);
   6424 	var result = imandreel_gl.getAttribLocation(array_ids_ogl[program_id], string);
   6425 
   6426 	r_g0 = result;
   6427 }
   6428 
   6429 function myglGetProgramInfoLogLength(sp)
   6430 {
   6431 	var program_id = heap32[sp>>2];sp+=4;
   6432 
   6433 	var info_log = imandreel_gl.getProgramInfoLog(array_ids_ogl[program_id]);
   6434 
   6435 	if (info_log)
   6436 		r_g0 = info_log.length+1;
   6437 	else
   6438 		r_g0 = 0;
   6439 }
   6440 
   6441 
   6442 function myglGetProgramInfoLog(sp)
   6443 {
   6444 	var program_id = heap32[sp>>2];sp+=4;
   6445 	var ptr_string = heap32[sp>>2];sp+=4;
   6446 
   6447 	var info_log = imandreel_gl.getProgramInfoLog(array_ids_ogl[program_id]);
   6448 
   6449 	fill_ptr_from_string(ptr_string, info_log);
   6450 }
   6451 
   6452 function myglGetShaderInfoLogLength(sp)
   6453 {
   6454 	var program_id = heap32[sp>>2];sp+=4;
   6455 
   6456 	var info_log = imandreel_gl.getShaderInfoLog(array_ids_ogl[program_id]);
   6457 
   6458 	if (info_log)
   6459 		r_g0 = info_log.length+1;
   6460 	else
   6461 		r_g0 = 0;
   6462 }
   6463 
   6464 function myglGetShaderInfoLog(sp)
   6465 {
   6466 	var program_id = heap32[sp>>2];sp+=4;
   6467 	var ptr_string = heap32[sp>>2];sp+=4;
   6468 
   6469 	var info_log = imandreel_gl.getShaderInfoLog(array_ids_ogl[program_id]);
   6470 
   6471 	fill_ptr_from_string(ptr_string, info_log);
   6472 }
   6473 
   6474 function myglViewport(sp) {
   6475     var x = heap32[sp >> 2]; sp += 4;
   6476     var y = heap32[sp >> 2]; sp += 4;
   6477     var width = heap32[sp >> 2]; sp += 4;
   6478     var height = heap32[sp >> 2]; sp += 4;
   6479 
   6480     imandreel_gl.viewport(x,y,width,height);
   6481 
   6482 }
   6483 
   6484 function myglScissor(sp)
   6485 {
   6486     var x = heap32[sp >> 2]; sp += 4;
   6487     var y = heap32[sp >> 2]; sp += 4;
   6488     var width = heap32[sp >> 2]; sp += 4;
   6489     var height = heap32[sp >> 2]; sp += 4;
   6490 
   6491     imandreel_gl.scissor(x,y,width,height);
   6492 }
   6493 
   6494 
   6495 
   6496 function myglClearColor(sp)
   6497 {
   6498   var r = heapFloat[sp>>2];sp+=4;
   6499   var g = heapFloat[sp>>2];sp+=4;
   6500   var b = heapFloat[sp>>2];sp+=4;
   6501   var a = heapFloat[sp>>2];sp+=4;
   6502 
   6503   imandreel_gl.clearColor(r,g,b,a);
   6504 
   6505 
   6506 }
   6507 
   6508 function myglClearStencil(sp)
   6509 {
   6510 	var stencil = heap32[sp>>2];sp+=4;
   6511 	imandreel_gl.clearStencil(stencil);
   6512 }
   6513 
   6514 
   6515 function myglClearDepthf(sp)
   6516 {
   6517 	var depth = heapFloat[sp>>2];sp+=4;
   6518 	imandreel_gl.clearDepth(depth);
   6519 }
   6520 
   6521 function myglClear(sp)
   6522   {
   6523   var mask = heap32[sp>>2];sp+=4;
   6524 
   6525 
   6526   //dump('clear ' + mask + '\n');
   6527 	if (mandreel_draw_enable)
   6528 		imandreel_gl.clear(mask);
   6529   }
   6530 
   6531   function myglGetError(sp)
   6532   {
   6533 //	r_g0 = imandreel_gl.getError();
   6534 	r_g0 = 0;
   6535   }
   6536 
   6537   function myglGetProgramParameter(sp)
   6538   {
   6539 	var program_id = heap32[sp>>2];sp+=4;
   6540 	var pname = heap32[sp>>2];sp+=4;
   6541 
   6542 	r_g0 = imandreel_gl.getProgramParameter(array_ids_ogl[program_id], pname);
   6543   }
   6544 
   6545   function myglGetActiveAttrib (sp)
   6546   {
   6547 	var program_id = heap32[sp>>2];sp+=4;
   6548 	var index = heap32[sp>>2];sp+=4;
   6549 	var ptr = heap32[sp>>2];sp+=4;
   6550 
   6551 	 var result = imandreel_gl.getActiveAttrib(array_ids_ogl[program_id], index);
   6552 
   6553 	 if (result != null)
   6554 	 {
   6555 		heap32[(ptr)>>2] = result.size;
   6556 		heap32[(ptr+4)>>2] = result.type;
   6557 		fill_ptr_from_string(ptr+8, result.name);
   6558 		r_g0 = 0;
   6559 	}
   6560 	else
   6561 	   r_g0 = 1;
   6562   }
   6563 
   6564     function myglGetActiveUniform (sp)
   6565   {
   6566 	var program_id = heap32[sp>>2];sp+=4;
   6567 	var index = heap32[sp>>2];sp+=4;
   6568 	var ptr = heap32[sp>>2];sp+=4;
   6569 
   6570 	 var result = imandreel_gl.getActiveUniform(array_ids_ogl[program_id], index);
   6571 
   6572 	 if (result != null)
   6573 	 {
   6574 		heap32[(ptr)>>2] = result.size;
   6575 		heap32[(ptr+4)>>2] = result.type;
   6576 		fill_ptr_from_string(ptr+8, result.name);
   6577 		r_g0 = 0;
   6578 	}
   6579 	else
   6580 	   r_g0 = 1;
   6581   }
   6582 
   6583   function myglTexParameterf (sp)
   6584   {
   6585 	var target = heap32[sp>>2];sp+=4;
   6586 	var pname = heap32[sp>>2];sp+=4;
   6587 	var value = heapFloat[sp>>2];sp+=4;
   6588 
   6589 	imandreel_gl.texParameterf(target,pname,value);
   6590 }
   6591 
   6592 function myglTexParameteri (sp)
   6593   {
   6594 	var target = heap32[sp>>2];sp+=4;
   6595 	var pname = heap32[sp>>2];sp+=4;
   6596 	var value = heap32[sp>>2];sp+=4;
   6597 
   6598 	imandreel_gl.texParameteri(target,pname,value);
   6599 }
   6600 
   6601 function myglCullFace (sp)
   6602  {
   6603 	var mode = heap32[sp>>2];sp+=4;
   6604 	imandreel_gl.cullFace(mode);
   6605  }
   6606 
   6607  function myglDepthMask (sp)
   6608  {
   6609 	var flag = heap32[sp>>2];sp+=4;
   6610 	imandreel_gl.depthMask(flag);
   6611  }
   6612 
   6613  function myglDepthRangef (sp)
   6614  {
   6615 	var zNear = heapFloat[sp>>2];sp+=4;
   6616 	var zFar = heapFloat[sp>>2];sp+=4;
   6617 	imandreel_gl.depthRange(zNear, zFar);
   6618  }
   6619 
   6620 function myglFrontFace (sp)
   6621  {
   6622 	var mode = heap32[sp>>2];sp+=4;
   6623 	imandreel_gl.frontFace(mode);
   6624  }
   6625 
   6626  function myglBlendFunc (sp)
   6627  {
   6628 	var sfactor = heap32[sp>>2];sp+=4;
   6629 	var dfactor = heap32[sp>>2];sp+=4;
   6630 	imandreel_gl.blendFunc(sfactor,dfactor);
   6631  }
   6632 
   6633  function myglBlendColor(sp)
   6634  {
   6635 	var red = heapFloat[sp>>2];sp+=4;
   6636 	var green = heapFloat[sp>>2];sp+=4;
   6637 	var blue = heapFloat[sp>>2];sp+=4;
   6638 	var alpha = heapFloat[sp>>2];sp+=4;
   6639 	imandreel_gl.blendColor(red,green,blue,alpha);
   6640  }
   6641 
   6642  function myglBlendEquation(sp)
   6643  {
   6644 	var mode = heap32[sp>>2];sp+=4;
   6645 	imandreel_gl.blendEquation(mode);
   6646  }
   6647 
   6648  function myglBlendEquationSeparate(sp)
   6649  {
   6650 	var modeRGB = heap32[sp>>2];sp+=4;
   6651 	var modeAlpha = heap32[sp>>2];sp+=4;
   6652 	imandreel_gl.blendEquationSeparate(modeRGB,modeAlpha);
   6653  }
   6654 
   6655  function myglBlendFuncSeparate(sp)
   6656  {
   6657 	var srcRGB = heap32[sp>>2];sp+=4;
   6658 	var dstRGB = heap32[sp>>2];sp+=4;
   6659 	var srcAlpha = heap32[sp>>2];sp+=4;
   6660 	var dstAlpha = heap32[sp>>2];sp+=4;
   6661 
   6662 	imandreel_gl.blendFuncSeparate(srcRGB,dstRGB,srcAlpha,dstAlpha);
   6663  }
   6664 
   6665 
   6666  function myglColorMask (sp)
   6667  {
   6668 	var red = heap32[sp>>2];sp+=4;
   6669 	var green = heap32[sp>>2];sp+=4;
   6670 	var blue = heap32[sp>>2];sp+=4;
   6671 	var alpha = heap32[sp>>2];sp+=4;
   6672 	imandreel_gl.colorMask(red,green,blue,alpha);
   6673  }
   6674 
   6675  function removeByElement(arrayName,arrayElement)
   6676  {
   6677     for(var i=0; i<arrayName.length;i++ )
   6678      {
   6679         if(arrayName[i]==arrayElement)
   6680 		{
   6681             arrayName.splice(i,1);
   6682 			return;
   6683 		}
   6684       }
   6685   }
   6686 
   6687 
   6688  function mygetParameter(sp)
   6689  {
   6690 	var pname = heap32[sp>>2];sp+=4;
   6691 	r_g0 = imandreel_gl.getParameter(pname);
   6692  }
   6693 
   6694 
   6695  function mygetProgramParameter(sp)
   6696  {
   6697  	var program_id = heap32[sp>>2];sp+=4;
   6698 	var pname = heap32[sp>>2];sp+=4;
   6699 	r_g0 = imandreel_gl.getProgramParameter(array_ids_ogl[program_id], pname);
   6700  }
   6701 
   6702  function mygetShaderParameter(sp)
   6703  {
   6704  	var shader_id = heap32[sp>>2];sp+=4;
   6705 	var pname = heap32[sp>>2];sp+=4;
   6706 	r_g0 = imandreel_gl.getShaderParameter(array_ids_ogl[shader_id], pname);
   6707  }
   6708 
   6709  function myglVertexAttrib1f(sp)
   6710  {
   6711 	var index = heap32[sp>>2];sp+=4;
   6712 	var x = heapFloat[sp>>2];sp+=4;
   6713 	imandreel_gl.vertexAttrib1f(index,x);
   6714  }
   6715 
   6716   function myglVertexAttrib2f(sp)
   6717  {
   6718 	var index = heap32[sp>>2];sp+=4;
   6719 	var x = heapFloat[sp>>2];sp+=4;
   6720 	var y = heapFloat[sp>>2];sp+=4;
   6721 	imandreel_gl.vertexAttrib2f(index,x,y);
   6722  }
   6723 
   6724   function myglVertexAttrib3f(sp)
   6725  {
   6726 	var index = heap32[sp>>2];sp+=4;
   6727 	var x = heapFloat[sp>>2];sp+=4;
   6728 	var y = heapFloat[sp>>2];sp+=4;
   6729 	var z = heapFloat[sp>>2];sp+=4;
   6730 	imandreel_gl.vertexAttrib3f(index,x,y,z);
   6731  }
   6732 
   6733   function myglVertexAttrib4f(sp)
   6734  {
   6735 	var index = heap32[sp>>2];sp+=4;
   6736 	var x = heapFloat[sp>>2];sp+=4;
   6737 	var y = heapFloat[sp>>2];sp+=4;
   6738 	var z = heapFloat[sp>>2];sp+=4;
   6739 	var w = heapFloat[sp>>2];sp+=4;
   6740 	imandreel_gl.vertexAttrib4f(index,x,y,z,w);
   6741  }
   6742 
   6743  function myglVertexAttrib1fv(sp)
   6744  {
   6745 	var index = heap32[sp>>2];sp+=4;
   6746 	var ptr = heap32[sp>>2];sp+=4;
   6747 	var x = heap32[ptr>>2];ptr+=4;
   6748 	imandreel_gl.vertexAttrib1f(index,x);
   6749  }
   6750 
   6751  function myglVertexAttrib2fv(sp)
   6752  {
   6753 	var index = heap32[sp>>2];sp+=4;
   6754 	var ptr = heap32[sp>>2];sp+=4;
   6755 	var x = heap32[ptr>>2];ptr+=4;
   6756 	var y = heap32[ptr>>2];ptr+=4;
   6757 
   6758 	imandreel_gl.vertexAttrib2f(index,x,y);
   6759  }
   6760 
   6761  function myglVertexAttrib3fv(sp)
   6762  {
   6763 	var index = heap32[sp>>2];sp+=4;
   6764 	var ptr = heap32[sp>>2];sp+=4;
   6765 	var x = heap32[ptr>>2];ptr+=4;
   6766 	var y = heap32[ptr>>2];ptr+=4;
   6767 	var z = heap32[ptr>>2];ptr+=4;
   6768 
   6769 	imandreel_gl.vertexAttrib3f(index,x,y,z);
   6770  }
   6771 
   6772  function myglVertexAttrib4fv(sp)
   6773  {
   6774 	var index = heap32[sp>>2];sp+=4;
   6775 	var ptr = heap32[sp>>2];sp+=4;
   6776 	var x = heap32[ptr>>2];ptr+=4;
   6777 	var y = heap32[ptr>>2];ptr+=4;
   6778 	var z = heap32[ptr>>2];ptr+=4;
   6779 	var w = heap32[ptr>>2];ptr+=4;
   6780 
   6781 	imandreel_gl.vertexAttrib4f(index,x,y,z,w);
   6782  }
   6783 
   6784 
   6785  function myglDeleteTexture (sp)
   6786  {
   6787 
   6788 	var texture_id = heap32[sp>>2];sp+=4;
   6789 
   6790 	var texture = array_ids_ogl[texture_id];
   6791 
   6792 	imandreel_gl.deleteTexture(texture);
   6793 
   6794 	array_ids_ogl[texture_id] = null;
   6795 
   6796 	myglFreeSlot(texture_id);
   6797  }
   6798 
   6799  function myglDeleteBuffer (sp)
   6800  {
   6801 
   6802 	var buffer_id = heap32[sp>>2];sp+=4;
   6803 
   6804 	var buffer = array_ids_ogl[buffer_id];
   6805 
   6806 	imandreel_gl.deleteBuffer(buffer);
   6807 
   6808 	array_ids_ogl[buffer_id] = null;
   6809 
   6810 	myglFreeSlot(buffer_id);
   6811  }
   6812 
   6813  function myglDeleteFrameBuffer (sp)
   6814  {
   6815 	var framebuffer_id = heap32[sp>>2];sp+=4;
   6816 
   6817 	var framebuffer = array_ids_ogl[framebuffer_id];
   6818 
   6819 	imandreel_gl.deleteFramebuffer(framebuffer);
   6820 
   6821 	array_ids_ogl[framebuffer_id] = null;
   6822 
   6823 	myglFreeSlot(framebuffer_id);
   6824  }
   6825 
   6826 
   6827  function myglDeleteProgram (sp)
   6828  {
   6829 	var program_id = heap32[sp>>2];sp+=4;
   6830 
   6831 	var program = array_ids_ogl[program_id];
   6832 
   6833 	imandreel_gl.deleteProgram(program);
   6834 
   6835 	array_ids_ogl[program_id] = null;
   6836 
   6837 	myglFreeSlot(program_id);
   6838  }
   6839 
   6840  function myglDeleteRenderBuffer (sp)
   6841  {
   6842 	var renderbuffer_id = heap32[sp>>2];sp+=4;
   6843 
   6844 	var renderbuffer = array_ids_ogl[renderbuffer_id];
   6845 
   6846 	imandreel_gl.deleteRenderbuffer(renderbuffer);
   6847 
   6848 	array_ids_ogl[renderbuffer_id] = null;
   6849 
   6850 	myglFreeSlot(renderbuffer_id);
   6851  }
   6852 
   6853  function myglDeleteShader (sp)
   6854  {
   6855 	var shader_id = heap32[sp>>2];sp+=4;
   6856 
   6857 	var shader = array_ids_ogl[shader_id];
   6858 
   6859 	imandreel_gl.deleteShader(shader);
   6860 
   6861 	array_ids_ogl[shader_id] = null;
   6862 
   6863 	myglFreeSlot(shader_id);
   6864  }
   6865 
   6866  function myglInit(sp)
   6867  {
   6868 
   6869 	for (var i=0;i<max_ogl_id;++i)
   6870 	{
   6871 		array_ids_ogl_enable.push(i+1);
   6872 	}
   6873  }
   6874 
   6875  function myglReadPixels(sp)
   6876  {
   6877   var x = heap32[sp>>2];sp+=4;
   6878   var y = heap32[sp>>2];sp+=4;
   6879   var width = heap32[sp>>2];sp+=4;
   6880   var height = heap32[sp>>2];sp+=4;
   6881   var format = heap32[sp>>2];sp+=4;
   6882   var type = heap32[sp>>2];sp+=4;
   6883   var pixels = heap32[sp>>2];sp+=4;
   6884 
   6885 	var bufferView = new Uint8Array(heap,pixels,width*height*4);
   6886   imandreel_gl.readPixels(x,y,width,height,format,type,bufferView);
   6887 }
   6888 
   6889 function mandreel_internal_DrawSprite(sp)
   6890 {
   6891 	if ( imandreel_ctx_canvas == null )
   6892 	{
   6893 		console.log("Mandreel_2D_DrawSprite error: canvas context is null");
   6894 		return;
   6895 	}
   6896 
   6897 	var hw_id = heap32[sp>>2]; sp+=4;
   6898 	var u0 = heapFloat[sp>>2]; sp+=4;
   6899 	var u1 = heapFloat[sp>>2]; sp+=4;
   6900 	var v0 = heapFloat[sp>>2]; sp+=4;
   6901 	var v1 = heapFloat[sp>>2]; sp+=4;
   6902 	//var x = heapFloat[sp>>2]; sp+=4;
   6903 	//var y = heapFloat[sp>>2]; sp+=4;
   6904 	var sx = heapFloat[sp>>2]; sp+=4;
   6905 	var sy = heapFloat[sp>>2]; sp+=4;
   6906 	//var rot = heapFloat[sp>>2]; sp+=4;
   6907 	var m11 = heapFloat[sp>>2]; sp+=4;
   6908 	var m12 = heapFloat[sp>>2]; sp+=4;
   6909 	var m21 = heapFloat[sp>>2]; sp+=4;
   6910 	var m22 = heapFloat[sp>>2]; sp+=4;
   6911 	var tx = heapFloat[sp>>2]; sp+=4;
   6912 	var ty = heapFloat[sp>>2]; sp+=4;
   6913 	var color = heap32[sp>>2]; sp+=4;
   6914 
   6915 	//ctx_canvas.fillStyle="#FF0000";
   6916 	//ctx_canvas.fillRect(tx,ty,sx,sy);
   6917 	var texture = array_ids_ogl[hw_id];
   6918 
   6919 	if ( texture == null )
   6920 	{
   6921 		console.log("Mandreel_2D_DrawSprite error: texture invalid ("+hw_id+") or loading yet...");
   6922 		return;
   6923 	}
   6924 
   6925 	var width = (u1-u0)*texture.width;
   6926 	var height = (v1-v0)*texture.height;
   6927 
   6928 	if (width == 0)
   6929 		return;
   6930 	if (height == 0)
   6931 		return;
   6932 
   6933 	var x_offset = u0*texture.width;
   6934 	var y_offset = v0*texture.height;
   6935 
   6936 	//dump(x_offset + ' ' + y_offset + ' ' + texture.width + ' ' + texture.height + ' ' + x + ' ' +y + ' ' + width + ' ' + height + '\n');
   6937 
   6938 	x_offset = x_offset % texture.width;
   6939 	y_offset = y_offset % texture.height;
   6940 
   6941 	var scale_x, scale_y;
   6942 	if (sx<0)
   6943 		scale_x = -1;
   6944 	else
   6945 		scale_x = 1;
   6946 	if (sy<0)
   6947 		scale_y = -1;
   6948 	else
   6949 		scale_y = 1;
   6950 
   6951 	var simple_draw = false;//scale_x == 1 && scale_y == 1 && rot == 0;
   6952 	var x_pos = (0.5*sx + tx/* + 240*/);
   6953 	var y_pos = (/*320*/ + ((0.5*sy + ty) /*+ 160*/));
   6954 	var new_sx = sx;
   6955 	var new_sy = sy;
   6956 
   6957 	imandreel_ctx_canvas.globalAlpha = (color>>>24)/255;
   6958 
   6959 	if (!simple_draw)
   6960 	{
   6961 		imandreel_ctx_canvas.save()
   6962 		/*ctx_canvas.translate(x_pos + new_sx/2, y_pos + new_sy/2)
   6963 		ctx_canvas.rotate(-rot*Math.PI/180);
   6964 		ctx_canvas.scale(scale_x, scale_y);
   6965 		ctx_canvas.translate(-(x_pos + new_sx/2), -(y_pos + new_sy/2))*/
   6966 		imandreel_ctx_canvas.setTransform(m11,m12,m21,m22,tx,ty);
   6967 	}
   6968 
   6969 	/*if (x_offset<0 || y_offset<0 || (x_offset+width)>texture.width || (y_offset+height)>texture.height)
   6970 	{
   6971 		dump(x_offset + ' ' + y_offset + ' ' + texture.width + ' ' + texture.height + ' ' + x + ' ' +y + ' ' + width + ' ' + height + '\n');
   6972 	}*/
   6973 
   6974 	if (new_sx<0)
   6975 	{
   6976 		x_pos += new_sx;
   6977 		new_sx = -new_sx;
   6978 	}
   6979 	if (new_sy<0)
   6980 	{
   6981 		y_pos += new_sy;
   6982 		new_sy = -new_sy;
   6983 	}
   6984 
   6985 	//ctx_canvas.drawImage(texture,x_offset,y_offset, width, height, x_pos, y_pos , new_sx, new_sy);
   6986 	imandreel_ctx_canvas.drawImage(texture,x_offset,y_offset, width, height, 0,0, 1,1);
   6987 
   6988 	if (!simple_draw)
   6989 		imandreel_ctx_canvas.restore()
   6990 }
   6991 
   6992 function mandreel_internal_UpdateTexture(sp)
   6993 {
   6994 	if ( imandreel_ctx_canvas == null )
   6995 	{
   6996 		console.log("Mandreel_2D_UpdateTexture error: canvas context is null");
   6997 		return;
   6998 	}
   6999 
   7000 	var hw_id = heap32[sp>>2]; sp+=4;
   7001 	var dataptr = heap32[sp>>2]; sp+=4;
   7002 	var width = heap32[sp>>2]; sp+=4;
   7003 	var height = heap32[sp>>2]; sp+=4;
   7004 
   7005 	var imageData = imandreel_ctx_canvas.getImageData(0,0,width,height);
   7006 	var data = imageData.data;
   7007 	for (var y = 0; y < (height*width*4); ++y)
   7008 	{
   7009 		data[y] = heapU8[dataptr + y];
   7010 	}
   7011 	imandreel_ctx_canvas.putImageData(imageData,0,0);
   7012 
   7013 	var dataurl = imandreel_ctx_canvas.canvas.toDataURL();
   7014 
   7015 	var image = new Image();
   7016 	image.onerror = function()
   7017 	{
   7018 		dump('error updating texture '+hw_id+'\n');
   7019     }
   7020 	image.onload = function()
   7021 	{
   7022 		//dump('texture '+hw_id+' updated\n'+'width '+image.width+' height '+image.height);
   7023 		array_ids_ogl[hw_id] = image;
   7024 	}
   7025 	image.src = dataurl;
   7026 }
   7027 
   7028 function mandreel_internal_WriteFramebuffer(sp)
   7029 {
   7030 	if ( imandreel_ctx_canvas == null )
   7031 	{
   7032 		console.log("Mandreel_2D_UpdateTexture error: canvas context is null");
   7033 		return;
   7034 	}
   7035 
   7036 	var dataptr = heap32[sp>>2]; sp+=4;
   7037 	var width = heap32[sp>>2]; sp+=4;
   7038 	var height = heap32[sp>>2]; sp+=4;
   7039 
   7040 	var imageData = imandreel_ctx_canvas.getImageData(0,0,width,height);
   7041 	if ( imageData != null )
   7042 	{
   7043 		var data = imageData.data;
   7044 		if ( data != null )
   7045 		{
   7046 			var size = (height*width*4);
   7047 			if ( typeof imageData.data.set != "undefined" )
   7048 			{
   7049 				var sub = heapU8.subarray(dataptr,dataptr+size);
   7050 				imageData.data.set(sub);
   7051 			}
   7052 			else
   7053 			{
   7054 				for (var y = 0; y < size; ++y)
   7055 				{
   7056 					data[y] = heapU8[dataptr + y];
   7057 				}
   7058 			}
   7059 
   7060 			imandreel_ctx_canvas.putImageData(imageData,0,0);
   7061 		}
   7062 		else
   7063 		{
   7064 			dump("WriteFramebuffer canvas data null");
   7065 		}
   7066 	}
   7067 	else
   7068 	{
   7069 		dump("WriteFramebuffer canvas imageData null");
   7070 	}
   7071 }
   7072 var mandreel_audio_init = null_mandreel_audio;
   7073 var mandreel_audio_end = null_mandreel_audio;
   7074 var mandreel_audio_update = null_mandreel_audio;
   7075 var mandreel_audio_createBuffer = null_mandreel_audio;
   7076 var mandreel_audio_playChannel = null_mandreel_audio;
   7077 var mandreel_audio_stopChannel = null_mandreel_audio;
   7078 var mandreel_audio_setChannelVolume = null_mandreel_audio;
   7079 var mandreel_audio_setChannelPan = null_mandreel_audio;
   7080 var mandreel_audio_setChannelPitch = null_mandreel_audio;
   7081 var mandreel_audio_playMusic = null_mandreel_audio;
   7082 var mandreel_audio_stopMusic = null_mandreel_audio;
   7083 var mandreel_audio_useMusicFunctions = _mandreel_audio_useMusicFunctions;
   7084 var mandreel_audio_checkBuffersPending = null_mandreel_audio;
   7085 var mandreel_audio_setMusicVol = null_mandreel_audio;
   7086 
   7087 var mandreel_audio_startedFunction = 0;
   7088 
   7089 var MandreelAudioDriver = "null";
   7090 
   7091 function mandreel_start_audio(audioServer, audioUrl,startedFunction)
   7092 {
   7093 	mandreel_audio_startedFunction = startedFunction;
   7094 
   7095 	// Check audio driver data availability
   7096 	var webAudioDataAvailable = false;
   7097 	var flashAudioDataAvailable = false;
   7098 	var flashLiteAudioDataAvailable = false;
   7099 	var audiotagsDataAvailable = false;
   7100 	var FatLines = mandreelFatData.split('\n');
   7101 	for ( var i=0;i<FatLines.length;++i )
   7102 	{
   7103 		var params = FatLines[i].split(',');
   7104 		if ( params[0] == "audiodriver" )
   7105 		{
   7106 			var data = params[1];
   7107 			data = data.replace('\r','');
   7108 			if ( data == "webaudio" )
   7109 				webAudioDataAvailable = true;
   7110 			else if ( data == "flash" )
   7111 				flashAudioDataAvailable = true;
   7112 			else if ( data == "flashlite" )
   7113 				flashLiteAudioDataAvailable = true;
   7114 			else if ( data == "audiotag" )
   7115 				audiotagsDataAvailable = true;
   7116 		}
   7117 	}
   7118 
   7119 
   7120 	// Init audio driver
   7121 	{
   7122 		// webaudio
   7123 		if ( webAudioDataAvailable && MandreelAudioDriver == "null" )
   7124 		{
   7125 			try	{ webAudioContext = new webkitAudioContext(); } catch(err) { webAudioContext = 0; }
   7126 			if ( webAudioContext )
   7127 			{
   7128 				wa_MainAudioDriver();
   7129 				MandreelAudioDriver = "webAudio";
   7130 			}
   7131 		}
   7132 		// flash
   7133 		if ( flashAudioDataAvailable && MandreelAudioDriver == "null" )
   7134 		{
   7135 			MandreelAudioDriver = "flash";
   7136 			if ( audioServer == null )
   7137 			{
   7138 				audioServer = "";
   7139 				audioUrl = "";
   7140 			}
   7141 			fl_MainAudioDriver(audioServer,audioUrl);
   7142 		}
   7143 		// flashlite
   7144 		if ( flashLiteAudioDataAvailable && MandreelAudioDriver == "null" )
   7145 		{
   7146 			MandreelAudioDriver = "flashlite";
   7147 			mandreel_flashaudio_lite = true;
   7148 			fl_MainAudioDriver("","");
   7149 		}
   7150 		// audiotags
   7151 		if ( audiotagsDataAvailable && MandreelAudioDriver == "null" )
   7152 		{
   7153 			MandreelAudioDriver = "audiotag";
   7154 			at_MainAudioDriver();
   7155 		}
   7156 		// null
   7157 		if ( MandreelAudioDriver == "null" )
   7158 		{
   7159 			null_MainAudioDriver();
   7160 		}
   7161 	}
   7162 	dump("AudioDriver ("+MandreelAudioDriver+")");
   7163 }
   7164 
   7165 function mandreel_audio_isLogEnabled(sp)
   7166 {
   7167 	r_g0 = 0;
   7168 }
   7169 
   7170 function _mandreel_audio_useMusicFunctions(sp)
   7171 {
   7172 	r_g0 = 0;
   7173 }
   7174 
   7175 function MandreelAudioStarted()
   7176 {
   7177 	setTimeout(mandreel_audio_startedFunction, 10);
   7178 }
   7179 
   7180 
   7181 function mandreel_audio_getAudioDriverName(sp)
   7182 {
   7183 	var name_ptr = heap32[sp>>2];sp+=4;
   7184 	fill_ptr_from_string(name_ptr, MandreelAudioDriver);
   7185 }
   7186 var webAudioUseMusicFunctions = true;
   7187 
   7188 function wa_mandreel_audio_init(sp)
   7189 {
   7190 }
   7191 
   7192 function wa_mandreel_audio_end(sp)
   7193 {
   7194 }
   7195 
   7196 function wa_mandreel_audio_update(sp)
   7197 {
   7198 }
   7199 
   7200 function wa_mandreel_audio_checkBuffersPending(sp)
   7201 {
   7202 	r_g0 = wa_imp_mandreel_audio_checkBuffersPending();
   7203 }
   7204 
   7205 function wa_mandreel_audio_createBuffer(sp)
   7206 {
   7207 	var ptr_fileName = heap32[sp>>2];sp+=4;
   7208 	var maxChannels = heap32[sp>>2];sp+=4;
   7209 	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
   7210 	wa_imp_mandreel_audio_createBuffer(fileName);
   7211 
   7212 	r_g0 = 0;
   7213 }
   7214 
   7215 function wa_mandreel_audio_playChannel(sp)
   7216 {
   7217 	var ptr_fileName = heap32[sp>>2];sp+=4;
   7218 	var channel = heap32[sp>>2];sp+=4;
   7219 	var vol = heapFloat[sp>>2];sp+=4;
   7220 	var loop = heap32[sp>>2];sp+=4;
   7221 	var pitch = heapFloat[sp>>2];sp+=4;
   7222 	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
   7223 	wa_imp_mandreel_audio_playChannel(fileName,channel,vol,loop,pitch);
   7224 	r_g0 = 0;
   7225 }
   7226 
   7227 function wa_mandreel_audio_stopChannel(sp)
   7228 {
   7229 	var ptr_fileName = heap32[sp>>2];sp+=4;
   7230 	var channel = heap32[sp>>2];sp+=4;
   7231 	var index = heapFloat[sp>>2];sp+=4;
   7232 	wa_imp_mandreel_audio_stopChannel(channel);
   7233 }
   7234 
   7235 function wa_mandreel_audio_setChannelVolume(sp)
   7236 {
   7237 	var channel = heap32[sp>>2];sp+=4;
   7238 	var vol = heapFloat[sp>>2];sp+=4;
   7239 	wa_imp_mandreel_audio_setChannelVolume(channel,vol);
   7240 }
   7241 
   7242 function wa_mandreel_audio_setChannelPan(sp)
   7243 {
   7244 	var channel = heap32[sp>>2];sp+=4;
   7245 	var pan = heapFloat[sp>>2];sp+=4;
   7246 	wa_imp_mandreel_audio_setChannelPan(channel,pan);
   7247 }
   7248 
   7249 function wa_mandreel_audio_setChannelPitch(sp)
   7250 {
   7251 	var channel = heap32[sp>>2];sp+=4;
   7252 	var pitch = heapFloat[sp>>2];sp+=4;
   7253 	wa_imp_mandreel_audio_setChannelPitch(channel,pitch);
   7254 }
   7255 
   7256 function wa_mandreel_audio_useMusicFunctions(sp)
   7257 {
   7258 	r_g0 = webAudioUseMusicFunctions ? 1 : 0;
   7259 }
   7260 
   7261 function wa_mandreel_audio_playMusic(sp)
   7262 {
   7263 	var ptr_fileName = heap32[sp>>2];sp+=4;
   7264 	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
   7265 	wa_imp_mandreel_audio_playMusic(fileName);
   7266 }
   7267 
   7268 function wa_mandreel_audio_stopMusic(sp)
   7269 {
   7270 	wa_imp_mandreel_audio_stopMusic();
   7271 }
   7272 
   7273 function wa_mandreel_audio_setMusicVol(sp)
   7274 {
   7275 	var vol = heapFloat[sp>>2];sp+=4;
   7276 	wa_imp_mandreel_audio_setMusicVol(vol);
   7277 }
   7278 
   7279 function wa_MainAudioDriver()
   7280 {
   7281 	mandreel_audio_init = wa_mandreel_audio_init;
   7282 	mandreel_audio_end = wa_mandreel_audio_end;
   7283 	mandreel_audio_update = wa_mandreel_audio_update;
   7284 	mandreel_audio_createBuffer = wa_mandreel_audio_createBuffer;
   7285 	mandreel_audio_playChannel = wa_mandreel_audio_playChannel;
   7286 	mandreel_audio_stopChannel = wa_mandreel_audio_stopChannel;
   7287 	mandreel_audio_setChannelVolume = wa_mandreel_audio_setChannelVolume;
   7288 	mandreel_audio_setChannelPan = wa_mandreel_audio_setChannelPan;
   7289 	mandreel_audio_setChannelPitch = wa_mandreel_audio_setChannelPitch;
   7290 	mandreel_audio_useMusicFunctions = wa_mandreel_audio_useMusicFunctions;
   7291 	mandreel_audio_playMusic = wa_mandreel_audio_playMusic;
   7292 	mandreel_audio_stopMusic = wa_mandreel_audio_stopMusic;
   7293 	mandreel_audio_checkBuffersPending = wa_mandreel_audio_checkBuffersPending;
   7294 	mandreel_audio_setMusicVol = wa_mandreel_audio_setMusicVol;
   7295 
   7296 	setTimeout("mandreel_webAudio_PreloadAssets()", 10);
   7297 }
   7298 
   7299 
   7300 var webAudioBuffers = new Array();
   7301 var webAudioChannels = new Array(32);
   7302 var webAudioGain = new Array(32);
   7303 var webAudioContext = 0;
   7304 
   7305 
   7306 function wa_initWebAudio()
   7307 {
   7308 	if ( preCreatedWebAudioContext != null )
   7309 	{
   7310 		webAudioContext = preCreatedWebAudioContext;
   7311 	}
   7312 	else
   7313 	{
   7314 		try	{ webAudioContext = new webkitAudioContext(); } catch(err) { webAudioContext = 0; }
   7315 	}
   7316 }
   7317 
   7318 function wa_imp_callfunction(params)
   7319 {
   7320 	if ( params[0] == "#MandreelAudio" )
   7321 	{
   7322 		if ( params[1] == "playChannel" )
   7323 			wa_imp_mandreel_audio_playChannel(params[2],params[3],params[4],params[5],params[6],params[7]);
   7324 		else if ( params[1] == "stopChannel" )
   7325 			wa_imp_mandreel_audio_stopChannel(params[2]);
   7326 		else if ( params[1] == "setChannelVol" )
   7327 			wa_imp_mandreel_audio_setChannelVol(params[2],params[3]);
   7328 		else if ( params[1] == "setChannelPan" )
   7329 			wa_imp_mandreel_audio_setChannelPan(params[2],params[3]);
   7330 		else if ( params[1] == "playMusic" )
   7331 			wa_imp_mandreel_audio_playMusic(params[2]);
   7332 		else if ( params[1] == "stopMusic" )
   7333 			wa_imp_mandreel_audio_stopMusic(params[2]);
   7334 		else if ( params[1] == "setMusicVol" )
   7335 			wa_imp_mandreel_audio_setMusicVol(params[2]);
   7336 
   7337 		return true;
   7338 	}
   7339 	return false;
   7340 }
   7341 
   7342 function wa_getFileNameNoExt(fileName)
   7343 {
   7344 	var fileNameNoExt = fileName.toLowerCase();
   7345 	var indexDot = fileNameNoExt.lastIndexOf('.');
   7346 	if ( indexDot != -1 )
   7347 		fileNameNoExt = fileNameNoExt.substr(0,indexDot);
   7348 	fileNameNoExt = fileNameNoExt.replace(/\\/g,"/");
   7349 	if ( fileNameNoExt.length > 0 )
   7350 	{
   7351 		if ( fileNameNoExt.charAt(0) == "/" )
   7352 		{
   7353 			if (fileNameNoExt.length > 1 )
   7354 				fileNameNoExt = fileNameNoExt.substr(1,fileNameNoExt.length-1);
   7355 			else
   7356 				fileNameNoExt = "";
   7357 		}
   7358 	}
   7359 	return fileNameNoExt;
   7360 }
   7361 
   7362 var wa_mandreel_cache_audio_files = false;
   7363 var wa_mandreel_cache_audio_files_path = '';
   7364 
   7365 function mandreel_webAudio_reloadfile(fileName,callback)
   7366 {
   7367 	var fileNameNoExt = wa_getFileNameNoExt(fileName);
   7368 	var url = wa_mandreel_cache_audio_files_path+fileNameNoExt+".ogg";
   7369 	dump("webAudio: loading buffer ("+fileName+") url("+url+")");
   7370 	var request = new XMLHttpRequest();
   7371 	request.open("GET", url, true);
   7372 	request.responseType = "arraybuffer";
   7373 	request.onreadystatechange = function()
   7374 	{
   7375 		if (request.readyState == 4)
   7376 		{
   7377 
   7378 			if (request.status == 404) callback(null);
   7379 
   7380 			callback(request.response);
   7381 
   7382 		}
   7383 	}
   7384 	request.send();
   7385 }
   7386 
   7387 Mandreel_window.BlobBuilder = Mandreel_window.MozBlobBuilder || Mandreel_window.WebKitBlobBuilder || Mandreel_window.BlobBuilder;
   7388 
   7389 function mandreel_webaudio_saveFile(name, my_arrayBuffer)
   7390 {
   7391 	dump('mandreel_webaudio_saveFile ' + name);
   7392 	g_mandreel_fs.root.getFile(name, {create: true}, function(fileEntry) {
   7393 
   7394     // Create a FileWriter object for our FileEntry (log.txt).
   7395     fileEntry.createWriter(function(fileWriter) {
   7396 
   7397       fileWriter.onwriteend = function(e) {
   7398         dump('Write completed.');
   7399       };
   7400 
   7401       fileWriter.onerror = function(e) {
   7402         dump('Write failed: ' + e.toString());
   7403       };
   7404 
   7405 	  var bb = new Mandreel_window.BlobBuilder(); // Note: window.WebKitBlobBuilder in Chrome 12.
   7406       bb.append(my_arrayBuffer);
   7407       fileWriter.write(bb.getBlob('text/plain'));
   7408 
   7409 
   7410 
   7411     }, function(e) { dump('error 1 mandreel_webaudio_saveFile ' + name);MandreelFsErrorHandler(e) });
   7412 
   7413   }, function(e) { dump('error 2 mandreel_webaudio_saveFile ' + name);MandreelFsErrorHandler(e) });
   7414 }
   7415 
   7416 function mandreel_webaudio_loadFile(name, callback, callback2)
   7417 {
   7418 	g_mandreel_fs.root.getFile(name, {}, function(fileEntry) {
   7419 
   7420 	fileEntry.file(function(file) {
   7421 
   7422 		var reader = new FileReader();
   7423 
   7424 
   7425        reader.onloadend = function(e) {
   7426 
   7427 	   dump('mandreel_fs_loadFile ' + name);
   7428 	   if (this.result.byteLength)
   7429 		callback(this.result);
   7430 	   else
   7431 	   callback2(this.result);
   7432 
   7433        };
   7434 
   7435 
   7436 	   	reader.readAsArrayBuffer(file);
   7437 
   7438 
   7439 
   7440 	}, function(e) { dump('error 1 webaudio_loadFile ' + name);MandreelFsErrorHandler(e) } );
   7441 
   7442   }, function(e) { dump('error 2 webaudio_loadFile ' + name);MandreelFsErrorHandler(e) } );
   7443 }
   7444 
   7445 
   7446 function mandreel_webAudio_cacheFile(fileName, callback)
   7447 {
   7448 	if (!g_mandreel_fs)
   7449 	{
   7450 		mandreel_webAudio_reloadfile(fileName, callback);
   7451 
   7452 		return;
   7453 	}
   7454 	fileName = fileName.toLowerCase();
   7455 
   7456 	fileName = fileName.replace(/\\/g,"/");
   7457 
   7458 	if (fileName[0] == '/')
   7459 		fileName = fileName.substring(1);
   7460 
   7461 	dump('chanka name ' + fileName);
   7462 
   7463 	g_mandreel_fs.root.getFile(fileName, {}, function(fileEntry) {
   7464 
   7465 	fileEntry.getMetadata(function(metaData){
   7466 	var my_seconds = metaData.modificationTime.getTime()/1000;
   7467 
   7468 	if (g_mandreel_timestamp_fs>my_seconds)
   7469 	{
   7470 		dump('mandreel_webAudio_cacheFile1 ');
   7471 		fileEntry.remove(function() {
   7472 				mandreel_webAudio_reloadfile(fileName, function(response) { callback(response); if (response) mandreel_webaudio_saveFile(fileName, response); } );
   7473 			}, function(e) { dump('error 1 mandreel_webAudio_cacheFile ' + fileName);MandreelFsErrorHandler(e); mandreel_webAudio_reloadfile(fileName, function(response) { callback(response); if (response) mandreel_webaudio_saveFile(fileName, response); } );});
   7474 
   7475 	}
   7476 	else
   7477 	{
   7478 		//alert('mandreel_fscachefile2');
   7479 		dump('mandreel_webAudio_cacheFile2');
   7480 		mandreel_webaudio_loadFile(fileName, function(response) { callback(response);  } ,
   7481 		function() {
   7482 				mandreel_webAudio_reloadfile(fileName, function(response) { callback(response); if (response) mandreel_webaudio_saveFile(fileName, response); } );
   7483 			}
   7484 		);
   7485 
   7486 
   7487 
   7488 	}
   7489 
   7490 
   7491 		}, function(e) { dump('error 2 mandreel_webAudio_cacheFile ' + fileName);MandreelFsErrorHandler(e) });
   7492 
   7493 
   7494   }, function(error) {dump('mandreel_webAudio_cacheFile3');	mandreel_webAudio_reloadfile(fileName, function(response) { callback(response); if (response) mandreel_webaudio_saveFile(fileName, response); });});
   7495 }
   7496 
   7497 function mandreel_webAudio_queueLoadBuffer(fileName, callback)
   7498 {
   7499 	//dump("mandreel_webAudio_queueLoadBuffer "+fileName);
   7500 	if ( webAudioContext )
   7501 	{
   7502 		var fileNameNoExt = wa_getFileNameNoExt(fileName);
   7503 		var buffer = webAudioBuffers[fileNameNoExt];
   7504 		if ( buffer == null && buffer != "invalid" )
   7505 		{
   7506 			if ( fileNameNoExt != "" )
   7507 			{
   7508 				if (wa_mandreel_cache_audio_files == true)
   7509 				{
   7510 					webAudioBuffers[fileNameNoExt] = "invalid";
   7511 
   7512 					mandreel_webAudio_cacheFile(fileName, function(response) {
   7513 
   7514 						if (callback != null)
   7515 							callback();
   7516 
   7517 						if ( response != null )
   7518 							webAudioBuffers[fileNameNoExt] = webAudioContext.createBuffer(response, false);
   7519 						else
   7520 							webAudioBuffers[fileNameNoExt] = "invalid";
   7521 					} );
   7522 					return;
   7523 				}
   7524 
   7525 				var url = g_mandreel_working_folder+fileNameNoExt+".ogg";
   7526 				dump("webAudio: loading buffer ("+fileName+") url("+url+")");
   7527 				webAudioBuffers[fileNameNoExt] = "invalid";
   7528 				var request = new XMLHttpRequest();
   7529 				request.open("GET", url, true);
   7530 				request.responseType = "arraybuffer";
   7531 				request.onreadystatechange = function()
   7532 				{
   7533 					if (request.readyState == 4)
   7534 					{
   7535 						if (callback != null)
   7536 							callback();
   7537 
   7538 						if (request.status == 404) return;
   7539 						//dump("webAudio: loaded buffer "+request.status);
   7540 						if ( request.response != null )
   7541 							webAudioBuffers[fileNameNoExt] = webAudioContext.createBuffer(request.response, false);
   7542 						else
   7543 							webAudioBuffers[fileNameNoExt] = "invalid";
   7544 					}
   7545 				}
   7546 				request.send();
   7547 			}
   7548 			else
   7549 				webAudioBuffers[fileNameNoExt] = "invalid";
   7550 		}
   7551 	}
   7552 }
   7553 
   7554 var webAudioPreloadAudioFiles = new Array();
   7555 var webAudioPreloadBytes = null;
   7556 var webAudioPreloadCurrentFile = 0;
   7557 var webAudioPreloadAsync = false;
   7558 
   7559 function webAudioParsePreloadFile(response)
   7560 {
   7561 	var pos = 4;
   7562 	var bytes = new Uint8Array(response);
   7563 	var i = 0;
   7564 	if ( webAudioPreloadAsync )
   7565 		webAudioPreloadBytes = bytes;
   7566 	while ( pos < bytes.byteLength )
   7567 	{
   7568 		// filename
   7569 		var fileName = "";
   7570 		while ( bytes[pos] != 0 )
   7571 		{
   7572 			fileName += String.fromCharCode(bytes[pos]);
   7573 			pos++;
   7574 		}
   7575 		pos++;
   7576 		// filesize
   7577 		var filesize = bytes[pos] | (bytes[pos+1]<<8) | (bytes[pos+2]<<16) | (bytes[pos+3]<<24);
   7578 		pos += 4;
   7579 
   7580 		// contents
   7581 		var fileNameNoExt = wa_getFileNameNoExt(fileName);
   7582 		if ( webAudioPreloadAsync )
   7583 		{
   7584 			var audioFile =
   7585 			{
   7586 				fileName : fileNameNoExt,
   7587 				fileSize : filesize,
   7588 				position : pos
   7589 			};
   7590 			webAudioPreloadAudioFiles[i] = audioFile;
   7591 		}
   7592 		else
   7593 		{
   7594 			var bufferdata = new Uint8Array(filesize);
   7595 			bufferdata.set(bytes.subarray(pos,pos+filesize));
   7596 			webAudioBuffers[fileNameNoExt] = webAudioContext.createBuffer(bufferdata.buffer, false);
   7597 			dump("preload audio file ("+fileName+")");
   7598 		}
   7599 
   7600 		pos += filesize;
   7601 		i++;
   7602 	}
   7603 	if ( webAudioPreloadAsync )
   7604 	{
   7605 		dump("started preloading audio files async");
   7606 		setTimeout("mandreel_webAudio_preloadNextAudioFile()",10);
   7607 	}
   7608 }
   7609 
   7610 function mandreel_webAudio_preloadNextAudioFile()
   7611 {
   7612 	if ( webAudioPreloadAudioFiles.length > webAudioPreloadCurrentFile )
   7613 	{
   7614 		var audioFile = webAudioPreloadAudioFiles[webAudioPreloadCurrentFile];
   7615 		if ( audioFile.fileName == null )
   7616 		{
   7617 			webAudioPreloadCurrentFile++;
   7618 			setTimeout("mandreel_webAudio_preloadNextAudioFile()",10);
   7619 		}
   7620 		else
   7621 		{
   7622 			var bufferdata = new Uint8Array(audioFile.fileSize);
   7623 			bufferdata.set(webAudioPreloadBytes.subarray(audioFile.position,audioFile.position+audioFile.fileSize));
   7624 			dump("async preload audio file ("+audioFile.fileName+")");
   7625 			webAudioContext.decodeAudioData(bufferdata.buffer,mandreel_webAudio_preloadNextAudioFileOK,mandreel_webAudio_preloadNextAudioFileError);
   7626 		}
   7627 	}
   7628 	else
   7629 	{
   7630 		webAudioPreloadAudioFiles = null;
   7631 		webAudioPreloadBytes = null;
   7632 		dump("finished preloading audio files async");
   7633 	}
   7634 }
   7635 
   7636 function mandreel_webAudio_preloadNextAudioFileOK(audioBuffer)
   7637 {
   7638 	var audioFile = webAudioPreloadAudioFiles[webAudioPreloadCurrentFile];
   7639 	webAudioPreloadCurrentFile++;
   7640 	if ( audioFile.fileName != null )
   7641 	{
   7642 		webAudioBuffers[audioFile.fileName] = audioBuffer;
   7643 		setTimeout("mandreel_webAudio_preloadNextAudioFile()",10);
   7644 	}
   7645 }
   7646 
   7647 function mandreel_webAudio_preloadNextAudioFileError()
   7648 {
   7649 	var audioFile = webAudioPreloadAudioFiles[webAudioPreloadCurrentFile];
   7650 	webAudioPreloadCurrentFile++;
   7651 	if ( audioFile.fileName != null )
   7652 		dump("FAILED async preload audio file ("+audioFile.fileName+")");
   7653 	setTimeout("mandreel_webAudio_preloadNextAudioFile()",10);
   7654 }
   7655 
   7656 function mandreel_webAudio_queueLoadPackedBuffers(fileName, callback)
   7657 {
   7658 	if ( webAudioContext )
   7659 	{
   7660 		// TODO
   7661 		/*if (wa_mandreel_cache_audio_files == true)
   7662 		{
   7663 			webAudioBuffers[fileNameNoExt] = "invalid";
   7664 
   7665 			mandreel_webAudio_cacheFile(fileName, function(response) {
   7666 
   7667 				if (callback != null)
   7668 					callback();
   7669 
   7670 				if ( response != null )
   7671 					webAudioBuffers[fileNameNoExt] = webAudioContext.createBuffer(response, true);
   7672 				else
   7673 					webAudioBuffers[fileNameNoExt] = "invalid";
   7674 			} );
   7675 			return;
   7676 		}*/
   7677 
   7678 		mandreel_fs_load_binary(fileName, function mandreel_webAudio_queueLoadPackedBuffers_cb(data){
   7679 
   7680 		if (data)
   7681 		{
   7682 			if (callback != null)
   7683 				callback();
   7684 			webAudioParsePreloadFile(data);
   7685 		}
   7686 		else
   7687 		{
   7688 			var url = g_mandreel_working_folder+fileName;
   7689 			dump("webAudio: loading preload buffers ("+fileName+") url("+url+")");
   7690 			var request = new XMLHttpRequest();
   7691 			request.open("GET", url, true);
   7692 			request.responseType = "arraybuffer";
   7693 			var last_loaded_size = 0;
   7694 			request.onreadystatechange = function()
   7695 			{
   7696 				if (request.readyState == 4)
   7697 				{
   7698 					if (callback != null)
   7699 						callback();
   7700 
   7701 					if (request.status == 404)
   7702 						return;
   7703 					if ( request.response != null )
   7704 					{
   7705 						mandreel_fs_saveFile(fileName, request.response);
   7706 						webAudioParsePreloadFile(request.response);
   7707 					}
   7708 				}
   7709 			}
   7710 			request.onprogress = function(e)
   7711 			{
   7712 				var delta_size = e.loaded - last_loaded_size;
   7713 				last_loaded_size = e.loaded;
   7714 
   7715 				imandreel_update_load(delta_size,0);
   7716 
   7717 				var percentage = ((100*e.loaded)/mandreel_total_pogfile_size)|0;
   7718 
   7719 				if (percentage>100)
   7720 					percentage = 100;
   7721 
   7722 				if ( mandreelAppStartStateFunc )
   7723 					mandreelAppStartStateFunc("loadingAudioUpdate",percentage);
   7724 			}
   7725 			request.send();
   7726 		}
   7727 		});
   7728 	}
   7729 }
   7730 
   7731 
   7732 
   7733 var wa_mandreel_audio_buffers_num = 0;
   7734 var wa_mandreel_audio_buffers_loaded = 0;
   7735 
   7736 function wa_imp_mandreel_audio_checkBuffersPending()
   7737 {
   7738 	return wa_mandreel_audio_buffers_num - wa_mandreel_audio_buffers_loaded;
   7739 }
   7740 
   7741 function wa_imp_mandreel_audio_createBuffer(fileName)
   7742 {
   7743 	if ( webAudioContext )
   7744 	{
   7745 		var fileNameNoExt = wa_getFileNameNoExt(fileName);
   7746 		var buffer = webAudioBuffers[fileNameNoExt];
   7747 		if ( buffer == null && buffer != "invalid" )
   7748 		{
   7749 			wa_mandreel_audio_buffers_num++;
   7750 			mandreel_webAudio_queueLoadBuffer(fileName, function () {wa_mandreel_audio_buffers_loaded++;});
   7751 		}
   7752 	}
   7753 }
   7754 
   7755 function wa_imp_mandreel_audio_playChannel(fileName,channel,vol,loop,pitch)
   7756 {
   7757 	if ( webAudioContext )
   7758 	{
   7759 		var fileNameNoExt = wa_getFileNameNoExt(fileName);
   7760 		var buffer = webAudioBuffers[fileNameNoExt];
   7761 		if ( buffer == null || buffer == "invalid" )
   7762 		{
   7763 			if ( webAudioPreloadAudioFiles != null )
   7764 			{
   7765 				var i = 0;
   7766 				while ( i < webAudioPreloadAudioFiles.length )
   7767 				{
   7768 					var audioFile = webAudioPreloadAudioFiles[i];
   7769 					if ( audioFile.fileName == fileNameNoExt )
   7770 					{
   7771 						var bufferdata = new Uint8Array(audioFile.fileSize);
   7772 						bufferdata.set(webAudioPreloadBytes.subarray(audioFile.position,audioFile.position+audioFile.fileSize));
   7773 						webAudioBuffers[audioFile.fileName] = webAudioContext.createBuffer(bufferdata.buffer, false);
   7774 						dump("**** preload audio file ("+audioFile.fileName+"), forced by playChannel");
   7775 						audioFile.fileName = null;
   7776 						i = webAudioPreloadAudioFiles.length;
   7777 					}
   7778 					else
   7779 					{
   7780 						++i;
   7781 					}
   7782 				}
   7783 			}
   7784 		}
   7785 		if ( buffer == null || buffer == "invalid" )
   7786 		{
   7787 			mandreel_webAudio_queueLoadBuffer(fileName);
   7788 			buffer = webAudioBuffers[fileNameNoExt];
   7789 		}
   7790 		if ( buffer != null && buffer != "invalid" )
   7791 		{
   7792 			var chn = webAudioContext.createBufferSource();
   7793 			var gain = webAudioContext.createGainNode();
   7794 			if ( chn && gain )
   7795 			{
   7796 				webAudioChannels[channel] = chn;
   7797 				webAudioGain[channel] = gain;
   7798 				chn.buffer = buffer;
   7799 				chn.connect(gain);
   7800 				gain.connect(webAudioContext.destination);
   7801 				var bLoop = loop != 0;
   7802 				chn.loop = bLoop;
   7803 				gain.gain.value = vol;
   7804 				chn.playbackRate.value = pitch;
   7805 				chn.noteOn(0);
   7806 				//dump("webAudio: PlayChannel "+channel+" "+fileName+" "+vol+" "+bLoop+" "+pitch);
   7807 			}
   7808 		}
   7809 	}
   7810 }
   7811 
   7812 function wa_imp_mandreel_audio_stopChannel(channel)
   7813 {
   7814 	if ( webAudioContext )
   7815 	{
   7816 		var chn = webAudioChannels[channel];
   7817 		if ( chn != null )
   7818 		{
   7819 			//dump("webAudio: StopChannel "+channel);
   7820 			chn.noteOff(0);
   7821 			webAudioChannels[channel] = null;
   7822 			webAudioGain[channel] = null;
   7823 		}
   7824 	}
   7825 }
   7826 
   7827 function wa_imp_mandreel_audio_setChannelVolume(channel,vol)
   7828 {
   7829 	if ( webAudioContext )
   7830 	{
   7831 		var gain = webAudioGain[channel];
   7832 		if ( gain != null )
   7833 			gain.gain.value = vol;
   7834 	}
   7835 }
   7836 
   7837 function wa_imp_mandreel_audio_setChannelPan(channel,pan)
   7838 {
   7839 	if ( webAudioContext )
   7840 	{
   7841 	}
   7842 }
   7843 
   7844 function wa_imp_mandreel_audio_setChannelPitch(channel,pitch)
   7845 {
   7846 	if ( webAudioContext )
   7847 	{
   7848 		var chn = webAudioChannels[channel];
   7849 		if ( chn != null )
   7850 		{
   7851 			chn.playbackRate.value = pitch;
   7852 		}
   7853 	}
   7854 }
   7855 
   7856 var mwebAudioPreloadState = "start";
   7857 //var mwebAudioPreloadRequest = 0;
   7858 var mwebAudioPreloadAssets = 0;
   7859 var mwebAudioCurrentPreloadAsset = 0;
   7860 var mwebAudioAsyncFiles = '';
   7861 var mwebListAudioAsyncFiles ='';
   7862 var mwebListAudioAsyncFilesPos = 0;
   7863 var mwebTotalPreloadingFiles = 0;
   7864 var mwebCurrentPreloadingFiles = 0;
   7865 function mwebCallbackAsync()
   7866 {
   7867 	mwebListAudioAsyncFilesPos++;
   7868 	if ( mwebListAudioAsyncFilesPos >= mwebListAudioAsyncFiles.length )
   7869 	{
   7870 		mwebListAudioAsyncFiles = null;
   7871 		mwebAudioAsyncFiles = null;
   7872 		return;
   7873 	}
   7874 
   7875 	setTimeout("mandreel_webAudio_queueLoadBuffer(mwebListAudioAsyncFiles[mwebListAudioAsyncFilesPos], mwebCallbackAsync);",10);
   7876 }
   7877 
   7878 function mwebCallbackAsyncPreload()
   7879 {
   7880 	mwebCurrentPreloadingFiles++;
   7881 }
   7882 
   7883 function mandreel_webAudio_PreloadAssets()
   7884 {
   7885 	/*if ( mwebAudioPreloadState == "start" )
   7886 	{
   7887 		//dump("webaudio start");
   7888 			mwebAudioPreloadRequest = new XMLHttpRequest();
   7889 			var url = g_mandreel_working_folder+"mandreel.fat.dat";
   7890 			mwebAudioPreloadRequest.open("GET", url, true);
   7891 			mwebAudioPreloadRequest.onreadystatechange = function()
   7892 			{
   7893 				if (mwebAudioPreloadRequest.readyState != 4) return;
   7894 				if ( mwebAudioPreloadRequest.status != 404 && mwebAudioPreloadRequest.response != null )
   7895 					mwebAudioPreloadState = "parseFat";
   7896 				else
   7897 				{
   7898 					mwebAudioPreloadState = "done";
   7899 					dump("error pre-loading audio assets, status("+mwebAudioPreloadRequest.status+")");
   7900 				}
   7901 			}
   7902 			mwebAudioPreloadState = "loadingFat";
   7903 			mwebAudioPreloadRequest.send();
   7904 	}
   7905 	else if ( mwebAudioPreloadState == "parseFat" )*/
   7906 	if ( mwebAudioPreloadState == "start" )
   7907 	{
   7908 		//mwebAudioPreloadAssets = mwebAudioPreloadRequest.response.split('\n');
   7909 		//mwebAudioPreloadRequest = 0;
   7910 		mwebAudioPreloadAssets = mandreelFatData.split('\n');
   7911 		mwebAudioCurrentPreloadAsset = 0;
   7912 		mwebAudioPreloadState = "preloading";
   7913 	}
   7914 	else if ( mwebAudioPreloadState == "preloading" )
   7915 	{
   7916 		//dump("webaudio preloading");
   7917 		var queued = false;
   7918 		while ( !queued && mwebAudioPreloadState != "done" )
   7919 		{
   7920 			if ( mwebAudioCurrentPreloadAsset < mwebAudioPreloadAssets.length )
   7921 			{
   7922 				var params = mwebAudioPreloadAssets[mwebAudioCurrentPreloadAsset].split(',');
   7923 				if ( params[0] == "audiofile" && params[1])
   7924 				{
   7925 					var sync_load = true;
   7926 					if (params[2] && (params[2]&1) == 0)
   7927 						sync_load = false;
   7928 
   7929 					if (sync_load)
   7930 					{
   7931 						mandreel_webAudio_queueLoadBuffer(params[1],mwebCallbackAsyncPreload);
   7932 						mwebTotalPreloadingFiles++;
   7933 						queued = true;
   7934 					}
   7935 
   7936 				}
   7937 				else if ( params[0] == "audiopreloadfile" )
   7938 				{
   7939 					mandreel_webAudio_queueLoadPackedBuffers(params[1],mwebCallbackAsyncPreload);
   7940 					var size_pog_file = parseInt(params[2], 10);
   7941 					mandreel_total_pogfile_size = size_pog_file;
   7942 					mwebTotalPreloadingFiles++;
   7943 					queued = true;
   7944 				}
   7945 				else if ( params[0] == "audiopreloadasync" )
   7946 				{
   7947 					webAudioPreloadAsync = true;
   7948 				}
   7949 				mwebAudioCurrentPreloadAsset++;
   7950 			}
   7951 			else
   7952 				queued = true;
   7953 
   7954 			if ( mwebAudioCurrentPreloadAsset >= mwebAudioPreloadAssets.length )
   7955 			{
   7956 				if (mwebCurrentPreloadingFiles == mwebTotalPreloadingFiles)
   7957 				{
   7958 					mwebAudioPreloadState = "done";
   7959 					mwebAudioPreloadAssets = 0;
   7960 				}
   7961 			}
   7962 		}
   7963 	}
   7964 
   7965 	if ( mwebAudioPreloadState == "done" )
   7966 	{
   7967 		if ( mandreelAppPlatform == "nacl" )
   7968 			setTimeout("MandreelAudioStartedNacl()", 10);
   7969 		else
   7970 			setTimeout("MandreelAudioStarted()", 10);
   7971 	}
   7972 	else
   7973 		setTimeout("mandreel_webAudio_PreloadAssets()", 10);
   7974 }
   7975 
   7976 var wa_mandreelMusicElement = null;
   7977 var wa_mandreelMusicElementFilename = "";
   7978 var wa_mandreelMusicElementVolume = 1.0;
   7979 function wa_imp_mandreel_audio_playMusic(fileName)
   7980 {
   7981 	var fileNameNoExt = wa_getFileNameNoExt(fileName);
   7982 	var fileNameFull = g_mandreel_working_folder + fileNameNoExt + ".ogg";
   7983 
   7984 	if ( wa_mandreelMusicElementFilename != fileNameFull )
   7985 	{
   7986 		wa_imp_mandreel_audio_stopMusic(0);
   7987 		var audio = document.createElement("audio");
   7988 		var type = fileNameFull.slice(fileNameFull.lastIndexOf(".")+1);
   7989 		switch(type){
   7990 			case "mp3" : type = "mpeg"; break;
   7991 			case "ogg" : type = "ogg"; break;
   7992 			case "wav" : type = "wav"; break;
   7993 			default : throw("'" + fileNameFull + "' is not a recognized audio file");
   7994 		}
   7995 
   7996 		// set correct id for lookup, loading method and data types
   7997 		audio.setAttribute("type", "audio/" + type);
   7998 		var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
   7999 		if ( is_chrome )
   8000 			audio.setAttribute("loop", "loop");
   8001 		else
   8002 			audio.addEventListener('ended', function(){this.currentTime = 0;}, false);
   8003 		audio.volume = wa_mandreelMusicElementVolume;
   8004 		audio.setAttribute("autoplay", "true");
   8005 		audio.setAttribute("src", fileNameFull);
   8006 
   8007 
   8008 		// include into list and document
   8009 		document.body.appendChild(audio);
   8010 		wa_mandreelMusicElement = audio;
   8011 		wa_mandreelMusicElementFilename = fileNameFull;
   8012 	}
   8013 }
   8014 
   8015 function wa_imp_mandreel_audio_stopMusic()
   8016 {
   8017 	if ( wa_mandreelMusicElement != null )
   8018 	{
   8019 		document.body.removeChild(wa_mandreelMusicElement);
   8020 		wa_mandreelMusicElement = null;
   8021 		wa_mandreelMusicElementFilename = "";
   8022 	}
   8023 }
   8024 
   8025 function wa_imp_mandreel_audio_setMusicVol(vol)
   8026 {
   8027 	wa_mandreelMusicElementVolume = vol;
   8028 	if ( wa_mandreelMusicElement != null )
   8029 	{
   8030 		wa_mandreelMusicElement.volume = wa_mandreelMusicElementVolume;
   8031 	}
   8032 }
   8033 
   8034 var mandreel_audio_stream_func_ptr = 0;
   8035 function mandreel_audio_stream_process(e)
   8036 {
   8037 	var l = e.outputBuffer.getChannelData(0);
   8038 	var l2 = e.outputBuffer.getChannelData(1);
   8039 	var n = e.outputBuffer.length;
   8040 
   8041 	var offset2 = 0;
   8042 	var inc = 44.1 / 48.0;
   8043 	while ( n > 0 )
   8044 	{
   8045 		var n2 = ((n*inc)|0)/4;
   8046 		if ( n2 > 1024 )
   8047 			n2 = 1024;
   8048 
   8049 		var sp = g_stack_pointer+100*1024;
   8050 		var ptr = g_stack_pointer+200*1024;
   8051 		var _sp = sp>>2;
   8052 		heap32[_sp]=ptr;
   8053 		heap32[_sp+1]=n2*4;
   8054 		__FUNCTION_TABLE__[(mandreel_audio_stream_func_ptr)>>2](sp);
   8055 
   8056 		var offset = ptr>>2;
   8057 		var size = n2*4;
   8058 		/*for (var i=0;i<size;++i)
   8059 		{
   8060 			l[i+offset2] = heapFloat[offset+(i*2)];
   8061 			l2[i+offset2] = heapFloat[offset+(i*2)+1];
   8062 		}*/
   8063 		var i = 0;
   8064 		var j = 0;
   8065 		while ( i < size )
   8066 		{
   8067 			l[j+offset2] = heapFloat[offset+((i|0)*2)];
   8068 			l2[j+offset2] = heapFloat[offset+((i|0)*2)+1];
   8069 			i += inc;
   8070 			j++;
   8071 		}
   8072 
   8073 		//offset2 += n2*4;
   8074 		//n -= n2*4;
   8075 		offset2 += j;
   8076 		n -= j;
   8077 	}
   8078 }
   8079 
   8080 function mandreel_Audio_requestSoundData(soundData)
   8081 {
   8082 	var n = soundData.length/2;
   8083 	var offset2 = 0;
   8084 	while ( n > 0 )
   8085 	{
   8086 		var n2 = n;
   8087 		if ( n2 > 1024 )
   8088 			n2 = 1024;
   8089 		var sp = g_stack_pointer+100*1024;
   8090 		var ptr = g_stack_pointer+200*1024;
   8091 		var _sp = sp>>2;
   8092 		heap32[_sp]=ptr;
   8093 		heap32[_sp+1]=n2;
   8094 		__FUNCTION_TABLE__[(mandreel_audio_stream_func_ptr)>>2](sp);
   8095 
   8096 		var offset = ptr>>2;
   8097 		var size = n2*2;
   8098 		var buf = heapFloat.subarray(offset,offset+size);
   8099 		soundData.set(buf,offset2);
   8100 		/*for (var i=0; i<size; i++)
   8101 		  soundData[i+offset2] = heapFloat[offset+i];*/
   8102 		offset2 += n2*2;
   8103 		n -= n2;
   8104 	}
   8105  }
   8106 
   8107 var __Mandreel_Audio_CreateStream_created = false;
   8108 function Mandreel_Audio_CreateStream(sp)
   8109 {
   8110 	if ( !__Mandreel_Audio_CreateStream_created )
   8111 	{
   8112 		if (webAudioContext)
   8113 		{
   8114 			mandreel_audio_stream_func_ptr = heap32[sp>>2];
   8115 			var source =  webAudioContext.createJavaScriptNode(1024*4, 0, 2);
   8116 			source.connect(webAudioContext.destination);
   8117 			source.onaudioprocess = mandreel_audio_stream_process;
   8118 		}
   8119 		else
   8120 		{
   8121 			mandreel_audio_stream_func_ptr = heap32[sp>>2];
   8122 			AudioDataDestination(44100,mandreel_Audio_requestSoundData);
   8123 		}
   8124 		__Mandreel_Audio_CreateStream_created = true;
   8125 	}
   8126 }
   8127 function mandreel_webAudio_dummyStream()
   8128 {
   8129 	var sp = g_stack_pointer+100*1024;
   8130 	var ptr = g_stack_pointer+200*1024;
   8131 	var _sp = sp>>2;
   8132 	heap32[_sp]=ptr;
   8133 	heap32[_sp+1]=4096;
   8134 	__FUNCTION_TABLE__[(mandreel_audio_stream_func_ptr)>>2](sp);
   8135 	setTimeout("mandreel_webAudio_dummyStream()",10);
   8136 }
   8137 
   8138 function AudioDataDestination(sampleRate, readFn)
   8139 {
   8140 	// Initialize the audio output.
   8141 	var audio = new Audio();
   8142 	if ( audio.mozSetup == null )
   8143 	{
   8144 		setTimeout("mandreel_webAudio_dummyStream()",10);
   8145 		return;
   8146 	}
   8147 	audio.mozSetup(2, sampleRate);
   8148 
   8149 	var currentWritePosition = 0;
   8150 	var prebufferSize = sampleRate / 2; // buffer 500ms
   8151 	var tail = null, tailPosition;
   8152 
   8153 	// The function called with regular interval to populate
   8154 	// the audio output buffer.
   8155 	setInterval(function() {
   8156 	  var written;
   8157 	  // Check if some data was not written in previous attempts.
   8158 	  if(tail) {
   8159 		written = audio.mozWriteAudio(tail.subarray(tailPosition));
   8160 		currentWritePosition += written;
   8161 		tailPosition += written;
   8162 		if(tailPosition < tail.length) {
   8163 		  // Not all the data was written, saving the tail...
   8164 		  return; // ... and exit the function.
   8165 		}
   8166 		tail = null;
   8167 	  }
   8168 
   8169 	  // Check if we need add some data to the audio output.
   8170 	  var currentPosition = audio.mozCurrentSampleOffset();
   8171 	  var available = currentPosition + prebufferSize - currentWritePosition;
   8172 	  if(available > 0) {
   8173 		// Request some sound data from the callback function.
   8174 		var soundData = new Float32Array(available);
   8175 		readFn(soundData);
   8176 
   8177 		// Writting the data.
   8178 		written = audio.mozWriteAudio(soundData);
   8179 		if(written < soundData.length) {
   8180 		  // Not all the data was written, saving the tail.
   8181 		  tail = soundData;
   8182 		  tailPosition = written;
   8183 		}
   8184 		currentWritePosition += written;
   8185 	  }
   8186 	}, 100);
   8187 }
   8188 var mandreel_flashaudio_server = "";
   8189 var mandreel_flashaudio_lite = false;
   8190 var mandreel_flashaudio_musicaudiotag = true;
   8191 
   8192 function as3Error(str)
   8193 {
   8194 	var params = str.split(' ');
   8195 	if ( params[0] == "createdBuffer" )
   8196 		mandreel_audio_flash_lastBufferCreatedSwf = parseInt(params[1]);
   8197 	dump("as3Log: "+str);
   8198 }
   8199 
   8200 function mandreel_audio_getFlashMovieObject(movieName)
   8201 {
   8202 	if (Mandreel_window.document[movieName])
   8203 	{
   8204 		return Mandreel_window.document[movieName];
   8205 	}
   8206 	if (navigator.appName.indexOf("Microsoft Internet")==-1)
   8207 	{
   8208 		if (document.embeds && document.embeds[movieName])
   8209 			return document.embeds[movieName];
   8210 	}
   8211 	else
   8212 	{
   8213 		return document.getElementById(movieName);
   8214 	}
   8215 }
   8216 
   8217 function mandreel_sendmsg_flash(msg)
   8218 {
   8219 	if ( mandreel_flashaudio_server != "" )
   8220 	{
   8221 		var iframeWin = document.getElementById("ninja-iframe").contentWindow;
   8222 		iframeWin.postMessage(msg,mandreel_flashaudio_server);
   8223 	}
   8224 	else
   8225 	{
   8226 		var flashMovie=mandreel_audio_getFlashMovieObject("FlashDivAudio");
   8227 		if ( flashMovie != null )
   8228 			flashMovie.receiveMessage(msg);
   8229 		else
   8230 			dump("error: flashMovie not found");
   8231 	}
   8232 }
   8233 
   8234 function fl_mandreel_audio_init(sp)
   8235 {
   8236 	mandreel_sendmsg_flash("init "+g_mandreel_working_folder);
   8237 }
   8238 
   8239 function fl_mandreel_audio_end(sp)
   8240 {
   8241 }
   8242 
   8243 function fl_mandreel_audio_update(sp)
   8244 {
   8245 }
   8246 
   8247 function mandreel_flashaudiolite_createBuffer(fileName)
   8248 {
   8249 	mandreel_audio_flash_lastBufferCreated++;
   8250 	mandreel_sendmsg_flash("createBuffer "+wa_getFileNameNoExt(fileName)+" "+mandreel_audio_flash_lastBufferCreated);
   8251 }
   8252 
   8253 var mandreel_audio_flash_lastBufferCreated = 0;
   8254 function fl_mandreel_audio_createBuffer(sp)
   8255 {
   8256 	var ptr_fileName = heap32[sp>>2];sp+=4;
   8257 	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
   8258 	mandreel_flashaudiolite_createBuffer(fileName);
   8259 }
   8260 
   8261 function fl_internal_mandreel_audio_checkBuffersPending()
   8262 {
   8263 	return mandreel_flashaudio_lite && (mandreel_audio_flash_lastBufferCreatedSwf != mandreel_audio_flash_lastBufferCreated);
   8264 }
   8265 
   8266 var mandreel_audio_flash_lastBufferCreatedSwf = 0;
   8267 function fl_mandreel_audio_checkBuffersPending(sp)
   8268 {
   8269 	r_g0 = 0;
   8270 	if ( fl_internal_mandreel_audio_checkBuffersPending() )
   8271 		r_g0 = 1;
   8272 	dump("fl_mandreel_audio_checkBuffersPending ("+r_g0+") ("+mandreel_audio_flash_lastBufferCreatedSwf+") ("+mandreel_audio_flash_lastBufferCreated+")");
   8273 }
   8274 
   8275 
   8276 function fl_mandreel_audio_playChannel(sp)
   8277 {
   8278 	var ptr_fileName = heap32[sp>>2];sp+=4;
   8279 	var channel = heap32[sp>>2];sp+=4;
   8280 	var vol = heapFloat[sp>>2];sp+=4;
   8281 	var loop = heap32[sp>>2];sp+=4;
   8282 	var pitch = heapFloat[sp>>2];sp+=4;
   8283 	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
   8284 	mandreel_sendmsg_flash("playChannel "+fileName+" "+channel+" "+loop+" "+vol+" "+pitch);
   8285 	r_g0 = 0;
   8286 }
   8287 
   8288 function fl_mandreel_audio_stopChannel(sp)
   8289 {
   8290 	var ptr_fileName = heap32[sp>>2];sp+=4;
   8291 	var channel = heap32[sp>>2];sp+=4;
   8292 	var index = heapFloat[sp>>2];sp+=4;
   8293 
   8294 	mandreel_sendmsg_flash("stopChannel "+channel);
   8295 }
   8296 
   8297 function fl_mandreel_audio_setChannelVolume(sp)
   8298 {
   8299 	var channel = heap32[sp>>2];sp+=4;
   8300 	var vol = heapFloat[sp>>2];sp+=4;
   8301 
   8302 	mandreel_sendmsg_flash("setChannelVolume "+channel+" "+vol);
   8303 }
   8304 
   8305 function fl_mandreel_audio_setChannelPan(sp)
   8306 {
   8307 	var channel = heap32[sp>>2];sp+=4;
   8308 	var pan = heapFloat[sp>>2];sp+=4;
   8309 	mandreel_sendmsg_flash("setChannelPan "+channel+" "+pan);
   8310 }
   8311 
   8312 function fl_mandreel_audio_setChannelPitch(sp)
   8313 {
   8314 	var channel = heap32[sp>>2];sp+=4;
   8315 	var pitch = heapFloat[sp>>2];sp+=4;
   8316 	mandreel_sendmsg_flash("setChannelPitch "+channel+" "+pitch);
   8317 }
   8318 
   8319 
   8320 function mandreel_audio_load_flash()
   8321 {
   8322 	var failed = "";
   8323 
   8324 
   8325 	try
   8326 	{
   8327 		var mandreelAudioSwf = g_mandreel_working_folder+"mandreelaudio.swf";
   8328 		if ( mandreel_flashaudio_lite )
   8329 			mandreelAudioSwf = g_mandreel_working_folder+"mandreelaudiolite.swf";
   8330 		var swf = swfobject.createSWF({ data:mandreelAudioSwf, width:"0", height:"0", allowScriptAccess:"always" }, { menu:"false" }, "FlashDivAudio");
   8331 		if ( !swf )
   8332 			failed  = "swfobject.js not avaiable or Unable to open "+mandreelAudioSwf;
   8333 	}
   8334 	catch(err)
   8335 	{
   8336 		failed  = err;
   8337 	}
   8338 
   8339 	if (failed == "" && !swfobject.hasFlashPlayerVersion("9.0.0"))
   8340 		failed = "flash player not found";
   8341 
   8342 	if ( failed != "" )
   8343 	{
   8344 		dump("Failed to create flash audio driver ("+failed+"). Null driver will be used.");
   8345 		MandreelAudioDriver = "null";
   8346 		null_MainAudioDriver();
   8347 	}
   8348 }
   8349 
   8350 function fl_MainAudioDriver(audioServer, audioUrl)
   8351 {
   8352 	mandreel_flashaudio_server = audioServer;
   8353 	if ( mandreel_flashaudio_lite )
   8354 		mandreel_flashaudio_server = "";
   8355 	if ( mandreel_flashaudio_server != "" )
   8356 	{
   8357 		Mandreel_window.addEventListener("message", receiveMessage2, false);
   8358 		var el = document.createElement("iframe");
   8359 		el.setAttribute('id', 'ninja-iframe');
   8360 		el.setAttribute('width', '0');
   8361 		el.setAttribute('height', '0');
   8362 		el.setAttribute('frameborder', '0');
   8363 		document.body.appendChild(el);
   8364 		el.onerror = function(message) { alert(message); };
   8365 		el.setAttribute('src', audioServer+audioUrl+"/MandreelAudio.html");
   8366 		setTimeout("CheckNinjaFrameReady()", 1000);
   8367 	}
   8368 	else
   8369 	{
   8370 		setTimeout("mandreel_audio_load_flash()", 10);
   8371 	}
   8372 }
   8373 var ninjaLoaded = false;
   8374 function CheckNinjaFrameReady()
   8375 {
   8376 	try
   8377 	{
   8378 		mandreel_sendmsg_flash("loadFlash");
   8379 	}
   8380 	catch(err)
   8381 	{
   8382 	}
   8383 	if ( !ninjaLoaded )
   8384 		setTimeout("CheckNinjaFrameReady()", 1000);
   8385 }
   8386 
   8387 function fl_map_mandreel_audio_functions()
   8388 {
   8389 	mandreel_audio_init = fl_mandreel_audio_init;
   8390 	mandreel_audio_end = fl_mandreel_audio_end;
   8391 	mandreel_audio_update = fl_mandreel_audio_update;
   8392 	mandreel_audio_createBuffer = fl_mandreel_audio_createBuffer;
   8393 	mandreel_audio_playChannel = fl_mandreel_audio_playChannel;
   8394 	mandreel_audio_stopChannel = fl_mandreel_audio_stopChannel;
   8395 	mandreel_audio_setChannelVolume = fl_mandreel_audio_setChannelVolume;
   8396 	mandreel_audio_setChannelPan = fl_mandreel_audio_setChannelPan;
   8397 	mandreel_audio_setChannelPitch = fl_mandreel_audio_setChannelPitch;
   8398 	if ( mandreel_flashaudio_musicaudiotag )
   8399 	{
   8400 		mandreel_audio_useMusicFunctions = wa_mandreel_audio_useMusicFunctions;
   8401 		mandreel_audio_playMusic = wa_mandreel_audio_playMusic;
   8402 		mandreel_audio_stopMusic = wa_mandreel_audio_stopMusic;
   8403 		mandreel_audio_setMusicVol = wa_mandreel_audio_setMusicVol;
   8404 	}
   8405 	else
   8406 		dump("WARNING: flash music functions not supported");
   8407 	mandreel_audio_checkBuffersPending = fl_mandreel_audio_checkBuffersPending;
   8408 }
   8409 
   8410 function receiveMessage2(event)
   8411 {
   8412 	ninjaLoaded = true;
   8413 	fl_map_mandreel_audio_functions();
   8414 	setTimeout("MandreelAudioStarted()", 10);
   8415 }
   8416 
   8417 function mandreel_flashlite_checkPreloadFinished()
   8418 {
   8419 	if ( !fl_internal_mandreel_audio_checkBuffersPending() )
   8420 		MandreelAudioStarted();
   8421 	else
   8422 		setTimeout("mandreel_flashlite_checkPreloadFinished()", 10);
   8423 }
   8424 
   8425 function mandreel_flashlite_startPreload()
   8426 {
   8427 	mandreel_sendmsg_flash("init "+g_mandreel_working_folder);
   8428 	// preload sounds
   8429 	var FatLines = mandreelFatData.split('\n');
   8430 	for ( var i=0;i<FatLines.length;++i )
   8431 	{
   8432 		var params = FatLines[i].replace('\r','').split(',');
   8433 		if ( params[0] == "audiofile" && params[1] )
   8434 		{
   8435 			var sync_load = true;
   8436 			if (params[2] && (params[2]&1) == 0)
   8437 				sync_load = false;
   8438 
   8439 			if (sync_load)
   8440 			{
   8441 
   8442 				mandreel_flashaudiolite_createBuffer(params[1]);
   8443 			}
   8444 		}
   8445 	}
   8446 	setTimeout("mandreel_flashlite_checkPreloadFinished()", 10);
   8447 }
   8448 
   8449 function flashReady()
   8450 {
   8451 	fl_map_mandreel_audio_functions();
   8452 	setTimeout("mandreel_flashlite_startPreload()",10);
   8453 }
   8454 
   8455 function null_mandreel_audio(sp)
   8456 {
   8457 	r_g0 = 0;
   8458 }
   8459 
   8460 function null_MainAudioDriver()
   8461 {
   8462 	mandreel_audio_init = null_mandreel_audio;
   8463 	mandreel_audio_end = null_mandreel_audio;
   8464 	mandreel_audio_update = null_mandreel_audio;
   8465 	mandreel_audio_createBuffer = null_mandreel_audio;
   8466 	mandreel_audio_playChannel = null_mandreel_audio;
   8467 	mandreel_audio_stopChannel = null_mandreel_audio;
   8468 	mandreel_audio_setChannelVolume = null_mandreel_audio;
   8469 	mandreel_audio_setChannelPan = null_mandreel_audio;
   8470 	mandreel_audio_setChannelPitch = null_mandreel_audio;
   8471 	mandreel_audio_useMusicFunctions = wa_mandreel_audio_useMusicFunctions;
   8472 	mandreel_audio_playMusic = wa_mandreel_audio_playMusic;
   8473 	mandreel_audio_stopMusic = wa_mandreel_audio_stopMusic;
   8474 	mandreel_audio_setMusicVol = wa_mandreel_audio_setMusicVol;
   8475 	setTimeout("MandreelAudioStarted()", 10);
   8476 }
   8477 function at_mandreel_audio_init(sp)
   8478 {
   8479 }
   8480 
   8481 function at_mandreel_audio_end(sp)
   8482 {
   8483 }
   8484 
   8485 function at_mandreel_audio_update(sp)
   8486 {
   8487 	for ( i = 0 ; i < 32 ; ++i )
   8488 	{
   8489 		var end = maudioChannelEnd[i];
   8490 		if ( end != null )
   8491 		{
   8492 			var sound = maudiotagChannels[i];
   8493 			if ( sound != null )
   8494 			{
   8495 				if ( sound.currentTime > end )
   8496 				{
   8497 					sound.pause();
   8498 					maudioChannelEnd[i] = null;
   8499 				}
   8500 			}
   8501 		}
   8502 	}
   8503 }
   8504 
   8505 function at_mandreel_audio_checkBuffersPending(sp)
   8506 {
   8507 	r_g0 = 0;//wa_imp_mandreel_audio_checkBuffersPending();
   8508 }
   8509 
   8510 function at_mandreel_audio_createBuffer(sp)
   8511 {
   8512 	var ptr_fileName = heap32[sp>>2];sp+=4;
   8513 	var maxChannels = heap32[sp>>2];sp+=4;
   8514 	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
   8515 	//wa_imp_mandreel_audio_createBuffer(fileName);
   8516 
   8517 	r_g0 = 0;
   8518 }
   8519 
   8520 function at_mandreel_audio_playChannel(sp)
   8521 {
   8522 	var ptr_fileName = heap32[sp>>2];sp+=4;
   8523 	var channel = heap32[sp>>2];sp+=4;
   8524 	var vol = heapFloat[sp>>2];sp+=4;
   8525 	var loop = heap32[sp>>2];sp+=4;
   8526 	var pitch = heapFloat[sp>>2];sp+=4;
   8527 	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
   8528 	at_imp_mandreel_audio_playChannel(fileName,channel,vol,loop,pitch);
   8529 	r_g0 = 0;
   8530 }
   8531 
   8532 function at_mandreel_audio_stopChannel(sp)
   8533 {
   8534 	var ptr_fileName = heap32[sp>>2];sp+=4;
   8535 	var channel = heap32[sp>>2];sp+=4;
   8536 	var index = heapFloat[sp>>2];sp+=4;
   8537 	at_imp_mandreel_audio_stopChannel(channel);
   8538 }
   8539 
   8540 function at_mandreel_audio_setChannelVolume(sp)
   8541 {
   8542 	var channel = heap32[sp>>2];sp+=4;
   8543 	var vol = heapFloat[sp>>2];sp+=4;
   8544 	//wa_imp_mandreel_audio_setChannelVolume(channel,vol);
   8545 }
   8546 
   8547 function at_mandreel_audio_setChannelPan(sp)
   8548 {
   8549 	var channel = heap32[sp>>2];sp+=4;
   8550 	var pan = heapFloat[sp>>2];sp+=4;
   8551 	//wa_imp_mandreel_audio_setChannelPan(channel,pan);
   8552 }
   8553 
   8554 function at_mandreel_audio_setChannelPitch(sp)
   8555 {
   8556 	var channel = heap32[sp>>2];sp+=4;
   8557 	var pitch = heapFloat[sp>>2];sp+=4;
   8558 	//wa_imp_mandreel_audio_setChannelPitch(channel,pitch);
   8559 }
   8560 
   8561 function at_mandreel_audio_useMusicFunctions(sp)
   8562 {
   8563 	r_g0 = 1;
   8564 }
   8565 
   8566 function at_MainAudioDriver()
   8567 {
   8568 	mandreel_audio_init = at_mandreel_audio_init;
   8569 	mandreel_audio_end = at_mandreel_audio_end;
   8570 	mandreel_audio_update = at_mandreel_audio_update;
   8571 	mandreel_audio_createBuffer = at_mandreel_audio_createBuffer;
   8572 	mandreel_audio_playChannel = at_mandreel_audio_playChannel;
   8573 	mandreel_audio_stopChannel = at_mandreel_audio_stopChannel;
   8574 	mandreel_audio_setChannelVolume = at_mandreel_audio_setChannelVolume;
   8575 	mandreel_audio_setChannelPan = at_mandreel_audio_setChannelPan;
   8576 	mandreel_audio_setChannelPitch = at_mandreel_audio_setChannelPitch;
   8577 	mandreel_audio_useMusicFunctions = at_mandreel_audio_useMusicFunctions;
   8578 	mandreel_audio_playMusic = wa_mandreel_audio_playMusic;
   8579 	mandreel_audio_stopMusic = wa_mandreel_audio_stopMusic;
   8580 	mandreel_audio_checkBuffersPending = at_mandreel_audio_checkBuffersPending;
   8581 	mandreel_audio_setMusicVol = wa_mandreel_audio_setMusicVol;
   8582 
   8583 	setTimeout("mandreel_audiotag_PreloadAssets()", 10);
   8584 }
   8585 
   8586 var maudiotagPreloadState = "start";
   8587 var maudiotagPreloadAssets = 0;
   8588 var maudiotagCurrentPreloadAsset = 0;
   8589 var maudiotagPreloadAsync = false;
   8590 var maudiotagDurations = Array();
   8591 var maudiotagChannelsCreated = 0;
   8592 var maudiotagChannels = Array();
   8593 var maudiotagChannelsLoaded = Array();
   8594 var maudiotagAudioSpriteFound = false;
   8595 var maudiotagAvailableChannels = new Array();
   8596 var maudioSecondsPos = new Array();
   8597 var maudioChannelEnd = new Array();
   8598 
   8599 function mandreel_audiotag_PreloadAssets()
   8600 {
   8601 	if ( maudiotagPreloadState == "start" )
   8602 	{
   8603 		maudiotagPreloadAssets = mandreelFatData.split('\n');
   8604 		maudiotagCurrentPreloadAsset = 0;
   8605 		maudiotagPreloadState = "preloading";
   8606 	}
   8607 	else if ( maudiotagPreloadState == "preloading" )
   8608 	{
   8609 		var queued = false;
   8610 		while ( !queued && maudiotagPreloadState != "done" )
   8611 		{
   8612 			if ( maudiotagCurrentPreloadAsset < maudiotagPreloadAssets.length )
   8613 			{
   8614 				var params = maudiotagPreloadAssets[maudiotagCurrentPreloadAsset].split(',');
   8615 				if ( params[0] == "audiofile" && params[1])
   8616 				{
   8617 					var duration = params[3];
   8618 					var fileNameNoExt = wa_getFileNameNoExt(params[1]);
   8619 					maudiotagDurations[fileNameNoExt] = duration|0;
   8620 					dump("audiotag duration ("+params[1]+") "+duration);
   8621 				}
   8622 				else if ( params[0] == "audiotagfile" )
   8623 				{
   8624 					var type = params[1];
   8625 					var filesize = params[3];
   8626 					var numsounds = params[4];
   8627 					var at = new Audio();
   8628 					if ( !maudiotagAudioSpriteFound && at.canPlayType && at.canPlayType("audio/"+type) != "" )
   8629 					{
   8630 						maudiotagLoadPackFile(params[2],filesize,numsounds,type);
   8631 						maudiotagAudioSpriteFound = true;
   8632 						queued = true;
   8633 					}
   8634 				}
   8635 				else if ( params[0] == "audiopreloadasync" )
   8636 				{
   8637 					maudiotagPreloadAsync = true;
   8638 				}
   8639 				maudiotagCurrentPreloadAsset++;
   8640 			}
   8641 			else
   8642 				queued = true;
   8643 
   8644 			if ( maudiotagCurrentPreloadAsset >= maudiotagPreloadAssets.length )
   8645 			{
   8646 				maudiotagPreloadState = "done";
   8647 				maudiotagPreloadAssets = 0;
   8648 			}
   8649 		}
   8650 	}
   8651 
   8652 	if ( maudiotagPreloadState == "done" )
   8653 	{
   8654 		setTimeout("MandreelAudioStarted()", 10);
   8655 	}
   8656 	else
   8657 		setTimeout("mandreel_audiotag_PreloadAssets()", 10);
   8658 }
   8659 
   8660 function maudiotagLoadPackFile(filename,filesize,numsounds,atype)
   8661 {
   8662 	dump("audiotag packfile ("+filename+") ("+filesize+") ("+numsounds+")");
   8663 	var url = g_mandreel_working_folder+filename;
   8664 	dump("audiotag: loading packed data ("+filename+") url("+url+")");
   8665 	var request = new XMLHttpRequest();
   8666 	request.open("GET", url, true);
   8667 	request.responseType = "arraybuffer";
   8668 	request.onreadystatechange = function()
   8669 	{
   8670 		if (request.readyState == 4)
   8671 		{
   8672 			if (request.status == 404)
   8673 				return;
   8674 			if ( request.response != null )
   8675 				audiotagParsePreloadFile(request.response,numsounds,atype);
   8676 		}
   8677 	}
   8678 	request.send();
   8679 }
   8680 
   8681 function audiotagParsePreloadFile(response,numsounds,atype)
   8682 {
   8683 	var pos = 0;
   8684 	var bytes = new Uint8Array(response);
   8685 	var i = 0;
   8686 	if ( webAudioPreloadAsync )
   8687 		webAudioPreloadBytes = bytes;
   8688 	var secondsPos = 0.0;
   8689 	while ( pos < bytes.byteLength && i < numsounds)
   8690 	{
   8691 		// filename
   8692 		var fileName = "";
   8693 		while ( bytes[pos] != 0 )
   8694 		{
   8695 			fileName += String.fromCharCode(bytes[pos]);
   8696 			pos++;
   8697 		}
   8698 		pos++;
   8699 		// filesize
   8700 		var filesize = bytes[pos] | (bytes[pos+1]<<8) | (bytes[pos+2]<<16) | (bytes[pos+3]<<24);
   8701 		pos += 4;
   8702 		var fileNameNoExt = wa_getFileNameNoExt(fileName);
   8703 		var duration = maudiotagDurations[fileNameNoExt];
   8704 		dump("afile ("+fileName+") duration("+duration+") posseconds("+secondsPos+")");
   8705 		maudioSecondsPos[fileNameNoExt] = secondsPos;
   8706 		secondsPos += duration / 1000.0;
   8707 		secondsPos += 0.25;
   8708 		dump("second "+i+" "+secondsPos);
   8709 
   8710 		i++;
   8711 	}
   8712 
   8713 	// contents
   8714 	var contentSize = bytes.byteLength - pos;
   8715 	var bufferdata = new Uint8Array(contentSize);
   8716 	bufferdata.set(bytes.subarray(pos,pos+contentSize));
   8717 	var ascii = '';
   8718 	for (var i=0; i<bufferdata.length; i++)
   8719 		ascii += String.fromCharCode(bufferdata[i]);
   8720 	var base64 = btoa(ascii);
   8721 	audiotagAudioSprite = "data:audio/"+atype+";base64," + base64;
   8722 
   8723 	if ( webAudioPreloadAsync )
   8724 	{
   8725 		dump("started preloading audio files async");
   8726 		setTimeout("mandreel_webAudio_preloadNextAudioFile()",10);
   8727 	}
   8728 
   8729 	audiotagCreateChannel(0);
   8730 }
   8731 
   8732 function audiotagCreateChannel(index)
   8733 {
   8734 	console.log("audiotagCreateChannel "+index);
   8735 	var sound = new Audio();
   8736 	sound.addEventListener("canplaythrough",function()
   8737 	{
   8738 		if ( maudiotagChannelsLoaded[index] == null )
   8739 		{
   8740 			maudiotagChannelsLoaded[index] = sound;
   8741 			maudiotagAvailableChannels.push(sound);
   8742 			console.log("************** loaded channel "+index);
   8743 			if ( index < 8 )
   8744 				setTimeout("audiotagCreateChannel("+index+"+1)", 10);
   8745 		}
   8746 	}, false);
   8747 	sound.addEventListener("error",function()
   8748 	{
   8749 		console.log("************** error loading channel "+index);
   8750 	}, false);
   8751 	//sound.src = "data:audio/mp3;base64,//uQxAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAABFAAA0igAHDBERFhsbHyIiJioqLTE1NTk8PEBEREpPT1JWWlpeYmJmaWltcXF1eXl8gISEh4yMj5OTl5qanqGlpamsrK+ysra5ub3AwMTHysrN0NDU19fa3t7h5Ofn6+7u8vX1+fv7/f8AAAA5TEFNRTMuOThyAqUAAAAALjQAABRAJAXKQgAAQAAANIqLReuqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//uAxAAACgjJYRQhAAN1ru+3N6ADNAEAASM2QkOAABKvqQjEIQjSE+pyEJ/5znoc5znP//QgAAEachCN85/oQDB9QIAg8oCEHAQcXfKBjEAIS4IAgclAQBA5BAMZQEHfgmD4fwf5HQ6HQ6HY7HQ7GQrDQPvZToNx37zcYsbgZnqEkTWnZsm+DxpKLDUMfs3A4zHKdzz8+wAWXmmL1KaHf35z0oOjnISA5pYpJmW9w/woDIDpmTxpDRYGwmDH/rUv97+xaWZ9eZkqAiZl+xsj8pszk1ZtY73/+UhDNvTHmxgMROhU0DBzwRq/MQ1Jbn///l4FEGHFFYIElBkORAUcAEZYRjfrSuiv1rWf6/e///Z8mnLXAgFiMOwakw0OepsaDVS5RdrxqT///////8hys3t58nrFS3lWt6/uXec73+46u0oA4ZEXCYUYY+p6C4/B89FZVEYXJqaW+eGCSYJfJOnpq7WadTtuzhoUjsP/+2DEFQOPrW1oPYMAAecorQmDIaE0qGThDsZRhGCCZyF03ZkXKRPVQEMTdeftOw84ncZ4XR/ZoO3JoyPFVtHePkemlrf5f740VGbMspMynd2NrG/h8//u58dsf2jWLnygUiASkXwFfQAw7MEGiSdlDDj7wJCnkpYu+0iqRU2SIo3RAkznFnYGqMYXMtXGhsYWLKMZzg4NSb1Jepcx7ohTx6PUlnSLHuY4vRK3VtWOymoix0TSesWjbseTdsYnvHf0v/Ks8NI0+O+Ge/Z4xkpZ/1rQS4QMHvMPSieYYfONUp/9VQBOCRaIS9okqeKzDCwz2wA0pok7D0mlEAxaelsP1uRm4hT/+2DEEQOQ5XtkLCRz2h00bImEjjlpio6TEqIL4ikSEeJRY1GhlJzTySOlrtqTXhIeh5vmvJqpiXFikoyd4tXBbGHzyo6hae6OHIxuoRjkJWu+okBoZoEDZvFrFN5LiAyxW9TEnnbyz/H/erAb3Ok2y9BVcOnGOv1kzQEgZxr0spQBWdNNJtvXQak+7mL2yf92oalcRhf0oCLJoWidC+awoNrOuFDy2UYNkk+X1a3VBuuTU604pNtS082afizat2f7nunbfdAnawhbPRmEEk5BKECSI7QPXcneTeHfYcEeUrhB0ReamhSlihEAA2DNS+LCVT8zyyPk7m1ml9iLJT5RfWoABPT/+2DEAYAO0V9oTBhvSckr7ejzDaFQT7CIuu6UuevrnRqQWnrosaeHIHIghzTLiApnBWKBykEGRpeaek5WfbQUGm4HvmEc0Z1cNji/jZ03yrg3dGpBRMPChoDGxkHJHP7VZTvlNkkJWY4SOeaqpKaEcrGeaOZFjmOK2LrMLo3/rolzs58SeHt/wAEwAASk5VsmKoQpfyl60V7xyRN9YRKhDS5djhmMfOuYFuxqX1zVE5QQourDCCMeGIHAIIUbK7yOTsRCQZHMruhiQ6ubRh3gIpxYGwfA+/SXh1Viy23s9cxzoKluDQyU+GSomumKPZMdvcKttEc5lxwsFgJAEElytfKhnMr/+2DEBQANdX9u7CRnyay0L7TDDHyX4Oe3pdCccMm/2jMqn6UihdVNPrGTu/Bj9Q3PQETiWC9S8qqOeSsLMp8BQQRIyZGPw2Ps9eVdSt+n+adikmCZSatTjtnZVhEcMzIoiCjdUztJftuGf+IcKZ/6jZjP+wMK6AwjI62203Lw5K7jYUcvoY0QuV6WVTGpKZEs2rKAmBHBArQ8zhvcKbPnoh/+ikScXJArWnwz0dRH02ADU83GEKXl9LQihFi4CPca2wmlvSyLvlVzdBi6p7pDrF7FQmbwjrv8MptOSnNYpWYKAQQQS3MVRtHIskSAIxmUqsMDbMzsMz+Ni4Ffzvr5Q9yTSQj/+0DEEYAKzMty55higVaSr3RgjgSW/8JJAbI8zlbL/t2+fNvGY4PAb3QOFQvSZoLuDsswgQShTAEXHWaY4JEgipiC1WKKOXUAMGOMtMpJOa0oG2pD4UpRq0awhk4dx07DMuCOEpePVSlwuybfziMR1YtHAB8NLRSswL0EVQk9rzoiPCrQbW4qJDYFc6RPsaskKrp1KS90BHdklWipyRV/jqVF0xGGVFm2s3wcwJl9iheX1CGxlP/7QMQMAAqVAYEklG6xVp4syYMNoFoBztJLiJErk7s7/ft/L6IUjCstJlNDOLTdacOt8LO8N/PmVLTiVF8UbwKJnIRTZHo6OsibDzCcv5F7U1AADT5grCxWpvZNskfeQ3o/g3KD5kMyRY7D1zEBZmvbnG7attnJEJGyJAw8pOUUioM3JxtTvZQhc/Sp7L9/Tzm/5+qHPmMKA6WFTryqnsjHP3SP6HWFqgIAAJJSTcH0nhFugclK//tAxAcBCsyvdUWEsNlDDO1M8wzgFJ121UStsnY5UgwO1jgVbsqChv1zojMpnddXBB27nidTTezt9utjvF2+1xUPI/Ey0X9uwe7XVbfR//+tI+W1Jwmcz9Qs/3b/gABKdodQEmZN1hwSr4WFFECvsmmpI4e5kjZKXVCXwRegXNTUxg4dDjow9OCc3JvDgsMvc5wGhRx59hDPA/QUNrr2R7C9am9r3ukxrJGc7Kal1QAAVJQIJCz/+1DEA4OKwPVoZ6RowUoWbIWGGOqbqsvVUvK6OV7AWklGA+pJ7Gw4ca1RiBPhqRr2HF4D8OjfMtXi5wtOwoXW1rfSEe+r2FCXH82z8zbufoKMwSD5wMGb6nuVm6fP3veVEYrpOCSJeL3jTiPov2HAJG0MZ0b1+4SW3YGG/HkPnllc8HPrdH/9CoZM1r6snzmMxGn6WfXz7ua/X/p9JtRzBsA0rFiibYj1jRSHKg0LOGxUkzv/+PUAAaCx0Aa2HcdVkRWwH1qaQeNn33jQOkWL//tAxAyACrRrZEwwxRFULG2o9JQowvUkzUH+pKox7BX+mE4aMztJ5bLGCZsBgpkiCyRSLBsXDzhAVJLP8zWOEbC735yposneBlNZ5LLMkvt4oAECgJJbu59jTGmHsHaGFNsY/kD7qQjkS5Gs6CBju7XoJK5N3I+7I9OyWVevVHnuOyt1S7dEWR1f+nCLyvIrIdWtQyk0zNejsiWIm2nv0sUa5tj/R1IAEAykii7wAQbhWMVBhxz/+0DEB4AKiG1xRhkAIVcULqTEDGaoGHbV4Xj9pl06dhBFNDriPVZrtHz0y7DhFQmfLAYTGL0HQyhOswFXtn4uJA0TFjbU3vCWHzJNQ6H16rRhY0SNUMvu8KuBRVYWUXCpwnvmKF2V6OCa+4xBi0yfQTXPjLrjfR0XhWBi97JhmvImhlbC3oFngKAZUnElyw0xaUOlzDQQNKBQEQKJGr4dULSJux1q3SRR5mjQH5vA6AEVG2q3I//7UMQDAAqw7YejDE/xTKzvKICLFmnKCn338dXIS04/UQUr/QREYmhCdS0v0iFGhKVEZ56wzPlYRdGK2OxfeuP+zpfdW22X7AwcQH4kFEGy4pdFRj1vNAYRUsESwpLqeBfSnyiAgeqKSJBUBUChJdReku5OStSYuNo3r4iXjboq+YVCuxmhyugjzIlbR6QrpXYXZidV9tqm7bWshCyl2O0zOo+/W/6nptP/7vkzAxrGqYAj+moJOJUFyRySySSOTP0NVxWTey+N2SzvTNz0b8b/+0DEDAAKpPWLowR4cVYiLA2DCbBMcCju992OtVI9P6eYSAVCsPDMOS5/qYpE9HLWGXKebH+uZ/qVBgDDRMNeAQyHBVr7t5hjP6QggRIZ7KcSgAEByF7QCVC1nTXajAXjiGcennLpq54XiiEz19DZx1Plm59L+9rmLfLsxPH7KyXRLuw70Itl/VV2X2foqUR/7XMDU2bUrM3EkDIaOYSKBpTP9ZV//1oAkoCCii5hbhGVWlD7qv/7QMQHAAp1NWtHmEbhOxEsTYSIcHonOiRI/atyhLVmNyqKuPt1Oz76Gal6mWZLiyqnoyNq6Kyu6m1WNuQtqzU6cHFHHKrWDqOjtVddjI/fcLaKfwPFTlN1P1AAFJ2gZJIAs3QJCIrgqJmVig/PNUabt5iyI7shRZgA2H7nc3WVv28thQLlVHCwcuCwFpIhfBNpEyTFVwKbJGzYGkYJM7aECVhL7+o+v/1VAQWYVUbGsl033UaF//tQxAYAixlpcSeMR/FeoexNgwkoEPUwTQlyR7yAARPpSHdyD7JYvBIX0z5UI4YgUFsxWYLzbIiaWa97AyuqJ3S3MO0EIaRilYMioZz1pQhL2mBIyKqshdPulW7ikY3q9aU7uD6oiLejkTgeBpfEaUzIuBnKdXuupcw1NdVCWDPaqb4oh20tXdlkZzXn3dpqsWqrWnroR3vdt7pYyoU45TujlTUUbFaALO3tGLpHzqYmKHCZ87y+yJ3KFD+tJtNOUPnhqUpmVk5ZLRt1j3VhEf/7UMQLAA0JaXlGFG8xoy2t6PMVfk0plEVrRyKjwmm6mKsc0HjnlzGO26EwoVnz0+DmCE21DBxd288LT+w9kdX5V6sDyc2ACBDmp5a1PPdkKhxnyHT73kWrcrrRTigOCjXE4vPR7YeAAWcpIkJQiWt3EpIu7t+a4ce3hRyEvn5xl2TU3YlPLMumKKmM1+Ue06Z3pPGLRhA97OqlEzOVmuwwY8lkbdGPs8utGrUYjkKgwxzOUJHVjiSNrVyvInZEsW3TTVdZGDxRxRRiGyQ5nBv/+2DEAAAOXT9vRiTB8aAs65z0jSgUKtyU0inA/MQ3azBbVKY6QFrPSI1gRdH+4JpZLwkcrK5e58ry6+5Vr35Vq3KoYZRwHtHxzrhGj7mKqzQJrO940WkVMc7wb1LfZz5t6/QzLHPnnzkv7J539vpaVN0Gd0LnaCNB8AsJhYRpvDoSZMpx/QwaAEApN3csIrwaRwHqziRqYl5/MmxEGjceGpD8J3rAwG663CuwpeQ6RhwitkVBK0D75hB7BQOuctyvacP4ouiEi0WZ5E3wZq3ND3NqUUgLRdqvod6DM6X+MnV+UtmIz//+TL+wh7tDfyUAoEKWgEAlAn5a9EkjnLaTPoQFZqr/+2DECoMM+WlcbBkJ4bUiak2UjbiCpVzs2UqxZsbtdrKOUzO+3TPbip6yaP+rhdbH1RFT3E/XeQ6FqhHE33jY+4Z/nnhuP6oIlea+tZaraCO6uri7ipifRUSe0/+q5hv3slTrEfmPoAAALsILTzDf5hsOOwFh2FCEZ6cIqrO0+OJNACEo3Fd0mAMhMja9FGVyBAZ65P6pJN+yykaj53njcXnoUlJIOKPkOExjtkvDIKHVGQ5iz8wyLXaedY5NjHJzhqxgnJWlE6yTnZFI0PVZQHvDKRUJpWOOuSSOWnFDZ9CgfJfVaB+mbSzG9zPSRrNQ+GHqlRLcoDRCoUBq2RX6Zcc2hsf/+0DEGAAMVTF/pIzVsYImq52EmGSh3MGANrxh2JPvBC5sZAlp6+a3yRAZ6gyVeI/u81hNX2Zu+mtTb+UtIbS0qwDhpm63/0AhCJJLgCl0Dk9lNxQXBGzJl1CO06ZcjHWy2XTa2VlRUlpI3906cx2aNZo1859dr/s4hWpy7crXzMb7O3219Zvl3mu2/czfv3t9IApxJKW8k/md5RTZ3/fuzu7dmXgdi3WqCcdktstsku1KCrwzUf/7UMQGgAsVN4WjGGPxXyautGGb1qsjAsRbKxruCj80UsQ2vLwAE/ChFSsEHY/nwb/woievMiDEf6u9p0s+nhXRxZF95k2ZmQAGYJu+Yy0hieg3lP+lsXyAhlELzHYBuKglOJuNNtJOAAgBJ0FqQBBGEZnnUgkZvVdmZ/mtHP3ePxvL1SX78ZTtvaf8ycvXiw+/H/w3/LfI/py9K00o5K38yhcchUr6XtJVvdxWdzlp9yZ1qDAcTfPVAABYlJJShiJO2M+XUsVH7VyKNTqmLbb/+0DEC4AKmRNjR5ip0Vam7ajDDD5SgUhRxz0rlIvk/e6R6E0Uotm86XdXUVI+5sg5LyjVsm1lP9dP++owHGkGM7KJIgprGuIsYdQGQUEQfO7IBBFbtJIoqAVBKAVHxBsmxHR6qtFK1b4MXJFbQDQ4LZHyK7RQhAsvzjn+vST6XmbFHVAcQX2WTIR1GUPI3/uxGRuC9Vzpsdmfhy/nSAz6P0yE1zz+gWJKACQSU7gfMF8E82sstv/7UMQGgAtlEVbsJGlBYCet6PQNvlNDDKiT/KlFBJExEihdVd9MTRpLhH6s87wdkbKQlM28sHkacu3mfDiFOajGakZ+QRzMicfZgRlkSqeZBBZg0U/VmJ/cGakUnlh2BHr9d4qNXpppJQEUlnCE0XgS3vnsSV6F130dxidKq6RmM6LPVbt44+5OmbRZyQpXSFOTN+b7GeVcly3kM7WwWiAIQCEjFHRiL9vbuXDlrfSbv/8hqrsARYQ3jxFVBGFtqZsCJVrjiaHnOoMt+qtrLzP/+0DECgALCTNpJ5ir8V+mbGTxlnble8QU2f4Dx3ELd6Qc/zfelQ7X1HNVCIZTrLoitiREMUhSse7K2VRIyFKrbVJlERwSDgyxkYcVF0Exd5MpNUezRV7WeggAVmVRwFcBuQ9qvZdWcrSeDNet64p6b+GsvQK4CiCzB61ygzo1wfPW3gcfy5FCCj3DQw9PN/KjE9LWPmr4ilvYy37gdms+dlTRDKjd4qisrxgfEods5gwqATVZVf/7UMQCAArVM2MnjQ/xR6KspJMM/0oHAjWLLFAQ20HWojbW+aM8U4RHBRBGuCYEhYW1KqeU8YjpXyrZd65FISloCTdGGNn/d/2n/bXPd3Wk/9nBUPnHDKWDR8XbFDCDGlb59o+IgepAASLNSliMDI+GG1SaZ2gAcLQrXXievH5yMsnu3Ik50kkcUhMXghfnIcMGe28D9HPXuwUjp51Ppl/H7x34+Ween+4IUB5tmcBXmzCCbmuMvfgDujAEaSSSKgMwZRKOosc1VCDiRTVCTjP/+0DECwAKuTVnR6RgcWAmbSjDIC9RxP1zFDgLtAyubnkky6n32yLh1xYcJVBVZQyFL0EwY3POBCBJMs+VEO+6f+oci9uERfeBf//44B6ow4lBHxWwCZaym0jICsLCgVacE7XsCYuylheYelWUq9cbGk+qio0bo9lBmYhm5TlMslXcgek3umWtw1ObxdIiXGvf2Puf+fib+ix4S72eNLT4vYWENmGTeMbjn/KlmgRVWKlbAZJuQP/7UMQEgArJNWEnjLPxXKYtKMMgH4s8efDDaDBg/5ixrX3bP1BFh1WwsL4cPy4hkNbwNLh4Vy+wnoCCQ7nTgLpH1FJTM+KGMlK0cZmHh5TCn2BwdxhdnLvuoTRVWmrN1MEqgVdrTbSTgFQzLhDQzlUli4YLjWSnWoxJvUnDi8VrjersRj7xm2Zpxc8jRNb90ww+/bh7FemTmSF4/vmuKdJitV47iObYqCw4SXqma4t5qm2nle4qOcjTdQBpraSSMgFhLI9fbfq/FWNjHv2O/bb/+0DECwAKkTVpRgjT8VQia6WHoAauT4wqpQEAO4x0IZnM6F2qrVfqVvorC1VqMEAlu7FCkIrU6/Oqt9CN8yQwySviU0aXkywrCkZdn3w8t5pHEIABAJWUkHlh0ClYwQs0aZAhjXH3Ewhsz3KFy8JAioUZcNNRjBl38ySc+l3i8U1Q4+vadnehptJc8TpMa8Tj7rhc2u/2u655JHEsrO9+PnsZiLRIXt6VBumtJtJOApdJWJR7B//7QMQGgApFNWdHmGf5YaItNJMh3yRBqMIEkn2PnrJ+pTdQ/kHnUBnJoUsaIECnzp3rvHZKWc1Wgm35Dxh8i/sLTgYh4SkV6ZEWTZOTNsRLfOi0+z8iks1Bc4BDSacabbUgBvAy9tvbJQEtFJrkrgzsa7wogFI10HGHWhX35BtPMztJnPFJvf42YLJ6uYiwl1Xn9rf+2kiedZNqI7/q1rlFCAOj1MRJmkdLnERET+n7nYClAIQw//tQxAGCCsD3UqwlAvFNompFgyE2ok/uTNcYJjqYVQWKUYoiUHAJixBU35R60nOVU30P6IHIsJ3BL1xcx47+3gsoypi+zhWuElBWB9ot/xVFNh04/ZoX04uqaBMcbJsiMDjWHz4nn+k1jVAoqXJUmxSUPnGb0D0hqgfHWTnG1oleTupqraymueBuVr7mrTom/Ymvvs9z1n61luazDhU8jimhKd+LgiKGb19wWzdWNCi1T1Pc6Q0IHp1vXWoAIKck/BvmgTNb0aTrd5pESpabkf/7QMQKAApo8U7sjK2BU6KsaMGifloZiaHCgT40DAzGcKDp4xBcol7HrcSuseyahzshlcBrysSgk2r1KKnKhJ2u+6uqKvsZeqACB1g6FUHRUMO+6oEar0201GAaAeP2DJ+1aZD6w29u+y78e05Irjw1fx+B2IwQAEKbwGLvKXc6TeKIfh2FNaoM5g2MC3V5GbN4w5Bsv5y39KAEFxdDu1jPT5xKLO8gW8fVAAAJJQQEMtWdnL9W//tAxAYCCpUVUS0gT/ldnmkNthjZIlUnaeG7nI5LsqtWtaHI+6DYc2ySpJaXWuKp2Fj2xxtVrXMqRNXTKUFzChi2W5QdvBNVM9u115kHBvt2RnuhQoN0ehiP9XBq2AknMAYpNGTEqmjkNhSShhMYrAdLR8E3NmSAtLrTvKM3GY9RIVW19f2lnd4c4gpnfv/A3/L1zGm+74/Lbdm7ZbTN79nG/azzqr78/q6be+BBRaFXvv/ACgD/+1DEAIIKrRVZLCTBsVqiqI2jIeAFbqqcBCVjQkcjOrIiOScUCilTHDohtN0QHOJ+cwxXpNe7EMY9xc9Sc43/ukd+us1WKhnk6GFbPxRp7z2f8xzJ+v91Ctjv/9rP7s0lBu/PLS396xlBFpOgAoAddoMDpM/TdKZUxMAqxl6YnZduGYxGbPL7GIhQ47jnxMUDZJJVXkWhM1NLosebvPCdF078LF32K91tAiLEJxt7dVCr8f/dzU/QUmu+P26+6NUFEN4AU0OFgLmoSXiZTNNT//tAxAgACqEVQmykq4Ffoquo8yG2UUnmkTQFnx2QaBBJEbUJmF0ibG9QwWSWr7Tr6WK7YwQYzr2FbFdHRbI/oPLIx0LFipXk6IVFf0xY7rwUejPJLlalxx0qAC6tONtMA5SYqCDSXMeDqFBRhbmkxCzao7Hu55svitIPsIq6ZxaBo8u9MHB578tRZHtDQYXI2XurwANttRRimz5DwTd28ZNK1pH31stKOMVVuV+av9hhsCSTJwD/+1DEAgAKwPlEbI0zyV2f6eWRmX/3+N2lSKRzBZIxd321pZRXfu1D9apailmks5b1ShnSqzwItoZCqAcOkh0UPJ/rqW/Pift8AjypDgJidTe2ijk0HKGhF2lPIgYIbfrE5Fl5r0H7ABQYWZgNqMQmwRInJlfYjFpdHLRAgMGESxPSDOihxuNClBk1M6a5Wiv69nlsPaWZZSMI1tO/hDwRgoJlx1MiRnah8yuv3jpx9ztWPJdDH1v2NqLGcDVklQAFeKTSUAMoEoHOjJwgifjN//tAxAiCCp0VV0wZA/lsImgNpiD1oGOg0/5u0NSk4bGfKww+44Ni2Ksme+W+T7i5JO9pOg85ut9omqW4qlTrv5RvkbWPt1+EU6Y0lh5kWlprCXeciBE0vEQBRKgB6F4CviUJWpe6kVBXEDR85N2TZEceHjZFRttt67HVe/zzBsUlaKQMqZhpqBG6MiZGWfV1DzY6n2jqTLRZmLV6mLpKn7i4F6rRuJeVjrMBcnKz8c/c48dMABD/+1DEAQAK+QFPLCTF+U6WZ02zDdgcqqwI3s0Ij3oIkDBjS6NpSSuaS1s8q2lhORoZPl/P1ZJrhqan8tZi8ufn/W37aUfasyHkvkNvaxsZU5jatqnuVS2SQxf/3rjtsoCzHp75cwgqmyuncAJUlAOKNzFCoWTBZaRUL/MUjCBsanoadBypuanXHJpjUjGBRRJZp0ZBROVV+tRgYVS9YnMuNIXzNhA08paZkJrwhQuljJgJPWKB4fjxWJRCE+utFQAirKB3rFoigBi72KKtfZpE//tAxAiCChjVQsykafFTFeaNt40xLD4th43M00oYihvyUQvarZHVz1Q4VajV5XPMwiwh/1gslMJgzDoXcF0HTZDhsENvLXfDJwUYxriUDmT5l/RYSABlwAOYmQqkmBg4GNAsGp5Bgo3QLBqbxdyUhij+cj9UROV2wQ2PbDdhIY/jYi0S3g3gmYvajI0KeN+Dm15fh5BFRSVc63fIgGPuLKHZalYCO6mdoOUAILbsABu5RnOhd5T/+0DEBgIJhL8+7TBnUVgWZk3MoDjJn9di0NpwKnBWE84SXWHyQ/r72XO0HAXmVfhAjjbmAggFVjHMoS4ARmJQ4Rm+X4mHvMcSEQTscUEcB9CEOsI0AF3YAGXLeYcP52RiSCNQGRECSOsuUOas7SmqlzPGav/BXXjik+H+HIKbD2Q9VVFCBAFcY8NjM27S6Pvs2lrs3i0uFSLh+1Oi/VZpFGNMrBLOZ5RcyMQqACdAAOmWPPlOwv/7QMQFAgpssyxtMG8JUZhmHaSOSPMwXJrgiDExM0J0wYIkApfpETKRTCV9p0QOAVUWBKsHIlkAwQCGY3jJ6gqwwRJfznXamZZmAlb7qh3yI8ODfriPk+o2F2CpfH4BALnoAPx+OmzMszX0HKhpiYQUBh7E2QL8V63JcixJlH51HfizXX1tU08o4IoH1E4KKH07z2Kkjlc4cOHVIAcpul38j/3IqRhgZiDCQviBnPQdOu+mADmo//tAxAGCCmSzLm2kbsE1GGddphiyAMZZDhbFkgOPlPpZJzDQOu0RgaBbWW5l7kFFTKONniRoiiekINBkxLRcsHyx1HKANVnEIcHfUU5d6WvmAw4ZvtkVzLWmwURB3MUeeqxM+7SUFOWAA3bs9AIt4BQLIlvC4Mi2VlDrZILKmR+VG4jX1qR5C0dB2pdFVpQva76xTvT9Cu9osfq8qYb0yezuu/uMdNinvnx8udsDwI+zxNUFXfD/+0DEAYMJYLMybbBswUSX5c22DagAFyBpY+mWrxhZaVc6ETFGl08UXKwCYYXjEVhXYrvfEdI/id4YQVhMEHvcEdRfAm6eCN2EthmzVlVKtuh+OUXYMLGGsKzUYq0BS+AA/0vNjNTLWJLwaAEqgEDEwHIC9kCOShyQUYkOQVjiOyYyJ1CbQpQYdoncXQyzfupf2VOnQ5Hgx5m0W0TGX+SyGvqpEj0gMPbacMEQdRQqBU/AAPecDf/7QMQDgwoIwS5tsG1JNhdljbYJ4WiYwJECDkEBSJAOHZMttPttX7Z7DLExSAIceNVzBW7YTrMNFKL22U97QPxLJYctbHIwNkpTw5fDaaBw1BG9qDJoRIIYkdVqQTFBUmAAOzhykiM1Lh5ISgSHMTCQMJpPrdZ1D69m8h2EqOvuO4LvSSbpROIqb2IH4Ngeu3W9KJPwiAnuw6GBBUaQtjPJs6tXfOyQdkoC4lIG8AOU/jTEI5IN//tAxAUDCTCVLE2kbxk2j6TNzCRxKqHHkeUBay2JJBvczBWyIpiQKpGLBkhLmQ8bgHxaC62xOroEcYnmviTdvunWHvSygnmXowvYGZxUAmga3cu/MAOQAA4KxTFjMEjSCicisanG1Js66oWOytu8BJ7I4v5FmgtycZXk5YoOCA3bQoPitEmeapQobr0+v9qPdv+1eVFpOqTkquvtbv31+GOu1QCnAADtRVMUOUzcBDI44AZZm8r/+zDECYIKJHckbmUDyRwVpx2mGN9QESCJIGKcVSwiBToIjZpcCF7CaVqMxTxeQp2ALALFKeEoaB4RRhiBid24ZS+dPefJzydMzFU++nhJxJP+iayXGwADllB5qRG1RJArgXyvwWGK59GkQHUxMTMLhcJsZUastOC/Tf/4s8cQ001DMzBIXkogTl+E61/M5qcan2y/JsyOWMajKgD/+zDEAIBISIVLrCTH+QuP5c28GC0BDE3JdaAATILYttbu1srFrEJrscMAWhxKoTZ6cqSVbGSSCjdn2k2uSwhFVmsjjGTMTeBliVv9gkXAGRMu1f/Lg4KWnLoIk1gtAsFgyVygwUQ6bM4/FKZ1m4iAgMAgUwMVJEmmz6xfMJM3ZF+Ufz3m1WZDybpeWMT4j2+u+OvuxmLvml1VADj/+0DEAQMI/FEibmUhyVETY83cIHnAANoYoylIgxU63lOmfm0wNcBQwAnJoLBlvGKKDOe5S75toLYZlsoBgFAkaKG0S9KKyRvdqMOhesadwNNJthPrUPvR3922AZEAAY5TaCEFM6CjMQw3AwBBhENOEueONAUltI1AYScTDK7J3oYQ0V3nQ3A6nIfBwHAYCEVD84MOUNCsSNg/Raq49bFSGqWds2aeqWDqgY8VDsz9qgLAA2jh4//7QMQDAwnsfxxO6MXJMI/kDcygeDgV0zfBUeGsMBcwpC44zYUBBmUVLNuJKxoQoKgSi7DmR3ptX7sOVHKdmKkJa3sfukVjao3gZRmsDPNRmsV/pB87MX8nkRV03pugKRgAH1h2ZLFA0vjBIdHlhFSxtEcwBEP23ayrVHVBGnMrhiTtdl9PFZTkqqCKFHiQaOKIIpBg5e9jpfqHheIH2xrHgcYcAgrgvrVc+gAAgSYnLGAAB4mY//swxAWACLCHO6ywxfkbjuSNthkZg0ZUi97wVRnpCHOJhJEh1drR1ynUKpEZ0Zl140f8MpMZhsyhplPZ6NuMXemWbckcNLwSazA8CH69/6Be1AANwLD9kAvAJAqw6dKV6XaaiM4KGYDxOHFoNDcsCGWF5E4EJI6CXtwmNnyQr8xXyMmMWNZ1mI82VXLka2IqQhbfsfvSlQuQA8k7//tAxAKDCaRrGE5lg4k2kONJ3SQ4xLxGoBOZ8AI6CZkJtnCZ5MSPIMvSLByAqQgpfjTwqqwKxNzgUXLScHpmc8XmUXv+xp+/l4Gf5qGN263hpQHkRj5VH7/39f79g/ABz2yxhiHJs+pqDCNqS4BDmRIN+VQMaXOgLR1EIB4FkIfylMpl73guFQRA8M4SkM3EkoQ8Qr1s+3ubl2xcPCoyq8l3txvDqXhQc+mpACEs0AAeSDoGyJn/+0DEBYJI+IUi7jzHaSuQ4oncsGiMTCMQoDkRS25fIkQGA/TkGw8W1EX9HM7KkJGDuJ0kbK1AkXn16CFo28ckVHdu3vpQlGOUed6Wa9PbLudsHT2FWzSQFzNUCAMCxzan+4YQqRyZQJNRdWQMGkwBeBR1RB0SUIo4llgXiITxgOKeGB012Djjj5621dg/tr0GW3bUm+1tm45acStaAGpdGAAaxfERmd0POoow4vyxAHRIfLI0Av/7MMQMgggQaybt4YChMw1iidykeGPlkNAbghZYZejZ22cx2bq9tnustgtbsn6NecCJ54eCciNSaoenToBoADU6HzWkdDLQNgAIxuDl1RQ8BSC9BokMSKwUEpKEGKP8wpl6OFG20acKWPe86GaNNAmOyWz2tLXwzGalng/pCBM2Bi8rE9YiJ+xyKhuQA/acDBIZMkjEw6IgG6dJiv/7MMQJAwjEbRZOZSOBHo0iid0wKKpmEGgEOEozxcucx4axkjCWhQK0x1nzWNiEkWYe1K5N5F9ptw93mS2t7muLBWKwBnXir/UPgAHChzGsyMG8OHjmjV0HbSKSZ4YW1HBCA6HEvUGELB/OggEQCyglFgrkgYnLBbVtxKObddmC1/rHzP7bGng2DATW8iE//6YGAAM/c7MXT/GgIP/7QMQFg0nwaxBO5SPBLAuiSdwYeMGhOFUDH/EiCdEILDGZ1QwKtAUYEAl3UqUi0x3XSwlsFzz0OEIUAaaISAI04xKKcq9vqV577sOmp8PERD+39//7f/2eoGTbGTDAoojEkHgEJZ5MWAlsAyh1SXaglkxQADCSTaGxhdynUMxV7I1EJVI/I5a6l0Zdl/KaekIhwqMQEBoqwZL3Pb/////////+6h9AA8Mdkw3Kow2JMxDEwwBA//swxAiCSMBrEk7lg0EMDSLZ3LAshwC0GtCGBiIFNRNNIouq/SwDVVWkcJFSxoOLauKmQ3XT/xduRbamR413s2fiGgUJNJD9lWkK+HKorGF5mhTEAxkRpqhGIdbe9Vagla1YvGD0SFwUFM3RoR1el1l2pSGsLNWsSTvy99vot+i8kOB0gRiwT1YtbfsoAAAAAgkjAAB6LNGViYcf//swxAeCSRxrF65lIYkxDWHF3CRypEkRRCSBjpIqO6u91WYMuXyt1gELiYCkjMcjAHBEKiQ0CMY6nCKOsS7ZSnRnOEWOVkBz0w3UufZH0mMa5zM5VkMTCPMeRSMpQxhq8Nfh5dC74gFAreCKLxZq/DgQ5doGBVombOHRdEpCcqq5wdls+8hvx0hdoImT7CSqtfxF9P9nb/q///XV//tAxAACychPDk7pIcENCeHV3Jg4GgADkOnDHgMj/STUCRUABVBiBRn2RMaSLgoLgy1zDSIKyh2mIsrfeJwkgGlVzPYacxO24WicCgwRg2NKCHRNJ/Rvd8q51H7rv/6v/+n6QnnSng52T5HAI4skQMroBZSF6mDS00gYC1sMBpG71HmkLV9880ACsutaMVeQmZATUmxwqwUQl5ER3f/////9GBf9fvUAAAl4AA7XJw03CAy6Daf/+zDEB4JIrF8PLuUhgRkNYdnMIHDUCLkgIIOnJji7zYWYqTYUv2Lwa7TZkBlD4noHhNEgMG4EMVc+XP+T+k8sFiYSZCbA2Hr9aaEhPg9RlDI5JFAsEJQLeHFAoIt9CJmLYJIlyz+HZNTuZAkzDtPJlAMzDQ/pOT5NkdVe6LvD7kjD6FSRL//////q/r6f/1eQaj5AAKymYkEocAn/+0DEBQNI6F0OTukhQSoMIYnMmHCaJWLQC14oDARtHJXz7MwWd79MCADQKhQEVGloiD6y+SVtw3wI5VHHtvYSKixCTsFBdSX////7//935X9zR0PR9Y1sNwNBSgYHEMIhQASDk3LUNQNfdHBZbOY3YfGBJdFsQAD0QdGdcqNNfzPZTRvLsBigw4kc15f9Hu42i/9fV/t7f/d7uzhGYA5QTcwJB85PTGAHlTseEbaOKnTxLvn2TP/7MMQMg0k0Zwou5MHRKg0hSd0YMEgbeOJp/pPD9Hwmfg+BZb0ZeXs7CzrpmZ20+VXcnvei7vpFv9qf/sv+izWxCvo/20roPgWZBlUbhQHyFKIoQDWYNxLmuS3rMLKeLbvC7IWE4tEyiCFz3fliL+ZT/Phu6QpCQSC6bI1Hr/09FFKLLuP/1I+zq6T73X9Py9UALUgAe82GmSZiyv/7QMQFgklIOQzN5MGBN4bhSbykKKHOyWlTfAwkbUqg94Iu4bLIw8DbD4CUmq7GnicEAWFmpDkChMOjzo4GSA1gu0WYBjikft/6un/1/o39F77e+hZDZj04wLPMEchCPl6sjAgBQEwN+YmvBxaUBRsUIKFdZuqsh954WLlV3gdhkXfHrF1Jj1u1uusFiiU1/kndSW3fWnr2nEWbEI6b61MFdKoAbUAAfChHevBsG8wYpeURSQbZ//swxAmCyIA1DM3hIMELi2FBvIw4wFlROygCwYM5SPVrpkCmwyokZIiQ0YQwksiJmqc9i1zH4p6vXPf0dHu/Zb7NlXq2aDzCoxVVMTY9TSIllKvChxlT1xrUESW9JZu/Zj/cMFA3VR5mRL0sGw20aBlmwMgghALv7Gt/9m7/ovq2Xf1r+28ZZ9MZAANHxTDlIWCKHUPCxVWF7ToJ//tAxAmDSmwrCE3h4IEkDeEJvBQoRI0DLViebmFUs7a8Ax4iZBfAhEakAkyQ0qDzWGCQaYm1pmKSTsa2voFd7C59NNcczoUxl5lLmr6YpbQ2S9iGLUUhr9QauLniwHGoOhwWQoK5kFwBLYYktdsPBAVTVDKuTfO53YjXIl3S4vUhqS9XPX2JurasU+6pl70i3jmHEPSjc30+a9F9Y3JqZQADlG0x5LQAI4KrssSoQEgyQGgaGxD/+zDEC4NJdHMITaRnARULYMmmDOCspDmloyhzQ96zWWlQYjM3TnlHhQGGWlZQoh0pOXsnUUInfQ+UehNbVrFn6l00UXs7/5zqWSh9TokeIliKCgaerGHvGRPNX0nrMs8is9cjVle7tElMOJwdWi0jlg6IwMaLB4KAdpJpze3wJVK7CUbW0xv//V/0Ju/o2xjEFiqXKIb6K8SGkYT/+0DEBoNKDEEEDTBmwS2QIIW3oFBKb6J5fNIW6VBhKX6CzIEBxABBQ8aBIc4mYEYaHBNUcYFgCGRY4liwHGKSlAVl3rbIkaEE7uw9Zc+511r2rQunR7WdXjcJtliCroK5IIohxDn+YDymsKmmsZF7vWN6i3OlxUebCPUWrTVZeYl1mPFmLPrLARTj1sLNUYW7ih+XsNDWvucCB1v91nZdt/0/oUAOdeC0iQMDN0XvDSVzr1ZoFf/7QMQJAko0ZwItmGiBMJRgWaYYSCKSNP5JQWsYWlWoCXEPj+muEUWOCAwMlYjWWEQ8cTEjECQxMvSfLJ1HWHjTklUy4Xfimp86QbwlI4vvs09er1hak+0kRExoGsriy+LyBJg5wk2DZlVWbi7EeCzabvJ5IV0q1I3T9fIedIn4Rfy3MTTwxvt1refeGI0WaRdS9+V2Jo2fFF7P0v3Zj9mlOKkBQ9mzuCLZAF5iibnjhBTIWkIS//tAxAqDygx0/g0wwwEyCd9BlhiQiTSyC9cimcnE0SbtiDvMvOu23layJQHRC8JqRCRsBzKxjAdHUiyBIfONSWqKtlkVbV7RSjT23apX6m3DZCZqAtNRi8GFV4shUW3oHESCqLCZxVwTKgwk0kkdj6mAwqyChgMJOkQMfEJ5oTOPlCKhaksNBO0e/ELiiJYclNa9+y7b3V7OtPb/1CAMMEooCVMbJgMgk4dPkoVYIUQpk9zS01v/+yDEDINJzG74LCRjwIIE3ISTGBUFVVlJloCUOOVnmMHEC0sgwEBwcJRw41CjQVFSoSSxgNXLKqktCjSpo09t6NvUmxTa/+/o/awKlCaC0SQKKAiaC1JInGlgaoMShu//qmWCagxYJKX/+0xBTUUzLjk4LjJVVVVVVVVVVVVVVVVV//sQxAuDwAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xDENQPAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ==";
   8752 	sound.src = audiotagAudioSprite;
   8753 	sound.load();
   8754 	console.log("--audiotagCreateChannel "+index);
   8755 }
   8756 
   8757 function at_imp_mandreel_audio_playChannel(filename,channel,vol,loop,pitch)
   8758 {
   8759 	at_imp_mandreel_audio_stopChannel(channel);
   8760 	var fileNameNoExt = wa_getFileNameNoExt(filename);
   8761 	var time = maudioSecondsPos[fileNameNoExt];
   8762 	if ( time != null )
   8763 	{
   8764 		console.log("play "+fileNameNoExt+" "+time);
   8765 		if ( maudiotagAvailableChannels.length > 0 )
   8766 		{
   8767 			var sound = maudiotagAvailableChannels.pop();
   8768 			var duration = maudiotagDurations[fileNameNoExt];
   8769 			sound.currentTime = time;
   8770 			console.log("OK "+sound.currentTime);
   8771 			sound.play();
   8772 			maudiotagChannels[channel] = sound;
   8773 			maudioChannelEnd[channel] = time+(duration/1000.0);
   8774 		}
   8775 	}
   8776 	else
   8777 	{
   8778 		console.log("not found play "+fileNameNoExt);
   8779 	}
   8780 }
   8781 
   8782 function at_imp_mandreel_audio_stopChannel(channel)
   8783 {
   8784 	var sound = maudiotagChannels[channel];
   8785 	if ( sound != null )
   8786 	{
   8787 		sound.pause();
   8788 		maudiotagAvailableChannels.push(sound);
   8789 		maudiotagChannels[channel] = null;
   8790 	}
   8791 }
   8792 
   8793 var mandreel_flash_socket_callback = null
   8794 
   8795 function mandreel_flash_sockets_load_flash(callback)
   8796 {
   8797 	mandreel_flash_socket_callback = callback;
   8798 	var failed = "";
   8799 	try
   8800 	{
   8801 		var mandreelSocketsSwf = g_mandreel_working_folder+"mandreelflashsockets.swf";
   8802 		var swf = swfobject.createSWF({ data:mandreelSocketsSwf, width:"0", height:"0", allowScriptAccess:"always" }, { menu:"false" }, "FlashDivSockets");
   8803 		if ( !swf )
   8804 			failed  = "Unable to open MandreelFlashSockets.swf";
   8805 	}
   8806 	catch(err)
   8807 	{
   8808 		failed  = err;
   8809 	}
   8810 }
   8811 
   8812 var js_mandreel_flash_socket_swf_loaded = false;
   8813 
   8814 function js_mandreel_flash_socket_ready()
   8815 {
   8816 	js_mandreel_flash_socket_swf_loaded = true;
   8817 	if (mandreel_flash_socket_callback)
   8818 		mandreel_flash_socket_callback();
   8819 }
   8820 
   8821 
   8822 function Mandreel_Socket_InitLibrary(sp)
   8823 {
   8824 	//mandreel_flash_sockets_load_flash();
   8825 }
   8826 
   8827 
   8828 function mandreel_flash_sockets_getFlashMovieObject(movieName)
   8829 {
   8830 	if (Mandreel_window.document[movieName])
   8831 	{
   8832 		return Mandreel_window.document[movieName];
   8833 	}
   8834 	if (navigator.appName.indexOf("Microsoft Internet")==-1)
   8835 	{
   8836 		if (document.embeds && document.embeds[movieName])
   8837 			return document.embeds[movieName];
   8838 	}
   8839 	else
   8840 	{
   8841 		return document.getElementById(movieName);
   8842 	}
   8843 }
   8844 
   8845 function js_mandreel_flash_socket_onError(message)
   8846 {
   8847 	var id = parseInt(message);
   8848 
   8849 	var sp = g_stack_pointer+512*1024;
   8850 
   8851 	dump('on error ' + id);
   8852 
   8853 	heap32[sp>>2] = id;
   8854 	mandreel_flash_tcp_onError(sp);
   8855 
   8856 }
   8857 function js_mandreel_flash_socket_onConnect(message)
   8858 {
   8859 	var id = parseInt(message);
   8860 
   8861 	var sp = g_stack_pointer+512*1024;
   8862 
   8863 	dump('connected ' + id);
   8864 
   8865 	heap32[sp>>2] = id;
   8866 	mandreel_flash_tcp_onConnect(sp);
   8867 }
   8868 
   8869 function js_mandreel_flash_tcp_receive_callbak(message)
   8870 {
   8871 	var strings = message.split(' ');
   8872 
   8873 	var id = parseInt(strings[0]);
   8874 	var data = strings[1];
   8875 
   8876 	var sp = g_stack_pointer+512*1024;
   8877 
   8878 	var data_ptr = sp + 1024;
   8879 	fill_ptr_from_string(data_ptr,data);
   8880 
   8881 	heap32[sp>>2] = id;
   8882 	heap32[(sp+4)>>2] = data_ptr;
   8883 	mandreel_flash_tcp_receive_callbak(sp);
   8884 }
   8885 
   8886 function js_mandreel_flash_tcp_update(sp)
   8887 {
   8888 	var id = heap32[sp>>2];sp+=4;
   8889 	var size = heap32[sp>>2];sp+=4;
   8890 
   8891 	var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets");
   8892 	flashMovie.receiveMessage("receive " + id + " " + size);
   8893 }
   8894 
   8895 function js_mandreel_flash_tcp_create(sp)
   8896 {
   8897 	var id = heap32[sp>>2];sp+=4;
   8898 
   8899 	var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets");
   8900 	flashMovie.receiveMessage("create " + id);
   8901 }
   8902 
   8903 function js_mandreel_flash_tcp_connectTo(sp)
   8904 {
   8905 	var id = heap32[sp>>2];sp+=4;
   8906 	var ptr_string = heap32[sp>>2];sp+=4;
   8907 	var port = heap32[sp>>2];sp+=4;
   8908 
   8909 	var server_name = get_string_from_ptr(ptr_string);
   8910 
   8911 	var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets");
   8912 	flashMovie.receiveMessage("connect " + id + " " + server_name + " " + port);
   8913 }
   8914 
   8915 function js_mandreel_flash_tcp_close(sp)
   8916 {
   8917 	var id = heap32[sp>>2];sp+=4;
   8918 
   8919 
   8920 	var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets");
   8921 	flashMovie.receiveMessage("close " + id);
   8922 	dump("js_mandreel_flash_tcp_close " + id);
   8923 }
   8924 function js_mandreel_flash_tcp_write(sp)
   8925 {
   8926 	var id = heap32[sp>>2];sp+=4;
   8927 	var ptr = heap32[sp>>2];sp+=4;
   8928 
   8929 	var message = get_string_from_ptr(ptr);
   8930 
   8931 	dump('js_mandreel_flash_tcp_write ' + message);
   8932 
   8933 	var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets");
   8934 	r_g0 = flashMovie.receiveMessage("send " + id + " " + message);
   8935 }
   8936 
   8937 
   8938 
   8939 function js_mandreel_flash_tcp_dump(msg)
   8940 {
   8941 	dump(msg);
   8942 }
   8943 
   8944 function _GLOBAL__I_Landscape02Vtx(sp)
   8945 {
   8946 	var i7;
   8947 	var fp = sp>>2;
   8948 	var r0;
   8949 var __label__ = 0;
   8950 	i7 = sp + -8;var g0 = i7>>2; // save stack
   8951 	r0 = _ZL10raycastBar;
   8952 	heap32[(g0)] = 8;
   8953 	r0 = r0 >> 2;
   8954 	_Znwj(i7);
   8955 	heap32[(r0+10006)] = r_g0;
   8956 	heap32[(g0)] = r_g0;
   8957 	heap32[(g0+1)] = 0;
   8958 	gettimeofday(i7);
   8959 	heap32[(r0+10001)] = 0;
   8960 	heap32[(r0+10005)] = 0;
   8961 	heap32[(r0+10004)] = 9999;
   8962 	heap32[(r0+10003)] = 0;
   8963 	heap32[(r0+10002)] = 0;
   8964 	return;
   8965 }
   8966 
   8967 function _GLOBAL__D_Landscape02Vtx(sp)
   8968 {
   8969 	var i7;
   8970 	var fp = sp>>2;
   8971 	var r0;
   8972 var __label__ = 0;
   8973 	i7 = sp + -8;var g0 = i7>>2; // save stack
   8974 	r0 = _ZL10raycastBar;
   8975 	r0 = r0 >> 2;
   8976 	r0 = heap32[(r0+10006)];
   8977 	heap32[(g0)] = r0;
   8978 	_ZdlPv(i7);
   8979 	return;
   8980 }
   8981 
   8982 function _ZN15DemoApplication6myinitEv(sp)
   8983 {
   8984 	var i7;
   8985 	var fp = sp>>2;
   8986 var __label__ = 0;
   8987 	i7 = sp + 0;var g0 = i7>>2; // save stack
   8988 	return;
   8989 }
   8990 
   8991 function _ZN15DemoApplication16getDynamicsWorldEv(sp)
   8992 {
   8993 	var i7;
   8994 	var fp = sp>>2;
   8995 	var r0;
   8996 var __label__ = 0;
   8997 	i7 = sp + 0;var g0 = i7>>2; // save stack
   8998 	r0 = heap32[(fp)];
   8999 	r0 = r0 >> 2;
   9000 	r0 = heap32[(r0+1)];
   9001 	r_g0 = r0;
   9002 	return;
   9003 }
   9004 
   9005 function _ZNK16btCollisionWorld17RayResultCallback14needsCollisionEP17btBroadphaseProxy(sp)
   9006 {
   9007 	var i7;
   9008 	var fp = sp>>2;
   9009 	var r0;
   9010 	var r1;
   9011 	var r2;
   9012 	var r3;
   9013 var __label__ = 0;
   9014 	i7 = sp + 0;var g0 = i7>>2; // save stack
   9015 	r0 = heap32[(fp)];
   9016 	r1 = heap32[(fp+1)];
   9017 	r2 = heapU16[(r0+14)>>1];
   9018 	r3 = heapU16[(r1+4)>>1];
   9019 	r2 = r2 & r3;
   9020 	r2 = r2 & 65535;
   9021 	if(r2 ==0) //_LBB4_2
   9022 {
   9023 	r0 = 0;
   9024 	r_g0 = r0;
   9025 	return;
   9026 }
   9027 else{
   9028 	r1 = heapU16[(r1+6)>>1];
   9029 	r0 = heapU16[(r0+12)>>1];
   9030 	r0 = r1 & r0;
   9031 	r0 = r0 & 65535;
   9032 	r1 = 0;
   9033 	r0 = r0 != r1;
   9034 	r0 = r0 & 1;
   9035 	r_g0 = r0;
   9036 	return;
   9037 }
   9038 }
   9039 
   9040 function _ZN16btCollisionWorld24ClosestRayResultCallbackD1Ev(sp)
   9041 {
   9042 	var i7;
   9043 	var fp = sp>>2;
   9044 	var r0;
   9045 	var r1;
   9046 var __label__ = 0;
   9047 	i7 = sp + 0;var g0 = i7>>2; // save stack
   9048 	r0 = heap32[(fp)];
   9049 	r1 = _ZTVN16btCollisionWorld24ClosestRayResultCallbackE;
   9050 	r0 = r0 >> 2;
   9051 	r1 = (r1 + 8)|0;
   9052 	heap32[(r0)] = r1;
   9053 	return;
   9054 }
   9055 
   9056 function _ZN16btCollisionWorld24ClosestRayResultCallbackD0Ev(sp)
   9057 {
   9058 	var i7;
   9059 	var fp = sp>>2;
   9060 	var r0;
   9061 	var r1;
   9062 	var r2;
   9063 var __label__ = 0;
   9064 	i7 = sp + -8;var g0 = i7>>2; // save stack
   9065 	r0 = heap32[(fp)];
   9066 	r1 = _ZTVN16btCollisionWorld24ClosestRayResultCallbackE;
   9067 	r2 = r0 >> 2;
   9068 	r1 = (r1 + 8)|0;
   9069 	heap32[(r2)] = r1;
   9070 	heap32[(g0)] = r0;
   9071 	_ZdlPv(i7);
   9072 	return;
   9073 }
   9074 
   9075 function _ZN16btCollisionWorld24ClosestRayResultCallback15addSingleResultERNS_14LocalRayResultEb(sp)
   9076 {
   9077 	var i7;
   9078 	var fp = sp>>2;
   9079 	var r0;
   9080 	var r1;
   9081 	var r2;
   9082 	var r3;
   9083 	var f0;
   9084 	var f1;
   9085 	var f2;
   9086 	var f3;
   9087 	var f4;
   9088 	var f5;
   9089 	var f6;
   9090 	var f7;
   9091 	var f8;
   9092 	var f9;
   9093 	var f10;
   9094 	var f11;
   9095 var __label__ = 0;
   9096 	i7 = sp + -16;var g0 = i7>>2; // save stack
   9097 	r0 = heap32[(fp+1)];
   9098 	r0 = r0 >> 2;
   9099 	r1 = heap32[(fp)];
   9100 	f0 = heapFloat[(r0+6)];
   9101 	r1 = r1 >> 2;
   9102 	f1 = heapFloat[(r1+1)];
   9103 	if(f0 <=f1) //_LBB7_2
   9104 {
   9105 	r2 = heap32[(fp+2)];
   9106 	heapFloat[(r1+1)] = f0;
   9107 	r3 = heap32[(r0)];
   9108 	heap32[(r1+2)] = r3;
   9109 	if(r2 ==0) //_LBB7_4
   9110 {
   9111 	r2 = r3 >> 2;
   9112 	f0 = heapFloat[(r0+2)];
   9113 	f1 = heapFloat[(r2+1)];
   9114 	f2 = heapFloat[(r0+3)];
   9115 	f3 = heapFloat[(r2+2)];
   9116 	f4 = heapFloat[(r2+5)];
   9117 	f5 = heapFloat[(r2+6)];
   9118 	f1 = f1*f0;
   9119 	f3 = f3*f2;
   9120 	f6 = heapFloat[(r0+4)];
   9121 	f7 = heapFloat[(r2+3)];
   9122 	f8 = heapFloat[(r2+9)];
   9123 	f9 = heapFloat[(r2+10)];
   9124 	f10 = heapFloat[(r2+11)];
   9125 	f11 = heapFloat[(r2+7)];
   9126 	f4 = f4*f0;
   9127 	f5 = f5*f2;
   9128 	f1 = f1+f3;
   9129 	f3 = f7*f6;
   9130 	f0 = f8*f0;
   9131 	f2 = f9*f2;
   9132 	f4 = f4+f5;
   9133 	f5 = f11*f6;
   9134 	f1 = f1+f3;
   9135 	f0 = f0+f2;
   9136 	f2 = f10*f6;
   9137 	f3 = f4+f5;
   9138 	heapFloat[(r1+13)] = f1;
   9139 	f0 = f0+f2;
   9140 	heapFloat[(r1+14)] = f3;
   9141 	heapFloat[(r1+15)] = f0;
   9142 	heap32[(r1+16)] = 0;
   9143 }
   9144 else{
   9145 	heap32[(r1+13)] = heap32[(r0+2)];
   9146 	heap32[(r1+14)] = heap32[(r0+3)];
   9147 	heap32[(r1+15)] = heap32[(r0+4)];
   9148 	heap32[(r1+16)] = heap32[(r0+5)];
   9149 }
   9150 	f0 =                         1;
   9151 	f1 = heapFloat[(r0+6)];
   9152 	f2 = heapFloat[(r1+9)];
   9153 	f3 = heapFloat[(r1+5)];
   9154 	f0 = f0-f1;
   9155 	f3 = f3*f0;
   9156 	f2 = f2*f1;
   9157 	f2 = f3+f2;
   9158 	heapFloat[(r1+17)] = f2;
   9159 	f2 = heapFloat[(r1+6)];
   9160 	f3 = heapFloat[(r1+10)];
   9161 	f2 = f2*f0;
   9162 	f3 = f3*f1;
   9163 	f2 = f2+f3;
   9164 	heapFloat[(r1+18)] = f2;
   9165 	f2 = heapFloat[(r1+7)];
   9166 	f3 = heapFloat[(r1+11)];
   9167 	f0 = f2*f0;
   9168 	f1 = f3*f1;
   9169 	f0 = f0+f1;
   9170 	heapFloat[(r1+19)] = f0;
   9171 	f0 = heapFloat[(r0+6)];
   9172 	f_g0 = f0;
   9173 	return;
   9174 }
   9175 else{
   9176 	r0 = _2E_str3;
   9177 	r1 = _2E_str4;
   9178 	heap32[(g0)] = r0;
   9179 	heap32[(g0+1)] = r1;
   9180 	heap32[(g0+2)] = 250;
   9181 	_assert(i7);
   9182 }
   9183 }
   9184 
   9185 function _ZN20btDefaultMotionStateD1Ev(sp)
   9186 {
   9187 	var i7;
   9188 	var fp = sp>>2;
   9189 	var r0;
   9190 	var r1;
   9191 var __label__ = 0;
   9192 	i7 = sp + 0;var g0 = i7>>2; // save stack
   9193 	r0 = heap32[(fp)];
   9194 	r1 = _ZTV20btDefaultMotionState;
   9195 	r0 = r0 >> 2;
   9196 	r1 = (r1 + 8)|0;
   9197 	heap32[(r0)] = r1;
   9198 	return;
   9199 }
   9200 
   9201 function _ZN20btDefaultMotionStateD0Ev(sp)
   9202 {
   9203 	var i7;
   9204 	var fp = sp>>2;
   9205 	var r0;
   9206 	var r1;
   9207 	var r2;
   9208 var __label__ = 0;
   9209 	i7 = sp + -8;var g0 = i7>>2; // save stack
   9210 	r0 = heap32[(fp)];
   9211 	r1 = _ZTV20btDefaultMotionState;
   9212 	r2 = r0 >> 2;
   9213 	r1 = (r1 + 8)|0;
   9214 	heap32[(r2)] = r1;
   9215 	heap32[(g0)] = r0;
   9216 	_ZdlPv(i7);
   9217 	return;
   9218 }
   9219 
   9220 function _ZNK20btDefaultMotionState17getWorldTransformER11btTransform(sp)
   9221 {
   9222 	var i7;
   9223 	var fp = sp>>2;
   9224 	var r0;
   9225 	var r1;
   9226 	var f0;
   9227 	var f1;
   9228 	var f2;
   9229 	var f3;
   9230 	var f4;
   9231 	var f5;
   9232 	var f6;
   9233 	var f7;
   9234 	var f8;
   9235 	var f9;
   9236 	var f10;
   9237 	var f11;
   9238 	var f12;
   9239 	var f13;
   9240 	var f14;
   9241 	var f15;
   9242 	var f16;
   9243 	var f17;
   9244 	var f18;
   9245 	var f19;
   9246 	var f20;
   9247 	var f21;
   9248 	var f22;
   9249 	var f23;
   9250 	var f24;
   9251 	var f25;
   9252 	var f26;
   9253 	var f27;
   9254 	var f28;
   9255 	var f29;
   9256 var __label__ = 0;
   9257 	i7 = sp + 0;var g0 = i7>>2; // save stack
   9258 	r0 = heap32[(fp)];
   9259 	r0 = r0 >> 2;
   9260 	f0 = heapFloat[(r0+17)];
   9261 	f1 = heapFloat[(r0+1)];
   9262 	f2 = heapFloat[(r0+21)];
   9263 	f3 = heapFloat[(r0+5)];
   9264 	f4 = heapFloat[(r0+2)];
   9265 	f5 = heapFloat[(r0+6)];
   9266 	f6 = f1*f0;
   9267 	f7 = f3*f2;
   9268 	f8 = heapFloat[(r0+25)];
   9269 	f9 = heapFloat[(r0+9)];
   9270 	f10 = heapFloat[(r0+18)];
   9271 	f11 = heapFloat[(r0+22)];
   9272 	f12 = heapFloat[(r0+19)];
   9273 	f13 = heapFloat[(r0+13)];
   9274 	f14 = heapFloat[(r0+3)];
   9275 	f15 = heapFloat[(r0+23)];
   9276 	f16 = heapFloat[(r0+30)];
   9277 	f17 = heapFloat[(r0+14)];
   9278 	f18 = heapFloat[(r0+7)];
   9279 	r1 = heap32[(fp+1)];
   9280 	f19 = heapFloat[(r0+26)];
   9281 	f20 = heapFloat[(r0+31)];
   9282 	f21 = heapFloat[(r0+27)];
   9283 	f22 = heapFloat[(r0+15)];
   9284 	f23 = heapFloat[(r0+11)];
   9285 	f24 = heapFloat[(r0+10)];
   9286 	f25 = heapFloat[(r0+29)];
   9287 	f26 = f4*f0;
   9288 	f27 = f5*f2;
   9289 	f6 = f6+f7;
   9290 	f7 = f9*f8;
   9291 	r0 = r1 >> 2;
   9292 	f28 = f14*f0;
   9293 	f29 = f18*f2;
   9294 	f26 = f26+f27;
   9295 	f27 = f24*f8;
   9296 	f6 = f6+f7;
   9297 	f7 = f28+f29;
   9298 	f28 = f23*f8;
   9299 	f26 = f26+f27;
   9300 	heapFloat[(r0)] = f6;
   9301 	f6 = f1*f10;
   9302 	f27 = f3*f11;
   9303 	f7 = f7+f28;
   9304 	heapFloat[(r0+1)] = f26;
   9305 	heapFloat[(r0+2)] = f7;
   9306 	f7 = f4*f10;
   9307 	f26 = f5*f11;
   9308 	f6 = f6+f27;
   9309 	f27 = f9*f19;
   9310 	f28 = f14*f10;
   9311 	f29 = f18*f11;
   9312 	f7 = f7+f26;
   9313 	f26 = f24*f19;
   9314 	f6 = f6+f27;
   9315 	heap32[(r0+3)] = 0;
   9316 	f27 = f28+f29;
   9317 	f28 = f23*f19;
   9318 	f7 = f7+f26;
   9319 	heapFloat[(r0+4)] = f6;
   9320 	f1 = f1*f12;
   9321 	f3 = f3*f15;
   9322 	f6 = f27+f28;
   9323 	heapFloat[(r0+5)] = f7;
   9324 	heapFloat[(r0+6)] = f6;
   9325 	f4 = f4*f12;
   9326 	f5 = f5*f15;
   9327 	f1 = f1+f3;
   9328 	f3 = f9*f21;
   9329 	f6 = -f25;
   9330 	f7 = f14*f12;
   9331 	f9 = f18*f15;
   9332 	f4 = f4+f5;
   9333 	f5 = f24*f21;
   9334 	f1 = f1+f3;
   9335 	heap32[(r0+7)] = 0;
   9336 	f3 = f0*f13;
   9337 	f14 = f2*f17;
   9338 	f0 = f0*f6;
   9339 	f2 = f2*f16;
   9340 	f7 = f7+f9;
   9341 	f9 = f23*f21;
   9342 	f4 = f4+f5;
   9343 	heapFloat[(r0+8)] = f1;
   9344 	f1 = f10*f13;
   9345 	f5 = f11*f17;
   9346 	f10 = f10*f6;
   9347 	f11 = f11*f16;
   9348 	f3 = f3+f14;
   9349 	f14 = f8*f22;
   9350 	f0 = f0-f2;
   9351 	f2 = f8*f20;
   9352 	f7 = f7+f9;
   9353 	heapFloat[(r0+9)] = f4;
   9354 	heapFloat[(r0+10)] = f7;
   9355 	f4 = f12*f13;
   9356 	f7 = f15*f17;
   9357 	f6 = f12*f6;
   9358 	f8 = f15*f16;
   9359 	f1 = f1+f5;
   9360 	f5 = f19*f22;
   9361 	f9 = f10-f11;
   9362 	f10 = f19*f20;
   9363 	f3 = f3+f14;
   9364 	f0 = f0-f2;
   9365 	f2 = f4+f7;
   9366 	f4 = f21*f22;
   9367 	f6 = f6-f8;
   9368 	f7 = f21*f20;
   9369 	f1 = f1+f5;
   9370 	f5 = f9-f10;
   9371 	f0 = f3+f0;
   9372 	heap32[(r0+11)] = 0;
   9373 	f2 = f2+f4;
   9374 	f3 = f6-f7;
   9375 	f1 = f1+f5;
   9376 	heapFloat[(r0+12)] = f0;
   9377 	f0 = f2+f3;
   9378 	heapFloat[(r0+13)] = f1;
   9379 	heapFloat[(r0+14)] = f0;
   9380 	heap32[(r0+15)] = 0;
   9381 	return;
   9382 }
   9383 
   9384 function _ZN20btDefaultMotionState17setWorldTransformERK11btTransform(sp)
   9385 {
   9386 	var i7;
   9387 	var fp = sp>>2;
   9388 	var r0;
   9389 	var r1;
   9390 	var f0;
   9391 	var f1;
   9392 	var f2;
   9393 	var f3;
   9394 	var f4;
   9395 	var f5;
   9396 	var f6;
   9397 	var f7;
   9398 	var f8;
   9399 	var f9;
   9400 	var f10;
   9401 	var f11;
   9402 	var f12;
   9403 	var f13;
   9404 	var f14;
   9405 	var f15;
   9406 	var f16;
   9407 	var f17;
   9408 	var f18;
   9409 	var f19;
   9410 	var f20;
   9411 	var f21;
   9412 	var f22;
   9413 	var f23;
   9414 	var f24;
   9415 	var f25;
   9416 	var f26;
   9417 	var f27;
   9418 	var f28;
   9419 	var f29;
   9420 var __label__ = 0;
   9421 	i7 = sp + 0;var g0 = i7>>2; // save stack
   9422 	r0 = heap32[(fp)];
   9423 	r1 = heap32[(fp+1)];
   9424 	r0 = r0 >> 2;
   9425 	r1 = r1 >> 2;
   9426 	f0 = heapFloat[(r1)];
   9427 	f1 = heapFloat[(r0+17)];
   9428 	f2 = heapFloat[(r1+1)];
   9429 	f3 = heapFloat[(r0+21)];
   9430 	f4 = heapFloat[(r0+18)];
   9431 	f5 = heapFloat[(r0+22)];
   9432 	f6 = f1*f0;
   9433 	f7 = f3*f2;
   9434 	f8 = heapFloat[(r1+2)];
   9435 	f9 = heapFloat[(r0+25)];
   9436 	f10 = heapFloat[(r1+8)];
   9437 	f11 = heapFloat[(r0+29)];
   9438 	f12 = heapFloat[(r1+4)];
   9439 	f13 = heapFloat[(r0+19)];
   9440 	f14 = heapFloat[(r1+9)];
   9441 	f15 = heapFloat[(r0+30)];
   9442 	f16 = heapFloat[(r1+5)];
   9443 	f17 = heapFloat[(r0+23)];
   9444 	f18 = heapFloat[(r1+10)];
   9445 	f19 = heapFloat[(r0+31)];
   9446 	f20 = heapFloat[(r1+6)];
   9447 	f21 = heapFloat[(r0+27)];
   9448 	f22 = heapFloat[(r0+26)];
   9449 	f23 = f4*f0;
   9450 	f24 = f5*f2;
   9451 	f6 = f6+f7;
   9452 	f7 = f9*f8;
   9453 	f25 = heapFloat[(r1+14)];
   9454 	f26 = heapFloat[(r1+13)];
   9455 	f27 = heapFloat[(r1+12)];
   9456 	f28 = f13*f0;
   9457 	f29 = f17*f2;
   9458 	f23 = f23+f24;
   9459 	f24 = f22*f8;
   9460 	f6 = f6+f7;
   9461 	f7 = f28+f29;
   9462 	f28 = f21*f8;
   9463 	f23 = f23+f24;
   9464 	heapFloat[(r0+1)] = f6;
   9465 	f6 = f1*f12;
   9466 	f24 = f3*f16;
   9467 	f7 = f7+f28;
   9468 	heapFloat[(r0+2)] = f23;
   9469 	heapFloat[(r0+3)] = f7;
   9470 	f7 = f4*f12;
   9471 	f23 = f5*f16;
   9472 	f6 = f6+f24;
   9473 	f24 = f9*f20;
   9474 	f28 = f13*f12;
   9475 	f29 = f17*f16;
   9476 	f7 = f7+f23;
   9477 	f23 = f22*f20;
   9478 	f6 = f6+f24;
   9479 	heap32[(r0+4)] = 0;
   9480 	f24 = f28+f29;
   9481 	f28 = f21*f20;
   9482 	f7 = f7+f23;
   9483 	heapFloat[(r0+5)] = f6;
   9484 	f1 = f1*f10;
   9485 	f3 = f3*f14;
   9486 	f6 = f24+f28;
   9487 	heapFloat[(r0+6)] = f7;
   9488 	heapFloat[(r0+7)] = f6;
   9489 	f4 = f4*f10;
   9490 	f5 = f5*f14;
   9491 	f1 = f1+f3;
   9492 	f3 = f9*f18;
   9493 	f6 = f13*f10;
   9494 	f7 = f17*f14;
   9495 	f4 = f4+f5;
   9496 	f5 = f22*f18;
   9497 	f1 = f1+f3;
   9498 	heap32[(r0+8)] = 0;
   9499 	f0 = f0*f11;
   9500 	f2 = f2*f15;
   9501 	f3 = f6+f7;
   9502 	f6 = f21*f18;
   9503 	f4 = f4+f5;
   9504 	heapFloat[(r0+9)] = f1;
   9505 	f1 = f12*f11;
   9506 	f5 = f16*f15;
   9507 	f0 = f0+f2;
   9508 	f2 = f8*f19;
   9509 	f3 = f3+f6;
   9510 	heapFloat[(r0+10)] = f4;
   9511 	f0 = f0+f2;
   9512 	heapFloat[(r0+11)] = f3;
   9513 	f2 = f10*f11;
   9514 	f3 = f14*f15;
   9515 	f1 = f1+f5;
   9516 	f4 = f20*f19;
   9517 	f1 = f1+f4;
   9518 	f2 = f2+f3;
   9519 	f3 = f18*f19;
   9520 	f0 = f0+f27;
   9521 	heap32[(r0+12)] = 0;
   9522 	f2 = f2+f3;
   9523 	f1 = f1+f26;
   9524 	heapFloat[(r0+13)] = f0;
   9525 	f0 = f2+f25;
   9526 	heapFloat[(r0+14)] = f1;
   9527 	heapFloat[(r0+15)] = f0;
   9528 	heap32[(r0+16)] = 0;
   9529 	return;
   9530 }
   9531 
   9532 function _ZN17btTypedConstraint21setupSolverConstraintER20btAlignedObjectArrayI18btSolverConstraintEiif(sp)
   9533 {
   9534 	var i7;
   9535 	var fp = sp>>2;
   9536 var __label__ = 0;
   9537 	i7 = sp + 0;var g0 = i7>>2; // save stack
   9538 	return;
   9539 }
   9540 
   9541 function _ZN17btTypedConstraint23solveConstraintObsoleteER11btRigidBodyS1_f(sp)
   9542 {
   9543 	var i7;
   9544 	var fp = sp>>2;
   9545 var __label__ = 0;
   9546 	i7 = sp + 0;var g0 = i7>>2; // save stack
   9547 	return;
   9548 }
   9549 
   9550 function _ZN13BenchmarkDemo15displayCallbackEv(sp)
   9551 {
   9552 	var i7;
   9553 	var fp = sp>>2;
   9554 var __label__ = 0;
   9555 	i7 = sp + 0;var g0 = i7>>2; // save stack
   9556 	return;
   9557 }
   9558 
   9559 function _ZN13BenchmarkDemo11exitPhysicsEv(sp)
   9560 {
   9561 	var i7;
   9562 	var fp = sp>>2;
   9563 	var r0;
   9564 	var r1;
   9565 	var r2;
   9566 	var r3;
   9567 	var r4;
   9568 var __label__ = 0;
   9569 	i7 = sp + -8;var g0 = i7>>2; // save stack
   9570 	r0 = heap32[(fp)];
   9571 	r0 = r0 >> 2;
   9572 	r1 = heap32[(r0+9)];
   9573 if(!(r1 <1)) //_LBB15_5
   9574 {
   9575 	r1 = 0;
   9576 _3: while(true){
   9577 	r2 = heap32[(r0+11)];
   9578 	r3 = r1 << 2;
   9579 	r2 = (r2 + r3)|0;
   9580 	r2 = r2 >> 2;
   9581 	r2 = heap32[(r2)];
   9582 if(!(r2 ==0)) //_LBB15_4
   9583 {
   9584 	r3 = r2 >> 2;
   9585 	r3 = heap32[(r3)];
   9586 	r3 = r3 >> 2;
   9587 	r3 = heap32[(r3+1)];
   9588 	heap32[(g0)] = r2;
   9589 	__FUNCTION_TABLE__[(r3)>>2](i7);
   9590 }
   9591 	r1 = (r1 + 1)|0;
   9592 	r2 = heap32[(r0+9)];
   9593 	if(r2 >r1) //_LBB15_2
   9594 {
   9595 continue _3;
   9596 }
   9597 else{
   9598 break _3;
   9599 }
   9600 }
   9601 }
   9602 	r1 = heap32[(r0+1)];
   9603 	r2 = r1 >> 2;
   9604 	r2 = heap32[(r2+2)];
   9605 	r3 = (r2 + -1)|0;
   9606 _9: do {
   9607 if(!(r3 <0)) //_LBB15_16
   9608 {
   9609 	r3 = 1;
   9610 	r2 = (r3 - r2)|0;
   9611 _11: while(true){
   9612 	r3 = r1 >> 2;
   9613 	r3 = heap32[(r3+4)];
   9614 	r4 = r2 << 2;
   9615 	r3 = (r3 - r4)|0;
   9616 	r3 = r3 >> 2;
   9617 	r3 = heap32[(r3)];
   9618 	r4 = heapU8[r3+232];
   9619 	r4 = r4 & 2;
   9620 if(!(r4 ==0)) //_LBB15_9
   9621 {
   9622 	if(r3 !=0) //_LBB15_10
   9623 {
   9624 	r4 = r3 >> 2;
   9625 	r4 = heap32[(r4+118)];
   9626 if(!(r4 ==0)) //_LBB15_9
   9627 {
   9628 	r1 = r4 >> 2;
   9629 	r1 = heap32[(r1)];
   9630 	r1 = r1 >> 2;
   9631 	r1 = heap32[(r1+1)];
   9632 	heap32[(g0)] = r4;
   9633 	__FUNCTION_TABLE__[(r1)>>2](i7);
   9634 	r1 = heap32[(r0+1)];
   9635 }
   9636 }
   9637 }
   9638 	r4 = r1 >> 2;
   9639 	r4 = heap32[(r4)];
   9640 	r4 = r4 >> 2;
   9641 	r4 = heap32[(r4+9)];
   9642 	heap32[(g0)] = r1;
   9643 	heap32[(g0+1)] = r3;
   9644 	__FUNCTION_TABLE__[(r4)>>2](i7);
   9645 	if(r3 !=0) //_LBB15_15
   9646 {
   9647 	r1 = r3 >> 2;
   9648 	r1 = heap32[(r1)];
   9649 	r1 = r1 >> 2;
   9650 	r1 = heap32[(r1+2)];
   9651 	heap32[(g0)] = r3;
   9652 	__FUNCTION_TABLE__[(r1)>>2](i7);
   9653 }
   9654 	if(r2 ==0) //_LBB15_16
   9655 {
   9656 break _9;
   9657 }
   9658 else{
   9659 	r2 = (r2 + 1)|0;
   9660 	r1 = heap32[(r0+1)];
   9661 continue _11;
   9662 }
   9663 }
   9664 }
   9665 } while(0);
   9666 	r1 = heap32[(r0+4)];
   9667 _23: do {
   9668 if(!(r1 <1)) //_LBB15_21
   9669 {
   9670 	r1 = 0;
   9671 _25: while(true){
   9672 	r2 = heap32[(r0+6)];
   9673 	r3 = r1 << 2;
   9674 	r2 = (r2 + r3)|0;
   9675 	r2 = r2 >> 2;
   9676 	r2 = heap32[(r2)];
   9677 if(!(r2 ==0)) //_LBB15_20
   9678 {
   9679 	r3 = r2 >> 2;
   9680 	r3 = heap32[(r3)];
   9681 	r3 = r3 >> 2;
   9682 	r3 = heap32[(r3+1)];
   9683 	heap32[(g0)] = r2;
   9684 	__FUNCTION_TABLE__[(r3)>>2](i7);
   9685 }
   9686 	r1 = (r1 + 1)|0;
   9687 	r2 = heap32[(r0+4)];
   9688 	if(r2 >r1) //_LBB15_18
   9689 {
   9690 continue _25;
   9691 }
   9692 else{
   9693 break _23;
   9694 }
   9695 }
   9696 }
   9697 } while(0);
   9698 	r1 = heap32[(r0+1)];
   9699 if(!(r1 ==0)) //_LBB15_23
   9700 {
   9701 	r2 = r1 >> 2;
   9702 	r2 = heap32[(r2)];
   9703 	r2 = r2 >> 2;
   9704 	r2 = heap32[(r2+1)];
   9705 	heap32[(g0)] = r1;
   9706 	__FUNCTION_TABLE__[(r2)>>2](i7);
   9707 }
   9708 	r1 = heap32[(r0+15)];
   9709 if(!(r1 ==0)) //_LBB15_25
   9710 {
   9711 	r2 = r1 >> 2;
   9712 	r2 = heap32[(r2)];
   9713 	r2 = r2 >> 2;
   9714 	r2 = heap32[(r2+1)];
   9715 	heap32[(g0)] = r1;
   9716 	__FUNCTION_TABLE__[(r2)>>2](i7);
   9717 }
   9718 	r1 = heap32[(r0+13)];
   9719 if(!(r1 ==0)) //_LBB15_27
   9720 {
   9721 	r2 = r1 >> 2;
   9722 	r2 = heap32[(r2)];
   9723 	r2 = r2 >> 2;
   9724 	r2 = heap32[(r2+1)];
   9725 	heap32[(g0)] = r1;
   9726 	__FUNCTION_TABLE__[(r2)>>2](i7);
   9727 }
   9728 	r1 = heap32[(r0+14)];
   9729 if(!(r1 ==0)) //_LBB15_29
   9730 {
   9731 	r2 = r1 >> 2;
   9732 	r2 = heap32[(r2)];
   9733 	r2 = r2 >> 2;
   9734 	r2 = heap32[(r2+1)];
   9735 	heap32[(g0)] = r1;
   9736 	__FUNCTION_TABLE__[(r2)>>2](i7);
   9737 }
   9738 	r0 = heap32[(r0+16)];
   9739 if(!(r0 ==0)) //_LBB15_31
   9740 {
   9741 	r1 = r0 >> 2;
   9742 	r1 = heap32[(r1)];
   9743 	r1 = r1 >> 2;
   9744 	r1 = heap32[(r1+1)];
   9745 	heap32[(g0)] = r0;
   9746 	__FUNCTION_TABLE__[(r1)>>2](i7);
   9747 }
   9748 	return;
   9749 }
   9750 
   9751 function _ZN7RagDollD0Ev(sp)
   9752 {
   9753 	var i7;
   9754 	var fp = sp>>2;
   9755 	var r0;
   9756 	var r1;
   9757 	var r2;
   9758 	var r3;
   9759 	var r4;
   9760 	var r5;
   9761 	var r6;
   9762 	var r7;
   9763 var __label__ = 0;
   9764 	i7 = sp + -8;var g0 = i7>>2; // save stack
   9765 	r0 = heap32[(fp)];
   9766 	r1 = _ZTV7RagDoll;
   9767 	r2 = 0;
   9768 	r3 = r0 >> 2;
   9769 	r1 = (r1 + 8)|0;
   9770 	heap32[(r3)] = r1;
   9771 	r1 = r2;
   9772 _1: while(true){
   9773 	r4 = heap32[(r3+1)];
   9774 	r5 = r1 << 2;
   9775 	r6 = r4 >> 2;
   9776 	r5 = (r0 - r5)|0;
   9777 	r6 = heap32[(r6)];
   9778 	r6 = r6 >> 2;
   9779 	r5 = r5 >> 2;
   9780 	r6 = heap32[(r6+14)];
   9781 	r7 = heap32[(r5+24)];
   9782 	heap32[(g0)] = r4;
   9783 	heap32[(g0+1)] = r7;
   9784 	__FUNCTION_TABLE__[(r6)>>2](i7);
   9785 	r4 = heap32[(r5+24)];
   9786 if(!(r4 ==0)) //_LBB16_3
   9787 {
   9788 	r5 = r4 >> 2;
   9789 	r5 = heap32[(r5)];
   9790 	r5 = r5 >> 2;
   9791 	r5 = heap32[(r5+1)];
   9792 	heap32[(g0)] = r4;
   9793 	__FUNCTION_TABLE__[(r5)>>2](i7);
   9794 }
   9795 	r4 = (r2 - r1)|0;
   9796 	r4 = r4 << 2;
   9797 	r4 = (r0 + r4)|0;
   9798 	r1 = (r1 + -1)|0;
   9799 	r4 = r4 >> 2;
   9800 	heap32[(r4+24)] = 0;
   9801 	if(r1 !=-10) //_LBB16_1
   9802 {
   9803 continue _1;
   9804 }
   9805 else{
   9806 break _1;
   9807 }
   9808 }
   9809 	r1 = 2;
   9810 _7: while(true){
   9811 	r2 = heap32[(r3+1)];
   9812 	r4 = r2 >> 2;
   9813 	r5 = r1 << 2;
   9814 	r4 = heap32[(r4)];
   9815 	r5 = (r0 + r5)|0;
   9816 	r4 = r4 >> 2;
   9817 	r5 = r5 >> 2;
   9818 	r4 = heap32[(r4+21)];
   9819 	r6 = heap32[(r5+11)];
   9820 	heap32[(g0)] = r2;
   9821 	heap32[(g0+1)] = r6;
   9822 	__FUNCTION_TABLE__[(r4)>>2](i7);
   9823 	r2 = heap32[(r5+11)];
   9824 	r4 = r2 >> 2;
   9825 	r4 = heap32[(r4+118)];
   9826 	if(r4 !=0) //_LBB16_7
   9827 {
   9828 	r2 = r4 >> 2;
   9829 	r2 = heap32[(r2)];
   9830 	r2 = r2 >> 2;
   9831 	r2 = heap32[(r2+1)];
   9832 	heap32[(g0)] = r4;
   9833 	__FUNCTION_TABLE__[(r2)>>2](i7);
   9834 	r2 = heap32[(r5+11)];
   9835 }
   9836 if(!(r2 ==0)) //_LBB16_10
   9837 {
   9838 	r4 = r2 >> 2;
   9839 	r4 = heap32[(r4)];
   9840 	r4 = r4 >> 2;
   9841 	r4 = heap32[(r4+2)];
   9842 	heap32[(g0)] = r2;
   9843 	__FUNCTION_TABLE__[(r4)>>2](i7);
   9844 }
   9845 	heap32[(r5+11)] = 0;
   9846 	r2 = heap32[(r5)];
   9847 if(!(r2 ==0)) //_LBB16_12
   9848 {
   9849 	r4 = r2 >> 2;
   9850 	r4 = heap32[(r4)];
   9851 	r4 = r4 >> 2;
   9852 	r4 = heap32[(r4+1)];
   9853 	heap32[(g0)] = r2;
   9854 	__FUNCTION_TABLE__[(r4)>>2](i7);
   9855 }
   9856 	r1 = (r1 + 1)|0;
   9857 	heap32[(r5)] = 0;
   9858 	if(r1 !=13) //_LBB16_5
   9859 {
   9860 continue _7;
   9861 }
   9862 else{
   9863 break _7;
   9864 }
   9865 }
   9866 	heap32[(g0)] = r0;
   9867 	_ZdlPv(i7);
   9868 	return;
   9869 }
   9870 
   9871 function _ZN7RagDollD1Ev(sp)
   9872 {
   9873 	var i7;
   9874 	var fp = sp>>2;
   9875 	var r0;
   9876 	var r1;
   9877 	var r2;
   9878 	var r3;
   9879 	var r4;
   9880 	var r5;
   9881 	var r6;
   9882 	var r7;
   9883 var __label__ = 0;
   9884 	i7 = sp + -8;var g0 = i7>>2; // save stack
   9885 	r0 = heap32[(fp)];
   9886 	r1 = _ZTV7RagDoll;
   9887 	r2 = 0;
   9888 	r3 = r0 >> 2;
   9889 	r1 = (r1 + 8)|0;
   9890 	heap32[(r3)] = r1;
   9891 	r1 = r2;
   9892 _1: while(true){
   9893 	r4 = heap32[(r3+1)];
   9894 	r5 = r1 << 2;
   9895 	r6 = r4 >> 2;
   9896 	r5 = (r0 - r5)|0;
   9897 	r6 = heap32[(r6)];
   9898 	r6 = r6 >> 2;
   9899 	r5 = r5 >> 2;
   9900 	r6 = heap32[(r6+14)];
   9901 	r7 = heap32[(r5+24)];
   9902 	heap32[(g0)] = r4;
   9903 	heap32[(g0+1)] = r7;
   9904 	__FUNCTION_TABLE__[(r6)>>2](i7);
   9905 	r4 = heap32[(r5+24)];
   9906 if(!(r4 ==0)) //_LBB17_3
   9907 {
   9908 	r5 = r4 >> 2;
   9909 	r5 = heap32[(r5)];
   9910 	r5 = r5 >> 2;
   9911 	r5 = heap32[(r5+1)];
   9912 	heap32[(g0)] = r4;
   9913 	__FUNCTION_TABLE__[(r5)>>2](i7);
   9914 }
   9915 	r4 = (r2 - r1)|0;
   9916 	r4 = r4 << 2;
   9917 	r4 = (r0 + r4)|0;
   9918 	r1 = (r1 + -1)|0;
   9919 	r4 = r4 >> 2;
   9920 	heap32[(r4+24)] = 0;
   9921 	if(r1 !=-10) //_LBB17_1
   9922 {
   9923 continue _1;
   9924 }
   9925 else{
   9926 break _1;
   9927 }
   9928 }
   9929 	r1 = 2;
   9930 _7: while(true){
   9931 	r2 = heap32[(r3+1)];
   9932 	r4 = r2 >> 2;
   9933 	r5 = r1 << 2;
   9934 	r4 = heap32[(r4)];
   9935 	r5 = (r0 + r5)|0;
   9936 	r4 = r4 >> 2;
   9937 	r5 = r5 >> 2;
   9938 	r4 = heap32[(r4+21)];
   9939 	r6 = heap32[(r5+11)];
   9940 	heap32[(g0)] = r2;
   9941 	heap32[(g0+1)] = r6;
   9942 	__FUNCTION_TABLE__[(r4)>>2](i7);
   9943 	r2 = heap32[(r5+11)];
   9944 	r4 = r2 >> 2;
   9945 	r4 = heap32[(r4+118)];
   9946 	if(r4 !=0) //_LBB17_7
   9947 {
   9948 	r2 = r4 >> 2;
   9949 	r2 = heap32[(r2)];
   9950 	r2 = r2 >> 2;
   9951 	r2 = heap32[(r2+1)];
   9952 	heap32[(g0)] = r4;
   9953 	__FUNCTION_TABLE__[(r2)>>2](i7);
   9954 	r2 = heap32[(r5+11)];
   9955 }
   9956 if(!(r2 ==0)) //_LBB17_10
   9957 {
   9958 	r4 = r2 >> 2;
   9959 	r4 = heap32[(r4)];
   9960 	r4 = r4 >> 2;
   9961 	r4 = heap32[(r4+2)];
   9962 	heap32[(g0)] = r2;
   9963 	__FUNCTION_TABLE__[(r4)>>2](i7);
   9964 }
   9965 	heap32[(r5+11)] = 0;
   9966 	r2 = heap32[(r5)];
   9967 if(!(r2 ==0)) //_LBB17_12
   9968 {
   9969 	r4 = r2 >> 2;
   9970 	r4 = heap32[(r4)];
   9971 	r4 = r4 >> 2;
   9972 	r4 = heap32[(r4+1)];
   9973 	heap32[(g0)] = r2;
   9974 	__FUNCTION_TABLE__[(r4)>>2](i7);
   9975 }
   9976 	r1 = (r1 + 1)|0;
   9977 	heap32[(r5)] = 0;
   9978 	if(r1 !=13) //_LBB17_5
   9979 {
   9980 continue _7;
   9981 }
   9982 else{
   9983 break _7;
   9984 }
   9985 }
   9986 	return;
   9987 }
   9988 
   9989 function _ZN13BenchmarkDemoD0Ev(sp)
   9990 {
   9991 	var i7;
   9992 	var fp = sp>>2;
   9993 	var r0;
   9994 	var r1;
   9995 	var r2;
   9996 	var r3;
   9997 	var r4;
   9998 	var r5;
   9999 var __label__ = 0;
   10000 	i7 = sp + -8;var g0 = i7>>2; // save stack
   10001 	r0 = heap32[(fp)];
   10002 	r1 = _ZTV13BenchmarkDemo;
   10003 	r2 = r0 >> 2;
   10004 	r1 = (r1 + 8)|0;
   10005 	heap32[(r2)] = r1;
   10006 	heap32[(g0)] = r0;
   10007 	_ZN13BenchmarkDemo11exitPhysicsEv(i7);
   10008 	r1 = heap32[(r2+11)];
   10009 if(!(r1 ==0)) //_LBB18_4
   10010 {
   10011 	r3 = heapU8[r0+48];
   10012 if(!(r3 ==0)) //_LBB18_3
   10013 {
   10014 	r3 = gNumAlignedFree;
   10015 	r3 = r3 >> 2;
   10016 	r4 = heap32[(r3)];
   10017 	r4 = (r4 + 1)|0;
   10018 	r1 = r1 >> 2;
   10019 	heap32[(r3)] = r4;
   10020 	r1 = heap32[(r1+-1)];
   10021 	heap32[(g0)] = r1;
   10022 	free(i7);
   10023 }
   10024 	heap32[(r2+11)] = 0;
   10025 }
   10026 	r1 = 1;
   10027 	heap8[r0+48] = r1;
   10028 	heap32[(r2+11)] = 0;
   10029 	heap32[(r2+9)] = 0;
   10030 	heap32[(r2+10)] = 0;
   10031 	r3 = heap32[(r2+6)];
   10032 if(!(r3 ==0)) //_LBB18_8
   10033 {
   10034 	r4 = heapU8[r0+28];
   10035 if(!(r4 ==0)) //_LBB18_7
   10036 {
   10037 	r4 = gNumAlignedFree;
   10038 	r4 = r4 >> 2;
   10039 	r5 = heap32[(r4)];
   10040 	r5 = (r5 + 1)|0;
   10041 	r3 = r3 >> 2;
   10042 	heap32[(r4)] = r5;
   10043 	r3 = heap32[(r3+-1)];
   10044 	heap32[(g0)] = r3;
   10045 	free(i7);
   10046 }
   10047 	heap32[(r2+6)] = 0;
   10048 }
   10049 	heap8[r0+28] = r1;
   10050 	heap32[(r2+6)] = 0;
   10051 	heap32[(r2+4)] = 0;
   10052 	heap32[(r2+5)] = 0;
   10053 	heap32[(g0)] = r0;
   10054 	_ZdlPv(i7);
   10055 	return;
   10056 }
   10057 
   10058 function _ZN15DemoApplication20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(sp)
   10059 {
   10060 	var i7;
   10061 	var fp = sp>>2;
   10062 	var r0;
   10063 	var r1;
   10064 	var r2;
   10065 	var r3;
   10066 	var r4;
   10067 	var r5;
   10068 	var r6;
   10069 	var r7;
   10070 	var f0;
   10071 	var f1;
   10072 var __label__ = 0;
   10073 	i7 = sp + -168;var g0 = i7>>2; // save stack
   10074 	r0 = heap32[(fp+3)];
   10075 if(!(r0 ==0)) //_LBB19_3
   10076 {
   10077 	r1 = r0 >> 2;
   10078 	r1 = heap32[(r1+1)];
   10079 if(!(r1 !=35)) //_LBB19_3
   10080 {
   10081 	r0 = _2E_str5;
   10082 	r1 = _2E_str6;
   10083 	heap32[(g0)] = r0;
   10084 	heap32[(g0+1)] = r1;
   10085 	heap32[(g0+2)] = 1297;
   10086 	_assert(i7);
   10087 }
   10088 }
   10089 	f0 = heapFloat[(fp+1)];
   10090 	r1 = sp + -152;
   10091 	r2 = r1 >> 2;
   10092 	heap32[(fp+-38)] = 0;
   10093 	heap32[(r2+1)] = 0;
   10094 	heap32[(r2+2)] = 0;
   10095 	f1 =                         0;
   10096 	heap32[(r2+3)] = 0;
   10097 if(!(f0 ==f1)) //_LBB19_5
   10098 {
   10099 	r3 = r0 >> 2;
   10100 	r3 = heap32[(r3)];
   10101 	r3 = r3 >> 2;
   10102 	r3 = heap32[(r3+8)];
   10103 	heap32[(g0)] = r0;
   10104 	heapFloat[(g0+1)] = f0;
   10105 	heap32[(g0+2)] = r1;
   10106 	__FUNCTION_TABLE__[(r3)>>2](i7);
   10107 }
   10108 	r1 = heap32[(fp)];
   10109 	r3 = heap32[(fp+2)];
   10110 	r4 = gNumAlignedAllocs;
   10111 	r4 = r4 >> 2;
   10112 	r5 = heap32[(r4)];
   10113 	r5 = (r5 + 1)|0;
   10114 	heap32[(r4)] = r5;
   10115 	heap32[(g0)] = 627;
   10116 	malloc(i7);
   10117 	r4 = r_g0;
   10118 	if(r4 !=0) //_LBB19_7
   10119 {
   10120 	r5 = 0;
   10121 	r6 = (r4 + 4)|0;
   10122 	r5 = (r5 - r6)|0;
   10123 	r5 = r5 & 15;
   10124 	r5 = (r4 + r5)|0;
   10125 	r6 = (r5 + 4)|0;
   10126 	r5 = r5 >> 2;
   10127 	heap32[(r5)] = r4;
   10128 	r4 = r6;
   10129 }
   10130 	r5 = r4 >> 2;
   10131 	heap32[(r5+41)] = 1065353216;
   10132 	heap32[(r5+42)] = 1065353216;
   10133 	heap32[(r5+43)] = 1065353216;
   10134 	heap32[(r5+44)] = 0;
   10135 	heap32[(r5+45)] = 0;
   10136 	heap32[(r5+46)] = 1566444395;
   10137 	heap32[(r5+47)] = 0;
   10138 	heap32[(r5+48)] = 0;
   10139 	heap32[(r5+49)] = 0;
   10140 	heap32[(r5+50)] = 0;
   10141 	heap32[(r5+51)] = 1;
   10142 	heap32[(r5+52)] = -1;
   10143 	heap32[(r5+53)] = -1;
   10144 	heap32[(r5+54)] = 1;
   10145 	heap32[(r5+55)] = 0;
   10146 	heap32[(r5+56)] = 1056964608;
   10147 	heap32[(r5+57)] = 0;
   10148 	heap32[(r5+58)] = 1;
   10149 	heap32[(r5+59)] = 0;
   10150 	heap32[(r5+60)] = 1065353216;
   10151 	heap32[(r5+61)] = 0;
   10152 	heap32[(r5+62)] = 0;
   10153 	heap32[(r5+63)] = 0;
   10154 	heap32[(r5+1)] = 1065353216;
   10155 	heap32[(r5+2)] = 0;
   10156 	heap32[(r5+3)] = 0;
   10157 	heap32[(r5+4)] = 0;
   10158 	heap32[(r5+5)] = 0;
   10159 	heap32[(r5+6)] = 1065353216;
   10160 	heap32[(r5+7)] = 0;
   10161 	heap32[(r5+8)] = 0;
   10162 	heap32[(r5+9)] = 0;
   10163 	heap32[(r5+10)] = 0;
   10164 	heap32[(r5+11)] = 1065353216;
   10165 	heap32[(r5+12)] = 0;
   10166 	heap32[(r5+13)] = 0;
   10167 	heap32[(r5+14)] = 0;
   10168 	r6 = _ZTV11btRigidBody;
   10169 	heap32[(r5+15)] = 0;
   10170 	r6 = (r6 + 8)|0;
   10171 	heap32[(r5+16)] = 0;
   10172 	r7 = 1;
   10173 	heap32[(r5)] = r6;
   10174 	heap8[r4+492] = r7;
   10175 	heap32[(r5+122)] = 0;
   10176 	heap32[(r5+120)] = 0;
   10177 	r6 = sp + -136;
   10178 	heap32[(r5+121)] = 0;
   10179 	r7 = r6 >> 2;
   10180 	heapFloat[(fp+-34)] = f0;
   10181 	heap32[(r7+1)] = 0;
   10182 	heap32[(r7+18)] = r0;
   10183 	heap32[(r7+19)] = heap32[(fp+-38)];
   10184 	heap32[(r7+20)] = heap32[(r2+1)];
   10185 	heap32[(r7+21)] = heap32[(r2+2)];
   10186 	heap32[(r7+22)] = heap32[(r2+3)];
   10187 	heap32[(r7+23)] = 0;
   10188 	heap32[(r7+24)] = 0;
   10189 	heap32[(r7+25)] = 1056964608;
   10190 	heap32[(r7+26)] = 0;
   10191 	heap32[(r7+27)] = 1061997773;
   10192 	r0 = 0;
   10193 	heap32[(r7+28)] = 1065353216;
   10194 	heap8[sp+-20] = r0;
   10195 	heap32[(r7+30)] = 1000593162;
   10196 	heap32[(r7+31)] = 1008981770;
   10197 	heap32[(r7+32)] = 1008981770;
   10198 	heap32[(r7+33)] = 1008981770;
   10199 	heap32[(r7+2)] = 1065353216;
   10200 	heap32[(r7+3)] = 0;
   10201 	heap32[(r7+4)] = 0;
   10202 	heap32[(r7+5)] = 0;
   10203 	heap32[(r7+6)] = 0;
   10204 	heap32[(r7+7)] = 1065353216;
   10205 	heap32[(r7+8)] = 0;
   10206 	heap32[(r7+9)] = 0;
   10207 	heap32[(r7+10)] = 0;
   10208 	heap32[(r7+11)] = 0;
   10209 	heap32[(r7+12)] = 1065353216;
   10210 	heap32[(r7+13)] = 0;
   10211 	heap32[(r7+14)] = 0;
   10212 	heap32[(r7+15)] = 0;
   10213 	heap32[(r7+16)] = 0;
   10214 	heap32[(r7+17)] = 0;
   10215 	heap32[(g0)] = r4;
   10216 	heap32[(g0+1)] = r6;
   10217 	_ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7);
   10218 	r0 = r3 >> 2;
   10219 	heap32[(r5+1)] = heap32[(r0)];
   10220 	heap32[(r5+2)] = heap32[(r0+1)];
   10221 	heap32[(r5+3)] = heap32[(r0+2)];
   10222 	heap32[(r5+4)] = heap32[(r0+3)];
   10223 	heap32[(r5+5)] = heap32[(r0+4)];
   10224 	heap32[(r5+6)] = heap32[(r0+5)];
   10225 	heap32[(r5+7)] = heap32[(r0+6)];
   10226 	heap32[(r5+8)] = heap32[(r0+7)];
   10227 	heap32[(r5+9)] = heap32[(r0+8)];
   10228 	heap32[(r5+10)] = heap32[(r0+9)];
   10229 	heap32[(r5+11)] = heap32[(r0+10)];
   10230 	heap32[(r5+12)] = heap32[(r0+11)];
   10231 	heap32[(r5+13)] = heap32[(r0+12)];
   10232 	heap32[(r5+14)] = heap32[(r0+13)];
   10233 	heap32[(r5+15)] = heap32[(r0+14)];
   10234 	r1 = r1 >> 2;
   10235 	heap32[(r5+16)] = heap32[(r0+15)];
   10236 	heap32[(r5+46)] = heap32[(r1+2)];
   10237 	r0 = heap32[(r1+1)];
   10238 	r1 = r0 >> 2;
   10239 	r1 = heap32[(r1)];
   10240 	r1 = r1 >> 2;
   10241 	r1 = heap32[(r1+20)];
   10242 	heap32[(g0)] = r0;
   10243 	heap32[(g0+1)] = r4;
   10244 	__FUNCTION_TABLE__[(r1)>>2](i7);
   10245 	r_g0 = r4;
   10246 	return;
   10247 }
   10248 
   10249 function _ZN13BenchmarkDemoD1Ev(sp)
   10250 {
   10251 	var i7;
   10252 	var fp = sp>>2;
   10253 	var r0;
   10254 	var r1;
   10255 	var r2;
   10256 	var r3;
   10257 	var r4;
   10258 	var r5;
   10259 var __label__ = 0;
   10260 	i7 = sp + -8;var g0 = i7>>2; // save stack
   10261 	r0 = heap32[(fp)];
   10262 	r1 = _ZTV13BenchmarkDemo;
   10263 	r2 = r0 >> 2;
   10264 	r1 = (r1 + 8)|0;
   10265 	heap32[(r2)] = r1;
   10266 	heap32[(g0)] = r0;
   10267 	_ZN13BenchmarkDemo11exitPhysicsEv(i7);
   10268 	r1 = heap32[(r2+11)];
   10269 if(!(r1 ==0)) //_LBB20_4
   10270 {
   10271 	r3 = heapU8[r0+48];
   10272 if(!(r3 ==0)) //_LBB20_3
   10273 {
   10274 	r3 = gNumAlignedFree;
   10275 	r3 = r3 >> 2;
   10276 	r4 = heap32[(r3)];
   10277 	r4 = (r4 + 1)|0;
   10278 	r1 = r1 >> 2;
   10279 	heap32[(r3)] = r4;
   10280 	r1 = heap32[(r1+-1)];
   10281 	heap32[(g0)] = r1;
   10282 	free(i7);
   10283 }
   10284 	heap32[(r2+11)] = 0;
   10285 }
   10286 	r1 = 1;
   10287 	heap8[r0+48] = r1;
   10288 	heap32[(r2+11)] = 0;
   10289 	heap32[(r2+9)] = 0;
   10290 	heap32[(r2+10)] = 0;
   10291 	r3 = heap32[(r2+6)];
   10292 if(!(r3 ==0)) //_LBB20_8
   10293 {
   10294 	r4 = heapU8[r0+28];
   10295 if(!(r4 ==0)) //_LBB20_7
   10296 {
   10297 	r4 = gNumAlignedFree;
   10298 	r4 = r4 >> 2;
   10299 	r5 = heap32[(r4)];
   10300 	r5 = (r5 + 1)|0;
   10301 	r3 = r3 >> 2;
   10302 	heap32[(r4)] = r5;
   10303 	r3 = heap32[(r3+-1)];
   10304 	heap32[(g0)] = r3;
   10305 	free(i7);
   10306 }
   10307 	heap32[(r2+6)] = 0;
   10308 }
   10309 	heap8[r0+28] = r1;
   10310 	heap32[(r2+6)] = 0;
   10311 	heap32[(r2+4)] = 0;
   10312 	heap32[(r2+5)] = 0;
   10313 	return;
   10314 }
   10315 
   10316 function _ZN13BenchmarkDemo20clientMoveAndDisplayEv(sp)
   10317 {
   10318 	var i7;
   10319 	var fp = sp>>2;
   10320 	var r0;
   10321 	var r1;
   10322 	var r2;
   10323 	var r3;
   10324 	var r4;
   10325 	var r5;
   10326 	var r6;
   10327 	var r7;
   10328 	var r8;
   10329 	var r9;
   10330 	var r10;
   10331 	var f0;
   10332 	var f1;
   10333 	var f2;
   10334 var __label__ = 0;
   10335 	i7 = sp + -128;var g0 = i7>>2; // save stack
   10336 	r0 = heap32[(fp)];
   10337 	r0 = r0 >> 2;
   10338 	r1 = heap32[(r0+1)];
   10339 if(!(r1 ==0)) //_LBB21_2
   10340 {
   10341 	r2 = r1 >> 2;
   10342 	r2 = heap32[(r2)];
   10343 	r2 = r2 >> 2;
   10344 	r2 = heap32[(r2+12)];
   10345 	heap32[(g0)] = r1;
   10346 	heap32[(g0+1)] = 1015580809;
   10347 	heap32[(g0+2)] = 1;
   10348 	heap32[(g0+3)] = 1015580809;
   10349 	__FUNCTION_TABLE__[(r2)>>2](i7);
   10350 	r1 = heap32[(r0+1)];
   10351 	r2 = r1 >> 2;
   10352 	r2 = heap32[(r2)];
   10353 	r2 = r2 >> 2;
   10354 	r2 = heap32[(r2+5)];
   10355 	heap32[(g0)] = r1;
   10356 	__FUNCTION_TABLE__[(r2)>>2](i7);
   10357 }
   10358 	r1 = heap32[(r0+17)];
   10359 if(!(r1 !=7)) //_LBB21_10
   10360 {
   10361 	r1 = _ZL10raycastBar;
   10362 	r2 = r1 >> 2;
   10363 	r0 = heap32[(r0+1)];
   10364 	r3 = heap32[(r2+10006)];
   10365 	heap32[(g0)] = r3;
   10366 	heap32[(g0+1)] = 0;
   10367 	r3 = 0;
   10368 	gettimeofday(i7);
   10369 _6: while(true){
   10370 	r4 = sp + -96;
   10371 	r5 = r4 >> 2;
   10372 	heap32[(r5+1)] = 1065353216;
   10373 	r6 = 1;
   10374 	heap32[(r5+2)] = 0;
   10375 	r7 = -1;
   10376 	heap16[(sp+-84)>>1] = r6;
   10377 	r6 = _ZTVN16btCollisionWorld24ClosestRayResultCallbackE;
   10378 	heap16[(sp+-82)>>1] = r7;
   10379 	r7 = (r1 + r3)|0;
   10380 	r6 = (r6 + 8)|0;
   10381 	heap32[(r5+4)] = 0;
   10382 	r8 = r7 >> 2;
   10383 	heap32[(fp+-24)] = r6;
   10384 	heap32[(r5+5)] = heap32[(r8)];
   10385 	heap32[(r5+6)] = heap32[(r8+1)];
   10386 	heap32[(r5+7)] = heap32[(r8+2)];
   10387 	heap32[(r5+8)] = heap32[(r8+3)];
   10388 	heap32[(r5+9)] = heap32[(r8+2000)];
   10389 	heap32[(r5+10)] = heap32[(r8+2001)];
   10390 	heap32[(r5+11)] = heap32[(r8+2002)];
   10391 	r9 = r0 >> 2;
   10392 	heap32[(r5+12)] = heap32[(r8+2003)];
   10393 	r9 = heap32[(r9)];
   10394 	r9 = r9 >> 2;
   10395 	r9 = heap32[(r9+7)];
   10396 	r10 = (r7 + 8000)|0;
   10397 	heap32[(g0)] = r0;
   10398 	heap32[(g0+1)] = r7;
   10399 	heap32[(g0+2)] = r10;
   10400 	heap32[(g0+3)] = r4;
   10401 	__FUNCTION_TABLE__[(r9)>>2](i7);
   10402 	r4 = heap32[(r5+2)];
   10403 	if(r4 ==0) //_LBB21_6
   10404 {
   10405 	r4 = r7 >> 2;
   10406 	r5 = r7 >> 2;
   10407 	r9 = r7 >> 2;
   10408 	r10 = r7 >> 2;
   10409 	heap32[(r4+6000)] = heap32[(r5+2000)];
   10410 	r4 = r7 >> 2;
   10411 	r5 = r7 >> 2;
   10412 	heap32[(r9+6001)] = heap32[(r10+2001)];
   10413 	r9 = r7 >> 2;
   10414 	r10 = r7 >> 2;
   10415 	heap32[(r4+6002)] = heap32[(r5+2002)];
   10416 	r4 = r7 >> 2;
   10417 	heap32[(r9+6003)] = heap32[(r10+2003)];
   10418 	r5 = r7 >> 2;
   10419 	heap32[(r4+8000)] = 1065353216;
   10420 	r4 = r7 >> 2;
   10421 	heap32[(r5+8001)] = 0;
   10422 	heap32[(r4+8002)] = 0;
   10423 	heap32[(r8+8003)] = 0;
   10424 }
   10425 else{
   10426 	r4 = r7 >> 2;
   10427 	r9 = r7 >> 2;
   10428 	heap32[(r4+6000)] = heap32[(r5+17)];
   10429 	r4 = r7 >> 2;
   10430 	heap32[(r9+6001)] = heap32[(r5+18)];
   10431 	r9 = r7 >> 2;
   10432 	heap32[(r4+6002)] = heap32[(r5+19)];
   10433 	heap32[(r9+6003)] = heap32[(r5+20)];
   10434 	f0 = heapFloat[(r5+13)];
   10435 	r4 = r7 >> 2;
   10436 	heapFloat[(r4+8000)] = f0;
   10437 	f1 = heapFloat[(r5+14)];
   10438 	r9 = r7 >> 2;
   10439 	heapFloat[(r9+8001)] = f1;
   10440 	f2 = heapFloat[(r5+15)];
   10441 	r7 = r7 >> 2;
   10442 	f0 = f0*f0;
   10443 	f1 = f1*f1;
   10444 	heapFloat[(r7+8002)] = f2;
   10445 	heap32[(r8+8003)] = heap32[(r5+16)];
   10446 	f0 = f0+f1;
   10447 	f1 = f2*f2;
   10448 	f0 = f0+f1;
   10449 	heapFloat[(g0)] = f0;
   10450 	sqrtf(i7);
   10451 	f1 =                         1;
   10452 	f0 = f1/f_g0;
   10453 	f1 = heapFloat[(r4+8000)];
   10454 	f1 = f1*f0;
   10455 	heapFloat[(r4+8000)] = f1;
   10456 	f1 = heapFloat[(r9+8001)];
   10457 	f1 = f1*f0;
   10458 	heapFloat[(r9+8001)] = f1;
   10459 	f1 = heapFloat[(r7+8002)];
   10460 	f0 = f1*f0;
   10461 	heapFloat[(r7+8002)] = f0;
   10462 }
   10463 	r3 = (r3 + 16)|0;
   10464 	heap32[(fp+-24)] = r6;
   10465 if(!(r3 !=8000)) //_LBB21_4
   10466 {
   10467 break _6;
   10468 }
   10469 }
   10470 	r0 = heap32[(r2+10001)];
   10471 	r1 = sp + -8;
   10472 	heap32[(g0)] = r1;
   10473 	heap32[(g0+1)] = 0;
   10474 	gettimeofday(i7);
   10475 	r3 = heap32[(r2+10006)];
   10476 	r3 = r3 >> 2;
   10477 	r1 = r1 >> 2;
   10478 	r4 = heap32[(fp+-2)];
   10479 	r5 = heap32[(r3)];
   10480 	r1 = heap32[(r1+1)];
   10481 	r3 = heap32[(r3+1)];
   10482 	r1 = (r1 - r3)|0;
   10483 	r3 = (r4 - r5)|0;
   10484 	r1 = (r1 / 1000)|0;
   10485 	r3 = (r3 * 1000)|0;
   10486 	r1 = (r1 + r3)|0;
   10487 	r0 = (r1 + r0)|0;
   10488 	heap32[(r2+10001)] = r0;
   10489 	r1 = heap32[(r2+10000)];
   10490 	r1 = (r1 + 1)|0;
   10491 	heap32[(r2+10000)] = r1;
   10492 if(!(r1 <51)) //_LBB21_10
   10493 {
   10494 	r3 = heap32[(r2+10004)];
   10495 	r3 = r0 < r3 ? r0 : r3;
   10496 	heap32[(r2+10004)] = r3;
   10497 	r4 = heap32[(r2+10005)];
   10498 	r4 = r0 > r4 ? r0 : r4;
   10499 	heap32[(r2+10005)] = r4;
   10500 	r5 = heap32[(r2+10002)];
   10501 	r5 = (r0 + r5)|0;
   10502 	heap32[(r2+10002)] = r5;
   10503 	r6 = heap32[(r2+10003)];
   10504 	r6 = (r6 + 1)|0;
   10505 	f0 = r5; //fitos r5, f0
   10506 	f1 = r6; //fitos r6, f1
   10507 	f0 = f0/f1;
   10508 	heap32[(r2+10003)] = r6;
   10509 	r5 = _2E_str7;
   10510 	r1 = (r1 * 500)|0;
   10511 	f0 = f0; //fstod f0, f0
   10512 	heap32[(g0)] = r5;
   10513 	heap32[(g0+1)] = r1;
   10514 	heap32[(g0+2)] = r0;
   10515 	heap32[(g0+3)] = r3;
   10516 	heap32[(g0+4)] = r4;
   10517 	llvm_writeDouble((i7+24),f0);
   10518 	printf(i7);
   10519 	heap32[(r2+10001)] = 0;
   10520 	heap32[(r2+10000)] = 0;
   10521 }
   10522 }
   10523 	return;
   10524 }
   10525 
   10526 function _ZN13BenchmarkDemo10createWallERK9btVector3iS2_(sp)
   10527 {
   10528 	var i7;
   10529 	var fp = sp>>2;
   10530 	var r0;
   10531 	var r1;
   10532 	var r2;
   10533 	var r3;
   10534 	var r4;
   10535 	var r5;
   10536 	var r6;
   10537 	var r7;
   10538 	var f0;
   10539 	var f1;
   10540 	var f2;
   10541 	var f3;
   10542 	var f4;
   10543 	var f5;
   10544 	var f6;
   10545 	var f7;
   10546 	var f8;
   10547 	var f9;
   10548 var __label__ = 0;
   10549 	i7 = sp + -96;var g0 = i7>>2; // save stack
   10550 	r0 = heap32[(fp+1)];
   10551 	r1 = gNumAlignedAllocs;
   10552 	r0 = r0 >> 2;
   10553 	r1 = r1 >> 2;
   10554 	r2 = heap32[(r1)];
   10555 	f0 = heapFloat[(r0+2)];
   10556 	f1 = heapFloat[(r0+1)];
   10557 	f2 = heapFloat[(r0)];
   10558 	r2 = (r2 + 1)|0;
   10559 	heap32[(r1)] = r2;
   10560 	heap32[(g0)] = 71;
   10561 	malloc(i7);
   10562 	r1 = r_g0;
   10563 	r2 = heap32[(fp)];
   10564 	if(r1 !=0) //_LBB22_2
   10565 {
   10566 	r3 = 0;
   10567 	r4 = (r1 + 4)|0;
   10568 	r3 = (r3 - r4)|0;
   10569 	r3 = r3 & 15;
   10570 	r3 = (r1 + r3)|0;
   10571 	r4 = (r3 + 4)|0;
   10572 	r3 = r3 >> 2;
   10573 	heap32[(r3)] = r1;
   10574 	r1 = r4;
   10575 }
   10576 	r3 = r1 >> 2;
   10577 	heap32[(r3+2)] = 0;
   10578 	heap32[(r3+3)] = 1065353216;
   10579 	heap32[(r3+4)] = 1065353216;
   10580 	heap32[(r3+5)] = 1065353216;
   10581 	r4 = _ZTV10btBoxShape;
   10582 	heap32[(r3+6)] = 0;
   10583 	r4 = (r4 + 8)|0;
   10584 	heap32[(r3+11)] = 1025758986;
   10585 	heap32[(r3)] = r4;
   10586 	f3 =     -0.039999999105930328;
   10587 	f2 = f2+f3;
   10588 	heap32[(r3+1)] = 0;
   10589 	f1 = f1+f3;
   10590 	heapFloat[(r3+7)] = f2;
   10591 	f0 = f0+f3;
   10592 	heapFloat[(r3+8)] = f1;
   10593 	heapFloat[(r3+9)] = f0;
   10594 	r4 = sp + -16;
   10595 	heap32[(r3+10)] = 0;
   10596 	r3 = r4 >> 2;
   10597 	heap32[(fp+-4)] = 0;
   10598 	heap32[(r3+1)] = 0;
   10599 	heap32[(r3+2)] = 0;
   10600 	heap32[(r3+3)] = 0;
   10601 	heap32[(g0)] = r1;
   10602 	heap32[(g0+1)] = 1065353216;
   10603 	heap32[(g0+2)] = r4;
   10604 	_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i7);
   10605 	f4 = heapFloat[(r0+1)];
   10606 	f0 = heapFloat[(r0+2)];
   10607 	r0 = sp + -80;
   10608 	r3 = r0 >> 2;
   10609 	heap32[(fp+-20)] = 1065353216;
   10610 	heap32[(r3+1)] = 0;
   10611 	heap32[(r3+2)] = 0;
   10612 	heap32[(r3+3)] = 0;
   10613 	heap32[(r3+4)] = 0;
   10614 	heap32[(r3+5)] = 1065353216;
   10615 	heap32[(r3+6)] = 0;
   10616 	heap32[(r3+7)] = 0;
   10617 	heap32[(r3+8)] = 0;
   10618 	heap32[(r3+9)] = 0;
   10619 	heap32[(r3+10)] = 1065353216;
   10620 	heap32[(r3+11)] = 0;
   10621 	f1 = f0+f0;
   10622 	f2 =                       -12;
   10623 	heap32[(r3+12)] = 0;
   10624 	heap32[(r3+13)] = 0;
   10625 	f2 = f1*f2;
   10626 	f3 =                       0.5;
   10627 	f3 = f2*f3;
   10628 	f2 = f4+f4;
   10629 	r5 = 12;
   10630 	heap32[(r3+14)] = 0;
   10631 	heap32[(r3+15)] = 0;
   10632 _4: while(true){
   10633 if(!(r5 <1)) //_LBB22_4
   10634 {
   10635 	r4 = 0;
   10636 _8: while(true){
   10637 	r6 = r2 >> 2;
   10638 	f5 = r4; //fitos r4, f5
   10639 	f6 =                         0;
   10640 	f7 = heapFloat[(r6)];
   10641 	f8 = heapFloat[(r6+2)];
   10642 	f9 = heapFloat[(r6+1)];
   10643 	f5 = f5*f1;
   10644 	f6 = f7+f6;
   10645 	f5 = f5+f3;
   10646 	f7 = f9+f4;
   10647 	heapFloat[(r3+12)] = f6;
   10648 	f5 = f8+f5;
   10649 	heapFloat[(r3+13)] = f7;
   10650 	r6 = _ZL14benchmarkDemo4;
   10651 	heapFloat[(r3+14)] = f5;
   10652 	r7 = r6 >> 2;
   10653 	heap32[(r3+15)] = 0;
   10654 	r7 = heap32[(r7)];
   10655 	r7 = r7 >> 2;
   10656 	r7 = heap32[(r7+2)];
   10657 	heap32[(g0)] = r6;
   10658 	heap32[(g0+1)] = 1065353216;
   10659 	heap32[(g0+2)] = r0;
   10660 	heap32[(g0+3)] = r1;
   10661 	r4 = (r4 + 1)|0;
   10662 	__FUNCTION_TABLE__[(r7)>>2](i7);
   10663 	if(r5 !=r4) //_LBB22_3
   10664 {
   10665 continue _8;
   10666 }
   10667 else{
   10668 break _8;
   10669 }
   10670 }
   10671 }
   10672 	r5 = (r5 + -1)|0;
   10673 	f4 = f4+f2;
   10674 	f3 = f3+f0;
   10675 	if(r5 ==0) //_LBB22_8
   10676 {
   10677 break _4;
   10678 }
   10679 else{
   10680 continue _4;
   10681 }
   10682 }
   10683 	return;
   10684 }
   10685 
   10686 function _ZN13BenchmarkDemo19createLargeMeshBodyEv(sp)
   10687 {
   10688 	var i7;
   10689 	var fp = sp>>2;
   10690 	var r0;
   10691 	var r1;
   10692 	var r2;
   10693 	var r3;
   10694 	var r4;
   10695 	var r5;
   10696 	var r6;
   10697 	var r7;
   10698 	var r8;
   10699 	var r9;
   10700 	var r10;
   10701 	var r11;
   10702 	var r12;
   10703 	var r13;
   10704 	var r14;
   10705 var __label__ = 0;
   10706 	i7 = sp + -80;var g0 = i7>>2; // save stack
   10707 	r0 = sp + -64;
   10708 	r1 = r0 >> 2;
   10709 	heap32[(fp+-16)] = 1065353216;
   10710 	heap32[(r1+1)] = 0;
   10711 	heap32[(r1+2)] = 0;
   10712 	heap32[(r1+3)] = 0;
   10713 	heap32[(r1+4)] = 0;
   10714 	heap32[(r1+5)] = 1065353216;
   10715 	heap32[(r1+6)] = 0;
   10716 	heap32[(r1+7)] = 0;
   10717 	heap32[(r1+8)] = 0;
   10718 	heap32[(r1+9)] = 0;
   10719 	heap32[(r1+10)] = 1065353216;
   10720 	heap32[(r1+11)] = 0;
   10721 	heap32[(r1+12)] = 0;
   10722 	heap32[(r1+13)] = 0;
   10723 	r2 = 0;
   10724 	heap32[(r1+14)] = 0;
   10725 	heap32[(r1+15)] = 0;
   10726 _1: while(true){
   10727 	r3 = gNumAlignedAllocs;
   10728 	r3 = r3 >> 2;
   10729 	r4 = heap32[(r3)];
   10730 	r5 = (r4 + 1)|0;
   10731 	heap32[(r3)] = r5;
   10732 	heap32[(g0)] = 103;
   10733 	malloc(i7);
   10734 	r5 = r_g0;
   10735 	if(r5 !=0) //_LBB23_3
   10736 {
   10737 	r6 = 0;
   10738 	r7 = (r5 + 4)|0;
   10739 	r6 = (r6 - r7)|0;
   10740 	r6 = r6 & 15;
   10741 	r6 = (r5 + r6)|0;
   10742 	r7 = (r6 + 4)|0;
   10743 	r6 = r6 >> 2;
   10744 	heap32[(r6)] = r5;
   10745 	r5 = r7;
   10746 }
   10747 	r6 = r5 >> 2;
   10748 	heap32[(r6+1)] = 1065353216;
   10749 	heap32[(r6+2)] = 1065353216;
   10750 	r7 = _ZTV26btTriangleIndexVertexArray;
   10751 	heap32[(r6+3)] = 1065353216;
   10752 	r7 = (r7 + 8)|0;
   10753 	heap32[(r6+4)] = 0;
   10754 	r8 = 1;
   10755 	heap32[(r6)] = r7;
   10756 	heap8[r5+36] = r8;
   10757 	heap32[(r6+8)] = 0;
   10758 	heap32[(r6+6)] = 0;
   10759 	r7 = LandscapeVtx;
   10760 	r9 = r2 << 2;
   10761 	r10 = LandscapeVtxCount;
   10762 	r11 = LandscapeIdx;
   10763 	r12 = LandscapeIdxCount;
   10764 	r7 = (r7 + r9)|0;
   10765 	r10 = (r10 + r9)|0;
   10766 	r11 = (r11 + r9)|0;
   10767 	r9 = (r12 + r9)|0;
   10768 	heap32[(r6+7)] = 0;
   10769 	r7 = r7 >> 2;
   10770 	heap32[(r6+12)] = 0;
   10771 	r10 = r10 >> 2;
   10772 	r11 = r11 >> 2;
   10773 	r9 = r9 >> 2;
   10774 	r7 = heap32[(r7)];
   10775 	r10 = heap32[(r10)];
   10776 	r11 = heap32[(r11)];
   10777 	r9 = heap32[(r9)];
   10778 	r12 = (r4 + 2)|0;
   10779 	heap32[(r3)] = r12;
   10780 	heap32[(g0)] = 51;
   10781 	malloc(i7);
   10782 	r12 = r_g0;
   10783 	r9 = (r9 / 3)|0;
   10784 	if(r12 !=0) //_LBB23_6
   10785 {
   10786 	r13 = 0;
   10787 	r14 = (r12 + 4)|0;
   10788 	r13 = (r13 - r14)|0;
   10789 	r13 = r13 & 15;
   10790 	r13 = (r12 + r13)|0;
   10791 	r14 = (r13 + 4)|0;
   10792 	r13 = r13 >> 2;
   10793 	heap32[(r13)] = r12;
   10794 	r12 = r14;
   10795 }
   10796 	heap8[r5+36] = r8;
   10797 	heap32[(r6+8)] = r12;
   10798 	heap32[(r6+7)] = 1;
   10799 	r13 = heap32[(r6+6)];
   10800 	r13 = r13 << 5;
   10801 	r12 = (r12 + r13)|0;
   10802 	r12 = r12 >> 2;
   10803 	heap32[(r12)] = r9;
   10804 	heap32[(r12+1)] = r11;
   10805 	heap32[(r12+2)] = 6;
   10806 	heap32[(r12+3)] = r10;
   10807 	heap32[(r12+4)] = r7;
   10808 	heap32[(r12+5)] = 12;
   10809 	heap32[(r12+6)] = 3;
   10810 	heap32[(r12+7)] = 0;
   10811 	r7 = heap32[(r6+6)];
   10812 	r9 = (r7 + 1)|0;
   10813 	heap32[(r6+6)] = r9;
   10814 	r7 = r7 << 5;
   10815 	r9 = heap32[(r6+8)];
   10816 	r7 = (r9 + r7)|0;
   10817 	r7 = r7 >> 2;
   10818 	r4 = (r4 + 3)|0;
   10819 	heap32[(r7+6)] = 3;
   10820 	heap32[(r3)] = r4;
   10821 	heap32[(g0)] = 95;
   10822 	malloc(i7);
   10823 	r3 = r_g0;
   10824 	if(r3 !=0) //_LBB23_9
   10825 {
   10826 	r4 = 0;
   10827 	r7 = (r3 + 4)|0;
   10828 	r4 = (r4 - r7)|0;
   10829 	r4 = r4 & 15;
   10830 	r4 = (r3 + r4)|0;
   10831 	r7 = (r4 + 4)|0;
   10832 	r4 = r4 >> 2;
   10833 	heap32[(r4)] = r3;
   10834 	r3 = r7;
   10835 }
   10836 	r4 = r3 >> 2;
   10837 	r7 = _ZTV19btTriangleMeshShape;
   10838 	heap32[(r4+2)] = 0;
   10839 	r7 = (r7 + 8)|0;
   10840 	heap32[(r4+3)] = 0;
   10841 	heap32[(r4)] = r7;
   10842 	heap32[(r4+12)] = r5;
   10843 	heap32[(r4+1)] = 21;
   10844 	r7 = heap32[(r6)];
   10845 	r7 = r7 >> 2;
   10846 	r7 = heap32[(r7+10)];
   10847 	heap32[(g0)] = r5;
   10848 	__FUNCTION_TABLE__[(r7)>>2](i7);
   10849 	r7 = r_g0;
   10850 	if(r7 ==0) //_LBB23_12
   10851 {
   10852 	heap32[(g0)] = r3;
   10853 	_ZN19btTriangleMeshShape15recalcLocalAabbEv(i7);
   10854 }
   10855 else{
   10856 	r6 = heap32[(r6)];
   10857 	r6 = r6 >> 2;
   10858 	r6 = heap32[(r6+12)];
   10859 	r7 = (r3 + 16)|0;
   10860 	r9 = (r3 + 32)|0;
   10861 	heap32[(g0)] = r5;
   10862 	heap32[(g0+1)] = r7;
   10863 	heap32[(g0+2)] = r9;
   10864 	__FUNCTION_TABLE__[(r6)>>2](i7);
   10865 }
   10866 	r5 = _ZTV22btBvhTriangleMeshShape;
   10867 	r5 = (r5 + 8)|0;
   10868 	heap32[(r4)] = r5;
   10869 	heap32[(r4+13)] = 0;
   10870 	heap32[(r4+14)] = 0;
   10871 	r5 = 0;
   10872 	heap8[r3+60] = r8;
   10873 	heap8[r3+61] = r5;
   10874 	heap32[(r4+1)] = 21;
   10875 	heap32[(g0)] = r3;
   10876 	_ZN22btBvhTriangleMeshShape17buildOptimizedBvhEv(i7);
   10877 	heap32[(r1+12)] = 0;
   10878 	heap32[(r1+13)] = -1043857408;
   10879 	r4 = _ZL14benchmarkDemo4;
   10880 	heap32[(r1+14)] = 0;
   10881 	r5 = r4 >> 2;
   10882 	heap32[(r1+15)] = 0;
   10883 	r5 = heap32[(r5)];
   10884 	r5 = r5 >> 2;
   10885 	r5 = heap32[(r5+2)];
   10886 	heap32[(g0)] = r4;
   10887 	heap32[(g0+1)] = 0;
   10888 	heap32[(g0+2)] = r0;
   10889 	heap32[(g0+3)] = r3;
   10890 	__FUNCTION_TABLE__[(r5)>>2](i7);
   10891 	r2 = (r2 + 1)|0;
   10892 	r3 = r_g0 >> 2;
   10893 	heap32[(r3+56)] = 1063675494;
   10894 	if(r2 !=8) //_LBB23_1
   10895 {
   10896 continue _1;
   10897 }
   10898 else{
   10899 break _1;
   10900 }
   10901 }
   10902 	return;
   10903 }
   10904 
   10905 function _ZN13BenchmarkDemo11createTest6Ev(sp)
   10906 {
   10907 	var i7;
   10908 	var fp = sp>>2;
   10909 	var r0;
   10910 	var r1;
   10911 	var r2;
   10912 	var r3;
   10913 	var r4;
   10914 	var r5;
   10915 	var r6;
   10916 	var r7;
   10917 	var r8;
   10918 	var f0;
   10919 	var f1;
   10920 	var f2;
   10921 	var f3;
   10922 	var f4;
   10923 	var f5;
   10924 	var f6;
   10925 	var f7;
   10926 	var f8;
   10927 	var f9;
   10928 var __label__ = 0;
   10929 	i7 = sp + -112;var g0 = i7>>2; // save stack
   10930 	r0 = gNumAlignedAllocs;
   10931 	r0 = r0 >> 2;
   10932 	r1 = heap32[(r0)];
   10933 	r1 = (r1 + 1)|0;
   10934 	heap32[(r0)] = r1;
   10935 	heap32[(g0)] = 127;
   10936 	malloc(i7);
   10937 	r0 = r_g0;
   10938 	if(r0 !=0) //_LBB24_2
   10939 {
   10940 	r1 = 0;
   10941 	r2 = (r0 + 4)|0;
   10942 	r1 = (r1 - r2)|0;
   10943 	r1 = r1 & 15;
   10944 	r1 = (r0 + r1)|0;
   10945 	r2 = (r1 + 4)|0;
   10946 	r1 = r1 >> 2;
   10947 	heap32[(r1)] = r0;
   10948 	r0 = r2;
   10949 }
   10950 	heap32[(g0)] = r0;
   10951 	heap32[(g0+1)] = 0;
   10952 	heap32[(g0+2)] = 0;
   10953 	r1 = 0;
   10954 	_ZN17btConvexHullShapeC1EPKfii(i7);
   10955 _4: while(true){
   10956 	r2 = (r1 * -3)|0;
   10957 	r3 = _ZL7TaruVtx;
   10958 	r2 = r2 << 2;
   10959 	r2 = (r3 + r2)|0;
   10960 	r3 = sp + -96;
   10961 	r2 = r2 >> 2;
   10962 	r4 = r3 >> 2;
   10963 	heap32[(fp+-24)] = heap32[(r2)];
   10964 	heap32[(r4+1)] = heap32[(r2+1)];
   10965 	heap32[(r4+2)] = heap32[(r2+2)];
   10966 	heap32[(r4+3)] = 0;
   10967 	heap32[(g0)] = r0;
   10968 	heap32[(g0+1)] = r3;
   10969 	r1 = (r1 + -1)|0;
   10970 	_ZN17btConvexHullShape8addPointERK9btVector3(i7);
   10971 	if(r1 ==-43) //_LBB24_10
   10972 {
   10973 break _4;
   10974 }
   10975 else{
   10976 continue _4;
   10977 }
   10978 }
   10979 	r1 = sp + -64;
   10980 	r2 = r1 >> 2;
   10981 	heap32[(fp+-16)] = 1065353216;
   10982 	heap32[(r2+1)] = 0;
   10983 	heap32[(r2+2)] = 0;
   10984 	heap32[(r2+3)] = 0;
   10985 	heap32[(r2+4)] = 0;
   10986 	heap32[(r2+5)] = 1065353216;
   10987 	heap32[(r2+6)] = 0;
   10988 	heap32[(r2+7)] = 0;
   10989 	heap32[(r2+8)] = 0;
   10990 	heap32[(r2+9)] = 0;
   10991 	heap32[(r2+10)] = 1065353216;
   10992 	heap32[(r2+11)] = 0;
   10993 	heap32[(r2+12)] = 0;
   10994 	heap32[(r2+13)] = 0;
   10995 	heap32[(r2+14)] = 0;
   10996 	r3 = sp + -80;
   10997 	heap32[(r2+15)] = 0;
   10998 	r4 = r3 >> 2;
   10999 	heap32[(fp+-20)] = 0;
   11000 	heap32[(r4+1)] = 0;
   11001 	heap32[(r4+2)] = 0;
   11002 	r5 = r0 >> 2;
   11003 	heap32[(r4+3)] = 0;
   11004 	r4 = heap32[(r5)];
   11005 	r4 = r4 >> 2;
   11006 	r4 = heap32[(r4+8)];
   11007 	heap32[(g0)] = r0;
   11008 	heap32[(g0+1)] = 1065353216;
   11009 	heap32[(g0+2)] = r3;
   11010 	r3 = 10;
   11011 	f0 =                        20;
   11012 	f1 =                         2;
   11013 	f2 =                       -25;
   11014 	__FUNCTION_TABLE__[(r4)>>2](i7);
   11015 	r7 = _ZL14benchmarkDemo4;
   11016 _7: while(true){
   11017 	f3 =                         3;
   11018 	f4 =                        25;
   11019 	f5 = f1+f3;
   11020 	f4 = f0+f4;
   11021 	r4 = 0;
   11022 	r5 = r4;
   11023 _9: while(true){
   11024 	f6 = r5; //fitos r5, f6
   11025 	f6 = f6*f5;
   11026 	f6 = f6+f2;
   11027 	f7 =                         5;
   11028 	f6 = f6*f7;
   11029 	f8 =                         0;
   11030 	f6 = f6+f8;
   11031 	r6 = r4;
   11032 _11: while(true){
   11033 	f9 = r6; //fitos r6, f9
   11034 	f9 = f9*f5;
   11035 	f9 = f9+f2;
   11036 	f9 = f9*f7;
   11037 	f9 = f9+f8;
   11038 	heapFloat[(r2+12)] = f9;
   11039 	heapFloat[(r2+13)] = f4;
   11040 	heapFloat[(r2+14)] = f6;
   11041 	r8 = r7 >> 2;
   11042 	heap32[(r2+15)] = 0;
   11043 	r8 = heap32[(r8)];
   11044 	r8 = r8 >> 2;
   11045 	r8 = heap32[(r8+2)];
   11046 	heap32[(g0)] = r7;
   11047 	heap32[(g0+1)] = 1065353216;
   11048 	heap32[(g0+2)] = r1;
   11049 	heap32[(g0+3)] = r0;
   11050 	r6 = (r6 + 1)|0;
   11051 	__FUNCTION_TABLE__[(r8)>>2](i7);
   11052 	if(r6 !=10) //_LBB24_7
   11053 {
   11054 continue _11;
   11055 }
   11056 else{
   11057 break _11;
   11058 }
   11059 }
   11060 	r5 = (r5 + 1)|0;
   11061 	if(r5 !=10) //_LBB24_6
   11062 {
   11063 continue _9;
   11064 }
   11065 else{
   11066 break _9;
   11067 }
   11068 }
   11069 	f4 =        1.1000000238418579;
   11070 	f5 =      -0.05000000074505806;
   11071 	f4 = f1*f4;
   11072 	f1 = f1*f5;
   11073 	f5 =                         9;
   11074 	f3 = f4+f3;
   11075 	f1 = f1*f5;
   11076 	r3 = (r3 + -1)|0;
   11077 	f0 = f0+f3;
   11078 	f2 = f1+f2;
   11079 	f1 = f4;
   11080 	if(r3 ==0) //_LBB24_11
   11081 {
   11082 break _7;
   11083 }
   11084 else{
   11085 continue _7;
   11086 }
   11087 }
   11088 	_ZN13BenchmarkDemo19createLargeMeshBodyEv(i7);
   11089 	return;
   11090 }
   11091 
   11092 function _ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(sp)
   11093 {
   11094 	var i7;
   11095 	var fp = sp>>2;
   11096 	var r0;
   11097 	var r1;
   11098 	var r2;
   11099 	var r3;
   11100 	var r4;
   11101 	var r5;
   11102 	var r6;
   11103 var __label__ = 0;
   11104 	i7 = sp + -168;var g0 = i7>>2; // save stack
   11105 	r0 = sp + -16;
   11106 	r1 = r0 >> 2;
   11107 	heap32[(fp+-4)] = 0;
   11108 	heap32[(r1+1)] = 0;
   11109 	r2 = heap32[(fp+2)];
   11110 	heap32[(r1+2)] = 0;
   11111 	r3 = r2 >> 2;
   11112 	heap32[(r1+3)] = 0;
   11113 	r3 = heap32[(r3)];
   11114 	r3 = r3 >> 2;
   11115 	r3 = heap32[(r3+8)];
   11116 	heap32[(g0)] = r2;
   11117 	heap32[(g0+1)] = 1065353216;
   11118 	heap32[(g0+2)] = r0;
   11119 	r0 = _ZGVZN11btTransform11getIdentityEvE17identityTransform;
   11120 	__FUNCTION_TABLE__[(r3)>>2](i7);
   11121 	r3 = heapU8[r0];
   11122 if(!(r3 !=0)) //_LBB25_4
   11123 {
   11124 	r3 = _ZGVZN11btMatrix3x311getIdentityEvE14identityMatrix;
   11125 	r4 = heapU8[r3];
   11126 if(!(r4 !=0)) //_LBB25_3
   11127 {
   11128 	r4 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0;
   11129 	r5 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1;
   11130 	r4 = r4 >> 2;
   11131 	r6 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2;
   11132 	r5 = r5 >> 2;
   11133 	heap32[(r4)] = 1065353216;
   11134 	r4 = r6 >> 2;
   11135 	heap32[(r5)] = 1065353216;
   11136 	r5 = 1;
   11137 	heap32[(r4)] = 1065353216;
   11138 	heap8[r3] = r5;
   11139 }
   11140 	r3 = _ZZN11btTransform11getIdentityEvE17identityTransform;
   11141 	r4 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0;
   11142 	r3 = r3 >> 2;
   11143 	r4 = r4 >> 2;
   11144 	heap32[(r3)] = heap32[(r4)];
   11145 	heap32[(r3+1)] = 0;
   11146 	heap32[(r3+2)] = 0;
   11147 	r4 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1;
   11148 	heap32[(r3+3)] = 0;
   11149 	r4 = r4 >> 2;
   11150 	heap32[(r3+4)] = 0;
   11151 	heap32[(r3+5)] = heap32[(r4)];
   11152 	heap32[(r3+6)] = 0;
   11153 	heap32[(r3+7)] = 0;
   11154 	r4 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2;
   11155 	heap32[(r3+8)] = 0;
   11156 	r4 = r4 >> 2;
   11157 	heap32[(r3+9)] = 0;
   11158 	heap32[(r3+10)] = heap32[(r4)];
   11159 	heap32[(r3+11)] = 0;
   11160 	heap32[(r3+12)] = 0;
   11161 	heap32[(r3+13)] = 0;
   11162 	heap32[(r3+14)] = 0;
   11163 	r4 = 1;
   11164 	heap32[(r3+15)] = 0;
   11165 	heap8[r0] = r4;
   11166 }
   11167 	r0 = heap32[(fp)];
   11168 	r3 = heap32[(fp+1)];
   11169 	heap32[(g0)] = 200;
   11170 	r4 = _ZTV20btDefaultMotionState;
   11171 	_Znwj(i7);
   11172 	r6 = r_g0 >> 2;
   11173 	r4 = (r4 + 8)|0;
   11174 	r3 = r3 >> 2;
   11175 	heap32[(r6)] = r4;
   11176 	heap32[(r6+1)] = heap32[(r3)];
   11177 	heap32[(r6+2)] = heap32[(r3+1)];
   11178 	heap32[(r6+3)] = heap32[(r3+2)];
   11179 	heap32[(r6+4)] = heap32[(r3+3)];
   11180 	heap32[(r6+5)] = heap32[(r3+4)];
   11181 	heap32[(r6+6)] = heap32[(r3+5)];
   11182 	heap32[(r6+7)] = heap32[(r3+6)];
   11183 	heap32[(r6+8)] = heap32[(r3+7)];
   11184 	heap32[(r6+9)] = heap32[(r3+8)];
   11185 	heap32[(r6+10)] = heap32[(r3+9)];
   11186 	heap32[(r6+11)] = heap32[(r3+10)];
   11187 	heap32[(r6+12)] = heap32[(r3+11)];
   11188 	heap32[(r6+13)] = heap32[(r3+12)];
   11189 	heap32[(r6+14)] = heap32[(r3+13)];
   11190 	r4 = _ZZN11btTransform11getIdentityEvE17identityTransform;
   11191 	heap32[(r6+15)] = heap32[(r3+14)];
   11192 	r4 = r4 >> 2;
   11193 	heap32[(r6+16)] = heap32[(r3+15)];
   11194 	heap32[(r6+17)] = heap32[(r4)];
   11195 	heap32[(r6+18)] = heap32[(r4+1)];
   11196 	heap32[(r6+19)] = heap32[(r4+2)];
   11197 	heap32[(r6+20)] = heap32[(r4+3)];
   11198 	heap32[(r6+21)] = heap32[(r4+4)];
   11199 	heap32[(r6+22)] = heap32[(r4+5)];
   11200 	heap32[(r6+23)] = heap32[(r4+6)];
   11201 	heap32[(r6+24)] = heap32[(r4+7)];
   11202 	heap32[(r6+25)] = heap32[(r4+8)];
   11203 	heap32[(r6+26)] = heap32[(r4+9)];
   11204 	heap32[(r6+27)] = heap32[(r4+10)];
   11205 	heap32[(r6+28)] = heap32[(r4+11)];
   11206 	heap32[(r6+29)] = heap32[(r4+12)];
   11207 	heap32[(r6+30)] = heap32[(r4+13)];
   11208 	heap32[(r6+31)] = heap32[(r4+14)];
   11209 	heap32[(r6+32)] = heap32[(r4+15)];
   11210 	heap32[(r6+33)] = heap32[(r3)];
   11211 	heap32[(r6+34)] = heap32[(r3+1)];
   11212 	heap32[(r6+35)] = heap32[(r3+2)];
   11213 	heap32[(r6+36)] = heap32[(r3+3)];
   11214 	heap32[(r6+37)] = heap32[(r3+4)];
   11215 	heap32[(r6+38)] = heap32[(r3+5)];
   11216 	heap32[(r6+39)] = heap32[(r3+6)];
   11217 	heap32[(r6+40)] = heap32[(r3+7)];
   11218 	heap32[(r6+41)] = heap32[(r3+8)];
   11219 	heap32[(r6+42)] = heap32[(r3+9)];
   11220 	heap32[(r6+43)] = heap32[(r3+10)];
   11221 	heap32[(r6+44)] = heap32[(r3+11)];
   11222 	heap32[(r6+45)] = heap32[(r3+12)];
   11223 	heap32[(r6+46)] = heap32[(r3+13)];
   11224 	heap32[(r6+47)] = heap32[(r3+14)];
   11225 	heap32[(r6+48)] = heap32[(r3+15)];
   11226 	r3 = sp + -152;
   11227 	heap32[(r6+49)] = 0;
   11228 	r4 = r3 >> 2;
   11229 	heap32[(fp+-38)] = 1065353216;
   11230 	heap32[(r4+1)] = r_g0;
   11231 	heap32[(r4+18)] = r2;
   11232 	heap32[(r4+19)] = heap32[(fp+-4)];
   11233 	heap32[(r4+20)] = heap32[(r1+1)];
   11234 	heap32[(r4+21)] = heap32[(r1+2)];
   11235 	heap32[(r4+22)] = heap32[(r1+3)];
   11236 	heap32[(r4+23)] = 0;
   11237 	heap32[(r4+24)] = 0;
   11238 	heap32[(r4+25)] = 1056964608;
   11239 	heap32[(r4+26)] = 0;
   11240 	heap32[(r4+27)] = 1061997773;
   11241 	r1 = 0;
   11242 	heap32[(r4+28)] = 1065353216;
   11243 	heap8[sp+-36] = r1;
   11244 	heap32[(r4+30)] = 1000593162;
   11245 	heap32[(r4+31)] = 1008981770;
   11246 	heap32[(r4+32)] = 1008981770;
   11247 	heap32[(r4+33)] = 1008981770;
   11248 	heap32[(r4+2)] = 1065353216;
   11249 	heap32[(r4+3)] = 0;
   11250 	heap32[(r4+4)] = 0;
   11251 	heap32[(r4+5)] = 0;
   11252 	heap32[(r4+6)] = 0;
   11253 	heap32[(r4+7)] = 1065353216;
   11254 	heap32[(r4+8)] = 0;
   11255 	heap32[(r4+9)] = 0;
   11256 	heap32[(r4+10)] = 0;
   11257 	heap32[(r4+11)] = 0;
   11258 	heap32[(r4+12)] = 1065353216;
   11259 	heap32[(r4+13)] = 0;
   11260 	heap32[(r4+14)] = 0;
   11261 	heap32[(r4+15)] = 0;
   11262 	r2 = gNumAlignedAllocs;
   11263 	heap32[(r4+16)] = 0;
   11264 	r2 = r2 >> 2;
   11265 	heap32[(r4+17)] = 0;
   11266 	r4 = heap32[(r2)];
   11267 	r4 = (r4 + 1)|0;
   11268 	heap32[(r2)] = r4;
   11269 	heap32[(g0)] = 627;
   11270 	malloc(i7);
   11271 	r2 = r_g0;
   11272 	if(r2 !=0) //_LBB25_6
   11273 {
   11274 	r4 = (r2 + 4)|0;
   11275 	r1 = (r1 - r4)|0;
   11276 	r1 = r1 & 15;
   11277 	r1 = (r2 + r1)|0;
   11278 	r4 = (r1 + 4)|0;
   11279 	r1 = r1 >> 2;
   11280 	heap32[(r1)] = r2;
   11281 	r2 = r4;
   11282 }
   11283 	r1 = r2 >> 2;
   11284 	heap32[(r1+41)] = 1065353216;
   11285 	heap32[(r1+42)] = 1065353216;
   11286 	heap32[(r1+43)] = 1065353216;
   11287 	heap32[(r1+44)] = 0;
   11288 	heap32[(r1+45)] = 0;
   11289 	heap32[(r1+46)] = 1566444395;
   11290 	heap32[(r1+47)] = 0;
   11291 	heap32[(r1+48)] = 0;
   11292 	heap32[(r1+49)] = 0;
   11293 	heap32[(r1+50)] = 0;
   11294 	heap32[(r1+51)] = 1;
   11295 	heap32[(r1+52)] = -1;
   11296 	heap32[(r1+53)] = -1;
   11297 	heap32[(r1+54)] = 1;
   11298 	heap32[(r1+55)] = 0;
   11299 	heap32[(r1+56)] = 1056964608;
   11300 	heap32[(r1+57)] = 0;
   11301 	heap32[(r1+58)] = 1;
   11302 	heap32[(r1+59)] = 0;
   11303 	heap32[(r1+60)] = 1065353216;
   11304 	heap32[(r1+61)] = 0;
   11305 	heap32[(r1+62)] = 0;
   11306 	heap32[(r1+63)] = 0;
   11307 	heap32[(r1+1)] = 1065353216;
   11308 	heap32[(r1+2)] = 0;
   11309 	heap32[(r1+3)] = 0;
   11310 	heap32[(r1+4)] = 0;
   11311 	heap32[(r1+5)] = 0;
   11312 	heap32[(r1+6)] = 1065353216;
   11313 	heap32[(r1+7)] = 0;
   11314 	heap32[(r1+8)] = 0;
   11315 	heap32[(r1+9)] = 0;
   11316 	heap32[(r1+10)] = 0;
   11317 	heap32[(r1+11)] = 1065353216;
   11318 	heap32[(r1+12)] = 0;
   11319 	heap32[(r1+13)] = 0;
   11320 	heap32[(r1+14)] = 0;
   11321 	r4 = _ZTV11btRigidBody;
   11322 	heap32[(r1+15)] = 0;
   11323 	r4 = (r4 + 8)|0;
   11324 	heap32[(r1+16)] = 0;
   11325 	r5 = 1;
   11326 	heap32[(r1)] = r4;
   11327 	heap8[r2+492] = r5;
   11328 	heap32[(r1+122)] = 0;
   11329 	heap32[(r1+120)] = 0;
   11330 	heap32[(r1+121)] = 0;
   11331 	heap32[(g0)] = r2;
   11332 	heap32[(g0+1)] = r3;
   11333 	_ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7);
   11334 	r0 = r0 >> 2;
   11335 	r0 = heap32[(r0+1)];
   11336 	r1 = r0 >> 2;
   11337 	r1 = heap32[(r1)];
   11338 	r1 = r1 >> 2;
   11339 	r1 = heap32[(r1+20)];
   11340 	heap32[(g0)] = r0;
   11341 	heap32[(g0+1)] = r2;
   11342 	__FUNCTION_TABLE__[(r1)>>2](i7);
   11343 	r_g0 = r2;
   11344 	return;
   11345 }
   11346 
   11347 function _ZN13BenchmarkDemo11initPhysicsEv(sp)
   11348 {
   11349 	var i7;
   11350 	var fp = sp>>2;
   11351 	var r0;
   11352 	var r1;
   11353 	var r2;
   11354 	var r3;
   11355 	var r4;
   11356 	var r5;
   11357 	var r6;
   11358 	var r7;
   11359 	var r8;
   11360 	var r9;
   11361 	var r10;
   11362 	var r11;
   11363 	var r12;
   11364 	var r13;
   11365 	var r14;
   11366 	var r15;
   11367 	var f0;
   11368 	var f1;
   11369 	var f2;
   11370 	var f3;
   11371 	var f4;
   11372 	var f5;
   11373 	var f6;
   11374 	var f7;
   11375 	var f8;
   11376 	var f9;
   11377 	var f10;
   11378 	var f11;
   11379 	var f12;
   11380 	var f13;
   11381 	var f14;
   11382 	var f15;
   11383 	var f16;
   11384 	var f17;
   11385 	var f18;
   11386 	var f19;
   11387 	var f20;
   11388 	var f21;
   11389 var __label__ = 0;
   11390 	i7 = sp + -41432;var g0 = i7>>2; // save stack
   11391 	heap32[(g0)] = 88;
   11392 	_Znwj(i7);
   11393 	r0 = r_g0;
   11394 	r1 = _ZTV31btDefaultCollisionConfiguration;
   11395 	r2 = gNumAlignedAllocs;
   11396 	r3 = r0 >> 2;
   11397 	r1 = (r1 + 8)|0;
   11398 	r2 = r2 >> 2;
   11399 	heap32[(r3)] = r1;
   11400 	r1 = heap32[(r2)];
   11401 	r3 = (r1 + 1)|0;
   11402 	heap32[(r2)] = r3;
   11403 	heap32[(g0)] = 379;
   11404 	malloc(i7);
   11405 	r3 = r_g0;
   11406 	if(r3 !=0) //_LBB26_2
   11407 {
   11408 	r4 = 0;
   11409 	r5 = (r3 + 4)|0;
   11410 	r4 = (r4 - r5)|0;
   11411 	r4 = r4 & 15;
   11412 	r4 = (r3 + r4)|0;
   11413 	r5 = (r4 + 4)|0;
   11414 	r4 = r4 >> 2;
   11415 	heap32[(r4)] = r3;
   11416 	r3 = r5;
   11417 }
   11418 	r4 = r3 >> 2;
   11419 	heap32[(r4+77)] = 953267991;
   11420 	r4 = heapU8[r3+332];
   11421 	r4 = r4 & 240;
   11422 	r5 = r0 >> 2;
   11423 	heap8[r3+332] = r4;
   11424 	r4 = (r1 + 2)|0;
   11425 	heap32[(r5+8)] = r3;
   11426 	heap32[(r2)] = r4;
   11427 	heap32[(g0)] = 23;
   11428 	malloc(i7);
   11429 	r3 = r_g0;
   11430 	if(r3 !=0) //_LBB26_5
   11431 {
   11432 	r4 = 0;
   11433 	r6 = (r3 + 4)|0;
   11434 	r4 = (r4 - r6)|0;
   11435 	r4 = r4 & 15;
   11436 	r4 = (r3 + r4)|0;
   11437 	r6 = (r4 + 4)|0;
   11438 	r4 = r4 >> 2;
   11439 	heap32[(r4)] = r3;
   11440 	r3 = r6;
   11441 }
   11442 	r4 = _ZTV30btGjkEpaPenetrationDepthSolver;
   11443 	r6 = r3 >> 2;
   11444 	r4 = (r4 + 8)|0;
   11445 	heap32[(r6)] = r4;
   11446 	r4 = (r1 + 3)|0;
   11447 	heap32[(r5+9)] = r3;
   11448 	heap32[(r2)] = r4;
   11449 	heap32[(g0)] = 43;
   11450 	malloc(i7);
   11451 	r4 = r_g0;
   11452 	if(r4 !=0) //_LBB26_8
   11453 {
   11454 	r3 = 0;
   11455 	r6 = (r4 + 4)|0;
   11456 	r3 = (r3 - r6)|0;
   11457 	r3 = r3 & 15;
   11458 	r3 = (r4 + r3)|0;
   11459 	r6 = r3 >> 2;
   11460 	heap32[(r6)] = r4;
   11461 	r4 = (r3 + 4)|0;
   11462 	r3 = heap32[(r5+9)];
   11463 }
   11464 	r6 = _ZTVN23btConvexConvexAlgorithm10CreateFuncE;
   11465 	r7 = heap32[(r5+8)];
   11466 	r8 = 0;
   11467 	r9 = r4 >> 2;
   11468 	r6 = (r6 + 8)|0;
   11469 	heap8[r4+4] = r8;
   11470 	heap32[(r9)] = r6;
   11471 	heap32[(r9+4)] = 0;
   11472 	heap32[(r9+5)] = 3;
   11473 	heap32[(r9+3)] = r7;
   11474 	heap32[(r9+2)] = r3;
   11475 	r3 = (r1 + 4)|0;
   11476 	heap32[(r5+10)] = r4;
   11477 	heap32[(r2)] = r3;
   11478 	heap32[(g0)] = 27;
   11479 	malloc(i7);
   11480 	r3 = r_g0;
   11481 	if(r3 !=0) //_LBB26_11
   11482 {
   11483 	r4 = (r3 + 4)|0;
   11484 	r4 = (r8 - r4)|0;
   11485 	r4 = r4 & 15;
   11486 	r4 = (r3 + r4)|0;
   11487 	r6 = (r4 + 4)|0;
   11488 	r4 = r4 >> 2;
   11489 	heap32[(r4)] = r3;
   11490 	r3 = r6;
   11491 }
   11492 	r4 = _ZTVN33btConvexConcaveCollisionAlgorithm10CreateFuncE;
   11493 	r6 = r3 >> 2;
   11494 	r4 = (r4 + 8)|0;
   11495 	heap8[r3+4] = r8;
   11496 	heap32[(r6)] = r4;
   11497 	r4 = (r1 + 5)|0;
   11498 	heap32[(r5+11)] = r3;
   11499 	heap32[(r2)] = r4;
   11500 	heap32[(g0)] = 27;
   11501 	malloc(i7);
   11502 	r3 = r_g0;
   11503 	if(r3 !=0) //_LBB26_14
   11504 {
   11505 	r4 = (r3 + 4)|0;
   11506 	r4 = (r8 - r4)|0;
   11507 	r4 = r4 & 15;
   11508 	r4 = (r3 + r4)|0;
   11509 	r6 = (r4 + 4)|0;
   11510 	r4 = r4 >> 2;
   11511 	heap32[(r4)] = r3;
   11512 	r3 = r6;
   11513 }
   11514 	r4 = _ZTVN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE;
   11515 	r6 = r3 >> 2;
   11516 	r4 = (r4 + 8)|0;
   11517 	heap8[r3+4] = r8;
   11518 	heap32[(r6)] = r4;
   11519 	r4 = (r1 + 6)|0;
   11520 	heap32[(r5+12)] = r3;
   11521 	heap32[(r2)] = r4;
   11522 	heap32[(g0)] = 27;
   11523 	malloc(i7);
   11524 	r3 = r_g0;
   11525 	if(r3 !=0) //_LBB26_17
   11526 {
   11527 	r4 = (r3 + 4)|0;
   11528 	r4 = (r8 - r4)|0;
   11529 	r4 = r4 & 15;
   11530 	r4 = (r3 + r4)|0;
   11531 	r6 = (r4 + 4)|0;
   11532 	r4 = r4 >> 2;
   11533 	heap32[(r4)] = r3;
   11534 	r3 = r6;
   11535 }
   11536 	r4 = _ZTVN28btCompoundCollisionAlgorithm10CreateFuncE;
   11537 	r6 = r3 >> 2;
   11538 	r4 = (r4 + 8)|0;
   11539 	heap8[r3+4] = r8;
   11540 	heap32[(r6)] = r4;
   11541 	r4 = (r1 + 7)|0;
   11542 	heap32[(r5+13)] = r3;
   11543 	heap32[(r2)] = r4;
   11544 	heap32[(g0)] = 27;
   11545 	malloc(i7);
   11546 	r3 = r_g0;
   11547 	if(r3 !=0) //_LBB26_20
   11548 {
   11549 	r4 = (r3 + 4)|0;
   11550 	r4 = (r8 - r4)|0;
   11551 	r4 = r4 & 15;
   11552 	r4 = (r3 + r4)|0;
   11553 	r6 = (r4 + 4)|0;
   11554 	r4 = r4 >> 2;
   11555 	heap32[(r4)] = r3;
   11556 	r3 = r6;
   11557 }
   11558 	r4 = _ZTVN28btCompoundCollisionAlgorithm17SwappedCreateFuncE;
   11559 	r6 = r3 >> 2;
   11560 	r4 = (r4 + 8)|0;
   11561 	heap8[r3+4] = r8;
   11562 	heap32[(r6)] = r4;
   11563 	r4 = (r1 + 8)|0;
   11564 	heap32[(r5+14)] = r3;
   11565 	heap32[(r2)] = r4;
   11566 	heap32[(g0)] = 27;
   11567 	malloc(i7);
   11568 	r3 = r_g0;
   11569 	if(r3 !=0) //_LBB26_23
   11570 {
   11571 	r4 = (r3 + 4)|0;
   11572 	r4 = (r8 - r4)|0;
   11573 	r4 = r4 & 15;
   11574 	r4 = (r3 + r4)|0;
   11575 	r6 = (r4 + 4)|0;
   11576 	r4 = r4 >> 2;
   11577 	heap32[(r4)] = r3;
   11578 	r3 = r6;
   11579 }
   11580 	r4 = _ZTVN16btEmptyAlgorithm10CreateFuncE;
   11581 	r6 = r3 >> 2;
   11582 	r4 = (r4 + 8)|0;
   11583 	heap8[r3+4] = r8;
   11584 	heap32[(r6)] = r4;
   11585 	r4 = (r1 + 9)|0;
   11586 	heap32[(r5+15)] = r3;
   11587 	heap32[(r2)] = r4;
   11588 	heap32[(g0)] = 27;
   11589 	malloc(i7);
   11590 	r3 = r_g0;
   11591 	if(r3 !=0) //_LBB26_26
   11592 {
   11593 	r4 = (r3 + 4)|0;
   11594 	r4 = (r8 - r4)|0;
   11595 	r4 = r4 & 15;
   11596 	r4 = (r3 + r4)|0;
   11597 	r6 = (r4 + 4)|0;
   11598 	r4 = r4 >> 2;
   11599 	heap32[(r4)] = r3;
   11600 	r3 = r6;
   11601 }
   11602 	r4 = _ZTVN32btSphereSphereCollisionAlgorithm10CreateFuncE;
   11603 	r6 = r3 >> 2;
   11604 	r4 = (r4 + 8)|0;
   11605 	heap8[r3+4] = r8;
   11606 	heap32[(r6)] = r4;
   11607 	r4 = (r1 + 10)|0;
   11608 	heap32[(r5+16)] = r3;
   11609 	heap32[(r2)] = r4;
   11610 	heap32[(g0)] = 27;
   11611 	malloc(i7);
   11612 	r3 = r_g0;
   11613 	if(r3 !=0) //_LBB26_29
   11614 {
   11615 	r4 = (r3 + 4)|0;
   11616 	r4 = (r8 - r4)|0;
   11617 	r4 = r4 & 15;
   11618 	r4 = (r3 + r4)|0;
   11619 	r6 = (r4 + 4)|0;
   11620 	r4 = r4 >> 2;
   11621 	heap32[(r4)] = r3;
   11622 	r3 = r6;
   11623 }
   11624 	r4 = _ZTVN34btSphereTriangleCollisionAlgorithm10CreateFuncE;
   11625 	r6 = r3 >> 2;
   11626 	r4 = (r4 + 8)|0;
   11627 	heap8[r3+4] = r8;
   11628 	heap32[(r6)] = r4;
   11629 	r6 = (r1 + 11)|0;
   11630 	heap32[(r5+18)] = r3;
   11631 	heap32[(r2)] = r6;
   11632 	heap32[(g0)] = 27;
   11633 	malloc(i7);
   11634 	r3 = r_g0;
   11635 	if(r3 !=0) //_LBB26_32
   11636 {
   11637 	r6 = (r3 + 4)|0;
   11638 	r6 = (r8 - r6)|0;
   11639 	r6 = r6 & 15;
   11640 	r6 = (r3 + r6)|0;
   11641 	r7 = (r6 + 4)|0;
   11642 	r6 = r6 >> 2;
   11643 	heap32[(r6)] = r3;
   11644 	r3 = r7;
   11645 }
   11646 	r6 = r3 >> 2;
   11647 	heap8[r3+4] = r8;
   11648 	heap32[(r6)] = r4;
   11649 	r4 = 1;
   11650 	heap32[(r5+19)] = r3;
   11651 	r6 = (r1 + 12)|0;
   11652 	heap8[r3+4] = r4;
   11653 	heap32[(r2)] = r6;
   11654 	heap32[(g0)] = 27;
   11655 	malloc(i7);
   11656 	r3 = r_g0;
   11657 	if(r3 !=0) //_LBB26_35
   11658 {
   11659 	r6 = (r3 + 4)|0;
   11660 	r6 = (r8 - r6)|0;
   11661 	r6 = r6 & 15;
   11662 	r6 = (r3 + r6)|0;
   11663 	r7 = (r6 + 4)|0;
   11664 	r6 = r6 >> 2;
   11665 	heap32[(r6)] = r3;
   11666 	r3 = r7;
   11667 }
   11668 	r6 = _ZTVN26btBoxBoxCollisionAlgorithm10CreateFuncE;
   11669 	r7 = r3 >> 2;
   11670 	r6 = (r6 + 8)|0;
   11671 	heap8[r3+4] = r8;
   11672 	heap32[(r7)] = r6;
   11673 	r6 = (r1 + 13)|0;
   11674 	heap32[(r5+17)] = r3;
   11675 	heap32[(r2)] = r6;
   11676 	heap32[(g0)] = 35;
   11677 	malloc(i7);
   11678 	r3 = r_g0;
   11679 	if(r3 !=0) //_LBB26_38
   11680 {
   11681 	r6 = (r3 + 4)|0;
   11682 	r6 = (r8 - r6)|0;
   11683 	r6 = r6 & 15;
   11684 	r6 = (r3 + r6)|0;
   11685 	r7 = (r6 + 4)|0;
   11686 	r6 = r6 >> 2;
   11687 	heap32[(r6)] = r3;
   11688 	r3 = r7;
   11689 }
   11690 	r6 = _ZTVN31btConvexPlaneCollisionAlgorithm10CreateFuncE;
   11691 	r7 = r3 >> 2;
   11692 	r6 = (r6 + 8)|0;
   11693 	heap8[r3+4] = r8;
   11694 	heap32[(r7)] = r6;
   11695 	heap32[(r7+2)] = 1;
   11696 	heap32[(r7+3)] = 1;
   11697 	r7 = (r1 + 14)|0;
   11698 	heap32[(r5+21)] = r3;
   11699 	heap32[(r2)] = r7;
   11700 	heap32[(g0)] = 35;
   11701 	malloc(i7);
   11702 	r3 = r_g0;
   11703 	if(r3 !=0) //_LBB26_41
   11704 {
   11705 	r7 = (r3 + 4)|0;
   11706 	r7 = (r8 - r7)|0;
   11707 	r7 = r7 & 15;
   11708 	r7 = (r3 + r7)|0;
   11709 	r9 = (r7 + 4)|0;
   11710 	r7 = r7 >> 2;
   11711 	heap32[(r7)] = r3;
   11712 	r3 = r9;
   11713 }
   11714 	r7 = r3 >> 2;
   11715 	heap8[r3+4] = r8;
   11716 	heap32[(r7)] = r6;
   11717 	heap32[(r7+2)] = 1;
   11718 	heap32[(r7+3)] = 1;
   11719 	heap32[(r5+20)] = r3;
   11720 	heap8[r3+4] = r4;
   11721 	r3 = (r1 + 15)|0;
   11722 	heap8[r0+12] = r4;
   11723 	heap32[(r2)] = r3;
   11724 	heap32[(g0)] = 39;
   11725 	malloc(i7);
   11726 	r3 = r_g0;
   11727 	if(r3 !=0) //_LBB26_44
   11728 {
   11729 	r6 = (r3 + 4)|0;
   11730 	r6 = (r8 - r6)|0;
   11731 	r6 = r6 & 15;
   11732 	r6 = (r3 + r6)|0;
   11733 	r7 = (r6 + 4)|0;
   11734 	r6 = r6 >> 2;
   11735 	heap32[(r6)] = r3;
   11736 	r3 = r7;
   11737 }
   11738 	r6 = r3 >> 2;
   11739 	heap32[(r6+1)] = 0;
   11740 	heap32[(r6+3)] = 0;
   11741 	heap8[r3+16] = r8;
   11742 	heap32[(r6)] = 0;
   11743 	r7 = (r1 + 16)|0;
   11744 	heap32[(r6+2)] = 0;
   11745 	heap32[(r2)] = r7;
   11746 	heap32[(g0)] = 19;
   11747 	malloc(i7);
   11748 	r7 = r_g0;
   11749 	if(r7 !=0) //_LBB26_47
   11750 {
   11751 	r9 = (r7 + 4)|0;
   11752 	r9 = (r8 - r9)|0;
   11753 	r9 = r9 & 15;
   11754 	r9 = (r7 + r9)|0;
   11755 	r10 = (r9 + 4)|0;
   11756 	r9 = r9 >> 2;
   11757 	heap32[(r9)] = r7;
   11758 	r7 = r10;
   11759 }
   11760 	heap32[(r6)] = r7;
   11761 	heap32[(r6+1)] = 0;
   11762 	heap32[(r5+2)] = r3;
   11763 	r3 = (r1 + 17)|0;
   11764 	heap8[r0+20] = r4;
   11765 	heap32[(r2)] = r3;
   11766 	heap32[(g0)] = 39;
   11767 	malloc(i7);
   11768 	r3 = r_g0;
   11769 	if(r3 !=0) //_LBB26_50
   11770 {
   11771 	r6 = (r3 + 4)|0;
   11772 	r6 = (r8 - r6)|0;
   11773 	r6 = r6 & 15;
   11774 	r6 = (r3 + r6)|0;
   11775 	r7 = (r6 + 4)|0;
   11776 	r6 = r6 >> 2;
   11777 	heap32[(r6)] = r3;
   11778 	r3 = r7;
   11779 }
   11780 	r6 = r3 >> 2;
   11781 	heap32[(r6)] = 1140;
   11782 	r7 = (r1 + 18)|0;
   11783 	heap32[(r6+1)] = 4096;
   11784 	heap32[(r2)] = r7;
   11785 	heap32[(g0)] = 4669459;
   11786 	malloc(i7);
   11787 	r7 = r_g0;
   11788 	if(r7 !=0) //_LBB26_53
   11789 {
   11790 	r9 = (r7 + 4)|0;
   11791 	r9 = (r8 - r9)|0;
   11792 	r9 = r9 & 15;
   11793 	r9 = (r7 + r9)|0;
   11794 	r10 = (r9 + 4)|0;
   11795 	r9 = r9 >> 2;
   11796 	heap32[(r9)] = r7;
   11797 	r7 = r10;
   11798 }
   11799 	heap32[(r6+4)] = r7;
   11800 	r9 = 4095;
   11801 	r10 = 1140;
   11802 	heap32[(r6+3)] = r7;
   11803 	heap32[(r6+2)] = 4096;
   11804 	r11 = r7;
   11805 _55: while(true){
   11806 	r7 = r7 >> 2;
   11807 	r10 = (r11 + r10)|0;
   11808 	heap32[(r7)] = r10;
   11809 	r10 = heap32[(r6)];
   11810 	r7 = (r11 + r10)|0;
   11811 	r9 = (r9 + -1)|0;
   11812 	r11 = r7;
   11813 	if(r9 !=0) //_LBB26_55
   11814 {
   11815 continue _55;
   11816 }
   11817 else{
   11818 break _55;
   11819 }
   11820 }
   11821 	r6 = r7 >> 2;
   11822 	heap32[(r6)] = 0;
   11823 	heap32[(r5+4)] = r3;
   11824 	r3 = (r1 + 19)|0;
   11825 	heap8[r0+28] = r4;
   11826 	heap32[(r2)] = r3;
   11827 	heap32[(g0)] = 39;
   11828 	malloc(i7);
   11829 	r3 = r_g0;
   11830 	if(r3 !=0) //_LBB26_58
   11831 {
   11832 	r6 = (r3 + 4)|0;
   11833 	r6 = (r8 - r6)|0;
   11834 	r6 = r6 & 15;
   11835 	r6 = (r3 + r6)|0;
   11836 	r7 = (r6 + 4)|0;
   11837 	r6 = r6 >> 2;
   11838 	heap32[(r6)] = r3;
   11839 	r3 = r7;
   11840 }
   11841 	r6 = r3 >> 2;
   11842 	heap32[(r6)] = 80;
   11843 	r1 = (r1 + 20)|0;
   11844 	heap32[(r6+1)] = 4096;
   11845 	heap32[(r2)] = r1;
   11846 	heap32[(g0)] = 327699;
   11847 	malloc(i7);
   11848 	r1 = r_g0;
   11849 	if(r1 !=0) //_LBB26_61
   11850 {
   11851 	r7 = (r1 + 4)|0;
   11852 	r7 = (r8 - r7)|0;
   11853 	r7 = r7 & 15;
   11854 	r7 = (r1 + r7)|0;
   11855 	r9 = (r7 + 4)|0;
   11856 	r7 = r7 >> 2;
   11857 	heap32[(r7)] = r1;
   11858 	r1 = r9;
   11859 }
   11860 	heap32[(r6+4)] = r1;
   11861 	r7 = 4095;
   11862 	r9 = 80;
   11863 	heap32[(r6+3)] = r1;
   11864 	heap32[(r6+2)] = 4096;
   11865 	r10 = r1;
   11866 _64: while(true){
   11867 	r1 = r1 >> 2;
   11868 	r9 = (r10 + r9)|0;
   11869 	heap32[(r1)] = r9;
   11870 	r9 = heap32[(r6)];
   11871 	r1 = (r10 + r9)|0;
   11872 	r7 = (r7 + -1)|0;
   11873 	r10 = r1;
   11874 	if(r7 !=0) //_LBB26_63
   11875 {
   11876 continue _64;
   11877 }
   11878 else{
   11879 break _64;
   11880 }
   11881 }
   11882 	r1 = r1 >> 2;
   11883 	r6 = _ZL14benchmarkDemo4;
   11884 	heap32[(r1)] = 0;
   11885 	r1 = r6 >> 2;
   11886 	heap32[(r5+6)] = r3;
   11887 	heap32[(r1+16)] = r0;
   11888 	heap32[(g0)] = 5388;
   11889 	_Znwj(i7);
   11890 	r0 = r_g0;
   11891 	r3 = _ZTV21btCollisionDispatcher;
   11892 	r5 = heap32[(r1+16)];
   11893 	r3 = (r3 + 8)|0;
   11894 	r7 = r0 >> 2;
   11895 	heap32[(r7)] = r3;
   11896 	heap32[(r7+1)] = 2;
   11897 	heap8[r0+24] = r4;
   11898 	heap32[(r7+5)] = 0;
   11899 	r3 = _ZTV16btManifoldResult;
   11900 	heap32[(r7+3)] = 0;
   11901 	r3 = (r3 + 8)|0;
   11902 	heap32[(r7+4)] = 0;
   11903 	heap32[(r7+7)] = r3;
   11904 	r3 = _ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo__index__;
   11905 	heap32[(r7+1346)] = r5;
   11906 	heap32[(r7+47)] = r3;
   11907 	r3 = r5 >> 2;
   11908 	r9 = heap32[(r3)];
   11909 	r9 = r9 >> 2;
   11910 	r9 = heap32[(r9+3)];
   11911 	heap32[(g0)] = r5;
   11912 	__FUNCTION_TABLE__[(r9)>>2](i7);
   11913 	heap32[(r7+48)] = r_g0;
   11914 	r3 = heap32[(r3)];
   11915 	r3 = r3 >> 2;
   11916 	r3 = heap32[(r3+2)];
   11917 	heap32[(g0)] = r5;
   11918 	__FUNCTION_TABLE__[(r3)>>2](i7);
   11919 	r5 = (r0 + 200)|0;
   11920 	heap32[(r7+49)] = r_g0;
   11921 _67: while(true){
   11922 	if(r8 >35) //_LBB26_72
   11923 {
   11924 __label__ = 52;
   11925 break _67;
   11926 }
   11927 else{
   11928 	r3 = 0;
   11929 _70: while(true){
   11930 	if(r3 <36) //_LBB26_65
   11931 {
   11932 	r7 = r0 >> 2;
   11933 	r7 = heap32[(r7+1346)];
   11934 	r9 = r7 >> 2;
   11935 	r9 = heap32[(r9)];
   11936 	r9 = r9 >> 2;
   11937 	r9 = heap32[(r9+5)];
   11938 	r10 = r3 << 2;
   11939 	heap32[(g0)] = r7;
   11940 	heap32[(g0+1)] = r8;
   11941 	heap32[(g0+2)] = r3;
   11942 	r7 = (r5 + r10)|0;
   11943 	r7 = r7 >> 2;
   11944 	__FUNCTION_TABLE__[(r9)>>2](i7);
   11945 	r9 = r_g0;
   11946 	heap32[(r7)] = r9;
   11947 	if(r9 !=0) //_LBB26_67
   11948 {
   11949 	r3 = (r3 + 1)|0;
   11950 }
   11951 else{
   11952 __label__ = 46;
   11953 break _67;
   11954 }
   11955 }
   11956 else{
   11957 break _70;
   11958 }
   11959 }
   11960 	r8 = (r8 + 1)|0;
   11961 	r5 = (r5 + 144)|0;
   11962 continue _67;
   11963 }
   11964 }
   11965 switch(__label__ ){//multiple entries
   11966 case 52:
   11967 	heap32[(r1+14)] = r0;
   11968 	heap32[(g0)] = 76;
   11969 	_Znwj(i7);
   11970 	r0 = r_g0;
   11971 	heap32[(g0)] = r0;
   11972 	_ZN28btHashedOverlappingPairCacheC1Ev(i7);
   11973 	r3 = heap32[(r2)];
   11974 	r5 = (r3 + 1)|0;
   11975 	heap32[(r2)] = r5;
   11976 	heap32[(g0)] = 135;
   11977 	malloc(i7);
   11978 	r7 = r_g0;
   11979 	if(r7 !=0) //_LBB26_74
   11980 {
   11981 	r8 = 0;
   11982 	r9 = (r7 + 4)|0;
   11983 	r8 = (r8 - r9)|0;
   11984 	r8 = r8 & 15;
   11985 	r8 = (r7 + r8)|0;
   11986 	r9 = (r8 + 4)|0;
   11987 	r8 = r8 >> 2;
   11988 	heap32[(r8)] = r7;
   11989 	r7 = r9;
   11990 }
   11991 	r8 = _ZTV20btAxisSweep3InternalItE;
   11992 	r9 = r7 >> 2;
   11993 	r8 = (r8 + 8)|0;
   11994 	r10 = -2;
   11995 	heap32[(r9)] = r8;
   11996 	r8 = -1;
   11997 	heap16[(r7+4)>>1] = r10;
   11998 	heap16[(r7+6)>>1] = r8;
   11999 	heap32[(r9+23)] = r0;
   12000 	r8 = 0;
   12001 	heap32[(r9+24)] = 0;
   12002 	heap8[r7+100] = r8;
   12003 	heap32[(r9+26)] = 0;
   12004 	heap32[(r9+27)] = 0;
   12005 	if(r0 ==0) //_LBB26_77
   12006 {
   12007 	r5 = (r3 + 2)|0;
   12008 	heap32[(r2)] = r5;
   12009 	heap32[(g0)] = 95;
   12010 	malloc(i7);
   12011 	r5 = r_g0;
   12012 	if(r5 !=0) //_LBB26_79
   12013 {
   12014 	r0 = 0;
   12015 	r3 = (r5 + 4)|0;
   12016 	r0 = (r0 - r3)|0;
   12017 	r0 = r0 & 15;
   12018 	r0 = (r5 + r0)|0;
   12019 	r3 = (r0 + 4)|0;
   12020 	r0 = r0 >> 2;
   12021 	heap32[(r0)] = r5;
   12022 	r5 = r3;
   12023 }
   12024 	heap32[(g0)] = r5;
   12025 	_ZN28btHashedOverlappingPairCacheC1Ev(i7);
   12026 	heap32[(r9+23)] = r5;
   12027 	heap8[r7+100] = r4;
   12028 	r5 = heap32[(r2)];
   12029 }
   12030 	r0 = (r5 + 1)|0;
   12031 	heap32[(r2)] = r0;
   12032 	heap32[(g0)] = 43;
   12033 	malloc(i7);
   12034 	r0 = r_g0;
   12035 	if(r0 !=0) //_LBB26_83
   12036 {
   12037 	r3 = (r0 + 4)|0;
   12038 	r3 = (r8 - r3)|0;
   12039 	r3 = r3 & 15;
   12040 	r3 = (r0 + r3)|0;
   12041 	r10 = (r3 + 4)|0;
   12042 	r3 = r3 >> 2;
   12043 	heap32[(r3)] = r0;
   12044 	r0 = r10;
   12045 }
   12046 	r3 = _ZTV15btNullPairCache;
   12047 	r10 = r0 >> 2;
   12048 	r3 = (r3 + 8)|0;
   12049 	heap32[(r10)] = r3;
   12050 	heap8[r0+20] = r4;
   12051 	heap32[(r10+4)] = 0;
   12052 	heap32[(r10+2)] = 0;
   12053 	heap32[(r10+3)] = 0;
   12054 	r3 = (r5 + 2)|0;
   12055 	heap32[(r9+28)] = r0;
   12056 	heap32[(r2)] = r3;
   12057 	heap32[(g0)] = 175;
   12058 	malloc(i7);
   12059 	r10 = r_g0;
   12060 	if(r10 !=0) //_LBB26_86
   12061 {
   12062 	r11 = (r10 + 4)|0;
   12063 	r11 = (r8 - r11)|0;
   12064 	r11 = r11 & 15;
   12065 	r11 = (r10 + r11)|0;
   12066 	r12 = (r11 + 4)|0;
   12067 	r11 = r11 >> 2;
   12068 	heap32[(r11)] = r10;
   12069 	r10 = r12;
   12070 }
   12071 	r11 = _ZTV16btDbvtBroadphase;
   12072 	r12 = r10 >> 2;
   12073 	r11 = (r11 + 8)|0;
   12074 	heap32[(r12)] = r11;
   12075 _92: while(true){
   12076 	r11 = (r10 + r8)|0;
   12077 	r13 = r11 >> 2;
   12078 	heap8[r11+40] = r4;
   12079 	heap32[(r13+9)] = 0;
   12080 	heap32[(r13+7)] = 0;
   12081 	heap32[(r13+8)] = 0;
   12082 	heap32[(r13+1)] = 0;
   12083 	heap32[(r13+2)] = 0;
   12084 	heap32[(r13+3)] = -1;
   12085 	r8 = (r8 + 40)|0;
   12086 	heap32[(r13+4)] = 0;
   12087 	heap32[(r13+5)] = 0;
   12088 	if(r8 !=80) //_LBB26_88
   12089 {
   12090 continue _92;
   12091 }
   12092 else{
   12093 break _92;
   12094 }
   12095 }
   12096 	r8 = 0;
   12097 	r11 = r0 == r8;
   12098 	heap8[r10+153] = r8;
   12099 	r11 = r11 & 1;
   12100 	heap8[r10+154] = r4;
   12101 	heap8[r10+152] = r11;
   12102 	heap32[(r12+25)] = 0;
   12103 	heap32[(r12+26)] = 0;
   12104 	heap32[(r12+31)] = 0;
   12105 	heap32[(r12+27)] = 1;
   12106 	heap32[(r12+28)] = 0;
   12107 	heap32[(r12+29)] = 10;
   12108 	heap32[(r12+30)] = 1;
   12109 	heap32[(r12+32)] = 0;
   12110 	heap32[(r12+33)] = 0;
   12111 	heap32[(r12+34)] = 0;
   12112 	if(r0 ==0) //_LBB26_91
   12113 {
   12114 	r0 = (r5 + 3)|0;
   12115 	heap32[(r2)] = r0;
   12116 	heap32[(g0)] = 95;
   12117 	malloc(i7);
   12118 	r0 = r_g0;
   12119 	if(r0 !=0) //_LBB26_93
   12120 {
   12121 	r3 = 0;
   12122 	r5 = (r0 + 4)|0;
   12123 	r3 = (r3 - r5)|0;
   12124 	r3 = r3 & 15;
   12125 	r3 = (r0 + r3)|0;
   12126 	r5 = (r3 + 4)|0;
   12127 	r3 = r3 >> 2;
   12128 	heap32[(r3)] = r0;
   12129 	r0 = r5;
   12130 }
   12131 	heap32[(g0)] = r0;
   12132 	_ZN28btHashedOverlappingPairCacheC1Ev(i7);
   12133 	r3 = heap32[(r2)];
   12134 }
   12135 	heap32[(r12+24)] = r0;
   12136 	heap32[(r12+37)] = 0;
   12137 	heap32[(r12+35)] = 0;
   12138 	heap32[(r12+36)] = 0;
   12139 	heap32[(r12+21)] = 0;
   12140 	heap32[(r12+22)] = 0;
   12141 	heap32[(r12+23)] = 0;
   12142 	heap32[(r9+27)] = r10;
   12143 	heap8[r10+153] = r4;
   12144 	heap32[(r9+2)] = -998637568;
   12145 	heap32[(r9+3)] = -998637568;
   12146 	heap32[(r9+4)] = -998637568;
   12147 	heap32[(r9+5)] = 0;
   12148 	heap32[(r9+6)] = 1148846080;
   12149 	heap32[(r9+7)] = 1148846080;
   12150 	heap32[(r9+8)] = 1148846080;
   12151 	heap32[(r9+9)] = 0;
   12152 	r0 = heapU16[(r7+6)>>1];
   12153 	f0 = uint(r0); //fuitos r0, f0
   12154 	f1 =                      2000;
   12155 	f0 = f0/f1;
   12156 	heapFloat[(r9+10)] = f0;
   12157 	heapFloat[(r9+11)] = f0;
   12158 	heapFloat[(r9+12)] = f0;
   12159 	r0 = (r3 + 1)|0;
   12160 	heap32[(r9+13)] = 0;
   12161 	heap32[(r2)] = r0;
   12162 	heap32[(g0)] = 224083;
   12163 	malloc(i7);
   12164 	r0 = r_g0;
   12165 	if(r0 !=0) //_LBB26_97
   12166 {
   12167 	r5 = (r0 + 4)|0;
   12168 	r5 = (r8 - r5)|0;
   12169 	r5 = r5 & 15;
   12170 	r5 = (r0 + r5)|0;
   12171 	r10 = (r5 + 4)|0;
   12172 	r5 = r5 >> 2;
   12173 	heap32[(r5)] = r0;
   12174 	r0 = r10;
   12175 }
   12176 _103: while(true){
   12177 	r5 = r8 << 6;
   12178 	r5 = (r0 - r5)|0;
   12179 	r5 = r5 >> 2;
   12180 	r8 = (r8 + -1)|0;
   12181 	heap32[(r5)] = 0;
   12182 	heap32[(r5+2)] = 0;
   12183 	if(r8 !=-3501) //_LBB26_98
   12184 {
   12185 continue _103;
   12186 }
   12187 else{
   12188 break _103;
   12189 }
   12190 }
   12191 	r5 = 3501;
   12192 	heap32[(r9+15)] = r0;
   12193 	r8 = 0;
   12194 	heap16[(r7+58)>>1] = r5;
   12195 	r5 = -112;
   12196 	r10 = 2;
   12197 	heap16[(r7+56)>>1] = r8;
   12198 	heap16[(r7+64)>>1] = r4;
   12199 _106: while(true){
   12200 	r0 = (r0 - r5)|0;
   12201 	heap16[(r0)>>1] = r10;
   12202 	r5 = (r5 + -64)|0;
   12203 	r0 = heap32[(r9+15)];
   12204 	r10 = (r10 + 1)|0;
   12205 	if(r5 !=-224112) //_LBB26_100
   12206 {
   12207 continue _106;
   12208 }
   12209 else{
   12210 break _106;
   12211 }
   12212 }
   12213 	r3 = (r3 + 2)|0;
   12214 	heap16[(r0+224048)>>1] = r8;
   12215 _109: while(true){
   12216 	r0 = (r3 + r8)|0;
   12217 	heap32[(r2)] = r0;
   12218 	heap32[(g0)] = 28027;
   12219 	malloc(i7);
   12220 	r0 = r_g0;
   12221 	if(r0 !=0) //_LBB26_104
   12222 {
   12223 	r5 = 0;
   12224 	r10 = (r0 + 4)|0;
   12225 	r5 = (r5 - r10)|0;
   12226 	r5 = r5 & 15;
   12227 	r5 = (r0 + r5)|0;
   12228 	r10 = (r5 + 4)|0;
   12229 	r5 = r5 >> 2;
   12230 	heap32[(r5)] = r0;
   12231 	r0 = r10;
   12232 }
   12233 	r5 = r8 << 2;
   12234 	r5 = (r7 + r5)|0;
   12235 	r5 = r5 >> 2;
   12236 	r8 = (r8 + 1)|0;
   12237 	heap32[(r5+20)] = r0;
   12238 	heap32[(r5+17)] = r0;
   12239 	if(r8 !=3) //_LBB26_102
   12240 {
   12241 continue _109;
   12242 }
   12243 else{
   12244 break _109;
   12245 }
   12246 }
   12247 	r0 = heap32[(r9+15)];
   12248 	r0 = r0 >> 2;
   12249 	heap32[(r0)] = 0;
   12250 	r0 = heap32[(r9+15)];
   12251 	r3 = 0;
   12252 	heap16[(r0+48)>>1] = r3;
   12253 	r0 = heap32[(r9+15)];
   12254 	heap16[(r0+54)>>1] = r4;
   12255 	r0 = heap32[(r9+17)];
   12256 	heap16[(r0)>>1] = r3;
   12257 	r0 = heap32[(r9+17)];
   12258 	heap16[(r0+2)>>1] = r3;
   12259 	r0 = heap32[(r9+17)];
   12260 	r5 = heapU16[(r7+6)>>1];
   12261 	heap16[(r0+4)>>1] = r5;
   12262 	r0 = heap32[(r9+17)];
   12263 	heap16[(r0+6)>>1] = r3;
   12264 	r0 = heap32[(r9+15)];
   12265 	heap16[(r0+50)>>1] = r3;
   12266 	r0 = heap32[(r9+15)];
   12267 	heap16[(r0+56)>>1] = r4;
   12268 	r0 = heap32[(r9+18)];
   12269 	heap16[(r0)>>1] = r3;
   12270 	r0 = heap32[(r9+18)];
   12271 	heap16[(r0+2)>>1] = r3;
   12272 	r0 = heap32[(r9+18)];
   12273 	r5 = heapU16[(r7+6)>>1];
   12274 	heap16[(r0+4)>>1] = r5;
   12275 	r0 = heap32[(r9+18)];
   12276 	heap16[(r0+6)>>1] = r3;
   12277 	r0 = heap32[(r9+15)];
   12278 	heap16[(r0+52)>>1] = r3;
   12279 	r0 = heap32[(r9+15)];
   12280 	heap16[(r0+58)>>1] = r4;
   12281 	r0 = heap32[(r9+19)];
   12282 	heap16[(r0)>>1] = r3;
   12283 	r0 = heap32[(r9+19)];
   12284 	heap16[(r0+2)>>1] = r3;
   12285 	r0 = heap32[(r9+19)];
   12286 	r5 = heapU16[(r7+6)>>1];
   12287 	heap16[(r0+4)>>1] = r5;
   12288 	r0 = heap32[(r9+19)];
   12289 	r5 = _ZTV12btAxisSweep3;
   12290 	r5 = (r5 + 8)|0;
   12291 	heap16[(r0+6)>>1] = r3;
   12292 	heap32[(r9)] = r5;
   12293 	heap32[(r1+13)] = r7;
   12294 	heap32[(g0)] = 128;
   12295 	r0 = _ZTV35btSequentialImpulseConstraintSolver;
   12296 	_Znwj(i7);
   12297 	r7 = r_g0 >> 2;
   12298 	r0 = (r0 + 8)|0;
   12299 	heap32[(r7)] = r0;
   12300 	heap8[r_g0+20] = r4;
   12301 	heap32[(r7+4)] = 0;
   12302 	heap32[(r7+2)] = 0;
   12303 	heap32[(r7+3)] = 0;
   12304 	heap8[r_g0+40] = r4;
   12305 	heap32[(r7+9)] = 0;
   12306 	heap32[(r7+7)] = 0;
   12307 	heap32[(r7+8)] = 0;
   12308 	heap8[r_g0+60] = r4;
   12309 	heap32[(r7+14)] = 0;
   12310 	heap32[(r7+12)] = 0;
   12311 	heap32[(r7+13)] = 0;
   12312 	heap8[r_g0+80] = r4;
   12313 	heap32[(r7+19)] = 0;
   12314 	heap32[(r7+17)] = 0;
   12315 	heap32[(r7+18)] = 0;
   12316 	heap8[r_g0+100] = r4;
   12317 	heap32[(r7+24)] = 0;
   12318 	heap32[(r7+22)] = 0;
   12319 	heap32[(r7+23)] = 0;
   12320 	heap8[r_g0+120] = r4;
   12321 	heap32[(r7+29)] = 0;
   12322 	heap32[(r7+27)] = 0;
   12323 	heap32[(r7+28)] = 0;
   12324 	heap32[(r7+31)] = 0;
   12325 	heap32[(r1+15)] = r_g0;
   12326 	heap32[(g0)] = 272;
   12327 	_Znwj(i7);
   12328 	r5 = r_g0;
   12329 	r7 = heap32[(r1+16)];
   12330 	r8 = _ZTV16btCollisionWorld;
   12331 	r9 = heap32[(r1+15)];
   12332 	r10 = heap32[(r1+13)];
   12333 	r11 = heap32[(r1+14)];
   12334 	r8 = (r8 + 8)|0;
   12335 	r12 = r5 >> 2;
   12336 	heap32[(r12)] = r8;
   12337 	heap8[r5+20] = r4;
   12338 	heap32[(r12+4)] = 0;
   12339 	heap32[(r12+2)] = 0;
   12340 	heap32[(r12+3)] = 0;
   12341 	heap32[(r12+6)] = r11;
   12342 	heap32[(r12+7)] = 0;
   12343 	heap32[(r12+8)] = 0;
   12344 	heap32[(r12+9)] = 1;
   12345 	heap32[(r12+10)] = 1065353216;
   12346 	heap8[r5+44] = r3;
   12347 	heap32[(r12+12)] = 0;
   12348 	heap8[r5+52] = r3;
   12349 	heap8[r5+53] = r4;
   12350 	heap8[r5+54] = r4;
   12351 	heap32[(r12+14)] = 1025758986;
   12352 	heap8[r5+60] = r3;
   12353 	heap32[(r12+16)] = 0;
   12354 	heap8[r5+68] = r3;
   12355 	heap32[(r12+18)] = 0;
   12356 	heap32[(r12+20)] = r10;
   12357 	heap32[(r12+21)] = 0;
   12358 	r8 = r7 >> 2;
   12359 	heap8[r5+88] = r4;
   12360 	r8 = heap32[(r8)];
   12361 	r8 = r8 >> 2;
   12362 	r8 = heap32[(r8+4)];
   12363 	heap32[(g0)] = r7;
   12364 	__FUNCTION_TABLE__[(r8)>>2](i7);
   12365 	heap32[(r12+19)] = r_g0;
   12366 	heap32[(r12+18)] = r_g0;
   12367 	heap32[(r12+23)] = 0;
   12368 	heap32[(r12+24)] = 0;
   12369 	heap32[(r12+25)] = 0;
   12370 	heap32[(r12+26)] = 1058642330;
   12371 	heap32[(r12+27)] = 1065353216;
   12372 	heap32[(r12+28)] = 1050253722;
   12373 	heap32[(r12+30)] = 0;
   12374 	heap32[(r12+32)] = 1101004800;
   12375 	heap32[(r12+31)] = 10;
   12376 	heap32[(r12+34)] = 1045220557;
   12377 	heap32[(r12+35)] = 1036831949;
   12378 	heap32[(r12+36)] = 0;
   12379 	heap32[(r12+33)] = 1065353216;
   12380 	heap32[(r12+37)] = 0;
   12381 	heap32[(r12+38)] = -1130113270;
   12382 	heap32[(r12+39)] = 0;
   12383 	heap32[(r12+40)] = 1062836634;
   12384 	heap32[(r12+41)] = 260;
   12385 	r7 = _ZTV23btDiscreteDynamicsWorld;
   12386 	heap32[(r12+42)] = 2;
   12387 	r7 = (r7 + 8)|0;
   12388 	heap32[(r12+43)] = 128;
   12389 	heap32[(r12)] = r7;
   12390 	heap32[(r12+44)] = r9;
   12391 	heap8[r5+200] = r4;
   12392 	heap32[(r12+49)] = 0;
   12393 	heap32[(r12+47)] = 0;
   12394 	heap32[(r12+48)] = 0;
   12395 	heap8[r5+220] = r4;
   12396 	heap32[(r12+54)] = 0;
   12397 	heap32[(r12+52)] = 0;
   12398 	heap32[(r12+53)] = 0;
   12399 	heap32[(r12+56)] = 0;
   12400 	heap32[(r12+57)] = -1054867456;
   12401 	heap32[(r12+58)] = 0;
   12402 	heap32[(r12+59)] = 0;
   12403 	heap32[(r12+60)] = 0;
   12404 	heap8[r5+246] = r3;
   12405 	heap8[r5+264] = r4;
   12406 	heap32[(r12+65)] = 0;
   12407 	heap32[(r12+63)] = 0;
   12408 	heap32[(r12+64)] = 0;
   12409 	heap32[(r12+67)] = 0;
   12410 	if(r9 !=0) //_LBB26_111
   12411 {
   12412 	heap8[r5+245] = r3;
   12413 	r7 = heap32[(r2)];
   12414 }
   12415 else{
   12416 	r7 = heap32[(r2)];
   12417 	r7 = (r7 + 1)|0;
   12418 	heap32[(r2)] = r7;
   12419 	heap32[(g0)] = 147;
   12420 	malloc(i7);
   12421 	r8 = r_g0;
   12422 	if(r8 !=0) //_LBB26_109
   12423 {
   12424 	r9 = 0;
   12425 	r10 = (r8 + 4)|0;
   12426 	r9 = (r9 - r10)|0;
   12427 	r9 = r9 & 15;
   12428 	r9 = (r8 + r9)|0;
   12429 	r10 = (r9 + 4)|0;
   12430 	r9 = r9 >> 2;
   12431 	heap32[(r9)] = r8;
   12432 	r8 = r10;
   12433 }
   12434 	r9 = r8 >> 2;
   12435 	heap32[(r9)] = r0;
   12436 	heap8[r8+20] = r4;
   12437 	heap32[(r9+4)] = 0;
   12438 	heap32[(r9+2)] = 0;
   12439 	heap32[(r9+3)] = 0;
   12440 	heap8[r8+40] = r4;
   12441 	heap32[(r9+9)] = 0;
   12442 	heap32[(r9+7)] = 0;
   12443 	heap32[(r9+8)] = 0;
   12444 	heap8[r8+60] = r4;
   12445 	heap32[(r9+14)] = 0;
   12446 	heap32[(r9+12)] = 0;
   12447 	heap32[(r9+13)] = 0;
   12448 	heap8[r8+80] = r4;
   12449 	heap32[(r9+19)] = 0;
   12450 	heap32[(r9+17)] = 0;
   12451 	heap32[(r9+18)] = 0;
   12452 	heap8[r8+100] = r4;
   12453 	heap32[(r9+24)] = 0;
   12454 	heap32[(r9+22)] = 0;
   12455 	heap32[(r9+23)] = 0;
   12456 	heap8[r8+120] = r4;
   12457 	heap32[(r9+29)] = 0;
   12458 	heap32[(r9+27)] = 0;
   12459 	heap32[(r9+28)] = 0;
   12460 	r0 = r5 >> 2;
   12461 	heap32[(r9+31)] = 0;
   12462 	heap32[(r0+44)] = r8;
   12463 	heap8[r5+245] = r4;
   12464 }
   12465 	r0 = (r7 + 1)|0;
   12466 	heap32[(r2)] = r0;
   12467 	heap32[(g0)] = 87;
   12468 	malloc(i7);
   12469 	r0 = r_g0;
   12470 	if(r0 !=0) //_LBB26_114
   12471 {
   12472 	r7 = (r0 + 4)|0;
   12473 	r7 = (r3 - r7)|0;
   12474 	r7 = r7 & 15;
   12475 	r7 = (r0 + r7)|0;
   12476 	r8 = (r7 + 4)|0;
   12477 	r7 = r7 >> 2;
   12478 	heap32[(r7)] = r0;
   12479 	r0 = r8;
   12480 }
   12481 	r7 = _ZTV25btSimulationIslandManager;
   12482 	r8 = r0 >> 2;
   12483 	r7 = (r7 + 8)|0;
   12484 	heap32[(r8)] = r7;
   12485 	heap8[r0+20] = r4;
   12486 	heap32[(r8+4)] = 0;
   12487 	heap32[(r8+2)] = 0;
   12488 	heap32[(r8+3)] = 0;
   12489 	heap8[r0+40] = r4;
   12490 	heap32[(r8+9)] = 0;
   12491 	heap32[(r8+7)] = 0;
   12492 	heap32[(r8+8)] = 0;
   12493 	heap8[r0+60] = r4;
   12494 	heap32[(r8+14)] = 0;
   12495 	heap32[(r8+12)] = 0;
   12496 	heap32[(r8+13)] = 0;
   12497 	r7 = r5 >> 2;
   12498 	heap8[r0+64] = r4;
   12499 	heap32[(r7+45)] = r0;
   12500 	heap8[r5+244] = r4;
   12501 	heap32[(r1+1)] = r5;
   12502 	r0 = heap32[(r7+41)];
   12503 	r0 = r0 | 32;
   12504 	heap32[(r7+41)] = r0;
   12505 	heap32[(r7+31)] = 5;
   12506 	heap32[(r1+2)] = 0;
   12507 	r0 = heap32[(r1+1)];
   12508 	r5 = r0 >> 2;
   12509 	r5 = heap32[(r5)];
   12510 	r5 = r5 >> 2;
   12511 	r5 = heap32[(r5+17)];
   12512 	r7 = sp + -41280;
   12513 	r8 = r7 >> 2;
   12514 	heap32[(fp+-10320)] = 0;
   12515 	heap32[(r8+1)] = -1054867456;
   12516 	heap32[(r8+2)] = 0;
   12517 	heap32[(r8+3)] = 0;
   12518 	heap32[(g0)] = r0;
   12519 	heap32[(g0+1)] = r7;
   12520 	__FUNCTION_TABLE__[(r5)>>2](i7);
   12521 	r0 = heap32[(r1+17)];
   12522 	if(r0 <5) //_LBB26_117
   12523 {
   12524 	r0 = heap32[(r2)];
   12525 	r5 = (r0 + 1)|0;
   12526 	heap32[(r2)] = r5;
   12527 	heap32[(g0)] = 71;
   12528 	malloc(i7);
   12529 	r5 = r_g0;
   12530 	if(r5 !=0) //_LBB26_119
   12531 {
   12532 	r7 = 0;
   12533 	r8 = (r5 + 4)|0;
   12534 	r7 = (r7 - r8)|0;
   12535 	r7 = r7 & 15;
   12536 	r7 = (r5 + r7)|0;
   12537 	r8 = (r7 + 4)|0;
   12538 	r7 = r7 >> 2;
   12539 	heap32[(r7)] = r5;
   12540 	r5 = r8;
   12541 }
   12542 	r7 = r5 >> 2;
   12543 	heap32[(r7+2)] = 0;
   12544 	heap32[(r7+3)] = 1065353216;
   12545 	heap32[(r7+4)] = 1065353216;
   12546 	heap32[(r7+5)] = 1065353216;
   12547 	r8 = _ZTV10btBoxShape;
   12548 	heap32[(r7+6)] = 0;
   12549 	r8 = (r8 + 8)|0;
   12550 	heap32[(r7+11)] = 1025758986;
   12551 	heap32[(r7)] = r8;
   12552 	heap32[(r7+1)] = 0;
   12553 	heap32[(r7+7)] = 1132066243;
   12554 	heap32[(r7+8)] = 1112004362;
   12555 	heap32[(r7+9)] = 1132066243;
   12556 	heap32[(r7+10)] = 0;
   12557 	r7 = heap32[(r1+5)];
   12558 	r8 = heap32[(r1+4)];
   12559 	if(r7 ==r8) //_LBB26_122
   12560 {
   12561 	r9 = r8 << 1;
   12562 	r9 = r8 == 0 ? r4 : r9;
   12563 if(!(r7 >=r9)) //_LBB26_121
   12564 {
   12565 	if(r9 !=0) //_LBB26_125
   12566 {
   12567 	r7 = r9 << 2;
   12568 	r0 = (r0 + 2)|0;
   12569 	r7 = r7 | 3;
   12570 	heap32[(r2)] = r0;
   12571 	r0 = (r7 + 16)|0;
   12572 	heap32[(g0)] = r0;
   12573 	malloc(i7);
   12574 	r0 = r_g0;
   12575 	if(r0 !=0) //_LBB26_127
   12576 {
   12577 	r7 = 0;
   12578 	r10 = (r0 + 4)|0;
   12579 	r7 = (r7 - r10)|0;
   12580 	r7 = r7 & 15;
   12581 	r7 = (r0 + r7)|0;
   12582 	r10 = (r7 + 4)|0;
   12583 	r7 = r7 >> 2;
   12584 	heap32[(r7)] = r0;
   12585 	r0 = r10;
   12586 }
   12587 }
   12588 else{
   12589 	r0 = 0;
   12590 }
   12591 _138: do {
   12592 	if(r8 <1) //_LBB26_130
   12593 {
   12594 	r10 = heap32[(r1+6)];
   12595 }
   12596 else{
   12597 	r7 = 0;
   12598 _141: while(true){
   12599 	r10 = heap32[(r1+6)];
   12600 	r11 = r7 << 2;
   12601 	r12 = (r10 + r11)|0;
   12602 	r12 = r12 >> 2;
   12603 	r11 = (r0 + r11)|0;
   12604 	r12 = heap32[(r12)];
   12605 	r7 = (r7 + 1)|0;
   12606 	r11 = r11 >> 2;
   12607 	heap32[(r11)] = r12;
   12608 if(!(r8 !=r7)) //_LBB26_131
   12609 {
   12610 break _138;
   12611 }
   12612 }
   12613 }
   12614 } while(0);
   12615 	if(r10 !=0) //_LBB26_134
   12616 {
   12617 	r7 = heapU8[r6+28];
   12618 	if(r7 !=0) //_LBB26_136
   12619 {
   12620 	r8 = gNumAlignedFree;
   12621 	r8 = r8 >> 2;
   12622 	r7 = heap32[(r8)];
   12623 	r7 = (r7 + 1)|0;
   12624 	r10 = r10 >> 2;
   12625 	heap32[(r8)] = r7;
   12626 	r8 = heap32[(r10+-1)];
   12627 	heap32[(g0)] = r8;
   12628 	free(i7);
   12629 	r8 = heap32[(r1+4)];
   12630 }
   12631 	heap32[(r1+6)] = 0;
   12632 }
   12633 	heap8[r6+28] = r4;
   12634 	heap32[(r1+6)] = r0;
   12635 	heap32[(r1+5)] = r9;
   12636 }
   12637 }
   12638 	r0 = r8 << 2;
   12639 	r7 = heap32[(r1+6)];
   12640 	r0 = (r7 + r0)|0;
   12641 	r0 = r0 >> 2;
   12642 	heap32[(r0)] = r5;
   12643 	r0 = heap32[(r1+4)];
   12644 	r0 = (r0 + 1)|0;
   12645 	r7 = _ZGVZN11btTransform11getIdentityEvE17identityTransform;
   12646 	heap32[(r1+4)] = r0;
   12647 	r0 = heapU8[r7];
   12648 if(!(r0 !=0)) //_LBB26_143
   12649 {
   12650 	r0 = _ZGVZN11btMatrix3x311getIdentityEvE14identityMatrix;
   12651 	r8 = heapU8[r0];
   12652 if(!(r8 !=0)) //_LBB26_142
   12653 {
   12654 	r8 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0;
   12655 	r9 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1;
   12656 	r8 = r8 >> 2;
   12657 	r10 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2;
   12658 	r9 = r9 >> 2;
   12659 	heap32[(r8)] = 1065353216;
   12660 	r8 = r10 >> 2;
   12661 	heap32[(r9)] = 1065353216;
   12662 	heap32[(r8)] = 1065353216;
   12663 	heap8[r0] = r4;
   12664 }
   12665 	r0 = _ZZN11btTransform11getIdentityEvE17identityTransform;
   12666 	r8 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0;
   12667 	r0 = r0 >> 2;
   12668 	r8 = r8 >> 2;
   12669 	heap32[(r0)] = heap32[(r8)];
   12670 	heap32[(r0+1)] = 0;
   12671 	heap32[(r0+2)] = 0;
   12672 	r8 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1;
   12673 	heap32[(r0+3)] = 0;
   12674 	r8 = r8 >> 2;
   12675 	heap32[(r0+4)] = 0;
   12676 	heap32[(r0+5)] = heap32[(r8)];
   12677 	heap32[(r0+6)] = 0;
   12678 	heap32[(r0+7)] = 0;
   12679 	r8 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2;
   12680 	heap32[(r0+8)] = 0;
   12681 	r8 = r8 >> 2;
   12682 	heap32[(r0+9)] = 0;
   12683 	heap32[(r0+10)] = heap32[(r8)];
   12684 	heap32[(r0+11)] = 0;
   12685 	heap32[(r0+12)] = 0;
   12686 	heap32[(r0+13)] = 0;
   12687 	heap32[(r0+14)] = 0;
   12688 	heap32[(r0+15)] = 0;
   12689 	heap8[r7] = r4;
   12690 }
   12691 	heap32[(g0)] = 200;
   12692 	r0 = _ZTV20btDefaultMotionState;
   12693 	_Znwj(i7);
   12694 	r8 = r_g0 >> 2;
   12695 	r0 = (r0 + 8)|0;
   12696 	heap32[(r8)] = r0;
   12697 	heap32[(r8+1)] = 1065353216;
   12698 	heap32[(r8+2)] = 0;
   12699 	heap32[(r8+3)] = 0;
   12700 	heap32[(r8+4)] = 0;
   12701 	heap32[(r8+5)] = 0;
   12702 	heap32[(r8+6)] = 1065353216;
   12703 	heap32[(r8+7)] = 0;
   12704 	heap32[(r8+8)] = 0;
   12705 	heap32[(r8+9)] = 0;
   12706 	heap32[(r8+10)] = 0;
   12707 	heap32[(r8+11)] = 1065353216;
   12708 	heap32[(r8+12)] = 0;
   12709 	heap32[(r8+13)] = 0;
   12710 	heap32[(r8+14)] = -1035468800;
   12711 	r0 = _ZZN11btTransform11getIdentityEvE17identityTransform;
   12712 	heap32[(r8+15)] = 0;
   12713 	r0 = r0 >> 2;
   12714 	heap32[(r8+16)] = 0;
   12715 	heap32[(r8+17)] = heap32[(r0)];
   12716 	heap32[(r8+18)] = heap32[(r0+1)];
   12717 	heap32[(r8+19)] = heap32[(r0+2)];
   12718 	heap32[(r8+20)] = heap32[(r0+3)];
   12719 	heap32[(r8+21)] = heap32[(r0+4)];
   12720 	heap32[(r8+22)] = heap32[(r0+5)];
   12721 	heap32[(r8+23)] = heap32[(r0+6)];
   12722 	heap32[(r8+24)] = heap32[(r0+7)];
   12723 	heap32[(r8+25)] = heap32[(r0+8)];
   12724 	heap32[(r8+26)] = heap32[(r0+9)];
   12725 	heap32[(r8+27)] = heap32[(r0+10)];
   12726 	heap32[(r8+28)] = heap32[(r0+11)];
   12727 	heap32[(r8+29)] = heap32[(r0+12)];
   12728 	heap32[(r8+30)] = heap32[(r0+13)];
   12729 	heap32[(r8+31)] = heap32[(r0+14)];
   12730 	heap32[(r8+32)] = heap32[(r0+15)];
   12731 	heap32[(r8+33)] = 1065353216;
   12732 	heap32[(r8+34)] = 0;
   12733 	heap32[(r8+35)] = 0;
   12734 	heap32[(r8+36)] = 0;
   12735 	heap32[(r8+37)] = 0;
   12736 	heap32[(r8+38)] = 1065353216;
   12737 	heap32[(r8+39)] = 0;
   12738 	heap32[(r8+40)] = 0;
   12739 	heap32[(r8+41)] = 0;
   12740 	heap32[(r8+42)] = 0;
   12741 	heap32[(r8+43)] = 1065353216;
   12742 	heap32[(r8+44)] = 0;
   12743 	heap32[(r8+45)] = 0;
   12744 	heap32[(r8+46)] = -1035468800;
   12745 	heap32[(r8+47)] = 0;
   12746 	heap32[(r8+48)] = 0;
   12747 	r0 = sp + -41416;
   12748 	heap32[(r8+49)] = 0;
   12749 	r8 = r0 >> 2;
   12750 	heap32[(fp+-10354)] = 0;
   12751 	heap32[(r8+1)] = r_g0;
   12752 	heap32[(r8+18)] = r5;
   12753 	heap32[(r8+19)] = 0;
   12754 	heap32[(r8+20)] = 0;
   12755 	heap32[(r8+21)] = 0;
   12756 	heap32[(r8+22)] = 0;
   12757 	heap32[(r8+23)] = 0;
   12758 	heap32[(r8+24)] = 0;
   12759 	heap32[(r8+25)] = 1056964608;
   12760 	heap32[(r8+26)] = 0;
   12761 	heap32[(r8+27)] = 1061997773;
   12762 	r5 = 0;
   12763 	heap32[(r8+28)] = 1065353216;
   12764 	heap8[sp+-41300] = r5;
   12765 	heap32[(r8+30)] = 1000593162;
   12766 	heap32[(r8+31)] = 1008981770;
   12767 	heap32[(r8+32)] = 1008981770;
   12768 	heap32[(r8+33)] = 1008981770;
   12769 	heap32[(r8+2)] = 1065353216;
   12770 	heap32[(r8+3)] = 0;
   12771 	heap32[(r8+4)] = 0;
   12772 	heap32[(r8+5)] = 0;
   12773 	heap32[(r8+6)] = 0;
   12774 	heap32[(r8+7)] = 1065353216;
   12775 	heap32[(r8+8)] = 0;
   12776 	heap32[(r8+9)] = 0;
   12777 	heap32[(r8+10)] = 0;
   12778 	heap32[(r8+11)] = 0;
   12779 	heap32[(r8+12)] = 1065353216;
   12780 	heap32[(r8+13)] = 0;
   12781 	heap32[(r8+14)] = 0;
   12782 	heap32[(r8+15)] = 0;
   12783 	heap32[(r8+16)] = 0;
   12784 	heap32[(r8+17)] = 0;
   12785 	r7 = heap32[(r2)];
   12786 	r7 = (r7 + 1)|0;
   12787 	heap32[(r2)] = r7;
   12788 	heap32[(g0)] = 627;
   12789 	malloc(i7);
   12790 	r7 = r_g0;
   12791 	if(r7 !=0) //_LBB26_145
   12792 {
   12793 	r8 = (r7 + 4)|0;
   12794 	r5 = (r5 - r8)|0;
   12795 	r5 = r5 & 15;
   12796 	r5 = (r7 + r5)|0;
   12797 	r8 = (r5 + 4)|0;
   12798 	r5 = r5 >> 2;
   12799 	heap32[(r5)] = r7;
   12800 	r7 = r8;
   12801 }
   12802 	r5 = r7 >> 2;
   12803 	heap32[(r5+41)] = 1065353216;
   12804 	heap32[(r5+42)] = 1065353216;
   12805 	heap32[(r5+43)] = 1065353216;
   12806 	heap32[(r5+44)] = 0;
   12807 	heap32[(r5+45)] = 0;
   12808 	heap32[(r5+46)] = 1566444395;
   12809 	heap32[(r5+47)] = 0;
   12810 	heap32[(r5+48)] = 0;
   12811 	heap32[(r5+49)] = 0;
   12812 	heap32[(r5+50)] = 0;
   12813 	heap32[(r5+51)] = 1;
   12814 	heap32[(r5+52)] = -1;
   12815 	heap32[(r5+53)] = -1;
   12816 	heap32[(r5+54)] = 1;
   12817 	heap32[(r5+55)] = 0;
   12818 	heap32[(r5+56)] = 1056964608;
   12819 	heap32[(r5+57)] = 0;
   12820 	heap32[(r5+58)] = 1;
   12821 	heap32[(r5+59)] = 0;
   12822 	heap32[(r5+60)] = 1065353216;
   12823 	heap32[(r5+61)] = 0;
   12824 	heap32[(r5+62)] = 0;
   12825 	heap32[(r5+63)] = 0;
   12826 	heap32[(r5+1)] = 1065353216;
   12827 	heap32[(r5+2)] = 0;
   12828 	heap32[(r5+3)] = 0;
   12829 	heap32[(r5+4)] = 0;
   12830 	heap32[(r5+5)] = 0;
   12831 	heap32[(r5+6)] = 1065353216;
   12832 	heap32[(r5+7)] = 0;
   12833 	heap32[(r5+8)] = 0;
   12834 	heap32[(r5+9)] = 0;
   12835 	heap32[(r5+10)] = 0;
   12836 	heap32[(r5+11)] = 1065353216;
   12837 	heap32[(r5+12)] = 0;
   12838 	heap32[(r5+13)] = 0;
   12839 	heap32[(r5+14)] = 0;
   12840 	r8 = _ZTV11btRigidBody;
   12841 	heap32[(r5+15)] = 0;
   12842 	r8 = (r8 + 8)|0;
   12843 	heap32[(r5+16)] = 0;
   12844 	heap32[(r5)] = r8;
   12845 	heap8[r7+492] = r4;
   12846 	heap32[(r5+122)] = 0;
   12847 	heap32[(r5+120)] = 0;
   12848 	heap32[(r5+121)] = 0;
   12849 	heap32[(g0)] = r7;
   12850 	heap32[(g0+1)] = r0;
   12851 	_ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7);
   12852 	r0 = heap32[(r1+1)];
   12853 	r5 = r0 >> 2;
   12854 	r5 = heap32[(r5)];
   12855 	r5 = r5 >> 2;
   12856 	r5 = heap32[(r5+20)];
   12857 	heap32[(g0)] = r0;
   12858 	heap32[(g0+1)] = r7;
   12859 	__FUNCTION_TABLE__[(r5)>>2](i7);
   12860 	r0 = heap32[(r1+17)];
   12861 }
   12862 _161: do {
   12863 	if(r0 >3) //_LBB26_151
   12864 {
   12865 	if(r0 >5) //_LBB26_154
   12866 {
   12867 	if(r0 ==6) //_LBB26_325
   12868 {
   12869 	_ZN13BenchmarkDemo11createTest6Ev(i7);
   12870 	return;
   12871 }
   12872 else{
   12873 	if(r0 ==7) //_LBB26_326
   12874 {
   12875 	_ZN13BenchmarkDemo11createTest6Ev(i7);
   12876 	r0 = sp + -41264;
   12877 	heap32[(g0)] = 8;
   12878 	r1 = r0 >> 2;
   12879 	_Znwj(i7);
   12880 	heap32[(r1+10006)] = r_g0;
   12881 	heap32[(g0)] = r_g0;
   12882 	heap32[(g0+1)] = 0;
   12883 	gettimeofday(i7);
   12884 	heap32[(r1+10000)] = 0;
   12885 	heap32[(r1+10001)] = 0;
   12886 	heap32[(r1+10005)] = 0;
   12887 	heap32[(r1+10004)] = 9999;
   12888 	heap32[(r1+10003)] = 0;
   12889 	heap32[(r1+10002)] = 0;
   12890 	heap32[(r1+10007)] = 1092616192;
   12891 	heap32[(r1+10008)] = 0;
   12892 	heap32[(r1+10009)] = 0;
   12893 	heap32[(r1+10010)] = 1112014848;
   12894 	heap32[(r1+10011)] = 1065353216;
   12895 	f3 =                         0;
   12896 _169: while(true){
   12897 	f0 = r3; //fitos r3, f0
   12898 	f1 =      0.025132741779088974;
   12899 	f0 = f0*f1;
   12900 	f1 =                       0.5;
   12901 	f0 = f0*f1;
   12902 	heapFloat[(g0)] = f0;
   12903 	sinf(i7);
   12904 	f2 =                         1;
   12905 	f1 = f_g0/f2;
   12906 	f2 = f1*f3;
   12907 	heapFloat[(g0)] = f0;
   12908 	cosf(i7);
   12909 	f4 = -f2;
   12910 	f5 = f_g0*f3;
   12911 	f6 = f2*f3;
   12912 	f7 = f4-f2;
   12913 	f8 = f_g0+f2;
   12914 	f8 = f8-f6;
   12915 	f7 = f7-f6;
   12916 	f9 = f5+f2;
   12917 	f9 = f9-f6;
   12918 	f5 = f5+f6;
   12919 	f6 = f7*f4;
   12920 	f10 = f8*f_g0;
   12921 	f5 = f5-f1;
   12922 	f11 = f9*f_g0;
   12923 	f7 = f7*f1;
   12924 	f10 = f6+f10;
   12925 	f4 = f9*f4;
   12926 	r2 = r3 << 4;
   12927 	f0 = f5*f_g0;
   12928 	f7 = f11-f7;
   12929 	f9 = f5*f2;
   12930 	f10 = f10+f4;
   12931 	f5 = f5*f1;
   12932 	r2 = (r0 + r2)|0;
   12933 	f0 = f6+f0;
   12934 	f1 = f8*f1;
   12935 	f6 = f7-f9;
   12936 	f2 = f8*f2;
   12937 	f5 = f10+f5;
   12938 	f7 =                      2500;
   12939 	f0 = f0-f1;
   12940 	f1 = f6+f2;
   12941 	r2 = r2 >> 2;
   12942 	f2 = f5*f7;
   12943 	f0 = f0-f4;
   12944 	f1 = f1*f7;
   12945 	heapFloat[(r2+4000)] = f2;
   12946 	f0 = f0*f7;
   12947 	heapFloat[(r2+4001)] = f1;
   12948 	heapFloat[(r2+4002)] = f0;
   12949 	heap32[(r2+4003)] = 0;
   12950 	f1 = heapFloat[(r1+10008)];
   12951 	heapFloat[(r2)] = f1;
   12952 	heap32[(r2+1)] = 1112014848;
   12953 	heap32[(r2+2)] = 0;
   12954 	f1 = f1+f2;
   12955 	heap32[(r2+3)] = 0;
   12956 	f0 = f0+f3;
   12957 	heapFloat[(r2+2000)] = f1;
   12958 	heapFloat[(r2+2002)] = f0;
   12959 	heap32[(r2+2003)] = 0;
   12960 	heap32[(r2+2001)] = -998637568;
   12961 	heap32[(r2+8000)] = 1065353216;
   12962 	heap32[(r2+8001)] = 0;
   12963 	r3 = (r3 + 1)|0;
   12964 	heap32[(r2+8002)] = 0;
   12965 	heap32[(r2+8003)] = 0;
   12966 if(!(r3 !=500)) //_LBB26_327
   12967 {
   12968 break _169;
   12969 }
   12970 }
   12971 	r2 = _ZL10raycastBar;
   12972 	heap32[(g0)] = r2;
   12973 	heap32[(g0+1)] = r0;
   12974 	heap32[(g0+2)] = 8000;
   12975 	memcpy(i7);
   12976 	r3 = (r2 + 8000)|0;
   12977 	r4 = (r0 + 8000)|0;
   12978 	heap32[(g0)] = r3;
   12979 	heap32[(g0+1)] = r4;
   12980 	heap32[(g0+2)] = 8000;
   12981 	memcpy(i7);
   12982 	r3 = (r2 + 16000)|0;
   12983 	r4 = (r0 + 16000)|0;
   12984 	heap32[(g0)] = r3;
   12985 	heap32[(g0+1)] = r4;
   12986 	heap32[(g0+2)] = 8000;
   12987 	memcpy(i7);
   12988 	r3 = (r2 + 24000)|0;
   12989 	r4 = (r0 + 24000)|0;
   12990 	heap32[(g0)] = r3;
   12991 	heap32[(g0+1)] = r4;
   12992 	heap32[(g0+2)] = 8000;
   12993 	memcpy(i7);
   12994 	r3 = (r2 + 32000)|0;
   12995 	r0 = (r0 + 32000)|0;
   12996 	heap32[(g0)] = r3;
   12997 	heap32[(g0+1)] = r0;
   12998 	heap32[(g0+2)] = 8000;
   12999 	memcpy(i7);
   13000 	r0 = r2 >> 2;
   13001 	r2 = heap32[(r1+10000)];
   13002 	heap32[(r0+10000)] = r2;
   13003 	r2 = heap32[(r1+10001)];
   13004 	heap32[(r0+10001)] = r2;
   13005 	r2 = heap32[(r1+10002)];
   13006 	heap32[(r0+10002)] = r2;
   13007 	r2 = heap32[(r1+10003)];
   13008 	heap32[(r0+10003)] = r2;
   13009 	r2 = heap32[(r1+10004)];
   13010 	heap32[(r0+10004)] = r2;
   13011 	r2 = heap32[(r1+10005)];
   13012 	heap32[(r0+10005)] = r2;
   13013 	r2 = heap32[(r1+10006)];
   13014 	r2 = r2 >> 2;
   13015 	r3 = heap32[(r0+10006)];
   13016 	r4 = heap32[(r2+1)];
   13017 	r2 = heap32[(r2)];
   13018 	r3 = r3 >> 2;
   13019 	heap32[(r3)] = r2;
   13020 	heap32[(r3+1)] = r4;
   13021 	heap32[(r0+10007)] = heap32[(r1+10007)];
   13022 	heap32[(r0+10008)] = heap32[(r1+10008)];
   13023 	heap32[(r0+10009)] = heap32[(r1+10009)];
   13024 	heap32[(r0+10010)] = heap32[(r1+10010)];
   13025 	heap32[(r0+10011)] = heap32[(r1+10011)];
   13026 	r0 = heap32[(r1+10006)];
   13027 	heap32[(g0)] = r0;
   13028 	_ZdlPv(i7);
   13029 	return;
   13030 }
   13031 else{
   13032 break _161;
   13033 }
   13034 }
   13035 }
   13036 else{
   13037 	if(r0 ==4) //_LBB26_291
   13038 {
   13039 	r3 = heap32[(r2)];
   13040 	r3 = (r3 + 1)|0;
   13041 	heap32[(r2)] = r3;
   13042 	heap32[(g0)] = 127;
   13043 	malloc(i7);
   13044 	r2 = r_g0;
   13045 	if(r2 !=0) //_LBB26_293
   13046 {
   13047 	r3 = 0;
   13048 	r4 = (r2 + 4)|0;
   13049 	r3 = (r3 - r4)|0;
   13050 	r3 = r3 & 15;
   13051 	r3 = (r2 + r3)|0;
   13052 	r4 = (r3 + 4)|0;
   13053 	r3 = r3 >> 2;
   13054 	heap32[(r3)] = r2;
   13055 	r2 = r4;
   13056 }
   13057 	heap32[(g0)] = r2;
   13058 	heap32[(g0+1)] = 0;
   13059 	heap32[(g0+2)] = 0;
   13060 	r3 = r2 >> 2;
   13061 	_ZN17btConvexHullShapeC1EPKfii(i7);
   13062 	r4 = heap32[(r3)];
   13063 	r4 = r4 >> 2;
   13064 	r4 = heap32[(r4+6)];
   13065 	r0 = sp + -96;
   13066 	r5 = r0 >> 2;
   13067 	heap32[(fp+-24)] = 1065353216;
   13068 	heap32[(r5+1)] = 1065353216;
   13069 	heap32[(r5+2)] = 1065353216;
   13070 	heap32[(r5+3)] = 0;
   13071 	heap32[(g0)] = r2;
   13072 	heap32[(g0+1)] = r0;
   13073 	r0 = 0;
   13074 	__FUNCTION_TABLE__[(r4)>>2](i7);
   13075 _178: while(true){
   13076 	r4 = (r0 * -3)|0;
   13077 	r5 = _ZL7TaruVtx;
   13078 	r4 = r4 << 2;
   13079 	r4 = (r5 + r4)|0;
   13080 	r5 = sp + -80;
   13081 	r4 = r4 >> 2;
   13082 	r7 = r5 >> 2;
   13083 	heap32[(fp+-20)] = heap32[(r4)];
   13084 	heap32[(r7+1)] = heap32[(r4+1)];
   13085 	heap32[(r7+2)] = heap32[(r4+2)];
   13086 	heap32[(r7+3)] = 0;
   13087 	heap32[(g0)] = r2;
   13088 	heap32[(g0+1)] = r5;
   13089 	r0 = (r0 + -1)|0;
   13090 	_ZN17btConvexHullShape8addPointERK9btVector3(i7);
   13091 	if(r0 ==-43) //_LBB26_301
   13092 {
   13093 break _178;
   13094 }
   13095 }
   13096 	r4 = sp + -160;
   13097 	r0 = r4 >> 2;
   13098 	heap32[(fp+-40)] = 1065353216;
   13099 	heap32[(r0+1)] = 0;
   13100 	heap32[(r0+2)] = 0;
   13101 	heap32[(r0+3)] = 0;
   13102 	heap32[(r0+4)] = 0;
   13103 	heap32[(r0+5)] = 1065353216;
   13104 	heap32[(r0+6)] = 0;
   13105 	heap32[(r0+7)] = 0;
   13106 	heap32[(r0+8)] = 0;
   13107 	heap32[(r0+9)] = 0;
   13108 	heap32[(r0+10)] = 1065353216;
   13109 	heap32[(r0+11)] = 0;
   13110 	heap32[(r0+12)] = 0;
   13111 	heap32[(r0+13)] = 0;
   13112 	heap32[(r0+14)] = 0;
   13113 	r5 = sp + -176;
   13114 	heap32[(r0+15)] = 0;
   13115 	r7 = r5 >> 2;
   13116 	heap32[(fp+-44)] = 0;
   13117 	heap32[(r7+1)] = 0;
   13118 	heap32[(r7+2)] = 0;
   13119 	heap32[(r7+3)] = 0;
   13120 	r3 = heap32[(r3)];
   13121 	r3 = r3 >> 2;
   13122 	r7 = heap32[(r3+8)];
   13123 	heap32[(g0)] = r2;
   13124 	heap32[(g0+1)] = 1065353216;
   13125 	heap32[(g0+2)] = r5;
   13126 	r3 = 15;
   13127 	f0 =                         3;
   13128 	f2 =                       -18;
   13129 	f3 =                       1.5;
   13130 	__FUNCTION_TABLE__[(r7)>>2](i7);
   13131 	f1 = f0;
   13132 _181: while(true){
   13133 	f4 = f3+f0;
   13134 	r5 = 0;
   13135 	r7 = r5;
   13136 _183: while(true){
   13137 	f5 = r7; //fitos r7, f5
   13138 	f5 = f5*f4;
   13139 	f5 = f5+f2;
   13140 	r8 = r5;
   13141 _185: while(true){
   13142 	f6 = r8; //fitos r8, f6
   13143 	f6 = f6*f4;
   13144 	f6 = f6+f2;
   13145 	heapFloat[(r0+12)] = f6;
   13146 	heapFloat[(r0+13)] = f1;
   13147 	heapFloat[(r0+14)] = f5;
   13148 	heap32[(r0+15)] = 0;
   13149 	r9 = heap32[(r1)];
   13150 	r9 = r9 >> 2;
   13151 	r9 = heap32[(r9+2)];
   13152 	heap32[(g0)] = r6;
   13153 	heap32[(g0+1)] = 1065353216;
   13154 	heap32[(g0+2)] = r4;
   13155 	heap32[(g0+3)] = r2;
   13156 	r8 = (r8 + 1)|0;
   13157 	__FUNCTION_TABLE__[(r9)>>2](i7);
   13158 if(!(r8 !=8)) //_LBB26_298
   13159 {
   13160 break _185;
   13161 }
   13162 }
   13163 	r7 = (r7 + 1)|0;
   13164 if(!(r7 !=8)) //_LBB26_297
   13165 {
   13166 break _183;
   13167 }
   13168 }
   13169 	f4 =        1.0099999904632568;
   13170 	f5 =      -0.05000000074505806;
   13171 	f4 = f3*f4;
   13172 	f6 =                         3;
   13173 	f3 = f3*f5;
   13174 	f5 =                         7;
   13175 	f6 = f4+f6;
   13176 	f3 = f3*f5;
   13177 	r3 = (r3 + -1)|0;
   13178 	f1 = f1+f6;
   13179 	f2 = f3+f2;
   13180 	f3 = f4;
   13181 	if(r3 ==0) //_LBB26_165
   13182 {
   13183 break _161;
   13184 }
   13185 else{
   13186 continue _181;
   13187 }
   13188 }
   13189 }
   13190 else{
   13191 	if(r0 ==5) //_LBB26_302
   13192 {
   13193 	r3 = 10;
   13194 	f0 =                        20;
   13195 	f1 =                         2;
   13196 	f2 =                       -25;
   13197 _191: while(true){
   13198 	f3 =                         3;
   13199 	f4 =                        25;
   13200 	f5 = f1+f3;
   13201 	f4 = f0+f4;
   13202 	r0 = 0;
   13203 	r5 = r0;
   13204 _193: while(true){
   13205 	f6 = r5; //fitos r5, f6
   13206 	f6 = f6*f5;
   13207 	f6 = f6+f2;
   13208 	f7 =                         5;
   13209 	f6 = f6*f7;
   13210 	f8 =                         0;
   13211 	f6 = f6+f8;
   13212 	r7 = r0;
   13213 _195: while(true){
   13214 	r8 = _ZL8nextRand;
   13215 	r8 = r8 >> 2;
   13216 	r9 = heap32[(r8)];
   13217 	r9 = (r9 * 214013)|0;
   13218 	r9 = (r9 + 2531011)|0;
   13219 	r10 = sp + -64;
   13220 	heap32[(r8)] = r9;
   13221 	r8 = r10 >> 2;
   13222 	heap32[(fp+-16)] = 1065353216;
   13223 	heap32[(r8+1)] = 0;
   13224 	heap32[(r8+2)] = 0;
   13225 	heap32[(r8+3)] = 0;
   13226 	heap32[(r8+4)] = 0;
   13227 	heap32[(r8+5)] = 1065353216;
   13228 	heap32[(r8+6)] = 0;
   13229 	heap32[(r8+7)] = 0;
   13230 	f9 = r7; //fitos r7, f9
   13231 	heap32[(r8+8)] = 0;
   13232 	f9 = f9*f5;
   13233 	heap32[(r8+9)] = 0;
   13234 	f9 = f9+f2;
   13235 	heap32[(r8+10)] = 1065353216;
   13236 	f9 = f9*f7;
   13237 	f9 = f9+f8;
   13238 	heap32[(r8+11)] = 0;
   13239 	r9 = r9 >>> 16;
   13240 	heapFloat[(r8+12)] = f9;
   13241 	r9 = r9 & 32767;
   13242 	heapFloat[(r8+13)] = f4;
   13243 	r9 = Math.floor(uint(r9) % uint(9));
   13244 	heapFloat[(r8+14)] = f6;
   13245 	heap32[(r8+15)] = 0;
   13246 if(!(uint(r9) >uint(8))) //_LBB26_321
   13247 {
   13248 	r8 = r4 << r9;
   13249 	r11 = r8 & 7;
   13250 	if(r11 !=0) //_LBB26_309
   13251 {
   13252 	r8 = heap32[(r2)];
   13253 	r8 = (r8 + 1)|0;
   13254 	heap32[(r2)] = r8;
   13255 	r9 = (r9 + 1)|0;
   13256 	f9 = r9; //fitos r9, f9
   13257 	f10 =                       0.5;
   13258 	heap32[(g0)] = 71;
   13259 	f9 = f9*f10;
   13260 	f10 =                       1.5;
   13261 	malloc(i7);
   13262 	r9 = r_g0;
   13263 	f10 = f9*f10;
   13264 	if(r9 !=0) //_LBB26_311
   13265 {
   13266 	r8 = 0;
   13267 	r11 = (r9 + 4)|0;
   13268 	r8 = (r8 - r11)|0;
   13269 	r8 = r8 & 15;
   13270 	r8 = (r9 + r8)|0;
   13271 	r11 = (r8 + 4)|0;
   13272 	r8 = r8 >> 2;
   13273 	heap32[(r8)] = r9;
   13274 	r9 = r11;
   13275 }
   13276 	r8 = r9 >> 2;
   13277 	heap32[(r8+2)] = 0;
   13278 	heap32[(r8+3)] = 1065353216;
   13279 	heap32[(r8+4)] = 1065353216;
   13280 	heap32[(r8+5)] = 1065353216;
   13281 	r11 = _ZTV10btBoxShape;
   13282 	heap32[(r8+6)] = 0;
   13283 	r11 = (r11 + 8)|0;
   13284 	heap32[(r8+11)] = 1025758986;
   13285 	heap32[(r8)] = r11;
   13286 	f11 =     -0.039999999105930328;
   13287 	f10 = f10+f11;
   13288 	heap32[(r8+1)] = 0;
   13289 	heapFloat[(r8+7)] = f10;
   13290 	heapFloat[(r8+8)] = f10;
   13291 	heapFloat[(r8+9)] = f10;
   13292 	heap32[(r8+10)] = 0;
   13293 	r8 = heap32[(r1)];
   13294 	r8 = r8 >> 2;
   13295 	r8 = heap32[(r8+2)];
   13296 	heap32[(g0)] = r6;
   13297 	heapFloat[(g0+1)] = f9;
   13298 	heap32[(g0+2)] = r10;
   13299 	heap32[(g0+3)] = r9;
   13300 	__FUNCTION_TABLE__[(r8)>>2](i7);
   13301 }
   13302 else{
   13303 	r11 = r8 & 56;
   13304 	if(r11 !=0) //_LBB26_313
   13305 {
   13306 	r8 = heap32[(r2)];
   13307 	r8 = (r8 + 1)|0;
   13308 	heap32[(r2)] = r8;
   13309 	r9 = (r9 + -2)|0;
   13310 	heap32[(g0)] = 71;
   13311 	f9 = r9; //fitos r9, f9
   13312 	f10 =                       0.5;
   13313 	malloc(i7);
   13314 	r9 = r_g0;
   13315 	f9 = f9*f10;
   13316 	if(r9 !=0) //_LBB26_315
   13317 {
   13318 	r8 = 0;
   13319 	r11 = (r9 + 4)|0;
   13320 	r8 = (r8 - r11)|0;
   13321 	r8 = r8 & 15;
   13322 	r8 = (r9 + r8)|0;
   13323 	r11 = (r8 + 4)|0;
   13324 	r8 = r8 >> 2;
   13325 	heap32[(r8)] = r9;
   13326 	r9 = r11;
   13327 }
   13328 	r8 = r9 >> 2;
   13329 	heap32[(r8+2)] = 0;
   13330 	heap32[(r8+3)] = 1065353216;
   13331 	heap32[(r8+4)] = 1065353216;
   13332 	r11 = _ZTV13btSphereShape;
   13333 	heap32[(r8+5)] = 1065353216;
   13334 	r11 = (r11 + 8)|0;
   13335 	heap32[(r8+6)] = 0;
   13336 	heap32[(r8)] = r11;
   13337 	f10 =                       1.5;
   13338 	f10 = f9*f10;
   13339 	heap32[(r8+1)] = 8;
   13340 	heapFloat[(r8+7)] = f10;
   13341 	heapFloat[(r8+11)] = f10;
   13342 	r8 = heap32[(r1)];
   13343 	r8 = r8 >> 2;
   13344 	r8 = heap32[(r8+2)];
   13345 	heap32[(g0)] = r6;
   13346 	heapFloat[(g0+1)] = f9;
   13347 	heap32[(g0+2)] = r10;
   13348 	heap32[(g0+3)] = r9;
   13349 	__FUNCTION_TABLE__[(r8)>>2](i7);
   13350 }
   13351 else{
   13352 	r8 = r8 & 448;
   13353 	if(r8 !=0) //_LBB26_317
   13354 {
   13355 	r8 = heap32[(r2)];
   13356 	r8 = (r8 + 1)|0;
   13357 	heap32[(r2)] = r8;
   13358 	r8 = (r9 + -5)|0;
   13359 	heap32[(g0)] = 75;
   13360 	f9 = r8; //fitos r8, f9
   13361 	f10 =                       0.5;
   13362 	malloc(i7);
   13363 	r8 = r_g0;
   13364 	f9 = f9*f10;
   13365 	if(r8 !=0) //_LBB26_319
   13366 {
   13367 	r9 = 0;
   13368 	r11 = (r8 + 4)|0;
   13369 	r9 = (r9 - r11)|0;
   13370 	r9 = r9 & 15;
   13371 	r9 = (r8 + r9)|0;
   13372 	r11 = (r9 + 4)|0;
   13373 	r9 = r9 >> 2;
   13374 	heap32[(r9)] = r8;
   13375 	r8 = r11;
   13376 }
   13377 	r9 = r8 >> 2;
   13378 	heap32[(r9+2)] = 0;
   13379 	heap32[(r9+3)] = 1065353216;
   13380 	heap32[(r9+4)] = 1065353216;
   13381 	heap32[(r9+5)] = 1065353216;
   13382 	r11 = _ZTV14btCapsuleShape;
   13383 	heap32[(r9+6)] = 0;
   13384 	r11 = (r11 + 8)|0;
   13385 	heap32[(r9+11)] = 1025758986;
   13386 	heap32[(r9)] = r11;
   13387 	heap32[(r9+1)] = 10;
   13388 	heap32[(r9+13)] = 1;
   13389 	f11 = f9+f9;
   13390 	f10 = f11*f10;
   13391 	heapFloat[(r9+7)] = f9;
   13392 	heapFloat[(r9+8)] = f10;
   13393 	heapFloat[(r9+9)] = f9;
   13394 	heap32[(r9+10)] = 0;
   13395 	r9 = heap32[(r1)];
   13396 	r9 = r9 >> 2;
   13397 	r9 = heap32[(r9+2)];
   13398 	heap32[(g0)] = r6;
   13399 	heapFloat[(g0+1)] = f9;
   13400 	heap32[(g0+2)] = r10;
   13401 	heap32[(g0+3)] = r8;
   13402 	__FUNCTION_TABLE__[(r9)>>2](i7);
   13403 }
   13404 }
   13405 }
   13406 }
   13407 	r7 = (r7 + 1)|0;
   13408 if(!(r7 !=10)) //_LBB26_305
   13409 {
   13410 break _195;
   13411 }
   13412 }
   13413 	r5 = (r5 + 1)|0;
   13414 if(!(r5 !=10)) //_LBB26_304
   13415 {
   13416 break _193;
   13417 }
   13418 }
   13419 	f4 =        1.1000000238418579;
   13420 	f5 =      -0.05000000074505806;
   13421 	f4 = f1*f4;
   13422 	f1 = f1*f5;
   13423 	f5 =                         9;
   13424 	f3 = f4+f3;
   13425 	f1 = f1*f5;
   13426 	r3 = (r3 + -1)|0;
   13427 	f0 = f0+f3;
   13428 	f2 = f1+f2;
   13429 	f1 = f4;
   13430 if(!(r3 !=0)) //_LBB26_303
   13431 {
   13432 break _191;
   13433 }
   13434 }
   13435 	_ZN13BenchmarkDemo19createLargeMeshBodyEv(i7);
   13436 	return;
   13437 }
   13438 else{
   13439 break _161;
   13440 }
   13441 }
   13442 }
   13443 }
   13444 else{
   13445 	if(r0 ==1) //_LBB26_156
   13446 {
   13447 	r3 = heap32[(r2)];
   13448 	r3 = (r3 + 1)|0;
   13449 	heap32[(r2)] = r3;
   13450 	heap32[(g0)] = 71;
   13451 	malloc(i7);
   13452 	r2 = r_g0;
   13453 	if(r2 !=0) //_LBB26_158
   13454 {
   13455 	r3 = 0;
   13456 	r4 = (r2 + 4)|0;
   13457 	r3 = (r3 - r4)|0;
   13458 	r3 = r3 & 15;
   13459 	r3 = (r2 + r3)|0;
   13460 	r4 = (r3 + 4)|0;
   13461 	r3 = r3 >> 2;
   13462 	heap32[(r3)] = r2;
   13463 	r2 = r4;
   13464 }
   13465 	r3 = r2 >> 2;
   13466 	heap32[(r3+2)] = 0;
   13467 	heap32[(r3+3)] = 1065353216;
   13468 	heap32[(r3+4)] = 1065353216;
   13469 	heap32[(r3+5)] = 1065353216;
   13470 	r4 = _ZTV10btBoxShape;
   13471 	heap32[(r3+6)] = 0;
   13472 	r4 = (r4 + 8)|0;
   13473 	heap32[(r3+11)] = 1025758986;
   13474 	heap32[(r3)] = r4;
   13475 	heap32[(r3+1)] = 0;
   13476 	heap32[(r3+7)] = 1064682127;
   13477 	heap32[(r3+8)] = 1064682127;
   13478 	heap32[(r3+9)] = 1064682127;
   13479 	r4 = sp + -1152;
   13480 	heap32[(r3+10)] = 0;
   13481 	r3 = r4 >> 2;
   13482 	heap32[(fp+-288)] = 0;
   13483 	heap32[(r3+1)] = 0;
   13484 	heap32[(r3+2)] = 0;
   13485 	heap32[(r3+3)] = 0;
   13486 	heap32[(g0)] = r2;
   13487 	heap32[(g0+1)] = 1073741824;
   13488 	heap32[(g0+2)] = r4;
   13489 	_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i7);
   13490 	r3 = sp + -1216;
   13491 	r4 = r3 >> 2;
   13492 	heap32[(fp+-304)] = 1065353216;
   13493 	heap32[(r4+1)] = 0;
   13494 	heap32[(r4+2)] = 0;
   13495 	heap32[(r4+3)] = 0;
   13496 	heap32[(r4+4)] = 0;
   13497 	heap32[(r4+5)] = 1065353216;
   13498 	heap32[(r4+6)] = 0;
   13499 	heap32[(r4+7)] = 0;
   13500 	heap32[(r4+8)] = 0;
   13501 	heap32[(r4+9)] = 0;
   13502 	heap32[(r4+10)] = 1065353216;
   13503 	heap32[(r4+11)] = 0;
   13504 	heap32[(r4+12)] = 0;
   13505 	heap32[(r4+13)] = 0;
   13506 	r0 = 47;
   13507 	f0 =                       -12;
   13508 	f1 =                         2;
   13509 	heap32[(r4+14)] = 0;
   13510 	heap32[(r4+15)] = 0;
   13511 _225: while(true){
   13512 	r5 = 0;
   13513 	r7 = r5;
   13514 _227: while(true){
   13515 	f2 = r7; //fitos r7, f2
   13516 	f3 =                         3;
   13517 	f2 = f2*f3;
   13518 	f2 = f2+f0;
   13519 	r8 = r5;
   13520 _229: while(true){
   13521 	f4 = r8; //fitos r8, f4
   13522 	f4 = f4*f3;
   13523 	f4 = f4+f0;
   13524 	heapFloat[(r4+12)] = f4;
   13525 	heapFloat[(r4+13)] = f1;
   13526 	heapFloat[(r4+14)] = f2;
   13527 	heap32[(r4+15)] = 0;
   13528 	r9 = heap32[(r1)];
   13529 	r9 = r9 >> 2;
   13530 	r9 = heap32[(r9+2)];
   13531 	heap32[(g0)] = r6;
   13532 	heap32[(g0+1)] = 1073741824;
   13533 	heap32[(g0+2)] = r3;
   13534 	heap32[(g0+3)] = r2;
   13535 	r8 = (r8 + 1)|0;
   13536 	__FUNCTION_TABLE__[(r9)>>2](i7);
   13537 if(!(r8 !=8)) //_LBB26_161
   13538 {
   13539 break _229;
   13540 }
   13541 }
   13542 	r7 = (r7 + 1)|0;
   13543 if(!(r7 !=8)) //_LBB26_160
   13544 {
   13545 break _227;
   13546 }
   13547 }
   13548 	f2 =      -0.34999999403953552;
   13549 	r0 = (r0 + -1)|0;
   13550 	f1 = f1+f3;
   13551 	f0 = f0+f2;
   13552 	if(r0 ==0) //_LBB26_165
   13553 {
   13554 break _161;
   13555 }
   13556 else{
   13557 continue _225;
   13558 }
   13559 }
   13560 }
   13561 else{
   13562 	if(r0 ==2) //_LBB26_166
   13563 {
   13564 	r3 = heap32[(r2)];
   13565 	r3 = (r3 + 1)|0;
   13566 	heap32[(r2)] = r3;
   13567 	heap32[(g0)] = 71;
   13568 	malloc(i7);
   13569 	r3 = r_g0;
   13570 	if(r3 !=0) //_LBB26_168
   13571 {
   13572 	r4 = 0;
   13573 	r0 = (r3 + 4)|0;
   13574 	r4 = (r4 - r0)|0;
   13575 	r4 = r4 & 15;
   13576 	r4 = (r3 + r4)|0;
   13577 	r0 = (r4 + 4)|0;
   13578 	r4 = r4 >> 2;
   13579 	heap32[(r4)] = r3;
   13580 	r3 = r0;
   13581 }
   13582 	r4 = r3 >> 2;
   13583 	heap32[(r4+2)] = 0;
   13584 	heap32[(r4+3)] = 1065353216;
   13585 	heap32[(r4+4)] = 1065353216;
   13586 	heap32[(r4+5)] = 1065353216;
   13587 	r0 = _ZTV10btBoxShape;
   13588 	heap32[(r4+6)] = 0;
   13589 	r0 = (r0 + 8)|0;
   13590 	heap32[(r4+11)] = 1025758986;
   13591 	heap32[(r4)] = r0;
   13592 	heap32[(r4+1)] = 0;
   13593 	heap32[(r4+7)] = 1064682127;
   13594 	heap32[(r4+8)] = 1064682127;
   13595 	heap32[(r4+9)] = 1064682127;
   13596 	r5 = sp + -1024;
   13597 	heap32[(r4+10)] = 0;
   13598 	r4 = r5 >> 2;
   13599 	heap32[(fp+-256)] = 1065353216;
   13600 	heap32[(r4+1)] = 0;
   13601 	heap32[(r4+2)] = 0;
   13602 	heap32[(r4+3)] = 0;
   13603 	heap32[(r4+4)] = 0;
   13604 	heap32[(r4+5)] = 1065353216;
   13605 	heap32[(r4+6)] = 0;
   13606 	heap32[(r4+7)] = 0;
   13607 	heap32[(r4+8)] = 0;
   13608 	heap32[(r4+9)] = 0;
   13609 	heap32[(r4+10)] = 1065353216;
   13610 	heap32[(r4+11)] = 0;
   13611 	heap32[(r4+12)] = 0;
   13612 	heap32[(r4+13)] = 0;
   13613 	heap32[(r4+14)] = 0;
   13614 	r7 = sp + -1040;
   13615 	heap32[(r4+15)] = 0;
   13616 	r8 = r7 >> 2;
   13617 	heap32[(fp+-260)] = 0;
   13618 	heap32[(r8+1)] = 0;
   13619 	heap32[(r8+2)] = 0;
   13620 	heap32[(r8+3)] = 0;
   13621 	heap32[(g0)] = r3;
   13622 	heap32[(g0+1)] = 1065353216;
   13623 	heap32[(g0+2)] = r7;
   13624 	r7 = 12;
   13625 	f0 =       -12.240598678588867;
   13626 	f1 =                         1;
   13627 	_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i7);
   13628 	f2 = f0;
   13629 	f8 =                       -20;
   13630 _239: while(true){
   13631 if(!(r7 <1)) //_LBB26_173
   13632 {
   13633 	f4 =                         0;
   13634 	f3 = f1+f4;
   13635 	r8 = 0;
   13636 	r9 = r8;
   13637 _243: while(true){
   13638 	f5 = r9; //fitos r9, f5
   13639 	f6 =        2.0400998592376709;
   13640 	f5 = f5*f6;
   13641 	f5 = f5+f0;
   13642 	f5 = f5+f4;
   13643 	r10 = r8;
   13644 _245: while(true){
   13645 	f7 = r10; //fitos r10, f7
   13646 	f7 = f7*f6;
   13647 	f7 = f7+f2;
   13648 	f7 = f7+f8;
   13649 	heapFloat[(r4+12)] = f7;
   13650 	heapFloat[(r4+13)] = f3;
   13651 	heapFloat[(r4+14)] = f5;
   13652 	heap32[(r4+15)] = 0;
   13653 	r11 = heap32[(r1)];
   13654 	r11 = r11 >> 2;
   13655 	r11 = heap32[(r11+2)];
   13656 	heap32[(g0)] = r6;
   13657 	heap32[(g0+1)] = 1065353216;
   13658 	heap32[(g0+2)] = r5;
   13659 	heap32[(g0+3)] = r3;
   13660 	r10 = (r10 + 1)|0;
   13661 	__FUNCTION_TABLE__[(r11)>>2](i7);
   13662 if(!(r7 !=r10)) //_LBB26_171
   13663 {
   13664 break _245;
   13665 }
   13666 }
   13667 	r9 = (r9 + 1)|0;
   13668 if(!(r7 !=r9)) //_LBB26_170
   13669 {
   13670 break _243;
   13671 }
   13672 }
   13673 }
   13674 	f3 =        2.0400998592376709;
   13675 	f4 =        1.0199999809265137;
   13676 	r7 = (r7 + -1)|0;
   13677 	f1 = f1+f3;
   13678 	f0 = f0+f4;
   13679 	f2 = f2+f4;
   13680 	if(r7 ==0) //_LBB26_176
   13681 {
   13682 break _239;
   13683 }
   13684 }
   13685 	r3 = sp + -1136;
   13686 	r4 = r3 >> 2;
   13687 	heap32[(fp+-284)] = 1065353216;
   13688 	heap32[(r4+1)] = 1065353216;
   13689 	heap32[(r4+2)] = 1065353216;
   13690 	r5 = sp + -1120;
   13691 	heap32[(r4+3)] = 0;
   13692 	r4 = r5 >> 2;
   13693 	heap32[(fp+-280)] = -1073741824;
   13694 	heap32[(r4+1)] = 0;
   13695 	heap32[(r4+2)] = 0;
   13696 	heap32[(r4+3)] = 0;
   13697 	heap32[(g0)] = r5;
   13698 	heap32[(g0+1)] = r3;
   13699 	r3 = sp + -1104;
   13700 	_ZN13BenchmarkDemo10createWallERK9btVector3iS2_(i7);
   13701 	r4 = r3 >> 2;
   13702 	heap32[(fp+-276)] = 1065353216;
   13703 	heap32[(r4+1)] = 1065353216;
   13704 	heap32[(r4+2)] = 1065353216;
   13705 	r5 = sp + -1088;
   13706 	heap32[(r4+3)] = 0;
   13707 	r4 = r5 >> 2;
   13708 	heap32[(fp+-272)] = 1082130432;
   13709 	heap32[(r4+1)] = 0;
   13710 	heap32[(r4+2)] = 0;
   13711 	heap32[(r4+3)] = 0;
   13712 	heap32[(g0)] = r5;
   13713 	heap32[(g0+1)] = r3;
   13714 	r3 = sp + -1072;
   13715 	_ZN13BenchmarkDemo10createWallERK9btVector3iS2_(i7);
   13716 	r4 = r3 >> 2;
   13717 	heap32[(fp+-268)] = 1065353216;
   13718 	heap32[(r4+1)] = 1065353216;
   13719 	heap32[(r4+2)] = 1065353216;
   13720 	r5 = sp + -1056;
   13721 	heap32[(r4+3)] = 0;
   13722 	r4 = r5 >> 2;
   13723 	heap32[(fp+-264)] = 1092616192;
   13724 	heap32[(r4+1)] = 0;
   13725 	heap32[(r4+2)] = 0;
   13726 	heap32[(r4+3)] = 0;
   13727 	heap32[(g0)] = r5;
   13728 	heap32[(g0+1)] = r3;
   13729 	_ZN13BenchmarkDemo10createWallERK9btVector3iS2_(i7);
   13730 	r3 = heap32[(r2)];
   13731 	r3 = (r3 + 1)|0;
   13732 	heap32[(r2)] = r3;
   13733 	heap32[(g0)] = 71;
   13734 	malloc(i7);
   13735 	r2 = r_g0;
   13736 	if(r2 !=0) //_LBB26_178
   13737 {
   13738 	r3 = 0;
   13739 	r4 = (r2 + 4)|0;
   13740 	r3 = (r3 - r4)|0;
   13741 	r3 = r3 & 15;
   13742 	r3 = (r2 + r3)|0;
   13743 	r4 = (r3 + 4)|0;
   13744 	r3 = r3 >> 2;
   13745 	heap32[(r3)] = r2;
   13746 	r2 = r4;
   13747 }
   13748 	r3 = r2 >> 2;
   13749 	heap32[(r3+2)] = 0;
   13750 	heap32[(r3+3)] = 1065353216;
   13751 	heap32[(r3+4)] = 1065353216;
   13752 	heap32[(r3+5)] = 1065353216;
   13753 	heap32[(r3+6)] = 0;
   13754 	heap32[(r3+11)] = 1025758986;
   13755 	heap32[(r3)] = r0;
   13756 	heap32[(r3+1)] = 0;
   13757 	heap32[(r3+7)] = 1064682127;
   13758 	heap32[(r3+8)] = 1064682127;
   13759 	heap32[(r3+9)] = 1064682127;
   13760 	r4 = sp + -944;
   13761 	heap32[(r3+10)] = 0;
   13762 	r3 = r4 >> 2;
   13763 	heap32[(fp+-236)] = 1065353216;
   13764 	heap32[(r3+1)] = 0;
   13765 	heap32[(r3+2)] = 0;
   13766 	heap32[(r3+3)] = 0;
   13767 	heap32[(r3+4)] = 0;
   13768 	heap32[(r3+5)] = 1065353216;
   13769 	heap32[(r3+6)] = 0;
   13770 	heap32[(r3+7)] = 0;
   13771 	heap32[(r3+8)] = 0;
   13772 	heap32[(r3+9)] = 0;
   13773 	heap32[(r3+10)] = 1065353216;
   13774 	heap32[(r3+11)] = 0;
   13775 	heap32[(r3+12)] = 0;
   13776 	heap32[(r3+13)] = 0;
   13777 	heap32[(r3+14)] = 0;
   13778 	r0 = sp + -960;
   13779 	heap32[(r3+15)] = 0;
   13780 	r5 = r0 >> 2;
   13781 	heap32[(fp+-240)] = 0;
   13782 	heap32[(r5+1)] = 0;
   13783 	heap32[(r5+2)] = 0;
   13784 	heap32[(r5+3)] = 0;
   13785 	heap32[(g0)] = r2;
   13786 	heap32[(g0+1)] = 1065353216;
   13787 	heap32[(g0+2)] = r0;
   13788 	r0 = 8;
   13789 	f0 =                         1;
   13790 	f1 =                         0;
   13791 	_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i7);
   13792 	f2 = f1;
   13793 	f3 = f0;
   13794 	f4 = f1;
   13795 _253: while(true){
   13796 	r5 = 24;
   13797 _255: while(true){
   13798 	f5 =        9.9312677383422852;
   13799 	f6 =                         0;
   13800 	f7 = f3*f0;
   13801 	f8 = f4*f6;
   13802 	f9 = f3*f5;
   13803 	f10 = f1*f6;
   13804 	f7 = f8+f7;
   13805 	f11 = f2*f5;
   13806 	f9 = f10+f9;
   13807 	f12 = f2*f0;
   13808 	f13 = f1*f0;
   13809 	f14 = f2*f6;
   13810 	f7 = f7+f11;
   13811 	f9 = f9-f12;
   13812 	f11 = f13+f14;
   13813 	f12 = f4*f5;
   13814 	f5 = f1*f5;
   13815 	f13 = f4*f0;
   13816 	f11 = f11-f12;
   13817 	f12 = f4*f4;
   13818 	f15 = f3*f3;
   13819 	f16 = f4*f7;
   13820 	f17 = f1*f9;
   13821 	f5 = f5+f13;
   13822 	f13 = f3*f6;
   13823 	f5 = f5-f13;
   13824 	f12 = f12+f15;
   13825 	f15 = f2*f2;
   13826 	f18 = f3*f7;
   13827 	f19 = f1*f11;
   13828 	f16 = f16+f17;
   13829 	f17 = f2*f11;
   13830 	f12 = f12+f15;
   13831 	f15 = f1*f1;
   13832 	f7 = f2*f7;
   13833 	f20 = f1*f5;
   13834 	f18 = f18+f19;
   13835 	f19 = f4*f5;
   13836 	f16 = f16-f17;
   13837 	f5 = f3*f5;
   13838 	f17 =                         2;
   13839 	f12 = f12+f15;
   13840 	f7 = f7+f20;
   13841 	f15 = f3*f9;
   13842 	f18 = f18-f19;
   13843 	f9 = f2*f9;
   13844 	f5 = f16+f5;
   13845 	f16 =                        25;
   13846 	f12 = f17/f12;
   13847 	f9 = f18+f9;
   13848 	f5 = f5+f16;
   13849 	f7 = f7-f15;
   13850 	f11 = f4*f11;
   13851 	f15 = f2*f12;
   13852 	f16 = f3*f12;
   13853 	f7 = f7+f11;
   13854 	f9 = f9+f6;
   13855 	heapFloat[(r3+12)] = f5;
   13856 	f5 = f3*f16;
   13857 	f11 = f2*f15;
   13858 	f7 = f7+f6;
   13859 	heapFloat[(r3+13)] = f9;
   13860 	heapFloat[(r3+14)] = f7;
   13861 	f7 =                         1;
   13862 	f9 = f5+f11;
   13863 	f18 = f4*f16;
   13864 	f19 = f1*f15;
   13865 	f9 = f7-f9;
   13866 	heap32[(r3+15)] = 0;
   13867 	f20 = f4*f15;
   13868 	f16 = f1*f16;
   13869 	f21 = f18-f19;
   13870 	heapFloat[(fp+-236)] = f9;
   13871 	f9 = f4*f12;
   13872 	f12 = f20+f16;
   13873 	heapFloat[(r3+1)] = f21;
   13874 	f21 = f4*f9;
   13875 	heapFloat[(r3+2)] = f12;
   13876 	f11 = f21+f11;
   13877 	f12 = f18+f19;
   13878 	heap32[(r3+3)] = 0;
   13879 	f15 = f3*f15;
   13880 	f9 = f1*f9;
   13881 	f11 = f7-f11;
   13882 	heapFloat[(r3+4)] = f12;
   13883 	f12 = f15-f9;
   13884 	heapFloat[(r3+5)] = f11;
   13885 	heapFloat[(r3+6)] = f12;
   13886 	f11 = f20-f16;
   13887 	heap32[(r3+7)] = 0;
   13888 	f5 = f21+f5;
   13889 	f9 = f15+f9;
   13890 	heapFloat[(r3+8)] = f11;
   13891 	f5 = f7-f5;
   13892 	heapFloat[(r3+9)] = f9;
   13893 	heapFloat[(r3+10)] = f5;
   13894 	heap32[(r3+11)] = 0;
   13895 	r7 = heap32[(r1)];
   13896 	r7 = r7 >> 2;
   13897 	f5 =       0.99144488573074341;
   13898 	f7 =       0.13052619993686676;
   13899 	r7 = heap32[(r7+2)];
   13900 	f9 = f1*f5;
   13901 	f11 = f2*f5;
   13902 	f12 = f4*f5;
   13903 	f1 = f1*f7;
   13904 	f5 = f3*f5;
   13905 	f1 = f1+f5;
   13906 	f5 = f10+f12;
   13907 	f9 = f9-f8;
   13908 	f3 = f3*f7;
   13909 	f10 = f10+f11;
   13910 	f4 = f4*f7;
   13911 	f3 = f9-f3;
   13912 	f4 = f10+f4;
   13913 	f9 = f1+f14;
   13914 	heap32[(g0)] = r6;
   13915 	heap32[(g0+1)] = 1065353216;
   13916 	heap32[(g0+2)] = r4;
   13917 	heap32[(g0+3)] = r2;
   13918 	f5 = f5+f13;
   13919 	f7 = f2*f7;
   13920 	r5 = (r5 + -1)|0;
   13921 	f1 = f3-f14;
   13922 	f2 = f4-f13;
   13923 	f3 = f9-f8;
   13924 	f4 = f5-f7;
   13925 	__FUNCTION_TABLE__[(r7)>>2](i7);
   13926 if(!(r5 !=0)) //_LBB26_180
   13927 {
   13928 break _255;
   13929 }
   13930 }
   13931 	f5 =       0.99785894155502319;
   13932 	f7 =      0.065403133630752563;
   13933 	f8 = f4*f5;
   13934 	f9 = f1*f6;
   13935 	f10 = f2*f5;
   13936 	f11 = f1*f7;
   13937 	f12 = f3*f5;
   13938 	f1 = f1*f5;
   13939 	f5 = f4*f6;
   13940 	f8 = f9+f8;
   13941 	f13 = f3*f6;
   13942 	f11 = f11+f12;
   13943 	f6 = f2*f6;
   13944 	f9 = f9+f10;
   13945 	f4 = f4*f7;
   13946 	f1 = f1-f5;
   13947 	f3 = f3*f7;
   13948 	f10 = f11+f6;
   13949 	f9 = f9+f4;
   13950 	f1 = f1-f3;
   13951 	f3 = f8+f13;
   13952 	f2 = f2*f7;
   13953 	r0 = (r0 + -1)|0;
   13954 	f4 = f3-f2;
   13955 	f3 = f10-f5;
   13956 	f2 = f9-f13;
   13957 	f1 = f1-f6;
   13958 	f0 = f0+f17;
   13959 	if(r0 ==0) //_LBB26_165
   13960 {
   13961 break _161;
   13962 }
   13963 else{
   13964 continue _253;
   13965 }
   13966 }
   13967 }
   13968 else{
   13969 	if(r0 ==3) //_LBB26_183
   13970 {
   13971 	r3 = -16;
   13972 	r0 = 16;
   13973 	f0 =                         0;
   13974 	f1 =                         1;
   13975 	f2 = f0;
   13976 _260: while(true){
   13977 	f3 = r3; //fitos r3, f3
   13978 	f4 =                         6;
   13979 	f3 = f3*f4;
   13980 	f5 =                       0.5;
   13981 	f6 =                       3.5;
   13982 	f7 =        4.2000002861022949;
   13983 	f8 =        5.5999999046325684;
   13984 	f9 =        2.2749998569488525;
   13985 	f10 =       0.69999998807907104;
   13986 	f11 =        5.0750002861022949;
   13987 	f3 = f3*f5;
   13988 	f5 = f2+f0;
   13989 	f6 = f1+f6;
   13990 	f7 = f1+f7;
   13991 	f8 = f1+f8;
   13992 	f9 = f1+f9;
   13993 	f10 = f1+f10;
   13994 	f11 = f1+f11;
   13995 	r5 = 0;
   13996 _262: while(true){
   13997 	heap32[(g0)] = 136;
   13998 	_Znwj(i7);
   13999 	r7 = r_g0;
   14000 	r8 = _ZTV7RagDoll;
   14001 	r9 = r7 >> 2;
   14002 	r10 = heap32[(r1+1)];
   14003 	r8 = (r8 + 8)|0;
   14004 	heap32[(r9)] = r8;
   14005 	heap32[(r9+1)] = r10;
   14006 	r8 = heap32[(r2)];
   14007 	r9 = (r8 + 1)|0;
   14008 	heap32[(r2)] = r9;
   14009 	f12 = r5; //fitos r5, f12
   14010 	heap32[(g0)] = 75;
   14011 	f12 = f12*f4;
   14012 	malloc(i7);
   14013 	r9 = r_g0;
   14014 	f12 = f12+f3;
   14015 	if(r9 !=0) //_LBB26_187
   14016 {
   14017 	r10 = 0;
   14018 	r11 = (r9 + 4)|0;
   14019 	r10 = (r10 - r11)|0;
   14020 	r10 = r10 & 15;
   14021 	r10 = (r9 + r10)|0;
   14022 	r11 = (r10 + 4)|0;
   14023 	r10 = r10 >> 2;
   14024 	heap32[(r10)] = r9;
   14025 	r9 = r11;
   14026 }
   14027 	r10 = r9 >> 2;
   14028 	heap32[(r10+2)] = 0;
   14029 	heap32[(r10+3)] = 1065353216;
   14030 	heap32[(r10+4)] = 1065353216;
   14031 	heap32[(r10+5)] = 1065353216;
   14032 	r11 = _ZTV14btCapsuleShape;
   14033 	heap32[(r10+6)] = 0;
   14034 	r11 = (r11 + 8)|0;
   14035 	heap32[(r10+11)] = 1025758986;
   14036 	heap32[(r10)] = r11;
   14037 	heap32[(r10+1)] = 10;
   14038 	heap32[(r10+13)] = 1;
   14039 	heap32[(r10+7)] = 1057384039;
   14040 	heap32[(r10+8)] = 1051931443;
   14041 	heap32[(r10+9)] = 1057384039;
   14042 	r12 = r7 >> 2;
   14043 	heap32[(r10+10)] = 0;
   14044 	r10 = (r8 + 2)|0;
   14045 	heap32[(r12+2)] = r9;
   14046 	heap32[(r2)] = r10;
   14047 	heap32[(g0)] = 75;
   14048 	malloc(i7);
   14049 	r9 = r_g0;
   14050 	if(r9 !=0) //_LBB26_190
   14051 {
   14052 	r10 = 0;
   14053 	r13 = (r9 + 4)|0;
   14054 	r10 = (r10 - r13)|0;
   14055 	r10 = r10 & 15;
   14056 	r10 = (r9 + r10)|0;
   14057 	r13 = (r10 + 4)|0;
   14058 	r10 = r10 >> 2;
   14059 	heap32[(r10)] = r9;
   14060 	r9 = r13;
   14061 }
   14062 	r10 = r9 >> 2;
   14063 	heap32[(r10+2)] = 0;
   14064 	heap32[(r10+3)] = 1065353216;
   14065 	heap32[(r10+4)] = 1065353216;
   14066 	heap32[(r10+5)] = 1065353216;
   14067 	heap32[(r10+6)] = 0;
   14068 	heap32[(r10+11)] = 1025758986;
   14069 	heap32[(r10)] = r11;
   14070 	heap32[(r10+1)] = 10;
   14071 	heap32[(r10+13)] = 1;
   14072 	heap32[(r10+7)] = 1057384039;
   14073 	heap32[(r10+8)] = 1056629064;
   14074 	heap32[(r10+9)] = 1057384039;
   14075 	heap32[(r10+10)] = 0;
   14076 	r10 = (r8 + 3)|0;
   14077 	heap32[(r12+3)] = r9;
   14078 	heap32[(r2)] = r10;
   14079 	heap32[(g0)] = 75;
   14080 	malloc(i7);
   14081 	r9 = r_g0;
   14082 	if(r9 !=0) //_LBB26_193
   14083 {
   14084 	r10 = 0;
   14085 	r13 = (r9 + 4)|0;
   14086 	r10 = (r10 - r13)|0;
   14087 	r10 = r10 & 15;
   14088 	r10 = (r9 + r10)|0;
   14089 	r13 = (r10 + 4)|0;
   14090 	r10 = r10 >> 2;
   14091 	heap32[(r10)] = r9;
   14092 	r9 = r13;
   14093 }
   14094 	r10 = r9 >> 2;
   14095 	heap32[(r10+2)] = 0;
   14096 	heap32[(r10+3)] = 1065353216;
   14097 	heap32[(r10+4)] = 1065353216;
   14098 	heap32[(r10+5)] = 1065353216;
   14099 	heap32[(r10+6)] = 0;
   14100 	heap32[(r10+11)] = 1025758986;
   14101 	heap32[(r10)] = r11;
   14102 	heap32[(r10+1)] = 10;
   14103 	heap32[(r10+13)] = 1;
   14104 	heap32[(r10+7)] = 1051931443;
   14105 	heap32[(r10+8)] = 1035154227;
   14106 	heap32[(r10+9)] = 1051931443;
   14107 	heap32[(r10+10)] = 0;
   14108 	r10 = (r8 + 4)|0;
   14109 	heap32[(r12+4)] = r9;
   14110 	heap32[(r2)] = r10;
   14111 	heap32[(g0)] = 75;
   14112 	malloc(i7);
   14113 	r9 = r_g0;
   14114 	if(r9 !=0) //_LBB26_196
   14115 {
   14116 	r10 = 0;
   14117 	r13 = (r9 + 4)|0;
   14118 	r10 = (r10 - r13)|0;
   14119 	r10 = r10 & 15;
   14120 	r10 = (r9 + r10)|0;
   14121 	r13 = (r10 + 4)|0;
   14122 	r10 = r10 >> 2;
   14123 	heap32[(r10)] = r9;
   14124 	r9 = r13;
   14125 }
   14126 	r10 = r9 >> 2;
   14127 	heap32[(r10+2)] = 0;
   14128 	heap32[(r10+3)] = 1065353216;
   14129 	heap32[(r10+4)] = 1065353216;
   14130 	heap32[(r10+5)] = 1065353216;
   14131 	heap32[(r10+6)] = 0;
   14132 	heap32[(r10+11)] = 1025758986;
   14133 	heap32[(r10)] = r11;
   14134 	heap32[(r10+1)] = 10;
   14135 	heap32[(r10+13)] = 1;
   14136 	heap32[(r10+7)] = 1048240456;
   14137 	heap32[(r10+8)] = 1061788057;
   14138 	heap32[(r10+9)] = 1048240456;
   14139 	heap32[(r10+10)] = 0;
   14140 	r10 = (r8 + 5)|0;
   14141 	heap32[(r12+5)] = r9;
   14142 	heap32[(r2)] = r10;
   14143 	heap32[(g0)] = 75;
   14144 	malloc(i7);
   14145 	r9 = r_g0;
   14146 	if(r9 !=0) //_LBB26_199
   14147 {
   14148 	r10 = 0;
   14149 	r13 = (r9 + 4)|0;
   14150 	r10 = (r10 - r13)|0;
   14151 	r10 = r10 & 15;
   14152 	r10 = (r9 + r10)|0;
   14153 	r13 = (r10 + 4)|0;
   14154 	r10 = r10 >> 2;
   14155 	heap32[(r10)] = r9;
   14156 	r9 = r13;
   14157 }
   14158 	r10 = r9 >> 2;
   14159 	heap32[(r10+2)] = 0;
   14160 	heap32[(r10+3)] = 1065353216;
   14161 	heap32[(r10+4)] = 1065353216;
   14162 	heap32[(r10+5)] = 1065353216;
   14163 	heap32[(r10+6)] = 0;
   14164 	heap32[(r10+11)] = 1025758986;
   14165 	heap32[(r10)] = r11;
   14166 	heap32[(r10+1)] = 10;
   14167 	heap32[(r10+13)] = 1;
   14168 	heap32[(r10+7)] = 1043542835;
   14169 	heap32[(r10+8)] = 1059439248;
   14170 	heap32[(r10+9)] = 1043542835;
   14171 	heap32[(r10+10)] = 0;
   14172 	r10 = (r8 + 6)|0;
   14173 	heap32[(r12+6)] = r9;
   14174 	heap32[(r2)] = r10;
   14175 	heap32[(g0)] = 75;
   14176 	malloc(i7);
   14177 	r9 = r_g0;
   14178 	if(r9 !=0) //_LBB26_202
   14179 {
   14180 	r10 = 0;
   14181 	r13 = (r9 + 4)|0;
   14182 	r10 = (r10 - r13)|0;
   14183 	r10 = r10 & 15;
   14184 	r10 = (r9 + r10)|0;
   14185 	r13 = (r10 + 4)|0;
   14186 	r10 = r10 >> 2;
   14187 	heap32[(r10)] = r9;
   14188 	r9 = r13;
   14189 }
   14190 	r10 = r9 >> 2;
   14191 	heap32[(r10+2)] = 0;
   14192 	heap32[(r10+3)] = 1065353216;
   14193 	heap32[(r10+4)] = 1065353216;
   14194 	heap32[(r10+5)] = 1065353216;
   14195 	heap32[(r10+6)] = 0;
   14196 	heap32[(r10+11)] = 1025758986;
   14197 	heap32[(r10)] = r11;
   14198 	heap32[(r10+1)] = 10;
   14199 	heap32[(r10+13)] = 1;
   14200 	heap32[(r10+7)] = 1048240456;
   14201 	heap32[(r10+8)] = 1061788057;
   14202 	heap32[(r10+9)] = 1048240456;
   14203 	heap32[(r10+10)] = 0;
   14204 	r10 = (r8 + 7)|0;
   14205 	heap32[(r12+7)] = r9;
   14206 	heap32[(r2)] = r10;
   14207 	heap32[(g0)] = 75;
   14208 	malloc(i7);
   14209 	r9 = r_g0;
   14210 	if(r9 !=0) //_LBB26_205
   14211 {
   14212 	r10 = 0;
   14213 	r13 = (r9 + 4)|0;
   14214 	r10 = (r10 - r13)|0;
   14215 	r10 = r10 & 15;
   14216 	r10 = (r9 + r10)|0;
   14217 	r13 = (r10 + 4)|0;
   14218 	r10 = r10 >> 2;
   14219 	heap32[(r10)] = r9;
   14220 	r9 = r13;
   14221 }
   14222 	r10 = r9 >> 2;
   14223 	heap32[(r10+2)] = 0;
   14224 	heap32[(r10+3)] = 1065353216;
   14225 	heap32[(r10+4)] = 1065353216;
   14226 	heap32[(r10+5)] = 1065353216;
   14227 	heap32[(r10+6)] = 0;
   14228 	heap32[(r10+11)] = 1025758986;
   14229 	heap32[(r10)] = r11;
   14230 	heap32[(r10+1)] = 10;
   14231 	heap32[(r10+13)] = 1;
   14232 	heap32[(r10+7)] = 1043542835;
   14233 	heap32[(r10+8)] = 1059439248;
   14234 	heap32[(r10+9)] = 1043542835;
   14235 	heap32[(r10+10)] = 0;
   14236 	r10 = (r8 + 8)|0;
   14237 	heap32[(r12+8)] = r9;
   14238 	heap32[(r2)] = r10;
   14239 	heap32[(g0)] = 75;
   14240 	malloc(i7);
   14241 	r9 = r_g0;
   14242 	if(r9 !=0) //_LBB26_208
   14243 {
   14244 	r10 = 0;
   14245 	r13 = (r9 + 4)|0;
   14246 	r10 = (r10 - r13)|0;
   14247 	r10 = r10 & 15;
   14248 	r10 = (r9 + r10)|0;
   14249 	r13 = (r10 + 4)|0;
   14250 	r10 = r10 >> 2;
   14251 	heap32[(r10)] = r9;
   14252 	r9 = r13;
   14253 }
   14254 	r10 = r9 >> 2;
   14255 	heap32[(r10+2)] = 0;
   14256 	heap32[(r10+3)] = 1065353216;
   14257 	heap32[(r10+4)] = 1065353216;
   14258 	heap32[(r10+5)] = 1065353216;
   14259 	heap32[(r10+6)] = 0;
   14260 	heap32[(r10+11)] = 1025758986;
   14261 	heap32[(r10)] = r11;
   14262 	heap32[(r10+1)] = 10;
   14263 	heap32[(r10+13)] = 1;
   14264 	heap32[(r10+7)] = 1043542835;
   14265 	heap32[(r10+8)] = 1058264843;
   14266 	heap32[(r10+9)] = 1043542835;
   14267 	heap32[(r10+10)] = 0;
   14268 	r10 = (r8 + 9)|0;
   14269 	heap32[(r12+9)] = r9;
   14270 	heap32[(r2)] = r10;
   14271 	heap32[(g0)] = 75;
   14272 	malloc(i7);
   14273 	r9 = r_g0;
   14274 	if(r9 !=0) //_LBB26_211
   14275 {
   14276 	r10 = 0;
   14277 	r13 = (r9 + 4)|0;
   14278 	r10 = (r10 - r13)|0;
   14279 	r10 = r10 & 15;
   14280 	r10 = (r9 + r10)|0;
   14281 	r13 = (r10 + 4)|0;
   14282 	r10 = r10 >> 2;
   14283 	heap32[(r10)] = r9;
   14284 	r9 = r13;
   14285 }
   14286 	r10 = r9 >> 2;
   14287 	heap32[(r10+2)] = 0;
   14288 	heap32[(r10+3)] = 1065353216;
   14289 	heap32[(r10+4)] = 1065353216;
   14290 	heap32[(r10+5)] = 1065353216;
   14291 	heap32[(r10+6)] = 0;
   14292 	heap32[(r10+11)] = 1025758986;
   14293 	heap32[(r10)] = r11;
   14294 	heap32[(r10+1)] = 10;
   14295 	heap32[(r10+13)] = 1;
   14296 	heap32[(r10+7)] = 1041194025;
   14297 	heap32[(r10+8)] = 1054867456;
   14298 	heap32[(r10+9)] = 1041194025;
   14299 	heap32[(r10+10)] = 0;
   14300 	r10 = (r8 + 10)|0;
   14301 	heap32[(r12+10)] = r9;
   14302 	heap32[(r2)] = r10;
   14303 	heap32[(g0)] = 75;
   14304 	malloc(i7);
   14305 	r9 = r_g0;
   14306 	if(r9 !=0) //_LBB26_214
   14307 {
   14308 	r10 = 0;
   14309 	r13 = (r9 + 4)|0;
   14310 	r10 = (r10 - r13)|0;
   14311 	r10 = r10 & 15;
   14312 	r10 = (r9 + r10)|0;
   14313 	r13 = (r10 + 4)|0;
   14314 	r10 = r10 >> 2;
   14315 	heap32[(r10)] = r9;
   14316 	r9 = r13;
   14317 }
   14318 	r10 = r9 >> 2;
   14319 	heap32[(r10+2)] = 0;
   14320 	heap32[(r10+3)] = 1065353216;
   14321 	heap32[(r10+4)] = 1065353216;
   14322 	heap32[(r10+5)] = 1065353216;
   14323 	heap32[(r10+6)] = 0;
   14324 	heap32[(r10+11)] = 1025758986;
   14325 	heap32[(r10)] = r11;
   14326 	heap32[(r10+1)] = 10;
   14327 	heap32[(r10+13)] = 1;
   14328 	heap32[(r10+7)] = 1043542835;
   14329 	heap32[(r10+8)] = 1058264843;
   14330 	heap32[(r10+9)] = 1043542835;
   14331 	heap32[(r10+10)] = 0;
   14332 	r8 = (r8 + 11)|0;
   14333 	heap32[(r12+11)] = r9;
   14334 	heap32[(r2)] = r8;
   14335 	heap32[(g0)] = 75;
   14336 	malloc(i7);
   14337 	r8 = r_g0;
   14338 	if(r8 !=0) //_LBB26_217
   14339 {
   14340 	r9 = 0;
   14341 	r10 = (r8 + 4)|0;
   14342 	r9 = (r9 - r10)|0;
   14343 	r9 = r9 & 15;
   14344 	r9 = (r8 + r9)|0;
   14345 	r10 = (r9 + 4)|0;
   14346 	r9 = r9 >> 2;
   14347 	heap32[(r9)] = r8;
   14348 	r8 = r10;
   14349 }
   14350 	r9 = r8 >> 2;
   14351 	heap32[(r9+2)] = 0;
   14352 	heap32[(r9+3)] = 1065353216;
   14353 	heap32[(r9+4)] = 1065353216;
   14354 	heap32[(r9+5)] = 1065353216;
   14355 	heap32[(r9+6)] = 0;
   14356 	heap32[(r9+11)] = 1025758986;
   14357 	heap32[(r9)] = r11;
   14358 	heap32[(r9+1)] = 10;
   14359 	heap32[(r9+13)] = 1;
   14360 	heap32[(r9+7)] = 1041194025;
   14361 	heap32[(r9+8)] = 1054867456;
   14362 	heap32[(r9+9)] = 1041194025;
   14363 	heap32[(r9+10)] = 0;
   14364 	heap32[(r12+12)] = r8;
   14365 	r8 = heap32[(r12+2)];
   14366 	r9 = sp + -880;
   14367 	r10 = r9 >> 2;
   14368 	heap32[(fp+-220)] = 1065353216;
   14369 	heap32[(r10+1)] = 0;
   14370 	heap32[(r10+2)] = 0;
   14371 	heap32[(r10+3)] = 0;
   14372 	heap32[(r10+4)] = 0;
   14373 	heap32[(r10+5)] = 1065353216;
   14374 	heap32[(r10+6)] = 0;
   14375 	heap32[(r10+7)] = 0;
   14376 	heap32[(r10+8)] = 0;
   14377 	heap32[(r10+9)] = 0;
   14378 	heap32[(r10+10)] = 1065353216;
   14379 	f13 =                         0;
   14380 	f13 = f12+f13;
   14381 	heap32[(r10+11)] = 0;
   14382 	heapFloat[(r10+12)] = f13;
   14383 	heapFloat[(r10+13)] = f6;
   14384 	heapFloat[(r10+14)] = f5;
   14385 	heap32[(r10+15)] = 0;
   14386 	heap32[(g0)] = r7;
   14387 	heap32[(g0+1)] = r9;
   14388 	heap32[(g0+2)] = r8;
   14389 	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
   14390 	heap32[(r12+13)] = r_g0;
   14391 	r8 = heap32[(r12+3)];
   14392 	r9 = sp + -816;
   14393 	r10 = r9 >> 2;
   14394 	heap32[(fp+-204)] = 1065353216;
   14395 	heap32[(r10+1)] = 0;
   14396 	heap32[(r10+2)] = 0;
   14397 	heap32[(r10+3)] = 0;
   14398 	heap32[(r10+4)] = 0;
   14399 	heap32[(r10+5)] = 1065353216;
   14400 	heap32[(r10+6)] = 0;
   14401 	heap32[(r10+7)] = 0;
   14402 	heap32[(r10+8)] = 0;
   14403 	heap32[(r10+9)] = 0;
   14404 	heap32[(r10+10)] = 1065353216;
   14405 	heap32[(r10+11)] = 0;
   14406 	heapFloat[(r10+12)] = f13;
   14407 	heapFloat[(r10+13)] = f7;
   14408 	heapFloat[(r10+14)] = f5;
   14409 	heap32[(r10+15)] = 0;
   14410 	heap32[(g0)] = r7;
   14411 	heap32[(g0+1)] = r9;
   14412 	heap32[(g0+2)] = r8;
   14413 	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
   14414 	heap32[(r12+14)] = r_g0;
   14415 	r8 = heap32[(r12+4)];
   14416 	r9 = sp + -752;
   14417 	r10 = r9 >> 2;
   14418 	heap32[(fp+-188)] = 1065353216;
   14419 	heap32[(r10+1)] = 0;
   14420 	heap32[(r10+2)] = 0;
   14421 	heap32[(r10+3)] = 0;
   14422 	heap32[(r10+4)] = 0;
   14423 	heap32[(r10+5)] = 1065353216;
   14424 	heap32[(r10+6)] = 0;
   14425 	heap32[(r10+7)] = 0;
   14426 	heap32[(r10+8)] = 0;
   14427 	heap32[(r10+9)] = 0;
   14428 	heap32[(r10+10)] = 1065353216;
   14429 	heap32[(r10+11)] = 0;
   14430 	heapFloat[(r10+12)] = f13;
   14431 	heapFloat[(r10+13)] = f8;
   14432 	heapFloat[(r10+14)] = f5;
   14433 	heap32[(r10+15)] = 0;
   14434 	heap32[(g0)] = r7;
   14435 	heap32[(g0+1)] = r9;
   14436 	heap32[(g0+2)] = r8;
   14437 	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
   14438 	heap32[(r12+15)] = r_g0;
   14439 	r8 = heap32[(r12+5)];
   14440 	r9 = sp + -688;
   14441 	r10 = r9 >> 2;
   14442 	heap32[(fp+-172)] = 1065353216;
   14443 	heap32[(r10+1)] = 0;
   14444 	heap32[(r10+2)] = 0;
   14445 	heap32[(r10+3)] = 0;
   14446 	heap32[(r10+4)] = 0;
   14447 	heap32[(r10+5)] = 1065353216;
   14448 	heap32[(r10+6)] = 0;
   14449 	heap32[(r10+7)] = 0;
   14450 	heap32[(r10+8)] = 0;
   14451 	heap32[(r10+9)] = 0;
   14452 	f13 =      -0.62999999523162842;
   14453 	heap32[(r10+10)] = 1065353216;
   14454 	f13 = f12+f13;
   14455 	heap32[(r10+11)] = 0;
   14456 	heapFloat[(r10+12)] = f13;
   14457 	heapFloat[(r10+13)] = f9;
   14458 	heapFloat[(r10+14)] = f5;
   14459 	heap32[(r10+15)] = 0;
   14460 	heap32[(g0)] = r7;
   14461 	heap32[(g0+1)] = r9;
   14462 	heap32[(g0+2)] = r8;
   14463 	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
   14464 	heap32[(r12+16)] = r_g0;
   14465 	r8 = heap32[(r12+6)];
   14466 	r9 = sp + -624;
   14467 	r10 = r9 >> 2;
   14468 	heap32[(fp+-156)] = 1065353216;
   14469 	heap32[(r10+1)] = 0;
   14470 	heap32[(r10+2)] = 0;
   14471 	heap32[(r10+3)] = 0;
   14472 	heap32[(r10+4)] = 0;
   14473 	heap32[(r10+5)] = 1065353216;
   14474 	heap32[(r10+6)] = 0;
   14475 	heap32[(r10+7)] = 0;
   14476 	heap32[(r10+8)] = 0;
   14477 	heap32[(r10+9)] = 0;
   14478 	heap32[(r10+10)] = 1065353216;
   14479 	heap32[(r10+11)] = 0;
   14480 	heapFloat[(r10+12)] = f13;
   14481 	heapFloat[(r10+13)] = f10;
   14482 	heapFloat[(r10+14)] = f5;
   14483 	heap32[(r10+15)] = 0;
   14484 	heap32[(g0)] = r7;
   14485 	heap32[(g0+1)] = r9;
   14486 	heap32[(g0+2)] = r8;
   14487 	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
   14488 	heap32[(r12+17)] = r_g0;
   14489 	r8 = heap32[(r12+7)];
   14490 	r9 = sp + -560;
   14491 	r10 = r9 >> 2;
   14492 	heap32[(fp+-140)] = 1065353216;
   14493 	heap32[(r10+1)] = 0;
   14494 	heap32[(r10+2)] = 0;
   14495 	heap32[(r10+3)] = 0;
   14496 	heap32[(r10+4)] = 0;
   14497 	heap32[(r10+5)] = 1065353216;
   14498 	heap32[(r10+6)] = 0;
   14499 	heap32[(r10+7)] = 0;
   14500 	heap32[(r10+8)] = 0;
   14501 	heap32[(r10+9)] = 0;
   14502 	f13 =       0.62999999523162842;
   14503 	heap32[(r10+10)] = 1065353216;
   14504 	f13 = f12+f13;
   14505 	heap32[(r10+11)] = 0;
   14506 	heapFloat[(r10+12)] = f13;
   14507 	heapFloat[(r10+13)] = f9;
   14508 	heapFloat[(r10+14)] = f5;
   14509 	heap32[(r10+15)] = 0;
   14510 	heap32[(g0)] = r7;
   14511 	heap32[(g0+1)] = r9;
   14512 	heap32[(g0+2)] = r8;
   14513 	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
   14514 	heap32[(r12+18)] = r_g0;
   14515 	r8 = heap32[(r12+8)];
   14516 	r9 = sp + -496;
   14517 	r10 = r9 >> 2;
   14518 	heap32[(fp+-124)] = 1065353216;
   14519 	heap32[(r10+1)] = 0;
   14520 	heap32[(r10+2)] = 0;
   14521 	heap32[(r10+3)] = 0;
   14522 	heap32[(r10+4)] = 0;
   14523 	heap32[(r10+5)] = 1065353216;
   14524 	heap32[(r10+6)] = 0;
   14525 	heap32[(r10+7)] = 0;
   14526 	heap32[(r10+8)] = 0;
   14527 	heap32[(r10+9)] = 0;
   14528 	heap32[(r10+10)] = 1065353216;
   14529 	heap32[(r10+11)] = 0;
   14530 	heapFloat[(r10+12)] = f13;
   14531 	heapFloat[(r10+13)] = f10;
   14532 	heapFloat[(r10+14)] = f5;
   14533 	heap32[(r10+15)] = 0;
   14534 	heap32[(g0)] = r7;
   14535 	heap32[(g0+1)] = r9;
   14536 	heap32[(g0+2)] = r8;
   14537 	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
   14538 	heap32[(r12+19)] = r_g0;
   14539 	r8 = heap32[(r12+9)];
   14540 	r9 = sp + -432;
   14541 	r10 = r9 >> 2;
   14542 	heap32[(fp+-108)] = -1287930578;
   14543 	heap32[(r10+1)] = -1082130432;
   14544 	heap32[(r10+2)] = 0;
   14545 	heap32[(r10+3)] = 0;
   14546 	heap32[(r10+4)] = 1065353216;
   14547 	heap32[(r10+5)] = -1287930578;
   14548 	heap32[(r10+6)] = 0;
   14549 	heap32[(r10+7)] = 0;
   14550 	heap32[(r10+8)] = 0;
   14551 	heap32[(r10+9)] = 0;
   14552 	f13 =       -1.2250000238418579;
   14553 	heap32[(r10+10)] = 1065353216;
   14554 	f13 = f12+f13;
   14555 	heap32[(r10+11)] = 0;
   14556 	heapFloat[(r10+12)] = f13;
   14557 	heapFloat[(r10+13)] = f11;
   14558 	heapFloat[(r10+14)] = f5;
   14559 	heap32[(r10+15)] = 0;
   14560 	heap32[(g0)] = r7;
   14561 	heap32[(g0+1)] = r9;
   14562 	heap32[(g0+2)] = r8;
   14563 	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
   14564 	heap32[(r12+20)] = r_g0;
   14565 	r8 = heap32[(r12+10)];
   14566 	r9 = sp + -368;
   14567 	r10 = r9 >> 2;
   14568 	heap32[(fp+-92)] = -1287930578;
   14569 	heap32[(r10+1)] = -1082130432;
   14570 	heap32[(r10+2)] = 0;
   14571 	heap32[(r10+3)] = 0;
   14572 	heap32[(r10+4)] = 1065353216;
   14573 	heap32[(r10+5)] = -1287930578;
   14574 	heap32[(r10+6)] = 0;
   14575 	heap32[(r10+7)] = 0;
   14576 	heap32[(r10+8)] = 0;
   14577 	heap32[(r10+9)] = 0;
   14578 	f13 =       -2.4500000476837158;
   14579 	heap32[(r10+10)] = 1065353216;
   14580 	f13 = f12+f13;
   14581 	heap32[(r10+11)] = 0;
   14582 	heapFloat[(r10+12)] = f13;
   14583 	heapFloat[(r10+13)] = f11;
   14584 	heapFloat[(r10+14)] = f5;
   14585 	heap32[(r10+15)] = 0;
   14586 	heap32[(g0)] = r7;
   14587 	heap32[(g0+1)] = r9;
   14588 	heap32[(g0+2)] = r8;
   14589 	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
   14590 	heap32[(r12+21)] = r_g0;
   14591 	r8 = heap32[(r12+11)];
   14592 	r9 = sp + -304;
   14593 	r10 = r9 >> 2;
   14594 	heap32[(fp+-76)] = -1287930578;
   14595 	heap32[(r10+1)] = 1065353216;
   14596 	heap32[(r10+2)] = 0;
   14597 	heap32[(r10+3)] = 0;
   14598 	heap32[(r10+4)] = -1082130432;
   14599 	heap32[(r10+5)] = -1287930578;
   14600 	heap32[(r10+6)] = 0;
   14601 	heap32[(r10+7)] = 0;
   14602 	heap32[(r10+8)] = -2147483648;
   14603 	heap32[(r10+9)] = 0;
   14604 	f13 =        1.2250000238418579;
   14605 	heap32[(r10+10)] = 1065353216;
   14606 	f13 = f12+f13;
   14607 	heap32[(r10+11)] = 0;
   14608 	heapFloat[(r10+12)] = f13;
   14609 	heapFloat[(r10+13)] = f11;
   14610 	heapFloat[(r10+14)] = f5;
   14611 	heap32[(r10+15)] = 0;
   14612 	heap32[(g0)] = r7;
   14613 	heap32[(g0+1)] = r9;
   14614 	heap32[(g0+2)] = r8;
   14615 	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
   14616 	heap32[(r12+22)] = r_g0;
   14617 	r8 = heap32[(r12+12)];
   14618 	r9 = sp + -240;
   14619 	r10 = r9 >> 2;
   14620 	heap32[(fp+-60)] = -1287930578;
   14621 	heap32[(r10+1)] = 1065353216;
   14622 	heap32[(r10+2)] = 0;
   14623 	heap32[(r10+3)] = 0;
   14624 	heap32[(r10+4)] = -1082130432;
   14625 	heap32[(r10+5)] = -1287930578;
   14626 	heap32[(r10+6)] = 0;
   14627 	heap32[(r10+7)] = 0;
   14628 	heap32[(r10+8)] = -2147483648;
   14629 	heap32[(r10+9)] = 0;
   14630 	f13 =        2.4500000476837158;
   14631 	heap32[(r10+10)] = 1065353216;
   14632 	f12 = f12+f13;
   14633 	heap32[(r10+11)] = 0;
   14634 	heapFloat[(r10+12)] = f12;
   14635 	heapFloat[(r10+13)] = f11;
   14636 	heapFloat[(r10+14)] = f5;
   14637 	heap32[(r10+15)] = 0;
   14638 	heap32[(g0)] = r7;
   14639 	heap32[(g0+1)] = r9;
   14640 	heap32[(g0+2)] = r8;
   14641 	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
   14642 	r9 = 0;
   14643 	heap32[(r12+23)] = r_g0;
   14644 _297: while(true){
   14645 	r8 = r9 << 2;
   14646 	r8 = (r7 - r8)|0;
   14647 	r8 = r8 >> 2;
   14648 	r10 = heap32[(r8+13)];
   14649 	r10 = r10 >> 2;
   14650 	heap32[(r10+109)] = 1028443341;
   14651 	heap32[(r10+110)] = 1062836634;
   14652 	r10 = heap32[(r8+13)];
   14653 	r10 = r10 >> 2;
   14654 	heap32[(r10+55)] = 1061997773;
   14655 	r8 = heap32[(r8+13)];
   14656 	r8 = r8 >> 2;
   14657 	r9 = (r9 + -1)|0;
   14658 	heap32[(r8+116)] = 1070386381;
   14659 	heap32[(r8+117)] = 1075838976;
   14660 if(!(r9 !=-11)) //_LBB26_219
   14661 {
   14662 break _297;
   14663 }
   14664 }
   14665 	heap32[(g0)] = 748;
   14666 	_Znwj(i7);
   14667 	r8 = r_g0;
   14668 	r9 = heap32[(r12+14)];
   14669 	r10 = heap32[(r12+13)];
   14670 	r11 = r8 >> 2;
   14671 	heap32[(r11+1)] = 4;
   14672 	heap32[(r11+2)] = -1;
   14673 	r13 = 0;
   14674 	heap32[(r11+3)] = -1;
   14675 	heap8[r8+16] = r13;
   14676 	heap32[(r11+5)] = r10;
   14677 	heap32[(r11+6)] = r9;
   14678 	r9 = _ZTV17btHingeConstraint;
   14679 	heap32[(r11+7)] = 0;
   14680 	r9 = (r9 + 8)|0;
   14681 	heap32[(r11+8)] = 1050253722;
   14682 	heap32[(r11)] = r9;
   14683 	heap32[(r11+135)] = -1287930578;
   14684 	heap32[(r11+136)] = 0;
   14685 	heap32[(r11+137)] = 1065353216;
   14686 	heap32[(r11+138)] = 0;
   14687 	heap32[(r11+139)] = -2147483648;
   14688 	heap32[(r11+140)] = 1065353216;
   14689 	heap32[(r11+141)] = 0;
   14690 	heap32[(r11+142)] = 0;
   14691 	heap32[(r11+143)] = -1082130432;
   14692 	heap32[(r11+144)] = -2147483648;
   14693 	heap32[(r11+145)] = -1287930578;
   14694 	heap32[(r11+146)] = 0;
   14695 	heap32[(r11+147)] = 0;
   14696 	heap32[(r11+148)] = 1057384039;
   14697 	heap32[(r11+149)] = 0;
   14698 	heap32[(r11+150)] = 0;
   14699 	heap32[(r11+151)] = -1287930578;
   14700 	heap32[(r11+152)] = 0;
   14701 	heap32[(r11+153)] = 1065353216;
   14702 	heap32[(r11+154)] = 0;
   14703 	heap32[(r11+155)] = -2147483648;
   14704 	heap32[(r11+156)] = 1065353216;
   14705 	heap32[(r11+157)] = 0;
   14706 	heap32[(r11+158)] = 0;
   14707 	heap32[(r11+159)] = -1082130432;
   14708 	heap32[(r11+160)] = -2147483648;
   14709 	heap32[(r11+161)] = -1287930578;
   14710 	heap32[(r11+162)] = 0;
   14711 	heap32[(r11+163)] = 0;
   14712 	heap32[(r11+164)] = -1090099609;
   14713 	heap32[(r11+165)] = 0;
   14714 	heap32[(r11+166)] = 0;
   14715 	heap8[r8+720] = r13;
   14716 	heap8[r8+721] = r13;
   14717 	heap8[r8+723] = r13;
   14718 	heap8[r8+724] = r4;
   14719 	heap8[r8+725] = r13;
   14720 	heap32[(r11+183)] = 0;
   14721 	heap32[(r11+172)] = 1065353216;
   14722 	heap32[(r11+173)] = -1082130432;
   14723 	heap32[(r11+170)] = 1050253722;
   14724 	heap32[(r11+171)] = 1065353216;
   14725 	heap32[(r11+169)] = 1063675494;
   14726 	heap8[r8+722] = r13;
   14727 	heap32[(r11+179)] = 1065353216;
   14728 	heap32[(g0)] = -1085730853;
   14729 	heap32[(g0+1)] = 1086918619;
   14730 	fmodf(i7);
   14731 	f12 = f_g0;
   14732 	f13 =       -3.1415927410125732;
   14733 	if(f12 >=f13) //_LBB26_222
   14734 {
   14735 	f14 =        3.1415927410125732;
   14736 	if(f12 >f14) //_LBB26_224
   14737 {
   14738 	f14 =       -6.2831854820251465;
   14739 	f12 = f12+f14;
   14740 }
   14741 }
   14742 else{
   14743 	f14 =        6.2831854820251465;
   14744 	f12 = f12+f14;
   14745 }
   14746 	r10 = r8 >> 2;
   14747 	heapFloat[(r10+172)] = f12;
   14748 	heap32[(g0)] = 1070141403;
   14749 	heap32[(g0+1)] = 1086918619;
   14750 	fmodf(i7);
   14751 	f12 = f_g0;
   14752 	if(f12 >=f13) //_LBB26_227
   14753 {
   14754 	f14 =        3.1415927410125732;
   14755 	if(f12 >f14) //_LBB26_229
   14756 {
   14757 	f14 =       -6.2831854820251465;
   14758 	f12 = f12+f14;
   14759 }
   14760 }
   14761 else{
   14762 	f14 =        6.2831854820251465;
   14763 	f12 = f12+f14;
   14764 }
   14765 	heapFloat[(r10+173)] = f12;
   14766 	heap32[(r10+169)] = 1063675494;
   14767 	heap32[(r10+170)] = 1050253722;
   14768 	heap32[(r10+171)] = 1065353216;
   14769 	heap32[(r12+24)] = r8;
   14770 	r10 = heap32[(r12+1)];
   14771 	r11 = r10 >> 2;
   14772 	r11 = heap32[(r11)];
   14773 	r11 = r11 >> 2;
   14774 	r11 = heap32[(r11+13)];
   14775 	heap32[(g0)] = r10;
   14776 	heap32[(g0+1)] = r8;
   14777 	heap32[(g0+2)] = 1;
   14778 	__FUNCTION_TABLE__[(r11)>>2](i7);
   14779 	heap32[(g0)] = 596;
   14780 	_Znwj(i7);
   14781 	r10 = heap32[(r12+15)];
   14782 	r11 = heap32[(r12+14)];
   14783 	r14 = r_g0 >> 2;
   14784 	heap32[(r14+1)] = 5;
   14785 	heap32[(r14+2)] = -1;
   14786 	heap32[(r14+3)] = -1;
   14787 	heap8[r_g0+16] = r13;
   14788 	heap32[(r14+5)] = r11;
   14789 	heap32[(r14+6)] = r10;
   14790 	heap32[(r14+7)] = 0;
   14791 	r10 = _ZTV21btConeTwistConstraint;
   14792 	heap32[(r14+8)] = 1050253722;
   14793 	r10 = (r10 + 8)|0;
   14794 	heap32[(r14)] = r10;
   14795 	heap32[(r14+72)] = -1287930578;
   14796 	heap32[(r14+73)] = -1082130432;
   14797 	heap32[(r14+74)] = 0;
   14798 	heap32[(r14+75)] = 0;
   14799 	heap32[(r14+76)] = 1065353216;
   14800 	heap32[(r14+77)] = -1287930578;
   14801 	heap32[(r14+78)] = 0;
   14802 	heap32[(r14+79)] = 0;
   14803 	heap32[(r14+80)] = -2147483648;
   14804 	heap32[(r14+81)] = 0;
   14805 	heap32[(r14+82)] = 1065353216;
   14806 	heap32[(r14+83)] = 0;
   14807 	heap32[(r14+84)] = 0;
   14808 	heap32[(r14+85)] = 1065772647;
   14809 	heap32[(r14+86)] = 0;
   14810 	heap32[(r14+87)] = 0;
   14811 	heap32[(r14+88)] = -1287930578;
   14812 	heap32[(r14+89)] = -1082130432;
   14813 	heap32[(r14+90)] = 0;
   14814 	heap32[(r14+91)] = 0;
   14815 	heap32[(r14+92)] = 1065353216;
   14816 	heap32[(r14+93)] = -1287930578;
   14817 	heap32[(r14+94)] = 0;
   14818 	heap32[(r14+95)] = 0;
   14819 	heap32[(r14+96)] = -2147483648;
   14820 	heap32[(r14+97)] = 0;
   14821 	heap32[(r14+98)] = 1065353216;
   14822 	heap32[(r14+99)] = 0;
   14823 	heap32[(r14+100)] = 0;
   14824 	heap32[(r14+101)] = -1090854584;
   14825 	heap32[(r14+102)] = 0;
   14826 	heap32[(r14+103)] = 0;
   14827 	heap8[r_g0+540] = r13;
   14828 	heap32[(r14+128)] = 0;
   14829 	heap32[(r14+140)] = -1082130432;
   14830 	heap32[(r14+107)] = 1008981770;
   14831 	heap32[(r14+111)] = 1028443341;
   14832 	heap32[(r14+145)] = 0;
   14833 	heap32[(r14+146)] = 0;
   14834 	heap32[(r14+147)] = 1060320051;
   14835 	heap32[(r14+148)] = 0;
   14836 	heap32[(r14+108)] = 1061752795;
   14837 	heap32[(r14+109)] = 1061752795;
   14838 	heap32[(r14+110)] = 1070141403;
   14839 	heap32[(r14+104)] = 1065353216;
   14840 	heap32[(r14+105)] = 1050253722;
   14841 	heap32[(r14+106)] = 1065353216;
   14842 	heap32[(r12+25)] = r_g0;
   14843 	r11 = heap32[(r12+1)];
   14844 	r14 = r11 >> 2;
   14845 	r14 = heap32[(r14)];
   14846 	r14 = r14 >> 2;
   14847 	r14 = heap32[(r14+13)];
   14848 	heap32[(g0)] = r11;
   14849 	heap32[(g0+1)] = r_g0;
   14850 	heap32[(g0+2)] = 1;
   14851 	__FUNCTION_TABLE__[(r14)>>2](i7);
   14852 	heap32[(g0)] = 596;
   14853 	_Znwj(i7);
   14854 	r11 = heap32[(r12+16)];
   14855 	r14 = heap32[(r12+13)];
   14856 	r15 = r_g0 >> 2;
   14857 	heap32[(r15+1)] = 5;
   14858 	heap32[(r15+2)] = -1;
   14859 	heap32[(r15+3)] = -1;
   14860 	heap8[r_g0+16] = r13;
   14861 	heap32[(r15+5)] = r14;
   14862 	heap32[(r15+6)] = r11;
   14863 	heap32[(r15+7)] = 0;
   14864 	heap32[(r15+8)] = 1050253722;
   14865 	heap32[(r15)] = r10;
   14866 	heap32[(r15+72)] = -1087044364;
   14867 	heap32[(r15+73)] = -1087044366;
   14868 	heap32[(r15+74)] = 0;
   14869 	heap32[(r15+75)] = 0;
   14870 	heap32[(r15+76)] = 1060439282;
   14871 	heap32[(r15+77)] = -1087044364;
   14872 	heap32[(r15+78)] = 0;
   14873 	heap32[(r15+79)] = 0;
   14874 	heap32[(r15+80)] = -2147483648;
   14875 	heap32[(r15+81)] = 0;
   14876 	heap32[(r15+82)] = 1065353216;
   14877 	heap32[(r15+83)] = 0;
   14878 	heap32[(r15+84)] = -1088338002;
   14879 	heap32[(r15+85)] = -1095552205;
   14880 	heap32[(r15+86)] = 0;
   14881 	heap32[(r15+87)] = 0;
   14882 	heap32[(r15+88)] = -1087044364;
   14883 	heap32[(r15+89)] = -1087044366;
   14884 	heap32[(r15+90)] = 0;
   14885 	heap32[(r15+91)] = 0;
   14886 	heap32[(r15+92)] = 1060439282;
   14887 	heap32[(r15+93)] = -1087044364;
   14888 	heap32[(r15+94)] = 0;
   14889 	heap32[(r15+95)] = 0;
   14890 	heap32[(r15+96)] = -2147483648;
   14891 	heap32[(r15+97)] = 0;
   14892 	heap32[(r15+98)] = 1065353216;
   14893 	heap32[(r15+99)] = 0;
   14894 	heap32[(r15+100)] = 0;
   14895 	heap32[(r15+101)] = 1061788057;
   14896 	heap32[(r15+102)] = 0;
   14897 	heap32[(r15+103)] = 0;
   14898 	heap8[r_g0+540] = r13;
   14899 	heap32[(r15+128)] = 0;
   14900 	heap32[(r15+140)] = -1082130432;
   14901 	heap32[(r15+107)] = 1008981770;
   14902 	heap32[(r15+111)] = 1028443341;
   14903 	heap32[(r15+145)] = 0;
   14904 	heap32[(r15+146)] = 0;
   14905 	heap32[(r15+147)] = 1060320051;
   14906 	heap32[(r15+148)] = 0;
   14907 	heap32[(r15+108)] = 1061752795;
   14908 	heap32[(r15+109)] = 1061752795;
   14909 	heap32[(r15+110)] = 0;
   14910 	heap32[(r15+104)] = 1065353216;
   14911 	heap32[(r15+105)] = 1050253722;
   14912 	heap32[(r15+106)] = 1065353216;
   14913 	heap32[(r12+26)] = r_g0;
   14914 	r11 = heap32[(r12+1)];
   14915 	r14 = r11 >> 2;
   14916 	r14 = heap32[(r14)];
   14917 	r14 = r14 >> 2;
   14918 	r14 = heap32[(r14+13)];
   14919 	heap32[(g0)] = r11;
   14920 	heap32[(g0+1)] = r_g0;
   14921 	heap32[(g0+2)] = 1;
   14922 	__FUNCTION_TABLE__[(r14)>>2](i7);
   14923 	heap32[(g0)] = 748;
   14924 	_Znwj(i7);
   14925 	r8 = r_g0;
   14926 	r11 = heap32[(r12+17)];
   14927 	r14 = heap32[(r12+16)];
   14928 	r15 = r8 >> 2;
   14929 	heap32[(r15+1)] = 4;
   14930 	heap32[(r15+2)] = -1;
   14931 	heap32[(r15+3)] = -1;
   14932 	heap8[r8+16] = r13;
   14933 	heap32[(r15+5)] = r14;
   14934 	heap32[(r15+6)] = r11;
   14935 	heap32[(r15+7)] = 0;
   14936 	heap32[(r15+8)] = 1050253722;
   14937 	heap32[(r15)] = r9;
   14938 	heap32[(r15+135)] = -1287930578;
   14939 	heap32[(r15+136)] = 0;
   14940 	heap32[(r15+137)] = 1065353216;
   14941 	heap32[(r15+138)] = 0;
   14942 	heap32[(r15+139)] = -2147483648;
   14943 	heap32[(r15+140)] = 1065353216;
   14944 	heap32[(r15+141)] = 0;
   14945 	heap32[(r15+142)] = 0;
   14946 	heap32[(r15+143)] = -1082130432;
   14947 	heap32[(r15+144)] = -2147483648;
   14948 	heap32[(r15+145)] = -1287930578;
   14949 	heap32[(r15+146)] = 0;
   14950 	heap32[(r15+147)] = 0;
   14951 	heap32[(r15+148)] = -1085695591;
   14952 	heap32[(r15+149)] = 0;
   14953 	heap32[(r15+150)] = 0;
   14954 	heap32[(r15+151)] = -1287930578;
   14955 	heap32[(r15+152)] = 0;
   14956 	heap32[(r15+153)] = 1065353216;
   14957 	heap32[(r15+154)] = 0;
   14958 	heap32[(r15+155)] = -2147483648;
   14959 	heap32[(r15+156)] = 1065353216;
   14960 	heap32[(r15+157)] = 0;
   14961 	heap32[(r15+158)] = 0;
   14962 	heap32[(r15+159)] = -1082130432;
   14963 	heap32[(r15+160)] = -2147483648;
   14964 	heap32[(r15+161)] = -1287930578;
   14965 	heap32[(r15+162)] = 0;
   14966 	heap32[(r15+163)] = 0;
   14967 	heap32[(r15+164)] = 1059439248;
   14968 	heap32[(r15+165)] = 0;
   14969 	heap32[(r15+166)] = 0;
   14970 	heap8[r8+720] = r13;
   14971 	heap8[r8+721] = r13;
   14972 	heap8[r8+723] = r13;
   14973 	heap8[r8+724] = r4;
   14974 	heap8[r8+725] = r13;
   14975 	heap32[(r15+183)] = 0;
   14976 	heap32[(r15+172)] = 1065353216;
   14977 	heap32[(r15+173)] = -1082130432;
   14978 	heap32[(r15+170)] = 1050253722;
   14979 	heap32[(r15+171)] = 1065353216;
   14980 	heap32[(r15+169)] = 1063675494;
   14981 	heap8[r8+722] = r13;
   14982 	heap32[(r15+179)] = 1065353216;
   14983 	heap32[(g0)] = 0;
   14984 	heap32[(g0+1)] = 1086918619;
   14985 	fmodf(i7);
   14986 	f12 = f_g0;
   14987 	if(f12 >=f13) //_LBB26_232
   14988 {
   14989 	f14 =        3.1415927410125732;
   14990 	if(f12 >f14) //_LBB26_234
   14991 {
   14992 	f14 =       -6.2831854820251465;
   14993 	f12 = f12+f14;
   14994 }
   14995 }
   14996 else{
   14997 	f14 =        6.2831854820251465;
   14998 	f12 = f12+f14;
   14999 }
   15000 	r11 = r8 >> 2;
   15001 	heapFloat[(r11+172)] = f12;
   15002 	heap32[(g0)] = 1070141403;
   15003 	heap32[(g0+1)] = 1086918619;
   15004 	fmodf(i7);
   15005 	f12 = f_g0;
   15006 	if(f12 >=f13) //_LBB26_237
   15007 {
   15008 	f14 =        3.1415927410125732;
   15009 	if(f12 >f14) //_LBB26_239
   15010 {
   15011 	f14 =       -6.2831854820251465;
   15012 	f12 = f12+f14;
   15013 }
   15014 }
   15015 else{
   15016 	f14 =        6.2831854820251465;
   15017 	f12 = f12+f14;
   15018 }
   15019 	heapFloat[(r11+173)] = f12;
   15020 	heap32[(r11+169)] = 1063675494;
   15021 	heap32[(r11+170)] = 1050253722;
   15022 	heap32[(r11+171)] = 1065353216;
   15023 	heap32[(r12+27)] = r8;
   15024 	r11 = heap32[(r12+1)];
   15025 	r14 = r11 >> 2;
   15026 	r14 = heap32[(r14)];
   15027 	r14 = r14 >> 2;
   15028 	r14 = heap32[(r14+13)];
   15029 	heap32[(g0)] = r11;
   15030 	heap32[(g0+1)] = r8;
   15031 	heap32[(g0+2)] = 1;
   15032 	__FUNCTION_TABLE__[(r14)>>2](i7);
   15033 	heap32[(g0)] = 596;
   15034 	_Znwj(i7);
   15035 	r11 = heap32[(r12+18)];
   15036 	r14 = heap32[(r12+13)];
   15037 	r15 = r_g0 >> 2;
   15038 	heap32[(r15+1)] = 5;
   15039 	heap32[(r15+2)] = -1;
   15040 	heap32[(r15+3)] = -1;
   15041 	heap8[r_g0+16] = r13;
   15042 	heap32[(r15+5)] = r14;
   15043 	heap32[(r15+6)] = r11;
   15044 	heap32[(r15+7)] = 0;
   15045 	heap32[(r15+8)] = 1050253722;
   15046 	heap32[(r15)] = r10;
   15047 	heap32[(r15+72)] = 1060439283;
   15048 	heap32[(r15+73)] = -1087044365;
   15049 	heap32[(r15+74)] = 0;
   15050 	heap32[(r15+75)] = 0;
   15051 	heap32[(r15+76)] = 1060439283;
   15052 	heap32[(r15+77)] = 1060439283;
   15053 	heap32[(r15+78)] = 0;
   15054 	heap32[(r15+79)] = 0;
   15055 	heap32[(r15+80)] = -2147483648;
   15056 	heap32[(r15+81)] = 0;
   15057 	heap32[(r15+82)] = 1065353216;
   15058 	heap32[(r15+83)] = 0;
   15059 	heap32[(r15+84)] = 1059145646;
   15060 	heap32[(r15+85)] = -1095552205;
   15061 	heap32[(r15+86)] = 0;
   15062 	heap32[(r15+87)] = 0;
   15063 	heap32[(r15+88)] = 1060439283;
   15064 	heap32[(r15+89)] = -1087044365;
   15065 	heap32[(r15+90)] = 0;
   15066 	heap32[(r15+91)] = 0;
   15067 	heap32[(r15+92)] = 1060439283;
   15068 	heap32[(r15+93)] = 1060439283;
   15069 	heap32[(r15+94)] = 0;
   15070 	heap32[(r15+95)] = 0;
   15071 	heap32[(r15+96)] = -2147483648;
   15072 	heap32[(r15+97)] = 0;
   15073 	heap32[(r15+98)] = 1065353216;
   15074 	heap32[(r15+99)] = 0;
   15075 	heap32[(r15+100)] = 0;
   15076 	heap32[(r15+101)] = 1061788057;
   15077 	heap32[(r15+102)] = 0;
   15078 	heap32[(r15+103)] = 0;
   15079 	heap8[r_g0+540] = r13;
   15080 	heap32[(r15+128)] = 0;
   15081 	heap32[(r15+140)] = -1082130432;
   15082 	heap32[(r15+107)] = 1008981770;
   15083 	heap32[(r15+111)] = 1028443341;
   15084 	heap32[(r15+145)] = 0;
   15085 	heap32[(r15+146)] = 0;
   15086 	heap32[(r15+147)] = 1060320051;
   15087 	heap32[(r15+148)] = 0;
   15088 	heap32[(r15+108)] = 1061752795;
   15089 	heap32[(r15+109)] = 1061752795;
   15090 	heap32[(r15+110)] = 0;
   15091 	heap32[(r15+104)] = 1065353216;
   15092 	heap32[(r15+105)] = 1050253722;
   15093 	heap32[(r15+106)] = 1065353216;
   15094 	heap32[(r12+28)] = r_g0;
   15095 	r11 = heap32[(r12+1)];
   15096 	r14 = r11 >> 2;
   15097 	r14 = heap32[(r14)];
   15098 	r14 = r14 >> 2;
   15099 	r14 = heap32[(r14+13)];
   15100 	heap32[(g0)] = r11;
   15101 	heap32[(g0+1)] = r_g0;
   15102 	heap32[(g0+2)] = 1;
   15103 	__FUNCTION_TABLE__[(r14)>>2](i7);
   15104 	heap32[(g0)] = 748;
   15105 	_Znwj(i7);
   15106 	r8 = r_g0;
   15107 	r11 = heap32[(r12+19)];
   15108 	r14 = heap32[(r12+18)];
   15109 	r15 = r8 >> 2;
   15110 	heap32[(r15+1)] = 4;
   15111 	heap32[(r15+2)] = -1;
   15112 	heap32[(r15+3)] = -1;
   15113 	heap8[r8+16] = r13;
   15114 	heap32[(r15+5)] = r14;
   15115 	heap32[(r15+6)] = r11;
   15116 	heap32[(r15+7)] = 0;
   15117 	heap32[(r15+8)] = 1050253722;
   15118 	heap32[(r15)] = r9;
   15119 	heap32[(r15+135)] = -1287930578;
   15120 	heap32[(r15+136)] = 0;
   15121 	heap32[(r15+137)] = 1065353216;
   15122 	heap32[(r15+138)] = 0;
   15123 	heap32[(r15+139)] = -2147483648;
   15124 	heap32[(r15+140)] = 1065353216;
   15125 	heap32[(r15+141)] = 0;
   15126 	heap32[(r15+142)] = 0;
   15127 	heap32[(r15+143)] = -1082130432;
   15128 	heap32[(r15+144)] = -2147483648;
   15129 	heap32[(r15+145)] = -1287930578;
   15130 	heap32[(r15+146)] = 0;
   15131 	heap32[(r15+147)] = 0;
   15132 	heap32[(r15+148)] = -1085695591;
   15133 	heap32[(r15+149)] = 0;
   15134 	heap32[(r15+150)] = 0;
   15135 	heap32[(r15+151)] = -1287930578;
   15136 	heap32[(r15+152)] = 0;
   15137 	heap32[(r15+153)] = 1065353216;
   15138 	heap32[(r15+154)] = 0;
   15139 	heap32[(r15+155)] = -2147483648;
   15140 	heap32[(r15+156)] = 1065353216;
   15141 	heap32[(r15+157)] = 0;
   15142 	heap32[(r15+158)] = 0;
   15143 	heap32[(r15+159)] = -1082130432;
   15144 	heap32[(r15+160)] = -2147483648;
   15145 	heap32[(r15+161)] = -1287930578;
   15146 	heap32[(r15+162)] = 0;
   15147 	heap32[(r15+163)] = 0;
   15148 	heap32[(r15+164)] = 1059439248;
   15149 	heap32[(r15+165)] = 0;
   15150 	heap32[(r15+166)] = 0;
   15151 	heap8[r8+720] = r13;
   15152 	heap8[r8+721] = r13;
   15153 	heap8[r8+723] = r13;
   15154 	heap8[r8+724] = r4;
   15155 	heap8[r8+725] = r13;
   15156 	heap32[(r15+183)] = 0;
   15157 	heap32[(r15+172)] = 1065353216;
   15158 	heap32[(r15+173)] = -1082130432;
   15159 	heap32[(r15+170)] = 1050253722;
   15160 	heap32[(r15+171)] = 1065353216;
   15161 	heap32[(r15+169)] = 1063675494;
   15162 	heap8[r8+722] = r13;
   15163 	heap32[(r15+179)] = 1065353216;
   15164 	heap32[(g0)] = 0;
   15165 	heap32[(g0+1)] = 1086918619;
   15166 	fmodf(i7);
   15167 	f12 = f_g0;
   15168 	if(f12 >=f13) //_LBB26_242
   15169 {
   15170 	f14 =        3.1415927410125732;
   15171 	if(f12 >f14) //_LBB26_244
   15172 {
   15173 	f14 =       -6.2831854820251465;
   15174 	f12 = f12+f14;
   15175 }
   15176 }
   15177 else{
   15178 	f14 =        6.2831854820251465;
   15179 	f12 = f12+f14;
   15180 }
   15181 	r11 = r8 >> 2;
   15182 	heapFloat[(r11+172)] = f12;
   15183 	heap32[(g0)] = 1070141403;
   15184 	heap32[(g0+1)] = 1086918619;
   15185 	fmodf(i7);
   15186 	f12 = f_g0;
   15187 	if(f12 >=f13) //_LBB26_247
   15188 {
   15189 	f14 =        3.1415927410125732;
   15190 	if(f12 >f14) //_LBB26_249
   15191 {
   15192 	f14 =       -6.2831854820251465;
   15193 	f12 = f12+f14;
   15194 }
   15195 }
   15196 else{
   15197 	f14 =        6.2831854820251465;
   15198 	f12 = f12+f14;
   15199 }
   15200 	heapFloat[(r11+173)] = f12;
   15201 	heap32[(r11+169)] = 1063675494;
   15202 	heap32[(r11+170)] = 1050253722;
   15203 	heap32[(r11+171)] = 1065353216;
   15204 	heap32[(r12+29)] = r8;
   15205 	r11 = heap32[(r12+1)];
   15206 	r14 = r11 >> 2;
   15207 	r14 = heap32[(r14)];
   15208 	r14 = r14 >> 2;
   15209 	r14 = heap32[(r14+13)];
   15210 	heap32[(g0)] = r11;
   15211 	heap32[(g0+1)] = r8;
   15212 	heap32[(g0+2)] = 1;
   15213 	__FUNCTION_TABLE__[(r14)>>2](i7);
   15214 	heap32[(g0)] = 596;
   15215 	_Znwj(i7);
   15216 	r11 = heap32[(r12+20)];
   15217 	r14 = heap32[(r12+14)];
   15218 	r15 = r_g0 >> 2;
   15219 	heap32[(r15+1)] = 5;
   15220 	heap32[(r15+2)] = -1;
   15221 	heap32[(r15+3)] = -1;
   15222 	heap8[r_g0+16] = r13;
   15223 	heap32[(r15+5)] = r14;
   15224 	heap32[(r15+6)] = r11;
   15225 	heap32[(r15+7)] = 0;
   15226 	heap32[(r15+8)] = 1050253722;
   15227 	heap32[(r15)] = r10;
   15228 	heap32[(r15+72)] = -1082130432;
   15229 	heap32[(r15+73)] = 867941678;
   15230 	heap32[(r15+74)] = -2147483648;
   15231 	heap32[(r15+75)] = 0;
   15232 	heap32[(r15+76)] = -1279541970;
   15233 	heap32[(r15+77)] = -1082130432;
   15234 	heap32[(r15+78)] = 0;
   15235 	heap32[(r15+79)] = 0;
   15236 	heap32[(r15+80)] = -2147483648;
   15237 	heap32[(r15+81)] = 0;
   15238 	heap32[(r15+82)] = 1065353216;
   15239 	heap32[(r15+83)] = 0;
   15240 	heap32[(r15+84)] = -1087163597;
   15241 	heap32[(r15+85)] = 1057384039;
   15242 	heap32[(r15+86)] = 0;
   15243 	heap32[(r15+87)] = 0;
   15244 	heap32[(r15+88)] = -1287930578;
   15245 	heap32[(r15+89)] = -1082130432;
   15246 	heap32[(r15+90)] = 0;
   15247 	heap32[(r15+91)] = 0;
   15248 	heap32[(r15+92)] = 1065353216;
   15249 	heap32[(r15+93)] = -1287930578;
   15250 	heap32[(r15+94)] = 0;
   15251 	heap32[(r15+95)] = 0;
   15252 	heap32[(r15+96)] = -2147483648;
   15253 	heap32[(r15+97)] = 0;
   15254 	heap32[(r15+98)] = 1065353216;
   15255 	heap32[(r15+99)] = 0;
   15256 	heap32[(r15+100)] = 0;
   15257 	heap32[(r15+101)] = -1088338002;
   15258 	heap32[(r15+102)] = 0;
   15259 	heap32[(r15+103)] = 0;
   15260 	heap8[r_g0+540] = r13;
   15261 	heap32[(r15+128)] = 0;
   15262 	heap32[(r15+140)] = -1082130432;
   15263 	heap32[(r15+107)] = 1008981770;
   15264 	heap32[(r15+111)] = 1028443341;
   15265 	heap32[(r15+145)] = 0;
   15266 	heap32[(r15+146)] = 0;
   15267 	heap32[(r15+147)] = 1060320051;
   15268 	heap32[(r15+148)] = 0;
   15269 	heap32[(r15+108)] = 1070141403;
   15270 	heap32[(r15+109)] = 1070141403;
   15271 	heap32[(r15+110)] = 0;
   15272 	heap32[(r15+104)] = 1065353216;
   15273 	heap32[(r15+105)] = 1050253722;
   15274 	heap32[(r15+106)] = 1065353216;
   15275 	heap32[(r12+30)] = r_g0;
   15276 	r11 = heap32[(r12+1)];
   15277 	r14 = r11 >> 2;
   15278 	r14 = heap32[(r14)];
   15279 	r14 = r14 >> 2;
   15280 	r14 = heap32[(r14+13)];
   15281 	heap32[(g0)] = r11;
   15282 	heap32[(g0+1)] = r_g0;
   15283 	heap32[(g0+2)] = 1;
   15284 	__FUNCTION_TABLE__[(r14)>>2](i7);
   15285 	heap32[(g0)] = 748;
   15286 	_Znwj(i7);
   15287 	r8 = r_g0;
   15288 	r11 = heap32[(r12+21)];
   15289 	r14 = heap32[(r12+20)];
   15290 	r15 = r8 >> 2;
   15291 	heap32[(r15+1)] = 4;
   15292 	heap32[(r15+2)] = -1;
   15293 	heap32[(r15+3)] = -1;
   15294 	heap8[r8+16] = r13;
   15295 	heap32[(r15+5)] = r14;
   15296 	heap32[(r15+6)] = r11;
   15297 	heap32[(r15+7)] = 0;
   15298 	heap32[(r15+8)] = 1050253722;
   15299 	heap32[(r15)] = r9;
   15300 	heap32[(r15+135)] = -1287930578;
   15301 	heap32[(r15+136)] = 0;
   15302 	heap32[(r15+137)] = 1065353216;
   15303 	heap32[(r15+138)] = 0;
   15304 	heap32[(r15+139)] = -2147483648;
   15305 	heap32[(r15+140)] = 1065353216;
   15306 	heap32[(r15+141)] = 0;
   15307 	heap32[(r15+142)] = 0;
   15308 	heap32[(r15+143)] = -1082130432;
   15309 	heap32[(r15+144)] = -2147483648;
   15310 	heap32[(r15+145)] = -1287930578;
   15311 	heap32[(r15+146)] = 0;
   15312 	heap32[(r15+147)] = 0;
   15313 	heap32[(r15+148)] = 1059145646;
   15314 	heap32[(r15+149)] = 0;
   15315 	heap32[(r15+150)] = 0;
   15316 	heap32[(r15+151)] = -1287930578;
   15317 	heap32[(r15+152)] = 0;
   15318 	heap32[(r15+153)] = 1065353216;
   15319 	heap32[(r15+154)] = 0;
   15320 	heap32[(r15+155)] = -2147483648;
   15321 	heap32[(r15+156)] = 1065353216;
   15322 	heap32[(r15+157)] = 0;
   15323 	heap32[(r15+158)] = 0;
   15324 	heap32[(r15+159)] = -1082130432;
   15325 	heap32[(r15+160)] = -2147483648;
   15326 	heap32[(r15+161)] = -1287930578;
   15327 	heap32[(r15+162)] = 0;
   15328 	heap32[(r15+163)] = 0;
   15329 	heap32[(r15+164)] = -1090854584;
   15330 	heap32[(r15+165)] = 0;
   15331 	heap32[(r15+166)] = 0;
   15332 	heap8[r8+720] = r13;
   15333 	heap8[r8+721] = r13;
   15334 	heap8[r8+723] = r13;
   15335 	heap8[r8+724] = r4;
   15336 	heap8[r8+725] = r13;
   15337 	heap32[(r15+183)] = 0;
   15338 	heap32[(r15+172)] = 1065353216;
   15339 	heap32[(r15+173)] = -1082130432;
   15340 	heap32[(r15+170)] = 1050253722;
   15341 	heap32[(r15+171)] = 1065353216;
   15342 	heap32[(r15+169)] = 1063675494;
   15343 	heap8[r8+722] = r13;
   15344 	heap32[(r15+179)] = 1065353216;
   15345 	heap32[(g0)] = -1077342245;
   15346 	heap32[(g0+1)] = 1086918619;
   15347 	fmodf(i7);
   15348 	f12 = f_g0;
   15349 	if(f12 >=f13) //_LBB26_252
   15350 {
   15351 	f14 =        3.1415927410125732;
   15352 	if(f12 >f14) //_LBB26_254
   15353 {
   15354 	f14 =       -6.2831854820251465;
   15355 	f12 = f12+f14;
   15356 }
   15357 }
   15358 else{
   15359 	f14 =        6.2831854820251465;
   15360 	f12 = f12+f14;
   15361 }
   15362 	r11 = r8 >> 2;
   15363 	heapFloat[(r11+172)] = f12;
   15364 	heap32[(g0)] = 0;
   15365 	heap32[(g0+1)] = 1086918619;
   15366 	fmodf(i7);
   15367 	f12 = f_g0;
   15368 	if(f12 >=f13) //_LBB26_257
   15369 {
   15370 	f14 =        3.1415927410125732;
   15371 	if(f12 >f14) //_LBB26_259
   15372 {
   15373 	f14 =       -6.2831854820251465;
   15374 	f12 = f12+f14;
   15375 }
   15376 }
   15377 else{
   15378 	f14 =        6.2831854820251465;
   15379 	f12 = f12+f14;
   15380 }
   15381 	heapFloat[(r11+173)] = f12;
   15382 	heap32[(r11+169)] = 1063675494;
   15383 	heap32[(r11+170)] = 1050253722;
   15384 	heap32[(r11+171)] = 1065353216;
   15385 	heap32[(r12+31)] = r8;
   15386 	r11 = heap32[(r12+1)];
   15387 	r14 = r11 >> 2;
   15388 	r14 = heap32[(r14)];
   15389 	r14 = r14 >> 2;
   15390 	r14 = heap32[(r14+13)];
   15391 	heap32[(g0)] = r11;
   15392 	heap32[(g0+1)] = r8;
   15393 	heap32[(g0+2)] = 1;
   15394 	__FUNCTION_TABLE__[(r14)>>2](i7);
   15395 	heap32[(g0)] = 596;
   15396 	_Znwj(i7);
   15397 	r11 = heap32[(r12+22)];
   15398 	r14 = heap32[(r12+14)];
   15399 	r15 = r_g0 >> 2;
   15400 	heap32[(r15+1)] = 5;
   15401 	heap32[(r15+2)] = -1;
   15402 	heap32[(r15+3)] = -1;
   15403 	heap8[r_g0+16] = r13;
   15404 	heap32[(r15+5)] = r14;
   15405 	heap32[(r15+6)] = r11;
   15406 	heap32[(r15+7)] = 0;
   15407 	heap32[(r15+8)] = 1050253722;
   15408 	heap32[(r15)] = r10;
   15409 	heap32[(r15+72)] = 1065353216;
   15410 	heap32[(r15+73)] = 0;
   15411 	heap32[(r15+74)] = 0;
   15412 	heap32[(r15+75)] = 0;
   15413 	heap32[(r15+76)] = 0;
   15414 	heap32[(r15+77)] = 1065353216;
   15415 	heap32[(r15+78)] = 0;
   15416 	heap32[(r15+79)] = 0;
   15417 	heap32[(r15+80)] = -2147483648;
   15418 	heap32[(r15+81)] = 0;
   15419 	heap32[(r15+82)] = 1065353216;
   15420 	heap32[(r15+83)] = 0;
   15421 	heap32[(r15+84)] = 1060320051;
   15422 	heap32[(r15+85)] = 1057384039;
   15423 	heap32[(r15+86)] = 0;
   15424 	heap32[(r15+87)] = 0;
   15425 	heap32[(r15+88)] = -1287930578;
   15426 	heap32[(r15+89)] = -1082130432;
   15427 	heap32[(r15+90)] = 0;
   15428 	heap32[(r15+91)] = 0;
   15429 	heap32[(r15+92)] = 1065353216;
   15430 	heap32[(r15+93)] = -1287930578;
   15431 	heap32[(r15+94)] = 0;
   15432 	heap32[(r15+95)] = 0;
   15433 	heap32[(r15+96)] = -2147483648;
   15434 	heap32[(r15+97)] = 0;
   15435 	heap32[(r15+98)] = 1065353216;
   15436 	heap32[(r15+99)] = 0;
   15437 	heap32[(r15+100)] = 0;
   15438 	heap32[(r15+101)] = -1088338002;
   15439 	heap32[(r15+102)] = 0;
   15440 	heap32[(r15+103)] = 0;
   15441 	heap8[r_g0+540] = r13;
   15442 	heap32[(r15+128)] = 0;
   15443 	heap32[(r15+140)] = -1082130432;
   15444 	heap32[(r15+107)] = 1008981770;
   15445 	heap32[(r15+111)] = 1028443341;
   15446 	heap32[(r15+145)] = 0;
   15447 	heap32[(r15+146)] = 0;
   15448 	heap32[(r15+147)] = 1060320051;
   15449 	heap32[(r15+148)] = 0;
   15450 	heap32[(r15+108)] = 1070141403;
   15451 	heap32[(r15+109)] = 1070141403;
   15452 	heap32[(r15+110)] = 0;
   15453 	heap32[(r15+104)] = 1065353216;
   15454 	heap32[(r15+105)] = 1050253722;
   15455 	heap32[(r15+106)] = 1065353216;
   15456 	heap32[(r12+32)] = r_g0;
   15457 	r10 = heap32[(r12+1)];
   15458 	r11 = r10 >> 2;
   15459 	r11 = heap32[(r11)];
   15460 	r11 = r11 >> 2;
   15461 	r11 = heap32[(r11+13)];
   15462 	heap32[(g0)] = r10;
   15463 	heap32[(g0+1)] = r_g0;
   15464 	heap32[(g0+2)] = 1;
   15465 	__FUNCTION_TABLE__[(r11)>>2](i7);
   15466 	heap32[(g0)] = 748;
   15467 	_Znwj(i7);
   15468 	r8 = r_g0;
   15469 	r10 = heap32[(r12+23)];
   15470 	r11 = heap32[(r12+22)];
   15471 	r14 = r8 >> 2;
   15472 	heap32[(r14+1)] = 4;
   15473 	heap32[(r14+2)] = -1;
   15474 	heap32[(r14+3)] = -1;
   15475 	heap8[r8+16] = r13;
   15476 	heap32[(r14+5)] = r11;
   15477 	heap32[(r14+6)] = r10;
   15478 	heap32[(r14+7)] = 0;
   15479 	heap32[(r14+8)] = 1050253722;
   15480 	heap32[(r14)] = r9;
   15481 	heap32[(r14+135)] = -1287930578;
   15482 	heap32[(r14+136)] = 0;
   15483 	heap32[(r14+137)] = 1065353216;
   15484 	heap32[(r14+138)] = 0;
   15485 	heap32[(r14+139)] = -2147483648;
   15486 	heap32[(r14+140)] = 1065353216;
   15487 	heap32[(r14+141)] = 0;
   15488 	heap32[(r14+142)] = 0;
   15489 	heap32[(r14+143)] = -1082130432;
   15490 	heap32[(r14+144)] = -2147483648;
   15491 	heap32[(r14+145)] = -1287930578;
   15492 	heap32[(r14+146)] = 0;
   15493 	heap32[(r14+147)] = 0;
   15494 	heap32[(r14+148)] = 1059145646;
   15495 	heap32[(r14+149)] = 0;
   15496 	heap32[(r14+150)] = 0;
   15497 	heap32[(r14+151)] = -1287930578;
   15498 	heap32[(r14+152)] = 0;
   15499 	heap32[(r14+153)] = 1065353216;
   15500 	heap32[(r14+154)] = 0;
   15501 	heap32[(r14+155)] = -2147483648;
   15502 	heap32[(r14+156)] = 1065353216;
   15503 	heap32[(r14+157)] = 0;
   15504 	heap32[(r14+158)] = 0;
   15505 	heap32[(r14+159)] = -1082130432;
   15506 	heap32[(r14+160)] = -2147483648;
   15507 	heap32[(r14+161)] = -1287930578;
   15508 	heap32[(r14+162)] = 0;
   15509 	heap32[(r14+163)] = 0;
   15510 	heap32[(r14+164)] = -1090854584;
   15511 	heap32[(r14+165)] = 0;
   15512 	heap32[(r14+166)] = 0;
   15513 	heap8[r8+720] = r13;
   15514 	heap8[r8+721] = r13;
   15515 	heap8[r8+723] = r13;
   15516 	heap8[r8+724] = r4;
   15517 	heap8[r8+725] = r13;
   15518 	heap32[(r14+183)] = 0;
   15519 	heap32[(r14+172)] = 1065353216;
   15520 	heap32[(r14+173)] = -1082130432;
   15521 	heap32[(r14+170)] = 1050253722;
   15522 	heap32[(r14+171)] = 1065353216;
   15523 	heap32[(r14+169)] = 1063675494;
   15524 	heap8[r8+722] = r13;
   15525 	heap32[(r14+179)] = 1065353216;
   15526 	heap32[(g0)] = -1077342245;
   15527 	heap32[(g0+1)] = 1086918619;
   15528 	fmodf(i7);
   15529 	f12 = f_g0;
   15530 	if(f12 >=f13) //_LBB26_262
   15531 {
   15532 	f14 =        3.1415927410125732;
   15533 	if(f12 >f14) //_LBB26_264
   15534 {
   15535 	f14 =       -6.2831854820251465;
   15536 	f12 = f12+f14;
   15537 }
   15538 }
   15539 else{
   15540 	f14 =        6.2831854820251465;
   15541 	f12 = f12+f14;
   15542 }
   15543 	r9 = r8 >> 2;
   15544 	heapFloat[(r9+172)] = f12;
   15545 	heap32[(g0)] = 0;
   15546 	heap32[(g0+1)] = 1086918619;
   15547 	fmodf(i7);
   15548 	f12 = f_g0;
   15549 	if(f12 >=f13) //_LBB26_267
   15550 {
   15551 	f13 =        3.1415927410125732;
   15552 	if(f12 >f13) //_LBB26_269
   15553 {
   15554 	f13 =       -6.2831854820251465;
   15555 	f12 = f12+f13;
   15556 }
   15557 }
   15558 else{
   15559 	f13 =        6.2831854820251465;
   15560 	f12 = f12+f13;
   15561 }
   15562 	heapFloat[(r9+173)] = f12;
   15563 	heap32[(r9+169)] = 1063675494;
   15564 	heap32[(r9+170)] = 1050253722;
   15565 	heap32[(r9+171)] = 1065353216;
   15566 	heap32[(r12+33)] = r8;
   15567 	r9 = heap32[(r12+1)];
   15568 	r10 = r9 >> 2;
   15569 	r10 = heap32[(r10)];
   15570 	r10 = r10 >> 2;
   15571 	r10 = heap32[(r10+13)];
   15572 	heap32[(g0)] = r9;
   15573 	heap32[(g0+1)] = r8;
   15574 	heap32[(g0+2)] = 1;
   15575 	__FUNCTION_TABLE__[(r10)>>2](i7);
   15576 	r8 = heap32[(r1+10)];
   15577 	r9 = heap32[(r1+9)];
   15578 	if(r8 ==r9) //_LBB26_272
   15579 {
   15580 	r10 = r9 << 1;
   15581 	r10 = r9 == 0 ? r4 : r10;
   15582 if(!(r8 >=r10)) //_LBB26_271
   15583 {
   15584 	if(r10 !=0) //_LBB26_275
   15585 {
   15586 	r8 = heap32[(r2)];
   15587 	r11 = r10 << 2;
   15588 	r8 = (r8 + 1)|0;
   15589 	r11 = r11 | 3;
   15590 	heap32[(r2)] = r8;
   15591 	r8 = (r11 + 16)|0;
   15592 	heap32[(g0)] = r8;
   15593 	malloc(i7);
   15594 	r8 = r_g0;
   15595 	if(r8 !=0) //_LBB26_277
   15596 {
   15597 	r11 = (r8 + 4)|0;
   15598 	r11 = (r13 - r11)|0;
   15599 	r11 = r11 & 15;
   15600 	r11 = (r8 + r11)|0;
   15601 	r12 = (r11 + 4)|0;
   15602 	r11 = r11 >> 2;
   15603 	heap32[(r11)] = r8;
   15604 	r8 = r12;
   15605 }
   15606 }
   15607 else{
   15608 	r8 = 0;
   15609 }
   15610 _358: do {
   15611 	if(r9 <1) //_LBB26_280
   15612 {
   15613 	r11 = heap32[(r1+11)];
   15614 }
   15615 else{
   15616 _360: while(true){
   15617 	r11 = heap32[(r1+11)];
   15618 	r12 = r13 << 2;
   15619 	r14 = (r11 + r12)|0;
   15620 	r14 = r14 >> 2;
   15621 	r12 = (r8 + r12)|0;
   15622 	r14 = heap32[(r14)];
   15623 	r13 = (r13 + 1)|0;
   15624 	r12 = r12 >> 2;
   15625 	heap32[(r12)] = r14;
   15626 if(!(r9 !=r13)) //_LBB26_281
   15627 {
   15628 break _358;
   15629 }
   15630 }
   15631 }
   15632 } while(0);
   15633 	if(r11 !=0) //_LBB26_284
   15634 {
   15635 	r12 = heapU8[r6+48];
   15636 	if(r12 !=0) //_LBB26_286
   15637 {
   15638 	r9 = gNumAlignedFree;
   15639 	r9 = r9 >> 2;
   15640 	r12 = heap32[(r9)];
   15641 	r12 = (r12 + 1)|0;
   15642 	r11 = r11 >> 2;
   15643 	heap32[(r9)] = r12;
   15644 	r9 = heap32[(r11+-1)];
   15645 	heap32[(g0)] = r9;
   15646 	free(i7);
   15647 	r9 = heap32[(r1+9)];
   15648 }
   15649 	heap32[(r1+11)] = 0;
   15650 }
   15651 	heap8[r6+48] = r4;
   15652 	heap32[(r1+11)] = r8;
   15653 	heap32[(r1+10)] = r10;
   15654 }
   15655 }
   15656 	r8 = r9 << 2;
   15657 	r9 = heap32[(r1+11)];
   15658 	r8 = (r9 + r8)|0;
   15659 	r8 = r8 >> 2;
   15660 	heap32[(r8)] = r7;
   15661 	r7 = heap32[(r1+9)];
   15662 	r5 = (r5 + 1)|0;
   15663 	r7 = (r7 + 1)|0;
   15664 	heap32[(r1+9)] = r7;
   15665 if(!(r0 !=r5)) //_LBB26_185
   15666 {
   15667 break _262;
   15668 }
   15669 }
   15670 	f3 =                         7;
   15671 	f4 =                        -2;
   15672 	r0 = (r0 + -1)|0;
   15673 	f1 = f1+f3;
   15674 	f2 = f2+f4;
   15675 	r3 = (r3 + 1)|0;
   15676 	if(r0 ==0) //_LBB26_165
   15677 {
   15678 break _161;
   15679 }
   15680 else{
   15681 continue _260;
   15682 }
   15683 }
   15684 }
   15685 }
   15686 }
   15687 }
   15688 } while(0);
   15689 	return;
   15690 break;
   15691 case 46:
   15692 	r0 = _2E_str674;
   15693 	r1 = _2E_str573;
   15694 	heap32[(g0)] = r0;
   15695 	heap32[(g0+1)] = r1;
   15696 	heap32[(g0+2)] = 53;
   15697 	_assert(i7);
   15698 break;
   15699 }
   15700 }
   15701 
   15702 function _GLOBAL__D__Z6mymainiPPc(sp)
   15703 {
   15704 	var i7;
   15705 	var fp = sp>>2;
   15706 	var r0;
   15707 	var r1;
   15708 	var r2;
   15709 	var r3;
   15710 	var r4;
   15711 	var r5;
   15712 var __label__ = 0;
   15713 	i7 = sp + -8;var g0 = i7>>2; // save stack
   15714 	r0 = _ZL14benchmarkDemo4;
   15715 	r1 = _ZTV13BenchmarkDemo;
   15716 	r2 = r0 >> 2;
   15717 	r1 = (r1 + 8)|0;
   15718 	heap32[(r2)] = r1;
   15719 	heap32[(g0)] = r0;
   15720 	_ZN13BenchmarkDemo11exitPhysicsEv(i7);
   15721 	r1 = heap32[(r2+11)];
   15722 if(!(r1 ==0)) //_LBB27_4
   15723 {
   15724 	r3 = heapU8[r0+48];
   15725 if(!(r3 ==0)) //_LBB27_3
   15726 {
   15727 	r3 = gNumAlignedFree;
   15728 	r3 = r3 >> 2;
   15729 	r4 = heap32[(r3)];
   15730 	r4 = (r4 + 1)|0;
   15731 	r1 = r1 >> 2;
   15732 	heap32[(r3)] = r4;
   15733 	r1 = heap32[(r1+-1)];
   15734 	heap32[(g0)] = r1;
   15735 	free(i7);
   15736 }
   15737 	heap32[(r2+11)] = 0;
   15738 }
   15739 	r1 = 1;
   15740 	heap8[r0+48] = r1;
   15741 	heap32[(r2+11)] = 0;
   15742 	heap32[(r2+9)] = 0;
   15743 	heap32[(r2+10)] = 0;
   15744 	r3 = heap32[(r2+6)];
   15745 if(!(r3 ==0)) //_LBB27_8
   15746 {
   15747 	r4 = heapU8[r0+28];
   15748 if(!(r4 ==0)) //_LBB27_7
   15749 {
   15750 	r4 = gNumAlignedFree;
   15751 	r4 = r4 >> 2;
   15752 	r5 = heap32[(r4)];
   15753 	r5 = (r5 + 1)|0;
   15754 	r3 = r3 >> 2;
   15755 	heap32[(r4)] = r5;
   15756 	r3 = heap32[(r3+-1)];
   15757 	heap32[(g0)] = r3;
   15758 	free(i7);
   15759 }
   15760 	heap32[(r2+6)] = 0;
   15761 }
   15762 	heap8[r0+28] = r1;
   15763 	heap32[(r2+6)] = 0;
   15764 	heap32[(r2+4)] = 0;
   15765 	heap32[(r2+5)] = 0;
   15766 	return;
   15767 }
   15768 
   15769 function _ZN14BenchmarkDemo4D1Ev(sp)
   15770 {
   15771 	var i7;
   15772 	var fp = sp>>2;
   15773 	var r0;
   15774 	var r1;
   15775 	var r2;
   15776 var __label__ = 0;
   15777 	i7 = sp + -8;var g0 = i7>>2; // save stack
   15778 	r0 = heap32[(fp)];
   15779 	r1 = _ZTV14BenchmarkDemo4;
   15780 	r2 = r0 >> 2;
   15781 	r1 = (r1 + 8)|0;
   15782 	heap32[(r2)] = r1;
   15783 	heap32[(g0)] = r0;
   15784 	_ZN13BenchmarkDemoD2Ev(i7);
   15785 	return;
   15786 }
   15787 
   15788 function _ZN14BenchmarkDemo4D0Ev(sp)
   15789 {
   15790 	var i7;
   15791 	var fp = sp>>2;
   15792 	var r0;
   15793 	var r1;
   15794 	var r2;
   15795 var __label__ = 0;
   15796 	i7 = sp + -8;var g0 = i7>>2; // save stack
   15797 	r0 = heap32[(fp)];
   15798 	r1 = _ZTV14BenchmarkDemo4;
   15799 	r2 = r0 >> 2;
   15800 	r1 = (r1 + 8)|0;
   15801 	heap32[(r2)] = r1;
   15802 	heap32[(g0)] = r0;
   15803 	_ZN13BenchmarkDemoD2Ev(i7);
   15804 	heap32[(g0)] = r0;
   15805 	_ZdlPv(i7);
   15806 	return;
   15807 }
   15808 
   15809 function __draw(sp)
   15810 {
   15811 	var i7;
   15812 	var fp = sp>>2;
   15813 	var r0;
   15814 var __label__ = 0;
   15815 	i7 = sp + -8;var g0 = i7>>2; // save stack
   15816 	r0 = _ZL14benchmarkDemo4;
   15817 	heap32[(g0)] = r0;
   15818 	_ZN13BenchmarkDemo20clientMoveAndDisplayEv(i7);
   15819 	return;
   15820 }
   15821 
   15822 function _ZN13BenchmarkDemoD2Ev(sp)
   15823 {
   15824 	var i7;
   15825 	var fp = sp>>2;
   15826 	var r0;
   15827 	var r1;
   15828 	var r2;
   15829 	var r3;
   15830 	var r4;
   15831 	var r5;
   15832 var __label__ = 0;
   15833 	i7 = sp + -8;var g0 = i7>>2; // save stack
   15834 	r0 = heap32[(fp)];
   15835 	r1 = _ZTV13BenchmarkDemo;
   15836 	r2 = r0 >> 2;
   15837 	r1 = (r1 + 8)|0;
   15838 	heap32[(r2)] = r1;
   15839 	heap32[(g0)] = r0;
   15840 	_ZN13BenchmarkDemo11exitPhysicsEv(i7);
   15841 	r1 = heap32[(r2+11)];
   15842 if(!(r1 ==0)) //_LBB31_4
   15843 {
   15844 	r3 = heapU8[r0+48];
   15845 if(!(r3 ==0)) //_LBB31_3
   15846 {
   15847 	r3 = gNumAlignedFree;
   15848 	r3 = r3 >> 2;
   15849 	r4 = heap32[(r3)];
   15850 	r4 = (r4 + 1)|0;
   15851 	r1 = r1 >> 2;
   15852 	heap32[(r3)] = r4;
   15853 	r1 = heap32[(r1+-1)];
   15854 	heap32[(g0)] = r1;
   15855 	free(i7);
   15856 }
   15857 	heap32[(r2+11)] = 0;
   15858 }
   15859 	r1 = 1;
   15860 	heap8[r0+48] = r1;
   15861 	heap32[(r2+11)] = 0;
   15862 	heap32[(r2+9)] = 0;
   15863 	heap32[(r2+10)] = 0;
   15864 	r3 = heap32[(r2+6)];
   15865 if(!(r3 ==0)) //_LBB31_8
   15866 {
   15867 	r4 = heapU8[r0+28];
   15868 if(!(r4 ==0)) //_LBB31_7
   15869 {
   15870 	r4 = gNumAlignedFree;
   15871 	r4 = r4 >> 2;
   15872 	r5 = heap32[(r4)];
   15873 	r5 = (r5 + 1)|0;
   15874 	r3 = r3 >> 2;
   15875 	heap32[(r4)] = r5;
   15876 	r3 = heap32[(r3+-1)];
   15877 	heap32[(g0)] = r3;
   15878 	free(i7);
   15879 }
   15880 	heap32[(r2+6)] = 0;
   15881 }
   15882 	heap8[r0+28] = r1;
   15883 	heap32[(r2+6)] = 0;
   15884 	heap32[(r2+4)] = 0;
   15885 	heap32[(r2+5)] = 0;
   15886 	return;
   15887 }
   15888 
   15889 function __init(sp)
   15890 {
   15891 	var i7;
   15892 	var fp = sp>>2;
   15893 	var r0;
   15894 	var r1;
   15895 var __label__ = 0;
   15896 	i7 = sp + 0;var g0 = i7>>2; // save stack
   15897 	r0 = gDisableDeactivation;
   15898 	r1 = 1;
   15899 	heap8[r0] = r1;
   15900 	_ZN13BenchmarkDemo11initPhysicsEv(i7);
   15901 	return;
   15902 }
   15903 
   15904 function _ZN15btNullPairCache23getOverlappingPairArrayEv(sp)
   15905 {
   15906 	var i7;
   15907 	var fp = sp>>2;
   15908 	var r0;
   15909 var __label__ = 0;
   15910 	i7 = sp + 0;var g0 = i7>>2; // save stack
   15911 	r0 = heap32[(fp)];
   15912 	r0 = (r0 + 4)|0;
   15913 	r_g0 = r0;
   15914 	return;
   15915 }
   15916 
   15917 function _ZN15btNullPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher(sp)
   15918 {
   15919 	var i7;
   15920 	var fp = sp>>2;
   15921 var __label__ = 0;
   15922 	i7 = sp + 0;var g0 = i7>>2; // save stack
   15923 	return;
   15924 }
   15925 
   15926 function _ZNK15btNullPairCache22getNumOverlappingPairsEv(sp)
   15927 {
   15928 	var i7;
   15929 	var fp = sp>>2;
   15930 	var r0;
   15931 var __label__ = 0;
   15932 	i7 = sp + 0;var g0 = i7>>2; // save stack
   15933 	r0 = 0;
   15934 	r_g0 = r0;
   15935 	return;
   15936 }
   15937 
   15938 function _ZN15btNullPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher(sp)
   15939 {
   15940 	var i7;
   15941 	var fp = sp>>2;
   15942 var __label__ = 0;
   15943 	i7 = sp + 0;var g0 = i7>>2; // save stack
   15944 	return;
   15945 }
   15946 
   15947 function _ZN15btNullPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback(sp)
   15948 {
   15949 	var i7;
   15950 	var fp = sp>>2;
   15951 var __label__ = 0;
   15952 	i7 = sp + 0;var g0 = i7>>2; // save stack
   15953 	return;
   15954 }
   15955 
   15956 function _ZN15btNullPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher(sp)
   15957 {
   15958 	var i7;
   15959 	var fp = sp>>2;
   15960 var __label__ = 0;
   15961 	i7 = sp + 0;var g0 = i7>>2; // save stack
   15962 	return;
   15963 }
   15964 
   15965 function _ZN15btNullPairCache8findPairEP17btBroadphaseProxyS1_(sp)
   15966 {
   15967 	var i7;
   15968 	var fp = sp>>2;
   15969 	var r0;
   15970 var __label__ = 0;
   15971 	i7 = sp + 0;var g0 = i7>>2; // save stack
   15972 	r0 = 0;
   15973 	r_g0 = r0;
   15974 	return;
   15975 }
   15976 
   15977 function _ZN15btNullPairCache18hasDeferredRemovalEv(sp)
   15978 {
   15979 	var i7;
   15980 	var fp = sp>>2;
   15981 	var r0;
   15982 var __label__ = 0;
   15983 	i7 = sp + 0;var g0 = i7>>2; // save stack
   15984 	r0 = 1;
   15985 	r_g0 = r0;
   15986 	return;
   15987 }
   15988 
   15989 function _ZN15btNullPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback(sp)
   15990 {
   15991 	var i7;
   15992 	var fp = sp>>2;
   15993 var __label__ = 0;
   15994 	i7 = sp + 0;var g0 = i7>>2; // save stack
   15995 	return;
   15996 }
   15997 
   15998 function _ZN15btNullPairCache18addOverlappingPairEP17btBroadphaseProxyS1_(sp)
   15999 {
   16000 	var i7;
   16001 	var fp = sp>>2;
   16002 	var r0;
   16003 var __label__ = 0;
   16004 	i7 = sp + 0;var g0 = i7>>2; // save stack
   16005 	r0 = 0;
   16006 	r_g0 = r0;
   16007 	return;
   16008 }
   16009 
   16010 function _ZN15btNullPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher(sp)
   16011 {
   16012 	var i7;
   16013 	var fp = sp>>2;
   16014 	var r0;
   16015 var __label__ = 0;
   16016 	i7 = sp + 0;var g0 = i7>>2; // save stack
   16017 	r0 = 0;
   16018 	r_g0 = r0;
   16019 	return;
   16020 }
   16021 
   16022 function _ZN15btNullPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher(sp)
   16023 {
   16024 	var i7;
   16025 	var fp = sp>>2;
   16026 var __label__ = 0;
   16027 	i7 = sp + 0;var g0 = i7>>2; // save stack
   16028 	return;
   16029 }
   16030 
   16031 function _ZN15btNullPairCache20sortOverlappingPairsEP12btDispatcher(sp)
   16032 {
   16033 	var i7;
   16034 	var fp = sp>>2;
   16035 var __label__ = 0;
   16036 	i7 = sp + 0;var g0 = i7>>2; // save stack
   16037 	return;
   16038 }
   16039 
   16040 function _ZN15btNullPairCache26getOverlappingPairArrayPtrEv(sp)
   16041 {
   16042 	var i7;
   16043 	var fp = sp>>2;
   16044 	var r0;
   16045 var __label__ = 0;
   16046 	i7 = sp + 0;var g0 = i7>>2; // save stack
   16047 	r0 = heap32[(fp)];
   16048 	r0 = r0 >> 2;
   16049 	r0 = heap32[(r0+4)];
   16050 	r_g0 = r0;
   16051 	return;
   16052 }
   16053 
   16054 function _ZNK15btNullPairCache26getOverlappingPairArrayPtrEv(sp)
   16055 {
   16056 	var i7;
   16057 	var fp = sp>>2;
   16058 	var r0;
   16059 var __label__ = 0;
   16060 	i7 = sp + 0;var g0 = i7>>2; // save stack
   16061 	r0 = heap32[(fp)];
   16062 	r0 = r0 >> 2;
   16063 	r0 = heap32[(r0+4)];
   16064 	r_g0 = r0;
   16065 	return;
   16066 }
   16067 
   16068 function _ZN15btNullPairCacheD1Ev(sp)
   16069 {
   16070 	var i7;
   16071 	var fp = sp>>2;
   16072 	var r0;
   16073 	var r1;
   16074 	var r2;
   16075 	var r3;
   16076 	var r4;
   16077 var __label__ = 0;
   16078 	i7 = sp + -8;var g0 = i7>>2; // save stack
   16079 	r0 = heap32[(fp)];
   16080 	r1 = _ZTV15btNullPairCache;
   16081 	r2 = r0 >> 2;
   16082 	r1 = (r1 + 8)|0;
   16083 	heap32[(r2)] = r1;
   16084 	r1 = heap32[(r2+4)];
   16085 if(!(r1 ==0)) //_LBB48_4
   16086 {
   16087 	r3 = heapU8[r0+20];
   16088 if(!(r3 ==0)) //_LBB48_3
   16089 {
   16090 	r3 = gNumAlignedFree;
   16091 	r3 = r3 >> 2;
   16092 	r4 = heap32[(r3)];
   16093 	r4 = (r4 + 1)|0;
   16094 	r1 = r1 >> 2;
   16095 	heap32[(r3)] = r4;
   16096 	r1 = heap32[(r1+-1)];
   16097 	heap32[(g0)] = r1;
   16098 	free(i7);
   16099 }
   16100 	heap32[(r2+4)] = 0;
   16101 }
   16102 	r1 = 1;
   16103 	heap8[r0+20] = r1;
   16104 	heap32[(r2+4)] = 0;
   16105 	heap32[(r2+2)] = 0;
   16106 	heap32[(r2+3)] = 0;
   16107 	return;
   16108 }
   16109 
   16110 function _ZN15btNullPairCacheD0Ev(sp)
   16111 {
   16112 	var i7;
   16113 	var fp = sp>>2;
   16114 	var r0;
   16115 	var r1;
   16116 	var r2;
   16117 	var r3;
   16118 	var r4;
   16119 var __label__ = 0;
   16120 	i7 = sp + -8;var g0 = i7>>2; // save stack
   16121 	r0 = heap32[(fp)];
   16122 	r1 = _ZTV15btNullPairCache;
   16123 	r2 = r0 >> 2;
   16124 	r1 = (r1 + 8)|0;
   16125 	heap32[(r2)] = r1;
   16126 	r1 = heap32[(r2+4)];
   16127 if(!(r1 ==0)) //_LBB49_4
   16128 {
   16129 	r3 = heapU8[r0+20];
   16130 if(!(r3 ==0)) //_LBB49_3
   16131 {
   16132 	r3 = gNumAlignedFree;
   16133 	r3 = r3 >> 2;
   16134 	r4 = heap32[(r3)];
   16135 	r4 = (r4 + 1)|0;
   16136 	r1 = r1 >> 2;
   16137 	heap32[(r3)] = r4;
   16138 	r1 = heap32[(r1+-1)];
   16139 	heap32[(g0)] = r1;
   16140 	free(i7);
   16141 }
   16142 	heap32[(r2+4)] = 0;
   16143 }
   16144 	r1 = 1;
   16145 	heap8[r0+20] = r1;
   16146 	heap32[(r2+4)] = 0;
   16147 	heap32[(r2+2)] = 0;
   16148 	heap32[(r2+3)] = 0;
   16149 	heap32[(g0)] = r0;
   16150 	_ZdlPv(i7);
   16151 	return;
   16152 }
   16153 
   16154 function _ZNK20btAxisSweep3InternalItE7getAabbEP17btBroadphaseProxyR9btVector3S4_(sp)
   16155 {
   16156 	var i7;
   16157 	var fp = sp>>2;
   16158 	var r0;
   16159 	var r1;
   16160 	var r2;
   16161 var __label__ = 0;
   16162 	i7 = sp + 0;var g0 = i7>>2; // save stack
   16163 	r0 = heap32[(fp+1)];
   16164 	r1 = heap32[(fp+2)];
   16165 	r0 = r0 >> 2;
   16166 	r1 = r1 >> 2;
   16167 	heap32[(r1)] = heap32[(r0+4)];
   16168 	heap32[(r1+1)] = heap32[(r0+5)];
   16169 	r2 = heap32[(fp+3)];
   16170 	heap32[(r1+2)] = heap32[(r0+6)];
   16171 	r2 = r2 >> 2;
   16172 	heap32[(r1+3)] = heap32[(r0+7)];
   16173 	heap32[(r2)] = heap32[(r0+8)];
   16174 	heap32[(r2+1)] = heap32[(r0+9)];
   16175 	heap32[(r2+2)] = heap32[(r0+10)];
   16176 	heap32[(r2+3)] = heap32[(r0+11)];
   16177 	return;
   16178 }
   16179 
   16180 function _ZN20btAxisSweep3InternalItE23getOverlappingPairCacheEv(sp)
   16181 {
   16182 	var i7;
   16183 	var fp = sp>>2;
   16184 	var r0;
   16185 var __label__ = 0;
   16186 	i7 = sp + 0;var g0 = i7>>2; // save stack
   16187 	r0 = heap32[(fp)];
   16188 	r0 = r0 >> 2;
   16189 	r0 = heap32[(r0+23)];
   16190 	r_g0 = r0;
   16191 	return;
   16192 }
   16193 
   16194 function _ZNK20btAxisSweep3InternalItE23getOverlappingPairCacheEv(sp)
   16195 {
   16196 	var i7;
   16197 	var fp = sp>>2;
   16198 	var r0;
   16199 var __label__ = 0;
   16200 	i7 = sp + 0;var g0 = i7>>2; // save stack
   16201 	r0 = heap32[(fp)];
   16202 	r0 = r0 >> 2;
   16203 	r0 = heap32[(r0+23)];
   16204 	r_g0 = r0;
   16205 	return;
   16206 }
   16207 
   16208 function _ZNK20btAxisSweep3InternalItE17getBroadphaseAabbER9btVector3S2_(sp)
   16209 {
   16210 	var i7;
   16211 	var fp = sp>>2;
   16212 	var r0;
   16213 	var r1;
   16214 	var r2;
   16215 var __label__ = 0;
   16216 	i7 = sp + 0;var g0 = i7>>2; // save stack
   16217 	r0 = heap32[(fp)];
   16218 	r1 = heap32[(fp+1)];
   16219 	r0 = r0 >> 2;
   16220 	r1 = r1 >> 2;
   16221 	heap32[(r1)] = heap32[(r0+2)];
   16222 	heap32[(r1+1)] = heap32[(r0+3)];
   16223 	r2 = heap32[(fp+2)];
   16224 	heap32[(r1+2)] = heap32[(r0+4)];
   16225 	r2 = r2 >> 2;
   16226 	heap32[(r1+3)] = heap32[(r0+5)];
   16227 	heap32[(r2)] = heap32[(r0+6)];
   16228 	heap32[(r2+1)] = heap32[(r0+7)];
   16229 	heap32[(r2+2)] = heap32[(r0+8)];
   16230 	heap32[(r2+3)] = heap32[(r0+9)];
   16231 	return;
   16232 }
   16233 
   16234 function _ZN20btAxisSweep3InternalItE9resetPoolEP12btDispatcher(sp)
   16235 {
   16236 	var i7;
   16237 	var fp = sp>>2;
   16238 	var r0;
   16239 	var r1;
   16240 	var r2;
   16241 	var r3;
   16242 	var r4;
   16243 var __label__ = 0;
   16244 	i7 = sp + 0;var g0 = i7>>2; // save stack
   16245 	r0 = heap32[(fp)];
   16246 	r1 = heapU16[(r0+56)>>1];
   16247 if(!(r1 !=0)) //_LBB54_6
   16248 {
   16249 	r1 = 1;
   16250 	heap16[(r0+64)>>1] = r1;
   16251 	r2 = heapU16[(r0+58)>>1];
   16252 	if(uint(r2) >uint(1)) //_LBB54_3
   16253 {
   16254 	r3 = 2;
   16255 _5: while(true){
   16256 	r2 = r1 & 65535;
   16257 	r4 = r0 >> 2;
   16258 	r2 = r2 << 6;
   16259 	r4 = heap32[(r4+15)];
   16260 	r2 = (r4 + r2)|0;
   16261 	heap16[(r2+48)>>1] = r3;
   16262 	r1 = (r1 + 1)|0;
   16263 	r2 = heapU16[(r0+58)>>1];
   16264 	r3 = (r3 + 1)|0;
   16265 	r4 = r1 & 65535;
   16266 if(!(uint(r2) >uint(r4))) //_LBB54_4
   16267 {
   16268 break _5;
   16269 }
   16270 }
   16271 }
   16272 	r1 = r2 & 65535;
   16273 	r0 = r0 >> 2;
   16274 	r1 = r1 << 6;
   16275 	r0 = heap32[(r0+15)];
   16276 	r0 = (r1 + r0)|0;
   16277 	r1 = 0;
   16278 	heap16[(r0+-16)>>1] = r1;
   16279 }
   16280 	return;
   16281 }
   16282 
   16283 function _ZN20btAxisSweep3InternalItE10printStatsEv(sp)
   16284 {
   16285 	var i7;
   16286 	var fp = sp>>2;
   16287 var __label__ = 0;
   16288 	i7 = sp + 0;var g0 = i7>>2; // save stack
   16289 	return;
   16290 }
   16291 
   16292 function _ZN20btAxisSweep3InternalItE8aabbTestERK9btVector3S3_R24btBroadphaseAabbCallback(sp)
   16293 {
   16294 	var i7;
   16295 	var fp = sp>>2;
   16296 	var r0;
   16297 	var r1;
   16298 	var r2;
   16299 	var r3;
   16300 	var r4;
   16301 	var r5;
   16302 	var r6;
   16303 	var r7;
   16304 	var r8;
   16305 	var r9;
   16306 	var r10;
   16307 	var r11;
   16308 	var f0;
   16309 	var f1;
   16310 var __label__ = 0;
   16311 	i7 = sp + -16;var g0 = i7>>2; // save stack
   16312 	r0 = heap32[(fp)];
   16313 	r1 = r0 >> 2;
   16314 	r2 = heap32[(r1+27)];
   16315 	r3 = heap32[(fp+1)];
   16316 	r4 = heap32[(fp+2)];
   16317 	r5 = heap32[(fp+3)];
   16318 	if(r2 !=0) //_LBB56_2
   16319 {
   16320 	r0 = r2 >> 2;
   16321 	r0 = heap32[(r0)];
   16322 	r0 = r0 >> 2;
   16323 	r0 = heap32[(r0+7)];
   16324 	heap32[(g0)] = r2;
   16325 	heap32[(g0+1)] = r3;
   16326 	heap32[(g0+2)] = r4;
   16327 	heap32[(g0+3)] = r5;
   16328 	__FUNCTION_TABLE__[(r0)>>2](i7);
   16329 	return;
   16330 }
   16331 else{
   16332 	r2 = heapU16[(r0+56)>>1];
   16333 	r2 = r2 << 1;
   16334 	r2 = r2 | 1;
   16335 if(!(r2 ==1)) //_LBB56_18
   16336 {
   16337 	r2 = 1;
   16338 	r6 = 2;
   16339 _6: while(true){
   16340 	r7 = r6;
   16341 	r6 = r2 & 65535;
   16342 	r8 = heap32[(r1+17)];
   16343 	r6 = r6 << 2;
   16344 	r9 = heapU8[r8+r6];
   16345 	r9 = r9 & 1;
   16346 if(!(r9 ==0)) //_LBB56_17
   16347 {
   16348 	r6 = (r8 + r6)|0;
   16349 	r6 = heapU16[(r6+2)>>1];
   16350 	r8 = heap32[(r1+15)];
   16351 	r6 = r6 << 6;
   16352 	r6 = (r8 + r6)|0;
   16353 	r8 = r3 >> 2;
   16354 	r9 = r6 >> 2;
   16355 	f0 = heapFloat[(r8)];
   16356 	f1 = heapFloat[(r9+8)];
   16357 	if(f0 >f1) //_LBB56_8
   16358 {
   16359 __label__ = 8;
   16360 }
   16361 else{
   16362 	r10 = r4 >> 2;
   16363 	f0 = heapFloat[(r10)];
   16364 	f1 = heapFloat[(r9+4)];
   16365 	if(f0 <f1) //_LBB56_8
   16366 {
   16367 __label__ = 8;
   16368 }
   16369 else{
   16370 	r10 = 1;
   16371 __label__ = 9;
   16372 }
   16373 }
   16374 if (__label__ == 8){
   16375 	r10 = 0;
   16376 }
   16377 	f0 = heapFloat[(r8+2)];
   16378 	f1 = heapFloat[(r9+10)];
   16379 	if(f0 >f1) //_LBB56_12
   16380 {
   16381 __label__ = 11;
   16382 }
   16383 else{
   16384 	r11 = r4 >> 2;
   16385 	f0 = heapFloat[(r11+2)];
   16386 	f1 = heapFloat[(r9+6)];
   16387 	if(f0 <f1) //_LBB56_12
   16388 {
   16389 __label__ = 11;
   16390 }
   16391 else{
   16392 __label__ = 12;
   16393 }
   16394 }
   16395 if (__label__ == 11){
   16396 	r10 = 0;
   16397 }
   16398 	f0 = heapFloat[(r8+1)];
   16399 	f1 = heapFloat[(r9+9)];
   16400 if(!(f0 >f1)) //_LBB56_17
   16401 {
   16402 	r8 = r4 >> 2;
   16403 	f0 = heapFloat[(r8+1)];
   16404 	f1 = heapFloat[(r9+5)];
   16405 if(!(f0 <f1)) //_LBB56_17
   16406 {
   16407 	r8 = r10 & 255;
   16408 if(!(r8 ==0)) //_LBB56_17
   16409 {
   16410 	r8 = r5 >> 2;
   16411 	r8 = heap32[(r8)];
   16412 	r8 = r8 >> 2;
   16413 	r8 = heap32[(r8+2)];
   16414 	heap32[(g0)] = r5;
   16415 	heap32[(g0+1)] = r6;
   16416 	__FUNCTION_TABLE__[(r8)>>2](i7);
   16417 }
   16418 }
   16419 }
   16420 }
   16421 	r8 = heapU16[(r0+56)>>1];
   16422 	r6 = (r7 + 1)|0;
   16423 	r2 = (r2 + 1)|0;
   16424 	r8 = r8 << 1;
   16425 	r7 = r7 & 65535;
   16426 	r8 = r8 | 1;
   16427 if(!(uint(r7) <uint(r8))) //_LBB56_4
   16428 {
   16429 break _6;
   16430 }
   16431 }
   16432 }
   16433 	return;
   16434 }
   16435 }
   16436 
   16437 function _ZN20btAxisSweep3InternalItE7rayTestERK9btVector3S3_R23btBroadphaseRayCallbackS3_S3_(sp)
   16438 {
   16439 	var i7;
   16440 	var fp = sp>>2;
   16441 	var r0;
   16442 	var r1;
   16443 	var r2;
   16444 	var r3;
   16445 	var r4;
   16446 	var r5;
   16447 	var r6;
   16448 	var r7;
   16449 var __label__ = 0;
   16450 	i7 = sp + -24;var g0 = i7>>2; // save stack
   16451 	r0 = heap32[(fp)];
   16452 	r1 = r0 >> 2;
   16453 	r2 = heap32[(r1+27)];
   16454 	r3 = heap32[(fp+3)];
   16455 	if(r2 !=0) //_LBB57_2
   16456 {
   16457 	r0 = heap32[(fp+1)];
   16458 	r1 = heap32[(fp+2)];
   16459 	r4 = heap32[(fp+4)];
   16460 	r5 = heap32[(fp+5)];
   16461 	r6 = r2 >> 2;
   16462 	r6 = heap32[(r6)];
   16463 	r6 = r6 >> 2;
   16464 	r6 = heap32[(r6+6)];
   16465 	heap32[(g0)] = r2;
   16466 	heap32[(g0+1)] = r0;
   16467 	heap32[(g0+2)] = r1;
   16468 	heap32[(g0+3)] = r3;
   16469 	heap32[(g0+4)] = r4;
   16470 	heap32[(g0+5)] = r5;
   16471 	__FUNCTION_TABLE__[(r6)>>2](i7);
   16472 	return;
   16473 }
   16474 else{
   16475 	r2 = heapU16[(r0+56)>>1];
   16476 	r2 = r2 << 1;
   16477 	r2 = r2 | 1;
   16478 if(!(r2 ==1)) //_LBB57_7
   16479 {
   16480 	r2 = 1;
   16481 	r4 = 2;
   16482 _6: while(true){
   16483 	r5 = r2 & 65535;
   16484 	r6 = heap32[(r1+17)];
   16485 	r5 = r5 << 2;
   16486 	r7 = heapU8[r6+r5];
   16487 	r7 = r7 & 1;
   16488 if(!(r7 ==0)) //_LBB57_6
   16489 {
   16490 	r7 = r3 >> 2;
   16491 	r7 = heap32[(r7)];
   16492 	r7 = r7 >> 2;
   16493 	r5 = (r6 + r5)|0;
   16494 	r5 = heapU16[(r5+2)>>1];
   16495 	r6 = heap32[(r7+2)];
   16496 	r7 = heap32[(r1+15)];
   16497 	r5 = r5 << 6;
   16498 	r5 = (r7 + r5)|0;
   16499 	heap32[(g0)] = r3;
   16500 	heap32[(g0+1)] = r5;
   16501 	__FUNCTION_TABLE__[(r6)>>2](i7);
   16502 }
   16503 	r5 = heapU16[(r0+56)>>1];
   16504 	r6 = (r4 + 1)|0;
   16505 	r2 = (r2 + 1)|0;
   16506 	r5 = r5 << 1;
   16507 	r7 = r4 & 65535;
   16508 	r5 = r5 | 1;
   16509 	r4 = r6;
   16510 if(!(uint(r7) <uint(r5))) //_LBB57_4
   16511 {
   16512 break _6;
   16513 }
   16514 }
   16515 }
   16516 	return;
   16517 }
   16518 }
   16519 
   16520 function _ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(sp)
   16521 {
   16522 	var i7;
   16523 	var fp = sp>>2;
   16524 	var r0;
   16525 	var r1;
   16526 	var r2;
   16527 	var r3;
   16528 	var r4;
   16529 	var f0;
   16530 	var f1;
   16531 	var f2;
   16532 	var f3;
   16533 	var f4;
   16534 	var f5;
   16535 var __label__ = 0;
   16536 	i7 = sp + 0;var g0 = i7>>2; // save stack
   16537 	r0 = heap32[(fp)];
   16538 	r1 = r0 >> 2;
   16539 	f0 = heapFloat[(fp+2)];
   16540 	f1 = heapFloat[(r1+2)];
   16541 	f2 = heapFloat[(fp+4)];
   16542 	f3 = heapFloat[(r1+4)];
   16543 	f4 = heapFloat[(fp+3)];
   16544 	f5 = heapFloat[(r1+3)];
   16545 	f0 = f0-f1;
   16546 	f1 = heapFloat[(r1+10)];
   16547 	f2 = f2-f3;
   16548 	f3 = heapFloat[(r1+12)];
   16549 	f4 = f4-f5;
   16550 	f5 = heapFloat[(r1+11)];
   16551 	f0 = f0*f1;
   16552 	r1 = heap32[(fp+1)];
   16553 	r2 = heap32[(fp+5)];
   16554 	f1 = f2*f3;
   16555 	f2 = f4*f5;
   16556 	f3 =                         0;
   16557 	if(f0 >f3) //_LBB58_2
   16558 {
   16559 	r3 = heapU16[(r0+6)>>1];
   16560 	f4 = r3; //fitos r3, f4
   16561 	if(f0 <f4) //_LBB58_4
   16562 {
   16563 	r3 = heapU16[(r0+4)>>1];
   16564 	r4 = Math.floor(f0);
   16565 	r3 = r3 & r4;
   16566 	r3 = r3 | r2;
   16567 }
   16568 else{
   16569 	r4 = heapU16[(r0+4)>>1];
   16570 	r3 = r4 & r3;
   16571 	r3 = r3 | r2;
   16572 }
   16573 }
   16574 else{
   16575 	r3 = r2;
   16576 }
   16577 	heap16[(r1)>>1] = r3;
   16578 	if(f2 >f3) //_LBB58_7
   16579 {
   16580 	r3 = heapU16[(r0+6)>>1];
   16581 	f0 = r3; //fitos r3, f0
   16582 	if(f2 <f0) //_LBB58_9
   16583 {
   16584 	r3 = heapU16[(r0+4)>>1];
   16585 	r4 = Math.floor(f2);
   16586 	r3 = r3 & r4;
   16587 	r3 = r3 | r2;
   16588 }
   16589 else{
   16590 	r4 = heapU16[(r0+4)>>1];
   16591 	r3 = r4 & r3;
   16592 	r3 = r3 | r2;
   16593 }
   16594 }
   16595 else{
   16596 	r3 = r2;
   16597 }
   16598 	heap16[(r1+2)>>1] = r3;
   16599 	if(f1 >f3) //_LBB58_12
   16600 {
   16601 	r3 = heapU16[(r0+6)>>1];
   16602 	f0 = r3; //fitos r3, f0
   16603 	if(f1 <f0) //_LBB58_14
   16604 {
   16605 	r0 = heapU16[(r0+4)>>1];
   16606 	r3 = Math.floor(f1);
   16607 	r0 = r0 & r3;
   16608 	r2 = r0 | r2;
   16609 }
   16610 else{
   16611 	r0 = heapU16[(r0+4)>>1];
   16612 	r0 = r0 & r3;
   16613 	r2 = r0 | r2;
   16614 }
   16615 }
   16616 	heap16[(r1+4)>>1] = r2;
   16617 	return;
   16618 }
   16619 
   16620 function _ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(sp)
   16621 {
   16622 	var i7;
   16623 	var fp = sp>>2;
   16624 	var r0;
   16625 	var r1;
   16626 	var r2;
   16627 	var r3;
   16628 	var r4;
   16629 	var r5;
   16630 	var r6;
   16631 	var r7;
   16632 	var r8;
   16633 	var r9;
   16634 	var r10;
   16635 	var r11;
   16636 	var r12;
   16637 	var r13;
   16638 	var r14;
   16639 	var r15;
   16640 	var r16;
   16641 	var r17;
   16642 	var r18;
   16643 	var r19;
   16644 	var r20;
   16645 	var r21;
   16646 	var r22;
   16647 	var r23;
   16648 	var r24;
   16649 	var r25;
   16650 var __label__ = 0;
   16651 	i7 = sp + -16;var g0 = i7>>2; // save stack
   16652 	r0 = heap32[(fp+2)];
   16653 	r1 = heap32[(fp+1)];
   16654 	r2 = (r0 + r1)|0;
   16655 	r3 = r2 >>> 31;
   16656 	r4 = heap32[(fp)];
   16657 	r2 = (r2 + r3)|0;
   16658 	r3 = r4 >> 2;
   16659 	r2 = r2 & 536870910;
   16660 	r5 = heap32[(r3+3)];
   16661 	r2 = r2 << 3;
   16662 	r2 = (r5 + r2)|0;
   16663 	r2 = r2 >> 2;
   16664 	r5 = heap32[(r2)];
   16665 	r6 = heap32[(r2+1)];
   16666 	r2 = heap32[(r2+2)];
   16667 	r7 = r1;
   16668 	r8 = r0;
   16669 _1: while(true){
   16670 	r9 = heap32[(r3+3)];
   16671 	r10 = r7 << 4;
   16672 	r10 = (r9 + r10)|0;
   16673 	r11 = 0;
   16674 _3: while(true){
   16675 	r12 = r11 << 4;
   16676 	r12 = (r10 + r12)|0;
   16677 	r12 = r12 >> 2;
   16678 	r13 = r11 << 2;
   16679 	r14 = heap32[(r12)];
   16680 	if(r14 !=0) //_LBB59_5
   16681 {
   16682 	r15 = r14 >> 2;
   16683 	r15 = heap32[(r15+3)];
   16684 }
   16685 else{
   16686 	r15 = -1;
   16687 }
   16688 	if(r5 !=0) //_LBB59_8
   16689 {
   16690 	r16 = r5 >> 2;
   16691 	r16 = heap32[(r16+3)];
   16692 }
   16693 else{
   16694 	r16 = -1;
   16695 }
   16696 	r17 = r13 << 2;
   16697 	r17 = (r10 + r17)|0;
   16698 	r17 = r17 >> 2;
   16699 	r17 = heap32[(r17+1)];
   16700 	if(r17 !=0) //_LBB59_11
   16701 {
   16702 	r18 = r17 >> 2;
   16703 	r18 = heap32[(r18+3)];
   16704 }
   16705 else{
   16706 	r18 = -1;
   16707 }
   16708 	if(r6 !=0) //_LBB59_14
   16709 {
   16710 	r19 = r6 >> 2;
   16711 	r19 = heap32[(r19+3)];
   16712 }
   16713 else{
   16714 	r19 = -1;
   16715 }
   16716 _21: do {
   16717 if(!(r15 >r16)) //_LBB59_2
   16718 {
   16719 if(!(r14 !=r5)) //_LBB59_18
   16720 {
   16721 	if(r18 >r19) //_LBB59_2
   16722 {
   16723 break _21;
   16724 }
   16725 }
   16726 	if(r14 !=r5) //_LBB59_22
   16727 {
   16728 break _3;
   16729 }
   16730 else{
   16731 	if(r17 !=r6) //_LBB59_22
   16732 {
   16733 break _3;
   16734 }
   16735 else{
   16736 	r15 = r13 << 2;
   16737 	r15 = (r10 + r15)|0;
   16738 	r15 = r15 >> 2;
   16739 	r15 = heap32[(r15+2)];
   16740 if(!(uint(r15) >uint(r2))) //_LBB59_2
   16741 {
   16742 break _3;
   16743 }
   16744 }
   16745 }
   16746 }
   16747 } while(0);
   16748 	r11 = (r11 + 1)|0;
   16749 continue _3;
   16750 }
   16751 	r18 = r8 << 4;
   16752 	r15 = (r7 + r11)|0;
   16753 	r9 = (r9 + r18)|0;
   16754 	r16 = 0;
   16755 _30: while(true){
   16756 	r19 = r16 << 2;
   16757 	if(r5 !=0) //_LBB59_25
   16758 {
   16759 	r20 = r5 >> 2;
   16760 	r20 = heap32[(r20+3)];
   16761 }
   16762 else{
   16763 	r20 = -1;
   16764 }
   16765 	r21 = r19 << 2;
   16766 	r21 = (r9 + r21)|0;
   16767 	r21 = r21 >> 2;
   16768 	r21 = heap32[(r21)];
   16769 	if(r21 !=0) //_LBB59_28
   16770 {
   16771 	r22 = r21 >> 2;
   16772 	r22 = heap32[(r22+3)];
   16773 }
   16774 else{
   16775 	r22 = -1;
   16776 }
   16777 	if(r6 !=0) //_LBB59_31
   16778 {
   16779 	r23 = r6 >> 2;
   16780 	r23 = heap32[(r23+3)];
   16781 }
   16782 else{
   16783 	r23 = -1;
   16784 }
   16785 	r24 = r19 << 2;
   16786 	r24 = (r9 + r24)|0;
   16787 	r24 = r24 >> 2;
   16788 	r24 = heap32[(r24+1)];
   16789 	if(r24 !=0) //_LBB59_34
   16790 {
   16791 	r25 = r24 >> 2;
   16792 	r25 = heap32[(r25+3)];
   16793 }
   16794 else{
   16795 	r25 = -1;
   16796 }
   16797 _48: do {
   16798 if(!(r20 >r22)) //_LBB59_21
   16799 {
   16800 if(!(r5 !=r21)) //_LBB59_38
   16801 {
   16802 	if(r23 >r25) //_LBB59_21
   16803 {
   16804 break _48;
   16805 }
   16806 }
   16807 	if(r5 !=r21) //_LBB59_41
   16808 {
   16809 break _30;
   16810 }
   16811 else{
   16812 	if(r6 !=r24) //_LBB59_41
   16813 {
   16814 break _30;
   16815 }
   16816 else{
   16817 	r20 = r19 << 2;
   16818 	r20 = (r9 + r20)|0;
   16819 	r20 = r20 >> 2;
   16820 	r20 = heap32[(r20+2)];
   16821 if(!(uint(r2) >uint(r20))) //_LBB59_21
   16822 {
   16823 break _30;
   16824 }
   16825 }
   16826 }
   16827 }
   16828 } while(0);
   16829 	r16 = (r16 + -1)|0;
   16830 continue _30;
   16831 }
   16832 	r20 = (r8 + r16)|0;
   16833 	if(r15 <=r20) //_LBB59_43
   16834 {
   16835 	r13 = r13 << 2;
   16836 	r10 = (r10 + r13)|0;
   16837 	r10 = r10 >> 2;
   16838 	r13 = heap32[(r12+3)];
   16839 	r15 = heap32[(r10+2)];
   16840 	r19 = r19 << 2;
   16841 	r19 = (r9 + r19)|0;
   16842 	heap32[(r10)] = r21;
   16843 	r20 = r16 << 4;
   16844 	r19 = r19 >> 2;
   16845 	heap32[(r10+1)] = r24;
   16846 	r19 = heap32[(r19+2)];
   16847 	r9 = (r9 + r20)|0;
   16848 	r9 = r9 >> 2;
   16849 	heap32[(r10+2)] = r19;
   16850 	r9 = heap32[(r9+3)];
   16851 	heap32[(r12+3)] = r9;
   16852 	r9 = heap32[(r3+3)];
   16853 	r9 = (r9 + r18)|0;
   16854 	r9 = (r9 + r20)|0;
   16855 	r9 = r9 >> 2;
   16856 	heap32[(r9)] = r14;
   16857 	r7 = (r7 + r11)|0;
   16858 	r8 = (r8 + r16)|0;
   16859 	heap32[(r9+1)] = r17;
   16860 	r7 = (r7 + 1)|0;
   16861 	r8 = (r8 + -1)|0;
   16862 	heap32[(r9+2)] = r15;
   16863 	heap32[(r9+3)] = r13;
   16864 }
   16865 else{
   16866 	r7 = r15;
   16867 	r8 = r20;
   16868 }
   16869 	if(r7 <=r8) //_LBB59_1
   16870 {
   16871 continue _1;
   16872 }
   16873 else{
   16874 break _1;
   16875 }
   16876 }
   16877 if(!(r8 <=r1)) //_LBB59_47
   16878 {
   16879 	heap32[(g0)] = r4;
   16880 	heap32[(g0+1)] = r1;
   16881 	heap32[(g0+2)] = r8;
   16882 	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
   16883 }
   16884 if(!(r7 >=r0)) //_LBB59_49
   16885 {
   16886 	heap32[(g0)] = r4;
   16887 	heap32[(g0+1)] = r7;
   16888 	heap32[(g0+2)] = r0;
   16889 	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
   16890 }
   16891 	return;
   16892 }
   16893 
   16894 function _ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(sp)
   16895 {
   16896 	var i7;
   16897 	var fp = sp>>2;
   16898 	var r0;
   16899 	var r1;
   16900 	var r2;
   16901 	var r3;
   16902 	var r4;
   16903 	var r5;
   16904 	var r6;
   16905 	var r7;
   16906 	var r8;
   16907 	var r9;
   16908 	var r10;
   16909 	var r11;
   16910 	var r12;
   16911 	var r13;
   16912 	var r14;
   16913 	var r15;
   16914 	var r16;
   16915 	var r17;
   16916 var __label__ = 0;
   16917 	i7 = sp + -16;var g0 = i7>>2; // save stack
   16918 	r0 = heap32[(fp+1)];
   16919 	r1 = heap32[(fp)];
   16920 	r2 = r0 << 2;
   16921 	r2 = (r1 + r2)|0;
   16922 	r3 = heap32[(fp+2)];
   16923 	r2 = r2 >> 2;
   16924 	r2 = heap32[(r2+17)];
   16925 	r3 = r3 << 2;
   16926 	r4 = (r2 + r3)|0;
   16927 	r2 = heapU16[(r2+r3)>>1];
   16928 	r3 = heapU16[(r4+-4)>>1];
   16929 if(!(uint(r2) >=uint(r3))) //_LBB60_14
   16930 {
   16931 	r1 = r1 >> 2;
   16932 	r2 = heap32[(fp+3)];
   16933 	r3 = heap32[(r1+15)];
   16934 	r5 = heapU16[(r4+2)>>1];
   16935 	r6 = 1;
   16936 	r7 = r6 << r0;
   16937 	r7 = r7 & 3;
   16938 	r6 = r6 << r7;
   16939 	r5 = r5 << 6;
   16940 	r5 = (r3 + r5)|0;
   16941 	r6 = r6 & 3;
   16942 	r0 = r0 << 1;
   16943 	r8 = (r5 + 48)|0;
   16944 	r7 = r7 << 1;
   16945 	r9 = (r5 + 54)|0;
   16946 	r6 = r6 << 1;
   16947 	r10 = (r8 + r0)|0;
   16948 	r11 = (r9 + r7)|0;
   16949 	r12 = (r8 + r7)|0;
   16950 	r9 = (r9 + r6)|0;
   16951 	r8 = (r8 + r6)|0;
   16952 	r4 = (r4 + 2)|0;
   16953 _3: while(true){
   16954 	r13 = heapU8[r4+-6];
   16955 	r14 = heapU16[(r4+-4)>>1];
   16956 	r13 = r13 & 1;
   16957 	if(r13 ==0) //_LBB60_11
   16958 {
   16959 	r13 = r14 << 6;
   16960 	r3 = (r3 + r13)|0;
   16961 	r3 = (r3 + r0)|0;
   16962 	r13 = heapU16[(r3+48)>>1];
   16963 	r13 = (r13 + 1)|0;
   16964 	heap16[(r3+48)>>1] = r13;
   16965 }
   16966 else{
   16967 if(!(r2 ==0)) //_LBB60_10
   16968 {
   16969 	r13 = r14 << 6;
   16970 	r13 = (r3 + r13)|0;
   16971 	r15 = (r13 + r7)|0;
   16972 	r16 = heapU16[(r11)>>1];
   16973 	r17 = heapU16[(r15+48)>>1];
   16974 if(!(uint(r16) <uint(r17))) //_LBB60_10
   16975 {
   16976 	r15 = heapU16[(r15+54)>>1];
   16977 	r16 = heapU16[(r12)>>1];
   16978 if(!(uint(r15) <uint(r16))) //_LBB60_10
   16979 {
   16980 	r15 = (r13 + r6)|0;
   16981 	r16 = heapU16[(r9)>>1];
   16982 	r17 = heapU16[(r15+48)>>1];
   16983 if(!(uint(r16) <uint(r17))) //_LBB60_10
   16984 {
   16985 	r15 = heapU16[(r15+54)>>1];
   16986 	r16 = heapU16[(r8)>>1];
   16987 if(!(uint(r15) <uint(r16))) //_LBB60_10
   16988 {
   16989 	r15 = heap32[(r1+23)];
   16990 	r16 = r15 >> 2;
   16991 	r16 = heap32[(r16)];
   16992 	r16 = r16 >> 2;
   16993 	r16 = heap32[(r16+2)];
   16994 	heap32[(g0)] = r15;
   16995 	heap32[(g0+1)] = r5;
   16996 	heap32[(g0+2)] = r13;
   16997 	__FUNCTION_TABLE__[(r16)>>2](i7);
   16998 	r15 = heap32[(r1+24)];
   16999 if(!(r15 ==0)) //_LBB60_10
   17000 {
   17001 	r16 = r15 >> 2;
   17002 	r16 = heap32[(r16)];
   17003 	r16 = r16 >> 2;
   17004 	r16 = heap32[(r16+2)];
   17005 	heap32[(g0)] = r15;
   17006 	heap32[(g0+1)] = r5;
   17007 	heap32[(g0+2)] = r13;
   17008 	__FUNCTION_TABLE__[(r16)>>2](i7);
   17009 }
   17010 }
   17011 }
   17012 }
   17013 }
   17014 }
   17015 	r14 = r14 << 6;
   17016 	r3 = (r3 + r14)|0;
   17017 	r3 = (r3 + r0)|0;
   17018 	r14 = heapU16[(r3+54)>>1];
   17019 	r14 = (r14 + 1)|0;
   17020 	heap16[(r3+54)>>1] = r14;
   17021 }
   17022 	r3 = heapU16[(r10)>>1];
   17023 	r3 = (r3 + -1)|0;
   17024 	heap16[(r10)>>1] = r3;
   17025 	r3 = heapU16[(r4+-2)>>1];
   17026 	r13 = heapU16[(r4)>>1];
   17027 	r14 = heapU16[(r4+-4)>>1];
   17028 	r15 = heapU16[(r4+-6)>>1];
   17029 	heap16[(r4+-2)>>1] = r15;
   17030 	heap16[(r4)>>1] = r14;
   17031 	heap16[(r4+-6)>>1] = r3;
   17032 	heap16[(r4+-4)>>1] = r13;
   17033 	r13 = heapU16[(r4+-10)>>1];
   17034 	if(uint(r3) >=uint(r13)) //_LBB60_14
   17035 {
   17036 break _3;
   17037 }
   17038 else{
   17039 	r3 = heap32[(r1+15)];
   17040 	r4 = (r4 + -4)|0;
   17041 continue _3;
   17042 }
   17043 }
   17044 }
   17045 	return;
   17046 }
   17047 
   17048 function _ZN20btAxisSweep3InternalItE9sortMaxUpEitP12btDispatcherb(sp)
   17049 {
   17050 	var i7;
   17051 	var fp = sp>>2;
   17052 	var r0;
   17053 	var r1;
   17054 	var r2;
   17055 	var r3;
   17056 	var r4;
   17057 	var r5;
   17058 	var r6;
   17059 	var r7;
   17060 	var r8;
   17061 	var r9;
   17062 	var r10;
   17063 	var r11;
   17064 	var r12;
   17065 	var r13;
   17066 	var r14;
   17067 	var r15;
   17068 	var r16;
   17069 var __label__ = 0;
   17070 	i7 = sp + -16;var g0 = i7>>2; // save stack
   17071 	r0 = heap32[(fp+1)];
   17072 	r1 = heap32[(fp)];
   17073 	r2 = r0 << 2;
   17074 	r2 = (r1 + r2)|0;
   17075 	r2 = r2 >> 2;
   17076 	r3 = heap32[(fp+2)];
   17077 	r4 = 1;
   17078 	r2 = heap32[(r2+17)];
   17079 	r3 = r3 << 2;
   17080 	r2 = (r2 + r3)|0;
   17081 	r3 = r4 << r0;
   17082 	r3 = r3 & 3;
   17083 	r1 = r1 >> 2;
   17084 	r5 = heapU16[(r2+2)>>1];
   17085 	r4 = r4 << r3;
   17086 	r6 = heap32[(r1+15)];
   17087 	r5 = r5 << 6;
   17088 	r4 = r4 & 3;
   17089 	r5 = (r6 + r5)|0;
   17090 	r3 = r3 << 1;
   17091 	r6 = (r5 + 48)|0;
   17092 	r4 = r4 << 1;
   17093 	r5 = (r5 + 54)|0;
   17094 	r0 = r0 << 1;
   17095 	r7 = heap32[(fp+3)];
   17096 	r8 = (r5 + r3)|0;
   17097 	r9 = (r6 + r3)|0;
   17098 	r10 = (r5 + r4)|0;
   17099 	r6 = (r6 + r4)|0;
   17100 	r5 = (r5 + r0)|0;
   17101 	r2 = (r2 + 4)|0;
   17102 _1: while(true){
   17103 	r11 = heapU16[(r2+2)>>1];
   17104 	if(r11 ==0) //_LBB61_14
   17105 {
   17106 break _1;
   17107 }
   17108 else{
   17109 	r12 = heapU16[(r2)>>1];
   17110 	r13 = heapU16[(r2+-4)>>1];
   17111 	if(uint(r13) >=uint(r12)) //_LBB61_1
   17112 {
   17113 	r13 = heap32[(r1+15)];
   17114 	r11 = r11 & 65535;
   17115 	r12 = r12 & 1;
   17116 	if(r12 != 0) //_LBB61_10
   17117 {
   17118 	r11 = r11 << 6;
   17119 	r11 = (r13 + r11)|0;
   17120 	r11 = (r11 + r0)|0;
   17121 	r12 = heapU16[(r11+54)>>1];
   17122 	r12 = (r12 + -1)|0;
   17123 	heap16[(r11+54)>>1] = r12;
   17124 }
   17125 else{
   17126 if(!(r7 ==0)) //_LBB61_9
   17127 {
   17128 	r12 = r11 << 6;
   17129 	r12 = (r13 + r12)|0;
   17130 	r14 = (r12 + r3)|0;
   17131 	r15 = heapU16[(r8)>>1];
   17132 	r16 = heapU16[(r14+48)>>1];
   17133 if(!(uint(r15) <uint(r16))) //_LBB61_9
   17134 {
   17135 	r14 = heapU16[(r14+54)>>1];
   17136 	r15 = heapU16[(r9)>>1];
   17137 if(!(uint(r14) <uint(r15))) //_LBB61_9
   17138 {
   17139 	r14 = (r12 + r4)|0;
   17140 	r15 = heapU16[(r10)>>1];
   17141 	r16 = heapU16[(r14+48)>>1];
   17142 if(!(uint(r15) <uint(r16))) //_LBB61_9
   17143 {
   17144 	r14 = heapU16[(r14+54)>>1];
   17145 	r15 = heapU16[(r6)>>1];
   17146 if(!(uint(r14) <uint(r15))) //_LBB61_9
   17147 {
   17148 	r14 = heap32[(r1+23)];
   17149 	r15 = r14 >> 2;
   17150 	r15 = heap32[(r15)];
   17151 	r15 = r15 >> 2;
   17152 	r16 = heapU16[(r2+-2)>>1];
   17153 	r15 = heap32[(r15+2)];
   17154 	r16 = r16 << 6;
   17155 	r16 = (r13 + r16)|0;
   17156 	heap32[(g0)] = r14;
   17157 	heap32[(g0+1)] = r16;
   17158 	heap32[(g0+2)] = r12;
   17159 	__FUNCTION_TABLE__[(r15)>>2](i7);
   17160 	r14 = heap32[(r1+24)];
   17161 if(!(r14 ==0)) //_LBB61_9
   17162 {
   17163 	r15 = r14 >> 2;
   17164 	r15 = heap32[(r15)];
   17165 	r15 = r15 >> 2;
   17166 	r15 = heap32[(r15+2)];
   17167 	heap32[(g0)] = r14;
   17168 	heap32[(g0+1)] = r16;
   17169 	heap32[(g0+2)] = r12;
   17170 	__FUNCTION_TABLE__[(r15)>>2](i7);
   17171 }
   17172 }
   17173 }
   17174 }
   17175 }
   17176 }
   17177 	r11 = r11 << 6;
   17178 	r11 = (r13 + r11)|0;
   17179 	r11 = (r11 + r0)|0;
   17180 	r12 = heapU16[(r11+48)>>1];
   17181 	r12 = (r12 + -1)|0;
   17182 	heap16[(r11+48)>>1] = r12;
   17183 }
   17184 	r11 = heapU16[(r5)>>1];
   17185 	r11 = (r11 + 1)|0;
   17186 	heap16[(r5)>>1] = r11;
   17187 	r11 = heapU16[(r2+-2)>>1];
   17188 	r12 = heapU16[(r2+-4)>>1];
   17189 	r13 = heapU16[(r2+2)>>1];
   17190 	r14 = heapU16[(r2)>>1];
   17191 	heap16[(r2+-4)>>1] = r14;
   17192 	heap16[(r2+-2)>>1] = r13;
   17193 	r13 = (r2 + 4)|0;
   17194 	heap16[(r2)>>1] = r12;
   17195 	heap16[(r2+2)>>1] = r11;
   17196 	r2 = r13;
   17197 continue _1;
   17198 }
   17199 else{
   17200 break _1;
   17201 }
   17202 }
   17203 }
   17204 	return;
   17205 }
   17206 
   17207 function _ZN20btAxisSweep3InternalItE9sortMinUpEitP12btDispatcherb(sp)
   17208 {
   17209 	var i7;
   17210 	var fp = sp>>2;
   17211 	var r0;
   17212 	var r1;
   17213 	var r2;
   17214 	var r3;
   17215 	var r4;
   17216 	var r5;
   17217 	var r6;
   17218 	var r7;
   17219 	var r8;
   17220 	var r9;
   17221 	var r10;
   17222 	var r11;
   17223 	var r12;
   17224 	var r13;
   17225 	var r14;
   17226 	var r15;
   17227 var __label__ = 0;
   17228 	i7 = sp + -16;var g0 = i7>>2; // save stack
   17229 	r0 = heap32[(fp+1)];
   17230 	r1 = heap32[(fp)];
   17231 	r2 = r0 << 2;
   17232 	r2 = (r1 + r2)|0;
   17233 	r2 = r2 >> 2;
   17234 	r3 = heap32[(fp+2)];
   17235 	r2 = heap32[(r2+17)];
   17236 	r3 = r3 << 2;
   17237 	r2 = (r2 + r3)|0;
   17238 	r1 = r1 >> 2;
   17239 	r3 = heapU16[(r2+2)>>1];
   17240 	r4 = 1;
   17241 	r5 = r4 << r0;
   17242 	r6 = heap32[(r1+15)];
   17243 	r3 = r3 << 6;
   17244 	r5 = r5 & 3;
   17245 	r3 = (r6 + r3)|0;
   17246 	r0 = r0 << 1;
   17247 	r3 = (r3 + r0)|0;
   17248 	r4 = r4 << r5;
   17249 	r6 = heap32[(fp+3)];
   17250 	r7 = heap32[(fp+4)];
   17251 	r3 = (r3 + 48)|0;
   17252 	r4 = r4 & 3;
   17253 	r2 = (r2 + 4)|0;
   17254 _1: while(true){
   17255 	r8 = heapU16[(r2+2)>>1];
   17256 	if(r8 ==0) //_LBB62_14
   17257 {
   17258 break _1;
   17259 }
   17260 else{
   17261 	r9 = heapU16[(r2)>>1];
   17262 	r10 = heapU16[(r2+-4)>>1];
   17263 	if(uint(r10) >=uint(r9)) //_LBB62_1
   17264 {
   17265 	r10 = heap32[(r1+15)];
   17266 	r8 = r8 & 65535;
   17267 	r9 = r9 & 1;
   17268 	if(r9 ==0) //_LBB62_10
   17269 {
   17270 	r8 = r8 << 6;
   17271 	r8 = (r10 + r8)|0;
   17272 	r8 = (r8 + r0)|0;
   17273 	r9 = heapU16[(r8+48)>>1];
   17274 	r9 = (r9 + -1)|0;
   17275 	heap16[(r8+48)>>1] = r9;
   17276 }
   17277 else{
   17278 if(!(r7 ==0)) //_LBB62_9
   17279 {
   17280 	r9 = heapU16[(r2+-2)>>1];
   17281 	r9 = r9 << 6;
   17282 	r11 = r8 << 6;
   17283 	r9 = (r10 + r9)|0;
   17284 	r12 = r5 << 1;
   17285 	r11 = (r10 + r11)|0;
   17286 	r13 = (r9 + r12)|0;
   17287 	r12 = (r11 + r12)|0;
   17288 	r14 = heapU16[(r13+54)>>1];
   17289 	r15 = heapU16[(r12+48)>>1];
   17290 if(!(uint(r14) <uint(r15))) //_LBB62_9
   17291 {
   17292 	r12 = heapU16[(r12+54)>>1];
   17293 	r13 = heapU16[(r13+48)>>1];
   17294 if(!(uint(r12) <uint(r13))) //_LBB62_9
   17295 {
   17296 	r12 = r4 << 1;
   17297 	r13 = (r9 + r12)|0;
   17298 	r12 = (r11 + r12)|0;
   17299 	r14 = heapU16[(r13+54)>>1];
   17300 	r15 = heapU16[(r12+48)>>1];
   17301 if(!(uint(r14) <uint(r15))) //_LBB62_9
   17302 {
   17303 	r12 = heapU16[(r12+54)>>1];
   17304 	r13 = heapU16[(r13+48)>>1];
   17305 if(!(uint(r12) <uint(r13))) //_LBB62_9
   17306 {
   17307 	r12 = heap32[(r1+23)];
   17308 	r13 = r12 >> 2;
   17309 	r13 = heap32[(r13)];
   17310 	r13 = r13 >> 2;
   17311 	r13 = heap32[(r13+3)];
   17312 	heap32[(g0)] = r12;
   17313 	heap32[(g0+1)] = r9;
   17314 	heap32[(g0+2)] = r11;
   17315 	heap32[(g0+3)] = r6;
   17316 	__FUNCTION_TABLE__[(r13)>>2](i7);
   17317 	r12 = heap32[(r1+24)];
   17318 if(!(r12 ==0)) //_LBB62_9
   17319 {
   17320 	r13 = r12 >> 2;
   17321 	r13 = heap32[(r13)];
   17322 	r13 = r13 >> 2;
   17323 	r13 = heap32[(r13+3)];
   17324 	heap32[(g0)] = r12;
   17325 	heap32[(g0+1)] = r9;
   17326 	heap32[(g0+2)] = r11;
   17327 	heap32[(g0+3)] = r6;
   17328 	__FUNCTION_TABLE__[(r13)>>2](i7);
   17329 }
   17330 }
   17331 }
   17332 }
   17333 }
   17334 }
   17335 	r8 = r8 << 6;
   17336 	r8 = (r10 + r8)|0;
   17337 	r8 = (r8 + r0)|0;
   17338 	r9 = heapU16[(r8+54)>>1];
   17339 	r9 = (r9 + -1)|0;
   17340 	heap16[(r8+54)>>1] = r9;
   17341 }
   17342 	r8 = heapU16[(r3)>>1];
   17343 	r8 = (r8 + 1)|0;
   17344 	heap16[(r3)>>1] = r8;
   17345 	r8 = heapU16[(r2+-2)>>1];
   17346 	r9 = heapU16[(r2+-4)>>1];
   17347 	r10 = heapU16[(r2+2)>>1];
   17348 	r11 = heapU16[(r2)>>1];
   17349 	heap16[(r2+-4)>>1] = r11;
   17350 	heap16[(r2+-2)>>1] = r10;
   17351 	r10 = (r2 + 4)|0;
   17352 	heap16[(r2)>>1] = r9;
   17353 	heap16[(r2+2)>>1] = r8;
   17354 	r2 = r10;
   17355 continue _1;
   17356 }
   17357 else{
   17358 break _1;
   17359 }
   17360 }
   17361 }
   17362 	return;
   17363 }
   17364 
   17365 function _ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(sp)
   17366 {
   17367 	var i7;
   17368 	var fp = sp>>2;
   17369 	var r0;
   17370 	var r1;
   17371 	var r2;
   17372 	var r3;
   17373 	var r4;
   17374 	var r5;
   17375 	var r6;
   17376 	var r7;
   17377 	var r8;
   17378 	var r9;
   17379 	var r10;
   17380 	var r11;
   17381 	var r12;
   17382 	var r13;
   17383 	var r14;
   17384 	var r15;
   17385 var __label__ = 0;
   17386 	i7 = sp + -16;var g0 = i7>>2; // save stack
   17387 	r0 = heap32[(fp+1)];
   17388 	r1 = heap32[(fp)];
   17389 	r2 = r0 << 2;
   17390 	r2 = (r1 + r2)|0;
   17391 	r3 = heap32[(fp+2)];
   17392 	r2 = r2 >> 2;
   17393 	r2 = heap32[(r2+17)];
   17394 	r4 = r3 << 2;
   17395 	r5 = (r2 + r4)|0;
   17396 	r4 = heapU16[(r2+r4)>>1];
   17397 	r6 = heapU16[(r5+-4)>>1];
   17398 if(!(uint(r4) >=uint(r6))) //_LBB63_14
   17399 {
   17400 	r1 = r1 >> 2;
   17401 	r4 = heap32[(fp+3)];
   17402 	r6 = heap32[(fp+4)];
   17403 	r7 = heap32[(r1+15)];
   17404 	r3 = r3 << 2;
   17405 	r2 = (r2 + r3)|0;
   17406 	r2 = heapU16[(r2+2)>>1];
   17407 	r3 = 1;
   17408 	r8 = r3 << r0;
   17409 	r2 = r2 << 6;
   17410 	r8 = r8 & 3;
   17411 	r2 = (r7 + r2)|0;
   17412 	r0 = r0 << 1;
   17413 	r3 = r3 << r8;
   17414 	r2 = (r2 + r0)|0;
   17415 	r3 = r3 & 3;
   17416 	r2 = (r2 + 54)|0;
   17417 	r5 = (r5 + 2)|0;
   17418 _3: while(true){
   17419 	r9 = heapU8[r5+-6];
   17420 	r10 = heapU16[(r5+-4)>>1];
   17421 	r9 = r9 & 1;
   17422 	if(r9 != 0) //_LBB63_11
   17423 {
   17424 	r9 = r10 << 6;
   17425 	r7 = (r7 + r9)|0;
   17426 	r7 = (r7 + r0)|0;
   17427 	r9 = heapU16[(r7+54)>>1];
   17428 	r9 = (r9 + 1)|0;
   17429 	heap16[(r7+54)>>1] = r9;
   17430 }
   17431 else{
   17432 if(!(r6 ==0)) //_LBB63_10
   17433 {
   17434 	r9 = heapU16[(r5)>>1];
   17435 	r9 = r9 << 6;
   17436 	r11 = r10 << 6;
   17437 	r9 = (r7 + r9)|0;
   17438 	r12 = r8 << 1;
   17439 	r11 = (r7 + r11)|0;
   17440 	r13 = (r9 + r12)|0;
   17441 	r12 = (r11 + r12)|0;
   17442 	r14 = heapU16[(r13+54)>>1];
   17443 	r15 = heapU16[(r12+48)>>1];
   17444 if(!(uint(r14) <uint(r15))) //_LBB63_10
   17445 {
   17446 	r12 = heapU16[(r12+54)>>1];
   17447 	r13 = heapU16[(r13+48)>>1];
   17448 if(!(uint(r12) <uint(r13))) //_LBB63_10
   17449 {
   17450 	r12 = r3 << 1;
   17451 	r13 = (r9 + r12)|0;
   17452 	r12 = (r11 + r12)|0;
   17453 	r14 = heapU16[(r13+54)>>1];
   17454 	r15 = heapU16[(r12+48)>>1];
   17455 if(!(uint(r14) <uint(r15))) //_LBB63_10
   17456 {
   17457 	r12 = heapU16[(r12+54)>>1];
   17458 	r13 = heapU16[(r13+48)>>1];
   17459 if(!(uint(r12) <uint(r13))) //_LBB63_10
   17460 {
   17461 	r12 = heap32[(r1+23)];
   17462 	r13 = r12 >> 2;
   17463 	r13 = heap32[(r13)];
   17464 	r13 = r13 >> 2;
   17465 	r13 = heap32[(r13+3)];
   17466 	heap32[(g0)] = r12;
   17467 	heap32[(g0+1)] = r9;
   17468 	heap32[(g0+2)] = r11;
   17469 	heap32[(g0+3)] = r4;
   17470 	__FUNCTION_TABLE__[(r13)>>2](i7);
   17471 	r12 = heap32[(r1+24)];
   17472 if(!(r12 ==0)) //_LBB63_10
   17473 {
   17474 	r13 = r12 >> 2;
   17475 	r13 = heap32[(r13)];
   17476 	r13 = r13 >> 2;
   17477 	r13 = heap32[(r13+3)];
   17478 	heap32[(g0)] = r12;
   17479 	heap32[(g0+1)] = r9;
   17480 	heap32[(g0+2)] = r11;
   17481 	heap32[(g0+3)] = r4;
   17482 	__FUNCTION_TABLE__[(r13)>>2](i7);
   17483 }
   17484 }
   17485 }
   17486 }
   17487 }
   17488 }
   17489 	r10 = r10 << 6;
   17490 	r7 = (r7 + r10)|0;
   17491 	r7 = (r7 + r0)|0;
   17492 	r10 = heapU16[(r7+48)>>1];
   17493 	r10 = (r10 + 1)|0;
   17494 	heap16[(r7+48)>>1] = r10;
   17495 }
   17496 	r7 = heapU16[(r2)>>1];
   17497 	r7 = (r7 + -1)|0;
   17498 	heap16[(r2)>>1] = r7;
   17499 	r7 = heapU16[(r5+-2)>>1];
   17500 	r9 = heapU16[(r5)>>1];
   17501 	r10 = heapU16[(r5+-4)>>1];
   17502 	r11 = heapU16[(r5+-6)>>1];
   17503 	heap16[(r5+-2)>>1] = r11;
   17504 	heap16[(r5)>>1] = r10;
   17505 	heap16[(r5+-6)>>1] = r7;
   17506 	heap16[(r5+-4)>>1] = r9;
   17507 	r9 = heapU16[(r5+-10)>>1];
   17508 	if(uint(r7) >=uint(r9)) //_LBB63_14
   17509 {
   17510 break _3;
   17511 }
   17512 else{
   17513 	r7 = heap32[(r1+15)];
   17514 	r5 = (r5 + -4)|0;
   17515 continue _3;
   17516 }
   17517 }
   17518 }
   17519 	return;
   17520 }
   17521 
   17522 function _ZN20btAxisSweep3InternalItE7setAabbEP17btBroadphaseProxyRK9btVector3S5_P12btDispatcher(sp)
   17523 {
   17524 	var i7;
   17525 	var fp = sp>>2;
   17526 	var r0;
   17527 	var r1;
   17528 	var r2;
   17529 	var r3;
   17530 	var r4;
   17531 	var r5;
   17532 	var r6;
   17533 	var r7;
   17534 	var r8;
   17535 	var r9;
   17536 	var r10;
   17537 	var r11;
   17538 	var r12;
   17539 	var r13;
   17540 	var r14;
   17541 	var r15;
   17542 	var r16;
   17543 	var r17;
   17544 	var r18;
   17545 	var r19;
   17546 	var r20;
   17547 	var f0;
   17548 	var f1;
   17549 	var f2;
   17550 var __label__ = 0;
   17551 	i7 = sp + -40;var g0 = i7>>2; // save stack
   17552 	r0 = heap32[(fp+2)];
   17553 	r1 = heap32[(fp+1)];
   17554 	r2 = r0 >> 2;
   17555 	r3 = r1 >> 2;
   17556 	heap32[(r3+4)] = heap32[(r2)];
   17557 	heap32[(r3+5)] = heap32[(r2+1)];
   17558 	r4 = heap32[(fp+3)];
   17559 	heap32[(r3+6)] = heap32[(r2+2)];
   17560 	heap32[(r3+7)] = heap32[(r2+3)];
   17561 	r5 = r4 >> 2;
   17562 	heap32[(r3+8)] = heap32[(r5)];
   17563 	heap32[(r3+9)] = heap32[(r5+1)];
   17564 	r6 = heap32[(fp)];
   17565 	heap32[(r3+10)] = heap32[(r5+2)];
   17566 	heap32[(r3+11)] = heap32[(r5+3)];
   17567 	r7 = r6 >> 2;
   17568 	r1 = heapU16[(r1+12)>>1];
   17569 	r8 = heap32[(r7+15)];
   17570 	f0 = heapFloat[(r2)];
   17571 	f1 = heapFloat[(r2+1)];
   17572 	f2 = heapFloat[(r2+2)];
   17573 	r2 = sp + -6;
   17574 	heap32[(g0)] = r6;
   17575 	heap32[(g0+1)] = r2;
   17576 	heapFloat[(g0+2)] = f0;
   17577 	heapFloat[(g0+3)] = f1;
   17578 	heapFloat[(g0+4)] = f2;
   17579 	heap32[(g0+5)] = 0;
   17580 	_ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(i7);
   17581 	f0 = heapFloat[(r5)];
   17582 	f1 = heapFloat[(r5+1)];
   17583 	f2 = heapFloat[(r5+2)];
   17584 	r1 = r1 << 6;
   17585 	r5 = sp + -12;
   17586 	r1 = (r8 + r1)|0;
   17587 	heap32[(g0)] = r6;
   17588 	heap32[(g0+1)] = r5;
   17589 	heapFloat[(g0+2)] = f0;
   17590 	heapFloat[(g0+3)] = f1;
   17591 	heapFloat[(g0+4)] = f2;
   17592 	heap32[(g0+5)] = 1;
   17593 	r8 = heap32[(fp+4)];
   17594 	r1 = (r1 + 48)|0;
   17595 	r9 = 0;
   17596 	_ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(i7);
   17597 	r10 = r9;
   17598 _1: while(true){
   17599 	r11 = r9 << 2;
   17600 	r12 = r9 << 1;
   17601 	r13 = (r1 - r12)|0;
   17602 	r11 = (r6 - r11)|0;
   17603 	r14 = heapU16[(r13)>>1];
   17604 	r13 = heapU16[(r13+6)>>1];
   17605 	r11 = r11 >> 2;
   17606 	r15 = (r2 - r12)|0;
   17607 	r12 = (r5 - r12)|0;
   17608 	r16 = heap32[(r11+17)];
   17609 	r17 = r14 << 2;
   17610 	r18 = r13 << 2;
   17611 	r15 = heapU16[(r15)>>1];
   17612 	r19 = heapU16[(r16+r17)>>1];
   17613 	r20 = heapU16[(r16+r18)>>1];
   17614 	r12 = heapU16[(r12)>>1];
   17615 	heap16[(r16+r17)>>1] = r15;
   17616 	r11 = heap32[(r11+17)];
   17617 	r15 = (r15 - r19)|0;
   17618 	heap16[(r11+r18)>>1] = r12;
   17619 if(!(r15 >-1)) //_LBB64_3
   17620 {
   17621 	heap32[(g0)] = r6;
   17622 	heap32[(g0+1)] = r10;
   17623 	heap32[(g0+2)] = r14;
   17624 	heap32[(g0+3)] = 1;
   17625 	_ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(i7);
   17626 }
   17627 	r11 = (r12 - r20)|0;
   17628 if(!(r11 <1)) //_LBB64_5
   17629 {
   17630 	heap32[(g0)] = r6;
   17631 	heap32[(g0+1)] = r10;
   17632 	heap32[(g0+2)] = r13;
   17633 	heap32[(g0+3)] = 1;
   17634 	_ZN20btAxisSweep3InternalItE9sortMaxUpEitP12btDispatcherb(i7);
   17635 }
   17636 if(!(r15 <1)) //_LBB64_7
   17637 {
   17638 	heap32[(g0)] = r6;
   17639 	heap32[(g0+1)] = r10;
   17640 	heap32[(g0+2)] = r14;
   17641 	heap32[(g0+3)] = r8;
   17642 	heap32[(g0+4)] = 1;
   17643 	_ZN20btAxisSweep3InternalItE9sortMinUpEitP12btDispatcherb(i7);
   17644 }
   17645 if(!(r11 >-1)) //_LBB64_9
   17646 {
   17647 	heap32[(g0)] = r6;
   17648 	heap32[(g0+1)] = r10;
   17649 	heap32[(g0+2)] = r13;
   17650 	heap32[(g0+3)] = r8;
   17651 	heap32[(g0+4)] = 1;
   17652 	_ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(i7);
   17653 }
   17654 	r9 = (r9 + -1)|0;
   17655 	r10 = (r10 + 1)|0;
   17656 	if(r9 !=-3) //_LBB64_1
   17657 {
   17658 continue _1;
   17659 }
   17660 else{
   17661 break _1;
   17662 }
   17663 }
   17664 	r1 = heap32[(r7+27)];
   17665 if(!(r1 ==0)) //_LBB64_12
   17666 {
   17667 	r2 = r1 >> 2;
   17668 	r2 = heap32[(r2)];
   17669 	r2 = r2 >> 2;
   17670 	r2 = heap32[(r2+4)];
   17671 	r3 = heap32[(r3+15)];
   17672 	heap32[(g0)] = r1;
   17673 	heap32[(g0+1)] = r3;
   17674 	heap32[(g0+2)] = r0;
   17675 	heap32[(g0+3)] = r4;
   17676 	heap32[(g0+4)] = r8;
   17677 	__FUNCTION_TABLE__[(r2)>>2](i7);
   17678 }
   17679 	return;
   17680 }
   17681 
   17682 function _ZN20btAxisSweep3InternalItE12destroyProxyEP17btBroadphaseProxyP12btDispatcher(sp)
   17683 {
   17684 	var i7;
   17685 	var fp = sp>>2;
   17686 	var r0;
   17687 	var r1;
   17688 	var r2;
   17689 	var r3;
   17690 	var r4;
   17691 	var r5;
   17692 	var r6;
   17693 	var r7;
   17694 	var r8;
   17695 	var r9;
   17696 	var r10;
   17697 	var r11;
   17698 	var r12;
   17699 	var r13;
   17700 var __label__ = 0;
   17701 	i7 = sp + -24;var g0 = i7>>2; // save stack
   17702 	r0 = heap32[(fp)];
   17703 	r1 = r0 >> 2;
   17704 	r2 = heap32[(r1+27)];
   17705 	r3 = heap32[(fp+1)];
   17706 	r4 = heap32[(fp+2)];
   17707 if(!(r2 ==0)) //_LBB65_2
   17708 {
   17709 	r5 = r2 >> 2;
   17710 	r5 = heap32[(r5)];
   17711 	r5 = r5 >> 2;
   17712 	r6 = r3 >> 2;
   17713 	r5 = heap32[(r5+3)];
   17714 	r6 = heap32[(r6+15)];
   17715 	heap32[(g0)] = r2;
   17716 	heap32[(g0+1)] = r6;
   17717 	heap32[(g0+2)] = r4;
   17718 	__FUNCTION_TABLE__[(r5)>>2](i7);
   17719 }
   17720 	r2 = heap32[(r1+23)];
   17721 	r5 = r2 >> 2;
   17722 	r5 = heap32[(r5)];
   17723 	r5 = r5 >> 2;
   17724 	r3 = r3 >> 2;
   17725 	r3 = heap32[(r3+3)];
   17726 	r6 = heap32[(r1+15)];
   17727 	r5 = heap32[(r5+14)];
   17728 	heap32[(g0)] = r2;
   17729 	__FUNCTION_TABLE__[(r5)>>2](i7);
   17730 	r2 = r_g0;
   17731 if(!(r2 !=0)) //_LBB65_4
   17732 {
   17733 	r2 = heap32[(r1+23)];
   17734 	r5 = r2 >> 2;
   17735 	r5 = heap32[(r5)];
   17736 	r5 = r5 >> 2;
   17737 	r5 = heap32[(r5+4)];
   17738 	r7 = r3 & 65535;
   17739 	r7 = r7 << 6;
   17740 	r7 = (r6 + r7)|0;
   17741 	heap32[(g0)] = r2;
   17742 	heap32[(g0+1)] = r7;
   17743 	heap32[(g0+2)] = r4;
   17744 	__FUNCTION_TABLE__[(r5)>>2](i7);
   17745 }
   17746 	r2 = heap32[(r1+15)];
   17747 	r5 = heapU16[(r0+56)>>1];
   17748 	r7 = heapU16[(r2+54)>>1];
   17749 	r7 = (r7 + -2)|0;
   17750 	heap16[(r2+54)>>1] = r7;
   17751 	r2 = heap32[(r1+15)];
   17752 	r7 = heapU16[(r2+56)>>1];
   17753 	r7 = (r7 + -2)|0;
   17754 	r8 = r3 & 65535;
   17755 	heap16[(r2+56)>>1] = r7;
   17756 	r2 = heap32[(r1+15)];
   17757 	r7 = r8 << 6;
   17758 	r9 = heapU16[(r2+58)>>1];
   17759 	r6 = (r6 + r7)|0;
   17760 	r5 = r5 << 1;
   17761 	r6 = (r6 + 54)|0;
   17762 	r10 = 0;
   17763 	r9 = (r9 + -2)|0;
   17764 	heap16[(r2+58)>>1] = r9;
   17765 	r2 = r10;
   17766 _7: while(true){
   17767 	r9 = r2 << 2;
   17768 	r9 = (r0 + r9)|0;
   17769 	r9 = r9 >> 2;
   17770 	r11 = heapU16[(r6)>>1];
   17771 	r12 = heapU16[(r0+6)>>1];
   17772 	r9 = heap32[(r9+17)];
   17773 	r13 = r11 << 2;
   17774 	heap16[(r9+r13)>>1] = r12;
   17775 	heap32[(g0)] = r0;
   17776 	heap32[(g0+1)] = r2;
   17777 	heap32[(g0+2)] = r11;
   17778 	heap32[(g0+3)] = 0;
   17779 	_ZN20btAxisSweep3InternalItE9sortMaxUpEitP12btDispatcherb(i7);
   17780 	r11 = heapU16[(r6+-6)>>1];
   17781 	r12 = heapU16[(r0+6)>>1];
   17782 	r13 = r11 << 2;
   17783 	heap16[(r9+r13)>>1] = r12;
   17784 	heap32[(g0)] = r0;
   17785 	heap32[(g0+1)] = r2;
   17786 	heap32[(g0+2)] = r11;
   17787 	heap32[(g0+3)] = r4;
   17788 	heap32[(g0+4)] = 0;
   17789 	r11 = r5 << 2;
   17790 	_ZN20btAxisSweep3InternalItE9sortMinUpEitP12btDispatcherb(i7);
   17791 	r9 = (r9 + r11)|0;
   17792 	heap16[(r9+-2)>>1] = r10;
   17793 	r11 = heapU16[(r0+6)>>1];
   17794 	r2 = (r2 + 1)|0;
   17795 	r6 = (r6 + 2)|0;
   17796 	heap16[(r9+-4)>>1] = r11;
   17797 	if(r2 !=3) //_LBB65_5
   17798 {
   17799 continue _7;
   17800 }
   17801 else{
   17802 break _7;
   17803 }
   17804 }
   17805 if(!(r8 ==0)) //_LBB65_8
   17806 {
   17807 	r2 = heapU16[(r0+58)>>1];
   17808 	if(uint(r2) >uint(r8)) //_LBB65_9
   17809 {
   17810 	r1 = heap32[(r1+15)];
   17811 	r2 = heapU16[(r0+64)>>1];
   17812 	r1 = (r1 + r7)|0;
   17813 	heap16[(r1+48)>>1] = r2;
   17814 	heap16[(r0+64)>>1] = r3;
   17815 	r1 = heapU16[(r0+56)>>1];
   17816 	r1 = (r1 + -1)|0;
   17817 	heap16[(r0+56)>>1] = r1;
   17818 	return;
   17819 }
   17820 }
   17821 	r0 = _2E_str11;
   17822 	r1 = _2E_str112;
   17823 	heap32[(g0)] = r0;
   17824 	heap32[(g0+1)] = r1;
   17825 	heap32[(g0+2)] = 495;
   17826 	_assert(i7);
   17827 }
   17828 
   17829 function _ZN20btAxisSweep3InternalItE11createProxyERK9btVector3S3_iPvssP12btDispatcherS4_(sp)
   17830 {
   17831 	var i7;
   17832 	var fp = sp>>2;
   17833 	var r0;
   17834 	var r1;
   17835 	var r2;
   17836 	var r3;
   17837 	var r4;
   17838 	var r5;
   17839 	var r6;
   17840 	var r7;
   17841 	var r8;
   17842 	var r9;
   17843 	var r10;
   17844 	var r11;
   17845 	var r12;
   17846 	var r13;
   17847 	var r14;
   17848 	var r15;
   17849 	var r16;
   17850 	var r17;
   17851 	var r18;
   17852 	var f0;
   17853 	var f1;
   17854 	var f2;
   17855 var __label__ = 0;
   17856 	i7 = sp + -56;var g0 = i7>>2; // save stack
   17857 	r0 = heap32[(fp+1)];
   17858 	r1 = r0 >> 2;
   17859 	f0 = heapFloat[(r1)];
   17860 	f1 = heapFloat[(r1+1)];
   17861 	f2 = heapFloat[(r1+2)];
   17862 	r1 = heap32[(fp)];
   17863 	r2 = sp + -6;
   17864 	heap32[(g0)] = r1;
   17865 	heap32[(g0+1)] = r2;
   17866 	heapFloat[(g0+2)] = f0;
   17867 	heapFloat[(g0+3)] = f1;
   17868 	heapFloat[(g0+4)] = f2;
   17869 	heap32[(g0+5)] = 0;
   17870 	r2 = heap32[(fp+2)];
   17871 	_ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(i7);
   17872 	r3 = r2 >> 2;
   17873 	f0 = heapFloat[(r3)];
   17874 	f1 = heapFloat[(r3+1)];
   17875 	f2 = heapFloat[(r3+2)];
   17876 	r3 = sp + -12;
   17877 	heap32[(g0)] = r1;
   17878 	heap32[(g0+1)] = r3;
   17879 	heapFloat[(g0+2)] = f0;
   17880 	heapFloat[(g0+3)] = f1;
   17881 	heapFloat[(g0+4)] = f2;
   17882 	heap32[(g0+5)] = 1;
   17883 	_ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(i7);
   17884 	r3 = heapU16[(r1+64)>>1];
   17885 	if(r3 !=0) //_LBB66_2
   17886 {
   17887 	r4 = heap32[(fp+4)];
   17888 	r5 = heap32[(fp+5)];
   17889 	r6 = heap32[(fp+6)];
   17890 	r7 = heap32[(fp+7)];
   17891 	r8 = heap32[(fp+8)];
   17892 	r9 = r1 >> 2;
   17893 	r10 = r3 << 6;
   17894 	r11 = heap32[(r9+15)];
   17895 	r10 = (r11 + r10)|0;
   17896 	r11 = heapU16[(r10+48)>>1];
   17897 	heap16[(r1+64)>>1] = r11;
   17898 	r11 = heapU16[(r1+56)>>1];
   17899 	r11 = (r11 + 1)|0;
   17900 	r12 = r10 >> 2;
   17901 	heap16[(r1+56)>>1] = r11;
   17902 	heap32[(r12+3)] = r3;
   17903 	heap32[(r12)] = r4;
   17904 	heap16[(r10+4)>>1] = r5;
   17905 	heap16[(r10+6)>>1] = r6;
   17906 	heap32[(r12+2)] = r8;
   17907 	r8 = heap32[(r9+15)];
   17908 	r11 = heapU16[(r1+56)>>1];
   17909 	r11 = r11 << 1;
   17910 	r12 = heapU16[(r8+54)>>1];
   17911 	r13 = r11 & 65534;
   17912 	r12 = (r12 + 2)|0;
   17913 	r14 = (r13 + -1)|0;
   17914 	heap16[(r8+54)>>1] = r12;
   17915 	r8 = r14 << 2;
   17916 	r12 = heap32[(r9+17)];
   17917 	r14 = (r12 + r8)|0;
   17918 	r15 = r13 | 1;
   17919 	r14 = heapU16[(r14+2)>>1];
   17920 	r16 = heapU16[(r12+r8)>>1];
   17921 	r15 = r15 << 2;
   17922 	r17 = (r12 + r15)|0;
   17923 	heap16[(r12+r15)>>1] = r16;
   17924 	heap16[(r17+2)>>1] = r14;
   17925 	r12 = heap32[(r9+17)];
   17926 	r14 = heapU16[(sp+-6)>>1];
   17927 	heap16[(r12+r8)>>1] = r14;
   17928 	r12 = heap32[(r9+17)];
   17929 	r12 = (r12 + r8)|0;
   17930 	heap16[(r12+2)>>1] = r3;
   17931 	r12 = heap32[(r9+17)];
   17932 	r14 = heapU16[(sp+-12)>>1];
   17933 	r13 = r13 << 2;
   17934 	heap16[(r12+r13)>>1] = r14;
   17935 	r12 = heap32[(r9+17)];
   17936 	r12 = (r12 + r13)|0;
   17937 	r14 = (r11 + -1)|0;
   17938 	heap16[(r12+2)>>1] = r3;
   17939 	heap16[(r10+48)>>1] = r14;
   17940 	heap16[(r10+54)>>1] = r11;
   17941 	r12 = heap32[(r9+15)];
   17942 	r16 = heapU16[(r12+56)>>1];
   17943 	r16 = (r16 + 2)|0;
   17944 	heap16[(r12+56)>>1] = r16;
   17945 	r12 = heap32[(r9+18)];
   17946 	r16 = (r12 + r8)|0;
   17947 	r16 = heapU16[(r16+2)>>1];
   17948 	r17 = heapU16[(r12+r8)>>1];
   17949 	r18 = (r12 + r15)|0;
   17950 	heap16[(r12+r15)>>1] = r17;
   17951 	heap16[(r18+2)>>1] = r16;
   17952 	r12 = heap32[(r9+18)];
   17953 	r16 = heapU16[(sp+-4)>>1];
   17954 	heap16[(r12+r8)>>1] = r16;
   17955 	r12 = heap32[(r9+18)];
   17956 	r12 = (r12 + r8)|0;
   17957 	heap16[(r12+2)>>1] = r3;
   17958 	r12 = heap32[(r9+18)];
   17959 	r16 = heapU16[(sp+-10)>>1];
   17960 	heap16[(r12+r13)>>1] = r16;
   17961 	r12 = heap32[(r9+18)];
   17962 	r12 = (r12 + r13)|0;
   17963 	heap16[(r12+2)>>1] = r3;
   17964 	heap16[(r10+50)>>1] = r14;
   17965 	heap16[(r10+56)>>1] = r11;
   17966 	r12 = heap32[(r9+15)];
   17967 	r16 = heapU16[(r12+58)>>1];
   17968 	r16 = (r16 + 2)|0;
   17969 	heap16[(r12+58)>>1] = r16;
   17970 	r12 = heap32[(r9+19)];
   17971 	r16 = (r12 + r8)|0;
   17972 	r16 = heapU16[(r16+2)>>1];
   17973 	r17 = heapU16[(r12+r8)>>1];
   17974 	r18 = (r12 + r15)|0;
   17975 	heap16[(r12+r15)>>1] = r17;
   17976 	heap16[(r18+2)>>1] = r16;
   17977 	r12 = heap32[(r9+19)];
   17978 	r15 = heapU16[(sp+-2)>>1];
   17979 	heap16[(r12+r8)>>1] = r15;
   17980 	r12 = heap32[(r9+19)];
   17981 	r8 = (r12 + r8)|0;
   17982 	heap16[(r8+2)>>1] = r3;
   17983 	r8 = heap32[(r9+19)];
   17984 	r12 = heapU16[(sp+-8)>>1];
   17985 	heap16[(r8+r13)>>1] = r12;
   17986 	r8 = heap32[(r9+19)];
   17987 	r8 = (r8 + r13)|0;
   17988 	heap16[(r8+2)>>1] = r3;
   17989 	heap16[(r10+52)>>1] = r14;
   17990 	heap16[(r10+58)>>1] = r11;
   17991 	r8 = heapU16[(r10+48)>>1];
   17992 	heap32[(g0)] = r1;
   17993 	heap32[(g0+1)] = 0;
   17994 	heap32[(g0+2)] = r8;
   17995 	heap32[(g0+3)] = 0;
   17996 	_ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(i7);
   17997 	r8 = heapU16[(r10+54)>>1];
   17998 	heap32[(g0)] = r1;
   17999 	heap32[(g0+1)] = 0;
   18000 	heap32[(g0+2)] = r8;
   18001 	heap32[(g0+3)] = r7;
   18002 	heap32[(g0+4)] = 0;
   18003 	_ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(i7);
   18004 	r8 = heapU16[(r10+50)>>1];
   18005 	heap32[(g0)] = r1;
   18006 	heap32[(g0+1)] = 1;
   18007 	heap32[(g0+2)] = r8;
   18008 	heap32[(g0+3)] = 0;
   18009 	_ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(i7);
   18010 	r8 = heapU16[(r10+56)>>1];
   18011 	heap32[(g0)] = r1;
   18012 	heap32[(g0+1)] = 1;
   18013 	heap32[(g0+2)] = r8;
   18014 	heap32[(g0+3)] = r7;
   18015 	heap32[(g0+4)] = 0;
   18016 	_ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(i7);
   18017 	r8 = heapU16[(r10+52)>>1];
   18018 	heap32[(g0)] = r1;
   18019 	heap32[(g0+1)] = 2;
   18020 	heap32[(g0+2)] = r8;
   18021 	heap32[(g0+3)] = 1;
   18022 	_ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(i7);
   18023 	r8 = heapU16[(r10+58)>>1];
   18024 	heap32[(g0)] = r1;
   18025 	heap32[(g0+1)] = 2;
   18026 	heap32[(g0+2)] = r8;
   18027 	heap32[(g0+3)] = r7;
   18028 	heap32[(g0+4)] = 1;
   18029 	_ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(i7);
   18030 	r1 = heap32[(r9+27)];
   18031 	r8 = heap32[(r9+15)];
   18032 if(!(r1 ==0)) //_LBB66_4
   18033 {
   18034 	r9 = heap32[(fp+3)];
   18035 	r10 = r1 >> 2;
   18036 	r10 = heap32[(r10)];
   18037 	r10 = r10 >> 2;
   18038 	r10 = heap32[(r10+2)];
   18039 	r11 = r3 << 6;
   18040 	heap32[(g0)] = r1;
   18041 	heap32[(g0+1)] = r0;
   18042 	heap32[(g0+2)] = r2;
   18043 	heap32[(g0+3)] = r9;
   18044 	heap32[(g0+4)] = r4;
   18045 	heap32[(g0+5)] = r5;
   18046 	heap32[(g0+6)] = r6;
   18047 	heap32[(g0+7)] = r7;
   18048 	heap32[(g0+8)] = 0;
   18049 	r0 = (r8 + r11)|0;
   18050 	r0 = r0 >> 2;
   18051 	__FUNCTION_TABLE__[(r10)>>2](i7);
   18052 	heap32[(r0+15)] = r_g0;
   18053 }
   18054 	r0 = r3 << 6;
   18055 	r0 = (r8 + r0)|0;
   18056 	r_g0 = r0;
   18057 	return;
   18058 }
   18059 else{
   18060 	r0 = _2E_str213;
   18061 	r1 = _2E_str112;
   18062 	heap32[(g0)] = r0;
   18063 	heap32[(g0+1)] = r1;
   18064 	heap32[(g0+2)] = 483;
   18065 	_assert(i7);
   18066 }
   18067 }
   18068 
   18069 function _ZN20btAlignedObjectArrayI16btBroadphasePairE6resizeEiRKS0_(sp)
   18070 {
   18071 	var i7;
   18072 	var fp = sp>>2;
   18073 	var r0;
   18074 	var r1;
   18075 	var r2;
   18076 	var r3;
   18077 	var r4;
   18078 	var r5;
   18079 	var r6;
   18080 	var r7;
   18081 	var r8;
   18082 	var r9;
   18083 	var r10;
   18084 	var r11;
   18085 var __label__ = 0;
   18086 	i7 = sp + -8;var g0 = i7>>2; // save stack
   18087 	r0 = heap32[(fp)];
   18088 	r1 = r0 >> 2;
   18089 	r2 = heap32[(r1+1)];
   18090 	r3 = heap32[(fp+1)];
   18091 _1: do {
   18092 if(!(r2 >r3)) //_LBB67_20
   18093 {
   18094 if(!(r2 >=r3)) //_LBB67_20
   18095 {
   18096 	r4 = heap32[(r1+2)];
   18097 if(!(r4 >=r3)) //_LBB67_18
   18098 {
   18099 	if(r3 !=0) //_LBB67_5
   18100 {
   18101 	r4 = gNumAlignedAllocs;
   18102 	r4 = r4 >> 2;
   18103 	r5 = heap32[(r4)];
   18104 	r6 = r3 << 4;
   18105 	r5 = (r5 + 1)|0;
   18106 	r6 = r6 | 3;
   18107 	heap32[(r4)] = r5;
   18108 	r4 = (r6 + 16)|0;
   18109 	heap32[(g0)] = r4;
   18110 	malloc(i7);
   18111 	r4 = r_g0;
   18112 	if(r4 !=0) //_LBB67_7
   18113 {
   18114 	r5 = 0;
   18115 	r6 = (r4 + 4)|0;
   18116 	r5 = (r5 - r6)|0;
   18117 	r5 = r5 & 15;
   18118 	r5 = (r4 + r5)|0;
   18119 	r6 = (r5 + 4)|0;
   18120 	r5 = r5 >> 2;
   18121 	heap32[(r5)] = r4;
   18122 	r4 = r6;
   18123 }
   18124 }
   18125 else{
   18126 	r4 = 0;
   18127 }
   18128 	r5 = (r0 + 12)|0;
   18129 	if(r2 <1) //_LBB67_10
   18130 {
   18131 	r6 = r5 >> 2;
   18132 	r8 = heap32[(r6)];
   18133 }
   18134 else{
   18135 	r6 = 0;
   18136 	r7 = (r6 - r2)|0;
   18137 _14: while(true){
   18138 	r8 = r5 >> 2;
   18139 	r8 = heap32[(r8)];
   18140 	r9 = r6 << 4;
   18141 	r10 = (r8 - r9)|0;
   18142 	r10 = r10 >> 2;
   18143 	r9 = (r4 - r9)|0;
   18144 	r11 = heap32[(r10)];
   18145 	r9 = r9 >> 2;
   18146 	heap32[(r9)] = r11;
   18147 	r11 = heap32[(r10+1)];
   18148 	heap32[(r9+1)] = r11;
   18149 	r11 = heap32[(r10+2)];
   18150 	heap32[(r9+2)] = r11;
   18151 	r10 = heap32[(r10+3)];
   18152 	r6 = (r6 + -1)|0;
   18153 	heap32[(r9+3)] = r10;
   18154 if(!(r7 !=r6)) //_LBB67_11
   18155 {
   18156 break _14;
   18157 }
   18158 }
   18159 	r5 = (r0 + 12)|0;
   18160 }
   18161 if(!(r8 ==0)) //_LBB67_17
   18162 {
   18163 	r6 = heapU8[r0+16];
   18164 if(!(r6 ==0)) //_LBB67_16
   18165 {
   18166 	r6 = gNumAlignedFree;
   18167 	r6 = r6 >> 2;
   18168 	r7 = heap32[(r6)];
   18169 	r7 = (r7 + 1)|0;
   18170 	r8 = r8 >> 2;
   18171 	heap32[(r6)] = r7;
   18172 	r6 = heap32[(r8+-1)];
   18173 	heap32[(g0)] = r6;
   18174 	free(i7);
   18175 }
   18176 	r6 = r5 >> 2;
   18177 	heap32[(r6)] = 0;
   18178 }
   18179 	r6 = 1;
   18180 	r5 = r5 >> 2;
   18181 	heap8[r0+16] = r6;
   18182 	heap32[(r5)] = r4;
   18183 	heap32[(r1+2)] = r3;
   18184 	if(r2 >=r3) //_LBB67_20
   18185 {
   18186 break _1;
   18187 }
   18188 }
   18189 	r0 = heap32[(fp+2)];
   18190 _25: while(true){
   18191 	r4 = r0 >> 2;
   18192 	r5 = r2 << 4;
   18193 	r6 = heap32[(r1+3)];
   18194 	r5 = (r6 + r5)|0;
   18195 	r6 = heap32[(r4)];
   18196 	r5 = r5 >> 2;
   18197 	heap32[(r5)] = r6;
   18198 	r6 = heap32[(r4+1)];
   18199 	heap32[(r5+1)] = r6;
   18200 	r6 = heap32[(r4+2)];
   18201 	heap32[(r5+2)] = r6;
   18202 	r4 = heap32[(r4+3)];
   18203 	r2 = (r2 + 1)|0;
   18204 	heap32[(r5+3)] = r4;
   18205 	if(r3 !=r2) //_LBB67_19
   18206 {
   18207 continue _25;
   18208 }
   18209 else{
   18210 break _1;
   18211 }
   18212 }
   18213 }
   18214 }
   18215 } while(0);
   18216 	heap32[(r1+1)] = r3;
   18217 	return;
   18218 }
   18219 
   18220 function _ZN20btAxisSweep3InternalItE25calculateOverlappingPairsEP12btDispatcher(sp)
   18221 {
   18222 	var i7;
   18223 	var fp = sp>>2;
   18224 	var r0;
   18225 	var r1;
   18226 	var r2;
   18227 	var r3;
   18228 	var r4;
   18229 	var r5;
   18230 	var r6;
   18231 	var r7;
   18232 	var r8;
   18233 	var r9;
   18234 	var r10;
   18235 	var r11;
   18236 	var r12;
   18237 	var r13;
   18238 	var r14;
   18239 var __label__ = 0;
   18240 	i7 = sp + -48;var g0 = i7>>2; // save stack
   18241 	r0 = heap32[(fp)];
   18242 	r0 = r0 >> 2;
   18243 	r1 = heap32[(r0+23)];
   18244 	r2 = r1 >> 2;
   18245 	r2 = heap32[(r2)];
   18246 	r2 = r2 >> 2;
   18247 	r2 = heap32[(r2+14)];
   18248 	heap32[(g0)] = r1;
   18249 	__FUNCTION_TABLE__[(r2)>>2](i7);
   18250 	r1 = r_g0;
   18251 if(!(r1 ==0)) //_LBB68_22
   18252 {
   18253 	r1 = heap32[(fp+1)];
   18254 	r2 = heap32[(r0+23)];
   18255 	r3 = r2 >> 2;
   18256 	r3 = heap32[(r3)];
   18257 	r3 = r3 >> 2;
   18258 	r3 = heap32[(r3+7)];
   18259 	heap32[(g0)] = r2;
   18260 	__FUNCTION_TABLE__[(r3)>>2](i7);
   18261 	r2 = r_g0;
   18262 	r3 = r2 >> 2;
   18263 	r3 = heap32[(r3+1)];
   18264 	if(r3 >1) //_LBB68_3
   18265 {
   18266 	r3 = (r3 + -1)|0;
   18267 	heap32[(g0)] = r2;
   18268 	heap32[(g0+1)] = 0;
   18269 	heap32[(g0+2)] = r3;
   18270 	r3 = r2 >> 2;
   18271 	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
   18272 	r3 = heap32[(r3+1)];
   18273 }
   18274 	r4 = sp + -32;
   18275 	r5 = r4 >> 2;
   18276 	heap32[(fp+-8)] = 0;
   18277 	heap32[(r5+1)] = 0;
   18278 	heap32[(r5+2)] = 0;
   18279 	heap32[(r5+3)] = 0;
   18280 	r5 = heap32[(r0+26)];
   18281 	r3 = (r3 - r5)|0;
   18282 	heap32[(g0)] = r2;
   18283 	heap32[(g0+1)] = r3;
   18284 	heap32[(g0+2)] = r4;
   18285 	r3 = 0;
   18286 	_ZN20btAlignedObjectArrayI16btBroadphasePairE6resizeEiRKS0_(i7);
   18287 	heap32[(r0+26)] = 0;
   18288 	r4 = r3;
   18289 	r5 = r3;
   18290 	r6 = r3;
   18291 	r7 = r3;
   18292 _6: while(true){
   18293 	r8 = r2 >> 2;
   18294 	r9 = heap32[(r8+1)];
   18295 	if(r9 >r7) //_LBB68_5
   18296 {
   18297 	r8 = heap32[(r8+3)];
   18298 	r9 = r7 << 4;
   18299 	r9 = (r8 + r9)|0;
   18300 	r9 = r9 >> 2;
   18301 	r10 = heap32[(r9)];
   18302 	r11 = r7 << 2;
   18303 	r12 = heap32[(r9+1)];
   18304 	if(r10 !=r5) //_LBB68_7
   18305 {
   18306 __label__ = 6;
   18307 }
   18308 else{
   18309 	if(r12 ==r6) //_LBB68_13
   18310 {
   18311 	r4 = heap32[(r9+2)];
   18312 	if(r4 ==0) //_LBB68_15
   18313 {
   18314 __label__ = 13;
   18315 }
   18316 else{
   18317 __label__ = 12;
   18318 break _6;
   18319 }
   18320 }
   18321 else{
   18322 __label__ = 6;
   18323 }
   18324 }
   18325 if (__label__ == 6){
   18326 	r5 = (r12 + 54)|0;
   18327 	r6 = (r10 + 48)|0;
   18328 	r9 = 0;
   18329 _14: while(true){
   18330 	if(r9 <3) //_LBB68_8
   18331 {
   18332 	r13 = heapU16[(r6+6)>>1];
   18333 	r14 = heapU16[(r5+-6)>>1];
   18334 	if(uint(r13) <uint(r14)) //_LBB68_15
   18335 {
   18336 __label__ = 13;
   18337 break _14;
   18338 }
   18339 else{
   18340 	r13 = heapU16[(r5)>>1];
   18341 	r14 = heapU16[(r6)>>1];
   18342 	if(uint(r13) <uint(r14)) //_LBB68_15
   18343 {
   18344 __label__ = 13;
   18345 break _14;
   18346 }
   18347 else{
   18348 	r9 = (r9 + 1)|0;
   18349 	r5 = (r5 + 2)|0;
   18350 	r6 = (r6 + 2)|0;
   18351 }
   18352 }
   18353 }
   18354 else{
   18355 __label__ = 14;
   18356 break _14;
   18357 }
   18358 }
   18359 }
   18360 if (__label__ == 13){
   18361 	r4 = heap32[(r0+23)];
   18362 	r5 = r4 >> 2;
   18363 	r5 = heap32[(r5)];
   18364 	r5 = r5 >> 2;
   18365 	r5 = heap32[(r5+8)];
   18366 	r6 = (r8 + r3)|0;
   18367 	r9 = r11 << 2;
   18368 	heap32[(g0)] = r4;
   18369 	heap32[(g0+1)] = r6;
   18370 	heap32[(g0+2)] = r1;
   18371 	r4 = (r8 + r9)|0;
   18372 	r4 = r4 >> 2;
   18373 	__FUNCTION_TABLE__[(r5)>>2](i7);
   18374 	heap32[(r4)] = 0;
   18375 	heap32[(r4+1)] = 0;
   18376 	r4 = heap32[(r0+26)];
   18377 	r4 = (r4 + 1)|0;
   18378 	r5 = gOverlappingPairs;
   18379 	r5 = r5 >> 2;
   18380 	heap32[(r0+26)] = r4;
   18381 	r6 = heap32[(r5)];
   18382 	r6 = (r6 + -1)|0;
   18383 	heap32[(r5)] = r6;
   18384 }
   18385 	r7 = (r7 + 1)|0;
   18386 	r3 = (r3 + 16)|0;
   18387 	r5 = r10;
   18388 	r6 = r12;
   18389 }
   18390 else{
   18391 __label__ = 16;
   18392 break _6;
   18393 }
   18394 }
   18395 switch(__label__ ){//multiple entries
   18396 case 16:
   18397 	if(r9 >1) //_LBB68_20
   18398 {
   18399 	r4 = (r9 + -1)|0;
   18400 	heap32[(g0)] = r2;
   18401 	heap32[(g0+1)] = 0;
   18402 	heap32[(g0+2)] = r4;
   18403 	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
   18404 	r9 = heap32[(r8+1)];
   18405 	r4 = heap32[(r0+26)];
   18406 }
   18407 	r1 = sp + -16;
   18408 	r3 = r1 >> 2;
   18409 	heap32[(fp+-4)] = 0;
   18410 	heap32[(r3+1)] = 0;
   18411 	heap32[(r3+2)] = 0;
   18412 	heap32[(r3+3)] = 0;
   18413 	r3 = (r9 - r4)|0;
   18414 	heap32[(g0)] = r2;
   18415 	heap32[(g0+1)] = r3;
   18416 	heap32[(g0+2)] = r1;
   18417 	_ZN20btAlignedObjectArrayI16btBroadphasePairE6resizeEiRKS0_(i7);
   18418 	heap32[(r0+26)] = 0;
   18419 break;
   18420 case 12:
   18421 	r8 = _2E_str314;
   18422 	r0 = _2E_str112;
   18423 	heap32[(g0)] = r8;
   18424 	heap32[(g0+1)] = r0;
   18425 	heap32[(g0+2)] = 687;
   18426 	_assert(i7);
   18427 break;
   18428 }
   18429 }
   18430 	return;
   18431 }
   18432 
   18433 function _ZN20btAxisSweep3InternalItED2Ev(sp)
   18434 {
   18435 	var i7;
   18436 	var fp = sp>>2;
   18437 	var r0;
   18438 	var r1;
   18439 	var r2;
   18440 	var r3;
   18441 	var r4;
   18442 	var r5;
   18443 var __label__ = 0;
   18444 	i7 = sp + -8;var g0 = i7>>2; // save stack
   18445 	r0 = heap32[(fp)];
   18446 	r1 = _ZTV20btAxisSweep3InternalItE;
   18447 	r2 = r0 >> 2;
   18448 	r1 = (r1 + 8)|0;
   18449 	heap32[(r2)] = r1;
   18450 	r1 = heap32[(r2+27)];
   18451 if(!(r1 ==0)) //_LBB69_5
   18452 {
   18453 	r1 = heap32[(r2+28)];
   18454 	r3 = r1 >> 2;
   18455 	r3 = heap32[(r3)];
   18456 	r3 = r3 >> 2;
   18457 	r3 = heap32[(r3)];
   18458 	heap32[(g0)] = r1;
   18459 	__FUNCTION_TABLE__[(r3)>>2](i7);
   18460 	r1 = heap32[(r2+28)];
   18461 if(!(r1 ==0)) //_LBB69_3
   18462 {
   18463 	r3 = gNumAlignedFree;
   18464 	r3 = r3 >> 2;
   18465 	r4 = heap32[(r3)];
   18466 	r4 = (r4 + 1)|0;
   18467 	r1 = r1 >> 2;
   18468 	heap32[(r3)] = r4;
   18469 	r1 = heap32[(r1+-1)];
   18470 	heap32[(g0)] = r1;
   18471 	free(i7);
   18472 }
   18473 	r1 = heap32[(r2+27)];
   18474 	r3 = r1 >> 2;
   18475 	r3 = heap32[(r3)];
   18476 	r3 = r3 >> 2;
   18477 	r3 = heap32[(r3)];
   18478 	heap32[(g0)] = r1;
   18479 	__FUNCTION_TABLE__[(r3)>>2](i7);
   18480 	r1 = heap32[(r2+27)];
   18481 if(!(r1 ==0)) //_LBB69_5
   18482 {
   18483 	r3 = gNumAlignedFree;
   18484 	r3 = r3 >> 2;
   18485 	r4 = heap32[(r3)];
   18486 	r4 = (r4 + 1)|0;
   18487 	r1 = r1 >> 2;
   18488 	heap32[(r3)] = r4;
   18489 	r1 = heap32[(r1+-1)];
   18490 	heap32[(g0)] = r1;
   18491 	free(i7);
   18492 }
   18493 }
   18494 	r1 = 0;
   18495 _8: while(true){
   18496 	r3 = r1 << 2;
   18497 	r3 = (r0 + r3)|0;
   18498 	r3 = r3 >> 2;
   18499 	r3 = heap32[(r3+22)];
   18500 if(!(r3 ==0)) //_LBB69_8
   18501 {
   18502 	r4 = gNumAlignedFree;
   18503 	r4 = r4 >> 2;
   18504 	r5 = heap32[(r4)];
   18505 	r5 = (r5 + 1)|0;
   18506 	r3 = r3 >> 2;
   18507 	heap32[(r4)] = r5;
   18508 	r3 = heap32[(r3+-1)];
   18509 	heap32[(g0)] = r3;
   18510 	free(i7);
   18511 }
   18512 	r1 = (r1 + -1)|0;
   18513 	if(r1 !=-3) //_LBB69_6
   18514 {
   18515 continue _8;
   18516 }
   18517 else{
   18518 break _8;
   18519 }
   18520 }
   18521 	r1 = heap32[(r2+15)];
   18522 if(!(r1 ==0)) //_LBB69_11
   18523 {
   18524 	r3 = gNumAlignedFree;
   18525 	r3 = r3 >> 2;
   18526 	r4 = heap32[(r3)];
   18527 	r4 = (r4 + 1)|0;
   18528 	r1 = r1 >> 2;
   18529 	heap32[(r3)] = r4;
   18530 	r1 = heap32[(r1+-1)];
   18531 	heap32[(g0)] = r1;
   18532 	free(i7);
   18533 }
   18534 	r0 = heapU8[r0+100];
   18535 if(!(r0 ==0)) //_LBB69_14
   18536 {
   18537 	r0 = heap32[(r2+23)];
   18538 	r1 = r0 >> 2;
   18539 	r1 = heap32[(r1)];
   18540 	r1 = r1 >> 2;
   18541 	r1 = heap32[(r1)];
   18542 	heap32[(g0)] = r0;
   18543 	__FUNCTION_TABLE__[(r1)>>2](i7);
   18544 	r0 = heap32[(r2+23)];
   18545 if(!(r0 ==0)) //_LBB69_14
   18546 {
   18547 	r1 = gNumAlignedFree;
   18548 	r1 = r1 >> 2;
   18549 	r2 = heap32[(r1)];
   18550 	r2 = (r2 + 1)|0;
   18551 	r0 = r0 >> 2;
   18552 	heap32[(r1)] = r2;
   18553 	r0 = heap32[(r0+-1)];
   18554 	heap32[(g0)] = r0;
   18555 	free(i7);
   18556 }
   18557 }
   18558 	return;
   18559 }
   18560 
   18561 function _ZN20btAxisSweep3InternalItED1Ev(sp)
   18562 {
   18563 	var i7;
   18564 	var fp = sp>>2;
   18565 	var r0;
   18566 var __label__ = 0;
   18567 	i7 = sp + -8;var g0 = i7>>2; // save stack
   18568 	r0 = heap32[(fp)];
   18569 	heap32[(g0)] = r0;
   18570 	_ZN20btAxisSweep3InternalItED2Ev(i7);
   18571 	return;
   18572 }
   18573 
   18574 function _ZN20btAxisSweep3InternalItED0Ev(sp)
   18575 {
   18576 	var i7;
   18577 	var fp = sp>>2;
   18578 	var r0;
   18579 	var r1;
   18580 	var r2;
   18581 	var r3;
   18582 	var r4;
   18583 	var r5;
   18584 var __label__ = 0;
   18585 	i7 = sp + -8;var g0 = i7>>2; // save stack
   18586 	r0 = heap32[(fp)];
   18587 	r1 = _ZTV20btAxisSweep3InternalItE;
   18588 	r2 = r0 >> 2;
   18589 	r1 = (r1 + 8)|0;
   18590 	heap32[(r2)] = r1;
   18591 	r1 = heap32[(r2+27)];
   18592 if(!(r1 ==0)) //_LBB71_5
   18593 {
   18594 	r1 = heap32[(r2+28)];
   18595 	r3 = r1 >> 2;
   18596 	r3 = heap32[(r3)];
   18597 	r3 = r3 >> 2;
   18598 	r3 = heap32[(r3)];
   18599 	heap32[(g0)] = r1;
   18600 	__FUNCTION_TABLE__[(r3)>>2](i7);
   18601 	r1 = heap32[(r2+28)];
   18602 if(!(r1 ==0)) //_LBB71_3
   18603 {
   18604 	r3 = gNumAlignedFree;
   18605 	r3 = r3 >> 2;
   18606 	r4 = heap32[(r3)];
   18607 	r4 = (r4 + 1)|0;
   18608 	r1 = r1 >> 2;
   18609 	heap32[(r3)] = r4;
   18610 	r1 = heap32[(r1+-1)];
   18611 	heap32[(g0)] = r1;
   18612 	free(i7);
   18613 }
   18614 	r1 = heap32[(r2+27)];
   18615 	r3 = r1 >> 2;
   18616 	r3 = heap32[(r3)];
   18617 	r3 = r3 >> 2;
   18618 	r3 = heap32[(r3)];
   18619 	heap32[(g0)] = r1;
   18620 	__FUNCTION_TABLE__[(r3)>>2](i7);
   18621 	r1 = heap32[(r2+27)];
   18622 if(!(r1 ==0)) //_LBB71_5
   18623 {
   18624 	r3 = gNumAlignedFree;
   18625 	r3 = r3 >> 2;
   18626 	r4 = heap32[(r3)];
   18627 	r4 = (r4 + 1)|0;
   18628 	r1 = r1 >> 2;
   18629 	heap32[(r3)] = r4;
   18630 	r1 = heap32[(r1+-1)];
   18631 	heap32[(g0)] = r1;
   18632 	free(i7);
   18633 }
   18634 }
   18635 	r1 = 0;
   18636 _8: while(true){
   18637 	r3 = r1 << 2;
   18638 	r3 = (r0 + r3)|0;
   18639 	r3 = r3 >> 2;
   18640 	r3 = heap32[(r3+22)];
   18641 if(!(r3 ==0)) //_LBB71_8
   18642 {
   18643 	r4 = gNumAlignedFree;
   18644 	r4 = r4 >> 2;
   18645 	r5 = heap32[(r4)];
   18646 	r5 = (r5 + 1)|0;
   18647 	r3 = r3 >> 2;
   18648 	heap32[(r4)] = r5;
   18649 	r3 = heap32[(r3+-1)];
   18650 	heap32[(g0)] = r3;
   18651 	free(i7);
   18652 }
   18653 	r1 = (r1 + -1)|0;
   18654 	if(r1 !=-3) //_LBB71_6
   18655 {
   18656 continue _8;
   18657 }
   18658 else{
   18659 break _8;
   18660 }
   18661 }
   18662 	r1 = heap32[(r2+15)];
   18663 if(!(r1 ==0)) //_LBB71_11
   18664 {
   18665 	r3 = gNumAlignedFree;
   18666 	r3 = r3 >> 2;
   18667 	r4 = heap32[(r3)];
   18668 	r4 = (r4 + 1)|0;
   18669 	r1 = r1 >> 2;
   18670 	heap32[(r3)] = r4;
   18671 	r1 = heap32[(r1+-1)];
   18672 	heap32[(g0)] = r1;
   18673 	free(i7);
   18674 }
   18675 	r0 = heapU8[r0+100];
   18676 if(!(r0 ==0)) //_LBB71_14
   18677 {
   18678 	r0 = heap32[(r2+23)];
   18679 	r1 = r0 >> 2;
   18680 	r1 = heap32[(r1)];
   18681 	r1 = r1 >> 2;
   18682 	r1 = heap32[(r1)];
   18683 	heap32[(g0)] = r0;
   18684 	__FUNCTION_TABLE__[(r1)>>2](i7);
   18685 	r0 = heap32[(r2+23)];
   18686 if(!(r0 ==0)) //_LBB71_14
   18687 {
   18688 	r1 = gNumAlignedFree;
   18689 	r1 = r1 >> 2;
   18690 	r3 = heap32[(r1)];
   18691 	r3 = (r3 + 1)|0;
   18692 	r0 = r0 >> 2;
   18693 	heap32[(r1)] = r3;
   18694 	r0 = heap32[(r0+-1)];
   18695 	heap32[(g0)] = r0;
   18696 	free(i7);
   18697 }
   18698 }
   18699 	r0 = gNumAlignedFree;
   18700 	r0 = r0 >> 2;
   18701 	r1 = heap32[(r0)];
   18702 	r1 = (r1 + 1)|0;
   18703 	heap32[(r0)] = r1;
   18704 	r0 = heap32[(r2+-1)];
   18705 	heap32[(g0)] = r0;
   18706 	free(i7);
   18707 	return;
   18708 }
   18709 
   18710 function _ZN12btAxisSweep3D0Ev(sp)
   18711 {
   18712 	var i7;
   18713 	var fp = sp>>2;
   18714 	var r0;
   18715 	var r1;
   18716 	var r2;
   18717 var __label__ = 0;
   18718 	i7 = sp + -8;var g0 = i7>>2; // save stack
   18719 	r0 = heap32[(fp)];
   18720 	r1 = _ZTV12btAxisSweep3;
   18721 	r2 = r0 >> 2;
   18722 	r1 = (r1 + 8)|0;
   18723 	heap32[(r2)] = r1;
   18724 	heap32[(g0)] = r0;
   18725 	_ZN20btAxisSweep3InternalItED2Ev(i7);
   18726 if(!(r0 ==0)) //_LBB72_2
   18727 {
   18728 	r0 = gNumAlignedFree;
   18729 	r0 = r0 >> 2;
   18730 	r1 = heap32[(r0)];
   18731 	r1 = (r1 + 1)|0;
   18732 	heap32[(r0)] = r1;
   18733 	r0 = heap32[(r2+-1)];
   18734 	heap32[(g0)] = r0;
   18735 	free(i7);
   18736 }
   18737 	return;
   18738 }
   18739 
   18740 function _ZN12btAxisSweep3D1Ev(sp)
   18741 {
   18742 	var i7;
   18743 	var fp = sp>>2;
   18744 	var r0;
   18745 	var r1;
   18746 	var r2;
   18747 var __label__ = 0;
   18748 	i7 = sp + -8;var g0 = i7>>2; // save stack
   18749 	r0 = heap32[(fp)];
   18750 	r1 = _ZTV12btAxisSweep3;
   18751 	r2 = r0 >> 2;
   18752 	r1 = (r1 + 8)|0;
   18753 	heap32[(r2)] = r1;
   18754 	heap32[(g0)] = r0;
   18755 	_ZN20btAxisSweep3InternalItED2Ev(i7);
   18756 	return;
   18757 }
   18758 
   18759 function _ZN20btCollisionAlgorithmD1Ev(sp)
   18760 {
   18761 	var i7;
   18762 	var fp = sp>>2;
   18763 	var r0;
   18764 	var r1;
   18765 var __label__ = 0;
   18766 	i7 = sp + 0;var g0 = i7>>2; // save stack
   18767 	r0 = heap32[(fp)];
   18768 	r1 = _ZTV20btCollisionAlgorithm;
   18769 	r0 = r0 >> 2;
   18770 	r1 = (r1 + 8)|0;
   18771 	heap32[(r0)] = r1;
   18772 	return;
   18773 }
   18774 
   18775 function _ZN20btCollisionAlgorithmD0Ev(sp)
   18776 {
   18777 	var i7;
   18778 	var fp = sp>>2;
   18779 	var r0;
   18780 	var r1;
   18781 	var r2;
   18782 var __label__ = 0;
   18783 	i7 = sp + -8;var g0 = i7>>2; // save stack
   18784 	r0 = heap32[(fp)];
   18785 	r1 = _ZTV20btCollisionAlgorithm;
   18786 	r2 = r0 >> 2;
   18787 	r1 = (r1 + 8)|0;
   18788 	heap32[(r2)] = r1;
   18789 	heap32[(g0)] = r0;
   18790 	_ZdlPv(i7);
   18791 	return;
   18792 }
   18793 
   18794 function _ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3_(sp)
   18795 {
   18796 	var i7;
   18797 	var fp = sp>>2;
   18798 var __label__ = 0;
   18799 	i7 = sp + 0;var g0 = i7>>2; // save stack
   18800 	return;
   18801 }
   18802 
   18803 function _ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef(sp)
   18804 {
   18805 	var i7;
   18806 	var fp = sp>>2;
   18807 	var r0;
   18808 	var r1;
   18809 	var r2;
   18810 var __label__ = 0;
   18811 	i7 = sp + -8;var g0 = i7>>2; // save stack
   18812 	r0 = heap32[(fp)];
   18813 	r1 = r0 >> 2;
   18814 	r1 = heap32[(r1)];
   18815 	r1 = r1 >> 2;
   18816 	r1 = heap32[(r1+3)];
   18817 	r2 = heap32[(fp+1)];
   18818 	heap32[(g0)] = r0;
   18819 	heap32[(g0+1)] = r2;
   18820 	__FUNCTION_TABLE__[(r1)>>2](i7);
   18821 	return;
   18822 }
   18823 
   18824 function _ZN6btDbvt8ICollide7DescentEPK10btDbvtNode(sp)
   18825 {
   18826 	var i7;
   18827 	var fp = sp>>2;
   18828 	var r0;
   18829 var __label__ = 0;
   18830 	i7 = sp + 0;var g0 = i7>>2; // save stack
   18831 	r0 = 1;
   18832 	r_g0 = r0;
   18833 	return;
   18834 }
   18835 
   18836 function _ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode(sp)
   18837 {
   18838 	var i7;
   18839 	var fp = sp>>2;
   18840 	var r0;
   18841 var __label__ = 0;
   18842 	i7 = sp + 0;var g0 = i7>>2; // save stack
   18843 	r0 = 1;
   18844 	r_g0 = r0;
   18845 	return;
   18846 }
   18847 
   18848 function _ZL10insertleafP6btDbvtP10btDbvtNodeS2_(sp)
   18849 {
   18850 	var i7;
   18851 	var fp = sp>>2;
   18852 	var r0;
   18853 	var r1;
   18854 	var r2;
   18855 	var r3;
   18856 	var r4;
   18857 	var r5;
   18858 	var r6;
   18859 	var r7;
   18860 	var f0;
   18861 	var f1;
   18862 	var f2;
   18863 	var f3;
   18864 	var f4;
   18865 	var f5;
   18866 	var f6;
   18867 	var f7;
   18868 	var f8;
   18869 	var f9;
   18870 	var f10;
   18871 	var f11;
   18872 var __label__ = 0;
   18873 	i7 = sp + -8;var g0 = i7>>2; // save stack
   18874 	r0 = heap32[(fp)];
   18875 	r1 = heap32[(fp+2)];
   18876 	r0 = r0 >> 2;
   18877 	r2 = heap32[(r0)];
   18878 	if(r2 !=0) //_LBB80_2
   18879 {
   18880 	r2 = heap32[(fp+1)];
   18881 	r3 = r2 >> 2;
   18882 	r3 = heap32[(r3+10)];
   18883 	if(r3 !=0) //_LBB80_4
   18884 {
   18885 	r4 = r1 >> 2;
   18886 	f0 = heapFloat[(r4+2)];
   18887 	f1 = heapFloat[(r4+6)];
   18888 	f2 = heapFloat[(r4+1)];
   18889 	f3 = heapFloat[(r4+5)];
   18890 	f4 = heapFloat[(r4)];
   18891 	f5 = heapFloat[(r4+4)];
   18892 	f0 = f0+f1;
   18893 	f1 = f2+f3;
   18894 	f2 = f4+f5;
   18895 _5: while(true){
   18896 	r4 = r2 >> 2;
   18897 	r4 = heap32[(r4+9)];
   18898 	r4 = r4 >> 2;
   18899 	f3 = heapFloat[(r4)];
   18900 	f4 = heapFloat[(r4+4)];
   18901 	f5 = heapFloat[(r4+2)];
   18902 	f6 = heapFloat[(r4+6)];
   18903 	f7 = heapFloat[(r4+1)];
   18904 	f8 = heapFloat[(r4+5)];
   18905 	f3 = f3+f4;
   18906 	f4 = f5+f6;
   18907 	f5 = f7+f8;
   18908 	f3 = f2-f3;
   18909 	f4 = f0-f4;
   18910 	f5 = f1-f5;
   18911 	f6 =                         0;
   18912 	if(f3 <f6) //_LBB80_7
   18913 {
   18914 	f3 = -f3;
   18915 }
   18916 	if(f5 <f6) //_LBB80_10
   18917 {
   18918 	f5 = -f5;
   18919 }
   18920 	f3 = f3+f5;
   18921 	if(f4 <f6) //_LBB80_13
   18922 {
   18923 	f4 = -f4;
   18924 }
   18925 	r3 = r3 >> 2;
   18926 	f5 = heapFloat[(r3)];
   18927 	f7 = heapFloat[(r3+4)];
   18928 	f8 = heapFloat[(r3+2)];
   18929 	f9 = heapFloat[(r3+6)];
   18930 	f10 = heapFloat[(r3+1)];
   18931 	f11 = heapFloat[(r3+5)];
   18932 	f5 = f5+f7;
   18933 	f7 = f8+f9;
   18934 	f8 = f10+f11;
   18935 	f5 = f2-f5;
   18936 	f3 = f3+f4;
   18937 	f4 = f0-f7;
   18938 	f7 = f1-f8;
   18939 	if(f5 <f6) //_LBB80_16
   18940 {
   18941 	f5 = -f5;
   18942 }
   18943 	if(f7 <f6) //_LBB80_19
   18944 {
   18945 	f7 = -f7;
   18946 }
   18947 	f5 = f5+f7;
   18948 	if(f4 <f6) //_LBB80_22
   18949 {
   18950 	f4 = -f4;
   18951 }
   18952 	f4 = f5+f4;
   18953 	r3 = f3 >= f4;
   18954 	r3 = r3 & 1;
   18955 	r3 = r3 << 2;
   18956 	r2 = (r2 + r3)|0;
   18957 	r2 = r2 >> 2;
   18958 	r2 = heap32[(r2+9)];
   18959 	r3 = r2 >> 2;
   18960 	r3 = heap32[(r3+10)];
   18961 if(!(r3 !=0)) //_LBB80_5
   18962 {
   18963 break _5;
   18964 }
   18965 }
   18966 }
   18967 	r3 = r2 >> 2;
   18968 	r4 = heap32[(r0+1)];
   18969 	r5 = heap32[(r3+8)];
   18970 	if(r4 ==0) //_LBB80_26
   18971 {
   18972 	r4 = gNumAlignedAllocs;
   18973 	r4 = r4 >> 2;
   18974 	r6 = heap32[(r4)];
   18975 	r6 = (r6 + 1)|0;
   18976 	heap32[(r4)] = r6;
   18977 	heap32[(g0)] = 63;
   18978 	malloc(i7);
   18979 	r4 = r_g0;
   18980 	if(r4 !=0) //_LBB80_28
   18981 {
   18982 	r6 = 0;
   18983 	r7 = (r4 + 4)|0;
   18984 	r6 = (r6 - r7)|0;
   18985 	r6 = r6 & 15;
   18986 	r6 = (r4 + r6)|0;
   18987 	r7 = (r6 + 4)|0;
   18988 	r6 = r6 >> 2;
   18989 	heap32[(r6)] = r4;
   18990 	r4 = r7;
   18991 }
   18992 }
   18993 else{
   18994 	heap32[(r0+1)] = 0;
   18995 }
   18996 	r6 = r4 >> 2;
   18997 	heap32[(r6+8)] = r5;
   18998 	heap32[(r6+9)] = 0;
   18999 	heap32[(r6+10)] = 0;
   19000 	r7 = r1 >> 2;
   19001 	f0 = heapFloat[(r7)];
   19002 	f1 = heapFloat[(r3)];
   19003 	f0 = f0 < f1 ? f0 : f1;
   19004 	heapFloat[(r6)] = f0;
   19005 	f0 = heapFloat[(r7+4)];
   19006 	f1 = heapFloat[(r3+4)];
   19007 	f0 = f0 > f1 ? f0 : f1;
   19008 	heapFloat[(r6+4)] = f0;
   19009 	f0 = heapFloat[(r7+1)];
   19010 	f1 = heapFloat[(r3+1)];
   19011 	f0 = f0 < f1 ? f0 : f1;
   19012 	heapFloat[(r6+1)] = f0;
   19013 	f0 = heapFloat[(r7+5)];
   19014 	f1 = heapFloat[(r3+5)];
   19015 	f0 = f0 > f1 ? f0 : f1;
   19016 	heapFloat[(r6+5)] = f0;
   19017 	f0 = heapFloat[(r7+2)];
   19018 	f1 = heapFloat[(r3+2)];
   19019 	f0 = f0 < f1 ? f0 : f1;
   19020 	heapFloat[(r6+2)] = f0;
   19021 	f0 = heapFloat[(r7+6)];
   19022 	f1 = heapFloat[(r3+6)];
   19023 	f0 = f0 > f1 ? f0 : f1;
   19024 	heapFloat[(r6+6)] = f0;
   19025 _31: do {
   19026 	if(r5 ==0) //_LBB80_38
   19027 {
   19028 	heap32[(r6+9)] = r2;
   19029 	heap32[(r3+8)] = r4;
   19030 	heap32[(r6+10)] = r1;
   19031 	heap32[(r7+8)] = r4;
   19032 	heap32[(r0)] = r4;
   19033 }
   19034 else{
   19035 	r0 = heap32[(r3+8)];
   19036 	r0 = r0 >> 2;
   19037 	r0 = heap32[(r0+10)];
   19038 	r0 = r0 == r2;
   19039 	r0 = r0 & 1;
   19040 	r0 = r0 << 2;
   19041 	r0 = (r5 + r0)|0;
   19042 	r0 = r0 >> 2;
   19043 	heap32[(r0+9)] = r4;
   19044 	heap32[(r6+9)] = r2;
   19045 	heap32[(r3+8)] = r4;
   19046 	heap32[(r6+10)] = r1;
   19047 	heap32[(r7+8)] = r4;
   19048 	f0 = heapFloat[(r6)];
   19049 _34: while(true){
   19050 	r0 = r5;
   19051 	r1 = r0 >> 2;
   19052 	f1 = heapFloat[(r1)];
   19053 if(!(f1 >f0)) //_LBB80_37
   19054 {
   19055 	r2 = r4 >> 2;
   19056 	f0 = heapFloat[(r1+1)];
   19057 	f1 = heapFloat[(r2+1)];
   19058 if(!(f0 >f1)) //_LBB80_37
   19059 {
   19060 	f0 = heapFloat[(r1+2)];
   19061 	f1 = heapFloat[(r2+2)];
   19062 if(!(f0 >f1)) //_LBB80_37
   19063 {
   19064 	f0 = heapFloat[(r1+4)];
   19065 	f1 = heapFloat[(r2+4)];
   19066 if(!(f0 <f1)) //_LBB80_37
   19067 {
   19068 	f0 = heapFloat[(r1+5)];
   19069 	f1 = heapFloat[(r2+5)];
   19070 if(!(f0 <f1)) //_LBB80_37
   19071 {
   19072 	f0 = heapFloat[(r1+6)];
   19073 	f1 = heapFloat[(r2+6)];
   19074 	if(f0 >=f1) //_LBB80_39
   19075 {
   19076 break _31;
   19077 }
   19078 }
   19079 }
   19080 }
   19081 }
   19082 }
   19083 	r2 = heap32[(r1+10)];
   19084 	r3 = heap32[(r1+9)];
   19085 	r2 = r2 >> 2;
   19086 	r3 = r3 >> 2;
   19087 	f0 = heapFloat[(r3)];
   19088 	f1 = heapFloat[(r2)];
   19089 	f0 = f0 < f1 ? f0 : f1;
   19090 	heapFloat[(r1)] = f0;
   19091 	f1 = heapFloat[(r3+4)];
   19092 	f2 = heapFloat[(r2+4)];
   19093 	f1 = f1 > f2 ? f1 : f2;
   19094 	heapFloat[(r1+4)] = f1;
   19095 	f1 = heapFloat[(r3+1)];
   19096 	f2 = heapFloat[(r2+1)];
   19097 	f1 = f1 < f2 ? f1 : f2;
   19098 	heapFloat[(r1+1)] = f1;
   19099 	f1 = heapFloat[(r3+5)];
   19100 	f2 = heapFloat[(r2+5)];
   19101 	f1 = f1 > f2 ? f1 : f2;
   19102 	heapFloat[(r1+5)] = f1;
   19103 	f1 = heapFloat[(r3+2)];
   19104 	f2 = heapFloat[(r2+2)];
   19105 	f1 = f1 < f2 ? f1 : f2;
   19106 	heapFloat[(r1+2)] = f1;
   19107 	f1 = heapFloat[(r3+6)];
   19108 	f2 = heapFloat[(r2+6)];
   19109 	f1 = f1 > f2 ? f1 : f2;
   19110 	heapFloat[(r1+6)] = f1;
   19111 	r5 = heap32[(r1+8)];
   19112 	r4 = r0;
   19113 	if(r5 ==0) //_LBB80_39
   19114 {
   19115 break _31;
   19116 }
   19117 }
   19118 }
   19119 } while(0);
   19120 	return;
   19121 }
   19122 else{
   19123 	r2 = r1 >> 2;
   19124 	heap32[(r0)] = r1;
   19125 	heap32[(r2+8)] = 0;
   19126 	return;
   19127 }
   19128 }
   19129 
   19130 function _ZL10removeleafP6btDbvtP10btDbvtNode(sp)
   19131 {
   19132 	var i7;
   19133 	var fp = sp>>2;
   19134 	var r0;
   19135 	var r1;
   19136 	var r2;
   19137 	var r3;
   19138 	var r4;
   19139 	var r5;
   19140 	var f0;
   19141 	var f1;
   19142 	var f2;
   19143 	var f3;
   19144 	var f4;
   19145 	var f5;
   19146 	var f6;
   19147 	var f7;
   19148 	var f8;
   19149 	var f9;
   19150 	var f10;
   19151 	var f11;
   19152 	var f12;
   19153 var __label__ = 0;
   19154 	i7 = sp + -8;var g0 = i7>>2; // save stack
   19155 	r0 = heap32[(fp)];
   19156 	r1 = heap32[(fp+1)];
   19157 	r0 = r0 >> 2;
   19158 	r2 = heap32[(r0)];
   19159 	if(r2 !=r1) //_LBB81_2
   19160 {
   19161 	r2 = r1 >> 2;
   19162 	r2 = heap32[(r2+8)];
   19163 	r3 = r2 >> 2;
   19164 	r4 = heap32[(r3+10)];
   19165 	r1 = r4 != r1;
   19166 	r1 = r1 & 1;
   19167 	r1 = r1 << 2;
   19168 	r1 = (r2 + r1)|0;
   19169 	r1 = r1 >> 2;
   19170 	r3 = heap32[(r3+8)];
   19171 	r1 = heap32[(r1+9)];
   19172 _3: do {
   19173 	if(r3 ==0) //_LBB81_11
   19174 {
   19175 	r3 = r1 >> 2;
   19176 	heap32[(r0)] = r1;
   19177 	heap32[(r3+8)] = 0;
   19178 	r3 = heap32[(r0+1)];
   19179 if(!(r3 ==0)) //_LBB81_13
   19180 {
   19181 	r1 = gNumAlignedFree;
   19182 	r1 = r1 >> 2;
   19183 	r4 = heap32[(r1)];
   19184 	r4 = (r4 + 1)|0;
   19185 	r3 = r3 >> 2;
   19186 	heap32[(r1)] = r4;
   19187 	r3 = heap32[(r3+-1)];
   19188 	heap32[(g0)] = r3;
   19189 	free(i7);
   19190 }
   19191 	heap32[(r0+1)] = r2;
   19192 	r3 = heap32[(r0)];
   19193 }
   19194 else{
   19195 	r4 = r3 >> 2;
   19196 	r4 = heap32[(r4+10)];
   19197 	r4 = r4 == r2;
   19198 	r4 = r4 & 1;
   19199 	r4 = r4 << 2;
   19200 	r4 = (r3 + r4)|0;
   19201 	r4 = r4 >> 2;
   19202 	r5 = r1 >> 2;
   19203 	heap32[(r4+9)] = r1;
   19204 	heap32[(r5+8)] = r3;
   19205 	r1 = heap32[(r0+1)];
   19206 if(!(r1 ==0)) //_LBB81_5
   19207 {
   19208 	r4 = gNumAlignedFree;
   19209 	r4 = r4 >> 2;
   19210 	r5 = heap32[(r4)];
   19211 	r5 = (r5 + 1)|0;
   19212 	r1 = r1 >> 2;
   19213 	heap32[(r4)] = r5;
   19214 	r1 = heap32[(r1+-1)];
   19215 	heap32[(g0)] = r1;
   19216 	free(i7);
   19217 }
   19218 	heap32[(r0+1)] = r2;
   19219 _12: while(true){
   19220 	if(r3 !=0) //_LBB81_6
   19221 {
   19222 	r1 = r3 >> 2;
   19223 	r2 = heap32[(r1+10)];
   19224 	r4 = heap32[(r1+9)];
   19225 	r2 = r2 >> 2;
   19226 	r4 = r4 >> 2;
   19227 	f0 = heapFloat[(r1+6)];
   19228 	f1 = heapFloat[(r1)];
   19229 	f2 = heapFloat[(r1+1)];
   19230 	f3 = heapFloat[(r1+2)];
   19231 	f4 = heapFloat[(r1+4)];
   19232 	f5 = heapFloat[(r1+5)];
   19233 	f6 = heapFloat[(r4)];
   19234 	f7 = heapFloat[(r2)];
   19235 	f6 = f6 < f7 ? f6 : f7;
   19236 	heapFloat[(r1)] = f6;
   19237 	f7 = heapFloat[(r4+4)];
   19238 	f8 = heapFloat[(r2+4)];
   19239 	f7 = f7 > f8 ? f7 : f8;
   19240 	heapFloat[(r1+4)] = f7;
   19241 	f8 = heapFloat[(r4+1)];
   19242 	f9 = heapFloat[(r2+1)];
   19243 	f8 = f8 < f9 ? f8 : f9;
   19244 	heapFloat[(r1+1)] = f8;
   19245 	f9 = heapFloat[(r4+5)];
   19246 	f10 = heapFloat[(r2+5)];
   19247 	f9 = f9 > f10 ? f9 : f10;
   19248 	heapFloat[(r1+5)] = f9;
   19249 	f10 = heapFloat[(r4+2)];
   19250 	f11 = heapFloat[(r2+2)];
   19251 	f10 = f10 < f11 ? f10 : f11;
   19252 	heapFloat[(r1+2)] = f10;
   19253 	f11 = heapFloat[(r4+6)];
   19254 	f12 = heapFloat[(r2+6)];
   19255 	f11 = f11 > f12 ? f11 : f12;
   19256 	heapFloat[(r1+6)] = f11;
   19257 if(!(f0 !=f11)) //_LBB81_8
   19258 {
   19259 	r2 = f1 == f6;
   19260 	r4 = f2 == f8;
   19261 	r2 = r2 & r4;
   19262 	r4 = f3 == f10;
   19263 	r2 = r2 & r4;
   19264 	r4 = f4 == f7;
   19265 	r2 = r2 & r4;
   19266 	r4 = f5 == f9;
   19267 	r2 = r2 & r4;
   19268 	if(r2 != 0) //_LBB81_14
   19269 {
   19270 break _3;
   19271 }
   19272 }
   19273 	r3 = heap32[(r1+8)];
   19274 }
   19275 else{
   19276 break _12;
   19277 }
   19278 }
   19279 	r0 = heap32[(r0)];
   19280 	r_g0 = r0;
   19281 	return;
   19282 }
   19283 } while(0);
   19284 	r_g0 = r3;
   19285 	return;
   19286 }
   19287 else{
   19288 	heap32[(r0)] = 0;
   19289 	r0 = 0;
   19290 	r_g0 = r0;
   19291 	return;
   19292 }
   19293 }
   19294 
   19295 function _ZN6btDbvt6updateEP10btDbvtNodeR12btDbvtAabbMmRK9btVector3f(sp)
   19296 {
   19297 	var i7;
   19298 	var fp = sp>>2;
   19299 	var r0;
   19300 	var r1;
   19301 	var r2;
   19302 	var r3;
   19303 	var r4;
   19304 	var r5;
   19305 	var r6;
   19306 	var r7;
   19307 	var f0;
   19308 	var f1;
   19309 	var f2;
   19310 	var f3;
   19311 	var f4;
   19312 	var f5;
   19313 	var f6;
   19314 	var f7;
   19315 var __label__ = 0;
   19316 	i7 = sp + -16;var g0 = i7>>2; // save stack
   19317 	r0 = heap32[(fp+2)];
   19318 	r0 = r0 >> 2;
   19319 	r1 = heap32[(fp+1)];
   19320 	f0 = heapFloat[(r0)];
   19321 	r2 = heap32[(fp)];
   19322 	r3 = heap32[(fp+3)];
   19323 	f1 = heapFloat[(fp+4)];
   19324 	r4 = r1 >> 2;
   19325 	f2 = heapFloat[(r4)];
   19326 	if(f2 <=f0) //_LBB82_2
   19327 {
   19328 	f2 = heapFloat[(r0+1)];
   19329 	f3 = heapFloat[(r4+1)];
   19330 	if(f3 <=f2) //_LBB82_4
   19331 {
   19332 	f3 = heapFloat[(r4+2)];
   19333 	f4 = heapFloat[(r0+2)];
   19334 if(!(f3 >f4)) //_LBB82_3
   19335 {
   19336 	f3 = heapFloat[(r4+4)];
   19337 	f4 = heapFloat[(r0+4)];
   19338 if(!(f3 <f4)) //_LBB82_3
   19339 {
   19340 	f3 = heapFloat[(r4+5)];
   19341 	f4 = heapFloat[(r0+5)];
   19342 if(!(f3 <f4)) //_LBB82_3
   19343 {
   19344 	f3 = heapFloat[(r4+6)];
   19345 	f4 = heapFloat[(r0+6)];
   19346 if(!(f3 <f4)) //_LBB82_3
   19347 {
   19348 	r0 = 0;
   19349 	r_g0 = r0;
   19350 	return;
   19351 }
   19352 }
   19353 }
   19354 }
   19355 }
   19356 }
   19357 else{
   19358 	f2 = heapFloat[(r0+1)];
   19359 }
   19360 	f0 = f0-f1;
   19361 	f2 = f2-f1;
   19362 	heapFloat[(r0)] = f0;
   19363 	heapFloat[(r0+1)] = f2;
   19364 	f3 = heapFloat[(r0+2)];
   19365 	f3 = f3-f1;
   19366 	heapFloat[(r0+2)] = f3;
   19367 	f4 = heapFloat[(r0+4)];
   19368 	f4 = f4+f1;
   19369 	heapFloat[(r0+4)] = f4;
   19370 	f5 = heapFloat[(r0+5)];
   19371 	f5 = f5+f1;
   19372 	heapFloat[(r0+5)] = f5;
   19373 	f6 = heapFloat[(r0+6)];
   19374 	f1 = f6+f1;
   19375 	r3 = r3 >> 2;
   19376 	heapFloat[(r0+6)] = f1;
   19377 	f6 = heapFloat[(r3)];
   19378 	f7 =                         0;
   19379 	if(f6 <=f7) //_LBB82_10
   19380 {
   19381 	f0 = f0+f6;
   19382 	heapFloat[(r0)] = f0;
   19383 }
   19384 else{
   19385 	f0 = f4+f6;
   19386 	heapFloat[(r0+4)] = f0;
   19387 }
   19388 	f0 = heapFloat[(r3+1)];
   19389 	if(f0 <=f7) //_LBB82_13
   19390 {
   19391 	f0 = f2+f0;
   19392 	heapFloat[(r0+1)] = f0;
   19393 }
   19394 else{
   19395 	f0 = f5+f0;
   19396 	heapFloat[(r0+5)] = f0;
   19397 }
   19398 	f0 = heapFloat[(r3+2)];
   19399 	if(f0 <=f7) //_LBB82_16
   19400 {
   19401 	f0 = f3+f0;
   19402 	heapFloat[(r0+2)] = f0;
   19403 }
   19404 else{
   19405 	f0 = f1+f0;
   19406 	heapFloat[(r0+6)] = f0;
   19407 }
   19408 	heap32[(g0)] = r2;
   19409 	heap32[(g0+1)] = r1;
   19410 	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
   19411 	r3 = r_g0;
   19412 _22: do {
   19413 	if(r3 !=0) //_LBB82_19
   19414 {
   19415 	r5 = r2 >> 2;
   19416 	r6 = heap32[(r5+2)];
   19417 	if(r6 <0) //_LBB82_24
   19418 {
   19419 	r5 = heap32[(r5)];
   19420 }
   19421 else{
   19422 	r7 = -1;
   19423 _27: while(true){
   19424 	r5 = r3;
   19425 	r7 = (r7 + 1)|0;
   19426 	if(r6 >r7) //_LBB82_23
   19427 {
   19428 	r3 = r5 >> 2;
   19429 	r3 = heap32[(r3+8)];
   19430 	if(r3 ==0) //_LBB82_22
   19431 {
   19432 break _22;
   19433 }
   19434 else{
   19435 continue _27;
   19436 }
   19437 }
   19438 else{
   19439 break _22;
   19440 }
   19441 }
   19442 }
   19443 }
   19444 else{
   19445 	r5 = 0;
   19446 }
   19447 } while(0);
   19448 	heap32[(r4)] = heap32[(r0)];
   19449 	heap32[(r4+1)] = heap32[(r0+1)];
   19450 	heap32[(r4+2)] = heap32[(r0+2)];
   19451 	heap32[(r4+3)] = heap32[(r0+3)];
   19452 	heap32[(r4+4)] = heap32[(r0+4)];
   19453 	heap32[(r4+5)] = heap32[(r0+5)];
   19454 	heap32[(r4+6)] = heap32[(r0+6)];
   19455 	heap32[(r4+7)] = heap32[(r0+7)];
   19456 	heap32[(g0)] = r2;
   19457 	heap32[(g0+1)] = r5;
   19458 	heap32[(g0+2)] = r1;
   19459 	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
   19460 	r0 = 1;
   19461 	r_g0 = r0;
   19462 	return;
   19463 }
   19464 
   19465 function _ZL17recursedeletenodeP6btDbvtP10btDbvtNode(sp)
   19466 {
   19467 	var i7;
   19468 	var fp = sp>>2;
   19469 	var r0;
   19470 	var r1;
   19471 	var r2;
   19472 	var r3;
   19473 	var r4;
   19474 var __label__ = 0;
   19475 	i7 = sp + -8;var g0 = i7>>2; // save stack
   19476 	r0 = heap32[(fp+1)];
   19477 	r1 = heap32[(fp)];
   19478 	r2 = r0 >> 2;
   19479 	r3 = heap32[(r2+10)];
   19480 if(!(r3 ==0)) //_LBB83_2
   19481 {
   19482 	r3 = heap32[(r2+9)];
   19483 	heap32[(g0)] = r1;
   19484 	heap32[(g0+1)] = r3;
   19485 	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
   19486 	r2 = heap32[(r2+10)];
   19487 	heap32[(g0)] = r1;
   19488 	heap32[(g0+1)] = r2;
   19489 	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
   19490 }
   19491 	r1 = r1 >> 2;
   19492 	r2 = heap32[(r1)];
   19493 if(!(r2 !=r0)) //_LBB83_4
   19494 {
   19495 	heap32[(r1)] = 0;
   19496 }
   19497 	r2 = heap32[(r1+1)];
   19498 if(!(r2 ==0)) //_LBB83_6
   19499 {
   19500 	r3 = gNumAlignedFree;
   19501 	r3 = r3 >> 2;
   19502 	r4 = heap32[(r3)];
   19503 	r4 = (r4 + 1)|0;
   19504 	r2 = r2 >> 2;
   19505 	heap32[(r3)] = r4;
   19506 	r2 = heap32[(r2+-1)];
   19507 	heap32[(g0)] = r2;
   19508 	free(i7);
   19509 }
   19510 	heap32[(r1+1)] = r0;
   19511 	return;
   19512 }
   19513 
   19514 function _ZN6btDbvt19optimizeIncrementalEi(sp)
   19515 {
   19516 	var i7;
   19517 	var fp = sp>>2;
   19518 	var r0;
   19519 	var r1;
   19520 	var r2;
   19521 	var r3;
   19522 	var r4;
   19523 	var r5;
   19524 	var r6;
   19525 	var r7;
   19526 	var r8;
   19527 	var r9;
   19528 	var r10;
   19529 	var r11;
   19530 	var r12;
   19531 	var f0;
   19532 	var f1;
   19533 	var f2;
   19534 	var f3;
   19535 	var f4;
   19536 	var f5;
   19537 	var f6;
   19538 	var f7;
   19539 var __label__ = 0;
   19540 	i7 = sp + -16;var g0 = i7>>2; // save stack
   19541 	r0 = heap32[(fp+1)];
   19542 	r1 = heap32[(fp)];
   19543 	if(r0 <0) //_LBB84_2
   19544 {
   19545 	r0 = r1 >> 2;
   19546 	r0 = heap32[(r0+3)];
   19547 }
   19548 	r2 = r1 >> 2;
   19549 	r3 = heap32[(r2)];
   19550 _4: do {
   19551 if(!(r3 ==0)) //_LBB84_20
   19552 {
   19553 if(!(r0 <1)) //_LBB84_20
   19554 {
   19555 _6: while(true){
   19556 	r3 = 0;
   19557 	r4 = r1;
   19558 _8: while(true){
   19559 	r4 = r4 >> 2;
   19560 	r4 = heap32[(r4)];
   19561 	r5 = r4 >> 2;
   19562 	r6 = heap32[(r5+10)];
   19563 	if(r6 !=0) //_LBB84_6
   19564 {
   19565 	r6 = heap32[(r5+8)];
   19566 	if(uint(r6) >uint(r4)) //_LBB84_8
   19567 {
   19568 	r7 = r6 >> 2;
   19569 	r8 = heap32[(r7+10)];
   19570 	r8 = r8 == r4;
   19571 	r8 = r8 & 1;
   19572 	r9 = (r6 + 36)|0;
   19573 	r10 = r8 << 2;
   19574 	r11 = (r9 + r10)|0;
   19575 	r11 = r11 >> 2;
   19576 	r11 = heap32[(r11)];
   19577 	if(r11 ==r4) //_LBB84_10
   19578 {
   19579 	r8 = r8 ^ 1;
   19580 	r8 = r8 << 2;
   19581 	r9 = (r9 + r8)|0;
   19582 	r9 = r9 >> 2;
   19583 	r9 = heap32[(r9)];
   19584 	r11 = heap32[(r7+8)];
   19585 	if(r11 ==0) //_LBB84_12
   19586 {
   19587 	heap32[(r2)] = r4;
   19588 }
   19589 else{
   19590 	r12 = r11 >> 2;
   19591 	r12 = heap32[(r12+10)];
   19592 	r12 = r12 == r6;
   19593 	r12 = r12 & 1;
   19594 	r12 = r12 << 2;
   19595 	r12 = (r11 + r12)|0;
   19596 	r12 = r12 >> 2;
   19597 	heap32[(r12+9)] = r4;
   19598 }
   19599 	r12 = r9 >> 2;
   19600 	heap32[(r12+8)] = r4;
   19601 	heap32[(r7+8)] = r4;
   19602 	heap32[(r5+8)] = r11;
   19603 	r11 = heap32[(r5+9)];
   19604 	heap32[(r7+9)] = r11;
   19605 	r11 = heap32[(r5+10)];
   19606 	heap32[(r7+10)] = r11;
   19607 	r11 = heap32[(r5+9)];
   19608 	r11 = r11 >> 2;
   19609 	heap32[(r11+8)] = r6;
   19610 	r11 = heap32[(r5+10)];
   19611 	r4 = (r4 + 36)|0;
   19612 	r10 = (r4 + r10)|0;
   19613 	r11 = r11 >> 2;
   19614 	r4 = (r4 + r8)|0;
   19615 	r8 = r10 >> 2;
   19616 	heap32[(r11+8)] = r6;
   19617 	r4 = r4 >> 2;
   19618 	heap32[(r8)] = r6;
   19619 	heap32[(r4)] = r9;
   19620 	f0 = heapFloat[(r7+7)];
   19621 	f1 = heapFloat[(r7+6)];
   19622 	f2 = heapFloat[(r7+5)];
   19623 	f3 = heapFloat[(r7+4)];
   19624 	f4 = heapFloat[(r7+3)];
   19625 	f5 = heapFloat[(r7+2)];
   19626 	f6 = heapFloat[(r7+1)];
   19627 	f7 = heapFloat[(r7)];
   19628 	heap32[(r7)] = heap32[(r5)];
   19629 	heap32[(r7+1)] = heap32[(r5+1)];
   19630 	heap32[(r7+2)] = heap32[(r5+2)];
   19631 	heap32[(r7+3)] = heap32[(r5+3)];
   19632 	heap32[(r7+4)] = heap32[(r5+4)];
   19633 	heap32[(r7+5)] = heap32[(r5+5)];
   19634 	heap32[(r7+6)] = heap32[(r5+6)];
   19635 	heap32[(r7+7)] = heap32[(r5+7)];
   19636 	heapFloat[(r5)] = f7;
   19637 	heapFloat[(r5+1)] = f6;
   19638 	heapFloat[(r5+2)] = f5;
   19639 	heapFloat[(r5+3)] = f4;
   19640 	heapFloat[(r5+4)] = f3;
   19641 	heapFloat[(r5+5)] = f2;
   19642 	heapFloat[(r5+6)] = f1;
   19643 	heapFloat[(r5+7)] = f0;
   19644 }
   19645 else{
   19646 break _6;
   19647 }
   19648 }
   19649 else{
   19650 	r6 = r4;
   19651 }
   19652 	r4 = heap32[(r2+4)];
   19653 	r4 = r4 >>> r3;
   19654 	r4 = r4 & 1;
   19655 	r4 = r4 << 2;
   19656 	r4 = (r6 + r4)|0;
   19657 	r3 = (r3 + 1)|0;
   19658 	r4 = (r4 + 36)|0;
   19659 	r3 = r3 & 31;
   19660 }
   19661 else{
   19662 break _8;
   19663 }
   19664 }
   19665 	heap32[(g0)] = r1;
   19666 	heap32[(g0+1)] = r4;
   19667 	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
   19668 	r3 = r_g0;
   19669 	if(r3 !=0) //_LBB84_18
   19670 {
   19671 	r3 = heap32[(r2)];
   19672 }
   19673 else{
   19674 	r3 = 0;
   19675 }
   19676 	heap32[(g0)] = r1;
   19677 	heap32[(g0+1)] = r3;
   19678 	heap32[(g0+2)] = r4;
   19679 	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
   19680 	r3 = heap32[(r2+4)];
   19681 	r0 = (r0 + -1)|0;
   19682 	r3 = (r3 + 1)|0;
   19683 	heap32[(r2+4)] = r3;
   19684 if(!(r0 !=0)) //_LBB84_5
   19685 {
   19686 break _4;
   19687 }
   19688 }
   19689 	r4 = _2E_str22;
   19690 	r0 = _2E_str1118;
   19691 	heap32[(g0)] = r4;
   19692 	heap32[(g0+1)] = r0;
   19693 	heap32[(g0+2)] = 379;
   19694 	_assert(i7);
   19695 }
   19696 }
   19697 } while(0);
   19698 	return;
   19699 }
   19700 
   19701 function _ZN18btDbvtTreeColliderD1Ev(sp)
   19702 {
   19703 	var i7;
   19704 	var fp = sp>>2;
   19705 	var r0;
   19706 	var r1;
   19707 var __label__ = 0;
   19708 	i7 = sp + 0;var g0 = i7>>2; // save stack
   19709 	r0 = heap32[(fp)];
   19710 	r1 = _ZTV18btDbvtTreeCollider;
   19711 	r0 = r0 >> 2;
   19712 	r1 = (r1 + 8)|0;
   19713 	heap32[(r0)] = r1;
   19714 	return;
   19715 }
   19716 
   19717 function _ZN18btDbvtTreeColliderD0Ev(sp)
   19718 {
   19719 	var i7;
   19720 	var fp = sp>>2;
   19721 	var r0;
   19722 	var r1;
   19723 	var r2;
   19724 var __label__ = 0;
   19725 	i7 = sp + -8;var g0 = i7>>2; // save stack
   19726 	r0 = heap32[(fp)];
   19727 	r1 = _ZTV18btDbvtTreeCollider;
   19728 	r2 = r0 >> 2;
   19729 	r1 = (r1 + 8)|0;
   19730 	heap32[(r2)] = r1;
   19731 	heap32[(g0)] = r0;
   19732 	_ZdlPv(i7);
   19733 	return;
   19734 }
   19735 
   19736 function _ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNodeS2_(sp)
   19737 {
   19738 	var i7;
   19739 	var fp = sp>>2;
   19740 	var r0;
   19741 	var r1;
   19742 	var r2;
   19743 	var r3;
   19744 	var r4;
   19745 var __label__ = 0;
   19746 	i7 = sp + -16;var g0 = i7>>2; // save stack
   19747 	r0 = heap32[(fp+1)];
   19748 	r1 = heap32[(fp+2)];
   19749 if(!(r0 ==r1)) //_LBB87_2
   19750 {
   19751 	r2 = heap32[(fp)];
   19752 	r2 = r2 >> 2;
   19753 	r3 = heap32[(r2+1)];
   19754 	r3 = r3 >> 2;
   19755 	r3 = heap32[(r3+24)];
   19756 	r4 = r3 >> 2;
   19757 	r4 = heap32[(r4)];
   19758 	r4 = r4 >> 2;
   19759 	r1 = r1 >> 2;
   19760 	r0 = r0 >> 2;
   19761 	r4 = heap32[(r4+2)];
   19762 	r1 = heap32[(r1+9)];
   19763 	r0 = heap32[(r0+9)];
   19764 	heap32[(g0)] = r3;
   19765 	heap32[(g0+1)] = r0;
   19766 	heap32[(g0+2)] = r1;
   19767 	__FUNCTION_TABLE__[(r4)>>2](i7);
   19768 	r0 = heap32[(r2+1)];
   19769 	r0 = r0 >> 2;
   19770 	r1 = heap32[(r0+30)];
   19771 	r1 = (r1 + 1)|0;
   19772 	heap32[(r0+30)] = r1;
   19773 }
   19774 	return;
   19775 }
   19776 
   19777 function _ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNode(sp)
   19778 {
   19779 	var i7;
   19780 	var fp = sp>>2;
   19781 	var r0;
   19782 	var r1;
   19783 	var r2;
   19784 	var r3;
   19785 var __label__ = 0;
   19786 	i7 = sp + -16;var g0 = i7>>2; // save stack
   19787 	r0 = heap32[(fp)];
   19788 	r1 = r0 >> 2;
   19789 	r2 = heap32[(r1)];
   19790 	r1 = heap32[(r1+2)];
   19791 	r2 = r2 >> 2;
   19792 	r1 = r1 >> 2;
   19793 	r2 = heap32[(r2+2)];
   19794 	r1 = heap32[(r1+12)];
   19795 	r3 = heap32[(fp+1)];
   19796 	heap32[(g0)] = r0;
   19797 	heap32[(g0+1)] = r3;
   19798 	heap32[(g0+2)] = r1;
   19799 	__FUNCTION_TABLE__[(r2)>>2](i7);
   19800 	return;
   19801 }
   19802 
   19803 function _ZNK16btDbvtBroadphase7getAabbEP17btBroadphaseProxyR9btVector3S3_(sp)
   19804 {
   19805 	var i7;
   19806 	var fp = sp>>2;
   19807 	var r0;
   19808 	var r1;
   19809 	var r2;
   19810 var __label__ = 0;
   19811 	i7 = sp + 0;var g0 = i7>>2; // save stack
   19812 	r0 = heap32[(fp+1)];
   19813 	r1 = heap32[(fp+2)];
   19814 	r0 = r0 >> 2;
   19815 	r1 = r1 >> 2;
   19816 	heap32[(r1)] = heap32[(r0+4)];
   19817 	heap32[(r1+1)] = heap32[(r0+5)];
   19818 	r2 = heap32[(fp+3)];
   19819 	heap32[(r1+2)] = heap32[(r0+6)];
   19820 	r2 = r2 >> 2;
   19821 	heap32[(r1+3)] = heap32[(r0+7)];
   19822 	heap32[(r2)] = heap32[(r0+8)];
   19823 	heap32[(r2+1)] = heap32[(r0+9)];
   19824 	heap32[(r2+2)] = heap32[(r0+10)];
   19825 	heap32[(r2+3)] = heap32[(r0+11)];
   19826 	return;
   19827 }
   19828 
   19829 function _ZN19BroadphaseRayTesterD1Ev(sp)
   19830 {
   19831 	var i7;
   19832 	var fp = sp>>2;
   19833 	var r0;
   19834 	var r1;
   19835 var __label__ = 0;
   19836 	i7 = sp + 0;var g0 = i7>>2; // save stack
   19837 	r0 = heap32[(fp)];
   19838 	r1 = _ZTV19BroadphaseRayTester;
   19839 	r0 = r0 >> 2;
   19840 	r1 = (r1 + 8)|0;
   19841 	heap32[(r0)] = r1;
   19842 	return;
   19843 }
   19844 
   19845 function _ZN19BroadphaseRayTesterD0Ev(sp)
   19846 {
   19847 	var i7;
   19848 	var fp = sp>>2;
   19849 	var r0;
   19850 	var r1;
   19851 	var r2;
   19852 var __label__ = 0;
   19853 	i7 = sp + -8;var g0 = i7>>2; // save stack
   19854 	r0 = heap32[(fp)];
   19855 	r1 = _ZTV19BroadphaseRayTester;
   19856 	r2 = r0 >> 2;
   19857 	r1 = (r1 + 8)|0;
   19858 	heap32[(r2)] = r1;
   19859 	heap32[(g0)] = r0;
   19860 	_ZdlPv(i7);
   19861 	return;
   19862 }
   19863 
   19864 function _ZN19BroadphaseRayTester7ProcessEPK10btDbvtNode(sp)
   19865 {
   19866 	var i7;
   19867 	var fp = sp>>2;
   19868 	var r0;
   19869 	var r1;
   19870 	var r2;
   19871 var __label__ = 0;
   19872 	i7 = sp + -8;var g0 = i7>>2; // save stack
   19873 	r0 = heap32[(fp)];
   19874 	r0 = r0 >> 2;
   19875 	r0 = heap32[(r0+1)];
   19876 	r1 = r0 >> 2;
   19877 	r2 = heap32[(fp+1)];
   19878 	r1 = heap32[(r1)];
   19879 	r1 = r1 >> 2;
   19880 	r2 = r2 >> 2;
   19881 	r1 = heap32[(r1+2)];
   19882 	r2 = heap32[(r2+9)];
   19883 	heap32[(g0)] = r0;
   19884 	heap32[(g0+1)] = r2;
   19885 	__FUNCTION_TABLE__[(r1)>>2](i7);
   19886 	return;
   19887 }
   19888 
   19889 function _ZN20BroadphaseAabbTesterD1Ev(sp)
   19890 {
   19891 	var i7;
   19892 	var fp = sp>>2;
   19893 	var r0;
   19894 	var r1;
   19895 var __label__ = 0;
   19896 	i7 = sp + 0;var g0 = i7>>2; // save stack
   19897 	r0 = heap32[(fp)];
   19898 	r1 = _ZTV20BroadphaseAabbTester;
   19899 	r0 = r0 >> 2;
   19900 	r1 = (r1 + 8)|0;
   19901 	heap32[(r0)] = r1;
   19902 	return;
   19903 }
   19904 
   19905 function _ZN20BroadphaseAabbTesterD0Ev(sp)
   19906 {
   19907 	var i7;
   19908 	var fp = sp>>2;
   19909 	var r0;
   19910 	var r1;
   19911 	var r2;
   19912 var __label__ = 0;
   19913 	i7 = sp + -8;var g0 = i7>>2; // save stack
   19914 	r0 = heap32[(fp)];
   19915 	r1 = _ZTV20BroadphaseAabbTester;
   19916 	r2 = r0 >> 2;
   19917 	r1 = (r1 + 8)|0;
   19918 	heap32[(r2)] = r1;
   19919 	heap32[(g0)] = r0;
   19920 	_ZdlPv(i7);
   19921 	return;
   19922 }
   19923 
   19924 function _ZN20BroadphaseAabbTester7ProcessEPK10btDbvtNode(sp)
   19925 {
   19926 	var i7;
   19927 	var fp = sp>>2;
   19928 	var r0;
   19929 	var r1;
   19930 	var r2;
   19931 var __label__ = 0;
   19932 	i7 = sp + -8;var g0 = i7>>2; // save stack
   19933 	r0 = heap32[(fp)];
   19934 	r0 = r0 >> 2;
   19935 	r0 = heap32[(r0+1)];
   19936 	r1 = r0 >> 2;
   19937 	r2 = heap32[(fp+1)];
   19938 	r1 = heap32[(r1)];
   19939 	r1 = r1 >> 2;
   19940 	r2 = r2 >> 2;
   19941 	r1 = heap32[(r1+2)];
   19942 	r2 = heap32[(r2+9)];
   19943 	heap32[(g0)] = r0;
   19944 	heap32[(g0+1)] = r2;
   19945 	__FUNCTION_TABLE__[(r1)>>2](i7);
   19946 	return;
   19947 }
   19948 
   19949 function _ZN16btDbvtBroadphase23getOverlappingPairCacheEv(sp)
   19950 {
   19951 	var i7;
   19952 	var fp = sp>>2;
   19953 	var r0;
   19954 var __label__ = 0;
   19955 	i7 = sp + 0;var g0 = i7>>2; // save stack
   19956 	r0 = heap32[(fp)];
   19957 	r0 = r0 >> 2;
   19958 	r0 = heap32[(r0+24)];
   19959 	r_g0 = r0;
   19960 	return;
   19961 }
   19962 
   19963 function _ZNK16btDbvtBroadphase23getOverlappingPairCacheEv(sp)
   19964 {
   19965 	var i7;
   19966 	var fp = sp>>2;
   19967 	var r0;
   19968 var __label__ = 0;
   19969 	i7 = sp + 0;var g0 = i7>>2; // save stack
   19970 	r0 = heap32[(fp)];
   19971 	r0 = r0 >> 2;
   19972 	r0 = heap32[(r0+24)];
   19973 	r_g0 = r0;
   19974 	return;
   19975 }
   19976 
   19977 function _ZNK16btDbvtBroadphase17getBroadphaseAabbER9btVector3S1_(sp)
   19978 {
   19979 	var i7;
   19980 	var fp = sp>>2;
   19981 	var r0;
   19982 	var r1;
   19983 	var r2;
   19984 	var r3;
   19985 	var f0;
   19986 	var f1;
   19987 	var f2;
   19988 	var f3;
   19989 	var f4;
   19990 	var f5;
   19991 	var f6;
   19992 	var f7;
   19993 	var f8;
   19994 	var f9;
   19995 	var f10;
   19996 	var f11;
   19997 var __label__ = 0;
   19998 	i7 = sp + 0;var g0 = i7>>2; // save stack
   19999 	r0 = heap32[(fp)];
   20000 	r0 = r0 >> 2;
   20001 	r1 = heap32[(r0+1)];
   20002 	r2 = heap32[(fp+1)];
   20003 	r3 = heap32[(fp+2)];
   20004 	r0 = heap32[(r0+11)];
   20005 	if(r1 ==0) //_LBB98_4
   20006 {
   20007 	if(r0 !=0) //_LBB98_6
   20008 {
   20009 	r0 = r0 >> 2;
   20010 	f0 = heapFloat[(r0)];
   20011 	f2 = heapFloat[(r0+1)];
   20012 	f4 = heapFloat[(r0+2)];
   20013 	f6 = heapFloat[(r0+3)];
   20014 	f1 = heapFloat[(r0+4)];
   20015 	f3 = heapFloat[(r0+5)];
   20016 	f5 = heapFloat[(r0+6)];
   20017 	f7 = heapFloat[(r0+7)];
   20018 }
   20019 else{
   20020 	f6 =                         0;
   20021 	f4 = f6;
   20022 	f2 = f6;
   20023 	f0 = f6;
   20024 	f1 = f6;
   20025 	f3 = f6;
   20026 	f5 = f6;
   20027 	f7 = f6;
   20028 }
   20029 }
   20030 else{
   20031 	if(r0 ==0) //_LBB98_3
   20032 {
   20033 	r0 = r1 >> 2;
   20034 	f0 = heapFloat[(r0)];
   20035 	f2 = heapFloat[(r0+1)];
   20036 	f4 = heapFloat[(r0+2)];
   20037 	f6 = heapFloat[(r0+3)];
   20038 	f1 = heapFloat[(r0+4)];
   20039 	f3 = heapFloat[(r0+5)];
   20040 	f5 = heapFloat[(r0+6)];
   20041 	f7 = heapFloat[(r0+7)];
   20042 }
   20043 else{
   20044 	r1 = r1 >> 2;
   20045 	r0 = r0 >> 2;
   20046 	f0 = heapFloat[(r1)];
   20047 	f1 = heapFloat[(r0)];
   20048 	f2 = heapFloat[(r1+4)];
   20049 	f3 = heapFloat[(r0+4)];
   20050 	f4 = heapFloat[(r1+1)];
   20051 	f5 = heapFloat[(r0+1)];
   20052 	f6 = heapFloat[(r1+5)];
   20053 	f7 = heapFloat[(r0+5)];
   20054 	f8 = heapFloat[(r1+2)];
   20055 	f9 = heapFloat[(r0+2)];
   20056 	f10 = heapFloat[(r1+6)];
   20057 	f11 = heapFloat[(r0+6)];
   20058 	f0 = f0 < f1 ? f0 : f1;
   20059 	f1 = f2 > f3 ? f2 : f3;
   20060 	f2 = f4 < f5 ? f4 : f5;
   20061 	f3 = f6 > f7 ? f6 : f7;
   20062 	f4 = f8 < f9 ? f8 : f9;
   20063 	f5 = f10 > f11 ? f10 : f11;
   20064 }
   20065 }
   20066 	r0 = r2 >> 2;
   20067 	heapFloat[(r0)] = f0;
   20068 	heapFloat[(r0+1)] = f2;
   20069 	heapFloat[(r0+2)] = f4;
   20070 	r1 = r3 >> 2;
   20071 	heapFloat[(r0+3)] = f6;
   20072 	heapFloat[(r1)] = f1;
   20073 	heapFloat[(r1+1)] = f3;
   20074 	heapFloat[(r1+2)] = f5;
   20075 	heapFloat[(r1+3)] = f7;
   20076 	return;
   20077 }
   20078 
   20079 function _ZN16btDbvtBroadphase10printStatsEv(sp)
   20080 {
   20081 	var i7;
   20082 	var fp = sp>>2;
   20083 var __label__ = 0;
   20084 	i7 = sp + 0;var g0 = i7>>2; // save stack
   20085 	return;
   20086 }
   20087 
   20088 function _ZN16btDbvtBroadphase9resetPoolEP12btDispatcher(sp)
   20089 {
   20090 	var i7;
   20091 	var fp = sp>>2;
   20092 	var r0;
   20093 	var r1;
   20094 	var r2;
   20095 	var r3;
   20096 	var r4;
   20097 	var r5;
   20098 	var r6;
   20099 var __label__ = 0;
   20100 	i7 = sp + -8;var g0 = i7>>2; // save stack
   20101 	r0 = heap32[(fp)];
   20102 	r1 = r0 >> 2;
   20103 	r2 = 0;
   20104 	r3 = heap32[(r1+14)];
   20105 	r4 = heap32[(r1+4)];
   20106 	r3 = (r2 - r3)|0;
   20107 if(!(r4 !=r3)) //_LBB100_18
   20108 {
   20109 	r3 = heap32[(r1+1)];
   20110 if(!(r3 ==0)) //_LBB100_3
   20111 {
   20112 	r4 = (r0 + 4)|0;
   20113 	heap32[(g0)] = r4;
   20114 	heap32[(g0+1)] = r3;
   20115 	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
   20116 }
   20117 	r3 = heap32[(r1+2)];
   20118 if(!(r3 ==0)) //_LBB100_5
   20119 {
   20120 	r4 = gNumAlignedFree;
   20121 	r4 = r4 >> 2;
   20122 	r5 = heap32[(r4)];
   20123 	r5 = (r5 + 1)|0;
   20124 	r3 = r3 >> 2;
   20125 	heap32[(r4)] = r5;
   20126 	r3 = heap32[(r3+-1)];
   20127 	heap32[(g0)] = r3;
   20128 	free(i7);
   20129 }
   20130 	heap32[(r1+2)] = 0;
   20131 	heap32[(r1+3)] = -1;
   20132 	r3 = heap32[(r1+9)];
   20133 if(!(r3 ==0)) //_LBB100_9
   20134 {
   20135 	r4 = heapU8[r0+40];
   20136 if(!(r4 ==0)) //_LBB100_8
   20137 {
   20138 	r4 = gNumAlignedFree;
   20139 	r4 = r4 >> 2;
   20140 	r5 = heap32[(r4)];
   20141 	r5 = (r5 + 1)|0;
   20142 	r3 = r3 >> 2;
   20143 	heap32[(r4)] = r5;
   20144 	r3 = heap32[(r3+-1)];
   20145 	heap32[(g0)] = r3;
   20146 	free(i7);
   20147 }
   20148 	heap32[(r1+9)] = 0;
   20149 }
   20150 	r3 = 1;
   20151 	heap8[r0+40] = r3;
   20152 	heap32[(r1+9)] = 0;
   20153 	heap32[(r1+7)] = 0;
   20154 	heap32[(r1+8)] = 0;
   20155 	heap32[(r1+5)] = 0;
   20156 	r4 = heap32[(r1+11)];
   20157 if(!(r4 ==0)) //_LBB100_11
   20158 {
   20159 	r5 = (r0 + 44)|0;
   20160 	heap32[(g0)] = r5;
   20161 	heap32[(g0+1)] = r4;
   20162 	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
   20163 }
   20164 	r4 = heap32[(r1+12)];
   20165 if(!(r4 ==0)) //_LBB100_13
   20166 {
   20167 	r5 = gNumAlignedFree;
   20168 	r5 = r5 >> 2;
   20169 	r6 = heap32[(r5)];
   20170 	r6 = (r6 + 1)|0;
   20171 	r4 = r4 >> 2;
   20172 	heap32[(r5)] = r6;
   20173 	r4 = heap32[(r4+-1)];
   20174 	heap32[(g0)] = r4;
   20175 	free(i7);
   20176 }
   20177 	heap32[(r1+12)] = 0;
   20178 	heap32[(r1+13)] = -1;
   20179 	r4 = heap32[(r1+19)];
   20180 if(!(r4 ==0)) //_LBB100_17
   20181 {
   20182 	r5 = heapU8[r0+80];
   20183 if(!(r5 ==0)) //_LBB100_16
   20184 {
   20185 	r5 = gNumAlignedFree;
   20186 	r5 = r5 >> 2;
   20187 	r6 = heap32[(r5)];
   20188 	r6 = (r6 + 1)|0;
   20189 	r4 = r4 >> 2;
   20190 	heap32[(r5)] = r6;
   20191 	r4 = heap32[(r4+-1)];
   20192 	heap32[(g0)] = r4;
   20193 	free(i7);
   20194 }
   20195 	heap32[(r1+19)] = 0;
   20196 }
   20197 	heap8[r0+80] = r3;
   20198 	heap32[(r1+19)] = 0;
   20199 	heap32[(r1+17)] = 0;
   20200 	heap32[(r1+18)] = 0;
   20201 	heap32[(r1+15)] = 0;
   20202 	heap8[r0+153] = r2;
   20203 	heap8[r0+154] = r3;
   20204 	heap32[(r1+26)] = 0;
   20205 	heap32[(r1+31)] = 0;
   20206 	heap32[(r1+27)] = 1;
   20207 	heap32[(r1+28)] = 0;
   20208 	heap32[(r1+29)] = 10;
   20209 	heap32[(r1+30)] = 1;
   20210 	heap32[(r1+32)] = 0;
   20211 	heap32[(r1+33)] = 0;
   20212 	heap32[(r1+34)] = 0;
   20213 	heap32[(r1+37)] = 0;
   20214 	heap32[(r1+35)] = 0;
   20215 	heap32[(r1+36)] = 0;
   20216 	heap32[(r1+21)] = 0;
   20217 	heap32[(r1+22)] = 0;
   20218 	heap32[(r1+23)] = 0;
   20219 }
   20220 	return;
   20221 }
   20222 
   20223 function _ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(sp)
   20224 {
   20225 	var i7;
   20226 	var fp = sp>>2;
   20227 	var r0;
   20228 	var r1;
   20229 	var r2;
   20230 	var r3;
   20231 	var r4;
   20232 	var r5;
   20233 	var r6;
   20234 	var r7;
   20235 	var r8;
   20236 	var r9;
   20237 	var r10;
   20238 	var r11;
   20239 	var r12;
   20240 	var r13;
   20241 	var r14;
   20242 	var r15;
   20243 	var r16;
   20244 	var f0;
   20245 	var f1;
   20246 var __label__ = 0;
   20247 	i7 = sp + -16;var g0 = i7>>2; // save stack
   20248 	r0 = heap32[(fp+1)];
   20249 _1: do {
   20250 if(!(r0 ==0)) //_LBB101_57
   20251 {
   20252 	r1 = heap32[(fp+2)];
   20253 if(!(r1 ==0)) //_LBB101_57
   20254 {
   20255 	r2 = heap32[(fp)];
   20256 	r3 = r2 >> 2;
   20257 	r4 = heap32[(r3+6)];
   20258 if(!(r4 >127)) //_LBB101_17
   20259 {
   20260 	r5 = heap32[(r3+7)];
   20261 if(!(r5 >127)) //_LBB101_17
   20262 {
   20263 	r5 = gNumAlignedAllocs;
   20264 	r5 = r5 >> 2;
   20265 	r6 = heap32[(r5)];
   20266 	r6 = (r6 + 1)|0;
   20267 	heap32[(r5)] = r6;
   20268 	heap32[(g0)] = 1043;
   20269 	malloc(i7);
   20270 	r5 = r_g0;
   20271 	if(r5 !=0) //_LBB101_6
   20272 {
   20273 	r6 = 0;
   20274 	r7 = (r5 + 4)|0;
   20275 	r6 = (r6 - r7)|0;
   20276 	r6 = r6 & 15;
   20277 	r6 = (r5 + r6)|0;
   20278 	r7 = (r6 + 4)|0;
   20279 	r6 = r6 >> 2;
   20280 	heap32[(r6)] = r5;
   20281 	r5 = r7;
   20282 }
   20283 	r6 = (r2 + 32)|0;
   20284 	if(r4 <1) //_LBB101_9
   20285 {
   20286 	r4 = r6 >> 2;
   20287 	r8 = heap32[(r4)];
   20288 }
   20289 else{
   20290 	r7 = 0;
   20291 _13: while(true){
   20292 	r8 = r6 >> 2;
   20293 	r8 = heap32[(r8)];
   20294 	r9 = r7 << 3;
   20295 	r10 = (r8 + r9)|0;
   20296 	r10 = r10 >> 2;
   20297 	r9 = (r5 + r9)|0;
   20298 	r11 = heap32[(r10+1)];
   20299 	r10 = heap32[(r10)];
   20300 	r9 = r9 >> 2;
   20301 	r7 = (r7 + 1)|0;
   20302 	heap32[(r9)] = r10;
   20303 	heap32[(r9+1)] = r11;
   20304 if(!(r4 !=r7)) //_LBB101_10
   20305 {
   20306 break _13;
   20307 }
   20308 }
   20309 	r6 = (r2 + 32)|0;
   20310 }
   20311 if(!(r8 ==0)) //_LBB101_16
   20312 {
   20313 	r4 = heapU8[r2+36];
   20314 if(!(r4 ==0)) //_LBB101_15
   20315 {
   20316 	r4 = gNumAlignedFree;
   20317 	r4 = r4 >> 2;
   20318 	r7 = heap32[(r4)];
   20319 	r7 = (r7 + 1)|0;
   20320 	r8 = r8 >> 2;
   20321 	heap32[(r4)] = r7;
   20322 	r4 = heap32[(r8+-1)];
   20323 	heap32[(g0)] = r4;
   20324 	free(i7);
   20325 }
   20326 	r4 = r6 >> 2;
   20327 	heap32[(r4)] = 0;
   20328 }
   20329 	r4 = 1;
   20330 	r6 = r6 >> 2;
   20331 	heap8[r2+36] = r4;
   20332 	heap32[(r6)] = r5;
   20333 	heap32[(r3+7)] = 128;
   20334 }
   20335 }
   20336 	r4 = heap32[(fp+3)];
   20337 	heap32[(r3+6)] = 128;
   20338 	r5 = heap32[(r3+8)];
   20339 	r5 = r5 >> 2;
   20340 	r6 = 1;
   20341 	r7 = 124;
   20342 	heap32[(r5)] = r0;
   20343 	heap32[(r5+1)] = r1;
   20344 _24: while(true){
   20345 	r0 = r6;
   20346 	r6 = (r0 + -1)|0;
   20347 	r1 = heap32[(r3+8)];
   20348 	r5 = r6 << 3;
   20349 	r5 = (r1 + r5)|0;
   20350 	r5 = r5 >> 2;
   20351 	r8 = heap32[(r5)];
   20352 	r5 = heap32[(r5+1)];
   20353 	if(r6 >r7) //_LBB101_20
   20354 {
   20355 	r7 = heap32[(r3+6)];
   20356 	r9 = r7 << 1;
   20357 _28: do {
   20358 if(!(r7 >r9)) //_LBB101_38
   20359 {
   20360 if(!(r7 >=r9)) //_LBB101_38
   20361 {
   20362 	r10 = heap32[(r3+7)];
   20363 	if(r10 <r9) //_LBB101_24
   20364 {
   20365 	if(r9 !=0) //_LBB101_26
   20366 {
   20367 	r10 = gNumAlignedAllocs;
   20368 	r10 = r10 >> 2;
   20369 	r11 = heap32[(r10)];
   20370 	r12 = r7 << 4;
   20371 	r11 = (r11 + 1)|0;
   20372 	r12 = r12 | 3;
   20373 	heap32[(r10)] = r11;
   20374 	r10 = (r12 + 16)|0;
   20375 	heap32[(g0)] = r10;
   20376 	malloc(i7);
   20377 	r10 = r_g0;
   20378 	if(r10 !=0) //_LBB101_28
   20379 {
   20380 	r11 = 0;
   20381 	r12 = (r10 + 4)|0;
   20382 	r11 = (r11 - r12)|0;
   20383 	r11 = r11 & 15;
   20384 	r11 = (r10 + r11)|0;
   20385 	r12 = (r11 + 4)|0;
   20386 	r11 = r11 >> 2;
   20387 	heap32[(r11)] = r10;
   20388 	r10 = r12;
   20389 }
   20390 }
   20391 else{
   20392 	r10 = 0;
   20393 }
   20394 if(!(r7 <1)) //_LBB101_32
   20395 {
   20396 	r11 = (r1 + 4)|0;
   20397 	r12 = (r10 + 4)|0;
   20398 	r13 = r7;
   20399 _40: while(true){
   20400 	r14 = r11 >> 2;
   20401 	r15 = heap32[(r14)];
   20402 	r14 = heap32[(r14+-1)];
   20403 	r16 = r12 >> 2;
   20404 	r13 = (r13 + -1)|0;
   20405 	r11 = (r11 + 8)|0;
   20406 	r12 = (r12 + 8)|0;
   20407 	heap32[(r16+-1)] = r14;
   20408 	heap32[(r16)] = r15;
   20409 if(!(r13 !=0)) //_LBB101_31
   20410 {
   20411 break _40;
   20412 }
   20413 }
   20414 }
   20415 if(!(r1 ==0)) //_LBB101_36
   20416 {
   20417 	r11 = heapU8[r2+36];
   20418 if(!(r11 ==0)) //_LBB101_35
   20419 {
   20420 	r11 = gNumAlignedFree;
   20421 	r11 = r11 >> 2;
   20422 	r12 = heap32[(r11)];
   20423 	r12 = (r12 + 1)|0;
   20424 	r1 = r1 >> 2;
   20425 	heap32[(r11)] = r12;
   20426 	r1 = heap32[(r1+-1)];
   20427 	heap32[(g0)] = r1;
   20428 	free(i7);
   20429 }
   20430 	heap32[(r3+8)] = 0;
   20431 }
   20432 	r1 = 1;
   20433 	heap8[r2+36] = r1;
   20434 	heap32[(r3+8)] = r10;
   20435 	heap32[(r3+7)] = r9;
   20436 if(!(r7 <r9)) //_LBB101_23
   20437 {
   20438 break _28;
   20439 }
   20440 }
   20441 _49: while(true){
   20442 	r7 = (r7 + -1)|0;
   20443 if(!(r7 !=0)) //_LBB101_37
   20444 {
   20445 break _28;
   20446 }
   20447 }
   20448 }
   20449 }
   20450 } while(0);
   20451 	r7 = (r9 + -4)|0;
   20452 	heap32[(r3+6)] = r9;
   20453 }
   20454 	if(r8 !=r5) //_LBB101_43
   20455 {
   20456 	r1 = r8 >> 2;
   20457 	r9 = r5 >> 2;
   20458 	f0 = heapFloat[(r1)];
   20459 	f1 = heapFloat[(r9+4)];
   20460 if(!(f0 >f1)) //_LBB101_41
   20461 {
   20462 	f0 = heapFloat[(r1+4)];
   20463 	f1 = heapFloat[(r9)];
   20464 if(!(f0 <f1)) //_LBB101_41
   20465 {
   20466 	f0 = heapFloat[(r1+1)];
   20467 	f1 = heapFloat[(r9+5)];
   20468 if(!(f0 >f1)) //_LBB101_41
   20469 {
   20470 	f0 = heapFloat[(r1+5)];
   20471 	f1 = heapFloat[(r9+1)];
   20472 if(!(f0 <f1)) //_LBB101_41
   20473 {
   20474 	f0 = heapFloat[(r1+2)];
   20475 	f1 = heapFloat[(r9+6)];
   20476 if(!(f0 >f1)) //_LBB101_41
   20477 {
   20478 	f0 = heapFloat[(r1+6)];
   20479 	f1 = heapFloat[(r9+2)];
   20480 if(!(f0 <f1)) //_LBB101_41
   20481 {
   20482 	r10 = heap32[(r9+10)];
   20483 	r11 = heap32[(r1+10)];
   20484 	if(r11 ==0) //_LBB101_53
   20485 {
   20486 	if(r10 ==0) //_LBB101_55
   20487 {
   20488 	r0 = r4 >> 2;
   20489 	r0 = heap32[(r0)];
   20490 	r0 = r0 >> 2;
   20491 	r0 = heap32[(r0+2)];
   20492 	heap32[(g0)] = r4;
   20493 	heap32[(g0+1)] = r8;
   20494 	heap32[(g0+2)] = r5;
   20495 	__FUNCTION_TABLE__[(r0)>>2](i7);
   20496 }
   20497 else{
   20498 	r5 = r0 << 3;
   20499 	r6 = heap32[(r3+8)];
   20500 	r6 = (r6 + r5)|0;
   20501 	r1 = heap32[(r9+9)];
   20502 	r6 = r6 >> 2;
   20503 	heap32[(r6+-2)] = r8;
   20504 	heap32[(r6+-1)] = r1;
   20505 	r6 = heap32[(r3+8)];
   20506 	r5 = (r6 + r5)|0;
   20507 	r1 = heap32[(r9+10)];
   20508 	r5 = r5 >> 2;
   20509 	r6 = (r0 + 1)|0;
   20510 	heap32[(r5)] = r8;
   20511 	heap32[(r5+1)] = r1;
   20512 }
   20513 }
   20514 else{
   20515 	r6 = heap32[(r3+8)];
   20516 	if(r10 ==0) //_LBB101_52
   20517 {
   20518 	r8 = r0 << 3;
   20519 	r6 = (r6 + r8)|0;
   20520 	r6 = r6 >> 2;
   20521 	r9 = heap32[(r1+9)];
   20522 	heap32[(r6+-2)] = r9;
   20523 	heap32[(r6+-1)] = r5;
   20524 	r6 = heap32[(r3+8)];
   20525 	r6 = (r6 + r8)|0;
   20526 	r8 = heap32[(r1+10)];
   20527 	r9 = r6 >> 2;
   20528 	r6 = (r0 + 1)|0;
   20529 	heap32[(r9)] = r8;
   20530 	heap32[(r9+1)] = r5;
   20531 }
   20532 else{
   20533 	r5 = r0 << 3;
   20534 	r6 = (r6 + r5)|0;
   20535 	r8 = heap32[(r9+9)];
   20536 	r10 = heap32[(r1+9)];
   20537 	r6 = r6 >> 2;
   20538 	heap32[(r6+-2)] = r10;
   20539 	heap32[(r6+-1)] = r8;
   20540 	r6 = heap32[(r3+8)];
   20541 	r6 = (r6 + r5)|0;
   20542 	r8 = heap32[(r9+9)];
   20543 	r10 = heap32[(r1+10)];
   20544 	r6 = r6 >> 2;
   20545 	heap32[(r6)] = r10;
   20546 	heap32[(r6+1)] = r8;
   20547 	r6 = heap32[(r3+8)];
   20548 	r6 = (r5 + r6)|0;
   20549 	r8 = heap32[(r9+10)];
   20550 	r10 = heap32[(r1+9)];
   20551 	r6 = r6 >> 2;
   20552 	heap32[(r6+2)] = r10;
   20553 	heap32[(r6+3)] = r8;
   20554 	r6 = heap32[(r3+8)];
   20555 	r6 = (r5 + r6)|0;
   20556 	r5 = heap32[(r9+10)];
   20557 	r1 = heap32[(r1+10)];
   20558 	r8 = r6 >> 2;
   20559 	r6 = (r0 + 3)|0;
   20560 	heap32[(r8+4)] = r1;
   20561 	heap32[(r8+5)] = r5;
   20562 }
   20563 }
   20564 }
   20565 }
   20566 }
   20567 }
   20568 }
   20569 }
   20570 }
   20571 else{
   20572 	r5 = r8 >> 2;
   20573 	r8 = heap32[(r5+10)];
   20574 	if(r8 !=0) //_LBB101_42
   20575 {
   20576 	r6 = r0 << 3;
   20577 	r8 = heap32[(r3+8)];
   20578 	r8 = (r8 + r6)|0;
   20579 	r1 = heap32[(r5+9)];
   20580 	r8 = r8 >> 2;
   20581 	heap32[(r8+-2)] = r1;
   20582 	heap32[(r8+-1)] = r1;
   20583 	r8 = heap32[(r3+8)];
   20584 	r8 = (r8 + r6)|0;
   20585 	r1 = heap32[(r5+10)];
   20586 	r8 = r8 >> 2;
   20587 	heap32[(r8)] = r1;
   20588 	heap32[(r8+1)] = r1;
   20589 	r8 = heap32[(r3+8)];
   20590 	r6 = (r6 + r8)|0;
   20591 	r8 = heap32[(r5+10)];
   20592 	r5 = heap32[(r5+9)];
   20593 	r1 = r6 >> 2;
   20594 	r6 = (r0 + 2)|0;
   20595 	heap32[(r1+2)] = r5;
   20596 	heap32[(r1+3)] = r8;
   20597 }
   20598 }
   20599 	if(r6 !=0) //_LBB101_18
   20600 {
   20601 continue _24;
   20602 }
   20603 else{
   20604 break _1;
   20605 }
   20606 }
   20607 }
   20608 }
   20609 } while(0);
   20610 	return;
   20611 }
   20612 
   20613 function _ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(sp)
   20614 {
   20615 	var i7;
   20616 	var fp = sp>>2;
   20617 	var r0;
   20618 	var r1;
   20619 	var r2;
   20620 	var r3;
   20621 	var r4;
   20622 	var r5;
   20623 	var r6;
   20624 	var r7;
   20625 	var r8;
   20626 	var r9;
   20627 	var r10;
   20628 	var r11;
   20629 	var r12;
   20630 	var f0;
   20631 	var f1;
   20632 	var f2;
   20633 	var f3;
   20634 	var f4;
   20635 	var f5;
   20636 	var f6;
   20637 var __label__ = 0;
   20638 	i7 = sp + -8;var g0 = i7>>2; // save stack
   20639 	r0 = heap32[(fp)];
   20640 if(!(r0 ==0)) //_LBB102_46
   20641 {
   20642 	r1 = heap32[(fp+1)];
   20643 	r2 = heap32[(fp+2)];
   20644 	r3 = gNumAlignedAllocs;
   20645 	r1 = r1 >> 2;
   20646 	r3 = r3 >> 2;
   20647 	r4 = heap32[(r3)];
   20648 	f0 = heapFloat[(r1)];
   20649 	f1 = heapFloat[(r1+1)];
   20650 	f2 = heapFloat[(r1+2)];
   20651 	f3 = heapFloat[(r1+4)];
   20652 	f4 = heapFloat[(r1+5)];
   20653 	f5 = heapFloat[(r1+6)];
   20654 	r1 = (r4 + 1)|0;
   20655 	heap32[(r3)] = r1;
   20656 	heap32[(g0)] = 275;
   20657 	malloc(i7);
   20658 	r1 = r_g0;
   20659 	if(r1 !=0) //_LBB102_3
   20660 {
   20661 	r4 = 0;
   20662 	r5 = (r1 + 4)|0;
   20663 	r4 = (r4 - r5)|0;
   20664 	r4 = r4 & 15;
   20665 	r4 = (r1 + r4)|0;
   20666 	r5 = (r4 + 4)|0;
   20667 	r4 = r4 >> 2;
   20668 	heap32[(r4)] = r1;
   20669 	r1 = r5;
   20670 }
   20671 	r4 = 1;
   20672 	r5 = 64;
   20673 	r6 = r1 >> 2;
   20674 	heap32[(r6)] = r0;
   20675 _6: while(true){
   20676 	r0 = r4;
   20677 	r4 = (r0 + -1)|0;
   20678 	r6 = r4 << 2;
   20679 	r6 = (r1 + r6)|0;
   20680 	r6 = r6 >> 2;
   20681 	r6 = heap32[(r6)];
   20682 	r7 = r6 >> 2;
   20683 	f6 = heapFloat[(r7)];
   20684 	if(f6 <=f3) //_LBB102_7
   20685 {
   20686 	f6 = heapFloat[(r7+4)];
   20687 if(!(f6 <f0)) //_LBB102_6
   20688 {
   20689 	f6 = heapFloat[(r7+1)];
   20690 if(!(f6 >f4)) //_LBB102_6
   20691 {
   20692 	f6 = heapFloat[(r7+5)];
   20693 if(!(f6 <f1)) //_LBB102_6
   20694 {
   20695 	f6 = heapFloat[(r7+2)];
   20696 if(!(f6 >f5)) //_LBB102_6
   20697 {
   20698 	f6 = heapFloat[(r7+6)];
   20699 if(!(f6 <f2)) //_LBB102_6
   20700 {
   20701 	r8 = heap32[(r7+10)];
   20702 	if(r8 ==0) //_LBB102_42
   20703 {
   20704 	r0 = r2 >> 2;
   20705 	r0 = heap32[(r0)];
   20706 	r0 = r0 >> 2;
   20707 	r0 = heap32[(r0+3)];
   20708 	heap32[(g0)] = r2;
   20709 	heap32[(g0+1)] = r6;
   20710 	__FUNCTION_TABLE__[(r0)>>2](i7);
   20711 }
   20712 else{
   20713 	r6 = heap32[(r7+9)];
   20714 	if(r5 ==r4) //_LBB102_15
   20715 {
   20716 	r8 = 1;
   20717 	r9 = r4 << 1;
   20718 	r8 = r4 == 0 ? r8 : r9;
   20719 if(!(r5 >=r8)) //_LBB102_14
   20720 {
   20721 	if(r8 !=0) //_LBB102_18
   20722 {
   20723 	r5 = heap32[(r3)];
   20724 	r9 = r8 << 2;
   20725 	r5 = (r5 + 1)|0;
   20726 	r9 = r9 | 3;
   20727 	heap32[(r3)] = r5;
   20728 	r5 = (r9 + 16)|0;
   20729 	heap32[(g0)] = r5;
   20730 	malloc(i7);
   20731 	r9 = r_g0;
   20732 	if(r9 !=0) //_LBB102_20
   20733 {
   20734 	r5 = 0;
   20735 	r10 = (r9 + 4)|0;
   20736 	r5 = (r5 - r10)|0;
   20737 	r5 = r5 & 15;
   20738 	r5 = (r9 + r5)|0;
   20739 	r10 = (r5 + 4)|0;
   20740 	r5 = r5 >> 2;
   20741 	heap32[(r5)] = r9;
   20742 	r9 = r10;
   20743 }
   20744 }
   20745 else{
   20746 	r9 = 0;
   20747 }
   20748 if(!(r4 <1)) //_LBB102_24
   20749 {
   20750 	r4 = (r0 + -1)|0;
   20751 	r5 = r1;
   20752 	r10 = r9;
   20753 _28: while(true){
   20754 	r11 = r5 >> 2;
   20755 	r4 = (r4 + -1)|0;
   20756 	r12 = (r10 + 4)|0;
   20757 	r5 = (r5 + 4)|0;
   20758 	r10 = r10 >> 2;
   20759 	r11 = heap32[(r11)];
   20760 	heap32[(r10)] = r11;
   20761 	r10 = r12;
   20762 if(!(r4 !=0)) //_LBB102_23
   20763 {
   20764 break _28;
   20765 }
   20766 }
   20767 }
   20768 	if(r1 !=0) //_LBB102_26
   20769 {
   20770 	r4 = gNumAlignedFree;
   20771 	r4 = r4 >> 2;
   20772 	r5 = heap32[(r4)];
   20773 	r5 = (r5 + 1)|0;
   20774 	r1 = r1 >> 2;
   20775 	heap32[(r4)] = r5;
   20776 	r1 = heap32[(r1+-1)];
   20777 	heap32[(g0)] = r1;
   20778 	free(i7);
   20779 	r5 = r8;
   20780 	r1 = r9;
   20781 }
   20782 else{
   20783 	r5 = r8;
   20784 	r1 = r9;
   20785 }
   20786 }
   20787 }
   20788 	r4 = r0 << 2;
   20789 	r8 = (r1 + r4)|0;
   20790 	r8 = r8 >> 2;
   20791 	heap32[(r8+-1)] = r6;
   20792 	r6 = heap32[(r7+10)];
   20793 	if(r5 ==r0) //_LBB102_29
   20794 {
   20795 	r7 = 1;
   20796 	r8 = r0 << 1;
   20797 	r7 = r0 == 0 ? r7 : r8;
   20798 if(!(r5 >=r7)) //_LBB102_28
   20799 {
   20800 	if(r7 !=0) //_LBB102_32
   20801 {
   20802 	r5 = heap32[(r3)];
   20803 	r8 = r7 << 2;
   20804 	r5 = (r5 + 1)|0;
   20805 	r8 = r8 | 3;
   20806 	heap32[(r3)] = r5;
   20807 	r5 = (r8 + 16)|0;
   20808 	heap32[(g0)] = r5;
   20809 	malloc(i7);
   20810 	r8 = r_g0;
   20811 	if(r8 !=0) //_LBB102_34
   20812 {
   20813 	r5 = 0;
   20814 	r9 = (r8 + 4)|0;
   20815 	r5 = (r5 - r9)|0;
   20816 	r5 = r5 & 15;
   20817 	r5 = (r8 + r5)|0;
   20818 	r9 = (r5 + 4)|0;
   20819 	r5 = r5 >> 2;
   20820 	heap32[(r5)] = r8;
   20821 	r8 = r9;
   20822 }
   20823 }
   20824 else{
   20825 	r8 = 0;
   20826 }
   20827 _43: do {
   20828 if(!(r0 <1)) //_LBB102_38
   20829 {
   20830 	r5 = r1;
   20831 	r9 = r8;
   20832 	r10 = r0;
   20833 _45: while(true){
   20834 	r11 = r5 >> 2;
   20835 	r10 = (r10 + -1)|0;
   20836 	r12 = (r9 + 4)|0;
   20837 	r5 = (r5 + 4)|0;
   20838 	r9 = r9 >> 2;
   20839 	r11 = heap32[(r11)];
   20840 	heap32[(r9)] = r11;
   20841 	r9 = r12;
   20842 if(!(r10 !=0)) //_LBB102_37
   20843 {
   20844 break _43;
   20845 }
   20846 }
   20847 }
   20848 } while(0);
   20849 	if(r1 !=0) //_LBB102_40
   20850 {
   20851 	r5 = gNumAlignedFree;
   20852 	r5 = r5 >> 2;
   20853 	r9 = heap32[(r5)];
   20854 	r9 = (r9 + 1)|0;
   20855 	r1 = r1 >> 2;
   20856 	heap32[(r5)] = r9;
   20857 	r1 = heap32[(r1+-1)];
   20858 	heap32[(g0)] = r1;
   20859 	free(i7);
   20860 	r5 = r7;
   20861 	r1 = r8;
   20862 }
   20863 else{
   20864 	r5 = r7;
   20865 	r1 = r8;
   20866 }
   20867 }
   20868 }
   20869 	r7 = (r1 + r4)|0;
   20870 	r4 = (r0 + 1)|0;
   20871 	r0 = r7 >> 2;
   20872 	heap32[(r0)] = r6;
   20873 }
   20874 }
   20875 }
   20876 }
   20877 }
   20878 }
   20879 }
   20880 if(!(r4 >0)) //_LBB102_5
   20881 {
   20882 break _6;
   20883 }
   20884 }
   20885 if(!(r1 ==0)) //_LBB102_46
   20886 {
   20887 	r0 = gNumAlignedFree;
   20888 	r0 = r0 >> 2;
   20889 	r2 = heap32[(r0)];
   20890 	r2 = (r2 + 1)|0;
   20891 	r1 = r1 >> 2;
   20892 	heap32[(r0)] = r2;
   20893 	r0 = heap32[(r1+-1)];
   20894 	heap32[(g0)] = r0;
   20895 	free(i7);
   20896 }
   20897 }
   20898 	return;
   20899 }
   20900 
   20901 function _ZN16btDbvtBroadphase8aabbTestERK9btVector3S2_R24btBroadphaseAabbCallback(sp)
   20902 {
   20903 	var i7;
   20904 	var fp = sp>>2;
   20905 	var r0;
   20906 	var r1;
   20907 	var r2;
   20908 	var r3;
   20909 	var r4;
   20910 var __label__ = 0;
   20911 	i7 = sp + -56;var g0 = i7>>2; // save stack
   20912 	r0 = _ZTV20BroadphaseAabbTester;
   20913 	r1 = sp + -8;
   20914 	r0 = (r0 + 8)|0;
   20915 	r2 = heap32[(fp+1)];
   20916 	r3 = r1 >> 2;
   20917 	r4 = heap32[(fp+3)];
   20918 	heap32[(fp+-2)] = r0;
   20919 	r0 = sp + -40;
   20920 	r2 = r2 >> 2;
   20921 	heap32[(r3+1)] = r4;
   20922 	r3 = r0 >> 2;
   20923 	heap32[(fp+-10)] = heap32[(r2)];
   20924 	heap32[(r3+1)] = heap32[(r2+1)];
   20925 	r4 = heap32[(fp+2)];
   20926 	heap32[(r3+2)] = heap32[(r2+2)];
   20927 	r4 = r4 >> 2;
   20928 	heap32[(r3+3)] = heap32[(r2+3)];
   20929 	heap32[(r3+4)] = heap32[(r4)];
   20930 	heap32[(r3+5)] = heap32[(r4+1)];
   20931 	r2 = heap32[(fp)];
   20932 	heap32[(r3+6)] = heap32[(r4+2)];
   20933 	r2 = r2 >> 2;
   20934 	heap32[(r3+7)] = heap32[(r4+3)];
   20935 	r3 = heap32[(r2+1)];
   20936 	heap32[(g0)] = r3;
   20937 	heap32[(g0+1)] = r0;
   20938 	heap32[(g0+2)] = r1;
   20939 	_ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7);
   20940 	r2 = heap32[(r2+11)];
   20941 	heap32[(g0)] = r2;
   20942 	heap32[(g0+1)] = r0;
   20943 	heap32[(g0+2)] = r1;
   20944 	_ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7);
   20945 	return;
   20946 }
   20947 
   20948 function _ZN16btDbvtBroadphase11createProxyERK9btVector3S2_iPvssP12btDispatcherS3_(sp)
   20949 {
   20950 	var i7;
   20951 	var fp = sp>>2;
   20952 	var r0;
   20953 	var r1;
   20954 	var r2;
   20955 	var r3;
   20956 	var r4;
   20957 	var r5;
   20958 	var r6;
   20959 	var r7;
   20960 	var r8;
   20961 	var r9;
   20962 	var r10;
   20963 	var f0;
   20964 	var f1;
   20965 	var f2;
   20966 	var f3;
   20967 	var f4;
   20968 	var f5;
   20969 	var f6;
   20970 	var f7;
   20971 var __label__ = 0;
   20972 	i7 = sp + -64;var g0 = i7>>2; // save stack
   20973 	r0 = gNumAlignedAllocs;
   20974 	r0 = r0 >> 2;
   20975 	r1 = heap32[(r0)];
   20976 	r2 = (r1 + 1)|0;
   20977 	heap32[(r0)] = r2;
   20978 	heap32[(g0)] = 83;
   20979 	malloc(i7);
   20980 	r2 = r_g0;
   20981 	r3 = heap32[(fp)];
   20982 	r4 = heap32[(fp+1)];
   20983 	r5 = heap32[(fp+2)];
   20984 	r6 = heap32[(fp+4)];
   20985 	r7 = heap32[(fp+5)];
   20986 	r8 = heap32[(fp+6)];
   20987 	if(r2 !=0) //_LBB104_2
   20988 {
   20989 	r9 = 0;
   20990 	r10 = (r2 + 4)|0;
   20991 	r9 = (r9 - r10)|0;
   20992 	r9 = r9 & 15;
   20993 	r9 = (r2 + r9)|0;
   20994 	r10 = (r9 + 4)|0;
   20995 	r9 = r9 >> 2;
   20996 	heap32[(r9)] = r2;
   20997 	r2 = r10;
   20998 }
   20999 	r9 = r2 >> 2;
   21000 	heap32[(r9)] = r6;
   21001 	heap16[(r2+4)>>1] = r7;
   21002 	r4 = r4 >> 2;
   21003 	heap16[(r2+6)>>1] = r8;
   21004 	f0 = heapFloat[(r4)];
   21005 	heapFloat[(r9+4)] = f0;
   21006 	f1 = heapFloat[(r4+1)];
   21007 	heapFloat[(r9+5)] = f1;
   21008 	f2 = heapFloat[(r4+2)];
   21009 	heapFloat[(r9+6)] = f2;
   21010 	f3 = heapFloat[(r4+3)];
   21011 	r4 = r5 >> 2;
   21012 	heapFloat[(r9+7)] = f3;
   21013 	f4 = heapFloat[(r4)];
   21014 	heapFloat[(r9+8)] = f4;
   21015 	f5 = heapFloat[(r4+1)];
   21016 	heapFloat[(r9+9)] = f5;
   21017 	f6 = heapFloat[(r4+2)];
   21018 	heapFloat[(r9+10)] = f6;
   21019 	f7 = heapFloat[(r4+3)];
   21020 	heapFloat[(r9+11)] = f7;
   21021 	heap32[(r9+2)] = 0;
   21022 	heap32[(r9+14)] = 0;
   21023 	r4 = sp + -32;
   21024 	heap32[(r9+13)] = 0;
   21025 	r5 = r4 >> 2;
   21026 	heapFloat[(fp+-8)] = f0;
   21027 	heapFloat[(r5+1)] = f1;
   21028 	heapFloat[(r5+2)] = f2;
   21029 	heapFloat[(r5+3)] = f3;
   21030 	heapFloat[(r5+4)] = f4;
   21031 	heapFloat[(r5+5)] = f5;
   21032 	heapFloat[(r5+6)] = f6;
   21033 	r6 = r3 >> 2;
   21034 	heapFloat[(r5+7)] = f7;
   21035 	r5 = heap32[(r6+26)];
   21036 	heap32[(r9+15)] = r5;
   21037 	r5 = heap32[(r6+37)];
   21038 	r5 = (r5 + 1)|0;
   21039 	heap32[(r6+37)] = r5;
   21040 	heap32[(r9+3)] = r5;
   21041 	r5 = heap32[(r6+2)];
   21042 	r7 = (r3 + 4)|0;
   21043 	if(r5 ==0) //_LBB104_5
   21044 {
   21045 	r5 = (r1 + 2)|0;
   21046 	heap32[(r0)] = r5;
   21047 	heap32[(g0)] = 63;
   21048 	malloc(i7);
   21049 	r5 = r_g0;
   21050 	if(r5 !=0) //_LBB104_7
   21051 {
   21052 	r0 = 0;
   21053 	r1 = (r5 + 4)|0;
   21054 	r0 = (r0 - r1)|0;
   21055 	r0 = r0 & 15;
   21056 	r0 = (r5 + r0)|0;
   21057 	r1 = (r0 + 4)|0;
   21058 	r0 = r0 >> 2;
   21059 	heap32[(r0)] = r5;
   21060 	r5 = r1;
   21061 }
   21062 }
   21063 else{
   21064 	heap32[(r6+2)] = 0;
   21065 }
   21066 	r0 = r5 >> 2;
   21067 	heap32[(r0+8)] = 0;
   21068 	heap32[(r0+9)] = r2;
   21069 	heap32[(r0+10)] = 0;
   21070 	heapFloat[(r0)] = f0;
   21071 	heapFloat[(r0+1)] = f1;
   21072 	heapFloat[(r0+2)] = f2;
   21073 	heapFloat[(r0+3)] = f3;
   21074 	heapFloat[(r0+4)] = f4;
   21075 	heapFloat[(r0+5)] = f5;
   21076 	heapFloat[(r0+6)] = f6;
   21077 	heapFloat[(r0+7)] = f7;
   21078 	r0 = heap32[(r6+1)];
   21079 	heap32[(g0)] = r7;
   21080 	heap32[(g0+1)] = r0;
   21081 	heap32[(g0+2)] = r5;
   21082 	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
   21083 	r0 = heap32[(r6+4)];
   21084 	r0 = (r0 + 1)|0;
   21085 	heap32[(r6+4)] = r0;
   21086 	heap32[(r9+12)] = r5;
   21087 	r0 = heap32[(r6+26)];
   21088 	r0 = r0 << 2;
   21089 	r0 = (r3 + r0)|0;
   21090 	r0 = r0 >> 2;
   21091 	heap32[(r9+13)] = 0;
   21092 	r1 = heap32[(r0+21)];
   21093 	heap32[(r9+14)] = r1;
   21094 if(!(r1 ==0)) //_LBB104_10
   21095 {
   21096 	r1 = r1 >> 2;
   21097 	heap32[(r1+13)] = r2;
   21098 }
   21099 	heap32[(r0+21)] = r2;
   21100 	r0 = heapU8[r3+153];
   21101 if(!(r0 !=0)) //_LBB104_12
   21102 {
   21103 	r0 = _ZTV18btDbvtTreeCollider;
   21104 	r0 = (r0 + 8)|0;
   21105 	r1 = sp + -48;
   21106 	r5 = r1 >> 2;
   21107 	heap32[(fp+-12)] = r0;
   21108 	heap32[(r5+1)] = r3;
   21109 	heap32[(r5+2)] = r2;
   21110 	r3 = heap32[(r6+1)];
   21111 	heap32[(g0)] = r3;
   21112 	heap32[(g0+1)] = r4;
   21113 	heap32[(g0+2)] = r1;
   21114 	_ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7);
   21115 	r3 = heap32[(r6+11)];
   21116 	heap32[(g0)] = r3;
   21117 	heap32[(g0+1)] = r4;
   21118 	heap32[(g0+2)] = r1;
   21119 	_ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7);
   21120 	heap32[(fp+-12)] = r0;
   21121 }
   21122 	r_g0 = r2;
   21123 	return;
   21124 }
   21125 
   21126 function _ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(sp)
   21127 {
   21128 	var i7;
   21129 	var fp = sp>>2;
   21130 	var r0;
   21131 	var r1;
   21132 	var r2;
   21133 	var r3;
   21134 	var r4;
   21135 	var r5;
   21136 	var r6;
   21137 	var r7;
   21138 	var r8;
   21139 	var r9;
   21140 	var r10;
   21141 	var r11;
   21142 	var r12;
   21143 	var r13;
   21144 	var r14;
   21145 	var r15;
   21146 	var r16;
   21147 	var r17;
   21148 	var r18;
   21149 	var r19;
   21150 	var r20;
   21151 	var r21;
   21152 	var r22;
   21153 	var r23;
   21154 	var f0;
   21155 	var f1;
   21156 	var f2;
   21157 	var f3;
   21158 	var f4;
   21159 	var f5;
   21160 	var f6;
   21161 	var f7;
   21162 	var f8;
   21163 var __label__ = 0;
   21164 	i7 = sp + -40;var g0 = i7>>2; // save stack
   21165 	r0 = heap32[(fp)];
   21166 if(!(r0 ==0)) //_LBB105_43
   21167 {
   21168 	r1 = heap32[(fp+1)];
   21169 	r2 = heap32[(fp+2)];
   21170 	r3 = heap32[(fp+3)];
   21171 	f0 = heapFloat[(fp+4)];
   21172 	r4 = heap32[(fp+5)];
   21173 	r5 = heap32[(fp+6)];
   21174 	r6 = heap32[(fp+7)];
   21175 	r7 = gNumAlignedAllocs;
   21176 	r7 = r7 >> 2;
   21177 	r8 = heap32[(r7)];
   21178 	r8 = (r8 + 1)|0;
   21179 	heap32[(r7)] = r8;
   21180 	heap32[(g0)] = 531;
   21181 	malloc(i7);
   21182 	r8 = r_g0;
   21183 	if(r8 !=0) //_LBB105_3
   21184 {
   21185 	r9 = 0;
   21186 	r10 = (r8 + 4)|0;
   21187 	r9 = (r9 - r10)|0;
   21188 	r9 = r9 & 15;
   21189 	r9 = (r8 + r9)|0;
   21190 	r10 = (r9 + 4)|0;
   21191 	r9 = r9 >> 2;
   21192 	heap32[(r9)] = r8;
   21193 	r8 = r10;
   21194 }
   21195 	r9 = 0;
   21196 _6: while(true){
   21197 	r10 = r9 << 2;
   21198 	r10 = (r8 + r10)|0;
   21199 	r9 = (r9 + 1)|0;
   21200 	r10 = r10 >> 2;
   21201 	heap32[(r10)] = 0;
   21202 if(!(r9 !=128)) //_LBB105_5
   21203 {
   21204 break _6;
   21205 }
   21206 }
   21207 	r9 = 128;
   21208 	r10 = 1;
   21209 	r11 = 126;
   21210 	r12 = r8 >> 2;
   21211 	heap32[(r12)] = r0;
   21212 	r0 = r9;
   21213 	r12 = r10;
   21214 _9: while(true){
   21215 	r13 = r12;
   21216 	r12 = (r13 + -1)|0;
   21217 	r14 = r12 << 2;
   21218 	r14 = (r8 + r14)|0;
   21219 	r14 = r14 >> 2;
   21220 	r14 = heap32[(r14)];
   21221 	r15 = r14 >> 2;
   21222 	r16 = r5 >> 2;
   21223 	f1 = heapFloat[(r15+2)];
   21224 	f2 = heapFloat[(r16+2)];
   21225 	f3 = heapFloat[(r15+1)];
   21226 	f4 = heapFloat[(r16+1)];
   21227 	f5 = heapFloat[(r15)];
   21228 	f6 = heapFloat[(r16)];
   21229 	r16 = sp + -32;
   21230 	f5 = f5-f6;
   21231 	r17 = r16 >> 2;
   21232 	f3 = f3-f4;
   21233 	heapFloat[(fp+-8)] = f5;
   21234 	f1 = f1-f2;
   21235 	heapFloat[(r17+1)] = f3;
   21236 	heapFloat[(r17+2)] = f1;
   21237 	heap32[(r17+3)] = 0;
   21238 	r18 = r4 >> 2;
   21239 	f1 = heapFloat[(r15+6)];
   21240 	f2 = heapFloat[(r18+2)];
   21241 	f3 = heapFloat[(r15+5)];
   21242 	f4 = heapFloat[(r18+1)];
   21243 	f5 = heapFloat[(r15+4)];
   21244 	f6 = heapFloat[(r18)];
   21245 	f5 = f5-f6;
   21246 	f3 = f3-f4;
   21247 	heapFloat[(r17+4)] = f5;
   21248 	f1 = f1-f2;
   21249 	heapFloat[(r17+5)] = f3;
   21250 	heapFloat[(r17+6)] = f1;
   21251 	r18 = r3 >> 2;
   21252 	heap32[(r17+7)] = 0;
   21253 	r17 = heap32[(r18)];
   21254 	r19 = heap32[(r18+1)];
   21255 	r20 = (r10 - r19)|0;
   21256 	r21 = r17 << 4;
   21257 	r20 = r20 << 4;
   21258 	r21 = (r16 + r21)|0;
   21259 	r20 = (r16 + r20)|0;
   21260 	r22 = r1 >> 2;
   21261 	r21 = r21 >> 2;
   21262 	r20 = r20 >> 2;
   21263 	r23 = r2 >> 2;
   21264 	f1 = heapFloat[(r21)];
   21265 	f2 = heapFloat[(r22)];
   21266 	f3 = heapFloat[(r20+1)];
   21267 	f4 = heapFloat[(r22+1)];
   21268 	f1 = f1-f2;
   21269 	f5 = heapFloat[(r23)];
   21270 	f3 = f3-f4;
   21271 	f6 = heapFloat[(r23+1)];
   21272 	f1 = f1*f5;
   21273 	f3 = f3*f6;
   21274 if(!(f1 >f3)) //_LBB105_9
   21275 {
   21276 	r17 = (r10 - r17)|0;
   21277 	r17 = r17 << 4;
   21278 	r19 = r19 << 4;
   21279 	r17 = (r16 + r17)|0;
   21280 	r19 = (r16 + r19)|0;
   21281 	r17 = r17 >> 2;
   21282 	r19 = r19 >> 2;
   21283 	f7 = heapFloat[(r17)];
   21284 	f8 = heapFloat[(r19+1)];
   21285 	f2 = f7-f2;
   21286 	f4 = f8-f4;
   21287 	f2 = f2*f5;
   21288 	f4 = f4*f6;
   21289 	if(f4 <=f2) //_LBB105_10
   21290 {
   21291 	r17 = heap32[(r18+2)];
   21292 	r18 = 1;
   21293 	r18 = (r18 - r17)|0;
   21294 	r18 = r18 << 4;
   21295 	r18 = (r16 + r18)|0;
   21296 	r18 = r18 >> 2;
   21297 	f5 = heapFloat[(r18+2)];
   21298 	f6 = heapFloat[(r22+2)];
   21299 	f5 = f5-f6;
   21300 	f7 = heapFloat[(r23+2)];
   21301 	f1 = f1 < f4 ? f4 : f1;
   21302 	f4 = f5*f7;
   21303 if(!(f1 >f4)) //_LBB105_9
   21304 {
   21305 	r17 = r17 << 4;
   21306 	r16 = (r16 + r17)|0;
   21307 	r16 = r16 >> 2;
   21308 	f5 = heapFloat[(r16+2)];
   21309 	f5 = f5-f6;
   21310 	f2 = f3 < f2 ? f3 : f2;
   21311 	f3 = f5*f7;
   21312 if(!(f3 >f2)) //_LBB105_9
   21313 {
   21314 	f1 = f1 < f3 ? f3 : f1;
   21315 if(!(f1 >=f0)) //_LBB105_9
   21316 {
   21317 	f1 = f4 < f2 ? f4 : f2;
   21318 	f2 =                         0;
   21319 if(!(f1 <=f2)) //_LBB105_9
   21320 {
   21321 	r16 = heap32[(r15+10)];
   21322 	if(r16 ==0) //_LBB105_39
   21323 {
   21324 	r13 = r6 >> 2;
   21325 	r13 = heap32[(r13)];
   21326 	r13 = r13 >> 2;
   21327 	r13 = heap32[(r13+3)];
   21328 	heap32[(g0)] = r6;
   21329 	heap32[(g0+1)] = r14;
   21330 	__FUNCTION_TABLE__[(r13)>>2](i7);
   21331 }
   21332 else{
   21333 	if(r12 >r11) //_LBB105_17
   21334 {
   21335 	r14 = r0 << 1;
   21336 _23: do {
   21337 	if(r0 <=r14) //_LBB105_19
   21338 {
   21339 if(!(r0 >=r14)) //_LBB105_18
   21340 {
   21341 	if(r9 <r14) //_LBB105_22
   21342 {
   21343 	if(r14 !=0) //_LBB105_24
   21344 {
   21345 	r9 = heap32[(r7)];
   21346 	r11 = r0 << 3;
   21347 	r9 = (r9 + 1)|0;
   21348 	r11 = r11 | 3;
   21349 	heap32[(r7)] = r9;
   21350 	r9 = (r11 + 16)|0;
   21351 	heap32[(g0)] = r9;
   21352 	malloc(i7);
   21353 	r9 = r_g0;
   21354 	if(r9 !=0) //_LBB105_26
   21355 {
   21356 	r11 = 0;
   21357 	r12 = (r9 + 4)|0;
   21358 	r11 = (r11 - r12)|0;
   21359 	r11 = r11 & 15;
   21360 	r11 = (r9 + r11)|0;
   21361 	r12 = (r11 + 4)|0;
   21362 	r11 = r11 >> 2;
   21363 	heap32[(r11)] = r9;
   21364 	r9 = r12;
   21365 }
   21366 }
   21367 else{
   21368 	r9 = 0;
   21369 }
   21370 if(!(r0 <1)) //_LBB105_30
   21371 {
   21372 	r11 = r8;
   21373 	r12 = r9;
   21374 	r16 = r0;
   21375 _35: while(true){
   21376 	r17 = r11 >> 2;
   21377 	r16 = (r16 + -1)|0;
   21378 	r18 = (r12 + 4)|0;
   21379 	r11 = (r11 + 4)|0;
   21380 	r12 = r12 >> 2;
   21381 	r17 = heap32[(r17)];
   21382 	heap32[(r12)] = r17;
   21383 	r12 = r18;
   21384 if(!(r16 !=0)) //_LBB105_29
   21385 {
   21386 break _35;
   21387 }
   21388 }
   21389 }
   21390 if(!(r8 ==0)) //_LBB105_32
   21391 {
   21392 	r11 = gNumAlignedFree;
   21393 	r11 = r11 >> 2;
   21394 	r12 = heap32[(r11)];
   21395 	r12 = (r12 + 1)|0;
   21396 	r8 = r8 >> 2;
   21397 	heap32[(r11)] = r12;
   21398 	r8 = heap32[(r8+-1)];
   21399 	heap32[(g0)] = r8;
   21400 	free(i7);
   21401 }
   21402 	if(r0 <r14) //_LBB105_34
   21403 {
   21404 	r8 = r9;
   21405 	r9 = r14;
   21406 }
   21407 else{
   21408 	r8 = r9;
   21409 	r9 = r14;
   21410 break _23;
   21411 }
   21412 }
   21413 	r11 = r0;
   21414 _45: while(true){
   21415 	r12 = r0 << 2;
   21416 	r12 = (r8 + r12)|0;
   21417 	r11 = (r11 + -1)|0;
   21418 	r0 = (r0 + 1)|0;
   21419 	r12 = r12 >> 2;
   21420 	heap32[(r12)] = 0;
   21421 if(!(r11 !=0)) //_LBB105_36
   21422 {
   21423 break _23;
   21424 }
   21425 }
   21426 }
   21427 }
   21428 } while(0);
   21429 	r11 = (r14 + -2)|0;
   21430 }
   21431 else{
   21432 	r14 = r0;
   21433 }
   21434 	r0 = r13 << 2;
   21435 	r0 = (r8 + r0)|0;
   21436 	r0 = r0 >> 2;
   21437 	r12 = heap32[(r15+9)];
   21438 	heap32[(r0+-1)] = r12;
   21439 	r15 = heap32[(r15+10)];
   21440 	r12 = (r13 + 1)|0;
   21441 	heap32[(r0)] = r15;
   21442 	r0 = r14;
   21443 }
   21444 }
   21445 }
   21446 }
   21447 }
   21448 }
   21449 }
   21450 if(!(r12 !=0)) //_LBB105_7
   21451 {
   21452 break _9;
   21453 }
   21454 }
   21455 if(!(r8 ==0)) //_LBB105_43
   21456 {
   21457 	r0 = gNumAlignedFree;
   21458 	r0 = r0 >> 2;
   21459 	r1 = heap32[(r0)];
   21460 	r1 = (r1 + 1)|0;
   21461 	r2 = r8 >> 2;
   21462 	heap32[(r0)] = r1;
   21463 	r0 = heap32[(r2+-1)];
   21464 	heap32[(g0)] = r0;
   21465 	free(i7);
   21466 }
   21467 }
   21468 	return;
   21469 }
   21470 
   21471 function _ZN16btDbvtBroadphase7rayTestERK9btVector3S2_R23btBroadphaseRayCallbackS2_S2_(sp)
   21472 {
   21473 	var i7;
   21474 	var fp = sp>>2;
   21475 	var r0;
   21476 	var r1;
   21477 	var r2;
   21478 	var r3;
   21479 	var r4;
   21480 	var r5;
   21481 	var r6;
   21482 	var r7;
   21483 	var r8;
   21484 	var f0;
   21485 var __label__ = 0;
   21486 	i7 = sp + -40;var g0 = i7>>2; // save stack
   21487 	r0 = _ZTV19BroadphaseRayTester;
   21488 	r1 = sp + -8;
   21489 	r0 = (r0 + 8)|0;
   21490 	r2 = heap32[(fp+3)];
   21491 	r3 = heap32[(fp)];
   21492 	r4 = r1 >> 2;
   21493 	heap32[(fp+-2)] = r0;
   21494 	heap32[(r4+1)] = r2;
   21495 	r0 = r2 >> 2;
   21496 	r3 = r3 >> 2;
   21497 	f0 = heapFloat[(r0+8)];
   21498 	r4 = heap32[(r3+1)];
   21499 	r5 = heap32[(fp+1)];
   21500 	r6 = (r2 + 4)|0;
   21501 	r2 = (r2 + 20)|0;
   21502 	r7 = heap32[(fp+4)];
   21503 	r8 = heap32[(fp+5)];
   21504 	heap32[(g0)] = r4;
   21505 	heap32[(g0+1)] = r5;
   21506 	heap32[(g0+2)] = r6;
   21507 	heap32[(g0+3)] = r2;
   21508 	heapFloat[(g0+4)] = f0;
   21509 	heap32[(g0+5)] = r7;
   21510 	heap32[(g0+6)] = r8;
   21511 	heap32[(g0+7)] = r1;
   21512 	_ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(i7);
   21513 	f0 = heapFloat[(r0+8)];
   21514 	r0 = heap32[(r3+11)];
   21515 	heap32[(g0)] = r0;
   21516 	heap32[(g0+1)] = r5;
   21517 	heap32[(g0+2)] = r6;
   21518 	heap32[(g0+3)] = r2;
   21519 	heapFloat[(g0+4)] = f0;
   21520 	heap32[(g0+5)] = r7;
   21521 	heap32[(g0+6)] = r8;
   21522 	heap32[(g0+7)] = r1;
   21523 	_ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(i7);
   21524 	return;
   21525 }
   21526 
   21527 function _ZN16btDbvtBroadphase12destroyProxyEP17btBroadphaseProxyP12btDispatcher(sp)
   21528 {
   21529 	var i7;
   21530 	var fp = sp>>2;
   21531 	var r0;
   21532 	var r1;
   21533 	var r2;
   21534 	var r3;
   21535 	var r4;
   21536 	var r5;
   21537 	var r6;
   21538 	var r7;
   21539 	var r8;
   21540 var __label__ = 0;
   21541 	i7 = sp + -16;var g0 = i7>>2; // save stack
   21542 	r0 = heap32[(fp+1)];
   21543 	r1 = r0 >> 2;
   21544 	r2 = heap32[(fp)];
   21545 	r3 = heap32[(fp+2)];
   21546 	r4 = heap32[(r1+12)];
   21547 	r5 = heap32[(r1+15)];
   21548 	if(r5 !=2) //_LBB107_4
   21549 {
   21550 	r5 = (r2 + 4)|0;
   21551 	heap32[(g0)] = r5;
   21552 	heap32[(g0+1)] = r4;
   21553 	r5 = r2 >> 2;
   21554 	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
   21555 	r6 = heap32[(r5+2)];
   21556 if(!(r6 ==0)) //_LBB107_6
   21557 {
   21558 	r7 = gNumAlignedFree;
   21559 	r7 = r7 >> 2;
   21560 	r8 = heap32[(r7)];
   21561 	r8 = (r8 + 1)|0;
   21562 	r6 = r6 >> 2;
   21563 	heap32[(r7)] = r8;
   21564 	r6 = heap32[(r6+-1)];
   21565 	heap32[(g0)] = r6;
   21566 	free(i7);
   21567 }
   21568 	heap32[(r5+2)] = r4;
   21569 	r4 = heap32[(r5+4)];
   21570 	r4 = (r4 + -1)|0;
   21571 	heap32[(r5+4)] = r4;
   21572 }
   21573 else{
   21574 	r5 = (r2 + 44)|0;
   21575 	heap32[(g0)] = r5;
   21576 	heap32[(g0+1)] = r4;
   21577 	r5 = r2 >> 2;
   21578 	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
   21579 	r6 = heap32[(r5+12)];
   21580 if(!(r6 ==0)) //_LBB107_3
   21581 {
   21582 	r7 = gNumAlignedFree;
   21583 	r7 = r7 >> 2;
   21584 	r8 = heap32[(r7)];
   21585 	r8 = (r8 + 1)|0;
   21586 	r6 = r6 >> 2;
   21587 	heap32[(r7)] = r8;
   21588 	r6 = heap32[(r6+-1)];
   21589 	heap32[(g0)] = r6;
   21590 	free(i7);
   21591 }
   21592 	heap32[(r5+12)] = r4;
   21593 	r4 = heap32[(r5+14)];
   21594 	r4 = (r4 + -1)|0;
   21595 	heap32[(r5+14)] = r4;
   21596 }
   21597 	r4 = heap32[(r1+13)];
   21598 	r5 = heap32[(r1+14)];
   21599 	if(r4 ==0) //_LBB107_9
   21600 {
   21601 	r4 = heap32[(r1+15)];
   21602 	r4 = r4 << 2;
   21603 	r4 = (r2 + r4)|0;
   21604 	r4 = r4 >> 2;
   21605 	heap32[(r4+21)] = r5;
   21606 }
   21607 else{
   21608 	r4 = r4 >> 2;
   21609 	heap32[(r4+14)] = r5;
   21610 }
   21611 	r4 = heap32[(r1+14)];
   21612 if(!(r4 ==0)) //_LBB107_12
   21613 {
   21614 	r4 = r4 >> 2;
   21615 	r5 = heap32[(r1+13)];
   21616 	heap32[(r4+13)] = r5;
   21617 }
   21618 	r4 = r2 >> 2;
   21619 	r4 = heap32[(r4+24)];
   21620 	r5 = r4 >> 2;
   21621 	r5 = heap32[(r5)];
   21622 	r5 = r5 >> 2;
   21623 	r5 = heap32[(r5+4)];
   21624 	heap32[(g0)] = r4;
   21625 	heap32[(g0+1)] = r0;
   21626 	heap32[(g0+2)] = r3;
   21627 	__FUNCTION_TABLE__[(r5)>>2](i7);
   21628 if(!(r0 ==0)) //_LBB107_14
   21629 {
   21630 	r0 = gNumAlignedFree;
   21631 	r0 = r0 >> 2;
   21632 	r3 = heap32[(r0)];
   21633 	r3 = (r3 + 1)|0;
   21634 	heap32[(r0)] = r3;
   21635 	r0 = heap32[(r1+-1)];
   21636 	heap32[(g0)] = r0;
   21637 	free(i7);
   21638 }
   21639 	r0 = 1;
   21640 	heap8[r2+154] = r0;
   21641 	return;
   21642 }
   21643 
   21644 function _ZN16btDbvtBroadphase25calculateOverlappingPairsEP12btDispatcher(sp)
   21645 {
   21646 	var i7;
   21647 	var fp = sp>>2;
   21648 	var r0;
   21649 	var r1;
   21650 	var r2;
   21651 	var r3;
   21652 	var r4;
   21653 	var r5;
   21654 	var r6;
   21655 	var r7;
   21656 	var r8;
   21657 	var r9;
   21658 	var r10;
   21659 	var r11;
   21660 	var r12;
   21661 	var f0;
   21662 	var f1;
   21663 	var f2;
   21664 	var f3;
   21665 	var f4;
   21666 	var f5;
   21667 	var f6;
   21668 	var f7;
   21669 var __label__ = 0;
   21670 	i7 = sp + -48;var g0 = i7>>2; // save stack
   21671 	r0 = heap32[(fp)];
   21672 	r1 = r0 >> 2;
   21673 	r2 = heap32[(r1+4)];
   21674 	r3 = heap32[(r1+28)];
   21675 	r2 = (r3 * r2)|0;
   21676 	r2 = (r2 / 100)|0;
   21677 	r3 = (r0 + 4)|0;
   21678 	r2 = (r2 + 1)|0;
   21679 	heap32[(g0)] = r3;
   21680 	heap32[(g0+1)] = r2;
   21681 	_ZN6btDbvt19optimizeIncrementalEi(i7);
   21682 	r2 = heap32[(r1+31)];
   21683 if(!(r2 ==0)) //_LBB108_2
   21684 {
   21685 	r2 = heap32[(r1+14)];
   21686 	r4 = heap32[(r1+27)];
   21687 	r2 = (r4 * r2)|0;
   21688 	r4 = (r2 / 100)|0;
   21689 	r5 = (r0 + 44)|0;
   21690 	r4 = (r4 + 1)|0;
   21691 	heap32[(g0)] = r5;
   21692 	heap32[(g0+1)] = r4;
   21693 	_ZN6btDbvt19optimizeIncrementalEi(i7);
   21694 	r2 = (r2 / -100)|0;
   21695 	r4 = heap32[(r1+31)];
   21696 	r2 = (r2 + r4)|0;
   21697 	r2 = (r2 + -1)|0;
   21698 	r4 = 0;
   21699 	r2 = r2 < 0 ? r4 : r2;
   21700 	heap32[(r1+31)] = r2;
   21701 }
   21702 	r2 = heap32[(r1+26)];
   21703 	r2 = (r2 + 1)|0;
   21704 	r4 = r2 >>> 31;
   21705 	r4 = (r2 + r4)|0;
   21706 	r4 = r4 & -2;
   21707 	r2 = (r2 - r4)|0;
   21708 	r4 = r2 << 2;
   21709 	r4 = (r0 + r4)|0;
   21710 	r4 = r4 >> 2;
   21711 	heap32[(r1+26)] = r2;
   21712 	r2 = heap32[(r4+21)];
   21713 if(!(r2 ==0)) //_LBB108_20
   21714 {
   21715 	r4 = (r0 + 44)|0;
   21716 _6: while(true){
   21717 	r5 = r2 >> 2;
   21718 	r6 = heap32[(r5+13)];
   21719 	r7 = heap32[(r5+14)];
   21720 	if(r6 ==0) //_LBB108_6
   21721 {
   21722 	r6 = heap32[(r5+15)];
   21723 	r6 = r6 << 2;
   21724 	r6 = (r0 + r6)|0;
   21725 	r6 = r6 >> 2;
   21726 	heap32[(r6+21)] = r7;
   21727 }
   21728 else{
   21729 	r6 = r6 >> 2;
   21730 	heap32[(r6+14)] = r7;
   21731 }
   21732 	r6 = heap32[(r5+14)];
   21733 if(!(r6 ==0)) //_LBB108_9
   21734 {
   21735 	r6 = r6 >> 2;
   21736 	r8 = heap32[(r5+13)];
   21737 	heap32[(r6+13)] = r8;
   21738 }
   21739 	heap32[(r5+13)] = 0;
   21740 	r6 = heap32[(r1+23)];
   21741 	heap32[(r5+14)] = r6;
   21742 	r6 = heap32[(r1+23)];
   21743 if(!(r6 ==0)) //_LBB108_11
   21744 {
   21745 	r6 = r6 >> 2;
   21746 	heap32[(r6+13)] = r2;
   21747 }
   21748 	heap32[(r1+23)] = r2;
   21749 	r6 = heap32[(r5+12)];
   21750 	heap32[(g0)] = r3;
   21751 	heap32[(g0+1)] = r6;
   21752 	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
   21753 	r8 = heap32[(r1+2)];
   21754 if(!(r8 ==0)) //_LBB108_13
   21755 {
   21756 	r9 = gNumAlignedFree;
   21757 	r9 = r9 >> 2;
   21758 	r10 = heap32[(r9)];
   21759 	r10 = (r10 + 1)|0;
   21760 	r8 = r8 >> 2;
   21761 	heap32[(r9)] = r10;
   21762 	r8 = heap32[(r8+-1)];
   21763 	heap32[(g0)] = r8;
   21764 	free(i7);
   21765 }
   21766 	heap32[(r1+2)] = r6;
   21767 	r6 = heap32[(r1+4)];
   21768 	r6 = (r6 + -1)|0;
   21769 	heap32[(r1+4)] = r6;
   21770 	r6 = heap32[(r1+12)];
   21771 	f0 = heapFloat[(r5+4)];
   21772 	f1 = heapFloat[(r5+5)];
   21773 	f2 = heapFloat[(r5+6)];
   21774 	f3 = heapFloat[(r5+7)];
   21775 	f4 = heapFloat[(r5+8)];
   21776 	f5 = heapFloat[(r5+9)];
   21777 	f6 = heapFloat[(r5+10)];
   21778 	f7 = heapFloat[(r5+11)];
   21779 	if(r6 ==0) //_LBB108_15
   21780 {
   21781 	r6 = gNumAlignedAllocs;
   21782 	r6 = r6 >> 2;
   21783 	r8 = heap32[(r6)];
   21784 	r8 = (r8 + 1)|0;
   21785 	heap32[(r6)] = r8;
   21786 	heap32[(g0)] = 63;
   21787 	malloc(i7);
   21788 	r6 = r_g0;
   21789 	if(r6 !=0) //_LBB108_17
   21790 {
   21791 	r8 = 0;
   21792 	r9 = (r6 + 4)|0;
   21793 	r8 = (r8 - r9)|0;
   21794 	r8 = r8 & 15;
   21795 	r8 = (r6 + r8)|0;
   21796 	r9 = (r8 + 4)|0;
   21797 	r8 = r8 >> 2;
   21798 	heap32[(r8)] = r6;
   21799 	r6 = r9;
   21800 }
   21801 }
   21802 else{
   21803 	heap32[(r1+12)] = 0;
   21804 }
   21805 	r8 = r6 >> 2;
   21806 	heap32[(r8+8)] = 0;
   21807 	heap32[(r8+9)] = r2;
   21808 	heap32[(r8+10)] = 0;
   21809 	heapFloat[(r8)] = f0;
   21810 	heapFloat[(r8+1)] = f1;
   21811 	heapFloat[(r8+2)] = f2;
   21812 	heapFloat[(r8+3)] = f3;
   21813 	heapFloat[(r8+4)] = f4;
   21814 	heapFloat[(r8+5)] = f5;
   21815 	heapFloat[(r8+6)] = f6;
   21816 	heapFloat[(r8+7)] = f7;
   21817 	r2 = heap32[(r1+11)];
   21818 	heap32[(g0)] = r4;
   21819 	heap32[(g0+1)] = r2;
   21820 	heap32[(g0+2)] = r6;
   21821 	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
   21822 	r2 = heap32[(r1+14)];
   21823 	r2 = (r2 + 1)|0;
   21824 	heap32[(r1+14)] = r2;
   21825 	heap32[(r5+12)] = r6;
   21826 	heap32[(r5+15)] = 2;
   21827 	r2 = r7;
   21828 if(!(r7 !=0)) //_LBB108_4
   21829 {
   21830 break _6;
   21831 }
   21832 }
   21833 	r2 = heap32[(r1+14)];
   21834 	r4 = 1;
   21835 	heap32[(r1+31)] = r2;
   21836 	heap8[r0+154] = r4;
   21837 }
   21838 	r2 = _ZTV18btDbvtTreeCollider;
   21839 	r4 = sp + -32;
   21840 	r2 = (r2 + 8)|0;
   21841 	r5 = r4 >> 2;
   21842 	heap32[(fp+-8)] = r2;
   21843 	heap32[(r5+1)] = r0;
   21844 	r5 = heapU8[r0+153];
   21845 if(!(r5 ==0)) //_LBB108_23
   21846 {
   21847 	r5 = heap32[(r1+11)];
   21848 	r6 = heap32[(r1+1)];
   21849 	heap32[(g0)] = r3;
   21850 	heap32[(g0+1)] = r6;
   21851 	heap32[(g0+2)] = r5;
   21852 	heap32[(g0+3)] = r4;
   21853 	_ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7);
   21854 	r5 = heapU8[r0+153];
   21855 if(!(r5 ==0)) //_LBB108_23
   21856 {
   21857 	r5 = heap32[(r1+1)];
   21858 	heap32[(g0)] = r3;
   21859 	heap32[(g0+1)] = r5;
   21860 	heap32[(g0+2)] = r5;
   21861 	heap32[(g0+3)] = r4;
   21862 	_ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7);
   21863 }
   21864 }
   21865 	r3 = heap32[(fp+1)];
   21866 	heap32[(fp+-8)] = r2;
   21867 	r2 = heapU8[r0+154];
   21868 _32: do {
   21869 if(!(r2 ==0)) //_LBB108_40
   21870 {
   21871 	r2 = heap32[(r1+24)];
   21872 	r4 = r2 >> 2;
   21873 	r4 = heap32[(r4)];
   21874 	r4 = r4 >> 2;
   21875 	r4 = heap32[(r4+7)];
   21876 	heap32[(g0)] = r2;
   21877 	__FUNCTION_TABLE__[(r4)>>2](i7);
   21878 	r2 = r_g0;
   21879 	r4 = r2 >> 2;
   21880 	r4 = heap32[(r4+1)];
   21881 if(!(r4 <1)) //_LBB108_40
   21882 {
   21883 	r5 = heap32[(r1+29)];
   21884 	r5 = (r5 * r4)|0;
   21885 	r6 = heap32[(r1+30)];
   21886 	r5 = (r5 / 100)|0;
   21887 	r5 = r6 > r5 ? r6 : r5;
   21888 	r5 = r4 < r5 ? r4 : r5;
   21889 	if(r5 >0) //_LBB108_27
   21890 {
   21891 	r4 = 0;
   21892 _37: while(true){
   21893 	r6 = r2 >> 2;
   21894 	r7 = heap32[(r1+36)];
   21895 	r7 = (r7 + r4)|0;
   21896 	r8 = heap32[(r6+1)];
   21897 	r7 = (r7 % r8)|0;
   21898 	r8 = heap32[(r6+3)];
   21899 	r7 = r7 << 4;
   21900 	r7 = (r8 + r7)|0;
   21901 	r7 = r7 >> 2;
   21902 	r8 = heap32[(r7+1)];
   21903 	r7 = heap32[(r7)];
   21904 	r9 = r8 >> 2;
   21905 	r10 = r7 >> 2;
   21906 	r9 = heap32[(r9+12)];
   21907 	r10 = heap32[(r10+12)];
   21908 	r10 = r10 >> 2;
   21909 	r9 = r9 >> 2;
   21910 	f0 = heapFloat[(r10)];
   21911 	f1 = heapFloat[(r9+4)];
   21912 	if(f0 >f1) //_LBB108_35
   21913 {
   21914 __label__ = 32;
   21915 }
   21916 else{
   21917 	f0 = heapFloat[(r10+4)];
   21918 	f1 = heapFloat[(r9)];
   21919 	if(f0 <f1) //_LBB108_35
   21920 {
   21921 __label__ = 32;
   21922 }
   21923 else{
   21924 	f0 = heapFloat[(r10+1)];
   21925 	f1 = heapFloat[(r9+5)];
   21926 	if(f0 >f1) //_LBB108_35
   21927 {
   21928 __label__ = 32;
   21929 }
   21930 else{
   21931 	f0 = heapFloat[(r10+5)];
   21932 	f1 = heapFloat[(r9+1)];
   21933 	if(f0 <f1) //_LBB108_35
   21934 {
   21935 __label__ = 32;
   21936 }
   21937 else{
   21938 	f0 = heapFloat[(r10+2)];
   21939 	f1 = heapFloat[(r9+6)];
   21940 	if(f0 >f1) //_LBB108_35
   21941 {
   21942 __label__ = 32;
   21943 }
   21944 else{
   21945 	f0 = heapFloat[(r10+6)];
   21946 	f1 = heapFloat[(r9+2)];
   21947 	if(f0 <f1) //_LBB108_35
   21948 {
   21949 __label__ = 32;
   21950 }
   21951 else{
   21952 __label__ = 33;
   21953 }
   21954 }
   21955 }
   21956 }
   21957 }
   21958 }
   21959 if (__label__ == 32){
   21960 	r9 = heap32[(r1+24)];
   21961 	r10 = r9 >> 2;
   21962 	r10 = heap32[(r10)];
   21963 	r10 = r10 >> 2;
   21964 	r10 = heap32[(r10+3)];
   21965 	heap32[(g0)] = r9;
   21966 	heap32[(g0+1)] = r7;
   21967 	heap32[(g0+2)] = r8;
   21968 	heap32[(g0+3)] = r3;
   21969 	r5 = (r5 + -1)|0;
   21970 	r4 = (r4 + -1)|0;
   21971 	__FUNCTION_TABLE__[(r10)>>2](i7);
   21972 }
   21973 	r4 = (r4 + 1)|0;
   21974 if(!(r4 <r5)) //_LBB108_28
   21975 {
   21976 break _37;
   21977 }
   21978 }
   21979 	r4 = heap32[(r6+1)];
   21980 	if(r4 <1) //_LBB108_39
   21981 {
   21982 	heap32[(r1+36)] = 0;
   21983 break _32;
   21984 }
   21985 }
   21986 	r2 = heap32[(r1+36)];
   21987 	r2 = (r2 + r5)|0;
   21988 	r2 = (r2 % r4)|0;
   21989 	heap32[(r1+36)] = r2;
   21990 }
   21991 }
   21992 } while(0);
   21993 	r2 = heap32[(r1+35)];
   21994 	r2 = (r2 + 1)|0;
   21995 	heap32[(r1+35)] = r2;
   21996 	r2 = 0;
   21997 	heap32[(r1+30)] = 1;
   21998 	heap8[r0+154] = r2;
   21999 	r0 = heap32[(r1+32)];
   22000 	if(r0 ==0) //_LBB108_42
   22001 {
   22002 	heap32[(r1+34)] = 0;
   22003 	r4 = heap32[(r1+33)];
   22004 }
   22005 else{
   22006 	r4 = heap32[(r1+33)];
   22007 	f0 = uint(r4); //fuitos r4, f0
   22008 	f1 = uint(r0); //fuitos r0, f1
   22009 	f0 = f0/f1;
   22010 	heapFloat[(r1+34)] = f0;
   22011 }
   22012 	r4 = r4 >>> 1;
   22013 	r0 = r0 >>> 1;
   22014 	heap32[(r1+33)] = r4;
   22015 	heap32[(r1+32)] = r0;
   22016 	r0 = heap32[(r1+24)];
   22017 	r4 = r0 >> 2;
   22018 	r4 = heap32[(r4)];
   22019 	r4 = r4 >> 2;
   22020 	r4 = heap32[(r4+14)];
   22021 	heap32[(g0)] = r0;
   22022 	__FUNCTION_TABLE__[(r4)>>2](i7);
   22023 	r0 = r_g0;
   22024 if(!(r0 ==0)) //_LBB108_65
   22025 {
   22026 	r0 = heap32[(r1+24)];
   22027 	r4 = r0 >> 2;
   22028 	r4 = heap32[(r4)];
   22029 	r4 = r4 >> 2;
   22030 	r4 = heap32[(r4+7)];
   22031 	heap32[(g0)] = r0;
   22032 	__FUNCTION_TABLE__[(r4)>>2](i7);
   22033 	r0 = r_g0;
   22034 	r4 = r0 >> 2;
   22035 	r4 = heap32[(r4+1)];
   22036 if(!(r4 <2)) //_LBB108_46
   22037 {
   22038 	r4 = (r4 + -1)|0;
   22039 	heap32[(g0)] = r0;
   22040 	heap32[(g0+1)] = 0;
   22041 	heap32[(g0+2)] = r4;
   22042 	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
   22043 }
   22044 	r4 = r2;
   22045 	r5 = r2;
   22046 	r6 = r2;
   22047 	r7 = r2;
   22048 _61: while(true){
   22049 	r8 = r0 >> 2;
   22050 	r9 = heap32[(r8+1)];
   22051 	if(r9 >r7) //_LBB108_47
   22052 {
   22053 	r8 = heap32[(r8+3)];
   22054 	r9 = r7 << 4;
   22055 	r9 = (r8 + r9)|0;
   22056 	r9 = r9 >> 2;
   22057 	r10 = heap32[(r9)];
   22058 	r11 = r7 << 2;
   22059 	r12 = heap32[(r9+1)];
   22060 	if(r10 !=r4) //_LBB108_49
   22061 {
   22062 __label__ = 46;
   22063 }
   22064 else{
   22065 	if(r12 ==r5) //_LBB108_56
   22066 {
   22067 	r4 = heap32[(r9+2)];
   22068 	if(r4 ==0) //_LBB108_58
   22069 {
   22070 __label__ = 54;
   22071 }
   22072 else{
   22073 __label__ = 53;
   22074 break _61;
   22075 }
   22076 }
   22077 else{
   22078 __label__ = 46;
   22079 }
   22080 }
   22081 if (__label__ == 46){
   22082 	r4 = r12 >> 2;
   22083 	r5 = r10 >> 2;
   22084 	r4 = heap32[(r4+12)];
   22085 	r5 = heap32[(r5+12)];
   22086 	r5 = r5 >> 2;
   22087 	r4 = r4 >> 2;
   22088 	f0 = heapFloat[(r5)];
   22089 	f1 = heapFloat[(r4+4)];
   22090 	if(f0 >f1) //_LBB108_58
   22091 {
   22092 __label__ = 54;
   22093 }
   22094 else{
   22095 	f0 = heapFloat[(r5+4)];
   22096 	f1 = heapFloat[(r4)];
   22097 	if(f0 <f1) //_LBB108_58
   22098 {
   22099 __label__ = 54;
   22100 }
   22101 else{
   22102 	f0 = heapFloat[(r5+1)];
   22103 	f1 = heapFloat[(r4+5)];
   22104 	if(f0 >f1) //_LBB108_58
   22105 {
   22106 __label__ = 54;
   22107 }
   22108 else{
   22109 	f0 = heapFloat[(r5+5)];
   22110 	f1 = heapFloat[(r4+1)];
   22111 	if(f0 <f1) //_LBB108_58
   22112 {
   22113 __label__ = 54;
   22114 }
   22115 else{
   22116 	f0 = heapFloat[(r5+2)];
   22117 	f1 = heapFloat[(r4+6)];
   22118 	if(f0 >f1) //_LBB108_58
   22119 {
   22120 __label__ = 54;
   22121 }
   22122 else{
   22123 	f0 = heapFloat[(r5+6)];
   22124 	f1 = heapFloat[(r4+2)];
   22125 	if(f0 <f1) //_LBB108_58
   22126 {
   22127 __label__ = 54;
   22128 }
   22129 else{
   22130 __label__ = 55;
   22131 }
   22132 }
   22133 }
   22134 }
   22135 }
   22136 }
   22137 }
   22138 if (__label__ == 54){
   22139 	r4 = heap32[(r1+24)];
   22140 	r5 = r4 >> 2;
   22141 	r5 = heap32[(r5)];
   22142 	r5 = r5 >> 2;
   22143 	r5 = heap32[(r5+8)];
   22144 	r9 = (r8 + r2)|0;
   22145 	r11 = r11 << 2;
   22146 	heap32[(g0)] = r4;
   22147 	heap32[(g0+1)] = r9;
   22148 	heap32[(g0+2)] = r3;
   22149 	r4 = (r8 + r11)|0;
   22150 	r4 = r4 >> 2;
   22151 	__FUNCTION_TABLE__[(r5)>>2](i7);
   22152 	r6 = (r6 + 1)|0;
   22153 	heap32[(r4)] = 0;
   22154 	heap32[(r4+1)] = 0;
   22155 }
   22156 	r7 = (r7 + 1)|0;
   22157 	r2 = (r2 + 16)|0;
   22158 	r4 = r10;
   22159 	r5 = r12;
   22160 }
   22161 else{
   22162 __label__ = 57;
   22163 break _61;
   22164 }
   22165 }
   22166 switch(__label__ ){//multiple entries
   22167 case 57:
   22168 	if(r9 >1) //_LBB108_63
   22169 {
   22170 	r9 = (r9 + -1)|0;
   22171 	heap32[(g0)] = r0;
   22172 	heap32[(g0+1)] = 0;
   22173 	heap32[(g0+2)] = r9;
   22174 	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
   22175 	r9 = heap32[(r8+1)];
   22176 }
   22177 	r1 = sp + -16;
   22178 	r2 = r1 >> 2;
   22179 	heap32[(fp+-4)] = 0;
   22180 	heap32[(r2+1)] = 0;
   22181 	heap32[(r2+2)] = 0;
   22182 	heap32[(r2+3)] = 0;
   22183 	r2 = (r9 - r6)|0;
   22184 	heap32[(g0)] = r0;
   22185 	heap32[(g0+1)] = r2;
   22186 	heap32[(g0+2)] = r1;
   22187 	_ZN20btAlignedObjectArrayI16btBroadphasePairE6resizeEiRKS0_(i7);
   22188 break;
   22189 case 53:
   22190 	r8 = _2E_str314;
   22191 	r0 = _2E_str18;
   22192 	heap32[(g0)] = r8;
   22193 	heap32[(g0+1)] = r0;
   22194 	heap32[(g0+2)] = 469;
   22195 	_assert(i7);
   22196 break;
   22197 }
   22198 }
   22199 	return;
   22200 }
   22201 
   22202 function _ZN16btDbvtBroadphase7setAabbEP17btBroadphaseProxyRK9btVector3S4_P12btDispatcher(sp)
   22203 {
   22204 	var i7;
   22205 	var fp = sp>>2;
   22206 	var r0;
   22207 	var r1;
   22208 	var r2;
   22209 	var r3;
   22210 	var r4;
   22211 	var r5;
   22212 	var r6;
   22213 	var r7;
   22214 	var r8;
   22215 	var r9;
   22216 	var r10;
   22217 	var r11;
   22218 	var r12;
   22219 	var f0;
   22220 	var f1;
   22221 	var f2;
   22222 	var f3;
   22223 	var f4;
   22224 	var f5;
   22225 	var f6;
   22226 	var f7;
   22227 	var f8;
   22228 	var f9;
   22229 	var f10;
   22230 var __label__ = 0;
   22231 	i7 = sp + -88;var g0 = i7>>2; // save stack
   22232 	r0 = heap32[(fp+2)];
   22233 	r0 = r0 >> 2;
   22234 	f0 = heapFloat[(r0)];
   22235 	r1 = sp + -32;
   22236 	heapFloat[(fp+-8)] = f0;
   22237 	f1 = heapFloat[(r0+1)];
   22238 	r2 = r1 >> 2;
   22239 	heapFloat[(r2+1)] = f1;
   22240 	f2 = heapFloat[(r0+2)];
   22241 	heapFloat[(r2+2)] = f2;
   22242 	f3 = heapFloat[(r0+3)];
   22243 	r3 = heap32[(fp+3)];
   22244 	r3 = r3 >> 2;
   22245 	heapFloat[(r2+3)] = f3;
   22246 	f4 = heapFloat[(r3)];
   22247 	heapFloat[(r2+4)] = f4;
   22248 	f5 = heapFloat[(r3+1)];
   22249 	heapFloat[(r2+5)] = f5;
   22250 	f6 = heapFloat[(r3+2)];
   22251 	heapFloat[(r2+6)] = f6;
   22252 	f7 = heapFloat[(r3+3)];
   22253 	r4 = heap32[(fp+1)];
   22254 	r5 = heap32[(fp)];
   22255 	r6 = r4 >> 2;
   22256 	heapFloat[(r2+7)] = f7;
   22257 	r7 = heap32[(r6+15)];
   22258 _1: do {
   22259 	if(r7 !=2) //_LBB109_9
   22260 {
   22261 	r2 = r5 >> 2;
   22262 	r8 = heap32[(r2+32)];
   22263 	r8 = (r8 + 1)|0;
   22264 	heap32[(r2+32)] = r8;
   22265 	r8 = heap32[(r6+12)];
   22266 	r7 = r8 >> 2;
   22267 	f8 = heapFloat[(r7)];
   22268 if(!(f8 >f4)) //_LBB109_24
   22269 {
   22270 	f8 = heapFloat[(r7+4)];
   22271 if(!(f8 <f0)) //_LBB109_24
   22272 {
   22273 	f8 = heapFloat[(r7+1)];
   22274 if(!(f8 >f5)) //_LBB109_24
   22275 {
   22276 	f8 = heapFloat[(r7+5)];
   22277 if(!(f8 <f1)) //_LBB109_24
   22278 {
   22279 	f8 = heapFloat[(r7+2)];
   22280 if(!(f8 >f6)) //_LBB109_24
   22281 {
   22282 	f8 = heapFloat[(r7+6)];
   22283 if(!(f8 <f2)) //_LBB109_24
   22284 {
   22285 	f0 = heapFloat[(r6+4)];
   22286 	f1 = heapFloat[(r6+8)];
   22287 	f1 = f1-f0;
   22288 	f2 =                       0.5;
   22289 	f3 = heapFloat[(r6+5)];
   22290 	f4 = heapFloat[(r6+9)];
   22291 	f4 = f4-f3;
   22292 	f5 = heapFloat[(r0+1)];
   22293 	f6 = heapFloat[(r0)];
   22294 	f1 = f1*f2;
   22295 	f7 = heapFloat[(r2+25)];
   22296 	f8 = heapFloat[(r0+2)];
   22297 	f9 = heapFloat[(r6+6)];
   22298 	f10 = heapFloat[(r6+10)];
   22299 	r7 = sp + -48;
   22300 	f10 = f10-f9;
   22301 	f4 = f4*f2;
   22302 	f1 = f1*f7;
   22303 	f2 = f10*f2;
   22304 	f4 = f4*f7;
   22305 	r9 = r7 >> 2;
   22306 	heapFloat[(fp+-12)] = f1;
   22307 	f2 = f2*f7;
   22308 	heapFloat[(r9+1)] = f4;
   22309 	heapFloat[(r9+2)] = f2;
   22310 	heap32[(r9+3)] = 0;
   22311 	f0 = f6-f0;
   22312 	f6 =                         0;
   22313 if(!(f0 >=f6)) //_LBB109_17
   22314 {
   22315 	f0 = -f1;
   22316 	heapFloat[(fp+-12)] = f0;
   22317 }
   22318 	f0 = f5-f3;
   22319 if(!(f0 >=f6)) //_LBB109_19
   22320 {
   22321 	f0 = -f4;
   22322 	heapFloat[(r9+1)] = f0;
   22323 }
   22324 	f0 = f8-f9;
   22325 if(!(f0 >=f6)) //_LBB109_21
   22326 {
   22327 	f0 = -f2;
   22328 	heapFloat[(r9+2)] = f0;
   22329 }
   22330 	r9 = (r5 + 4)|0;
   22331 	heap32[(g0)] = r9;
   22332 	heap32[(g0+1)] = r8;
   22333 	heap32[(g0+2)] = r1;
   22334 	heap32[(g0+3)] = r7;
   22335 	heap32[(g0+4)] = 1028443341;
   22336 	_ZN6btDbvt6updateEP10btDbvtNodeR12btDbvtAabbMmRK9btVector3f(i7);
   22337 	r8 = r_g0;
   22338 	if(r8 !=0) //_LBB109_23
   22339 {
   22340 	r7 = heap32[(r2+33)];
   22341 	r8 = 1;
   22342 	r7 = (r7 + 1)|0;
   22343 	heap32[(r2+33)] = r7;
   22344 break _1;
   22345 }
   22346 else{
   22347 	r8 = 0;
   22348 break _1;
   22349 }
   22350 }
   22351 }
   22352 }
   22353 }
   22354 }
   22355 }
   22356 	r1 = (r5 + 4)|0;
   22357 	heap32[(g0)] = r1;
   22358 	heap32[(g0+1)] = r8;
   22359 	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
   22360 	r9 = r_g0;
   22361 _23: do {
   22362 	if(r9 !=0) //_LBB109_26
   22363 {
   22364 	r11 = heap32[(r2+3)];
   22365 	if(r11 <0) //_LBB109_31
   22366 {
   22367 	r10 = heap32[(r2+1)];
   22368 }
   22369 else{
   22370 	r12 = -1;
   22371 _28: while(true){
   22372 	r10 = r9;
   22373 	r12 = (r12 + 1)|0;
   22374 	if(r11 >r12) //_LBB109_30
   22375 {
   22376 	r9 = r10 >> 2;
   22377 	r9 = heap32[(r9+8)];
   22378 	if(r9 ==0) //_LBB109_29
   22379 {
   22380 break _23;
   22381 }
   22382 }
   22383 else{
   22384 break _23;
   22385 }
   22386 }
   22387 }
   22388 }
   22389 else{
   22390 	r10 = 0;
   22391 }
   22392 } while(0);
   22393 	heapFloat[(r7)] = f0;
   22394 	heapFloat[(r7+1)] = f1;
   22395 	heapFloat[(r7+2)] = f2;
   22396 	heapFloat[(r7+3)] = f3;
   22397 	heapFloat[(r7+4)] = f4;
   22398 	heapFloat[(r7+5)] = f5;
   22399 	heapFloat[(r7+6)] = f6;
   22400 	heapFloat[(r7+7)] = f7;
   22401 	heap32[(g0)] = r1;
   22402 	heap32[(g0+1)] = r10;
   22403 	heap32[(g0+2)] = r8;
   22404 	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
   22405 	r1 = heap32[(r2+33)];
   22406 	r8 = 1;
   22407 	r1 = (r1 + 1)|0;
   22408 	heap32[(r2+33)] = r1;
   22409 }
   22410 else{
   22411 	r1 = heap32[(r6+12)];
   22412 	r7 = (r5 + 44)|0;
   22413 	heap32[(g0)] = r7;
   22414 	heap32[(g0+1)] = r1;
   22415 	r7 = r5 >> 2;
   22416 	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
   22417 	r8 = heap32[(r7+12)];
   22418 if(!(r8 ==0)) //_LBB109_3
   22419 {
   22420 	r9 = gNumAlignedFree;
   22421 	r9 = r9 >> 2;
   22422 	r10 = heap32[(r9)];
   22423 	r10 = (r10 + 1)|0;
   22424 	r8 = r8 >> 2;
   22425 	heap32[(r9)] = r10;
   22426 	r8 = heap32[(r8+-1)];
   22427 	heap32[(g0)] = r8;
   22428 	free(i7);
   22429 }
   22430 	heap32[(r7+12)] = r1;
   22431 	r1 = heap32[(r7+14)];
   22432 	r1 = (r1 + -1)|0;
   22433 	heap32[(r7+14)] = r1;
   22434 	r1 = heap32[(r7+2)];
   22435 	r8 = (r5 + 4)|0;
   22436 	if(r1 ==0) //_LBB109_5
   22437 {
   22438 	r1 = gNumAlignedAllocs;
   22439 	r1 = r1 >> 2;
   22440 	r9 = heap32[(r1)];
   22441 	r9 = (r9 + 1)|0;
   22442 	heap32[(r1)] = r9;
   22443 	heap32[(g0)] = 63;
   22444 	malloc(i7);
   22445 	r1 = r_g0;
   22446 	if(r1 !=0) //_LBB109_7
   22447 {
   22448 	r9 = 0;
   22449 	r10 = (r1 + 4)|0;
   22450 	r9 = (r9 - r10)|0;
   22451 	r9 = r9 & 15;
   22452 	r9 = (r1 + r9)|0;
   22453 	r10 = (r9 + 4)|0;
   22454 	r9 = r9 >> 2;
   22455 	heap32[(r9)] = r1;
   22456 	r1 = r10;
   22457 }
   22458 }
   22459 else{
   22460 	heap32[(r7+2)] = 0;
   22461 }
   22462 	r9 = r1 >> 2;
   22463 	heap32[(r9+8)] = 0;
   22464 	heap32[(r9+9)] = r4;
   22465 	heap32[(r9+10)] = 0;
   22466 	heap32[(r9)] = heap32[(fp+-8)];
   22467 	heap32[(r9+1)] = heap32[(r2+1)];
   22468 	heap32[(r9+2)] = heap32[(r2+2)];
   22469 	heap32[(r9+3)] = heap32[(r2+3)];
   22470 	heapFloat[(r9+4)] = f4;
   22471 	heapFloat[(r9+5)] = f5;
   22472 	heapFloat[(r9+6)] = f6;
   22473 	heapFloat[(r9+7)] = f7;
   22474 	r2 = heap32[(r7+1)];
   22475 	heap32[(g0)] = r8;
   22476 	heap32[(g0+1)] = r2;
   22477 	heap32[(g0+2)] = r1;
   22478 	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
   22479 	r2 = heap32[(r7+4)];
   22480 	r2 = (r2 + 1)|0;
   22481 	r8 = 1;
   22482 	heap32[(r7+4)] = r2;
   22483 	heap32[(r6+12)] = r1;
   22484 }
   22485 } while(0);
   22486 	r1 = heap32[(r6+13)];
   22487 	r2 = heap32[(r6+14)];
   22488 	if(r1 ==0) //_LBB109_35
   22489 {
   22490 	r1 = heap32[(r6+15)];
   22491 	r1 = r1 << 2;
   22492 	r1 = (r5 + r1)|0;
   22493 	r1 = r1 >> 2;
   22494 	heap32[(r1+21)] = r2;
   22495 }
   22496 else{
   22497 	r1 = r1 >> 2;
   22498 	heap32[(r1+14)] = r2;
   22499 }
   22500 	r1 = heap32[(r6+14)];
   22501 if(!(r1 ==0)) //_LBB109_38
   22502 {
   22503 	r1 = r1 >> 2;
   22504 	r2 = heap32[(r6+13)];
   22505 	heap32[(r1+13)] = r2;
   22506 }
   22507 	heap32[(r6+4)] = heap32[(r0)];
   22508 	heap32[(r6+5)] = heap32[(r0+1)];
   22509 	heap32[(r6+6)] = heap32[(r0+2)];
   22510 	heap32[(r6+7)] = heap32[(r0+3)];
   22511 	heap32[(r6+8)] = heap32[(r3)];
   22512 	heap32[(r6+9)] = heap32[(r3+1)];
   22513 	heap32[(r6+10)] = heap32[(r3+2)];
   22514 	r0 = r5 >> 2;
   22515 	heap32[(r6+11)] = heap32[(r3+3)];
   22516 	r1 = heap32[(r0+26)];
   22517 	heap32[(r6+15)] = r1;
   22518 	r1 = heap32[(r0+26)];
   22519 	r1 = r1 << 2;
   22520 	r1 = (r5 + r1)|0;
   22521 	r1 = r1 >> 2;
   22522 	heap32[(r6+13)] = 0;
   22523 	r2 = heap32[(r1+21)];
   22524 	heap32[(r6+14)] = r2;
   22525 	r2 = heap32[(r1+21)];
   22526 if(!(r2 ==0)) //_LBB109_40
   22527 {
   22528 	r2 = r2 >> 2;
   22529 	heap32[(r2+13)] = r4;
   22530 }
   22531 	r2 = r8 & 1;
   22532 	heap32[(r1+21)] = r4;
   22533 if(!(r2 ==0)) //_LBB109_43
   22534 {
   22535 	r1 = 1;
   22536 	heap8[r5+154] = r1;
   22537 	r1 = heapU8[r5+153];
   22538 if(!(r1 !=0)) //_LBB109_43
   22539 {
   22540 	r1 = _ZTV18btDbvtTreeCollider;
   22541 	r2 = sp + -64;
   22542 	r1 = (r1 + 8)|0;
   22543 	r3 = r2 >> 2;
   22544 	heap32[(fp+-16)] = r1;
   22545 	heap32[(r3+1)] = r5;
   22546 	r1 = heap32[(r6+12)];
   22547 	r3 = heap32[(r0+11)];
   22548 	r4 = (r5 + 44)|0;
   22549 	heap32[(g0)] = r4;
   22550 	heap32[(g0+1)] = r3;
   22551 	heap32[(g0+2)] = r1;
   22552 	heap32[(g0+3)] = r2;
   22553 	_ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7);
   22554 	r1 = heap32[(r6+12)];
   22555 	r0 = heap32[(r0+1)];
   22556 	r3 = (r5 + 4)|0;
   22557 	heap32[(g0)] = r3;
   22558 	heap32[(g0+1)] = r0;
   22559 	heap32[(g0+2)] = r1;
   22560 	heap32[(g0+3)] = r2;
   22561 	_ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7);
   22562 }
   22563 }
   22564 	return;
   22565 }
   22566 
   22567 function _ZN16btDbvtBroadphaseD0Ev(sp)
   22568 {
   22569 	var i7;
   22570 	var fp = sp>>2;
   22571 	var r0;
   22572 	var r1;
   22573 	var r2;
   22574 	var r3;
   22575 	var r4;
   22576 	var r5;
   22577 	var r6;
   22578 	var r7;
   22579 var __label__ = 0;
   22580 	i7 = sp + -8;var g0 = i7>>2; // save stack
   22581 	r0 = heap32[(fp)];
   22582 	r1 = _ZTV16btDbvtBroadphase;
   22583 	r2 = r0 >> 2;
   22584 	r1 = (r1 + 8)|0;
   22585 	heap32[(r2)] = r1;
   22586 	r1 = heapU8[r0+152];
   22587 if(!(r1 ==0)) //_LBB110_3
   22588 {
   22589 	r1 = heap32[(r2+24)];
   22590 	r3 = r1 >> 2;
   22591 	r3 = heap32[(r3)];
   22592 	r3 = r3 >> 2;
   22593 	r3 = heap32[(r3)];
   22594 	heap32[(g0)] = r1;
   22595 	__FUNCTION_TABLE__[(r3)>>2](i7);
   22596 	r1 = heap32[(r2+24)];
   22597 if(!(r1 ==0)) //_LBB110_3
   22598 {
   22599 	r2 = gNumAlignedFree;
   22600 	r2 = r2 >> 2;
   22601 	r3 = heap32[(r2)];
   22602 	r3 = (r3 + 1)|0;
   22603 	r1 = r1 >> 2;
   22604 	heap32[(r2)] = r3;
   22605 	r1 = heap32[(r1+-1)];
   22606 	heap32[(g0)] = r1;
   22607 	free(i7);
   22608 }
   22609 }
   22610 	r1 = (r0 + 4)|0;
   22611 if(!(r1 ==0)) //_LBB110_15
   22612 {
   22613 	r2 = (r1 + 80)|0;
   22614 if(!(r2 ==r1)) //_LBB110_15
   22615 {
   22616 	r1 = (r0 + 44)|0;
   22617 	r2 = 0;
   22618 _8: while(true){
   22619 	r3 = (r0 + r2)|0;
   22620 	r4 = r3 >> 2;
   22621 	r5 = heap32[(r4+11)];
   22622 if(!(r5 ==0)) //_LBB110_8
   22623 {
   22624 	r6 = (r1 + r2)|0;
   22625 	heap32[(g0)] = r6;
   22626 	heap32[(g0+1)] = r5;
   22627 	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
   22628 }
   22629 	r5 = heap32[(r4+12)];
   22630 if(!(r5 ==0)) //_LBB110_10
   22631 {
   22632 	r6 = gNumAlignedFree;
   22633 	r6 = r6 >> 2;
   22634 	r7 = heap32[(r6)];
   22635 	r7 = (r7 + 1)|0;
   22636 	r5 = r5 >> 2;
   22637 	heap32[(r6)] = r7;
   22638 	r5 = heap32[(r5+-1)];
   22639 	heap32[(g0)] = r5;
   22640 	free(i7);
   22641 }
   22642 	heap32[(r4+12)] = 0;
   22643 	heap32[(r4+13)] = -1;
   22644 	r5 = heap32[(r4+19)];
   22645 if(!(r5 ==0)) //_LBB110_14
   22646 {
   22647 	r6 = heapU8[r3+80];
   22648 if(!(r6 ==0)) //_LBB110_13
   22649 {
   22650 	r6 = gNumAlignedFree;
   22651 	r6 = r6 >> 2;
   22652 	r7 = heap32[(r6)];
   22653 	r7 = (r7 + 1)|0;
   22654 	r5 = r5 >> 2;
   22655 	heap32[(r6)] = r7;
   22656 	r5 = heap32[(r5+-1)];
   22657 	heap32[(g0)] = r5;
   22658 	free(i7);
   22659 }
   22660 	heap32[(r4+19)] = 0;
   22661 }
   22662 	r5 = 1;
   22663 	heap32[(r4+15)] = 0;
   22664 	heap8[r3+80] = r5;
   22665 	heap32[(r4+19)] = 0;
   22666 	r2 = (r2 + -40)|0;
   22667 	heap32[(r4+17)] = 0;
   22668 	heap32[(r4+18)] = 0;
   22669 	if(r2 !=-80) //_LBB110_6
   22670 {
   22671 continue _8;
   22672 }
   22673 else{
   22674 break _8;
   22675 }
   22676 }
   22677 }
   22678 }
   22679 	heap32[(g0)] = r0;
   22680 	_ZdlPv(i7);
   22681 	return;
   22682 }
   22683 
   22684 function _ZN16btDbvtBroadphaseD1Ev(sp)
   22685 {
   22686 	var i7;
   22687 	var fp = sp>>2;
   22688 	var r0;
   22689 	var r1;
   22690 	var r2;
   22691 	var r3;
   22692 	var r4;
   22693 	var r5;
   22694 	var r6;
   22695 	var r7;
   22696 var __label__ = 0;
   22697 	i7 = sp + -8;var g0 = i7>>2; // save stack
   22698 	r0 = heap32[(fp)];
   22699 	r1 = _ZTV16btDbvtBroadphase;
   22700 	r2 = r0 >> 2;
   22701 	r1 = (r1 + 8)|0;
   22702 	heap32[(r2)] = r1;
   22703 	r1 = heapU8[r0+152];
   22704 if(!(r1 ==0)) //_LBB111_3
   22705 {
   22706 	r1 = heap32[(r2+24)];
   22707 	r3 = r1 >> 2;
   22708 	r3 = heap32[(r3)];
   22709 	r3 = r3 >> 2;
   22710 	r3 = heap32[(r3)];
   22711 	heap32[(g0)] = r1;
   22712 	__FUNCTION_TABLE__[(r3)>>2](i7);
   22713 	r1 = heap32[(r2+24)];
   22714 if(!(r1 ==0)) //_LBB111_3
   22715 {
   22716 	r2 = gNumAlignedFree;
   22717 	r2 = r2 >> 2;
   22718 	r3 = heap32[(r2)];
   22719 	r3 = (r3 + 1)|0;
   22720 	r1 = r1 >> 2;
   22721 	heap32[(r2)] = r3;
   22722 	r1 = heap32[(r1+-1)];
   22723 	heap32[(g0)] = r1;
   22724 	free(i7);
   22725 }
   22726 }
   22727 	r1 = (r0 + 4)|0;
   22728 if(!(r1 ==0)) //_LBB111_15
   22729 {
   22730 	r2 = (r1 + 80)|0;
   22731 if(!(r2 ==r1)) //_LBB111_15
   22732 {
   22733 	r1 = (r0 + 44)|0;
   22734 	r2 = 0;
   22735 _8: while(true){
   22736 	r3 = (r0 + r2)|0;
   22737 	r4 = r3 >> 2;
   22738 	r5 = heap32[(r4+11)];
   22739 if(!(r5 ==0)) //_LBB111_8
   22740 {
   22741 	r6 = (r1 + r2)|0;
   22742 	heap32[(g0)] = r6;
   22743 	heap32[(g0+1)] = r5;
   22744 	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
   22745 }
   22746 	r5 = heap32[(r4+12)];
   22747 if(!(r5 ==0)) //_LBB111_10
   22748 {
   22749 	r6 = gNumAlignedFree;
   22750 	r6 = r6 >> 2;
   22751 	r7 = heap32[(r6)];
   22752 	r7 = (r7 + 1)|0;
   22753 	r5 = r5 >> 2;
   22754 	heap32[(r6)] = r7;
   22755 	r5 = heap32[(r5+-1)];
   22756 	heap32[(g0)] = r5;
   22757 	free(i7);
   22758 }
   22759 	heap32[(r4+12)] = 0;
   22760 	heap32[(r4+13)] = -1;
   22761 	r5 = heap32[(r4+19)];
   22762 if(!(r5 ==0)) //_LBB111_14
   22763 {
   22764 	r6 = heapU8[r3+80];
   22765 if(!(r6 ==0)) //_LBB111_13
   22766 {
   22767 	r6 = gNumAlignedFree;
   22768 	r6 = r6 >> 2;
   22769 	r7 = heap32[(r6)];
   22770 	r7 = (r7 + 1)|0;
   22771 	r5 = r5 >> 2;
   22772 	heap32[(r6)] = r7;
   22773 	r5 = heap32[(r5+-1)];
   22774 	heap32[(g0)] = r5;
   22775 	free(i7);
   22776 }
   22777 	heap32[(r4+19)] = 0;
   22778 }
   22779 	r5 = 1;
   22780 	heap32[(r4+15)] = 0;
   22781 	heap8[r3+80] = r5;
   22782 	heap32[(r4+19)] = 0;
   22783 	r2 = (r2 + -40)|0;
   22784 	heap32[(r4+17)] = 0;
   22785 	heap32[(r4+18)] = 0;
   22786 	if(r2 !=-80) //_LBB111_6
   22787 {
   22788 continue _8;
   22789 }
   22790 else{
   22791 break _8;
   22792 }
   22793 }
   22794 }
   22795 }
   22796 	return;
   22797 }
   22798 
   22799 function _ZN12btDispatcherD0Ev(sp)
   22800 {
   22801 	var i7;
   22802 	var fp = sp>>2;
   22803 	var r0;
   22804 	var r1;
   22805 	var r2;
   22806 var __label__ = 0;
   22807 	i7 = sp + -8;var g0 = i7>>2; // save stack
   22808 	r0 = heap32[(fp)];
   22809 	r1 = _ZTV12btDispatcher;
   22810 	r2 = r0 >> 2;
   22811 	r1 = (r1 + 8)|0;
   22812 	heap32[(r2)] = r1;
   22813 	heap32[(g0)] = r0;
   22814 	_ZdlPv(i7);
   22815 	return;
   22816 }
   22817 
   22818 function _ZN12btDispatcherD1Ev(sp)
   22819 {
   22820 	var i7;
   22821 	var fp = sp>>2;
   22822 	var r0;
   22823 	var r1;
   22824 var __label__ = 0;
   22825 	i7 = sp + 0;var g0 = i7>>2; // save stack
   22826 	r0 = heap32[(fp)];
   22827 	r1 = _ZTV12btDispatcher;
   22828 	r0 = r0 >> 2;
   22829 	r1 = (r1 + 8)|0;
   22830 	heap32[(r0)] = r1;
   22831 	return;
   22832 }
   22833 
   22834 function _ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(sp)
   22835 {
   22836 	var i7;
   22837 	var fp = sp>>2;
   22838 	var r0;
   22839 	var r1;
   22840 	var r2;
   22841 	var r3;
   22842 	var f0;
   22843 	var f1;
   22844 	var f2;
   22845 	var f3;
   22846 	var f4;
   22847 	var f5;
   22848 var __label__ = 0;
   22849 	i7 = sp + -16;var g0 = i7>>2; // save stack
   22850 	r0 = heap32[(fp)];
   22851 	r1 = heapU8[r0+60];
   22852 	if(r1 !=0) //_LBB114_2
   22853 {
   22854 	r1 = heap32[(fp+2)];
   22855 	r1 = r1 >> 2;
   22856 	f0 = heapFloat[(r1)];
   22857 	r0 = r0 >> 2;
   22858 	f1 = heapFloat[(r0+5)];
   22859 	if(f0 <=f1) //_LBB114_4
   22860 {
   22861 	f1 = heapFloat[(r1+1)];
   22862 	f2 = heapFloat[(r0+6)];
   22863 	if(f1 <=f2) //_LBB114_6
   22864 {
   22865 	f2 = heapFloat[(r1+2)];
   22866 	f3 = heapFloat[(r0+7)];
   22867 	if(f2 <=f3) //_LBB114_8
   22868 {
   22869 	f3 = heapFloat[(r0+1)];
   22870 	if(f0 >=f3) //_LBB114_10
   22871 {
   22872 	f4 = heapFloat[(r0+2)];
   22873 	if(f1 >=f4) //_LBB114_12
   22874 {
   22875 	f5 = heapFloat[(r0+3)];
   22876 	if(f2 >=f5) //_LBB114_14
   22877 {
   22878 	r1 = heap32[(fp+1)];
   22879 	r2 = heap32[(fp+3)];
   22880 	f2 = f2-f5;
   22881 	f5 = heapFloat[(r0+11)];
   22882 	f1 = f1-f4;
   22883 	f4 = heapFloat[(r0+10)];
   22884 	f0 = f0-f3;
   22885 	f3 = heapFloat[(r0+9)];
   22886 	f2 = f2*f5;
   22887 	f1 = f1*f4;
   22888 	f0 = f0*f3;
   22889 	if(r2 ==0) //_LBB114_16
   22890 {
   22891 	r0 = Math.floor(f0);
   22892 	r2 = Math.floor(f1);
   22893 	r0 = r0 & 65534;
   22894 	r3 = Math.floor(f2);
   22895 	r2 = r2 & 65534;
   22896 	heap16[(r1)>>1] = r0;
   22897 	r0 = r3 & 65534;
   22898 }
   22899 else{
   22900 	f3 =                         1;
   22901 	f0 = f0+f3;
   22902 	f1 = f1+f3;
   22903 	r0 = Math.floor(f0);
   22904 	f0 = f2+f3;
   22905 	r2 = Math.floor(f1);
   22906 	r0 = r0 | 1;
   22907 	r3 = Math.floor(f0);
   22908 	r2 = r2 | 1;
   22909 	heap16[(r1)>>1] = r0;
   22910 	r0 = r3 | 1;
   22911 }
   22912 	heap16[(r1+2)>>1] = r2;
   22913 	heap16[(r1+4)>>1] = r0;
   22914 	return;
   22915 }
   22916 else{
   22917 	r0 = _2E_str9;
   22918 	r1 = _2E_str313;
   22919 	heap32[(g0)] = r0;
   22920 	heap32[(g0+1)] = r1;
   22921 	heap32[(g0+2)] = 361;
   22922 	_assert(i7);
   22923 }
   22924 }
   22925 else{
   22926 	r0 = _2E_str820;
   22927 	r1 = _2E_str313;
   22928 	heap32[(g0)] = r0;
   22929 	heap32[(g0+1)] = r1;
   22930 	heap32[(g0+2)] = 360;
   22931 	_assert(i7);
   22932 }
   22933 }
   22934 else{
   22935 	r0 = _2E_str717;
   22936 	r1 = _2E_str313;
   22937 	heap32[(g0)] = r0;
   22938 	heap32[(g0+1)] = r1;
   22939 	heap32[(g0+2)] = 359;
   22940 	_assert(i7);
   22941 }
   22942 }
   22943 else{
   22944 	r0 = _2E_str616;
   22945 	r1 = _2E_str313;
   22946 	heap32[(g0)] = r0;
   22947 	heap32[(g0+1)] = r1;
   22948 	heap32[(g0+2)] = 357;
   22949 	_assert(i7);
   22950 }
   22951 }
   22952 else{
   22953 	r0 = _2E_str515;
   22954 	r1 = _2E_str313;
   22955 	heap32[(g0)] = r0;
   22956 	heap32[(g0+1)] = r1;
   22957 	heap32[(g0+2)] = 356;
   22958 	_assert(i7);
   22959 }
   22960 }
   22961 else{
   22962 	r0 = _2E_str414;
   22963 	r1 = _2E_str313;
   22964 	heap32[(g0)] = r0;
   22965 	heap32[(g0+1)] = r1;
   22966 	heap32[(g0+2)] = 355;
   22967 	_assert(i7);
   22968 }
   22969 }
   22970 else{
   22971 	r0 = _2E_str212;
   22972 	r1 = _2E_str313;
   22973 	heap32[(g0)] = r0;
   22974 	heap32[(g0+1)] = r1;
   22975 	heap32[(g0+2)] = 353;
   22976 	_assert(i7);
   22977 }
   22978 }
   22979 
   22980 function _ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(sp)
   22981 {
   22982 	var i7;
   22983 	var fp = sp>>2;
   22984 	var r0;
   22985 	var r1;
   22986 	var r2;
   22987 	var r3;
   22988 	var r4;
   22989 	var r5;
   22990 	var r6;
   22991 	var r7;
   22992 	var r8;
   22993 	var r9;
   22994 	var r10;
   22995 var __label__ = 0;
   22996 	i7 = sp + -8;var g0 = i7>>2; // save stack
   22997 	r0 = heap32[(fp)];
   22998 	r1 = heap32[(fp+1)];
   22999 	r2 = r0 >> 2;
   23000 	r3 = heap32[(r2+2)];
   23001 if(!(r3 >=r1)) //_LBB115_16
   23002 {
   23003 	if(r1 !=0) //_LBB115_3
   23004 {
   23005 	r3 = gNumAlignedAllocs;
   23006 	r3 = r3 >> 2;
   23007 	r4 = heap32[(r3)];
   23008 	r5 = r1 << 4;
   23009 	r4 = (r4 + 1)|0;
   23010 	r5 = r5 | 3;
   23011 	heap32[(r3)] = r4;
   23012 	r3 = (r5 + 16)|0;
   23013 	heap32[(g0)] = r3;
   23014 	malloc(i7);
   23015 	r3 = r_g0;
   23016 	if(r3 !=0) //_LBB115_5
   23017 {
   23018 	r4 = 0;
   23019 	r5 = (r3 + 4)|0;
   23020 	r4 = (r4 - r5)|0;
   23021 	r4 = r4 & 15;
   23022 	r4 = (r3 + r4)|0;
   23023 	r5 = (r4 + 4)|0;
   23024 	r4 = r4 >> 2;
   23025 	heap32[(r4)] = r3;
   23026 	r3 = r5;
   23027 }
   23028 }
   23029 else{
   23030 	r3 = 0;
   23031 }
   23032 	r4 = heap32[(r2+1)];
   23033 	r5 = (r0 + 12)|0;
   23034 	if(r4 <1) //_LBB115_8
   23035 {
   23036 	r4 = r5 >> 2;
   23037 	r7 = heap32[(r4)];
   23038 }
   23039 else{
   23040 	r6 = 0;
   23041 _11: while(true){
   23042 	r7 = r5 >> 2;
   23043 	r7 = heap32[(r7)];
   23044 	r8 = r6 << 4;
   23045 	r9 = heapU16[(r7+r8)>>1];
   23046 	r10 = (r7 + r8)|0;
   23047 	heap16[(r3+r8)>>1] = r9;
   23048 	r8 = (r3 + r8)|0;
   23049 	r9 = heapU16[(r10+2)>>1];
   23050 	heap16[(r8+2)>>1] = r9;
   23051 	r9 = heapU16[(r10+4)>>1];
   23052 	heap16[(r8+4)>>1] = r9;
   23053 	r9 = heapU16[(r10+6)>>1];
   23054 	heap16[(r8+6)>>1] = r9;
   23055 	r9 = heapU16[(r10+8)>>1];
   23056 	heap16[(r8+8)>>1] = r9;
   23057 	r9 = heapU16[(r10+10)>>1];
   23058 	r10 = r10 >> 2;
   23059 	heap16[(r8+10)>>1] = r9;
   23060 	r6 = (r6 + 1)|0;
   23061 	r8 = r8 >> 2;
   23062 	r9 = heap32[(r10+3)];
   23063 	heap32[(r8+3)] = r9;
   23064 if(!(r4 !=r6)) //_LBB115_9
   23065 {
   23066 break _11;
   23067 }
   23068 }
   23069 	r5 = (r0 + 12)|0;
   23070 }
   23071 if(!(r7 ==0)) //_LBB115_15
   23072 {
   23073 	r4 = heapU8[r0+16];
   23074 if(!(r4 ==0)) //_LBB115_14
   23075 {
   23076 	r4 = gNumAlignedFree;
   23077 	r4 = r4 >> 2;
   23078 	r6 = heap32[(r4)];
   23079 	r6 = (r6 + 1)|0;
   23080 	r7 = r7 >> 2;
   23081 	heap32[(r4)] = r6;
   23082 	r4 = heap32[(r7+-1)];
   23083 	heap32[(g0)] = r4;
   23084 	free(i7);
   23085 }
   23086 	r4 = r5 >> 2;
   23087 	heap32[(r4)] = 0;
   23088 }
   23089 	r4 = 1;
   23090 	r5 = r5 >> 2;
   23091 	heap8[r0+16] = r4;
   23092 	heap32[(r5)] = r3;
   23093 	heap32[(r2+2)] = r1;
   23094 }
   23095 	return;
   23096 }
   23097 
   23098 function _ZN28btHashedOverlappingPairCache23getOverlappingPairArrayEv(sp)
   23099 {
   23100 	var i7;
   23101 	var fp = sp>>2;
   23102 	var r0;
   23103 var __label__ = 0;
   23104 	i7 = sp + 0;var g0 = i7>>2; // save stack
   23105 	r0 = heap32[(fp)];
   23106 	r0 = (r0 + 4)|0;
   23107 	r_g0 = r0;
   23108 	return;
   23109 }
   23110 
   23111 function _ZN28btHashedOverlappingPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback(sp)
   23112 {
   23113 	var i7;
   23114 	var fp = sp>>2;
   23115 	var r0;
   23116 	var r1;
   23117 var __label__ = 0;
   23118 	i7 = sp + 0;var g0 = i7>>2; // save stack
   23119 	r0 = heap32[(fp)];
   23120 	r0 = r0 >> 2;
   23121 	r1 = heap32[(fp+1)];
   23122 	heap32[(r0+6)] = r1;
   23123 	return;
   23124 }
   23125 
   23126 function _ZN28btHashedOverlappingPairCache18hasDeferredRemovalEv(sp)
   23127 {
   23128 	var i7;
   23129 	var fp = sp>>2;
   23130 	var r0;
   23131 var __label__ = 0;
   23132 	i7 = sp + 0;var g0 = i7>>2; // save stack
   23133 	r0 = 0;
   23134 	r_g0 = r0;
   23135 	return;
   23136 }
   23137 
   23138 function _ZN28btHashedOverlappingPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback(sp)
   23139 {
   23140 	var i7;
   23141 	var fp = sp>>2;
   23142 	var r0;
   23143 	var r1;
   23144 var __label__ = 0;
   23145 	i7 = sp + 0;var g0 = i7>>2; // save stack
   23146 	r0 = heap32[(fp)];
   23147 	r0 = r0 >> 2;
   23148 	r1 = heap32[(fp+1)];
   23149 	heap32[(r0+18)] = r1;
   23150 	return;
   23151 }
   23152 
   23153 function _ZN28btHashedOverlappingPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher(sp)
   23154 {
   23155 	var i7;
   23156 	var fp = sp>>2;
   23157 	var r0;
   23158 	var r1;
   23159 	var r2;
   23160 	var r3;
   23161 var __label__ = 0;
   23162 	i7 = sp + -8;var g0 = i7>>2; // save stack
   23163 	r0 = heap32[(fp+1)];
   23164 	r0 = r0 >> 2;
   23165 	r1 = heap32[(r0+2)];
   23166 if(!(r1 ==0)) //_LBB120_2
   23167 {
   23168 	r2 = heap32[(fp+2)];
   23169 	r3 = r1 >> 2;
   23170 	r3 = heap32[(r3)];
   23171 	r3 = r3 >> 2;
   23172 	r3 = heap32[(r3)];
   23173 	heap32[(g0)] = r1;
   23174 	__FUNCTION_TABLE__[(r3)>>2](i7);
   23175 	r1 = r2 >> 2;
   23176 	r1 = heap32[(r1)];
   23177 	r1 = r1 >> 2;
   23178 	r1 = heap32[(r1+13)];
   23179 	r3 = heap32[(r0+2)];
   23180 	heap32[(g0)] = r2;
   23181 	heap32[(g0+1)] = r3;
   23182 	__FUNCTION_TABLE__[(r1)>>2](i7);
   23183 	heap32[(r0+2)] = 0;
   23184 }
   23185 	return;
   23186 }
   23187 
   23188 function _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD1Ev(sp)
   23189 {
   23190 	var i7;
   23191 	var fp = sp>>2;
   23192 	var r0;
   23193 	var r1;
   23194 var __label__ = 0;
   23195 	i7 = sp + 0;var g0 = i7>>2; // save stack
   23196 	r0 = heap32[(fp)];
   23197 	r1 = _ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback;
   23198 	r0 = r0 >> 2;
   23199 	r1 = (r1 + 8)|0;
   23200 	heap32[(r0)] = r1;
   23201 	return;
   23202 }
   23203 
   23204 function _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD0Ev(sp)
   23205 {
   23206 	var i7;
   23207 	var fp = sp>>2;
   23208 	var r0;
   23209 	var r1;
   23210 	var r2;
   23211 var __label__ = 0;
   23212 	i7 = sp + -8;var g0 = i7>>2; // save stack
   23213 	r0 = heap32[(fp)];
   23214 	r1 = _ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback;
   23215 	r2 = r0 >> 2;
   23216 	r1 = (r1 + 8)|0;
   23217 	heap32[(r2)] = r1;
   23218 	heap32[(g0)] = r0;
   23219 	_ZdlPv(i7);
   23220 	return;
   23221 }
   23222 
   23223 function _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallback14processOverlapER16btBroadphasePair(sp)
   23224 {
   23225 	var i7;
   23226 	var fp = sp>>2;
   23227 	var r0;
   23228 	var r1;
   23229 	var r2;
   23230 	var r3;
   23231 	var r4;
   23232 var __label__ = 0;
   23233 	i7 = sp + -16;var g0 = i7>>2; // save stack
   23234 	r0 = heap32[(fp)];
   23235 	r0 = r0 >> 2;
   23236 	r1 = heap32[(fp+1)];
   23237 	r2 = heap32[(r0+1)];
   23238 	r3 = r1 >> 2;
   23239 	r4 = heap32[(r3)];
   23240 	if(r4 ==r2) //_LBB123_2
   23241 {
   23242 __label__ = 2;
   23243 }
   23244 else{
   23245 	r3 = heap32[(r3+1)];
   23246 	if(r3 !=r2) //_LBB123_3
   23247 {
   23248 __label__ = 3;
   23249 }
   23250 else{
   23251 __label__ = 2;
   23252 }
   23253 }
   23254 if (__label__ == 2){
   23255 	r2 = heap32[(r0+2)];
   23256 	r3 = r2 >> 2;
   23257 	r3 = heap32[(r3)];
   23258 	r3 = r3 >> 2;
   23259 	r3 = heap32[(r3+8)];
   23260 	r0 = heap32[(r0+3)];
   23261 	heap32[(g0)] = r2;
   23262 	heap32[(g0+1)] = r1;
   23263 	heap32[(g0+2)] = r0;
   23264 	__FUNCTION_TABLE__[(r3)>>2](i7);
   23265 }
   23266 	r0 = 0;
   23267 	r_g0 = r0;
   23268 	return;
   23269 }
   23270 
   23271 function _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD1Ev(sp)
   23272 {
   23273 	var i7;
   23274 	var fp = sp>>2;
   23275 	var r0;
   23276 	var r1;
   23277 var __label__ = 0;
   23278 	i7 = sp + 0;var g0 = i7>>2; // save stack
   23279 	r0 = heap32[(fp)];
   23280 	r1 = _ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback;
   23281 	r0 = r0 >> 2;
   23282 	r1 = (r1 + 8)|0;
   23283 	heap32[(r0)] = r1;
   23284 	return;
   23285 }
   23286 
   23287 function _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD0Ev(sp)
   23288 {
   23289 	var i7;
   23290 	var fp = sp>>2;
   23291 	var r0;
   23292 	var r1;
   23293 	var r2;
   23294 var __label__ = 0;
   23295 	i7 = sp + -8;var g0 = i7>>2; // save stack
   23296 	r0 = heap32[(fp)];
   23297 	r1 = _ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback;
   23298 	r2 = r0 >> 2;
   23299 	r1 = (r1 + 8)|0;
   23300 	heap32[(r2)] = r1;
   23301 	heap32[(g0)] = r0;
   23302 	_ZdlPv(i7);
   23303 	return;
   23304 }
   23305 
   23306 function _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallback14processOverlapER16btBroadphasePair(sp)
   23307 {
   23308 	var i7;
   23309 	var fp = sp>>2;
   23310 	var r0;
   23311 	var r1;
   23312 	var r2;
   23313 var __label__ = 0;
   23314 	i7 = sp + 0;var g0 = i7>>2; // save stack
   23315 	r0 = heap32[(fp)];
   23316 	r0 = r0 >> 2;
   23317 	r1 = heap32[(fp+1)];
   23318 	r0 = heap32[(r0+1)];
   23319 	r1 = r1 >> 2;
   23320 	r2 = heap32[(r1)];
   23321 	if(r2 ==r0) //_LBB126_2
   23322 {
   23323 	r0 = 1;
   23324 	r_g0 = r0;
   23325 	return;
   23326 }
   23327 else{
   23328 	r1 = heap32[(r1+1)];
   23329 	r0 = r1 == r0;
   23330 	r0 = r0 & 1;
   23331 	r_g0 = r0;
   23332 	return;
   23333 }
   23334 }
   23335 
   23336 function _ZN28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv(sp)
   23337 {
   23338 	var i7;
   23339 	var fp = sp>>2;
   23340 	var r0;
   23341 var __label__ = 0;
   23342 	i7 = sp + 0;var g0 = i7>>2; // save stack
   23343 	r0 = heap32[(fp)];
   23344 	r0 = r0 >> 2;
   23345 	r0 = heap32[(r0+4)];
   23346 	r_g0 = r0;
   23347 	return;
   23348 }
   23349 
   23350 function _ZNK28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv(sp)
   23351 {
   23352 	var i7;
   23353 	var fp = sp>>2;
   23354 	var r0;
   23355 var __label__ = 0;
   23356 	i7 = sp + 0;var g0 = i7>>2; // save stack
   23357 	r0 = heap32[(fp)];
   23358 	r0 = r0 >> 2;
   23359 	r0 = heap32[(r0+4)];
   23360 	r_g0 = r0;
   23361 	return;
   23362 }
   23363 
   23364 function _ZNK28btHashedOverlappingPairCache22getNumOverlappingPairsEv(sp)
   23365 {
   23366 	var i7;
   23367 	var fp = sp>>2;
   23368 	var r0;
   23369 var __label__ = 0;
   23370 	i7 = sp + 0;var g0 = i7>>2; // save stack
   23371 	r0 = heap32[(fp)];
   23372 	r0 = r0 >> 2;
   23373 	r0 = heap32[(r0+2)];
   23374 	r_g0 = r0;
   23375 	return;
   23376 }
   23377 
   23378 function _ZN28btHashedOverlappingPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher(sp)
   23379 {
   23380 	var i7;
   23381 	var fp = sp>>2;
   23382 	var r0;
   23383 	var r1;
   23384 	var r2;
   23385 	var r3;
   23386 	var r4;
   23387 	var r5;
   23388 	var r6;
   23389 	var r7;
   23390 	var r8;
   23391 	var r9;
   23392 var __label__ = 0;
   23393 	i7 = sp + -16;var g0 = i7>>2; // save stack
   23394 	r0 = heap32[(fp)];
   23395 	r1 = heap32[(fp+1)];
   23396 	r2 = heap32[(fp+2)];
   23397 	r3 = 0;
   23398 	r4 = r3;
   23399 _1: while(true){
   23400 	r5 = r4 << 2;
   23401 _3: while(true){
   23402 	r6 = r0 >> 2;
   23403 	r7 = heap32[(r6+2)];
   23404 	if(r7 >r4) //_LBB130_1
   23405 {
   23406 	r7 = r1 >> 2;
   23407 	r7 = heap32[(r7)];
   23408 	r7 = r7 >> 2;
   23409 	r8 = heap32[(r6+4)];
   23410 	r7 = heap32[(r7+2)];
   23411 	r9 = (r8 + r3)|0;
   23412 	heap32[(g0)] = r1;
   23413 	heap32[(g0+1)] = r9;
   23414 	__FUNCTION_TABLE__[(r7)>>2](i7);
   23415 	r7 = r_g0;
   23416 	if(r7 ==0) //_LBB130_3
   23417 {
   23418 break _3;
   23419 }
   23420 else{
   23421 	r7 = r5 << 2;
   23422 	r6 = heap32[(r6)];
   23423 	r7 = (r8 + r7)|0;
   23424 	r7 = r7 >> 2;
   23425 	r6 = r6 >> 2;
   23426 	r6 = heap32[(r6+3)];
   23427 	r8 = heap32[(r7+1)];
   23428 	r7 = heap32[(r7)];
   23429 	heap32[(g0)] = r0;
   23430 	heap32[(g0+1)] = r7;
   23431 	heap32[(g0+2)] = r8;
   23432 	heap32[(g0+3)] = r2;
   23433 	r7 = gOverlappingPairs;
   23434 	r7 = r7 >> 2;
   23435 	__FUNCTION_TABLE__[(r6)>>2](i7);
   23436 	r6 = heap32[(r7)];
   23437 	r6 = (r6 + -1)|0;
   23438 	heap32[(r7)] = r6;
   23439 continue _3;
   23440 }
   23441 }
   23442 else{
   23443 break _1;
   23444 }
   23445 }
   23446 	r4 = (r4 + 1)|0;
   23447 	r3 = (r3 + 16)|0;
   23448 continue _1;
   23449 }
   23450 	return;
   23451 }
   23452 
   23453 function _ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher(sp)
   23454 {
   23455 	var i7;
   23456 	var fp = sp>>2;
   23457 	var r0;
   23458 	var r1;
   23459 	var r2;
   23460 	var r3;
   23461 	var r4;
   23462 var __label__ = 0;
   23463 	i7 = sp + -24;var g0 = i7>>2; // save stack
   23464 	r0 = _ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback;
   23465 	r1 = sp + -8;
   23466 	r0 = (r0 + 8)|0;
   23467 	r2 = heap32[(fp)];
   23468 	r3 = r1 >> 2;
   23469 	r4 = heap32[(fp+1)];
   23470 	heap32[(fp+-2)] = r0;
   23471 	r0 = r2 >> 2;
   23472 	heap32[(r3+1)] = r4;
   23473 	r0 = heap32[(r0)];
   23474 	r0 = r0 >> 2;
   23475 	r0 = heap32[(r0+12)];
   23476 	r3 = heap32[(fp+2)];
   23477 	heap32[(g0)] = r2;
   23478 	heap32[(g0+1)] = r1;
   23479 	heap32[(g0+2)] = r3;
   23480 	__FUNCTION_TABLE__[(r0)>>2](i7);
   23481 	return;
   23482 }
   23483 
   23484 function _ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher(sp)
   23485 {
   23486 	var i7;
   23487 	var fp = sp>>2;
   23488 	var r0;
   23489 	var r1;
   23490 	var r2;
   23491 	var r3;
   23492 	var r4;
   23493 var __label__ = 0;
   23494 	i7 = sp + -32;var g0 = i7>>2; // save stack
   23495 	r0 = _ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback;
   23496 	r1 = sp + -16;
   23497 	r0 = (r0 + 8)|0;
   23498 	r2 = r1 >> 2;
   23499 	r3 = heap32[(fp+1)];
   23500 	heap32[(fp+-4)] = r0;
   23501 	r0 = heap32[(fp)];
   23502 	heap32[(r2+1)] = r3;
   23503 	r3 = heap32[(fp+2)];
   23504 	heap32[(r2+2)] = r0;
   23505 	r4 = r0 >> 2;
   23506 	heap32[(r2+3)] = r3;
   23507 	r2 = heap32[(r4)];
   23508 	r2 = r2 >> 2;
   23509 	r2 = heap32[(r2+12)];
   23510 	heap32[(g0)] = r0;
   23511 	heap32[(g0+1)] = r1;
   23512 	heap32[(g0+2)] = r3;
   23513 	__FUNCTION_TABLE__[(r2)>>2](i7);
   23514 	return;
   23515 }
   23516 
   23517 function _ZN28btHashedOverlappingPairCacheD0Ev(sp)
   23518 {
   23519 	var i7;
   23520 	var fp = sp>>2;
   23521 	var r0;
   23522 	var r1;
   23523 	var r2;
   23524 	var r3;
   23525 	var r4;
   23526 	var r5;
   23527 var __label__ = 0;
   23528 	i7 = sp + -8;var g0 = i7>>2; // save stack
   23529 	r0 = heap32[(fp)];
   23530 	r1 = _ZTV28btHashedOverlappingPairCache;
   23531 	r2 = r0 >> 2;
   23532 	r1 = (r1 + 8)|0;
   23533 	heap32[(r2)] = r1;
   23534 	r1 = heap32[(r2+16)];
   23535 if(!(r1 ==0)) //_LBB133_4
   23536 {
   23537 	r3 = heapU8[r0+68];
   23538 if(!(r3 ==0)) //_LBB133_3
   23539 {
   23540 	r3 = gNumAlignedFree;
   23541 	r3 = r3 >> 2;
   23542 	r4 = heap32[(r3)];
   23543 	r4 = (r4 + 1)|0;
   23544 	r1 = r1 >> 2;
   23545 	heap32[(r3)] = r4;
   23546 	r1 = heap32[(r1+-1)];
   23547 	heap32[(g0)] = r1;
   23548 	free(i7);
   23549 }
   23550 	heap32[(r2+16)] = 0;
   23551 }
   23552 	r1 = 1;
   23553 	heap8[r0+68] = r1;
   23554 	heap32[(r2+16)] = 0;
   23555 	heap32[(r2+14)] = 0;
   23556 	heap32[(r2+15)] = 0;
   23557 	r3 = heap32[(r2+11)];
   23558 if(!(r3 ==0)) //_LBB133_8
   23559 {
   23560 	r4 = heapU8[r0+48];
   23561 if(!(r4 ==0)) //_LBB133_7
   23562 {
   23563 	r4 = gNumAlignedFree;
   23564 	r4 = r4 >> 2;
   23565 	r5 = heap32[(r4)];
   23566 	r5 = (r5 + 1)|0;
   23567 	r3 = r3 >> 2;
   23568 	heap32[(r4)] = r5;
   23569 	r3 = heap32[(r3+-1)];
   23570 	heap32[(g0)] = r3;
   23571 	free(i7);
   23572 }
   23573 	heap32[(r2+11)] = 0;
   23574 }
   23575 	heap8[r0+48] = r1;
   23576 	heap32[(r2+11)] = 0;
   23577 	heap32[(r2+9)] = 0;
   23578 	heap32[(r2+10)] = 0;
   23579 	r3 = heap32[(r2+4)];
   23580 if(!(r3 ==0)) //_LBB133_12
   23581 {
   23582 	r4 = heapU8[r0+20];
   23583 if(!(r4 ==0)) //_LBB133_11
   23584 {
   23585 	r4 = gNumAlignedFree;
   23586 	r4 = r4 >> 2;
   23587 	r5 = heap32[(r4)];
   23588 	r5 = (r5 + 1)|0;
   23589 	r3 = r3 >> 2;
   23590 	heap32[(r4)] = r5;
   23591 	r3 = heap32[(r3+-1)];
   23592 	heap32[(g0)] = r3;
   23593 	free(i7);
   23594 }
   23595 	heap32[(r2+4)] = 0;
   23596 }
   23597 	heap8[r0+20] = r1;
   23598 	heap32[(r2+4)] = 0;
   23599 	heap32[(r2+2)] = 0;
   23600 	heap32[(r2+3)] = 0;
   23601 	heap32[(g0)] = r0;
   23602 	_ZdlPv(i7);
   23603 	return;
   23604 }
   23605 
   23606 function _ZN28btHashedOverlappingPairCacheD1Ev(sp)
   23607 {
   23608 	var i7;
   23609 	var fp = sp>>2;
   23610 	var r0;
   23611 	var r1;
   23612 	var r2;
   23613 	var r3;
   23614 	var r4;
   23615 	var r5;
   23616 var __label__ = 0;
   23617 	i7 = sp + -8;var g0 = i7>>2; // save stack
   23618 	r0 = heap32[(fp)];
   23619 	r1 = _ZTV28btHashedOverlappingPairCache;
   23620 	r2 = r0 >> 2;
   23621 	r1 = (r1 + 8)|0;
   23622 	heap32[(r2)] = r1;
   23623 	r1 = heap32[(r2+16)];
   23624 if(!(r1 ==0)) //_LBB134_4
   23625 {
   23626 	r3 = heapU8[r0+68];
   23627 if(!(r3 ==0)) //_LBB134_3
   23628 {
   23629 	r3 = gNumAlignedFree;
   23630 	r3 = r3 >> 2;
   23631 	r4 = heap32[(r3)];
   23632 	r4 = (r4 + 1)|0;
   23633 	r1 = r1 >> 2;
   23634 	heap32[(r3)] = r4;
   23635 	r1 = heap32[(r1+-1)];
   23636 	heap32[(g0)] = r1;
   23637 	free(i7);
   23638 }
   23639 	heap32[(r2+16)] = 0;
   23640 }
   23641 	r1 = 1;
   23642 	heap8[r0+68] = r1;
   23643 	heap32[(r2+16)] = 0;
   23644 	heap32[(r2+14)] = 0;
   23645 	heap32[(r2+15)] = 0;
   23646 	r3 = heap32[(r2+11)];
   23647 if(!(r3 ==0)) //_LBB134_8
   23648 {
   23649 	r4 = heapU8[r0+48];
   23650 if(!(r4 ==0)) //_LBB134_7
   23651 {
   23652 	r4 = gNumAlignedFree;
   23653 	r4 = r4 >> 2;
   23654 	r5 = heap32[(r4)];
   23655 	r5 = (r5 + 1)|0;
   23656 	r3 = r3 >> 2;
   23657 	heap32[(r4)] = r5;
   23658 	r3 = heap32[(r3+-1)];
   23659 	heap32[(g0)] = r3;
   23660 	free(i7);
   23661 }
   23662 	heap32[(r2+11)] = 0;
   23663 }
   23664 	heap8[r0+48] = r1;
   23665 	heap32[(r2+11)] = 0;
   23666 	heap32[(r2+9)] = 0;
   23667 	heap32[(r2+10)] = 0;
   23668 	r3 = heap32[(r2+4)];
   23669 if(!(r3 ==0)) //_LBB134_12
   23670 {
   23671 	r4 = heapU8[r0+20];
   23672 if(!(r4 ==0)) //_LBB134_11
   23673 {
   23674 	r4 = gNumAlignedFree;
   23675 	r4 = r4 >> 2;
   23676 	r5 = heap32[(r4)];
   23677 	r5 = (r5 + 1)|0;
   23678 	r3 = r3 >> 2;
   23679 	heap32[(r4)] = r5;
   23680 	r3 = heap32[(r3+-1)];
   23681 	heap32[(g0)] = r3;
   23682 	free(i7);
   23683 }
   23684 	heap32[(r2+4)] = 0;
   23685 }
   23686 	heap8[r0+20] = r1;
   23687 	heap32[(r2+4)] = 0;
   23688 	heap32[(r2+2)] = 0;
   23689 	heap32[(r2+3)] = 0;
   23690 	return;
   23691 }
   23692 
   23693 function _ZN28btHashedOverlappingPairCache18addOverlappingPairEP17btBroadphaseProxyS1_(sp)
   23694 {
   23695 	var i7;
   23696 	var fp = sp>>2;
   23697 	var r0;
   23698 	var r1;
   23699 	var r2;
   23700 	var r3;
   23701 	var r4;
   23702 	var r5;
   23703 	var r6;
   23704 	var r7;
   23705 	var r8;
   23706 	var r9;
   23707 	var r10;
   23708 	var r11;
   23709 	var r12;
   23710 	var r13;
   23711 	var r14;
   23712 var __label__ = 0;
   23713 	i7 = sp + -16;var g0 = i7>>2; // save stack
   23714 	r0 = gAddedPairs;
   23715 	r0 = r0 >> 2;
   23716 	r1 = heap32[(r0)];
   23717 	r2 = heap32[(fp)];
   23718 	r1 = (r1 + 1)|0;
   23719 	r3 = r2 >> 2;
   23720 	heap32[(r0)] = r1;
   23721 	r0 = heap32[(r3+6)];
   23722 	r1 = heap32[(fp+1)];
   23723 	r4 = heap32[(fp+2)];
   23724 	if(r0 ==0) //_LBB135_2
   23725 {
   23726 	r0 = heapU16[(r4+6)>>1];
   23727 	r5 = heapU16[(r1+4)>>1];
   23728 	r0 = r0 & r5;
   23729 	r0 = r0 & 65535;
   23730 	if(r0 ==0) //_LBB135_25
   23731 {
   23732 __label__ = 23;
   23733 }
   23734 else{
   23735 	r0 = heapU16[(r1+6)>>1];
   23736 	r5 = heapU16[(r4+4)>>1];
   23737 	r0 = r0 & r5;
   23738 	r0 = r0 & 65535;
   23739 	r5 = 0;
   23740 	r0 = r0 != r5;
   23741 	r0 = r0 & 1;
   23742 __label__ = 4;
   23743 }
   23744 }
   23745 else{
   23746 	r5 = r0 >> 2;
   23747 	r5 = heap32[(r5)];
   23748 	r5 = r5 >> 2;
   23749 	r5 = heap32[(r5+2)];
   23750 	heap32[(g0)] = r0;
   23751 	heap32[(g0+1)] = r1;
   23752 	heap32[(g0+2)] = r4;
   23753 	__FUNCTION_TABLE__[(r5)>>2](i7);
   23754 	r0 = r_g0;
   23755 __label__ = 4;
   23756 }
   23757 if (__label__ == 4){
   23758 	r0 = r0 & 255;
   23759 if(!(r0 ==0)) //_LBB135_25
   23760 {
   23761 	r0 = r1 >> 2;
   23762 	r5 = r4 >> 2;
   23763 	r0 = heap32[(r0+3)];
   23764 	r5 = heap32[(r5+3)];
   23765 	r6 = r0 > r5 ? r1 : r4;
   23766 	r0 = r0 > r5 ? r4 : r1;
   23767 	r1 = r6 >> 2;
   23768 	r4 = heap32[(r1+3)];
   23769 	r5 = r0 >> 2;
   23770 	r7 = heap32[(r5+3)];
   23771 	r8 = r4 << 16;
   23772 	r8 = r8 | r7;
   23773 	r9 = r8 << 15;
   23774 	r9 = r9 ^ -1;
   23775 	r8 = (r8 + r9)|0;
   23776 	r9 = r8 >> 10;
   23777 	r8 = r9 ^ r8;
   23778 	r8 = (r8 * 9)|0;
   23779 	r9 = r8 >> 6;
   23780 	r8 = r9 ^ r8;
   23781 	r9 = r8 << 11;
   23782 	r9 = r9 ^ -1;
   23783 	r8 = (r8 + r9)|0;
   23784 	r9 = heap32[(r3+3)];
   23785 	r10 = r8 >> 16;
   23786 	r8 = r10 ^ r8;
   23787 	r10 = (r9 + -1)|0;
   23788 	r10 = r8 & r10;
   23789 	r11 = heap32[(r3+11)];
   23790 	r12 = r10 << 2;
   23791 	r11 = (r11 + r12)|0;
   23792 _8: while(true){
   23793 	r11 = r11 >> 2;
   23794 	r11 = heap32[(r11)];
   23795 	if(r11 ==-1) //_LBB135_14
   23796 {
   23797 __label__ = 13;
   23798 break _8;
   23799 }
   23800 else{
   23801 	r12 = heap32[(r3+4)];
   23802 	r13 = r11 << 4;
   23803 	r12 = (r12 + r13)|0;
   23804 	r13 = r12 >> 2;
   23805 	r14 = heap32[(r13)];
   23806 	r14 = r14 >> 2;
   23807 	r14 = heap32[(r14+3)];
   23808 if(!(r14 !=r7)) //_LBB135_6
   23809 {
   23810 	r13 = heap32[(r13+1)];
   23811 	r13 = r13 >> 2;
   23812 	r13 = heap32[(r13+3)];
   23813 if(!(r13 !=r4)) //_LBB135_6
   23814 {
   23815 __label__ = 10;
   23816 break _8;
   23817 }
   23818 }
   23819 	r12 = heap32[(r3+16)];
   23820 	r11 = r11 << 2;
   23821 	r11 = (r12 + r11)|0;
   23822 }
   23823 }
   23824 _14: do {
   23825 switch(__label__ ){//multiple entries
   23826 case 13:
   23827 	r4 = heap32[(r3+2)];
   23828 __label__ = 14;
   23829 break _14;
   23830 break;
   23831 case 10:
   23832 	r4 = heap32[(r3+2)];
   23833 	if(r4 >r11) //_LBB135_12
   23834 {
   23835 	if(r12 !=0) //_LBB135_24
   23836 {
   23837 __label__ = 22;
   23838 }
   23839 else{
   23840 __label__ = 14;
   23841 }
   23842 }
   23843 else{
   23844 	r0 = _2E_str222;
   23845 	r1 = _2E_str323;
   23846 	heap32[(g0)] = r0;
   23847 	heap32[(g0+1)] = r1;
   23848 	heap32[(g0+2)] = 250;
   23849 	_assert(i7);
   23850 }
   23851 break;
   23852 }
   23853 } while(0);
   23854 if (__label__ == 14){
   23855 	r12 = (r2 + 4)|0;
   23856 	heap32[(g0)] = r12;
   23857 	_ZN20btAlignedObjectArrayI16btBroadphasePairE21expandNonInitializingEv(i7);
   23858 	r12 = r_g0;
   23859 	r7 = heap32[(r3+18)];
   23860 if(!(r7 ==0)) //_LBB135_17
   23861 {
   23862 	r11 = r7 >> 2;
   23863 	r11 = heap32[(r11)];
   23864 	r11 = r11 >> 2;
   23865 	r11 = heap32[(r11+2)];
   23866 	heap32[(g0)] = r7;
   23867 	heap32[(g0+1)] = r0;
   23868 	heap32[(g0+2)] = r6;
   23869 	__FUNCTION_TABLE__[(r11)>>2](i7);
   23870 }
   23871 	r7 = heap32[(r3+3)];
   23872 	if(r9 <r7) //_LBB135_19
   23873 {
   23874 	heap32[(g0)] = r2;
   23875 	_ZN28btHashedOverlappingPairCache10growTablesEv(i7);
   23876 	r10 = heap32[(r3+3)];
   23877 	r10 = (r10 + -1)|0;
   23878 	r10 = r10 & r8;
   23879 }
   23880 	r2 = heap32[(r5+3)];
   23881 	r1 = heap32[(r1+3)];
   23882 	if(r2 >=r1) //_LBB135_22
   23883 {
   23884 	r1 = r12 >> 2;
   23885 	heap32[(r1)] = r6;
   23886 	heap32[(r1+1)] = r0;
   23887 }
   23888 else{
   23889 	r1 = r12 >> 2;
   23890 	heap32[(r1)] = r0;
   23891 	heap32[(r1+1)] = r6;
   23892 }
   23893 	r0 = r12 >> 2;
   23894 	heap32[(r0+2)] = 0;
   23895 	heap32[(r0+3)] = 0;
   23896 	r0 = r10 << 2;
   23897 	r1 = heap32[(r3+11)];
   23898 	r1 = (r1 + r0)|0;
   23899 	r1 = r1 >> 2;
   23900 	r2 = r4 << 2;
   23901 	r5 = heap32[(r3+16)];
   23902 	r2 = (r5 + r2)|0;
   23903 	r1 = heap32[(r1)];
   23904 	r2 = r2 >> 2;
   23905 	heap32[(r2)] = r1;
   23906 	r1 = heap32[(r3+11)];
   23907 	r0 = (r1 + r0)|0;
   23908 	r0 = r0 >> 2;
   23909 	heap32[(r0)] = r4;
   23910 }
   23911 	r_g0 = r12;
   23912 	return;
   23913 }
   23914 }
   23915 	r0 = 0;
   23916 	r_g0 = r0;
   23917 	return;
   23918 }
   23919 
   23920 function _ZN28btHashedOverlappingPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher(sp)
   23921 {
   23922 	var i7;
   23923 	var fp = sp>>2;
   23924 	var r0;
   23925 	var r1;
   23926 	var r2;
   23927 	var r3;
   23928 	var r4;
   23929 	var r5;
   23930 	var r6;
   23931 	var r7;
   23932 	var r8;
   23933 	var r9;
   23934 	var r10;
   23935 	var r11;
   23936 var __label__ = 0;
   23937 	i7 = sp + -16;var g0 = i7>>2; // save stack
   23938 	r0 = gRemovePairs;
   23939 	r0 = r0 >> 2;
   23940 	r1 = heap32[(r0)];
   23941 	r2 = heap32[(fp+2)];
   23942 	r3 = heap32[(fp+1)];
   23943 	r1 = (r1 + 1)|0;
   23944 	r4 = r3 >> 2;
   23945 	heap32[(r0)] = r1;
   23946 	r0 = r2 >> 2;
   23947 	r1 = heap32[(r4+3)];
   23948 	r0 = heap32[(r0+3)];
   23949 	r4 = r1 > r0 ? r3 : r2;
   23950 	r0 = r1 > r0 ? r2 : r3;
   23951 	r1 = r4 >> 2;
   23952 	r1 = heap32[(r1+3)];
   23953 	r2 = r0 >> 2;
   23954 	r2 = heap32[(r2+3)];
   23955 	r3 = r1 << 16;
   23956 	r3 = r3 | r2;
   23957 	r5 = r3 << 15;
   23958 	r5 = r5 ^ -1;
   23959 	r3 = (r3 + r5)|0;
   23960 	r5 = r3 >> 10;
   23961 	r3 = r5 ^ r3;
   23962 	r3 = (r3 * 9)|0;
   23963 	r5 = r3 >> 6;
   23964 	r3 = r5 ^ r3;
   23965 	r5 = r3 << 11;
   23966 	r6 = heap32[(fp)];
   23967 	r5 = r5 ^ -1;
   23968 	r7 = r6 >> 2;
   23969 	r3 = (r3 + r5)|0;
   23970 	r5 = r3 >> 16;
   23971 	r8 = heap32[(r7+3)];
   23972 	r3 = r5 ^ r3;
   23973 	r5 = (r8 + -1)|0;
   23974 	r3 = r3 & r5;
   23975 	r5 = heap32[(r7+11)];
   23976 	r3 = r3 << 2;
   23977 	r8 = heap32[(fp+3)];
   23978 	r5 = (r5 + r3)|0;
   23979 _1: while(true){
   23980 	r5 = r5 >> 2;
   23981 	r5 = heap32[(r5)];
   23982 	if(r5 ==-1) //_LBB136_35
   23983 {
   23984 __label__ = 33;
   23985 break _1;
   23986 }
   23987 else{
   23988 	r9 = heap32[(r7+4)];
   23989 	r10 = r5 << 4;
   23990 	r9 = (r9 + r10)|0;
   23991 	r10 = r9 >> 2;
   23992 	r11 = heap32[(r10)];
   23993 	r11 = r11 >> 2;
   23994 	r11 = heap32[(r11+3)];
   23995 if(!(r11 !=r2)) //_LBB136_1
   23996 {
   23997 	r11 = heap32[(r10+1)];
   23998 	r11 = r11 >> 2;
   23999 	r11 = heap32[(r11+3)];
   24000 if(!(r11 !=r1)) //_LBB136_1
   24001 {
   24002 __label__ = 5;
   24003 break _1;
   24004 }
   24005 }
   24006 	r9 = heap32[(r7+16)];
   24007 	r5 = r5 << 2;
   24008 	r5 = (r9 + r5)|0;
   24009 continue _1;
   24010 }
   24011 }
   24012 if (__label__ == 5){
   24013 	r11 = heap32[(r7+2)];
   24014 	if(r11 >r5) //_LBB136_7
   24015 {
   24016 if(!(r9 ==0)) //_LBB136_35
   24017 {
   24018 	r5 = heap32[(r7)];
   24019 	r5 = r5 >> 2;
   24020 	r5 = heap32[(r5+8)];
   24021 	heap32[(g0)] = r6;
   24022 	heap32[(g0+1)] = r9;
   24023 	heap32[(g0+2)] = r8;
   24024 	__FUNCTION_TABLE__[(r5)>>2](i7);
   24025 	r5 = heap32[(r10)];
   24026 	r5 = r5 >> 2;
   24027 	r5 = heap32[(r5+3)];
   24028 	if(r5 ==r2) //_LBB136_10
   24029 {
   24030 	r2 = heap32[(r10+1)];
   24031 	r2 = r2 >> 2;
   24032 	r2 = heap32[(r2+3)];
   24033 	if(r2 ==r1) //_LBB136_12
   24034 {
   24035 	r1 = heap32[(r7+4)];
   24036 	r1 = (r9 - r1)|0;
   24037 	r1 = r1 >> 4;
   24038 	r2 = heap32[(r7+2)];
   24039 	if(r2 >r1) //_LBB136_14
   24040 {
   24041 	r2 = heap32[(r7+11)];
   24042 	r2 = (r2 + r3)|0;
   24043 	r2 = r2 >> 2;
   24044 	r3 = heap32[(r2)];
   24045 	if(r3 ==-1) //_LBB136_17
   24046 {
   24047 	r0 = _2E_str727;
   24048 	r1 = _2E_str121;
   24049 	heap32[(g0)] = r0;
   24050 	heap32[(g0+1)] = r1;
   24051 	heap32[(g0+2)] = 304;
   24052 	_assert(i7);
   24053 }
   24054 else{
   24055 	r5 = heap32[(r10+3)];
   24056 	r6 = heap32[(r7+16)];
   24057 	if(r3 ==r1) //_LBB136_21
   24058 {
   24059 __label__ = 20;
   24060 }
   24061 else{
   24062 _22: while(true){
   24063 	r9 = r3;
   24064 	r3 = r9 << 2;
   24065 	r3 = (r6 + r3)|0;
   24066 	r10 = r3 >> 2;
   24067 	r3 = heap32[(r10)];
   24068 if(!(r3 !=r1)) //_LBB136_18
   24069 {
   24070 break _22;
   24071 }
   24072 }
   24073 	if(r9 ==-1) //_LBB136_21
   24074 {
   24075 __label__ = 20;
   24076 }
   24077 else{
   24078 	r2 = r1 << 2;
   24079 	r2 = (r6 + r2)|0;
   24080 	r2 = r2 >> 2;
   24081 	r2 = heap32[(r2)];
   24082 	heap32[(r10)] = r2;
   24083 __label__ = 21;
   24084 }
   24085 }
   24086 if (__label__ == 20){
   24087 	r3 = r1 << 2;
   24088 	r3 = (r6 + r3)|0;
   24089 	r3 = r3 >> 2;
   24090 	r3 = heap32[(r3)];
   24091 	heap32[(r2)] = r3;
   24092 }
   24093 	r2 = heap32[(r7+2)];
   24094 	r3 = heap32[(r7+18)];
   24095 if(!(r3 ==0)) //_LBB136_24
   24096 {
   24097 	r6 = r3 >> 2;
   24098 	r6 = heap32[(r6)];
   24099 	r6 = r6 >> 2;
   24100 	r6 = heap32[(r6+3)];
   24101 	heap32[(g0)] = r3;
   24102 	heap32[(g0+1)] = r0;
   24103 	heap32[(g0+2)] = r4;
   24104 	heap32[(g0+3)] = r8;
   24105 	__FUNCTION_TABLE__[(r6)>>2](i7);
   24106 }
   24107 	r0 = (r2 + -1)|0;
   24108 	if(r0 !=r1) //_LBB136_26
   24109 {
   24110 	r3 = heap32[(r7+4)];
   24111 	r4 = r2 << 4;
   24112 	r3 = (r3 + r4)|0;
   24113 	r3 = r3 >> 2;
   24114 	r6 = heap32[(r3+-3)];
   24115 	r3 = heap32[(r3+-4)];
   24116 	r6 = r6 >> 2;
   24117 	r3 = r3 >> 2;
   24118 	r6 = heap32[(r6+3)];
   24119 	r3 = heap32[(r3+3)];
   24120 	r6 = r6 << 16;
   24121 	r3 = r3 | r6;
   24122 	r6 = r3 << 15;
   24123 	r6 = r6 ^ -1;
   24124 	r3 = (r3 + r6)|0;
   24125 	r6 = r3 >> 10;
   24126 	r3 = r6 ^ r3;
   24127 	r3 = (r3 * 9)|0;
   24128 	r6 = r3 >> 6;
   24129 	r3 = r6 ^ r3;
   24130 	r6 = r3 << 11;
   24131 	r6 = r6 ^ -1;
   24132 	r3 = (r3 + r6)|0;
   24133 	r6 = r3 >> 16;
   24134 	r8 = heap32[(r7+3)];
   24135 	r3 = r6 ^ r3;
   24136 	r6 = (r8 + -1)|0;
   24137 	r3 = r3 & r6;
   24138 	r6 = heap32[(r7+11)];
   24139 	r3 = r3 << 2;
   24140 	r6 = (r6 + r3)|0;
   24141 	r6 = r6 >> 2;
   24142 	r8 = heap32[(r6)];
   24143 	if(r8 ==-1) //_LBB136_29
   24144 {
   24145 	r0 = _2E_str727;
   24146 	r1 = _2E_str121;
   24147 	heap32[(g0)] = r0;
   24148 	heap32[(g0+1)] = r1;
   24149 	heap32[(g0+2)] = 345;
   24150 	_assert(i7);
   24151 }
   24152 else{
   24153 	r9 = heap32[(r7+16)];
   24154 	if(r8 ==r0) //_LBB136_33
   24155 {
   24156 __label__ = 31;
   24157 }
   24158 else{
   24159 _38: while(true){
   24160 	r10 = r8;
   24161 	r8 = r10 << 2;
   24162 	r8 = (r9 + r8)|0;
   24163 	r11 = r8 >> 2;
   24164 	r8 = heap32[(r11)];
   24165 if(!(r8 !=r0)) //_LBB136_30
   24166 {
   24167 break _38;
   24168 }
   24169 }
   24170 	if(r10 ==-1) //_LBB136_33
   24171 {
   24172 __label__ = 31;
   24173 }
   24174 else{
   24175 	r2 = r2 << 2;
   24176 	r2 = (r9 + r2)|0;
   24177 	r2 = r2 >> 2;
   24178 	r2 = heap32[(r2+-1)];
   24179 	heap32[(r11)] = r2;
   24180 __label__ = 32;
   24181 }
   24182 }
   24183 if (__label__ == 31){
   24184 	r0 = r2 << 2;
   24185 	r0 = (r9 + r0)|0;
   24186 	r0 = r0 >> 2;
   24187 	r0 = heap32[(r0+-1)];
   24188 	heap32[(r6)] = r0;
   24189 }
   24190 	r0 = heap32[(r7+4)];
   24191 	r2 = (r0 + r4)|0;
   24192 	r4 = r1 << 4;
   24193 	r2 = r2 >> 2;
   24194 	r0 = (r0 + r4)|0;
   24195 	r4 = heap32[(r2+-4)];
   24196 	r0 = r0 >> 2;
   24197 	heap32[(r0)] = r4;
   24198 	r4 = heap32[(r2+-3)];
   24199 	heap32[(r0+1)] = r4;
   24200 	r4 = heap32[(r2+-2)];
   24201 	heap32[(r0+2)] = r4;
   24202 	r2 = heap32[(r2+-1)];
   24203 	heap32[(r0+3)] = r2;
   24204 	r0 = heap32[(r7+11)];
   24205 	r0 = (r0 + r3)|0;
   24206 	r0 = r0 >> 2;
   24207 	r2 = r1 << 2;
   24208 	r4 = heap32[(r7+16)];
   24209 	r2 = (r4 + r2)|0;
   24210 	r0 = heap32[(r0)];
   24211 	r2 = r2 >> 2;
   24212 	heap32[(r2)] = r0;
   24213 	r0 = heap32[(r7+11)];
   24214 	r0 = (r0 + r3)|0;
   24215 	r0 = r0 >> 2;
   24216 	heap32[(r0)] = r1;
   24217 }
   24218 }
   24219 	r0 = heap32[(r7+2)];
   24220 	r0 = (r0 + -1)|0;
   24221 	heap32[(r7+2)] = r0;
   24222 	r_g0 = r5;
   24223 	return;
   24224 }
   24225 }
   24226 else{
   24227 	r0 = _2E_str626;
   24228 	r1 = _2E_str121;
   24229 	heap32[(g0)] = r0;
   24230 	heap32[(g0+1)] = r1;
   24231 	heap32[(g0+2)] = 300;
   24232 	_assert(i7);
   24233 }
   24234 }
   24235 else{
   24236 	r0 = _2E_str525;
   24237 	r3 = _2E_str121;
   24238 	heap32[(g0)] = r0;
   24239 	heap32[(g0+1)] = r3;
   24240 	heap32[(g0+2)] = 297;
   24241 	_assert(i7);
   24242 }
   24243 }
   24244 else{
   24245 	r0 = _2E_str424;
   24246 	r1 = _2E_str121;
   24247 	heap32[(g0)] = r0;
   24248 	heap32[(g0+1)] = r1;
   24249 	heap32[(g0+2)] = 296;
   24250 	_assert(i7);
   24251 }
   24252 }
   24253 }
   24254 else{
   24255 	r0 = _2E_str222;
   24256 	r1 = _2E_str323;
   24257 	heap32[(g0)] = r0;
   24258 	heap32[(g0+1)] = r1;
   24259 	heap32[(g0+2)] = 250;
   24260 	_assert(i7);
   24261 }
   24262 }
   24263 	r0 = 0;
   24264 	r_g0 = r0;
   24265 	return;
   24266 }
   24267 
   24268 function _ZN28btHashedOverlappingPairCache8findPairEP17btBroadphaseProxyS1_(sp)
   24269 {
   24270 	var i7;
   24271 	var fp = sp>>2;
   24272 	var r0;
   24273 	var r1;
   24274 	var r2;
   24275 	var r3;
   24276 	var r4;
   24277 	var r5;
   24278 	var r6;
   24279 var __label__ = 0;
   24280 	i7 = sp + -16;var g0 = i7>>2; // save stack
   24281 	r0 = gFindPairs;
   24282 	r0 = r0 >> 2;
   24283 	r1 = heap32[(r0)];
   24284 	r2 = heap32[(fp+1)];
   24285 	r3 = heap32[(fp+2)];
   24286 	r1 = (r1 + 1)|0;
   24287 	r4 = r2 >> 2;
   24288 	heap32[(r0)] = r1;
   24289 	r0 = r3 >> 2;
   24290 	r1 = heap32[(r4+3)];
   24291 	r0 = heap32[(r0+3)];
   24292 	r4 = r1 > r0 ? r2 : r3;
   24293 	r0 = r1 > r0 ? r3 : r2;
   24294 	r1 = r4 >> 2;
   24295 	r1 = heap32[(r1+3)];
   24296 	r0 = r0 >> 2;
   24297 	r0 = heap32[(r0+3)];
   24298 	r2 = r1 << 16;
   24299 	r2 = r2 | r0;
   24300 	r3 = r2 << 15;
   24301 	r3 = r3 ^ -1;
   24302 	r2 = (r2 + r3)|0;
   24303 	r3 = r2 >> 10;
   24304 	r2 = r3 ^ r2;
   24305 	r2 = (r2 * 9)|0;
   24306 	r3 = r2 >> 6;
   24307 	r2 = r3 ^ r2;
   24308 	r3 = r2 << 11;
   24309 	r4 = heap32[(fp)];
   24310 	r3 = r3 ^ -1;
   24311 	r4 = r4 >> 2;
   24312 	r2 = (r2 + r3)|0;
   24313 	r3 = r2 >> 16;
   24314 	r5 = heap32[(r4+3)];
   24315 	r2 = r3 ^ r2;
   24316 	r3 = (r5 + -1)|0;
   24317 	r2 = r2 & r3;
   24318 	r3 = heap32[(r4+9)];
   24319 _1: do {
   24320 if(!(r3 <=r2)) //_LBB137_9
   24321 {
   24322 	r3 = heap32[(r4+11)];
   24323 	r2 = r2 << 2;
   24324 	r2 = (r3 + r2)|0;
   24325 _3: while(true){
   24326 	r2 = r2 >> 2;
   24327 	r2 = heap32[(r2)];
   24328 	if(r2 ==-1) //_LBB137_9
   24329 {
   24330 break _1;
   24331 }
   24332 else{
   24333 	r3 = heap32[(r4+4)];
   24334 	r5 = r2 << 4;
   24335 	r3 = (r3 + r5)|0;
   24336 	r5 = r3 >> 2;
   24337 	r6 = heap32[(r5)];
   24338 	r6 = r6 >> 2;
   24339 	r6 = heap32[(r6+3)];
   24340 if(!(r6 !=r0)) //_LBB137_2
   24341 {
   24342 	r5 = heap32[(r5+1)];
   24343 	r5 = r5 >> 2;
   24344 	r5 = heap32[(r5+3)];
   24345 if(!(r5 !=r1)) //_LBB137_2
   24346 {
   24347 break _3;
   24348 }
   24349 }
   24350 	r3 = heap32[(r4+16)];
   24351 	r2 = r2 << 2;
   24352 	r2 = (r3 + r2)|0;
   24353 }
   24354 }
   24355 	r0 = heap32[(r4+2)];
   24356 	if(r0 >r2) //_LBB137_8
   24357 {
   24358 	r_g0 = r3;
   24359 	return;
   24360 }
   24361 else{
   24362 	r3 = _2E_str222;
   24363 	r0 = _2E_str121;
   24364 	heap32[(g0)] = r3;
   24365 	heap32[(g0+1)] = r0;
   24366 	heap32[(g0+2)] = 165;
   24367 	_assert(i7);
   24368 }
   24369 }
   24370 } while(0);
   24371 	r0 = 0;
   24372 	r_g0 = r0;
   24373 	return;
   24374 }
   24375 
   24376 function _ZN28btHashedOverlappingPairCache20sortOverlappingPairsEP12btDispatcher(sp)
   24377 {
   24378 	var i7;
   24379 	var fp = sp>>2;
   24380 	var r0;
   24381 	var r1;
   24382 	var r2;
   24383 	var r3;
   24384 	var r4;
   24385 	var r5;
   24386 	var r6;
   24387 	var r7;
   24388 	var r8;
   24389 	var r9;
   24390 	var r10;
   24391 	var r11;
   24392 	var r12;
   24393 	var r13;
   24394 	var r14;
   24395 	var r15;
   24396 	var r16;
   24397 var __label__ = 0;
   24398 	i7 = sp + -40;var g0 = i7>>2; // save stack
   24399 	r0 = sp + -24;
   24400 	r1 = 1;
   24401 	r2 = r0 >> 2;
   24402 	heap8[sp+-8] = r1;
   24403 	heap32[(r2+3)] = 0;
   24404 	r3 = heap32[(fp)];
   24405 	heap32[(r2+1)] = 0;
   24406 	r4 = r3 >> 2;
   24407 	heap32[(r2+2)] = 0;
   24408 	r5 = heap32[(r4+2)];
   24409 _1: do {
   24410 	if(r5 >0) //_LBB138_2
   24411 {
   24412 	r6 = heap32[(fp+1)];
   24413 	r7 = 0;
   24414 	r5 = r7;
   24415 _3: while(true){
   24416 	r8 = heap32[(r4+4)];
   24417 	if(r7 ==r5) //_LBB138_5
   24418 {
   24419 	r9 = 1;
   24420 	r10 = r5 << 1;
   24421 	r10 = r5 == 0 ? r9 : r10;
   24422 if(!(r7 >=r10)) //_LBB138_4
   24423 {
   24424 	if(r10 !=0) //_LBB138_8
   24425 {
   24426 	r7 = gNumAlignedAllocs;
   24427 	r7 = r7 >> 2;
   24428 	r11 = heap32[(r7)];
   24429 	r12 = r10 << 4;
   24430 	r11 = (r11 + 1)|0;
   24431 	r12 = r12 | 3;
   24432 	heap32[(r7)] = r11;
   24433 	r7 = (r12 + 16)|0;
   24434 	heap32[(g0)] = r7;
   24435 	malloc(i7);
   24436 	r7 = r_g0;
   24437 	if(r7 !=0) //_LBB138_10
   24438 {
   24439 	r11 = 0;
   24440 	r12 = (r7 + 4)|0;
   24441 	r11 = (r11 - r12)|0;
   24442 	r11 = r11 & 15;
   24443 	r11 = (r7 + r11)|0;
   24444 	r12 = (r11 + 4)|0;
   24445 	r11 = r11 >> 2;
   24446 	heap32[(r11)] = r7;
   24447 	r7 = r12;
   24448 }
   24449 }
   24450 else{
   24451 	r7 = 0;
   24452 }
   24453 	if(r5 <1) //_LBB138_13
   24454 {
   24455 	r13 = heap32[(r2+3)];
   24456 }
   24457 else{
   24458 	r11 = 0;
   24459 	r12 = (r11 - r5)|0;
   24460 _16: while(true){
   24461 	r13 = heap32[(r2+3)];
   24462 	r14 = r11 << 4;
   24463 	r15 = (r13 - r14)|0;
   24464 	r15 = r15 >> 2;
   24465 	r14 = (r7 - r14)|0;
   24466 	r16 = heap32[(r15)];
   24467 	r14 = r14 >> 2;
   24468 	heap32[(r14)] = r16;
   24469 	r16 = heap32[(r15+1)];
   24470 	heap32[(r14+1)] = r16;
   24471 	r16 = heap32[(r15+2)];
   24472 	heap32[(r14+2)] = r16;
   24473 	r15 = heap32[(r15+3)];
   24474 	r11 = (r11 + -1)|0;
   24475 	heap32[(r14+3)] = r15;
   24476 if(!(r12 !=r11)) //_LBB138_14
   24477 {
   24478 break _16;
   24479 }
   24480 }
   24481 }
   24482 	if(r13 !=0) //_LBB138_17
   24483 {
   24484 	r11 = heapU8[sp+-8];
   24485 	if(r11 !=0) //_LBB138_19
   24486 {
   24487 	r5 = gNumAlignedFree;
   24488 	r5 = r5 >> 2;
   24489 	r11 = heap32[(r5)];
   24490 	r11 = (r11 + 1)|0;
   24491 	r12 = r13 >> 2;
   24492 	heap32[(r5)] = r11;
   24493 	r5 = heap32[(r12+-1)];
   24494 	heap32[(g0)] = r5;
   24495 	free(i7);
   24496 	r5 = heap32[(r2+1)];
   24497 }
   24498 	heap32[(r2+3)] = 0;
   24499 }
   24500 	heap8[sp+-8] = r9;
   24501 	heap32[(r2+3)] = r7;
   24502 	heap32[(r2+2)] = r10;
   24503 }
   24504 }
   24505 	r7 = r1 << 4;
   24506 	r7 = (r8 + r7)|0;
   24507 	r7 = r7 >> 2;
   24508 	r5 = r5 << 4;
   24509 	r8 = heap32[(r2+3)];
   24510 	r5 = (r8 + r5)|0;
   24511 	r8 = heap32[(r7+-4)];
   24512 	r5 = r5 >> 2;
   24513 	heap32[(r5)] = r8;
   24514 	r8 = heap32[(r7+-3)];
   24515 	heap32[(r5+1)] = r8;
   24516 	r8 = heap32[(r7+-2)];
   24517 	heap32[(r5+2)] = r8;
   24518 	r7 = heap32[(r7+-1)];
   24519 	heap32[(r5+3)] = r7;
   24520 	r5 = heap32[(r2+1)];
   24521 	r5 = (r5 + 1)|0;
   24522 	heap32[(r2+1)] = r5;
   24523 	r7 = heap32[(r4+2)];
   24524 	if(r7 <=r1) //_LBB138_24
   24525 {
   24526 break _3;
   24527 }
   24528 else{
   24529 	r7 = heap32[(r2+2)];
   24530 	r1 = (r1 + 1)|0;
   24531 }
   24532 }
   24533 	if(r5 >0) //_LBB138_26
   24534 {
   24535 	r1 = 0;
   24536 _29: while(true){
   24537 	r5 = heap32[(r2+3)];
   24538 	r7 = r1 << 4;
   24539 	r8 = heap32[(r4)];
   24540 	r5 = (r5 + r7)|0;
   24541 	r5 = r5 >> 2;
   24542 	r7 = r8 >> 2;
   24543 	r7 = heap32[(r7+3)];
   24544 	r8 = heap32[(r5+1)];
   24545 	r5 = heap32[(r5)];
   24546 	heap32[(g0)] = r3;
   24547 	heap32[(g0+1)] = r5;
   24548 	heap32[(g0+2)] = r8;
   24549 	heap32[(g0+3)] = r6;
   24550 	__FUNCTION_TABLE__[(r7)>>2](i7);
   24551 	r5 = heap32[(r2+1)];
   24552 	r1 = (r1 + 1)|0;
   24553 	if(r5 >r1) //_LBB138_27
   24554 {
   24555 continue _29;
   24556 }
   24557 else{
   24558 break _1;
   24559 }
   24560 }
   24561 }
   24562 }
   24563 else{
   24564 	r5 = 0;
   24565 }
   24566 } while(0);
   24567 	r1 = heap32[(r4+14)];
   24568 	if(r1 >0) //_LBB138_30
   24569 {
   24570 	r5 = 0;
   24571 _35: while(true){
   24572 	r1 = r5 << 2;
   24573 	r6 = heap32[(r4+16)];
   24574 	r1 = (r6 + r1)|0;
   24575 	r5 = (r5 + 1)|0;
   24576 	r1 = r1 >> 2;
   24577 	heap32[(r1)] = -1;
   24578 	r1 = heap32[(r4+14)];
   24579 if(!(r1 >r5)) //_LBB138_31
   24580 {
   24581 break _35;
   24582 }
   24583 }
   24584 	r5 = heap32[(r2+1)];
   24585 }
   24586 	if(r5 >1) //_LBB138_35
   24587 {
   24588 	r5 = (r5 + -1)|0;
   24589 	heap32[(g0)] = r0;
   24590 	heap32[(g0+1)] = 0;
   24591 	heap32[(g0+2)] = r5;
   24592 	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
   24593 	r5 = heap32[(r2+1)];
   24594 }
   24595 _42: do {
   24596 if(!(r5 <1)) //_LBB138_39
   24597 {
   24598 	r0 = 0;
   24599 _44: while(true){
   24600 	r1 = heap32[(r2+3)];
   24601 	r5 = r0 << 4;
   24602 	r6 = heap32[(r4)];
   24603 	r1 = (r1 + r5)|0;
   24604 	r1 = r1 >> 2;
   24605 	r5 = r6 >> 2;
   24606 	r5 = heap32[(r5+2)];
   24607 	r6 = heap32[(r1+1)];
   24608 	r1 = heap32[(r1)];
   24609 	heap32[(g0)] = r3;
   24610 	heap32[(g0+1)] = r1;
   24611 	heap32[(g0+2)] = r6;
   24612 	r0 = (r0 + 1)|0;
   24613 	__FUNCTION_TABLE__[(r5)>>2](i7);
   24614 	r1 = heap32[(r2+1)];
   24615 	if(r1 >r0) //_LBB138_38
   24616 {
   24617 continue _44;
   24618 }
   24619 else{
   24620 break _42;
   24621 }
   24622 }
   24623 }
   24624 } while(0);
   24625 	r0 = heap32[(r2+3)];
   24626 if(!(r0 ==0)) //_LBB138_42
   24627 {
   24628 	r1 = heapU8[sp+-8];
   24629 if(!(r1 ==0)) //_LBB138_42
   24630 {
   24631 	r1 = gNumAlignedFree;
   24632 	r1 = r1 >> 2;
   24633 	r2 = heap32[(r1)];
   24634 	r2 = (r2 + 1)|0;
   24635 	r0 = r0 >> 2;
   24636 	heap32[(r1)] = r2;
   24637 	r0 = heap32[(r0+-1)];
   24638 	heap32[(g0)] = r0;
   24639 	free(i7);
   24640 }
   24641 }
   24642 	return;
   24643 }
   24644 
   24645 function _ZN20btAlignedObjectArrayI16btBroadphasePairE21expandNonInitializingEv(sp)
   24646 {
   24647 	var i7;
   24648 	var fp = sp>>2;
   24649 	var r0;
   24650 	var r1;
   24651 	var r2;
   24652 	var r3;
   24653 	var r4;
   24654 	var r5;
   24655 	var r6;
   24656 	var r7;
   24657 	var r8;
   24658 	var r9;
   24659 	var r10;
   24660 	var r11;
   24661 	var r12;
   24662 var __label__ = 0;
   24663 	i7 = sp + -8;var g0 = i7>>2; // save stack
   24664 	r0 = heap32[(fp)];
   24665 	r1 = r0 >> 2;
   24666 	r2 = heap32[(r1+2)];
   24667 	r3 = heap32[(r1+1)];
   24668 	if(r2 ==r3) //_LBB139_2
   24669 {
   24670 	r4 = 1;
   24671 	r5 = r3 << 1;
   24672 	r5 = r3 == 0 ? r4 : r5;
   24673 	if(r2 >=r5) //_LBB139_1
   24674 {
   24675 __label__ = 1;
   24676 }
   24677 else{
   24678 	if(r5 !=0) //_LBB139_5
   24679 {
   24680 	r2 = gNumAlignedAllocs;
   24681 	r2 = r2 >> 2;
   24682 	r6 = heap32[(r2)];
   24683 	r7 = r5 << 4;
   24684 	r6 = (r6 + 1)|0;
   24685 	r7 = r7 | 3;
   24686 	heap32[(r2)] = r6;
   24687 	r2 = (r7 + 16)|0;
   24688 	heap32[(g0)] = r2;
   24689 	malloc(i7);
   24690 	r6 = r_g0;
   24691 	if(r6 !=0) //_LBB139_7
   24692 {
   24693 	r2 = 0;
   24694 	r7 = (r6 + 4)|0;
   24695 	r2 = (r2 - r7)|0;
   24696 	r2 = r2 & 15;
   24697 	r2 = (r6 + r2)|0;
   24698 	r7 = (r2 + 4)|0;
   24699 	r2 = r2 >> 2;
   24700 	heap32[(r2)] = r6;
   24701 	r6 = r7;
   24702 }
   24703 }
   24704 else{
   24705 	r6 = 0;
   24706 }
   24707 	r7 = (r0 + 12)|0;
   24708 	if(r3 <1) //_LBB139_10
   24709 {
   24710 	r2 = r7 >> 2;
   24711 	r9 = heap32[(r2)];
   24712 }
   24713 else{
   24714 	r2 = 0;
   24715 	r8 = (r2 - r3)|0;
   24716 _12: while(true){
   24717 	r9 = r7 >> 2;
   24718 	r9 = heap32[(r9)];
   24719 	r10 = r2 << 4;
   24720 	r11 = (r9 - r10)|0;
   24721 	r11 = r11 >> 2;
   24722 	r10 = (r6 - r10)|0;
   24723 	r12 = heap32[(r11)];
   24724 	r10 = r10 >> 2;
   24725 	heap32[(r10)] = r12;
   24726 	r12 = heap32[(r11+1)];
   24727 	heap32[(r10+1)] = r12;
   24728 	r12 = heap32[(r11+2)];
   24729 	heap32[(r10+2)] = r12;
   24730 	r11 = heap32[(r11+3)];
   24731 	r2 = (r2 + -1)|0;
   24732 	heap32[(r10+3)] = r11;
   24733 if(!(r8 !=r2)) //_LBB139_11
   24734 {
   24735 break _12;
   24736 }
   24737 }
   24738 	r7 = (r0 + 12)|0;
   24739 }
   24740 	if(r9 !=0) //_LBB139_15
   24741 {
   24742 	r2 = heapU8[r0+16];
   24743 	if(r2 !=0) //_LBB139_17
   24744 {
   24745 	r2 = gNumAlignedFree;
   24746 	r2 = r2 >> 2;
   24747 	r8 = heap32[(r2)];
   24748 	r8 = (r8 + 1)|0;
   24749 	r9 = r9 >> 2;
   24750 	heap32[(r2)] = r8;
   24751 	r2 = heap32[(r9+-1)];
   24752 	heap32[(g0)] = r2;
   24753 	free(i7);
   24754 	r2 = heap32[(r1+1)];
   24755 }
   24756 else{
   24757 	r2 = r3;
   24758 }
   24759 	r8 = r7 >> 2;
   24760 	heap32[(r8)] = 0;
   24761 }
   24762 else{
   24763 	r2 = r3;
   24764 }
   24765 	r7 = r7 >> 2;
   24766 	heap8[r0+16] = r4;
   24767 	heap32[(r7)] = r6;
   24768 	heap32[(r1+2)] = r5;
   24769 __label__ = 19;
   24770 }
   24771 }
   24772 else{
   24773 __label__ = 1;
   24774 }
   24775 if (__label__ == 1){
   24776 	r2 = r3;
   24777 }
   24778 	r0 = (r2 + 1)|0;
   24779 	heap32[(r1+1)] = r0;
   24780 	r0 = heap32[(r1+3)];
   24781 	r1 = r3 << 4;
   24782 	r0 = (r0 + r1)|0;
   24783 	r_g0 = r0;
   24784 	return;
   24785 }
   24786 
   24787 function _ZN28btHashedOverlappingPairCache10growTablesEv(sp)
   24788 {
   24789 	var i7;
   24790 	var fp = sp>>2;
   24791 	var r0;
   24792 	var r1;
   24793 	var r2;
   24794 	var r3;
   24795 	var r4;
   24796 	var r5;
   24797 	var r6;
   24798 	var r7;
   24799 	var r8;
   24800 	var r9;
   24801 	var r10;
   24802 var __label__ = 0;
   24803 	i7 = sp + -8;var g0 = i7>>2; // save stack
   24804 	r0 = heap32[(fp)];
   24805 	r1 = r0 >> 2;
   24806 	r2 = heap32[(r1+9)];
   24807 	r3 = heap32[(r1+3)];
   24808 _1: do {
   24809 if(!(r2 >=r3)) //_LBB140_48
   24810 {
   24811 _3: do {
   24812 if(!(r2 >r3)) //_LBB140_20
   24813 {
   24814 	r4 = heap32[(r1+10)];
   24815 if(!(r4 >=r3)) //_LBB140_18
   24816 {
   24817 	if(r3 !=0) //_LBB140_5
   24818 {
   24819 	r4 = gNumAlignedAllocs;
   24820 	r4 = r4 >> 2;
   24821 	r5 = heap32[(r4)];
   24822 	r6 = r3 << 2;
   24823 	r5 = (r5 + 1)|0;
   24824 	r6 = r6 | 3;
   24825 	heap32[(r4)] = r5;
   24826 	r4 = (r6 + 16)|0;
   24827 	heap32[(g0)] = r4;
   24828 	malloc(i7);
   24829 	r4 = r_g0;
   24830 	if(r4 !=0) //_LBB140_7
   24831 {
   24832 	r5 = 0;
   24833 	r6 = (r4 + 4)|0;
   24834 	r5 = (r5 - r6)|0;
   24835 	r5 = r5 & 15;
   24836 	r5 = (r4 + r5)|0;
   24837 	r6 = (r5 + 4)|0;
   24838 	r5 = r5 >> 2;
   24839 	heap32[(r5)] = r4;
   24840 	r4 = r6;
   24841 }
   24842 }
   24843 else{
   24844 	r4 = 0;
   24845 }
   24846 	r5 = (r0 + 44)|0;
   24847 	if(r2 <1) //_LBB140_10
   24848 {
   24849 	r6 = r5 >> 2;
   24850 	r7 = heap32[(r6)];
   24851 }
   24852 else{
   24853 	r6 = 0;
   24854 _15: while(true){
   24855 	r7 = r5 >> 2;
   24856 	r7 = heap32[(r7)];
   24857 	r8 = r6 << 2;
   24858 	r9 = (r7 + r8)|0;
   24859 	r9 = r9 >> 2;
   24860 	r8 = (r4 + r8)|0;
   24861 	r9 = heap32[(r9)];
   24862 	r6 = (r6 + 1)|0;
   24863 	r8 = r8 >> 2;
   24864 	heap32[(r8)] = r9;
   24865 if(!(r2 !=r6)) //_LBB140_11
   24866 {
   24867 break _15;
   24868 }
   24869 }
   24870 	r5 = (r0 + 44)|0;
   24871 }
   24872 if(!(r7 ==0)) //_LBB140_17
   24873 {
   24874 	r6 = heapU8[r0+48];
   24875 if(!(r6 ==0)) //_LBB140_16
   24876 {
   24877 	r6 = gNumAlignedFree;
   24878 	r6 = r6 >> 2;
   24879 	r8 = heap32[(r6)];
   24880 	r8 = (r8 + 1)|0;
   24881 	r7 = r7 >> 2;
   24882 	heap32[(r6)] = r8;
   24883 	r6 = heap32[(r7+-1)];
   24884 	heap32[(g0)] = r6;
   24885 	free(i7);
   24886 }
   24887 	r6 = r5 >> 2;
   24888 	heap32[(r6)] = 0;
   24889 }
   24890 	r6 = 1;
   24891 	r5 = r5 >> 2;
   24892 	heap8[r0+48] = r6;
   24893 	heap32[(r5)] = r4;
   24894 	heap32[(r1+10)] = r3;
   24895 }
   24896 	r4 = r2;
   24897 _26: while(true){
   24898 	r5 = r4 << 2;
   24899 	r6 = heap32[(r1+11)];
   24900 	r5 = (r6 + r5)|0;
   24901 	r4 = (r4 + 1)|0;
   24902 	r5 = r5 >> 2;
   24903 	heap32[(r5)] = 0;
   24904 if(!(r3 !=r4)) //_LBB140_19
   24905 {
   24906 break _3;
   24907 }
   24908 }
   24909 }
   24910 } while(0);
   24911 	heap32[(r1+9)] = r3;
   24912 	r4 = heap32[(r1+14)];
   24913 _29: do {
   24914 if(!(r4 >r3)) //_LBB140_39
   24915 {
   24916 if(!(r4 >=r3)) //_LBB140_39
   24917 {
   24918 	r5 = heap32[(r1+15)];
   24919 if(!(r5 >=r3)) //_LBB140_38
   24920 {
   24921 	if(r3 !=0) //_LBB140_25
   24922 {
   24923 	r5 = gNumAlignedAllocs;
   24924 	r5 = r5 >> 2;
   24925 	r6 = heap32[(r5)];
   24926 	r7 = r3 << 2;
   24927 	r6 = (r6 + 1)|0;
   24928 	r7 = r7 | 3;
   24929 	heap32[(r5)] = r6;
   24930 	r5 = (r7 + 16)|0;
   24931 	heap32[(g0)] = r5;
   24932 	malloc(i7);
   24933 	r5 = r_g0;
   24934 	if(r5 !=0) //_LBB140_27
   24935 {
   24936 	r6 = 0;
   24937 	r7 = (r5 + 4)|0;
   24938 	r6 = (r6 - r7)|0;
   24939 	r6 = r6 & 15;
   24940 	r6 = (r5 + r6)|0;
   24941 	r7 = (r6 + 4)|0;
   24942 	r6 = r6 >> 2;
   24943 	heap32[(r6)] = r5;
   24944 	r5 = r7;
   24945 }
   24946 }
   24947 else{
   24948 	r5 = 0;
   24949 }
   24950 	r6 = (r0 + 64)|0;
   24951 	if(r4 <1) //_LBB140_30
   24952 {
   24953 	r7 = r6 >> 2;
   24954 	r8 = heap32[(r7)];
   24955 }
   24956 else{
   24957 	r7 = 0;
   24958 _42: while(true){
   24959 	r8 = r6 >> 2;
   24960 	r8 = heap32[(r8)];
   24961 	r9 = r7 << 2;
   24962 	r10 = (r8 + r9)|0;
   24963 	r10 = r10 >> 2;
   24964 	r9 = (r5 + r9)|0;
   24965 	r10 = heap32[(r10)];
   24966 	r7 = (r7 + 1)|0;
   24967 	r9 = r9 >> 2;
   24968 	heap32[(r9)] = r10;
   24969 if(!(r4 !=r7)) //_LBB140_31
   24970 {
   24971 break _42;
   24972 }
   24973 }
   24974 	r6 = (r0 + 64)|0;
   24975 }
   24976 if(!(r8 ==0)) //_LBB140_37
   24977 {
   24978 	r7 = heapU8[r0+68];
   24979 if(!(r7 ==0)) //_LBB140_36
   24980 {
   24981 	r7 = gNumAlignedFree;
   24982 	r7 = r7 >> 2;
   24983 	r9 = heap32[(r7)];
   24984 	r9 = (r9 + 1)|0;
   24985 	r8 = r8 >> 2;
   24986 	heap32[(r7)] = r9;
   24987 	r7 = heap32[(r8+-1)];
   24988 	heap32[(g0)] = r7;
   24989 	free(i7);
   24990 }
   24991 	r7 = r6 >> 2;
   24992 	heap32[(r7)] = 0;
   24993 }
   24994 	r7 = 1;
   24995 	r6 = r6 >> 2;
   24996 	heap8[r0+68] = r7;
   24997 	heap32[(r6)] = r5;
   24998 	heap32[(r1+15)] = r3;
   24999 	if(r4 >=r3) //_LBB140_39
   25000 {
   25001 break _29;
   25002 }
   25003 }
   25004 _52: while(true){
   25005 	r0 = r4 << 2;
   25006 	r5 = heap32[(r1+16)];
   25007 	r0 = (r5 + r0)|0;
   25008 	r4 = (r4 + 1)|0;
   25009 	r0 = r0 >> 2;
   25010 	heap32[(r0)] = 0;
   25011 if(!(r3 !=r4)) //_LBB140_38
   25012 {
   25013 break _29;
   25014 }
   25015 }
   25016 }
   25017 }
   25018 } while(0);
   25019 	heap32[(r1+14)] = r3;
   25020 _55: do {
   25021 if(!(r3 <1)) //_LBB140_45
   25022 {
   25023 	r0 = 0;
   25024 _57: while(true){
   25025 	r4 = r0 << 2;
   25026 	r5 = heap32[(r1+11)];
   25027 	r4 = (r5 + r4)|0;
   25028 	r0 = (r0 + 1)|0;
   25029 	r4 = r4 >> 2;
   25030 	heap32[(r4)] = -1;
   25031 if(!(r3 !=r0)) //_LBB140_41
   25032 {
   25033 break _57;
   25034 }
   25035 }
   25036 if(!(r3 <1)) //_LBB140_45
   25037 {
   25038 	r0 = 0;
   25039 _61: while(true){
   25040 	r4 = r0 << 2;
   25041 	r5 = heap32[(r1+16)];
   25042 	r4 = (r5 + r4)|0;
   25043 	r0 = (r0 + 1)|0;
   25044 	r4 = r4 >> 2;
   25045 	heap32[(r4)] = -1;
   25046 if(!(r3 !=r0)) //_LBB140_44
   25047 {
   25048 break _55;
   25049 }
   25050 }
   25051 }
   25052 }
   25053 } while(0);
   25054 if(!(r2 <1)) //_LBB140_48
   25055 {
   25056 	r0 = 0;
   25057 _65: while(true){
   25058 	r3 = heap32[(r1+4)];
   25059 	r4 = r0 << 4;
   25060 	r3 = (r3 + r4)|0;
   25061 	r3 = r3 >> 2;
   25062 	r4 = heap32[(r3+1)];
   25063 	r3 = heap32[(r3)];
   25064 	r4 = r4 >> 2;
   25065 	r3 = r3 >> 2;
   25066 	r4 = heap32[(r4+3)];
   25067 	r4 = r4 << 16;
   25068 	r3 = heap32[(r3+3)];
   25069 	r3 = r4 | r3;
   25070 	r4 = r3 << 15;
   25071 	r4 = r4 ^ -1;
   25072 	r3 = (r3 + r4)|0;
   25073 	r4 = r3 >> 10;
   25074 	r3 = r4 ^ r3;
   25075 	r3 = (r3 * 9)|0;
   25076 	r4 = r3 >> 6;
   25077 	r3 = r4 ^ r3;
   25078 	r4 = r3 << 11;
   25079 	r4 = r4 ^ -1;
   25080 	r3 = (r3 + r4)|0;
   25081 	r4 = r3 >> 16;
   25082 	r5 = heap32[(r1+3)];
   25083 	r3 = r4 ^ r3;
   25084 	r4 = (r5 + -1)|0;
   25085 	r3 = r3 & r4;
   25086 	r3 = r3 << 2;
   25087 	r4 = heap32[(r1+11)];
   25088 	r4 = (r4 + r3)|0;
   25089 	r4 = r4 >> 2;
   25090 	r5 = r0 << 2;
   25091 	r6 = heap32[(r1+16)];
   25092 	r5 = (r6 + r5)|0;
   25093 	r4 = heap32[(r4)];
   25094 	r5 = r5 >> 2;
   25095 	heap32[(r5)] = r4;
   25096 	r4 = heap32[(r1+11)];
   25097 	r3 = (r4 + r3)|0;
   25098 	r4 = (r0 + 1)|0;
   25099 	r3 = r3 >> 2;
   25100 	heap32[(r3)] = r0;
   25101 	r0 = r4;
   25102 	if(r2 !=r4) //_LBB140_47
   25103 {
   25104 continue _65;
   25105 }
   25106 else{
   25107 break _1;
   25108 }
   25109 }
   25110 }
   25111 }
   25112 } while(0);
   25113 	return;
   25114 }
   25115 
   25116 function _ZN28btHashedOverlappingPairCacheC1Ev(sp)
   25117 {
   25118 	var i7;
   25119 	var fp = sp>>2;
   25120 	var r0;
   25121 	var r1;
   25122 	var r2;
   25123 	var r3;
   25124 	var r4;
   25125 	var r5;
   25126 var __label__ = 0;
   25127 	i7 = sp + -8;var g0 = i7>>2; // save stack
   25128 	r0 = heap32[(fp)];
   25129 	r1 = _ZTV28btHashedOverlappingPairCache;
   25130 	r2 = r0 >> 2;
   25131 	r1 = (r1 + 8)|0;
   25132 	r3 = 1;
   25133 	heap32[(r2)] = r1;
   25134 	heap8[r0+20] = r3;
   25135 	heap32[(r2+4)] = 0;
   25136 	heap32[(r2+2)] = 0;
   25137 	heap32[(r2+3)] = 0;
   25138 	r1 = 0;
   25139 	heap32[(r2+6)] = 0;
   25140 	heap8[r0+28] = r1;
   25141 	heap8[r0+48] = r3;
   25142 	heap32[(r2+11)] = 0;
   25143 	heap32[(r2+9)] = 0;
   25144 	heap32[(r2+10)] = 0;
   25145 	heap8[r0+68] = r3;
   25146 	heap32[(r2+16)] = 0;
   25147 	heap32[(r2+14)] = 0;
   25148 	r4 = gNumAlignedAllocs;
   25149 	heap32[(r2+15)] = 0;
   25150 	r4 = r4 >> 2;
   25151 	heap32[(r2+18)] = 0;
   25152 	r5 = heap32[(r4)];
   25153 	r5 = (r5 + 1)|0;
   25154 	heap32[(r4)] = r5;
   25155 	heap32[(g0)] = 51;
   25156 	malloc(i7);
   25157 	r4 = r_g0;
   25158 	if(r4 !=0) //_LBB141_2
   25159 {
   25160 	r5 = (r4 + 4)|0;
   25161 	r1 = (r1 - r5)|0;
   25162 	r1 = r1 & 15;
   25163 	r1 = (r4 + r1)|0;
   25164 	r5 = (r1 + 4)|0;
   25165 	r1 = r1 >> 2;
   25166 	heap32[(r1)] = r4;
   25167 	r4 = r5;
   25168 }
   25169 	heap8[r0+20] = r3;
   25170 	heap32[(r2+4)] = r4;
   25171 	heap32[(r2+3)] = 2;
   25172 	heap32[(g0)] = r0;
   25173 	_ZN28btHashedOverlappingPairCache10growTablesEv(i7);
   25174 	return;
   25175 }
   25176 
   25177 function _ZNK14btQuantizedBvh31calculateSerializeBufferSizeNewEv(sp)
   25178 {
   25179 	var i7;
   25180 	var fp = sp>>2;
   25181 	var r0;
   25182 var __label__ = 0;
   25183 	i7 = sp + 0;var g0 = i7>>2; // save stack
   25184 	r0 = 84;
   25185 	r_g0 = r0;
   25186 	return;
   25187 }
   25188 
   25189 function _ZNK14btQuantizedBvh9serializeEPvP12btSerializer(sp)
   25190 {
   25191 	var i7;
   25192 	var fp = sp>>2;
   25193 	var r0;
   25194 	var r1;
   25195 	var r2;
   25196 	var r3;
   25197 	var r4;
   25198 	var r5;
   25199 	var r6;
   25200 	var r7;
   25201 	var r8;
   25202 	var r9;
   25203 	var r10;
   25204 	var r11;
   25205 var __label__ = 0;
   25206 	i7 = sp + -24;var g0 = i7>>2; // save stack
   25207 	r0 = heap32[(fp+1)];
   25208 	r1 = heap32[(fp)];
   25209 	r0 = r0 >> 2;
   25210 	r2 = r1 >> 2;
   25211 	heap32[(r0+4)] = heap32[(r2+5)];
   25212 	heap32[(r0+5)] = heap32[(r2+6)];
   25213 	heap32[(r0+6)] = heap32[(r2+7)];
   25214 	heap32[(r0+7)] = heap32[(r2+8)];
   25215 	heap32[(r0)] = heap32[(r2+1)];
   25216 	heap32[(r0+1)] = heap32[(r2+2)];
   25217 	heap32[(r0+2)] = heap32[(r2+3)];
   25218 	heap32[(r0+3)] = heap32[(r2+4)];
   25219 	heap32[(r0+8)] = heap32[(r2+9)];
   25220 	heap32[(r0+9)] = heap32[(r2+10)];
   25221 	heap32[(r0+10)] = heap32[(r2+11)];
   25222 	heap32[(r0+11)] = heap32[(r2+12)];
   25223 	r3 = heap32[(r2+14)];
   25224 	heap32[(r0+12)] = r3;
   25225 	r1 = heapU8[r1+60];
   25226 	heap32[(r0+13)] = r1;
   25227 	r1 = heap32[(r2+22)];
   25228 	r3 = heap32[(fp+2)];
   25229 	heap32[(r0+14)] = r1;
   25230 	r1 = heap32[(r2+22)];
   25231 	if(r1 !=0) //_LBB143_2
   25232 {
   25233 	r1 = r3 >> 2;
   25234 	r4 = heap32[(r1)];
   25235 	r4 = r4 >> 2;
   25236 	r4 = heap32[(r4+7)];
   25237 	r5 = heap32[(r2+24)];
   25238 	heap32[(g0)] = r3;
   25239 	heap32[(g0+1)] = r5;
   25240 	__FUNCTION_TABLE__[(r4)>>2](i7);
   25241 	r4 = r_g0;
   25242 	heap32[(r0+16)] = r4;
   25243 if(!(r4 ==0)) //_LBB143_7
   25244 {
   25245 	r4 = heap32[(r1)];
   25246 	r4 = r4 >> 2;
   25247 	r5 = heap32[(r2+22)];
   25248 	r4 = heap32[(r4+4)];
   25249 	heap32[(g0)] = r3;
   25250 	heap32[(g0+1)] = 48;
   25251 	heap32[(g0+2)] = r5;
   25252 	__FUNCTION_TABLE__[(r4)>>2](i7);
   25253 	r4 = r_g0;
   25254 if(!(r5 <1)) //_LBB143_6
   25255 {
   25256 	r6 = r4 >> 2;
   25257 	r7 = 0;
   25258 	r6 = heap32[(r6+2)];
   25259 	r5 = (r7 - r5)|0;
   25260 _6: while(true){
   25261 	r8 = (r7 * -12)|0;
   25262 	r8 = r8 << 2;
   25263 	r9 = r7 << 6;
   25264 	r10 = heap32[(r2+24)];
   25265 	r8 = (r6 + r8)|0;
   25266 	r10 = (r10 - r9)|0;
   25267 	r8 = r8 >> 2;
   25268 	r10 = r10 >> 2;
   25269 	heap32[(r8+4)] = heap32[(r10+4)];
   25270 	heap32[(r8+5)] = heap32[(r10+5)];
   25271 	heap32[(r8+6)] = heap32[(r10+6)];
   25272 	heap32[(r8+7)] = heap32[(r10+7)];
   25273 	r10 = heap32[(r2+24)];
   25274 	r10 = (r10 - r9)|0;
   25275 	r10 = r10 >> 2;
   25276 	heap32[(r8)] = heap32[(r10)];
   25277 	heap32[(r8+1)] = heap32[(r10+1)];
   25278 	heap32[(r8+2)] = heap32[(r10+2)];
   25279 	heap32[(r8+3)] = heap32[(r10+3)];
   25280 	r10 = heap32[(r2+24)];
   25281 	r10 = (r10 - r9)|0;
   25282 	r10 = r10 >> 2;
   25283 	r10 = heap32[(r10+8)];
   25284 	heap32[(r8+8)] = r10;
   25285 	r10 = heap32[(r2+24)];
   25286 	r10 = (r10 - r9)|0;
   25287 	r10 = r10 >> 2;
   25288 	r10 = heap32[(r10+9)];
   25289 	heap32[(r8+9)] = r10;
   25290 	r10 = heap32[(r2+24)];
   25291 	r9 = (r10 - r9)|0;
   25292 	r9 = r9 >> 2;
   25293 	r9 = heap32[(r9+10)];
   25294 	r7 = (r7 + -1)|0;
   25295 	heap32[(r8+10)] = r9;
   25296 if(!(r5 !=r7)) //_LBB143_5
   25297 {
   25298 break _6;
   25299 }
   25300 }
   25301 }
   25302 	r1 = heap32[(r1)];
   25303 	r1 = r1 >> 2;
   25304 	r1 = heap32[(r1+5)];
   25305 	r5 = heap32[(r2+24)];
   25306 	r6 = _2E_str32;
   25307 	heap32[(g0)] = r3;
   25308 	heap32[(g0+1)] = r4;
   25309 	heap32[(g0+2)] = r6;
   25310 	heap32[(g0+3)] = 1497453121;
   25311 	heap32[(g0+4)] = r5;
   25312 	__FUNCTION_TABLE__[(r1)>>2](i7);
   25313 }
   25314 }
   25315 else{
   25316 	heap32[(r0+16)] = 0;
   25317 }
   25318 	r1 = heap32[(r2+32)];
   25319 	heap32[(r0+15)] = r1;
   25320 	r1 = heap32[(r2+32)];
   25321 	if(r1 !=0) //_LBB143_9
   25322 {
   25323 	r1 = r3 >> 2;
   25324 	r4 = heap32[(r1)];
   25325 	r4 = r4 >> 2;
   25326 	r4 = heap32[(r4+7)];
   25327 	r5 = heap32[(r2+34)];
   25328 	heap32[(g0)] = r3;
   25329 	heap32[(g0+1)] = r5;
   25330 	__FUNCTION_TABLE__[(r4)>>2](i7);
   25331 	r4 = r_g0;
   25332 	heap32[(r0+17)] = r4;
   25333 if(!(r4 ==0)) //_LBB143_14
   25334 {
   25335 	r4 = heap32[(r1)];
   25336 	r4 = r4 >> 2;
   25337 	r5 = heap32[(r2+32)];
   25338 	r4 = heap32[(r4+4)];
   25339 	heap32[(g0)] = r3;
   25340 	heap32[(g0+1)] = 16;
   25341 	heap32[(g0+2)] = r5;
   25342 	__FUNCTION_TABLE__[(r4)>>2](i7);
   25343 	r4 = r_g0;
   25344 _14: do {
   25345 if(!(r5 <1)) //_LBB143_13
   25346 {
   25347 	r6 = r4 >> 2;
   25348 	r7 = 0;
   25349 	r6 = heap32[(r6+2)];
   25350 	r5 = (r7 - r5)|0;
   25351 _16: while(true){
   25352 	r8 = r7 << 4;
   25353 	r9 = heap32[(r2+34)];
   25354 	r9 = (r9 - r8)|0;
   25355 	r9 = r9 >> 2;
   25356 	r10 = (r6 - r8)|0;
   25357 	r9 = heap32[(r9+3)];
   25358 	r11 = r10 >> 2;
   25359 	heap32[(r11+3)] = r9;
   25360 	r9 = heap32[(r2+34)];
   25361 	r9 = (r9 - r8)|0;
   25362 	r9 = heapU16[(r9+6)>>1];
   25363 	heap16[(r10+6)>>1] = r9;
   25364 	r9 = heap32[(r2+34)];
   25365 	r9 = (r9 - r8)|0;
   25366 	r9 = heapU16[(r9+8)>>1];
   25367 	heap16[(r10+8)>>1] = r9;
   25368 	r9 = heap32[(r2+34)];
   25369 	r9 = (r9 - r8)|0;
   25370 	r9 = heapU16[(r9+10)>>1];
   25371 	heap16[(r10+10)>>1] = r9;
   25372 	r9 = heap32[(r2+34)];
   25373 	r9 = (r9 - r8)|0;
   25374 	r9 = heapU16[(r9)>>1];
   25375 	heap16[(r10)>>1] = r9;
   25376 	r9 = heap32[(r2+34)];
   25377 	r9 = (r9 - r8)|0;
   25378 	r9 = heapU16[(r9+2)>>1];
   25379 	heap16[(r10+2)>>1] = r9;
   25380 	r9 = heap32[(r2+34)];
   25381 	r8 = (r9 - r8)|0;
   25382 	r8 = heapU16[(r8+4)>>1];
   25383 	r7 = (r7 + -1)|0;
   25384 	heap16[(r10+4)>>1] = r8;
   25385 if(!(r5 !=r7)) //_LBB143_12
   25386 {
   25387 break _14;
   25388 }
   25389 }
   25390 }
   25391 } while(0);
   25392 	r1 = heap32[(r1)];
   25393 	r1 = r1 >> 2;
   25394 	r1 = heap32[(r1+5)];
   25395 	r5 = heap32[(r2+34)];
   25396 	r6 = _2E_str133;
   25397 	heap32[(g0)] = r3;
   25398 	heap32[(g0+1)] = r4;
   25399 	heap32[(g0+2)] = r6;
   25400 	heap32[(g0+3)] = 1497453121;
   25401 	heap32[(g0+4)] = r5;
   25402 	__FUNCTION_TABLE__[(r1)>>2](i7);
   25403 }
   25404 }
   25405 else{
   25406 	heap32[(r0+17)] = 0;
   25407 }
   25408 	r1 = heap32[(r2+36)];
   25409 	heap32[(r0+19)] = r1;
   25410 	r1 = heap32[(r2+38)];
   25411 	heap32[(r0+20)] = r1;
   25412 	r1 = heap32[(r2+38)];
   25413 	if(r1 !=0) //_LBB143_16
   25414 {
   25415 	r1 = r3 >> 2;
   25416 	r4 = heap32[(r1)];
   25417 	r4 = r4 >> 2;
   25418 	r4 = heap32[(r4+7)];
   25419 	r5 = heap32[(r2+40)];
   25420 	heap32[(g0)] = r3;
   25421 	heap32[(g0+1)] = r5;
   25422 	__FUNCTION_TABLE__[(r4)>>2](i7);
   25423 	r4 = r_g0;
   25424 	heap32[(r0+18)] = r4;
   25425 if(!(r4 ==0)) //_LBB143_21
   25426 {
   25427 	r0 = heap32[(r1)];
   25428 	r0 = r0 >> 2;
   25429 	r4 = heap32[(r2+38)];
   25430 	r0 = heap32[(r0+4)];
   25431 	heap32[(g0)] = r3;
   25432 	heap32[(g0+1)] = 20;
   25433 	heap32[(g0+2)] = r4;
   25434 	__FUNCTION_TABLE__[(r0)>>2](i7);
   25435 	r0 = r_g0;
   25436 _24: do {
   25437 if(!(r4 <1)) //_LBB143_20
   25438 {
   25439 	r5 = r0 >> 2;
   25440 	r6 = 0;
   25441 	r5 = heap32[(r5+2)];
   25442 	r4 = (r6 - r4)|0;
   25443 _26: while(true){
   25444 	r7 = r6 << 5;
   25445 	r8 = heap32[(r2+40)];
   25446 	r9 = (r6 * -10)|0;
   25447 	r8 = (r8 - r7)|0;
   25448 	r8 = heapU16[(r8+6)>>1];
   25449 	r9 = r9 << 1;
   25450 	r9 = (r5 + r9)|0;
   25451 	heap16[(r9+14)>>1] = r8;
   25452 	r8 = heap32[(r2+40)];
   25453 	r8 = (r8 - r7)|0;
   25454 	r8 = heapU16[(r8+8)>>1];
   25455 	heap16[(r9+16)>>1] = r8;
   25456 	r8 = heap32[(r2+40)];
   25457 	r8 = (r8 - r7)|0;
   25458 	r8 = heapU16[(r8+10)>>1];
   25459 	heap16[(r9+18)>>1] = r8;
   25460 	r8 = heap32[(r2+40)];
   25461 	r8 = (r8 - r7)|0;
   25462 	r8 = heapU16[(r8)>>1];
   25463 	heap16[(r9+8)>>1] = r8;
   25464 	r8 = heap32[(r2+40)];
   25465 	r8 = (r8 - r7)|0;
   25466 	r8 = heapU16[(r8+2)>>1];
   25467 	heap16[(r9+10)>>1] = r8;
   25468 	r8 = heap32[(r2+40)];
   25469 	r8 = (r8 - r7)|0;
   25470 	r8 = heapU16[(r8+4)>>1];
   25471 	heap16[(r9+12)>>1] = r8;
   25472 	r8 = heap32[(r2+40)];
   25473 	r9 = (r6 * -5)|0;
   25474 	r8 = (r8 - r7)|0;
   25475 	r9 = r9 << 2;
   25476 	r8 = r8 >> 2;
   25477 	r9 = (r5 + r9)|0;
   25478 	r8 = heap32[(r8+3)];
   25479 	r9 = r9 >> 2;
   25480 	heap32[(r9)] = r8;
   25481 	r8 = heap32[(r2+40)];
   25482 	r7 = (r8 - r7)|0;
   25483 	r7 = r7 >> 2;
   25484 	r7 = heap32[(r7+4)];
   25485 	r6 = (r6 + -1)|0;
   25486 	heap32[(r9+1)] = r7;
   25487 if(!(r4 !=r6)) //_LBB143_19
   25488 {
   25489 break _24;
   25490 }
   25491 }
   25492 }
   25493 } while(0);
   25494 	r1 = heap32[(r1)];
   25495 	r1 = r1 >> 2;
   25496 	r1 = heap32[(r1+5)];
   25497 	r2 = heap32[(r2+40)];
   25498 	r4 = _2E_str234;
   25499 	heap32[(g0)] = r3;
   25500 	heap32[(g0+1)] = r0;
   25501 	heap32[(g0+2)] = r4;
   25502 	heap32[(g0+3)] = 1497453121;
   25503 	heap32[(g0+4)] = r2;
   25504 	__FUNCTION_TABLE__[(r1)>>2](i7);
   25505 }
   25506 }
   25507 else{
   25508 	heap32[(r0+18)] = 0;
   25509 }
   25510 	r0 = _2E_str335;
   25511 	r_g0 = r0;
   25512 	return;
   25513 }
   25514 
   25515 function _ZN14btQuantizedBvhD1Ev(sp)
   25516 {
   25517 	var i7;
   25518 	var fp = sp>>2;
   25519 	var r0;
   25520 var __label__ = 0;
   25521 	i7 = sp + -8;var g0 = i7>>2; // save stack
   25522 	r0 = heap32[(fp)];
   25523 	heap32[(g0)] = r0;
   25524 	_ZN14btQuantizedBvhD2Ev(i7);
   25525 	return;
   25526 }
   25527 
   25528 function _ZN14btQuantizedBvhD0Ev(sp)
   25529 {
   25530 	var i7;
   25531 	var fp = sp>>2;
   25532 	var r0;
   25533 	var r1;
   25534 	var r2;
   25535 	var r3;
   25536 	var r4;
   25537 	var r5;
   25538 var __label__ = 0;
   25539 	i7 = sp + -8;var g0 = i7>>2; // save stack
   25540 	r0 = heap32[(fp)];
   25541 	r1 = _ZTV14btQuantizedBvh;
   25542 	r2 = r0 >> 2;
   25543 	r1 = (r1 + 8)|0;
   25544 	heap32[(r2)] = r1;
   25545 	r1 = heap32[(r2+40)];
   25546 if(!(r1 ==0)) //_LBB145_4
   25547 {
   25548 	r3 = heapU8[r0+164];
   25549 if(!(r3 ==0)) //_LBB145_3
   25550 {
   25551 	r3 = gNumAlignedFree;
   25552 	r3 = r3 >> 2;
   25553 	r4 = heap32[(r3)];
   25554 	r4 = (r4 + 1)|0;
   25555 	r1 = r1 >> 2;
   25556 	heap32[(r3)] = r4;
   25557 	r1 = heap32[(r1+-1)];
   25558 	heap32[(g0)] = r1;
   25559 	free(i7);
   25560 }
   25561 	heap32[(r2+40)] = 0;
   25562 }
   25563 	r1 = 1;
   25564 	heap8[r0+164] = r1;
   25565 	heap32[(r2+40)] = 0;
   25566 	heap32[(r2+38)] = 0;
   25567 	heap32[(r2+39)] = 0;
   25568 	r3 = heap32[(r2+34)];
   25569 if(!(r3 ==0)) //_LBB145_8
   25570 {
   25571 	r4 = heapU8[r0+140];
   25572 if(!(r4 ==0)) //_LBB145_7
   25573 {
   25574 	r4 = gNumAlignedFree;
   25575 	r4 = r4 >> 2;
   25576 	r5 = heap32[(r4)];
   25577 	r5 = (r5 + 1)|0;
   25578 	r3 = r3 >> 2;
   25579 	heap32[(r4)] = r5;
   25580 	r3 = heap32[(r3+-1)];
   25581 	heap32[(g0)] = r3;
   25582 	free(i7);
   25583 }
   25584 	heap32[(r2+34)] = 0;
   25585 }
   25586 	heap8[r0+140] = r1;
   25587 	heap32[(r2+34)] = 0;
   25588 	heap32[(r2+32)] = 0;
   25589 	heap32[(r2+33)] = 0;
   25590 	r3 = heap32[(r2+29)];
   25591 if(!(r3 ==0)) //_LBB145_12
   25592 {
   25593 	r4 = heapU8[r0+120];
   25594 if(!(r4 ==0)) //_LBB145_11
   25595 {
   25596 	r4 = gNumAlignedFree;
   25597 	r4 = r4 >> 2;
   25598 	r5 = heap32[(r4)];
   25599 	r5 = (r5 + 1)|0;
   25600 	r3 = r3 >> 2;
   25601 	heap32[(r4)] = r5;
   25602 	r3 = heap32[(r3+-1)];
   25603 	heap32[(g0)] = r3;
   25604 	free(i7);
   25605 }
   25606 	heap32[(r2+29)] = 0;
   25607 }
   25608 	heap8[r0+120] = r1;
   25609 	heap32[(r2+29)] = 0;
   25610 	heap32[(r2+27)] = 0;
   25611 	heap32[(r2+28)] = 0;
   25612 	r3 = heap32[(r2+24)];
   25613 if(!(r3 ==0)) //_LBB145_16
   25614 {
   25615 	r4 = heapU8[r0+100];
   25616 if(!(r4 ==0)) //_LBB145_15
   25617 {
   25618 	r4 = gNumAlignedFree;
   25619 	r4 = r4 >> 2;
   25620 	r5 = heap32[(r4)];
   25621 	r5 = (r5 + 1)|0;
   25622 	r3 = r3 >> 2;
   25623 	heap32[(r4)] = r5;
   25624 	r3 = heap32[(r3+-1)];
   25625 	heap32[(g0)] = r3;
   25626 	free(i7);
   25627 }
   25628 	heap32[(r2+24)] = 0;
   25629 }
   25630 	heap8[r0+100] = r1;
   25631 	heap32[(r2+24)] = 0;
   25632 	heap32[(r2+22)] = 0;
   25633 	heap32[(r2+23)] = 0;
   25634 	r3 = heap32[(r2+19)];
   25635 if(!(r3 ==0)) //_LBB145_20
   25636 {
   25637 	r4 = heapU8[r0+80];
   25638 if(!(r4 ==0)) //_LBB145_19
   25639 {
   25640 	r4 = gNumAlignedFree;
   25641 	r4 = r4 >> 2;
   25642 	r5 = heap32[(r4)];
   25643 	r5 = (r5 + 1)|0;
   25644 	r3 = r3 >> 2;
   25645 	heap32[(r4)] = r5;
   25646 	r3 = heap32[(r3+-1)];
   25647 	heap32[(g0)] = r3;
   25648 	free(i7);
   25649 }
   25650 	heap32[(r2+19)] = 0;
   25651 }
   25652 	heap8[r0+80] = r1;
   25653 	heap32[(r2+19)] = 0;
   25654 	heap32[(r2+17)] = 0;
   25655 	heap32[(r2+18)] = 0;
   25656 if(!(r0 ==0)) //_LBB145_22
   25657 {
   25658 	r0 = gNumAlignedFree;
   25659 	r0 = r0 >> 2;
   25660 	r1 = heap32[(r0)];
   25661 	r1 = (r1 + 1)|0;
   25662 	heap32[(r0)] = r1;
   25663 	r0 = heap32[(r2+-1)];
   25664 	heap32[(g0)] = r0;
   25665 	free(i7);
   25666 }
   25667 	return;
   25668 }
   25669 
   25670 function _ZNK14btQuantizedBvh9serializeEPvjb(sp)
   25671 {
   25672 	var i7;
   25673 	var fp = sp>>2;
   25674 	var r0;
   25675 	var r1;
   25676 	var r2;
   25677 	var r3;
   25678 	var r4;
   25679 	var r5;
   25680 	var r6;
   25681 	var r7;
   25682 	var r8;
   25683 	var r9;
   25684 	var r10;
   25685 	var r11;
   25686 	var r12;
   25687 var __label__ = 0;
   25688 	i7 = sp + -16;var g0 = i7>>2; // save stack
   25689 	r0 = heap32[(fp)];
   25690 	r1 = r0 >> 2;
   25691 	r2 = heap32[(r1+38)];
   25692 	r3 = heap32[(r1+42)];
   25693 	if(r3 ==r2) //_LBB146_2
   25694 {
   25695 	r3 = heap32[(fp+1)];
   25696 	r4 = heap32[(fp+3)];
   25697 	r5 = _ZTV14btQuantizedBvh;
   25698 	r6 = r3 >> 2;
   25699 	r5 = (r5 + 8)|0;
   25700 	heap32[(r1+42)] = r2;
   25701 	heap32[(r6)] = r5;
   25702 	r2 = 0;
   25703 	heap32[(r6+13)] = 277;
   25704 	r5 = 1;
   25705 	heap8[r3+60] = r2;
   25706 	heap8[r3+80] = r5;
   25707 	heap32[(r6+19)] = 0;
   25708 	heap32[(r6+17)] = 0;
   25709 	heap32[(r6+18)] = 0;
   25710 	heap8[r3+100] = r5;
   25711 	heap32[(r6+24)] = 0;
   25712 	heap32[(r6+22)] = 0;
   25713 	heap32[(r6+23)] = 0;
   25714 	heap8[r3+120] = r5;
   25715 	heap32[(r6+29)] = 0;
   25716 	heap32[(r6+27)] = 0;
   25717 	heap32[(r6+28)] = 0;
   25718 	heap8[r3+140] = r5;
   25719 	heap32[(r6+34)] = 0;
   25720 	heap32[(r6+32)] = 0;
   25721 	heap32[(r6+33)] = 0;
   25722 	heap32[(r6+36)] = 0;
   25723 	heap8[r3+164] = r5;
   25724 	heap32[(r6+40)] = 0;
   25725 	heap32[(r6+38)] = 0;
   25726 	heap32[(r6+39)] = 0;
   25727 	heap32[(r6+42)] = 0;
   25728 	heap32[(r6+1)] = -8388609;
   25729 	heap32[(r6+2)] = -8388609;
   25730 	heap32[(r6+3)] = -8388609;
   25731 	heap32[(r6+4)] = 0;
   25732 	heap32[(r6+5)] = 2139095039;
   25733 	heap32[(r6+6)] = 2139095039;
   25734 	heap32[(r6+7)] = 2139095039;
   25735 	heap32[(r6+8)] = 0;
   25736 	r7 = heap32[(r1+14)];
   25737 	if(r4 ==0) //_LBB146_4
   25738 {
   25739 	heap32[(r6+14)] = r7;
   25740 	heap32[(r6+1)] = heap32[(r1+1)];
   25741 	heap32[(r6+2)] = heap32[(r1+2)];
   25742 	heap32[(r6+3)] = heap32[(r1+3)];
   25743 	heap32[(r6+4)] = heap32[(r1+4)];
   25744 	heap32[(r6+5)] = heap32[(r1+5)];
   25745 	heap32[(r6+6)] = heap32[(r1+6)];
   25746 	heap32[(r6+7)] = heap32[(r1+7)];
   25747 	heap32[(r6+8)] = heap32[(r1+8)];
   25748 	heap32[(r6+9)] = heap32[(r1+9)];
   25749 	heap32[(r6+10)] = heap32[(r1+10)];
   25750 	heap32[(r6+11)] = heap32[(r1+11)];
   25751 	heap32[(r6+12)] = heap32[(r1+12)];
   25752 	r7 = heap32[(r1+36)];
   25753 	heap32[(r6+36)] = r7;
   25754 	r7 = heap32[(r1+42)];
   25755 }
   25756 else{
   25757 	r8 = r7 << 8;
   25758 	r9 = r7 >>> 8;
   25759 	r10 = r7 << 24;
   25760 	r8 = r8 & 16711680;
   25761 	r9 = r9 & 65280;
   25762 	r7 = r7 >>> 24;
   25763 	r8 = r10 | r8;
   25764 	r7 = r9 | r7;
   25765 	r7 = r8 | r7;
   25766 	heap32[(r6+14)] = r7;
   25767 	r7 = heapU8[r0+7];
   25768 	heap8[r3+4] = r7;
   25769 	r7 = heapU8[r0+6];
   25770 	heap8[r3+5] = r7;
   25771 	r7 = heapU8[r0+5];
   25772 	heap8[r3+6] = r7;
   25773 	r7 = heapU8[r0+4];
   25774 	heap8[r3+7] = r7;
   25775 	r7 = heapU8[r0+11];
   25776 	heap8[r3+8] = r7;
   25777 	r7 = heapU8[r0+10];
   25778 	heap8[r3+9] = r7;
   25779 	r7 = heapU8[r0+9];
   25780 	heap8[r3+10] = r7;
   25781 	r7 = heapU8[r0+8];
   25782 	heap8[r3+11] = r7;
   25783 	r7 = heapU8[r0+15];
   25784 	heap8[r3+12] = r7;
   25785 	r7 = heapU8[r0+14];
   25786 	heap8[r3+13] = r7;
   25787 	r7 = heapU8[r0+13];
   25788 	heap8[r3+14] = r7;
   25789 	r7 = heapU8[r0+12];
   25790 	heap8[r3+15] = r7;
   25791 	r7 = heapU8[r0+19];
   25792 	heap8[r3+16] = r7;
   25793 	r7 = heapU8[r0+18];
   25794 	heap8[r3+17] = r7;
   25795 	r7 = heapU8[r0+17];
   25796 	heap8[r3+18] = r7;
   25797 	r7 = heapU8[r0+16];
   25798 	heap8[r3+19] = r7;
   25799 	r7 = heapU8[r0+23];
   25800 	heap8[r3+20] = r7;
   25801 	r7 = heapU8[r0+22];
   25802 	heap8[r3+21] = r7;
   25803 	r7 = heapU8[r0+21];
   25804 	heap8[r3+22] = r7;
   25805 	r7 = heapU8[r0+20];
   25806 	heap8[r3+23] = r7;
   25807 	r7 = heapU8[r0+27];
   25808 	heap8[r3+24] = r7;
   25809 	r7 = heapU8[r0+26];
   25810 	heap8[r3+25] = r7;
   25811 	r7 = heapU8[r0+25];
   25812 	heap8[r3+26] = r7;
   25813 	r7 = heapU8[r0+24];
   25814 	heap8[r3+27] = r7;
   25815 	r7 = heapU8[r0+31];
   25816 	heap8[r3+28] = r7;
   25817 	r7 = heapU8[r0+30];
   25818 	heap8[r3+29] = r7;
   25819 	r7 = heapU8[r0+29];
   25820 	heap8[r3+30] = r7;
   25821 	r7 = heapU8[r0+28];
   25822 	heap8[r3+31] = r7;
   25823 	r7 = heapU8[r0+35];
   25824 	heap8[r3+32] = r7;
   25825 	r7 = heapU8[r0+34];
   25826 	heap8[r3+33] = r7;
   25827 	r7 = heapU8[r0+33];
   25828 	heap8[r3+34] = r7;
   25829 	r7 = heapU8[r0+32];
   25830 	heap8[r3+35] = r7;
   25831 	r7 = heapU8[r0+39];
   25832 	heap8[r3+36] = r7;
   25833 	r7 = heapU8[r0+38];
   25834 	heap8[r3+37] = r7;
   25835 	r7 = heapU8[r0+37];
   25836 	heap8[r3+38] = r7;
   25837 	r7 = heapU8[r0+36];
   25838 	heap8[r3+39] = r7;
   25839 	r7 = heapU8[r0+43];
   25840 	heap8[r3+40] = r7;
   25841 	r7 = heapU8[r0+42];
   25842 	heap8[r3+41] = r7;
   25843 	r7 = heapU8[r0+41];
   25844 	heap8[r3+42] = r7;
   25845 	r7 = heapU8[r0+40];
   25846 	heap8[r3+43] = r7;
   25847 	r7 = heapU8[r0+47];
   25848 	heap8[r3+44] = r7;
   25849 	r7 = heapU8[r0+46];
   25850 	heap8[r3+45] = r7;
   25851 	r7 = heapU8[r0+45];
   25852 	heap8[r3+46] = r7;
   25853 	r7 = heapU8[r0+44];
   25854 	heap8[r3+47] = r7;
   25855 	r7 = heapU8[r0+51];
   25856 	heap8[r3+48] = r7;
   25857 	r7 = heapU8[r0+50];
   25858 	heap8[r3+49] = r7;
   25859 	r7 = heapU8[r0+49];
   25860 	heap8[r3+50] = r7;
   25861 	r7 = heapU8[r0+48];
   25862 	heap8[r3+51] = r7;
   25863 	r7 = heap32[(r1+36)];
   25864 	r8 = r7 << 8;
   25865 	r9 = r7 >>> 8;
   25866 	r10 = r7 << 24;
   25867 	r8 = r8 & 16711680;
   25868 	r9 = r9 & 65280;
   25869 	r7 = r7 >>> 24;
   25870 	r8 = r10 | r8;
   25871 	r7 = r9 | r7;
   25872 	r7 = r8 | r7;
   25873 	heap32[(r6+36)] = r7;
   25874 	r7 = heap32[(r1+42)];
   25875 	r8 = r7 << 8;
   25876 	r9 = r7 >>> 8;
   25877 	r10 = r7 << 24;
   25878 	r8 = r8 & 16711680;
   25879 	r9 = r9 & 65280;
   25880 	r7 = r7 >>> 24;
   25881 	r8 = r10 | r8;
   25882 	r7 = r9 | r7;
   25883 	r7 = r8 | r7;
   25884 }
   25885 	heap32[(r6+42)] = r7;
   25886 	r7 = heapU8[r0+60];
   25887 	heap8[r3+60] = r7;
   25888 	r7 = (r3 + 172)|0;
   25889 	r8 = heap32[(r1+14)];
   25890 	r0 = heapU8[r0+60];
   25891 	if(r0 ==0) //_LBB146_20
   25892 {
   25893 	r0 = 0;
   25894 	heap8[r3+100] = r0;
   25895 	heap32[(r6+24)] = r7;
   25896 	heap32[(r6+22)] = r8;
   25897 	heap32[(r6+23)] = r8;
   25898 _9: do {
   25899 	if(r4 !=0) //_LBB146_22
   25900 {
   25901 if(!(r8 <1)) //_LBB146_29
   25902 {
   25903 	r5 = (r5 - r8)|0;
   25904 _12: while(true){
   25905 	r2 = r0 << 6;
   25906 	r9 = heap32[(r1+24)];
   25907 	r9 = (r9 - r2)|0;
   25908 	r10 = heapU8[r9+3];
   25909 	r7 = (r7 - r2)|0;
   25910 	heap8[r7] = r10;
   25911 	r10 = heapU8[r9+2];
   25912 	heap8[r7+1] = r10;
   25913 	r10 = heapU8[r9+1];
   25914 	heap8[r7+2] = r10;
   25915 	r10 = heapU8[r9];
   25916 	heap8[r7+3] = r10;
   25917 	r10 = heapU8[r9+7];
   25918 	heap8[r7+4] = r10;
   25919 	r10 = heapU8[r9+6];
   25920 	heap8[r7+5] = r10;
   25921 	r10 = heapU8[r9+5];
   25922 	heap8[r7+6] = r10;
   25923 	r10 = heapU8[r9+4];
   25924 	heap8[r7+7] = r10;
   25925 	r10 = heapU8[r9+11];
   25926 	heap8[r7+8] = r10;
   25927 	r10 = heapU8[r9+10];
   25928 	heap8[r7+9] = r10;
   25929 	r10 = heapU8[r9+9];
   25930 	heap8[r7+10] = r10;
   25931 	r10 = heapU8[r9+8];
   25932 	heap8[r7+11] = r10;
   25933 	r10 = heapU8[r9+15];
   25934 	heap8[r7+12] = r10;
   25935 	r10 = heapU8[r9+14];
   25936 	heap8[r7+13] = r10;
   25937 	r10 = heapU8[r9+13];
   25938 	heap8[r7+14] = r10;
   25939 	r9 = heapU8[r9+12];
   25940 	heap8[r7+15] = r9;
   25941 	r7 = heap32[(r1+24)];
   25942 	r7 = (r7 - r2)|0;
   25943 	r9 = heap32[(r6+24)];
   25944 	r10 = heapU8[r7+19];
   25945 	r9 = (r9 - r2)|0;
   25946 	heap8[r9+16] = r10;
   25947 	r10 = heapU8[r7+18];
   25948 	heap8[r9+17] = r10;
   25949 	r10 = heapU8[r7+17];
   25950 	heap8[r9+18] = r10;
   25951 	r10 = heapU8[r7+16];
   25952 	heap8[r9+19] = r10;
   25953 	r10 = heapU8[r7+23];
   25954 	heap8[r9+20] = r10;
   25955 	r10 = heapU8[r7+22];
   25956 	heap8[r9+21] = r10;
   25957 	r10 = heapU8[r7+21];
   25958 	heap8[r9+22] = r10;
   25959 	r10 = heapU8[r7+20];
   25960 	heap8[r9+23] = r10;
   25961 	r10 = heapU8[r7+27];
   25962 	heap8[r9+24] = r10;
   25963 	r10 = heapU8[r7+26];
   25964 	heap8[r9+25] = r10;
   25965 	r10 = heapU8[r7+25];
   25966 	heap8[r9+26] = r10;
   25967 	r10 = heapU8[r7+24];
   25968 	heap8[r9+27] = r10;
   25969 	r10 = heapU8[r7+31];
   25970 	heap8[r9+28] = r10;
   25971 	r10 = heapU8[r7+30];
   25972 	heap8[r9+29] = r10;
   25973 	r10 = heapU8[r7+29];
   25974 	heap8[r9+30] = r10;
   25975 	r7 = heapU8[r7+28];
   25976 	heap8[r9+31] = r7;
   25977 	r7 = heap32[(r1+24)];
   25978 	r7 = (r7 - r2)|0;
   25979 	r7 = r7 >> 2;
   25980 	r7 = heap32[(r7+8)];
   25981 	r9 = r7 << 8;
   25982 	r10 = r7 >>> 8;
   25983 	r11 = heap32[(r6+24)];
   25984 	r12 = r7 << 24;
   25985 	r9 = r9 & 16711680;
   25986 	r10 = r10 & 65280;
   25987 	r7 = r7 >>> 24;
   25988 	r11 = (r11 - r2)|0;
   25989 	r9 = r12 | r9;
   25990 	r7 = r10 | r7;
   25991 	r10 = r11 >> 2;
   25992 	r7 = r9 | r7;
   25993 	heap32[(r10+8)] = r7;
   25994 	r7 = heap32[(r1+24)];
   25995 	r7 = (r7 - r2)|0;
   25996 	r7 = r7 >> 2;
   25997 	r7 = heap32[(r7+9)];
   25998 	r9 = r7 << 8;
   25999 	r10 = r7 >>> 8;
   26000 	r11 = heap32[(r6+24)];
   26001 	r12 = r7 << 24;
   26002 	r9 = r9 & 16711680;
   26003 	r10 = r10 & 65280;
   26004 	r7 = r7 >>> 24;
   26005 	r11 = (r11 - r2)|0;
   26006 	r9 = r12 | r9;
   26007 	r7 = r10 | r7;
   26008 	r10 = r11 >> 2;
   26009 	r7 = r9 | r7;
   26010 	heap32[(r10+9)] = r7;
   26011 	r7 = heap32[(r1+24)];
   26012 	r7 = (r7 - r2)|0;
   26013 	r7 = r7 >> 2;
   26014 	r7 = heap32[(r7+10)];
   26015 	r9 = r7 << 8;
   26016 	r10 = r7 >>> 8;
   26017 	r11 = heap32[(r6+24)];
   26018 	r12 = r7 << 24;
   26019 	r9 = r9 & 16711680;
   26020 	r10 = r10 & 65280;
   26021 	r7 = r7 >>> 24;
   26022 	r2 = (r11 - r2)|0;
   26023 	r9 = r12 | r9;
   26024 	r7 = r10 | r7;
   26025 	r2 = r2 >> 2;
   26026 	r7 = r9 | r7;
   26027 	heap32[(r2+10)] = r7;
   26028 	if(r5 ==r0) //_LBB146_29
   26029 {
   26030 break _9;
   26031 }
   26032 else{
   26033 	r7 = heap32[(r6+24)];
   26034 	r0 = (r0 + -1)|0;
   26035 }
   26036 }
   26037 }
   26038 }
   26039 else{
   26040 	if(r8 >0) //_LBB146_26
   26041 {
   26042 	r5 = (r5 - r8)|0;
   26043 	r0 = 0;
   26044 _17: while(true){
   26045 	r2 = r0 << 6;
   26046 	r9 = heap32[(r1+24)];
   26047 	r7 = (r7 - r2)|0;
   26048 	r9 = (r9 - r2)|0;
   26049 	r7 = r7 >> 2;
   26050 	r9 = r9 >> 2;
   26051 	heap32[(r7)] = heap32[(r9)];
   26052 	heap32[(r7+1)] = heap32[(r9+1)];
   26053 	heap32[(r7+2)] = heap32[(r9+2)];
   26054 	heap32[(r7+3)] = heap32[(r9+3)];
   26055 	r7 = heap32[(r6+24)];
   26056 	r9 = heap32[(r1+24)];
   26057 	r7 = (r7 - r2)|0;
   26058 	r9 = (r9 - r2)|0;
   26059 	r7 = r7 >> 2;
   26060 	r9 = r9 >> 2;
   26061 	heap32[(r7+4)] = heap32[(r9+4)];
   26062 	heap32[(r7+5)] = heap32[(r9+5)];
   26063 	heap32[(r7+6)] = heap32[(r9+6)];
   26064 	heap32[(r7+7)] = heap32[(r9+7)];
   26065 	r7 = heap32[(r1+24)];
   26066 	r7 = (r7 - r2)|0;
   26067 	r7 = r7 >> 2;
   26068 	r9 = heap32[(r6+24)];
   26069 	r9 = (r9 - r2)|0;
   26070 	r7 = heap32[(r7+8)];
   26071 	r9 = r9 >> 2;
   26072 	heap32[(r9+8)] = r7;
   26073 	r7 = heap32[(r1+24)];
   26074 	r7 = (r7 - r2)|0;
   26075 	r7 = r7 >> 2;
   26076 	r9 = heap32[(r6+24)];
   26077 	r9 = (r9 - r2)|0;
   26078 	r7 = heap32[(r7+9)];
   26079 	r9 = r9 >> 2;
   26080 	heap32[(r9+9)] = r7;
   26081 	r7 = heap32[(r1+24)];
   26082 	r7 = (r7 - r2)|0;
   26083 	r7 = r7 >> 2;
   26084 	r9 = heap32[(r6+24)];
   26085 	r2 = (r9 - r2)|0;
   26086 	r7 = heap32[(r7+10)];
   26087 	r2 = r2 >> 2;
   26088 	heap32[(r2+10)] = r7;
   26089 	if(r5 ==r0) //_LBB146_29
   26090 {
   26091 break _9;
   26092 }
   26093 else{
   26094 	r7 = heap32[(r6+24)];
   26095 	r0 = (r0 + -1)|0;
   26096 }
   26097 }
   26098 }
   26099 }
   26100 } while(0);
   26101 	r5 = heap32[(r6+24)];
   26102 if(!(r5 ==0)) //_LBB146_33
   26103 {
   26104 	r0 = heapU8[r3+100];
   26105 if(!(r0 ==0)) //_LBB146_32
   26106 {
   26107 	r0 = gNumAlignedFree;
   26108 	r0 = r0 >> 2;
   26109 	r2 = heap32[(r0)];
   26110 	r2 = (r2 + 1)|0;
   26111 	r5 = r5 >> 2;
   26112 	heap32[(r0)] = r2;
   26113 	r5 = heap32[(r5+-1)];
   26114 	heap32[(g0)] = r5;
   26115 	free(i7);
   26116 }
   26117 	heap32[(r6+24)] = 0;
   26118 }
   26119 	r5 = r8 << 6;
   26120 	r0 = 0;
   26121 	heap8[r3+100] = r0;
   26122 	heap32[(r6+24)] = 0;
   26123 	heap32[(r6+22)] = 0;
   26124 	heap32[(r6+23)] = 0;
   26125 }
   26126 else{
   26127 	heap8[r3+140] = r2;
   26128 	heap32[(r6+34)] = r7;
   26129 	heap32[(r6+32)] = r8;
   26130 	heap32[(r6+33)] = r8;
   26131 _28: do {
   26132 	if(r4 !=0) //_LBB146_8
   26133 {
   26134 if(!(r8 <1)) //_LBB146_15
   26135 {
   26136 	r5 = (r5 - r8)|0;
   26137 _31: while(true){
   26138 	r0 = heap32[(r1+34)];
   26139 	r9 = r2 << 4;
   26140 	r0 = (r0 - r9)|0;
   26141 	r0 = heapU16[(r0)>>1];
   26142 	r10 = r0 << 8;
   26143 	r0 = r0 << 24;
   26144 	r10 = r10 & 16711680;
   26145 	r0 = r0 | r10;
   26146 	r7 = (r7 - r9)|0;
   26147 	r0 = r0 >>> 16;
   26148 	heap16[(r7)>>1] = r0;
   26149 	r7 = heap32[(r1+34)];
   26150 	r7 = (r7 - r9)|0;
   26151 	r7 = heapU16[(r7+2)>>1];
   26152 	r0 = r7 << 8;
   26153 	r7 = r7 << 24;
   26154 	r0 = r0 & 16711680;
   26155 	r10 = heap32[(r6+34)];
   26156 	r7 = r7 | r0;
   26157 	r0 = (r10 - r9)|0;
   26158 	r7 = r7 >>> 16;
   26159 	heap16[(r0+2)>>1] = r7;
   26160 	r7 = heap32[(r1+34)];
   26161 	r7 = (r7 - r9)|0;
   26162 	r7 = heapU16[(r7+4)>>1];
   26163 	r0 = r7 << 8;
   26164 	r7 = r7 << 24;
   26165 	r0 = r0 & 16711680;
   26166 	r10 = heap32[(r6+34)];
   26167 	r7 = r7 | r0;
   26168 	r0 = (r10 - r9)|0;
   26169 	r7 = r7 >>> 16;
   26170 	heap16[(r0+4)>>1] = r7;
   26171 	r7 = heap32[(r1+34)];
   26172 	r7 = (r7 - r9)|0;
   26173 	r7 = heapU16[(r7+6)>>1];
   26174 	r0 = r7 << 8;
   26175 	r7 = r7 << 24;
   26176 	r0 = r0 & 16711680;
   26177 	r10 = heap32[(r6+34)];
   26178 	r7 = r7 | r0;
   26179 	r0 = (r10 - r9)|0;
   26180 	r7 = r7 >>> 16;
   26181 	heap16[(r0+6)>>1] = r7;
   26182 	r7 = heap32[(r1+34)];
   26183 	r7 = (r7 - r9)|0;
   26184 	r7 = heapU16[(r7+8)>>1];
   26185 	r0 = r7 << 8;
   26186 	r7 = r7 << 24;
   26187 	r0 = r0 & 16711680;
   26188 	r10 = heap32[(r6+34)];
   26189 	r7 = r7 | r0;
   26190 	r0 = (r10 - r9)|0;
   26191 	r7 = r7 >>> 16;
   26192 	heap16[(r0+8)>>1] = r7;
   26193 	r7 = heap32[(r1+34)];
   26194 	r7 = (r7 - r9)|0;
   26195 	r7 = heapU16[(r7+10)>>1];
   26196 	r0 = r7 << 8;
   26197 	r7 = r7 << 24;
   26198 	r0 = r0 & 16711680;
   26199 	r10 = heap32[(r6+34)];
   26200 	r7 = r7 | r0;
   26201 	r0 = (r10 - r9)|0;
   26202 	r7 = r7 >>> 16;
   26203 	heap16[(r0+10)>>1] = r7;
   26204 	r7 = heap32[(r1+34)];
   26205 	r7 = (r7 - r9)|0;
   26206 	r7 = r7 >> 2;
   26207 	r7 = heap32[(r7+3)];
   26208 	r0 = r7 << 8;
   26209 	r10 = r7 >>> 8;
   26210 	r11 = heap32[(r6+34)];
   26211 	r12 = r7 << 24;
   26212 	r0 = r0 & 16711680;
   26213 	r10 = r10 & 65280;
   26214 	r7 = r7 >>> 24;
   26215 	r9 = (r11 - r9)|0;
   26216 	r0 = r12 | r0;
   26217 	r7 = r10 | r7;
   26218 	r9 = r9 >> 2;
   26219 	r7 = r0 | r7;
   26220 	heap32[(r9+3)] = r7;
   26221 	if(r5 ==r2) //_LBB146_15
   26222 {
   26223 break _28;
   26224 }
   26225 else{
   26226 	r7 = heap32[(r6+34)];
   26227 	r2 = (r2 + -1)|0;
   26228 }
   26229 }
   26230 }
   26231 }
   26232 else{
   26233 	if(r8 >0) //_LBB146_12
   26234 {
   26235 	r5 = (r5 - r8)|0;
   26236 	r0 = 0;
   26237 _36: while(true){
   26238 	r2 = r0 << 4;
   26239 	r9 = heap32[(r1+34)];
   26240 	r9 = (r9 - r2)|0;
   26241 	r9 = heapU16[(r9)>>1];
   26242 	r7 = (r7 - r2)|0;
   26243 	heap16[(r7)>>1] = r9;
   26244 	r7 = heap32[(r1+34)];
   26245 	r7 = (r7 - r2)|0;
   26246 	r9 = heap32[(r6+34)];
   26247 	r7 = heapU16[(r7+2)>>1];
   26248 	r9 = (r9 - r2)|0;
   26249 	heap16[(r9+2)>>1] = r7;
   26250 	r7 = heap32[(r1+34)];
   26251 	r7 = (r7 - r2)|0;
   26252 	r9 = heap32[(r6+34)];
   26253 	r7 = heapU16[(r7+4)>>1];
   26254 	r9 = (r9 - r2)|0;
   26255 	heap16[(r9+4)>>1] = r7;
   26256 	r7 = heap32[(r1+34)];
   26257 	r7 = (r7 - r2)|0;
   26258 	r9 = heap32[(r6+34)];
   26259 	r7 = heapU16[(r7+6)>>1];
   26260 	r9 = (r9 - r2)|0;
   26261 	heap16[(r9+6)>>1] = r7;
   26262 	r7 = heap32[(r1+34)];
   26263 	r7 = (r7 - r2)|0;
   26264 	r9 = heap32[(r6+34)];
   26265 	r7 = heapU16[(r7+8)>>1];
   26266 	r9 = (r9 - r2)|0;
   26267 	heap16[(r9+8)>>1] = r7;
   26268 	r7 = heap32[(r1+34)];
   26269 	r7 = (r7 - r2)|0;
   26270 	r9 = heap32[(r6+34)];
   26271 	r7 = heapU16[(r7+10)>>1];
   26272 	r9 = (r9 - r2)|0;
   26273 	heap16[(r9+10)>>1] = r7;
   26274 	r7 = heap32[(r1+34)];
   26275 	r7 = (r7 - r2)|0;
   26276 	r7 = r7 >> 2;
   26277 	r9 = heap32[(r6+34)];
   26278 	r2 = (r9 - r2)|0;
   26279 	r7 = heap32[(r7+3)];
   26280 	r2 = r2 >> 2;
   26281 	heap32[(r2+3)] = r7;
   26282 	if(r5 ==r0) //_LBB146_15
   26283 {
   26284 break _28;
   26285 }
   26286 else{
   26287 	r7 = heap32[(r6+34)];
   26288 	r0 = (r0 + -1)|0;
   26289 }
   26290 }
   26291 }
   26292 }
   26293 } while(0);
   26294 	r5 = heap32[(r6+34)];
   26295 if(!(r5 ==0)) //_LBB146_19
   26296 {
   26297 	r7 = heapU8[r3+140];
   26298 if(!(r7 ==0)) //_LBB146_18
   26299 {
   26300 	r7 = gNumAlignedFree;
   26301 	r7 = r7 >> 2;
   26302 	r0 = heap32[(r7)];
   26303 	r0 = (r0 + 1)|0;
   26304 	r5 = r5 >> 2;
   26305 	heap32[(r7)] = r0;
   26306 	r5 = heap32[(r5+-1)];
   26307 	heap32[(g0)] = r5;
   26308 	free(i7);
   26309 }
   26310 	heap32[(r6+34)] = 0;
   26311 }
   26312 	r5 = r8 << 4;
   26313 	r7 = 0;
   26314 	heap8[r3+140] = r7;
   26315 	heap32[(r6+34)] = 0;
   26316 	heap32[(r6+32)] = 0;
   26317 	heap32[(r6+33)] = 0;
   26318 }
   26319 	r0 = heap32[(r6+40)];
   26320 	r2 = heap32[(r1+42)];
   26321 if(!(r0 ==0)) //_LBB146_38
   26322 {
   26323 	r7 = heapU8[r3+164];
   26324 if(!(r7 ==0)) //_LBB146_37
   26325 {
   26326 	r7 = gNumAlignedFree;
   26327 	r7 = r7 >> 2;
   26328 	r8 = heap32[(r7)];
   26329 	r8 = (r8 + 1)|0;
   26330 	r0 = r0 >> 2;
   26331 	heap32[(r7)] = r8;
   26332 	r0 = heap32[(r0+-1)];
   26333 	heap32[(g0)] = r0;
   26334 	free(i7);
   26335 }
   26336 	heap32[(r6+40)] = 0;
   26337 }
   26338 	r0 = (r5 + r3)|0;
   26339 	r0 = (r0 + 172)|0;
   26340 	r5 = 0;
   26341 	heap8[r3+164] = r5;
   26342 	heap32[(r6+40)] = r0;
   26343 	heap32[(r6+38)] = r2;
   26344 	heap32[(r6+39)] = r2;
   26345 	r2 = heap32[(r1+42)];
   26346 _53: do {
   26347 	if(r4 !=0) //_LBB146_40
   26348 {
   26349 if(!(r2 <1)) //_LBB146_46
   26350 {
   26351 __label__ = 41; //SET chanka
   26352 _55: while(true){
   26353 	r2 = r5 << 5;
   26354 	r4 = heap32[(r1+40)];
   26355 	r4 = heapU16[(r4+r2)>>1];
   26356 	r7 = r4 << 8;
   26357 	r4 = r4 << 24;
   26358 	r7 = r7 & 16711680;
   26359 	r4 = r4 | r7;
   26360 	r4 = r4 >>> 16;
   26361 	heap16[(r0+r2)>>1] = r4;
   26362 	r0 = heap32[(r1+40)];
   26363 	r0 = (r0 + r2)|0;
   26364 	r0 = heapU16[(r0+2)>>1];
   26365 	r4 = r0 << 8;
   26366 	r0 = r0 << 24;
   26367 	r4 = r4 & 16711680;
   26368 	r7 = heap32[(r6+40)];
   26369 	r0 = r0 | r4;
   26370 	r4 = (r7 + r2)|0;
   26371 	r0 = r0 >>> 16;
   26372 	heap16[(r4+2)>>1] = r0;
   26373 	r0 = heap32[(r1+40)];
   26374 	r0 = (r0 + r2)|0;
   26375 	r0 = heapU16[(r0+4)>>1];
   26376 	r4 = r0 << 8;
   26377 	r0 = r0 << 24;
   26378 	r4 = r4 & 16711680;
   26379 	r7 = heap32[(r6+40)];
   26380 	r0 = r0 | r4;
   26381 	r4 = (r7 + r2)|0;
   26382 	r0 = r0 >>> 16;
   26383 	heap16[(r4+4)>>1] = r0;
   26384 	r0 = heap32[(r1+40)];
   26385 	r0 = (r0 + r2)|0;
   26386 	r0 = heapU16[(r0+6)>>1];
   26387 	r4 = r0 << 8;
   26388 	r0 = r0 << 24;
   26389 	r4 = r4 & 16711680;
   26390 	r7 = heap32[(r6+40)];
   26391 	r0 = r0 | r4;
   26392 	r4 = (r7 + r2)|0;
   26393 	r0 = r0 >>> 16;
   26394 	heap16[(r4+6)>>1] = r0;
   26395 	r0 = heap32[(r1+40)];
   26396 	r0 = (r0 + r2)|0;
   26397 	r0 = heapU16[(r0+8)>>1];
   26398 	r4 = r0 << 8;
   26399 	r0 = r0 << 24;
   26400 	r4 = r4 & 16711680;
   26401 	r7 = heap32[(r6+40)];
   26402 	r0 = r0 | r4;
   26403 	r4 = (r7 + r2)|0;
   26404 	r0 = r0 >>> 16;
   26405 	heap16[(r4+8)>>1] = r0;
   26406 	r0 = heap32[(r1+40)];
   26407 	r0 = (r0 + r2)|0;
   26408 	r0 = heapU16[(r0+10)>>1];
   26409 	r4 = r0 << 8;
   26410 	r0 = r0 << 24;
   26411 	r4 = r4 & 16711680;
   26412 	r7 = heap32[(r6+40)];
   26413 	r0 = r0 | r4;
   26414 	r4 = (r7 + r2)|0;
   26415 	r0 = r0 >>> 16;
   26416 	heap16[(r4+10)>>1] = r0;
   26417 	r0 = heap32[(r1+40)];
   26418 	r0 = (r0 + r2)|0;
   26419 	r0 = r0 >> 2;
   26420 	r0 = heap32[(r0+3)];
   26421 	r4 = r0 << 8;
   26422 	r7 = r0 >>> 8;
   26423 	r8 = heap32[(r6+40)];
   26424 	r9 = r0 << 24;
   26425 	r4 = r4 & 16711680;
   26426 	r7 = r7 & 65280;
   26427 	r0 = r0 >>> 24;
   26428 	r8 = (r8 + r2)|0;
   26429 	r4 = r9 | r4;
   26430 	r0 = r7 | r0;
   26431 	r7 = r8 >> 2;
   26432 	r0 = r4 | r0;
   26433 	heap32[(r7+3)] = r0;
   26434 	r0 = heap32[(r1+40)];
   26435 	r0 = (r0 + r2)|0;
   26436 	r0 = r0 >> 2;
   26437 	r0 = heap32[(r0+4)];
   26438 	r4 = r0 << 8;
   26439 	r7 = r0 >>> 8;
   26440 	r8 = heap32[(r6+40)];
   26441 	r9 = r0 << 24;
   26442 	r4 = r4 & 16711680;
   26443 	r7 = r7 & 65280;
   26444 	r0 = r0 >>> 24;
   26445 	r2 = (r8 + r2)|0;
   26446 	r4 = r9 | r4;
   26447 	r0 = r7 | r0;
   26448 	r5 = (r5 + 1)|0;
   26449 	r2 = r2 >> 2;
   26450 	r0 = r4 | r0;
   26451 	heap32[(r2+4)] = r0;
   26452 	r0 = heap32[(r1+42)];
   26453 	if(r0 <=r5) //_LBB146_46
   26454 {
   26455 break _53;
   26456 }
   26457 else{
   26458 	r0 = heap32[(r6+40)];
   26459 }
   26460 }
   26461 }
   26462 }
   26463 else{
   26464 	if(r2 >0) //_LBB146_43
   26465 {
   26466 	r2 = 0;
   26467 _60: while(true){
   26468 	r4 = r2 << 5;
   26469 	r5 = heap32[(r1+40)];
   26470 	r5 = heapU16[(r5+r4)>>1];
   26471 	heap16[(r0+r4)>>1] = r5;
   26472 	r0 = heap32[(r1+40)];
   26473 	r0 = (r0 + r4)|0;
   26474 	r5 = heap32[(r6+40)];
   26475 	r0 = heapU16[(r0+2)>>1];
   26476 	r5 = (r5 + r4)|0;
   26477 	heap16[(r5+2)>>1] = r0;
   26478 	r0 = heap32[(r1+40)];
   26479 	r0 = (r0 + r4)|0;
   26480 	r5 = heap32[(r6+40)];
   26481 	r0 = heapU16[(r0+4)>>1];
   26482 	r5 = (r5 + r4)|0;
   26483 	heap16[(r5+4)>>1] = r0;
   26484 	r0 = heap32[(r1+40)];
   26485 	r0 = (r0 + r4)|0;
   26486 	r5 = heap32[(r6+40)];
   26487 	r0 = heapU16[(r0+6)>>1];
   26488 	r5 = (r5 + r4)|0;
   26489 	heap16[(r5+6)>>1] = r0;
   26490 	r0 = heap32[(r1+40)];
   26491 	r0 = (r0 + r4)|0;
   26492 	r5 = heap32[(r6+40)];
   26493 	r0 = heapU16[(r0+8)>>1];
   26494 	r5 = (r5 + r4)|0;
   26495 	heap16[(r5+8)>>1] = r0;
   26496 	r0 = heap32[(r1+40)];
   26497 	r0 = (r0 + r4)|0;
   26498 	r5 = heap32[(r6+40)];
   26499 	r0 = heapU16[(r0+10)>>1];
   26500 	r5 = (r5 + r4)|0;
   26501 	heap16[(r5+10)>>1] = r0;
   26502 	r0 = heap32[(r1+40)];
   26503 	r0 = (r0 + r4)|0;
   26504 	r0 = r0 >> 2;
   26505 	r5 = heap32[(r6+40)];
   26506 	r5 = (r5 + r4)|0;
   26507 	r0 = heap32[(r0+3)];
   26508 	r5 = r5 >> 2;
   26509 	heap32[(r5+3)] = r0;
   26510 	r0 = heap32[(r1+40)];
   26511 	r0 = (r0 + r4)|0;
   26512 	r0 = r0 >> 2;
   26513 	r5 = heap32[(r6+40)];
   26514 	r5 = (r5 + r4)|0;
   26515 	r0 = heap32[(r0+4)];
   26516 	r5 = r5 >> 2;
   26517 	heap32[(r5+4)] = r0;
   26518 	r0 = heap32[(r6+40)];
   26519 	r0 = (r0 + r4)|0;
   26520 	r0 = r0 >> 2;
   26521 	heap32[(r0+5)] = 0;
   26522 	r0 = heap32[(r6+40)];
   26523 	r0 = (r0 + r4)|0;
   26524 	r0 = r0 >> 2;
   26525 	heap32[(r0+6)] = 0;
   26526 	r0 = heap32[(r6+40)];
   26527 	r0 = (r0 + r4)|0;
   26528 	r2 = (r2 + 1)|0;
   26529 	r0 = r0 >> 2;
   26530 	heap32[(r0+7)] = 0;
   26531 	r0 = heap32[(r1+42)];
   26532 	if(r0 <=r2) //_LBB146_46
   26533 {
   26534 break _53;
   26535 }
   26536 else{
   26537 	r0 = heap32[(r6+40)];
   26538 }
   26539 }
   26540 }
   26541 }
   26542 } while(0);
   26543 	r0 = heap32[(r6+40)];
   26544 if(!(r0 ==0)) //_LBB146_50
   26545 {
   26546 	r1 = heapU8[r3+164];
   26547 if(!(r1 ==0)) //_LBB146_49
   26548 {
   26549 	r1 = gNumAlignedFree;
   26550 	r1 = r1 >> 2;
   26551 	r2 = heap32[(r1)];
   26552 	r2 = (r2 + 1)|0;
   26553 	r0 = r0 >> 2;
   26554 	heap32[(r1)] = r2;
   26555 	r0 = heap32[(r0+-1)];
   26556 	heap32[(g0)] = r0;
   26557 	free(i7);
   26558 }
   26559 	heap32[(r6+40)] = 0;
   26560 }
   26561 	r0 = 0;
   26562 	heap8[r3+164] = r0;
   26563 	heap32[(r6+40)] = 0;
   26564 	heap32[(r6+38)] = 0;
   26565 	heap32[(r6+39)] = 0;
   26566 	heap32[(r6)] = 0;
   26567 	r0 = 1;
   26568 	r_g0 = r0;
   26569 	return;
   26570 }
   26571 else{
   26572 	r0 = _2E_str638;
   26573 	r1 = _2E_str537;
   26574 	heap32[(g0)] = r0;
   26575 	heap32[(g0+1)] = r1;
   26576 	heap32[(g0+2)] = 847;
   26577 	_assert(i7);
   26578 }
   26579 }
   26580 
   26581 function _ZN14btQuantizedBvh16deSerializeFloatER23btQuantizedBvhFloatData(sp)
   26582 {
   26583 	var i7;
   26584 	var fp = sp>>2;
   26585 	var r0;
   26586 	var r1;
   26587 	var r2;
   26588 	var r3;
   26589 	var r4;
   26590 	var r5;
   26591 	var r6;
   26592 	var r7;
   26593 	var r8;
   26594 	var r9;
   26595 	var r10;
   26596 	var r11;
   26597 	var r12;
   26598 	var r13;
   26599 	var r14;
   26600 	var r15;
   26601 	var r16;
   26602 	var r17;
   26603 	var r18;
   26604 var __label__ = 0;
   26605 	i7 = sp + -16;var g0 = i7>>2; // save stack
   26606 	r0 = heap32[(fp)];
   26607 	r1 = heap32[(fp+1)];
   26608 	r1 = r1 >> 2;
   26609 	r2 = r0 >> 2;
   26610 	heap32[(r2+5)] = heap32[(r1+4)];
   26611 	heap32[(r2+6)] = heap32[(r1+5)];
   26612 	heap32[(r2+7)] = heap32[(r1+6)];
   26613 	heap32[(r2+8)] = heap32[(r1+7)];
   26614 	heap32[(r2+1)] = heap32[(r1)];
   26615 	heap32[(r2+2)] = heap32[(r1+1)];
   26616 	heap32[(r2+3)] = heap32[(r1+2)];
   26617 	heap32[(r2+4)] = heap32[(r1+3)];
   26618 	heap32[(r2+9)] = heap32[(r1+8)];
   26619 	heap32[(r2+10)] = heap32[(r1+9)];
   26620 	heap32[(r2+11)] = heap32[(r1+10)];
   26621 	heap32[(r2+12)] = heap32[(r1+11)];
   26622 	r3 = heap32[(r1+12)];
   26623 	heap32[(r2+14)] = r3;
   26624 	r3 = 0;
   26625 	r4 = heap32[(r1+13)];
   26626 	r4 = r4 != r3;
   26627 	r4 = r4 & 1;
   26628 	heap8[r0+60] = r4;
   26629 	r4 = heap32[(r2+22)];
   26630 	r5 = heap32[(r1+14)];
   26631 if(!(r4 >=r5)) //_LBB147_17
   26632 {
   26633 	r6 = heap32[(r2+23)];
   26634 if(!(r6 >=r5)) //_LBB147_17
   26635 {
   26636 	if(r5 !=0) //_LBB147_4
   26637 {
   26638 	r6 = gNumAlignedAllocs;
   26639 	r6 = r6 >> 2;
   26640 	r7 = heap32[(r6)];
   26641 	r7 = (r7 + 1)|0;
   26642 	r8 = r5 << 6;
   26643 	heap32[(r6)] = r7;
   26644 	r6 = r8 | 19;
   26645 	heap32[(g0)] = r6;
   26646 	malloc(i7);
   26647 	r6 = r_g0;
   26648 	if(r6 !=0) //_LBB147_6
   26649 {
   26650 	r7 = 0;
   26651 	r8 = (r6 + 4)|0;
   26652 	r7 = (r7 - r8)|0;
   26653 	r7 = r7 & 15;
   26654 	r7 = (r6 + r7)|0;
   26655 	r8 = (r7 + 4)|0;
   26656 	r7 = r7 >> 2;
   26657 	heap32[(r7)] = r6;
   26658 	r6 = r8;
   26659 }
   26660 }
   26661 else{
   26662 	r6 = 0;
   26663 }
   26664 	r7 = (r0 + 96)|0;
   26665 	if(r4 <1) //_LBB147_9
   26666 {
   26667 	r4 = r7 >> 2;
   26668 	r9 = heap32[(r4)];
   26669 }
   26670 else{
   26671 	r8 = 0;
   26672 _12: while(true){
   26673 	r9 = r7 >> 2;
   26674 	r9 = heap32[(r9)];
   26675 	r10 = (r6 + r8)|0;
   26676 	r11 = (r9 + r8)|0;
   26677 	heap32[(g0)] = r10;
   26678 	heap32[(g0+1)] = r11;
   26679 	heap32[(g0+2)] = 64;
   26680 	r4 = (r4 + -1)|0;
   26681 	r8 = (r8 + 64)|0;
   26682 	memcpy(i7);
   26683 if(!(r4 !=0)) //_LBB147_10
   26684 {
   26685 break _12;
   26686 }
   26687 }
   26688 	r7 = (r0 + 96)|0;
   26689 }
   26690 if(!(r9 ==0)) //_LBB147_16
   26691 {
   26692 	r4 = heapU8[r0+100];
   26693 if(!(r4 ==0)) //_LBB147_15
   26694 {
   26695 	r4 = gNumAlignedFree;
   26696 	r4 = r4 >> 2;
   26697 	r8 = heap32[(r4)];
   26698 	r8 = (r8 + 1)|0;
   26699 	r9 = r9 >> 2;
   26700 	heap32[(r4)] = r8;
   26701 	r4 = heap32[(r9+-1)];
   26702 	heap32[(g0)] = r4;
   26703 	free(i7);
   26704 }
   26705 	r4 = r7 >> 2;
   26706 	heap32[(r4)] = 0;
   26707 }
   26708 	r4 = 1;
   26709 	r7 = r7 >> 2;
   26710 	heap8[r0+100] = r4;
   26711 	heap32[(r7)] = r6;
   26712 	heap32[(r2+23)] = r5;
   26713 }
   26714 }
   26715 	heap32[(r2+22)] = r5;
   26716 _23: do {
   26717 if(!(r5 <1)) //_LBB147_20
   26718 {
   26719 	r4 = 0;
   26720 	r6 = heap32[(r1+16)];
   26721 	r5 = (r4 - r5)|0;
   26722 _25: while(true){
   26723 	r7 = (r4 * -12)|0;
   26724 	r7 = r7 << 2;
   26725 	r8 = r4 << 6;
   26726 	r9 = heap32[(r2+24)];
   26727 	r7 = (r6 + r7)|0;
   26728 	r9 = (r9 - r8)|0;
   26729 	r7 = r7 >> 2;
   26730 	r9 = r9 >> 2;
   26731 	heap32[(r9+4)] = heap32[(r7+4)];
   26732 	heap32[(r9+5)] = heap32[(r7+5)];
   26733 	heap32[(r9+6)] = heap32[(r7+6)];
   26734 	heap32[(r9+7)] = heap32[(r7+7)];
   26735 	r9 = heap32[(r2+24)];
   26736 	r9 = (r9 - r8)|0;
   26737 	r9 = r9 >> 2;
   26738 	heap32[(r9)] = heap32[(r7)];
   26739 	heap32[(r9+1)] = heap32[(r7+1)];
   26740 	heap32[(r9+2)] = heap32[(r7+2)];
   26741 	heap32[(r9+3)] = heap32[(r7+3)];
   26742 	r9 = heap32[(r2+24)];
   26743 	r9 = (r9 - r8)|0;
   26744 	r10 = heap32[(r7+8)];
   26745 	r9 = r9 >> 2;
   26746 	heap32[(r9+8)] = r10;
   26747 	r9 = heap32[(r2+24)];
   26748 	r9 = (r9 - r8)|0;
   26749 	r10 = heap32[(r7+9)];
   26750 	r9 = r9 >> 2;
   26751 	heap32[(r9+9)] = r10;
   26752 	r9 = heap32[(r2+24)];
   26753 	r8 = (r9 - r8)|0;
   26754 	r7 = heap32[(r7+10)];
   26755 	r4 = (r4 + -1)|0;
   26756 	r8 = r8 >> 2;
   26757 	heap32[(r8+10)] = r7;
   26758 	if(r5 !=r4) //_LBB147_19
   26759 {
   26760 continue _25;
   26761 }
   26762 else{
   26763 break _23;
   26764 }
   26765 }
   26766 }
   26767 } while(0);
   26768 	r4 = heap32[(r2+32)];
   26769 	r5 = heap32[(r1+15)];
   26770 _28: do {
   26771 if(!(r4 >=r5)) //_LBB147_23
   26772 {
   26773 	r6 = (r0 + 124)|0;
   26774 	heap32[(g0)] = r6;
   26775 	heap32[(g0+1)] = r5;
   26776 	r6 = (r5 - r4)|0;
   26777 	r4 = r4 << 4;
   26778 	_ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(i7);
   26779 _30: while(true){
   26780 	r7 = heap32[(r2+34)];
   26781 	r7 = (r7 + r4)|0;
   26782 	r7 = r7 >> 2;
   26783 	r6 = (r6 + -1)|0;
   26784 	r4 = (r4 + 16)|0;
   26785 	heap32[(r7)] = 0;
   26786 	heap32[(r7+1)] = 0;
   26787 	heap32[(r7+2)] = 0;
   26788 	heap32[(r7+3)] = 0;
   26789 	if(r6 !=0) //_LBB147_22
   26790 {
   26791 continue _30;
   26792 }
   26793 else{
   26794 break _28;
   26795 }
   26796 }
   26797 }
   26798 } while(0);
   26799 	heap32[(r2+32)] = r5;
   26800 _33: do {
   26801 if(!(r5 <1)) //_LBB147_26
   26802 {
   26803 	r4 = 0;
   26804 	r6 = heap32[(r1+17)];
   26805 	r5 = (r4 - r5)|0;
   26806 _35: while(true){
   26807 	r7 = r4 << 4;
   26808 	r8 = (r6 - r7)|0;
   26809 	r9 = r8 >> 2;
   26810 	r10 = heap32[(r2+34)];
   26811 	r10 = (r10 - r7)|0;
   26812 	r9 = heap32[(r9+3)];
   26813 	r10 = r10 >> 2;
   26814 	heap32[(r10+3)] = r9;
   26815 	r9 = heap32[(r2+34)];
   26816 	r10 = heapU16[(r8+6)>>1];
   26817 	r9 = (r9 - r7)|0;
   26818 	heap16[(r9+6)>>1] = r10;
   26819 	r9 = heap32[(r2+34)];
   26820 	r10 = heapU16[(r8+8)>>1];
   26821 	r9 = (r9 - r7)|0;
   26822 	heap16[(r9+8)>>1] = r10;
   26823 	r9 = heap32[(r2+34)];
   26824 	r10 = heapU16[(r8+10)>>1];
   26825 	r9 = (r9 - r7)|0;
   26826 	heap16[(r9+10)>>1] = r10;
   26827 	r9 = heap32[(r2+34)];
   26828 	r10 = heapU16[(r8)>>1];
   26829 	r9 = (r9 - r7)|0;
   26830 	heap16[(r9)>>1] = r10;
   26831 	r9 = heap32[(r2+34)];
   26832 	r10 = heapU16[(r8+2)>>1];
   26833 	r9 = (r9 - r7)|0;
   26834 	heap16[(r9+2)>>1] = r10;
   26835 	r9 = heap32[(r2+34)];
   26836 	r8 = heapU16[(r8+4)>>1];
   26837 	r4 = (r4 + -1)|0;
   26838 	r7 = (r9 - r7)|0;
   26839 	heap16[(r7+4)>>1] = r8;
   26840 	if(r5 !=r4) //_LBB147_25
   26841 {
   26842 continue _35;
   26843 }
   26844 else{
   26845 break _33;
   26846 }
   26847 }
   26848 }
   26849 } while(0);
   26850 	r4 = heap32[(r1+19)];
   26851 	heap32[(r2+36)] = r4;
   26852 	r4 = heap32[(r2+38)];
   26853 	r5 = heap32[(r1+20)];
   26854 if(!(r4 >=r5)) //_LBB147_43
   26855 {
   26856 	r6 = heap32[(r2+39)];
   26857 if(!(r6 >=r5)) //_LBB147_43
   26858 {
   26859 	if(r5 !=0) //_LBB147_30
   26860 {
   26861 	r6 = gNumAlignedAllocs;
   26862 	r6 = r6 >> 2;
   26863 	r7 = heap32[(r6)];
   26864 	r7 = (r7 + 1)|0;
   26865 	r8 = r5 << 5;
   26866 	heap32[(r6)] = r7;
   26867 	r6 = r8 | 19;
   26868 	heap32[(g0)] = r6;
   26869 	malloc(i7);
   26870 	r6 = r_g0;
   26871 	if(r6 !=0) //_LBB147_32
   26872 {
   26873 	r7 = 0;
   26874 	r8 = (r6 + 4)|0;
   26875 	r7 = (r7 - r8)|0;
   26876 	r7 = r7 & 15;
   26877 	r7 = (r6 + r7)|0;
   26878 	r8 = (r7 + 4)|0;
   26879 	r7 = r7 >> 2;
   26880 	heap32[(r7)] = r6;
   26881 	r6 = r8;
   26882 }
   26883 }
   26884 else{
   26885 	r6 = 0;
   26886 }
   26887 	r7 = (r0 + 160)|0;
   26888 	if(r4 <1) //_LBB147_35
   26889 {
   26890 	r4 = r7 >> 2;
   26891 	r9 = heap32[(r4)];
   26892 }
   26893 else{
   26894 	r8 = 0;
   26895 _49: while(true){
   26896 	r9 = r7 >> 2;
   26897 	r9 = heap32[(r9)];
   26898 	r10 = (r9 + r8)|0;
   26899 	r10 = r10 >> 2;
   26900 	r11 = (r6 + r8)|0;
   26901 	r4 = (r4 + -1)|0;
   26902 	r8 = (r8 + 32)|0;
   26903 	r12 = heap32[(r10)];
   26904 	r11 = r11 >> 2;
   26905 	r13 = heap32[(r10+1)];
   26906 	r14 = heap32[(r10+2)];
   26907 	r15 = heap32[(r10+3)];
   26908 	r16 = heap32[(r10+4)];
   26909 	r17 = heap32[(r10+5)];
   26910 	r18 = heap32[(r10+6)];
   26911 	r10 = heap32[(r10+7)];
   26912 	heap32[(r11)] = r12;
   26913 	heap32[(r11+1)] = r13;
   26914 	heap32[(r11+2)] = r14;
   26915 	heap32[(r11+3)] = r15;
   26916 	heap32[(r11+4)] = r16;
   26917 	heap32[(r11+5)] = r17;
   26918 	heap32[(r11+6)] = r18;
   26919 	heap32[(r11+7)] = r10;
   26920 if(!(r4 !=0)) //_LBB147_36
   26921 {
   26922 break _49;
   26923 }
   26924 }
   26925 	r7 = (r0 + 160)|0;
   26926 }
   26927 if(!(r9 ==0)) //_LBB147_42
   26928 {
   26929 	r4 = heapU8[r0+164];
   26930 if(!(r4 ==0)) //_LBB147_41
   26931 {
   26932 	r4 = gNumAlignedFree;
   26933 	r4 = r4 >> 2;
   26934 	r8 = heap32[(r4)];
   26935 	r8 = (r8 + 1)|0;
   26936 	r9 = r9 >> 2;
   26937 	heap32[(r4)] = r8;
   26938 	r4 = heap32[(r9+-1)];
   26939 	heap32[(g0)] = r4;
   26940 	free(i7);
   26941 }
   26942 	r4 = r7 >> 2;
   26943 	heap32[(r4)] = 0;
   26944 }
   26945 	r4 = 1;
   26946 	r7 = r7 >> 2;
   26947 	heap8[r0+164] = r4;
   26948 	heap32[(r7)] = r6;
   26949 	heap32[(r2+39)] = r5;
   26950 }
   26951 }
   26952 	heap32[(r2+38)] = r5;
   26953 _60: do {
   26954 if(!(r5 <1)) //_LBB147_46
   26955 {
   26956 	r0 = heap32[(r1+18)];
   26957 	r1 = (r3 - r5)|0;
   26958 _62: while(true){
   26959 	r4 = (r3 * -10)|0;
   26960 	r4 = r4 << 1;
   26961 	r4 = (r0 + r4)|0;
   26962 	r5 = r3 << 5;
   26963 	r6 = heap32[(r2+40)];
   26964 	r7 = heapU16[(r4+14)>>1];
   26965 	r6 = (r6 - r5)|0;
   26966 	heap16[(r6+6)>>1] = r7;
   26967 	r6 = heap32[(r2+40)];
   26968 	r7 = heapU16[(r4+16)>>1];
   26969 	r6 = (r6 - r5)|0;
   26970 	heap16[(r6+8)>>1] = r7;
   26971 	r6 = heap32[(r2+40)];
   26972 	r7 = heapU16[(r4+18)>>1];
   26973 	r6 = (r6 - r5)|0;
   26974 	heap16[(r6+10)>>1] = r7;
   26975 	r6 = heap32[(r2+40)];
   26976 	r7 = heapU16[(r4+8)>>1];
   26977 	r6 = (r6 - r5)|0;
   26978 	heap16[(r6)>>1] = r7;
   26979 	r6 = heap32[(r2+40)];
   26980 	r7 = heapU16[(r4+10)>>1];
   26981 	r6 = (r6 - r5)|0;
   26982 	heap16[(r6+2)>>1] = r7;
   26983 	r6 = (r3 * -5)|0;
   26984 	r7 = heap32[(r2+40)];
   26985 	r4 = heapU16[(r4+12)>>1];
   26986 	r6 = r6 << 2;
   26987 	r7 = (r7 - r5)|0;
   26988 	r6 = (r0 + r6)|0;
   26989 	heap16[(r7+4)>>1] = r4;
   26990 	r4 = r6 >> 2;
   26991 	r6 = heap32[(r2+40)];
   26992 	r6 = (r6 - r5)|0;
   26993 	r7 = heap32[(r4)];
   26994 	r6 = r6 >> 2;
   26995 	heap32[(r6+3)] = r7;
   26996 	r6 = heap32[(r2+40)];
   26997 	r5 = (r6 - r5)|0;
   26998 	r4 = heap32[(r4+1)];
   26999 	r3 = (r3 + -1)|0;
   27000 	r5 = r5 >> 2;
   27001 	heap32[(r5+4)] = r4;
   27002 	if(r1 !=r3) //_LBB147_45
   27003 {
   27004 continue _62;
   27005 }
   27006 else{
   27007 break _60;
   27008 }
   27009 }
   27010 }
   27011 } while(0);
   27012 	return;
   27013 }
   27014 
   27015 function _ZN14btQuantizedBvh17deSerializeDoubleER24btQuantizedBvhDoubleData(sp)
   27016 {
   27017 	var i7;
   27018 	var fp = sp>>2;
   27019 	var r0;
   27020 	var r1;
   27021 	var r2;
   27022 	var r3;
   27023 	var r4;
   27024 	var r5;
   27025 	var r6;
   27026 	var r7;
   27027 	var r8;
   27028 	var r9;
   27029 	var r10;
   27030 	var r11;
   27031 	var r12;
   27032 	var r13;
   27033 	var r14;
   27034 	var r15;
   27035 	var r16;
   27036 	var r17;
   27037 	var r18;
   27038 	var f0;
   27039 var __label__ = 0;
   27040 	i7 = sp + -16;var g0 = i7>>2; // save stack
   27041 	r0 = heap32[(fp+1)];
   27042 	r1 = heap32[(fp)];
   27043 	f0 = llvm_readDouble((r0+32));
   27044 	r2 = r1 >> 2;
   27045 	f0 = f0; //fdtos f0, f0
   27046 	heapFloat[(r2+5)] = f0;
   27047 	f0 = llvm_readDouble((r0+40));
   27048 	f0 = f0; //fdtos f0, f0
   27049 	heapFloat[(r2+6)] = f0;
   27050 	f0 = llvm_readDouble((r0+48));
   27051 	f0 = f0; //fdtos f0, f0
   27052 	heapFloat[(r2+7)] = f0;
   27053 	f0 = llvm_readDouble((r0+56));
   27054 	f0 = f0; //fdtos f0, f0
   27055 	heapFloat[(r2+8)] = f0;
   27056 	f0 = llvm_readDouble((r0));
   27057 	f0 = f0; //fdtos f0, f0
   27058 	heapFloat[(r2+1)] = f0;
   27059 	f0 = llvm_readDouble((r0+8));
   27060 	f0 = f0; //fdtos f0, f0
   27061 	heapFloat[(r2+2)] = f0;
   27062 	f0 = llvm_readDouble((r0+16));
   27063 	f0 = f0; //fdtos f0, f0
   27064 	heapFloat[(r2+3)] = f0;
   27065 	f0 = llvm_readDouble((r0+24));
   27066 	f0 = f0; //fdtos f0, f0
   27067 	heapFloat[(r2+4)] = f0;
   27068 	f0 = llvm_readDouble((r0+64));
   27069 	f0 = f0; //fdtos f0, f0
   27070 	heapFloat[(r2+9)] = f0;
   27071 	f0 = llvm_readDouble((r0+72));
   27072 	f0 = f0; //fdtos f0, f0
   27073 	heapFloat[(r2+10)] = f0;
   27074 	f0 = llvm_readDouble((r0+80));
   27075 	f0 = f0; //fdtos f0, f0
   27076 	heapFloat[(r2+11)] = f0;
   27077 	f0 = llvm_readDouble((r0+88));
   27078 	f0 = f0; //fdtos f0, f0
   27079 	r0 = r0 >> 2;
   27080 	heapFloat[(r2+12)] = f0;
   27081 	r3 = heap32[(r0+24)];
   27082 	heap32[(r2+14)] = r3;
   27083 	r3 = 0;
   27084 	r4 = heap32[(r0+25)];
   27085 	r4 = r4 != r3;
   27086 	r4 = r4 & 1;
   27087 	heap8[r1+60] = r4;
   27088 	r4 = heap32[(r2+22)];
   27089 	r5 = heap32[(r0+26)];
   27090 if(!(r4 >=r5)) //_LBB148_17
   27091 {
   27092 	r6 = heap32[(r2+23)];
   27093 if(!(r6 >=r5)) //_LBB148_17
   27094 {
   27095 	if(r5 !=0) //_LBB148_4
   27096 {
   27097 	r6 = gNumAlignedAllocs;
   27098 	r6 = r6 >> 2;
   27099 	r7 = heap32[(r6)];
   27100 	r7 = (r7 + 1)|0;
   27101 	r8 = r5 << 6;
   27102 	heap32[(r6)] = r7;
   27103 	r6 = r8 | 19;
   27104 	heap32[(g0)] = r6;
   27105 	malloc(i7);
   27106 	r6 = r_g0;
   27107 	if(r6 !=0) //_LBB148_6
   27108 {
   27109 	r7 = 0;
   27110 	r8 = (r6 + 4)|0;
   27111 	r7 = (r7 - r8)|0;
   27112 	r7 = r7 & 15;
   27113 	r7 = (r6 + r7)|0;
   27114 	r8 = (r7 + 4)|0;
   27115 	r7 = r7 >> 2;
   27116 	heap32[(r7)] = r6;
   27117 	r6 = r8;
   27118 }
   27119 }
   27120 else{
   27121 	r6 = 0;
   27122 }
   27123 	r7 = (r1 + 96)|0;
   27124 	if(r4 <1) //_LBB148_9
   27125 {
   27126 	r4 = r7 >> 2;
   27127 	r9 = heap32[(r4)];
   27128 }
   27129 else{
   27130 	r8 = 0;
   27131 _12: while(true){
   27132 	r9 = r7 >> 2;
   27133 	r9 = heap32[(r9)];
   27134 	r10 = (r6 + r8)|0;
   27135 	r11 = (r9 + r8)|0;
   27136 	heap32[(g0)] = r10;
   27137 	heap32[(g0+1)] = r11;
   27138 	heap32[(g0+2)] = 64;
   27139 	r4 = (r4 + -1)|0;
   27140 	r8 = (r8 + 64)|0;
   27141 	memcpy(i7);
   27142 if(!(r4 !=0)) //_LBB148_10
   27143 {
   27144 break _12;
   27145 }
   27146 }
   27147 	r7 = (r1 + 96)|0;
   27148 }
   27149 if(!(r9 ==0)) //_LBB148_16
   27150 {
   27151 	r4 = heapU8[r1+100];
   27152 if(!(r4 ==0)) //_LBB148_15
   27153 {
   27154 	r4 = gNumAlignedFree;
   27155 	r4 = r4 >> 2;
   27156 	r8 = heap32[(r4)];
   27157 	r8 = (r8 + 1)|0;
   27158 	r9 = r9 >> 2;
   27159 	heap32[(r4)] = r8;
   27160 	r4 = heap32[(r9+-1)];
   27161 	heap32[(g0)] = r4;
   27162 	free(i7);
   27163 }
   27164 	r4 = r7 >> 2;
   27165 	heap32[(r4)] = 0;
   27166 }
   27167 	r4 = 1;
   27168 	r7 = r7 >> 2;
   27169 	heap8[r1+100] = r4;
   27170 	heap32[(r7)] = r6;
   27171 	heap32[(r2+23)] = r5;
   27172 }
   27173 }
   27174 	heap32[(r2+22)] = r5;
   27175 _23: do {
   27176 if(!(r5 <1)) //_LBB148_20
   27177 {
   27178 	r4 = 0;
   27179 	r6 = heap32[(r0+28)];
   27180 	r5 = (r4 - r5)|0;
   27181 _25: while(true){
   27182 	r7 = (r4 * -10)|0;
   27183 	r7 = r7 << 3;
   27184 	r8 = (r6 + r7)|0;
   27185 	r9 = r4 << 6;
   27186 	r10 = heap32[(r2+24)];
   27187 	f0 = llvm_readDouble((r8+32));
   27188 	r10 = (r10 - r9)|0;
   27189 	r10 = r10 >> 2;
   27190 	f0 = f0; //fdtos f0, f0
   27191 	heapFloat[(r10+4)] = f0;
   27192 	f0 = llvm_readDouble((r8+40));
   27193 	f0 = f0; //fdtos f0, f0
   27194 	heapFloat[(r10+5)] = f0;
   27195 	f0 = llvm_readDouble((r8+48));
   27196 	f0 = f0; //fdtos f0, f0
   27197 	heapFloat[(r10+6)] = f0;
   27198 	f0 = llvm_readDouble((r8+56));
   27199 	f0 = f0; //fdtos f0, f0
   27200 	heapFloat[(r10+7)] = f0;
   27201 	r10 = heap32[(r2+24)];
   27202 	f0 = llvm_readDouble((r6+r7));
   27203 	r7 = (r10 - r9)|0;
   27204 	r7 = r7 >> 2;
   27205 	f0 = f0; //fdtos f0, f0
   27206 	heapFloat[(r7)] = f0;
   27207 	f0 = llvm_readDouble((r8+8));
   27208 	f0 = f0; //fdtos f0, f0
   27209 	heapFloat[(r7+1)] = f0;
   27210 	f0 = llvm_readDouble((r8+16));
   27211 	f0 = f0; //fdtos f0, f0
   27212 	heapFloat[(r7+2)] = f0;
   27213 	r10 = (r4 * -20)|0;
   27214 	f0 = llvm_readDouble((r8+24));
   27215 	r8 = r10 << 2;
   27216 	f0 = f0; //fdtos f0, f0
   27217 	r8 = (r6 + r8)|0;
   27218 	heapFloat[(r7+3)] = f0;
   27219 	r7 = r8 >> 2;
   27220 	r8 = heap32[(r2+24)];
   27221 	r8 = (r8 - r9)|0;
   27222 	r10 = heap32[(r7+16)];
   27223 	r8 = r8 >> 2;
   27224 	heap32[(r8+8)] = r10;
   27225 	r8 = heap32[(r2+24)];
   27226 	r8 = (r8 - r9)|0;
   27227 	r10 = heap32[(r7+17)];
   27228 	r8 = r8 >> 2;
   27229 	heap32[(r8+9)] = r10;
   27230 	r8 = heap32[(r2+24)];
   27231 	r8 = (r8 - r9)|0;
   27232 	r7 = heap32[(r7+18)];
   27233 	r4 = (r4 + -1)|0;
   27234 	r8 = r8 >> 2;
   27235 	heap32[(r8+10)] = r7;
   27236 	if(r5 !=r4) //_LBB148_19
   27237 {
   27238 continue _25;
   27239 }
   27240 else{
   27241 break _23;
   27242 }
   27243 }
   27244 }
   27245 } while(0);
   27246 	r4 = heap32[(r2+32)];
   27247 	r5 = heap32[(r0+27)];
   27248 _28: do {
   27249 if(!(r4 >=r5)) //_LBB148_23
   27250 {
   27251 	r6 = (r1 + 124)|0;
   27252 	heap32[(g0)] = r6;
   27253 	heap32[(g0+1)] = r5;
   27254 	r6 = (r5 - r4)|0;
   27255 	r4 = r4 << 4;
   27256 	_ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(i7);
   27257 _30: while(true){
   27258 	r7 = heap32[(r2+34)];
   27259 	r7 = (r7 + r4)|0;
   27260 	r7 = r7 >> 2;
   27261 	r6 = (r6 + -1)|0;
   27262 	r4 = (r4 + 16)|0;
   27263 	heap32[(r7)] = 0;
   27264 	heap32[(r7+1)] = 0;
   27265 	heap32[(r7+2)] = 0;
   27266 	heap32[(r7+3)] = 0;
   27267 	if(r6 !=0) //_LBB148_22
   27268 {
   27269 continue _30;
   27270 }
   27271 else{
   27272 break _28;
   27273 }
   27274 }
   27275 }
   27276 } while(0);
   27277 	heap32[(r2+32)] = r5;
   27278 _33: do {
   27279 if(!(r5 <1)) //_LBB148_26
   27280 {
   27281 	r4 = 0;
   27282 	r6 = heap32[(r0+29)];
   27283 	r5 = (r4 - r5)|0;
   27284 _35: while(true){
   27285 	r7 = r4 << 4;
   27286 	r8 = (r6 - r7)|0;
   27287 	r9 = r8 >> 2;
   27288 	r10 = heap32[(r2+34)];
   27289 	r10 = (r10 - r7)|0;
   27290 	r9 = heap32[(r9+3)];
   27291 	r10 = r10 >> 2;
   27292 	heap32[(r10+3)] = r9;
   27293 	r9 = heap32[(r2+34)];
   27294 	r10 = heapU16[(r8+6)>>1];
   27295 	r9 = (r9 - r7)|0;
   27296 	heap16[(r9+6)>>1] = r10;
   27297 	r9 = heap32[(r2+34)];
   27298 	r10 = heapU16[(r8+8)>>1];
   27299 	r9 = (r9 - r7)|0;
   27300 	heap16[(r9+8)>>1] = r10;
   27301 	r9 = heap32[(r2+34)];
   27302 	r10 = heapU16[(r8+10)>>1];
   27303 	r9 = (r9 - r7)|0;
   27304 	heap16[(r9+10)>>1] = r10;
   27305 	r9 = heap32[(r2+34)];
   27306 	r10 = heapU16[(r8)>>1];
   27307 	r9 = (r9 - r7)|0;
   27308 	heap16[(r9)>>1] = r10;
   27309 	r9 = heap32[(r2+34)];
   27310 	r10 = heapU16[(r8+2)>>1];
   27311 	r9 = (r9 - r7)|0;
   27312 	heap16[(r9+2)>>1] = r10;
   27313 	r9 = heap32[(r2+34)];
   27314 	r8 = heapU16[(r8+4)>>1];
   27315 	r4 = (r4 + -1)|0;
   27316 	r7 = (r9 - r7)|0;
   27317 	heap16[(r7+4)>>1] = r8;
   27318 	if(r5 !=r4) //_LBB148_25
   27319 {
   27320 continue _35;
   27321 }
   27322 else{
   27323 break _33;
   27324 }
   27325 }
   27326 }
   27327 } while(0);
   27328 	r4 = heap32[(r0+30)];
   27329 	heap32[(r2+36)] = r4;
   27330 	r4 = heap32[(r2+38)];
   27331 	r5 = heap32[(r0+31)];
   27332 if(!(r4 >=r5)) //_LBB148_43
   27333 {
   27334 	r6 = heap32[(r2+39)];
   27335 if(!(r6 >=r5)) //_LBB148_43
   27336 {
   27337 	if(r5 !=0) //_LBB148_30
   27338 {
   27339 	r6 = gNumAlignedAllocs;
   27340 	r6 = r6 >> 2;
   27341 	r7 = heap32[(r6)];
   27342 	r7 = (r7 + 1)|0;
   27343 	r8 = r5 << 5;
   27344 	heap32[(r6)] = r7;
   27345 	r6 = r8 | 19;
   27346 	heap32[(g0)] = r6;
   27347 	malloc(i7);
   27348 	r6 = r_g0;
   27349 	if(r6 !=0) //_LBB148_32
   27350 {
   27351 	r7 = 0;
   27352 	r8 = (r6 + 4)|0;
   27353 	r7 = (r7 - r8)|0;
   27354 	r7 = r7 & 15;
   27355 	r7 = (r6 + r7)|0;
   27356 	r8 = (r7 + 4)|0;
   27357 	r7 = r7 >> 2;
   27358 	heap32[(r7)] = r6;
   27359 	r6 = r8;
   27360 }
   27361 }
   27362 else{
   27363 	r6 = 0;
   27364 }
   27365 	r7 = (r1 + 160)|0;
   27366 	if(r4 <1) //_LBB148_35
   27367 {
   27368 	r4 = r7 >> 2;
   27369 	r9 = heap32[(r4)];
   27370 }
   27371 else{
   27372 	r8 = 0;
   27373 _49: while(true){
   27374 	r9 = r7 >> 2;
   27375 	r9 = heap32[(r9)];
   27376 	r10 = (r9 + r8)|0;
   27377 	r10 = r10 >> 2;
   27378 	r11 = (r6 + r8)|0;
   27379 	r4 = (r4 + -1)|0;
   27380 	r8 = (r8 + 32)|0;
   27381 	r12 = heap32[(r10)];
   27382 	r11 = r11 >> 2;
   27383 	r13 = heap32[(r10+1)];
   27384 	r14 = heap32[(r10+2)];
   27385 	r15 = heap32[(r10+3)];
   27386 	r16 = heap32[(r10+4)];
   27387 	r17 = heap32[(r10+5)];
   27388 	r18 = heap32[(r10+6)];
   27389 	r10 = heap32[(r10+7)];
   27390 	heap32[(r11)] = r12;
   27391 	heap32[(r11+1)] = r13;
   27392 	heap32[(r11+2)] = r14;
   27393 	heap32[(r11+3)] = r15;
   27394 	heap32[(r11+4)] = r16;
   27395 	heap32[(r11+5)] = r17;
   27396 	heap32[(r11+6)] = r18;
   27397 	heap32[(r11+7)] = r10;
   27398 if(!(r4 !=0)) //_LBB148_36
   27399 {
   27400 break _49;
   27401 }
   27402 }
   27403 	r7 = (r1 + 160)|0;
   27404 }
   27405 if(!(r9 ==0)) //_LBB148_42
   27406 {
   27407 	r4 = heapU8[r1+164];
   27408 if(!(r4 ==0)) //_LBB148_41
   27409 {
   27410 	r4 = gNumAlignedFree;
   27411 	r4 = r4 >> 2;
   27412 	r8 = heap32[(r4)];
   27413 	r8 = (r8 + 1)|0;
   27414 	r9 = r9 >> 2;
   27415 	heap32[(r4)] = r8;
   27416 	r4 = heap32[(r9+-1)];
   27417 	heap32[(g0)] = r4;
   27418 	free(i7);
   27419 }
   27420 	r4 = r7 >> 2;
   27421 	heap32[(r4)] = 0;
   27422 }
   27423 	r4 = 1;
   27424 	r7 = r7 >> 2;
   27425 	heap8[r1+164] = r4;
   27426 	heap32[(r7)] = r6;
   27427 	heap32[(r2+39)] = r5;
   27428 }
   27429 }
   27430 	heap32[(r2+38)] = r5;
   27431 _60: do {
   27432 if(!(r5 <1)) //_LBB148_46
   27433 {
   27434 	r0 = heap32[(r0+32)];
   27435 	r1 = (r3 - r5)|0;
   27436 _62: while(true){
   27437 	r4 = (r3 * -10)|0;
   27438 	r4 = r4 << 1;
   27439 	r4 = (r0 + r4)|0;
   27440 	r5 = r3 << 5;
   27441 	r6 = heap32[(r2+40)];
   27442 	r7 = heapU16[(r4+14)>>1];
   27443 	r6 = (r6 - r5)|0;
   27444 	heap16[(r6+6)>>1] = r7;
   27445 	r6 = heap32[(r2+40)];
   27446 	r7 = heapU16[(r4+16)>>1];
   27447 	r6 = (r6 - r5)|0;
   27448 	heap16[(r6+8)>>1] = r7;
   27449 	r6 = heap32[(r2+40)];
   27450 	r7 = heapU16[(r4+18)>>1];
   27451 	r6 = (r6 - r5)|0;
   27452 	heap16[(r6+10)>>1] = r7;
   27453 	r6 = heap32[(r2+40)];
   27454 	r7 = heapU16[(r4+8)>>1];
   27455 	r6 = (r6 - r5)|0;
   27456 	heap16[(r6)>>1] = r7;
   27457 	r6 = heap32[(r2+40)];
   27458 	r7 = heapU16[(r4+10)>>1];
   27459 	r6 = (r6 - r5)|0;
   27460 	heap16[(r6+2)>>1] = r7;
   27461 	r6 = (r3 * -5)|0;
   27462 	r7 = heap32[(r2+40)];
   27463 	r4 = heapU16[(r4+12)>>1];
   27464 	r6 = r6 << 2;
   27465 	r7 = (r7 - r5)|0;
   27466 	r6 = (r0 + r6)|0;
   27467 	heap16[(r7+4)>>1] = r4;
   27468 	r4 = r6 >> 2;
   27469 	r6 = heap32[(r2+40)];
   27470 	r6 = (r6 - r5)|0;
   27471 	r7 = heap32[(r4)];
   27472 	r6 = r6 >> 2;
   27473 	heap32[(r6+3)] = r7;
   27474 	r6 = heap32[(r2+40)];
   27475 	r5 = (r6 - r5)|0;
   27476 	r4 = heap32[(r4+1)];
   27477 	r3 = (r3 + -1)|0;
   27478 	r5 = r5 >> 2;
   27479 	heap32[(r5+4)] = r4;
   27480 	if(r1 !=r3) //_LBB148_45
   27481 {
   27482 continue _62;
   27483 }
   27484 else{
   27485 break _60;
   27486 }
   27487 }
   27488 }
   27489 } while(0);
   27490 	return;
   27491 }
   27492 
   27493 function _ZN14btQuantizedBvhD2Ev(sp)
   27494 {
   27495 	var i7;
   27496 	var fp = sp>>2;
   27497 	var r0;
   27498 	var r1;
   27499 	var r2;
   27500 	var r3;
   27501 	var r4;
   27502 	var r5;
   27503 var __label__ = 0;
   27504 	i7 = sp + -8;var g0 = i7>>2; // save stack
   27505 	r0 = heap32[(fp)];
   27506 	r1 = _ZTV14btQuantizedBvh;
   27507 	r2 = r0 >> 2;
   27508 	r1 = (r1 + 8)|0;
   27509 	heap32[(r2)] = r1;
   27510 	r1 = heap32[(r2+40)];
   27511 if(!(r1 ==0)) //_LBB149_4
   27512 {
   27513 	r3 = heapU8[r0+164];
   27514 if(!(r3 ==0)) //_LBB149_3
   27515 {
   27516 	r3 = gNumAlignedFree;
   27517 	r3 = r3 >> 2;
   27518 	r4 = heap32[(r3)];
   27519 	r4 = (r4 + 1)|0;
   27520 	r1 = r1 >> 2;
   27521 	heap32[(r3)] = r4;
   27522 	r1 = heap32[(r1+-1)];
   27523 	heap32[(g0)] = r1;
   27524 	free(i7);
   27525 }
   27526 	heap32[(r2+40)] = 0;
   27527 }
   27528 	r1 = 1;
   27529 	heap8[r0+164] = r1;
   27530 	heap32[(r2+40)] = 0;
   27531 	heap32[(r2+38)] = 0;
   27532 	heap32[(r2+39)] = 0;
   27533 	r3 = heap32[(r2+34)];
   27534 if(!(r3 ==0)) //_LBB149_8
   27535 {
   27536 	r4 = heapU8[r0+140];
   27537 if(!(r4 ==0)) //_LBB149_7
   27538 {
   27539 	r4 = gNumAlignedFree;
   27540 	r4 = r4 >> 2;
   27541 	r5 = heap32[(r4)];
   27542 	r5 = (r5 + 1)|0;
   27543 	r3 = r3 >> 2;
   27544 	heap32[(r4)] = r5;
   27545 	r3 = heap32[(r3+-1)];
   27546 	heap32[(g0)] = r3;
   27547 	free(i7);
   27548 }
   27549 	heap32[(r2+34)] = 0;
   27550 }
   27551 	heap8[r0+140] = r1;
   27552 	heap32[(r2+34)] = 0;
   27553 	heap32[(r2+32)] = 0;
   27554 	heap32[(r2+33)] = 0;
   27555 	r3 = heap32[(r2+29)];
   27556 if(!(r3 ==0)) //_LBB149_12
   27557 {
   27558 	r4 = heapU8[r0+120];
   27559 if(!(r4 ==0)) //_LBB149_11
   27560 {
   27561 	r4 = gNumAlignedFree;
   27562 	r4 = r4 >> 2;
   27563 	r5 = heap32[(r4)];
   27564 	r5 = (r5 + 1)|0;
   27565 	r3 = r3 >> 2;
   27566 	heap32[(r4)] = r5;
   27567 	r3 = heap32[(r3+-1)];
   27568 	heap32[(g0)] = r3;
   27569 	free(i7);
   27570 }
   27571 	heap32[(r2+29)] = 0;
   27572 }
   27573 	heap8[r0+120] = r1;
   27574 	heap32[(r2+29)] = 0;
   27575 	heap32[(r2+27)] = 0;
   27576 	heap32[(r2+28)] = 0;
   27577 	r3 = heap32[(r2+24)];
   27578 if(!(r3 ==0)) //_LBB149_16
   27579 {
   27580 	r4 = heapU8[r0+100];
   27581 if(!(r4 ==0)) //_LBB149_15
   27582 {
   27583 	r4 = gNumAlignedFree;
   27584 	r4 = r4 >> 2;
   27585 	r5 = heap32[(r4)];
   27586 	r5 = (r5 + 1)|0;
   27587 	r3 = r3 >> 2;
   27588 	heap32[(r4)] = r5;
   27589 	r3 = heap32[(r3+-1)];
   27590 	heap32[(g0)] = r3;
   27591 	free(i7);
   27592 }
   27593 	heap32[(r2+24)] = 0;
   27594 }
   27595 	heap8[r0+100] = r1;
   27596 	heap32[(r2+24)] = 0;
   27597 	heap32[(r2+22)] = 0;
   27598 	heap32[(r2+23)] = 0;
   27599 	r3 = heap32[(r2+19)];
   27600 if(!(r3 ==0)) //_LBB149_20
   27601 {
   27602 	r4 = heapU8[r0+80];
   27603 if(!(r4 ==0)) //_LBB149_19
   27604 {
   27605 	r4 = gNumAlignedFree;
   27606 	r4 = r4 >> 2;
   27607 	r5 = heap32[(r4)];
   27608 	r5 = (r5 + 1)|0;
   27609 	r3 = r3 >> 2;
   27610 	heap32[(r4)] = r5;
   27611 	r3 = heap32[(r3+-1)];
   27612 	heap32[(g0)] = r3;
   27613 	free(i7);
   27614 }
   27615 	heap32[(r2+19)] = 0;
   27616 }
   27617 	heap8[r0+80] = r1;
   27618 	heap32[(r2+19)] = 0;
   27619 	heap32[(r2+17)] = 0;
   27620 	heap32[(r2+18)] = 0;
   27621 	return;
   27622 }
   27623 
   27624 function _ZNK14btQuantizedBvh26walkStacklessQuantizedTreeEP21btNodeOverlapCallbackPtS2_ii(sp)
   27625 {
   27626 	var i7;
   27627 	var fp = sp>>2;
   27628 	var r0;
   27629 	var r1;
   27630 	var r2;
   27631 	var r3;
   27632 	var r4;
   27633 	var r5;
   27634 	var r6;
   27635 	var r7;
   27636 	var r8;
   27637 	var r9;
   27638 	var r10;
   27639 	var r11;
   27640 	var r12;
   27641 var __label__ = 0;
   27642 	i7 = sp + -16;var g0 = i7>>2; // save stack
   27643 	r0 = heap32[(fp)];
   27644 	r1 = heapU8[r0+60];
   27645 	if(r1 !=0) //_LBB150_2
   27646 {
   27647 	r1 = heap32[(fp+1)];
   27648 	r2 = heap32[(fp+2)];
   27649 	r3 = heap32[(fp+3)];
   27650 	r4 = heap32[(fp+4)];
   27651 	r5 = heap32[(fp+5)];
   27652 	r0 = r0 >> 2;
   27653 	r0 = heap32[(r0+34)];
   27654 	r6 = r4 << 4;
   27655 	r7 = (r5 - r4)|0;
   27656 	r0 = (r0 + r6)|0;
   27657 	r6 = 0;
   27658 _3: while(true){
   27659 	if(r4 <r5) //_LBB150_3
   27660 {
   27661 	if(r6 <r7) //_LBB150_5
   27662 {
   27663 	r8 = heapU16[(r2)>>1];
   27664 	r9 = heapU16[(r0+6)>>1];
   27665 	r10 = heapU16[(r3)>>1];
   27666 	r11 = heapU16[(r0)>>1];
   27667 	r8 = uint(r8) > uint(r9);
   27668 	r9 = uint(r10) < uint(r11);
   27669 	r10 = heapU16[(r2+4)>>1];
   27670 	r11 = heapU16[(r0+10)>>1];
   27671 	r8 = r8 | r9;
   27672 	r9 = uint(r10) > uint(r11);
   27673 	r10 = heapU16[(r3+4)>>1];
   27674 	r11 = heapU16[(r0+4)>>1];
   27675 	r8 = r8 | r9;
   27676 	r9 = uint(r10) < uint(r11);
   27677 	r10 = heapU16[(r2+2)>>1];
   27678 	r11 = heapU16[(r0+8)>>1];
   27679 	r8 = r8 | r9;
   27680 	r9 = uint(r10) > uint(r11);
   27681 	r10 = heapU16[(r3+2)>>1];
   27682 	r11 = heapU16[(r0+2)>>1];
   27683 	r12 = r0 >> 2;
   27684 	r8 = r8 | r9;
   27685 	r9 = uint(r10) < uint(r11);
   27686 	r10 = heap32[(r12+3)];
   27687 	r6 = (r6 + 1)|0;
   27688 	r8 = r8 | r9;
   27689 	if(r10 <0) //_LBB150_10
   27690 {
   27691 __label__ = 10;
   27692 }
   27693 else{
   27694 	if(r8 != 0) //_LBB150_10
   27695 {
   27696 __label__ = 10;
   27697 }
   27698 else{
   27699 	if(r10 >-1) //_LBB150_9
   27700 {
   27701 	r8 = r1 >> 2;
   27702 	r8 = heap32[(r8)];
   27703 	r8 = r8 >> 2;
   27704 	r8 = heap32[(r8+2)];
   27705 	r12 = r10 >> 21;
   27706 	r10 = r10 & 2097151;
   27707 	heap32[(g0)] = r1;
   27708 	heap32[(g0+1)] = r12;
   27709 	heap32[(g0+2)] = r10;
   27710 	__FUNCTION_TABLE__[(r8)>>2](i7);
   27711 __label__ = 11;
   27712 }
   27713 else{
   27714 __label__ = 8;
   27715 break _3;
   27716 }
   27717 }
   27718 }
   27719 if (__label__ == 10){
   27720 	r9 = 0;
   27721 	r9 = r10 < r9;
   27722 	r8 = r9 & r8;
   27723 	if(r8 != 0) //_LBB150_12
   27724 {
   27725 	r8 = heap32[(r12+3)];
   27726 	if(r8 <0) //_LBB150_14
   27727 {
   27728 	r9 = r8 << 4;
   27729 	r0 = (r0 - r9)|0;
   27730 	r4 = (r4 - r8)|0;
   27731 continue _3;
   27732 }
   27733 else{
   27734 __label__ = 13;
   27735 break _3;
   27736 }
   27737 }
   27738 }
   27739 	r0 = (r0 + 16)|0;
   27740 	r4 = (r4 + 1)|0;
   27741 }
   27742 else{
   27743 __label__ = 4;
   27744 break _3;
   27745 }
   27746 }
   27747 else{
   27748 __label__ = 16;
   27749 break _3;
   27750 }
   27751 }
   27752 switch(__label__ ){//multiple entries
   27753 case 16:
   27754 	r0 = maxIterations;
   27755 	r0 = r0 >> 2;
   27756 	r1 = heap32[(r0)];
   27757 if(!(r1 >=r6)) //_LBB150_18
   27758 {
   27759 	heap32[(r0)] = r6;
   27760 }
   27761 	return;
   27762 break;
   27763 case 13:
   27764 	r0 = _2E_str941;
   27765 	r1 = _2E_str313;
   27766 	heap32[(g0)] = r0;
   27767 	heap32[(g0+1)] = r1;
   27768 	heap32[(g0+2)] = 75;
   27769 	_assert(i7);
   27770 break;
   27771 case 8:
   27772 	r0 = _2E_str739;
   27773 	r1 = _2E_str313;
   27774 	heap32[(g0)] = r0;
   27775 	heap32[(g0+1)] = r1;
   27776 	heap32[(g0+2)] = 80;
   27777 	_assert(i7);
   27778 break;
   27779 case 4:
   27780 	r0 = _2E_str1143;
   27781 	r1 = _2E_str537;
   27782 	heap32[(g0)] = r0;
   27783 	heap32[(g0+1)] = r1;
   27784 	heap32[(g0+2)] = 703;
   27785 	_assert(i7);
   27786 break;
   27787 }
   27788 }
   27789 else{
   27790 	r0 = _2E_str212;
   27791 	r1 = _2E_str537;
   27792 	heap32[(g0)] = r0;
   27793 	heap32[(g0+1)] = r1;
   27794 	heap32[(g0+2)] = 669;
   27795 	_assert(i7);
   27796 }
   27797 }
   27798 
   27799 function _ZNK14btQuantizedBvh17quantizeWithClampEPtRK9btVector3i(sp)
   27800 {
   27801 	var i7;
   27802 	var fp = sp>>2;
   27803 	var r0;
   27804 	var r1;
   27805 	var r2;
   27806 	var r3;
   27807 	var r4;
   27808 	var r5;
   27809 	var f0;
   27810 	var f1;
   27811 	var f2;
   27812 	var f3;
   27813 	var f4;
   27814 var __label__ = 0;
   27815 	i7 = sp + -32;var g0 = i7>>2; // save stack
   27816 	r0 = heap32[(fp)];
   27817 	r1 = heapU8[r0+60];
   27818 	if(r1 !=0) //_LBB151_2
   27819 {
   27820 	r1 = heap32[(fp+1)];
   27821 	r2 = heap32[(fp+2)];
   27822 	r3 = heap32[(fp+3)];
   27823 	r2 = r2 >> 2;
   27824 	f0 = heapFloat[(r2)];
   27825 	r4 = sp + -16;
   27826 	heapFloat[(fp+-4)] = f0;
   27827 	f1 = heapFloat[(r2+1)];
   27828 	r5 = r4 >> 2;
   27829 	heapFloat[(r5+1)] = f1;
   27830 	f2 = heapFloat[(r2+2)];
   27831 	heapFloat[(r5+2)] = f2;
   27832 	f3 = heapFloat[(r2+3)];
   27833 	r2 = r0 >> 2;
   27834 	heapFloat[(r5+3)] = f3;
   27835 	f4 = heapFloat[(r2+1)];
   27836 	if(f0 <f4) //_LBB151_4
   27837 {
   27838 	heapFloat[(fp+-4)] = f4;
   27839 	f0 = f4;
   27840 }
   27841 	f4 = heapFloat[(r2+2)];
   27842 	if(f1 <f4) //_LBB151_7
   27843 {
   27844 	heapFloat[(r5+1)] = f4;
   27845 	f1 = f4;
   27846 }
   27847 	f4 = heapFloat[(r2+3)];
   27848 	if(f2 <f4) //_LBB151_10
   27849 {
   27850 	heapFloat[(r5+2)] = f4;
   27851 	f2 = f4;
   27852 }
   27853 	f4 = heapFloat[(r2+4)];
   27854 	if(f3 <f4) //_LBB151_13
   27855 {
   27856 	heapFloat[(r5+3)] = f4;
   27857 	f3 = f4;
   27858 }
   27859 	f4 = heapFloat[(r2+5)];
   27860 if(!(f4 >=f0)) //_LBB151_16
   27861 {
   27862 	heapFloat[(fp+-4)] = f4;
   27863 }
   27864 	f0 = heapFloat[(r2+6)];
   27865 if(!(f0 >=f1)) //_LBB151_18
   27866 {
   27867 	heapFloat[(r5+1)] = f0;
   27868 }
   27869 	f0 = heapFloat[(r2+7)];
   27870 if(!(f0 >=f2)) //_LBB151_20
   27871 {
   27872 	heapFloat[(r5+2)] = f0;
   27873 }
   27874 	f0 = heapFloat[(r2+8)];
   27875 if(!(f0 >=f3)) //_LBB151_22
   27876 {
   27877 	heapFloat[(r5+3)] = f0;
   27878 }
   27879 	heap32[(g0)] = r0;
   27880 	heap32[(g0+1)] = r1;
   27881 	heap32[(g0+2)] = r4;
   27882 	heap32[(g0+3)] = r3;
   27883 	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
   27884 	return;
   27885 }
   27886 else{
   27887 	r0 = _2E_str212;
   27888 	r1 = _2E_str313;
   27889 	heap32[(g0)] = r0;
   27890 	heap32[(g0+1)] = r1;
   27891 	heap32[(g0+2)] = 420;
   27892 	_assert(i7);
   27893 }
   27894 }
   27895 
   27896 function _ZNK14btQuantizedBvh42walkRecursiveQuantizedTreeAgainstQueryAabbEPK18btQuantizedBvhNodeP21btNodeOverlapCallbackPtS5_(sp)
   27897 {
   27898 	var i7;
   27899 	var fp = sp>>2;
   27900 	var r0;
   27901 	var r1;
   27902 	var r2;
   27903 	var r3;
   27904 	var r4;
   27905 	var r5;
   27906 	var r6;
   27907 var __label__ = 0;
   27908 	i7 = sp + -24;var g0 = i7>>2; // save stack
   27909 	r0 = heap32[(fp)];
   27910 	r1 = heap32[(fp+1)];
   27911 	r2 = heap32[(fp+2)];
   27912 	r3 = heap32[(fp+3)];
   27913 	r4 = heap32[(fp+4)];
   27914 _1: while(true){
   27915 	r5 = heapU8[r0+60];
   27916 	if(r5 !=0) //_LBB152_3
   27917 {
   27918 	r5 = heapU16[(r3)>>1];
   27919 	r6 = heapU16[(r1+6)>>1];
   27920 	if(uint(r5) >uint(r6)) //_LBB152_14
   27921 {
   27922 __label__ = 14;
   27923 break _1;
   27924 }
   27925 else{
   27926 	r5 = heapU16[(r4)>>1];
   27927 	r6 = heapU16[(r1)>>1];
   27928 	r5 = r5 & 65535;
   27929 	r6 = r6 & 65535;
   27930 	if(uint(r5) <uint(r6)) //_LBB152_14
   27931 {
   27932 __label__ = 14;
   27933 break _1;
   27934 }
   27935 else{
   27936 	r5 = heapU16[(r3+4)>>1];
   27937 	r6 = heapU16[(r1+10)>>1];
   27938 	r5 = r5 & 65535;
   27939 	r6 = r6 & 65535;
   27940 	if(uint(r5) >uint(r6)) //_LBB152_14
   27941 {
   27942 __label__ = 14;
   27943 break _1;
   27944 }
   27945 else{
   27946 	r5 = heapU16[(r4+4)>>1];
   27947 	r6 = heapU16[(r1+4)>>1];
   27948 	r5 = r5 & 65535;
   27949 	r6 = r6 & 65535;
   27950 	if(uint(r5) <uint(r6)) //_LBB152_14
   27951 {
   27952 __label__ = 14;
   27953 break _1;
   27954 }
   27955 else{
   27956 	r5 = heapU16[(r3+2)>>1];
   27957 	r6 = heapU16[(r1+8)>>1];
   27958 	r5 = r5 & 65535;
   27959 	r6 = r6 & 65535;
   27960 	if(uint(r5) >uint(r6)) //_LBB152_14
   27961 {
   27962 __label__ = 14;
   27963 break _1;
   27964 }
   27965 else{
   27966 	r5 = heapU16[(r4+2)>>1];
   27967 	r6 = heapU16[(r1+2)>>1];
   27968 	r5 = r5 & 65535;
   27969 	r6 = r6 & 65535;
   27970 	if(uint(r5) <uint(r6)) //_LBB152_14
   27971 {
   27972 __label__ = 14;
   27973 break _1;
   27974 }
   27975 else{
   27976 	r5 = r1 >> 2;
   27977 	r6 = heap32[(r5+3)];
   27978 	if(r6 <0) //_LBB152_11
   27979 {
   27980 	r6 = (r1 + 16)|0;
   27981 	heap32[(g0)] = r0;
   27982 	heap32[(g0+1)] = r6;
   27983 	heap32[(g0+2)] = r2;
   27984 	heap32[(g0+3)] = r3;
   27985 	heap32[(g0+4)] = r4;
   27986 	_ZNK14btQuantizedBvh42walkRecursiveQuantizedTreeAgainstQueryAabbEPK18btQuantizedBvhNodeP21btNodeOverlapCallbackPtS5_(i7);
   27987 	r5 = heap32[(r5+7)];
   27988 	if(r5 <0) //_LBB152_13
   27989 {
   27990 	r6 = 1;
   27991 	r5 = (r6 - r5)|0;
   27992 	r5 = r5 << 4;
   27993 	r1 = (r1 + r5)|0;
   27994 continue _1;
   27995 }
   27996 else{
   27997 	r1 = (r1 + 32)|0;
   27998 continue _1;
   27999 }
   28000 }
   28001 else{
   28002 __label__ = 10;
   28003 break _1;
   28004 }
   28005 }
   28006 }
   28007 }
   28008 }
   28009 }
   28010 }
   28011 }
   28012 else{
   28013 __label__ = 2;
   28014 break _1;
   28015 }
   28016 }
   28017 switch(__label__ ){//multiple entries
   28018 case 14:
   28019 	return;
   28020 break;
   28021 case 2:
   28022 	r0 = _2E_str212;
   28023 	r1 = _2E_str537;
   28024 	heap32[(g0)] = r0;
   28025 	heap32[(g0+1)] = r1;
   28026 	heap32[(g0+2)] = 419;
   28027 	_assert(i7);
   28028 break;
   28029 case 10:
   28030 	r0 = r2 >> 2;
   28031 	r0 = heap32[(r0)];
   28032 	r0 = r0 >> 2;
   28033 	r0 = heap32[(r0+2)];
   28034 	r1 = r6 >> 21;
   28035 	r3 = r6 & 2097151;
   28036 	heap32[(g0)] = r2;
   28037 	heap32[(g0+1)] = r1;
   28038 	heap32[(g0+2)] = r3;
   28039 	__FUNCTION_TABLE__[(r0)>>2](i7);
   28040 	return;
   28041 break;
   28042 }
   28043 }
   28044 
   28045 function _ZNK14btQuantizedBvh26reportAabbOverlappingNodexEP21btNodeOverlapCallbackRK9btVector3S4_(sp)
   28046 {
   28047 	var i7;
   28048 	var fp = sp>>2;
   28049 	var r0;
   28050 	var r1;
   28051 	var r2;
   28052 	var r3;
   28053 	var r4;
   28054 	var r5;
   28055 	var r6;
   28056 	var r7;
   28057 	var r8;
   28058 	var r9;
   28059 	var r10;
   28060 	var r11;
   28061 	var r12;
   28062 	var f0;
   28063 	var f1;
   28064 var __label__ = 0;
   28065 	i7 = sp + -40;var g0 = i7>>2; // save stack
   28066 	r0 = heap32[(fp)];
   28067 	r1 = heap32[(fp+1)];
   28068 	r2 = heap32[(fp+2)];
   28069 	r3 = heap32[(fp+3)];
   28070 	r4 = heapU8[r0+60];
   28071 _1: do {
   28072 	if(r4 ==0) //_LBB153_20
   28073 {
   28074 	r0 = r0 >> 2;
   28075 	r4 = heap32[(r0+24)];
   28076 	r5 = 0;
   28077 	r6 = r5;
   28078 _3: while(true){
   28079 	r7 = heap32[(r0+14)];
   28080 	if(r7 >r5) //_LBB153_21
   28081 {
   28082 	if(r7 >r6) //_LBB153_23
   28083 {
   28084 	r7 = r2 >> 2;
   28085 	r8 = r4 >> 2;
   28086 	r6 = (r6 + 1)|0;
   28087 	f0 = heapFloat[(r7)];
   28088 	f1 = heapFloat[(r8+4)];
   28089 	if(f0 >f1) //_LBB153_26
   28090 {
   28091 __label__ = 26;
   28092 }
   28093 else{
   28094 	r9 = r3 >> 2;
   28095 	f0 = heapFloat[(r9)];
   28096 	f1 = heapFloat[(r8)];
   28097 	if(f0 <f1) //_LBB153_26
   28098 {
   28099 __label__ = 26;
   28100 }
   28101 else{
   28102 	r9 = 1;
   28103 __label__ = 27;
   28104 }
   28105 }
   28106 if (__label__ == 26){
   28107 	r9 = 0;
   28108 }
   28109 	f0 = heapFloat[(r7+2)];
   28110 	f1 = heapFloat[(r8+6)];
   28111 	if(f0 >f1) //_LBB153_30
   28112 {
   28113 __label__ = 29;
   28114 }
   28115 else{
   28116 	r10 = r3 >> 2;
   28117 	f0 = heapFloat[(r10+2)];
   28118 	f1 = heapFloat[(r8+2)];
   28119 	if(f0 <f1) //_LBB153_30
   28120 {
   28121 __label__ = 29;
   28122 }
   28123 else{
   28124 __label__ = 30;
   28125 }
   28126 }
   28127 if (__label__ == 29){
   28128 	r9 = 0;
   28129 }
   28130 	f0 = heapFloat[(r7+1)];
   28131 	f1 = heapFloat[(r8+5)];
   28132 	if(f0 <=f1) //_LBB153_33
   28133 {
   28134 	r7 = r3 >> 2;
   28135 	f0 = heapFloat[(r7+1)];
   28136 	f1 = heapFloat[(r8+1)];
   28137 	r7 = 0;
   28138 	r10 = heap32[(r8+8)];
   28139 	r11 = -1;
   28140 	r9 = f0 < f1 ? r7 : r9;
   28141 	r7 = r10 == r11;
   28142 	r12 = r9 & 255;
   28143 if(!(r12 ==0)) //_LBB153_35
   28144 {
   28145 	r10 = r10 != r11;
   28146 	r10 = r10 & 1;
   28147 	if(r10 ==0) //_LBB153_36
   28148 {
   28149 	r10 = r1 >> 2;
   28150 	r10 = heap32[(r10)];
   28151 	r10 = r10 >> 2;
   28152 	r10 = heap32[(r10+2)];
   28153 	r11 = heap32[(r8+10)];
   28154 	r12 = heap32[(r8+9)];
   28155 	heap32[(g0)] = r1;
   28156 	heap32[(g0+1)] = r12;
   28157 	heap32[(g0+2)] = r11;
   28158 	__FUNCTION_TABLE__[(r10)>>2](i7);
   28159 }
   28160 }
   28161 }
   28162 else{
   28163 	r7 = heap32[(r8+8)];
   28164 	r9 = -1;
   28165 	r7 = r7 == r9;
   28166 	r9 = 0;
   28167 }
   28168 	r9 = r9 & 255;
   28169 if(!(r9 !=0)) //_LBB153_39
   28170 {
   28171 	r7 = r7 & 1;
   28172 	if(r7 ==0) //_LBB153_40
   28173 {
   28174 	r7 = heap32[(r8+8)];
   28175 	r8 = r7 << 6;
   28176 	r4 = (r4 + r8)|0;
   28177 	r5 = (r7 + r5)|0;
   28178 continue _3;
   28179 }
   28180 }
   28181 	r4 = (r4 + 64)|0;
   28182 	r5 = (r5 + 1)|0;
   28183 }
   28184 else{
   28185 __label__ = 22;
   28186 break _3;
   28187 }
   28188 }
   28189 else{
   28190 __label__ = 40;
   28191 break _3;
   28192 }
   28193 }
   28194 switch(__label__ ){//multiple entries
   28195 case 40:
   28196 	r0 = maxIterations;
   28197 	r0 = r0 >> 2;
   28198 	r1 = heap32[(r0)];
   28199 	if(r1 >=r6) //_LBB153_17
   28200 {
   28201 break _1;
   28202 }
   28203 else{
   28204 	heap32[(r0)] = r6;
   28205 	return;
   28206 }
   28207 break;
   28208 case 22:
   28209 	r0 = _2E_str1921;
   28210 	r1 = _2E_str537;
   28211 	heap32[(g0)] = r0;
   28212 	heap32[(g0+1)] = r1;
   28213 	heap32[(g0+2)] = 367;
   28214 	_assert(i7);
   28215 break;
   28216 }
   28217 }
   28218 else{
   28219 	r4 = sp + -6;
   28220 	heap32[(g0)] = r0;
   28221 	heap32[(g0+1)] = r4;
   28222 	heap32[(g0+2)] = r2;
   28223 	heap32[(g0+3)] = 0;
   28224 	_ZNK14btQuantizedBvh17quantizeWithClampEPtRK9btVector3i(i7);
   28225 	r2 = sp + -12;
   28226 	heap32[(g0)] = r0;
   28227 	heap32[(g0+1)] = r2;
   28228 	heap32[(g0+2)] = r3;
   28229 	heap32[(g0+3)] = 1;
   28230 	r3 = r0 >> 2;
   28231 	_ZNK14btQuantizedBvh17quantizeWithClampEPtRK9btVector3i(i7);
   28232 	r5 = heap32[(r3+36)];
   28233 	if(r5 ==2) //_LBB153_18
   28234 {
   28235 	r3 = heap32[(r3+34)];
   28236 	heap32[(g0)] = r0;
   28237 	heap32[(g0+1)] = r3;
   28238 	heap32[(g0+2)] = r1;
   28239 	heap32[(g0+3)] = r4;
   28240 	heap32[(g0+4)] = r2;
   28241 	_ZNK14btQuantizedBvh42walkRecursiveQuantizedTreeAgainstQueryAabbEPK18btQuantizedBvhNodeP21btNodeOverlapCallbackPtS5_(i7);
   28242 	return;
   28243 }
   28244 else{
   28245 	if(r5 ==1) //_LBB153_5
   28246 {
   28247 	r5 = heapU8[r0+60];
   28248 	if(r5 ==0) //_LBB153_7
   28249 {
   28250 	r2 = _2E_str212;
   28251 	r3 = _2E_str537;
   28252 	heap32[(g0)] = r2;
   28253 	heap32[(g0+1)] = r3;
   28254 	heap32[(g0+2)] = 735;
   28255 	_assert(i7);
   28256 }
   28257 else{
   28258 	r5 = heap32[(r3+38)];
   28259 	if(r5 >0) //_LBB153_8
   28260 {
   28261 	r5 = 0;
   28262 _42: while(true){
   28263 	r6 = heap32[(r3+40)];
   28264 	r7 = r5 << 5;
   28265 	r8 = (r6 + r7)|0;
   28266 	r9 = heapU16[(sp+-6)>>1];
   28267 	r10 = heapU16[(r8+6)>>1];
   28268 if(!(uint(r9) >uint(r10))) //_LBB153_16
   28269 {
   28270 	r9 = heapU16[(sp+-12)>>1];
   28271 	r6 = heapU16[(r6+r7)>>1];
   28272 	r7 = r9 & 65535;
   28273 	r6 = r6 & 65535;
   28274 if(!(uint(r7) <uint(r6))) //_LBB153_16
   28275 {
   28276 	r6 = heapU16[(sp+-2)>>1];
   28277 	r7 = heapU16[(r8+10)>>1];
   28278 	r6 = r6 & 65535;
   28279 	r7 = r7 & 65535;
   28280 if(!(uint(r6) >uint(r7))) //_LBB153_16
   28281 {
   28282 	r6 = heapU16[(sp+-8)>>1];
   28283 	r7 = heapU16[(r8+4)>>1];
   28284 	r6 = r6 & 65535;
   28285 	r7 = r7 & 65535;
   28286 if(!(uint(r6) <uint(r7))) //_LBB153_16
   28287 {
   28288 	r6 = heapU16[(sp+-4)>>1];
   28289 	r7 = heapU16[(r8+8)>>1];
   28290 	r6 = r6 & 65535;
   28291 	r7 = r7 & 65535;
   28292 if(!(uint(r6) >uint(r7))) //_LBB153_16
   28293 {
   28294 	r6 = heapU16[(sp+-10)>>1];
   28295 	r7 = heapU16[(r8+2)>>1];
   28296 	r6 = r6 & 65535;
   28297 	r7 = r7 & 65535;
   28298 if(!(uint(r6) <uint(r7))) //_LBB153_16
   28299 {
   28300 	r6 = r8 >> 2;
   28301 	r7 = heap32[(r6+3)];
   28302 	r6 = heap32[(r6+4)];
   28303 	r6 = (r6 + r7)|0;
   28304 	heap32[(g0)] = r0;
   28305 	heap32[(g0+1)] = r1;
   28306 	heap32[(g0+2)] = r4;
   28307 	heap32[(g0+3)] = r2;
   28308 	heap32[(g0+4)] = r7;
   28309 	heap32[(g0+5)] = r6;
   28310 	_ZNK14btQuantizedBvh26walkStacklessQuantizedTreeEP21btNodeOverlapCallbackPtS2_ii(i7);
   28311 }
   28312 }
   28313 }
   28314 }
   28315 }
   28316 }
   28317 	r5 = (r5 + 1)|0;
   28318 	r6 = heap32[(r3+38)];
   28319 	if(r6 >r5) //_LBB153_9
   28320 {
   28321 continue _42;
   28322 }
   28323 else{
   28324 break _1;
   28325 }
   28326 }
   28327 }
   28328 else{
   28329 break _1;
   28330 }
   28331 }
   28332 }
   28333 else{
   28334 	if(r5 !=0) //_LBB153_19
   28335 {
   28336 	r0 = _2E_str10;
   28337 	r1 = _2E_str537;
   28338 	heap32[(g0)] = r0;
   28339 	heap32[(g0+1)] = r1;
   28340 	heap32[(g0+2)] = 341;
   28341 	_assert(i7);
   28342 }
   28343 else{
   28344 	r3 = heap32[(r3+14)];
   28345 	heap32[(g0)] = r0;
   28346 	heap32[(g0+1)] = r1;
   28347 	heap32[(g0+2)] = r4;
   28348 	heap32[(g0+3)] = r2;
   28349 	heap32[(g0+4)] = 0;
   28350 	heap32[(g0+5)] = r3;
   28351 	_ZNK14btQuantizedBvh26walkStacklessQuantizedTreeEP21btNodeOverlapCallbackPtS2_ii(i7);
   28352 	return;
   28353 }
   28354 }
   28355 }
   28356 }
   28357 } while(0);
   28358 	return;
   28359 }
   28360 
   28361 function _ZN14btQuantizedBvh9buildTreeEii(sp)
   28362 {
   28363 	var i7;
   28364 	var fp = sp>>2;
   28365 	var r0;
   28366 	var r1;
   28367 	var r2;
   28368 	var r3;
   28369 	var r4;
   28370 	var r5;
   28371 	var r6;
   28372 	var r7;
   28373 	var r8;
   28374 	var r9;
   28375 	var r10;
   28376 	var r11;
   28377 	var r12;
   28378 	var r13;
   28379 	var r14;
   28380 	var r15;
   28381 	var r16;
   28382 	var r17;
   28383 	var r18;
   28384 	var r19;
   28385 	var r20;
   28386 	var r21;
   28387 	var r22;
   28388 	var r23;
   28389 	var r24;
   28390 	var r25;
   28391 	var f0;
   28392 	var f1;
   28393 	var f2;
   28394 	var f3;
   28395 	var f4;
   28396 	var f5;
   28397 	var f6;
   28398 	var f7;
   28399 	var f8;
   28400 	var f9;
   28401 	var f10;
   28402 	var f11;
   28403 	var f12;
   28404 	var f13;
   28405 	var f14;
   28406 	var f15;
   28407 	var f16;
   28408 	var f17;
   28409 var __label__ = 0;
   28410 	i7 = sp + -112;var g0 = i7>>2; // save stack
   28411 	r0 = heap32[(fp+1)];
   28412 	r1 = heap32[(fp+2)];
   28413 	r2 = (r1 - r0)|0;
   28414 	if(r2 >0) //_LBB154_2
   28415 {
   28416 	r3 = heap32[(fp)];
   28417 	r4 = r3 >> 2;
   28418 	r5 = heap32[(r4+14)];
   28419 	if(r2 !=1) //_LBB154_7
   28420 {
   28421 _5: do {
   28422 	if(r0 <r1) //_LBB154_9
   28423 {
   28424 	r6 = heapU8[r3+60];
   28425 	f1 =                         0;
   28426 	r7 = r0;
   28427 	f2 = f1;
   28428 	f3 = f1;
   28429 _7: while(true){
   28430 	r8 = r6 & 255;
   28431 	if(r8 ==0) //_LBB154_12
   28432 {
   28433 	r9 = heap32[(r4+19)];
   28434 	r10 = r7 << 6;
   28435 	r9 = (r9 + r10)|0;
   28436 	r9 = r9 >> 2;
   28437 	f0 = heapFloat[(r9)];
   28438 	f5 = heapFloat[(r9+1)];
   28439 	f8 = heapFloat[(r9+2)];
   28440 	f4 = heapFloat[(r9+4)];
   28441 	f6 = heapFloat[(r9+5)];
   28442 	f7 = heapFloat[(r9+6)];
   28443 }
   28444 else{
   28445 	r9 = heap32[(r4+29)];
   28446 	r10 = r7 << 4;
   28447 	r11 = (r9 + r10)|0;
   28448 	r9 = heapU16[(r9+r10)>>1];
   28449 	r10 = heapU16[(r11+2)>>1];
   28450 	r12 = heapU16[(r11+4)>>1];
   28451 	r13 = heapU16[(r11+6)>>1];
   28452 	r14 = heapU16[(r11+8)>>1];
   28453 	r11 = heapU16[(r11+10)>>1];
   28454 	f0 = uint(r9); //fuitos r9, f0
   28455 	f4 = heapFloat[(r4+9)];
   28456 	f5 = uint(r13); //fuitos r13, f5
   28457 	f6 = uint(r10); //fuitos r10, f6
   28458 	f7 = heapFloat[(r4+10)];
   28459 	f8 = uint(r14); //fuitos r14, f8
   28460 	f9 = uint(r12); //fuitos r12, f9
   28461 	f10 = heapFloat[(r4+11)];
   28462 	f11 = uint(r11); //fuitos r11, f11
   28463 	f0 = f0/f4;
   28464 	f12 = heapFloat[(r4+1)];
   28465 	f4 = f5/f4;
   28466 	f5 = f6/f7;
   28467 	f6 = heapFloat[(r4+2)];
   28468 	f7 = f8/f7;
   28469 	f8 = f9/f10;
   28470 	f9 = heapFloat[(r4+3)];
   28471 	f10 = f11/f10;
   28472 	f0 = f0+f12;
   28473 	f5 = f5+f6;
   28474 	f8 = f8+f9;
   28475 	f4 = f4+f12;
   28476 	f6 = f7+f6;
   28477 	f7 = f10+f9;
   28478 }
   28479 	f0 = f4+f0;
   28480 	f4 =                       0.5;
   28481 	f5 = f6+f5;
   28482 	f6 = f7+f8;
   28483 	f0 = f0*f4;
   28484 	f5 = f5*f4;
   28485 	f6 = f6*f4;
   28486 	r7 = (r7 + 1)|0;
   28487 	f3 = f3+f0;
   28488 	f2 = f2+f5;
   28489 	f1 = f1+f6;
   28490 if(!(r1 !=r7)) //_LBB154_10
   28491 {
   28492 break _7;
   28493 }
   28494 }
   28495 	f0 = r2; //fitos r2, f0
   28496 	if(r0 <r1) //_LBB154_16
   28497 {
   28498 	f5 =                         1;
   28499 	f5 = f5/f0;
   28500 	f6 = f3*f5;
   28501 	f7 = f2*f5;
   28502 	f5 = f1*f5;
   28503 	f1 =                         0;
   28504 	r6 = r0;
   28505 	f2 = f1;
   28506 	f3 = f1;
   28507 _16: while(true){
   28508 	if(r8 ==0) //_LBB154_19
   28509 {
   28510 	r7 = heap32[(r4+19)];
   28511 	r9 = r6 << 6;
   28512 	r7 = (r7 + r9)|0;
   28513 	r7 = r7 >> 2;
   28514 	f8 = heapFloat[(r7)];
   28515 	f10 = heapFloat[(r7+1)];
   28516 	f13 = heapFloat[(r7+2)];
   28517 	f9 = heapFloat[(r7+4)];
   28518 	f11 = heapFloat[(r7+5)];
   28519 	f12 = heapFloat[(r7+6)];
   28520 }
   28521 else{
   28522 	r7 = heap32[(r4+29)];
   28523 	r9 = r6 << 4;
   28524 	r10 = (r7 + r9)|0;
   28525 	r7 = heapU16[(r7+r9)>>1];
   28526 	r9 = heapU16[(r10+2)>>1];
   28527 	r11 = heapU16[(r10+4)>>1];
   28528 	r12 = heapU16[(r10+6)>>1];
   28529 	r13 = heapU16[(r10+8)>>1];
   28530 	r10 = heapU16[(r10+10)>>1];
   28531 	f8 = uint(r7); //fuitos r7, f8
   28532 	f9 = heapFloat[(r4+9)];
   28533 	f10 = uint(r12); //fuitos r12, f10
   28534 	f11 = uint(r9); //fuitos r9, f11
   28535 	f12 = heapFloat[(r4+10)];
   28536 	f13 = uint(r13); //fuitos r13, f13
   28537 	f14 = uint(r11); //fuitos r11, f14
   28538 	f15 = heapFloat[(r4+11)];
   28539 	f16 = uint(r10); //fuitos r10, f16
   28540 	f8 = f8/f9;
   28541 	f17 = heapFloat[(r4+1)];
   28542 	f9 = f10/f9;
   28543 	f10 = f11/f12;
   28544 	f11 = heapFloat[(r4+2)];
   28545 	f12 = f13/f12;
   28546 	f13 = f14/f15;
   28547 	f14 = heapFloat[(r4+3)];
   28548 	f15 = f16/f15;
   28549 	f8 = f8+f17;
   28550 	f10 = f10+f11;
   28551 	f13 = f13+f14;
   28552 	f9 = f9+f17;
   28553 	f11 = f12+f11;
   28554 	f12 = f15+f14;
   28555 }
   28556 	f8 = f9+f8;
   28557 	f9 = f11+f10;
   28558 	f10 = f12+f13;
   28559 	f8 = f8*f4;
   28560 	f9 = f9*f4;
   28561 	f10 = f10*f4;
   28562 	f8 = f8-f6;
   28563 	f9 = f9-f7;
   28564 	f10 = f10-f5;
   28565 	f8 = f8*f8;
   28566 	f9 = f9*f9;
   28567 	f10 = f10*f10;
   28568 	r6 = (r6 + 1)|0;
   28569 	f3 = f3+f8;
   28570 	f2 = f2+f9;
   28571 	f1 = f1+f10;
   28572 if(!(r1 !=r6)) //_LBB154_17
   28573 {
   28574 break _5;
   28575 }
   28576 }
   28577 }
   28578 else{
   28579 	f1 =                         0;
   28580 	f2 = f1;
   28581 	f3 = f1;
   28582 }
   28583 }
   28584 else{
   28585 	f0 = r2; //fitos r2, f0
   28586 	f1 =                         0;
   28587 	f2 = f1;
   28588 	f3 = f1;
   28589 }
   28590 } while(0);
   28591 	f4 =                        -1;
   28592 	f5 =                         1;
   28593 	f0 = f0+f4;
   28594 	f0 = f5/f0;
   28595 	f3 = f3*f0;
   28596 	f2 = f2*f0;
   28597 	f0 = f1*f0;
   28598 	if(f3 >=f2) //_LBB154_23
   28599 {
   28600 	r6 = 2;
   28601 	r7 = 0;
   28602 	r6 = f3 < f0 ? r6 : r7;
   28603 }
   28604 else{
   28605 	r6 = 2;
   28606 	r7 = 1;
   28607 	r6 = f2 < f0 ? r6 : r7;
   28608 }
   28609 	r7 = sp + -32;
   28610 	r8 = r7 >> 2;
   28611 	heap32[(fp+-8)] = 0;
   28612 	heap32[(r8+1)] = 0;
   28613 	heap32[(r8+2)] = 0;
   28614 	heap32[(r8+3)] = 0;
   28615 	if(r0 <r1) //_LBB154_26
   28616 {
   28617 	r9 = heapU8[r3+60];
   28618 	f0 =                         0;
   28619 	r10 = r0;
   28620 	f1 = f0;
   28621 	f2 = f0;
   28622 _31: while(true){
   28623 	r11 = r9 & 255;
   28624 	if(r11 ==0) //_LBB154_29
   28625 {
   28626 	r11 = heap32[(r4+19)];
   28627 	r12 = r10 << 6;
   28628 	r11 = (r11 + r12)|0;
   28629 	r11 = r11 >> 2;
   28630 	f3 = heapFloat[(r11)];
   28631 	f6 = heapFloat[(r11+1)];
   28632 	f9 = heapFloat[(r11+2)];
   28633 	f4 = heapFloat[(r11+4)];
   28634 	f7 = heapFloat[(r11+5)];
   28635 	f8 = heapFloat[(r11+6)];
   28636 }
   28637 else{
   28638 	r11 = heap32[(r4+29)];
   28639 	r12 = r10 << 4;
   28640 	r13 = (r11 + r12)|0;
   28641 	r11 = heapU16[(r11+r12)>>1];
   28642 	r12 = heapU16[(r13+2)>>1];
   28643 	r14 = heapU16[(r13+4)>>1];
   28644 	r15 = heapU16[(r13+6)>>1];
   28645 	r16 = heapU16[(r13+8)>>1];
   28646 	r13 = heapU16[(r13+10)>>1];
   28647 	f3 = uint(r11); //fuitos r11, f3
   28648 	f4 = heapFloat[(r4+9)];
   28649 	f6 = uint(r15); //fuitos r15, f6
   28650 	f7 = uint(r12); //fuitos r12, f7
   28651 	f8 = heapFloat[(r4+10)];
   28652 	f9 = uint(r16); //fuitos r16, f9
   28653 	f10 = uint(r14); //fuitos r14, f10
   28654 	f11 = heapFloat[(r4+11)];
   28655 	f12 = uint(r13); //fuitos r13, f12
   28656 	f3 = f3/f4;
   28657 	f13 = heapFloat[(r4+1)];
   28658 	f4 = f6/f4;
   28659 	f6 = f7/f8;
   28660 	f7 = heapFloat[(r4+2)];
   28661 	f8 = f9/f8;
   28662 	f9 = f10/f11;
   28663 	f10 = heapFloat[(r4+3)];
   28664 	f11 = f12/f11;
   28665 	f3 = f3+f13;
   28666 	f6 = f6+f7;
   28667 	f9 = f9+f10;
   28668 	f4 = f4+f13;
   28669 	f7 = f8+f7;
   28670 	f8 = f11+f10;
   28671 }
   28672 	f3 = f4+f3;
   28673 	f4 =                       0.5;
   28674 	f6 = f7+f6;
   28675 	f7 = f8+f9;
   28676 	f3 = f3*f4;
   28677 	f6 = f6*f4;
   28678 	f4 = f7*f4;
   28679 	r10 = (r10 + 1)|0;
   28680 	f2 = f2+f3;
   28681 	f1 = f1+f6;
   28682 	f0 = f0+f4;
   28683 if(!(r1 !=r10)) //_LBB154_27
   28684 {
   28685 break _31;
   28686 }
   28687 }
   28688 	heapFloat[(r8+2)] = f0;
   28689 	heapFloat[(r8+1)] = f1;
   28690 	heapFloat[(fp+-8)] = f2;
   28691 }
   28692 else{
   28693 	f0 =                         0;
   28694 	f1 = f0;
   28695 	f2 = f0;
   28696 }
   28697 	f3 = r2; //fitos r2, f3
   28698 	f3 = f5/f3;
   28699 	f2 = f2*f3;
   28700 	f1 = f1*f3;
   28701 	heapFloat[(fp+-8)] = f2;
   28702 	f0 = f0*f3;
   28703 	heapFloat[(r8+1)] = f1;
   28704 	heapFloat[(r8+2)] = f0;
   28705 _40: do {
   28706 	if(r0 <r1) //_LBB154_34
   28707 {
   28708 	r8 = r6 << 2;
   28709 	r6 = (r7 + r8)|0;
   28710 	r6 = r6 >> 2;
   28711 	f0 = heapFloat[(r6)];
   28712 	r6 = r0 << 4;
   28713 	r7 = (r0 - r1)|0;
   28714 	r9 = r0 << 6;
   28715 	r10 = r6 | 12;
   28716 	r11 = 0;
   28717 	r12 = r9;
   28718 	r6 = r0;
   28719 _42: while(true){
   28720 	r13 = heapU8[r3+60];
   28721 	if(r13 ==0) //_LBB154_37
   28722 {
   28723 	r14 = r11 << 4;
   28724 	r15 = heap32[(r4+19)];
   28725 	r15 = (r15 + r9)|0;
   28726 	r14 = r14 << 2;
   28727 	r14 = (r15 - r14)|0;
   28728 	r14 = r14 >> 2;
   28729 	f1 = heapFloat[(r14)];
   28730 	f3 = heapFloat[(r14+1)];
   28731 	f6 = heapFloat[(r14+2)];
   28732 	f2 = heapFloat[(r14+4)];
   28733 	f4 = heapFloat[(r14+5)];
   28734 	f5 = heapFloat[(r14+6)];
   28735 }
   28736 else{
   28737 	r14 = heap32[(r4+29)];
   28738 	r14 = (r14 + r10)|0;
   28739 	r15 = r11 << 4;
   28740 	r14 = (r14 - r15)|0;
   28741 	r15 = heapU16[(r14+-12)>>1];
   28742 	r16 = heapU16[(r14+-10)>>1];
   28743 	r17 = heapU16[(r14+-8)>>1];
   28744 	r18 = heapU16[(r14+-6)>>1];
   28745 	r19 = heapU16[(r14+-4)>>1];
   28746 	r14 = heapU16[(r14+-2)>>1];
   28747 	f1 = uint(r15); //fuitos r15, f1
   28748 	f2 = heapFloat[(r4+9)];
   28749 	f3 = uint(r18); //fuitos r18, f3
   28750 	f4 = uint(r16); //fuitos r16, f4
   28751 	f5 = heapFloat[(r4+10)];
   28752 	f6 = uint(r19); //fuitos r19, f6
   28753 	f7 = uint(r17); //fuitos r17, f7
   28754 	f8 = heapFloat[(r4+11)];
   28755 	f9 = uint(r14); //fuitos r14, f9
   28756 	f1 = f1/f2;
   28757 	f10 = heapFloat[(r4+1)];
   28758 	f2 = f3/f2;
   28759 	f3 = f4/f5;
   28760 	f4 = heapFloat[(r4+2)];
   28761 	f5 = f6/f5;
   28762 	f6 = f7/f8;
   28763 	f7 = heapFloat[(r4+3)];
   28764 	f8 = f9/f8;
   28765 	f1 = f1+f10;
   28766 	f3 = f3+f4;
   28767 	f6 = f6+f7;
   28768 	f2 = f2+f10;
   28769 	f4 = f5+f4;
   28770 	f5 = f8+f7;
   28771 }
   28772 	f1 = f2+f1;
   28773 	f2 =                       0.5;
   28774 	r14 = sp + -48;
   28775 	f3 = f4+f3;
   28776 	f1 = f1*f2;
   28777 	f4 = f5+f6;
   28778 	r15 = r14 >> 2;
   28779 	f3 = f3*f2;
   28780 	heapFloat[(fp+-12)] = f1;
   28781 	f1 = f4*f2;
   28782 	heapFloat[(r15+1)] = f3;
   28783 	r14 = (r14 + r8)|0;
   28784 	heapFloat[(r15+2)] = f1;
   28785 	r14 = r14 >> 2;
   28786 	heap32[(r15+3)] = 0;
   28787 	f1 = heapFloat[(r14)];
   28788 	if(f1 >f0) //_LBB154_40
   28789 {
   28790 	if(r13 ==0) //_LBB154_42
   28791 {
   28792 	r13 = r11 << 4;
   28793 	r14 = heap32[(r4+19)];
   28794 	r15 = (r14 + r9)|0;
   28795 	r13 = r13 << 2;
   28796 	r13 = (r15 - r13)|0;
   28797 	r13 = r13 >> 2;
   28798 	r15 = heap32[(r13+15)];
   28799 	r16 = heap32[(r13+14)];
   28800 	r17 = heap32[(r13+13)];
   28801 	r18 = heap32[(r13+12)];
   28802 	r19 = heap32[(r13+11)];
   28803 	r20 = heap32[(r13+10)];
   28804 	r21 = heap32[(r13+9)];
   28805 	r22 = heap32[(r13+8)];
   28806 	f1 = heapFloat[(r13+7)];
   28807 	f2 = heapFloat[(r13+6)];
   28808 	f3 = heapFloat[(r13+5)];
   28809 	f4 = heapFloat[(r13+4)];
   28810 	f5 = heapFloat[(r13+3)];
   28811 	f6 = heapFloat[(r13+2)];
   28812 	f7 = heapFloat[(r13+1)];
   28813 	f8 = heapFloat[(r13)];
   28814 	r13 = r6 << 6;
   28815 	r23 = (r14 + r12)|0;
   28816 	r14 = (r14 + r13)|0;
   28817 	heap32[(g0)] = r23;
   28818 	heap32[(g0+1)] = r14;
   28819 	heap32[(g0+2)] = 64;
   28820 	memcpy(i7);
   28821 	r14 = heap32[(r4+19)];
   28822 	r13 = (r14 + r13)|0;
   28823 	r13 = r13 >> 2;
   28824 	heapFloat[(r13)] = f8;
   28825 	heapFloat[(r13+1)] = f7;
   28826 	heapFloat[(r13+2)] = f6;
   28827 	heapFloat[(r13+3)] = f5;
   28828 	heapFloat[(r13+4)] = f4;
   28829 	heapFloat[(r13+5)] = f3;
   28830 	heapFloat[(r13+6)] = f2;
   28831 	heapFloat[(r13+7)] = f1;
   28832 	heap32[(r13+8)] = r22;
   28833 	heap32[(r13+9)] = r21;
   28834 	heap32[(r13+10)] = r20;
   28835 	heap32[(r13+11)] = r19;
   28836 	heap32[(r13+12)] = r18;
   28837 	heap32[(r13+13)] = r17;
   28838 	heap32[(r13+14)] = r16;
   28839 	heap32[(r13+15)] = r15;
   28840 }
   28841 else{
   28842 	r13 = heap32[(r4+29)];
   28843 	r14 = (r13 + r10)|0;
   28844 	r15 = r11 << 4;
   28845 	r14 = (r14 - r15)|0;
   28846 	r15 = r6 << 4;
   28847 	r16 = r14 >> 2;
   28848 	r17 = heap32[(r16)];
   28849 	r18 = heapU16[(r14+-2)>>1];
   28850 	r19 = heapU16[(r14+-4)>>1];
   28851 	r20 = heapU16[(r14+-6)>>1];
   28852 	r21 = heapU16[(r14+-8)>>1];
   28853 	r22 = heapU16[(r14+-10)>>1];
   28854 	r23 = heapU16[(r13+r15)>>1];
   28855 	r24 = heapU16[(r14+-12)>>1];
   28856 	r13 = (r13 + r15)|0;
   28857 	heap16[(r14+-12)>>1] = r23;
   28858 	r23 = heapU16[(r13+2)>>1];
   28859 	heap16[(r14+-10)>>1] = r23;
   28860 	r23 = heapU16[(r13+4)>>1];
   28861 	heap16[(r14+-8)>>1] = r23;
   28862 	r23 = heapU16[(r13+6)>>1];
   28863 	heap16[(r14+-6)>>1] = r23;
   28864 	r23 = heapU16[(r13+8)>>1];
   28865 	heap16[(r14+-4)>>1] = r23;
   28866 	r23 = heapU16[(r13+10)>>1];
   28867 	r13 = r13 >> 2;
   28868 	heap16[(r14+-2)>>1] = r23;
   28869 	r13 = heap32[(r13+3)];
   28870 	heap32[(r16)] = r13;
   28871 	r13 = heap32[(r4+29)];
   28872 	r14 = (r13 + r15)|0;
   28873 	heap16[(r13+r15)>>1] = r24;
   28874 	heap16[(r14+2)>>1] = r22;
   28875 	heap16[(r14+4)>>1] = r21;
   28876 	heap16[(r14+6)>>1] = r20;
   28877 	heap16[(r14+8)>>1] = r19;
   28878 	r13 = r14 >> 2;
   28879 	heap16[(r14+10)>>1] = r18;
   28880 	heap32[(r13+3)] = r17;
   28881 }
   28882 	r6 = (r6 + 1)|0;
   28883 }
   28884 	r11 = (r11 + -1)|0;
   28885 	r12 = (r12 + 64)|0;
   28886 if(!(r7 !=r11)) //_LBB154_35
   28887 {
   28888 break _40;
   28889 }
   28890 }
   28891 }
   28892 else{
   28893 	r6 = r0;
   28894 }
   28895 } while(0);
   28896 	r7 = (r2 / 3)|0;
   28897 	r8 = (r7 + r0)|0;
   28898 	if(r8 >=r6) //_LBB154_48
   28899 {
   28900 __label__ = 46;
   28901 }
   28902 else{
   28903 	r8 = (r1 + -1)|0;
   28904 	r7 = (r8 - r7)|0;
   28905 	if(r7 <=r6) //_LBB154_48
   28906 {
   28907 __label__ = 46;
   28908 }
   28909 else{
   28910 __label__ = 47;
   28911 }
   28912 }
   28913 if (__label__ == 46){
   28914 	r6 = r2 >> 1;
   28915 	r6 = (r6 + r0)|0;
   28916 }
   28917 if(!(r6 ==r0)) //_LBB154_51
   28918 {
   28919 	if(r6 !=r1) //_LBB154_52
   28920 {
   28921 	r2 = heap32[(r4+14)];
   28922 	heap32[(fp+-21)] = r2;
   28923 	r2 = heapU8[r3+60];
   28924 	if(r2 ==0) //_LBB154_54
   28925 {
   28926 	r2 = heap32[(fp+-21)];
   28927 	r2 = r2 << 6;
   28928 	r7 = heap32[(r4+24)];
   28929 	r2 = (r7 + r2)|0;
   28930 	r2 = r2 >> 2;
   28931 	heap32[(r2)] = heap32[(r4+5)];
   28932 	heap32[(r2+1)] = heap32[(r4+6)];
   28933 	heap32[(r2+2)] = heap32[(r4+7)];
   28934 	heap32[(r2+3)] = heap32[(r4+8)];
   28935 }
   28936 else{
   28937 	r2 = heap32[(r4+34)];
   28938 	r7 = heap32[(fp+-21)];
   28939 	r7 = r7 << 4;
   28940 	r2 = (r2 + r7)|0;
   28941 	r7 = (r3 + 20)|0;
   28942 	heap32[(g0)] = r3;
   28943 	heap32[(g0+1)] = r2;
   28944 	heap32[(g0+2)] = r7;
   28945 	heap32[(g0+3)] = 0;
   28946 	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
   28947 }
   28948 	r2 = heap32[(r4+14)];
   28949 	r7 = heapU8[r3+60];
   28950 	if(r7 ==0) //_LBB154_57
   28951 {
   28952 	r2 = r2 << 6;
   28953 	r7 = heap32[(r4+24)];
   28954 	r2 = (r7 + r2)|0;
   28955 	r2 = r2 >> 2;
   28956 	heap32[(r2+4)] = heap32[(r4+1)];
   28957 	heap32[(r2+5)] = heap32[(r4+2)];
   28958 	heap32[(r2+6)] = heap32[(r4+3)];
   28959 	heap32[(r2+7)] = heap32[(r4+4)];
   28960 }
   28961 else{
   28962 	r7 = heap32[(r4+34)];
   28963 	r2 = r2 << 4;
   28964 	r2 = (r7 + r2)|0;
   28965 	r2 = (r2 + 6)|0;
   28966 	r7 = (r3 + 4)|0;
   28967 	heap32[(g0)] = r3;
   28968 	heap32[(g0+1)] = r2;
   28969 	heap32[(g0+2)] = r7;
   28970 	heap32[(g0+3)] = 1;
   28971 	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
   28972 }
   28973 _73: do {
   28974 if(!(r0 >=r1)) //_LBB154_95
   28975 {
   28976 	r2 = r0;
   28977 _75: while(true){
   28978 	r7 = heapU8[r3+60];
   28979 _77: do {
   28980 	if(r7 ==0) //_LBB154_69
   28981 {
   28982 	r7 = heap32[(r4+19)];
   28983 	r8 = r2 << 6;
   28984 	r7 = (r7 + r8)|0;
   28985 	r7 = r7 >> 2;
   28986 	f0 = heapFloat[(r7+4)];
   28987 	r8 = sp + -80;
   28988 	heapFloat[(fp+-20)] = f0;
   28989 	f1 = heapFloat[(r7+5)];
   28990 	r8 = r8 >> 2;
   28991 	heapFloat[(r8+1)] = f1;
   28992 	f2 = heapFloat[(r7+6)];
   28993 	heapFloat[(r8+2)] = f2;
   28994 	f3 = heapFloat[(r7+7)];
   28995 	heapFloat[(r8+3)] = f3;
   28996 	f4 = heapFloat[(r7)];
   28997 	r8 = sp + -64;
   28998 	heapFloat[(fp+-16)] = f4;
   28999 	f5 = heapFloat[(r7+1)];
   29000 	r8 = r8 >> 2;
   29001 	heapFloat[(r8+1)] = f5;
   29002 	f6 = heapFloat[(r7+2)];
   29003 	heapFloat[(r8+2)] = f6;
   29004 	f7 = heapFloat[(r7+3)];
   29005 	heapFloat[(r8+3)] = f7;
   29006 	r7 = heap32[(r4+14)];
   29007 	r8 = heap32[(r4+24)];
   29008 	r7 = r7 << 6;
   29009 	r8 = (r8 + r7)|0;
   29010 	r8 = r8 >> 2;
   29011 	f8 = heapFloat[(r8)];
   29012 if(!(f4 >=f8)) //_LBB154_71
   29013 {
   29014 	heapFloat[(r8)] = f4;
   29015 }
   29016 	f4 = heapFloat[(r8+1)];
   29017 if(!(f5 >=f4)) //_LBB154_73
   29018 {
   29019 	heapFloat[(r8+1)] = f5;
   29020 }
   29021 	f4 = heapFloat[(r8+2)];
   29022 if(!(f6 >=f4)) //_LBB154_75
   29023 {
   29024 	heapFloat[(r8+2)] = f6;
   29025 }
   29026 	f4 = heapFloat[(r8+3)];
   29027 if(!(f7 >=f4)) //_LBB154_77
   29028 {
   29029 	heapFloat[(r8+3)] = f7;
   29030 }
   29031 	r8 = heap32[(r4+24)];
   29032 	r7 = (r8 + r7)|0;
   29033 	r7 = r7 >> 2;
   29034 	f4 = heapFloat[(r7+4)];
   29035 if(!(f4 >=f0)) //_LBB154_79
   29036 {
   29037 	heapFloat[(r7+4)] = f0;
   29038 }
   29039 	f0 = heapFloat[(r7+5)];
   29040 if(!(f0 >=f1)) //_LBB154_81
   29041 {
   29042 	heapFloat[(r7+5)] = f1;
   29043 }
   29044 	f0 = heapFloat[(r7+6)];
   29045 if(!(f0 >=f2)) //_LBB154_83
   29046 {
   29047 	heapFloat[(r7+6)] = f2;
   29048 }
   29049 	f0 = heapFloat[(r7+7)];
   29050 	if(f0 >=f3) //_LBB154_94
   29051 {
   29052 break _77;
   29053 }
   29054 else{
   29055 	heapFloat[(r7+7)] = f3;
   29056 }
   29057 }
   29058 else{
   29059 	r7 = heap32[(r4+29)];
   29060 	r8 = r2 << 4;
   29061 	r9 = (r7 + r8)|0;
   29062 	r10 = sp + -80;
   29063 	r11 = heapU16[(r9+10)>>1];
   29064 	r12 = heapU16[(r9+8)>>1];
   29065 	r13 = heapU16[(r9+6)>>1];
   29066 	f0 = heapFloat[(r4+11)];
   29067 	f1 = heapFloat[(r4+10)];
   29068 	f2 = heapFloat[(r4+9)];
   29069 	r14 = r10 >> 2;
   29070 	f3 = uint(r13); //fuitos r13, f3
   29071 	heap32[(r14+3)] = 0;
   29072 	f3 = f3/f2;
   29073 	f4 = heapFloat[(r4+1)];
   29074 	f3 = f3+f4;
   29075 	f5 = uint(r12); //fuitos r12, f5
   29076 	heapFloat[(fp+-20)] = f3;
   29077 	f3 = f5/f1;
   29078 	f5 = heapFloat[(r4+2)];
   29079 	f3 = f3+f5;
   29080 	f6 = uint(r11); //fuitos r11, f6
   29081 	heapFloat[(r14+1)] = f3;
   29082 	f3 = f6/f0;
   29083 	f6 = heapFloat[(r4+3)];
   29084 	f3 = f3+f6;
   29085 	heapFloat[(r14+2)] = f3;
   29086 	r7 = heapU16[(r7+r8)>>1];
   29087 	r8 = sp + -64;
   29088 	f3 = uint(r7); //fuitos r7, f3
   29089 	r7 = heapU16[(r9+4)>>1];
   29090 	r9 = heapU16[(r9+2)>>1];
   29091 	f7 = uint(r9); //fuitos r9, f7
   29092 	f2 = f3/f2;
   29093 	r9 = r8 >> 2;
   29094 	f3 = uint(r7); //fuitos r7, f3
   29095 	f1 = f7/f1;
   29096 	f2 = f2+f4;
   29097 	heap32[(r9+3)] = 0;
   29098 	f0 = f3/f0;
   29099 	f1 = f1+f5;
   29100 	heapFloat[(fp+-16)] = f2;
   29101 	f0 = f0+f6;
   29102 	heapFloat[(r9+1)] = f1;
   29103 	heapFloat[(r9+2)] = f0;
   29104 	r7 = heap32[(r4+14)];
   29105 	r9 = sp + -6;
   29106 	heap32[(g0)] = r3;
   29107 	heap32[(g0+1)] = r9;
   29108 	heap32[(g0+2)] = r8;
   29109 	heap32[(g0+3)] = 0;
   29110 	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
   29111 	r8 = sp + -12;
   29112 	heap32[(g0)] = r3;
   29113 	heap32[(g0+1)] = r8;
   29114 	heap32[(g0+2)] = r10;
   29115 	heap32[(g0+3)] = 1;
   29116 	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
   29117 	r8 = heapU16[(sp+-6)>>1];
   29118 	r9 = heap32[(r4+34)];
   29119 	r7 = r7 << 4;
   29120 	r10 = heapU16[(r9+r7)>>1];
   29121 	if(uint(r10) >uint(r8)) //_LBB154_63
   29122 {
   29123 	heap16[(r9+r7)>>1] = r8;
   29124 	r9 = heap32[(r4+34)];
   29125 }
   29126 	r8 = (r9 + r7)|0;
   29127 	r10 = heapU16[(sp+-12)>>1];
   29128 	r11 = heapU16[(r8+6)>>1];
   29129 	if(uint(r11) <uint(r10)) //_LBB154_66
   29130 {
   29131 	heap16[(r8+6)>>1] = r10;
   29132 	r9 = heap32[(r4+34)];
   29133 }
   29134 	r8 = (r9 + r7)|0;
   29135 	r10 = heapU16[(sp+-4)>>1];
   29136 	r11 = heapU16[(r8+2)>>1];
   29137 	if(uint(r11) >uint(r10)) //_LBB154_89
   29138 {
   29139 	heap16[(r8+2)>>1] = r10;
   29140 	r9 = heap32[(r4+34)];
   29141 }
   29142 	r8 = (r9 + r7)|0;
   29143 	r10 = heapU16[(sp+-10)>>1];
   29144 	r11 = heapU16[(r8+8)>>1];
   29145 	if(uint(r11) <uint(r10)) //_LBB154_90
   29146 {
   29147 	heap16[(r8+8)>>1] = r10;
   29148 	r9 = heap32[(r4+34)];
   29149 }
   29150 	r8 = (r9 + r7)|0;
   29151 	r10 = heapU16[(sp+-2)>>1];
   29152 	r11 = heapU16[(r8+4)>>1];
   29153 	if(uint(r11) >uint(r10)) //_LBB154_92
   29154 {
   29155 	heap16[(r8+4)>>1] = r10;
   29156 	r9 = heap32[(r4+34)];
   29157 }
   29158 	r7 = (r9 + r7)|0;
   29159 	r8 = heapU16[(sp+-8)>>1];
   29160 	r9 = heapU16[(r7+10)>>1];
   29161 	if(uint(r9) <uint(r8)) //_LBB154_93
   29162 {
   29163 	heap16[(r7+10)>>1] = r8;
   29164 }
   29165 }
   29166 } while(0);
   29167 	r2 = (r2 + 1)|0;
   29168 if(!(r1 !=r2)) //_LBB154_60
   29169 {
   29170 break _73;
   29171 }
   29172 }
   29173 }
   29174 } while(0);
   29175 	r2 = heap32[(r4+14)];
   29176 	r7 = (r2 + 1)|0;
   29177 	heap32[(r4+14)] = r7;
   29178 	heap32[(g0)] = r3;
   29179 	heap32[(g0+1)] = r0;
   29180 	heap32[(g0+2)] = r6;
   29181 	_ZN14btQuantizedBvh9buildTreeEii(i7);
   29182 	r0 = heap32[(r4+14)];
   29183 	heap32[(fp+-23)] = r0;
   29184 	heap32[(g0)] = r3;
   29185 	heap32[(g0+1)] = r6;
   29186 	heap32[(g0+2)] = r1;
   29187 	_ZN14btQuantizedBvh9buildTreeEii(i7);
   29188 	r0 = heap32[(r4+14)];
   29189 	r0 = (r0 - r5)|0;
   29190 	heap32[(fp+-22)] = r0;
   29191 	r0 = heapU8[r3+60];
   29192 _120: do {
   29193 if(!(r0 ==0)) //_LBB154_143
   29194 {
   29195 	r0 = heap32[(fp+-22)];
   29196 	r0 = r0 << 4;
   29197 if(!(r0 <2049)) //_LBB154_142
   29198 {
   29199 	r0 = heap32[(r4+34)];
   29200 	r1 = heap32[(fp+-23)];
   29201 	r1 = r1 << 4;
   29202 	heap32[(fp+-24)] = r1;
   29203 	r2 = r2 << 4;
   29204 	r1 = (r0 + r1)|0;
   29205 	r2 = (r0 + r2)|0;
   29206 	r5 = r1 >> 2;
   29207 	r6 = r2 >> 2;
   29208 	r5 = heap32[(r5+3)];
   29209 	r8 = 0;
   29210 	r6 = heap32[(r6+7)];
   29211 	r9 = 1;
   29212 	r10 = (r8 - r6)|0;
   29213 	r6 = r6 < 0 ? r10 : r9;
   29214 	r10 = r6 << 4;
   29215 if(!(r10 >2048)) //_LBB154_119
   29216 {
   29217 	r10 = heap32[(r4+39)];
   29218 	r11 = heap32[(r4+38)];
   29219 	if(r10 ==r11) //_LBB154_100
   29220 {
   29221 	r12 = r11 << 1;
   29222 	r12 = r11 == 0 ? r9 : r12;
   29223 	if(r10 >=r12) //_LBB154_99
   29224 {
   29225 __label__ = 92;
   29226 }
   29227 else{
   29228 	if(r12 !=0) //_LBB154_103
   29229 {
   29230 	r10 = gNumAlignedAllocs;
   29231 	r10 = r10 >> 2;
   29232 	r13 = heap32[(r10)];
   29233 	r13 = (r13 + 1)|0;
   29234 	r14 = r12 << 5;
   29235 	heap32[(r10)] = r13;
   29236 	r10 = r14 | 19;
   29237 	heap32[(g0)] = r10;
   29238 	malloc(i7);
   29239 	r13 = r_g0;
   29240 	if(r13 !=0) //_LBB154_105
   29241 {
   29242 	r10 = 0;
   29243 	r14 = (r13 + 4)|0;
   29244 	r10 = (r10 - r14)|0;
   29245 	r10 = r10 & 15;
   29246 	r10 = (r13 + r10)|0;
   29247 	r14 = (r10 + 4)|0;
   29248 	r10 = r10 >> 2;
   29249 	heap32[(r10)] = r13;
   29250 	r13 = r14;
   29251 }
   29252 }
   29253 else{
   29254 	r13 = 0;
   29255 }
   29256 	r14 = (r3 + 160)|0;
   29257 	if(r11 <1) //_LBB154_108
   29258 {
   29259 	r10 = r14 >> 2;
   29260 	r16 = heap32[(r10)];
   29261 }
   29262 else{
   29263 	r10 = 0;
   29264 	r15 = r11;
   29265 _137: while(true){
   29266 	r16 = r14 >> 2;
   29267 	r16 = heap32[(r16)];
   29268 	r17 = (r16 + r10)|0;
   29269 	r17 = r17 >> 2;
   29270 	r18 = (r13 + r10)|0;
   29271 	r15 = (r15 + -1)|0;
   29272 	r10 = (r10 + 32)|0;
   29273 	r19 = heap32[(r17)];
   29274 	r18 = r18 >> 2;
   29275 	r20 = heap32[(r17+1)];
   29276 	r21 = heap32[(r17+2)];
   29277 	r22 = heap32[(r17+3)];
   29278 	r23 = heap32[(r17+4)];
   29279 	r24 = heap32[(r17+5)];
   29280 	r25 = heap32[(r17+6)];
   29281 	r17 = heap32[(r17+7)];
   29282 	heap32[(r18)] = r19;
   29283 	heap32[(r18+1)] = r20;
   29284 	heap32[(r18+2)] = r21;
   29285 	heap32[(r18+3)] = r22;
   29286 	heap32[(r18+4)] = r23;
   29287 	heap32[(r18+5)] = r24;
   29288 	heap32[(r18+6)] = r25;
   29289 	heap32[(r18+7)] = r17;
   29290 if(!(r15 !=0)) //_LBB154_109
   29291 {
   29292 break _137;
   29293 }
   29294 }
   29295 	r14 = (r3 + 160)|0;
   29296 }
   29297 	if(r16 !=0) //_LBB154_113
   29298 {
   29299 	r10 = heapU8[r3+164];
   29300 	if(r10 !=0) //_LBB154_115
   29301 {
   29302 	r10 = gNumAlignedFree;
   29303 	r10 = r10 >> 2;
   29304 	r15 = heap32[(r10)];
   29305 	r15 = (r15 + 1)|0;
   29306 	r16 = r16 >> 2;
   29307 	heap32[(r10)] = r15;
   29308 	r10 = heap32[(r16+-1)];
   29309 	heap32[(g0)] = r10;
   29310 	free(i7);
   29311 	r10 = heap32[(r4+38)];
   29312 }
   29313 else{
   29314 	r10 = r11;
   29315 }
   29316 	r15 = r14 >> 2;
   29317 	heap32[(r15)] = 0;
   29318 }
   29319 else{
   29320 	r10 = r11;
   29321 }
   29322 	r14 = r14 >> 2;
   29323 	heap8[r3+164] = r9;
   29324 	heap32[(r14)] = r13;
   29325 	heap32[(r4+39)] = r12;
   29326 __label__ = 110;
   29327 }
   29328 }
   29329 else{
   29330 __label__ = 92;
   29331 }
   29332 if (__label__ == 92){
   29333 	r10 = r11;
   29334 }
   29335 	r10 = (r10 + 1)|0;
   29336 	heap32[(r4+38)] = r10;
   29337 	r10 = heap32[(r4+40)];
   29338 	r12 = heapU16[(r2+16)>>1];
   29339 	r11 = r11 << 5;
   29340 	heap16[(r10+r11)>>1] = r12;
   29341 	r10 = (r10 + r11)|0;
   29342 	r11 = heapU16[(r2+18)>>1];
   29343 	heap16[(r10+2)>>1] = r11;
   29344 	r11 = heapU16[(r2+20)>>1];
   29345 	heap16[(r10+4)>>1] = r11;
   29346 	r11 = heapU16[(r2+22)>>1];
   29347 	heap16[(r10+6)>>1] = r11;
   29348 	r11 = heapU16[(r2+24)>>1];
   29349 	heap16[(r10+8)>>1] = r11;
   29350 	r2 = heapU16[(r2+26)>>1];
   29351 	r11 = r10 >> 2;
   29352 	heap16[(r10+10)>>1] = r2;
   29353 	heap32[(r11+3)] = r7;
   29354 	heap32[(r11+4)] = r6;
   29355 }
   29356 	r2 = (r8 - r5)|0;
   29357 	r2 = r5 < 0 ? r2 : r9;
   29358 	r5 = r2 << 4;
   29359 if(!(r5 >2048)) //_LBB154_141
   29360 {
   29361 	r5 = heap32[(r4+39)];
   29362 	r6 = heap32[(r4+38)];
   29363 	if(r5 ==r6) //_LBB154_122
   29364 {
   29365 	r7 = r6 << 1;
   29366 	r7 = r6 == 0 ? r9 : r7;
   29367 	if(r5 >=r7) //_LBB154_121
   29368 {
   29369 __label__ = 113;
   29370 }
   29371 else{
   29372 	if(r7 !=0) //_LBB154_125
   29373 {
   29374 	r5 = gNumAlignedAllocs;
   29375 	r5 = r5 >> 2;
   29376 	r10 = heap32[(r5)];
   29377 	r10 = (r10 + 1)|0;
   29378 	r11 = r7 << 5;
   29379 	heap32[(r5)] = r10;
   29380 	r5 = r11 | 19;
   29381 	heap32[(g0)] = r5;
   29382 	malloc(i7);
   29383 	r10 = r_g0;
   29384 	if(r10 !=0) //_LBB154_127
   29385 {
   29386 	r5 = (r10 + 4)|0;
   29387 	r5 = (r8 - r5)|0;
   29388 	r5 = r5 & 15;
   29389 	r5 = (r10 + r5)|0;
   29390 	r11 = (r5 + 4)|0;
   29391 	r5 = r5 >> 2;
   29392 	heap32[(r5)] = r10;
   29393 	r10 = r11;
   29394 }
   29395 }
   29396 else{
   29397 	r10 = 0;
   29398 }
   29399 	r11 = (r3 + 160)|0;
   29400 	if(r6 <1) //_LBB154_130
   29401 {
   29402 	r5 = r11 >> 2;
   29403 	r12 = heap32[(r5)];
   29404 }
   29405 else{
   29406 	r5 = r6;
   29407 _166: while(true){
   29408 	r12 = r11 >> 2;
   29409 	r12 = heap32[(r12)];
   29410 	r13 = (r12 + r8)|0;
   29411 	r13 = r13 >> 2;
   29412 	r14 = (r10 + r8)|0;
   29413 	r5 = (r5 + -1)|0;
   29414 	r8 = (r8 + 32)|0;
   29415 	r15 = heap32[(r13)];
   29416 	r14 = r14 >> 2;
   29417 	r16 = heap32[(r13+1)];
   29418 	r17 = heap32[(r13+2)];
   29419 	r18 = heap32[(r13+3)];
   29420 	r19 = heap32[(r13+4)];
   29421 	r20 = heap32[(r13+5)];
   29422 	r21 = heap32[(r13+6)];
   29423 	r13 = heap32[(r13+7)];
   29424 	heap32[(r14)] = r15;
   29425 	heap32[(r14+1)] = r16;
   29426 	heap32[(r14+2)] = r17;
   29427 	heap32[(r14+3)] = r18;
   29428 	heap32[(r14+4)] = r19;
   29429 	heap32[(r14+5)] = r20;
   29430 	heap32[(r14+6)] = r21;
   29431 	heap32[(r14+7)] = r13;
   29432 if(!(r5 !=0)) //_LBB154_131
   29433 {
   29434 break _166;
   29435 }
   29436 }
   29437 	r11 = (r3 + 160)|0;
   29438 }
   29439 	if(r12 !=0) //_LBB154_135
   29440 {
   29441 	r5 = heapU8[r3+164];
   29442 	if(r5 !=0) //_LBB154_137
   29443 {
   29444 	r5 = gNumAlignedFree;
   29445 	r5 = r5 >> 2;
   29446 	r8 = heap32[(r5)];
   29447 	r8 = (r8 + 1)|0;
   29448 	r12 = r12 >> 2;
   29449 	heap32[(r5)] = r8;
   29450 	r5 = heap32[(r12+-1)];
   29451 	heap32[(g0)] = r5;
   29452 	free(i7);
   29453 	r5 = heap32[(r4+38)];
   29454 }
   29455 else{
   29456 	r5 = r6;
   29457 }
   29458 	r8 = r11 >> 2;
   29459 	heap32[(r8)] = 0;
   29460 }
   29461 else{
   29462 	r5 = r6;
   29463 }
   29464 	r8 = r11 >> 2;
   29465 	heap8[r3+164] = r9;
   29466 	heap32[(r8)] = r10;
   29467 	heap32[(r4+39)] = r7;
   29468 __label__ = 131;
   29469 }
   29470 }
   29471 else{
   29472 __label__ = 113;
   29473 }
   29474 if (__label__ == 113){
   29475 	r5 = r6;
   29476 }
   29477 	r5 = (r5 + 1)|0;
   29478 	heap32[(r4+38)] = r5;
   29479 	r5 = heap32[(r4+40)];
   29480 	r7 = heap32[(fp+-24)];
   29481 	r0 = heapU16[(r0+r7)>>1];
   29482 	r6 = r6 << 5;
   29483 	heap16[(r5+r6)>>1] = r0;
   29484 	r0 = (r5 + r6)|0;
   29485 	r5 = heapU16[(r1+2)>>1];
   29486 	heap16[(r0+2)>>1] = r5;
   29487 	r5 = heapU16[(r1+4)>>1];
   29488 	heap16[(r0+4)>>1] = r5;
   29489 	r5 = heapU16[(r1+6)>>1];
   29490 	heap16[(r0+6)>>1] = r5;
   29491 	r5 = heapU16[(r1+8)>>1];
   29492 	heap16[(r0+8)>>1] = r5;
   29493 	r1 = heapU16[(r1+10)>>1];
   29494 	r5 = r0 >> 2;
   29495 	heap16[(r0+10)>>1] = r1;
   29496 	r0 = heap32[(fp+-23)];
   29497 	heap32[(r5+3)] = r0;
   29498 	heap32[(r5+4)] = r2;
   29499 }
   29500 	r0 = heap32[(r4+38)];
   29501 	heap32[(r4+42)] = r0;
   29502 	r0 = heapU8[r3+60];
   29503 	if(r0 ==0) //_LBB154_143
   29504 {
   29505 break _120;
   29506 }
   29507 }
   29508 	r0 = heap32[(fp+-21)];
   29509 	r0 = r0 << 4;
   29510 	r4 = heap32[(r4+34)];
   29511 	r4 = (r4 + r0)|0;
   29512 	r0 = 0;
   29513 	r4 = r4 >> 2;
   29514 	r1 = heap32[(fp+-22)];
   29515 	r0 = (r0 - r1)|0;
   29516 	heap32[(r4+3)] = r0;
   29517 	return;
   29518 }
   29519 } while(0);
   29520 	r0 = heap32[(fp+-21)];
   29521 	r0 = r0 << 6;
   29522 	r1 = heap32[(r4+24)];
   29523 	r0 = (r1 + r0)|0;
   29524 	r0 = r0 >> 2;
   29525 	r1 = heap32[(fp+-22)];
   29526 	heap32[(r0+8)] = r1;
   29527 	return;
   29528 }
   29529 }
   29530 	r0 = _2E_str21;
   29531 	r1 = _2E_str537;
   29532 	heap32[(g0)] = r0;
   29533 	heap32[(g0+1)] = r1;
   29534 	heap32[(g0+2)] = 278;
   29535 	_assert(i7);
   29536 }
   29537 else{
   29538 	r1 = heapU8[r3+60];
   29539 	if(r1 ==0) //_LBB154_5
   29540 {
   29541 	r1 = heap32[(r4+24)];
   29542 	r2 = heap32[(r4+19)];
   29543 	r3 = r5 << 6;
   29544 	r0 = r0 << 6;
   29545 	r1 = (r1 + r3)|0;
   29546 	r0 = (r2 + r0)|0;
   29547 	heap32[(g0)] = r1;
   29548 	heap32[(g0+1)] = r0;
   29549 	heap32[(g0+2)] = 64;
   29550 	memcpy(i7);
   29551 }
   29552 else{
   29553 	r0 = r0 << 4;
   29554 	r1 = heap32[(r4+29)];
   29555 	r2 = heap32[(r4+34)];
   29556 	r3 = heapU16[(r1+r0)>>1];
   29557 	r5 = r5 << 4;
   29558 	r0 = (r1 + r0)|0;
   29559 	heap16[(r2+r5)>>1] = r3;
   29560 	r1 = (r2 + r5)|0;
   29561 	r2 = heapU16[(r0+2)>>1];
   29562 	heap16[(r1+2)>>1] = r2;
   29563 	r2 = heapU16[(r0+4)>>1];
   29564 	heap16[(r1+4)>>1] = r2;
   29565 	r2 = heapU16[(r0+6)>>1];
   29566 	heap16[(r1+6)>>1] = r2;
   29567 	r2 = heapU16[(r0+8)>>1];
   29568 	heap16[(r1+8)>>1] = r2;
   29569 	r2 = heapU16[(r0+10)>>1];
   29570 	r0 = r0 >> 2;
   29571 	heap16[(r1+10)>>1] = r2;
   29572 	r1 = r1 >> 2;
   29573 	r0 = heap32[(r0+3)];
   29574 	heap32[(r1+3)] = r0;
   29575 }
   29576 	r0 = heap32[(r4+14)];
   29577 	r0 = (r0 + 1)|0;
   29578 	heap32[(r4+14)] = r0;
   29579 	return;
   29580 }
   29581 }
   29582 else{
   29583 	r0 = _2E_str2246;
   29584 	r1 = _2E_str537;
   29585 	heap32[(g0)] = r0;
   29586 	heap32[(g0+1)] = r1;
   29587 	heap32[(g0+2)] = 127;
   29588 	_assert(i7);
   29589 }
   29590 }
   29591 
   29592 function _ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(sp)
   29593 {
   29594 	var i7;
   29595 	var fp = sp>>2;
   29596 	var r0;
   29597 	var r1;
   29598 	var r2;
   29599 	var r3;
   29600 	var r4;
   29601 	var r5;
   29602 	var r6;
   29603 	var r7;
   29604 	var r8;
   29605 	var r9;
   29606 	var r10;
   29607 	var r11;
   29608 	var r12;
   29609 	var r13;
   29610 	var r14;
   29611 	var r15;
   29612 	var r16;
   29613 	var r17;
   29614 	var r18;
   29615 	var r19;
   29616 	var r20;
   29617 	var r21;
   29618 	var f0;
   29619 	var f1;
   29620 	var f2;
   29621 	var f3;
   29622 	var f4;
   29623 	var f5;
   29624 	var f6;
   29625 	var f7;
   29626 	var f8;
   29627 	var f9;
   29628 	var f10;
   29629 	var f11;
   29630 	var f12;
   29631 	var f13;
   29632 	var f14;
   29633 	var f15;
   29634 	var f16;
   29635 	var f17;
   29636 	var f18;
   29637 	var f19;
   29638 var __label__ = 0;
   29639 	i7 = sp + -96;var g0 = i7>>2; // save stack
   29640 	r0 = heap32[(fp)];
   29641 	r1 = heapU8[r0+60];
   29642 	if(r1 !=0) //_LBB155_2
   29643 {
   29644 	r1 = heap32[(fp+1)];
   29645 	r2 = heap32[(fp+2)];
   29646 	r3 = heap32[(fp+3)];
   29647 	r4 = heap32[(fp+4)];
   29648 	r5 = heap32[(fp+5)];
   29649 	r6 = heap32[(fp+6)];
   29650 	r3 = r3 >> 2;
   29651 	r2 = r2 >> 2;
   29652 	f0 = heapFloat[(r3)];
   29653 	f1 = heapFloat[(r2)];
   29654 	f2 = heapFloat[(r3+1)];
   29655 	f3 = heapFloat[(r2+1)];
   29656 	f0 = f0-f1;
   29657 	r7 = r0 >> 2;
   29658 	f1 = f2-f3;
   29659 	f2 = heapFloat[(r3+2)];
   29660 	f3 = heapFloat[(r2+2)];
   29661 	r8 = heap32[(r7+34)];
   29662 	f2 = f2-f3;
   29663 	f3 = f0*f0;
   29664 	f4 = f1*f1;
   29665 	f3 = f3+f4;
   29666 	f4 = f2*f2;
   29667 	f3 = f3+f4;
   29668 	heapFloat[(g0)] = f3;
   29669 	sqrtf(i7);
   29670 	f4 =                         1;
   29671 	f3 = f4/f_g0;
   29672 	f5 = heapFloat[(r3)];
   29673 	f6 = heapFloat[(r2)];
   29674 	f7 = heapFloat[(r3+1)];
   29675 	f8 = heapFloat[(r2+1)];
   29676 	f0 = f0*f3;
   29677 	f9 = f5-f6;
   29678 	f1 = f1*f3;
   29679 	f10 = f7-f8;
   29680 	f11 = heapFloat[(r3+2)];
   29681 	f12 = heapFloat[(r2+2)];
   29682 	f2 = f2*f3;
   29683 	f3 = f11-f12;
   29684 	f9 = f0*f9;
   29685 	f10 = f1*f10;
   29686 	f9 = f9+f10;
   29687 	f3 = f2*f3;
   29688 	f3 = f9+f3;
   29689 	f9 =                         0;
   29690 	if(f0 !=f9) //_LBB155_4
   29691 {
   29692 	f0 = f4/f0;
   29693 }
   29694 else{
   29695 	f0 =        999999984306749440;
   29696 }
   29697 	if(f1 !=f9) //_LBB155_7
   29698 {
   29699 	f1 = f4/f1;
   29700 }
   29701 else{
   29702 	f1 =        999999984306749440;
   29703 }
   29704 	if(f2 !=f9) //_LBB155_10
   29705 {
   29706 	f2 = f4/f2;
   29707 }
   29708 else{
   29709 	f2 =        999999984306749440;
   29710 }
   29711 	r9 = heapU8[r0+60];
   29712 	if(r9 !=0) //_LBB155_13
   29713 {
   29714 	r4 = r4 >> 2;
   29715 	r5 = r5 >> 2;
   29716 	r9 = f0 < f9;
   29717 	r10 = f1 < f9;
   29718 	r11 = f2 < f9;
   29719 	f4 = heapFloat[(r2+3)];
   29720 	f10 = heapFloat[(r3+3)];
   29721 	f13 = f5 < f6 ? f5 : f6;
   29722 	f14 = heapFloat[(r4)];
   29723 	f15 = f7 < f8 ? f7 : f8;
   29724 	f16 = heapFloat[(r4+1)];
   29725 	f17 = f11 < f12 ? f11 : f12;
   29726 	f18 = heapFloat[(r4+2)];
   29727 	f5 = f6 < f5 ? f5 : f6;
   29728 	f6 = heapFloat[(r5)];
   29729 	f7 = f8 < f7 ? f7 : f8;
   29730 	f8 = heapFloat[(r5+1)];
   29731 	f11 = f12 < f11 ? f11 : f12;
   29732 	f12 = heapFloat[(r5+2)];
   29733 	r3 = r9 & 1;
   29734 	r9 = r10 & 1;
   29735 	r10 = r11 & 1;
   29736 	f19 = f10 < f4 ? f10 : f4;
   29737 	f4 = f4 < f10 ? f10 : f4;
   29738 	f10 = f13+f14;
   29739 	f13 = f15+f16;
   29740 	f14 = f17+f18;
   29741 	f5 = f5+f6;
   29742 	f6 = f7+f8;
   29743 	f7 = f11+f12;
   29744 	r11 = sp + -16;
   29745 	r12 = r11 >> 2;
   29746 	heapFloat[(fp+-4)] = f10;
   29747 	heapFloat[(r12+1)] = f13;
   29748 	heapFloat[(r12+2)] = f14;
   29749 	heapFloat[(r12+3)] = f19;
   29750 	f8 = heapFloat[(r7+1)];
   29751 	if(f10 <f8) //_LBB155_15
   29752 {
   29753 	heapFloat[(fp+-4)] = f8;
   29754 	f10 = f8;
   29755 }
   29756 	f8 = heapFloat[(r7+2)];
   29757 	if(f13 <f8) //_LBB155_18
   29758 {
   29759 	heapFloat[(r12+1)] = f8;
   29760 	f13 = f8;
   29761 }
   29762 	f8 = heapFloat[(r7+3)];
   29763 	if(f14 <f8) //_LBB155_21
   29764 {
   29765 	heapFloat[(r12+2)] = f8;
   29766 	f14 = f8;
   29767 }
   29768 	f8 = heapFloat[(r7+4)];
   29769 	if(f19 <f8) //_LBB155_24
   29770 {
   29771 	heapFloat[(r12+3)] = f8;
   29772 	f19 = f8;
   29773 }
   29774 	f8 = heapFloat[(r7+5)];
   29775 if(!(f8 >=f10)) //_LBB155_27
   29776 {
   29777 	heapFloat[(fp+-4)] = f8;
   29778 }
   29779 	f8 = heapFloat[(r7+6)];
   29780 if(!(f8 >=f13)) //_LBB155_29
   29781 {
   29782 	heapFloat[(r12+1)] = f8;
   29783 }
   29784 	f8 = heapFloat[(r7+7)];
   29785 if(!(f8 >=f14)) //_LBB155_31
   29786 {
   29787 	heapFloat[(r12+2)] = f8;
   29788 }
   29789 	f8 = heapFloat[(r7+8)];
   29790 if(!(f8 >=f19)) //_LBB155_33
   29791 {
   29792 	heapFloat[(r12+3)] = f8;
   29793 }
   29794 	r12 = sp + -38;
   29795 	heap32[(g0)] = r0;
   29796 	heap32[(g0+1)] = r12;
   29797 	heap32[(g0+2)] = r11;
   29798 	heap32[(g0+3)] = 0;
   29799 	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
   29800 	r11 = heapU8[r0+60];
   29801 	if(r11 !=0) //_LBB155_35
   29802 {
   29803 	r11 = sp + -32;
   29804 	r12 = r11 >> 2;
   29805 	heapFloat[(fp+-8)] = f5;
   29806 	heapFloat[(r12+1)] = f6;
   29807 	heapFloat[(r12+2)] = f7;
   29808 	heapFloat[(r12+3)] = f4;
   29809 	f8 = heapFloat[(r7+1)];
   29810 	if(f5 <f8) //_LBB155_37
   29811 {
   29812 	heapFloat[(fp+-8)] = f8;
   29813 	f5 = f8;
   29814 }
   29815 	f8 = heapFloat[(r7+2)];
   29816 	if(f6 <f8) //_LBB155_40
   29817 {
   29818 	heapFloat[(r12+1)] = f8;
   29819 	f6 = f8;
   29820 }
   29821 	f8 = heapFloat[(r7+3)];
   29822 	if(f7 <f8) //_LBB155_43
   29823 {
   29824 	heapFloat[(r12+2)] = f8;
   29825 	f7 = f8;
   29826 }
   29827 	f8 = heapFloat[(r7+4)];
   29828 	if(f4 <f8) //_LBB155_46
   29829 {
   29830 	heapFloat[(r12+3)] = f8;
   29831 	f4 = f8;
   29832 }
   29833 	f8 = heapFloat[(r7+5)];
   29834 if(!(f8 >=f5)) //_LBB155_49
   29835 {
   29836 	heapFloat[(fp+-8)] = f8;
   29837 }
   29838 	f5 = heapFloat[(r7+6)];
   29839 if(!(f5 >=f6)) //_LBB155_51
   29840 {
   29841 	heapFloat[(r12+1)] = f5;
   29842 }
   29843 	f5 = heapFloat[(r7+7)];
   29844 if(!(f5 >=f7)) //_LBB155_53
   29845 {
   29846 	heapFloat[(r12+2)] = f5;
   29847 }
   29848 	f5 = heapFloat[(r7+8)];
   29849 if(!(f5 >=f4)) //_LBB155_55
   29850 {
   29851 	heapFloat[(r12+3)] = f5;
   29852 }
   29853 	r12 = sp + -44;
   29854 	heap32[(g0)] = r0;
   29855 	heap32[(g0+1)] = r12;
   29856 	heap32[(g0+2)] = r11;
   29857 	heap32[(g0+3)] = 1;
   29858 	r0 = r3 ^ 1;
   29859 	r11 = r9 ^ 1;
   29860 	r12 = r10 ^ 1;
   29861 	r13 = 0;
   29862 	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
   29863 	r14 = r13;
   29864 _66: while(true){
   29865 	if(r13 <r6) //_LBB155_56
   29866 {
   29867 	if(r14 <r6) //_LBB155_58
   29868 {
   29869 	r15 = r8 >> 2;
   29870 	r16 = heap32[(r15+3)];
   29871 	r14 = (r14 + 1)|0;
   29872 	r16 = r16 >>> 31;
   29873 	r17 = heapU16[(sp+-38)>>1];
   29874 	r18 = heapU16[(r8+6)>>1];
   29875 	if(uint(r17) >uint(r18)) //_LBB155_64
   29876 {
   29877 __label__ = 55;
   29878 }
   29879 else{
   29880 	r17 = heapU16[(r8)>>1];
   29881 	r18 = heapU16[(sp+-44)>>1];
   29882 	r18 = r18 & 65535;
   29883 	r17 = r17 & 65535;
   29884 	if(uint(r18) <uint(r17)) //_LBB155_64
   29885 {
   29886 __label__ = 55;
   29887 }
   29888 else{
   29889 	r18 = heapU16[(sp+-34)>>1];
   29890 	r19 = heapU16[(r8+10)>>1];
   29891 	r18 = r18 & 65535;
   29892 	r19 = r19 & 65535;
   29893 	if(uint(r18) >uint(r19)) //_LBB155_64
   29894 {
   29895 __label__ = 55;
   29896 }
   29897 else{
   29898 	r18 = heapU16[(r8+4)>>1];
   29899 	r19 = heapU16[(sp+-40)>>1];
   29900 	r19 = r19 & 65535;
   29901 	r18 = r18 & 65535;
   29902 	if(uint(r19) <uint(r18)) //_LBB155_64
   29903 {
   29904 __label__ = 55;
   29905 }
   29906 else{
   29907 	r19 = heapU16[(sp+-36)>>1];
   29908 	r20 = heapU16[(r8+8)>>1];
   29909 	r19 = r19 & 65535;
   29910 	r20 = r20 & 65535;
   29911 	if(uint(r19) >uint(r20)) //_LBB155_64
   29912 {
   29913 __label__ = 55;
   29914 }
   29915 else{
   29916 	r19 = heapU16[(r8+2)>>1];
   29917 	r20 = heapU16[(sp+-42)>>1];
   29918 	r20 = r20 & 65535;
   29919 	r19 = r19 & 65535;
   29920 	if(uint(r20) >=uint(r19)) //_LBB155_65
   29921 {
   29922 	f4 = uint(r17); //fuitos r17, f4
   29923 	f5 = heapFloat[(r7+9)];
   29924 	f6 = uint(r19); //fuitos r19, f6
   29925 	f7 = heapFloat[(r7+10)];
   29926 	f4 = f4/f5;
   29927 	f8 = heapFloat[(r7+1)];
   29928 	f10 = heapFloat[(r7+11)];
   29929 	f11 = heapFloat[(r7+2)];
   29930 	f12 = heapFloat[(r7+3)];
   29931 	r17 = sp + -80;
   29932 	f13 = uint(r18); //fuitos r18, f13
   29933 	f6 = f6/f7;
   29934 	f4 = f4+f8;
   29935 	f13 = f13/f10;
   29936 	r18 = r17 >> 2;
   29937 	f6 = f6+f11;
   29938 	heapFloat[(fp+-20)] = f4;
   29939 	f13 = f13+f12;
   29940 	heapFloat[(r18+1)] = f6;
   29941 	heapFloat[(r18+2)] = f13;
   29942 	heap32[(r18+3)] = 0;
   29943 	r19 = heapU16[(r8+10)>>1];
   29944 	r20 = heapU16[(r8+8)>>1];
   29945 	r21 = heapU16[(r8+6)>>1];
   29946 	heap32[(r18+7)] = 0;
   29947 	f14 = heapFloat[(r5)];
   29948 	f4 = f4-f14;
   29949 	heapFloat[(fp+-20)] = f4;
   29950 	f4 = heapFloat[(r5+1)];
   29951 	f4 = f6-f4;
   29952 	heapFloat[(r18+1)] = f4;
   29953 	f4 = heapFloat[(r5+2)];
   29954 	f6 = uint(r21); //fuitos r21, f6
   29955 	f4 = f13-f4;
   29956 	f5 = f6/f5;
   29957 	heapFloat[(r18+2)] = f4;
   29958 	f4 = f5+f8;
   29959 	f5 = heapFloat[(r4)];
   29960 	f6 = uint(r20); //fuitos r20, f6
   29961 	f4 = f4-f5;
   29962 	f5 = f6/f7;
   29963 	heapFloat[(r18+4)] = f4;
   29964 	f4 = f5+f11;
   29965 	f5 = heapFloat[(r4+1)];
   29966 	f6 = uint(r19); //fuitos r19, f6
   29967 	f4 = f4-f5;
   29968 	f5 = f6/f10;
   29969 	heapFloat[(r18+5)] = f4;
   29970 	r19 = r3 << 4;
   29971 	r20 = r11 << 4;
   29972 	f4 = f5+f12;
   29973 	f5 = heapFloat[(r4+2)];
   29974 	r19 = (r17 + r19)|0;
   29975 	r20 = (r17 + r20)|0;
   29976 	f4 = f4-f5;
   29977 	r19 = r19 >> 2;
   29978 	heapFloat[(r18+6)] = f4;
   29979 	r18 = r20 >> 2;
   29980 	f4 = heapFloat[(r19)];
   29981 	f5 = heapFloat[(r2)];
   29982 	f6 = heapFloat[(r18+1)];
   29983 	f7 = heapFloat[(r2+1)];
   29984 	f4 = f4-f5;
   29985 	f6 = f6-f7;
   29986 	f4 = f4*f0;
   29987 	f6 = f6*f1;
   29988 	if(f4 >f6) //_LBB155_64
   29989 {
   29990 __label__ = 55;
   29991 }
   29992 else{
   29993 	r18 = r0 << 4;
   29994 	r19 = r9 << 4;
   29995 	r18 = (r17 + r18)|0;
   29996 	r19 = (r17 + r19)|0;
   29997 	r18 = r18 >> 2;
   29998 	r19 = r19 >> 2;
   29999 	f8 = heapFloat[(r18)];
   30000 	f10 = heapFloat[(r19+1)];
   30001 	f5 = f8-f5;
   30002 	f7 = f10-f7;
   30003 	f5 = f5*f0;
   30004 	f7 = f7*f1;
   30005 	if(f7 >f5) //_LBB155_64
   30006 {
   30007 __label__ = 55;
   30008 }
   30009 else{
   30010 	r18 = r12 << 4;
   30011 	r18 = (r17 + r18)|0;
   30012 	r18 = r18 >> 2;
   30013 	f8 = heapFloat[(r18+2)];
   30014 	f10 = heapFloat[(r2+2)];
   30015 	f8 = f8-f10;
   30016 	f4 = f4 < f7 ? f7 : f4;
   30017 	f7 = f8*f2;
   30018 	if(f4 >f7) //_LBB155_64
   30019 {
   30020 __label__ = 55;
   30021 }
   30022 else{
   30023 	r18 = r10 << 4;
   30024 	r17 = (r17 + r18)|0;
   30025 	r17 = r17 >> 2;
   30026 	f8 = heapFloat[(r17+2)];
   30027 	f8 = f8-f10;
   30028 	f5 = f6 < f5 ? f6 : f5;
   30029 	f6 = f8*f2;
   30030 	if(f6 >f5) //_LBB155_64
   30031 {
   30032 __label__ = 55;
   30033 }
   30034 else{
   30035 	f4 = f4 < f6 ? f6 : f4;
   30036 	f5 = f7 < f5 ? f7 : f5;
   30037 	r17 = f4 >= f3;
   30038 	r18 = f5 <= f9;
   30039 	r17 = r17 | r18;
   30040 	r18 = r17 & 1;
   30041 	r17 = r18 ^ 1;
   30042 	if(r16 != 0) //_LBB155_71
   30043 {
   30044 __label__ = 65;
   30045 }
   30046 else{
   30047 	if(r18 ==0) //_LBB155_72
   30048 {
   30049 	r18 = heap32[(r15+3)];
   30050 	if(r18 >-1) //_LBB155_74
   30051 {
   30052 	r19 = r1 >> 2;
   30053 	r19 = heap32[(r19)];
   30054 	r19 = r19 >> 2;
   30055 	r19 = heap32[(r19+2)];
   30056 	r20 = r18 >> 21;
   30057 	r18 = r18 & 2097151;
   30058 	heap32[(g0)] = r1;
   30059 	heap32[(g0+1)] = r20;
   30060 	heap32[(g0+2)] = r18;
   30061 	__FUNCTION_TABLE__[(r19)>>2](i7);
   30062 __label__ = 65;
   30063 }
   30064 else{
   30065 __label__ = 63;
   30066 break _66;
   30067 }
   30068 }
   30069 else{
   30070 __label__ = 65;
   30071 }
   30072 }
   30073 }
   30074 }
   30075 }
   30076 }
   30077 }
   30078 else{
   30079 __label__ = 55;
   30080 }
   30081 }
   30082 }
   30083 }
   30084 }
   30085 }
   30086 if (__label__ == 55){
   30087 	r17 = 0;
   30088 }
   30089 if(!(r17 !=0)) //_LBB155_77
   30090 {
   30091 	if(r16 != 0) //_LBB155_78
   30092 {
   30093 	r15 = heap32[(r15+3)];
   30094 	if(r15 <0) //_LBB155_80
   30095 {
   30096 	r16 = r15 << 4;
   30097 	r8 = (r8 - r16)|0;
   30098 	r13 = (r13 - r15)|0;
   30099 continue _66;
   30100 }
   30101 else{
   30102 __label__ = 69;
   30103 break _66;
   30104 }
   30105 }
   30106 }
   30107 	r8 = (r8 + 16)|0;
   30108 	r13 = (r13 + 1)|0;
   30109 }
   30110 else{
   30111 __label__ = 48;
   30112 break _66;
   30113 }
   30114 }
   30115 else{
   30116 __label__ = 72;
   30117 break _66;
   30118 }
   30119 }
   30120 switch(__label__ ){//multiple entries
   30121 case 72:
   30122 	r0 = maxIterations;
   30123 	r0 = r0 >> 2;
   30124 	r1 = heap32[(r0)];
   30125 if(!(r1 >=r14)) //_LBB155_84
   30126 {
   30127 	heap32[(r0)] = r14;
   30128 }
   30129 	return;
   30130 break;
   30131 case 69:
   30132 	r0 = _2E_str941;
   30133 	r1 = _2E_str313;
   30134 	heap32[(g0)] = r0;
   30135 	heap32[(g0+1)] = r1;
   30136 	heap32[(g0+2)] = 75;
   30137 	_assert(i7);
   30138 break;
   30139 case 63:
   30140 	r0 = _2E_str739;
   30141 	r1 = _2E_str313;
   30142 	heap32[(g0)] = r0;
   30143 	heap32[(g0+1)] = r1;
   30144 	heap32[(g0+2)] = 80;
   30145 	_assert(i7);
   30146 break;
   30147 case 48:
   30148 	r0 = _2E_str1143;
   30149 	r1 = _2E_str537;
   30150 	heap32[(g0)] = r0;
   30151 	heap32[(g0+1)] = r1;
   30152 	heap32[(g0+2)] = 606;
   30153 	_assert(i7);
   30154 break;
   30155 }
   30156 }
   30157 }
   30158 	r0 = _2E_str212;
   30159 	r1 = _2E_str313;
   30160 	heap32[(g0)] = r0;
   30161 	heap32[(g0+1)] = r1;
   30162 	heap32[(g0+2)] = 420;
   30163 	_assert(i7);
   30164 }
   30165 else{
   30166 	r0 = _2E_str212;
   30167 	r1 = _2E_str537;
   30168 	heap32[(g0)] = r0;
   30169 	heap32[(g0+1)] = r1;
   30170 	heap32[(g0+2)] = 543;
   30171 	_assert(i7);
   30172 }
   30173 }
   30174 
   30175 function _ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(sp)
   30176 {
   30177 	var i7;
   30178 	var fp = sp>>2;
   30179 	var r0;
   30180 	var r1;
   30181 	var r2;
   30182 	var r3;
   30183 	var r4;
   30184 	var r5;
   30185 	var r6;
   30186 	var r7;
   30187 	var r8;
   30188 	var r9;
   30189 	var r10;
   30190 	var r11;
   30191 	var r12;
   30192 	var r13;
   30193 	var r14;
   30194 	var r15;
   30195 	var r16;
   30196 	var r17;
   30197 	var r18;
   30198 	var r19;
   30199 	var f0;
   30200 	var f1;
   30201 	var f2;
   30202 	var f3;
   30203 	var f4;
   30204 	var f5;
   30205 	var f6;
   30206 	var f7;
   30207 	var f8;
   30208 	var f9;
   30209 	var f10;
   30210 	var f11;
   30211 	var f12;
   30212 	var f13;
   30213 	var f14;
   30214 	var f15;
   30215 	var f16;
   30216 	var f17;
   30217 	var f18;
   30218 	var f19;
   30219 	var f20;
   30220 	var f21;
   30221 var __label__ = 0;
   30222 	i7 = sp + -48;var g0 = i7>>2; // save stack
   30223 	r0 = heap32[(fp)];
   30224 	r1 = heapU8[r0+60];
   30225 	if(r1 ==0) //_LBB156_2
   30226 {
   30227 	r1 = heap32[(fp+1)];
   30228 	r2 = heap32[(fp+2)];
   30229 	r3 = heap32[(fp+3)];
   30230 	r4 = heap32[(fp+4)];
   30231 	r5 = heap32[(fp+5)];
   30232 	r3 = r3 >> 2;
   30233 	r2 = r2 >> 2;
   30234 	f0 = heapFloat[(r2)];
   30235 	f1 = heapFloat[(r3)];
   30236 	f2 = heapFloat[(r3+1)];
   30237 	f3 = heapFloat[(r2+1)];
   30238 	r4 = r4 >> 2;
   30239 	r5 = r5 >> 2;
   30240 	f4 = f1-f0;
   30241 	r0 = r0 >> 2;
   30242 	f5 = f2-f3;
   30243 	f6 = heapFloat[(r3+2)];
   30244 	f7 = heapFloat[(r2+2)];
   30245 	r6 = heap32[(r0+24)];
   30246 	f8 = f6-f7;
   30247 	f9 = f4*f4;
   30248 	f10 = f5*f5;
   30249 	f11 = heapFloat[(r4)];
   30250 	f12 = heapFloat[(r4+1)];
   30251 	f13 = heapFloat[(r4+2)];
   30252 	f14 = heapFloat[(r5)];
   30253 	f15 = heapFloat[(r5+1)];
   30254 	f16 = heapFloat[(r5+2)];
   30255 	f9 = f9+f10;
   30256 	f10 = f8*f8;
   30257 	f9 = f9+f10;
   30258 	heapFloat[(g0)] = f9;
   30259 	sqrtf(i7);
   30260 	f10 =                         1;
   30261 	f9 = f10/f_g0;
   30262 	f17 = heapFloat[(r3)];
   30263 	f18 = heapFloat[(r2)];
   30264 	f19 = heapFloat[(r3+1)];
   30265 	f20 = heapFloat[(r2+1)];
   30266 	f4 = f4*f9;
   30267 	f17 = f17-f18;
   30268 	f5 = f5*f9;
   30269 	f18 = f19-f20;
   30270 	f19 = heapFloat[(r3+2)];
   30271 	f20 = heapFloat[(r2+2)];
   30272 	f8 = f8*f9;
   30273 	f9 = f19-f20;
   30274 	f17 = f4*f17;
   30275 	f18 = f5*f18;
   30276 	f19 = f1 < f0 ? f1 : f0;
   30277 	f20 = f2 < f3 ? f2 : f3;
   30278 	f21 = f6 < f7 ? f6 : f7;
   30279 	f0 = f0 < f1 ? f1 : f0;
   30280 	f1 = f3 < f2 ? f2 : f3;
   30281 	f2 = f7 < f6 ? f6 : f7;
   30282 	f3 = f17+f18;
   30283 	f6 = f8*f9;
   30284 	f7 = f19+f11;
   30285 	f9 = f20+f12;
   30286 	f11 = f21+f13;
   30287 	f0 = f0+f14;
   30288 	f1 = f1+f15;
   30289 	f2 = f2+f16;
   30290 	f3 = f3+f6;
   30291 	f6 =                         0;
   30292 	if(f4 !=f6) //_LBB156_4
   30293 {
   30294 	f4 = f10/f4;
   30295 }
   30296 else{
   30297 	f4 =        999999984306749440;
   30298 }
   30299 	if(f5 !=f6) //_LBB156_7
   30300 {
   30301 	f5 = f10/f5;
   30302 }
   30303 else{
   30304 	f5 =        999999984306749440;
   30305 }
   30306 	if(f8 !=f6) //_LBB156_10
   30307 {
   30308 	f8 = f10/f8;
   30309 }
   30310 else{
   30311 	f8 =        999999984306749440;
   30312 }
   30313 	r3 = f4 < f6;
   30314 	r7 = f5 < f6;
   30315 	r8 = f8 < f6;
   30316 	r3 = r3 & 1;
   30317 	r7 = r7 & 1;
   30318 	r8 = r8 & 1;
   30319 	r9 = r3 ^ 1;
   30320 	r10 = r7 ^ 1;
   30321 	r11 = r8 ^ 1;
   30322 	r12 = 0;
   30323 	r13 = r12;
   30324 _15: while(true){
   30325 	r14 = heap32[(r0+14)];
   30326 	if(r14 >r12) //_LBB156_12
   30327 {
   30328 	if(r14 >r13) //_LBB156_14
   30329 {
   30330 	r14 = r6 >> 2;
   30331 	f10 = heapFloat[(r14)];
   30332 	r15 = sp + -32;
   30333 	heapFloat[(fp+-8)] = f10;
   30334 	r16 = r15 >> 2;
   30335 	f12 = heapFloat[(r14+1)];
   30336 	heapFloat[(r16+1)] = f12;
   30337 	f13 = heapFloat[(r14+2)];
   30338 	heapFloat[(r16+2)] = f13;
   30339 	heap32[(r16+3)] = heap32[(r14+3)];
   30340 	f14 = heapFloat[(r14+4)];
   30341 	heapFloat[(r16+4)] = f14;
   30342 	f15 = heapFloat[(r14+5)];
   30343 	heapFloat[(r16+5)] = f15;
   30344 	f16 = heapFloat[(r14+6)];
   30345 	heapFloat[(r16+6)] = f16;
   30346 	heap32[(r16+7)] = heap32[(r14+7)];
   30347 	f17 = heapFloat[(r5)];
   30348 	f10 = f10-f17;
   30349 	heapFloat[(fp+-8)] = f10;
   30350 	f10 = heapFloat[(r5+1)];
   30351 	f10 = f12-f10;
   30352 	heapFloat[(r16+1)] = f10;
   30353 	f10 = heapFloat[(r5+2)];
   30354 	f10 = f13-f10;
   30355 	heapFloat[(r16+2)] = f10;
   30356 	f10 = heapFloat[(r4)];
   30357 	f10 = f14-f10;
   30358 	heapFloat[(r16+4)] = f10;
   30359 	f10 = heapFloat[(r4+1)];
   30360 	f10 = f15-f10;
   30361 	heapFloat[(r16+5)] = f10;
   30362 	f10 = heapFloat[(r4+2)];
   30363 	r13 = (r13 + 1)|0;
   30364 	f10 = f16-f10;
   30365 	heapFloat[(r16+6)] = f10;
   30366 	f10 = heapFloat[(r14+4)];
   30367 	if(f7 >f10) //_LBB156_17
   30368 {
   30369 __label__ = 17;
   30370 }
   30371 else{
   30372 	f10 = heapFloat[(r14)];
   30373 	if(f0 <f10) //_LBB156_17
   30374 {
   30375 __label__ = 17;
   30376 }
   30377 else{
   30378 	r16 = 1;
   30379 __label__ = 18;
   30380 }
   30381 }
   30382 if (__label__ == 17){
   30383 	r16 = 0;
   30384 }
   30385 	f10 = heapFloat[(r14+6)];
   30386 	if(f11 >f10) //_LBB156_21
   30387 {
   30388 __label__ = 20;
   30389 }
   30390 else{
   30391 	f10 = heapFloat[(r14+2)];
   30392 	if(f2 <f10) //_LBB156_21
   30393 {
   30394 __label__ = 20;
   30395 }
   30396 else{
   30397 __label__ = 21;
   30398 }
   30399 }
   30400 if (__label__ == 20){
   30401 	r16 = 0;
   30402 }
   30403 	f10 = heapFloat[(r14+5)];
   30404 	if(f9 >f10) //_LBB156_32
   30405 {
   30406 __label__ = 30;
   30407 }
   30408 else{
   30409 	f10 = heapFloat[(r14+1)];
   30410 	if(f1 <f10) //_LBB156_32
   30411 {
   30412 __label__ = 30;
   30413 }
   30414 else{
   30415 	r16 = r16 & 255;
   30416 	if(r16 ==0) //_LBB156_32
   30417 {
   30418 __label__ = 30;
   30419 }
   30420 else{
   30421 	r16 = r3 << 4;
   30422 	r17 = r10 << 4;
   30423 	r16 = (r15 + r16)|0;
   30424 	r17 = (r15 + r17)|0;
   30425 	r16 = r16 >> 2;
   30426 	r17 = r17 >> 2;
   30427 	f10 = heapFloat[(r16)];
   30428 	f12 = heapFloat[(r2)];
   30429 	f13 = heapFloat[(r17+1)];
   30430 	f14 = heapFloat[(r2+1)];
   30431 	f10 = f10-f12;
   30432 	f13 = f13-f14;
   30433 	f10 = f10*f4;
   30434 	f13 = f13*f5;
   30435 	if(f10 >f13) //_LBB156_32
   30436 {
   30437 __label__ = 30;
   30438 }
   30439 else{
   30440 	r16 = r9 << 4;
   30441 	r17 = r7 << 4;
   30442 	r16 = (r15 + r16)|0;
   30443 	r17 = (r15 + r17)|0;
   30444 	r16 = r16 >> 2;
   30445 	r17 = r17 >> 2;
   30446 	f15 = heapFloat[(r16)];
   30447 	f16 = heapFloat[(r17+1)];
   30448 	f12 = f15-f12;
   30449 	f14 = f16-f14;
   30450 	f12 = f12*f4;
   30451 	f14 = f14*f5;
   30452 	if(f14 >f12) //_LBB156_32
   30453 {
   30454 __label__ = 30;
   30455 }
   30456 else{
   30457 	r16 = r11 << 4;
   30458 	r16 = (r15 + r16)|0;
   30459 	r16 = r16 >> 2;
   30460 	f15 = heapFloat[(r16+2)];
   30461 	f16 = heapFloat[(r2+2)];
   30462 	f15 = f15-f16;
   30463 	f10 = f10 < f14 ? f14 : f10;
   30464 	f14 = f15*f8;
   30465 	if(f10 >f14) //_LBB156_32
   30466 {
   30467 __label__ = 30;
   30468 }
   30469 else{
   30470 	r16 = r8 << 4;
   30471 	r15 = (r15 + r16)|0;
   30472 	r15 = r15 >> 2;
   30473 	f15 = heapFloat[(r15+2)];
   30474 	f15 = f15-f16;
   30475 	f12 = f13 < f12 ? f13 : f12;
   30476 	f13 = f15*f8;
   30477 	if(f13 >f12) //_LBB156_32
   30478 {
   30479 __label__ = 30;
   30480 }
   30481 else{
   30482 	f10 = f10 < f13 ? f13 : f10;
   30483 	f12 = f14 < f12 ? f14 : f12;
   30484 	r15 = f10 >= f3;
   30485 	r16 = f12 <= f6;
   30486 	r15 = r15 | r16;
   30487 	r16 = r15 & 1;
   30488 	r17 = heap32[(r14+8)];
   30489 	r18 = -1;
   30490 	r16 = r16 ^ 1;
   30491 	r19 = r17 == r18;
   30492 	if(r15 != 0) //_LBB156_31
   30493 {
   30494 __label__ = 32;
   30495 }
   30496 else{
   30497 	r15 = r17 != r18;
   30498 	r15 = r15 & 1;
   30499 	if(r15 ==0) //_LBB156_33
   30500 {
   30501 	r15 = r1 >> 2;
   30502 	r15 = heap32[(r15)];
   30503 	r15 = r15 >> 2;
   30504 	r15 = heap32[(r15+2)];
   30505 	r17 = heap32[(r14+10)];
   30506 	r18 = heap32[(r14+9)];
   30507 	heap32[(g0)] = r1;
   30508 	heap32[(g0+1)] = r18;
   30509 	heap32[(g0+2)] = r17;
   30510 	__FUNCTION_TABLE__[(r15)>>2](i7);
   30511 __label__ = 32;
   30512 }
   30513 else{
   30514 __label__ = 32;
   30515 }
   30516 }
   30517 }
   30518 }
   30519 }
   30520 }
   30521 }
   30522 }
   30523 }
   30524 if (__label__ == 30){
   30525 	r16 = heap32[(r14+8)];
   30526 	r19 = -1;
   30527 	r19 = r16 == r19;
   30528 	r16 = 0;
   30529 }
   30530 if(!(r16 !=0)) //_LBB156_36
   30531 {
   30532 	r15 = r19 & 1;
   30533 	if(r15 ==0) //_LBB156_37
   30534 {
   30535 	r14 = heap32[(r14+8)];
   30536 	r15 = r14 << 6;
   30537 	r6 = (r6 + r15)|0;
   30538 	r12 = (r14 + r12)|0;
   30539 continue _15;
   30540 }
   30541 }
   30542 	r6 = (r6 + 64)|0;
   30543 	r12 = (r12 + 1)|0;
   30544 }
   30545 else{
   30546 __label__ = 13;
   30547 break _15;
   30548 }
   30549 }
   30550 else{
   30551 __label__ = 37;
   30552 break _15;
   30553 }
   30554 }
   30555 switch(__label__ ){//multiple entries
   30556 case 37:
   30557 	r0 = maxIterations;
   30558 	r0 = r0 >> 2;
   30559 	r1 = heap32[(r0)];
   30560 if(!(r1 >=r13)) //_LBB156_41
   30561 {
   30562 	heap32[(r0)] = r13;
   30563 }
   30564 	return;
   30565 break;
   30566 case 13:
   30567 	r0 = _2E_str1921;
   30568 	r1 = _2E_str537;
   30569 	heap32[(g0)] = r0;
   30570 	heap32[(g0+1)] = r1;
   30571 	heap32[(g0+2)] = 490;
   30572 	_assert(i7);
   30573 break;
   30574 }
   30575 }
   30576 else{
   30577 	r0 = _2E_str1844;
   30578 	r1 = _2E_str537;
   30579 	heap32[(g0)] = r0;
   30580 	heap32[(g0+1)] = r1;
   30581 	heap32[(g0+2)] = 451;
   30582 	_assert(i7);
   30583 }
   30584 }
   30585 
   30586 function _ZN30btActivatingCollisionAlgorithmD0Ev(sp)
   30587 {
   30588 	var i7;
   30589 	var fp = sp>>2;
   30590 	var r0;
   30591 	var r1;
   30592 	var r2;
   30593 var __label__ = 0;
   30594 	i7 = sp + -8;var g0 = i7>>2; // save stack
   30595 	r0 = heap32[(fp)];
   30596 	r1 = _ZTV30btActivatingCollisionAlgorithm;
   30597 	r2 = r0 >> 2;
   30598 	r1 = (r1 + 8)|0;
   30599 	heap32[(r2)] = r1;
   30600 	heap32[(g0)] = r0;
   30601 	_ZdlPv(i7);
   30602 	return;
   30603 }
   30604 
   30605 function _ZN30btActivatingCollisionAlgorithmD1Ev(sp)
   30606 {
   30607 	var i7;
   30608 	var fp = sp>>2;
   30609 	var r0;
   30610 	var r1;
   30611 var __label__ = 0;
   30612 	i7 = sp + 0;var g0 = i7>>2; // save stack
   30613 	r0 = heap32[(fp)];
   30614 	r1 = _ZTV30btActivatingCollisionAlgorithm;
   30615 	r0 = r0 >> 2;
   30616 	r1 = (r1 + 8)|0;
   30617 	heap32[(r0)] = r1;
   30618 	return;
   30619 }
   30620 
   30621 function _ZN26btBoxBoxCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
   30622 {
   30623 	var i7;
   30624 	var fp = sp>>2;
   30625 	var f0;
   30626 var __label__ = 0;
   30627 	i7 = sp + 0;var g0 = i7>>2; // save stack
   30628 	f0 =                         1;
   30629 	f_g0 = f0;
   30630 	return;
   30631 }
   30632 
   30633 function _ZN26btBoxBoxCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
   30634 {
   30635 	var i7;
   30636 	var fp = sp>>2;
   30637 	var r0;
   30638 	var r1;
   30639 	var r2;
   30640 	var r3;
   30641 	var r4;
   30642 	var r5;
   30643 	var r6;
   30644 	var r7;
   30645 	var r8;
   30646 	var r9;
   30647 	var r10;
   30648 	var r11;
   30649 var __label__ = 0;
   30650 	i7 = sp + -8;var g0 = i7>>2; // save stack
   30651 	r0 = heap32[(fp)];
   30652 	r1 = r0 >> 2;
   30653 	r2 = heap32[(r1+3)];
   30654 if(!(r2 ==0)) //_LBB160_23
   30655 {
   30656 	r0 = heapU8[r0+8];
   30657 if(!(r0 ==0)) //_LBB160_23
   30658 {
   30659 	r0 = heap32[(fp+1)];
   30660 	r3 = r0 >> 2;
   30661 	r4 = heap32[(r3+2)];
   30662 	r5 = heap32[(r3+1)];
   30663 	if(r4 ==r5) //_LBB160_4
   30664 {
   30665 	r6 = 1;
   30666 	r7 = r5 << 1;
   30667 	r7 = r5 == 0 ? r6 : r7;
   30668 if(!(r4 >=r7)) //_LBB160_3
   30669 {
   30670 	if(r7 !=0) //_LBB160_7
   30671 {
   30672 	r2 = gNumAlignedAllocs;
   30673 	r2 = r2 >> 2;
   30674 	r4 = heap32[(r2)];
   30675 	r8 = r7 << 2;
   30676 	r4 = (r4 + 1)|0;
   30677 	r8 = r8 | 3;
   30678 	heap32[(r2)] = r4;
   30679 	r2 = (r8 + 16)|0;
   30680 	heap32[(g0)] = r2;
   30681 	malloc(i7);
   30682 	r2 = r_g0;
   30683 	if(r2 !=0) //_LBB160_9
   30684 {
   30685 	r4 = 0;
   30686 	r8 = (r2 + 4)|0;
   30687 	r4 = (r4 - r8)|0;
   30688 	r4 = r4 & 15;
   30689 	r4 = (r2 + r4)|0;
   30690 	r8 = (r4 + 4)|0;
   30691 	r4 = r4 >> 2;
   30692 	heap32[(r4)] = r2;
   30693 	r2 = r8;
   30694 }
   30695 }
   30696 else{
   30697 	r2 = 0;
   30698 }
   30699 	r4 = (r0 + 12)|0;
   30700 	if(r5 <1) //_LBB160_12
   30701 {
   30702 	r8 = r4 >> 2;
   30703 	r9 = heap32[(r8)];
   30704 }
   30705 else{
   30706 	r8 = 0;
   30707 _15: while(true){
   30708 	r9 = r4 >> 2;
   30709 	r9 = heap32[(r9)];
   30710 	r10 = r8 << 2;
   30711 	r11 = (r9 + r10)|0;
   30712 	r11 = r11 >> 2;
   30713 	r10 = (r2 + r10)|0;
   30714 	r11 = heap32[(r11)];
   30715 	r8 = (r8 + 1)|0;
   30716 	r10 = r10 >> 2;
   30717 	heap32[(r10)] = r11;
   30718 if(!(r5 !=r8)) //_LBB160_13
   30719 {
   30720 break _15;
   30721 }
   30722 }
   30723 	r4 = (r0 + 12)|0;
   30724 }
   30725 	if(r9 !=0) //_LBB160_17
   30726 {
   30727 	r8 = heapU8[r0+16];
   30728 	if(r8 !=0) //_LBB160_19
   30729 {
   30730 	r5 = gNumAlignedFree;
   30731 	r5 = r5 >> 2;
   30732 	r8 = heap32[(r5)];
   30733 	r8 = (r8 + 1)|0;
   30734 	r9 = r9 >> 2;
   30735 	heap32[(r5)] = r8;
   30736 	r5 = heap32[(r9+-1)];
   30737 	heap32[(g0)] = r5;
   30738 	free(i7);
   30739 	r5 = heap32[(r3+1)];
   30740 }
   30741 	r8 = r4 >> 2;
   30742 	heap32[(r8)] = 0;
   30743 }
   30744 	r4 = r4 >> 2;
   30745 	heap8[r0+16] = r6;
   30746 	heap32[(r4)] = r2;
   30747 	heap32[(r3+2)] = r7;
   30748 	r2 = heap32[(r1+3)];
   30749 }
   30750 }
   30751 	r0 = r5 << 2;
   30752 	r1 = heap32[(r3+3)];
   30753 	r0 = (r1 + r0)|0;
   30754 	r0 = r0 >> 2;
   30755 	heap32[(r0)] = r2;
   30756 	r0 = heap32[(r3+1)];
   30757 	r0 = (r0 + 1)|0;
   30758 	heap32[(r3+1)] = r0;
   30759 }
   30760 }
   30761 	return;
   30762 }
   30763 
   30764 function _ZN26btBoxBoxCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
   30765 {
   30766 	var i7;
   30767 	var fp = sp>>2;
   30768 	var r0;
   30769 	var r1;
   30770 	var r2;
   30771 	var r3;
   30772 	var r4;
   30773 	var r5;
   30774 	var r6;
   30775 	var r7;
   30776 	var r8;
   30777 	var r9;
   30778 	var r10;
   30779 var __label__ = 0;
   30780 	i7 = sp + -176;var g0 = i7>>2; // save stack
   30781 	r0 = heap32[(fp)];
   30782 	r1 = r0 >> 2;
   30783 	r1 = heap32[(r1+3)];
   30784 if(!(r1 ==0)) //_LBB161_8
   30785 {
   30786 	r2 = heap32[(fp+1)];
   30787 	r3 = heap32[(fp+2)];
   30788 	r4 = heap32[(fp+3)];
   30789 	r5 = heap32[(fp+4)];
   30790 	r3 = r3 >> 2;
   30791 	r2 = r2 >> 2;
   30792 	r6 = heap32[(r3+48)];
   30793 	r7 = heap32[(r2+48)];
   30794 	r8 = sp + -136;
   30795 	r9 = r5 >> 2;
   30796 	r10 = r8 >> 2;
   30797 	heap32[(r9+1)] = r1;
   30798 	heap32[(r10+33)] = 0;
   30799 	heap32[(r10+32)] = 1566444395;
   30800 	heap32[(fp+-34)] = heap32[(r2+1)];
   30801 	heap32[(r10+1)] = heap32[(r2+2)];
   30802 	heap32[(r10+2)] = heap32[(r2+3)];
   30803 	heap32[(r10+3)] = heap32[(r2+4)];
   30804 	heap32[(r10+4)] = heap32[(r2+5)];
   30805 	heap32[(r10+5)] = heap32[(r2+6)];
   30806 	heap32[(r10+6)] = heap32[(r2+7)];
   30807 	heap32[(r10+7)] = heap32[(r2+8)];
   30808 	heap32[(r10+8)] = heap32[(r2+9)];
   30809 	heap32[(r10+9)] = heap32[(r2+10)];
   30810 	heap32[(r10+10)] = heap32[(r2+11)];
   30811 	heap32[(r10+11)] = heap32[(r2+12)];
   30812 	heap32[(r10+12)] = heap32[(r2+13)];
   30813 	heap32[(r10+13)] = heap32[(r2+14)];
   30814 	heap32[(r10+14)] = heap32[(r2+15)];
   30815 	heap32[(r10+15)] = heap32[(r2+16)];
   30816 	heap32[(r10+16)] = heap32[(r3+1)];
   30817 	heap32[(r10+17)] = heap32[(r3+2)];
   30818 	heap32[(r10+18)] = heap32[(r3+3)];
   30819 	heap32[(r10+19)] = heap32[(r3+4)];
   30820 	heap32[(r10+20)] = heap32[(r3+5)];
   30821 	heap32[(r10+21)] = heap32[(r3+6)];
   30822 	heap32[(r10+22)] = heap32[(r3+7)];
   30823 	heap32[(r10+23)] = heap32[(r3+8)];
   30824 	heap32[(r10+24)] = heap32[(r3+9)];
   30825 	heap32[(r10+25)] = heap32[(r3+10)];
   30826 	heap32[(r10+26)] = heap32[(r3+11)];
   30827 	heap32[(r10+27)] = heap32[(r3+12)];
   30828 	heap32[(r10+28)] = heap32[(r3+13)];
   30829 	heap32[(r10+29)] = heap32[(r3+14)];
   30830 	r1 = _ZTV16btBoxBoxDetector;
   30831 	heap32[(r10+30)] = heap32[(r3+15)];
   30832 	r2 = sp + -152;
   30833 	r1 = (r1 + 8)|0;
   30834 	heap32[(r10+31)] = heap32[(r3+16)];
   30835 	r3 = r2 >> 2;
   30836 	heap32[(fp+-38)] = r1;
   30837 	heap32[(r3+1)] = r7;
   30838 	r1 = r4 >> 2;
   30839 	heap32[(r3+2)] = r6;
   30840 	r1 = heap32[(r1+5)];
   30841 	heap32[(g0)] = r2;
   30842 	heap32[(g0+1)] = r8;
   30843 	heap32[(g0+2)] = r5;
   30844 	heap32[(g0+3)] = r1;
   30845 	heap32[(g0+4)] = 0;
   30846 	_ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
   30847 	r0 = heapU8[r0+8];
   30848 if(!(r0 ==0)) //_LBB161_8
   30849 {
   30850 	r0 = heap32[(r9+1)];
   30851 	if(r0 !=0) //_LBB161_4
   30852 {
   30853 	r1 = r0 >> 2;
   30854 	r2 = heap32[(r1+279)];
   30855 if(!(r2 ==0)) //_LBB161_8
   30856 {
   30857 	r1 = heap32[(r1+277)];
   30858 	r2 = heap32[(r9+34)];
   30859 	if(r1 ==r2) //_LBB161_7
   30860 {
   30861 	r1 = (r5 + 8)|0;
   30862 	r2 = (r5 + 72)|0;
   30863 	heap32[(g0)] = r0;
   30864 	heap32[(g0+1)] = r1;
   30865 	heap32[(g0+2)] = r2;
   30866 	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
   30867 }
   30868 else{
   30869 	r1 = (r5 + 72)|0;
   30870 	r5 = (r5 + 8)|0;
   30871 	heap32[(g0)] = r0;
   30872 	heap32[(g0+1)] = r1;
   30873 	heap32[(g0+2)] = r5;
   30874 	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
   30875 	return;
   30876 }
   30877 }
   30878 }
   30879 else{
   30880 	r0 = _2E_str59;
   30881 	r5 = _2E_str160;
   30882 	heap32[(g0)] = r0;
   30883 	heap32[(g0+1)] = r5;
   30884 	heap32[(g0+2)] = 101;
   30885 	_assert(i7);
   30886 }
   30887 }
   30888 }
   30889 	return;
   30890 }
   30891 
   30892 function _ZN26btBoxBoxCollisionAlgorithmD0Ev(sp)
   30893 {
   30894 	var i7;
   30895 	var fp = sp>>2;
   30896 	var r0;
   30897 	var r1;
   30898 	var r2;
   30899 	var r3;
   30900 	var r4;
   30901 var __label__ = 0;
   30902 	i7 = sp + -8;var g0 = i7>>2; // save stack
   30903 	r0 = heap32[(fp)];
   30904 	r1 = _ZTV26btBoxBoxCollisionAlgorithm;
   30905 	r2 = r0 >> 2;
   30906 	r1 = (r1 + 8)|0;
   30907 	heap32[(r2)] = r1;
   30908 	r1 = heapU8[r0+8];
   30909 if(!(r1 ==0)) //_LBB162_3
   30910 {
   30911 	r1 = heap32[(r2+3)];
   30912 if(!(r1 ==0)) //_LBB162_3
   30913 {
   30914 	r3 = heap32[(r2+1)];
   30915 	r4 = r3 >> 2;
   30916 	r4 = heap32[(r4)];
   30917 	r4 = r4 >> 2;
   30918 	r4 = heap32[(r4+4)];
   30919 	heap32[(g0)] = r3;
   30920 	heap32[(g0+1)] = r1;
   30921 	__FUNCTION_TABLE__[(r4)>>2](i7);
   30922 }
   30923 }
   30924 	r1 = _ZTV30btActivatingCollisionAlgorithm;
   30925 	r1 = (r1 + 8)|0;
   30926 	heap32[(r2)] = r1;
   30927 	heap32[(g0)] = r0;
   30928 	_ZdlPv(i7);
   30929 	return;
   30930 }
   30931 
   30932 function _ZN26btBoxBoxCollisionAlgorithmD1Ev(sp)
   30933 {
   30934 	var i7;
   30935 	var fp = sp>>2;
   30936 	var r0;
   30937 	var r1;
   30938 	var r2;
   30939 	var r3;
   30940 var __label__ = 0;
   30941 	i7 = sp + -8;var g0 = i7>>2; // save stack
   30942 	r0 = heap32[(fp)];
   30943 	r1 = _ZTV26btBoxBoxCollisionAlgorithm;
   30944 	r2 = r0 >> 2;
   30945 	r1 = (r1 + 8)|0;
   30946 	heap32[(r2)] = r1;
   30947 	r0 = heapU8[r0+8];
   30948 if(!(r0 ==0)) //_LBB163_3
   30949 {
   30950 	r0 = heap32[(r2+3)];
   30951 if(!(r0 ==0)) //_LBB163_3
   30952 {
   30953 	r1 = heap32[(r2+1)];
   30954 	r3 = r1 >> 2;
   30955 	r3 = heap32[(r3)];
   30956 	r3 = r3 >> 2;
   30957 	r3 = heap32[(r3+4)];
   30958 	heap32[(g0)] = r1;
   30959 	heap32[(g0+1)] = r0;
   30960 	__FUNCTION_TABLE__[(r3)>>2](i7);
   30961 }
   30962 }
   30963 	r0 = _ZTV30btActivatingCollisionAlgorithm;
   30964 	r0 = (r0 + 8)|0;
   30965 	heap32[(r2)] = r0;
   30966 	return;
   30967 }
   30968 
   30969 function _ZN16btBoxBoxDetectorD1Ev(sp)
   30970 {
   30971 	var i7;
   30972 	var fp = sp>>2;
   30973 	var r0;
   30974 	var r1;
   30975 var __label__ = 0;
   30976 	i7 = sp + 0;var g0 = i7>>2; // save stack
   30977 	r0 = heap32[(fp)];
   30978 	r1 = _ZTV16btBoxBoxDetector;
   30979 	r0 = r0 >> 2;
   30980 	r1 = (r1 + 8)|0;
   30981 	heap32[(r0)] = r1;
   30982 	return;
   30983 }
   30984 
   30985 function _ZN16btBoxBoxDetectorD0Ev(sp)
   30986 {
   30987 	var i7;
   30988 	var fp = sp>>2;
   30989 	var r0;
   30990 	var r1;
   30991 	var r2;
   30992 var __label__ = 0;
   30993 	i7 = sp + -8;var g0 = i7>>2; // save stack
   30994 	r0 = heap32[(fp)];
   30995 	r1 = _ZTV16btBoxBoxDetector;
   30996 	r2 = r0 >> 2;
   30997 	r1 = (r1 + 8)|0;
   30998 	heap32[(r2)] = r1;
   30999 	heap32[(g0)] = r0;
   31000 	_ZdlPv(i7);
   31001 	return;
   31002 }
   31003 
   31004 function _ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(sp)
   31005 {
   31006 	var i7;
   31007 	var fp = sp>>2;
   31008 	var r0;
   31009 	var r1;
   31010 	var r2;
   31011 	var r3;
   31012 	var r4;
   31013 	var r5;
   31014 	var r6;
   31015 	var r7;
   31016 	var r8;
   31017 	var r9;
   31018 	var r10;
   31019 	var r11;
   31020 	var r12;
   31021 	var r13;
   31022 	var r14;
   31023 	var r15;
   31024 	var r16;
   31025 	var r17;
   31026 	var r18;
   31027 	var r19;
   31028 	var r20;
   31029 	var r21;
   31030 	var r22;
   31031 	var r23;
   31032 	var r24;
   31033 	var r25;
   31034 	var f0;
   31035 	var f1;
   31036 	var f2;
   31037 	var f3;
   31038 	var f4;
   31039 	var f5;
   31040 	var f6;
   31041 	var f7;
   31042 	var f8;
   31043 	var f9;
   31044 	var f10;
   31045 	var f11;
   31046 	var f12;
   31047 	var f13;
   31048 	var f14;
   31049 	var f15;
   31050 	var f16;
   31051 	var f17;
   31052 	var f18;
   31053 	var f19;
   31054 	var f20;
   31055 	var f21;
   31056 	var f22;
   31057 	var f23;
   31058 	var f24;
   31059 	var f25;
   31060 	var f26;
   31061 	var f27;
   31062 	var f28;
   31063 	var f29;
   31064 	var f30;
   31065 var __label__ = 0;
   31066 	i7 = sp + -808;var g0 = i7>>2; // save stack
   31067 	r0 = heap32[(fp+1)];
   31068 	r1 = r0 >> 2;
   31069 	r2 = sp + -640;
   31070 	heap32[(fp+-160)] = heap32[(r1)];
   31071 	r3 = sp + -688;
   31072 	heap32[(fp+-172)] = heap32[(r1+16)];
   31073 	r4 = r2 >> 2;
   31074 	r5 = r3 >> 2;
   31075 	heap32[(r4+1)] = heap32[(r1+1)];
   31076 	heap32[(r5+1)] = heap32[(r1+17)];
   31077 	heap32[(r4+2)] = heap32[(r1+2)];
   31078 	heap32[(r5+2)] = heap32[(r1+18)];
   31079 	heap32[(r4+4)] = heap32[(r1+4)];
   31080 	heap32[(r5+4)] = heap32[(r1+20)];
   31081 	heap32[(r4+5)] = heap32[(r1+5)];
   31082 	heap32[(r5+5)] = heap32[(r1+21)];
   31083 	heap32[(r4+6)] = heap32[(r1+6)];
   31084 	heap32[(r5+6)] = heap32[(r1+22)];
   31085 	heap32[(r4+8)] = heap32[(r1+8)];
   31086 	heap32[(r5+8)] = heap32[(r1+24)];
   31087 	heap32[(r4+9)] = heap32[(r1+9)];
   31088 	heap32[(r5+9)] = heap32[(r1+25)];
   31089 	r6 = heap32[(fp)];
   31090 	heap32[(r4+10)] = heap32[(r1+10)];
   31091 	r6 = r6 >> 2;
   31092 	heap32[(r5+10)] = heap32[(r1+26)];
   31093 	r7 = heap32[(r6+2)];
   31094 	r8 = r7 >> 2;
   31095 	r9 = heap32[(r8)];
   31096 	r9 = r9 >> 2;
   31097 	r9 = heap32[(r9+11)];
   31098 	f0 = heapFloat[(r8+7)];
   31099 	f1 = heapFloat[(r8+8)];
   31100 	f2 = heapFloat[(r8+9)];
   31101 	heap32[(g0)] = r7;
   31102 	__FUNCTION_TABLE__[(r9)>>2](i7);
   31103 	f3 = f_g0;
   31104 	r9 = heap32[(r8)];
   31105 	r9 = r9 >> 2;
   31106 	r9 = heap32[(r9+11)];
   31107 	heap32[(g0)] = r7;
   31108 	__FUNCTION_TABLE__[(r9)>>2](i7);
   31109 	f4 = f_g0;
   31110 	r8 = heap32[(r8)];
   31111 	r8 = r8 >> 2;
   31112 	r8 = heap32[(r8+11)];
   31113 	heap32[(g0)] = r7;
   31114 	__FUNCTION_TABLE__[(r8)>>2](i7);
   31115 	f5 = f_g0;
   31116 	r6 = heap32[(r6+1)];
   31117 	r7 = r6 >> 2;
   31118 	r8 = heap32[(r7)];
   31119 	r8 = r8 >> 2;
   31120 	f6 = heapFloat[(r7+8)];
   31121 	r8 = heap32[(r8+11)];
   31122 	f7 = heapFloat[(r7+9)];
   31123 	f8 = heapFloat[(r7+7)];
   31124 	heap32[(g0)] = r6;
   31125 	__FUNCTION_TABLE__[(r8)>>2](i7);
   31126 	f9 = f_g0;
   31127 	r8 = heap32[(r7)];
   31128 	r8 = r8 >> 2;
   31129 	r8 = heap32[(r8+11)];
   31130 	heap32[(g0)] = r6;
   31131 	__FUNCTION_TABLE__[(r8)>>2](i7);
   31132 	f10 = f_g0;
   31133 	r7 = heap32[(r7)];
   31134 	r7 = r7 >> 2;
   31135 	r7 = heap32[(r7+11)];
   31136 	heap32[(g0)] = r6;
   31137 	__FUNCTION_TABLE__[(r7)>>2](i7);
   31138 	f8 = f8+f_g0;
   31139 	f6 = f6+f10;
   31140 	f8 = f8+f8;
   31141 	f10 =                       0.5;
   31142 	heapFloat[(fp+-187)] = f10;
   31143 	f11 = heapFloat[(r1+30)];
   31144 	f12 = heapFloat[(r1+14)];
   31145 	f13 = heapFloat[(r1+29)];
   31146 	f14 = heapFloat[(r1+13)];
   31147 	f15 = heapFloat[(r1+28)];
   31148 	f16 = heapFloat[(r1+12)];
   31149 	f17 = heapFloat[(fp+-160)];
   31150 	f18 = heapFloat[(r4+4)];
   31151 	f19 = heapFloat[(r4+8)];
   31152 	f20 = heapFloat[(r4+1)];
   31153 	f21 = heapFloat[(r4+5)];
   31154 	f22 = heapFloat[(r4+9)];
   31155 	f23 = heapFloat[(r4+2)];
   31156 	f24 = heapFloat[(r4+6)];
   31157 	f25 = heapFloat[(r4+10)];
   31158 	r4 = sp + -236;
   31159 	f7 = f7+f9;
   31160 	f6 = f6+f6;
   31161 	f8 = f8*f10;
   31162 	heapFloat[(fp+-179)] = f8;
   31163 	f0 = f0+f5;
   31164 	f5 = f7+f7;
   31165 	f6 = f6*f10;
   31166 	heapFloat[(fp+-178)] = f6;
   31167 	r6 = r4 >> 2;
   31168 	heapFloat[(fp+-59)] = f8;
   31169 	f1 = f1+f4;
   31170 	f0 = f0+f0;
   31171 	f4 = f5*f10;
   31172 	heapFloat[(fp+-177)] = f4;
   31173 	heapFloat[(r6+1)] = f6;
   31174 	r7 = sp + -248;
   31175 	heap32[(fp+-186)] = r7;
   31176 	f2 = f2+f3;
   31177 	f1 = f1+f1;
   31178 	f0 = f0*f10;
   31179 	heapFloat[(fp+-181)] = f0;
   31180 	heapFloat[(r6+2)] = f4;
   31181 	f2 = f2+f2;
   31182 	f1 = f1*f10;
   31183 	heapFloat[(fp+-182)] = f1;
   31184 	r6 = r7 >> 2;
   31185 	heapFloat[(fp+-62)] = f0;
   31186 	f0 = f2*f10;
   31187 	heapFloat[(fp+-180)] = f0;
   31188 	heapFloat[(r6+1)] = f1;
   31189 	heapFloat[(r6+2)] = f0;
   31190 	f0 = f15-f16;
   31191 	heapFloat[(fp+-183)] = f0;
   31192 	f1 = f13-f14;
   31193 	heapFloat[(fp+-184)] = f1;
   31194 	f2 = heapFloat[(fp+-172)];
   31195 	heapFloat[(fp+-194)] = f2;
   31196 	f3 = heapFloat[(r5+4)];
   31197 	heapFloat[(fp+-195)] = f3;
   31198 	f4 = heapFloat[(r5+1)];
   31199 	heapFloat[(fp+-191)] = f4;
   31200 	f5 = heapFloat[(r5+5)];
   31201 	heapFloat[(fp+-192)] = f5;
   31202 	f6 = heapFloat[(r5+2)];
   31203 	heapFloat[(fp+-188)] = f6;
   31204 	f7 = heapFloat[(r5+6)];
   31205 	heapFloat[(fp+-189)] = f7;
   31206 	f8 = f11-f12;
   31207 	heapFloat[(fp+-185)] = f8;
   31208 	f9 = heapFloat[(r5+8)];
   31209 	heapFloat[(fp+-196)] = f9;
   31210 	f10 = heapFloat[(r5+9)];
   31211 	heapFloat[(fp+-193)] = f10;
   31212 	f11 = heapFloat[(r5+10)];
   31213 	heapFloat[(fp+-190)] = f11;
   31214 	f12 = f17*f2;
   31215 	f13 = f18*f3;
   31216 	f14 = f17*f0;
   31217 	f15 = f18*f1;
   31218 	f16 = f20*f0;
   31219 	f26 = f21*f1;
   31220 	f0 = f23*f0;
   31221 	heapFloat[(fp+-198)] = f0;
   31222 	f1 = f24*f1;
   31223 	f27 = f17*f4;
   31224 	f28 = f18*f5;
   31225 	f17 = f17*f6;
   31226 	f18 = f18*f7;
   31227 	f29 = f20*f2;
   31228 	f30 = f21*f3;
   31229 	f0 = f20*f4;
   31230 	heapFloat[(fp+-197)] = f0;
   31231 	f0 = f21*f5;
   31232 	f20 = f20*f6;
   31233 	f21 = f21*f7;
   31234 	f2 = f23*f2;
   31235 	f3 = f24*f3;
   31236 	f4 = f23*f4;
   31237 	f5 = f24*f5;
   31238 	f6 = f23*f6;
   31239 	f7 = f24*f7;
   31240 	f12 = f12+f13;
   31241 	f13 = f19*f9;
   31242 	f14 = f14+f15;
   31243 	f15 = f19*f8;
   31244 	f16 = f16+f26;
   31245 	f23 = f22*f8;
   31246 	f24 = heapFloat[(fp+-198)];
   31247 	f1 = f24+f1;
   31248 	f8 = f25*f8;
   31249 	f24 = f27+f28;
   31250 	f26 = f19*f10;
   31251 	f17 = f17+f18;
   31252 	f18 = f19*f11;
   31253 	f19 = f29+f30;
   31254 	f27 = f22*f9;
   31255 	f28 = heapFloat[(fp+-197)];
   31256 	f0 = f28+f0;
   31257 	f28 = f22*f10;
   31258 	f20 = f20+f21;
   31259 	f21 = f22*f11;
   31260 	f2 = f2+f3;
   31261 	f3 = f25*f9;
   31262 	f4 = f4+f5;
   31263 	f5 = f25*f10;
   31264 	f6 = f6+f7;
   31265 	f7 = f25*f11;
   31266 	f9 = f12+f13;
   31267 	r5 = heap32[(fp+2)];
   31268 	r6 = (r2 + 4)|0;
   31269 	r7 = (r3 + 4)|0;
   31270 	r8 = (r2 + 8)|0;
   31271 	r9 = (r3 + 8)|0;
   31272 	r10 = (r0 + 112)|0;
   31273 	r0 = (r0 + 48)|0;
   31274 	f10 = f14+f15;
   31275 	f11 = f16+f23;
   31276 	f1 = f1+f8;
   31277 	f8 = f24+f26;
   31278 	f12 = f17+f18;
   31279 	f13 = f19+f27;
   31280 	f0 = f0+f28;
   31281 	f14 = f20+f21;
   31282 	f2 = f2+f3;
   31283 	f3 = f4+f5;
   31284 	f4 = f6+f7;
   31285 	f5 =                         0;
   31286 	if(f9 <f5) //_LBB166_2
   31287 {
   31288 	f6 = -f9;
   31289 }
   31290 else{
   31291 	f6 = f9;
   31292 }
   31293 	if(f8 <f5) //_LBB166_5
   31294 {
   31295 	f7 = -f8;
   31296 }
   31297 else{
   31298 	f7 = f8;
   31299 }
   31300 	if(f12 <f5) //_LBB166_8
   31301 {
   31302 	f15 = -f12;
   31303 }
   31304 else{
   31305 	f15 = f12;
   31306 }
   31307 	if(f13 <f5) //_LBB166_11
   31308 {
   31309 	f16 = -f13;
   31310 }
   31311 else{
   31312 	f16 = f13;
   31313 }
   31314 	if(f0 <f5) //_LBB166_14
   31315 {
   31316 	f17 = -f0;
   31317 }
   31318 else{
   31319 	f17 = f0;
   31320 }
   31321 	if(f14 <f5) //_LBB166_17
   31322 {
   31323 	f18 = -f14;
   31324 }
   31325 else{
   31326 	f18 = f14;
   31327 }
   31328 	if(f2 <f5) //_LBB166_20
   31329 {
   31330 	f19 = -f2;
   31331 }
   31332 else{
   31333 	f19 = f2;
   31334 }
   31335 	if(f3 <f5) //_LBB166_23
   31336 {
   31337 	f20 = -f3;
   31338 }
   31339 else{
   31340 	f20 = f3;
   31341 }
   31342 	if(f4 <f5) //_LBB166_26
   31343 {
   31344 	f21 = -f4;
   31345 }
   31346 else{
   31347 	f21 = f4;
   31348 }
   31349 	if(f10 <f5) //_LBB166_29
   31350 {
   31351 	f22 = -f10;
   31352 }
   31353 else{
   31354 	f22 = f10;
   31355 }
   31356 	f23 = heapFloat[(fp+-181)];
   31357 	f23 = f23*f6;
   31358 	f24 = heapFloat[(fp+-179)];
   31359 	f23 = f24+f23;
   31360 	f24 = heapFloat[(fp+-182)];
   31361 	f24 = f24*f7;
   31362 	f23 = f23+f24;
   31363 	f24 = heapFloat[(fp+-180)];
   31364 	f24 = f24*f15;
   31365 	f23 = f23+f24;
   31366 	f22 = f22-f23;
   31367 _41: do {
   31368 if(!(f22 >f5)) //_LBB166_268
   31369 {
   31370 	f23 =  -3.4028234663852886e+038;
   31371 	if(f22 >f23) //_LBB166_33
   31372 {
   31373 	f23 =                         0;
   31374 	r11 = f10 < f23;
   31375 	r13 = sp + -640;
   31376 	r11 = r11 & 1;
   31377 	r12 = 1;
   31378 	f23 = f22;
   31379 }
   31380 else{
   31381 	r11 = 0;
   31382 	r12 = r11;
   31383 	r13 = r11;
   31384 }
   31385 	if(f11 <f5) //_LBB166_36
   31386 {
   31387 	f22 = -f11;
   31388 }
   31389 else{
   31390 	f22 = f11;
   31391 }
   31392 	f24 = heapFloat[(fp+-181)];
   31393 	f24 = f24*f16;
   31394 	f25 = heapFloat[(fp+-178)];
   31395 	f24 = f25+f24;
   31396 	f25 = heapFloat[(fp+-182)];
   31397 	f25 = f25*f17;
   31398 	f24 = f24+f25;
   31399 	f25 = heapFloat[(fp+-180)];
   31400 	f25 = f25*f18;
   31401 	f24 = f24+f25;
   31402 	f22 = f22-f24;
   31403 if(!(f22 >f5)) //_LBB166_268
   31404 {
   31405 	if(f22 >f23) //_LBB166_40
   31406 {
   31407 	f23 =                         0;
   31408 	r11 = f11 < f23;
   31409 	r11 = r11 & 1;
   31410 	r12 = 2;
   31411 	f23 = f22;
   31412 	r13 = r6;
   31413 }
   31414 	if(f1 <f5) //_LBB166_43
   31415 {
   31416 	f22 = -f1;
   31417 }
   31418 else{
   31419 	f22 = f1;
   31420 }
   31421 	f24 = heapFloat[(fp+-181)];
   31422 	f24 = f24*f19;
   31423 	f25 = heapFloat[(fp+-177)];
   31424 	f24 = f25+f24;
   31425 	f25 = heapFloat[(fp+-182)];
   31426 	f25 = f25*f20;
   31427 	f24 = f24+f25;
   31428 	f25 = heapFloat[(fp+-180)];
   31429 	f25 = f25*f21;
   31430 	f24 = f24+f25;
   31431 	f22 = f22-f24;
   31432 if(!(f22 >f5)) //_LBB166_268
   31433 {
   31434 	if(f22 >f23) //_LBB166_47
   31435 {
   31436 	f23 =                         0;
   31437 	r11 = f1 < f23;
   31438 	r11 = r11 & 1;
   31439 	r12 = 3;
   31440 	f23 = f22;
   31441 	r13 = r8;
   31442 }
   31443 	f24 = heapFloat[(fp+-183)];
   31444 	f22 = heapFloat[(fp+-194)];
   31445 	f22 = f22*f24;
   31446 	f25 = heapFloat[(fp+-184)];
   31447 	f24 = heapFloat[(fp+-195)];
   31448 	f24 = f24*f25;
   31449 	f22 = f22+f24;
   31450 	f25 = heapFloat[(fp+-185)];
   31451 	f24 = heapFloat[(fp+-196)];
   31452 	f24 = f24*f25;
   31453 	f22 = f22+f24;
   31454 	if(f22 <f5) //_LBB166_50
   31455 {
   31456 	f24 = -f22;
   31457 }
   31458 else{
   31459 	f24 = f22;
   31460 }
   31461 	f25 = heapFloat[(fp+-179)];
   31462 	f25 = f25*f6;
   31463 	f26 = heapFloat[(fp+-178)];
   31464 	f26 = f26*f16;
   31465 	f25 = f25+f26;
   31466 	f26 = heapFloat[(fp+-177)];
   31467 	f26 = f26*f19;
   31468 	f25 = f25+f26;
   31469 	f26 = heapFloat[(fp+-181)];
   31470 	f25 = f25+f26;
   31471 	f24 = f24-f25;
   31472 if(!(f24 >f5)) //_LBB166_268
   31473 {
   31474 	if(f24 >f23) //_LBB166_54
   31475 {
   31476 	f23 =                         0;
   31477 	r11 = f22 < f23;
   31478 	r13 = sp + -688;
   31479 	r11 = r11 & 1;
   31480 	r12 = 4;
   31481 	f23 = f24;
   31482 }
   31483 	f24 = heapFloat[(fp+-183)];
   31484 	f22 = heapFloat[(fp+-191)];
   31485 	f22 = f22*f24;
   31486 	f25 = heapFloat[(fp+-184)];
   31487 	f24 = heapFloat[(fp+-192)];
   31488 	f24 = f24*f25;
   31489 	f22 = f22+f24;
   31490 	f25 = heapFloat[(fp+-185)];
   31491 	f24 = heapFloat[(fp+-193)];
   31492 	f24 = f24*f25;
   31493 	f22 = f22+f24;
   31494 	if(f22 <f5) //_LBB166_57
   31495 {
   31496 	f24 = -f22;
   31497 }
   31498 else{
   31499 	f24 = f22;
   31500 }
   31501 	f25 = heapFloat[(fp+-179)];
   31502 	f25 = f25*f7;
   31503 	f26 = heapFloat[(fp+-178)];
   31504 	f26 = f26*f17;
   31505 	f25 = f25+f26;
   31506 	f26 = heapFloat[(fp+-177)];
   31507 	f26 = f26*f20;
   31508 	f25 = f25+f26;
   31509 	f26 = heapFloat[(fp+-182)];
   31510 	f25 = f25+f26;
   31511 	f24 = f24-f25;
   31512 if(!(f24 >f5)) //_LBB166_268
   31513 {
   31514 	if(f24 >f23) //_LBB166_61
   31515 {
   31516 	f23 =                         0;
   31517 	r11 = f22 < f23;
   31518 	r11 = r11 & 1;
   31519 	r12 = 5;
   31520 	f23 = f24;
   31521 	r13 = r7;
   31522 }
   31523 	f24 = heapFloat[(fp+-183)];
   31524 	f22 = heapFloat[(fp+-188)];
   31525 	f22 = f22*f24;
   31526 	f25 = heapFloat[(fp+-184)];
   31527 	f24 = heapFloat[(fp+-189)];
   31528 	f24 = f24*f25;
   31529 	f22 = f22+f24;
   31530 	f25 = heapFloat[(fp+-185)];
   31531 	f24 = heapFloat[(fp+-190)];
   31532 	f24 = f24*f25;
   31533 	f22 = f22+f24;
   31534 	if(f22 <f5) //_LBB166_64
   31535 {
   31536 	f24 = -f22;
   31537 }
   31538 else{
   31539 	f24 = f22;
   31540 }
   31541 	f25 = heapFloat[(fp+-179)];
   31542 	f25 = f25*f15;
   31543 	f26 = heapFloat[(fp+-178)];
   31544 	f26 = f26*f18;
   31545 	f25 = f25+f26;
   31546 	f26 = heapFloat[(fp+-177)];
   31547 	f26 = f26*f21;
   31548 	f25 = f25+f26;
   31549 	f26 = heapFloat[(fp+-180)];
   31550 	f25 = f25+f26;
   31551 	f24 = f24-f25;
   31552 if(!(f24 >f5)) //_LBB166_268
   31553 {
   31554 	if(f24 >f23) //_LBB166_68
   31555 {
   31556 	f23 =                         0;
   31557 	r11 = f22 < f23;
   31558 	r11 = r11 & 1;
   31559 	r12 = 6;
   31560 	f23 = f24;
   31561 	r13 = r9;
   31562 }
   31563 	f22 = f1*f13;
   31564 	f24 = f11*f2;
   31565 	f25 =   9.9999997473787516e-006;
   31566 	f22 = f22-f24;
   31567 	f6 = f6+f25;
   31568 	f7 = f7+f25;
   31569 	f15 = f15+f25;
   31570 	heapFloat[(fp+-183)] = f15;
   31571 	f15 = f16+f25;
   31572 	f16 = f17+f25;
   31573 	f17 = f18+f25;
   31574 	f18 = f19+f25;
   31575 	heapFloat[(fp+-184)] = f18;
   31576 	f18 = f20+f25;
   31577 	heapFloat[(fp+-185)] = f18;
   31578 	f18 = f21+f25;
   31579 	if(f22 <f5) //_LBB166_71
   31580 {
   31581 	f19 = -f22;
   31582 }
   31583 else{
   31584 	f19 = f22;
   31585 }
   31586 	f21 = heapFloat[(fp+-184)];
   31587 	f20 = heapFloat[(fp+-178)];
   31588 	f20 = f20*f21;
   31589 	f21 = heapFloat[(fp+-177)];
   31590 	f21 = f21*f15;
   31591 	f20 = f20+f21;
   31592 	f24 = heapFloat[(fp+-183)];
   31593 	f21 = heapFloat[(fp+-182)];
   31594 	f21 = f21*f24;
   31595 	f20 = f20+f21;
   31596 	f21 = heapFloat[(fp+-180)];
   31597 	f21 = f21*f7;
   31598 	f20 = f20+f21;
   31599 	f19 = f19-f20;
   31600 	f20 =   1.1920928955078125e-007;
   31601 if(!(f19 >f20)) //_LBB166_268
   31602 {
   31603 	f21 = f2*f2;
   31604 	f21 = f21+f5;
   31605 	f24 = f13*f13;
   31606 	heapFloat[(fp+-188)] = f24;
   31607 	f24 = f21+f24;
   31608 	heapFloat[(g0)] = f24;
   31609 	sqrtf(i7);
   31610 	f24 = f_g0;
   31611 	if(f24 >f20) //_LBB166_75
   31612 {
   31613 	f25 = f19/f24;
   31614 	f19 =        1.0499999523162842;
   31615 	f19 = f25*f19;
   31616 	if(f19 <=f23) //_LBB166_74
   31617 {
   31618 __label__ = 69;
   31619 }
   31620 else{
   31621 	f19 =                         0;
   31622 	f23 = -f2;
   31623 	r11 = f22 < f19;
   31624 	f19 = f19/f24;
   31625 	f22 = f23/f24;
   31626 	f24 = f13/f24;
   31627 	r11 = r11 & 1;
   31628 	r12 = 7;
   31629 	r13 = 0;
   31630 	f23 = f25;
   31631 __label__ = 72;
   31632 }
   31633 }
   31634 else{
   31635 __label__ = 69;
   31636 }
   31637 if (__label__ == 69){
   31638 	f19 = f5;
   31639 	f22 = f5;
   31640 	f24 = f5;
   31641 }
   31642 	f25 = f1*f0;
   31643 	f26 = f11*f3;
   31644 	f25 = f25-f26;
   31645 	if(f25 <f5) //_LBB166_79
   31646 {
   31647 	f5 = -f25;
   31648 }
   31649 else{
   31650 	f5 = f25;
   31651 }
   31652 	f27 = heapFloat[(fp+-185)];
   31653 	f26 = heapFloat[(fp+-178)];
   31654 	f26 = f26*f27;
   31655 	f27 = heapFloat[(fp+-177)];
   31656 	f27 = f27*f16;
   31657 	f26 = f26+f27;
   31658 	f28 = heapFloat[(fp+-183)];
   31659 	f27 = heapFloat[(fp+-181)];
   31660 	f27 = f27*f28;
   31661 	f26 = f26+f27;
   31662 	f27 = heapFloat[(fp+-180)];
   31663 	f27 = f27*f6;
   31664 	f26 = f26+f27;
   31665 	f5 = f5-f26;
   31666 if(!(f5 >f20)) //_LBB166_268
   31667 {
   31668 	f26 = f3*f3;
   31669 	f27 =                         0;
   31670 	f26 = f26+f27;
   31671 	f28 = f0*f0;
   31672 	heapFloat[(fp+-189)] = f28;
   31673 	f28 = f26+f28;
   31674 	heapFloat[(g0)] = f28;
   31675 	sqrtf(i7);
   31676 	f28 = f_g0;
   31677 	if(f28 >f20) //_LBB166_83
   31678 {
   31679 	f5 = f5/f28;
   31680 	f29 =        1.0499999523162842;
   31681 	f29 = f5*f29;
   31682 if(!(f29 <=f23)) //_LBB166_82
   31683 {
   31684 	f19 =                         0;
   31685 	f22 = -f3;
   31686 	r11 = f25 < f19;
   31687 	f19 = f19/f28;
   31688 	f22 = f22/f28;
   31689 	f24 = f0/f28;
   31690 	r11 = r11 & 1;
   31691 	r12 = 8;
   31692 	r13 = 0;
   31693 	f23 = f5;
   31694 }
   31695 }
   31696 	f5 = f1*f14;
   31697 	f25 = f11*f4;
   31698 	f5 = f5-f25;
   31699 	if(f5 <f27) //_LBB166_87
   31700 {
   31701 	f25 = -f5;
   31702 }
   31703 else{
   31704 	f25 = f5;
   31705 }
   31706 	f28 = heapFloat[(fp+-178)];
   31707 	f28 = f28*f18;
   31708 	f29 = heapFloat[(fp+-177)];
   31709 	f29 = f29*f17;
   31710 	f28 = f28+f29;
   31711 	f29 = heapFloat[(fp+-181)];
   31712 	f29 = f29*f7;
   31713 	f28 = f28+f29;
   31714 	f29 = heapFloat[(fp+-182)];
   31715 	f29 = f29*f6;
   31716 	f28 = f28+f29;
   31717 	f25 = f25-f28;
   31718 if(!(f25 >f20)) //_LBB166_268
   31719 {
   31720 	f28 = f4*f4;
   31721 	f28 = f28+f27;
   31722 	f29 = f14*f14;
   31723 	heapFloat[(fp+-190)] = f29;
   31724 	f29 = f28+f29;
   31725 	heapFloat[(g0)] = f29;
   31726 	sqrtf(i7);
   31727 	f29 = f_g0;
   31728 	if(f29 >f20) //_LBB166_91
   31729 {
   31730 	f25 = f25/f29;
   31731 	f30 =        1.0499999523162842;
   31732 	f30 = f25*f30;
   31733 if(!(f30 <=f23)) //_LBB166_90
   31734 {
   31735 	f19 =                         0;
   31736 	f22 = -f4;
   31737 	r11 = f5 < f19;
   31738 	f19 = f19/f29;
   31739 	f22 = f22/f29;
   31740 	f24 = f14/f29;
   31741 	r11 = r11 & 1;
   31742 	r12 = 9;
   31743 	r13 = 0;
   31744 	f23 = f25;
   31745 }
   31746 }
   31747 	f5 = f10*f2;
   31748 	f25 = f1*f9;
   31749 	f5 = f5-f25;
   31750 	if(f5 <f27) //_LBB166_95
   31751 {
   31752 	f25 = -f5;
   31753 }
   31754 else{
   31755 	f25 = f5;
   31756 }
   31757 	f30 = heapFloat[(fp+-184)];
   31758 	f29 = heapFloat[(fp+-179)];
   31759 	f29 = f29*f30;
   31760 	f30 = heapFloat[(fp+-177)];
   31761 	f30 = f30*f6;
   31762 	f29 = f29+f30;
   31763 	f30 = heapFloat[(fp+-182)];
   31764 	f30 = f30*f17;
   31765 	f29 = f29+f30;
   31766 	f30 = heapFloat[(fp+-180)];
   31767 	f30 = f30*f16;
   31768 	f29 = f29+f30;
   31769 	f25 = f25-f29;
   31770 if(!(f25 >f20)) //_LBB166_268
   31771 {
   31772 	f29 = f9*f9;
   31773 	f21 = f21+f29;
   31774 	heapFloat[(g0)] = f21;
   31775 	sqrtf(i7);
   31776 	f21 = f_g0;
   31777 	if(f21 >f20) //_LBB166_99
   31778 {
   31779 	f25 = f25/f21;
   31780 	f30 =        1.0499999523162842;
   31781 	f30 = f25*f30;
   31782 if(!(f30 <=f23)) //_LBB166_98
   31783 {
   31784 	f22 =                         0;
   31785 	f23 = -f9;
   31786 	r11 = f5 < f22;
   31787 	f19 = f2/f21;
   31788 	f22 = f22/f21;
   31789 	f24 = f23/f21;
   31790 	r11 = r11 & 1;
   31791 	r12 = 10;
   31792 	r13 = 0;
   31793 	f23 = f25;
   31794 }
   31795 }
   31796 	f2 = f10*f3;
   31797 	f5 = f1*f8;
   31798 	f2 = f2-f5;
   31799 	if(f2 <f27) //_LBB166_103
   31800 {
   31801 	f5 = -f2;
   31802 }
   31803 else{
   31804 	f5 = f2;
   31805 }
   31806 	f25 = heapFloat[(fp+-185)];
   31807 	f21 = heapFloat[(fp+-179)];
   31808 	f21 = f21*f25;
   31809 	f25 = heapFloat[(fp+-177)];
   31810 	f25 = f25*f7;
   31811 	f21 = f21+f25;
   31812 	f25 = heapFloat[(fp+-181)];
   31813 	f25 = f25*f17;
   31814 	f21 = f21+f25;
   31815 	f25 = heapFloat[(fp+-180)];
   31816 	f25 = f25*f15;
   31817 	f21 = f21+f25;
   31818 	f5 = f5-f21;
   31819 if(!(f5 >f20)) //_LBB166_268
   31820 {
   31821 	f21 = f8*f8;
   31822 	f25 = f26+f21;
   31823 	heapFloat[(g0)] = f25;
   31824 	sqrtf(i7);
   31825 	f25 = f_g0;
   31826 	if(f25 >f20) //_LBB166_107
   31827 {
   31828 	f5 = f5/f25;
   31829 	f26 =        1.0499999523162842;
   31830 	f26 = f5*f26;
   31831 if(!(f26 <=f23)) //_LBB166_106
   31832 {
   31833 	f22 =                         0;
   31834 	f23 = -f8;
   31835 	r11 = f2 < f22;
   31836 	f19 = f3/f25;
   31837 	f22 = f22/f25;
   31838 	f24 = f23/f25;
   31839 	r11 = r11 & 1;
   31840 	r12 = 11;
   31841 	r13 = 0;
   31842 	f23 = f5;
   31843 }
   31844 }
   31845 	f2 = f10*f4;
   31846 	f1 = f1*f12;
   31847 	f1 = f2-f1;
   31848 	if(f1 <f27) //_LBB166_111
   31849 {
   31850 	f2 = -f1;
   31851 }
   31852 else{
   31853 	f2 = f1;
   31854 }
   31855 	f3 = heapFloat[(fp+-179)];
   31856 	f3 = f3*f18;
   31857 	f25 = heapFloat[(fp+-183)];
   31858 	f5 = heapFloat[(fp+-177)];
   31859 	f5 = f5*f25;
   31860 	f3 = f3+f5;
   31861 	f5 = heapFloat[(fp+-181)];
   31862 	f5 = f5*f16;
   31863 	f3 = f3+f5;
   31864 	f5 = heapFloat[(fp+-182)];
   31865 	f5 = f5*f15;
   31866 	f3 = f3+f5;
   31867 	f2 = f2-f3;
   31868 if(!(f2 >f20)) //_LBB166_268
   31869 {
   31870 	f3 = f12*f12;
   31871 	f5 = f28+f3;
   31872 	heapFloat[(g0)] = f5;
   31873 	sqrtf(i7);
   31874 	f5 = f_g0;
   31875 	if(f5 >f20) //_LBB166_115
   31876 {
   31877 	f2 = f2/f5;
   31878 	f25 =        1.0499999523162842;
   31879 	f25 = f2*f25;
   31880 if(!(f25 <=f23)) //_LBB166_114
   31881 {
   31882 	f22 =                         0;
   31883 	f23 = -f12;
   31884 	r11 = f1 < f22;
   31885 	f19 = f4/f5;
   31886 	f22 = f22/f5;
   31887 	f24 = f23/f5;
   31888 	r11 = r11 & 1;
   31889 	r12 = 12;
   31890 	r13 = 0;
   31891 	f23 = f2;
   31892 }
   31893 }
   31894 	f1 = f11*f9;
   31895 	f2 = f10*f13;
   31896 	f1 = f1-f2;
   31897 	if(f1 <f27) //_LBB166_119
   31898 {
   31899 	f2 = -f1;
   31900 }
   31901 else{
   31902 	f2 = f1;
   31903 }
   31904 	f4 = heapFloat[(fp+-179)];
   31905 	f4 = f4*f15;
   31906 	f5 = heapFloat[(fp+-178)];
   31907 	f5 = f5*f6;
   31908 	f4 = f4+f5;
   31909 	f5 = heapFloat[(fp+-182)];
   31910 	f5 = f5*f18;
   31911 	f4 = f4+f5;
   31912 	f6 = heapFloat[(fp+-185)];
   31913 	f5 = heapFloat[(fp+-180)];
   31914 	f5 = f5*f6;
   31915 	f4 = f4+f5;
   31916 	f2 = f2-f4;
   31917 if(!(f2 >f20)) //_LBB166_268
   31918 {
   31919 	f4 = heapFloat[(fp+-188)];
   31920 	f4 = f4+f29;
   31921 	f4 = f4+f27;
   31922 	heapFloat[(g0)] = f4;
   31923 	sqrtf(i7);
   31924 	f4 = f_g0;
   31925 	if(f4 >f20) //_LBB166_123
   31926 {
   31927 	f2 = f2/f4;
   31928 	f5 =        1.0499999523162842;
   31929 	f5 = f2*f5;
   31930 if(!(f5 <=f23)) //_LBB166_122
   31931 {
   31932 	f23 =                         0;
   31933 	f19 = -f13;
   31934 	r11 = f1 < f23;
   31935 	f19 = f19/f4;
   31936 	f22 = f9/f4;
   31937 	f24 = f23/f4;
   31938 	r11 = r11 & 1;
   31939 	r12 = 13;
   31940 	r13 = 0;
   31941 	f23 = f2;
   31942 }
   31943 }
   31944 	f1 = f11*f8;
   31945 	f2 = f10*f0;
   31946 	f1 = f1-f2;
   31947 	if(f1 <f27) //_LBB166_127
   31948 {
   31949 	f2 = -f1;
   31950 }
   31951 else{
   31952 	f2 = f1;
   31953 }
   31954 	f4 = heapFloat[(fp+-179)];
   31955 	f4 = f4*f16;
   31956 	f5 = heapFloat[(fp+-178)];
   31957 	f5 = f5*f7;
   31958 	f4 = f4+f5;
   31959 	f5 = heapFloat[(fp+-181)];
   31960 	f5 = f5*f18;
   31961 	f4 = f4+f5;
   31962 	f6 = heapFloat[(fp+-184)];
   31963 	f5 = heapFloat[(fp+-180)];
   31964 	f5 = f5*f6;
   31965 	f4 = f4+f5;
   31966 	f2 = f2-f4;
   31967 if(!(f2 >f20)) //_LBB166_268
   31968 {
   31969 	f4 = heapFloat[(fp+-189)];
   31970 	f4 = f4+f21;
   31971 	f4 = f4+f27;
   31972 	heapFloat[(g0)] = f4;
   31973 	sqrtf(i7);
   31974 	f4 = f_g0;
   31975 	if(f4 >f20) //_LBB166_131
   31976 {
   31977 	f2 = f2/f4;
   31978 	f5 =        1.0499999523162842;
   31979 	f5 = f2*f5;
   31980 if(!(f5 <=f23)) //_LBB166_130
   31981 {
   31982 	f23 =                         0;
   31983 	f19 = -f0;
   31984 	r11 = f1 < f23;
   31985 	f19 = f19/f4;
   31986 	f22 = f8/f4;
   31987 	f24 = f23/f4;
   31988 	r11 = r11 & 1;
   31989 	r12 = 14;
   31990 	r13 = 0;
   31991 	f23 = f2;
   31992 }
   31993 }
   31994 	f0 = f11*f12;
   31995 	f1 = f10*f14;
   31996 	f0 = f0-f1;
   31997 	if(f0 <f27) //_LBB166_135
   31998 {
   31999 	f1 = -f0;
   32000 }
   32001 else{
   32002 	f1 = f0;
   32003 }
   32004 	f2 = heapFloat[(fp+-179)];
   32005 	f2 = f2*f17;
   32006 	f5 = heapFloat[(fp+-183)];
   32007 	f4 = heapFloat[(fp+-178)];
   32008 	f4 = f4*f5;
   32009 	f2 = f2+f4;
   32010 	f5 = heapFloat[(fp+-185)];
   32011 	f4 = heapFloat[(fp+-181)];
   32012 	f4 = f4*f5;
   32013 	f2 = f2+f4;
   32014 	f5 = heapFloat[(fp+-184)];
   32015 	f4 = heapFloat[(fp+-182)];
   32016 	f4 = f4*f5;
   32017 	f2 = f2+f4;
   32018 	f1 = f1-f2;
   32019 if(!(f1 >f20)) //_LBB166_268
   32020 {
   32021 	f2 = heapFloat[(fp+-190)];
   32022 	f2 = f2+f3;
   32023 	f2 = f2+f27;
   32024 	heapFloat[(g0)] = f2;
   32025 	sqrtf(i7);
   32026 	f2 = f_g0;
   32027 	if(f2 <=f20) //_LBB166_140
   32028 {
   32029 __label__ = 128;
   32030 }
   32031 else{
   32032 	f1 = f1/f2;
   32033 	heapFloat[(fp+-183)] = f1;
   32034 	f3 =        1.0499999523162842;
   32035 	f1 = f1*f3;
   32036 	if(f1 <=f23) //_LBB166_140
   32037 {
   32038 __label__ = 128;
   32039 }
   32040 else{
   32041 	f23 =                         0;
   32042 	f19 = -f14;
   32043 	r11 = f0 < f23;
   32044 	f19 = f19/f2;
   32045 	f22 = f12/f2;
   32046 	f24 = f23/f2;
   32047 	r11 = r11 & 1;
   32048 	r13 = sp + -704;
   32049 	r12 = 15;
   32050 __label__ = 132;
   32051 }
   32052 }
   32053 if (__label__ == 128){
   32054 	if(r12 ==0) //_LBB166_268
   32055 {
   32056 break _41;
   32057 }
   32058 else{
   32059 	if(r13 !=0) //_LBB166_143
   32060 {
   32061 	r13 = r13 >> 2;
   32062 	f0 = heapFloat[(r13)];
   32063 	r6 = sp + -704;
   32064 	heapFloat[(fp+-176)] = f0;
   32065 	f1 = heapFloat[(r13+4)];
   32066 	r6 = r6 >> 2;
   32067 	heapFloat[(r6+1)] = f1;
   32068 	f19 = heapFloat[(r13+8)];
   32069 	heapFloat[(r6+2)] = f19;
   32070 	heapFloat[(fp+-183)] = f23;
   32071 __label__ = 133;
   32072 }
   32073 else{
   32074 	r13 = sp + -704;
   32075 	heapFloat[(fp+-183)] = f23;
   32076 __label__ = 132;
   32077 }
   32078 }
   32079 }
   32080 if (__label__ == 132){
   32081 	r6 = sp + -640;
   32082 	r6 = r6 >> 2;
   32083 	f0 = heapFloat[(fp+-160)];
   32084 	f1 = heapFloat[(r6+1)];
   32085 	f2 = heapFloat[(r6+2)];
   32086 	f0 = f0*f19;
   32087 	f1 = f1*f22;
   32088 	f0 = f0+f1;
   32089 	f1 = f2*f24;
   32090 	f0 = f0+f1;
   32091 	r7 = r13 >> 2;
   32092 	heapFloat[(r7)] = f0;
   32093 	f1 = heapFloat[(r6+4)];
   32094 	f2 = heapFloat[(r6+5)];
   32095 	f3 = heapFloat[(r6+6)];
   32096 	f1 = f1*f19;
   32097 	f2 = f2*f22;
   32098 	r7 = sp + -704;
   32099 	f1 = f1+f2;
   32100 	f2 = f3*f24;
   32101 	f1 = f1+f2;
   32102 	r7 = r7 >> 2;
   32103 	heapFloat[(r7+1)] = f1;
   32104 	f2 = heapFloat[(r6+8)];
   32105 	f3 = heapFloat[(r6+9)];
   32106 	f4 = heapFloat[(r6+10)];
   32107 	f19 = f2*f19;
   32108 	f2 = f3*f22;
   32109 	f19 = f19+f2;
   32110 	f2 = f4*f24;
   32111 	f19 = f19+f2;
   32112 	heapFloat[(r7+2)] = f19;
   32113 }
   32114 	if(r11 !=0) //_LBB166_147
   32115 {
   32116 	f0 = -f0;
   32117 	r6 = sp + -704;
   32118 	f1 = -f1;
   32119 	r6 = r6 >> 2;
   32120 	heapFloat[(fp+-176)] = f0;
   32121 	f19 = -f19;
   32122 	heapFloat[(r6+1)] = f1;
   32123 	heapFloat[(r6+2)] = f19;
   32124 }
   32125 	if(r12 <7) //_LBB166_153
   32126 {
   32127 	if(r12 >3) //_LBB166_155
   32128 {
   32129 	f0 = -f0;
   32130 	f1 = -f1;
   32131 	f19 = -f19;
   32132 	r1 = r0;
   32133 	r0 = r10;
   32134 }
   32135 else{
   32136 	r3 = sp + -640;
   32137 	r2 = sp + -688;
   32138 	r4 = sp + -236;
   32139 	heap32[(fp+-186)] = r4;
   32140 	r4 = sp + -248;
   32141 	r1 = r10;
   32142 }
   32143 	r6 = r2 >> 2;
   32144 	f2 = heapFloat[(r6)];
   32145 	f3 = heapFloat[(r6+4)];
   32146 	f4 = heapFloat[(r6+8)];
   32147 	f2 = f2*f0;
   32148 	f3 = f3*f1;
   32149 	f2 = f2+f3;
   32150 	f3 = f4*f19;
   32151 	f2 = f2+f3;
   32152 	heapFloat[(fp+-66)] = f2;
   32153 	f3 = heapFloat[(r6+1)];
   32154 	f4 = heapFloat[(r6+5)];
   32155 	f5 = heapFloat[(r6+9)];
   32156 	f3 = f3*f0;
   32157 	f4 = f4*f1;
   32158 	r7 = sp + -264;
   32159 	f3 = f3+f4;
   32160 	f4 = f5*f19;
   32161 	f3 = f3+f4;
   32162 	r8 = r7 >> 2;
   32163 	heapFloat[(r8+1)] = f3;
   32164 	f4 = heapFloat[(r6+2)];
   32165 	f5 = heapFloat[(r6+6)];
   32166 	f6 = heapFloat[(r6+10)];
   32167 	f4 = f4*f0;
   32168 	f5 = f5*f1;
   32169 	f4 = f4+f5;
   32170 	f5 = f6*f19;
   32171 	f4 = f4+f5;
   32172 	heapFloat[(r8+2)] = f4;
   32173 	if(f2 <f27) //_LBB166_158
   32174 {
   32175 	f2 = -f2;
   32176 }
   32177 	if(f3 <f27) //_LBB166_161
   32178 {
   32179 	f3 = -f3;
   32180 }
   32181 	if(f4 <f27) //_LBB166_164
   32182 {
   32183 	f4 = -f4;
   32184 }
   32185 	if(f3 <=f2) //_LBB166_169
   32186 {
   32187 	if(f2 <=f4) //_LBB166_171
   32188 {
   32189 	r6 = 2;
   32190 	r8 = 0;
   32191 	r9 = 1;
   32192 }
   32193 else{
   32194 	r6 = 0;
   32195 	r8 = 1;
   32196 	r9 = 2;
   32197 }
   32198 }
   32199 else{
   32200 	if(f3 <=f4) //_LBB166_168
   32201 {
   32202 	r6 = 2;
   32203 	r8 = 0;
   32204 	r9 = 1;
   32205 }
   32206 else{
   32207 	r6 = 1;
   32208 	r8 = 0;
   32209 	r9 = 2;
   32210 }
   32211 }
   32212 	r10 = r6 << 2;
   32213 	r11 = (r4 + r10)|0;
   32214 	r13 = (r2 + r10)|0;
   32215 	r1 = r1 >> 2;
   32216 	r0 = r0 >> 2;
   32217 	r11 = r11 >> 2;
   32218 	r13 = r13 >> 2;
   32219 	f2 = heapFloat[(r11)];
   32220 	f3 = heapFloat[(r13)];
   32221 	f4 = heapFloat[(r1)];
   32222 	f5 = heapFloat[(r0)];
   32223 	r7 = (r7 + r10)|0;
   32224 	f4 = f4-f5;
   32225 	f3 = f2*f3;
   32226 	r7 = r7 >> 2;
   32227 	f5 = heapFloat[(r7)];
   32228 	if(f5 <f27) //_LBB166_174
   32229 {
   32230 	r7 = r6 | 4;
   32231 	r6 = r6 | 8;
   32232 	r7 = r7 << 2;
   32233 	r6 = r6 << 2;
   32234 	r7 = (r2 + r7)|0;
   32235 	r6 = (r2 + r6)|0;
   32236 	r7 = r7 >> 2;
   32237 	r6 = r6 >> 2;
   32238 	f5 = heapFloat[(r1+1)];
   32239 	f6 = heapFloat[(r0+1)];
   32240 	f7 = heapFloat[(r7)];
   32241 	f8 = heapFloat[(r6)];
   32242 	f9 = heapFloat[(r1+2)];
   32243 	f10 = heapFloat[(r0+2)];
   32244 	f5 = f5-f6;
   32245 	f6 = f2*f7;
   32246 	f7 = f9-f10;
   32247 	f2 = f2*f8;
   32248 	f3 = f4+f3;
   32249 	f4 = f5+f6;
   32250 	f2 = f7+f2;
   32251 }
   32252 else{
   32253 	r7 = r6 | 4;
   32254 	r6 = r6 | 8;
   32255 	r7 = r7 << 2;
   32256 	r6 = r6 << 2;
   32257 	r7 = (r2 + r7)|0;
   32258 	r6 = (r2 + r6)|0;
   32259 	r7 = r7 >> 2;
   32260 	r6 = r6 >> 2;
   32261 	f5 = heapFloat[(r1+1)];
   32262 	f6 = heapFloat[(r0+1)];
   32263 	f7 = heapFloat[(r7)];
   32264 	f8 = heapFloat[(r6)];
   32265 	f9 = heapFloat[(r1+2)];
   32266 	f10 = heapFloat[(r0+2)];
   32267 	f5 = f5-f6;
   32268 	f6 = f2*f7;
   32269 	f7 = f9-f10;
   32270 	f2 = f2*f8;
   32271 	f3 = f4-f3;
   32272 	f4 = f5-f6;
   32273 	f2 = f7-f2;
   32274 }
   32275 	r1 = -1;
   32276 	r6 = -4;
   32277 	r6 = r12 < 4 ? r1 : r6;
   32278 	r6 = (r6 + r12)|0;
   32279 	if(r6 ==1) //_LBB166_178
   32280 {
   32281 	r7 = 0;
   32282 	r10 = 2;
   32283 }
   32284 else{
   32285 	if(r6 !=0) //_LBB166_179
   32286 {
   32287 	r7 = 0;
   32288 	r10 = 1;
   32289 }
   32290 else{
   32291 	r7 = 1;
   32292 	r10 = 2;
   32293 }
   32294 }
   32295 	r11 = r8 | 4;
   32296 	r13 = r7 | 4;
   32297 	r14 = r8 | 8;
   32298 	r15 = r9 | 4;
   32299 	r16 = r7 | 8;
   32300 	r17 = r10 | 4;
   32301 	r7 = r7 << 2;
   32302 	r13 = r13 << 2;
   32303 	r11 = r11 << 2;
   32304 	r8 = r8 << 2;
   32305 	r18 = r9 | 8;
   32306 	r19 = (r3 + r7)|0;
   32307 	r13 = (r3 + r13)|0;
   32308 	r16 = r16 << 2;
   32309 	r20 = r10 << 2;
   32310 	r17 = r17 << 2;
   32311 	r10 = r10 | 8;
   32312 	r21 = (r2 + r8)|0;
   32313 	r11 = (r2 + r11)|0;
   32314 	r14 = r14 << 2;
   32315 	r15 = r15 << 2;
   32316 	r9 = r9 << 2;
   32317 	r19 = r19 >> 2;
   32318 	r13 = r13 >> 2;
   32319 	r16 = (r3 + r16)|0;
   32320 	r22 = (r3 + r20)|0;
   32321 	r17 = (r3 + r17)|0;
   32322 	r10 = r10 << 2;
   32323 	r21 = r21 >> 2;
   32324 	heap32[(fp+-178)] = r21;
   32325 	r11 = r11 >> 2;
   32326 	heap32[(fp+-177)] = r11;
   32327 	r14 = (r2 + r14)|0;
   32328 	r23 = (r2 + r9)|0;
   32329 	r15 = (r2 + r15)|0;
   32330 	r18 = r18 << 2;
   32331 	r16 = r16 >> 2;
   32332 	r22 = r22 >> 2;
   32333 	r17 = r17 >> 2;
   32334 	r3 = (r3 + r10)|0;
   32335 	r10 = r14 >> 2;
   32336 	heap32[(fp+-179)] = r10;
   32337 	r14 = r23 >> 2;
   32338 	heap32[(fp+-180)] = r14;
   32339 	r15 = r15 >> 2;
   32340 	r2 = (r2 + r18)|0;
   32341 	f5 = heapFloat[(r19)];
   32342 	f6 = heapFloat[(r21)];
   32343 	f7 = heapFloat[(r13)];
   32344 	f8 = heapFloat[(r11)];
   32345 	f9 = heapFloat[(r22)];
   32346 	f10 = heapFloat[(r14)];
   32347 	f11 = heapFloat[(r17)];
   32348 	f12 = heapFloat[(r15)];
   32349 	r3 = r3 >> 2;
   32350 	r2 = r2 >> 2;
   32351 	r8 = (r4 + r8)|0;
   32352 	f13 = f5*f6;
   32353 	f14 = f7*f8;
   32354 	f15 = heapFloat[(r16)];
   32355 	f16 = heapFloat[(r10)];
   32356 	f17 = heapFloat[(r3)];
   32357 	f18 = heapFloat[(r2)];
   32358 	r3 = r8 >> 2;
   32359 	r4 = (r4 + r9)|0;
   32360 	f6 = f9*f6;
   32361 	f8 = f11*f8;
   32362 	f21 = f3*f5;
   32363 	f22 = f4*f7;
   32364 	f13 = f13+f14;
   32365 	f14 = f15*f16;
   32366 	f5 = f5*f10;
   32367 	f7 = f7*f12;
   32368 	f13 = f13+f14;
   32369 	f14 = heapFloat[(r3)];
   32370 	r3 = r4 >> 2;
   32371 	f23 = f3*f9;
   32372 	f24 = f4*f11;
   32373 	f6 = f6+f8;
   32374 	f8 = f17*f16;
   32375 	f9 = f9*f10;
   32376 	f10 = f11*f12;
   32377 	f11 = f21+f22;
   32378 	f12 = f2*f15;
   32379 	f5 = f5+f7;
   32380 	f7 = f15*f18;
   32381 	f6 = f6+f8;
   32382 	f8 = f11+f12;
   32383 	f11 = f14*f13;
   32384 	f5 = f5+f7;
   32385 	f7 = heapFloat[(r3)];
   32386 	f12 = f23+f24;
   32387 	f15 = f2*f17;
   32388 	f9 = f9+f10;
   32389 	f10 = f17*f18;
   32390 	f9 = f9+f10;
   32391 	f10 = f12+f15;
   32392 	f12 = f14*f6;
   32393 	f14 = f8-f11;
   32394 	f15 = f7*f5;
   32395 	r3 = sp + -296;
   32396 	f16 = f10-f12;
   32397 	f7 = f7*f9;
   32398 	f17 = f14-f15;
   32399 	r4 = r3 >> 2;
   32400 	f18 = f16-f7;
   32401 	heapFloat[(fp+-74)] = f17;
   32402 	f14 = f14+f15;
   32403 	heapFloat[(r4+1)] = f18;
   32404 	f11 = f8+f11;
   32405 	f16 = f16+f7;
   32406 	heapFloat[(r4+2)] = f14;
   32407 	f12 = f10+f12;
   32408 	f14 = f11+f15;
   32409 	heapFloat[(r4+3)] = f16;
   32410 	f16 = f12+f7;
   32411 	heapFloat[(r4+4)] = f14;
   32412 	f11 = f11-f15;
   32413 	heapFloat[(r4+5)] = f16;
   32414 	r8 = heap32[(fp+-186)];
   32415 	r7 = (r8 + r7)|0;
   32416 	f7 = f12-f7;
   32417 	heapFloat[(r4+6)] = f11;
   32418 	r9 = sp + -304;
   32419 	r8 = (r8 + r20)|0;
   32420 	r7 = r7 >> 2;
   32421 	heapFloat[(r4+7)] = f7;
   32422 	r4 = sp + -368;
   32423 	r10 = 0;
   32424 	r11 = 4;
   32425 	r13 = r9 >> 2;
   32426 	r8 = r8 >> 2;
   32427 	heap32[(fp+-76)] = heap32[(r7)];
   32428 	heap32[(r13+1)] = heap32[(r8)];
   32429 	r7 = r10;
   32430 _217: while(true){
   32431 	if(r7 <2) //_LBB166_199
   32432 {
   32433 	r18 = 0;
   32434 	r17 = (r18 - r7)|0;
   32435 	r14 = r1;
   32436 	r8 = r4;
   32437 _220: while(true){
   32438 	r4 = r8;
   32439 	if(r14 >1) //_LBB166_196
   32440 {
   32441 break _220;
   32442 }
   32443 else{
   32444 	f7 = r14; //fitos r14, f7
   32445 	r16 = (r3 + 8)|0;
   32446 	r8 = r18;
   32447 	r10 = r18;
   32448 	r13 = r4;
   32449 _223: while(true){
   32450 	if(r11 >0) //_LBB166_181
   32451 {
   32452 	r19 = (r3 + r8)|0;
   32453 	r20 = (r16 + r8)|0;
   32454 	r21 = r7 << 2;
   32455 	r22 = (r9 + r21)|0;
   32456 	r23 = (r19 + r21)|0;
   32457 	r22 = r22 >> 2;
   32458 	r23 = r23 >> 2;
   32459 	f11 = heapFloat[(r22)];
   32460 	f12 = heapFloat[(r23)];
   32461 	f14 = f7*f12;
   32462 	if(f14 <f11) //_LBB166_183
   32463 {
   32464 	r24 = r13 >> 2;
   32465 	r25 = r19 >> 2;
   32466 	r10 = (r10 + 1)|0;
   32467 	heap32[(r24)] = heap32[(r25)];
   32468 	heap32[(r24+1)] = heap32[(r25+1)];
   32469 	r24 = r10 & 8;
   32470 	if(r24 ==0) //_LBB166_185
   32471 {
   32472 	r13 = (r13 + 8)|0;
   32473 	f12 = heapFloat[(r23)];
   32474 	f11 = heapFloat[(r22)];
   32475 }
   32476 else{
   32477 __label__ = 179;
   32478 break _217;
   32479 }
   32480 }
   32481 	r20 = r11 > 1 ? r20 : r3;
   32482 	r23 = (r20 + r21)|0;
   32483 	r23 = r23 >> 2;
   32484 	f14 = heapFloat[(r23)];
   32485 	f15 = f7*f12;
   32486 	f16 = f7*f14;
   32487 	r23 = f15 < f11;
   32488 	r24 = f16 < f11;
   32489 	r23 = r23 ^ r24;
   32490 	if(r23 != 0) //_LBB166_188
   32491 {
   32492 	r23 = r17 << 2;
   32493 	r19 = (r19 + r23)|0;
   32494 	r20 = (r20 + r23)|0;
   32495 	r19 = r19 >> 2;
   32496 	r20 = r20 >> 2;
   32497 	f15 = heapFloat[(r19+1)];
   32498 	f16 = heapFloat[(r20+1)];
   32499 	f11 = f7*f11;
   32500 	f16 = f16-f15;
   32501 	f14 = f14-f12;
   32502 	f14 = f16/f14;
   32503 	f11 = f11-f12;
   32504 	r19 = (r13 + r23)|0;
   32505 	f11 = f14*f11;
   32506 	r19 = r19 >> 2;
   32507 	f11 = f15+f11;
   32508 	heapFloat[(r19+1)] = f11;
   32509 	r19 = (r13 + r21)|0;
   32510 	f11 = heapFloat[(r22)];
   32511 	r10 = (r10 + 1)|0;
   32512 	r19 = r19 >> 2;
   32513 	f11 = f7*f11;
   32514 	heapFloat[(r19)] = f11;
   32515 	r19 = r10 & 8;
   32516 	if(r19 ==0) //_LBB166_190
   32517 {
   32518 	r13 = (r13 + 8)|0;
   32519 }
   32520 else{
   32521 __label__ = 179;
   32522 break _217;
   32523 }
   32524 }
   32525 	r11 = (r11 + -1)|0;
   32526 	r8 = (r8 + 8)|0;
   32527 }
   32528 else{
   32529 break _223;
   32530 }
   32531 }
   32532 	r3 = sp + -368;
   32533 	r8 = sp + -128;
   32534 	r8 = r4 == r3 ? r8 : r3;
   32535 	r14 = (r14 + 2)|0;
   32536 	r3 = r4;
   32537 	r11 = r10;
   32538 }
   32539 }
   32540 	r7 = (r7 + 1)|0;
   32541 }
   32542 else{
   32543 __label__ = 177;
   32544 break _217;
   32545 }
   32546 }
   32547 if (__label__ == 177){
   32548 	r4 = r3;
   32549 }
   32550 	r1 = sp + -368;
   32551 if(!(r4 ==r1)) //_LBB166_202
   32552 {
   32553 	r3 = r10 << 3;
   32554 	heap32[(g0)] = r1;
   32555 	heap32[(g0+1)] = r4;
   32556 	heap32[(g0+2)] = r3;
   32557 	memcpy(i7);
   32558 }
   32559 	if(r10 <1) //_LBB166_268
   32560 {
   32561 break _41;
   32562 }
   32563 else{
   32564 	f7 = f13*f9;
   32565 	f11 = f5*f6;
   32566 	f12 =                         1;
   32567 	f7 = f7-f11;
   32568 	r3 = r6 << 2;
   32569 	f7 = f12/f7;
   32570 	r4 = heap32[(fp+-186)];
   32571 	r3 = (r4 + r3)|0;
   32572 	f6 = f6*f7;
   32573 	r3 = r3 >> 2;
   32574 	f11 = f13*f7;
   32575 	f5 = f5*f7;
   32576 	f7 = f9*f7;
   32577 	f6 = -f6;
   32578 	f9 = heapFloat[(r3)];
   32579 	r3 = heap32[(fp+-178)];
   32580 	f13 = heapFloat[(r3)];
   32581 	r3 = heap32[(fp+-180)];
   32582 	f14 = heapFloat[(r3)];
   32583 	r3 = heap32[(fp+-177)];
   32584 	f15 = heapFloat[(r3)];
   32585 	f16 = heapFloat[(r15)];
   32586 	r3 = heap32[(fp+-179)];
   32587 	f17 = heapFloat[(r3)];
   32588 	f18 = heapFloat[(r2)];
   32589 	r2 = (r1 + 4)|0;
   32590 	r3 = 0;
   32591 _243: while(true){
   32592 	r4 = r2 >> 2;
   32593 	f21 = heapFloat[(r4+-1)];
   32594 	f22 = heapFloat[(r4)];
   32595 	f23 = f21-f8;
   32596 	f24 = f22-f10;
   32597 	f25 = f23*f7;
   32598 	f26 = f24*f5;
   32599 	f25 = f25-f26;
   32600 	f23 = f23*f6;
   32601 	f24 = f24*f11;
   32602 	r4 = (r3 * 3)|0;
   32603 	f26 = f15*f25;
   32604 	f23 = f23+f24;
   32605 	f24 = f13*f25;
   32606 	r6 = sp + -464;
   32607 	r4 = r4 << 2;
   32608 	f25 = f17*f25;
   32609 	f26 = f4+f26;
   32610 	f28 = f16*f23;
   32611 	f24 = f3+f24;
   32612 	f29 = f14*f23;
   32613 	r4 = (r6 + r4)|0;
   32614 	f24 = f24+f29;
   32615 	f26 = f26+f28;
   32616 	f25 = f2+f25;
   32617 	f23 = f18*f23;
   32618 	f28 = f0*f24;
   32619 	f29 = f1*f26;
   32620 	f23 = f25+f23;
   32621 	r4 = r4 >> 2;
   32622 	heapFloat[(r4)] = f24;
   32623 	f24 = f28+f29;
   32624 	f25 = f19*f23;
   32625 	r7 = sp + -496;
   32626 	r8 = r3 << 2;
   32627 	r8 = (r7 + r8)|0;
   32628 	heapFloat[(r4+1)] = f26;
   32629 	f24 = f24+f25;
   32630 	f24 = f9-f24;
   32631 	r8 = r8 >> 2;
   32632 	heapFloat[(r4+2)] = f23;
   32633 	heapFloat[(r8)] = f24;
   32634 	if(f24 >=f27) //_LBB166_206
   32635 {
   32636 	r4 = r3 << 3;
   32637 	r8 = r4 | 4;
   32638 	r4 = (r1 + r4)|0;
   32639 	r8 = (r1 + r8)|0;
   32640 	r4 = r4 >> 2;
   32641 	r3 = (r3 + 1)|0;
   32642 	r8 = r8 >> 2;
   32643 	heapFloat[(r4)] = f21;
   32644 	heapFloat[(r8)] = f22;
   32645 }
   32646 	r10 = (r10 + -1)|0;
   32647 	r2 = (r2 + 8)|0;
   32648 if(!(r10 !=0)) //_LBB166_204
   32649 {
   32650 break _243;
   32651 }
   32652 }
   32653 	if(r3 <1) //_LBB166_268
   32654 {
   32655 break _41;
   32656 }
   32657 else{
   32658 	r2 = 4;
   32659 	r2 = r3 < 4 ? r3 : r2;
   32660 	r4 = 1;
   32661 	r8 = r2 < 1 ? r4 : r2;
   32662 	if(r3 >r8) //_LBB166_215
   32663 {
   32664 _252: do {
   32665 	if(r3 >1) //_LBB166_217
   32666 {
   32667 	f0 = heapFloat[(fp+-124)];
   32668 	r9 = 1;
   32669 	r7 = 0;
   32670 _254: while(true){
   32671 	r10 = sp + -496;
   32672 	r11 = r9 << 2;
   32673 	r10 = (r10 + r11)|0;
   32674 	r10 = r10 >> 2;
   32675 	f1 = heapFloat[(r10)];
   32676 	r10 = (r9 + 1)|0;
   32677 	r7 = f1 > f0 ? r9 : r7;
   32678 	f0 = f1 > f0 ? f1 : f0;
   32679 	r9 = r10;
   32680 if(!(r3 !=r10)) //_LBB166_218
   32681 {
   32682 break _252;
   32683 }
   32684 }
   32685 }
   32686 else{
   32687 	r7 = 0;
   32688 }
   32689 } while(0);
   32690 _258: do {
   32691 	if(r3 ==1) //_LBB166_224
   32692 {
   32693 	r9 = r1 >> 2;
   32694 	f0 = heapFloat[(fp+-92)];
   32695 	f1 = heapFloat[(r9+1)];
   32696 __label__ = 214;
   32697 break _258;
   32698 }
   32699 else{
   32700 	if(r3 ==2) //_LBB166_225
   32701 {
   32702 	r9 = r1 >> 2;
   32703 	f0 = heapFloat[(fp+-92)];
   32704 	f1 = heapFloat[(r9+2)];
   32705 	f2 = heapFloat[(r9+1)];
   32706 	f12 = heapFloat[(r9+3)];
   32707 	f0 = f0+f1;
   32708 	f1 = f2+f12;
   32709 	f2 = heapFloat[(fp+-187)];
   32710 	f0 = f0*f2;
   32711 	f1 = f1*f2;
   32712 __label__ = 214;
   32713 break _258;
   32714 }
   32715 else{
   32716 	r9 = (r3 + -1)|0;
   32717 _264: do {
   32718 	if(r9 >0) //_LBB166_223
   32719 {
   32720 	r10 = (r1 + 8)|0;
   32721 	f0 =                         0;
   32722 	f1 = f0;
   32723 	f2 = f0;
   32724 _266: while(true){
   32725 	r11 = r10 >> 2;
   32726 	f3 = heapFloat[(r11+-2)];
   32727 	f4 = heapFloat[(r11+1)];
   32728 	f5 = heapFloat[(r11)];
   32729 	f6 = heapFloat[(r11+-1)];
   32730 	f7 = f3*f4;
   32731 	f8 = f5*f6;
   32732 	f3 = f3+f5;
   32733 	f5 = f7-f8;
   32734 	f4 = f6+f4;
   32735 	f3 = f3*f5;
   32736 	f4 = f4*f5;
   32737 	r9 = (r9 + -1)|0;
   32738 	f2 = f2+f5;
   32739 	f1 = f3+f1;
   32740 	f0 = f4+f0;
   32741 	r10 = (r10 + 8)|0;
   32742 if(!(r9 !=0)) //_LBB166_226
   32743 {
   32744 break _264;
   32745 }
   32746 }
   32747 }
   32748 else{
   32749 	f0 = f27;
   32750 	f1 = f27;
   32751 	f2 = f27;
   32752 }
   32753 } while(0);
   32754 	r9 = r3 << 3;
   32755 	r9 = (r9 + r1)|0;
   32756 	r9 = r9 >> 2;
   32757 	r10 = r1 >> 2;
   32758 	f3 = heapFloat[(r9+-2)];
   32759 	f4 = heapFloat[(r10+1)];
   32760 	f5 = heapFloat[(fp+-92)];
   32761 	f6 = heapFloat[(r9+-1)];
   32762 	f7 = f3*f4;
   32763 	f8 = f5*f6;
   32764 	f7 = f7-f8;
   32765 	f2 = f2+f7;
   32766 	if(f2 <f27) //_LBB166_229
   32767 {
   32768 	f8 = -f2;
   32769 }
   32770 else{
   32771 	f8 = f2;
   32772 }
   32773 	if(f8 >f20) //_LBB166_232
   32774 {
   32775 	f8 =                         3;
   32776 	f2 = f2*f8;
   32777 	f2 = f12/f2;
   32778 }
   32779 else{
   32780 	f2 =        999999984306749440;
   32781 }
   32782 	if(r3 >0) //_LBB166_235
   32783 {
   32784 	f3 = f3+f5;
   32785 	f4 = f6+f4;
   32786 	f3 = f3*f7;
   32787 	f4 = f4*f7;
   32788 	f1 = f3+f1;
   32789 	f3 = f4+f0;
   32790 	f0 = f1*f2;
   32791 	f1 = f3*f2;
   32792 __label__ = 214;
   32793 }
   32794 else{
   32795 	r1 = 0;
   32796 __label__ = 219;
   32797 }
   32798 }
   32799 }
   32800 } while(0);
   32801 if (__label__ == 214){
   32802 	r1 = (r1 + 4)|0;
   32803 	r9 = sp + -32;
   32804 	r10 = r3;
   32805 _283: while(true){
   32806 	r11 = r1 >> 2;
   32807 	f2 = heapFloat[(r11+-1)];
   32808 	f3 = heapFloat[(r11)];
   32809 	f3 = f3-f1;
   32810 	f2 = f2-f0;
   32811 	heapFloat[(g0)] = f3;
   32812 	heapFloat[(g0+1)] = f2;
   32813 	r10 = (r10 + -1)|0;
   32814 	r1 = (r1 + 8)|0;
   32815 	r11 = (r9 + 4)|0;
   32816 	r9 = r9 >> 2;
   32817 	atan2f(i7);
   32818 	heapFloat[(r9)] = f_g0;
   32819 	r9 = r11;
   32820 if(!(r10 !=0)) //_LBB166_237
   32821 {
   32822 break _283;
   32823 }
   32824 }
   32825 	r1 = sp + -64;
   32826 	r9 = r3;
   32827 _286: while(true){
   32828 	r9 = (r9 + -1)|0;
   32829 	r10 = (r1 + 4)|0;
   32830 	r1 = r1 >> 2;
   32831 	heap32[(r1)] = 1;
   32832 	r1 = r10;
   32833 if(!(r9 !=0)) //_LBB166_239
   32834 {
   32835 break _286;
   32836 }
   32837 }
   32838 	r1 = 1;
   32839 }
   32840 	r9 = sp + -64;
   32841 	r10 = r7 << 2;
   32842 	r11 = (r9 + r10)|0;
   32843 	r11 = r11 >> 2;
   32844 	f0 =        6.2831854820251465;
   32845 	f1 = r8; //fitos r8, f1
   32846 	f1 = f0/f1;
   32847 	heap32[(r11)] = 0;
   32848 	heap32[(fp+-144)] = r7;
   32849 	f6 =                         0;
   32850 _290: while(true){
   32851 	if(r4 <r8) //_LBB166_242
   32852 {
   32853 	r11 = sp + -32;
   32854 	r13 = (r11 + r10)|0;
   32855 	r13 = r13 >> 2;
   32856 	f2 = r4; //fitos r4, f2
   32857 	f2 = f2*f1;
   32858 	f3 = heapFloat[(r13)];
   32859 	f2 = f2+f3;
   32860 	f3 =        3.1415927410125732;
   32861 	if(f2 >f3) //_LBB166_244
   32862 {
   32863 	f4 =       -6.2831854820251465;
   32864 	f2 = f2+f4;
   32865 }
   32866 	r13 = sp + -576;
   32867 	r14 = r4 << 2;
   32868 	r13 = (r13 + r14)|0;
   32869 	r13 = r13 >> 2;
   32870 	r14 = r1 & 1;
   32871 	heap32[(r13)] = r7;
   32872 	if(r14 ==0) //_LBB166_259
   32873 {
   32874 __label__ = 233;
   32875 break _290;
   32876 }
   32877 else{
   32878 	f4 =                1000000000;
   32879 	r14 = 0;
   32880 	r15 = r7;
   32881 _297: while(true){
   32882 	r16 = r14 << 2;
   32883 	r17 = (r9 + r16)|0;
   32884 	r17 = r17 >> 2;
   32885 	r17 = heap32[(r17)];
   32886 	if(r17 !=0) //_LBB166_249
   32887 {
   32888 	r16 = (r11 + r16)|0;
   32889 	r16 = r16 >> 2;
   32890 	f5 = heapFloat[(r16)];
   32891 	f5 = f5-f2;
   32892 	if(f5 <f6) //_LBB166_251
   32893 {
   32894 	f5 = -f5;
   32895 }
   32896 	if(f5 >f3) //_LBB166_254
   32897 {
   32898 	f5 = f0-f5;
   32899 }
   32900 if(!(f5 >=f4)) //_LBB166_248
   32901 {
   32902 	heap32[(r13)] = r14;
   32903 	r15 = r14;
   32904 	f4 = f5;
   32905 }
   32906 }
   32907 	r14 = (r14 + 1)|0;
   32908 if(!(r3 !=r14)) //_LBB166_247
   32909 {
   32910 break _297;
   32911 }
   32912 }
   32913 	if(r15 !=r7) //_LBB166_260
   32914 {
   32915 	r11 = r15 << 2;
   32916 	r11 = (r9 + r11)|0;
   32917 	r4 = (r4 + 1)|0;
   32918 	r11 = r11 >> 2;
   32919 	heap32[(r11)] = 0;
   32920 }
   32921 else{
   32922 __label__ = 233;
   32923 break _290;
   32924 }
   32925 }
   32926 }
   32927 else{
   32928 __label__ = 236;
   32929 break _290;
   32930 }
   32931 }
   32932 switch(__label__ ){//multiple entries
   32933 case 233:
   32934 	r0 = _2E_str65;
   32935 	r1 = _2E_str166;
   32936 	heap32[(g0)] = r0;
   32937 	heap32[(g0+1)] = r1;
   32938 	heap32[(g0+2)] = 248;
   32939 	_assert(i7);
   32940 break;
   32941 case 236:
   32942 	if(r8 >0) //_LBB166_267
   32943 {
   32944 	r1 = 0;
   32945 _315: while(true){
   32946 	r3 = sp + -576;
   32947 	r4 = r1 << 2;
   32948 	r3 = (r3 + r4)|0;
   32949 	r3 = r3 >> 2;
   32950 	r3 = heap32[(r3)];
   32951 	r4 = (r3 * 3)|0;
   32952 	r4 = r4 << 2;
   32953 	r4 = (r6 + r4)|0;
   32954 	r4 = r4 >> 2;
   32955 	f0 = heapFloat[(r4)];
   32956 	f1 = heapFloat[(r0)];
   32957 	f0 = f0+f1;
   32958 	heapFloat[(fp+-148)] = f0;
   32959 	r7 = sp + -592;
   32960 	f1 = heapFloat[(r4+1)];
   32961 	f2 = heapFloat[(r0+1)];
   32962 	f1 = f1+f2;
   32963 	r8 = r7 >> 2;
   32964 	heapFloat[(r8+1)] = f1;
   32965 	f2 = heapFloat[(r4+2)];
   32966 	f3 = heapFloat[(r0+2)];
   32967 	f2 = f2+f3;
   32968 	r4 = sp + -496;
   32969 	r3 = r3 << 2;
   32970 	r3 = (r4 + r3)|0;
   32971 	r4 = r5 >> 2;
   32972 	heapFloat[(r8+2)] = f2;
   32973 	r4 = heap32[(r4)];
   32974 	r3 = r3 >> 2;
   32975 	r8 = sp + -704;
   32976 	f3 = heapFloat[(r3)];
   32977 	r3 = r4 >> 2;
   32978 	r4 = r8 >> 2;
   32979 	r3 = heap32[(r3+4)];
   32980 	f4 = -f3;
   32981 	f5 = heapFloat[(r4+2)];
   32982 	if(r12 >3) //_LBB166_265
   32983 {
   32984 	f6 = heapFloat[(fp+-176)];
   32985 	f7 = heapFloat[(r4+1)];
   32986 	f8 = f6*f3;
   32987 	r4 = sp + -160;
   32988 	f9 = f7*f3;
   32989 	f0 = f0-f8;
   32990 	r7 = r4 >> 2;
   32991 	f3 = f5*f3;
   32992 	f1 = f1-f9;
   32993 	heapFloat[(fp+-40)] = f0;
   32994 	f0 = f2-f3;
   32995 	heapFloat[(r7+1)] = f1;
   32996 	heapFloat[(r7+2)] = f0;
   32997 	r8 = sp + -144;
   32998 	f0 = -f6;
   32999 	heap32[(r7+3)] = 0;
   33000 	r7 = r8 >> 2;
   33001 	f1 = -f7;
   33002 	heapFloat[(fp+-36)] = f0;
   33003 	f0 = -f5;
   33004 	heapFloat[(r7+1)] = f1;
   33005 	heapFloat[(r7+2)] = f0;
   33006 	heap32[(r7+3)] = 0;
   33007 	heap32[(g0)] = r5;
   33008 	heap32[(g0+1)] = r8;
   33009 	heap32[(g0+2)] = r4;
   33010 	heapFloat[(g0+3)] = f4;
   33011 	__FUNCTION_TABLE__[(r3)>>2](i7);
   33012 }
   33013 else{
   33014 	f0 = heapFloat[(r4+1)];
   33015 	f1 = heapFloat[(fp+-176)];
   33016 	r4 = sp + -176;
   33017 	f1 = -f1;
   33018 	r8 = r4 >> 2;
   33019 	f0 = -f0;
   33020 	heapFloat[(fp+-44)] = f1;
   33021 	f1 = -f5;
   33022 	heapFloat[(r8+1)] = f0;
   33023 	heapFloat[(r8+2)] = f1;
   33024 	heap32[(r8+3)] = 0;
   33025 	heap32[(g0)] = r5;
   33026 	heap32[(g0+1)] = r4;
   33027 	heap32[(g0+2)] = r7;
   33028 	heapFloat[(g0+3)] = f4;
   33029 	__FUNCTION_TABLE__[(r3)>>2](i7);
   33030 }
   33031 	r1 = (r1 + 1)|0;
   33032 	if(r1 >=r2) //_LBB166_268
   33033 {
   33034 break _41;
   33035 }
   33036 else{
   33037 continue _315;
   33038 }
   33039 }
   33040 }
   33041 else{
   33042 break _41;
   33043 }
   33044 break;
   33045 }
   33046 }
   33047 else{
   33048 	if(r12 <4) //_LBB166_212
   33049 {
   33050 	r1 = (r6 + 8)|0;
   33051 	r2 = sp + -496;
   33052 _324: while(true){
   33053 	r4 = r1 >> 2;
   33054 	f12 = heapFloat[(r4+-2)];
   33055 	f20 = heapFloat[(r0)];
   33056 	f12 = f12+f20;
   33057 	heapFloat[(fp+-132)] = f12;
   33058 	r6 = sp + -528;
   33059 	f12 = heapFloat[(r4+-1)];
   33060 	f20 = heapFloat[(r0+1)];
   33061 	r7 = r6 >> 2;
   33062 	f12 = f12+f20;
   33063 	heapFloat[(r7+1)] = f12;
   33064 	f12 = heapFloat[(r4)];
   33065 	f20 = heapFloat[(r0+2)];
   33066 	f12 = f12+f20;
   33067 	heapFloat[(r7+2)] = f12;
   33068 	r4 = r5 >> 2;
   33069 	r4 = heap32[(r4)];
   33070 	r7 = sp + -704;
   33071 	r7 = r7 >> 2;
   33072 	r4 = r4 >> 2;
   33073 	r8 = r2 >> 2;
   33074 	f12 = heapFloat[(r8)];
   33075 	f20 = heapFloat[(r7+2)];
   33076 	f27 = heapFloat[(r7+1)];
   33077 	f0 = heapFloat[(fp+-176)];
   33078 	r4 = heap32[(r4+4)];
   33079 	r7 = sp + -208;
   33080 	f0 = -f0;
   33081 	r8 = r7 >> 2;
   33082 	f27 = -f27;
   33083 	heapFloat[(fp+-52)] = f0;
   33084 	f20 = -f20;
   33085 	heapFloat[(r8+1)] = f27;
   33086 	heapFloat[(r8+2)] = f20;
   33087 	heap32[(r8+3)] = 0;
   33088 	f12 = -f12;
   33089 	heap32[(g0)] = r5;
   33090 	heap32[(g0+1)] = r7;
   33091 	heap32[(g0+2)] = r6;
   33092 	heapFloat[(g0+3)] = f12;
   33093 	r3 = (r3 + -1)|0;
   33094 	r2 = (r2 + 4)|0;
   33095 	r1 = (r1 + 12)|0;
   33096 	__FUNCTION_TABLE__[(r4)>>2](i7);
   33097 	if(r3 ==0) //_LBB166_268
   33098 {
   33099 break _41;
   33100 }
   33101 else{
   33102 continue _324;
   33103 }
   33104 }
   33105 }
   33106 else{
   33107 	r1 = (r6 + 8)|0;
   33108 _327: while(true){
   33109 	r2 = r7 >> 2;
   33110 	r4 = r1 >> 2;
   33111 	f12 = heapFloat[(r2)];
   33112 	f20 = heapFloat[(fp+-176)];
   33113 	f27 = heapFloat[(r4+-2)];
   33114 	f0 = heapFloat[(r0)];
   33115 	f27 = f27+f0;
   33116 	f0 = f20*f12;
   33117 	r2 = sp + -704;
   33118 	f27 = f27-f0;
   33119 	heapFloat[(fp+-136)] = f27;
   33120 	r2 = r2 >> 2;
   33121 	f27 = heapFloat[(r2+1)];
   33122 	f0 = heapFloat[(r4+-1)];
   33123 	f1 = heapFloat[(r0+1)];
   33124 	r6 = sp + -544;
   33125 	f0 = f0+f1;
   33126 	f1 = f27*f12;
   33127 	r8 = r6 >> 2;
   33128 	f0 = f0-f1;
   33129 	heapFloat[(r8+1)] = f0;
   33130 	f0 = heapFloat[(r2+2)];
   33131 	f1 = heapFloat[(r4)];
   33132 	f2 = heapFloat[(r0+2)];
   33133 	f1 = f1+f2;
   33134 	f2 = f0*f12;
   33135 	f1 = f1-f2;
   33136 	r2 = r5 >> 2;
   33137 	heapFloat[(r8+2)] = f1;
   33138 	r2 = heap32[(r2)];
   33139 	r2 = r2 >> 2;
   33140 	r2 = heap32[(r2+4)];
   33141 	r4 = sp + -192;
   33142 	f20 = -f20;
   33143 	r8 = r4 >> 2;
   33144 	f27 = -f27;
   33145 	heapFloat[(fp+-48)] = f20;
   33146 	f20 = -f0;
   33147 	heapFloat[(r8+1)] = f27;
   33148 	heapFloat[(r8+2)] = f20;
   33149 	heap32[(r8+3)] = 0;
   33150 	f12 = -f12;
   33151 	heap32[(g0)] = r5;
   33152 	heap32[(g0+1)] = r4;
   33153 	heap32[(g0+2)] = r6;
   33154 	heapFloat[(g0+3)] = f12;
   33155 	r3 = (r3 + -1)|0;
   33156 	r7 = (r7 + 4)|0;
   33157 	r1 = (r1 + 12)|0;
   33158 	__FUNCTION_TABLE__[(r2)>>2](i7);
   33159 	if(r3 ==0) //_LBB166_268
   33160 {
   33161 break _41;
   33162 }
   33163 else{
   33164 continue _327;
   33165 }
   33166 }
   33167 }
   33168 }
   33169 }
   33170 }
   33171 }
   33172 else{
   33173 	r0 = sp + -688;
   33174 	r2 = r0 >> 2;
   33175 	f20 = heapFloat[(fp+-172)];
   33176 	f27 = heapFloat[(r2+4)];
   33177 	f2 = heapFloat[(r2+5)];
   33178 	f3 = heapFloat[(r2+1)];
   33179 	f4 = f0*f20;
   33180 	f5 = f1*f27;
   33181 	f6 = heapFloat[(r2+8)];
   33182 	f7 = heapFloat[(r2+9)];
   33183 	f8 = heapFloat[(r2+6)];
   33184 	f9 = heapFloat[(r2+2)];
   33185 	f4 = f4+f5;
   33186 	f5 = f19*f6;
   33187 	f10 = f0*f3;
   33188 	f11 = f1*f2;
   33189 	f12 = heapFloat[(r2+10)];
   33190 	f4 = f4+f5;
   33191 	f5 = f10+f11;
   33192 	f10 = f19*f7;
   33193 	f11 = f0*f9;
   33194 	f13 = f1*f8;
   33195 	f14 =                         0;
   33196 	f15 =                        -1;
   33197 	f16 =                         1;
   33198 	f5 = f5+f10;
   33199 	f4 = f4 > f14 ? f15 : f16;
   33200 	f10 = f11+f13;
   33201 	f11 = f19*f12;
   33202 	f13 = heapFloat[(fp+-181)];
   33203 	f4 = f13*f4;
   33204 	f10 = f10+f11;
   33205 	f5 = f5 > f14 ? f15 : f16;
   33206 	f11 = heapFloat[(fp+-182)];
   33207 	f5 = f11*f5;
   33208 	r2 = sp + -640;
   33209 	f20 = f4*f20;
   33210 	f11 = heapFloat[(r1+28)];
   33211 	f10 = f10 > f14 ? f15 : f16;
   33212 	r3 = r2 >> 2;
   33213 	f13 = heapFloat[(fp+-180)];
   33214 	f10 = f13*f10;
   33215 	f27 = f4*f27;
   33216 	f13 = heapFloat[(r1+29)];
   33217 	f20 = f11+f20;
   33218 	f3 = f5*f3;
   33219 	r4 = (r12 + -7)|0;
   33220 	f11 = heapFloat[(r3+4)];
   33221 	f17 = heapFloat[(fp+-160)];
   33222 	f18 = heapFloat[(r3+8)];
   33223 	f21 = heapFloat[(r3+5)];
   33224 	f22 = heapFloat[(r3+1)];
   33225 	f23 = heapFloat[(r3+9)];
   33226 	f24 = heapFloat[(r3+6)];
   33227 	f25 = heapFloat[(r3+2)];
   33228 	f26 = heapFloat[(r3+10)];
   33229 	f4 = f4*f6;
   33230 	f6 = heapFloat[(r1+30)];
   33231 	f27 = f13+f27;
   33232 	f2 = f5*f2;
   33233 	f20 = f20+f3;
   33234 	f3 = f10*f9;
   33235 	f9 = heapFloat[(r1+12)];
   33236 	heapFloat[(fp+-182)] = f9;
   33237 	f9 = heapFloat[(r1+13)];
   33238 	heapFloat[(fp+-181)] = f9;
   33239 	f9 = heapFloat[(r1+14)];
   33240 	heapFloat[(fp+-180)] = f9;
   33241 	r3 = (r4 / 3)|0;
   33242 	r4 = (r4 % 3)|0;
   33243 	r10 = sp + -512;
   33244 	f20 = f20+f3;
   33245 	f3 = f6+f4;
   33246 	f4 = f5*f7;
   33247 	f27 = f27+f2;
   33248 	f2 = f10*f8;
   33249 	r3 = r3 << 2;
   33250 	r4 = r4 << 2;
   33251 	f27 = f27+f2;
   33252 	r12 = r10 >> 2;
   33253 	heapFloat[(fp+-128)] = f20;
   33254 	f2 = f3+f4;
   33255 	f3 = f10*f12;
   33256 	r2 = (r2 + r3)|0;
   33257 	r0 = (r0 + r4)|0;
   33258 	f2 = f2+f3;
   33259 	heapFloat[(r12+1)] = f27;
   33260 	r2 = r2 >> 2;
   33261 	heapFloat[(r12+2)] = f2;
   33262 	r0 = r0 >> 2;
   33263 	f3 = heapFloat[(r2)];
   33264 	f4 = heapFloat[(r0)];
   33265 	f5 = heapFloat[(r2+4)];
   33266 	f6 = heapFloat[(r0+4)];
   33267 	f7 = heapFloat[(r2+8)];
   33268 	f8 = heapFloat[(r0+8)];
   33269 	f9 = f3*f4;
   33270 	f10 = f5*f6;
   33271 	f9 = f9+f10;
   33272 	f10 = f7*f8;
   33273 	f9 = f9+f10;
   33274 	f10 = f9*f9;
   33275 	f10 = f16-f10;
   33276 	f12 =   9.9999997473787516e-005;
   33277 	if(f10 >f12) //_LBB166_151
   33278 {
   33279 	f12 = f0*f17;
   33280 	f13 = f1*f11;
   33281 	f12 = f12+f13;
   33282 	f13 = f19*f18;
   33283 	f28 = f0*f22;
   33284 	f29 = f1*f21;
   33285 	f12 = f12+f13;
   33286 	f13 = f28+f29;
   33287 	f28 = f19*f23;
   33288 	f29 = f0*f25;
   33289 	f30 = f1*f24;
   33290 	f13 = f13+f28;
   33291 	f12 = f12 > f14 ? f16 : f15;
   33292 	f28 = f29+f30;
   33293 	f29 = f19*f26;
   33294 	f30 = heapFloat[(fp+-179)];
   33295 	f12 = f30*f12;
   33296 	f28 = f28+f29;
   33297 	f13 = f13 > f14 ? f16 : f15;
   33298 	f29 = heapFloat[(fp+-178)];
   33299 	f13 = f29*f13;
   33300 	f17 = f12*f17;
   33301 	f11 = f12*f11;
   33302 	f12 = f12*f18;
   33303 	f14 = f28 > f14 ? f16 : f15;
   33304 	f15 = heapFloat[(fp+-177)];
   33305 	f14 = f15*f14;
   33306 	f15 = heapFloat[(fp+-182)];
   33307 	f15 = f15+f17;
   33308 	f17 = f13*f22;
   33309 	f18 = heapFloat[(fp+-181)];
   33310 	f11 = f18+f11;
   33311 	f18 = f13*f21;
   33312 	f21 = heapFloat[(fp+-180)];
   33313 	f12 = f21+f12;
   33314 	f13 = f13*f23;
   33315 	f15 = f15+f17;
   33316 	f17 = f14*f25;
   33317 	f11 = f11+f18;
   33318 	f18 = f14*f24;
   33319 	f12 = f12+f13;
   33320 	f14 = f14*f26;
   33321 	f13 = f15+f17;
   33322 	f11 = f11+f18;
   33323 	f14 = f12+f14;
   33324 	f12 = f20-f13;
   33325 	f11 = f27-f11;
   33326 	f14 = f2-f14;
   33327 	f3 = f3*f12;
   33328 	f5 = f5*f11;
   33329 	f3 = f3+f5;
   33330 	f5 = f7*f14;
   33331 	f7 = f4*f12;
   33332 	f11 = f6*f11;
   33333 	f3 = f3+f5;
   33334 	f5 = f7+f11;
   33335 	f14 = f8*f14;
   33336 	f3 = f9*f3;
   33337 	f14 = f5+f14;
   33338 	f14 = f3-f14;
   33339 	f3 = f16/f10;
   33340 	f14 = f14*f3;
   33341 }
   33342 	f3 = f4*f14;
   33343 	f20 = f20+f3;
   33344 	f3 = f6*f14;
   33345 	f4 = f8*f14;
   33346 	f27 = f27+f3;
   33347 	heapFloat[(fp+-128)] = f20;
   33348 	f20 = f2+f4;
   33349 	heapFloat[(r12+1)] = f27;
   33350 	r0 = r5 >> 2;
   33351 	heapFloat[(r12+2)] = f20;
   33352 	r0 = heap32[(r0)];
   33353 	r0 = r0 >> 2;
   33354 	r0 = heap32[(r0+4)];
   33355 	r2 = sp + -224;
   33356 	f0 = -f0;
   33357 	r3 = r2 >> 2;
   33358 	f1 = -f1;
   33359 	heapFloat[(fp+-56)] = f0;
   33360 	f0 = -f19;
   33361 	heapFloat[(r3+1)] = f1;
   33362 	heapFloat[(r3+2)] = f0;
   33363 	heap32[(r3+3)] = 0;
   33364 	heap32[(g0)] = r5;
   33365 	heap32[(g0+1)] = r2;
   33366 	heap32[(g0+2)] = r10;
   33367 	f0 = heapFloat[(fp+-183)];
   33368 	heapFloat[(g0+3)] = f0;
   33369 	__FUNCTION_TABLE__[(r0)>>2](i7);
   33370 	return;
   33371 }
   33372 }
   33373 }
   33374 }
   33375 }
   33376 }
   33377 }
   33378 }
   33379 }
   33380 }
   33381 }
   33382 }
   33383 }
   33384 }
   33385 }
   33386 }
   33387 } while(0);
   33388 	return;
   33389 }
   33390 
   33391 function _ZN21btCollisionDispatcher13findAlgorithmEP17btCollisionObjectS1_P20btPersistentManifold(sp)
   33392 {
   33393 	var i7;
   33394 	var fp = sp>>2;
   33395 	var r0;
   33396 	var r1;
   33397 	var r2;
   33398 	var r3;
   33399 	var r4;
   33400 	var r5;
   33401 	var r6;
   33402 var __label__ = 0;
   33403 	i7 = sp + -24;var g0 = i7>>2; // save stack
   33404 	r0 = sp + -8;
   33405 	r1 = heap32[(fp)];
   33406 	r2 = heap32[(fp+1)];
   33407 	r3 = r0 >> 2;
   33408 	r4 = heap32[(fp+3)];
   33409 	heap32[(fp+-2)] = r1;
   33410 	r5 = heap32[(fp+2)];
   33411 	r6 = r2 >> 2;
   33412 	heap32[(r3+1)] = r4;
   33413 	r3 = heap32[(r6+48)];
   33414 	r4 = r5 >> 2;
   33415 	r3 = r3 >> 2;
   33416 	r4 = heap32[(r4+48)];
   33417 	r3 = heap32[(r3+1)];
   33418 	r4 = r4 >> 2;
   33419 	r4 = heap32[(r4+1)];
   33420 	r3 = (r3 * 144)|0;
   33421 	r1 = (r1 + r3)|0;
   33422 	r3 = r4 << 2;
   33423 	r1 = (r1 + r3)|0;
   33424 	r1 = r1 >> 2;
   33425 	r1 = heap32[(r1+50)];
   33426 	r3 = r1 >> 2;
   33427 	r3 = heap32[(r3)];
   33428 	r3 = r3 >> 2;
   33429 	r3 = heap32[(r3+2)];
   33430 	heap32[(g0)] = r1;
   33431 	heap32[(g0+1)] = r0;
   33432 	heap32[(g0+2)] = r2;
   33433 	heap32[(g0+3)] = r5;
   33434 	__FUNCTION_TABLE__[(r3)>>2](i7);
   33435 	return;
   33436 }
   33437 
   33438 function _ZN21btCollisionDispatcher13needsResponseEP17btCollisionObjectS1_(sp)
   33439 {
   33440 	var i7;
   33441 	var fp = sp>>2;
   33442 	var r0;
   33443 	var r1;
   33444 	var r2;
   33445 var __label__ = 0;
   33446 	i7 = sp + 0;var g0 = i7>>2; // save stack
   33447 	r0 = heap32[(fp+1)];
   33448 	r0 = r0 >> 2;
   33449 	r0 = heap32[(r0+51)];
   33450 	r1 = r0 & 4;
   33451 if(!(r1 !=0)) //_LBB168_4
   33452 {
   33453 	r1 = heap32[(fp+2)];
   33454 	r1 = r1 >> 2;
   33455 	r1 = heap32[(r1+51)];
   33456 	r2 = r1 & 4;
   33457 if(!(r2 !=0)) //_LBB168_4
   33458 {
   33459 	r0 = r0 & 3;
   33460 	if(r0 ==0) //_LBB168_5
   33461 {
   33462 	r0 = 1;
   33463 	r_g0 = r0;
   33464 	return;
   33465 }
   33466 else{
   33467 	r0 = r1 & 3;
   33468 	r1 = 0;
   33469 	r0 = r0 == r1;
   33470 	r0 = r0 & 1;
   33471 	r_g0 = r0;
   33472 	return;
   33473 }
   33474 }
   33475 }
   33476 	r0 = 0;
   33477 	r_g0 = r0;
   33478 	return;
   33479 }
   33480 
   33481 function _ZN23btCollisionPairCallbackD1Ev(sp)
   33482 {
   33483 	var i7;
   33484 	var fp = sp>>2;
   33485 	var r0;
   33486 	var r1;
   33487 var __label__ = 0;
   33488 	i7 = sp + 0;var g0 = i7>>2; // save stack
   33489 	r0 = heap32[(fp)];
   33490 	r1 = _ZTV23btCollisionPairCallback;
   33491 	r0 = r0 >> 2;
   33492 	r1 = (r1 + 8)|0;
   33493 	heap32[(r0)] = r1;
   33494 	return;
   33495 }
   33496 
   33497 function _ZN23btCollisionPairCallbackD0Ev(sp)
   33498 {
   33499 	var i7;
   33500 	var fp = sp>>2;
   33501 	var r0;
   33502 	var r1;
   33503 	var r2;
   33504 var __label__ = 0;
   33505 	i7 = sp + -8;var g0 = i7>>2; // save stack
   33506 	r0 = heap32[(fp)];
   33507 	r1 = _ZTV23btCollisionPairCallback;
   33508 	r2 = r0 >> 2;
   33509 	r1 = (r1 + 8)|0;
   33510 	heap32[(r2)] = r1;
   33511 	heap32[(g0)] = r0;
   33512 	_ZdlPv(i7);
   33513 	return;
   33514 }
   33515 
   33516 function _ZN23btCollisionPairCallback14processOverlapER16btBroadphasePair(sp)
   33517 {
   33518 	var i7;
   33519 	var fp = sp>>2;
   33520 	var r0;
   33521 	var r1;
   33522 	var r2;
   33523 	var r3;
   33524 var __label__ = 0;
   33525 	i7 = sp + -16;var g0 = i7>>2; // save stack
   33526 	r0 = heap32[(fp)];
   33527 	r0 = r0 >> 2;
   33528 	r1 = heap32[(r0+2)];
   33529 	r2 = r1 >> 2;
   33530 	r2 = heap32[(r2+47)];
   33531 	r0 = heap32[(r0+1)];
   33532 	r3 = heap32[(fp+1)];
   33533 	heap32[(g0)] = r3;
   33534 	heap32[(g0+1)] = r1;
   33535 	heap32[(g0+2)] = r0;
   33536 	__FUNCTION_TABLE__[(r2)>>2](i7);
   33537 	r0 = 0;
   33538 	r_g0 = r0;
   33539 	return;
   33540 }
   33541 
   33542 function _ZN21btCollisionDispatcher25dispatchAllCollisionPairsEP22btOverlappingPairCacheRK16btDispatcherInfoP12btDispatcher(sp)
   33543 {
   33544 	var i7;
   33545 	var fp = sp>>2;
   33546 	var r0;
   33547 	var r1;
   33548 	var r2;
   33549 	var r3;
   33550 	var r4;
   33551 var __label__ = 0;
   33552 	i7 = sp + -32;var g0 = i7>>2; // save stack
   33553 	r0 = _ZTV23btCollisionPairCallback;
   33554 	r1 = sp + -16;
   33555 	r0 = (r0 + 8)|0;
   33556 	r2 = r1 >> 2;
   33557 	r3 = heap32[(fp+2)];
   33558 	heap32[(fp+-4)] = r0;
   33559 	r0 = heap32[(fp+1)];
   33560 	r4 = heap32[(fp)];
   33561 	heap32[(r2+1)] = r3;
   33562 	r3 = r0 >> 2;
   33563 	heap32[(r2+2)] = r4;
   33564 	r2 = heap32[(r3)];
   33565 	r2 = r2 >> 2;
   33566 	r2 = heap32[(r2+12)];
   33567 	r3 = heap32[(fp+3)];
   33568 	heap32[(g0)] = r0;
   33569 	heap32[(g0+1)] = r1;
   33570 	heap32[(g0+2)] = r3;
   33571 	__FUNCTION_TABLE__[(r2)>>2](i7);
   33572 	return;
   33573 }
   33574 
   33575 function _ZNK21btCollisionDispatcher15getNumManifoldsEv(sp)
   33576 {
   33577 	var i7;
   33578 	var fp = sp>>2;
   33579 	var r0;
   33580 var __label__ = 0;
   33581 	i7 = sp + 0;var g0 = i7>>2; // save stack
   33582 	r0 = heap32[(fp)];
   33583 	r0 = r0 >> 2;
   33584 	r0 = heap32[(r0+3)];
   33585 	r_g0 = r0;
   33586 	return;
   33587 }
   33588 
   33589 function _ZN21btCollisionDispatcher26getInternalManifoldPointerEv(sp)
   33590 {
   33591 	var i7;
   33592 	var fp = sp>>2;
   33593 	var r0;
   33594 var __label__ = 0;
   33595 	i7 = sp + 0;var g0 = i7>>2; // save stack
   33596 	r0 = heap32[(fp)];
   33597 	r0 = r0 >> 2;
   33598 	r0 = heap32[(r0+5)];
   33599 	r_g0 = r0;
   33600 	return;
   33601 }
   33602 
   33603 function _ZN21btCollisionDispatcher26getManifoldByIndexInternalEi(sp)
   33604 {
   33605 	var i7;
   33606 	var fp = sp>>2;
   33607 	var r0;
   33608 	var r1;
   33609 var __label__ = 0;
   33610 	i7 = sp + 0;var g0 = i7>>2; // save stack
   33611 	r0 = heap32[(fp)];
   33612 	r0 = r0 >> 2;
   33613 	r1 = heap32[(fp+1)];
   33614 	r0 = heap32[(r0+5)];
   33615 	r1 = r1 << 2;
   33616 	r0 = (r0 + r1)|0;
   33617 	r0 = r0 >> 2;
   33618 	r0 = heap32[(r0)];
   33619 	r_g0 = r0;
   33620 	return;
   33621 }
   33622 
   33623 function _ZN21btCollisionDispatcher22freeCollisionAlgorithmEPv(sp)
   33624 {
   33625 	var i7;
   33626 	var fp = sp>>2;
   33627 	var r0;
   33628 	var r1;
   33629 	var r2;
   33630 	var r3;
   33631 	var r4;
   33632 var __label__ = 0;
   33633 	i7 = sp + -8;var g0 = i7>>2; // save stack
   33634 	r0 = heap32[(fp+1)];
   33635 if(!(r0 ==0)) //_LBB176_5
   33636 {
   33637 	r1 = heap32[(fp)];
   33638 	r1 = r1 >> 2;
   33639 	r1 = heap32[(r1+48)];
   33640 	r1 = r1 >> 2;
   33641 	r2 = heap32[(r1+4)];
   33642 if(!(uint(r2) >uint(r0))) //_LBB176_4
   33643 {
   33644 	r3 = heap32[(r1)];
   33645 	r4 = heap32[(r1+1)];
   33646 	r3 = (r3 * r4)|0;
   33647 	r2 = (r2 + r3)|0;
   33648 if(!(uint(r2) <=uint(r0))) //_LBB176_4
   33649 {
   33650 	r2 = r0 >> 2;
   33651 	r3 = heap32[(r1+3)];
   33652 	heap32[(r2)] = r3;
   33653 	heap32[(r1+3)] = r0;
   33654 	r0 = heap32[(r1+2)];
   33655 	r0 = (r0 + 1)|0;
   33656 	heap32[(r1+2)] = r0;
   33657 	return;
   33658 }
   33659 }
   33660 	r1 = gNumAlignedFree;
   33661 	r1 = r1 >> 2;
   33662 	r2 = heap32[(r1)];
   33663 	r2 = (r2 + 1)|0;
   33664 	r0 = r0 >> 2;
   33665 	heap32[(r1)] = r2;
   33666 	r0 = heap32[(r0+-1)];
   33667 	heap32[(g0)] = r0;
   33668 	free(i7);
   33669 }
   33670 	return;
   33671 }
   33672 
   33673 function _ZN21btCollisionDispatcher15releaseManifoldEP20btPersistentManifold(sp)
   33674 {
   33675 	var i7;
   33676 	var fp = sp>>2;
   33677 	var r0;
   33678 	var r1;
   33679 	var r2;
   33680 	var r3;
   33681 	var r4;
   33682 	var r5;
   33683 	var r6;
   33684 	var r7;
   33685 	var r8;
   33686 var __label__ = 0;
   33687 	i7 = sp + -16;var g0 = i7>>2; // save stack
   33688 	r0 = gNumManifold;
   33689 	r0 = r0 >> 2;
   33690 	r1 = heap32[(r0)];
   33691 	r2 = heap32[(fp)];
   33692 	r1 = (r1 + -1)|0;
   33693 	r3 = r2 >> 2;
   33694 	heap32[(r0)] = r1;
   33695 	r0 = heap32[(r3)];
   33696 	r0 = r0 >> 2;
   33697 	r0 = heap32[(r0+5)];
   33698 	r1 = heap32[(fp+1)];
   33699 	heap32[(g0)] = r2;
   33700 	heap32[(g0+1)] = r1;
   33701 	__FUNCTION_TABLE__[(r0)>>2](i7);
   33702 	r0 = r1 >> 2;
   33703 	r2 = heap32[(r3+3)];
   33704 	r4 = heap32[(r0+284)];
   33705 	if(r2 >r4) //_LBB177_2
   33706 {
   33707 	r2 = (r2 + -1)|0;
   33708 	r5 = r4 << 2;
   33709 	r6 = heap32[(r3+5)];
   33710 	r2 = r2 << 2;
   33711 	r7 = (r6 + r5)|0;
   33712 	r6 = (r6 + r2)|0;
   33713 	r7 = r7 >> 2;
   33714 	r6 = r6 >> 2;
   33715 	r8 = heap32[(r7)];
   33716 	r6 = heap32[(r6)];
   33717 	heap32[(r7)] = r6;
   33718 	r6 = heap32[(r3+5)];
   33719 	r2 = (r6 + r2)|0;
   33720 	r2 = r2 >> 2;
   33721 	heap32[(r2)] = r8;
   33722 	r2 = heap32[(r3+5)];
   33723 	r2 = (r2 + r5)|0;
   33724 	r2 = r2 >> 2;
   33725 	r2 = heap32[(r2)];
   33726 	r2 = r2 >> 2;
   33727 	heap32[(r2+284)] = r4;
   33728 	r2 = heap32[(r3+3)];
   33729 	r2 = (r2 + -1)|0;
   33730 	heap32[(r3+3)] = r2;
   33731 if(!(r1 ==0)) //_LBB177_7
   33732 {
   33733 	r2 = heap32[(r3+49)];
   33734 	r2 = r2 >> 2;
   33735 	r3 = heap32[(r2+4)];
   33736 if(!(uint(r3) >uint(r1))) //_LBB177_6
   33737 {
   33738 	r4 = heap32[(r2)];
   33739 	r5 = heap32[(r2+1)];
   33740 	r4 = (r4 * r5)|0;
   33741 	r3 = (r3 + r4)|0;
   33742 if(!(uint(r3) <=uint(r1))) //_LBB177_6
   33743 {
   33744 	r3 = heap32[(r2+3)];
   33745 	heap32[(r0)] = r3;
   33746 	heap32[(r2+3)] = r1;
   33747 	r0 = heap32[(r2+2)];
   33748 	r0 = (r0 + 1)|0;
   33749 	heap32[(r2+2)] = r0;
   33750 	return;
   33751 }
   33752 }
   33753 	r1 = gNumAlignedFree;
   33754 	r1 = r1 >> 2;
   33755 	r2 = heap32[(r1)];
   33756 	r2 = (r2 + 1)|0;
   33757 	heap32[(r1)] = r2;
   33758 	r0 = heap32[(r0+-1)];
   33759 	heap32[(g0)] = r0;
   33760 	free(i7);
   33761 }
   33762 	return;
   33763 }
   33764 else{
   33765 	r0 = _2E_str472;
   33766 	r1 = _2E_str573;
   33767 	heap32[(g0)] = r0;
   33768 	heap32[(g0+1)] = r1;
   33769 	heap32[(g0+2)] = 120;
   33770 	_assert(i7);
   33771 }
   33772 }
   33773 
   33774 function _ZN21btCollisionDispatcherD1Ev(sp)
   33775 {
   33776 	var i7;
   33777 	var fp = sp>>2;
   33778 	var r0;
   33779 	var r1;
   33780 	var r2;
   33781 	var r3;
   33782 	var r4;
   33783 var __label__ = 0;
   33784 	i7 = sp + -8;var g0 = i7>>2; // save stack
   33785 	r0 = heap32[(fp)];
   33786 	r1 = _ZTV21btCollisionDispatcher;
   33787 	r2 = _ZTV16btManifoldResult;
   33788 	r3 = r0 >> 2;
   33789 	r1 = (r1 + 8)|0;
   33790 	r2 = (r2 + 8)|0;
   33791 	heap32[(r3)] = r1;
   33792 	heap32[(r3+7)] = r2;
   33793 	r1 = heap32[(r3+5)];
   33794 if(!(r1 ==0)) //_LBB178_4
   33795 {
   33796 	r2 = heapU8[r0+24];
   33797 if(!(r2 ==0)) //_LBB178_3
   33798 {
   33799 	r2 = gNumAlignedFree;
   33800 	r2 = r2 >> 2;
   33801 	r4 = heap32[(r2)];
   33802 	r4 = (r4 + 1)|0;
   33803 	r1 = r1 >> 2;
   33804 	heap32[(r2)] = r4;
   33805 	r1 = heap32[(r1+-1)];
   33806 	heap32[(g0)] = r1;
   33807 	free(i7);
   33808 }
   33809 	heap32[(r3+5)] = 0;
   33810 }
   33811 	r1 = 1;
   33812 	heap8[r0+24] = r1;
   33813 	heap32[(r3+5)] = 0;
   33814 	r0 = _ZTV12btDispatcher;
   33815 	heap32[(r3+3)] = 0;
   33816 	r0 = (r0 + 8)|0;
   33817 	heap32[(r3+4)] = 0;
   33818 	heap32[(r3)] = r0;
   33819 	return;
   33820 }
   33821 
   33822 function _ZN21btCollisionDispatcherD0Ev(sp)
   33823 {
   33824 	var i7;
   33825 	var fp = sp>>2;
   33826 	var r0;
   33827 	var r1;
   33828 	var r2;
   33829 	var r3;
   33830 	var r4;
   33831 var __label__ = 0;
   33832 	i7 = sp + -8;var g0 = i7>>2; // save stack
   33833 	r0 = heap32[(fp)];
   33834 	r1 = _ZTV21btCollisionDispatcher;
   33835 	r2 = _ZTV16btManifoldResult;
   33836 	r3 = r0 >> 2;
   33837 	r1 = (r1 + 8)|0;
   33838 	r2 = (r2 + 8)|0;
   33839 	heap32[(r3)] = r1;
   33840 	heap32[(r3+7)] = r2;
   33841 	r1 = heap32[(r3+5)];
   33842 if(!(r1 ==0)) //_LBB179_4
   33843 {
   33844 	r2 = heapU8[r0+24];
   33845 if(!(r2 ==0)) //_LBB179_3
   33846 {
   33847 	r2 = gNumAlignedFree;
   33848 	r2 = r2 >> 2;
   33849 	r4 = heap32[(r2)];
   33850 	r4 = (r4 + 1)|0;
   33851 	r1 = r1 >> 2;
   33852 	heap32[(r2)] = r4;
   33853 	r1 = heap32[(r1+-1)];
   33854 	heap32[(g0)] = r1;
   33855 	free(i7);
   33856 }
   33857 	heap32[(r3+5)] = 0;
   33858 }
   33859 	r1 = 1;
   33860 	heap8[r0+24] = r1;
   33861 	heap32[(r3+5)] = 0;
   33862 	r1 = _ZTV12btDispatcher;
   33863 	heap32[(r3+3)] = 0;
   33864 	r1 = (r1 + 8)|0;
   33865 	heap32[(r3+4)] = 0;
   33866 	heap32[(r3)] = r1;
   33867 	heap32[(g0)] = r0;
   33868 	_ZdlPv(i7);
   33869 	return;
   33870 }
   33871 
   33872 function _ZN21btCollisionDispatcher14getNewManifoldEPvS0_(sp)
   33873 {
   33874 	var i7;
   33875 	var fp = sp>>2;
   33876 	var r0;
   33877 	var r1;
   33878 	var r2;
   33879 	var r3;
   33880 	var r4;
   33881 	var r5;
   33882 	var r6;
   33883 	var r7;
   33884 	var r8;
   33885 	var r9;
   33886 	var r10;
   33887 	var r11;
   33888 	var f0;
   33889 	var f1;
   33890 	var f2;
   33891 var __label__ = 0;
   33892 	i7 = sp + -24;var g0 = i7>>2; // save stack
   33893 	r0 = gNumManifold;
   33894 	r0 = r0 >> 2;
   33895 	r1 = heap32[(r0)];
   33896 	r1 = (r1 + 1)|0;
   33897 	r2 = heap32[(fp)];
   33898 	r3 = heap32[(fp+1)];
   33899 	r4 = heap32[(fp+2)];
   33900 	heap32[(r0)] = r1;
   33901 	r0 = heapU8[r2+4];
   33902 	r0 = r0 & 2;
   33903 	if(r0 !=0) //_LBB180_2
   33904 {
   33905 	r0 = r4 >> 2;
   33906 	r0 = heap32[(r0+48)];
   33907 	r1 = r0 >> 2;
   33908 	r1 = heap32[(r1)];
   33909 	r1 = r1 >> 2;
   33910 	r1 = heap32[(r1+5)];
   33911 	heap32[(g0)] = r0;
   33912 	heap32[(g0+1)] = 1017370378;
   33913 	__FUNCTION_TABLE__[(r1)>>2](i7);
   33914 	f0 = f_g0;
   33915 	r0 = r3 >> 2;
   33916 	heapFloat[(fp+-2)] = f0;
   33917 	r0 = heap32[(r0+48)];
   33918 	r1 = r0 >> 2;
   33919 	r1 = heap32[(r1)];
   33920 	r1 = r1 >> 2;
   33921 	r1 = heap32[(r1+5)];
   33922 	heap32[(g0)] = r0;
   33923 	heap32[(g0+1)] = 1017370378;
   33924 	__FUNCTION_TABLE__[(r1)>>2](i7);
   33925 	r0 = sp + -4;
   33926 	r1 = sp + -8;
   33927 	r0 = f_g0 < f0 ? r0 : r1;
   33928 	heapFloat[(fp+-1)] = f_g0;
   33929 }
   33930 else{
   33931 	r0 = gContactBreakingThreshold;
   33932 }
   33933 	r1 = r2 >> 2;
   33934 	r5 = heap32[(r1+49)];
   33935 	r6 = r3 >> 2;
   33936 	r7 = r4 >> 2;
   33937 	r5 = r5 >> 2;
   33938 	r0 = r0 >> 2;
   33939 	f0 = heapFloat[(r6+46)];
   33940 	f1 = heapFloat[(r7+46)];
   33941 	r6 = heap32[(r5+2)];
   33942 	f2 = heapFloat[(r0)];
   33943 	f0 = f0 < f1 ? f0 : f1;
   33944 _5: do {
   33945 	if(r6 ==0) //_LBB180_9
   33946 {
   33947 	r0 = gNumAlignedAllocs;
   33948 	r0 = r0 >> 2;
   33949 	r5 = heap32[(r0)];
   33950 	r5 = (r5 + 1)|0;
   33951 	heap32[(r0)] = r5;
   33952 	heap32[(g0)] = 1159;
   33953 	malloc(i7);
   33954 	r0 = r_g0;
   33955 	if(r0 !=0) //_LBB180_11
   33956 {
   33957 	r5 = 0;
   33958 	r6 = (r0 + 4)|0;
   33959 	r5 = (r5 - r6)|0;
   33960 	r5 = r5 & 15;
   33961 	r5 = (r0 + r5)|0;
   33962 	r6 = (r5 + 4)|0;
   33963 	r5 = r5 >> 2;
   33964 	heap32[(r5)] = r0;
   33965 	r0 = r6;
   33966 }
   33967 else{
   33968 break _5;
   33969 }
   33970 }
   33971 else{
   33972 	r0 = heap32[(r5)];
   33973 	if(r0 >1139) //_LBB180_6
   33974 {
   33975 	if(r6 >0) //_LBB180_8
   33976 {
   33977 	r0 = heap32[(r5+3)];
   33978 	r7 = r0 >> 2;
   33979 	r7 = heap32[(r7)];
   33980 	r6 = (r6 + -1)|0;
   33981 	heap32[(r5+3)] = r7;
   33982 	heap32[(r5+2)] = r6;
   33983 }
   33984 else{
   33985 	r1 = _2E_str371;
   33986 	r2 = _2E_str169;
   33987 	heap32[(g0)] = r1;
   33988 	heap32[(g0+1)] = r2;
   33989 	heap32[(g0+2)] = 70;
   33990 	_assert(i7);
   33991 }
   33992 }
   33993 else{
   33994 	r1 = _2E_str270;
   33995 	r2 = _2E_str169;
   33996 	heap32[(g0)] = r1;
   33997 	heap32[(g0+1)] = r2;
   33998 	heap32[(g0+2)] = 69;
   33999 	_assert(i7);
   34000 }
   34001 }
   34002 } while(0);
   34003 	r5 = r0 >> 2;
   34004 	heap32[(r5)] = 1;
   34005 	heap32[(r5+28)] = 0;
   34006 	r6 = 0;
   34007 	heap32[(r5+29)] = 0;
   34008 	heap8[r0+120] = r6;
   34009 	heap32[(r5+31)] = 0;
   34010 	heap32[(r5+32)] = 0;
   34011 	heap32[(r5+33)] = 0;
   34012 	heap32[(r5+34)] = 0;
   34013 	heap32[(r5+35)] = 0;
   34014 	heap32[(r5+36)] = 0;
   34015 	heap32[(r5+37)] = 0;
   34016 	heap32[(r5+97)] = 0;
   34017 	heap32[(r5+98)] = 0;
   34018 	heap8[r0+396] = r6;
   34019 	heap32[(r5+100)] = 0;
   34020 	heap32[(r5+101)] = 0;
   34021 	heap32[(r5+102)] = 0;
   34022 	heap32[(r5+103)] = 0;
   34023 	heap32[(r5+104)] = 0;
   34024 	heap32[(r5+105)] = 0;
   34025 	heap32[(r5+106)] = 0;
   34026 	heap32[(r5+166)] = 0;
   34027 	heap32[(r5+167)] = 0;
   34028 	heap8[r0+672] = r6;
   34029 	heap32[(r5+169)] = 0;
   34030 	heap32[(r5+170)] = 0;
   34031 	heap32[(r5+171)] = 0;
   34032 	heap32[(r5+172)] = 0;
   34033 	heap32[(r5+173)] = 0;
   34034 	heap32[(r5+174)] = 0;
   34035 	heap32[(r5+175)] = 0;
   34036 	heap32[(r5+235)] = 0;
   34037 	heap32[(r5+236)] = 0;
   34038 	heap8[r0+948] = r6;
   34039 	heap32[(r5+238)] = 0;
   34040 	heap32[(r5+239)] = 0;
   34041 	heap32[(r5+240)] = 0;
   34042 	heap32[(r5+241)] = 0;
   34043 	heap32[(r5+242)] = 0;
   34044 	heap32[(r5+243)] = 0;
   34045 	heap32[(r5+244)] = 0;
   34046 	heap32[(r5+277)] = r3;
   34047 	heap32[(r5+278)] = r4;
   34048 	heap32[(r5+279)] = 0;
   34049 	heapFloat[(r5+280)] = f2;
   34050 	heapFloat[(r5+281)] = f0;
   34051 	r3 = heap32[(r1+3)];
   34052 	heap32[(r5+284)] = r3;
   34053 	r3 = heap32[(r1+4)];
   34054 	r4 = heap32[(r1+3)];
   34055 	if(r3 ==r4) //_LBB180_14
   34056 {
   34057 	r5 = 1;
   34058 	r7 = r4 << 1;
   34059 	r7 = r4 == 0 ? r5 : r7;
   34060 if(!(r3 >=r7)) //_LBB180_13
   34061 {
   34062 	if(r7 !=0) //_LBB180_17
   34063 {
   34064 	r3 = gNumAlignedAllocs;
   34065 	r3 = r3 >> 2;
   34066 	r8 = heap32[(r3)];
   34067 	r9 = r7 << 2;
   34068 	r8 = (r8 + 1)|0;
   34069 	r9 = r9 | 3;
   34070 	heap32[(r3)] = r8;
   34071 	r3 = (r9 + 16)|0;
   34072 	heap32[(g0)] = r3;
   34073 	malloc(i7);
   34074 	r3 = r_g0;
   34075 	if(r3 !=0) //_LBB180_19
   34076 {
   34077 	r8 = (r3 + 4)|0;
   34078 	r8 = (r6 - r8)|0;
   34079 	r8 = r8 & 15;
   34080 	r8 = (r3 + r8)|0;
   34081 	r9 = (r8 + 4)|0;
   34082 	r8 = r8 >> 2;
   34083 	heap32[(r8)] = r3;
   34084 	r3 = r9;
   34085 }
   34086 }
   34087 else{
   34088 	r3 = 0;
   34089 }
   34090 	r8 = (r2 + 20)|0;
   34091 	if(r4 <1) //_LBB180_22
   34092 {
   34093 	r6 = r8 >> 2;
   34094 	r9 = heap32[(r6)];
   34095 }
   34096 else{
   34097 _26: while(true){
   34098 	r9 = r8 >> 2;
   34099 	r9 = heap32[(r9)];
   34100 	r10 = r6 << 2;
   34101 	r11 = (r9 + r10)|0;
   34102 	r11 = r11 >> 2;
   34103 	r10 = (r3 + r10)|0;
   34104 	r11 = heap32[(r11)];
   34105 	r6 = (r6 + 1)|0;
   34106 	r10 = r10 >> 2;
   34107 	heap32[(r10)] = r11;
   34108 if(!(r4 !=r6)) //_LBB180_23
   34109 {
   34110 break _26;
   34111 }
   34112 }
   34113 	r8 = (r2 + 20)|0;
   34114 }
   34115 	if(r9 !=0) //_LBB180_27
   34116 {
   34117 	r6 = heapU8[r2+24];
   34118 	if(r6 !=0) //_LBB180_29
   34119 {
   34120 	r4 = gNumAlignedFree;
   34121 	r4 = r4 >> 2;
   34122 	r6 = heap32[(r4)];
   34123 	r6 = (r6 + 1)|0;
   34124 	r9 = r9 >> 2;
   34125 	heap32[(r4)] = r6;
   34126 	r4 = heap32[(r9+-1)];
   34127 	heap32[(g0)] = r4;
   34128 	free(i7);
   34129 	r4 = heap32[(r1+3)];
   34130 }
   34131 	r6 = r8 >> 2;
   34132 	heap32[(r6)] = 0;
   34133 }
   34134 	r6 = r8 >> 2;
   34135 	heap8[r2+24] = r5;
   34136 	heap32[(r6)] = r3;
   34137 	heap32[(r1+4)] = r7;
   34138 }
   34139 }
   34140 	r2 = r4 << 2;
   34141 	r3 = heap32[(r1+5)];
   34142 	r2 = (r3 + r2)|0;
   34143 	r2 = r2 >> 2;
   34144 	heap32[(r2)] = r0;
   34145 	r2 = heap32[(r1+3)];
   34146 	r2 = (r2 + 1)|0;
   34147 	heap32[(r1+3)] = r2;
   34148 	r_g0 = r0;
   34149 	return;
   34150 }
   34151 
   34152 function _ZN21btCollisionDispatcher13clearManifoldEP20btPersistentManifold(sp)
   34153 {
   34154 	var i7;
   34155 	var fp = sp>>2;
   34156 	var r0;
   34157 	var r1;
   34158 	var r2;
   34159 var __label__ = 0;
   34160 	i7 = sp + 0;var g0 = i7>>2; // save stack
   34161 	r0 = heap32[(fp+1)];
   34162 	r0 = r0 >> 2;
   34163 	r1 = heap32[(r0+279)];
   34164 if(!(r1 <1)) //_LBB181_3
   34165 {
   34166 	r2 = 0;
   34167 _3: while(true){
   34168 	r2 = (r2 + 1)|0;
   34169 	if(r1 >r2) //_LBB181_2
   34170 {
   34171 continue _3;
   34172 }
   34173 else{
   34174 break _3;
   34175 }
   34176 }
   34177 }
   34178 	heap32[(r0+279)] = 0;
   34179 	return;
   34180 }
   34181 
   34182 function _ZN21btCollisionDispatcher14needsCollisionEP17btCollisionObjectS1_(sp)
   34183 {
   34184 	var i7;
   34185 	var fp = sp>>2;
   34186 	var r0;
   34187 	var r1;
   34188 	var r2;
   34189 	var r3;
   34190 	var r4;
   34191 var __label__ = 0;
   34192 	i7 = sp + -16;var g0 = i7>>2; // save stack
   34193 	r0 = heap32[(fp+1)];
   34194 	if(r0 !=0) //_LBB182_2
   34195 {
   34196 	r1 = heap32[(fp+2)];
   34197 	if(r1 !=0) //_LBB182_4
   34198 {
   34199 	r2 = heap32[(fp)];
   34200 	r2 = r2 >> 2;
   34201 	r3 = heap32[(r2+1)];
   34202 	r4 = r3 & 1;
   34203 if(!(r4 != 0)) //_LBB182_8
   34204 {
   34205 	r4 = heapU8[r0+204];
   34206 	r4 = r4 & 3;
   34207 if(!(r4 ==0)) //_LBB182_8
   34208 {
   34209 	r4 = heapU8[r1+204];
   34210 	r4 = r4 & 3;
   34211 if(!(r4 ==0)) //_LBB182_8
   34212 {
   34213 	r3 = r3 | 1;
   34214 	heap32[(r2+1)] = r3;
   34215 	r2 = _2E_str977;
   34216 	heap32[(g0)] = r2;
   34217 	printf(i7);
   34218 }
   34219 }
   34220 }
   34221 	r2 = r0 >> 2;
   34222 	r3 = heap32[(r2+54)];
   34223 	if(r3 ==2) //_LBB182_10
   34224 {
   34225 __label__ = 10;
   34226 }
   34227 else{
   34228 	if(r3 !=5) //_LBB182_12
   34229 {
   34230 __label__ = 12;
   34231 }
   34232 else{
   34233 __label__ = 10;
   34234 }
   34235 }
   34236 _12: do {
   34237 if (__label__ == 10){
   34238 	r3 = r1 >> 2;
   34239 	r3 = heap32[(r3+54)];
   34240 if(!(r3 ==2)) //_LBB182_16
   34241 {
   34242 if(!(r3 ==5)) //_LBB182_16
   34243 {
   34244 break _12;
   34245 }
   34246 }
   34247 	r0 = 0;
   34248 	r_g0 = r0;
   34249 	return;
   34250 }
   34251 } while(0);
   34252 	r3 = heap32[(r2+63)];
   34253 	if(r3 !=0) //_LBB182_14
   34254 {
   34255 	r2 = heap32[(r2)];
   34256 	r2 = r2 >> 2;
   34257 	r2 = heap32[(r2)];
   34258 	heap32[(g0)] = r0;
   34259 	heap32[(g0+1)] = r1;
   34260 	r0 = 0;
   34261 	__FUNCTION_TABLE__[(r2)>>2](i7);
   34262 	r0 = r_g0 == r0;
   34263 }
   34264 else{
   34265 	r0 = 0;
   34266 }
   34267 	r0 = r0 & 1;
   34268 	r0 = r0 ^ 1;
   34269 	r_g0 = r0;
   34270 	return;
   34271 }
   34272 else{
   34273 	r0 = _2E_str876;
   34274 	r1 = _2E_str573;
   34275 	heap32[(g0)] = r0;
   34276 	heap32[(g0+1)] = r1;
   34277 	heap32[(g0+2)] = 167;
   34278 	_assert(i7);
   34279 }
   34280 }
   34281 else{
   34282 	r0 = _2E_str775;
   34283 	r1 = _2E_str573;
   34284 	heap32[(g0)] = r0;
   34285 	heap32[(g0+1)] = r1;
   34286 	heap32[(g0+2)] = 166;
   34287 	_assert(i7);
   34288 }
   34289 }
   34290 
   34291 function _ZN21btCollisionDispatcher26allocateCollisionAlgorithmEi(sp)
   34292 {
   34293 	var i7;
   34294 	var fp = sp>>2;
   34295 	var r0;
   34296 	var r1;
   34297 	var r2;
   34298 	var r3;
   34299 var __label__ = 0;
   34300 	i7 = sp + -16;var g0 = i7>>2; // save stack
   34301 	r0 = heap32[(fp)];
   34302 	r0 = r0 >> 2;
   34303 	r0 = heap32[(r0+48)];
   34304 	r0 = r0 >> 2;
   34305 	r1 = heap32[(r0+2)];
   34306 	r2 = heap32[(fp+1)];
   34307 	if(r1 ==0) //_LBB183_7
   34308 {
   34309 	r0 = gNumAlignedAllocs;
   34310 	r0 = r0 >> 2;
   34311 	r1 = heap32[(r0)];
   34312 	r1 = (r1 + 1)|0;
   34313 	heap32[(r0)] = r1;
   34314 	r0 = (r2 + 19)|0;
   34315 	heap32[(g0)] = r0;
   34316 	malloc(i7);
   34317 	r0 = r_g0;
   34318 if(!(r0 ==0)) //_LBB183_9
   34319 {
   34320 	r1 = 0;
   34321 	r2 = (r0 + 4)|0;
   34322 	r1 = (r1 - r2)|0;
   34323 	r1 = r1 & 15;
   34324 	r1 = (r0 + r1)|0;
   34325 	r2 = r1 >> 2;
   34326 	heap32[(r2)] = r0;
   34327 	r0 = (r1 + 4)|0;
   34328 }
   34329 	r_g0 = r0;
   34330 	return;
   34331 }
   34332 else{
   34333 if(!(r2 ==0)) //_LBB183_4
   34334 {
   34335 	r3 = heap32[(r0)];
   34336 if(!(r3 >=r2)) //_LBB183_4
   34337 {
   34338 	r0 = _2E_str270;
   34339 	r1 = _2E_str169;
   34340 	heap32[(g0)] = r0;
   34341 	heap32[(g0+1)] = r1;
   34342 	heap32[(g0+2)] = 69;
   34343 	_assert(i7);
   34344 }
   34345 }
   34346 	if(r1 >0) //_LBB183_6
   34347 {
   34348 	r2 = heap32[(r0+3)];
   34349 	r3 = r2 >> 2;
   34350 	r3 = heap32[(r3)];
   34351 	r1 = (r1 + -1)|0;
   34352 	heap32[(r0+3)] = r3;
   34353 	heap32[(r0+2)] = r1;
   34354 	r_g0 = r2;
   34355 	return;
   34356 }
   34357 else{
   34358 	r0 = _2E_str371;
   34359 	r1 = _2E_str169;
   34360 	heap32[(g0)] = r0;
   34361 	heap32[(g0+1)] = r1;
   34362 	heap32[(g0+2)] = 70;
   34363 	_assert(i7);
   34364 }
   34365 }
   34366 }
   34367 
   34368 function _ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo(sp)
   34369 {
   34370 	var i7;
   34371 	var fp = sp>>2;
   34372 	var r0;
   34373 	var r1;
   34374 	var r2;
   34375 	var r3;
   34376 	var r4;
   34377 	var r5;
   34378 	var r6;
   34379 	var r7;
   34380 	var f0;
   34381 	var f1;
   34382 var __label__ = 0;
   34383 	i7 = sp + -184;var g0 = i7>>2; // save stack
   34384 	r0 = heap32[(fp+1)];
   34385 	r1 = heap32[(fp)];
   34386 	r1 = r1 >> 2;
   34387 	r2 = r0 >> 2;
   34388 	r3 = heap32[(r2)];
   34389 	r4 = heap32[(r1)];
   34390 	r5 = heap32[(r1+1)];
   34391 	r3 = r3 >> 2;
   34392 	r4 = r4 >> 2;
   34393 	r5 = r5 >> 2;
   34394 	r4 = heap32[(r4)];
   34395 	r5 = heap32[(r5)];
   34396 	r3 = heap32[(r3+6)];
   34397 	heap32[(g0)] = r0;
   34398 	heap32[(g0+1)] = r4;
   34399 	heap32[(g0+2)] = r5;
   34400 	__FUNCTION_TABLE__[(r3)>>2](i7);
   34401 	r3 = r_g0;
   34402 _1: do {
   34403 if(!(r3 ==0)) //_LBB184_8
   34404 {
   34405 	r3 = heap32[(fp+2)];
   34406 	r6 = heap32[(r1+2)];
   34407 	if(r6 ==0) //_LBB184_3
   34408 {
   34409 	r6 = heap32[(r2)];
   34410 	r6 = r6 >> 2;
   34411 	r6 = heap32[(r6+2)];
   34412 	heap32[(g0)] = r0;
   34413 	heap32[(g0+1)] = r4;
   34414 	heap32[(g0+2)] = r5;
   34415 	heap32[(g0+3)] = 0;
   34416 	__FUNCTION_TABLE__[(r6)>>2](i7);
   34417 	r6 = r_g0;
   34418 	heap32[(r1+2)] = r6;
   34419 	if(r6 ==0) //_LBB184_8
   34420 {
   34421 break _1;
   34422 }
   34423 }
   34424 	r0 = _ZTV16btManifoldResult;
   34425 	r1 = sp + -160;
   34426 	r0 = (r0 + 8)|0;
   34427 	r2 = r1 >> 2;
   34428 	heap32[(fp+-40)] = r0;
   34429 	heap32[(r2+1)] = 0;
   34430 	heap32[(r2+34)] = r4;
   34431 	r0 = r4 >> 2;
   34432 	heap32[(r2+35)] = r5;
   34433 	heap32[(r2+2)] = heap32[(r0+1)];
   34434 	heap32[(r2+3)] = heap32[(r0+2)];
   34435 	heap32[(r2+4)] = heap32[(r0+3)];
   34436 	heap32[(r2+5)] = heap32[(r0+4)];
   34437 	heap32[(r2+6)] = heap32[(r0+5)];
   34438 	heap32[(r2+7)] = heap32[(r0+6)];
   34439 	heap32[(r2+8)] = heap32[(r0+7)];
   34440 	heap32[(r2+9)] = heap32[(r0+8)];
   34441 	heap32[(r2+10)] = heap32[(r0+9)];
   34442 	heap32[(r2+11)] = heap32[(r0+10)];
   34443 	heap32[(r2+12)] = heap32[(r0+11)];
   34444 	heap32[(r2+13)] = heap32[(r0+12)];
   34445 	heap32[(r2+14)] = heap32[(r0+13)];
   34446 	heap32[(r2+15)] = heap32[(r0+14)];
   34447 	heap32[(r2+16)] = heap32[(r0+15)];
   34448 	r7 = r5 >> 2;
   34449 	heap32[(r2+17)] = heap32[(r0+16)];
   34450 	heap32[(r2+18)] = heap32[(r7+1)];
   34451 	heap32[(r2+19)] = heap32[(r7+2)];
   34452 	heap32[(r2+20)] = heap32[(r7+3)];
   34453 	heap32[(r2+21)] = heap32[(r7+4)];
   34454 	heap32[(r2+22)] = heap32[(r7+5)];
   34455 	heap32[(r2+23)] = heap32[(r7+6)];
   34456 	heap32[(r2+24)] = heap32[(r7+7)];
   34457 	heap32[(r2+25)] = heap32[(r7+8)];
   34458 	heap32[(r2+26)] = heap32[(r7+9)];
   34459 	heap32[(r2+27)] = heap32[(r7+10)];
   34460 	heap32[(r2+28)] = heap32[(r7+11)];
   34461 	heap32[(r2+29)] = heap32[(r7+12)];
   34462 	heap32[(r2+30)] = heap32[(r7+13)];
   34463 	heap32[(r2+31)] = heap32[(r7+14)];
   34464 	heap32[(r2+32)] = heap32[(r7+15)];
   34465 	r0 = r6 >> 2;
   34466 	heap32[(r2+33)] = heap32[(r7+16)];
   34467 	r0 = heap32[(r0)];
   34468 	r2 = r3 >> 2;
   34469 	r7 = heap32[(r2+2)];
   34470 	if(r7 !=1) //_LBB184_6
   34471 {
   34472 	r0 = r0 >> 2;
   34473 	r0 = heap32[(r0+3)];
   34474 	heap32[(g0)] = r6;
   34475 	heap32[(g0+1)] = r4;
   34476 	heap32[(g0+2)] = r5;
   34477 	heap32[(g0+3)] = r3;
   34478 	heap32[(g0+4)] = r1;
   34479 	__FUNCTION_TABLE__[(r0)>>2](i7);
   34480 	f0 = f_g0;
   34481 	f1 = heapFloat[(r2+3)];
   34482 if(!(f1 <=f0)) //_LBB184_8
   34483 {
   34484 	heapFloat[(r2+3)] = f0;
   34485 }
   34486 }
   34487 else{
   34488 	r0 = r0 >> 2;
   34489 	r0 = heap32[(r0+2)];
   34490 	heap32[(g0)] = r6;
   34491 	heap32[(g0+1)] = r4;
   34492 	heap32[(g0+2)] = r5;
   34493 	heap32[(g0+3)] = r3;
   34494 	heap32[(g0+4)] = r1;
   34495 	__FUNCTION_TABLE__[(r0)>>2](i7);
   34496 	return;
   34497 }
   34498 }
   34499 } while(0);
   34500 	return;
   34501 }
   34502 
   34503 function _ZN17btCollisionObject24checkCollideWithOverrideEPS_(sp)
   34504 {
   34505 	var i7;
   34506 	var fp = sp>>2;
   34507 	var r0;
   34508 var __label__ = 0;
   34509 	i7 = sp + 0;var g0 = i7>>2; // save stack
   34510 	r0 = 1;
   34511 	r_g0 = r0;
   34512 	return;
   34513 }
   34514 
   34515 function _ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape(sp)
   34516 {
   34517 	var i7;
   34518 	var fp = sp>>2;
   34519 	var r0;
   34520 	var r1;
   34521 var __label__ = 0;
   34522 	i7 = sp + 0;var g0 = i7>>2; // save stack
   34523 	r0 = heap32[(fp)];
   34524 	r0 = r0 >> 2;
   34525 	r1 = heap32[(fp+1)];
   34526 	heap32[(r0+48)] = r1;
   34527 	heap32[(r0+50)] = r1;
   34528 	return;
   34529 }
   34530 
   34531 function _ZNK17btCollisionObject28calculateSerializeBufferSizeEv(sp)
   34532 {
   34533 	var i7;
   34534 	var fp = sp>>2;
   34535 	var r0;
   34536 var __label__ = 0;
   34537 	i7 = sp + 0;var g0 = i7>>2; // save stack
   34538 	r0 = 248;
   34539 	r_g0 = r0;
   34540 	return;
   34541 }
   34542 
   34543 function _ZN17btCollisionObjectD1Ev(sp)
   34544 {
   34545 	var i7;
   34546 	var fp = sp>>2;
   34547 	var r0;
   34548 	var r1;
   34549 var __label__ = 0;
   34550 	i7 = sp + 0;var g0 = i7>>2; // save stack
   34551 	r0 = heap32[(fp)];
   34552 	r1 = _ZTV17btCollisionObject;
   34553 	r0 = r0 >> 2;
   34554 	r1 = (r1 + 8)|0;
   34555 	heap32[(r0)] = r1;
   34556 	return;
   34557 }
   34558 
   34559 function _ZN17btCollisionObjectD0Ev(sp)
   34560 {
   34561 	var i7;
   34562 	var fp = sp>>2;
   34563 	var r0;
   34564 	var r1;
   34565 	var r2;
   34566 var __label__ = 0;
   34567 	i7 = sp + -8;var g0 = i7>>2; // save stack
   34568 	r0 = heap32[(fp)];
   34569 	r1 = _ZTV17btCollisionObject;
   34570 	r2 = r0 >> 2;
   34571 	r1 = (r1 + 8)|0;
   34572 	heap32[(r2)] = r1;
   34573 if(!(r0 ==0)) //_LBB189_2
   34574 {
   34575 	r0 = gNumAlignedFree;
   34576 	r0 = r0 >> 2;
   34577 	r1 = heap32[(r0)];
   34578 	r1 = (r1 + 1)|0;
   34579 	heap32[(r0)] = r1;
   34580 	r0 = heap32[(r2+-1)];
   34581 	heap32[(g0)] = r0;
   34582 	free(i7);
   34583 }
   34584 	return;
   34585 }
   34586 
   34587 function _ZNK17btCollisionObject9serializeEPvP12btSerializer(sp)
   34588 {
   34589 	var i7;
   34590 	var fp = sp>>2;
   34591 	var r0;
   34592 	var r1;
   34593 	var r2;
   34594 	var r3;
   34595 	var r4;
   34596 	var r5;
   34597 	var r6;
   34598 var __label__ = 0;
   34599 	i7 = sp + -8;var g0 = i7>>2; // save stack
   34600 	r0 = heap32[(fp)];
   34601 	r1 = heap32[(fp+1)];
   34602 	r2 = r0 >> 2;
   34603 	r1 = r1 >> 2;
   34604 	heap32[(r1+4)] = heap32[(r2+1)];
   34605 	heap32[(r1+5)] = heap32[(r2+2)];
   34606 	heap32[(r1+6)] = heap32[(r2+3)];
   34607 	heap32[(r1+7)] = heap32[(r2+4)];
   34608 	heap32[(r1+8)] = heap32[(r2+5)];
   34609 	heap32[(r1+9)] = heap32[(r2+6)];
   34610 	heap32[(r1+10)] = heap32[(r2+7)];
   34611 	heap32[(r1+11)] = heap32[(r2+8)];
   34612 	heap32[(r1+12)] = heap32[(r2+9)];
   34613 	heap32[(r1+13)] = heap32[(r2+10)];
   34614 	heap32[(r1+14)] = heap32[(r2+11)];
   34615 	heap32[(r1+15)] = heap32[(r2+12)];
   34616 	heap32[(r1+16)] = heap32[(r2+13)];
   34617 	heap32[(r1+17)] = heap32[(r2+14)];
   34618 	heap32[(r1+18)] = heap32[(r2+15)];
   34619 	heap32[(r1+19)] = heap32[(r2+16)];
   34620 	heap32[(r1+20)] = heap32[(r2+17)];
   34621 	heap32[(r1+21)] = heap32[(r2+18)];
   34622 	heap32[(r1+22)] = heap32[(r2+19)];
   34623 	heap32[(r1+23)] = heap32[(r2+20)];
   34624 	heap32[(r1+24)] = heap32[(r2+21)];
   34625 	heap32[(r1+25)] = heap32[(r2+22)];
   34626 	heap32[(r1+26)] = heap32[(r2+23)];
   34627 	heap32[(r1+27)] = heap32[(r2+24)];
   34628 	heap32[(r1+28)] = heap32[(r2+25)];
   34629 	heap32[(r1+29)] = heap32[(r2+26)];
   34630 	heap32[(r1+30)] = heap32[(r2+27)];
   34631 	heap32[(r1+31)] = heap32[(r2+28)];
   34632 	heap32[(r1+32)] = heap32[(r2+29)];
   34633 	heap32[(r1+33)] = heap32[(r2+30)];
   34634 	heap32[(r1+34)] = heap32[(r2+31)];
   34635 	heap32[(r1+35)] = heap32[(r2+32)];
   34636 	heap32[(r1+36)] = heap32[(r2+33)];
   34637 	heap32[(r1+37)] = heap32[(r2+34)];
   34638 	heap32[(r1+38)] = heap32[(r2+35)];
   34639 	heap32[(r1+39)] = heap32[(r2+36)];
   34640 	heap32[(r1+40)] = heap32[(r2+37)];
   34641 	heap32[(r1+41)] = heap32[(r2+38)];
   34642 	heap32[(r1+42)] = heap32[(r2+39)];
   34643 	heap32[(r1+43)] = heap32[(r2+40)];
   34644 	heap32[(r1+44)] = heap32[(r2+41)];
   34645 	heap32[(r1+45)] = heap32[(r2+42)];
   34646 	heap32[(r1+46)] = heap32[(r2+43)];
   34647 	heap32[(r1+47)] = heap32[(r2+44)];
   34648 	r3 = heap32[(r2+45)];
   34649 	heap32[(r1+55)] = r3;
   34650 	r3 = heap32[(fp+2)];
   34651 	heap32[(r1+48)] = heap32[(r2+46)];
   34652 	heap32[(r1)] = 0;
   34653 	r4 = r3 >> 2;
   34654 	r5 = heap32[(r4)];
   34655 	r5 = r5 >> 2;
   34656 	r5 = heap32[(r5+7)];
   34657 	r6 = heap32[(r2+48)];
   34658 	heap32[(g0)] = r3;
   34659 	heap32[(g0+1)] = r6;
   34660 	__FUNCTION_TABLE__[(r5)>>2](i7);
   34661 	heap32[(r1+1)] = r_g0;
   34662 	heap32[(r1+2)] = 0;
   34663 	r5 = heap32[(r2+51)];
   34664 	heap32[(r1+56)] = r5;
   34665 	r5 = heap32[(r2+52)];
   34666 	heap32[(r1+57)] = r5;
   34667 	r5 = heap32[(r2+53)];
   34668 	heap32[(r1+58)] = r5;
   34669 	r5 = heap32[(r2+54)];
   34670 	heap32[(r1+59)] = r5;
   34671 	r5 = heap32[(r2+54)];
   34672 	heap32[(r1+59)] = r5;
   34673 	heap32[(r1+49)] = heap32[(r2+55)];
   34674 	heap32[(r1+50)] = heap32[(r2+56)];
   34675 	heap32[(r1+51)] = heap32[(r2+57)];
   34676 	r5 = heap32[(r2+58)];
   34677 	heap32[(r1+60)] = r5;
   34678 	r5 = heap32[(r4)];
   34679 	r5 = r5 >> 2;
   34680 	r5 = heap32[(r5+10)];
   34681 	heap32[(g0)] = r3;
   34682 	heap32[(g0+1)] = r0;
   34683 	__FUNCTION_TABLE__[(r5)>>2](i7);
   34684 	r0 = r_g0;
   34685 	r5 = heap32[(r4)];
   34686 	r5 = r5 >> 2;
   34687 	r5 = heap32[(r5+7)];
   34688 	heap32[(g0)] = r3;
   34689 	heap32[(g0+1)] = r0;
   34690 	__FUNCTION_TABLE__[(r5)>>2](i7);
   34691 	r5 = r_g0;
   34692 	heap32[(r1+3)] = r5;
   34693 if(!(r5 ==0)) //_LBB190_2
   34694 {
   34695 	r4 = heap32[(r4)];
   34696 	r4 = r4 >> 2;
   34697 	r4 = heap32[(r4+12)];
   34698 	heap32[(g0)] = r3;
   34699 	heap32[(g0+1)] = r0;
   34700 	__FUNCTION_TABLE__[(r4)>>2](i7);
   34701 }
   34702 	heap32[(r1+52)] = heap32[(r2+60)];
   34703 	heap32[(r1+53)] = heap32[(r2+61)];
   34704 	heap32[(r1+54)] = heap32[(r2+62)];
   34705 	heap32[(r1+54)] = heap32[(r2+62)];
   34706 	r0 = heap32[(r2+63)];
   34707 	heap32[(r1+61)] = r0;
   34708 	r0 = _2E_str78;
   34709 	r_g0 = r0;
   34710 	return;
   34711 }
   34712 
   34713 function _ZNK17btCollisionObject21serializeSingleObjectEP12btSerializer(sp)
   34714 {
   34715 	var i7;
   34716 	var fp = sp>>2;
   34717 	var r0;
   34718 	var r1;
   34719 	var r2;
   34720 	var r3;
   34721 	var r4;
   34722 	var r5;
   34723 var __label__ = 0;
   34724 	i7 = sp + -24;var g0 = i7>>2; // save stack
   34725 	r0 = heap32[(fp)];
   34726 	r1 = r0 >> 2;
   34727 	r2 = heap32[(r1)];
   34728 	r2 = r2 >> 2;
   34729 	r2 = heap32[(r2+4)];
   34730 	heap32[(g0)] = r0;
   34731 	r3 = heap32[(fp+1)];
   34732 	__FUNCTION_TABLE__[(r2)>>2](i7);
   34733 	r4 = r3 >> 2;
   34734 	r5 = heap32[(r4)];
   34735 	r5 = r5 >> 2;
   34736 	r5 = heap32[(r5+4)];
   34737 	heap32[(g0)] = r3;
   34738 	heap32[(g0+1)] = r_g0;
   34739 	heap32[(g0+2)] = 1;
   34740 	__FUNCTION_TABLE__[(r5)>>2](i7);
   34741 	r2 = r_g0;
   34742 	r1 = heap32[(r1)];
   34743 	r1 = r1 >> 2;
   34744 	r5 = r2 >> 2;
   34745 	r1 = heap32[(r1+5)];
   34746 	r5 = heap32[(r5+2)];
   34747 	heap32[(g0)] = r0;
   34748 	heap32[(g0+1)] = r5;
   34749 	heap32[(g0+2)] = r3;
   34750 	__FUNCTION_TABLE__[(r1)>>2](i7);
   34751 	r4 = heap32[(r4)];
   34752 	r4 = r4 >> 2;
   34753 	r4 = heap32[(r4+5)];
   34754 	heap32[(g0)] = r3;
   34755 	heap32[(g0+1)] = r2;
   34756 	heap32[(g0+2)] = r_g0;
   34757 	heap32[(g0+3)] = 1245859651;
   34758 	heap32[(g0+4)] = r0;
   34759 	__FUNCTION_TABLE__[(r4)>>2](i7);
   34760 	return;
   34761 }
   34762 
   34763 function _ZN16btManifoldResult20setShapeIdentifiersAEii(sp)
   34764 {
   34765 	var i7;
   34766 	var fp = sp>>2;
   34767 	var r0;
   34768 	var r1;
   34769 	var r2;
   34770 var __label__ = 0;
   34771 	i7 = sp + 0;var g0 = i7>>2; // save stack
   34772 	r0 = heap32[(fp)];
   34773 	r0 = r0 >> 2;
   34774 	r1 = heap32[(fp+1)];
   34775 	r2 = heap32[(fp+2)];
   34776 	heap32[(r0+36)] = r1;
   34777 	heap32[(r0+38)] = r2;
   34778 	return;
   34779 }
   34780 
   34781 function _ZN16btManifoldResult20setShapeIdentifiersBEii(sp)
   34782 {
   34783 	var i7;
   34784 	var fp = sp>>2;
   34785 	var r0;
   34786 	var r1;
   34787 	var r2;
   34788 var __label__ = 0;
   34789 	i7 = sp + 0;var g0 = i7>>2; // save stack
   34790 	r0 = heap32[(fp)];
   34791 	r0 = r0 >> 2;
   34792 	r1 = heap32[(fp+1)];
   34793 	r2 = heap32[(fp+2)];
   34794 	heap32[(r0+37)] = r1;
   34795 	heap32[(r0+39)] = r2;
   34796 	return;
   34797 }
   34798 
   34799 function _ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw(sp)
   34800 {
   34801 	var i7;
   34802 	var fp = sp>>2;
   34803 	var r0;
   34804 	var r1;
   34805 var __label__ = 0;
   34806 	i7 = sp + 0;var g0 = i7>>2; // save stack
   34807 	r0 = heap32[(fp)];
   34808 	r0 = r0 >> 2;
   34809 	r1 = heap32[(fp+1)];
   34810 	heap32[(r0+21)] = r1;
   34811 	return;
   34812 }
   34813 
   34814 function _ZN16btCollisionWorld14getDebugDrawerEv(sp)
   34815 {
   34816 	var i7;
   34817 	var fp = sp>>2;
   34818 	var r0;
   34819 var __label__ = 0;
   34820 	i7 = sp + 0;var g0 = i7>>2; // save stack
   34821 	r0 = heap32[(fp)];
   34822 	r0 = r0 >> 2;
   34823 	r0 = heap32[(r0+21)];
   34824 	r_g0 = r0;
   34825 	return;
   34826 }
   34827 
   34828 function _ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy(sp)
   34829 {
   34830 	var i7;
   34831 	var fp = sp>>2;
   34832 	var r0;
   34833 	var r1;
   34834 	var r2;
   34835 	var r3;
   34836 var __label__ = 0;
   34837 	i7 = sp + 0;var g0 = i7>>2; // save stack
   34838 	r0 = heap32[(fp)];
   34839 	r1 = heap32[(fp+1)];
   34840 	r2 = heapU16[(r0+10)>>1];
   34841 	r3 = heapU16[(r1+4)>>1];
   34842 	r2 = r2 & r3;
   34843 	r2 = r2 & 65535;
   34844 	if(r2 ==0) //_LBB196_2
   34845 {
   34846 	r0 = 0;
   34847 	r_g0 = r0;
   34848 	return;
   34849 }
   34850 else{
   34851 	r1 = heapU16[(r1+6)>>1];
   34852 	r0 = heapU16[(r0+8)>>1];
   34853 	r0 = r1 & r0;
   34854 	r0 = r0 & 65535;
   34855 	r1 = 0;
   34856 	r0 = r0 != r1;
   34857 	r0 = r0 & 1;
   34858 	r_g0 = r0;
   34859 	return;
   34860 }
   34861 }
   34862 
   34863 function _ZN12btConvexCast10CastResult9DebugDrawEf(sp)
   34864 {
   34865 	var i7;
   34866 	var fp = sp>>2;
   34867 var __label__ = 0;
   34868 	i7 = sp + 0;var g0 = i7>>2; // save stack
   34869 	return;
   34870 }
   34871 
   34872 function _ZN12btConvexCast10CastResult15drawCoordSystemERK11btTransform(sp)
   34873 {
   34874 	var i7;
   34875 	var fp = sp>>2;
   34876 var __label__ = 0;
   34877 	i7 = sp + 0;var g0 = i7>>2; // save stack
   34878 	return;
   34879 }
   34880 
   34881 function _ZN12btConvexCast10CastResultD1Ev(sp)
   34882 {
   34883 	var i7;
   34884 	var fp = sp>>2;
   34885 	var r0;
   34886 	var r1;
   34887 var __label__ = 0;
   34888 	i7 = sp + 0;var g0 = i7>>2; // save stack
   34889 	r0 = heap32[(fp)];
   34890 	r1 = _ZTVN12btConvexCast10CastResultE;
   34891 	r0 = r0 >> 2;
   34892 	r1 = (r1 + 8)|0;
   34893 	heap32[(r0)] = r1;
   34894 	return;
   34895 }
   34896 
   34897 function _ZN12btConvexCast10CastResultD0Ev(sp)
   34898 {
   34899 	var i7;
   34900 	var fp = sp>>2;
   34901 	var r0;
   34902 	var r1;
   34903 	var r2;
   34904 var __label__ = 0;
   34905 	i7 = sp + -8;var g0 = i7>>2; // save stack
   34906 	r0 = heap32[(fp)];
   34907 	r1 = _ZTVN12btConvexCast10CastResultE;
   34908 	r2 = r0 >> 2;
   34909 	r1 = (r1 + 8)|0;
   34910 	heap32[(r2)] = r1;
   34911 	heap32[(g0)] = r0;
   34912 	_ZdlPv(i7);
   34913 	return;
   34914 }
   34915 
   34916 function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitERK9btVector3fii(sp)
   34917 {
   34918 	var i7;
   34919 	var fp = sp>>2;
   34920 	var r0;
   34921 	var r1;
   34922 	var r2;
   34923 	var r3;
   34924 	var r4;
   34925 	var r5;
   34926 	var f0;
   34927 	var f1;
   34928 	var f2;
   34929 	var f3;
   34930 	var f4;
   34931 	var f5;
   34932 	var f6;
   34933 	var f7;
   34934 	var f8;
   34935 	var f9;
   34936 	var f10;
   34937 	var f11;
   34938 var __label__ = 0;
   34939 	i7 = sp + -56;var g0 = i7>>2; // save stack
   34940 	r0 = sp + -8;
   34941 	r1 = heap32[(fp+3)];
   34942 	r2 = heap32[(fp+1)];
   34943 	r3 = heap32[(fp)];
   34944 	r4 = r0 >> 2;
   34945 	r5 = heap32[(fp+4)];
   34946 	heap32[(fp+-2)] = r1;
   34947 	r1 = r2 >> 2;
   34948 	heap32[(r4+1)] = r5;
   34949 	r2 = r3 >> 2;
   34950 	r3 = heap32[(r2+12)];
   34951 	f0 = heapFloat[(r2+22)];
   34952 	f1 = heapFloat[(r1)];
   34953 	f2 = heapFloat[(r2+18)];
   34954 	f3 = heapFloat[(r2+14)];
   34955 	f4 = heapFloat[(r2+23)];
   34956 	f5 = heapFloat[(r1+1)];
   34957 	f6 = heapFloat[(r2+19)];
   34958 	f7 = heapFloat[(r2+15)];
   34959 	f8 = heapFloat[(r2+24)];
   34960 	f9 = heapFloat[(r1+2)];
   34961 	f10 = heapFloat[(r2+20)];
   34962 	f11 = heapFloat[(r2+16)];
   34963 	r1 = sp + -40;
   34964 	f3 = f3*f1;
   34965 	f7 = f7*f5;
   34966 	r4 = r1 >> 2;
   34967 	heap32[(fp+-10)] = r3;
   34968 	f2 = f2*f1;
   34969 	f6 = f6*f5;
   34970 	f3 = f3+f7;
   34971 	f7 = f11*f9;
   34972 	f0 = f0*f1;
   34973 	f1 = f4*f5;
   34974 	f2 = f2+f6;
   34975 	f4 = f10*f9;
   34976 	f3 = f3+f7;
   34977 	heap32[(r4+1)] = r0;
   34978 	f0 = f0+f1;
   34979 	f1 = f8*f9;
   34980 	f2 = f2+f4;
   34981 	heapFloat[(r4+2)] = f3;
   34982 	f0 = f0+f1;
   34983 	heapFloat[(r4+3)] = f2;
   34984 	heapFloat[(r4+4)] = f0;
   34985 	heap32[(r4+5)] = 0;
   34986 	heap32[(r4+6)] = heap32[(fp+2)];
   34987 	r0 = heap32[(r2+11)];
   34988 	r2 = r0 >> 2;
   34989 	r2 = heap32[(r2)];
   34990 	r2 = r2 >> 2;
   34991 	r2 = heap32[(r2+3)];
   34992 	heap32[(g0)] = r0;
   34993 	heap32[(g0+1)] = r1;
   34994 	heap32[(g0+2)] = 1;
   34995 	__FUNCTION_TABLE__[(r2)>>2](i7);
   34996 	return;
   34997 }
   34998 
   34999 function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitE_0RK9btVector3fii(sp)
   35000 {
   35001 	var i7;
   35002 	var fp = sp>>2;
   35003 	var r0;
   35004 	var r1;
   35005 	var r2;
   35006 	var r3;
   35007 	var r4;
   35008 	var r5;
   35009 	var f0;
   35010 	var f1;
   35011 	var f2;
   35012 	var f3;
   35013 	var f4;
   35014 	var f5;
   35015 	var f6;
   35016 	var f7;
   35017 	var f8;
   35018 	var f9;
   35019 	var f10;
   35020 	var f11;
   35021 var __label__ = 0;
   35022 	i7 = sp + -56;var g0 = i7>>2; // save stack
   35023 	r0 = sp + -8;
   35024 	r1 = heap32[(fp+3)];
   35025 	r2 = heap32[(fp+1)];
   35026 	r3 = heap32[(fp)];
   35027 	r4 = r0 >> 2;
   35028 	r5 = heap32[(fp+4)];
   35029 	heap32[(fp+-2)] = r1;
   35030 	r1 = r2 >> 2;
   35031 	heap32[(r4+1)] = r5;
   35032 	r2 = r3 >> 2;
   35033 	r3 = heap32[(r2+12)];
   35034 	f0 = heapFloat[(r2+22)];
   35035 	f1 = heapFloat[(r1)];
   35036 	f2 = heapFloat[(r2+18)];
   35037 	f3 = heapFloat[(r2+14)];
   35038 	f4 = heapFloat[(r2+23)];
   35039 	f5 = heapFloat[(r1+1)];
   35040 	f6 = heapFloat[(r2+19)];
   35041 	f7 = heapFloat[(r2+15)];
   35042 	f8 = heapFloat[(r2+24)];
   35043 	f9 = heapFloat[(r1+2)];
   35044 	f10 = heapFloat[(r2+20)];
   35045 	f11 = heapFloat[(r2+16)];
   35046 	r1 = sp + -40;
   35047 	f3 = f3*f1;
   35048 	f7 = f7*f5;
   35049 	r4 = r1 >> 2;
   35050 	heap32[(fp+-10)] = r3;
   35051 	f2 = f2*f1;
   35052 	f6 = f6*f5;
   35053 	f3 = f3+f7;
   35054 	f7 = f11*f9;
   35055 	f0 = f0*f1;
   35056 	f1 = f4*f5;
   35057 	f2 = f2+f6;
   35058 	f4 = f10*f9;
   35059 	f3 = f3+f7;
   35060 	heap32[(r4+1)] = r0;
   35061 	f0 = f0+f1;
   35062 	f1 = f8*f9;
   35063 	f2 = f2+f4;
   35064 	heapFloat[(r4+2)] = f3;
   35065 	f0 = f0+f1;
   35066 	heapFloat[(r4+3)] = f2;
   35067 	heapFloat[(r4+4)] = f0;
   35068 	heap32[(r4+5)] = 0;
   35069 	heap32[(r4+6)] = heap32[(fp+2)];
   35070 	r0 = heap32[(r2+11)];
   35071 	r2 = r0 >> 2;
   35072 	r2 = heap32[(r2)];
   35073 	r2 = r2 >> 2;
   35074 	r2 = heap32[(r2+3)];
   35075 	heap32[(g0)] = r0;
   35076 	heap32[(g0+1)] = r1;
   35077 	heap32[(g0+2)] = 1;
   35078 	__FUNCTION_TABLE__[(r2)>>2](i7);
   35079 	return;
   35080 }
   35081 
   35082 function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D1Ev(sp)
   35083 {
   35084 	var i7;
   35085 	var fp = sp>>2;
   35086 	var r0;
   35087 	var r1;
   35088 var __label__ = 0;
   35089 	i7 = sp + 0;var g0 = i7>>2; // save stack
   35090 	r0 = heap32[(fp)];
   35091 	r1 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2;
   35092 	r0 = r0 >> 2;
   35093 	r1 = (r1 + 8)|0;
   35094 	heap32[(r0)] = r1;
   35095 	return;
   35096 }
   35097 
   35098 function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D0Ev(sp)
   35099 {
   35100 	var i7;
   35101 	var fp = sp>>2;
   35102 	var r0;
   35103 	var r1;
   35104 	var r2;
   35105 var __label__ = 0;
   35106 	i7 = sp + -8;var g0 = i7>>2; // save stack
   35107 	r0 = heap32[(fp)];
   35108 	r1 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2;
   35109 	r2 = r0 >> 2;
   35110 	r1 = (r1 + 8)|0;
   35111 	heap32[(r2)] = r1;
   35112 	heap32[(g0)] = r0;
   35113 	_ZdlPv(i7);
   35114 	return;
   35115 }
   35116 
   35117 function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder215addSingleResultERNS_14LocalRayResultEb(sp)
   35118 {
   35119 	var i7;
   35120 	var fp = sp>>2;
   35121 	var r0;
   35122 	var r1;
   35123 	var r2;
   35124 	var r3;
   35125 	var r4;
   35126 	var r5;
   35127 var __label__ = 0;
   35128 	i7 = sp + -24;var g0 = i7>>2; // save stack
   35129 	r0 = heap32[(fp)];
   35130 	r1 = sp + -8;
   35131 	r0 = r0 >> 2;
   35132 	heap32[(fp+-2)] = -1;
   35133 	r2 = heap32[(fp+1)];
   35134 	r3 = r1 >> 2;
   35135 	r4 = heap32[(r0+6)];
   35136 	r5 = r2 >> 2;
   35137 	heap32[(r3+1)] = r4;
   35138 	r3 = heap32[(r5+1)];
   35139 if(!(r3 !=0)) //_LBB205_2
   35140 {
   35141 	heap32[(r5+1)] = r1;
   35142 }
   35143 	r1 = heap32[(fp+2)];
   35144 	r3 = heap32[(r0+5)];
   35145 	r4 = r3 >> 2;
   35146 	r4 = heap32[(r4)];
   35147 	r4 = r4 >> 2;
   35148 	r4 = heap32[(r4+3)];
   35149 	heap32[(g0)] = r3;
   35150 	heap32[(g0+1)] = r2;
   35151 	heap32[(g0+2)] = r1;
   35152 	__FUNCTION_TABLE__[(r4)>>2](i7);
   35153 	r1 = heap32[(r0+5)];
   35154 	r1 = r1 >> 2;
   35155 	heap32[(r0+1)] = heap32[(r1+1)];
   35156 	return;
   35157 }
   35158 
   35159 function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitERK9btVector3SG_fii(sp)
   35160 {
   35161 	var i7;
   35162 	var fp = sp>>2;
   35163 	var r0;
   35164 	var r1;
   35165 	var r2;
   35166 	var r3;
   35167 	var r4;
   35168 	var r5;
   35169 	var r6;
   35170 	var r7;
   35171 	var f0;
   35172 	var f1;
   35173 var __label__ = 0;
   35174 	i7 = sp + -72;var g0 = i7>>2; // save stack
   35175 	r0 = sp + -8;
   35176 	r1 = heap32[(fp+4)];
   35177 	r2 = heap32[(fp)];
   35178 	r3 = r0 >> 2;
   35179 	r4 = heap32[(fp+5)];
   35180 	heap32[(fp+-2)] = r1;
   35181 	r1 = r2 >> 2;
   35182 	heap32[(r3+1)] = r4;
   35183 	r2 = heap32[(r1+52)];
   35184 	f0 = heapFloat[(fp+3)];
   35185 	r3 = r2 >> 2;
   35186 	f1 = heapFloat[(r3+1)];
   35187 	if(f1 <f0) //_LBB206_2
   35188 {
   35189 	f_g0 = f0;
   35190 	return;
   35191 }
   35192 else{
   35193 	r4 = heap32[(fp+1)];
   35194 	r5 = heap32[(fp+2)];
   35195 	r1 = heap32[(r1+53)];
   35196 	r6 = sp + -56;
   35197 	r7 = r6 >> 2;
   35198 	heap32[(fp+-14)] = r1;
   35199 	r1 = r4 >> 2;
   35200 	heap32[(r7+1)] = r0;
   35201 	heap32[(r7+2)] = heap32[(r1)];
   35202 	heap32[(r7+3)] = heap32[(r1+1)];
   35203 	heap32[(r7+4)] = heap32[(r1+2)];
   35204 	r0 = r5 >> 2;
   35205 	heap32[(r7+5)] = heap32[(r1+3)];
   35206 	heap32[(r7+6)] = heap32[(r0)];
   35207 	heap32[(r7+7)] = heap32[(r0+1)];
   35208 	heap32[(r7+8)] = heap32[(r0+2)];
   35209 	heap32[(r7+9)] = heap32[(r0+3)];
   35210 	heapFloat[(r7+10)] = f0;
   35211 	r0 = heap32[(r3)];
   35212 	r0 = r0 >> 2;
   35213 	r0 = heap32[(r0+3)];
   35214 	heap32[(g0)] = r2;
   35215 	heap32[(g0+1)] = r6;
   35216 	heap32[(g0+2)] = 1;
   35217 	__FUNCTION_TABLE__[(r0)>>2](i7);
   35218 	return;
   35219 }
   35220 }
   35221 
   35222 function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitE_0RK9btVector3SG_fii(sp)
   35223 {
   35224 	var i7;
   35225 	var fp = sp>>2;
   35226 	var r0;
   35227 	var r1;
   35228 	var r2;
   35229 	var r3;
   35230 	var r4;
   35231 	var r5;
   35232 	var r6;
   35233 	var r7;
   35234 	var f0;
   35235 	var f1;
   35236 var __label__ = 0;
   35237 	i7 = sp + -72;var g0 = i7>>2; // save stack
   35238 	r0 = sp + -8;
   35239 	r1 = heap32[(fp+4)];
   35240 	r2 = heap32[(fp)];
   35241 	r3 = r0 >> 2;
   35242 	r4 = heap32[(fp+5)];
   35243 	heap32[(fp+-2)] = r1;
   35244 	r1 = r2 >> 2;
   35245 	heap32[(r3+1)] = r4;
   35246 	r2 = heap32[(r1+52)];
   35247 	f0 = heapFloat[(fp+3)];
   35248 	r3 = r2 >> 2;
   35249 	f1 = heapFloat[(r3+1)];
   35250 	if(f1 <f0) //_LBB207_2
   35251 {
   35252 	f_g0 = f0;
   35253 	return;
   35254 }
   35255 else{
   35256 	r4 = heap32[(fp+1)];
   35257 	r5 = heap32[(fp+2)];
   35258 	r1 = heap32[(r1+53)];
   35259 	r6 = sp + -56;
   35260 	r7 = r6 >> 2;
   35261 	heap32[(fp+-14)] = r1;
   35262 	r1 = r4 >> 2;
   35263 	heap32[(r7+1)] = r0;
   35264 	heap32[(r7+2)] = heap32[(r1)];
   35265 	heap32[(r7+3)] = heap32[(r1+1)];
   35266 	heap32[(r7+4)] = heap32[(r1+2)];
   35267 	r0 = r5 >> 2;
   35268 	heap32[(r7+5)] = heap32[(r1+3)];
   35269 	heap32[(r7+6)] = heap32[(r0)];
   35270 	heap32[(r7+7)] = heap32[(r0+1)];
   35271 	heap32[(r7+8)] = heap32[(r0+2)];
   35272 	heap32[(r7+9)] = heap32[(r0+3)];
   35273 	heapFloat[(r7+10)] = f0;
   35274 	r0 = heap32[(r3)];
   35275 	r0 = r0 >> 2;
   35276 	r0 = heap32[(r0+3)];
   35277 	heap32[(g0)] = r2;
   35278 	heap32[(g0+1)] = r6;
   35279 	heap32[(g0+2)] = 0;
   35280 	__FUNCTION_TABLE__[(r0)>>2](i7);
   35281 	return;
   35282 }
   35283 }
   35284 
   35285 function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD1Ev(sp)
   35286 {
   35287 	var i7;
   35288 	var fp = sp>>2;
   35289 	var r0;
   35290 	var r1;
   35291 var __label__ = 0;
   35292 	i7 = sp + 0;var g0 = i7>>2; // save stack
   35293 	r0 = heap32[(fp)];
   35294 	r1 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder;
   35295 	r0 = r0 >> 2;
   35296 	r1 = (r1 + 8)|0;
   35297 	heap32[(r0)] = r1;
   35298 	return;
   35299 }
   35300 
   35301 function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD0Ev(sp)
   35302 {
   35303 	var i7;
   35304 	var fp = sp>>2;
   35305 	var r0;
   35306 	var r1;
   35307 	var r2;
   35308 var __label__ = 0;
   35309 	i7 = sp + -8;var g0 = i7>>2; // save stack
   35310 	r0 = heap32[(fp)];
   35311 	r1 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder;
   35312 	r2 = r0 >> 2;
   35313 	r1 = (r1 + 8)|0;
   35314 	heap32[(r2)] = r1;
   35315 	heap32[(g0)] = r0;
   35316 	_ZdlPv(i7);
   35317 	return;
   35318 }
   35319 
   35320 function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdder15addSingleResultERNS_17LocalConvexResultEb(sp)
   35321 {
   35322 	var i7;
   35323 	var fp = sp>>2;
   35324 	var r0;
   35325 	var r1;
   35326 	var r2;
   35327 	var r3;
   35328 	var r4;
   35329 	var r5;
   35330 var __label__ = 0;
   35331 	i7 = sp + -24;var g0 = i7>>2; // save stack
   35332 	r0 = heap32[(fp)];
   35333 	r1 = sp + -8;
   35334 	r0 = r0 >> 2;
   35335 	heap32[(fp+-2)] = -1;
   35336 	r2 = heap32[(fp+1)];
   35337 	r3 = r1 >> 2;
   35338 	r4 = heap32[(r0+4)];
   35339 	r5 = r2 >> 2;
   35340 	heap32[(r3+1)] = r4;
   35341 	r3 = heap32[(r5+1)];
   35342 if(!(r3 !=0)) //_LBB210_2
   35343 {
   35344 	heap32[(r5+1)] = r1;
   35345 }
   35346 	r1 = heap32[(fp+2)];
   35347 	r3 = heap32[(r0+3)];
   35348 	r4 = r3 >> 2;
   35349 	r4 = heap32[(r4)];
   35350 	r4 = r4 >> 2;
   35351 	r4 = heap32[(r4+3)];
   35352 	heap32[(g0)] = r3;
   35353 	heap32[(g0+1)] = r2;
   35354 	heap32[(g0+2)] = r1;
   35355 	__FUNCTION_TABLE__[(r4)>>2](i7);
   35356 	r1 = heap32[(r0+3)];
   35357 	r1 = r1 >> 2;
   35358 	heap32[(r0+1)] = heap32[(r1+1)];
   35359 	return;
   35360 }
   35361 
   35362 function _ZN17DebugDrawcallbackD1Ev(sp)
   35363 {
   35364 	var i7;
   35365 	var fp = sp>>2;
   35366 	var r0;
   35367 	var r1;
   35368 	var r2;
   35369 	var r3;
   35370 var __label__ = 0;
   35371 	i7 = sp + 0;var g0 = i7>>2; // save stack
   35372 	r0 = _ZTV17DebugDrawcallback;
   35373 	r1 = heap32[(fp)];
   35374 	r1 = r1 >> 2;
   35375 	r2 = (r0 + 8)|0;
   35376 	r3 = _ZTV31btInternalTriangleIndexCallback;
   35377 	r0 = (r0 + 32)|0;
   35378 	heap32[(r1)] = r2;
   35379 	r2 = _ZTV18btTriangleCallback;
   35380 	r3 = (r3 + 8)|0;
   35381 	heap32[(r1+1)] = r0;
   35382 	r0 = (r2 + 8)|0;
   35383 	heap32[(r1+1)] = r3;
   35384 	heap32[(r1)] = r0;
   35385 	return;
   35386 }
   35387 
   35388 function _ZN17DebugDrawcallbackD0Ev(sp)
   35389 {
   35390 	var i7;
   35391 	var fp = sp>>2;
   35392 	var r0;
   35393 	var r1;
   35394 	var r2;
   35395 	var r3;
   35396 	var r4;
   35397 var __label__ = 0;
   35398 	i7 = sp + -8;var g0 = i7>>2; // save stack
   35399 	r0 = _ZTV17DebugDrawcallback;
   35400 	r1 = heap32[(fp)];
   35401 	r2 = r1 >> 2;
   35402 	r3 = (r0 + 8)|0;
   35403 	r4 = _ZTV31btInternalTriangleIndexCallback;
   35404 	r0 = (r0 + 32)|0;
   35405 	heap32[(r2)] = r3;
   35406 	r3 = _ZTV18btTriangleCallback;
   35407 	r4 = (r4 + 8)|0;
   35408 	heap32[(r2+1)] = r0;
   35409 	r0 = (r3 + 8)|0;
   35410 	heap32[(r2+1)] = r4;
   35411 	heap32[(r2)] = r0;
   35412 	heap32[(g0)] = r1;
   35413 	_ZdlPv(i7);
   35414 	return;
   35415 }
   35416 
   35417 function _ZN17DebugDrawcallback15processTriangleEP9btVector3ii(sp)
   35418 {
   35419 	var i7;
   35420 	var fp = sp>>2;
   35421 	var r0;
   35422 	var r1;
   35423 	var r2;
   35424 	var r3;
   35425 	var r4;
   35426 	var r5;
   35427 	var r6;
   35428 	var r7;
   35429 	var r8;
   35430 	var r9;
   35431 	var r10;
   35432 	var f0;
   35433 	var f1;
   35434 	var f2;
   35435 	var f3;
   35436 	var f4;
   35437 	var f5;
   35438 	var f6;
   35439 	var f7;
   35440 	var f8;
   35441 	var f9;
   35442 	var f10;
   35443 	var f11;
   35444 	var f12;
   35445 	var f13;
   35446 	var f14;
   35447 	var f15;
   35448 	var f16;
   35449 	var f17;
   35450 	var f18;
   35451 	var f19;
   35452 	var f20;
   35453 	var f21;
   35454 var __label__ = 0;
   35455 	i7 = sp + -112;var g0 = i7>>2; // save stack
   35456 	r0 = heap32[(fp)];
   35457 	r1 = heap32[(fp+1)];
   35458 	r2 = r0 >> 2;
   35459 	r1 = r1 >> 2;
   35460 	f0 = heapFloat[(r1)];
   35461 	f1 = heapFloat[(r2+7)];
   35462 	f2 = heapFloat[(r1+1)];
   35463 	f3 = heapFloat[(r2+8)];
   35464 	f4 = heapFloat[(r2+11)];
   35465 	f5 = heapFloat[(r2+12)];
   35466 	f6 = f1*f0;
   35467 	f7 = f3*f2;
   35468 	f8 = heapFloat[(r1+2)];
   35469 	f9 = heapFloat[(r2+9)];
   35470 	f10 = heapFloat[(r2+15)];
   35471 	f11 = heapFloat[(r2+16)];
   35472 	f12 = heapFloat[(r2+13)];
   35473 	f13 = f4*f0;
   35474 	f14 = f5*f2;
   35475 	f6 = f6+f7;
   35476 	f7 = f9*f8;
   35477 	f15 = heapFloat[(r2+17)];
   35478 	f0 = f10*f0;
   35479 	f2 = f11*f2;
   35480 	f13 = f13+f14;
   35481 	f14 = f12*f8;
   35482 	f6 = f6+f7;
   35483 	f7 = heapFloat[(r2+19)];
   35484 	f16 = heapFloat[(r2+21)];
   35485 	f17 = heapFloat[(r2+20)];
   35486 	r3 = sp + -32;
   35487 	f13 = f13+f14;
   35488 	f0 = f0+f2;
   35489 	f2 = f15*f8;
   35490 	f6 = f6+f7;
   35491 	f0 = f0+f2;
   35492 	r4 = r3 >> 2;
   35493 	f2 = f13+f17;
   35494 	heapFloat[(fp+-8)] = f6;
   35495 	f0 = f0+f16;
   35496 	heapFloat[(r4+1)] = f2;
   35497 	heapFloat[(r4+2)] = f0;
   35498 	heap32[(r4+3)] = 0;
   35499 	f8 = heapFloat[(r1+4)];
   35500 	f13 = heapFloat[(r1+5)];
   35501 	f14 = heapFloat[(r1+6)];
   35502 	f18 = f1*f8;
   35503 	f19 = f3*f13;
   35504 	f20 = f4*f8;
   35505 	f21 = f5*f13;
   35506 	f18 = f18+f19;
   35507 	f19 = f9*f14;
   35508 	f18 = f18+f19;
   35509 	f8 = f10*f8;
   35510 	f13 = f11*f13;
   35511 	f19 = f20+f21;
   35512 	f20 = f12*f14;
   35513 	f18 = f18+f7;
   35514 	r4 = sp + -48;
   35515 	f19 = f19+f20;
   35516 	f8 = f8+f13;
   35517 	f13 = f15*f14;
   35518 	f14 = f19+f17;
   35519 	f8 = f8+f13;
   35520 	r5 = r4 >> 2;
   35521 	heapFloat[(fp+-12)] = f18;
   35522 	f8 = f8+f16;
   35523 	heapFloat[(r5+1)] = f14;
   35524 	heapFloat[(r5+2)] = f8;
   35525 	heap32[(r5+3)] = 0;
   35526 	f13 = heapFloat[(r1+8)];
   35527 	f19 = heapFloat[(r1+9)];
   35528 	f20 = heapFloat[(r1+10)];
   35529 	f1 = f1*f13;
   35530 	f3 = f3*f19;
   35531 	f4 = f4*f13;
   35532 	f5 = f5*f19;
   35533 	f1 = f1+f3;
   35534 	f3 = f9*f20;
   35535 	f1 = f1+f3;
   35536 	f3 = f10*f13;
   35537 	f9 = f11*f19;
   35538 	f4 = f4+f5;
   35539 	f5 = f12*f20;
   35540 	r1 = sp + -64;
   35541 	f4 = f4+f5;
   35542 	f1 = f1+f7;
   35543 	f3 = f3+f9;
   35544 	f5 = f15*f20;
   35545 	f3 = f3+f5;
   35546 	f4 = f4+f17;
   35547 	r5 = r1 >> 2;
   35548 	heapFloat[(fp+-16)] = f1;
   35549 	f5 = f6+f18;
   35550 	f3 = f3+f16;
   35551 	heapFloat[(r5+1)] = f4;
   35552 	f7 = f2+f14;
   35553 	heapFloat[(r5+2)] = f3;
   35554 	f5 = f5+f1;
   35555 	f9 =        0.3333333432674408;
   35556 	r6 = sp + -80;
   35557 	f10 = f0+f8;
   35558 	f7 = f7+f4;
   35559 	f8 = f8-f0;
   35560 	f4 = f4-f2;
   35561 	f11 = f18-f6;
   35562 	f0 = f3-f0;
   35563 	f2 = f14-f2;
   35564 	f1 = f1-f6;
   35565 	f5 = f5*f9;
   35566 	heap32[(r5+3)] = 0;
   35567 	f3 = f10+f3;
   35568 	f6 = f2*f0;
   35569 	f10 = f8*f4;
   35570 	f8 = f8*f1;
   35571 	f0 = f11*f0;
   35572 	r5 = r6 >> 2;
   35573 	f7 = f7*f9;
   35574 	heapFloat[(fp+-20)] = f5;
   35575 	f5 = f6-f10;
   35576 	f0 = f8-f0;
   35577 	f4 = f11*f4;
   35578 	f1 = f2*f1;
   35579 	f2 = f3*f9;
   35580 	heapFloat[(r5+1)] = f7;
   35581 	f1 = f4-f1;
   35582 	heapFloat[(r5+2)] = f2;
   35583 	f2 = f5*f5;
   35584 	f3 = f0*f0;
   35585 	heap32[(r5+3)] = 0;
   35586 	f2 = f2+f3;
   35587 	f3 = f1*f1;
   35588 	f2 = f2+f3;
   35589 	heapFloat[(g0)] = f2;
   35590 	r7 = sp + -96;
   35591 	sqrtf(i7);
   35592 	r8 = r7 >> 2;
   35593 	heap32[(fp+-24)] = 1065353216;
   35594 	heap32[(r8+1)] = 1065353216;
   35595 	heap32[(r8+2)] = 0;
   35596 	heap32[(r8+3)] = 0;
   35597 	r8 = heap32[(r2+2)];
   35598 	r9 = r8 >> 2;
   35599 	f3 =                         1;
   35600 	r9 = heap32[(r9)];
   35601 	f2 = f3/f_g0;
   35602 	r9 = r9 >> 2;
   35603 	r9 = heap32[(r9+2)];
   35604 	f3 = f5*f2;
   35605 	f4 = heapFloat[(fp+-20)];
   35606 	f5 = heapFloat[(r5+2)];
   35607 	f6 = heapFloat[(r5+1)];
   35608 	r5 = sp + -16;
   35609 	f0 = f0*f2;
   35610 	f3 = f4+f3;
   35611 	f1 = f1*f2;
   35612 	r10 = r5 >> 2;
   35613 	f0 = f6+f0;
   35614 	heapFloat[(fp+-4)] = f3;
   35615 	f1 = f5+f1;
   35616 	heapFloat[(r10+1)] = f0;
   35617 	heapFloat[(r10+2)] = f1;
   35618 	heap32[(r10+3)] = 0;
   35619 	heap32[(g0)] = r8;
   35620 	heap32[(g0+1)] = r6;
   35621 	heap32[(g0+2)] = r5;
   35622 	heap32[(g0+3)] = r7;
   35623 	__FUNCTION_TABLE__[(r9)>>2](i7);
   35624 	r5 = heap32[(r2+2)];
   35625 	r6 = r5 >> 2;
   35626 	r6 = heap32[(r6)];
   35627 	r6 = r6 >> 2;
   35628 	r6 = heap32[(r6+2)];
   35629 	r0 = (r0 + 12)|0;
   35630 	heap32[(g0)] = r5;
   35631 	heap32[(g0+1)] = r3;
   35632 	heap32[(g0+2)] = r4;
   35633 	heap32[(g0+3)] = r0;
   35634 	__FUNCTION_TABLE__[(r6)>>2](i7);
   35635 	r5 = heap32[(r2+2)];
   35636 	r6 = r5 >> 2;
   35637 	r6 = heap32[(r6)];
   35638 	r6 = r6 >> 2;
   35639 	r6 = heap32[(r6+2)];
   35640 	heap32[(g0)] = r5;
   35641 	heap32[(g0+1)] = r4;
   35642 	heap32[(g0+2)] = r1;
   35643 	heap32[(g0+3)] = r0;
   35644 	__FUNCTION_TABLE__[(r6)>>2](i7);
   35645 	r2 = heap32[(r2+2)];
   35646 	r4 = r2 >> 2;
   35647 	r4 = heap32[(r4)];
   35648 	r4 = r4 >> 2;
   35649 	r4 = heap32[(r4+2)];
   35650 	heap32[(g0)] = r2;
   35651 	heap32[(g0+1)] = r1;
   35652 	heap32[(g0+2)] = r3;
   35653 	heap32[(g0+3)] = r0;
   35654 	__FUNCTION_TABLE__[(r4)>>2](i7);
   35655 	return;
   35656 }
   35657 
   35658 function _ZN17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii(sp)
   35659 {
   35660 	var i7;
   35661 	var fp = sp>>2;
   35662 	var r0;
   35663 	var r1;
   35664 	var r2;
   35665 	var r3;
   35666 	var r4;
   35667 var __label__ = 0;
   35668 	i7 = sp + -16;var g0 = i7>>2; // save stack
   35669 	r0 = heap32[(fp)];
   35670 	r1 = r0 >> 2;
   35671 	r1 = heap32[(r1)];
   35672 	r1 = r1 >> 2;
   35673 	r1 = heap32[(r1+2)];
   35674 	r2 = heap32[(fp+1)];
   35675 	r3 = heap32[(fp+2)];
   35676 	r4 = heap32[(fp+3)];
   35677 	heap32[(g0)] = r0;
   35678 	heap32[(g0+1)] = r2;
   35679 	heap32[(g0+2)] = r3;
   35680 	heap32[(g0+3)] = r4;
   35681 	__FUNCTION_TABLE__[(r1)>>2](i7);
   35682 	return;
   35683 }
   35684 
   35685 function _ZThn4_N17DebugDrawcallbackD1Ev(sp)
   35686 {
   35687 	var i7;
   35688 	var fp = sp>>2;
   35689 	var r0;
   35690 	var r1;
   35691 	var r2;
   35692 	var r3;
   35693 var __label__ = 0;
   35694 	i7 = sp + 0;var g0 = i7>>2; // save stack
   35695 	r0 = _ZTV17DebugDrawcallback;
   35696 	r1 = heap32[(fp)];
   35697 	r1 = r1 >> 2;
   35698 	r2 = (r0 + 8)|0;
   35699 	r3 = _ZTV31btInternalTriangleIndexCallback;
   35700 	r0 = (r0 + 32)|0;
   35701 	heap32[(r1+-1)] = r2;
   35702 	r2 = _ZTV18btTriangleCallback;
   35703 	r3 = (r3 + 8)|0;
   35704 	heap32[(r1)] = r0;
   35705 	r0 = (r2 + 8)|0;
   35706 	heap32[(r1)] = r3;
   35707 	heap32[(r1+-1)] = r0;
   35708 	return;
   35709 }
   35710 
   35711 function _ZThn4_N17DebugDrawcallbackD0Ev(sp)
   35712 {
   35713 	var i7;
   35714 	var fp = sp>>2;
   35715 	var r0;
   35716 	var r1;
   35717 	var r2;
   35718 	var r3;
   35719 	var r4;
   35720 var __label__ = 0;
   35721 	i7 = sp + -8;var g0 = i7>>2; // save stack
   35722 	r0 = heap32[(fp)];
   35723 	r1 = _ZTV17DebugDrawcallback;
   35724 	r2 = r0 >> 2;
   35725 	r3 = (r1 + 8)|0;
   35726 	r4 = _ZTV31btInternalTriangleIndexCallback;
   35727 	r1 = (r1 + 32)|0;
   35728 	heap32[(r2+-1)] = r3;
   35729 	r3 = _ZTV18btTriangleCallback;
   35730 	r4 = (r4 + 8)|0;
   35731 	heap32[(r2)] = r1;
   35732 	r1 = (r3 + 8)|0;
   35733 	heap32[(r2)] = r4;
   35734 	heap32[(r2+-1)] = r1;
   35735 	r0 = (r0 + -4)|0;
   35736 	heap32[(g0)] = r0;
   35737 	_ZdlPv(i7);
   35738 	return;
   35739 }
   35740 
   35741 function _ZThn4_N17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii(sp)
   35742 {
   35743 	var i7;
   35744 	var fp = sp>>2;
   35745 	var r0;
   35746 	var r1;
   35747 	var r2;
   35748 	var r3;
   35749 	var r4;
   35750 var __label__ = 0;
   35751 	i7 = sp + -16;var g0 = i7>>2; // save stack
   35752 	r0 = heap32[(fp)];
   35753 	r1 = r0 >> 2;
   35754 	r1 = heap32[(r1+-1)];
   35755 	r1 = r1 >> 2;
   35756 	r1 = heap32[(r1+2)];
   35757 	r0 = (r0 + -4)|0;
   35758 	r2 = heap32[(fp+1)];
   35759 	r3 = heap32[(fp+2)];
   35760 	r4 = heap32[(fp+3)];
   35761 	heap32[(g0)] = r0;
   35762 	heap32[(g0+1)] = r2;
   35763 	heap32[(g0+2)] = r3;
   35764 	heap32[(g0+3)] = r4;
   35765 	__FUNCTION_TABLE__[(r1)>>2](i7);
   35766 	return;
   35767 }
   35768 
   35769 function _ZN16btCollisionWorldD1Ev(sp)
   35770 {
   35771 	var i7;
   35772 	var fp = sp>>2;
   35773 	var r0;
   35774 var __label__ = 0;
   35775 	i7 = sp + -8;var g0 = i7>>2; // save stack
   35776 	r0 = heap32[(fp)];
   35777 	heap32[(g0)] = r0;
   35778 	_ZN16btCollisionWorldD2Ev(i7);
   35779 	return;
   35780 }
   35781 
   35782 function _ZN16btCollisionWorldD0Ev(sp)
   35783 {
   35784 	var i7;
   35785 	var fp = sp>>2;
   35786 	var r0;
   35787 	var r1;
   35788 	var r2;
   35789 	var r3;
   35790 	var r4;
   35791 	var r5;
   35792 	var r6;
   35793 	var r7;
   35794 var __label__ = 0;
   35795 	i7 = sp + -16;var g0 = i7>>2; // save stack
   35796 	r0 = heap32[(fp)];
   35797 	r1 = _ZTV16btCollisionWorld;
   35798 	r2 = r0 >> 2;
   35799 	r1 = (r1 + 8)|0;
   35800 	heap32[(r2)] = r1;
   35801 	r1 = heap32[(r2+4)];
   35802 	r3 = heap32[(r2+2)];
   35803 	if(r3 >0) //_LBB219_2
   35804 {
   35805 	r3 = 0;
   35806 _3: while(true){
   35807 	r4 = r3 << 2;
   35808 	r1 = (r1 + r4)|0;
   35809 	r1 = r1 >> 2;
   35810 	r1 = heap32[(r1)];
   35811 	r1 = r1 >> 2;
   35812 	r4 = heap32[(r1+47)];
   35813 if(!(r4 ==0)) //_LBB219_5
   35814 {
   35815 	r5 = heap32[(r2+20)];
   35816 	r6 = r5 >> 2;
   35817 	r6 = heap32[(r6)];
   35818 	r6 = r6 >> 2;
   35819 	r6 = heap32[(r6+9)];
   35820 	heap32[(g0)] = r5;
   35821 	__FUNCTION_TABLE__[(r6)>>2](i7);
   35822 	r6 = r_g0 >> 2;
   35823 	r6 = heap32[(r6)];
   35824 	r6 = r6 >> 2;
   35825 	r6 = heap32[(r6+10)];
   35826 	r7 = heap32[(r2+6)];
   35827 	heap32[(g0)] = r_g0;
   35828 	heap32[(g0+1)] = r4;
   35829 	heap32[(g0+2)] = r7;
   35830 	__FUNCTION_TABLE__[(r6)>>2](i7);
   35831 	r5 = heap32[(r2+20)];
   35832 	r6 = r5 >> 2;
   35833 	r6 = heap32[(r6)];
   35834 	r6 = r6 >> 2;
   35835 	r6 = heap32[(r6+3)];
   35836 	r7 = heap32[(r2+6)];
   35837 	heap32[(g0)] = r5;
   35838 	heap32[(g0+1)] = r4;
   35839 	heap32[(g0+2)] = r7;
   35840 	__FUNCTION_TABLE__[(r6)>>2](i7);
   35841 	heap32[(r1+47)] = 0;
   35842 }
   35843 	r3 = (r3 + 1)|0;
   35844 	r1 = heap32[(r2+4)];
   35845 	r4 = heap32[(r2+2)];
   35846 	if(r4 >r3) //_LBB219_3
   35847 {
   35848 continue _3;
   35849 }
   35850 else{
   35851 break _3;
   35852 }
   35853 }
   35854 }
   35855 if(!(r1 ==0)) //_LBB219_10
   35856 {
   35857 	r3 = heapU8[r0+20];
   35858 if(!(r3 ==0)) //_LBB219_9
   35859 {
   35860 	r3 = gNumAlignedFree;
   35861 	r3 = r3 >> 2;
   35862 	r4 = heap32[(r3)];
   35863 	r4 = (r4 + 1)|0;
   35864 	r1 = r1 >> 2;
   35865 	heap32[(r3)] = r4;
   35866 	r1 = heap32[(r1+-1)];
   35867 	heap32[(g0)] = r1;
   35868 	free(i7);
   35869 }
   35870 	heap32[(r2+4)] = 0;
   35871 }
   35872 	r1 = 1;
   35873 	heap8[r0+20] = r1;
   35874 	heap32[(r2+4)] = 0;
   35875 	heap32[(r2+2)] = 0;
   35876 	heap32[(r2+3)] = 0;
   35877 	heap32[(g0)] = r0;
   35878 	_ZdlPv(i7);
   35879 	return;
   35880 }
   35881 
   35882 function _ZN16btCollisionWorld11updateAabbsEv(sp)
   35883 {
   35884 	var i7;
   35885 	var fp = sp>>2;
   35886 	var r0;
   35887 	var r1;
   35888 	var r2;
   35889 	var r3;
   35890 	var r4;
   35891 	var r5;
   35892 	var r6;
   35893 	var r7;
   35894 	var r8;
   35895 	var r9;
   35896 	var f0;
   35897 	var f1;
   35898 	var f2;
   35899 	var f3;
   35900 	var f4;
   35901 	var f5;
   35902 	var f6;
   35903 var __label__ = 0;
   35904 	i7 = sp + -64;var g0 = i7>>2; // save stack
   35905 	r0 = _2E_str1998;
   35906 	r1 = heap32[(fp)];
   35907 	heap32[(g0)] = r0;
   35908 	r0 = r1 >> 2;
   35909 	_ZN15CProfileManager13Start_ProfileEPKc(i7);
   35910 	r2 = heap32[(r0+2)];
   35911 if(!(r2 <1)) //_LBB220_14
   35912 {
   35913 	r2 = 0;
   35914 _3: while(true){
   35915 	r3 = heap32[(r0+4)];
   35916 	r4 = r2 << 2;
   35917 	r3 = (r3 + r4)|0;
   35918 	r3 = r3 >> 2;
   35919 	r2 = (r2 + 1)|0;
   35920 	r3 = heap32[(r3)];
   35921 	r4 = heapU8[r1+88];
   35922 	if(r4 !=0) //_LBB220_5
   35923 {
   35924 __label__ = 5;
   35925 }
   35926 else{
   35927 	r4 = r3 >> 2;
   35928 	r4 = heap32[(r4+54)];
   35929 	if(r4 ==2) //_LBB220_13
   35930 {
   35931 __label__ = 13;
   35932 }
   35933 else{
   35934 	if(r4 ==5) //_LBB220_13
   35935 {
   35936 __label__ = 13;
   35937 }
   35938 else{
   35939 __label__ = 5;
   35940 }
   35941 }
   35942 }
   35943 _8: do {
   35944 if (__label__ == 5){
   35945 	r4 = r3 >> 2;
   35946 	r5 = heap32[(r4+48)];
   35947 	r6 = r5 >> 2;
   35948 	r6 = heap32[(r6)];
   35949 	r6 = r6 >> 2;
   35950 	r6 = heap32[(r6+2)];
   35951 	r7 = sp + -40;
   35952 	r8 = sp + -24;
   35953 	r9 = (r3 + 4)|0;
   35954 	heap32[(g0)] = r5;
   35955 	heap32[(g0+1)] = r9;
   35956 	heap32[(g0+2)] = r8;
   35957 	heap32[(g0+3)] = r7;
   35958 	__FUNCTION_TABLE__[(r6)>>2](i7);
   35959 	f0 =     -0.019999999552965164;
   35960 	f1 = heapFloat[(fp+-6)];
   35961 	f1 = f1+f0;
   35962 	r5 = r8 >> 2;
   35963 	heapFloat[(fp+-6)] = f1;
   35964 	f2 = heapFloat[(r5+1)];
   35965 	f2 = f2+f0;
   35966 	heapFloat[(r5+1)] = f2;
   35967 	f3 = heapFloat[(r5+2)];
   35968 	f0 = f3+f0;
   35969 	heapFloat[(r5+2)] = f0;
   35970 	f3 =      0.019999999552965164;
   35971 	f4 = heapFloat[(fp+-10)];
   35972 	f4 = f4+f3;
   35973 	r5 = r7 >> 2;
   35974 	heapFloat[(fp+-10)] = f4;
   35975 	f5 = heapFloat[(r5+1)];
   35976 	f5 = f5+f3;
   35977 	heapFloat[(r5+1)] = f5;
   35978 	f6 = heapFloat[(r5+2)];
   35979 	f3 = f6+f3;
   35980 	heapFloat[(r5+2)] = f3;
   35981 	r5 = heap32[(r0+20)];
   35982 	r3 = heapU8[r3+204];
   35983 	r3 = r3 & 1;
   35984 if(!(r3 != 0)) //_LBB220_10
   35985 {
   35986 	f1 = f4-f1;
   35987 	f2 = f5-f2;
   35988 	f0 = f3-f0;
   35989 	f1 = f1*f1;
   35990 	f2 = f2*f2;
   35991 	f1 = f1+f2;
   35992 	f0 = f0*f0;
   35993 	f0 = f1+f0;
   35994 	f1 =              999999995904;
   35995 if(!(f0 <f1)) //_LBB220_10
   35996 {
   35997 	r5 = heap32[(r4+54)];
   35998 	r5 = (r5 + -4)|0;
   35999 if(!(uint(r5) <uint(2))) //_LBB220_9
   36000 {
   36001 	heap32[(r4+54)] = 5;
   36002 }
   36003 	r4 = _ZZN16btCollisionWorld16updateSingleAabbEP17btCollisionObjectE8reportMe_2E_b;
   36004 	r5 = heapU8[r4];
   36005 	if(r5 != 0) //_LBB220_13
   36006 {
   36007 break _8;
   36008 }
   36009 else{
   36010 	r3 = heap32[(r0+21)];
   36011 	if(r3 ==0) //_LBB220_13
   36012 {
   36013 break _8;
   36014 }
   36015 else{
   36016 	r5 = 1;
   36017 	r6 = r3 >> 2;
   36018 	heap8[r4] = r5;
   36019 	r4 = heap32[(r6)];
   36020 	r4 = r4 >> 2;
   36021 	r4 = heap32[(r4+9)];
   36022 	r5 = _2E_str1594;
   36023 	heap32[(g0)] = r3;
   36024 	heap32[(g0+1)] = r5;
   36025 	__FUNCTION_TABLE__[(r4)>>2](i7);
   36026 	r3 = heap32[(r0+21)];
   36027 	r4 = r3 >> 2;
   36028 	r4 = heap32[(r4)];
   36029 	r4 = r4 >> 2;
   36030 	r4 = heap32[(r4+9)];
   36031 	r5 = _2E_str1695;
   36032 	heap32[(g0)] = r3;
   36033 	heap32[(g0+1)] = r5;
   36034 	__FUNCTION_TABLE__[(r4)>>2](i7);
   36035 	r3 = heap32[(r0+21)];
   36036 	r4 = r3 >> 2;
   36037 	r4 = heap32[(r4)];
   36038 	r4 = r4 >> 2;
   36039 	r4 = heap32[(r4+9)];
   36040 	r5 = _2E_str1796;
   36041 	heap32[(g0)] = r3;
   36042 	heap32[(g0+1)] = r5;
   36043 	__FUNCTION_TABLE__[(r4)>>2](i7);
   36044 	r3 = heap32[(r0+21)];
   36045 	r4 = r3 >> 2;
   36046 	r4 = heap32[(r4)];
   36047 	r4 = r4 >> 2;
   36048 	r4 = heap32[(r4+9)];
   36049 	r5 = _2E_str1897;
   36050 	heap32[(g0)] = r3;
   36051 	heap32[(g0+1)] = r5;
   36052 	__FUNCTION_TABLE__[(r4)>>2](i7);
   36053 break _8;
   36054 }
   36055 }
   36056 }
   36057 }
   36058 	r3 = r5 >> 2;
   36059 	r3 = heap32[(r3)];
   36060 	r3 = r3 >> 2;
   36061 	r3 = heap32[(r3+4)];
   36062 	r6 = heap32[(r0+6)];
   36063 	r4 = heap32[(r4+47)];
   36064 	heap32[(g0)] = r5;
   36065 	heap32[(g0+1)] = r4;
   36066 	heap32[(g0+2)] = r8;
   36067 	heap32[(g0+3)] = r7;
   36068 	heap32[(g0+4)] = r6;
   36069 	__FUNCTION_TABLE__[(r3)>>2](i7);
   36070 }
   36071 } while(0);
   36072 	r3 = heap32[(r0+2)];
   36073 	if(r3 >r2) //_LBB220_2
   36074 {
   36075 continue _3;
   36076 }
   36077 else{
   36078 break _3;
   36079 }
   36080 }
   36081 }
   36082 	r0 = _ZN15CProfileManager11CurrentNodeE;
   36083 	r0 = r0 >> 2;
   36084 	r1 = heap32[(r0)];
   36085 	r2 = r1 >> 2;
   36086 	r3 = heap32[(r2+4)];
   36087 	r3 = (r3 + -1)|0;
   36088 	heap32[(r2+4)] = r3;
   36089 _21: do {
   36090 if(!(r3 !=0)) //_LBB220_20
   36091 {
   36092 	r3 = heap32[(r2+1)];
   36093 	if(r3 !=0) //_LBB220_17
   36094 {
   36095 	r1 = sp + -8;
   36096 	heap32[(g0)] = r1;
   36097 	heap32[(g0+1)] = 0;
   36098 	r3 = _ZL13gProfileClock_2E_0;
   36099 	gettimeofday(i7);
   36100 	r3 = r3 >> 2;
   36101 	r3 = heap32[(r3)];
   36102 	r3 = r3 >> 2;
   36103 	r1 = r1 >> 2;
   36104 	r4 = heap32[(fp+-2)];
   36105 	r5 = heap32[(r3)];
   36106 	r4 = (r4 - r5)|0;
   36107 	r1 = heap32[(r1+1)];
   36108 	r3 = heap32[(r3+1)];
   36109 	r1 = (r1 - r3)|0;
   36110 	r3 = (r4 * 1000000)|0;
   36111 	r1 = (r1 + r3)|0;
   36112 	r3 = heap32[(r2+3)];
   36113 	r1 = (r1 - r3)|0;
   36114 	f0 = uint(r1); //fuitos r1, f0
   36115 	f1 =                      1000;
   36116 	f2 = heapFloat[(r2+2)];
   36117 	f0 = f0/f1;
   36118 	f0 = f2+f0;
   36119 	heapFloat[(r2+2)] = f0;
   36120 	r1 = heap32[(r2+4)];
   36121 	if(r1 !=0) //_LBB220_20
   36122 {
   36123 break _21;
   36124 }
   36125 else{
   36126 	r1 = heap32[(r0)];
   36127 }
   36128 }
   36129 	r1 = r1 >> 2;
   36130 	r1 = heap32[(r1+5)];
   36131 	heap32[(r0)] = r1;
   36132 }
   36133 } while(0);
   36134 	return;
   36135 }
   36136 
   36137 function _ZN16btCollisionWorld14debugDrawWorldEv(sp)
   36138 {
   36139 	var i7;
   36140 	var fp = sp>>2;
   36141 	var r0;
   36142 	var r1;
   36143 	var r2;
   36144 	var r3;
   36145 	var r4;
   36146 	var r5;
   36147 	var r6;
   36148 	var r7;
   36149 	var r8;
   36150 	var r9;
   36151 	var r10;
   36152 	var r11;
   36153 	var r12;
   36154 	var r13;
   36155 	var r14;
   36156 	var r15;
   36157 	var f0;
   36158 var __label__ = 0;
   36159 	i7 = sp + -104;var g0 = i7>>2; // save stack
   36160 	r0 = heap32[(fp)];
   36161 	r1 = r0 >> 2;
   36162 	r2 = heap32[(r1)];
   36163 	r2 = r2 >> 2;
   36164 	r2 = heap32[(r2+4)];
   36165 	heap32[(g0)] = r0;
   36166 	__FUNCTION_TABLE__[(r2)>>2](i7);
   36167 	r2 = r_g0;
   36168 _1: do {
   36169 if(!(r2 ==0)) //_LBB221_10
   36170 {
   36171 	r2 = heap32[(r1)];
   36172 	r2 = r2 >> 2;
   36173 	r2 = heap32[(r2+4)];
   36174 	heap32[(g0)] = r0;
   36175 	__FUNCTION_TABLE__[(r2)>>2](i7);
   36176 	r3 = r_g0 >> 2;
   36177 	r3 = heap32[(r3)];
   36178 	r3 = r3 >> 2;
   36179 	r3 = heap32[(r3+12)];
   36180 	heap32[(g0)] = r_g0;
   36181 	__FUNCTION_TABLE__[(r3)>>2](i7);
   36182 	r2 = r_g0 & 8;
   36183 if(!(r2 ==0)) //_LBB221_10
   36184 {
   36185 	r2 = heap32[(r1+6)];
   36186 	r3 = r2 >> 2;
   36187 	r3 = heap32[(r3)];
   36188 	r3 = r3 >> 2;
   36189 	r3 = heap32[(r3+9)];
   36190 	heap32[(g0)] = r2;
   36191 	__FUNCTION_TABLE__[(r3)>>2](i7);
   36192 	r2 = r_g0;
   36193 	r3 = sp + -16;
   36194 	r4 = r3 >> 2;
   36195 	heap32[(fp+-4)] = 0;
   36196 	heap32[(r4+1)] = 0;
   36197 	r5 = 0;
   36198 	heap32[(r4+2)] = 0;
   36199 	heap32[(r4+3)] = 0;
   36200 _4: while(true){
   36201 	if(r5 <r2) //_LBB221_3
   36202 {
   36203 	r4 = heap32[(r1+6)];
   36204 	r6 = r4 >> 2;
   36205 	r6 = heap32[(r6)];
   36206 	r6 = r6 >> 2;
   36207 	r6 = heap32[(r6+10)];
   36208 	heap32[(g0)] = r4;
   36209 	heap32[(g0+1)] = r5;
   36210 	__FUNCTION_TABLE__[(r6)>>2](i7);
   36211 	r4 = r_g0;
   36212 	r6 = r4 >> 2;
   36213 	r6 = heap32[(r6+279)];
   36214 	r7 = 36;
   36215 	r8 = 68;
   36216 	r9 = 0;
   36217 _7: while(true){
   36218 	if(r9 <r6) //_LBB221_4
   36219 {
   36220 	r10 = r4 >> 2;
   36221 	r10 = heap32[(r10+279)];
   36222 	if(r10 >r9) //_LBB221_6
   36223 {
   36224 	r10 = (r9 * 69)|0;
   36225 	r11 = (r4 + r7)|0;
   36226 	r12 = (r4 + r8)|0;
   36227 	r13 = heap32[(r1)];
   36228 	r13 = r13 >> 2;
   36229 	r13 = heap32[(r13+4)];
   36230 	heap32[(g0)] = r0;
   36231 	__FUNCTION_TABLE__[(r13)>>2](i7);
   36232 	r14 = r_g0 >> 2;
   36233 	r15 = r10 << 2;
   36234 	r10 = r10 << 2;
   36235 	r14 = heap32[(r14)];
   36236 	r15 = (r4 + r15)|0;
   36237 	r10 = (r4 + r10)|0;
   36238 	r14 = r14 >> 2;
   36239 	r15 = r15 >> 2;
   36240 	r10 = r10 >> 2;
   36241 	r14 = heap32[(r14+8)];
   36242 	r15 = heap32[(r15+37)];
   36243 	f0 = heapFloat[(r10+21)];
   36244 	heap32[(g0)] = r_g0;
   36245 	heap32[(g0+1)] = r11;
   36246 	heap32[(g0+2)] = r12;
   36247 	heapFloat[(g0+3)] = f0;
   36248 	heap32[(g0+4)] = r15;
   36249 	heap32[(g0+5)] = r3;
   36250 	r9 = (r9 + 1)|0;
   36251 	r8 = (r8 + 276)|0;
   36252 	r7 = (r7 + 276)|0;
   36253 	__FUNCTION_TABLE__[(r14)>>2](i7);
   36254 }
   36255 else{
   36256 break _4;
   36257 }
   36258 }
   36259 else{
   36260 break _7;
   36261 }
   36262 }
   36263 	r5 = (r5 + 1)|0;
   36264 }
   36265 else{
   36266 break _1;
   36267 }
   36268 }
   36269 	r0 = _2E_str382;
   36270 	r1 = _2E_str483;
   36271 	heap32[(g0)] = r0;
   36272 	heap32[(g0+1)] = r1;
   36273 	heap32[(g0+2)] = 122;
   36274 	_assert(i7);
   36275 }
   36276 }
   36277 } while(0);
   36278 	r2 = heap32[(r1)];
   36279 	r2 = r2 >> 2;
   36280 	r2 = heap32[(r2+4)];
   36281 	heap32[(g0)] = r0;
   36282 	__FUNCTION_TABLE__[(r2)>>2](i7);
   36283 	r2 = r_g0;
   36284 _14: do {
   36285 if(!(r2 ==0)) //_LBB221_13
   36286 {
   36287 	r2 = heap32[(r1)];
   36288 	r2 = r2 >> 2;
   36289 	r2 = heap32[(r2+4)];
   36290 	heap32[(g0)] = r0;
   36291 	__FUNCTION_TABLE__[(r2)>>2](i7);
   36292 	r3 = r_g0 >> 2;
   36293 	r3 = heap32[(r3)];
   36294 	r3 = r3 >> 2;
   36295 	r3 = heap32[(r3+12)];
   36296 	heap32[(g0)] = r_g0;
   36297 	__FUNCTION_TABLE__[(r3)>>2](i7);
   36298 	r2 = r_g0 & 3;
   36299 if(!(r2 ==0)) //_LBB221_13
   36300 {
   36301 	r2 = heap32[(r1+2)];
   36302 	if(r2 >0) //_LBB221_14
   36303 {
   36304 	r2 = 0;
   36305 _18: while(true){
   36306 	r3 = heap32[(r1+4)];
   36307 	r4 = r2 << 2;
   36308 	r3 = (r3 + r4)|0;
   36309 	r3 = r3 >> 2;
   36310 	r3 = heap32[(r3)];
   36311 	r4 = heapU8[r3+204];
   36312 	r4 = r4 & 32;
   36313 if(!(r4 !=0)) //_LBB221_34
   36314 {
   36315 	r4 = heap32[(r1)];
   36316 	r4 = r4 >> 2;
   36317 	r4 = heap32[(r4+4)];
   36318 	heap32[(g0)] = r0;
   36319 	__FUNCTION_TABLE__[(r4)>>2](i7);
   36320 	r4 = r_g0;
   36321 if(!(r4 ==0)) //_LBB221_31
   36322 {
   36323 	r4 = heap32[(r1)];
   36324 	r4 = r4 >> 2;
   36325 	r4 = heap32[(r4+4)];
   36326 	heap32[(g0)] = r0;
   36327 	__FUNCTION_TABLE__[(r4)>>2](i7);
   36328 	r5 = r_g0 >> 2;
   36329 	r5 = heap32[(r5)];
   36330 	r5 = r5 >> 2;
   36331 	r5 = heap32[(r5+12)];
   36332 	heap32[(g0)] = r_g0;
   36333 	__FUNCTION_TABLE__[(r5)>>2](i7);
   36334 	r4 = r_g0 & 1;
   36335 if(!(r4 ==0)) //_LBB221_31
   36336 {
   36337 	r4 = sp + -32;
   36338 	r5 = r4 >> 2;
   36339 	heap32[(fp+-8)] = 1065353216;
   36340 	heap32[(r5+1)] = 1065353216;
   36341 	heap32[(r5+2)] = 1065353216;
   36342 	r6 = r3 >> 2;
   36343 	heap32[(r5+3)] = 0;
   36344 	r7 = heap32[(r6+54)];
   36345 _25: do {
   36346 	if(r7 >2) //_LBB221_21
   36347 {
   36348 	if(r7 ==3) //_LBB221_26
   36349 {
   36350 	heap32[(fp+-8)] = 0;
   36351 	heap32[(r5+1)] = 1065353216;
   36352 	heap32[(r5+2)] = 1065353216;
   36353 	heap32[(r5+3)] = 0;
   36354 __label__ = 30;
   36355 break _25;
   36356 }
   36357 else{
   36358 	if(r7 ==4) //_LBB221_27
   36359 {
   36360 	heap32[(fp+-8)] = 1065353216;
   36361 	heap32[(r5+1)] = 0;
   36362 	heap32[(r5+2)] = 0;
   36363 	heap32[(r5+3)] = 0;
   36364 __label__ = 30;
   36365 break _25;
   36366 }
   36367 else{
   36368 	if(r7 ==5) //_LBB221_28
   36369 {
   36370 	heap32[(fp+-8)] = 1065353216;
   36371 	heap32[(r5+1)] = 1065353216;
   36372 	heap32[(r5+2)] = 0;
   36373 	heap32[(r5+3)] = 0;
   36374 __label__ = 30;
   36375 break _25;
   36376 }
   36377 else{
   36378 __label__ = 29;
   36379 break _25;
   36380 }
   36381 }
   36382 }
   36383 }
   36384 else{
   36385 	if(r7 ==1) //_LBB221_24
   36386 {
   36387 	heap32[(fp+-8)] = 1065353216;
   36388 	heap32[(r5+1)] = 1065353216;
   36389 	heap32[(r5+2)] = 1065353216;
   36390 	heap32[(r5+3)] = 0;
   36391 __label__ = 30;
   36392 }
   36393 else{
   36394 	if(r7 ==2) //_LBB221_25
   36395 {
   36396 	heap32[(fp+-8)] = 0;
   36397 	heap32[(r5+1)] = 1065353216;
   36398 	heap32[(r5+2)] = 0;
   36399 	heap32[(r5+3)] = 0;
   36400 __label__ = 30;
   36401 }
   36402 else{
   36403 __label__ = 29;
   36404 }
   36405 }
   36406 }
   36407 } while(0);
   36408 if (__label__ == 29){
   36409 	heap32[(fp+-8)] = 1065353216;
   36410 	heap32[(r5+1)] = 0;
   36411 	heap32[(r5+2)] = 0;
   36412 	heap32[(r5+3)] = 0;
   36413 }
   36414 	r5 = heap32[(r1)];
   36415 	r5 = r5 >> 2;
   36416 	r5 = heap32[(r5+6)];
   36417 	r6 = heap32[(r6+48)];
   36418 	r7 = (r3 + 4)|0;
   36419 	heap32[(g0)] = r0;
   36420 	heap32[(g0+1)] = r7;
   36421 	heap32[(g0+2)] = r6;
   36422 	heap32[(g0+3)] = r4;
   36423 	__FUNCTION_TABLE__[(r5)>>2](i7);
   36424 }
   36425 }
   36426 	r4 = heap32[(r1+21)];
   36427 if(!(r4 ==0)) //_LBB221_34
   36428 {
   36429 	r5 = r4 >> 2;
   36430 	r5 = heap32[(r5)];
   36431 	r5 = r5 >> 2;
   36432 	r5 = heap32[(r5+12)];
   36433 	heap32[(g0)] = r4;
   36434 	__FUNCTION_TABLE__[(r5)>>2](i7);
   36435 	r4 = r_g0 & 2;
   36436 if(!(r4 ==0)) //_LBB221_34
   36437 {
   36438 	r4 = sp + -80;
   36439 	r5 = r4 >> 2;
   36440 	heap32[(fp+-20)] = 1065353216;
   36441 	heap32[(r5+1)] = 0;
   36442 	heap32[(r5+2)] = 0;
   36443 	r6 = r3 >> 2;
   36444 	heap32[(r5+3)] = 0;
   36445 	r5 = heap32[(r6+48)];
   36446 	r6 = r5 >> 2;
   36447 	r6 = heap32[(r6)];
   36448 	r6 = r6 >> 2;
   36449 	r6 = heap32[(r6+2)];
   36450 	r3 = (r3 + 4)|0;
   36451 	r7 = sp + -48;
   36452 	r8 = sp + -64;
   36453 	heap32[(g0)] = r5;
   36454 	heap32[(g0+1)] = r3;
   36455 	heap32[(g0+2)] = r7;
   36456 	heap32[(g0+3)] = r8;
   36457 	__FUNCTION_TABLE__[(r6)>>2](i7);
   36458 	r3 = heap32[(r1+21)];
   36459 	r5 = r3 >> 2;
   36460 	r5 = heap32[(r5)];
   36461 	r5 = r5 >> 2;
   36462 	r5 = heap32[(r5+13)];
   36463 	heap32[(g0)] = r3;
   36464 	heap32[(g0+1)] = r7;
   36465 	heap32[(g0+2)] = r8;
   36466 	heap32[(g0+3)] = r4;
   36467 	__FUNCTION_TABLE__[(r5)>>2](i7);
   36468 }
   36469 }
   36470 }
   36471 	r2 = (r2 + 1)|0;
   36472 	r3 = heap32[(r1+2)];
   36473 	if(r3 >r2) //_LBB221_15
   36474 {
   36475 continue _18;
   36476 }
   36477 else{
   36478 break _14;
   36479 }
   36480 }
   36481 }
   36482 }
   36483 }
   36484 } while(0);
   36485 	return;
   36486 }
   36487 
   36488 function _ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3(sp)
   36489 {
   36490 	var i7;
   36491 	var fp = sp>>2;
   36492 	var r0;
   36493 	var r1;
   36494 	var r2;
   36495 	var r3;
   36496 	var r4;
   36497 	var r5;
   36498 	var r6;
   36499 	var r7;
   36500 	var r8;
   36501 	var r9;
   36502 	var r10;
   36503 	var r11;
   36504 	var r12;
   36505 	var r13;
   36506 	var r14;
   36507 	var r15;
   36508 	var f0;
   36509 	var f1;
   36510 	var f2;
   36511 	var f3;
   36512 	var f4;
   36513 	var f5;
   36514 	var f6;
   36515 	var f7;
   36516 	var f8;
   36517 	var f9;
   36518 	var f10;
   36519 	var f11;
   36520 	var f12;
   36521 	var f13;
   36522 	var f14;
   36523 	var f15;
   36524 	var f16;
   36525 	var f17;
   36526 	var f18;
   36527 	var f19;
   36528 	var f20;
   36529 	var f21;
   36530 	var f22;
   36531 	var f23;
   36532 	var f24;
   36533 	var f25;
   36534 	var f26;
   36535 	var f27;
   36536 	var f28;
   36537 	var f29;
   36538 var __label__ = 0;
   36539 	i7 = sp + -1376;var g0 = i7>>2; // save stack
   36540 	r0 = heap32[(fp)];
   36541 	r1 = r0 >> 2;
   36542 	r2 = heap32[(r1)];
   36543 	r2 = r2 >> 2;
   36544 	r2 = heap32[(r2+4)];
   36545 	heap32[(g0)] = r0;
   36546 	__FUNCTION_TABLE__[(r2)>>2](i7);
   36547 	r3 = r_g0 >> 2;
   36548 	r3 = heap32[(r3)];
   36549 	r3 = r3 >> 2;
   36550 	r3 = heap32[(r3+14)];
   36551 	r4 = heap32[(fp+1)];
   36552 	heap32[(g0)] = r_g0;
   36553 	heap32[(g0+1)] = r4;
   36554 	heap32[(g0+2)] = 1065353216;
   36555 	r2 = heap32[(fp+2)];
   36556 	r5 = r2 >> 2;
   36557 	__FUNCTION_TABLE__[(r3)>>2](i7);
   36558 	r3 = heap32[(r5+1)];
   36559 	r6 = heap32[(fp+3)];
   36560 _1: do {
   36561 	if(r3 >10) //_LBB222_6
   36562 {
   36563 	if(r3 >27) //_LBB222_9
   36564 {
   36565 	if(r3 ==28) //_LBB222_23
   36566 {
   36567 	f0 = heapFloat[(r5+14)];
   36568 	f1 = heapFloat[(r5+13)];
   36569 	f2 = heapFloat[(r5+16)];
   36570 	f3 = heapFloat[(r5+12)];
   36571 	f4 = f0*f2;
   36572 	f5 = f1*f2;
   36573 	f2 = f3*f2;
   36574 	f6 =                         0;
   36575 	if(f0 <f6) //_LBB222_25
   36576 {
   36577 	f7 = -f0;
   36578 }
   36579 else{
   36580 	f7 = f0;
   36581 }
   36582 	f8 =       0.70710676908493042;
   36583 	if(f7 <=f8) //_LBB222_28
   36584 {
   36585 	f0 = f3*f3;
   36586 	f1 = f1*f1;
   36587 	f0 = f0+f1;
   36588 	heapFloat[(g0)] = f0;
   36589 	sqrtf(i7);
   36590 	f3 =                         1;
   36591 	f7 = heapFloat[(r5+13)];
   36592 	f9 = heapFloat[(r5+14)];
   36593 	f10 = f3/f_g0;
   36594 	f1 = heapFloat[(r5+12)];
   36595 	f3 = -f7;
   36596 	f8 = f1*f10;
   36597 	f1 = -f9;
   36598 	f11 = f10*f3;
   36599 	f12 =                       100;
   36600 	f1 = f8*f1;
   36601 	f3 = f9*f11;
   36602 	f7 = f0*f10;
   36603 	f0 = f11*f12;
   36604 }
   36605 else{
   36606 	f1 = f1*f1;
   36607 	f3 = f0*f0;
   36608 	f1 = f1+f3;
   36609 	heapFloat[(g0)] = f1;
   36610 	sqrtf(i7);
   36611 	f6 = heapFloat[(r5+14)];
   36612 	f0 =                         1;
   36613 	f7 = heapFloat[(r5+12)];
   36614 	f3 = f0/f_g0;
   36615 	f6 = -f6;
   36616 	f0 = heapFloat[(r5+13)];
   36617 	f8 = f3*f6;
   36618 	f6 = -f7;
   36619 	f0 = f0*f3;
   36620 	f9 =                       100;
   36621 	f1 = f1*f3;
   36622 	f3 = f0*f6;
   36623 	f7 = f7*f8;
   36624 	f6 = f0*f9;
   36625 	f0 =                         0;
   36626 }
   36627 	r2 = heap32[(r1)];
   36628 	r2 = r2 >> 2;
   36629 	r2 = heap32[(r2+4)];
   36630 	heap32[(g0)] = r0;
   36631 	f9 =                       100;
   36632 	__FUNCTION_TABLE__[(r2)>>2](i7);
   36633 	r3 = r4 >> 2;
   36634 	f8 = f8*f9;
   36635 	r4 = r_g0 >> 2;
   36636 	f10 = f2-f0;
   36637 	f11 = heapFloat[(r3)];
   36638 	f12 = f5-f8;
   36639 	f13 = heapFloat[(r3+1)];
   36640 	r4 = heap32[(r4)];
   36641 	f14 = heapFloat[(r3+4)];
   36642 	f15 = heapFloat[(r3+5)];
   36643 	f16 = f11*f10;
   36644 	f17 = f13*f12;
   36645 	f18 = f4-f6;
   36646 	f19 = heapFloat[(r3+2)];
   36647 	r4 = r4 >> 2;
   36648 	f20 = heapFloat[(r3+8)];
   36649 	f21 = heapFloat[(r3+9)];
   36650 	f22 = heapFloat[(r3+6)];
   36651 	f23 = f14*f10;
   36652 	f24 = f15*f12;
   36653 	f16 = f16+f17;
   36654 	f17 = f19*f18;
   36655 	f25 = heapFloat[(r3+10)];
   36656 	r4 = heap32[(r4+2)];
   36657 	f10 = f20*f10;
   36658 	f12 = f21*f12;
   36659 	f23 = f23+f24;
   36660 	f24 = f22*f18;
   36661 	f16 = f16+f17;
   36662 	f17 = heapFloat[(r3+12)];
   36663 	f26 = heapFloat[(r3+14)];
   36664 	f27 = heapFloat[(r3+13)];
   36665 	f0 = f2+f0;
   36666 	f8 = f5+f8;
   36667 	r5 = sp + -64;
   36668 	f23 = f23+f24;
   36669 	f10 = f10+f12;
   36670 	f12 = f25*f18;
   36671 	f16 = f16+f17;
   36672 	f6 = f4+f6;
   36673 	f10 = f10+f12;
   36674 	f11 = f11*f0;
   36675 	f12 = f13*f8;
   36676 	r7 = r5 >> 2;
   36677 	f13 = f23+f27;
   36678 	heapFloat[(fp+-16)] = f16;
   36679 	f14 = f14*f0;
   36680 	f15 = f15*f8;
   36681 	f11 = f11+f12;
   36682 	f12 = f19*f6;
   36683 	f10 = f10+f26;
   36684 	heapFloat[(r7+1)] = f13;
   36685 	f11 = f11+f12;
   36686 	heapFloat[(r7+2)] = f10;
   36687 	f0 = f20*f0;
   36688 	f8 = f21*f8;
   36689 	f10 = f14+f15;
   36690 	f12 = f22*f6;
   36691 	r8 = sp + -48;
   36692 	f10 = f10+f12;
   36693 	f0 = f0+f8;
   36694 	f6 = f25*f6;
   36695 	f8 = f11+f17;
   36696 	heap32[(r7+3)] = 0;
   36697 	f0 = f0+f6;
   36698 	r7 = r8 >> 2;
   36699 	f6 = f10+f27;
   36700 	heapFloat[(fp+-12)] = f8;
   36701 	f0 = f0+f26;
   36702 	heapFloat[(r7+1)] = f6;
   36703 	heapFloat[(r7+2)] = f0;
   36704 	heap32[(r7+3)] = 0;
   36705 	heap32[(g0)] = r_g0;
   36706 	heap32[(g0+1)] = r8;
   36707 	heap32[(g0+2)] = r5;
   36708 	heap32[(g0+3)] = r6;
   36709 	__FUNCTION_TABLE__[(r4)>>2](i7);
   36710 	r1 = heap32[(r1)];
   36711 	r1 = r1 >> 2;
   36712 	r1 = heap32[(r1+4)];
   36713 	heap32[(g0)] = r0;
   36714 	__FUNCTION_TABLE__[(r1)>>2](i7);
   36715 	f0 = f1*f9;
   36716 	f1 = f3*f9;
   36717 	f3 = f7*f9;
   36718 	r1 = r_g0 >> 2;
   36719 	f6 = f2-f0;
   36720 	f7 = heapFloat[(r3)];
   36721 	f8 = f5-f1;
   36722 	f9 = heapFloat[(r3+1)];
   36723 	r1 = heap32[(r1)];
   36724 	f10 = heapFloat[(r3+4)];
   36725 	f11 = heapFloat[(r3+5)];
   36726 	f12 = f7*f6;
   36727 	f13 = f9*f8;
   36728 	f14 = f4-f3;
   36729 	f15 = heapFloat[(r3+2)];
   36730 	r1 = r1 >> 2;
   36731 	f16 = heapFloat[(r3+8)];
   36732 	f17 = heapFloat[(r3+9)];
   36733 	f18 = heapFloat[(r3+6)];
   36734 	f19 = f10*f6;
   36735 	f20 = f11*f8;
   36736 	f12 = f12+f13;
   36737 	f13 = f15*f14;
   36738 	f21 = heapFloat[(r3+10)];
   36739 	r1 = heap32[(r1+2)];
   36740 	f6 = f16*f6;
   36741 	f8 = f17*f8;
   36742 	f19 = f19+f20;
   36743 	f20 = f18*f14;
   36744 	f12 = f12+f13;
   36745 	f13 = heapFloat[(r3+12)];
   36746 	f22 = heapFloat[(r3+14)];
   36747 	f23 = heapFloat[(r3+13)];
   36748 	f0 = f2+f0;
   36749 	f1 = f5+f1;
   36750 	r2 = sp + -32;
   36751 	f2 = f19+f20;
   36752 	f5 = f6+f8;
   36753 	f6 = f21*f14;
   36754 	f8 = f12+f13;
   36755 	f3 = f4+f3;
   36756 	f4 = f5+f6;
   36757 	f5 = f7*f0;
   36758 	f6 = f9*f1;
   36759 	r3 = r2 >> 2;
   36760 	f2 = f2+f23;
   36761 	heapFloat[(fp+-8)] = f8;
   36762 	f7 = f10*f0;
   36763 	f8 = f11*f1;
   36764 	f5 = f5+f6;
   36765 	f6 = f15*f3;
   36766 	f4 = f4+f22;
   36767 	heapFloat[(r3+1)] = f2;
   36768 	f2 = f5+f6;
   36769 	heapFloat[(r3+2)] = f4;
   36770 	f0 = f16*f0;
   36771 	f1 = f17*f1;
   36772 	f4 = f7+f8;
   36773 	f5 = f18*f3;
   36774 	r4 = sp + -16;
   36775 	f4 = f4+f5;
   36776 	f0 = f0+f1;
   36777 	f1 = f21*f3;
   36778 	f2 = f2+f13;
   36779 	heap32[(r3+3)] = 0;
   36780 	f0 = f0+f1;
   36781 	r3 = r4 >> 2;
   36782 	f1 = f4+f23;
   36783 	heapFloat[(fp+-4)] = f2;
   36784 	f0 = f0+f22;
   36785 	heapFloat[(r3+1)] = f1;
   36786 	heapFloat[(r3+2)] = f0;
   36787 	heap32[(r3+3)] = 0;
   36788 	heap32[(g0)] = r_g0;
   36789 	heap32[(g0+1)] = r4;
   36790 __label__ = 30;
   36791 break _1;
   36792 }
   36793 else{
   36794 	if(r3 !=31) //_LBB222_32
   36795 {
   36796 __label__ = 32;
   36797 break _1;
   36798 }
   36799 else{
   36800 	r2 = heap32[(r5+4)];
   36801 	r3 = (r2 + -1)|0;
   36802 	if(r3 <0) //_LBB222_42
   36803 {
   36804 __label__ = 40;
   36805 break _1;
   36806 }
   36807 else{
   36808 	r3 = 1;
   36809 	r2 = (r3 - r2)|0;
   36810 _18: while(true){
   36811 	r3 = r2;
   36812 	r2 = (r3 * -20)|0;
   36813 	r7 = heap32[(r5+6)];
   36814 	r2 = r2 << 2;
   36815 	r2 = (r7 + r2)|0;
   36816 	r2 = r2 >> 2;
   36817 	r7 = r4 >> 2;
   36818 	r8 = heap32[(r1)];
   36819 	f0 = heapFloat[(r2)];
   36820 	f1 = heapFloat[(r7)];
   36821 	f2 = heapFloat[(r2+4)];
   36822 	f3 = heapFloat[(r7+1)];
   36823 	r8 = r8 >> 2;
   36824 	f4 = heapFloat[(r2+1)];
   36825 	f5 = heapFloat[(r2+5)];
   36826 	f6 = f0*f1;
   36827 	f7 = f2*f3;
   36828 	f8 = heapFloat[(r2+8)];
   36829 	f9 = heapFloat[(r7+2)];
   36830 	f10 = heapFloat[(r7+8)];
   36831 	f11 = heapFloat[(r2+2)];
   36832 	f12 = heapFloat[(r7+4)];
   36833 	f13 = heapFloat[(r2+12)];
   36834 	f14 = heapFloat[(r7+9)];
   36835 	f15 = heapFloat[(r2+6)];
   36836 	f16 = heapFloat[(r7+5)];
   36837 	f17 = heapFloat[(r2+13)];
   36838 	f18 = heapFloat[(r2+9)];
   36839 	f19 = heapFloat[(r7+10)];
   36840 	f20 = heapFloat[(r2+10)];
   36841 	f21 = heapFloat[(r7+6)];
   36842 	f22 = heapFloat[(r2+14)];
   36843 	r8 = heap32[(r8+6)];
   36844 	f23 = f4*f1;
   36845 	f24 = f5*f3;
   36846 	f6 = f6+f7;
   36847 	f7 = f8*f9;
   36848 	r2 = heap32[(r2+16)];
   36849 	f25 = heapFloat[(r7+14)];
   36850 	f26 = heapFloat[(r7+13)];
   36851 	f27 = heapFloat[(r7+12)];
   36852 	r7 = sp + -688;
   36853 	f28 = f11*f1;
   36854 	f29 = f15*f3;
   36855 	f23 = f23+f24;
   36856 	f24 = f18*f9;
   36857 	f6 = f6+f7;
   36858 	r9 = r7 >> 2;
   36859 	f7 = f28+f29;
   36860 	f28 = f20*f9;
   36861 	f23 = f23+f24;
   36862 	heapFloat[(fp+-172)] = f6;
   36863 	f6 = f0*f12;
   36864 	f24 = f2*f16;
   36865 	f7 = f7+f28;
   36866 	heapFloat[(r9+1)] = f23;
   36867 	heapFloat[(r9+2)] = f7;
   36868 	f7 = f4*f12;
   36869 	f23 = f5*f16;
   36870 	f6 = f6+f24;
   36871 	f24 = f8*f21;
   36872 	f28 = f11*f12;
   36873 	f29 = f15*f16;
   36874 	f7 = f7+f23;
   36875 	f23 = f18*f21;
   36876 	f6 = f6+f24;
   36877 	heap32[(r9+3)] = 0;
   36878 	f24 = f28+f29;
   36879 	f28 = f20*f21;
   36880 	f7 = f7+f23;
   36881 	heapFloat[(r9+4)] = f6;
   36882 	f0 = f0*f10;
   36883 	f2 = f2*f14;
   36884 	f6 = f24+f28;
   36885 	heapFloat[(r9+5)] = f7;
   36886 	heapFloat[(r9+6)] = f6;
   36887 	f4 = f4*f10;
   36888 	f5 = f5*f14;
   36889 	f0 = f0+f2;
   36890 	f2 = f8*f19;
   36891 	f6 = f11*f10;
   36892 	f7 = f15*f14;
   36893 	f4 = f4+f5;
   36894 	f5 = f18*f19;
   36895 	f0 = f0+f2;
   36896 	heap32[(r9+7)] = 0;
   36897 	f1 = f1*f13;
   36898 	f2 = f3*f17;
   36899 	f3 = f6+f7;
   36900 	f6 = f20*f19;
   36901 	f4 = f4+f5;
   36902 	heapFloat[(r9+8)] = f0;
   36903 	f0 = f12*f13;
   36904 	f5 = f16*f17;
   36905 	f1 = f1+f2;
   36906 	f2 = f9*f22;
   36907 	f3 = f3+f6;
   36908 	heapFloat[(r9+9)] = f4;
   36909 	f1 = f1+f2;
   36910 	heapFloat[(r9+10)] = f3;
   36911 	f2 = f10*f13;
   36912 	f3 = f14*f17;
   36913 	f0 = f0+f5;
   36914 	f4 = f21*f22;
   36915 	f0 = f0+f4;
   36916 	f2 = f2+f3;
   36917 	f3 = f19*f22;
   36918 	f1 = f1+f27;
   36919 	heap32[(r9+11)] = 0;
   36920 	f2 = f2+f3;
   36921 	f0 = f0+f26;
   36922 	heapFloat[(r9+12)] = f1;
   36923 	f1 = f2+f25;
   36924 	heapFloat[(r9+13)] = f0;
   36925 	heapFloat[(r9+14)] = f1;
   36926 	heap32[(r9+15)] = 0;
   36927 	heap32[(g0)] = r0;
   36928 	heap32[(g0+1)] = r7;
   36929 	heap32[(g0+2)] = r2;
   36930 	heap32[(g0+3)] = r6;
   36931 	r2 = (r3 + 1)|0;
   36932 	__FUNCTION_TABLE__[(r8)>>2](i7);
   36933 	if(r3 ==0) //_LBB222_42
   36934 {
   36935 __label__ = 40;
   36936 break _1;
   36937 }
   36938 else{
   36939 continue _18;
   36940 }
   36941 }
   36942 }
   36943 }
   36944 }
   36945 }
   36946 else{
   36947 	if(r3 ==11) //_LBB222_20
   36948 {
   36949 	r2 = r4 >> 2;
   36950 	r3 = heap32[(r5+17)];
   36951 	f0 = heapFloat[(r5+14)];
   36952 	f1 = heapFloat[(r5+15)];
   36953 	f2 = heapFloat[(r2+12)];
   36954 	f3 = heapFloat[(r2+13)];
   36955 	f4 = heapFloat[(r2+14)];
   36956 	r4 = sp + -880;
   36957 	r5 = r4 >> 2;
   36958 	heap32[(fp+-220)] = 0;
   36959 	heap32[(r5+1)] = 0;
   36960 	r7 = r3 << 2;
   36961 	r4 = (r4 + r7)|0;
   36962 	f5 =                       0.5;
   36963 	heap32[(r5+2)] = 0;
   36964 	r4 = r4 >> 2;
   36965 	f1 = f1*f5;
   36966 	heap32[(r5+3)] = 0;
   36967 	r8 = sp + -896;
   36968 	heapFloat[(r4)] = f1;
   36969 	r4 = (r3 + 1)|0;
   36970 	r4 = (r4 % 3)|0;
   36971 	r9 = r8 >> 2;
   36972 	heap32[(fp+-224)] = 0;
   36973 	heap32[(r9+1)] = 0;
   36974 	r4 = r4 << 2;
   36975 	r8 = (r8 + r4)|0;
   36976 	heap32[(r9+2)] = 0;
   36977 	r8 = r8 >> 2;
   36978 	heap32[(r9+3)] = 0;
   36979 	r3 = (r3 + 2)|0;
   36980 	r10 = sp + -912;
   36981 	heapFloat[(r8)] = f0;
   36982 	r3 = (r3 % 3)|0;
   36983 	r8 = r10 >> 2;
   36984 	heap32[(fp+-228)] = 0;
   36985 	r3 = r3 << 2;
   36986 	heap32[(r8+1)] = 0;
   36987 	r3 = (r10 + r3)|0;
   36988 	heap32[(r8+2)] = 0;
   36989 	r3 = r3 >> 2;
   36990 	heap32[(r8+3)] = 0;
   36991 	heapFloat[(r3)] = f0;
   36992 	r3 = heap32[(r1)];
   36993 	r3 = r3 >> 2;
   36994 	r3 = heap32[(r3+4)];
   36995 	heap32[(g0)] = r0;
   36996 	__FUNCTION_TABLE__[(r3)>>2](i7);
   36997 	f1 = heapFloat[(r5+1)];
   36998 	f5 = heapFloat[(fp+-220)];
   36999 	f6 = heapFloat[(r9+1)];
   37000 	f7 = heapFloat[(fp+-224)];
   37001 	r10 = r_g0 >> 2;
   37002 	f8 = heapFloat[(r5+2)];
   37003 	f9 = heapFloat[(r9+2)];
   37004 	f10 = heapFloat[(r2)];
   37005 	f11 = f7-f5;
   37006 	f12 = heapFloat[(r2+1)];
   37007 	f13 = f6-f1;
   37008 	f14 = heapFloat[(r2+4)];
   37009 	f15 = heapFloat[(r2+5)];
   37010 	r5 = heap32[(r10)];
   37011 	f16 = heapFloat[(r2+2)];
   37012 	f17 = f9-f8;
   37013 	f18 = f10*f11;
   37014 	f19 = f12*f13;
   37015 	f20 = heapFloat[(r2+8)];
   37016 	f21 = heapFloat[(r2+9)];
   37017 	f22 = heapFloat[(r2+6)];
   37018 	r5 = r5 >> 2;
   37019 	f23 = f14*f11;
   37020 	f24 = f15*f13;
   37021 	f18 = f18+f19;
   37022 	f19 = f16*f17;
   37023 	f25 = heapFloat[(r2+10)];
   37024 	r5 = heap32[(r5+2)];
   37025 	f18 = f18+f19;
   37026 	f11 = f20*f11;
   37027 	f13 = f21*f13;
   37028 	f19 = f23+f24;
   37029 	f23 = f22*f17;
   37030 	r9 = sp + -416;
   37031 	f19 = f19+f23;
   37032 	f11 = f11+f13;
   37033 	f13 = f25*f17;
   37034 	f17 = f2+f18;
   37035 	f11 = f11+f13;
   37036 	f10 = f10*f5;
   37037 	f12 = f12*f1;
   37038 	r10 = r9 >> 2;
   37039 	f13 = f3+f19;
   37040 	heapFloat[(fp+-104)] = f17;
   37041 	f14 = f14*f5;
   37042 	f15 = f15*f1;
   37043 	f10 = f10+f12;
   37044 	f12 = f16*f8;
   37045 	f11 = f4+f11;
   37046 	heapFloat[(r10+1)] = f13;
   37047 	f10 = f10+f12;
   37048 	heapFloat[(r10+2)] = f11;
   37049 	f11 = f20*f5;
   37050 	f12 = f21*f1;
   37051 	f13 = f14+f15;
   37052 	f14 = f22*f8;
   37053 	r11 = sp + -400;
   37054 	f13 = f13+f14;
   37055 	f11 = f11+f12;
   37056 	f12 = f25*f8;
   37057 	f10 = f2+f10;
   37058 	heap32[(r10+3)] = 0;
   37059 	f11 = f11+f12;
   37060 	r10 = r11 >> 2;
   37061 	f12 = f3+f13;
   37062 	heapFloat[(fp+-100)] = f10;
   37063 	f10 = f4+f11;
   37064 	heapFloat[(r10+1)] = f12;
   37065 	heapFloat[(r10+2)] = f10;
   37066 	heap32[(r10+3)] = 0;
   37067 	heap32[(g0)] = r_g0;
   37068 	heap32[(g0+1)] = r11;
   37069 	heap32[(g0+2)] = r9;
   37070 	heap32[(g0+3)] = r6;
   37071 	__FUNCTION_TABLE__[(r5)>>2](i7);
   37072 	r3 = heap32[(r1)];
   37073 	r3 = r3 >> 2;
   37074 	r3 = heap32[(r3+4)];
   37075 	heap32[(g0)] = r0;
   37076 	__FUNCTION_TABLE__[(r3)>>2](i7);
   37077 	f10 = -f5;
   37078 	f11 = -f1;
   37079 	f12 = -f8;
   37080 	r5 = r_g0 >> 2;
   37081 	f13 = heapFloat[(r2)];
   37082 	f7 = f10-f7;
   37083 	f14 = heapFloat[(r2+1)];
   37084 	f6 = f11-f6;
   37085 	f15 = heapFloat[(r2+4)];
   37086 	f16 = heapFloat[(r2+5)];
   37087 	r5 = heap32[(r5)];
   37088 	f17 = heapFloat[(r2+2)];
   37089 	f9 = f12-f9;
   37090 	f18 = f13*f7;
   37091 	f19 = f14*f6;
   37092 	f20 = heapFloat[(r2+8)];
   37093 	f21 = heapFloat[(r2+9)];
   37094 	f22 = heapFloat[(r2+6)];
   37095 	r5 = r5 >> 2;
   37096 	f23 = f15*f7;
   37097 	f24 = f16*f6;
   37098 	f18 = f18+f19;
   37099 	f19 = f17*f9;
   37100 	f25 = heapFloat[(r2+10)];
   37101 	r5 = heap32[(r5+2)];
   37102 	f18 = f18+f19;
   37103 	f7 = f20*f7;
   37104 	f6 = f21*f6;
   37105 	f19 = f23+f24;
   37106 	f23 = f22*f9;
   37107 	r9 = sp + -384;
   37108 	f19 = f19+f23;
   37109 	f6 = f7+f6;
   37110 	f7 = f25*f9;
   37111 	f9 = f2+f18;
   37112 	f6 = f6+f7;
   37113 	f7 = f13*f5;
   37114 	f13 = f14*f1;
   37115 	r10 = r9 >> 2;
   37116 	f14 = f3+f19;
   37117 	heapFloat[(fp+-96)] = f9;
   37118 	f9 = f15*f5;
   37119 	f15 = f16*f1;
   37120 	f7 = f7+f13;
   37121 	f13 = f17*f8;
   37122 	f6 = f4+f6;
   37123 	heapFloat[(r10+1)] = f14;
   37124 	f7 = f7+f13;
   37125 	heapFloat[(r10+2)] = f6;
   37126 	f6 = f20*f5;
   37127 	f13 = f21*f1;
   37128 	f9 = f9+f15;
   37129 	f14 = f22*f8;
   37130 	r11 = sp + -368;
   37131 	f9 = f9+f14;
   37132 	f6 = f6+f13;
   37133 	f13 = f25*f8;
   37134 	f7 = f2+f7;
   37135 	heap32[(r10+3)] = 0;
   37136 	f6 = f6+f13;
   37137 	r10 = r11 >> 2;
   37138 	f9 = f3+f9;
   37139 	heapFloat[(fp+-92)] = f7;
   37140 	f6 = f4+f6;
   37141 	heapFloat[(r10+1)] = f9;
   37142 	heapFloat[(r10+2)] = f6;
   37143 	heap32[(r10+3)] = 0;
   37144 	heap32[(g0)] = r_g0;
   37145 	heap32[(g0+1)] = r11;
   37146 	heap32[(g0+2)] = r9;
   37147 	heap32[(g0+3)] = r6;
   37148 	__FUNCTION_TABLE__[(r5)>>2](i7);
   37149 	r3 = heap32[(r1)];
   37150 	r3 = r3 >> 2;
   37151 	r3 = heap32[(r3+4)];
   37152 	heap32[(g0)] = r0;
   37153 	__FUNCTION_TABLE__[(r3)>>2](i7);
   37154 	f6 = heapFloat[(r8+1)];
   37155 	f7 = heapFloat[(fp+-228)];
   37156 	f9 = heapFloat[(r8+2)];
   37157 	r5 = r_g0 >> 2;
   37158 	f13 = heapFloat[(r2)];
   37159 	f14 = f7-f5;
   37160 	f15 = heapFloat[(r2+1)];
   37161 	f16 = f6-f1;
   37162 	f17 = heapFloat[(r2+4)];
   37163 	f18 = heapFloat[(r2+5)];
   37164 	r5 = heap32[(r5)];
   37165 	f19 = heapFloat[(r2+2)];
   37166 	f20 = f9-f8;
   37167 	f21 = f13*f14;
   37168 	f22 = f15*f16;
   37169 	f23 = heapFloat[(r2+8)];
   37170 	f24 = heapFloat[(r2+9)];
   37171 	f25 = heapFloat[(r2+6)];
   37172 	r5 = r5 >> 2;
   37173 	f26 = f17*f14;
   37174 	f27 = f18*f16;
   37175 	f21 = f21+f22;
   37176 	f22 = f19*f20;
   37177 	f28 = heapFloat[(r2+10)];
   37178 	r5 = heap32[(r5+2)];
   37179 	f21 = f21+f22;
   37180 	f14 = f23*f14;
   37181 	f16 = f24*f16;
   37182 	f22 = f26+f27;
   37183 	f26 = f25*f20;
   37184 	r8 = sp + -352;
   37185 	f22 = f22+f26;
   37186 	f14 = f14+f16;
   37187 	f16 = f28*f20;
   37188 	f20 = f2+f21;
   37189 	f14 = f14+f16;
   37190 	f13 = f13*f5;
   37191 	f15 = f15*f1;
   37192 	r9 = r8 >> 2;
   37193 	f16 = f3+f22;
   37194 	heapFloat[(fp+-88)] = f20;
   37195 	f17 = f17*f5;
   37196 	f18 = f18*f1;
   37197 	f13 = f13+f15;
   37198 	f15 = f19*f8;
   37199 	f14 = f4+f14;
   37200 	heapFloat[(r9+1)] = f16;
   37201 	f13 = f13+f15;
   37202 	heapFloat[(r9+2)] = f14;
   37203 	f14 = f23*f5;
   37204 	f15 = f24*f1;
   37205 	f16 = f17+f18;
   37206 	f17 = f25*f8;
   37207 	r10 = sp + -336;
   37208 	f16 = f16+f17;
   37209 	f14 = f14+f15;
   37210 	f15 = f28*f8;
   37211 	f13 = f2+f13;
   37212 	heap32[(r9+3)] = 0;
   37213 	f14 = f14+f15;
   37214 	r9 = r10 >> 2;
   37215 	f15 = f3+f16;
   37216 	heapFloat[(fp+-84)] = f13;
   37217 	f13 = f4+f14;
   37218 	heapFloat[(r9+1)] = f15;
   37219 	heapFloat[(r9+2)] = f13;
   37220 	heap32[(r9+3)] = 0;
   37221 	heap32[(g0)] = r_g0;
   37222 	heap32[(g0+1)] = r10;
   37223 	heap32[(g0+2)] = r8;
   37224 	heap32[(g0+3)] = r6;
   37225 	__FUNCTION_TABLE__[(r5)>>2](i7);
   37226 	r3 = heap32[(r1)];
   37227 	r3 = r3 >> 2;
   37228 	r3 = heap32[(r3+4)];
   37229 	heap32[(g0)] = r0;
   37230 	__FUNCTION_TABLE__[(r3)>>2](i7);
   37231 	r5 = r_g0 >> 2;
   37232 	f13 = heapFloat[(r2)];
   37233 	f7 = f10-f7;
   37234 	f10 = heapFloat[(r2+1)];
   37235 	f6 = f11-f6;
   37236 	f11 = heapFloat[(r2+4)];
   37237 	f14 = heapFloat[(r2+5)];
   37238 	r5 = heap32[(r5)];
   37239 	f15 = heapFloat[(r2+2)];
   37240 	f9 = f12-f9;
   37241 	f12 = f13*f7;
   37242 	f16 = f10*f6;
   37243 	f17 = heapFloat[(r2+8)];
   37244 	f18 = heapFloat[(r2+9)];
   37245 	f19 = heapFloat[(r2+6)];
   37246 	r5 = r5 >> 2;
   37247 	f20 = f11*f7;
   37248 	f21 = f14*f6;
   37249 	f12 = f12+f16;
   37250 	f16 = f15*f9;
   37251 	f22 = heapFloat[(r2+10)];
   37252 	r5 = heap32[(r5+2)];
   37253 	f12 = f12+f16;
   37254 	f7 = f17*f7;
   37255 	f6 = f18*f6;
   37256 	f16 = f20+f21;
   37257 	f20 = f19*f9;
   37258 	r8 = sp + -320;
   37259 	f16 = f16+f20;
   37260 	f6 = f7+f6;
   37261 	f7 = f22*f9;
   37262 	f9 = f2+f12;
   37263 	f6 = f6+f7;
   37264 	f7 = f13*f5;
   37265 	f10 = f10*f1;
   37266 	r9 = r8 >> 2;
   37267 	f12 = f3+f16;
   37268 	heapFloat[(fp+-80)] = f9;
   37269 	f9 = f11*f5;
   37270 	f11 = f14*f1;
   37271 	f7 = f7+f10;
   37272 	f10 = f15*f8;
   37273 	f6 = f4+f6;
   37274 	heapFloat[(r9+1)] = f12;
   37275 	f7 = f7+f10;
   37276 	heapFloat[(r9+2)] = f6;
   37277 	f6 = f17*f5;
   37278 	f10 = f18*f1;
   37279 	f9 = f9+f11;
   37280 	f11 = f19*f8;
   37281 	r10 = sp + -304;
   37282 	f9 = f9+f11;
   37283 	f6 = f6+f10;
   37284 	f10 = f22*f8;
   37285 	f7 = f2+f7;
   37286 	heap32[(r9+3)] = 0;
   37287 	f6 = f6+f10;
   37288 	r9 = r10 >> 2;
   37289 	f9 = f3+f9;
   37290 	heapFloat[(fp+-76)] = f7;
   37291 	f6 = f4+f6;
   37292 	heapFloat[(r9+1)] = f9;
   37293 	heapFloat[(r9+2)] = f6;
   37294 	heap32[(r9+3)] = 0;
   37295 	heap32[(g0)] = r_g0;
   37296 	heap32[(g0+1)] = r10;
   37297 	heap32[(g0+2)] = r8;
   37298 	heap32[(g0+3)] = r6;
   37299 	r3 = sp + -928;
   37300 	__FUNCTION_TABLE__[(r5)>>2](i7);
   37301 	r5 = r3 >> 2;
   37302 	heap32[(fp+-232)] = 0;
   37303 	heap32[(r5+1)] = 0;
   37304 	r3 = (r3 + r7)|0;
   37305 	heap32[(r5+2)] = 0;
   37306 	r3 = r3 >> 2;
   37307 	heap32[(r5+3)] = 0;
   37308 	r7 = sp + -944;
   37309 	heap32[(r3)] = 1065353216;
   37310 	r3 = r7 >> 2;
   37311 	heap32[(fp+-236)] = 0;
   37312 	heap32[(r3+1)] = 0;
   37313 	r4 = (r7 + r4)|0;
   37314 	heap32[(r3+2)] = 0;
   37315 	r4 = r4 >> 2;
   37316 	heap32[(r3+3)] = 0;
   37317 	heap32[(r4)] = 1065353216;
   37318 	r1 = heap32[(r1)];
   37319 	r1 = r1 >> 2;
   37320 	r1 = heap32[(r1+4)];
   37321 	heap32[(g0)] = r0;
   37322 	__FUNCTION_TABLE__[(r1)>>2](i7);
   37323 	r1 = r_g0 >> 2;
   37324 	r1 = heap32[(r1)];
   37325 	f6 = heapFloat[(r2)];
   37326 	f7 = heapFloat[(fp+-236)];
   37327 	f9 = heapFloat[(r2+1)];
   37328 	f10 = heapFloat[(r3+1)];
   37329 	f11 = heapFloat[(r2+4)];
   37330 	f12 = heapFloat[(r2+5)];
   37331 	r1 = r1 >> 2;
   37332 	f13 = heapFloat[(r2+2)];
   37333 	f14 = heapFloat[(r3+2)];
   37334 	f15 = f6*f7;
   37335 	f16 = f9*f10;
   37336 	f17 = heapFloat[(r2+8)];
   37337 	f18 = heapFloat[(r2+9)];
   37338 	f19 = heapFloat[(r2+10)];
   37339 	f20 = heapFloat[(r2+6)];
   37340 	r1 = heap32[(r1+15)];
   37341 	f21 = f11*f7;
   37342 	f22 = f12*f10;
   37343 	f15 = f15+f16;
   37344 	f16 = f13*f14;
   37345 	r2 = sp + -288;
   37346 	f7 = f17*f7;
   37347 	f10 = f18*f10;
   37348 	f21 = f21+f22;
   37349 	f22 = f20*f14;
   37350 	f15 = f15+f16;
   37351 	r3 = r2 >> 2;
   37352 	f7 = f7+f10;
   37353 	f10 = f19*f14;
   37354 	f14 = f21+f22;
   37355 	heapFloat[(fp+-72)] = f15;
   37356 	f7 = f7+f10;
   37357 	heapFloat[(r3+1)] = f14;
   37358 	heapFloat[(r3+2)] = f7;
   37359 	heap32[(r3+3)] = 0;
   37360 	f7 = heapFloat[(fp+-232)];
   37361 	f10 = heapFloat[(r5+1)];
   37362 	f14 = heapFloat[(r5+2)];
   37363 	f15 = f6*f7;
   37364 	f16 = f9*f10;
   37365 	f21 = f11*f7;
   37366 	f22 = f12*f10;
   37367 	f15 = f15+f16;
   37368 	f16 = f13*f14;
   37369 	r3 = sp + -272;
   37370 	f7 = f17*f7;
   37371 	f10 = f18*f10;
   37372 	f21 = f21+f22;
   37373 	f22 = f20*f14;
   37374 	f15 = f15+f16;
   37375 	f6 = f6*f5;
   37376 	f9 = f9*f1;
   37377 	r4 = r3 >> 2;
   37378 	f7 = f7+f10;
   37379 	f10 = f19*f14;
   37380 	f14 = f21+f22;
   37381 	heapFloat[(fp+-68)] = f15;
   37382 	f11 = f11*f5;
   37383 	f12 = f12*f1;
   37384 	f6 = f6+f9;
   37385 	f9 = f13*f8;
   37386 	f7 = f7+f10;
   37387 	heapFloat[(r4+1)] = f14;
   37388 	f6 = f6+f9;
   37389 	heapFloat[(r4+2)] = f7;
   37390 	f5 = f17*f5;
   37391 	f1 = f18*f1;
   37392 	f7 = f11+f12;
   37393 	f9 = f20*f8;
   37394 	r5 = sp + -256;
   37395 	f7 = f7+f9;
   37396 	f1 = f5+f1;
   37397 	f5 = f19*f8;
   37398 	f2 = f2-f6;
   37399 	heap32[(r4+3)] = 0;
   37400 	f1 = f1+f5;
   37401 	r4 = r5 >> 2;
   37402 	f3 = f3-f7;
   37403 	heapFloat[(fp+-64)] = f2;
   37404 	f1 = f4-f1;
   37405 	heapFloat[(r4+1)] = f3;
   37406 	heapFloat[(r4+2)] = f1;
   37407 	heap32[(r4+3)] = 0;
   37408 	heap32[(g0)] = r_g0;
   37409 	heap32[(g0+1)] = r5;
   37410 	heap32[(g0+2)] = r3;
   37411 }
   37412 else{
   37413 	if(r3 ==13) //_LBB222_21
   37414 {
   37415 	r3 = heap32[(r5)];
   37416 	r3 = r3 >> 2;
   37417 	r7 = heap32[(r5+13)];
   37418 	r3 = heap32[(r3+21)];
   37419 	heap32[(g0)] = r2;
   37420 	__FUNCTION_TABLE__[(r3)>>2](i7);
   37421 	f0 = f_g0;
   37422 	r3 = sp + -240;
   37423 	f1 = heapFloat[(r5+8)];
   37424 	f2 = heapFloat[(r5+9)];
   37425 	f3 = heapFloat[(r5+7)];
   37426 	r8 = r3 >> 2;
   37427 	heap32[(r8+3)] = heap32[(r5+10)];
   37428 	r9 = heap32[(r5)];
   37429 	r9 = r9 >> 2;
   37430 	r9 = heap32[(r9+11)];
   37431 	heap32[(g0)] = r2;
   37432 	__FUNCTION_TABLE__[(r9)>>2](i7);
   37433 	f4 = f_g0;
   37434 	r9 = heap32[(r5)];
   37435 	r9 = r9 >> 2;
   37436 	r9 = heap32[(r9+11)];
   37437 	heap32[(g0)] = r2;
   37438 	__FUNCTION_TABLE__[(r9)>>2](i7);
   37439 	f5 = f_g0;
   37440 	r5 = heap32[(r5)];
   37441 	r5 = r5 >> 2;
   37442 	r5 = heap32[(r5+11)];
   37443 	heap32[(g0)] = r2;
   37444 	__FUNCTION_TABLE__[(r5)>>2](i7);
   37445 	f3 = f3+f_g0;
   37446 	r2 = r7 << 2;
   37447 	f1 = f1+f5;
   37448 	heapFloat[(fp+-60)] = f3;
   37449 	r3 = (r3 + r2)|0;
   37450 	f2 = f2+f4;
   37451 	heapFloat[(r8+1)] = f1;
   37452 	r3 = r3 >> 2;
   37453 	heapFloat[(r8+2)] = f2;
   37454 	r4 = r4 >> 2;
   37455 	f1 = heapFloat[(r3)];
   37456 	f2 = heapFloat[(r4+12)];
   37457 	f3 = heapFloat[(r4+13)];
   37458 	f4 = heapFloat[(r4+14)];
   37459 	r3 = sp + -960;
   37460 	r5 = r3 >> 2;
   37461 	heap32[(fp+-240)] = 0;
   37462 	heap32[(r5+1)] = 0;
   37463 	r3 = (r3 + r2)|0;
   37464 	heap32[(r5+2)] = 0;
   37465 	r3 = r3 >> 2;
   37466 	heap32[(r5+3)] = 0;
   37467 	r8 = sp + -976;
   37468 	heapFloat[(r3)] = f1;
   37469 	r3 = (r7 + 1)|0;
   37470 	r3 = (r3 % 3)|0;
   37471 	r7 = r8 >> 2;
   37472 	heap32[(fp+-244)] = 0;
   37473 	heap32[(r7+1)] = 0;
   37474 	r3 = r3 << 2;
   37475 	r8 = (r8 + r3)|0;
   37476 	heap32[(r7+2)] = 0;
   37477 	r8 = r8 >> 2;
   37478 	heap32[(r7+3)] = 0;
   37479 	heapFloat[(r8)] = f0;
   37480 	r8 = heap32[(r1)];
   37481 	r8 = r8 >> 2;
   37482 	r8 = heap32[(r8+4)];
   37483 	heap32[(g0)] = r0;
   37484 	__FUNCTION_TABLE__[(r8)>>2](i7);
   37485 	f1 = heapFloat[(r5+1)];
   37486 	f5 = heapFloat[(r7+1)];
   37487 	f6 = heapFloat[(fp+-240)];
   37488 	f7 = heapFloat[(fp+-244)];
   37489 	r9 = r_g0 >> 2;
   37490 	f8 = heapFloat[(r5+2)];
   37491 	f9 = heapFloat[(r7+2)];
   37492 	f10 = f7-f6;
   37493 	f11 = heapFloat[(r4)];
   37494 	f12 = f5-f1;
   37495 	f13 = heapFloat[(r4+1)];
   37496 	r5 = heap32[(r9)];
   37497 	f14 = heapFloat[(r4+4)];
   37498 	f15 = heapFloat[(r4+5)];
   37499 	f16 = f11*f10;
   37500 	f17 = f13*f12;
   37501 	f18 = f9-f8;
   37502 	f19 = heapFloat[(r4+2)];
   37503 	r5 = r5 >> 2;
   37504 	f20 = heapFloat[(r4+8)];
   37505 	f21 = heapFloat[(r4+9)];
   37506 	f22 = heapFloat[(r4+6)];
   37507 	f23 = f14*f10;
   37508 	f24 = f15*f12;
   37509 	f16 = f16+f17;
   37510 	f17 = f19*f18;
   37511 	f16 = f16+f17;
   37512 	f17 = heapFloat[(r4+10)];
   37513 	r5 = heap32[(r5+2)];
   37514 	f10 = f20*f10;
   37515 	f12 = f21*f12;
   37516 	f23 = f23+f24;
   37517 	f24 = f22*f18;
   37518 	f25 = f6+f7;
   37519 	f26 = f1+f5;
   37520 	r7 = sp + -224;
   37521 	f23 = f23+f24;
   37522 	f10 = f10+f12;
   37523 	f12 = f17*f18;
   37524 	f16 = f2+f16;
   37525 	f18 = f8+f9;
   37526 	f10 = f10+f12;
   37527 	f11 = f11*f25;
   37528 	f12 = f13*f26;
   37529 	r9 = r7 >> 2;
   37530 	f13 = f3+f23;
   37531 	heapFloat[(fp+-56)] = f16;
   37532 	f14 = f14*f25;
   37533 	f15 = f15*f26;
   37534 	f11 = f11+f12;
   37535 	f12 = f19*f18;
   37536 	f10 = f4+f10;
   37537 	heapFloat[(r9+1)] = f13;
   37538 	f11 = f11+f12;
   37539 	heapFloat[(r9+2)] = f10;
   37540 	f10 = f20*f25;
   37541 	f12 = f21*f26;
   37542 	f13 = f14+f15;
   37543 	f14 = f22*f18;
   37544 	r10 = sp + -208;
   37545 	f13 = f13+f14;
   37546 	f10 = f10+f12;
   37547 	f12 = f17*f18;
   37548 	f11 = f2+f11;
   37549 	heap32[(r9+3)] = 0;
   37550 	f10 = f10+f12;
   37551 	r9 = r10 >> 2;
   37552 	f12 = f3+f13;
   37553 	heapFloat[(fp+-52)] = f11;
   37554 	f10 = f4+f10;
   37555 	heapFloat[(r9+1)] = f12;
   37556 	heapFloat[(r9+2)] = f10;
   37557 	heap32[(r9+3)] = 0;
   37558 	heap32[(g0)] = r_g0;
   37559 	heap32[(g0+1)] = r10;
   37560 	heap32[(g0+2)] = r7;
   37561 	heap32[(g0+3)] = r6;
   37562 	__FUNCTION_TABLE__[(r5)>>2](i7);
   37563 	r5 = heap32[(r1)];
   37564 	r5 = r5 >> 2;
   37565 	r5 = heap32[(r5+4)];
   37566 	heap32[(g0)] = r0;
   37567 	__FUNCTION_TABLE__[(r5)>>2](i7);
   37568 	f10 = -f6;
   37569 	f11 = -f1;
   37570 	f12 = -f8;
   37571 	r7 = r_g0 >> 2;
   37572 	f10 = f10-f7;
   37573 	f13 = heapFloat[(r4)];
   37574 	f11 = f11-f5;
   37575 	f14 = heapFloat[(r4+1)];
   37576 	r7 = heap32[(r7)];
   37577 	f15 = heapFloat[(r4+4)];
   37578 	f16 = heapFloat[(r4+5)];
   37579 	f17 = f13*f10;
   37580 	f18 = f14*f11;
   37581 	f12 = f12-f9;
   37582 	f19 = heapFloat[(r4+2)];
   37583 	r7 = r7 >> 2;
   37584 	f20 = heapFloat[(r4+8)];
   37585 	f21 = heapFloat[(r4+9)];
   37586 	f22 = heapFloat[(r4+6)];
   37587 	f23 = f15*f10;
   37588 	f24 = f16*f11;
   37589 	f17 = f17+f18;
   37590 	f18 = f19*f12;
   37591 	f17 = f17+f18;
   37592 	f18 = heapFloat[(r4+10)];
   37593 	r7 = heap32[(r7+2)];
   37594 	f10 = f20*f10;
   37595 	f11 = f21*f11;
   37596 	f23 = f23+f24;
   37597 	f24 = f22*f12;
   37598 	f7 = f6-f7;
   37599 	f5 = f1-f5;
   37600 	r8 = sp + -192;
   37601 	f23 = f23+f24;
   37602 	f10 = f10+f11;
   37603 	f11 = f18*f12;
   37604 	f12 = f2+f17;
   37605 	f9 = f8-f9;
   37606 	f10 = f10+f11;
   37607 	f11 = f13*f7;
   37608 	f13 = f14*f5;
   37609 	r9 = r8 >> 2;
   37610 	f14 = f3+f23;
   37611 	heapFloat[(fp+-48)] = f12;
   37612 	f12 = f15*f7;
   37613 	f15 = f16*f5;
   37614 	f11 = f11+f13;
   37615 	f13 = f19*f9;
   37616 	f10 = f4+f10;
   37617 	heapFloat[(r9+1)] = f14;
   37618 	f11 = f11+f13;
   37619 	heapFloat[(r9+2)] = f10;
   37620 	f7 = f20*f7;
   37621 	f5 = f21*f5;
   37622 	f10 = f12+f15;
   37623 	f12 = f22*f9;
   37624 	r10 = sp + -176;
   37625 	f10 = f10+f12;
   37626 	f5 = f7+f5;
   37627 	f7 = f18*f9;
   37628 	f9 = f2+f11;
   37629 	heap32[(r9+3)] = 0;
   37630 	f5 = f5+f7;
   37631 	r9 = r10 >> 2;
   37632 	f7 = f3+f10;
   37633 	heapFloat[(fp+-44)] = f9;
   37634 	f5 = f4+f5;
   37635 	heapFloat[(r9+1)] = f7;
   37636 	heapFloat[(r9+2)] = f5;
   37637 	heap32[(r9+3)] = 0;
   37638 	heap32[(g0)] = r_g0;
   37639 	heap32[(g0+1)] = r10;
   37640 	heap32[(g0+2)] = r8;
   37641 	heap32[(g0+3)] = r6;
   37642 	r5 = sp + -992;
   37643 	__FUNCTION_TABLE__[(r7)>>2](i7);
   37644 	r7 = r5 >> 2;
   37645 	heap32[(fp+-248)] = 0;
   37646 	heap32[(r7+1)] = 0;
   37647 	r2 = (r5 + r2)|0;
   37648 	heap32[(r7+2)] = 0;
   37649 	r2 = r2 >> 2;
   37650 	heap32[(r7+3)] = 0;
   37651 	r5 = sp + -1008;
   37652 	heap32[(r2)] = 1065353216;
   37653 	r2 = r5 >> 2;
   37654 	heap32[(fp+-252)] = 0;
   37655 	heap32[(r2+1)] = 0;
   37656 	r3 = (r5 + r3)|0;
   37657 	heap32[(r2+2)] = 0;
   37658 	r3 = r3 >> 2;
   37659 	heap32[(r2+3)] = 0;
   37660 	heap32[(r3)] = 1065353216;
   37661 	r3 = heap32[(r1)];
   37662 	r3 = r3 >> 2;
   37663 	r3 = heap32[(r3+4)];
   37664 	heap32[(g0)] = r0;
   37665 	__FUNCTION_TABLE__[(r3)>>2](i7);
   37666 	r5 = r_g0 >> 2;
   37667 	r5 = heap32[(r5)];
   37668 	f5 = heapFloat[(r4)];
   37669 	f7 = heapFloat[(fp+-252)];
   37670 	f9 = heapFloat[(r4+1)];
   37671 	f10 = heapFloat[(r2+1)];
   37672 	f11 = heapFloat[(r4+4)];
   37673 	f12 = heapFloat[(r4+5)];
   37674 	r5 = r5 >> 2;
   37675 	f13 = heapFloat[(r4+2)];
   37676 	f14 = heapFloat[(r2+2)];
   37677 	f15 = f5*f7;
   37678 	f16 = f9*f10;
   37679 	f17 = heapFloat[(r4+8)];
   37680 	f18 = heapFloat[(r4+9)];
   37681 	f19 = heapFloat[(r4+10)];
   37682 	f20 = heapFloat[(r4+6)];
   37683 	r2 = heap32[(r5+15)];
   37684 	f21 = f11*f7;
   37685 	f22 = f12*f10;
   37686 	f15 = f15+f16;
   37687 	f16 = f13*f14;
   37688 	r5 = sp + -160;
   37689 	f23 = f17*f7;
   37690 	f24 = f18*f10;
   37691 	f21 = f21+f22;
   37692 	f22 = f20*f14;
   37693 	f15 = f15+f16;
   37694 	r8 = r5 >> 2;
   37695 	f16 = f23+f24;
   37696 	f23 = f19*f14;
   37697 	f21 = f21+f22;
   37698 	heapFloat[(fp+-40)] = f15;
   37699 	f15 = f16+f23;
   37700 	heapFloat[(r8+1)] = f21;
   37701 	heapFloat[(r8+2)] = f15;
   37702 	heap32[(r8+3)] = 0;
   37703 	f15 = heapFloat[(fp+-248)];
   37704 	f16 = heapFloat[(r7+1)];
   37705 	f21 = heapFloat[(r7+2)];
   37706 	f22 = f5*f15;
   37707 	f23 = f9*f16;
   37708 	f24 = f11*f15;
   37709 	f25 = f12*f16;
   37710 	f22 = f22+f23;
   37711 	f23 = f13*f21;
   37712 	r7 = sp + -144;
   37713 	f26 = f17*f15;
   37714 	f27 = f18*f16;
   37715 	f24 = f24+f25;
   37716 	f25 = f20*f21;
   37717 	f22 = f22+f23;
   37718 	f5 = f5*f6;
   37719 	f9 = f9*f1;
   37720 	r8 = r7 >> 2;
   37721 	f23 = f26+f27;
   37722 	f26 = f19*f21;
   37723 	f24 = f24+f25;
   37724 	heapFloat[(fp+-36)] = f22;
   37725 	f11 = f11*f6;
   37726 	f12 = f12*f1;
   37727 	f5 = f5+f9;
   37728 	f9 = f13*f8;
   37729 	f13 = f23+f26;
   37730 	heapFloat[(r8+1)] = f24;
   37731 	f5 = f5+f9;
   37732 	heapFloat[(r8+2)] = f13;
   37733 	f9 = f17*f6;
   37734 	f13 = f18*f1;
   37735 	f11 = f11+f12;
   37736 	f12 = f20*f8;
   37737 	r9 = sp + -128;
   37738 	f11 = f11+f12;
   37739 	f9 = f9+f13;
   37740 	f12 = f19*f8;
   37741 	f5 = f2-f5;
   37742 	heap32[(r8+3)] = 0;
   37743 	f9 = f9+f12;
   37744 	r8 = r9 >> 2;
   37745 	f11 = f3-f11;
   37746 	heapFloat[(fp+-32)] = f5;
   37747 	f5 = f4-f9;
   37748 	heapFloat[(r8+1)] = f11;
   37749 	heapFloat[(r8+2)] = f5;
   37750 	heap32[(r8+3)] = 0;
   37751 	heap32[(g0)] = r_g0;
   37752 	heap32[(g0+1)] = r9;
   37753 	heap32[(g0+2)] = r7;
   37754 	heap32[(g0+3)] = r5;
   37755 	heapFloat[(g0+4)] = f0;
   37756 	heapFloat[(g0+5)] = f0;
   37757 	heap32[(g0+6)] = 0;
   37758 	heap32[(g0+7)] = 1086918619;
   37759 	heap32[(g0+8)] = r6;
   37760 	heap32[(g0+9)] = 0;
   37761 	heap32[(g0+10)] = 1092616192;
   37762 	__FUNCTION_TABLE__[(r2)>>2](i7);
   37763 	r1 = heap32[(r1)];
   37764 	r1 = r1 >> 2;
   37765 	r1 = heap32[(r1+4)];
   37766 	heap32[(g0)] = r0;
   37767 	__FUNCTION_TABLE__[(r1)>>2](i7);
   37768 	r1 = r_g0 >> 2;
   37769 	f5 = heapFloat[(r4)];
   37770 	f9 = heapFloat[(r4+1)];
   37771 	r1 = heap32[(r1)];
   37772 	f11 = heapFloat[(r4+4)];
   37773 	f12 = heapFloat[(r4+5)];
   37774 	f13 = heapFloat[(r4+2)];
   37775 	r1 = r1 >> 2;
   37776 	f17 = f5*f7;
   37777 	f18 = f9*f10;
   37778 	f19 = heapFloat[(r4+8)];
   37779 	f20 = heapFloat[(r4+9)];
   37780 	f22 = heapFloat[(r4+10)];
   37781 	f23 = heapFloat[(r4+6)];
   37782 	r1 = heap32[(r1+15)];
   37783 	f24 = f11*f7;
   37784 	f25 = f12*f10;
   37785 	f17 = f17+f18;
   37786 	f18 = f13*f14;
   37787 	r2 = sp + -112;
   37788 	f7 = f19*f7;
   37789 	f10 = f20*f10;
   37790 	f24 = f24+f25;
   37791 	f25 = f23*f14;
   37792 	f17 = f17+f18;
   37793 	r3 = r2 >> 2;
   37794 	f7 = f7+f10;
   37795 	f10 = f22*f14;
   37796 	f14 = f24+f25;
   37797 	heapFloat[(fp+-28)] = f17;
   37798 	f17 = f5*f15;
   37799 	f18 = f9*f16;
   37800 	f7 = f7+f10;
   37801 	heapFloat[(r3+1)] = f14;
   37802 	heapFloat[(r3+2)] = f7;
   37803 	f7 = f11*f15;
   37804 	f10 = f12*f16;
   37805 	f14 = f17+f18;
   37806 	f17 = f13*f21;
   37807 	r4 = sp + -96;
   37808 	f15 = f19*f15;
   37809 	f16 = f20*f16;
   37810 	f7 = f7+f10;
   37811 	f10 = f23*f21;
   37812 	f14 = f14+f17;
   37813 	heap32[(r3+3)] = 0;
   37814 	f5 = f5*f6;
   37815 	f9 = f9*f1;
   37816 	r3 = r4 >> 2;
   37817 	f15 = f15+f16;
   37818 	f16 = f22*f21;
   37819 	f7 = f7+f10;
   37820 	heapFloat[(fp+-24)] = f14;
   37821 	f10 = f11*f6;
   37822 	f11 = f12*f1;
   37823 	f5 = f5+f9;
   37824 	f9 = f13*f8;
   37825 	f12 = f15+f16;
   37826 	heapFloat[(r3+1)] = f7;
   37827 	f5 = f5+f9;
   37828 	heapFloat[(r3+2)] = f12;
   37829 	f6 = f19*f6;
   37830 	f1 = f20*f1;
   37831 	f7 = f10+f11;
   37832 	f9 = f23*f8;
   37833 	r5 = sp + -80;
   37834 	f7 = f7+f9;
   37835 	f1 = f6+f1;
   37836 	f6 = f22*f8;
   37837 	f2 = f2+f5;
   37838 	heap32[(r3+3)] = 0;
   37839 	f1 = f1+f6;
   37840 	r3 = r5 >> 2;
   37841 	f3 = f3+f7;
   37842 	heapFloat[(fp+-20)] = f2;
   37843 	f1 = f4+f1;
   37844 	heapFloat[(r3+1)] = f3;
   37845 	heapFloat[(r3+2)] = f1;
   37846 	heap32[(r3+3)] = 0;
   37847 	heap32[(g0)] = r_g0;
   37848 	heap32[(g0+1)] = r5;
   37849 	heap32[(g0+2)] = r4;
   37850 }
   37851 else{
   37852 __label__ = 32;
   37853 break _1;
   37854 }
   37855 }
   37856 	heap32[(g0+3)] = r2;
   37857 	heapFloat[(g0+4)] = f0;
   37858 	heapFloat[(g0+5)] = f0;
   37859 	heap32[(g0+6)] = 0;
   37860 	heap32[(g0+7)] = 1086918619;
   37861 	heap32[(g0+8)] = r6;
   37862 	heap32[(g0+9)] = 0;
   37863 	heap32[(g0+10)] = 1092616192;
   37864 	__FUNCTION_TABLE__[(r1)>>2](i7);
   37865 	return;
   37866 }
   37867 }
   37868 else{
   37869 	if(r3 >8) //_LBB222_4
   37870 {
   37871 	if(r3 ==9) //_LBB222_16
   37872 {
   37873 	r2 = heap32[(r5+23)];
   37874 	r3 = (r2 + -1)|0;
   37875 	if(r3 <0) //_LBB222_42
   37876 {
   37877 __label__ = 40;
   37878 break _1;
   37879 }
   37880 else{
   37881 	r3 = 1;
   37882 	r2 = (r3 - r2)|0;
   37883 _32: while(true){
   37884 	r3 = r2;
   37885 	r2 = heap32[(r5+25)];
   37886 	r7 = r3 << 4;
   37887 	r8 = heap32[(r1)];
   37888 	r2 = (r2 - r7)|0;
   37889 	r2 = r2 >> 2;
   37890 	r7 = r8 >> 2;
   37891 	r7 = heap32[(r7+4)];
   37892 	f0 = heapFloat[(r2)];
   37893 	f1 = heapFloat[(r2+1)];
   37894 	f2 = heapFloat[(r2+2)];
   37895 	heap32[(g0)] = r0;
   37896 	__FUNCTION_TABLE__[(r7)>>2](i7);
   37897 	r7 = r4 >> 2;
   37898 	r8 = r_g0 >> 2;
   37899 	r8 = heap32[(r8)];
   37900 	f3 = heapFloat[(r7+1)];
   37901 	f4 =                         0;
   37902 	f5 = heapFloat[(r7)];
   37903 	f6 = heapFloat[(r7+2)];
   37904 	r8 = r8 >> 2;
   37905 	f7 = f3*f4;
   37906 	f8 = f5*f4;
   37907 	f9 = heapFloat[(r7+8)];
   37908 	f10 = heapFloat[(r7+9)];
   37909 	f11 = heapFloat[(r7+10)];
   37910 	f12 = heapFloat[(r7+4)];
   37911 	f13 = heapFloat[(r7+5)];
   37912 	f14 = heapFloat[(r7+6)];
   37913 	r8 = heap32[(r8+4)];
   37914 	f15 = f5+f7;
   37915 	f16 = f6*f4;
   37916 	f17 = heapFloat[(r7+14)];
   37917 	f18 = heapFloat[(r7+13)];
   37918 	f19 = heapFloat[(r7+12)];
   37919 	r7 = sp + -608;
   37920 	f20 = f8+f3;
   37921 	f15 = f15+f16;
   37922 	f7 = f8+f7;
   37923 	r9 = r7 >> 2;
   37924 	f8 = f20+f16;
   37925 	heapFloat[(fp+-152)] = f15;
   37926 	f15 = f13*f4;
   37927 	f7 = f7+f6;
   37928 	heapFloat[(r9+1)] = f8;
   37929 	f8 = f12*f4;
   37930 	heapFloat[(r9+2)] = f7;
   37931 	f7 = f12+f15;
   37932 	f16 = f14*f4;
   37933 	f20 = f8+f13;
   37934 	f7 = f7+f16;
   37935 	heap32[(r9+3)] = 0;
   37936 	f8 = f8+f15;
   37937 	f15 = f20+f16;
   37938 	heapFloat[(r9+4)] = f7;
   37939 	f7 = f10*f4;
   37940 	f8 = f8+f14;
   37941 	heapFloat[(r9+5)] = f15;
   37942 	f15 = f9*f4;
   37943 	heapFloat[(r9+6)] = f8;
   37944 	f8 = f9+f7;
   37945 	f4 = f11*f4;
   37946 	f16 = f15+f10;
   37947 	f8 = f8+f4;
   37948 	heap32[(r9+7)] = 0;
   37949 	f7 = f15+f7;
   37950 	f5 = f5*f0;
   37951 	f3 = f3*f1;
   37952 	f4 = f16+f4;
   37953 	heapFloat[(r9+8)] = f8;
   37954 	f8 = f12*f0;
   37955 	f12 = f13*f1;
   37956 	f3 = f5+f3;
   37957 	f5 = f6*f2;
   37958 	f6 = f7+f11;
   37959 	heapFloat[(r9+9)] = f4;
   37960 	f3 = f3+f5;
   37961 	heapFloat[(r9+10)] = f6;
   37962 	f0 = f9*f0;
   37963 	f1 = f10*f1;
   37964 	f4 = f8+f12;
   37965 	f5 = f14*f2;
   37966 	f4 = f4+f5;
   37967 	f0 = f0+f1;
   37968 	f1 = f11*f2;
   37969 	f2 = f3+f19;
   37970 	heap32[(r9+11)] = 0;
   37971 	f0 = f0+f1;
   37972 	f1 = f4+f18;
   37973 	heapFloat[(r9+12)] = f2;
   37974 	f0 = f0+f17;
   37975 	heapFloat[(r9+13)] = f1;
   37976 	heapFloat[(r9+14)] = f0;
   37977 	heap32[(r9+15)] = 0;
   37978 	r9 = heap32[(r5+30)];
   37979 	r10 = r3 << 2;
   37980 	r9 = (r9 - r10)|0;
   37981 	r9 = r9 >> 2;
   37982 	f0 = heapFloat[(r9)];
   37983 	heap32[(g0)] = r_g0;
   37984 	heapFloat[(g0+1)] = f0;
   37985 	heap32[(g0+2)] = r7;
   37986 	heap32[(g0+3)] = r6;
   37987 	r2 = (r3 + 1)|0;
   37988 	__FUNCTION_TABLE__[(r8)>>2](i7);
   37989 	if(r3 ==0) //_LBB222_42
   37990 {
   37991 __label__ = 40;
   37992 break _1;
   37993 }
   37994 else{
   37995 continue _32;
   37996 }
   37997 }
   37998 }
   37999 }
   38000 else{
   38001 	if(r3 ==10) //_LBB222_19
   38002 {
   38003 	r3 = heap32[(r5+13)];
   38004 	r5 = (r3 + 2)|0;
   38005 	r5 = (r5 % 3)|0;
   38006 	r7 = r3 << 2;
   38007 	r2 = (r2 + 28)|0;
   38008 	r5 = r5 << 2;
   38009 	r8 = (r2 + r7)|0;
   38010 	r2 = (r2 + r5)|0;
   38011 	r8 = r8 >> 2;
   38012 	r2 = r2 >> 2;
   38013 	f0 = heapFloat[(r8)];
   38014 	f1 = heapFloat[(r2)];
   38015 	r2 = sp + -720;
   38016 	r8 = r2 >> 2;
   38017 	heap32[(fp+-180)] = 0;
   38018 	heap32[(r8+1)] = 0;
   38019 	r9 = (r2 + r7)|0;
   38020 	heap32[(r8+2)] = 0;
   38021 	r9 = r9 >> 2;
   38022 	f2 = -f0;
   38023 	heap32[(r8+3)] = 0;
   38024 	r10 = sp + -736;
   38025 	heapFloat[(r9)] = f2;
   38026 	heap32[(fp+-184)] = 0;
   38027 	r9 = r10 >> 2;
   38028 	heap32[(r9+1)] = 0;
   38029 	r7 = (r10 + r7)|0;
   38030 	heap32[(r9+2)] = 0;
   38031 	r7 = r7 >> 2;
   38032 	heap32[(r9+3)] = 0;
   38033 	heapFloat[(r7)] = f0;
   38034 	r4 = r4 >> 2;
   38035 	f0 = heapFloat[(r4)];
   38036 	r7 = sp + -800;
   38037 	heapFloat[(fp+-200)] = f0;
   38038 	r11 = r7 >> 2;
   38039 	f2 = heapFloat[(r4+1)];
   38040 	heapFloat[(r11+1)] = f2;
   38041 	f3 = heapFloat[(r4+2)];
   38042 	heapFloat[(r11+2)] = f3;
   38043 	heap32[(r11+3)] = heap32[(r4+3)];
   38044 	f4 = heapFloat[(r4+4)];
   38045 	heapFloat[(r11+4)] = f4;
   38046 	f5 = heapFloat[(r4+5)];
   38047 	heapFloat[(r11+5)] = f5;
   38048 	f6 = heapFloat[(r4+6)];
   38049 	heapFloat[(r11+6)] = f6;
   38050 	heap32[(r11+7)] = heap32[(r4+7)];
   38051 	f7 = heapFloat[(r4+8)];
   38052 	heapFloat[(r11+8)] = f7;
   38053 	f8 = heapFloat[(r4+9)];
   38054 	heapFloat[(r11+9)] = f8;
   38055 	f9 = heapFloat[(r4+10)];
   38056 	heapFloat[(r11+10)] = f9;
   38057 	heap32[(r11+11)] = heap32[(r4+11)];
   38058 	f10 = heapFloat[(fp+-180)];
   38059 	f11 = heapFloat[(r8+1)];
   38060 	f12 = heapFloat[(r8+2)];
   38061 	f0 = f0*f10;
   38062 	f2 = f2*f11;
   38063 	f4 = f4*f10;
   38064 	f5 = f5*f11;
   38065 	f0 = f0+f2;
   38066 	f2 = f3*f12;
   38067 	f3 = f7*f10;
   38068 	f7 = f8*f11;
   38069 	f4 = f4+f5;
   38070 	f5 = f6*f12;
   38071 	f0 = f0+f2;
   38072 	f2 = heapFloat[(r4+12)];
   38073 	f6 = heapFloat[(r4+13)];
   38074 	f8 = heapFloat[(r4+14)];
   38075 	f4 = f4+f5;
   38076 	f3 = f3+f7;
   38077 	f5 = f9*f12;
   38078 	f0 = f0+f2;
   38079 	f2 = f3+f5;
   38080 	f3 = f4+f6;
   38081 	heapFloat[(r11+12)] = f0;
   38082 	f0 = f2+f8;
   38083 	heapFloat[(r11+13)] = f3;
   38084 	heapFloat[(r11+14)] = f0;
   38085 	heap32[(r11+15)] = 0;
   38086 	r11 = heap32[(r1)];
   38087 	r11 = r11 >> 2;
   38088 	r11 = heap32[(r11+4)];
   38089 	heap32[(g0)] = r0;
   38090 	__FUNCTION_TABLE__[(r11)>>2](i7);
   38091 	r12 = r_g0 >> 2;
   38092 	r12 = heap32[(r12)];
   38093 	r12 = r12 >> 2;
   38094 	r12 = heap32[(r12+4)];
   38095 	heap32[(g0)] = r_g0;
   38096 	heapFloat[(g0+1)] = f1;
   38097 	heap32[(g0+2)] = r7;
   38098 	heap32[(g0+3)] = r6;
   38099 	__FUNCTION_TABLE__[(r12)>>2](i7);
   38100 	f0 = heapFloat[(r4)];
   38101 	r7 = sp + -864;
   38102 	heapFloat[(fp+-216)] = f0;
   38103 	r11 = r7 >> 2;
   38104 	f2 = heapFloat[(r4+1)];
   38105 	heapFloat[(r11+1)] = f2;
   38106 	f3 = heapFloat[(r4+2)];
   38107 	heapFloat[(r11+2)] = f3;
   38108 	heap32[(r11+3)] = heap32[(r4+3)];
   38109 	f4 = heapFloat[(r4+4)];
   38110 	heapFloat[(r11+4)] = f4;
   38111 	f5 = heapFloat[(r4+5)];
   38112 	heapFloat[(r11+5)] = f5;
   38113 	f6 = heapFloat[(r4+6)];
   38114 	heapFloat[(r11+6)] = f6;
   38115 	heap32[(r11+7)] = heap32[(r4+7)];
   38116 	f7 = heapFloat[(r4+8)];
   38117 	heapFloat[(r11+8)] = f7;
   38118 	f8 = heapFloat[(r4+9)];
   38119 	heapFloat[(r11+9)] = f8;
   38120 	f9 = heapFloat[(r4+10)];
   38121 	heapFloat[(r11+10)] = f9;
   38122 	heap32[(r11+11)] = heap32[(r4+11)];
   38123 	f10 = heapFloat[(fp+-184)];
   38124 	f11 = heapFloat[(r9+1)];
   38125 	f12 = heapFloat[(r9+2)];
   38126 	f0 = f0*f10;
   38127 	f2 = f2*f11;
   38128 	f4 = f4*f10;
   38129 	f5 = f5*f11;
   38130 	f0 = f0+f2;
   38131 	f2 = f3*f12;
   38132 	f3 = f7*f10;
   38133 	f7 = f8*f11;
   38134 	f4 = f4+f5;
   38135 	f5 = f6*f12;
   38136 	f0 = f0+f2;
   38137 	f2 = heapFloat[(r4+12)];
   38138 	f6 = heapFloat[(r4+13)];
   38139 	f8 = heapFloat[(r4+14)];
   38140 	f4 = f4+f5;
   38141 	f3 = f3+f7;
   38142 	f5 = f9*f12;
   38143 	f0 = f0+f2;
   38144 	f2 = f3+f5;
   38145 	f3 = f4+f6;
   38146 	heapFloat[(r11+12)] = f0;
   38147 	f0 = f2+f8;
   38148 	heapFloat[(r11+13)] = f3;
   38149 	heapFloat[(r11+14)] = f0;
   38150 	heap32[(r11+15)] = 0;
   38151 	r11 = heap32[(r1)];
   38152 	r11 = r11 >> 2;
   38153 	r11 = heap32[(r11+4)];
   38154 	heap32[(g0)] = r0;
   38155 	__FUNCTION_TABLE__[(r11)>>2](i7);
   38156 	r12 = r_g0 >> 2;
   38157 	r12 = heap32[(r12)];
   38158 	r12 = r12 >> 2;
   38159 	r12 = heap32[(r12+4)];
   38160 	r3 = (r3 + 1)|0;
   38161 	heap32[(g0)] = r_g0;
   38162 	heapFloat[(g0+1)] = f1;
   38163 	heap32[(g0+2)] = r7;
   38164 	heap32[(g0+3)] = r6;
   38165 	r3 = (r3 % 3)|0;
   38166 	__FUNCTION_TABLE__[(r12)>>2](i7);
   38167 	r3 = r3 << 2;
   38168 	r7 = (r2 + r3)|0;
   38169 	f0 = heapFloat[(r4+12)];
   38170 	f2 = heapFloat[(r4+13)];
   38171 	f3 = heapFloat[(r4+14)];
   38172 	r3 = (r10 + r3)|0;
   38173 	r7 = r7 >> 2;
   38174 	heapFloat[(r7)] = f1;
   38175 	r3 = r3 >> 2;
   38176 	heapFloat[(r3)] = f1;
   38177 	r11 = heap32[(r1)];
   38178 	r11 = r11 >> 2;
   38179 	r11 = heap32[(r11+4)];
   38180 	heap32[(g0)] = r0;
   38181 	__FUNCTION_TABLE__[(r11)>>2](i7);
   38182 	r12 = r_g0 >> 2;
   38183 	f4 = heapFloat[(fp+-184)];
   38184 	f5 = heapFloat[(r4)];
   38185 	f6 = heapFloat[(r9+1)];
   38186 	f7 = heapFloat[(r4+1)];
   38187 	r12 = heap32[(r12)];
   38188 	f8 = heapFloat[(r4+4)];
   38189 	f9 = heapFloat[(r4+5)];
   38190 	f10 = f5*f4;
   38191 	f11 = f7*f6;
   38192 	f12 = heapFloat[(r9+2)];
   38193 	f13 = heapFloat[(r4+2)];
   38194 	r12 = r12 >> 2;
   38195 	f14 = heapFloat[(r4+8)];
   38196 	f15 = heapFloat[(r4+9)];
   38197 	f16 = heapFloat[(r4+6)];
   38198 	f17 = f8*f4;
   38199 	f18 = f9*f6;
   38200 	f10 = f10+f11;
   38201 	f11 = f13*f12;
   38202 	f10 = f10+f11;
   38203 	f11 = heapFloat[(r4+10)];
   38204 	r12 = heap32[(r12+2)];
   38205 	f4 = f14*f4;
   38206 	f6 = f15*f6;
   38207 	f17 = f17+f18;
   38208 	f18 = f16*f12;
   38209 	r13 = sp + -544;
   38210 	f17 = f17+f18;
   38211 	f4 = f4+f6;
   38212 	f6 = f11*f12;
   38213 	f10 = f0+f10;
   38214 	f4 = f4+f6;
   38215 	r14 = r13 >> 2;
   38216 	f6 = f2+f17;
   38217 	heapFloat[(fp+-136)] = f10;
   38218 	f4 = f3+f4;
   38219 	heapFloat[(r14+1)] = f6;
   38220 	heapFloat[(r14+2)] = f4;
   38221 	heap32[(r14+3)] = 0;
   38222 	f4 = heapFloat[(fp+-180)];
   38223 	f6 = heapFloat[(r8+1)];
   38224 	f10 = heapFloat[(r8+2)];
   38225 	f5 = f5*f4;
   38226 	f7 = f7*f6;
   38227 	f8 = f8*f4;
   38228 	f9 = f9*f6;
   38229 	f5 = f5+f7;
   38230 	f7 = f13*f10;
   38231 	f5 = f5+f7;
   38232 	f4 = f14*f4;
   38233 	f6 = f15*f6;
   38234 	f7 = f8+f9;
   38235 	f8 = f16*f10;
   38236 	r14 = sp + -528;
   38237 	f7 = f7+f8;
   38238 	f4 = f4+f6;
   38239 	f6 = f11*f10;
   38240 	f5 = f0+f5;
   38241 	f4 = f4+f6;
   38242 	r15 = r14 >> 2;
   38243 	f6 = f2+f7;
   38244 	heapFloat[(fp+-132)] = f5;
   38245 	f4 = f3+f4;
   38246 	heapFloat[(r15+1)] = f6;
   38247 	heapFloat[(r15+2)] = f4;
   38248 	heap32[(r15+3)] = 0;
   38249 	heap32[(g0)] = r_g0;
   38250 	heap32[(g0+1)] = r14;
   38251 	heap32[(g0+2)] = r13;
   38252 	heap32[(g0+3)] = r6;
   38253 	__FUNCTION_TABLE__[(r12)>>2](i7);
   38254 	f4 = -f1;
   38255 	heapFloat[(r7)] = f4;
   38256 	heapFloat[(r3)] = f4;
   38257 	r11 = heap32[(r1)];
   38258 	r11 = r11 >> 2;
   38259 	r11 = heap32[(r11+4)];
   38260 	heap32[(g0)] = r0;
   38261 	__FUNCTION_TABLE__[(r11)>>2](i7);
   38262 	r12 = r_g0 >> 2;
   38263 	f5 = heapFloat[(fp+-184)];
   38264 	f6 = heapFloat[(r4)];
   38265 	f7 = heapFloat[(r9+1)];
   38266 	f8 = heapFloat[(r4+1)];
   38267 	r12 = heap32[(r12)];
   38268 	f9 = heapFloat[(r4+4)];
   38269 	f10 = heapFloat[(r4+5)];
   38270 	f11 = f6*f5;
   38271 	f12 = f8*f7;
   38272 	f13 = heapFloat[(r9+2)];
   38273 	f14 = heapFloat[(r4+2)];
   38274 	r12 = r12 >> 2;
   38275 	f15 = heapFloat[(r4+8)];
   38276 	f16 = heapFloat[(r4+9)];
   38277 	f17 = heapFloat[(r4+6)];
   38278 	f18 = f9*f5;
   38279 	f19 = f10*f7;
   38280 	f11 = f11+f12;
   38281 	f12 = f14*f13;
   38282 	f11 = f11+f12;
   38283 	f12 = heapFloat[(r4+10)];
   38284 	r12 = heap32[(r12+2)];
   38285 	f5 = f15*f5;
   38286 	f7 = f16*f7;
   38287 	f18 = f18+f19;
   38288 	f19 = f17*f13;
   38289 	r13 = sp + -512;
   38290 	f18 = f18+f19;
   38291 	f5 = f5+f7;
   38292 	f7 = f12*f13;
   38293 	f11 = f0+f11;
   38294 	f5 = f5+f7;
   38295 	r14 = r13 >> 2;
   38296 	f7 = f2+f18;
   38297 	heapFloat[(fp+-128)] = f11;
   38298 	f5 = f3+f5;
   38299 	heapFloat[(r14+1)] = f7;
   38300 	heapFloat[(r14+2)] = f5;
   38301 	heap32[(r14+3)] = 0;
   38302 	f5 = heapFloat[(fp+-180)];
   38303 	f7 = heapFloat[(r8+1)];
   38304 	f11 = heapFloat[(r8+2)];
   38305 	f6 = f6*f5;
   38306 	f8 = f8*f7;
   38307 	f9 = f9*f5;
   38308 	f10 = f10*f7;
   38309 	f6 = f6+f8;
   38310 	f8 = f14*f11;
   38311 	f6 = f6+f8;
   38312 	f5 = f15*f5;
   38313 	f7 = f16*f7;
   38314 	f8 = f9+f10;
   38315 	f9 = f17*f11;
   38316 	r14 = sp + -496;
   38317 	f8 = f8+f9;
   38318 	f5 = f5+f7;
   38319 	f7 = f12*f11;
   38320 	f6 = f0+f6;
   38321 	f5 = f5+f7;
   38322 	r15 = r14 >> 2;
   38323 	f7 = f2+f8;
   38324 	heapFloat[(fp+-124)] = f6;
   38325 	f5 = f3+f5;
   38326 	heapFloat[(r15+1)] = f7;
   38327 	heapFloat[(r15+2)] = f5;
   38328 	heap32[(r15+3)] = 0;
   38329 	heap32[(g0)] = r_g0;
   38330 	heap32[(g0+1)] = r14;
   38331 	heap32[(g0+2)] = r13;
   38332 	heap32[(g0+3)] = r6;
   38333 	__FUNCTION_TABLE__[(r12)>>2](i7);
   38334 	heap32[(r7)] = 0;
   38335 	r2 = (r2 + r5)|0;
   38336 	r5 = (r10 + r5)|0;
   38337 	heap32[(r3)] = 0;
   38338 	r2 = r2 >> 2;
   38339 	heapFloat[(r2)] = f1;
   38340 	r3 = r5 >> 2;
   38341 	heapFloat[(r3)] = f1;
   38342 	r5 = heap32[(r1)];
   38343 	r5 = r5 >> 2;
   38344 	r5 = heap32[(r5+4)];
   38345 	heap32[(g0)] = r0;
   38346 	__FUNCTION_TABLE__[(r5)>>2](i7);
   38347 	r7 = r_g0 >> 2;
   38348 	f1 = heapFloat[(fp+-184)];
   38349 	f5 = heapFloat[(r4)];
   38350 	f6 = heapFloat[(r9+1)];
   38351 	f7 = heapFloat[(r4+1)];
   38352 	r7 = heap32[(r7)];
   38353 	f8 = heapFloat[(r4+4)];
   38354 	f9 = heapFloat[(r4+5)];
   38355 	f10 = f5*f1;
   38356 	f11 = f7*f6;
   38357 	f12 = heapFloat[(r9+2)];
   38358 	f13 = heapFloat[(r4+2)];
   38359 	r7 = r7 >> 2;
   38360 	f14 = heapFloat[(r4+8)];
   38361 	f15 = heapFloat[(r4+9)];
   38362 	f16 = heapFloat[(r4+6)];
   38363 	f17 = f8*f1;
   38364 	f18 = f9*f6;
   38365 	f10 = f10+f11;
   38366 	f11 = f13*f12;
   38367 	f10 = f10+f11;
   38368 	f11 = heapFloat[(r4+10)];
   38369 	r7 = heap32[(r7+2)];
   38370 	f1 = f14*f1;
   38371 	f6 = f15*f6;
   38372 	f17 = f17+f18;
   38373 	f18 = f16*f12;
   38374 	r10 = sp + -480;
   38375 	f17 = f17+f18;
   38376 	f1 = f1+f6;
   38377 	f6 = f11*f12;
   38378 	f10 = f0+f10;
   38379 	f1 = f1+f6;
   38380 	r11 = r10 >> 2;
   38381 	f6 = f2+f17;
   38382 	heapFloat[(fp+-120)] = f10;
   38383 	f1 = f3+f1;
   38384 	heapFloat[(r11+1)] = f6;
   38385 	heapFloat[(r11+2)] = f1;
   38386 	heap32[(r11+3)] = 0;
   38387 	f1 = heapFloat[(fp+-180)];
   38388 	f6 = heapFloat[(r8+1)];
   38389 	f10 = heapFloat[(r8+2)];
   38390 	f5 = f5*f1;
   38391 	f7 = f7*f6;
   38392 	f8 = f8*f1;
   38393 	f9 = f9*f6;
   38394 	f5 = f5+f7;
   38395 	f7 = f13*f10;
   38396 	f5 = f5+f7;
   38397 	f1 = f14*f1;
   38398 	f6 = f15*f6;
   38399 	f7 = f8+f9;
   38400 	f8 = f16*f10;
   38401 	r11 = sp + -464;
   38402 	f7 = f7+f8;
   38403 	f1 = f1+f6;
   38404 	f6 = f11*f10;
   38405 	f5 = f0+f5;
   38406 	f1 = f1+f6;
   38407 	r12 = r11 >> 2;
   38408 	f6 = f2+f7;
   38409 	heapFloat[(fp+-116)] = f5;
   38410 	f1 = f3+f1;
   38411 	heapFloat[(r12+1)] = f6;
   38412 	heapFloat[(r12+2)] = f1;
   38413 	heap32[(r12+3)] = 0;
   38414 	heap32[(g0)] = r_g0;
   38415 	heap32[(g0+1)] = r11;
   38416 	heap32[(g0+2)] = r10;
   38417 	heap32[(g0+3)] = r6;
   38418 	__FUNCTION_TABLE__[(r7)>>2](i7);
   38419 	heapFloat[(r2)] = f4;
   38420 	heapFloat[(r3)] = f4;
   38421 	r1 = heap32[(r1)];
   38422 	r1 = r1 >> 2;
   38423 	r1 = heap32[(r1+4)];
   38424 	heap32[(g0)] = r0;
   38425 	__FUNCTION_TABLE__[(r1)>>2](i7);
   38426 	r1 = r_g0 >> 2;
   38427 	f1 = heapFloat[(fp+-184)];
   38428 	f4 = heapFloat[(r4)];
   38429 	f5 = heapFloat[(r9+1)];
   38430 	f6 = heapFloat[(r4+1)];
   38431 	r1 = heap32[(r1)];
   38432 	f7 = heapFloat[(r4+4)];
   38433 	f8 = heapFloat[(r4+5)];
   38434 	f9 = f4*f1;
   38435 	f10 = f6*f5;
   38436 	f11 = heapFloat[(r9+2)];
   38437 	f12 = heapFloat[(r4+2)];
   38438 	r1 = r1 >> 2;
   38439 	f13 = heapFloat[(r4+8)];
   38440 	f14 = heapFloat[(r4+9)];
   38441 	f15 = heapFloat[(r4+6)];
   38442 	f16 = f7*f1;
   38443 	f17 = f8*f5;
   38444 	f9 = f9+f10;
   38445 	f10 = f12*f11;
   38446 	f9 = f9+f10;
   38447 	f10 = heapFloat[(r4+10)];
   38448 	r1 = heap32[(r1+2)];
   38449 	f1 = f13*f1;
   38450 	f5 = f14*f5;
   38451 	f16 = f16+f17;
   38452 	f17 = f15*f11;
   38453 	r2 = sp + -448;
   38454 	f16 = f16+f17;
   38455 	f1 = f1+f5;
   38456 	f5 = f10*f11;
   38457 	f9 = f0+f9;
   38458 	f1 = f1+f5;
   38459 	r3 = r2 >> 2;
   38460 	f5 = f2+f16;
   38461 	heapFloat[(fp+-112)] = f9;
   38462 	f1 = f3+f1;
   38463 	heapFloat[(r3+1)] = f5;
   38464 	heapFloat[(r3+2)] = f1;
   38465 	heap32[(r3+3)] = 0;
   38466 	f1 = heapFloat[(fp+-180)];
   38467 	f5 = heapFloat[(r8+1)];
   38468 	f9 = heapFloat[(r8+2)];
   38469 	f4 = f4*f1;
   38470 	f6 = f6*f5;
   38471 	f7 = f7*f1;
   38472 	f8 = f8*f5;
   38473 	f4 = f4+f6;
   38474 	f6 = f12*f9;
   38475 	f4 = f4+f6;
   38476 	f1 = f13*f1;
   38477 	f5 = f14*f5;
   38478 	f6 = f7+f8;
   38479 	f7 = f15*f9;
   38480 	r3 = sp + -432;
   38481 	f6 = f6+f7;
   38482 	f1 = f1+f5;
   38483 	f5 = f10*f9;
   38484 	f0 = f0+f4;
   38485 	f1 = f1+f5;
   38486 	r4 = r3 >> 2;
   38487 	f2 = f2+f6;
   38488 	heapFloat[(fp+-108)] = f0;
   38489 	f0 = f3+f1;
   38490 	heapFloat[(r4+1)] = f2;
   38491 	heapFloat[(r4+2)] = f0;
   38492 	heap32[(r4+3)] = 0;
   38493 	heap32[(g0)] = r_g0;
   38494 	heap32[(g0+1)] = r3;
   38495 __label__ = 30;
   38496 break _1;
   38497 }
   38498 else{
   38499 __label__ = 32;
   38500 break _1;
   38501 }
   38502 }
   38503 }
   38504 else{
   38505 	if(r3 ==0) //_LBB222_14
   38506 {
   38507 	r3 = sp + -704;
   38508 	f0 = heapFloat[(r5+8)];
   38509 	f1 = heapFloat[(r5+9)];
   38510 	f2 = heapFloat[(r5+7)];
   38511 	r7 = r3 >> 2;
   38512 	heap32[(r7+3)] = heap32[(r5+10)];
   38513 	r8 = heap32[(r5)];
   38514 	r8 = r8 >> 2;
   38515 	r8 = heap32[(r8+11)];
   38516 	heap32[(g0)] = r2;
   38517 	__FUNCTION_TABLE__[(r8)>>2](i7);
   38518 	f3 = f_g0;
   38519 	r8 = heap32[(r5)];
   38520 	r8 = r8 >> 2;
   38521 	r8 = heap32[(r8+11)];
   38522 	heap32[(g0)] = r2;
   38523 	__FUNCTION_TABLE__[(r8)>>2](i7);
   38524 	f4 = f_g0;
   38525 	r5 = heap32[(r5)];
   38526 	r5 = r5 >> 2;
   38527 	r5 = heap32[(r5+11)];
   38528 	heap32[(g0)] = r2;
   38529 	__FUNCTION_TABLE__[(r5)>>2](i7);
   38530 	f2 = f2+f_g0;
   38531 	f0 = f0+f4;
   38532 	heapFloat[(fp+-176)] = f2;
   38533 	f1 = f1+f3;
   38534 	heapFloat[(r7+1)] = f0;
   38535 	heapFloat[(r7+2)] = f1;
   38536 	r1 = heap32[(r1)];
   38537 	r1 = r1 >> 2;
   38538 	r1 = heap32[(r1+4)];
   38539 	heap32[(g0)] = r0;
   38540 	__FUNCTION_TABLE__[(r1)>>2](i7);
   38541 	r1 = r_g0 >> 2;
   38542 	r1 = heap32[(r1)];
   38543 	r1 = r1 >> 2;
   38544 	f0 = heapFloat[(r7+2)];
   38545 	f1 = heapFloat[(r7+1)];
   38546 	f2 = heapFloat[(fp+-176)];
   38547 	r1 = heap32[(r1+18)];
   38548 	r2 = sp + -624;
   38549 	f2 = -f2;
   38550 	r5 = r2 >> 2;
   38551 	f1 = -f1;
   38552 	heapFloat[(fp+-156)] = f2;
   38553 	f0 = -f0;
   38554 	heapFloat[(r5+1)] = f1;
   38555 	heapFloat[(r5+2)] = f0;
   38556 	heap32[(r5+3)] = 0;
   38557 	heap32[(g0)] = r_g0;
   38558 	heap32[(g0+1)] = r2;
   38559 	heap32[(g0+2)] = r3;
   38560 	heap32[(g0+3)] = r4;
   38561 	heap32[(g0+4)] = r6;
   38562 	__FUNCTION_TABLE__[(r1)>>2](i7);
   38563 	return;
   38564 }
   38565 else{
   38566 	if(r3 ==8) //_LBB222_15
   38567 {
   38568 	r3 = heap32[(r5)];
   38569 	r3 = r3 >> 2;
   38570 	r3 = heap32[(r3+11)];
   38571 	heap32[(g0)] = r2;
   38572 	__FUNCTION_TABLE__[(r3)>>2](i7);
   38573 	f0 = f_g0;
   38574 	r1 = heap32[(r1)];
   38575 	r1 = r1 >> 2;
   38576 	r1 = heap32[(r1+4)];
   38577 	heap32[(g0)] = r0;
   38578 	__FUNCTION_TABLE__[(r1)>>2](i7);
   38579 	r1 = r_g0 >> 2;
   38580 	r1 = heap32[(r1)];
   38581 	r1 = r1 >> 2;
   38582 	r1 = heap32[(r1+4)];
   38583 	heap32[(g0)] = r_g0;
   38584 	heapFloat[(g0+1)] = f0;
   38585 	heap32[(g0+2)] = r4;
   38586 __label__ = 31;
   38587 }
   38588 else{
   38589 __label__ = 32;
   38590 }
   38591 }
   38592 }
   38593 }
   38594 } while(0);
   38595 _41: do {
   38596 switch(__label__ ){//multiple entries
   38597 case 30:
   38598 	heap32[(g0+2)] = r2;
   38599 __label__ = 31;
   38600 break _41;
   38601 break;
   38602 case 32:
   38603 	r7 = (r3 + -21)|0;
   38604 	if(uint(r7) <uint(9)) //_LBB222_34
   38605 {
   38606 	r3 = sp + -1024;
   38607 	r7 = r3 >> 2;
   38608 	heap32[(fp+-256)] = 1566444395;
   38609 	heap32[(r7+1)] = 1566444395;
   38610 	heap32[(r7+2)] = 1566444395;
   38611 	r8 = sp + -1040;
   38612 	heap32[(r7+3)] = 0;
   38613 	r7 = r8 >> 2;
   38614 	heap32[(fp+-260)] = -581039253;
   38615 	heap32[(r7+1)] = -581039253;
   38616 	heap32[(r7+2)] = -581039253;
   38617 	heap32[(r7+3)] = 0;
   38618 	r7 = heap32[(r1)];
   38619 	r7 = r7 >> 2;
   38620 	r7 = heap32[(r7+4)];
   38621 	r9 = _ZTV17DebugDrawcallback;
   38622 	heap32[(g0)] = r0;
   38623 	r10 = sp + -1136;
   38624 	r11 = (r9 + 8)|0;
   38625 	__FUNCTION_TABLE__[(r7)>>2](i7);
   38626 	r12 = r10 >> 2;
   38627 	r9 = (r9 + 32)|0;
   38628 	heap32[(fp+-284)] = r11;
   38629 	heap32[(r12+1)] = r9;
   38630 	r13 = r6 >> 2;
   38631 	heap32[(r12+2)] = r_g0;
   38632 	heap32[(r12+3)] = heap32[(r13)];
   38633 	heap32[(r12+4)] = heap32[(r13+1)];
   38634 	heap32[(r12+5)] = heap32[(r13+2)];
   38635 	r7 = r4 >> 2;
   38636 	heap32[(r12+6)] = heap32[(r13+3)];
   38637 	heap32[(r12+7)] = heap32[(r7)];
   38638 	heap32[(r12+8)] = heap32[(r7+1)];
   38639 	heap32[(r12+9)] = heap32[(r7+2)];
   38640 	heap32[(r12+10)] = heap32[(r7+3)];
   38641 	heap32[(r12+11)] = heap32[(r7+4)];
   38642 	heap32[(r12+12)] = heap32[(r7+5)];
   38643 	heap32[(r12+13)] = heap32[(r7+6)];
   38644 	heap32[(r12+14)] = heap32[(r7+7)];
   38645 	heap32[(r12+15)] = heap32[(r7+8)];
   38646 	heap32[(r12+16)] = heap32[(r7+9)];
   38647 	heap32[(r12+17)] = heap32[(r7+10)];
   38648 	heap32[(r12+18)] = heap32[(r7+11)];
   38649 	heap32[(r12+19)] = heap32[(r7+12)];
   38650 	heap32[(r12+20)] = heap32[(r7+13)];
   38651 	heap32[(r12+21)] = heap32[(r7+14)];
   38652 	heap32[(r12+22)] = heap32[(r7+15)];
   38653 	r7 = heap32[(r5)];
   38654 	r7 = r7 >> 2;
   38655 	r7 = heap32[(r7+15)];
   38656 	heap32[(g0)] = r2;
   38657 	heap32[(g0+1)] = r10;
   38658 	heap32[(g0+2)] = r8;
   38659 	heap32[(g0+3)] = r3;
   38660 	__FUNCTION_TABLE__[(r7)>>2](i7);
   38661 	r3 = r10 | 4;
   38662 	r7 = _ZTV31btInternalTriangleIndexCallback;
   38663 	heap32[(fp+-284)] = r11;
   38664 	r8 = _ZTV18btTriangleCallback;
   38665 	r3 = r3 >> 2;
   38666 	r7 = (r7 + 8)|0;
   38667 	heap32[(r12+1)] = r9;
   38668 	r8 = (r8 + 8)|0;
   38669 	heap32[(r3)] = r7;
   38670 	heap32[(fp+-284)] = r8;
   38671 	r3 = heap32[(r5+1)];
   38672 }
   38673 	if(r3 ==3) //_LBB222_37
   38674 {
   38675 	r3 = sp + -1152;
   38676 	r7 = r3 >> 2;
   38677 	heap32[(fp+-288)] = 1566444395;
   38678 	heap32[(r7+1)] = 1566444395;
   38679 	heap32[(r7+2)] = 1566444395;
   38680 	r8 = sp + -1168;
   38681 	heap32[(r7+3)] = 0;
   38682 	r7 = r8 >> 2;
   38683 	heap32[(fp+-292)] = -581039253;
   38684 	heap32[(r7+1)] = -581039253;
   38685 	heap32[(r7+2)] = -581039253;
   38686 	heap32[(r7+3)] = 0;
   38687 	r7 = heap32[(r1)];
   38688 	r7 = r7 >> 2;
   38689 	r7 = heap32[(r7+4)];
   38690 	r9 = _ZTV17DebugDrawcallback;
   38691 	heap32[(g0)] = r0;
   38692 	r10 = sp + -1264;
   38693 	r11 = (r9 + 8)|0;
   38694 	__FUNCTION_TABLE__[(r7)>>2](i7);
   38695 	r12 = r10 >> 2;
   38696 	r9 = (r9 + 32)|0;
   38697 	heap32[(fp+-316)] = r11;
   38698 	heap32[(r12+1)] = r9;
   38699 	r13 = r6 >> 2;
   38700 	heap32[(r12+2)] = r_g0;
   38701 	heap32[(r12+3)] = heap32[(r13)];
   38702 	heap32[(r12+4)] = heap32[(r13+1)];
   38703 	heap32[(r12+5)] = heap32[(r13+2)];
   38704 	r7 = r4 >> 2;
   38705 	heap32[(r12+6)] = heap32[(r13+3)];
   38706 	heap32[(r12+7)] = heap32[(r7)];
   38707 	heap32[(r12+8)] = heap32[(r7+1)];
   38708 	heap32[(r12+9)] = heap32[(r7+2)];
   38709 	heap32[(r12+10)] = heap32[(r7+3)];
   38710 	heap32[(r12+11)] = heap32[(r7+4)];
   38711 	heap32[(r12+12)] = heap32[(r7+5)];
   38712 	heap32[(r12+13)] = heap32[(r7+6)];
   38713 	heap32[(r12+14)] = heap32[(r7+7)];
   38714 	heap32[(r12+15)] = heap32[(r7+8)];
   38715 	heap32[(r12+16)] = heap32[(r7+9)];
   38716 	heap32[(r12+17)] = heap32[(r7+10)];
   38717 	heap32[(r12+18)] = heap32[(r7+11)];
   38718 	heap32[(r12+19)] = heap32[(r7+12)];
   38719 	heap32[(r12+20)] = heap32[(r7+13)];
   38720 	heap32[(r12+21)] = heap32[(r7+14)];
   38721 	heap32[(r12+22)] = heap32[(r7+15)];
   38722 	r7 = heap32[(r5+22)];
   38723 	r13 = r7 >> 2;
   38724 	r13 = heap32[(r13)];
   38725 	r13 = r13 >> 2;
   38726 	r13 = heap32[(r13+2)];
   38727 	r14 = (r10 + 4)|0;
   38728 	heap32[(g0)] = r7;
   38729 	heap32[(g0+1)] = r14;
   38730 	heap32[(g0+2)] = r8;
   38731 	heap32[(g0+3)] = r3;
   38732 	__FUNCTION_TABLE__[(r13)>>2](i7);
   38733 	r3 = r10 | 4;
   38734 	r7 = _ZTV31btInternalTriangleIndexCallback;
   38735 	heap32[(fp+-316)] = r11;
   38736 	r8 = _ZTV18btTriangleCallback;
   38737 	r3 = r3 >> 2;
   38738 	r7 = (r7 + 8)|0;
   38739 	heap32[(r12+1)] = r9;
   38740 	r8 = (r8 + 8)|0;
   38741 	heap32[(r3)] = r7;
   38742 	heap32[(fp+-316)] = r8;
   38743 	r3 = heap32[(r5+1)];
   38744 }
   38745 	if(r3 >6) //_LBB222_42
   38746 {
   38747 __label__ = 40;
   38748 }
   38749 else{
   38750 	r3 = heap32[(r5)];
   38751 	r3 = r3 >> 2;
   38752 	r3 = heap32[(r3+22)];
   38753 	heap32[(g0)] = r2;
   38754 	__FUNCTION_TABLE__[(r3)>>2](i7);
   38755 	r3 = r_g0;
   38756 	if(r3 <1) //_LBB222_42
   38757 {
   38758 __label__ = 40;
   38759 }
   38760 else{
   38761 	r3 = 0;
   38762 _52: while(true){
   38763 	r7 = heap32[(r5)];
   38764 	r7 = r7 >> 2;
   38765 	r7 = heap32[(r7+23)];
   38766 	r8 = sp + -1296;
   38767 	r9 = sp + -1280;
   38768 	heap32[(g0)] = r2;
   38769 	heap32[(g0+1)] = r3;
   38770 	heap32[(g0+2)] = r9;
   38771 	heap32[(g0+3)] = r8;
   38772 	__FUNCTION_TABLE__[(r7)>>2](i7);
   38773 	r7 = r4 >> 2;
   38774 	r9 = r9 >> 2;
   38775 	f0 = heapFloat[(fp+-320)];
   38776 	f1 = heapFloat[(r7)];
   38777 	f2 = heapFloat[(r9+1)];
   38778 	f3 = heapFloat[(r7+1)];
   38779 	f4 = heapFloat[(r7+4)];
   38780 	f5 = heapFloat[(r7+5)];
   38781 	f6 = f1*f0;
   38782 	f7 = f3*f2;
   38783 	f8 = heapFloat[(r9+2)];
   38784 	f9 = heapFloat[(r7+2)];
   38785 	f10 = heapFloat[(r7+8)];
   38786 	f11 = heapFloat[(r7+9)];
   38787 	f12 = heapFloat[(r7+6)];
   38788 	f13 = f4*f0;
   38789 	f14 = f5*f2;
   38790 	f6 = f6+f7;
   38791 	f7 = f9*f8;
   38792 	f15 = heapFloat[(r7+10)];
   38793 	f0 = f10*f0;
   38794 	f2 = f11*f2;
   38795 	f13 = f13+f14;
   38796 	f14 = f12*f8;
   38797 	f6 = f6+f7;
   38798 	f7 = heapFloat[(r7+12)];
   38799 	f16 = heapFloat[(r7+14)];
   38800 	f17 = heapFloat[(r7+13)];
   38801 	r7 = sp + -1312;
   38802 	f13 = f13+f14;
   38803 	f0 = f0+f2;
   38804 	f2 = f15*f8;
   38805 	f6 = f6+f7;
   38806 	f0 = f0+f2;
   38807 	r9 = r7 >> 2;
   38808 	f2 = f13+f17;
   38809 	heapFloat[(fp+-328)] = f6;
   38810 	f0 = f0+f16;
   38811 	heapFloat[(r9+1)] = f2;
   38812 	heapFloat[(r9+2)] = f0;
   38813 	heap32[(r9+3)] = 0;
   38814 	r8 = r8 >> 2;
   38815 	f0 = heapFloat[(fp+-324)];
   38816 	f2 = heapFloat[(r8+1)];
   38817 	f6 = heapFloat[(r8+2)];
   38818 	f1 = f1*f0;
   38819 	f3 = f3*f2;
   38820 	f4 = f4*f0;
   38821 	f5 = f5*f2;
   38822 	f1 = f1+f3;
   38823 	f3 = f9*f6;
   38824 	f1 = f1+f3;
   38825 	f0 = f10*f0;
   38826 	f2 = f11*f2;
   38827 	f3 = f4+f5;
   38828 	f4 = f12*f6;
   38829 	r8 = sp + -1328;
   38830 	f3 = f3+f4;
   38831 	f0 = f0+f2;
   38832 	f2 = f15*f6;
   38833 	f1 = f1+f7;
   38834 	f0 = f0+f2;
   38835 	r9 = r8 >> 2;
   38836 	f2 = f3+f17;
   38837 	heapFloat[(fp+-332)] = f1;
   38838 	f0 = f0+f16;
   38839 	heapFloat[(r9+1)] = f2;
   38840 	heapFloat[(r9+2)] = f0;
   38841 	heap32[(r9+3)] = 0;
   38842 	r9 = heap32[(r1)];
   38843 	r9 = r9 >> 2;
   38844 	r9 = heap32[(r9+4)];
   38845 	heap32[(g0)] = r0;
   38846 	__FUNCTION_TABLE__[(r9)>>2](i7);
   38847 	r10 = r_g0 >> 2;
   38848 	r10 = heap32[(r10)];
   38849 	r10 = r10 >> 2;
   38850 	r10 = heap32[(r10+2)];
   38851 	heap32[(g0)] = r_g0;
   38852 	heap32[(g0+1)] = r7;
   38853 	heap32[(g0+2)] = r8;
   38854 	heap32[(g0+3)] = r6;
   38855 	__FUNCTION_TABLE__[(r10)>>2](i7);
   38856 	r7 = heap32[(r5)];
   38857 	r7 = r7 >> 2;
   38858 	r7 = heap32[(r7+22)];
   38859 	r3 = (r3 + 1)|0;
   38860 	heap32[(g0)] = r2;
   38861 	__FUNCTION_TABLE__[(r7)>>2](i7);
   38862 	r7 = r_g0;
   38863 	if(r7 >r3) //_LBB222_41
   38864 {
   38865 continue _52;
   38866 }
   38867 else{
   38868 __label__ = 40;
   38869 break _41;
   38870 }
   38871 }
   38872 }
   38873 }
   38874 break;
   38875 }
   38876 } while(0);
   38877 switch(__label__ ){//multiple entries
   38878 case 31:
   38879 	heap32[(g0+3)] = r6;
   38880 	__FUNCTION_TABLE__[(r1)>>2](i7);
   38881 	return;
   38882 break;
   38883 case 40:
   38884 	return;
   38885 break;
   38886 }
   38887 }
   38888 
   38889 function _ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE(sp)
   38890 {
   38891 	var i7;
   38892 	var fp = sp>>2;
   38893 	var r0;
   38894 	var r1;
   38895 	var r2;
   38896 	var r3;
   38897 	var r4;
   38898 	var r5;
   38899 	var r6;
   38900 	var r7;
   38901 	var f0;
   38902 	var f1;
   38903 	var f2;
   38904 	var f3;
   38905 	var f4;
   38906 	var f5;
   38907 	var f6;
   38908 	var f7;
   38909 var __label__ = 0;
   38910 	i7 = sp + -280;var g0 = i7>>2; // save stack
   38911 	r0 = _ZTV19btSingleRayCallback;
   38912 	r1 = heap32[(fp+1)];
   38913 	r0 = (r0 + 8)|0;
   38914 	r2 = sp + -256;
   38915 	r3 = r1 >> 2;
   38916 	heap32[(fp+-64)] = r0;
   38917 	r0 = r2 >> 2;
   38918 	f0 = heapFloat[(r3)];
   38919 	heapFloat[(r0+9)] = f0;
   38920 	f1 = heapFloat[(r3+1)];
   38921 	heapFloat[(r0+10)] = f1;
   38922 	f2 = heapFloat[(r3+2)];
   38923 	heapFloat[(r0+11)] = f2;
   38924 	r4 = heap32[(fp+2)];
   38925 	f3 = heapFloat[(r3+3)];
   38926 	r3 = r4 >> 2;
   38927 	heapFloat[(r0+12)] = f3;
   38928 	f4 = heapFloat[(r3)];
   38929 	heapFloat[(r0+13)] = f4;
   38930 	f5 = heapFloat[(r3+1)];
   38931 	heapFloat[(r0+14)] = f5;
   38932 	f6 = heapFloat[(r3+2)];
   38933 	heapFloat[(r0+15)] = f6;
   38934 	f7 = heapFloat[(r3+3)];
   38935 	r3 = heap32[(fp)];
   38936 	heapFloat[(r0+16)] = f7;
   38937 	r5 = heap32[(fp+3)];
   38938 	heap32[(r0+53)] = r3;
   38939 	heap32[(r0+54)] = r5;
   38940 	heap32[(r0+17)] = 1065353216;
   38941 	heap32[(r0+18)] = 0;
   38942 	heap32[(r0+19)] = 0;
   38943 	heap32[(r0+20)] = 0;
   38944 	heap32[(r0+21)] = 0;
   38945 	heap32[(r0+22)] = 1065353216;
   38946 	heap32[(r0+23)] = 0;
   38947 	heap32[(r0+24)] = 0;
   38948 	heap32[(r0+25)] = 0;
   38949 	heap32[(r0+26)] = 0;
   38950 	heap32[(r0+27)] = 1065353216;
   38951 	heap32[(r0+28)] = 0;
   38952 	heapFloat[(r0+29)] = f0;
   38953 	heapFloat[(r0+30)] = f1;
   38954 	heapFloat[(r0+31)] = f2;
   38955 	heapFloat[(r0+32)] = f3;
   38956 	heap32[(r0+33)] = 1065353216;
   38957 	heap32[(r0+34)] = 0;
   38958 	heap32[(r0+35)] = 0;
   38959 	heap32[(r0+36)] = 0;
   38960 	heap32[(r0+37)] = 0;
   38961 	heap32[(r0+38)] = 1065353216;
   38962 	heap32[(r0+39)] = 0;
   38963 	heap32[(r0+40)] = 0;
   38964 	heap32[(r0+41)] = 0;
   38965 	heap32[(r0+42)] = 0;
   38966 	heap32[(r0+43)] = 1065353216;
   38967 	heap32[(r0+44)] = 0;
   38968 	heapFloat[(r0+45)] = f4;
   38969 	f0 = f4-f0;
   38970 	heapFloat[(r0+46)] = f5;
   38971 	f1 = f5-f1;
   38972 	heapFloat[(r0+47)] = f6;
   38973 	f2 = f6-f2;
   38974 	f3 = f0*f0;
   38975 	f4 = f1*f1;
   38976 	heapFloat[(r0+48)] = f7;
   38977 	f3 = f3+f4;
   38978 	f4 = f2*f2;
   38979 	f3 = f3+f4;
   38980 	heapFloat[(g0)] = f3;
   38981 	f3 =                         1;
   38982 	sqrtf(i7);
   38983 	f4 = f3/f_g0;
   38984 	f0 = f0*f4;
   38985 	f1 = f1*f4;
   38986 	f2 = f2*f4;
   38987 	f4 =                         0;
   38988 	if(f0 !=f4) //_LBB223_2
   38989 {
   38990 	f5 = f3/f0;
   38991 }
   38992 else{
   38993 	f5 =        999999984306749440;
   38994 }
   38995 	heapFloat[(r0+1)] = f5;
   38996 	if(f1 !=f4) //_LBB223_5
   38997 {
   38998 	f6 = f3/f1;
   38999 }
   39000 else{
   39001 	f6 =        999999984306749440;
   39002 }
   39003 	heapFloat[(r0+2)] = f6;
   39004 	if(f2 !=f4) //_LBB223_8
   39005 {
   39006 	f3 = f3/f2;
   39007 }
   39008 else{
   39009 	f3 =        999999984306749440;
   39010 }
   39011 	r5 = f5 < f4;
   39012 	r6 = f6 < f4;
   39013 	r5 = r5 & 1;
   39014 	heapFloat[(r0+3)] = f3;
   39015 	r7 = f3 < f4;
   39016 	r6 = r6 & 1;
   39017 	heap32[(r0+5)] = r5;
   39018 	r5 = r7 & 1;
   39019 	heap32[(r0+6)] = r6;
   39020 	heap32[(r0+7)] = r5;
   39021 	f3 = heapFloat[(r0+14)];
   39022 	f4 = heapFloat[(r0+10)];
   39023 	f5 = heapFloat[(r0+13)];
   39024 	f6 = heapFloat[(r0+9)];
   39025 	f5 = f5-f6;
   39026 	f3 = f3-f4;
   39027 	f4 = heapFloat[(r0+15)];
   39028 	f6 = heapFloat[(r0+11)];
   39029 	f0 = f0*f5;
   39030 	f1 = f1*f3;
   39031 	f3 = f4-f6;
   39032 	f0 = f0+f1;
   39033 	f1 = f2*f3;
   39034 	f0 = f0+f1;
   39035 	r3 = r3 >> 2;
   39036 	heapFloat[(r0+8)] = f0;
   39037 	r0 = heap32[(r3+20)];
   39038 	r3 = r0 >> 2;
   39039 	r3 = heap32[(r3)];
   39040 	r3 = r3 >> 2;
   39041 	r3 = heap32[(r3+6)];
   39042 	r5 = sp + -32;
   39043 	r6 = r5 >> 2;
   39044 	heap32[(fp+-8)] = 0;
   39045 	heap32[(r6+1)] = 0;
   39046 	heap32[(r6+2)] = 0;
   39047 	r7 = sp + -16;
   39048 	heap32[(r6+3)] = 0;
   39049 	r6 = r7 >> 2;
   39050 	heap32[(fp+-4)] = 0;
   39051 	heap32[(r6+1)] = 0;
   39052 	heap32[(r6+2)] = 0;
   39053 	heap32[(r6+3)] = 0;
   39054 	heap32[(g0)] = r0;
   39055 	heap32[(g0+1)] = r1;
   39056 	heap32[(g0+2)] = r4;
   39057 	heap32[(g0+3)] = r2;
   39058 	heap32[(g0+4)] = r7;
   39059 	heap32[(g0+5)] = r5;
   39060 	__FUNCTION_TABLE__[(r3)>>2](i7);
   39061 	return;
   39062 }
   39063 
   39064 function _ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss(sp)
   39065 {
   39066 	var i7;
   39067 	var fp = sp>>2;
   39068 	var r0;
   39069 	var r1;
   39070 	var r2;
   39071 	var r3;
   39072 	var r4;
   39073 	var r5;
   39074 	var r6;
   39075 	var r7;
   39076 	var r8;
   39077 	var r9;
   39078 	var r10;
   39079 	var r11;
   39080 	var r12;
   39081 var __label__ = 0;
   39082 	i7 = sp + -136;var g0 = i7>>2; // save stack
   39083 	r0 = heap32[(fp+1)];
   39084 	if(r0 !=0) //_LBB224_2
   39085 {
   39086 	r1 = heap32[(fp)];
   39087 	r2 = heap32[(fp+2)];
   39088 	r3 = heap32[(fp+3)];
   39089 	r4 = r1 >> 2;
   39090 	r5 = heap32[(r4+2)];
   39091 	r6 = 0;
   39092 _3: while(true){
   39093 	if(r5 >r6) //_LBB224_3
   39094 {
   39095 	r7 = heap32[(r4+4)];
   39096 	r8 = r6 << 2;
   39097 	r7 = (r7 + r8)|0;
   39098 	r7 = r7 >> 2;
   39099 	r7 = heap32[(r7)];
   39100 	if(r7 ==r0) //_LBB224_6
   39101 {
   39102 __label__ = 6;
   39103 break _3;
   39104 }
   39105 else{
   39106 	r6 = (r6 + 1)|0;
   39107 }
   39108 }
   39109 else{
   39110 __label__ = 8;
   39111 break _3;
   39112 }
   39113 }
   39114 if (__label__ == 6){
   39115 if(!(r5 ==r6)) //_LBB224_8
   39116 {
   39117 	r0 = _2E_str988;
   39118 	r1 = _2E_str887;
   39119 	heap32[(g0)] = r0;
   39120 	heap32[(g0+1)] = r1;
   39121 	heap32[(g0+2)] = 114;
   39122 	_assert(i7);
   39123 }
   39124 }
   39125 	r6 = heap32[(r4+3)];
   39126 	if(r6 ==r5) //_LBB224_10
   39127 {
   39128 	r7 = 1;
   39129 	r8 = r5 << 1;
   39130 	r8 = r5 == 0 ? r7 : r8;
   39131 if(!(r6 >=r8)) //_LBB224_9
   39132 {
   39133 	if(r8 !=0) //_LBB224_13
   39134 {
   39135 	r6 = gNumAlignedAllocs;
   39136 	r6 = r6 >> 2;
   39137 	r9 = heap32[(r6)];
   39138 	r10 = r8 << 2;
   39139 	r9 = (r9 + 1)|0;
   39140 	r10 = r10 | 3;
   39141 	heap32[(r6)] = r9;
   39142 	r6 = (r10 + 16)|0;
   39143 	heap32[(g0)] = r6;
   39144 	malloc(i7);
   39145 	r6 = r_g0;
   39146 	if(r6 !=0) //_LBB224_15
   39147 {
   39148 	r9 = 0;
   39149 	r10 = (r6 + 4)|0;
   39150 	r9 = (r9 - r10)|0;
   39151 	r9 = r9 & 15;
   39152 	r9 = (r6 + r9)|0;
   39153 	r10 = (r9 + 4)|0;
   39154 	r9 = r9 >> 2;
   39155 	heap32[(r9)] = r6;
   39156 	r6 = r10;
   39157 }
   39158 }
   39159 else{
   39160 	r6 = 0;
   39161 }
   39162 _19: do {
   39163 	if(r5 <1) //_LBB224_18
   39164 {
   39165 	r10 = heap32[(r4+4)];
   39166 }
   39167 else{
   39168 	r9 = 0;
   39169 _22: while(true){
   39170 	r10 = heap32[(r4+4)];
   39171 	r11 = r9 << 2;
   39172 	r12 = (r10 + r11)|0;
   39173 	r12 = r12 >> 2;
   39174 	r11 = (r6 + r11)|0;
   39175 	r12 = heap32[(r12)];
   39176 	r9 = (r9 + 1)|0;
   39177 	r11 = r11 >> 2;
   39178 	heap32[(r11)] = r12;
   39179 if(!(r5 !=r9)) //_LBB224_19
   39180 {
   39181 break _19;
   39182 }
   39183 }
   39184 }
   39185 } while(0);
   39186 	if(r10 !=0) //_LBB224_22
   39187 {
   39188 	r9 = heapU8[r1+20];
   39189 	if(r9 !=0) //_LBB224_24
   39190 {
   39191 	r5 = gNumAlignedFree;
   39192 	r5 = r5 >> 2;
   39193 	r9 = heap32[(r5)];
   39194 	r9 = (r9 + 1)|0;
   39195 	r10 = r10 >> 2;
   39196 	heap32[(r5)] = r9;
   39197 	r5 = heap32[(r10+-1)];
   39198 	heap32[(g0)] = r5;
   39199 	free(i7);
   39200 	r5 = heap32[(r4+2)];
   39201 }
   39202 	heap32[(r4+4)] = 0;
   39203 }
   39204 	heap8[r1+20] = r7;
   39205 	heap32[(r4+4)] = r6;
   39206 	heap32[(r4+3)] = r8;
   39207 }
   39208 }
   39209 	r1 = r5 << 2;
   39210 	r5 = heap32[(r4+4)];
   39211 	r1 = (r5 + r1)|0;
   39212 	r1 = r1 >> 2;
   39213 	heap32[(r1)] = r0;
   39214 	r1 = heap32[(r4+2)];
   39215 	r1 = (r1 + 1)|0;
   39216 	r5 = sp + -64;
   39217 	r6 = r0 >> 2;
   39218 	heap32[(r4+2)] = r1;
   39219 	r1 = r5 >> 2;
   39220 	heap32[(fp+-16)] = heap32[(r6+1)];
   39221 	heap32[(r1+1)] = heap32[(r6+2)];
   39222 	heap32[(r1+2)] = heap32[(r6+3)];
   39223 	heap32[(r1+3)] = heap32[(r6+4)];
   39224 	heap32[(r1+4)] = heap32[(r6+5)];
   39225 	heap32[(r1+5)] = heap32[(r6+6)];
   39226 	heap32[(r1+6)] = heap32[(r6+7)];
   39227 	heap32[(r1+7)] = heap32[(r6+8)];
   39228 	heap32[(r1+8)] = heap32[(r6+9)];
   39229 	heap32[(r1+9)] = heap32[(r6+10)];
   39230 	heap32[(r1+10)] = heap32[(r6+11)];
   39231 	heap32[(r1+11)] = heap32[(r6+12)];
   39232 	heap32[(r1+12)] = heap32[(r6+13)];
   39233 	heap32[(r1+13)] = heap32[(r6+14)];
   39234 	heap32[(r1+14)] = heap32[(r6+15)];
   39235 	heap32[(r1+15)] = heap32[(r6+16)];
   39236 	r1 = heap32[(r6+48)];
   39237 	r7 = r1 >> 2;
   39238 	r7 = heap32[(r7)];
   39239 	r7 = r7 >> 2;
   39240 	r7 = heap32[(r7+2)];
   39241 	r8 = sp + -80;
   39242 	r9 = sp + -96;
   39243 	heap32[(g0)] = r1;
   39244 	heap32[(g0+1)] = r5;
   39245 	heap32[(g0+2)] = r8;
   39246 	heap32[(g0+3)] = r9;
   39247 	__FUNCTION_TABLE__[(r7)>>2](i7);
   39248 	r1 = heap32[(r4+20)];
   39249 	r5 = r1 >> 2;
   39250 	r7 = heap32[(r6+48)];
   39251 	r5 = heap32[(r5)];
   39252 	r5 = r5 >> 2;
   39253 	r7 = r7 >> 2;
   39254 	r5 = heap32[(r5+2)];
   39255 	r7 = heap32[(r7+1)];
   39256 	r4 = heap32[(r4+6)];
   39257 	heap32[(g0)] = r1;
   39258 	heap32[(g0+1)] = r8;
   39259 	heap32[(g0+2)] = r9;
   39260 	heap32[(g0+3)] = r7;
   39261 	heap32[(g0+4)] = r0;
   39262 	heap32[(g0+5)] = r2;
   39263 	heap32[(g0+6)] = r3;
   39264 	heap32[(g0+7)] = r4;
   39265 	heap32[(g0+8)] = 0;
   39266 	__FUNCTION_TABLE__[(r5)>>2](i7);
   39267 	heap32[(r6+47)] = r_g0;
   39268 	return;
   39269 }
   39270 else{
   39271 	r0 = _2E_str786;
   39272 	r1 = _2E_str887;
   39273 	heap32[(g0)] = r0;
   39274 	heap32[(g0+1)] = r1;
   39275 	heap32[(g0+2)] = 111;
   39276 	_assert(i7);
   39277 }
   39278 }
   39279 
   39280 function _ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject(sp)
   39281 {
   39282 	var i7;
   39283 	var fp = sp>>2;
   39284 	var r0;
   39285 	var r1;
   39286 	var r2;
   39287 	var r3;
   39288 	var r4;
   39289 	var r5;
   39290 	var r6;
   39291 	var r7;
   39292 var __label__ = 0;
   39293 	i7 = sp + -16;var g0 = i7>>2; // save stack
   39294 	r0 = heap32[(fp+1)];
   39295 	r1 = r0 >> 2;
   39296 	r2 = heap32[(r1+47)];
   39297 	r3 = heap32[(fp)];
   39298 if(!(r2 ==0)) //_LBB225_2
   39299 {
   39300 	r4 = r3 >> 2;
   39301 	r5 = heap32[(r4+20)];
   39302 	r6 = r5 >> 2;
   39303 	r6 = heap32[(r6)];
   39304 	r6 = r6 >> 2;
   39305 	r6 = heap32[(r6+9)];
   39306 	heap32[(g0)] = r5;
   39307 	__FUNCTION_TABLE__[(r6)>>2](i7);
   39308 	r6 = r_g0 >> 2;
   39309 	r6 = heap32[(r6)];
   39310 	r6 = r6 >> 2;
   39311 	r6 = heap32[(r6+10)];
   39312 	r7 = heap32[(r4+6)];
   39313 	heap32[(g0)] = r_g0;
   39314 	heap32[(g0+1)] = r2;
   39315 	heap32[(g0+2)] = r7;
   39316 	__FUNCTION_TABLE__[(r6)>>2](i7);
   39317 	r5 = heap32[(r4+20)];
   39318 	r6 = r5 >> 2;
   39319 	r6 = heap32[(r6)];
   39320 	r6 = r6 >> 2;
   39321 	r6 = heap32[(r6+3)];
   39322 	r4 = heap32[(r4+6)];
   39323 	heap32[(g0)] = r5;
   39324 	heap32[(g0+1)] = r2;
   39325 	heap32[(g0+2)] = r4;
   39326 	__FUNCTION_TABLE__[(r6)>>2](i7);
   39327 	heap32[(r1+47)] = 0;
   39328 }
   39329 	r1 = r3 >> 2;
   39330 	r2 = heap32[(r1+2)];
   39331 	r3 = 0;
   39332 _4: while(true){
   39333 	if(r2 >r3) //_LBB225_3
   39334 {
   39335 	r4 = heap32[(r1+4)];
   39336 	r5 = r3 << 2;
   39337 	r4 = (r4 + r5)|0;
   39338 	r4 = r4 >> 2;
   39339 	r4 = heap32[(r4)];
   39340 	if(r4 !=r0) //_LBB225_5
   39341 {
   39342 	r3 = (r3 + 1)|0;
   39343 continue _4;
   39344 }
   39345 else{
   39346 __label__ = 7;
   39347 break _4;
   39348 }
   39349 }
   39350 else{
   39351 __label__ = 6;
   39352 break _4;
   39353 }
   39354 }
   39355 if (__label__ == 6){
   39356 	r3 = r2;
   39357 }
   39358 if(!(r2 <=r3)) //_LBB225_10
   39359 {
   39360 	r0 = (r2 + -1)|0;
   39361 	r2 = r3 << 2;
   39362 	r3 = heap32[(r1+4)];
   39363 	r0 = r0 << 2;
   39364 	r2 = (r3 + r2)|0;
   39365 	r3 = (r3 + r0)|0;
   39366 	r2 = r2 >> 2;
   39367 	r3 = r3 >> 2;
   39368 	r4 = heap32[(r2)];
   39369 	r3 = heap32[(r3)];
   39370 	heap32[(r2)] = r3;
   39371 	r2 = heap32[(r1+4)];
   39372 	r0 = (r2 + r0)|0;
   39373 	r0 = r0 >> 2;
   39374 	heap32[(r0)] = r4;
   39375 	r0 = heap32[(r1+2)];
   39376 	r0 = (r0 + -1)|0;
   39377 	heap32[(r1+2)] = r0;
   39378 }
   39379 	return;
   39380 }
   39381 
   39382 function _ZN16btCollisionWorld33performDiscreteCollisionDetectionEv(sp)
   39383 {
   39384 	var i7;
   39385 	var fp = sp>>2;
   39386 	var r0;
   39387 	var r1;
   39388 	var r2;
   39389 	var r3;
   39390 	var r4;
   39391 	var r5;
   39392 	var r6;
   39393 	var r7;
   39394 	var f0;
   39395 	var f1;
   39396 	var f2;
   39397 var __label__ = 0;
   39398 	i7 = sp + -40;var g0 = i7>>2; // save stack
   39399 	r0 = _2E_str1190;
   39400 	r1 = heap32[(fp)];
   39401 	heap32[(g0)] = r0;
   39402 	_ZN15CProfileManager13Start_ProfileEPKc(i7);
   39403 	r0 = r1 >> 2;
   39404 	r2 = heap32[(r0)];
   39405 	r2 = r2 >> 2;
   39406 	r2 = heap32[(r2+2)];
   39407 	heap32[(g0)] = r1;
   39408 	__FUNCTION_TABLE__[(r2)>>2](i7);
   39409 	r2 = _2E_str1291;
   39410 	heap32[(g0)] = r2;
   39411 	_ZN15CProfileManager13Start_ProfileEPKc(i7);
   39412 	r2 = heap32[(r0+20)];
   39413 	r3 = r2 >> 2;
   39414 	r3 = heap32[(r3)];
   39415 	r3 = r3 >> 2;
   39416 	r3 = heap32[(r3+8)];
   39417 	r4 = heap32[(r0+6)];
   39418 	heap32[(g0)] = r2;
   39419 	heap32[(g0+1)] = r4;
   39420 	r2 = _ZN15CProfileManager11CurrentNodeE;
   39421 	__FUNCTION_TABLE__[(r3)>>2](i7);
   39422 	r2 = r2 >> 2;
   39423 	r3 = heap32[(r2)];
   39424 	r4 = r3 >> 2;
   39425 	r5 = heap32[(r4+4)];
   39426 	r5 = (r5 + -1)|0;
   39427 	heap32[(r4+4)] = r5;
   39428 _1: do {
   39429 if(!(r5 !=0)) //_LBB226_6
   39430 {
   39431 	r5 = heap32[(r4+1)];
   39432 	if(r5 !=0) //_LBB226_3
   39433 {
   39434 	r3 = sp + -24;
   39435 	heap32[(g0)] = r3;
   39436 	heap32[(g0+1)] = 0;
   39437 	r5 = _ZL13gProfileClock_2E_0;
   39438 	gettimeofday(i7);
   39439 	r5 = r5 >> 2;
   39440 	r5 = heap32[(r5)];
   39441 	r5 = r5 >> 2;
   39442 	r3 = r3 >> 2;
   39443 	r6 = heap32[(fp+-6)];
   39444 	r7 = heap32[(r5)];
   39445 	r6 = (r6 - r7)|0;
   39446 	r3 = heap32[(r3+1)];
   39447 	r5 = heap32[(r5+1)];
   39448 	r3 = (r3 - r5)|0;
   39449 	r5 = (r6 * 1000000)|0;
   39450 	r3 = (r3 + r5)|0;
   39451 	r5 = heap32[(r4+3)];
   39452 	r3 = (r3 - r5)|0;
   39453 	f0 = uint(r3); //fuitos r3, f0
   39454 	f1 =                      1000;
   39455 	f2 = heapFloat[(r4+2)];
   39456 	f0 = f0/f1;
   39457 	f0 = f2+f0;
   39458 	heapFloat[(r4+2)] = f0;
   39459 	r3 = heap32[(r4+4)];
   39460 	if(r3 !=0) //_LBB226_6
   39461 {
   39462 break _1;
   39463 }
   39464 else{
   39465 	r3 = heap32[(r2)];
   39466 }
   39467 }
   39468 	r3 = r3 >> 2;
   39469 	r3 = heap32[(r3+5)];
   39470 	heap32[(r2)] = r3;
   39471 }
   39472 } while(0);
   39473 	r3 = heap32[(r0+6)];
   39474 	r4 = _2E_str1392;
   39475 	heap32[(g0)] = r4;
   39476 	_ZN15CProfileManager13Start_ProfileEPKc(i7);
   39477 if(!(r3 ==0)) //_LBB226_8
   39478 {
   39479 	r4 = heap32[(r0+20)];
   39480 	r5 = r3 >> 2;
   39481 	r6 = r4 >> 2;
   39482 	r5 = heap32[(r5)];
   39483 	r6 = heap32[(r6)];
   39484 	r5 = r5 >> 2;
   39485 	r6 = r6 >> 2;
   39486 	r5 = heap32[(r5+8)];
   39487 	r0 = heap32[(r0+6)];
   39488 	r6 = heap32[(r6+9)];
   39489 	heap32[(g0)] = r4;
   39490 	__FUNCTION_TABLE__[(r6)>>2](i7);
   39491 	r1 = (r1 + 28)|0;
   39492 	heap32[(g0)] = r3;
   39493 	heap32[(g0+1)] = r_g0;
   39494 	heap32[(g0+2)] = r1;
   39495 	heap32[(g0+3)] = r0;
   39496 	__FUNCTION_TABLE__[(r5)>>2](i7);
   39497 }
   39498 	r0 = heap32[(r2)];
   39499 	r1 = r0 >> 2;
   39500 	r3 = heap32[(r1+4)];
   39501 	r3 = (r3 + -1)|0;
   39502 	heap32[(r1+4)] = r3;
   39503 _11: do {
   39504 	if(r3 ==0) //_LBB226_10
   39505 {
   39506 	r3 = heap32[(r1+1)];
   39507 	if(r3 !=0) //_LBB226_12
   39508 {
   39509 	r0 = sp + -16;
   39510 	heap32[(g0)] = r0;
   39511 	heap32[(g0+1)] = 0;
   39512 	r3 = _ZL13gProfileClock_2E_0;
   39513 	gettimeofday(i7);
   39514 	r3 = r3 >> 2;
   39515 	r3 = heap32[(r3)];
   39516 	r3 = r3 >> 2;
   39517 	r0 = r0 >> 2;
   39518 	r4 = heap32[(fp+-4)];
   39519 	r5 = heap32[(r3)];
   39520 	r4 = (r4 - r5)|0;
   39521 	r0 = heap32[(r0+1)];
   39522 	r3 = heap32[(r3+1)];
   39523 	r0 = (r0 - r3)|0;
   39524 	r3 = (r4 * 1000000)|0;
   39525 	r0 = (r0 + r3)|0;
   39526 	r3 = heap32[(r1+3)];
   39527 	r0 = (r0 - r3)|0;
   39528 	f0 = uint(r0); //fuitos r0, f0
   39529 	f1 =                      1000;
   39530 	f2 = heapFloat[(r1+2)];
   39531 	f0 = f0/f1;
   39532 	f0 = f2+f0;
   39533 	heapFloat[(r1+2)] = f0;
   39534 	r0 = heap32[(r2)];
   39535 	r1 = heap32[(r1+4)];
   39536 if(!(r1 ==0)) //_LBB226_14
   39537 {
   39538 break _11;
   39539 }
   39540 }
   39541 	r0 = r0 >> 2;
   39542 	r0 = heap32[(r0+5)];
   39543 	heap32[(r2)] = r0;
   39544 }
   39545 } while(0);
   39546 	r1 = r0 >> 2;
   39547 	r3 = heap32[(r1+4)];
   39548 	r3 = (r3 + -1)|0;
   39549 	heap32[(r1+4)] = r3;
   39550 _17: do {
   39551 if(!(r3 !=0)) //_LBB226_21
   39552 {
   39553 	r3 = heap32[(r1+1)];
   39554 	if(r3 !=0) //_LBB226_18
   39555 {
   39556 	r0 = sp + -8;
   39557 	heap32[(g0)] = r0;
   39558 	heap32[(g0+1)] = 0;
   39559 	r3 = _ZL13gProfileClock_2E_0;
   39560 	gettimeofday(i7);
   39561 	r3 = r3 >> 2;
   39562 	r3 = heap32[(r3)];
   39563 	r3 = r3 >> 2;
   39564 	r0 = r0 >> 2;
   39565 	r4 = heap32[(fp+-2)];
   39566 	r5 = heap32[(r3)];
   39567 	r4 = (r4 - r5)|0;
   39568 	r0 = heap32[(r0+1)];
   39569 	r3 = heap32[(r3+1)];
   39570 	r0 = (r0 - r3)|0;
   39571 	r3 = (r4 * 1000000)|0;
   39572 	r0 = (r0 + r3)|0;
   39573 	r3 = heap32[(r1+3)];
   39574 	r0 = (r0 - r3)|0;
   39575 	f0 = uint(r0); //fuitos r0, f0
   39576 	f1 =                      1000;
   39577 	f2 = heapFloat[(r1+2)];
   39578 	f0 = f0/f1;
   39579 	f0 = f2+f0;
   39580 	heapFloat[(r1+2)] = f0;
   39581 	r0 = heap32[(r1+4)];
   39582 	if(r0 !=0) //_LBB226_21
   39583 {
   39584 break _17;
   39585 }
   39586 else{
   39587 	r0 = heap32[(r2)];
   39588 }
   39589 }
   39590 	r0 = r0 >> 2;
   39591 	r0 = heap32[(r0+5)];
   39592 	heap32[(r2)] = r0;
   39593 }
   39594 } while(0);
   39595 	return;
   39596 }
   39597 
   39598 function _ZN16btCollisionWorld9serializeEP12btSerializer(sp)
   39599 {
   39600 	var i7;
   39601 	var fp = sp>>2;
   39602 	var r0;
   39603 	var r1;
   39604 	var r2;
   39605 var __label__ = 0;
   39606 	i7 = sp + -8;var g0 = i7>>2; // save stack
   39607 	r0 = heap32[(fp+1)];
   39608 	r1 = r0 >> 2;
   39609 	r2 = heap32[(r1)];
   39610 	r2 = r2 >> 2;
   39611 	r2 = heap32[(r2+8)];
   39612 	heap32[(g0)] = r0;
   39613 	__FUNCTION_TABLE__[(r2)>>2](i7);
   39614 	r2 = heap32[(fp)];
   39615 	heap32[(g0)] = r2;
   39616 	heap32[(g0+1)] = r0;
   39617 	_ZN16btCollisionWorld25serializeCollisionObjectsEP12btSerializer(i7);
   39618 	r1 = heap32[(r1)];
   39619 	r1 = r1 >> 2;
   39620 	r1 = heap32[(r1+9)];
   39621 	heap32[(g0)] = r0;
   39622 	__FUNCTION_TABLE__[(r1)>>2](i7);
   39623 	return;
   39624 }
   39625 
   39626 function _ZN21btSingleSweepCallbackD0Ev(sp)
   39627 {
   39628 	var i7;
   39629 	var fp = sp>>2;
   39630 	var r0;
   39631 	var r1;
   39632 	var r2;
   39633 var __label__ = 0;
   39634 	i7 = sp + -8;var g0 = i7>>2; // save stack
   39635 	r0 = heap32[(fp)];
   39636 	r1 = _ZTV21btSingleSweepCallback;
   39637 	r2 = r0 >> 2;
   39638 	r1 = (r1 + 8)|0;
   39639 	heap32[(r2)] = r1;
   39640 	heap32[(g0)] = r0;
   39641 	_ZdlPv(i7);
   39642 	return;
   39643 }
   39644 
   39645 function _ZN21btSingleSweepCallbackD1Ev(sp)
   39646 {
   39647 	var i7;
   39648 	var fp = sp>>2;
   39649 	var r0;
   39650 	var r1;
   39651 var __label__ = 0;
   39652 	i7 = sp + 0;var g0 = i7>>2; // save stack
   39653 	r0 = heap32[(fp)];
   39654 	r1 = _ZTV21btSingleSweepCallback;
   39655 	r0 = r0 >> 2;
   39656 	r1 = (r1 + 8)|0;
   39657 	heap32[(r0)] = r1;
   39658 	return;
   39659 }
   39660 
   39661 function _ZN21btSingleSweepCallback7processEPK17btBroadphaseProxy(sp)
   39662 {
   39663 	var i7;
   39664 	var fp = sp>>2;
   39665 	var r0;
   39666 	var r1;
   39667 	var r2;
   39668 	var r3;
   39669 	var r4;
   39670 	var r5;
   39671 	var r6;
   39672 	var f0;
   39673 	var f1;
   39674 var __label__ = 0;
   39675 	i7 = sp + -32;var g0 = i7>>2; // save stack
   39676 	r0 = heap32[(fp)];
   39677 	r1 = r0 >> 2;
   39678 	r2 = heap32[(r1+46)];
   39679 	r3 = r2 >> 2;
   39680 	f0 = heapFloat[(r3+1)];
   39681 	f1 =                         0;
   39682 	if(f0 !=f1) //_LBB230_2
   39683 {
   39684 	r4 = heap32[(fp+1)];
   39685 	r4 = r4 >> 2;
   39686 	r4 = heap32[(r4)];
   39687 	r3 = heap32[(r3)];
   39688 	r3 = r3 >> 2;
   39689 	r5 = r4 >> 2;
   39690 	r3 = heap32[(r3+2)];
   39691 	r6 = heap32[(r5+47)];
   39692 	heap32[(g0)] = r2;
   39693 	heap32[(g0+1)] = r6;
   39694 	__FUNCTION_TABLE__[(r3)>>2](i7);
   39695 	r2 = r_g0;
   39696 	if(r2 !=0) //_LBB230_4
   39697 {
   39698 	f0 = heapFloat[(r1+47)];
   39699 	r2 = heap32[(r1+46)];
   39700 	r3 = heap32[(r5+48)];
   39701 	r1 = heap32[(r1+48)];
   39702 	r5 = (r0 + 36)|0;
   39703 	r0 = (r0 + 100)|0;
   39704 	r6 = (r4 + 4)|0;
   39705 	heap32[(g0)] = r1;
   39706 	heap32[(g0+1)] = r5;
   39707 	heap32[(g0+2)] = r0;
   39708 	heap32[(g0+3)] = r4;
   39709 	heap32[(g0+4)] = r3;
   39710 	heap32[(g0+5)] = r6;
   39711 	heap32[(g0+6)] = r2;
   39712 	heapFloat[(g0+7)] = f0;
   39713 	_ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(i7);
   39714 	r0 = 1;
   39715 	r_g0 = r0;
   39716 	return;
   39717 }
   39718 else{
   39719 	r0 = 1;
   39720 }
   39721 }
   39722 else{
   39723 	r0 = 0;
   39724 }
   39725 	r0 = r0 & 255;
   39726 	r_g0 = r0;
   39727 	return;
   39728 }
   39729 
   39730 function _ZN19btSingleRayCallbackD0Ev(sp)
   39731 {
   39732 	var i7;
   39733 	var fp = sp>>2;
   39734 	var r0;
   39735 	var r1;
   39736 	var r2;
   39737 var __label__ = 0;
   39738 	i7 = sp + -8;var g0 = i7>>2; // save stack
   39739 	r0 = heap32[(fp)];
   39740 	r1 = _ZTV19btSingleRayCallback;
   39741 	r2 = r0 >> 2;
   39742 	r1 = (r1 + 8)|0;
   39743 	heap32[(r2)] = r1;
   39744 	heap32[(g0)] = r0;
   39745 	_ZdlPv(i7);
   39746 	return;
   39747 }
   39748 
   39749 function _ZN19btSingleRayCallbackD1Ev(sp)
   39750 {
   39751 	var i7;
   39752 	var fp = sp>>2;
   39753 	var r0;
   39754 	var r1;
   39755 var __label__ = 0;
   39756 	i7 = sp + 0;var g0 = i7>>2; // save stack
   39757 	r0 = heap32[(fp)];
   39758 	r1 = _ZTV19btSingleRayCallback;
   39759 	r0 = r0 >> 2;
   39760 	r1 = (r1 + 8)|0;
   39761 	heap32[(r0)] = r1;
   39762 	return;
   39763 }
   39764 
   39765 function _ZN19btSingleRayCallback7processEPK17btBroadphaseProxy(sp)
   39766 {
   39767 	var i7;
   39768 	var fp = sp>>2;
   39769 	var r0;
   39770 	var r1;
   39771 	var r2;
   39772 	var r3;
   39773 	var r4;
   39774 	var r5;
   39775 	var r6;
   39776 	var f0;
   39777 	var f1;
   39778 var __label__ = 0;
   39779 	i7 = sp + -24;var g0 = i7>>2; // save stack
   39780 	r0 = heap32[(fp)];
   39781 	r1 = r0 >> 2;
   39782 	r2 = heap32[(r1+54)];
   39783 	r3 = r2 >> 2;
   39784 	f0 = heapFloat[(r3+1)];
   39785 	f1 =                         0;
   39786 	if(f0 !=f1) //_LBB233_2
   39787 {
   39788 	r4 = heap32[(fp+1)];
   39789 	r4 = r4 >> 2;
   39790 	r4 = heap32[(r4)];
   39791 	r3 = heap32[(r3)];
   39792 	r3 = r3 >> 2;
   39793 	r5 = r4 >> 2;
   39794 	r3 = heap32[(r3+2)];
   39795 	r6 = heap32[(r5+47)];
   39796 	heap32[(g0)] = r2;
   39797 	heap32[(g0+1)] = r6;
   39798 	__FUNCTION_TABLE__[(r3)>>2](i7);
   39799 	r2 = r_g0;
   39800 	if(r2 !=0) //_LBB233_4
   39801 {
   39802 	r1 = heap32[(r1+54)];
   39803 	r2 = heap32[(r5+48)];
   39804 	r3 = (r0 + 68)|0;
   39805 	r0 = (r0 + 132)|0;
   39806 	r5 = (r4 + 4)|0;
   39807 	heap32[(g0)] = r3;
   39808 	heap32[(g0+1)] = r0;
   39809 	heap32[(g0+2)] = r4;
   39810 	heap32[(g0+3)] = r2;
   39811 	heap32[(g0+4)] = r5;
   39812 	heap32[(g0+5)] = r1;
   39813 	_ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(i7);
   39814 	r0 = 1;
   39815 	r_g0 = r0;
   39816 	return;
   39817 }
   39818 else{
   39819 	r0 = 1;
   39820 }
   39821 }
   39822 else{
   39823 	r0 = 0;
   39824 }
   39825 	r0 = r0 & 255;
   39826 	r_g0 = r0;
   39827 	return;
   39828 }
   39829 
   39830 function _ZN16btCollisionWorldD2Ev(sp)
   39831 {
   39832 	var i7;
   39833 	var fp = sp>>2;
   39834 	var r0;
   39835 	var r1;
   39836 	var r2;
   39837 	var r3;
   39838 	var r4;
   39839 	var r5;
   39840 	var r6;
   39841 	var r7;
   39842 var __label__ = 0;
   39843 	i7 = sp + -16;var g0 = i7>>2; // save stack
   39844 	r0 = heap32[(fp)];
   39845 	r1 = _ZTV16btCollisionWorld;
   39846 	r2 = r0 >> 2;
   39847 	r1 = (r1 + 8)|0;
   39848 	heap32[(r2)] = r1;
   39849 	r1 = heap32[(r2+4)];
   39850 	r3 = heap32[(r2+2)];
   39851 	if(r3 >0) //_LBB234_2
   39852 {
   39853 	r3 = 0;
   39854 _3: while(true){
   39855 	r4 = r3 << 2;
   39856 	r1 = (r1 + r4)|0;
   39857 	r1 = r1 >> 2;
   39858 	r1 = heap32[(r1)];
   39859 	r1 = r1 >> 2;
   39860 	r4 = heap32[(r1+47)];
   39861 if(!(r4 ==0)) //_LBB234_5
   39862 {
   39863 	r5 = heap32[(r2+20)];
   39864 	r6 = r5 >> 2;
   39865 	r6 = heap32[(r6)];
   39866 	r6 = r6 >> 2;
   39867 	r6 = heap32[(r6+9)];
   39868 	heap32[(g0)] = r5;
   39869 	__FUNCTION_TABLE__[(r6)>>2](i7);
   39870 	r6 = r_g0 >> 2;
   39871 	r6 = heap32[(r6)];
   39872 	r6 = r6 >> 2;
   39873 	r6 = heap32[(r6+10)];
   39874 	r7 = heap32[(r2+6)];
   39875 	heap32[(g0)] = r_g0;
   39876 	heap32[(g0+1)] = r4;
   39877 	heap32[(g0+2)] = r7;
   39878 	__FUNCTION_TABLE__[(r6)>>2](i7);
   39879 	r5 = heap32[(r2+20)];
   39880 	r6 = r5 >> 2;
   39881 	r6 = heap32[(r6)];
   39882 	r6 = r6 >> 2;
   39883 	r6 = heap32[(r6+3)];
   39884 	r7 = heap32[(r2+6)];
   39885 	heap32[(g0)] = r5;
   39886 	heap32[(g0+1)] = r4;
   39887 	heap32[(g0+2)] = r7;
   39888 	__FUNCTION_TABLE__[(r6)>>2](i7);
   39889 	heap32[(r1+47)] = 0;
   39890 }
   39891 	r3 = (r3 + 1)|0;
   39892 	r1 = heap32[(r2+4)];
   39893 	r4 = heap32[(r2+2)];
   39894 	if(r4 >r3) //_LBB234_3
   39895 {
   39896 continue _3;
   39897 }
   39898 else{
   39899 break _3;
   39900 }
   39901 }
   39902 }
   39903 if(!(r1 ==0)) //_LBB234_10
   39904 {
   39905 	r3 = heapU8[r0+20];
   39906 if(!(r3 ==0)) //_LBB234_9
   39907 {
   39908 	r3 = gNumAlignedFree;
   39909 	r3 = r3 >> 2;
   39910 	r4 = heap32[(r3)];
   39911 	r4 = (r4 + 1)|0;
   39912 	r1 = r1 >> 2;
   39913 	heap32[(r3)] = r4;
   39914 	r1 = heap32[(r1+-1)];
   39915 	heap32[(g0)] = r1;
   39916 	free(i7);
   39917 }
   39918 	heap32[(r2+4)] = 0;
   39919 }
   39920 	r1 = 1;
   39921 	heap8[r0+20] = r1;
   39922 	heap32[(r2+4)] = 0;
   39923 	heap32[(r2+2)] = 0;
   39924 	heap32[(r2+3)] = 0;
   39925 	return;
   39926 }
   39927 
   39928 function _ZN16btCollisionWorld25serializeCollisionObjectsEP12btSerializer(sp)
   39929 {
   39930 	var i7;
   39931 	var fp = sp>>2;
   39932 	var r0;
   39933 	var r1;
   39934 	var r2;
   39935 	var r3;
   39936 	var r4;
   39937 	var r5;
   39938 	var r6;
   39939 	var r7;
   39940 	var r8;
   39941 	var r9;
   39942 	var r10;
   39943 	var r11;
   39944 	var r12;
   39945 	var r13;
   39946 	var r14;
   39947 	var r15;
   39948 	var r16;
   39949 	var r17;
   39950 	var r18;
   39951 	var r19;
   39952 	var r20;
   39953 	var r21;
   39954 	var r22;
   39955 	var r23;
   39956 	var r24;
   39957 	var r25;
   39958 var __label__ = 0;
   39959 	i7 = sp + -16;var g0 = i7>>2; // save stack
   39960 	r0 = heap32[(fp)];
   39961 	r0 = r0 >> 2;
   39962 	r1 = heap32[(r0+2)];
   39963 if(!(r1 <1)) //_LBB235_110
   39964 {
   39965 	r1 = heap32[(fp+1)];
   39966 	heap32[(fp+-2)] = r1;
   39967 	r1 = 0;
   39968 _3: while(true){
   39969 	r2 = heap32[(r0+4)];
   39970 	r3 = r1 << 2;
   39971 	r2 = (r2 + r3)|0;
   39972 	r2 = r2 >> 2;
   39973 	r2 = heap32[(r2)];
   39974 	r3 = r2 >> 2;
   39975 	r4 = heap32[(r3+58)];
   39976 if(!(r4 !=1)) //_LBB235_4
   39977 {
   39978 	r3 = heap32[(r3)];
   39979 	r3 = r3 >> 2;
   39980 	r3 = heap32[(r3+6)];
   39981 	heap32[(g0)] = r2;
   39982 	r2 = heap32[(fp+-2)];
   39983 	heap32[(g0+1)] = r2;
   39984 	__FUNCTION_TABLE__[(r3)>>2](i7);
   39985 }
   39986 	r1 = (r1 + 1)|0;
   39987 	r2 = heap32[(r0+2)];
   39988 if(!(r2 >r1)) //_LBB235_2
   39989 {
   39990 break _3;
   39991 }
   39992 }
   39993 if(!(r2 <1)) //_LBB235_110
   39994 {
   39995 	r1 = 0;
   39996 	r2 = r1;
   39997 	r3 = r1;
   39998 	r4 = r1;
   39999 	r5 = r1;
   40000 	r6 = r1;
   40001 	heap32[(fp+-1)] = r1;
   40002 	r7 = r1;
   40003 	r8 = r1;
   40004 	r9 = r1;
   40005 	r10 = r1;
   40006 	r11 = r1;
   40007 	r12 = r1;
   40008 _10: while(true){
   40009 	r13 = heap32[(r0+4)];
   40010 	r14 = r12 << 2;
   40011 	r13 = (r13 + r14)|0;
   40012 	r13 = r13 >> 2;
   40013 	r13 = heap32[(r13)];
   40014 	r13 = r13 >> 2;
   40015 	r13 = heap32[(r13+48)];
   40016 	r14 = r13 << 15;
   40017 	r14 = r14 ^ -1;
   40018 	r14 = (r13 + r14)|0;
   40019 	r15 = r14 >> 10;
   40020 	r14 = r15 ^ r14;
   40021 	r14 = (r14 * 9)|0;
   40022 	r15 = r14 >> 6;
   40023 	r14 = r15 ^ r14;
   40024 	r15 = r14 << 11;
   40025 	r15 = r15 ^ -1;
   40026 	r14 = (r14 + r15)|0;
   40027 	r15 = r14 >> 16;
   40028 	r14 = r15 ^ r14;
   40029 	r15 = (r4 + -1)|0;
   40030 	r15 = r14 & r15;
   40031 	r12 = (r12 + 1)|0;
   40032 _12: do {
   40033 	if(uint(r10) <=uint(r15)) //_LBB235_20
   40034 {
   40035 __label__ = 19;
   40036 }
   40037 else{
   40038 	r16 = r15 << 2;
   40039 	r17 = (r8 + r16)|0;
   40040 _14: while(true){
   40041 	r17 = r17 >> 2;
   40042 	r17 = heap32[(r17)];
   40043 	if(r17 ==-1) //_LBB235_14
   40044 {
   40045 __label__ = 13;
   40046 break _14;
   40047 }
   40048 else{
   40049 	r18 = r17 << 3;
   40050 	r18 = (r11 + r18)|0;
   40051 	r18 = r18 >> 2;
   40052 	r18 = heap32[(r18)];
   40053 	if(r13 !=r18) //_LBB235_9
   40054 {
   40055 	r17 = r17 << 2;
   40056 	r17 = (r6 + r17)|0;
   40057 }
   40058 else{
   40059 __label__ = 12;
   40060 break _14;
   40061 }
   40062 }
   40063 }
   40064 if (__label__ == 12){
   40065 	r17 = r17 << 2;
   40066 	r17 = (r3 + r17)|0;
   40067 if(!(r17 ==0)) //_LBB235_14
   40068 {
   40069 __label__ = 89;
   40070 break _12;
   40071 }
   40072 }
   40073 	if(uint(r10) <=uint(r15)) //_LBB235_20
   40074 {
   40075 __label__ = 19;
   40076 }
   40077 else{
   40078 	r16 = (r8 + r16)|0;
   40079 _22: while(true){
   40080 	r16 = r16 >> 2;
   40081 	r16 = heap32[(r16)];
   40082 	if(r16 ==-1) //_LBB235_20
   40083 {
   40084 __label__ = 19;
   40085 break _12;
   40086 }
   40087 else{
   40088 	r17 = r16 << 3;
   40089 	r17 = (r11 + r17)|0;
   40090 	r17 = r17 >> 2;
   40091 	r17 = heap32[(r17)];
   40092 	if(r13 !=r17) //_LBB235_16
   40093 {
   40094 	r16 = r16 << 2;
   40095 	r16 = (r6 + r16)|0;
   40096 }
   40097 else{
   40098 break _22;
   40099 }
   40100 }
   40101 }
   40102 	r14 = r16 << 2;
   40103 	r14 = (r3 + r14)|0;
   40104 	r14 = r14 >> 2;
   40105 	heap32[(r14)] = r13;
   40106 	r16 = r4;
   40107 	r17 = r5;
   40108 __label__ = 88;
   40109 }
   40110 }
   40111 } while(0);
   40112 if (__label__ == 19){
   40113 	if(r4 ==r5) //_LBB235_22
   40114 {
   40115 	r16 = 1;
   40116 	r17 = r5 << 1;
   40117 	r16 = r5 == 0 ? r16 : r17;
   40118 	if(r4 >=r16) //_LBB235_21
   40119 {
   40120 __label__ = 20;
   40121 }
   40122 else{
   40123 	if(r16 !=0) //_LBB235_25
   40124 {
   40125 	r17 = gNumAlignedAllocs;
   40126 	r17 = r17 >> 2;
   40127 	r18 = heap32[(r17)];
   40128 	r19 = r16 << 2;
   40129 	r18 = (r18 + 1)|0;
   40130 	r19 = r19 | 3;
   40131 	heap32[(r17)] = r18;
   40132 	r17 = (r19 + 16)|0;
   40133 	heap32[(g0)] = r17;
   40134 	malloc(i7);
   40135 	r17 = r_g0;
   40136 	if(r17 !=0) //_LBB235_27
   40137 {
   40138 	r18 = 0;
   40139 	r19 = (r17 + 4)|0;
   40140 	r18 = (r18 - r19)|0;
   40141 	r18 = r18 & 15;
   40142 	r18 = (r17 + r18)|0;
   40143 	r19 = (r18 + 4)|0;
   40144 	r18 = r18 >> 2;
   40145 	heap32[(r18)] = r17;
   40146 	r17 = r19;
   40147 }
   40148 }
   40149 else{
   40150 	r17 = 0;
   40151 }
   40152 _37: do {
   40153 if(!(r5 <1)) //_LBB235_31
   40154 {
   40155 	r18 = r17;
   40156 	r19 = r3;
   40157 	r20 = r5;
   40158 _39: while(true){
   40159 	r21 = r19 >> 2;
   40160 	r20 = (r20 + -1)|0;
   40161 	r19 = (r19 + 4)|0;
   40162 	r22 = (r18 + 4)|0;
   40163 	r18 = r18 >> 2;
   40164 	r21 = heap32[(r21)];
   40165 	heap32[(r18)] = r21;
   40166 	r18 = r22;
   40167 if(!(r20 !=0)) //_LBB235_30
   40168 {
   40169 break _37;
   40170 }
   40171 }
   40172 }
   40173 } while(0);
   40174 	if(r3 !=0) //_LBB235_33
   40175 {
   40176 	r18 = gNumAlignedFree;
   40177 	r18 = r18 >> 2;
   40178 	r19 = heap32[(r18)];
   40179 	r19 = (r19 + 1)|0;
   40180 	r3 = r3 >> 2;
   40181 	heap32[(r18)] = r19;
   40182 	r3 = heap32[(r3+-1)];
   40183 	heap32[(g0)] = r3;
   40184 	free(i7);
   40185 	r3 = r17;
   40186 __label__ = 32;
   40187 }
   40188 else{
   40189 	r3 = r17;
   40190 __label__ = 32;
   40191 }
   40192 }
   40193 }
   40194 else{
   40195 __label__ = 20;
   40196 }
   40197 if (__label__ == 20){
   40198 	r16 = r4;
   40199 }
   40200 	r18 = r5 << 2;
   40201 	r19 = (r3 + r18)|0;
   40202 	r17 = (r5 + 1)|0;
   40203 	r19 = r19 >> 2;
   40204 	heap32[(r19)] = r13;
   40205 	if(r1 ==r2) //_LBB235_36
   40206 {
   40207 	r19 = 1;
   40208 	r20 = r2 << 1;
   40209 	r19 = r2 == 0 ? r19 : r20;
   40210 if(!(r1 >=r19)) //_LBB235_35
   40211 {
   40212 	if(r19 !=0) //_LBB235_39
   40213 {
   40214 	r1 = gNumAlignedAllocs;
   40215 	r1 = r1 >> 2;
   40216 	r20 = heap32[(r1)];
   40217 	r21 = r19 << 3;
   40218 	r20 = (r20 + 1)|0;
   40219 	r21 = r21 | 3;
   40220 	heap32[(r1)] = r20;
   40221 	r1 = (r21 + 16)|0;
   40222 	heap32[(g0)] = r1;
   40223 	malloc(i7);
   40224 	r20 = r_g0;
   40225 	if(r20 !=0) //_LBB235_41
   40226 {
   40227 	r1 = 0;
   40228 	r21 = (r20 + 4)|0;
   40229 	r1 = (r1 - r21)|0;
   40230 	r1 = r1 & 15;
   40231 	r1 = (r20 + r1)|0;
   40232 	r21 = (r1 + 4)|0;
   40233 	r1 = r1 >> 2;
   40234 	heap32[(r1)] = r20;
   40235 	r20 = r21;
   40236 }
   40237 }
   40238 else{
   40239 	r20 = 0;
   40240 }
   40241 _56: do {
   40242 if(!(r2 <1)) //_LBB235_45
   40243 {
   40244 	r1 = (r11 + 4)|0;
   40245 	r21 = (r20 + 4)|0;
   40246 	r22 = r2;
   40247 _58: while(true){
   40248 	r23 = r1 >> 2;
   40249 	r24 = heap32[(r23)];
   40250 	r23 = heap32[(r23+-1)];
   40251 	r25 = r21 >> 2;
   40252 	r22 = (r22 + -1)|0;
   40253 	r1 = (r1 + 8)|0;
   40254 	r21 = (r21 + 8)|0;
   40255 	heap32[(r25+-1)] = r23;
   40256 	heap32[(r25)] = r24;
   40257 if(!(r22 !=0)) //_LBB235_44
   40258 {
   40259 break _56;
   40260 }
   40261 }
   40262 }
   40263 } while(0);
   40264 	if(r11 !=0) //_LBB235_47
   40265 {
   40266 	r1 = gNumAlignedFree;
   40267 	r1 = r1 >> 2;
   40268 	r21 = heap32[(r1)];
   40269 	r21 = (r21 + 1)|0;
   40270 	r11 = r11 >> 2;
   40271 	heap32[(r1)] = r21;
   40272 	r1 = heap32[(r11+-1)];
   40273 	heap32[(g0)] = r1;
   40274 	free(i7);
   40275 	r1 = r19;
   40276 	r11 = r20;
   40277 }
   40278 else{
   40279 	r1 = r19;
   40280 	r11 = r20;
   40281 }
   40282 }
   40283 }
   40284 	r19 = r2 << 3;
   40285 	r19 = (r11 + r19)|0;
   40286 	r2 = (r2 + 1)|0;
   40287 	r19 = r19 >> 2;
   40288 	heap32[(r19)] = r13;
   40289 	if(r4 <r16) //_LBB235_50
   40290 {
   40291 	if(r10 <r16) //_LBB235_52
   40292 {
   40293 _69: do {
   40294 	if(r10 <=r16) //_LBB235_54
   40295 {
   40296 	if(r9 <r16) //_LBB235_56
   40297 {
   40298 	if(r16 !=0) //_LBB235_58
   40299 {
   40300 	r4 = gNumAlignedAllocs;
   40301 	r4 = r4 >> 2;
   40302 	r9 = heap32[(r4)];
   40303 	r15 = r16 << 2;
   40304 	r9 = (r9 + 1)|0;
   40305 	r15 = r15 | 3;
   40306 	heap32[(r4)] = r9;
   40307 	r4 = (r15 + 16)|0;
   40308 	heap32[(g0)] = r4;
   40309 	malloc(i7);
   40310 	r4 = r_g0;
   40311 	if(r4 !=0) //_LBB235_60
   40312 {
   40313 	r9 = 0;
   40314 	r15 = (r4 + 4)|0;
   40315 	r9 = (r9 - r15)|0;
   40316 	r9 = r9 & 15;
   40317 	r9 = (r4 + r9)|0;
   40318 	r15 = (r9 + 4)|0;
   40319 	r9 = r9 >> 2;
   40320 	heap32[(r9)] = r4;
   40321 	r4 = r15;
   40322 }
   40323 }
   40324 else{
   40325 	r4 = 0;
   40326 }
   40327 _78: do {
   40328 if(!(r10 <1)) //_LBB235_64
   40329 {
   40330 	r9 = r4;
   40331 	r15 = r8;
   40332 	r19 = r10;
   40333 _80: while(true){
   40334 	r20 = r15 >> 2;
   40335 	r19 = (r19 + -1)|0;
   40336 	r15 = (r15 + 4)|0;
   40337 	r21 = (r9 + 4)|0;
   40338 	r9 = r9 >> 2;
   40339 	r20 = heap32[(r20)];
   40340 	heap32[(r9)] = r20;
   40341 	r9 = r21;
   40342 if(!(r19 !=0)) //_LBB235_63
   40343 {
   40344 break _78;
   40345 }
   40346 }
   40347 }
   40348 } while(0);
   40349 	if(r8 !=0) //_LBB235_66
   40350 {
   40351 	r9 = gNumAlignedFree;
   40352 	r9 = r9 >> 2;
   40353 	r15 = heap32[(r9)];
   40354 	r15 = (r15 + 1)|0;
   40355 	r8 = r8 >> 2;
   40356 	heap32[(r9)] = r15;
   40357 	r8 = heap32[(r8+-1)];
   40358 	heap32[(g0)] = r8;
   40359 	free(i7);
   40360 	r8 = r4;
   40361 	r9 = r16;
   40362 }
   40363 else{
   40364 	r8 = r4;
   40365 	r9 = r16;
   40366 }
   40367 }
   40368 	r4 = r10;
   40369 _87: while(true){
   40370 	r15 = r4 << 2;
   40371 	r15 = (r8 + r15)|0;
   40372 	r4 = (r4 + 1)|0;
   40373 	r15 = r15 >> 2;
   40374 	heap32[(r15)] = 0;
   40375 if(!(r16 !=r4)) //_LBB235_68
   40376 {
   40377 break _69;
   40378 }
   40379 }
   40380 }
   40381 } while(0);
   40382 _90: do {
   40383 	if(r7 <=r16) //_LBB235_71
   40384 {
   40385 if(!(r7 >=r16)) //_LBB235_70
   40386 {
   40387 	r4 = heap32[(fp+-1)];
   40388 	if(r4 <r16) //_LBB235_74
   40389 {
   40390 	if(r16 !=0) //_LBB235_76
   40391 {
   40392 	r4 = gNumAlignedAllocs;
   40393 	r4 = r4 >> 2;
   40394 	r15 = heap32[(r4)];
   40395 	r19 = r16 << 2;
   40396 	r15 = (r15 + 1)|0;
   40397 	r19 = r19 | 3;
   40398 	heap32[(r4)] = r15;
   40399 	r4 = (r19 + 16)|0;
   40400 	heap32[(g0)] = r4;
   40401 	malloc(i7);
   40402 	r4 = r_g0;
   40403 	if(r4 !=0) //_LBB235_78
   40404 {
   40405 	r15 = 0;
   40406 	r19 = (r4 + 4)|0;
   40407 	r15 = (r15 - r19)|0;
   40408 	r15 = r15 & 15;
   40409 	r15 = (r4 + r15)|0;
   40410 	r19 = (r15 + 4)|0;
   40411 	r15 = r15 >> 2;
   40412 	heap32[(r15)] = r4;
   40413 	r4 = r19;
   40414 }
   40415 }
   40416 else{
   40417 	r4 = 0;
   40418 }
   40419 _100: do {
   40420 if(!(r7 <1)) //_LBB235_82
   40421 {
   40422 	r15 = r4;
   40423 	r19 = r6;
   40424 	r20 = r7;
   40425 _102: while(true){
   40426 	r21 = r19 >> 2;
   40427 	r20 = (r20 + -1)|0;
   40428 	r19 = (r19 + 4)|0;
   40429 	r22 = (r15 + 4)|0;
   40430 	r15 = r15 >> 2;
   40431 	r21 = heap32[(r21)];
   40432 	heap32[(r15)] = r21;
   40433 	r15 = r22;
   40434 if(!(r20 !=0)) //_LBB235_81
   40435 {
   40436 break _100;
   40437 }
   40438 }
   40439 }
   40440 } while(0);
   40441 if(!(r6 ==0)) //_LBB235_84
   40442 {
   40443 	r15 = gNumAlignedFree;
   40444 	r15 = r15 >> 2;
   40445 	r19 = heap32[(r15)];
   40446 	r19 = (r19 + 1)|0;
   40447 	r6 = r6 >> 2;
   40448 	heap32[(r15)] = r19;
   40449 	r6 = heap32[(r6+-1)];
   40450 	heap32[(g0)] = r6;
   40451 	free(i7);
   40452 }
   40453 	if(r7 <r16) //_LBB235_86
   40454 {
   40455 	r6 = r4;
   40456 	heap32[(fp+-1)] = r16;
   40457 }
   40458 else{
   40459 	r6 = r4;
   40460 	heap32[(fp+-1)] = r16;
   40461 break _90;
   40462 }
   40463 }
   40464 _111: while(true){
   40465 	r4 = r7 << 2;
   40466 	r4 = (r6 + r4)|0;
   40467 	r7 = (r7 + 1)|0;
   40468 	r4 = r4 >> 2;
   40469 	heap32[(r4)] = 0;
   40470 if(!(r16 !=r7)) //_LBB235_87
   40471 {
   40472 break _90;
   40473 }
   40474 }
   40475 }
   40476 }
   40477 } while(0);
   40478 _114: do {
   40479 if(!(r16 <1)) //_LBB235_94
   40480 {
   40481 	r4 = r8;
   40482 	r7 = r16;
   40483 _116: while(true){
   40484 	r7 = (r7 + -1)|0;
   40485 	r15 = (r4 + 4)|0;
   40486 	r4 = r4 >> 2;
   40487 	heap32[(r4)] = -1;
   40488 	r4 = r15;
   40489 if(!(r7 !=0)) //_LBB235_90
   40490 {
   40491 break _116;
   40492 }
   40493 }
   40494 if(!(r16 <1)) //_LBB235_94
   40495 {
   40496 	r4 = r6;
   40497 	r7 = r16;
   40498 _120: while(true){
   40499 	r7 = (r7 + -1)|0;
   40500 	r15 = (r4 + 4)|0;
   40501 	r4 = r4 >> 2;
   40502 	heap32[(r4)] = -1;
   40503 	r4 = r15;
   40504 if(!(r7 !=0)) //_LBB235_93
   40505 {
   40506 break _114;
   40507 }
   40508 }
   40509 }
   40510 }
   40511 } while(0);
   40512 _123: do {
   40513 	if(r10 >0) //_LBB235_96
   40514 {
   40515 	r4 = (r16 + -1)|0;
   40516 	r7 = 0;
   40517 _125: while(true){
   40518 	r15 = r7 << 3;
   40519 	r15 = (r11 + r15)|0;
   40520 	r15 = r15 >> 2;
   40521 	r15 = heap32[(r15)];
   40522 	r19 = r15 << 15;
   40523 	r19 = r19 ^ -1;
   40524 	r15 = (r15 + r19)|0;
   40525 	r19 = r15 >> 10;
   40526 	r15 = r19 ^ r15;
   40527 	r15 = (r15 * 9)|0;
   40528 	r19 = r15 >> 6;
   40529 	r15 = r19 ^ r15;
   40530 	r19 = r15 << 11;
   40531 	r19 = r19 ^ -1;
   40532 	r15 = (r15 + r19)|0;
   40533 	r19 = r15 >> 16;
   40534 	r15 = r19 ^ r15;
   40535 	r15 = r15 & r4;
   40536 	r15 = r15 << 2;
   40537 	r15 = (r8 + r15)|0;
   40538 	r15 = r15 >> 2;
   40539 	r19 = r7 << 2;
   40540 	r19 = (r6 + r19)|0;
   40541 	r20 = heap32[(r15)];
   40542 	r19 = r19 >> 2;
   40543 	r21 = (r7 + 1)|0;
   40544 	heap32[(r19)] = r20;
   40545 	heap32[(r15)] = r7;
   40546 	r7 = r21;
   40547 	if(r10 ==r21) //_LBB235_95
   40548 {
   40549 break _123;
   40550 }
   40551 }
   40552 }
   40553 } while(0);
   40554 	r7 = r16;
   40555 	r10 = r16;
   40556 }
   40557 	r4 = (r16 + -1)|0;
   40558 	r15 = r14 & r4;
   40559 }
   40560 	r4 = r15 << 2;
   40561 	r4 = (r8 + r4)|0;
   40562 	r4 = r4 >> 2;
   40563 	r14 = (r6 + r18)|0;
   40564 	r14 = r14 >> 2;
   40565 	r15 = heap32[(r4)];
   40566 	heap32[(r14)] = r15;
   40567 	heap32[(r4)] = r5;
   40568 __label__ = 88;
   40569 }
   40570 if (__label__ == 88){
   40571 	r4 = r13 >> 2;
   40572 	r4 = heap32[(r4)];
   40573 	r4 = r4 >> 2;
   40574 	r4 = heap32[(r4+14)];
   40575 	heap32[(g0)] = r13;
   40576 	r5 = heap32[(fp+-2)];
   40577 	heap32[(g0+1)] = r5;
   40578 	__FUNCTION_TABLE__[(r4)>>2](i7);
   40579 	r4 = r16;
   40580 	r5 = r17;
   40581 }
   40582 	r13 = heap32[(r0+2)];
   40583 if(!(r13 >r12)) //_LBB235_7
   40584 {
   40585 break _10;
   40586 }
   40587 }
   40588 if(!(r11 ==0)) //_LBB235_104
   40589 {
   40590 	r0 = gNumAlignedFree;
   40591 	r0 = r0 >> 2;
   40592 	r1 = heap32[(r0)];
   40593 	r1 = (r1 + 1)|0;
   40594 	r2 = r11 >> 2;
   40595 	heap32[(r0)] = r1;
   40596 	r0 = heap32[(r2+-1)];
   40597 	heap32[(g0)] = r0;
   40598 	free(i7);
   40599 }
   40600 if(!(r3 ==0)) //_LBB235_106
   40601 {
   40602 	r0 = gNumAlignedFree;
   40603 	r0 = r0 >> 2;
   40604 	r1 = heap32[(r0)];
   40605 	r1 = (r1 + 1)|0;
   40606 	r2 = r3 >> 2;
   40607 	heap32[(r0)] = r1;
   40608 	r0 = heap32[(r2+-1)];
   40609 	heap32[(g0)] = r0;
   40610 	free(i7);
   40611 }
   40612 if(!(r6 ==0)) //_LBB235_108
   40613 {
   40614 	r0 = gNumAlignedFree;
   40615 	r0 = r0 >> 2;
   40616 	r1 = heap32[(r0)];
   40617 	r1 = (r1 + 1)|0;
   40618 	r2 = r6 >> 2;
   40619 	heap32[(r0)] = r1;
   40620 	r0 = heap32[(r2+-1)];
   40621 	heap32[(g0)] = r0;
   40622 	free(i7);
   40623 }
   40624 if(!(r8 ==0)) //_LBB235_110
   40625 {
   40626 	r0 = gNumAlignedFree;
   40627 	r0 = r0 >> 2;
   40628 	r1 = heap32[(r0)];
   40629 	r1 = (r1 + 1)|0;
   40630 	r2 = r8 >> 2;
   40631 	heap32[(r0)] = r1;
   40632 	r0 = heap32[(r2+-1)];
   40633 	heap32[(g0)] = r0;
   40634 	free(i7);
   40635 }
   40636 }
   40637 }
   40638 	return;
   40639 }
   40640 
   40641 function _ZNK11btMatrix3x311getRotationER12btQuaternion(sp)
   40642 {
   40643 	var i7;
   40644 	var fp = sp>>2;
   40645 	var r0;
   40646 	var r1;
   40647 	var r2;
   40648 	var r3;
   40649 	var r4;
   40650 	var r5;
   40651 	var r6;
   40652 	var r7;
   40653 	var r8;
   40654 	var r9;
   40655 	var r10;
   40656 	var f0;
   40657 	var f1;
   40658 	var f2;
   40659 	var f3;
   40660 	var f4;
   40661 	var f5;
   40662 var __label__ = 0;
   40663 	i7 = sp + -24;var g0 = i7>>2; // save stack
   40664 	r0 = heap32[(fp)];
   40665 	r1 = r0 >> 2;
   40666 	f0 = heapFloat[(r1)];
   40667 	f1 = heapFloat[(r1+5)];
   40668 	f2 = heapFloat[(r1+10)];
   40669 	f3 = f0+f1;
   40670 	f3 = f3+f2;
   40671 	r2 = heap32[(fp+1)];
   40672 	f4 =                         0;
   40673 	if(f3 <=f4) //_LBB236_2
   40674 {
   40675 	if(f0 >=f1) //_LBB236_4
   40676 {
   40677 	r1 = 2;
   40678 	r3 = 0;
   40679 	r1 = f0 < f2 ? r1 : r3;
   40680 }
   40681 else{
   40682 	r1 = 2;
   40683 	r3 = 1;
   40684 	r1 = f1 < f2 ? r1 : r3;
   40685 }
   40686 	r3 = (r1 + 1)|0;
   40687 	r3 = (r3 % 3)|0;
   40688 	r4 = (r1 + 2)|0;
   40689 	r4 = (r4 % 3)|0;
   40690 	r5 = r1 << 4;
   40691 	r6 = r3 << 4;
   40692 	r7 = r4 << 4;
   40693 	r5 = (r0 + r5)|0;
   40694 	r1 = r1 << 2;
   40695 	r6 = (r0 + r6)|0;
   40696 	r3 = r3 << 2;
   40697 	r0 = (r0 + r7)|0;
   40698 	r4 = r4 << 2;
   40699 	r7 = (r5 + r1)|0;
   40700 	r8 = (r6 + r3)|0;
   40701 	r7 = r7 >> 2;
   40702 	r8 = r8 >> 2;
   40703 	r9 = (r0 + r4)|0;
   40704 	r9 = r9 >> 2;
   40705 	f0 = heapFloat[(r7)];
   40706 	f1 = heapFloat[(r8)];
   40707 	f2 = heapFloat[(r9)];
   40708 	f0 = f0-f1;
   40709 	f0 = f0-f2;
   40710 	f1 =                         1;
   40711 	f0 = f0+f1;
   40712 	r7 = sp + -16;
   40713 	heapFloat[(g0)] = f0;
   40714 	r8 = (r7 + r1)|0;
   40715 	f0 =                       0.5;
   40716 	sqrtf(i7);
   40717 	r9 = (r0 + r3)|0;
   40718 	r10 = (r6 + r4)|0;
   40719 	r8 = r8 >> 2;
   40720 	f2 = f_g0*f0;
   40721 	r9 = r9 >> 2;
   40722 	heapFloat[(r8)] = f2;
   40723 	r8 = r10 >> 2;
   40724 	f2 = heapFloat[(r9)];
   40725 	f3 = heapFloat[(r8)];
   40726 	f2 = f2-f3;
   40727 	f0 = f0/f_g0;
   40728 	r6 = (r6 + r1)|0;
   40729 	r8 = (r5 + r3)|0;
   40730 	r9 = r7 >> 2;
   40731 	f1 = f2*f0;
   40732 	r6 = r6 >> 2;
   40733 	heapFloat[(r9+3)] = f1;
   40734 	r8 = r8 >> 2;
   40735 	f1 = heapFloat[(r6)];
   40736 	f2 = heapFloat[(r8)];
   40737 	r3 = (r7 + r3)|0;
   40738 	f1 = f1+f2;
   40739 	r0 = (r0 + r1)|0;
   40740 	r1 = (r5 + r4)|0;
   40741 	r3 = r3 >> 2;
   40742 	f1 = f1*f0;
   40743 	r0 = r0 >> 2;
   40744 	heapFloat[(r3)] = f1;
   40745 	r1 = r1 >> 2;
   40746 	f1 = heapFloat[(r0)];
   40747 	f2 = heapFloat[(r1)];
   40748 	r0 = (r7 + r4)|0;
   40749 	f1 = f1+f2;
   40750 	r0 = r0 >> 2;
   40751 	f0 = f1*f0;
   40752 	heapFloat[(r0)] = f0;
   40753 	f1 = heapFloat[(fp+-4)];
   40754 	f3 = heapFloat[(r9+1)];
   40755 	f0 = heapFloat[(r9+2)];
   40756 	f2 = heapFloat[(r9+3)];
   40757 }
   40758 else{
   40759 	f0 =                         1;
   40760 	f0 = f3+f0;
   40761 	heapFloat[(g0)] = f0;
   40762 	r0 = sp + -16;
   40763 	f0 =                       0.5;
   40764 	sqrtf(i7);
   40765 	f2 = f_g0*f0;
   40766 	r0 = r0 >> 2;
   40767 	heapFloat[(r0+3)] = f2;
   40768 	f3 = heapFloat[(r1+9)];
   40769 	f4 = heapFloat[(r1+6)];
   40770 	f3 = f3-f4;
   40771 	f0 = f0/f_g0;
   40772 	f1 = f3*f0;
   40773 	heapFloat[(fp+-4)] = f1;
   40774 	f3 = heapFloat[(r1+2)];
   40775 	f4 = heapFloat[(r1+8)];
   40776 	f3 = f3-f4;
   40777 	f3 = f3*f0;
   40778 	heapFloat[(r0+1)] = f3;
   40779 	f4 = heapFloat[(r1+4)];
   40780 	f5 = heapFloat[(r1+1)];
   40781 	f4 = f4-f5;
   40782 	f0 = f4*f0;
   40783 	heapFloat[(r0+2)] = f0;
   40784 }
   40785 	r0 = r2 >> 2;
   40786 	heapFloat[(r0)] = f1;
   40787 	heapFloat[(r0+1)] = f3;
   40788 	heapFloat[(r0+2)] = f0;
   40789 	heapFloat[(r0+3)] = f2;
   40790 	return;
   40791 }
   40792 
   40793 function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0E_0v(sp)
   40794 {
   40795 	var i7;
   40796 	var fp = sp>>2;
   40797 	var r0;
   40798 	var r1;
   40799 	var r2;
   40800 var __label__ = 0;
   40801 	i7 = sp + -8;var g0 = i7>>2; // save stack
   40802 	r0 = heap32[(fp)];
   40803 	r1 = _ZTV18btTriangleCallback;
   40804 	r2 = r0 >> 2;
   40805 	r1 = (r1 + 8)|0;
   40806 	heap32[(r2)] = r1;
   40807 	heap32[(g0)] = r0;
   40808 	_ZdlPv(i7);
   40809 	return;
   40810 }
   40811 
   40812 function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1E_0v(sp)
   40813 {
   40814 	var i7;
   40815 	var fp = sp>>2;
   40816 	var r0;
   40817 	var r1;
   40818 var __label__ = 0;
   40819 	i7 = sp + 0;var g0 = i7>>2; // save stack
   40820 	r0 = heap32[(fp)];
   40821 	r1 = _ZTV18btTriangleCallback;
   40822 	r0 = r0 >> 2;
   40823 	r1 = (r1 + 8)|0;
   40824 	heap32[(r0)] = r1;
   40825 	return;
   40826 }
   40827 
   40828 function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0Ev(sp)
   40829 {
   40830 	var i7;
   40831 	var fp = sp>>2;
   40832 	var r0;
   40833 	var r1;
   40834 	var r2;
   40835 var __label__ = 0;
   40836 	i7 = sp + -8;var g0 = i7>>2; // save stack
   40837 	r0 = heap32[(fp)];
   40838 	r1 = _ZTV18btTriangleCallback;
   40839 	r2 = r0 >> 2;
   40840 	r1 = (r1 + 8)|0;
   40841 	heap32[(r2)] = r1;
   40842 	heap32[(g0)] = r0;
   40843 	_ZdlPv(i7);
   40844 	return;
   40845 }
   40846 
   40847 function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1Ev(sp)
   40848 {
   40849 	var i7;
   40850 	var fp = sp>>2;
   40851 	var r0;
   40852 	var r1;
   40853 var __label__ = 0;
   40854 	i7 = sp + 0;var g0 = i7>>2; // save stack
   40855 	r0 = heap32[(fp)];
   40856 	r1 = _ZTV18btTriangleCallback;
   40857 	r0 = r0 >> 2;
   40858 	r1 = (r1 + 8)|0;
   40859 	heap32[(r0)] = r1;
   40860 	return;
   40861 }
   40862 
   40863 function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0E_0v(sp)
   40864 {
   40865 	var i7;
   40866 	var fp = sp>>2;
   40867 	var r0;
   40868 	var r1;
   40869 	var r2;
   40870 var __label__ = 0;
   40871 	i7 = sp + -8;var g0 = i7>>2; // save stack
   40872 	r0 = heap32[(fp)];
   40873 	r1 = _ZTV18btTriangleCallback;
   40874 	r2 = r0 >> 2;
   40875 	r1 = (r1 + 8)|0;
   40876 	heap32[(r2)] = r1;
   40877 	heap32[(g0)] = r0;
   40878 	_ZdlPv(i7);
   40879 	return;
   40880 }
   40881 
   40882 function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1E_0v(sp)
   40883 {
   40884 	var i7;
   40885 	var fp = sp>>2;
   40886 	var r0;
   40887 	var r1;
   40888 var __label__ = 0;
   40889 	i7 = sp + 0;var g0 = i7>>2; // save stack
   40890 	r0 = heap32[(fp)];
   40891 	r1 = _ZTV18btTriangleCallback;
   40892 	r0 = r0 >> 2;
   40893 	r1 = (r1 + 8)|0;
   40894 	heap32[(r0)] = r1;
   40895 	return;
   40896 }
   40897 
   40898 function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0Ev(sp)
   40899 {
   40900 	var i7;
   40901 	var fp = sp>>2;
   40902 	var r0;
   40903 	var r1;
   40904 	var r2;
   40905 var __label__ = 0;
   40906 	i7 = sp + -8;var g0 = i7>>2; // save stack
   40907 	r0 = heap32[(fp)];
   40908 	r1 = _ZTV18btTriangleCallback;
   40909 	r2 = r0 >> 2;
   40910 	r1 = (r1 + 8)|0;
   40911 	heap32[(r2)] = r1;
   40912 	heap32[(g0)] = r0;
   40913 	_ZdlPv(i7);
   40914 	return;
   40915 }
   40916 
   40917 function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1Ev(sp)
   40918 {
   40919 	var i7;
   40920 	var fp = sp>>2;
   40921 	var r0;
   40922 	var r1;
   40923 var __label__ = 0;
   40924 	i7 = sp + 0;var g0 = i7>>2; // save stack
   40925 	r0 = heap32[(fp)];
   40926 	r1 = _ZTV18btTriangleCallback;
   40927 	r0 = r0 >> 2;
   40928 	r1 = (r1 + 8)|0;
   40929 	heap32[(r0)] = r1;
   40930 	return;
   40931 }
   40932 
   40933 function _ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(sp)
   40934 {
   40935 	var i7;
   40936 	var fp = sp>>2;
   40937 	var r0;
   40938 	var r1;
   40939 	var r2;
   40940 	var f0;
   40941 	var f1;
   40942 	var f2;
   40943 	var f3;
   40944 	var f4;
   40945 	var f5;
   40946 	var f6;
   40947 	var f7;
   40948 	var f8;
   40949 	var f9;
   40950 	var f10;
   40951 	var f11;
   40952 	var f12;
   40953 	var f13;
   40954 	var f14;
   40955 	var f15;
   40956 	var f16;
   40957 	var f17;
   40958 	var f18;
   40959 	var f19;
   40960 	var f20;
   40961 	var f21;
   40962 	var f22;
   40963 	var f23;
   40964 var __label__ = 0;
   40965 	i7 = sp + -80;var g0 = i7>>2; // save stack
   40966 	r0 = heap32[(fp)];
   40967 	r0 = r0 >> 2;
   40968 	f0 = heapFloat[(r0+4)];
   40969 	f1 = heapFloat[(r0+9)];
   40970 	f2 = heapFloat[(r0+6)];
   40971 	f3 = heapFloat[(r0+8)];
   40972 	f4 = heapFloat[(r0+5)];
   40973 	f5 = heapFloat[(r0+10)];
   40974 	f6 = f4*f5;
   40975 	f7 = f2*f1;
   40976 	f8 = f2*f3;
   40977 	f9 = f0*f5;
   40978 	f10 = heapFloat[(r0)];
   40979 	f11 = heapFloat[(r0+1)];
   40980 	f6 = f6-f7;
   40981 	f7 = f8-f9;
   40982 	f8 = f0*f1;
   40983 	f9 = f4*f3;
   40984 	f12 = heapFloat[(r0+2)];
   40985 	f8 = f8-f9;
   40986 	f9 = f10*f6;
   40987 	f13 = f11*f7;
   40988 	f9 = f9+f13;
   40989 	f13 = f12*f8;
   40990 	r0 = heap32[(fp+1)];
   40991 	f14 =                         1;
   40992 	f9 = f9+f13;
   40993 	r0 = r0 >> 2;
   40994 	f9 = f14/f9;
   40995 	f13 = f12*f1;
   40996 	f15 = f11*f5;
   40997 	f5 = f10*f5;
   40998 	f16 = f12*f3;
   40999 	f13 = f13-f15;
   41000 	f5 = f5-f16;
   41001 	f15 = f11*f2;
   41002 	f16 = f12*f4;
   41003 	f12 = f12*f0;
   41004 	f2 = f10*f2;
   41005 	f3 = f11*f3;
   41006 	f1 = f10*f1;
   41007 	f6 = f6*f9;
   41008 	f17 = heapFloat[(r0)];
   41009 	f7 = f7*f9;
   41010 	f18 = heapFloat[(r0+1)];
   41011 	f15 = f15-f16;
   41012 	f2 = f12-f2;
   41013 	f12 = f13*f9;
   41014 	f5 = f5*f9;
   41015 	f1 = f3-f1;
   41016 	f3 = f10*f4;
   41017 	f0 = f11*f0;
   41018 	f4 = f6*f17;
   41019 	f10 = f7*f18;
   41020 	f8 = f8*f9;
   41021 	f11 = heapFloat[(r0+2)];
   41022 	f13 = heapFloat[(r0+8)];
   41023 	f15 = f15*f9;
   41024 	f16 = heapFloat[(r0+4)];
   41025 	f19 = heapFloat[(r0+9)];
   41026 	f2 = f2*f9;
   41027 	f20 = heapFloat[(r0+5)];
   41028 	f0 = f3-f0;
   41029 	f1 = f1*f9;
   41030 	f3 = heapFloat[(r0+10)];
   41031 	f21 = heapFloat[(r0+6)];
   41032 	f22 = f12*f17;
   41033 	f23 = f5*f18;
   41034 	f4 = f4+f10;
   41035 	f10 = f8*f11;
   41036 	f0 = f0*f9;
   41037 	r0 = sp + -48;
   41038 	f9 = f15*f17;
   41039 	f17 = f2*f18;
   41040 	f18 = f22+f23;
   41041 	f22 = f1*f11;
   41042 	f4 = f4+f10;
   41043 	r1 = r0 >> 2;
   41044 	f9 = f9+f17;
   41045 	f10 = f0*f11;
   41046 	f11 = f18+f22;
   41047 	heapFloat[(fp+-12)] = f4;
   41048 	f4 = f6*f16;
   41049 	f17 = f7*f20;
   41050 	f9 = f9+f10;
   41051 	heapFloat[(r1+1)] = f11;
   41052 	heapFloat[(r1+2)] = f9;
   41053 	f9 = f12*f16;
   41054 	f10 = f5*f20;
   41055 	f4 = f4+f17;
   41056 	f11 = f8*f21;
   41057 	f16 = f15*f16;
   41058 	f17 = f2*f20;
   41059 	f9 = f9+f10;
   41060 	f10 = f1*f21;
   41061 	f4 = f4+f11;
   41062 	heap32[(r1+3)] = 0;
   41063 	f11 = f16+f17;
   41064 	f16 = f0*f21;
   41065 	f9 = f9+f10;
   41066 	heapFloat[(r1+4)] = f4;
   41067 	f4 = f6*f13;
   41068 	f6 = f7*f19;
   41069 	f7 = f11+f16;
   41070 	heapFloat[(r1+5)] = f9;
   41071 	heapFloat[(r1+6)] = f7;
   41072 	f7 = f12*f13;
   41073 	f5 = f5*f19;
   41074 	f4 = f4+f6;
   41075 	f6 = f8*f3;
   41076 	f8 = f15*f13;
   41077 	f2 = f2*f19;
   41078 	f5 = f7+f5;
   41079 	f1 = f1*f3;
   41080 	f4 = f4+f6;
   41081 	heap32[(r1+7)] = 0;
   41082 	f2 = f8+f2;
   41083 	f0 = f0*f3;
   41084 	f1 = f5+f1;
   41085 	heapFloat[(r1+8)] = f4;
   41086 	f0 = f2+f0;
   41087 	heapFloat[(r1+9)] = f1;
   41088 	heapFloat[(r1+10)] = f0;
   41089 	heap32[(r1+11)] = 0;
   41090 	r1 = sp + -64;
   41091 	heap32[(g0)] = r0;
   41092 	heap32[(g0+1)] = r1;
   41093 	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
   41094 	r0 = r1 >> 2;
   41095 	f0 = heapFloat[(fp+-16)];
   41096 	f1 = heapFloat[(r0+1)];
   41097 	f2 = heapFloat[(r0+2)];
   41098 	f3 = f0*f0;
   41099 	f4 = f1*f1;
   41100 	f5 = heapFloat[(r0+3)];
   41101 	f3 = f3+f4;
   41102 	f4 = f2*f2;
   41103 	f3 = f3+f4;
   41104 	f4 = f5*f5;
   41105 	f3 = f3+f4;
   41106 	heapFloat[(g0)] = f3;
   41107 	sqrtf(i7);
   41108 	f3 = f_g0;
   41109 	f4 =                         0;
   41110 	if(f3 !=f4) //_LBB245_2
   41111 {
   41112 	r1 = heap32[(fp+2)];
   41113 	r2 = heap32[(fp+3)];
   41114 	f3 = f14/f3;
   41115 	f0 = f0*f3;
   41116 	f1 = f1*f3;
   41117 	heapFloat[(fp+-16)] = f0;
   41118 	f2 = f2*f3;
   41119 	heapFloat[(r0+1)] = f1;
   41120 	f4 =                        -1;
   41121 	f3 = f5*f3;
   41122 	heapFloat[(r0+2)] = f2;
   41123 	f4 = f3 < f4 ? f4 : f3;
   41124 	heapFloat[(r0+3)] = f3;
   41125 	f3 = f4 > f14 ? f14 : f4;
   41126 	heapFloat[(g0)] = f3;
   41127 	acosf(i7);
   41128 	r0 = r2 >> 2;
   41129 	f3 = f_g0+f_g0;
   41130 	r1 = r1 >> 2;
   41131 	heapFloat[(r0)] = f3;
   41132 	heapFloat[(r1)] = f0;
   41133 	f0 = f0*f0;
   41134 	f3 = f1*f1;
   41135 	heapFloat[(r1+1)] = f1;
   41136 	f0 = f0+f3;
   41137 	f1 = f2*f2;
   41138 	f0 = f0+f1;
   41139 	heapFloat[(r1+2)] = f2;
   41140 	heap32[(r1+3)] = 0;
   41141 	f1 =   1.4210854715202004e-014;
   41142 	if(f0 >=f1) //_LBB245_4
   41143 {
   41144 	heapFloat[(g0)] = f0;
   41145 	sqrtf(i7);
   41146 	f0 = f14/f_g0;
   41147 	f1 = heapFloat[(r1)];
   41148 	f1 = f1*f0;
   41149 	heapFloat[(r1)] = f1;
   41150 	f1 = heapFloat[(r1+1)];
   41151 	f1 = f1*f0;
   41152 	heapFloat[(r1+1)] = f1;
   41153 	f1 = heapFloat[(r1+2)];
   41154 	f0 = f1*f0;
   41155 	heapFloat[(r1+2)] = f0;
   41156 	return;
   41157 }
   41158 else{
   41159 	heap32[(r1)] = 1065353216;
   41160 	heap32[(r1+1)] = 0;
   41161 	heap32[(r1+2)] = 0;
   41162 	heap32[(r1+3)] = 0;
   41163 	return;
   41164 }
   41165 }
   41166 else{
   41167 	r0 = _2E_str584;
   41168 	r1 = _2E_str685;
   41169 	heap32[(g0)] = r0;
   41170 	heap32[(g0+1)] = r1;
   41171 	heap32[(g0+2)] = 188;
   41172 	_assert(i7);
   41173 }
   41174 }
   41175 
   41176 function _ZNK16btCollisionWorld15convexSweepTestEPK13btConvexShapeRK11btTransformS5_RNS_20ConvexResultCallbackEf(sp)
   41177 {
   41178 	var i7;
   41179 	var fp = sp>>2;
   41180 	var r0;
   41181 	var r1;
   41182 	var r2;
   41183 	var r3;
   41184 	var r4;
   41185 	var r5;
   41186 	var r6;
   41187 	var r7;
   41188 	var r8;
   41189 	var r9;
   41190 	var r10;
   41191 	var f0;
   41192 	var f1;
   41193 	var f2;
   41194 	var f3;
   41195 	var f4;
   41196 	var f5;
   41197 	var f6;
   41198 	var f7;
   41199 	var f8;
   41200 	var f9;
   41201 	var f10;
   41202 	var f11;
   41203 	var f12;
   41204 	var f13;
   41205 var __label__ = 0;
   41206 	i7 = sp + -528;var g0 = i7>>2; // save stack
   41207 	r0 = _2E_str1089;
   41208 	r1 = heap32[(fp+2)];
   41209 	heap32[(g0)] = r0;
   41210 	r0 = sp + -112;
   41211 	r1 = r1 >> 2;
   41212 	_ZN15CProfileManager13Start_ProfileEPKc(i7);
   41213 	r2 = r0 >> 2;
   41214 	heap32[(fp+-28)] = heap32[(r1)];
   41215 	heap32[(r2+1)] = heap32[(r1+1)];
   41216 	heap32[(r2+2)] = heap32[(r1+2)];
   41217 	heap32[(r2+3)] = heap32[(r1+3)];
   41218 	heap32[(r2+4)] = heap32[(r1+4)];
   41219 	heap32[(r2+5)] = heap32[(r1+5)];
   41220 	heap32[(r2+6)] = heap32[(r1+6)];
   41221 	heap32[(r2+7)] = heap32[(r1+7)];
   41222 	heap32[(r2+8)] = heap32[(r1+8)];
   41223 	heap32[(r2+9)] = heap32[(r1+9)];
   41224 	heap32[(r2+10)] = heap32[(r1+10)];
   41225 	heap32[(r2+11)] = heap32[(r1+11)];
   41226 	heap32[(r2+12)] = heap32[(r1+12)];
   41227 	heap32[(r2+13)] = heap32[(r1+13)];
   41228 	r3 = heap32[(fp+3)];
   41229 	heap32[(r2+14)] = heap32[(r1+14)];
   41230 	r4 = sp + -176;
   41231 	r3 = r3 >> 2;
   41232 	heap32[(r2+15)] = heap32[(r1+15)];
   41233 	r2 = r4 >> 2;
   41234 	heap32[(fp+-44)] = heap32[(r3)];
   41235 	heap32[(r2+1)] = heap32[(r3+1)];
   41236 	heap32[(r2+2)] = heap32[(r3+2)];
   41237 	heap32[(r2+3)] = heap32[(r3+3)];
   41238 	heap32[(r2+4)] = heap32[(r3+4)];
   41239 	heap32[(r2+5)] = heap32[(r3+5)];
   41240 	heap32[(r2+6)] = heap32[(r3+6)];
   41241 	heap32[(r2+7)] = heap32[(r3+7)];
   41242 	heap32[(r2+8)] = heap32[(r3+8)];
   41243 	heap32[(r2+9)] = heap32[(r3+9)];
   41244 	heap32[(r2+10)] = heap32[(r3+10)];
   41245 	heap32[(r2+11)] = heap32[(r3+11)];
   41246 	heap32[(r2+12)] = heap32[(r3+12)];
   41247 	heap32[(r2+13)] = heap32[(r3+13)];
   41248 	heap32[(r2+14)] = heap32[(r3+14)];
   41249 	heap32[(r2+15)] = heap32[(r3+15)];
   41250 	r2 = sp + -24;
   41251 	r5 = sp + -28;
   41252 	heap32[(g0)] = r0;
   41253 	heap32[(g0+1)] = r4;
   41254 	heap32[(g0+2)] = r2;
   41255 	heap32[(g0+3)] = r5;
   41256 	_ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7);
   41257 	r2 = r2 >> 2;
   41258 	f0 = heapFloat[(r2+2)];
   41259 	f1 = heapFloat[(fp+-7)];
   41260 	f2 = heapFloat[(r2+1)];
   41261 	f3 = heapFloat[(fp+-6)];
   41262 	r2 = sp + -424;
   41263 	f3 = f3*f1;
   41264 	r5 = r2 >> 2;
   41265 	f2 = f2*f1;
   41266 	heapFloat[(fp+-106)] = f3;
   41267 	f0 = f0*f1;
   41268 	heapFloat[(r5+1)] = f2;
   41269 	heapFloat[(r5+2)] = f0;
   41270 	r6 = sp + -440;
   41271 	heap32[(r5+3)] = 0;
   41272 	r5 = r6 >> 2;
   41273 	heap32[(fp+-110)] = 0;
   41274 	heap32[(r5+1)] = 0;
   41275 	heap32[(r5+2)] = 0;
   41276 	r7 = sp + -504;
   41277 	heap32[(r5+3)] = 0;
   41278 	r5 = r7 >> 2;
   41279 	heap32[(fp+-126)] = 1065353216;
   41280 	heap32[(r5+1)] = 0;
   41281 	heap32[(r5+2)] = 0;
   41282 	heap32[(r5+3)] = 0;
   41283 	heap32[(r5+4)] = 0;
   41284 	heap32[(r5+5)] = 1065353216;
   41285 	heap32[(r5+6)] = 0;
   41286 	heap32[(r5+7)] = 0;
   41287 	heap32[(r5+8)] = 0;
   41288 	heap32[(r5+9)] = 0;
   41289 	heap32[(r5+10)] = 1065353216;
   41290 	heap32[(r5+11)] = 0;
   41291 	heap32[(r5+12)] = 0;
   41292 	heap32[(r5+13)] = 0;
   41293 	heap32[(r5+14)] = 0;
   41294 	heap32[(r5+15)] = 0;
   41295 	r8 = sp + -48;
   41296 	heap32[(g0)] = r0;
   41297 	heap32[(g0+1)] = r8;
   41298 	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
   41299 	r8 = r8 >> 2;
   41300 	f0 = heapFloat[(fp+-12)];
   41301 	f1 = heapFloat[(r8+1)];
   41302 	f2 = heapFloat[(r8+2)];
   41303 	f3 = f0*f0;
   41304 	f4 = f1*f1;
   41305 	f5 = heapFloat[(r8+3)];
   41306 	f3 = f3+f4;
   41307 	f4 = f2*f2;
   41308 	f3 = f3+f4;
   41309 	f4 = f5*f5;
   41310 	f6 =                         2;
   41311 	f3 = f3+f4;
   41312 	f3 = f6/f3;
   41313 	f4 = f2*f3;
   41314 	f6 = f1*f3;
   41315 	f7 = f1*f6;
   41316 	f2 = f2*f4;
   41317 	f8 = f7+f2;
   41318 	f9 =                         1;
   41319 	f10 = f0*f6;
   41320 	f11 = f5*f4;
   41321 	f8 = f9-f8;
   41322 	f12 = f0*f4;
   41323 	f6 = f5*f6;
   41324 	f13 = f10-f11;
   41325 	heapFloat[(fp+-126)] = f8;
   41326 	f3 = f0*f3;
   41327 	f8 = f12+f6;
   41328 	heapFloat[(r5+1)] = f13;
   41329 	f0 = f0*f3;
   41330 	heapFloat[(r5+2)] = f8;
   41331 	f2 = f0+f2;
   41332 	f8 = f10+f11;
   41333 	heap32[(r5+3)] = 0;
   41334 	f1 = f1*f4;
   41335 	f3 = f5*f3;
   41336 	f2 = f9-f2;
   41337 	heapFloat[(r5+4)] = f8;
   41338 	f4 = f1-f3;
   41339 	heapFloat[(r5+5)] = f2;
   41340 	heapFloat[(r5+6)] = f4;
   41341 	f2 = f12-f6;
   41342 	heap32[(r5+7)] = 0;
   41343 	f0 = f0+f7;
   41344 	f1 = f1+f3;
   41345 	heapFloat[(r5+8)] = f2;
   41346 	f0 = f9-f0;
   41347 	heapFloat[(r5+9)] = f1;
   41348 	heapFloat[(r5+10)] = f0;
   41349 	heap32[(r5+11)] = 0;
   41350 	r5 = heap32[(fp+1)];
   41351 	r8 = sp + -192;
   41352 	r9 = sp + -208;
   41353 	heap32[(g0)] = r5;
   41354 	heap32[(g0+1)] = r7;
   41355 	heap32[(g0+2)] = r6;
   41356 	heap32[(g0+3)] = r2;
   41357 	heap32[(g0+4)] = r8;
   41358 	heap32[(g0+5)] = r9;
   41359 	r2 = _ZTV21btSingleSweepCallback;
   41360 	r6 = sp + -408;
   41361 	r2 = (r2 + 8)|0;
   41362 	_ZNK16btCollisionShape21calculateTemporalAabbERK11btTransformRK9btVector3S5_fRS3_S6_(i7);
   41363 	r7 = r6 >> 2;
   41364 	heap32[(fp+-102)] = r2;
   41365 	heap32[(r7+9)] = heap32[(r1)];
   41366 	heap32[(r7+10)] = heap32[(r1+1)];
   41367 	heap32[(r7+11)] = heap32[(r1+2)];
   41368 	heap32[(r7+12)] = heap32[(r1+3)];
   41369 	heap32[(r7+13)] = heap32[(r1+4)];
   41370 	heap32[(r7+14)] = heap32[(r1+5)];
   41371 	heap32[(r7+15)] = heap32[(r1+6)];
   41372 	heap32[(r7+16)] = heap32[(r1+7)];
   41373 	heap32[(r7+17)] = heap32[(r1+8)];
   41374 	heap32[(r7+18)] = heap32[(r1+9)];
   41375 	heap32[(r7+19)] = heap32[(r1+10)];
   41376 	heap32[(r7+20)] = heap32[(r1+11)];
   41377 	f0 = heapFloat[(r1+12)];
   41378 	heapFloat[(r7+21)] = f0;
   41379 	f1 = heapFloat[(r1+13)];
   41380 	heapFloat[(r7+22)] = f1;
   41381 	f2 = heapFloat[(r1+14)];
   41382 	heapFloat[(r7+23)] = f2;
   41383 	heap32[(r7+24)] = heap32[(r1+15)];
   41384 	heap32[(r7+25)] = heap32[(r3)];
   41385 	heap32[(r7+26)] = heap32[(r3+1)];
   41386 	heap32[(r7+27)] = heap32[(r3+2)];
   41387 	heap32[(r7+28)] = heap32[(r3+3)];
   41388 	heap32[(r7+29)] = heap32[(r3+4)];
   41389 	heap32[(r7+30)] = heap32[(r3+5)];
   41390 	heap32[(r7+31)] = heap32[(r3+6)];
   41391 	heap32[(r7+32)] = heap32[(r3+7)];
   41392 	heap32[(r7+33)] = heap32[(r3+8)];
   41393 	heap32[(r7+34)] = heap32[(r3+9)];
   41394 	heap32[(r7+35)] = heap32[(r3+10)];
   41395 	heap32[(r7+36)] = heap32[(r3+11)];
   41396 	f3 = heapFloat[(r3+12)];
   41397 	heapFloat[(r7+37)] = f3;
   41398 	f4 = heapFloat[(r3+13)];
   41399 	heapFloat[(r7+38)] = f4;
   41400 	f5 = heapFloat[(r3+14)];
   41401 	heapFloat[(r7+39)] = f5;
   41402 	r1 = heap32[(fp)];
   41403 	heap32[(r7+40)] = heap32[(r3+15)];
   41404 	r3 = heap32[(fp+4)];
   41405 	heap32[(r7+45)] = r1;
   41406 	heap32[(r7+46)] = r3;
   41407 	f0 = f3-f0;
   41408 	f1 = f4-f1;
   41409 	heap32[(r7+47)] = heap32[(fp+5)];
   41410 	f2 = f5-f2;
   41411 	heap32[(r7+48)] = r5;
   41412 	f3 = f0*f0;
   41413 	f4 = f1*f1;
   41414 	f3 = f3+f4;
   41415 	f4 = f2*f2;
   41416 	f3 = f3+f4;
   41417 	heapFloat[(g0)] = f3;
   41418 	sqrtf(i7);
   41419 	f3 = f9/f_g0;
   41420 	f4 = f0*f3;
   41421 	f5 = f2*f3;
   41422 	f3 = f1*f3;
   41423 	f6 =                         0;
   41424 	if(f4 !=f6) //_LBB246_2
   41425 {
   41426 	f7 = f9/f4;
   41427 }
   41428 else{
   41429 	f7 =        999999984306749440;
   41430 }
   41431 	heapFloat[(r7+1)] = f7;
   41432 	if(f3 !=f6) //_LBB246_5
   41433 {
   41434 	f8 = f9/f3;
   41435 }
   41436 else{
   41437 	f8 =        999999984306749440;
   41438 }
   41439 	heapFloat[(r7+2)] = f8;
   41440 	if(f5 !=f6) //_LBB246_8
   41441 {
   41442 	f9 = f9/f5;
   41443 }
   41444 else{
   41445 	f9 =        999999984306749440;
   41446 }
   41447 	r3 = f7 < f6;
   41448 	r5 = f8 < f6;
   41449 	r3 = r3 & 1;
   41450 	heapFloat[(r7+3)] = f9;
   41451 	r10 = f9 < f6;
   41452 	f0 = f4*f0;
   41453 	f1 = f3*f1;
   41454 	r5 = r5 & 1;
   41455 	heap32[(r7+5)] = r3;
   41456 	f0 = f0+f1;
   41457 	f1 = f5*f2;
   41458 	r3 = r10 & 1;
   41459 	heap32[(r7+6)] = r5;
   41460 	f0 = f0+f1;
   41461 	heap32[(r7+7)] = r3;
   41462 	r1 = r1 >> 2;
   41463 	heapFloat[(r7+8)] = f0;
   41464 	r1 = heap32[(r1+20)];
   41465 	r3 = r1 >> 2;
   41466 	r3 = heap32[(r3)];
   41467 	r3 = r3 >> 2;
   41468 	r3 = heap32[(r3+6)];
   41469 	r0 = (r0 + 48)|0;
   41470 	r4 = (r4 + 48)|0;
   41471 	heap32[(g0)] = r1;
   41472 	heap32[(g0+1)] = r0;
   41473 	heap32[(g0+2)] = r4;
   41474 	heap32[(g0+3)] = r6;
   41475 	heap32[(g0+4)] = r8;
   41476 	heap32[(g0+5)] = r9;
   41477 	r0 = _ZN15CProfileManager11CurrentNodeE;
   41478 	__FUNCTION_TABLE__[(r3)>>2](i7);
   41479 	r0 = r0 >> 2;
   41480 	heap32[(fp+-102)] = r2;
   41481 	r1 = heap32[(r0)];
   41482 	r2 = r1 >> 2;
   41483 	r3 = heap32[(r2+4)];
   41484 	r3 = (r3 + -1)|0;
   41485 	heap32[(r2+4)] = r3;
   41486 _13: do {
   41487 if(!(r3 !=0)) //_LBB246_15
   41488 {
   41489 	r3 = heap32[(r2+1)];
   41490 	if(r3 !=0) //_LBB246_12
   41491 {
   41492 	r1 = sp + -8;
   41493 	heap32[(g0)] = r1;
   41494 	heap32[(g0+1)] = 0;
   41495 	r3 = _ZL13gProfileClock_2E_0;
   41496 	gettimeofday(i7);
   41497 	r3 = r3 >> 2;
   41498 	r3 = heap32[(r3)];
   41499 	r3 = r3 >> 2;
   41500 	r1 = r1 >> 2;
   41501 	r4 = heap32[(fp+-2)];
   41502 	r5 = heap32[(r3)];
   41503 	r4 = (r4 - r5)|0;
   41504 	r1 = heap32[(r1+1)];
   41505 	r3 = heap32[(r3+1)];
   41506 	r1 = (r1 - r3)|0;
   41507 	r3 = (r4 * 1000000)|0;
   41508 	r1 = (r1 + r3)|0;
   41509 	r3 = heap32[(r2+3)];
   41510 	r1 = (r1 - r3)|0;
   41511 	f0 = uint(r1); //fuitos r1, f0
   41512 	f1 =                      1000;
   41513 	f2 = heapFloat[(r2+2)];
   41514 	f0 = f0/f1;
   41515 	f0 = f2+f0;
   41516 	heapFloat[(r2+2)] = f0;
   41517 	r1 = heap32[(r2+4)];
   41518 	if(r1 !=0) //_LBB246_15
   41519 {
   41520 break _13;
   41521 }
   41522 else{
   41523 	r1 = heap32[(r0)];
   41524 }
   41525 }
   41526 	r1 = r1 >> 2;
   41527 	r1 = heap32[(r1+5)];
   41528 	heap32[(r0)] = r1;
   41529 }
   41530 } while(0);
   41531 	return;
   41532 }
   41533 
   41534 function _ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(sp)
   41535 {
   41536 	var i7;
   41537 	var fp = sp>>2;
   41538 	var r0;
   41539 	var r1;
   41540 	var r2;
   41541 	var r3;
   41542 	var r4;
   41543 	var r5;
   41544 	var r6;
   41545 	var r7;
   41546 	var r8;
   41547 	var r9;
   41548 	var r10;
   41549 	var r11;
   41550 	var r12;
   41551 	var r13;
   41552 	var r14;
   41553 	var r15;
   41554 	var f0;
   41555 	var f1;
   41556 	var f2;
   41557 	var f3;
   41558 	var f4;
   41559 	var f5;
   41560 	var f6;
   41561 	var f7;
   41562 	var f8;
   41563 	var f9;
   41564 	var f10;
   41565 	var f11;
   41566 	var f12;
   41567 	var f13;
   41568 	var f14;
   41569 	var f15;
   41570 	var f16;
   41571 	var f17;
   41572 	var f18;
   41573 	var f19;
   41574 	var f20;
   41575 	var f21;
   41576 	var f22;
   41577 	var f23;
   41578 	var f24;
   41579 	var f25;
   41580 	var f26;
   41581 	var f27;
   41582 	var f28;
   41583 	var f29;
   41584 	var f30;
   41585 var __label__ = 0;
   41586 	i7 = sp + -1472;var g0 = i7>>2; // save stack
   41587 	r0 = heap32[(fp+4)];
   41588 	r1 = r0 >> 2;
   41589 	r2 = heap32[(r1+1)];
   41590 	r3 = heap32[(fp)];
   41591 	r4 = heap32[(fp+1)];
   41592 	r5 = heap32[(fp+2)];
   41593 	r6 = heap32[(fp+3)];
   41594 	r7 = heap32[(fp+5)];
   41595 	r8 = heap32[(fp+6)];
   41596 	f0 = heapFloat[(fp+7)];
   41597 _1: do {
   41598 	if(r2 >19) //_LBB247_6
   41599 {
   41600 	r9 = (r2 + -21)|0;
   41601 	if(uint(r9) >uint(8)) //_LBB247_30
   41602 {
   41603 	if(r2 !=31) //_LBB247_5
   41604 {
   41605 break _1;
   41606 }
   41607 else{
   41608 	r0 = _2E_str1493;
   41609 	heap32[(g0)] = r0;
   41610 	_ZN15CProfileManager13Start_ProfileEPKc(i7);
   41611 	r0 = heap32[(r1+4)];
   41612 if(!(r0 <1)) //_LBB247_34
   41613 {
   41614 	r0 = 0;
   41615 _8: while(true){
   41616 	r2 = (r0 * 20)|0;
   41617 	r9 = heap32[(r1+6)];
   41618 	r2 = r2 << 2;
   41619 	r2 = (r9 + r2)|0;
   41620 	r2 = r2 >> 2;
   41621 	r9 = r7 >> 2;
   41622 	f1 = heapFloat[(r2)];
   41623 	f2 = heapFloat[(r9)];
   41624 	f3 = heapFloat[(r2+4)];
   41625 	f4 = heapFloat[(r9+1)];
   41626 	f5 = heapFloat[(r2+1)];
   41627 	f6 = heapFloat[(r2+5)];
   41628 	f7 = f1*f2;
   41629 	f8 = f3*f4;
   41630 	f9 = heapFloat[(r2+8)];
   41631 	f10 = heapFloat[(r9+2)];
   41632 	f11 = heapFloat[(r9+8)];
   41633 	f12 = heapFloat[(r2+2)];
   41634 	f13 = heapFloat[(r9+4)];
   41635 	f14 = heapFloat[(r2+12)];
   41636 	f15 = heapFloat[(r9+9)];
   41637 	f16 = heapFloat[(r2+6)];
   41638 	f17 = heapFloat[(r9+5)];
   41639 	f18 = heapFloat[(r2+13)];
   41640 	f19 = heapFloat[(r2+9)];
   41641 	f20 = heapFloat[(r9+10)];
   41642 	f21 = heapFloat[(r2+10)];
   41643 	f22 = heapFloat[(r9+6)];
   41644 	f23 = heapFloat[(r2+14)];
   41645 	f24 = f5*f2;
   41646 	f25 = f6*f4;
   41647 	f7 = f7+f8;
   41648 	f8 = f9*f10;
   41649 	r2 = heap32[(r2+16)];
   41650 	f26 = heapFloat[(r9+14)];
   41651 	f27 = heapFloat[(r9+13)];
   41652 	f28 = heapFloat[(r9+12)];
   41653 	r9 = sp + -1408;
   41654 	f29 = f12*f2;
   41655 	f30 = f16*f4;
   41656 	f24 = f24+f25;
   41657 	f25 = f19*f10;
   41658 	f7 = f7+f8;
   41659 	r10 = r9 >> 2;
   41660 	f8 = f29+f30;
   41661 	f29 = f21*f10;
   41662 	f24 = f24+f25;
   41663 	heapFloat[(fp+-352)] = f7;
   41664 	f7 = f1*f13;
   41665 	f25 = f3*f17;
   41666 	f8 = f8+f29;
   41667 	heapFloat[(r10+1)] = f24;
   41668 	heapFloat[(r10+2)] = f8;
   41669 	f8 = f5*f13;
   41670 	f24 = f6*f17;
   41671 	f7 = f7+f25;
   41672 	f25 = f9*f22;
   41673 	f29 = f12*f13;
   41674 	f30 = f16*f17;
   41675 	f8 = f8+f24;
   41676 	f24 = f19*f22;
   41677 	f7 = f7+f25;
   41678 	heap32[(r10+3)] = 0;
   41679 	f25 = f29+f30;
   41680 	f29 = f21*f22;
   41681 	f8 = f8+f24;
   41682 	heapFloat[(r10+4)] = f7;
   41683 	f1 = f1*f11;
   41684 	f3 = f3*f15;
   41685 	f7 = f25+f29;
   41686 	heapFloat[(r10+5)] = f8;
   41687 	heapFloat[(r10+6)] = f7;
   41688 	f5 = f5*f11;
   41689 	f6 = f6*f15;
   41690 	f1 = f1+f3;
   41691 	f3 = f9*f20;
   41692 	f7 = f12*f11;
   41693 	f8 = f16*f15;
   41694 	f5 = f5+f6;
   41695 	f6 = f19*f20;
   41696 	f1 = f1+f3;
   41697 	heap32[(r10+7)] = 0;
   41698 	f2 = f2*f14;
   41699 	f3 = f4*f18;
   41700 	f4 = f7+f8;
   41701 	f7 = f21*f20;
   41702 	f5 = f5+f6;
   41703 	heapFloat[(r10+8)] = f1;
   41704 	f1 = f13*f14;
   41705 	f6 = f17*f18;
   41706 	f2 = f2+f3;
   41707 	f3 = f10*f23;
   41708 	f4 = f4+f7;
   41709 	heapFloat[(r10+9)] = f5;
   41710 	f2 = f2+f3;
   41711 	heapFloat[(r10+10)] = f4;
   41712 	f3 = f11*f14;
   41713 	f4 = f15*f18;
   41714 	f1 = f1+f6;
   41715 	f5 = f22*f23;
   41716 	f1 = f1+f5;
   41717 	f3 = f3+f4;
   41718 	f4 = f20*f23;
   41719 	f2 = f2+f28;
   41720 	heap32[(r10+11)] = 0;
   41721 	f3 = f3+f4;
   41722 	f1 = f1+f27;
   41723 	heapFloat[(r10+12)] = f2;
   41724 	f2 = f3+f26;
   41725 	heapFloat[(r10+13)] = f1;
   41726 	heapFloat[(r10+14)] = f2;
   41727 	r11 = r6 >> 2;
   41728 	heap32[(r10+15)] = 0;
   41729 	r10 = heap32[(r11+48)];
   41730 	r12 = 1;
   41731 	heap32[(r11+48)] = r2;
   41732 	r13 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder;
   41733 	r14 = -1;
   41734 	heap16[(sp+-1424)>>1] = r12;
   41735 	r12 = sp + -1432;
   41736 	heap16[(sp+-1422)>>1] = r14;
   41737 	r13 = (r13 + 8)|0;
   41738 	r14 = r12 >> 2;
   41739 	heap32[(fp+-358)] = r13;
   41740 	heap32[(r14+3)] = r8;
   41741 	r15 = r8 >> 2;
   41742 	heap32[(r14+4)] = r0;
   41743 	heap32[(r14+1)] = heap32[(r15+1)];
   41744 	heap32[(g0)] = r3;
   41745 	heap32[(g0+1)] = r4;
   41746 	heap32[(g0+2)] = r5;
   41747 	heap32[(g0+3)] = r6;
   41748 	heap32[(g0+4)] = r2;
   41749 	heap32[(g0+5)] = r9;
   41750 	heap32[(g0+6)] = r12;
   41751 	heapFloat[(g0+7)] = f0;
   41752 	_ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(i7);
   41753 	r0 = (r0 + 1)|0;
   41754 	heap32[(r11+48)] = r10;
   41755 	heap32[(fp+-358)] = r13;
   41756 	r2 = heap32[(r1+4)];
   41757 if(!(r2 >r0)) //_LBB247_33
   41758 {
   41759 break _8;
   41760 }
   41761 }
   41762 }
   41763 	r0 = _ZN15CProfileManager11CurrentNodeE;
   41764 	r0 = r0 >> 2;
   41765 	r1 = heap32[(r0)];
   41766 	r2 = r1 >> 2;
   41767 	r3 = heap32[(r2+4)];
   41768 	r3 = (r3 + -1)|0;
   41769 	heap32[(r2+4)] = r3;
   41770 	if(r3 !=0) //_LBB247_5
   41771 {
   41772 break _1;
   41773 }
   41774 else{
   41775 	r3 = heap32[(r2+1)];
   41776 	if(r3 !=0) //_LBB247_37
   41777 {
   41778 	r1 = sp + -24;
   41779 	heap32[(g0)] = r1;
   41780 	heap32[(g0+1)] = 0;
   41781 	r3 = _ZL13gProfileClock_2E_0;
   41782 	gettimeofday(i7);
   41783 	r3 = r3 >> 2;
   41784 	r3 = heap32[(r3)];
   41785 	r3 = r3 >> 2;
   41786 	r1 = r1 >> 2;
   41787 	r4 = heap32[(fp+-6)];
   41788 	r5 = heap32[(r3)];
   41789 	r4 = (r4 - r5)|0;
   41790 	r1 = heap32[(r1+1)];
   41791 	r3 = heap32[(r3+1)];
   41792 	r1 = (r1 - r3)|0;
   41793 	r3 = (r4 * 1000000)|0;
   41794 	r1 = (r1 + r3)|0;
   41795 	r3 = heap32[(r2+3)];
   41796 	r1 = (r1 - r3)|0;
   41797 	f0 = uint(r1); //fuitos r1, f0
   41798 	f1 =                      1000;
   41799 	f2 = heapFloat[(r2+2)];
   41800 	f0 = f0/f1;
   41801 	f0 = f2+f0;
   41802 	heapFloat[(r2+2)] = f0;
   41803 	r1 = heap32[(r2+4)];
   41804 	if(r1 !=0) //_LBB247_5
   41805 {
   41806 break _1;
   41807 }
   41808 else{
   41809 	r1 = heap32[(r0)];
   41810 }
   41811 }
   41812 	r1 = r1 >> 2;
   41813 	r1 = heap32[(r1+5)];
   41814 	heap32[(r0)] = r1;
   41815 	return;
   41816 }
   41817 }
   41818 }
   41819 else{
   41820 	if(r2 !=21) //_LBB247_11
   41821 {
   41822 	r2 = r5 >> 2;
   41823 	r9 = r7 >> 2;
   41824 	f0 = heapFloat[(r9)];
   41825 	f1 = heapFloat[(r2)];
   41826 	f2 = heapFloat[(r9+4)];
   41827 	f3 = heapFloat[(r2+4)];
   41828 	r10 = r4 >> 2;
   41829 	f4 = heapFloat[(r2+1)];
   41830 	f5 = heapFloat[(r2+5)];
   41831 	f6 = f1*f0;
   41832 	f7 = f3*f2;
   41833 	f8 = heapFloat[(r9+8)];
   41834 	f9 = heapFloat[(r2+8)];
   41835 	f10 = heapFloat[(r9+2)];
   41836 	f11 = heapFloat[(r2+2)];
   41837 	f12 = heapFloat[(r9+1)];
   41838 	f13 = heapFloat[(r2+12)];
   41839 	f14 = heapFloat[(r10+12)];
   41840 	f15 = heapFloat[(r9+6)];
   41841 	f16 = heapFloat[(r2+6)];
   41842 	f17 = heapFloat[(r9+5)];
   41843 	f18 = heapFloat[(r2+13)];
   41844 	f19 = heapFloat[(r10+13)];
   41845 	f20 = heapFloat[(r9+13)];
   41846 	f21 = heapFloat[(r2+10)];
   41847 	f22 = heapFloat[(r9+10)];
   41848 	f23 = heapFloat[(r2+9)];
   41849 	f24 = heapFloat[(r9+9)];
   41850 	f25 = heapFloat[(r2+14)];
   41851 	heapFloat[(fp+-360)] = f25;
   41852 	f26 = heapFloat[(r10+14)];
   41853 	f27 = heapFloat[(r9+14)];
   41854 	f28 = heapFloat[(r9+12)];
   41855 	heapFloat[(fp+-359)] = f28;
   41856 	f29 = f4*f0;
   41857 	f30 = f5*f2;
   41858 	f6 = f6+f7;
   41859 	f7 = f9*f8;
   41860 	r2 = sp + -1056;
   41861 	f25 = f11*f0;
   41862 	f28 = f16*f2;
   41863 	f29 = f29+f30;
   41864 	f30 = f23*f8;
   41865 	f6 = f6+f7;
   41866 	r9 = r2 >> 2;
   41867 	f7 = f25+f28;
   41868 	f25 = f21*f8;
   41869 	f28 = f29+f30;
   41870 	heapFloat[(fp+-264)] = f6;
   41871 	f6 = f1*f12;
   41872 	f29 = f3*f17;
   41873 	f7 = f7+f25;
   41874 	heapFloat[(r9+1)] = f28;
   41875 	heapFloat[(r9+2)] = f7;
   41876 	f7 = f4*f12;
   41877 	f25 = f5*f17;
   41878 	f6 = f6+f29;
   41879 	f28 = f9*f24;
   41880 	f29 = f11*f12;
   41881 	f30 = f16*f17;
   41882 	f7 = f7+f25;
   41883 	f25 = f23*f24;
   41884 	f6 = f6+f28;
   41885 	heap32[(r9+3)] = 0;
   41886 	f28 = f29+f30;
   41887 	f29 = f21*f24;
   41888 	f7 = f7+f25;
   41889 	heapFloat[(r9+4)] = f6;
   41890 	f1 = f1*f10;
   41891 	f3 = f3*f15;
   41892 	f6 = f28+f29;
   41893 	heapFloat[(r9+5)] = f7;
   41894 	heapFloat[(r9+6)] = f6;
   41895 	f4 = f4*f10;
   41896 	f5 = f5*f15;
   41897 	f1 = f1+f3;
   41898 	f3 = f9*f22;
   41899 	f6 = f11*f10;
   41900 	f7 = f16*f15;
   41901 	f4 = f4+f5;
   41902 	f5 = f23*f22;
   41903 	f1 = f1+f3;
   41904 	heap32[(r9+7)] = 0;
   41905 	f3 = f6+f7;
   41906 	f6 = f21*f22;
   41907 	f4 = f4+f5;
   41908 	heapFloat[(r9+8)] = f1;
   41909 	f1 = f3+f6;
   41910 	heapFloat[(r9+9)] = f4;
   41911 	heapFloat[(r9+10)] = f1;
   41912 	heap32[(r9+11)] = 0;
   41913 	heap32[(r9+12)] = 0;
   41914 	heap32[(r9+13)] = 0;
   41915 	heap32[(r9+14)] = 0;
   41916 	heap32[(r9+15)] = 0;
   41917 	r9 = heap32[(r1)];
   41918 	r9 = r9 >> 2;
   41919 	r9 = heap32[(r9+11)];
   41920 	heap32[(g0)] = r0;
   41921 	__FUNCTION_TABLE__[(r9)>>2](i7);
   41922 	r9 = sp + -1280;
   41923 	heap32[(g0)] = r9;
   41924 	heap32[(g0+1)] = r3;
   41925 	heap32[(g0+2)] = r4;
   41926 	heap32[(g0+3)] = r5;
   41927 	heap32[(g0+4)] = r7;
   41928 	heapFloat[(g0+5)] = f_g0;
   41929 	r4 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0;
   41930 	_ZN28btTriangleConvexcastCallbackC2EPK13btConvexShapeRK11btTransformS5_S5_f(i7);
   41931 	r4 = (r4 + 8)|0;
   41932 	r5 = r9 >> 2;
   41933 	heap32[(fp+-320)] = r4;
   41934 	heap32[(r5+52)] = r8;
   41935 	heap32[(r5+53)] = r6;
   41936 	r4 = r8 >> 2;
   41937 	heap32[(r5+54)] = r0;
   41938 	r6 = r3 >> 2;
   41939 	heap32[(r5+50)] = heap32[(r4+1)];
   41940 	r4 = heap32[(r6)];
   41941 	r4 = r4 >> 2;
   41942 	r4 = heap32[(r4+2)];
   41943 	f28 = heapFloat[(fp+-359)];
   41944 	f1 = -f28;
   41945 	r5 = sp + -1296;
   41946 	r6 = sp + -1312;
   41947 	f3 = f0*f14;
   41948 	f4 = f2*f19;
   41949 	f5 = f0*f1;
   41950 	f6 = f2*f20;
   41951 	f3 = f3+f4;
   41952 	f4 = f8*f26;
   41953 	f5 = f5-f6;
   41954 	f6 = f8*f27;
   41955 	heap32[(g0)] = r3;
   41956 	heap32[(g0+1)] = r2;
   41957 	heap32[(g0+2)] = r5;
   41958 	heap32[(g0+3)] = r6;
   41959 	f7 = f12*f14;
   41960 	f9 = f17*f19;
   41961 	f11 = f12*f1;
   41962 	f16 = f17*f20;
   41963 	f3 = f3+f4;
   41964 	f4 = f5-f6;
   41965 	f5 = f10*f14;
   41966 	f6 = f15*f19;
   41967 	f1 = f10*f1;
   41968 	f14 = f15*f20;
   41969 	f7 = f7+f9;
   41970 	f9 = f24*f26;
   41971 	f11 = f11-f16;
   41972 	f16 = f24*f27;
   41973 	f3 = f3+f4;
   41974 	__FUNCTION_TABLE__[(r4)>>2](i7);
   41975 	r2 = sp + -1328;
   41976 	f0 = f0*f13;
   41977 	f2 = f2*f18;
   41978 	f10 = f10*f13;
   41979 	f15 = f15*f18;
   41980 	f12 = f12*f13;
   41981 	f13 = f17*f18;
   41982 	f5 = f5+f6;
   41983 	f6 = f22*f26;
   41984 	f1 = f1-f14;
   41985 	f14 = f22*f27;
   41986 	f7 = f7+f9;
   41987 	f9 = f11-f16;
   41988 	f7 = f7+f9;
   41989 	f0 = f0+f2;
   41990 	f25 = heapFloat[(fp+-360)];
   41991 	f2 = f8*f25;
   41992 	f8 = f10+f15;
   41993 	f10 = f22*f25;
   41994 	f11 = f12+f13;
   41995 	f12 = f24*f25;
   41996 	r3 = r2 >> 2;
   41997 	heapFloat[(fp+-332)] = f3;
   41998 	f5 = f5+f6;
   41999 	f1 = f1-f14;
   42000 	f0 = f0+f2;
   42001 	f2 = f8+f10;
   42002 	f6 = f11+f12;
   42003 	f5 = f5+f1;
   42004 	heapFloat[(r3+1)] = f7;
   42005 	f0 = f0+f4;
   42006 	f1 = f2+f1;
   42007 	f2 = f6+f9;
   42008 	heapFloat[(r3+2)] = f5;
   42009 	heap32[(r3+3)] = 0;
   42010 	if(f0 <f3) //_LBB247_13
   42011 {
   42012 	heapFloat[(fp+-332)] = f0;
   42013 	f4 = f0;
   42014 }
   42015 else{
   42016 	f4 = f3;
   42017 }
   42018 	if(f2 <f7) //_LBB247_16
   42019 {
   42020 	heapFloat[(r3+1)] = f2;
   42021 	f6 = f2;
   42022 }
   42023 else{
   42024 	f6 = f7;
   42025 }
   42026 	if(f1 <f5) //_LBB247_19
   42027 {
   42028 	heapFloat[(r3+2)] = f1;
   42029 	f8 = f1;
   42030 }
   42031 else{
   42032 	f8 = f5;
   42033 }
   42034 	r4 = sp + -1344;
   42035 	r7 = r4 >> 2;
   42036 	heapFloat[(fp+-336)] = f3;
   42037 	heapFloat[(r7+1)] = f7;
   42038 	heapFloat[(r7+2)] = f5;
   42039 	heap32[(r7+3)] = 0;
   42040 	if(f3 <f0) //_LBB247_22
   42041 {
   42042 	heapFloat[(fp+-336)] = f0;
   42043 	f3 = f0;
   42044 }
   42045 	if(f7 <f2) //_LBB247_25
   42046 {
   42047 	heapFloat[(r7+1)] = f2;
   42048 	f7 = f2;
   42049 }
   42050 	if(f5 <f1) //_LBB247_28
   42051 {
   42052 	heapFloat[(r7+2)] = f1;
   42053 	f5 = f1;
   42054 }
   42055 	f0 = heapFloat[(fp+-324)];
   42056 	f0 = f4+f0;
   42057 	r5 = r5 >> 2;
   42058 	heapFloat[(fp+-332)] = f0;
   42059 	f0 = heapFloat[(r5+1)];
   42060 	f0 = f6+f0;
   42061 	heapFloat[(r3+1)] = f0;
   42062 	f0 = heapFloat[(r5+2)];
   42063 	f0 = f8+f0;
   42064 	heapFloat[(r3+2)] = f0;
   42065 	f0 = heapFloat[(fp+-328)];
   42066 	f0 = f3+f0;
   42067 	r3 = r6 >> 2;
   42068 	heapFloat[(fp+-336)] = f0;
   42069 	f0 = heapFloat[(r3+1)];
   42070 	f0 = f7+f0;
   42071 	heapFloat[(r7+1)] = f0;
   42072 	f0 = heapFloat[(r3+2)];
   42073 	f0 = f5+f0;
   42074 	heapFloat[(r7+2)] = f0;
   42075 	r1 = heap32[(r1)];
   42076 	r1 = r1 >> 2;
   42077 	r1 = heap32[(r1+15)];
   42078 	heap32[(g0)] = r0;
   42079 	heap32[(g0+1)] = r9;
   42080 	heap32[(g0+2)] = r2;
   42081 	heap32[(g0+3)] = r4;
   42082 	__FUNCTION_TABLE__[(r1)>>2](i7);
   42083 	return;
   42084 }
   42085 else{
   42086 	r2 = r7 >> 2;
   42087 	r9 = r4 >> 2;
   42088 	f0 = heapFloat[(r2+12)];
   42089 	f0 = -f0;
   42090 	f1 = heapFloat[(r2)];
   42091 	f2 = heapFloat[(r9+12)];
   42092 	f3 = heapFloat[(r2+4)];
   42093 	f4 = heapFloat[(r2+13)];
   42094 	f5 = heapFloat[(r9+13)];
   42095 	f6 = heapFloat[(r2+1)];
   42096 	f7 = heapFloat[(r2+5)];
   42097 	f8 = f1*f2;
   42098 	f9 = f3*f5;
   42099 	f10 = f1*f0;
   42100 	f11 = f3*f4;
   42101 	f12 = heapFloat[(r2+8)];
   42102 	f13 = heapFloat[(r2+14)];
   42103 	f14 = heapFloat[(r9+14)];
   42104 	f15 = heapFloat[(r2+9)];
   42105 	f16 = heapFloat[(r2+2)];
   42106 	f17 = heapFloat[(r2+6)];
   42107 	f18 = f6*f2;
   42108 	f19 = f7*f5;
   42109 	f20 = f6*f0;
   42110 	f21 = f7*f4;
   42111 	f8 = f8+f9;
   42112 	f9 = f12*f14;
   42113 	f10 = f10-f11;
   42114 	f11 = f12*f13;
   42115 	f22 = heapFloat[(r2+10)];
   42116 	f2 = f16*f2;
   42117 	f5 = f17*f5;
   42118 	f0 = f16*f0;
   42119 	f4 = f17*f4;
   42120 	f18 = f18+f19;
   42121 	f19 = f15*f14;
   42122 	f20 = f20-f21;
   42123 	f21 = f15*f13;
   42124 	f8 = f8+f9;
   42125 	f9 = f10-f11;
   42126 	r2 = sp + -656;
   42127 	f2 = f2+f5;
   42128 	f5 = f22*f14;
   42129 	f0 = f0-f4;
   42130 	f4 = f22*f13;
   42131 	f10 = f18+f19;
   42132 	f11 = f20-f21;
   42133 	f8 = f8+f9;
   42134 	r9 = r2 >> 2;
   42135 	f2 = f2+f5;
   42136 	f0 = f0-f4;
   42137 	f4 = f10+f11;
   42138 	heapFloat[(fp+-164)] = f8;
   42139 	f2 = f2+f0;
   42140 	heapFloat[(r9+1)] = f4;
   42141 	heapFloat[(r9+2)] = f2;
   42142 	r10 = r5 >> 2;
   42143 	heap32[(r9+3)] = 0;
   42144 	f2 = heapFloat[(r10+12)];
   42145 	f4 = heapFloat[(r10+13)];
   42146 	f5 = heapFloat[(r10+14)];
   42147 	f8 = f1*f2;
   42148 	f10 = f3*f4;
   42149 	f13 = f6*f2;
   42150 	f14 = f7*f4;
   42151 	f8 = f8+f10;
   42152 	f10 = f12*f5;
   42153 	f8 = f8+f10;
   42154 	f2 = f16*f2;
   42155 	f4 = f17*f4;
   42156 	f10 = f13+f14;
   42157 	f13 = f15*f5;
   42158 	r9 = sp + -672;
   42159 	f10 = f10+f13;
   42160 	f2 = f2+f4;
   42161 	f4 = f22*f5;
   42162 	f5 = f8+f9;
   42163 	f2 = f2+f4;
   42164 	r11 = r9 >> 2;
   42165 	f4 = f10+f11;
   42166 	heapFloat[(fp+-168)] = f5;
   42167 	f0 = f2+f0;
   42168 	heapFloat[(r11+1)] = f4;
   42169 	heapFloat[(r11+2)] = f0;
   42170 	heap32[(r11+3)] = 0;
   42171 	f0 = heapFloat[(r10)];
   42172 	f2 = heapFloat[(r10+4)];
   42173 	f4 = heapFloat[(r10+1)];
   42174 	f5 = heapFloat[(r10+5)];
   42175 	f8 = heapFloat[(r10+8)];
   42176 	f9 = f0*f1;
   42177 	f10 = f2*f3;
   42178 	f11 = heapFloat[(r10+2)];
   42179 	f13 = heapFloat[(r10+6)];
   42180 	f14 = heapFloat[(r10+10)];
   42181 	f18 = heapFloat[(r10+9)];
   42182 	f19 = f4*f1;
   42183 	f20 = f5*f3;
   42184 	f9 = f9+f10;
   42185 	f10 = f8*f12;
   42186 	r10 = sp + -736;
   42187 	f1 = f11*f1;
   42188 	f3 = f13*f3;
   42189 	f19 = f19+f20;
   42190 	f20 = f18*f12;
   42191 	f9 = f9+f10;
   42192 	r11 = r10 >> 2;
   42193 	f1 = f1+f3;
   42194 	f3 = f14*f12;
   42195 	f10 = f19+f20;
   42196 	heapFloat[(fp+-184)] = f9;
   42197 	f9 = f0*f6;
   42198 	f12 = f2*f7;
   42199 	f1 = f1+f3;
   42200 	heapFloat[(r11+1)] = f10;
   42201 	heapFloat[(r11+2)] = f1;
   42202 	f1 = f4*f6;
   42203 	f3 = f5*f7;
   42204 	f9 = f9+f12;
   42205 	f10 = f8*f15;
   42206 	f6 = f11*f6;
   42207 	f7 = f13*f7;
   42208 	f1 = f1+f3;
   42209 	f3 = f18*f15;
   42210 	f9 = f9+f10;
   42211 	heap32[(r11+3)] = 0;
   42212 	f6 = f6+f7;
   42213 	f7 = f14*f15;
   42214 	f1 = f1+f3;
   42215 	heapFloat[(r11+4)] = f9;
   42216 	f0 = f0*f16;
   42217 	f2 = f2*f17;
   42218 	f3 = f6+f7;
   42219 	heapFloat[(r11+5)] = f1;
   42220 	heapFloat[(r11+6)] = f3;
   42221 	f1 = f4*f16;
   42222 	f3 = f5*f17;
   42223 	f0 = f0+f2;
   42224 	f2 = f8*f22;
   42225 	f4 = f11*f16;
   42226 	f5 = f13*f17;
   42227 	f1 = f1+f3;
   42228 	f3 = f18*f22;
   42229 	f0 = f0+f2;
   42230 	heap32[(r11+7)] = 0;
   42231 	f2 = f4+f5;
   42232 	f4 = f14*f22;
   42233 	f1 = f1+f3;
   42234 	heapFloat[(r11+8)] = f0;
   42235 	f0 = f2+f4;
   42236 	heapFloat[(r11+9)] = f1;
   42237 	heapFloat[(r11+10)] = f0;
   42238 	heap32[(r11+11)] = 0;
   42239 	heap32[(r11+12)] = 0;
   42240 	heap32[(r11+13)] = 0;
   42241 	heap32[(r11+14)] = 0;
   42242 	heap32[(r11+15)] = 0;
   42243 	r11 = heap32[(r1)];
   42244 	r11 = r11 >> 2;
   42245 	r11 = heap32[(r11+11)];
   42246 	heap32[(g0)] = r0;
   42247 	__FUNCTION_TABLE__[(r11)>>2](i7);
   42248 	r11 = sp + -960;
   42249 	heap32[(g0)] = r11;
   42250 	heap32[(g0+1)] = r3;
   42251 	heap32[(g0+2)] = r4;
   42252 	heap32[(g0+3)] = r5;
   42253 	heap32[(g0+4)] = r7;
   42254 	heapFloat[(g0+5)] = f_g0;
   42255 	r4 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback;
   42256 	_ZN28btTriangleConvexcastCallbackC2EPK13btConvexShapeRK11btTransformS5_S5_f(i7);
   42257 	r4 = (r4 + 8)|0;
   42258 	r5 = r11 >> 2;
   42259 	heap32[(fp+-240)] = r4;
   42260 	heap32[(r5+52)] = r8;
   42261 	heap32[(r5+53)] = r6;
   42262 	r4 = r8 >> 2;
   42263 	heap32[(r5+54)] = r0;
   42264 	r0 = r3 >> 2;
   42265 	heap32[(r5+50)] = heap32[(r4+1)];
   42266 	r0 = heap32[(r0)];
   42267 	r0 = r0 >> 2;
   42268 	r0 = heap32[(r0+2)];
   42269 	r4 = sp + -976;
   42270 	r5 = sp + -992;
   42271 	heap32[(g0)] = r3;
   42272 	heap32[(g0+1)] = r10;
   42273 	heap32[(g0+2)] = r4;
   42274 	heap32[(g0+3)] = r5;
   42275 	__FUNCTION_TABLE__[(r0)>>2](i7);
   42276 	r0 = _ZTVZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback;
   42277 	r3 = sp + -16;
   42278 	r6 = heap32[(r1+12)];
   42279 	r0 = (r0 + 8)|0;
   42280 	r7 = r3 >> 2;
   42281 	heap32[(fp+-4)] = r0;
   42282 	heap32[(r7+1)] = r6;
   42283 	heap32[(r7+2)] = r11;
   42284 	r0 = heap32[(r1+13)];
   42285 	r1 = heapU8[r0+60];
   42286 	if(r1 ==0) //_LBB247_10
   42287 {
   42288 	heap32[(g0)] = r0;
   42289 	heap32[(g0+1)] = r3;
   42290 	heap32[(g0+2)] = r2;
   42291 	heap32[(g0+3)] = r9;
   42292 	heap32[(g0+4)] = r4;
   42293 	heap32[(g0+5)] = r5;
   42294 	_ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i7);
   42295 	return;
   42296 }
   42297 else{
   42298 	r1 = r0 >> 2;
   42299 	r1 = heap32[(r1+14)];
   42300 	heap32[(g0)] = r0;
   42301 	heap32[(g0+1)] = r3;
   42302 	heap32[(g0+2)] = r2;
   42303 	heap32[(g0+3)] = r9;
   42304 	heap32[(g0+4)] = r4;
   42305 	heap32[(g0+5)] = r5;
   42306 	heap32[(g0+6)] = r1;
   42307 	_ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i7);
   42308 	return;
   42309 }
   42310 }
   42311 }
   42312 }
   42313 else{
   42314 	r1 = _ZTVN12btConvexCast10CastResultE;
   42315 	r2 = sp + -200;
   42316 	r1 = (r1 + 8)|0;
   42317 	r9 = r2 >> 2;
   42318 	heap32[(fp+-50)] = r1;
   42319 	heap32[(r9+42)] = 0;
   42320 	r1 = sp + -560;
   42321 	r10 = r8 >> 2;
   42322 	heapFloat[(r9+43)] = f0;
   42323 	r11 = r1 >> 2;
   42324 	heap32[(r9+41)] = heap32[(r10+1)];
   42325 	r12 = _ZTV30btGjkEpaPenetrationDepthSolver;
   42326 	r13 = 0;
   42327 	heap32[(r11+77)] = 953267991;
   42328 	r11 = _ZTV27btContinuousConvexCollision;
   42329 	r12 = (r12 + 8)|0;
   42330 	heap8[sp+-228] = r13;
   42331 	r13 = sp + -592;
   42332 	r11 = (r11 + 8)|0;
   42333 	heap32[(fp+-142)] = r12;
   42334 	r12 = r13 >> 2;
   42335 	heap32[(fp+-148)] = r11;
   42336 	r11 = sp + -568;
   42337 	heap32[(r12+1)] = r1;
   42338 	heap32[(r12+2)] = r11;
   42339 	heap32[(r12+3)] = r3;
   42340 	heap32[(r12+4)] = r0;
   42341 	heap32[(g0)] = r13;
   42342 	heap32[(g0+1)] = r4;
   42343 	heap32[(g0+2)] = r5;
   42344 	heap32[(g0+3)] = r7;
   42345 	heap32[(g0+4)] = r7;
   42346 	heap32[(g0+5)] = r2;
   42347 	_ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7);
   42348 	r0 = r_g0;
   42349 if(!(r0 ==0)) //_LBB247_5
   42350 {
   42351 	f0 = heapFloat[(r9+33)];
   42352 	f1 = heapFloat[(r9+34)];
   42353 	f2 = heapFloat[(r9+35)];
   42354 	f0 = f0*f0;
   42355 	f1 = f1*f1;
   42356 	f0 = f0+f1;
   42357 	f1 = f2*f2;
   42358 	f0 = f0+f1;
   42359 	f1 =   9.9999997473787516e-005;
   42360 if(!(f0 <=f1)) //_LBB247_5
   42361 {
   42362 	f1 = heapFloat[(r9+41)];
   42363 	f2 = heapFloat[(r10+1)];
   42364 if(!(f1 >=f2)) //_LBB247_5
   42365 {
   42366 	heapFloat[(g0)] = f0;
   42367 	sqrtf(i7);
   42368 	f1 =                         1;
   42369 	f2 = heapFloat[(r9+33)];
   42370 	f0 = f1/f_g0;
   42371 	f1 = f2*f0;
   42372 	heapFloat[(r9+33)] = f1;
   42373 	f2 = heapFloat[(r9+34)];
   42374 	f2 = f2*f0;
   42375 	heapFloat[(r9+34)] = f2;
   42376 	f3 = heapFloat[(r9+35)];
   42377 	f0 = f3*f0;
   42378 	heapFloat[(r9+35)] = f0;
   42379 	r0 = sp + -640;
   42380 	f3 = heapFloat[(r9+41)];
   42381 	r1 = r0 >> 2;
   42382 	heap32[(fp+-160)] = r6;
   42383 	heap32[(r1+1)] = 0;
   42384 	heapFloat[(r1+2)] = f1;
   42385 	heapFloat[(r1+3)] = f2;
   42386 	heapFloat[(r1+4)] = f0;
   42387 	heap32[(r1+5)] = heap32[(r9+36)];
   42388 	heap32[(r1+6)] = heap32[(r9+37)];
   42389 	heap32[(r1+7)] = heap32[(r9+38)];
   42390 	heap32[(r1+8)] = heap32[(r9+39)];
   42391 	heap32[(r1+9)] = heap32[(r9+40)];
   42392 	heapFloat[(r1+10)] = f3;
   42393 	r1 = heap32[(r10)];
   42394 	r1 = r1 >> 2;
   42395 	r1 = heap32[(r1+3)];
   42396 	heap32[(g0)] = r8;
   42397 	heap32[(g0+1)] = r0;
   42398 	heap32[(g0+2)] = 1;
   42399 	__FUNCTION_TABLE__[(r1)>>2](i7);
   42400 }
   42401 }
   42402 }
   42403 }
   42404 } while(0);
   42405 	return;
   42406 }
   42407 
   42408 function _ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(sp)
   42409 {
   42410 	var i7;
   42411 	var fp = sp>>2;
   42412 	var r0;
   42413 	var r1;
   42414 	var r2;
   42415 	var r3;
   42416 	var r4;
   42417 	var r5;
   42418 	var r6;
   42419 	var r7;
   42420 	var r8;
   42421 	var r9;
   42422 	var r10;
   42423 	var r11;
   42424 	var r12;
   42425 	var r13;
   42426 	var r14;
   42427 	var f0;
   42428 	var f1;
   42429 	var f2;
   42430 	var f3;
   42431 	var f4;
   42432 	var f5;
   42433 	var f6;
   42434 	var f7;
   42435 	var f8;
   42436 	var f9;
   42437 	var f10;
   42438 	var f11;
   42439 	var f12;
   42440 	var f13;
   42441 	var f14;
   42442 	var f15;
   42443 	var f16;
   42444 	var f17;
   42445 	var f18;
   42446 	var f19;
   42447 	var f20;
   42448 	var f21;
   42449 	var f22;
   42450 	var f23;
   42451 	var f24;
   42452 	var f25;
   42453 	var f26;
   42454 	var f27;
   42455 	var f28;
   42456 	var f29;
   42457 var __label__ = 0;
   42458 	i7 = sp + -1120;var g0 = i7>>2; // save stack
   42459 	r0 = sp + -104;
   42460 	r1 = r0 >> 2;
   42461 	heap32[(r1+2)] = 0;
   42462 	heap32[(r1+3)] = 1065353216;
   42463 	heap32[(r1+4)] = 1065353216;
   42464 	r2 = _ZTV13btSphereShape;
   42465 	heap32[(r1+5)] = 1065353216;
   42466 	r2 = (r2 + 8)|0;
   42467 	heap32[(r1+6)] = 0;
   42468 	heap32[(fp+-26)] = r2;
   42469 	heap32[(r1+1)] = 8;
   42470 	r2 = heap32[(fp+3)];
   42471 	heap32[(r1+7)] = 0;
   42472 	r3 = r2 >> 2;
   42473 	heap32[(r1+11)] = 0;
   42474 	r1 = heap32[(r3+1)];
   42475 	r4 = heap32[(fp)];
   42476 	r5 = heap32[(fp+1)];
   42477 	r6 = heap32[(fp+2)];
   42478 	r7 = heap32[(fp+4)];
   42479 	r8 = heap32[(fp+5)];
   42480 	if(r1 >19) //_LBB248_6
   42481 {
   42482 	r0 = (r1 + -21)|0;
   42483 	if(uint(r0) >uint(8)) //_LBB248_25
   42484 {
   42485 if(!(r1 !=31)) //_LBB248_29
   42486 {
   42487 	r0 = heap32[(r3+4)];
   42488 if(!(r0 <1)) //_LBB248_29
   42489 {
   42490 	r0 = 0;
   42491 _8: while(true){
   42492 	r1 = (r0 * 20)|0;
   42493 	r2 = heap32[(r3+6)];
   42494 	r1 = r1 << 2;
   42495 	r1 = (r2 + r1)|0;
   42496 	r1 = r1 >> 2;
   42497 	r2 = r7 >> 2;
   42498 	f0 = heapFloat[(r1)];
   42499 	f1 = heapFloat[(r2)];
   42500 	f2 = heapFloat[(r1+4)];
   42501 	f3 = heapFloat[(r2+1)];
   42502 	f4 = heapFloat[(r1+1)];
   42503 	f5 = heapFloat[(r1+5)];
   42504 	f6 = f0*f1;
   42505 	f7 = f2*f3;
   42506 	f8 = heapFloat[(r1+8)];
   42507 	f9 = heapFloat[(r2+2)];
   42508 	f10 = heapFloat[(r2+8)];
   42509 	f11 = heapFloat[(r1+2)];
   42510 	f12 = heapFloat[(r2+4)];
   42511 	f13 = heapFloat[(r1+12)];
   42512 	f14 = heapFloat[(r2+9)];
   42513 	f15 = heapFloat[(r1+6)];
   42514 	f16 = heapFloat[(r2+5)];
   42515 	f17 = heapFloat[(r1+13)];
   42516 	f18 = heapFloat[(r1+9)];
   42517 	f19 = heapFloat[(r2+10)];
   42518 	f20 = heapFloat[(r1+10)];
   42519 	f21 = heapFloat[(r2+6)];
   42520 	f22 = heapFloat[(r1+14)];
   42521 	f23 = f4*f1;
   42522 	f24 = f5*f3;
   42523 	f6 = f6+f7;
   42524 	f7 = f8*f9;
   42525 	r1 = heap32[(r1+16)];
   42526 	f25 = heapFloat[(r2+14)];
   42527 	f26 = heapFloat[(r2+13)];
   42528 	f27 = heapFloat[(r2+12)];
   42529 	r2 = sp + -1056;
   42530 	f28 = f11*f1;
   42531 	f29 = f15*f3;
   42532 	f23 = f23+f24;
   42533 	f24 = f18*f9;
   42534 	f6 = f6+f7;
   42535 	r9 = r2 >> 2;
   42536 	f7 = f28+f29;
   42537 	f28 = f20*f9;
   42538 	f23 = f23+f24;
   42539 	heapFloat[(fp+-264)] = f6;
   42540 	f6 = f0*f12;
   42541 	f24 = f2*f16;
   42542 	f7 = f7+f28;
   42543 	heapFloat[(r9+1)] = f23;
   42544 	heapFloat[(r9+2)] = f7;
   42545 	f7 = f4*f12;
   42546 	f23 = f5*f16;
   42547 	f6 = f6+f24;
   42548 	f24 = f8*f21;
   42549 	f28 = f11*f12;
   42550 	f29 = f15*f16;
   42551 	f7 = f7+f23;
   42552 	f23 = f18*f21;
   42553 	f6 = f6+f24;
   42554 	heap32[(r9+3)] = 0;
   42555 	f24 = f28+f29;
   42556 	f28 = f20*f21;
   42557 	f7 = f7+f23;
   42558 	heapFloat[(r9+4)] = f6;
   42559 	f0 = f0*f10;
   42560 	f2 = f2*f14;
   42561 	f6 = f24+f28;
   42562 	heapFloat[(r9+5)] = f7;
   42563 	heapFloat[(r9+6)] = f6;
   42564 	f4 = f4*f10;
   42565 	f5 = f5*f14;
   42566 	f0 = f0+f2;
   42567 	f2 = f8*f19;
   42568 	f6 = f11*f10;
   42569 	f7 = f15*f14;
   42570 	f4 = f4+f5;
   42571 	f5 = f18*f19;
   42572 	f0 = f0+f2;
   42573 	heap32[(r9+7)] = 0;
   42574 	f1 = f1*f13;
   42575 	f2 = f3*f17;
   42576 	f3 = f6+f7;
   42577 	f6 = f20*f19;
   42578 	f4 = f4+f5;
   42579 	heapFloat[(r9+8)] = f0;
   42580 	f0 = f12*f13;
   42581 	f5 = f16*f17;
   42582 	f1 = f1+f2;
   42583 	f2 = f9*f22;
   42584 	f3 = f3+f6;
   42585 	heapFloat[(r9+9)] = f4;
   42586 	f1 = f1+f2;
   42587 	heapFloat[(r9+10)] = f3;
   42588 	f2 = f10*f13;
   42589 	f3 = f14*f17;
   42590 	f0 = f0+f5;
   42591 	f4 = f21*f22;
   42592 	f0 = f0+f4;
   42593 	f2 = f2+f3;
   42594 	f3 = f19*f22;
   42595 	f1 = f1+f27;
   42596 	heap32[(r9+11)] = 0;
   42597 	f2 = f2+f3;
   42598 	f0 = f0+f26;
   42599 	heapFloat[(r9+12)] = f1;
   42600 	f1 = f2+f25;
   42601 	heapFloat[(r9+13)] = f0;
   42602 	heapFloat[(r9+14)] = f1;
   42603 	r10 = r6 >> 2;
   42604 	heap32[(r9+15)] = 0;
   42605 	r9 = sp + -1088;
   42606 	r11 = heap32[(r10+48)];
   42607 	r12 = r9 >> 2;
   42608 	heap32[(r10+48)] = r1;
   42609 	r13 = 1;
   42610 	heap32[(r12+2)] = 0;
   42611 	r14 = -1;
   42612 	heap16[(sp+-1076)>>1] = r13;
   42613 	heap16[(sp+-1074)>>1] = r14;
   42614 	r13 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2;
   42615 	heap32[(r12+4)] = 0;
   42616 	r13 = (r13 + 8)|0;
   42617 	heap32[(fp+-272)] = r13;
   42618 	heap32[(r12+5)] = r8;
   42619 	r14 = r8 >> 2;
   42620 	heap32[(r12+6)] = r0;
   42621 	heap32[(r12+1)] = heap32[(r14+1)];
   42622 	heap32[(g0)] = r4;
   42623 	heap32[(g0+1)] = r5;
   42624 	heap32[(g0+2)] = r6;
   42625 	heap32[(g0+3)] = r1;
   42626 	heap32[(g0+4)] = r2;
   42627 	heap32[(g0+5)] = r9;
   42628 	_ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(i7);
   42629 	r0 = (r0 + 1)|0;
   42630 	heap32[(r10+48)] = r11;
   42631 	heap32[(fp+-272)] = r13;
   42632 	r1 = heap32[(r3+4)];
   42633 if(!(r1 >r0)) //_LBB248_28
   42634 {
   42635 break _8;
   42636 }
   42637 }
   42638 }
   42639 }
   42640 	return;
   42641 }
   42642 else{
   42643 	if(r1 !=21) //_LBB248_12
   42644 {
   42645 	r1 = r7 >> 2;
   42646 	r4 = r4 >> 2;
   42647 	f0 = heapFloat[(r1+12)];
   42648 	f1 = heapFloat[(r1+13)];
   42649 	f2 = heapFloat[(r1+4)];
   42650 	f3 = heapFloat[(r4+13)];
   42651 	f4 = heapFloat[(r1)];
   42652 	f5 = -f0;
   42653 	f6 = heapFloat[(r4+12)];
   42654 	f7 = heapFloat[(r1+5)];
   42655 	f8 = heapFloat[(r1+1)];
   42656 	f9 = f4*f6;
   42657 	f10 = f2*f3;
   42658 	f11 = f4*f5;
   42659 	f12 = f2*f1;
   42660 	f13 = heapFloat[(r1+14)];
   42661 	f14 = heapFloat[(r1+8)];
   42662 	f15 = heapFloat[(r4+14)];
   42663 	r4 = r5 >> 2;
   42664 	f16 = heapFloat[(r1+9)];
   42665 	f17 = heapFloat[(r1+6)];
   42666 	f18 = heapFloat[(r1+2)];
   42667 	r5 = r8 >> 2;
   42668 	f9 = f9+f10;
   42669 	f10 = f14*f15;
   42670 	f11 = f11-f12;
   42671 	f12 = f14*f13;
   42672 	f19 = f8*f6;
   42673 	f20 = f7*f3;
   42674 	f21 = f8*f5;
   42675 	f22 = f7*f1;
   42676 	f23 = heapFloat[(r4+12)];
   42677 	f24 = heapFloat[(r4+13)];
   42678 	f25 = heapFloat[(r1+10)];
   42679 	f26 = heapFloat[(r4+14)];
   42680 	r4 = sp + -960;
   42681 	r7 = heap32[(r5+4)];
   42682 	f9 = f9+f10;
   42683 	f10 = f11-f12;
   42684 	f6 = f18*f6;
   42685 	f3 = f17*f3;
   42686 	f11 = f19+f20;
   42687 	f12 = f16*f15;
   42688 	f5 = f18*f5;
   42689 	f19 = f17*f1;
   42690 	f20 = f21-f22;
   42691 	f21 = f16*f13;
   42692 	f9 = f9+f10;
   42693 	f3 = f6+f3;
   42694 	f6 = f25*f15;
   42695 	f11 = f11+f12;
   42696 	f12 = f20-f21;
   42697 	r0 = r4 >> 2;
   42698 	f5 = f5-f19;
   42699 	f15 = f25*f13;
   42700 	f11 = f11+f12;
   42701 	heapFloat[(r0+1)] = f9;
   42702 	f19 = f4*f23;
   42703 	f20 = f2*f24;
   42704 	f3 = f3+f6;
   42705 	f5 = f5-f15;
   42706 	f3 = f3+f5;
   42707 	heapFloat[(r0+2)] = f11;
   42708 	f6 = f19+f20;
   42709 	f15 = f14*f26;
   42710 	f19 = f8*f23;
   42711 	f20 = f7*f24;
   42712 	f6 = f6+f15;
   42713 	heapFloat[(r0+3)] = f3;
   42714 	f15 = f18*f23;
   42715 	f21 = f17*f24;
   42716 	f19 = f19+f20;
   42717 	f20 = f16*f26;
   42718 	f6 = f6+f10;
   42719 	f10 = f19+f20;
   42720 	heap32[(r0+4)] = 0;
   42721 	f15 = f15+f21;
   42722 	f19 = f25*f26;
   42723 	f15 = f15+f19;
   42724 	f10 = f10+f12;
   42725 	heapFloat[(r0+5)] = f6;
   42726 	f5 = f15+f5;
   42727 	heapFloat[(r0+6)] = f10;
   42728 	heapFloat[(r0+7)] = f5;
   42729 	r9 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0;
   42730 	heap32[(r0+8)] = 0;
   42731 	r9 = (r9 + 8)|0;
   42732 	heap32[(r0+9)] = r7;
   42733 	heap32[(fp+-240)] = r9;
   42734 	heap32[(r0+11)] = r8;
   42735 	heap32[(r0+12)] = r6;
   42736 	heap32[(r0+13)] = r2;
   42737 	heapFloat[(r0+14)] = f4;
   42738 	heapFloat[(r0+15)] = f8;
   42739 	heapFloat[(r0+16)] = f18;
   42740 	heap32[(r0+17)] = heap32[(r1+3)];
   42741 	heapFloat[(r0+18)] = f2;
   42742 	heapFloat[(r0+19)] = f7;
   42743 	heapFloat[(r0+20)] = f17;
   42744 	heap32[(r0+21)] = heap32[(r1+7)];
   42745 	heapFloat[(r0+22)] = f14;
   42746 	heapFloat[(r0+23)] = f16;
   42747 	heapFloat[(r0+24)] = f25;
   42748 	heap32[(r0+25)] = heap32[(r1+11)];
   42749 	heapFloat[(r0+26)] = f0;
   42750 	heapFloat[(r0+27)] = f1;
   42751 	heapFloat[(r0+28)] = f13;
   42752 	heap32[(r0+29)] = heap32[(r1+15)];
   42753 	r1 = sp + -976;
   42754 	heap32[(r0+10)] = heap32[(r5+1)];
   42755 	r5 = r1 >> 2;
   42756 	heapFloat[(fp+-244)] = f9;
   42757 	heapFloat[(r5+1)] = f11;
   42758 	heapFloat[(r5+2)] = f3;
   42759 	heap32[(r5+3)] = 0;
   42760 if(!(f6 >=f9)) //_LBB248_14
   42761 {
   42762 	heapFloat[(fp+-244)] = f6;
   42763 }
   42764 if(!(f10 >=f11)) //_LBB248_16
   42765 {
   42766 	heapFloat[(r5+1)] = f10;
   42767 }
   42768 if(!(f5 >=f3)) //_LBB248_18
   42769 {
   42770 	heapFloat[(r5+2)] = f5;
   42771 }
   42772 	r5 = sp + -992;
   42773 	r6 = r5 >> 2;
   42774 	heapFloat[(fp+-248)] = f9;
   42775 	heapFloat[(r6+1)] = f11;
   42776 	heapFloat[(r6+2)] = f3;
   42777 	heap32[(r6+3)] = 0;
   42778 if(!(f9 >=f6)) //_LBB248_20
   42779 {
   42780 	heapFloat[(fp+-248)] = f6;
   42781 }
   42782 if(!(f11 >=f10)) //_LBB248_22
   42783 {
   42784 	heapFloat[(r6+1)] = f10;
   42785 }
   42786 if(!(f3 >=f5)) //_LBB248_24
   42787 {
   42788 	heapFloat[(r6+2)] = f5;
   42789 }
   42790 	r3 = heap32[(r3)];
   42791 	r3 = r3 >> 2;
   42792 	r3 = heap32[(r3+15)];
   42793 	heap32[(g0)] = r2;
   42794 	heap32[(g0+1)] = r4;
   42795 	heap32[(g0+2)] = r1;
   42796 	heap32[(g0+3)] = r5;
   42797 	r1 = _ZTV18btTriangleCallback;
   42798 	r1 = (r1 + 8)|0;
   42799 	__FUNCTION_TABLE__[(r3)>>2](i7);
   42800 	heap32[(fp+-240)] = r1;
   42801 	return;
   42802 }
   42803 else{
   42804 	r1 = r7 >> 2;
   42805 	r4 = r4 >> 2;
   42806 	f0 = heapFloat[(r1+12)];
   42807 	f1 = heapFloat[(r1+13)];
   42808 	f2 = heapFloat[(r1+4)];
   42809 	f3 = heapFloat[(r4+13)];
   42810 	f4 = heapFloat[(r1)];
   42811 	f5 = heapFloat[(r4+12)];
   42812 	f6 = -f0;
   42813 	f7 = heapFloat[(r1+5)];
   42814 	f8 = heapFloat[(r1+1)];
   42815 	f9 = heapFloat[(r1+14)];
   42816 	f10 = heapFloat[(r1+8)];
   42817 	f11 = heapFloat[(r4+14)];
   42818 	f12 = f4*f5;
   42819 	f13 = f2*f3;
   42820 	f14 = f4*f6;
   42821 	f15 = f2*f1;
   42822 	f16 = heapFloat[(r1+9)];
   42823 	f17 = heapFloat[(r1+6)];
   42824 	f18 = heapFloat[(r1+2)];
   42825 	f19 = f8*f5;
   42826 	f20 = f7*f3;
   42827 	f21 = f8*f6;
   42828 	f22 = f7*f1;
   42829 	f12 = f12+f13;
   42830 	f13 = f10*f11;
   42831 	f14 = f14-f15;
   42832 	f15 = f10*f9;
   42833 	f23 = heapFloat[(r1+10)];
   42834 	f5 = f18*f5;
   42835 	f3 = f17*f3;
   42836 	f6 = f18*f6;
   42837 	f24 = f17*f1;
   42838 	f19 = f19+f20;
   42839 	f20 = f16*f11;
   42840 	f21 = f21-f22;
   42841 	f22 = f16*f9;
   42842 	f12 = f12+f13;
   42843 	f13 = f14-f15;
   42844 	r4 = sp + -704;
   42845 	f12 = f12+f13;
   42846 	f3 = f5+f3;
   42847 	f5 = f23*f11;
   42848 	f6 = f6-f24;
   42849 	f11 = f23*f9;
   42850 	f14 = f19+f20;
   42851 	f15 = f21-f22;
   42852 	r7 = r4 >> 2;
   42853 	heapFloat[(fp+-176)] = f12;
   42854 	f14 = f14+f15;
   42855 	f3 = f3+f5;
   42856 	f5 = f6-f11;
   42857 	heapFloat[(r7+1)] = f14;
   42858 	f3 = f3+f5;
   42859 	heapFloat[(r7+2)] = f3;
   42860 	r5 = r5 >> 2;
   42861 	heap32[(r7+3)] = 0;
   42862 	f6 = heapFloat[(r5+12)];
   42863 	f11 = heapFloat[(r5+13)];
   42864 	f19 = heapFloat[(r5+14)];
   42865 	f20 = f4*f6;
   42866 	f21 = f2*f11;
   42867 	f22 = f8*f6;
   42868 	f24 = f7*f11;
   42869 	f20 = f20+f21;
   42870 	f21 = f10*f19;
   42871 	f20 = f20+f21;
   42872 	f6 = f18*f6;
   42873 	f11 = f17*f11;
   42874 	f21 = f22+f24;
   42875 	f22 = f16*f19;
   42876 	r5 = sp + -720;
   42877 	f21 = f21+f22;
   42878 	f13 = f20+f13;
   42879 	f6 = f6+f11;
   42880 	f11 = f23*f19;
   42881 	f6 = f6+f11;
   42882 	r7 = r5 >> 2;
   42883 	heapFloat[(fp+-180)] = f13;
   42884 	f11 = f21+f15;
   42885 	heapFloat[(r7+1)] = f11;
   42886 	f5 = f6+f5;
   42887 	heapFloat[(r7+2)] = f5;
   42888 	r0 = sp + -840;
   42889 	r9 = r8 >> 2;
   42890 	heap32[(r7+3)] = 0;
   42891 	r7 = r0 >> 2;
   42892 	r10 = heap32[(r9+4)];
   42893 	heapFloat[(r7+1)] = f12;
   42894 	heapFloat[(r7+2)] = f14;
   42895 	heapFloat[(r7+3)] = f3;
   42896 	heap32[(r7+4)] = 0;
   42897 	heapFloat[(r7+5)] = f13;
   42898 	heapFloat[(r7+6)] = f11;
   42899 	heapFloat[(r7+7)] = f5;
   42900 	r11 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback;
   42901 	heap32[(r7+8)] = 0;
   42902 	r11 = (r11 + 8)|0;
   42903 	heap32[(r7+9)] = r10;
   42904 	heap32[(fp+-210)] = r11;
   42905 	heap32[(r7+11)] = r8;
   42906 	heap32[(r7+12)] = r6;
   42907 	heap32[(r7+13)] = r2;
   42908 	heapFloat[(r7+14)] = f4;
   42909 	heapFloat[(r7+15)] = f8;
   42910 	heapFloat[(r7+16)] = f18;
   42911 	heap32[(r7+17)] = heap32[(r1+3)];
   42912 	heapFloat[(r7+18)] = f2;
   42913 	heapFloat[(r7+19)] = f7;
   42914 	heapFloat[(r7+20)] = f17;
   42915 	heap32[(r7+21)] = heap32[(r1+7)];
   42916 	heapFloat[(r7+22)] = f10;
   42917 	heapFloat[(r7+23)] = f16;
   42918 	heapFloat[(r7+24)] = f23;
   42919 	heap32[(r7+25)] = heap32[(r1+11)];
   42920 	heapFloat[(r7+26)] = f0;
   42921 	heapFloat[(r7+27)] = f1;
   42922 	heapFloat[(r7+28)] = f9;
   42923 	heap32[(r7+29)] = heap32[(r1+15)];
   42924 	r1 = _ZTVZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback;
   42925 	heap32[(r7+10)] = heap32[(r9+1)];
   42926 	r2 = sp + -48;
   42927 	r6 = heap32[(r3+12)];
   42928 	r1 = (r1 + 8)|0;
   42929 	r7 = r2 >> 2;
   42930 	heap32[(fp+-12)] = r1;
   42931 	heap32[(r7+1)] = r6;
   42932 	heap32[(r7+2)] = r0;
   42933 	r1 = heap32[(r3+13)];
   42934 	r3 = sp + -32;
   42935 	r6 = r3 >> 2;
   42936 	heap32[(fp+-8)] = 0;
   42937 	heap32[(r6+1)] = 0;
   42938 	heap32[(r6+2)] = 0;
   42939 	r7 = sp + -16;
   42940 	heap32[(r6+3)] = 0;
   42941 	r6 = r7 >> 2;
   42942 	heap32[(fp+-4)] = 0;
   42943 	heap32[(r6+1)] = 0;
   42944 	heap32[(r6+2)] = 0;
   42945 	heap32[(r6+3)] = 0;
   42946 	r6 = heapU8[r1+60];
   42947 	if(r6 ==0) //_LBB248_10
   42948 {
   42949 	heap32[(g0)] = r1;
   42950 	heap32[(g0+1)] = r2;
   42951 	heap32[(g0+2)] = r4;
   42952 	heap32[(g0+3)] = r5;
   42953 	heap32[(g0+4)] = r7;
   42954 	heap32[(g0+5)] = r3;
   42955 	_ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i7);
   42956 }
   42957 else{
   42958 	r6 = r1 >> 2;
   42959 	r6 = heap32[(r6+14)];
   42960 	heap32[(g0)] = r1;
   42961 	heap32[(g0+1)] = r2;
   42962 	heap32[(g0+2)] = r4;
   42963 	heap32[(g0+3)] = r5;
   42964 	heap32[(g0+4)] = r7;
   42965 	heap32[(g0+5)] = r3;
   42966 	heap32[(g0+6)] = r6;
   42967 	_ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i7);
   42968 }
   42969 	r1 = _ZTV18btTriangleCallback;
   42970 	r1 = (r1 + 8)|0;
   42971 	heap32[(fp+-210)] = r1;
   42972 	return;
   42973 }
   42974 }
   42975 }
   42976 else{
   42977 	r1 = _ZTVN12btConvexCast10CastResultE;
   42978 	r3 = sp + -280;
   42979 	r1 = (r1 + 8)|0;
   42980 	r9 = r3 >> 2;
   42981 	heap32[(fp+-70)] = r1;
   42982 	heap32[(r9+42)] = 0;
   42983 	r1 = sp + -640;
   42984 	r10 = r8 >> 2;
   42985 	heap32[(r9+43)] = 0;
   42986 	r11 = r1 >> 2;
   42987 	heap32[(r9+41)] = heap32[(r10+1)];
   42988 	r12 = _ZTV22btSubsimplexConvexCast;
   42989 	r13 = 0;
   42990 	heap32[(r11+77)] = 953267991;
   42991 	r11 = sp + -656;
   42992 	r12 = (r12 + 8)|0;
   42993 	heap8[sp+-308] = r13;
   42994 	r13 = r11 >> 2;
   42995 	heap32[(fp+-164)] = r12;
   42996 	heap32[(r13+1)] = r1;
   42997 	heap32[(r13+2)] = r0;
   42998 	heap32[(r13+3)] = r2;
   42999 	heap32[(g0)] = r11;
   43000 	heap32[(g0+1)] = r4;
   43001 	heap32[(g0+2)] = r5;
   43002 	heap32[(g0+3)] = r7;
   43003 	heap32[(g0+4)] = r7;
   43004 	heap32[(g0+5)] = r3;
   43005 	_ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7);
   43006 	r1 = r_g0;
   43007 if(!(r1 ==0)) //_LBB248_5
   43008 {
   43009 	f0 = heapFloat[(r9+33)];
   43010 	f1 = heapFloat[(r9+34)];
   43011 	f2 = heapFloat[(r9+35)];
   43012 	f3 = f0*f0;
   43013 	f4 = f1*f1;
   43014 	f3 = f3+f4;
   43015 	f4 = f2*f2;
   43016 	f3 = f3+f4;
   43017 	f4 =   9.9999997473787516e-005;
   43018 if(!(f3 <=f4)) //_LBB248_5
   43019 {
   43020 	f3 = heapFloat[(r9+41)];
   43021 	f4 = heapFloat[(r10+1)];
   43022 if(!(f3 >=f4)) //_LBB248_5
   43023 {
   43024 	r1 = r4 >> 2;
   43025 	f4 = heapFloat[(r1+4)];
   43026 	f5 = heapFloat[(r1)];
   43027 	f6 = heapFloat[(r1+5)];
   43028 	f7 = heapFloat[(r1+1)];
   43029 	f8 = heapFloat[(r1+8)];
   43030 	f9 = heapFloat[(r1+9)];
   43031 	f4 = f4*f0;
   43032 	f6 = f6*f1;
   43033 	f10 = heapFloat[(r1+6)];
   43034 	f11 = heapFloat[(r1+2)];
   43035 	f5 = f5*f0;
   43036 	f7 = f7*f1;
   43037 	f12 = heapFloat[(r1+10)];
   43038 	f0 = f8*f0;
   43039 	f1 = f9*f1;
   43040 	f4 = f4+f6;
   43041 	f6 = f10*f2;
   43042 	f5 = f5+f7;
   43043 	f7 = f11*f2;
   43044 	f4 = f4+f6;
   43045 	f5 = f5+f7;
   43046 	f0 = f0+f1;
   43047 	f1 = f12*f2;
   43048 	f0 = f0+f1;
   43049 	f1 = f5*f5;
   43050 	f2 = f4*f4;
   43051 	heap32[(r9+36)] = 0;
   43052 	f1 = f1+f2;
   43053 	f2 = f0*f0;
   43054 	f1 = f1+f2;
   43055 	heapFloat[(g0)] = f1;
   43056 	f1 =                         1;
   43057 	sqrtf(i7);
   43058 	f1 = f1/f_g0;
   43059 	f2 = f5*f1;
   43060 	f4 = f4*f1;
   43061 	heapFloat[(r9+33)] = f2;
   43062 	f0 = f0*f1;
   43063 	heapFloat[(r9+34)] = f4;
   43064 	r1 = sp + -688;
   43065 	heapFloat[(r9+35)] = f0;
   43066 	r2 = r1 >> 2;
   43067 	heap32[(fp+-172)] = r6;
   43068 	heap32[(r2+1)] = 0;
   43069 	heapFloat[(r2+2)] = f2;
   43070 	heapFloat[(r2+3)] = f4;
   43071 	heapFloat[(r2+4)] = f0;
   43072 	heap32[(r2+5)] = 0;
   43073 	heapFloat[(r2+6)] = f3;
   43074 	r2 = heap32[(r10)];
   43075 	r2 = r2 >> 2;
   43076 	r2 = heap32[(r2+3)];
   43077 	heap32[(g0)] = r8;
   43078 	heap32[(g0+1)] = r1;
   43079 	heap32[(g0+2)] = 1;
   43080 	__FUNCTION_TABLE__[(r2)>>2](i7);
   43081 }
   43082 }
   43083 }
   43084 	r1 = _ZTV12btConvexCast;
   43085 	r1 = (r1 + 8)|0;
   43086 	heap32[(fp+-164)] = r1;
   43087 	return;
   43088 }
   43089 }
   43090 
   43091 function _ZN22btCompoundLeafCallbackD1Ev(sp)
   43092 {
   43093 	var i7;
   43094 	var fp = sp>>2;
   43095 	var r0;
   43096 	var r1;
   43097 var __label__ = 0;
   43098 	i7 = sp + 0;var g0 = i7>>2; // save stack
   43099 	r0 = heap32[(fp)];
   43100 	r1 = _ZTV22btCompoundLeafCallback;
   43101 	r0 = r0 >> 2;
   43102 	r1 = (r1 + 8)|0;
   43103 	heap32[(r0)] = r1;
   43104 	return;
   43105 }
   43106 
   43107 function _ZN22btCompoundLeafCallbackD0Ev(sp)
   43108 {
   43109 	var i7;
   43110 	var fp = sp>>2;
   43111 	var r0;
   43112 	var r1;
   43113 	var r2;
   43114 var __label__ = 0;
   43115 	i7 = sp + -8;var g0 = i7>>2; // save stack
   43116 	r0 = heap32[(fp)];
   43117 	r1 = _ZTV22btCompoundLeafCallback;
   43118 	r2 = r0 >> 2;
   43119 	r1 = (r1 + 8)|0;
   43120 	heap32[(r2)] = r1;
   43121 	heap32[(g0)] = r0;
   43122 	_ZdlPv(i7);
   43123 	return;
   43124 }
   43125 
   43126 function _ZN22btCompoundLeafCallback7ProcessEPK10btDbvtNode(sp)
   43127 {
   43128 	var i7;
   43129 	var fp = sp>>2;
   43130 	var r0;
   43131 	var r1;
   43132 	var r2;
   43133 	var r3;
   43134 	var r4;
   43135 	var r5;
   43136 	var r6;
   43137 	var r7;
   43138 	var r8;
   43139 var __label__ = 0;
   43140 	i7 = sp + -136;var g0 = i7>>2; // save stack
   43141 	r0 = heap32[(fp)];
   43142 	r1 = r0 >> 2;
   43143 	r2 = heap32[(r1+1)];
   43144 	r3 = heap32[(fp+1)];
   43145 	r2 = r2 >> 2;
   43146 	r2 = heap32[(r2+48)];
   43147 	r4 = r3 >> 2;
   43148 	r4 = heap32[(r4+9)];
   43149 	r2 = r2 >> 2;
   43150 	r2 = heap32[(r2+6)];
   43151 	r5 = (r4 * 80)|0;
   43152 	r6 = heap32[(r1+4)];
   43153 	r2 = (r2 + r5)|0;
   43154 	r5 = r6 >> 2;
   43155 	r2 = r2 >> 2;
   43156 	r5 = heap32[(r5+5)];
   43157 	r2 = heap32[(r2+16)];
   43158 if(!(r5 ==0)) //_LBB251_3
   43159 {
   43160 	r6 = r5 >> 2;
   43161 	r6 = heap32[(r6)];
   43162 	r6 = r6 >> 2;
   43163 	r6 = heap32[(r6+12)];
   43164 	heap32[(g0)] = r5;
   43165 	__FUNCTION_TABLE__[(r6)>>2](i7);
   43166 	r5 = r_g0 & 2;
   43167 if(!(r5 ==0)) //_LBB251_3
   43168 {
   43169 	r5 = heap32[(r1+1)];
   43170 	r6 = sp + -112;
   43171 	r5 = r5 >> 2;
   43172 	r7 = r6 >> 2;
   43173 	heap32[(fp+-28)] = heap32[(r5+1)];
   43174 	heap32[(r7+1)] = heap32[(r5+2)];
   43175 	heap32[(r7+2)] = heap32[(r5+3)];
   43176 	heap32[(r7+3)] = heap32[(r5+4)];
   43177 	heap32[(r7+4)] = heap32[(r5+5)];
   43178 	heap32[(r7+5)] = heap32[(r5+6)];
   43179 	heap32[(r7+6)] = heap32[(r5+7)];
   43180 	heap32[(r7+7)] = heap32[(r5+8)];
   43181 	heap32[(r7+8)] = heap32[(r5+9)];
   43182 	heap32[(r7+9)] = heap32[(r5+10)];
   43183 	heap32[(r7+10)] = heap32[(r5+11)];
   43184 	heap32[(r7+11)] = heap32[(r5+12)];
   43185 	heap32[(r7+12)] = heap32[(r5+13)];
   43186 	heap32[(r7+13)] = heap32[(r5+14)];
   43187 	heap32[(r7+14)] = heap32[(r5+15)];
   43188 	heap32[(r7+15)] = heap32[(r5+16)];
   43189 	r5 = (r3 + 16)|0;
   43190 	r7 = sp + -32;
   43191 	r8 = sp + -48;
   43192 	heap32[(g0)] = r3;
   43193 	heap32[(g0+1)] = r5;
   43194 	heap32[(g0+2)] = 0;
   43195 	heap32[(g0+3)] = r6;
   43196 	heap32[(g0+4)] = r7;
   43197 	heap32[(g0+5)] = r8;
   43198 	_Z15btTransformAabbRK9btVector3S1_fRK11btTransformRS_S5_(i7);
   43199 	r1 = heap32[(r1+4)];
   43200 	r1 = r1 >> 2;
   43201 	r3 = heap32[(r1+5)];
   43202 	r3 = r3 >> 2;
   43203 	r3 = heap32[(r3)];
   43204 	r3 = r3 >> 2;
   43205 	r3 = heap32[(r3+13)];
   43206 	r5 = sp + -16;
   43207 	r6 = r5 >> 2;
   43208 	heap32[(fp+-4)] = 1065353216;
   43209 	heap32[(r6+1)] = 0;
   43210 	heap32[(r6+2)] = 0;
   43211 	heap32[(r6+3)] = 0;
   43212 	r1 = heap32[(r1+5)];
   43213 	heap32[(g0)] = r1;
   43214 	heap32[(g0+1)] = r7;
   43215 	heap32[(g0+2)] = r8;
   43216 	heap32[(g0+3)] = r5;
   43217 	__FUNCTION_TABLE__[(r3)>>2](i7);
   43218 }
   43219 }
   43220 	heap32[(g0)] = r0;
   43221 	heap32[(g0+1)] = r2;
   43222 	heap32[(g0+2)] = r4;
   43223 	_ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i7);
   43224 	return;
   43225 }
   43226 
   43227 function _ZN28btCompoundCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
   43228 {
   43229 	var i7;
   43230 	var fp = sp>>2;
   43231 	var r0;
   43232 	var r1;
   43233 	var r2;
   43234 	var r3;
   43235 	var r4;
   43236 var __label__ = 0;
   43237 	i7 = sp + -8;var g0 = i7>>2; // save stack
   43238 	r0 = heap32[(fp)];
   43239 	r0 = r0 >> 2;
   43240 	r1 = heap32[(r0+3)];
   43241 if(!(r1 <1)) //_LBB252_5
   43242 {
   43243 	r1 = heap32[(fp+1)];
   43244 	r2 = 0;
   43245 _3: while(true){
   43246 	r3 = heap32[(r0+5)];
   43247 	r4 = r2 << 2;
   43248 	r3 = (r3 + r4)|0;
   43249 	r3 = r3 >> 2;
   43250 	r3 = heap32[(r3)];
   43251 if(!(r3 ==0)) //_LBB252_4
   43252 {
   43253 	r4 = r3 >> 2;
   43254 	r4 = heap32[(r4)];
   43255 	r4 = r4 >> 2;
   43256 	r4 = heap32[(r4+4)];
   43257 	heap32[(g0)] = r3;
   43258 	heap32[(g0+1)] = r1;
   43259 	__FUNCTION_TABLE__[(r4)>>2](i7);
   43260 }
   43261 	r2 = (r2 + 1)|0;
   43262 	r3 = heap32[(r0+3)];
   43263 	if(r3 >r2) //_LBB252_2
   43264 {
   43265 continue _3;
   43266 }
   43267 else{
   43268 break _3;
   43269 }
   43270 }
   43271 }
   43272 	return;
   43273 }
   43274 
   43275 function _ZN28btCompoundCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
   43276 {
   43277 	var i7;
   43278 	var fp = sp>>2;
   43279 	var r0;
   43280 	var r1;
   43281 	var r2;
   43282 	var r3;
   43283 	var r4;
   43284 	var r5;
   43285 	var r6;
   43286 	var r7;
   43287 	var r8;
   43288 	var r9;
   43289 	var r10;
   43290 	var r11;
   43291 	var f0;
   43292 	var f1;
   43293 	var f2;
   43294 	var f3;
   43295 	var f4;
   43296 	var f5;
   43297 	var f6;
   43298 	var f7;
   43299 	var f8;
   43300 	var f9;
   43301 	var f10;
   43302 	var f11;
   43303 	var f12;
   43304 	var f13;
   43305 	var f14;
   43306 	var f15;
   43307 	var f16;
   43308 	var f17;
   43309 	var f18;
   43310 	var f19;
   43311 	var f20;
   43312 	var f21;
   43313 	var f22;
   43314 	var f23;
   43315 	var f24;
   43316 	var f25;
   43317 	var f26;
   43318 	var f27;
   43319 	var f28;
   43320 	var f29;
   43321 	var f30;
   43322 var __label__ = 0;
   43323 	i7 = sp + -40;var g0 = i7>>2; // save stack
   43324 	r0 = heap32[(fp)];
   43325 	r1 = heapU8[r0+28];
   43326 	r2 = heap32[(fp+1)];
   43327 	r3 = heap32[(fp+2)];
   43328 	r4 = r1 == 0 ? r2 : r3;
   43329 	r5 = r4 >> 2;
   43330 	r6 = heap32[(r5+48)];
   43331 	r7 = r6 >> 2;
   43332 	r8 = heap32[(r7+1)];
   43333 	if(r8 ==31) //_LBB253_2
   43334 {
   43335 	r0 = r0 >> 2;
   43336 	r8 = heap32[(r0+3)];
   43337 _3: do {
   43338 	if(r8 >0) //_LBB253_4
   43339 {
   43340 	r9 = heap32[(fp+3)];
   43341 	r10 = heap32[(fp+4)];
   43342 	r1 = r1 == 0 ? r3 : r2;
   43343 	r2 = 0;
   43344 	f0 =                         1;
   43345 _5: while(true){
   43346 	r3 = (r2 * 20)|0;
   43347 	r11 = heap32[(r7+6)];
   43348 	r3 = r3 << 2;
   43349 	r3 = (r11 + r3)|0;
   43350 	r3 = r3 >> 2;
   43351 	f1 = heapFloat[(r3)];
   43352 	f2 = heapFloat[(r5+1)];
   43353 	f3 = heapFloat[(r3+4)];
   43354 	f4 = heapFloat[(r5+2)];
   43355 	f5 = heapFloat[(r3+1)];
   43356 	f6 = heapFloat[(r3+5)];
   43357 	f7 = f1*f2;
   43358 	f8 = f3*f4;
   43359 	f9 = heapFloat[(r3+8)];
   43360 	f10 = heapFloat[(r5+3)];
   43361 	f11 = heapFloat[(r5+10)];
   43362 	f12 = heapFloat[(r3+13)];
   43363 	f13 = heapFloat[(r5+6)];
   43364 	f14 = heapFloat[(r3+6)];
   43365 	f15 = heapFloat[(r5+9)];
   43366 	f16 = heapFloat[(r3+12)];
   43367 	f17 = heapFloat[(r5+5)];
   43368 	f18 = heapFloat[(r3+2)];
   43369 	f19 = heapFloat[(r3+14)];
   43370 	f20 = heapFloat[(r5+11)];
   43371 	f21 = heapFloat[(r3+10)];
   43372 	f22 = heapFloat[(r5+7)];
   43373 	f23 = heapFloat[(r3+9)];
   43374 	r3 = heap32[(r3+16)];
   43375 	f24 = f5*f2;
   43376 	f25 = f6*f4;
   43377 	f7 = f7+f8;
   43378 	f8 = f9*f10;
   43379 	f26 = heapFloat[(r5+16)];
   43380 	heapFloat[(fp+-1)] = f26;
   43381 	f27 = heapFloat[(r5+15)];
   43382 	f28 = heapFloat[(r5+14)];
   43383 	f29 = heapFloat[(r5+13)];
   43384 	f26 = heapFloat[(r5+12)];
   43385 	heapFloat[(fp+-2)] = f26;
   43386 	f26 = heapFloat[(r5+8)];
   43387 	heapFloat[(fp+-3)] = f26;
   43388 	f26 = heapFloat[(r5+4)];
   43389 	heapFloat[(fp+-4)] = f26;
   43390 	f30 = f18*f2;
   43391 	f26 = f14*f4;
   43392 	f24 = f24+f25;
   43393 	f25 = f23*f10;
   43394 	f7 = f7+f8;
   43395 	f8 = f30+f26;
   43396 	f26 = f21*f10;
   43397 	f24 = f24+f25;
   43398 	heapFloat[(r5+1)] = f7;
   43399 	f7 = f1*f17;
   43400 	f25 = f3*f13;
   43401 	f8 = f8+f26;
   43402 	heapFloat[(r5+2)] = f24;
   43403 	heapFloat[(r5+3)] = f8;
   43404 	f8 = f5*f17;
   43405 	f24 = f6*f13;
   43406 	f7 = f7+f25;
   43407 	f25 = f9*f22;
   43408 	f26 = f18*f17;
   43409 	f30 = f14*f13;
   43410 	f8 = f8+f24;
   43411 	f24 = f23*f22;
   43412 	f7 = f7+f25;
   43413 	heap32[(r5+4)] = 0;
   43414 	f25 = f26+f30;
   43415 	f26 = f21*f22;
   43416 	f8 = f8+f24;
   43417 	heapFloat[(r5+5)] = f7;
   43418 	f1 = f1*f15;
   43419 	f3 = f3*f11;
   43420 	f7 = f25+f26;
   43421 	heapFloat[(r5+6)] = f8;
   43422 	heapFloat[(r5+7)] = f7;
   43423 	f5 = f5*f15;
   43424 	f6 = f6*f11;
   43425 	f1 = f1+f3;
   43426 	f3 = f9*f20;
   43427 	f7 = f18*f15;
   43428 	f8 = f14*f11;
   43429 	f5 = f5+f6;
   43430 	f6 = f23*f20;
   43431 	f1 = f1+f3;
   43432 	heap32[(r5+8)] = 0;
   43433 	f3 = f2*f16;
   43434 	f9 = f4*f12;
   43435 	f7 = f7+f8;
   43436 	f8 = f21*f20;
   43437 	f5 = f5+f6;
   43438 	heapFloat[(r5+9)] = f1;
   43439 	f1 = f17*f16;
   43440 	f6 = f13*f12;
   43441 	f3 = f3+f9;
   43442 	f9 = f10*f19;
   43443 	f7 = f7+f8;
   43444 	heapFloat[(r5+10)] = f5;
   43445 	f3 = f3+f9;
   43446 	heapFloat[(r5+11)] = f7;
   43447 	f5 = f15*f16;
   43448 	f7 = f11*f12;
   43449 	f1 = f1+f6;
   43450 	f6 = f22*f19;
   43451 	f1 = f1+f6;
   43452 	f5 = f5+f7;
   43453 	f6 = f20*f19;
   43454 	f3 = f3+f29;
   43455 	heap32[(r5+12)] = 0;
   43456 	f5 = f5+f6;
   43457 	f1 = f1+f28;
   43458 	heapFloat[(r5+13)] = f3;
   43459 	f3 = f5+f27;
   43460 	heapFloat[(r5+14)] = f1;
   43461 	heapFloat[(r5+15)] = f3;
   43462 	heap32[(r5+16)] = 0;
   43463 	heap32[(r5+48)] = r3;
   43464 	r3 = heap32[(r0+5)];
   43465 	r11 = r2 << 2;
   43466 	r3 = (r3 + r11)|0;
   43467 	r3 = r3 >> 2;
   43468 	r3 = heap32[(r3)];
   43469 	r11 = r3 >> 2;
   43470 	r11 = heap32[(r11)];
   43471 	r11 = r11 >> 2;
   43472 	r11 = heap32[(r11+3)];
   43473 	heap32[(g0)] = r3;
   43474 	heap32[(g0+1)] = r4;
   43475 	heap32[(g0+2)] = r1;
   43476 	heap32[(g0+3)] = r9;
   43477 	heap32[(g0+4)] = r10;
   43478 	__FUNCTION_TABLE__[(r11)>>2](i7);
   43479 	heap32[(r5+48)] = r6;
   43480 	heapFloat[(r5+1)] = f2;
   43481 	heapFloat[(r5+2)] = f4;
   43482 	heapFloat[(r5+3)] = f10;
   43483 	f26 = heapFloat[(fp+-4)];
   43484 	heapFloat[(r5+4)] = f26;
   43485 	heapFloat[(r5+5)] = f17;
   43486 	heapFloat[(r5+6)] = f13;
   43487 	heapFloat[(r5+7)] = f22;
   43488 	f26 = heapFloat[(fp+-3)];
   43489 	heapFloat[(r5+8)] = f26;
   43490 	heapFloat[(r5+9)] = f15;
   43491 	heapFloat[(r5+10)] = f11;
   43492 	heapFloat[(r5+11)] = f20;
   43493 	f26 = heapFloat[(fp+-2)];
   43494 	heapFloat[(r5+12)] = f26;
   43495 	heapFloat[(r5+13)] = f29;
   43496 	heapFloat[(r5+14)] = f28;
   43497 	r2 = (r2 + 1)|0;
   43498 	f0 = f_g0 < f0 ? f_g0 : f0;
   43499 	heapFloat[(r5+15)] = f27;
   43500 	f26 = heapFloat[(fp+-1)];
   43501 	heapFloat[(r5+16)] = f26;
   43502 if(!(r8 !=r2)) //_LBB253_5
   43503 {
   43504 break _3;
   43505 }
   43506 }
   43507 }
   43508 else{
   43509 	f0 =                         1;
   43510 }
   43511 } while(0);
   43512 	f_g0 = f0;
   43513 	return;
   43514 }
   43515 else{
   43516 	r0 = _2E_str99;
   43517 	r1 = _2E_str1100;
   43518 	heap32[(g0)] = r0;
   43519 	heap32[(g0+1)] = r1;
   43520 	heap32[(g0+2)] = 308;
   43521 	_assert(i7);
   43522 }
   43523 }
   43524 
   43525 function _Z15btTransformAabbRK9btVector3S1_fRK11btTransformRS_S5_(sp)
   43526 {
   43527 	var i7;
   43528 	var fp = sp>>2;
   43529 	var r0;
   43530 	var r1;
   43531 	var r2;
   43532 	var f0;
   43533 	var f1;
   43534 	var f2;
   43535 	var f3;
   43536 	var f4;
   43537 	var f5;
   43538 	var f6;
   43539 	var f7;
   43540 	var f8;
   43541 	var f9;
   43542 	var f10;
   43543 	var f11;
   43544 	var f12;
   43545 	var f13;
   43546 	var f14;
   43547 	var f15;
   43548 	var f16;
   43549 	var f17;
   43550 	var f18;
   43551 	var f19;
   43552 	var f20;
   43553 	var f21;
   43554 	var f22;
   43555 	var f23;
   43556 var __label__ = 0;
   43557 	i7 = sp + -16;var g0 = i7>>2; // save stack
   43558 	r0 = heap32[(fp)];
   43559 	r1 = heap32[(fp+1)];
   43560 	r0 = r0 >> 2;
   43561 	r1 = r1 >> 2;
   43562 	f0 = heapFloat[(r0)];
   43563 	f1 = heapFloat[(r1)];
   43564 	if(f0 <=f1) //_LBB254_2
   43565 {
   43566 	f2 = heapFloat[(r0+1)];
   43567 	f3 = heapFloat[(r1+1)];
   43568 	if(f2 <=f3) //_LBB254_4
   43569 {
   43570 	f4 = heapFloat[(r0+2)];
   43571 	f5 = heapFloat[(r1+2)];
   43572 	if(f4 <=f5) //_LBB254_6
   43573 {
   43574 	f6 = heapFloat[(fp+2)];
   43575 	r0 = heap32[(fp+3)];
   43576 	r1 = heap32[(fp+4)];
   43577 	r2 = heap32[(fp+5)];
   43578 	f7 = f1-f0;
   43579 	f8 =                       0.5;
   43580 	f9 = f3-f2;
   43581 	f10 = f5-f4;
   43582 	r0 = r0 >> 2;
   43583 	f4 = f5+f4;
   43584 	f2 = f3+f2;
   43585 	f0 = f1+f0;
   43586 	f1 = f7*f8;
   43587 	f3 = f9*f8;
   43588 	f5 = f10*f8;
   43589 	f7 = heapFloat[(r0+10)];
   43590 	f1 = f1+f6;
   43591 	f3 = f3+f6;
   43592 	f5 = f5+f6;
   43593 	f4 = f4*f8;
   43594 	f2 = f2*f8;
   43595 	f0 = f0*f8;
   43596 	f6 =                         0;
   43597 	if(f7 <f6) //_LBB254_8
   43598 {
   43599 	f8 = -f7;
   43600 }
   43601 else{
   43602 	f8 = f7;
   43603 }
   43604 	f9 = heapFloat[(r0+9)];
   43605 	if(f9 <f6) //_LBB254_11
   43606 {
   43607 	f10 = -f9;
   43608 }
   43609 else{
   43610 	f10 = f9;
   43611 }
   43612 	f11 = heapFloat[(r0+8)];
   43613 	if(f11 <f6) //_LBB254_14
   43614 {
   43615 	f12 = -f11;
   43616 }
   43617 else{
   43618 	f12 = f11;
   43619 }
   43620 	f13 = heapFloat[(r0+6)];
   43621 	if(f13 <f6) //_LBB254_17
   43622 {
   43623 	f14 = -f13;
   43624 }
   43625 else{
   43626 	f14 = f13;
   43627 }
   43628 	f15 = heapFloat[(r0+5)];
   43629 	if(f15 <f6) //_LBB254_20
   43630 {
   43631 	f16 = -f15;
   43632 }
   43633 else{
   43634 	f16 = f15;
   43635 }
   43636 	f17 = heapFloat[(r0+4)];
   43637 	if(f17 <f6) //_LBB254_23
   43638 {
   43639 	f18 = -f17;
   43640 }
   43641 else{
   43642 	f18 = f17;
   43643 }
   43644 	f19 = heapFloat[(r0+2)];
   43645 	if(f19 <f6) //_LBB254_26
   43646 {
   43647 	f20 = -f19;
   43648 }
   43649 else{
   43650 	f20 = f19;
   43651 }
   43652 	f21 = heapFloat[(r0+1)];
   43653 	if(f21 <f6) //_LBB254_29
   43654 {
   43655 	f22 = -f21;
   43656 }
   43657 else{
   43658 	f22 = f21;
   43659 }
   43660 	f23 = heapFloat[(r0)];
   43661 	if(f23 <f6) //_LBB254_32
   43662 {
   43663 	f6 = -f23;
   43664 }
   43665 else{
   43666 	f6 = f23;
   43667 }
   43668 	f23 = f23*f0;
   43669 	f21 = f21*f2;
   43670 	f17 = f17*f0;
   43671 	f15 = f15*f2;
   43672 	f21 = f23+f21;
   43673 	f19 = f19*f4;
   43674 	f6 = f6*f1;
   43675 	f22 = f22*f3;
   43676 	f0 = f11*f0;
   43677 	f2 = f9*f2;
   43678 	f9 = f17+f15;
   43679 	f11 = f13*f4;
   43680 	f13 = f18*f1;
   43681 	f15 = f16*f3;
   43682 	f16 = f21+f19;
   43683 	f17 = heapFloat[(r0+12)];
   43684 	f6 = f6+f22;
   43685 	f18 = f20*f5;
   43686 	f0 = f0+f2;
   43687 	f2 = f7*f4;
   43688 	f1 = f12*f1;
   43689 	f3 = f10*f3;
   43690 	f4 = f9+f11;
   43691 	f7 = heapFloat[(r0+13)];
   43692 	f9 = heapFloat[(r0+14)];
   43693 	f10 = f13+f15;
   43694 	f11 = f14*f5;
   43695 	f12 = f16+f17;
   43696 	f6 = f6+f18;
   43697 	f0 = f0+f2;
   43698 	r0 = r1 >> 2;
   43699 	f1 = f1+f3;
   43700 	f2 = f8*f5;
   43701 	f3 = f4+f7;
   43702 	f4 = f10+f11;
   43703 	f5 = f12-f6;
   43704 	f0 = f0+f9;
   43705 	f1 = f1+f2;
   43706 	f2 = f3-f4;
   43707 	heapFloat[(r0)] = f5;
   43708 	f5 = f0-f1;
   43709 	heapFloat[(r0+1)] = f2;
   43710 	heapFloat[(r0+2)] = f5;
   43711 	r1 = r2 >> 2;
   43712 	f2 = f12+f6;
   43713 	heap32[(r0+3)] = 0;
   43714 	f3 = f3+f4;
   43715 	heapFloat[(r1)] = f2;
   43716 	f0 = f0+f1;
   43717 	heapFloat[(r1+1)] = f3;
   43718 	heapFloat[(r1+2)] = f0;
   43719 	heap32[(r1+3)] = 0;
   43720 	return;
   43721 }
   43722 else{
   43723 	r0 = _2E_str5104;
   43724 	r1 = _2E_str3102;
   43725 	heap32[(g0)] = r0;
   43726 	heap32[(g0+1)] = r1;
   43727 	heap32[(g0+2)] = 199;
   43728 	_assert(i7);
   43729 }
   43730 }
   43731 else{
   43732 	r0 = _2E_str4103;
   43733 	r1 = _2E_str3102;
   43734 	heap32[(g0)] = r0;
   43735 	heap32[(g0+1)] = r1;
   43736 	heap32[(g0+2)] = 198;
   43737 	_assert(i7);
   43738 }
   43739 }
   43740 else{
   43741 	r0 = _2E_str2101;
   43742 	r1 = _2E_str3102;
   43743 	heap32[(g0)] = r0;
   43744 	heap32[(g0+1)] = r1;
   43745 	heap32[(g0+2)] = 197;
   43746 	_assert(i7);
   43747 }
   43748 }
   43749 
   43750 function _ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(sp)
   43751 {
   43752 	var i7;
   43753 	var fp = sp>>2;
   43754 	var r0;
   43755 	var r1;
   43756 	var r2;
   43757 	var r3;
   43758 	var r4;
   43759 	var r5;
   43760 	var r6;
   43761 	var r7;
   43762 	var r8;
   43763 	var r9;
   43764 	var r10;
   43765 	var r11;
   43766 	var r12;
   43767 	var r13;
   43768 	var f0;
   43769 	var f1;
   43770 	var f2;
   43771 	var f3;
   43772 	var f4;
   43773 	var f5;
   43774 	var f6;
   43775 	var f7;
   43776 	var f8;
   43777 	var f9;
   43778 	var f10;
   43779 	var f11;
   43780 	var f12;
   43781 	var f13;
   43782 	var f14;
   43783 	var f15;
   43784 	var f16;
   43785 	var f17;
   43786 	var f18;
   43787 	var f19;
   43788 	var f20;
   43789 	var f21;
   43790 	var f22;
   43791 	var f23;
   43792 	var f24;
   43793 	var f25;
   43794 	var f26;
   43795 	var f27;
   43796 	var f28;
   43797 	var f29;
   43798 	var f30;
   43799 var __label__ = 0;
   43800 	i7 = sp + -264;var g0 = i7>>2; // save stack
   43801 	r0 = heap32[(fp+2)];
   43802 	if(r0 >-1) //_LBB255_2
   43803 {
   43804 	r1 = heap32[(fp)];
   43805 	r1 = r1 >> 2;
   43806 	r2 = heap32[(r1+1)];
   43807 	r2 = r2 >> 2;
   43808 	r3 = heap32[(r2+48)];
   43809 	r3 = r3 >> 2;
   43810 	r4 = heap32[(r3+4)];
   43811 	if(r4 >r0) //_LBB255_4
   43812 {
   43813 	r4 = heap32[(fp+1)];
   43814 	r3 = heap32[(r3+6)];
   43815 	r5 = (r0 * 80)|0;
   43816 	r3 = (r3 + r5)|0;
   43817 	r3 = r3 >> 2;
   43818 	f0 = heapFloat[(r2+1)];
   43819 	f1 = heapFloat[(r3)];
   43820 	f2 = heapFloat[(r2+2)];
   43821 	f3 = heapFloat[(r3+4)];
   43822 	f4 = heapFloat[(r3+1)];
   43823 	f5 = heapFloat[(r3+5)];
   43824 	f6 = heapFloat[(r2+3)];
   43825 	f7 = heapFloat[(r3+8)];
   43826 	f8 = f1*f0;
   43827 	f9 = f3*f2;
   43828 	f10 = heapFloat[(r2+5)];
   43829 	f11 = heapFloat[(r2+6)];
   43830 	f12 = heapFloat[(r2+9)];
   43831 	f13 = heapFloat[(r3+12)];
   43832 	f14 = heapFloat[(r3+2)];
   43833 	f15 = heapFloat[(r2+10)];
   43834 	f16 = heapFloat[(r3+13)];
   43835 	f17 = heapFloat[(r3+6)];
   43836 	f18 = heapFloat[(r2+7)];
   43837 	f19 = heapFloat[(r3+14)];
   43838 	f20 = heapFloat[(r2+11)];
   43839 	f21 = heapFloat[(r3+10)];
   43840 	f22 = heapFloat[(r3+9)];
   43841 	f23 = heapFloat[(r2+4)];
   43842 	f24 = heapFloat[(r2+8)];
   43843 	heapFloat[(fp+-59)] = f24;
   43844 	f24 = heapFloat[(r2+12)];
   43845 	heapFloat[(fp+-57)] = f24;
   43846 	f24 = heapFloat[(r2+13)];
   43847 	f25 = heapFloat[(r2+14)];
   43848 	f26 = heapFloat[(r2+15)];
   43849 	f27 = heapFloat[(r2+16)];
   43850 	heapFloat[(fp+-58)] = f27;
   43851 	f27 = heapFloat[(r2+17)];
   43852 	heapFloat[(fp+-42)] = f27;
   43853 	f27 = heapFloat[(r2+18)];
   43854 	heapFloat[(fp+-41)] = f27;
   43855 	f27 = heapFloat[(r2+19)];
   43856 	heapFloat[(fp+-44)] = f27;
   43857 	f27 = heapFloat[(r2+20)];
   43858 	heapFloat[(fp+-43)] = f27;
   43859 	f27 = heapFloat[(r2+21)];
   43860 	heapFloat[(fp+-46)] = f27;
   43861 	f27 = heapFloat[(r2+22)];
   43862 	heapFloat[(fp+-45)] = f27;
   43863 	f27 = heapFloat[(r2+23)];
   43864 	heapFloat[(fp+-48)] = f27;
   43865 	f27 = heapFloat[(r2+24)];
   43866 	heapFloat[(fp+-47)] = f27;
   43867 	f27 = heapFloat[(r2+25)];
   43868 	heapFloat[(fp+-50)] = f27;
   43869 	f27 = heapFloat[(r2+26)];
   43870 	heapFloat[(fp+-49)] = f27;
   43871 	f27 = heapFloat[(r2+27)];
   43872 	heapFloat[(fp+-52)] = f27;
   43873 	f27 = heapFloat[(r2+28)];
   43874 	heapFloat[(fp+-51)] = f27;
   43875 	f27 = heapFloat[(r2+29)];
   43876 	heapFloat[(fp+-54)] = f27;
   43877 	f27 = heapFloat[(r2+30)];
   43878 	heapFloat[(fp+-53)] = f27;
   43879 	f27 = heapFloat[(r2+31)];
   43880 	heapFloat[(fp+-56)] = f27;
   43881 	f27 = heapFloat[(r2+32)];
   43882 	heapFloat[(fp+-55)] = f27;
   43883 	f27 = f4*f0;
   43884 	f28 = f5*f2;
   43885 	f8 = f8+f9;
   43886 	f9 = f7*f6;
   43887 	r2 = sp + -96;
   43888 	f29 = f14*f0;
   43889 	f30 = f17*f2;
   43890 	f27 = f27+f28;
   43891 	f28 = f22*f6;
   43892 	f8 = f8+f9;
   43893 	r3 = r2 >> 2;
   43894 	f9 = f29+f30;
   43895 	f29 = f21*f6;
   43896 	f27 = f27+f28;
   43897 	heapFloat[(fp+-24)] = f8;
   43898 	f8 = f1*f10;
   43899 	f28 = f3*f11;
   43900 	f9 = f9+f29;
   43901 	heapFloat[(r3+1)] = f27;
   43902 	heapFloat[(r3+2)] = f9;
   43903 	f9 = f4*f10;
   43904 	f27 = f5*f11;
   43905 	f8 = f8+f28;
   43906 	f28 = f7*f18;
   43907 	f29 = f14*f10;
   43908 	f30 = f17*f11;
   43909 	f9 = f9+f27;
   43910 	f27 = f22*f18;
   43911 	f8 = f8+f28;
   43912 	heap32[(r3+3)] = 0;
   43913 	f28 = f29+f30;
   43914 	f29 = f21*f18;
   43915 	f9 = f9+f27;
   43916 	heapFloat[(r3+4)] = f8;
   43917 	f1 = f1*f12;
   43918 	f3 = f3*f15;
   43919 	f8 = f28+f29;
   43920 	heapFloat[(r3+5)] = f9;
   43921 	heapFloat[(r3+6)] = f8;
   43922 	f4 = f4*f12;
   43923 	f5 = f5*f15;
   43924 	f1 = f1+f3;
   43925 	f3 = f7*f20;
   43926 	f7 = f14*f12;
   43927 	f8 = f17*f15;
   43928 	f4 = f4+f5;
   43929 	f5 = f22*f20;
   43930 	f1 = f1+f3;
   43931 	heap32[(r3+7)] = 0;
   43932 	f3 = f0*f13;
   43933 	f9 = f2*f16;
   43934 	f7 = f7+f8;
   43935 	f8 = f21*f20;
   43936 	f4 = f4+f5;
   43937 	heapFloat[(r3+8)] = f1;
   43938 	f1 = f10*f13;
   43939 	f5 = f11*f16;
   43940 	f3 = f3+f9;
   43941 	f9 = f6*f19;
   43942 	f7 = f7+f8;
   43943 	heapFloat[(r3+9)] = f4;
   43944 	f3 = f3+f9;
   43945 	heapFloat[(r3+10)] = f7;
   43946 	f4 = f12*f13;
   43947 	f7 = f15*f16;
   43948 	f1 = f1+f5;
   43949 	f5 = f18*f19;
   43950 	f1 = f1+f5;
   43951 	f4 = f4+f7;
   43952 	f5 = f20*f19;
   43953 	f3 = f3+f24;
   43954 	heap32[(r3+11)] = 0;
   43955 	f4 = f4+f5;
   43956 	f1 = f1+f25;
   43957 	heapFloat[(r3+12)] = f3;
   43958 	f3 = f4+f26;
   43959 	heapFloat[(r3+13)] = f1;
   43960 	heapFloat[(r3+14)] = f3;
   43961 	r5 = r4 >> 2;
   43962 	heap32[(r3+15)] = 0;
   43963 	r5 = heap32[(r5)];
   43964 	r5 = r5 >> 2;
   43965 	r5 = heap32[(r5+2)];
   43966 	r6 = sp + -112;
   43967 	r7 = sp + -128;
   43968 	heap32[(g0)] = r4;
   43969 	heap32[(g0+1)] = r2;
   43970 	heap32[(g0+2)] = r6;
   43971 	heap32[(g0+3)] = r7;
   43972 	__FUNCTION_TABLE__[(r5)>>2](i7);
   43973 	r2 = heap32[(r1+2)];
   43974 	r5 = r2 >> 2;
   43975 	r5 = heap32[(r5+48)];
   43976 	r8 = r5 >> 2;
   43977 	r8 = heap32[(r8)];
   43978 	r8 = r8 >> 2;
   43979 	r8 = heap32[(r8+2)];
   43980 	r2 = (r2 + 4)|0;
   43981 	r9 = sp + -144;
   43982 	r10 = sp + -160;
   43983 	heap32[(g0)] = r5;
   43984 	heap32[(g0+1)] = r2;
   43985 	heap32[(g0+2)] = r9;
   43986 	heap32[(g0+3)] = r10;
   43987 	__FUNCTION_TABLE__[(r8)>>2](i7);
   43988 	f1 = heapFloat[(fp+-28)];
   43989 	f3 = heapFloat[(fp+-40)];
   43990 	if(f1 >f3) //_LBB255_7
   43991 {
   43992 __label__ = 7;
   43993 }
   43994 else{
   43995 	f1 = heapFloat[(fp+-32)];
   43996 	f3 = heapFloat[(fp+-36)];
   43997 	if(f1 <f3) //_LBB255_7
   43998 {
   43999 __label__ = 7;
   44000 }
   44001 else{
   44002 	r2 = 1;
   44003 __label__ = 8;
   44004 }
   44005 }
   44006 if (__label__ == 7){
   44007 	r2 = 0;
   44008 }
   44009 	r5 = r6 >> 2;
   44010 	r8 = r10 >> 2;
   44011 	f1 = heapFloat[(r5+2)];
   44012 	f3 = heapFloat[(r8+2)];
   44013 	if(f1 >f3) //_LBB255_11
   44014 {
   44015 __label__ = 10;
   44016 }
   44017 else{
   44018 	r11 = r7 >> 2;
   44019 	r12 = r9 >> 2;
   44020 	f1 = heapFloat[(r11+2)];
   44021 	f3 = heapFloat[(r12+2)];
   44022 	if(f1 <f3) //_LBB255_11
   44023 {
   44024 __label__ = 10;
   44025 }
   44026 else{
   44027 __label__ = 11;
   44028 }
   44029 }
   44030 if (__label__ == 10){
   44031 	r2 = 0;
   44032 }
   44033 	f1 = heapFloat[(r5+1)];
   44034 	f3 = heapFloat[(r8+1)];
   44035 if(!(f1 >f3)) //_LBB255_24
   44036 {
   44037 	r5 = r7 >> 2;
   44038 	r8 = r9 >> 2;
   44039 	f1 = heapFloat[(r5+1)];
   44040 	f3 = heapFloat[(r8+1)];
   44041 if(!(f1 <f3)) //_LBB255_24
   44042 {
   44043 	r2 = r2 & 255;
   44044 if(!(r2 ==0)) //_LBB255_24
   44045 {
   44046 	r2 = heap32[(r1+1)];
   44047 	r2 = r2 >> 2;
   44048 	heap32[(r2+1)] = heap32[(fp+-24)];
   44049 	heap32[(r2+2)] = heap32[(r3+1)];
   44050 	heap32[(r2+3)] = heap32[(r3+2)];
   44051 	heap32[(r2+4)] = heap32[(r3+3)];
   44052 	heap32[(r2+5)] = heap32[(r3+4)];
   44053 	heap32[(r2+6)] = heap32[(r3+5)];
   44054 	heap32[(r2+7)] = heap32[(r3+6)];
   44055 	heap32[(r2+8)] = heap32[(r3+7)];
   44056 	heap32[(r2+9)] = heap32[(r3+8)];
   44057 	heap32[(r2+10)] = heap32[(r3+9)];
   44058 	heap32[(r2+11)] = heap32[(r3+10)];
   44059 	heap32[(r2+12)] = heap32[(r3+11)];
   44060 	heap32[(r2+13)] = heap32[(r3+12)];
   44061 	heap32[(r2+14)] = heap32[(r3+13)];
   44062 	heap32[(r2+15)] = heap32[(r3+14)];
   44063 	heap32[(r2+16)] = heap32[(r3+15)];
   44064 	r2 = heap32[(r1+1)];
   44065 	r2 = r2 >> 2;
   44066 	heap32[(r2+17)] = heap32[(fp+-24)];
   44067 	heap32[(r2+18)] = heap32[(r3+1)];
   44068 	heap32[(r2+19)] = heap32[(r3+2)];
   44069 	heap32[(r2+20)] = heap32[(r3+3)];
   44070 	heap32[(r2+21)] = heap32[(r3+4)];
   44071 	heap32[(r2+22)] = heap32[(r3+5)];
   44072 	heap32[(r2+23)] = heap32[(r3+6)];
   44073 	heap32[(r2+24)] = heap32[(r3+7)];
   44074 	heap32[(r2+25)] = heap32[(r3+8)];
   44075 	heap32[(r2+26)] = heap32[(r3+9)];
   44076 	heap32[(r2+27)] = heap32[(r3+10)];
   44077 	heap32[(r2+28)] = heap32[(r3+11)];
   44078 	heap32[(r2+29)] = heap32[(r3+12)];
   44079 	heap32[(r2+30)] = heap32[(r3+13)];
   44080 	heap32[(r2+31)] = heap32[(r3+14)];
   44081 	heap32[(r2+32)] = heap32[(r3+15)];
   44082 	r2 = heap32[(r1+1)];
   44083 	r2 = r2 >> 2;
   44084 	r3 = heap32[(r2+48)];
   44085 	heap32[(r2+48)] = r4;
   44086 	r2 = heap32[(r1+6)];
   44087 	r4 = r0 << 2;
   44088 	r2 = (r2 + r4)|0;
   44089 	r2 = r2 >> 2;
   44090 	r5 = heap32[(r2)];
   44091 if(!(r5 !=0)) //_LBB255_17
   44092 {
   44093 	r5 = heap32[(r1+3)];
   44094 	r8 = r5 >> 2;
   44095 	r8 = heap32[(r8)];
   44096 	r8 = r8 >> 2;
   44097 	r8 = heap32[(r8+2)];
   44098 	r11 = heap32[(r1+7)];
   44099 	r12 = heap32[(r1+2)];
   44100 	r13 = heap32[(r1+1)];
   44101 	heap32[(g0)] = r5;
   44102 	heap32[(g0+1)] = r13;
   44103 	heap32[(g0+2)] = r12;
   44104 	heap32[(g0+3)] = r11;
   44105 	__FUNCTION_TABLE__[(r8)>>2](i7);
   44106 	heap32[(r2)] = r_g0;
   44107 }
   44108 	r2 = heap32[(r1+5)];
   44109 	r5 = r2 >> 2;
   44110 	r8 = heap32[(r5)];
   44111 	r5 = heap32[(r5+34)];
   44112 	r11 = heap32[(r1+1)];
   44113 	if(r5 !=r11) //_LBB255_19
   44114 {
   44115 	r5 = r8 >> 2;
   44116 	r5 = heap32[(r5+3)];
   44117 	heap32[(g0)] = r2;
   44118 	heap32[(g0+1)] = -1;
   44119 	heap32[(g0+2)] = r0;
   44120 	__FUNCTION_TABLE__[(r5)>>2](i7);
   44121 }
   44122 else{
   44123 	r8 = r8 >> 2;
   44124 	r8 = heap32[(r8+2)];
   44125 	heap32[(g0)] = r2;
   44126 	heap32[(g0+1)] = -1;
   44127 	heap32[(g0+2)] = r0;
   44128 	__FUNCTION_TABLE__[(r8)>>2](i7);
   44129 }
   44130 	r0 = heap32[(r1+6)];
   44131 	r0 = (r0 + r4)|0;
   44132 	r0 = r0 >> 2;
   44133 	r0 = heap32[(r0)];
   44134 	r2 = r0 >> 2;
   44135 	r2 = heap32[(r2)];
   44136 	r2 = r2 >> 2;
   44137 	r2 = heap32[(r2+2)];
   44138 	r4 = heap32[(r1+5)];
   44139 	r5 = heap32[(r1+4)];
   44140 	r8 = heap32[(r1+2)];
   44141 	r11 = heap32[(r1+1)];
   44142 	heap32[(g0)] = r0;
   44143 	heap32[(g0+1)] = r11;
   44144 	heap32[(g0+2)] = r8;
   44145 	heap32[(g0+3)] = r5;
   44146 	heap32[(g0+4)] = r4;
   44147 	__FUNCTION_TABLE__[(r2)>>2](i7);
   44148 	r0 = heap32[(r1+4)];
   44149 	r0 = r0 >> 2;
   44150 	r0 = heap32[(r0+5)];
   44151 if(!(r0 ==0)) //_LBB255_23
   44152 {
   44153 	r2 = r0 >> 2;
   44154 	r2 = heap32[(r2)];
   44155 	r2 = r2 >> 2;
   44156 	r2 = heap32[(r2+12)];
   44157 	heap32[(g0)] = r0;
   44158 	__FUNCTION_TABLE__[(r2)>>2](i7);
   44159 	r0 = r_g0 & 2;
   44160 if(!(r0 ==0)) //_LBB255_23
   44161 {
   44162 	r0 = heap32[(r1+4)];
   44163 	r0 = r0 >> 2;
   44164 	r2 = heap32[(r0+5)];
   44165 	r2 = r2 >> 2;
   44166 	r2 = heap32[(r2)];
   44167 	r2 = r2 >> 2;
   44168 	r2 = heap32[(r2+13)];
   44169 	r4 = sp + -32;
   44170 	r5 = r4 >> 2;
   44171 	heap32[(fp+-8)] = 1065353216;
   44172 	heap32[(r5+1)] = 1065353216;
   44173 	heap32[(r5+2)] = 1065353216;
   44174 	heap32[(r5+3)] = 0;
   44175 	r0 = heap32[(r0+5)];
   44176 	heap32[(g0)] = r0;
   44177 	heap32[(g0+1)] = r6;
   44178 	heap32[(g0+2)] = r7;
   44179 	heap32[(g0+3)] = r4;
   44180 	__FUNCTION_TABLE__[(r2)>>2](i7);
   44181 	r0 = heap32[(r1+4)];
   44182 	r0 = r0 >> 2;
   44183 	r2 = heap32[(r0+5)];
   44184 	r2 = r2 >> 2;
   44185 	r2 = heap32[(r2)];
   44186 	r2 = r2 >> 2;
   44187 	r2 = heap32[(r2+13)];
   44188 	r4 = sp + -16;
   44189 	r5 = r4 >> 2;
   44190 	heap32[(fp+-4)] = 1065353216;
   44191 	heap32[(r5+1)] = 1065353216;
   44192 	heap32[(r5+2)] = 1065353216;
   44193 	heap32[(r5+3)] = 0;
   44194 	r0 = heap32[(r0+5)];
   44195 	heap32[(g0)] = r0;
   44196 	heap32[(g0+1)] = r9;
   44197 	heap32[(g0+2)] = r10;
   44198 	heap32[(g0+3)] = r4;
   44199 	__FUNCTION_TABLE__[(r2)>>2](i7);
   44200 }
   44201 }
   44202 	r0 = heap32[(r1+1)];
   44203 	r0 = r0 >> 2;
   44204 	heap32[(r0+48)] = r3;
   44205 	r0 = heap32[(r1+1)];
   44206 	r0 = r0 >> 2;
   44207 	heapFloat[(r0+1)] = f0;
   44208 	heapFloat[(r0+2)] = f2;
   44209 	heapFloat[(r0+3)] = f6;
   44210 	heapFloat[(r0+4)] = f23;
   44211 	heapFloat[(r0+5)] = f10;
   44212 	heapFloat[(r0+6)] = f11;
   44213 	heapFloat[(r0+7)] = f18;
   44214 	f0 = heapFloat[(fp+-59)];
   44215 	heapFloat[(r0+8)] = f0;
   44216 	heapFloat[(r0+9)] = f12;
   44217 	heapFloat[(r0+10)] = f15;
   44218 	heapFloat[(r0+11)] = f20;
   44219 	f0 = heapFloat[(fp+-57)];
   44220 	heapFloat[(r0+12)] = f0;
   44221 	heapFloat[(r0+13)] = f24;
   44222 	heapFloat[(r0+14)] = f25;
   44223 	heapFloat[(r0+15)] = f26;
   44224 	f0 = heapFloat[(fp+-58)];
   44225 	heapFloat[(r0+16)] = f0;
   44226 	r0 = heap32[(r1+1)];
   44227 	r0 = r0 >> 2;
   44228 	f0 = heapFloat[(fp+-42)];
   44229 	heapFloat[(r0+17)] = f0;
   44230 	f0 = heapFloat[(fp+-41)];
   44231 	heapFloat[(r0+18)] = f0;
   44232 	f0 = heapFloat[(fp+-44)];
   44233 	heapFloat[(r0+19)] = f0;
   44234 	f0 = heapFloat[(fp+-43)];
   44235 	heapFloat[(r0+20)] = f0;
   44236 	f0 = heapFloat[(fp+-46)];
   44237 	heapFloat[(r0+21)] = f0;
   44238 	f0 = heapFloat[(fp+-45)];
   44239 	heapFloat[(r0+22)] = f0;
   44240 	f0 = heapFloat[(fp+-48)];
   44241 	heapFloat[(r0+23)] = f0;
   44242 	f0 = heapFloat[(fp+-47)];
   44243 	heapFloat[(r0+24)] = f0;
   44244 	f0 = heapFloat[(fp+-50)];
   44245 	heapFloat[(r0+25)] = f0;
   44246 	f0 = heapFloat[(fp+-49)];
   44247 	heapFloat[(r0+26)] = f0;
   44248 	f0 = heapFloat[(fp+-52)];
   44249 	heapFloat[(r0+27)] = f0;
   44250 	f0 = heapFloat[(fp+-51)];
   44251 	heapFloat[(r0+28)] = f0;
   44252 	f0 = heapFloat[(fp+-54)];
   44253 	heapFloat[(r0+29)] = f0;
   44254 	f0 = heapFloat[(fp+-53)];
   44255 	heapFloat[(r0+30)] = f0;
   44256 	f0 = heapFloat[(fp+-56)];
   44257 	heapFloat[(r0+31)] = f0;
   44258 	f0 = heapFloat[(fp+-55)];
   44259 	heapFloat[(r0+32)] = f0;
   44260 }
   44261 }
   44262 }
   44263 	return;
   44264 }
   44265 else{
   44266 	r0 = _2E_str7106;
   44267 	r1 = _2E_str1100;
   44268 	heap32[(g0)] = r0;
   44269 	heap32[(g0+1)] = r1;
   44270 	heap32[(g0+2)] = 119;
   44271 	_assert(i7);
   44272 }
   44273 }
   44274 else{
   44275 	r0 = _2E_str6105;
   44276 	r1 = _2E_str1100;
   44277 	heap32[(g0)] = r0;
   44278 	heap32[(g0+1)] = r1;
   44279 	heap32[(g0+2)] = 117;
   44280 	_assert(i7);
   44281 }
   44282 }
   44283 
   44284 function _ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(sp)
   44285 {
   44286 	var i7;
   44287 	var fp = sp>>2;
   44288 	var r0;
   44289 	var r1;
   44290 	var r2;
   44291 	var r3;
   44292 	var r4;
   44293 	var r5;
   44294 	var r6;
   44295 	var r7;
   44296 	var r8;
   44297 	var r9;
   44298 	var r10;
   44299 	var r11;
   44300 	var r12;
   44301 	var r13;
   44302 	var r14;
   44303 	var r15;
   44304 var __label__ = 0;
   44305 	i7 = sp + -16;var g0 = i7>>2; // save stack
   44306 	r0 = heap32[(fp)];
   44307 	r1 = heapU8[r0+28];
   44308 	r2 = heap32[(fp+1)];
   44309 	r3 = heap32[(fp+2)];
   44310 	r4 = r1 == 0 ? r2 : r3;
   44311 	r5 = r4 >> 2;
   44312 	r6 = heap32[(r5+48)];
   44313 	r6 = r6 >> 2;
   44314 	r7 = heap32[(r6+1)];
   44315 	if(r7 ==31) //_LBB256_2
   44316 {
   44317 	r7 = r0 >> 2;
   44318 	r8 = heap32[(r7+3)];
   44319 	r9 = heap32[(r6+4)];
   44320 _3: do {
   44321 if(!(r8 >r9)) //_LBB256_21
   44322 {
   44323 if(!(r8 >=r9)) //_LBB256_21
   44324 {
   44325 	r10 = heap32[(r7+4)];
   44326 if(!(r10 >=r9)) //_LBB256_20
   44327 {
   44328 	if(r9 !=0) //_LBB256_7
   44329 {
   44330 	r10 = gNumAlignedAllocs;
   44331 	r10 = r10 >> 2;
   44332 	r11 = heap32[(r10)];
   44333 	r12 = r9 << 2;
   44334 	r11 = (r11 + 1)|0;
   44335 	r12 = r12 | 3;
   44336 	heap32[(r10)] = r11;
   44337 	r10 = (r12 + 16)|0;
   44338 	heap32[(g0)] = r10;
   44339 	malloc(i7);
   44340 	r10 = r_g0;
   44341 	if(r10 !=0) //_LBB256_9
   44342 {
   44343 	r11 = 0;
   44344 	r12 = (r10 + 4)|0;
   44345 	r11 = (r11 - r12)|0;
   44346 	r11 = r11 & 15;
   44347 	r11 = (r10 + r11)|0;
   44348 	r12 = (r11 + 4)|0;
   44349 	r11 = r11 >> 2;
   44350 	heap32[(r11)] = r10;
   44351 	r10 = r12;
   44352 }
   44353 }
   44354 else{
   44355 	r10 = 0;
   44356 }
   44357 	r11 = (r0 + 20)|0;
   44358 	if(r8 <1) //_LBB256_12
   44359 {
   44360 	r12 = r11 >> 2;
   44361 	r13 = heap32[(r12)];
   44362 }
   44363 else{
   44364 	r12 = 0;
   44365 _16: while(true){
   44366 	r13 = r11 >> 2;
   44367 	r13 = heap32[(r13)];
   44368 	r14 = r12 << 2;
   44369 	r15 = (r13 + r14)|0;
   44370 	r15 = r15 >> 2;
   44371 	r14 = (r10 + r14)|0;
   44372 	r15 = heap32[(r15)];
   44373 	r12 = (r12 + 1)|0;
   44374 	r14 = r14 >> 2;
   44375 	heap32[(r14)] = r15;
   44376 if(!(r8 !=r12)) //_LBB256_13
   44377 {
   44378 break _16;
   44379 }
   44380 }
   44381 	r11 = (r0 + 20)|0;
   44382 }
   44383 if(!(r13 ==0)) //_LBB256_19
   44384 {
   44385 	r12 = heapU8[r0+24];
   44386 if(!(r12 ==0)) //_LBB256_18
   44387 {
   44388 	r12 = gNumAlignedFree;
   44389 	r12 = r12 >> 2;
   44390 	r14 = heap32[(r12)];
   44391 	r14 = (r14 + 1)|0;
   44392 	r13 = r13 >> 2;
   44393 	heap32[(r12)] = r14;
   44394 	r12 = heap32[(r13+-1)];
   44395 	heap32[(g0)] = r12;
   44396 	free(i7);
   44397 }
   44398 	r12 = r11 >> 2;
   44399 	heap32[(r12)] = 0;
   44400 }
   44401 	r12 = 1;
   44402 	r11 = r11 >> 2;
   44403 	heap8[r0+24] = r12;
   44404 	heap32[(r11)] = r10;
   44405 	heap32[(r7+4)] = r9;
   44406 	if(r8 >=r9) //_LBB256_21
   44407 {
   44408 break _3;
   44409 }
   44410 }
   44411 _26: while(true){
   44412 	r0 = r8 << 2;
   44413 	r10 = heap32[(r7+5)];
   44414 	r0 = (r10 + r0)|0;
   44415 	r8 = (r8 + 1)|0;
   44416 	r0 = r0 >> 2;
   44417 	heap32[(r0)] = 0;
   44418 if(!(r9 !=r8)) //_LBB256_20
   44419 {
   44420 break _3;
   44421 }
   44422 }
   44423 }
   44424 }
   44425 } while(0);
   44426 	heap32[(r7+3)] = r9;
   44427 _29: do {
   44428 if(!(r9 <1)) //_LBB256_27
   44429 {
   44430 	r0 = r1 == 0 ? r3 : r2;
   44431 	r1 = 0;
   44432 _31: while(true){
   44433 	r2 = heap32[(r6+16)];
   44434 	if(r2 ==0) //_LBB256_25
   44435 {
   44436 	r2 = (r1 * 20)|0;
   44437 	r2 = r2 << 2;
   44438 	r3 = heap32[(r6+6)];
   44439 	r2 = (r3 + r2)|0;
   44440 	r2 = r2 >> 2;
   44441 	r3 = heap32[(r5+48)];
   44442 	r2 = heap32[(r2+16)];
   44443 	heap32[(r5+48)] = r2;
   44444 	r2 = heap32[(r7+1)];
   44445 	r8 = r2 >> 2;
   44446 	r8 = heap32[(r8)];
   44447 	r8 = r8 >> 2;
   44448 	r8 = heap32[(r8+2)];
   44449 	r10 = heap32[(r7+8)];
   44450 	r11 = heap32[(r7+5)];
   44451 	r12 = r1 << 2;
   44452 	heap32[(g0)] = r2;
   44453 	heap32[(g0+1)] = r4;
   44454 	heap32[(g0+2)] = r0;
   44455 	heap32[(g0+3)] = r10;
   44456 	r2 = (r11 + r12)|0;
   44457 	r2 = r2 >> 2;
   44458 	__FUNCTION_TABLE__[(r8)>>2](i7);
   44459 	heap32[(r2)] = r_g0;
   44460 	heap32[(r5+48)] = r3;
   44461 }
   44462 else{
   44463 	r2 = r1 << 2;
   44464 	r3 = heap32[(r7+5)];
   44465 	r2 = (r3 + r2)|0;
   44466 	r2 = r2 >> 2;
   44467 	heap32[(r2)] = 0;
   44468 }
   44469 	r1 = (r1 + 1)|0;
   44470 if(!(r9 !=r1)) //_LBB256_23
   44471 {
   44472 break _29;
   44473 }
   44474 }
   44475 }
   44476 } while(0);
   44477 	return;
   44478 }
   44479 else{
   44480 	r0 = _2E_str99;
   44481 	r1 = _2E_str1100;
   44482 	heap32[(g0)] = r0;
   44483 	heap32[(g0+1)] = r1;
   44484 	heap32[(g0+2)] = 44;
   44485 	_assert(i7);
   44486 }
   44487 }
   44488 
   44489 function _ZN28btCompoundCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
   44490 {
   44491 	var i7;
   44492 	var fp = sp>>2;
   44493 	var r0;
   44494 	var r1;
   44495 	var r2;
   44496 	var r3;
   44497 	var r4;
   44498 	var r5;
   44499 	var r6;
   44500 	var r7;
   44501 	var r8;
   44502 	var r9;
   44503 	var r10;
   44504 	var r11;
   44505 	var r12;
   44506 	var r13;
   44507 	var r14;
   44508 	var r15;
   44509 	var r16;
   44510 	var r17;
   44511 	var f0;
   44512 	var f1;
   44513 	var f2;
   44514 	var f3;
   44515 	var f4;
   44516 	var f5;
   44517 	var f6;
   44518 	var f7;
   44519 	var f8;
   44520 	var f9;
   44521 	var f10;
   44522 	var f11;
   44523 	var f12;
   44524 	var f13;
   44525 	var f14;
   44526 	var f15;
   44527 	var f16;
   44528 	var f17;
   44529 	var f18;
   44530 	var f19;
   44531 	var f20;
   44532 	var f21;
   44533 	var f22;
   44534 	var f23;
   44535 	var f24;
   44536 	var f25;
   44537 	var f26;
   44538 	var f27;
   44539 	var f28;
   44540 	var f29;
   44541 var __label__ = 0;
   44542 	i7 = sp + -328;var g0 = i7>>2; // save stack
   44543 	r0 = heap32[(fp)];
   44544 	r1 = heap32[(fp+1)];
   44545 	r2 = heap32[(fp+2)];
   44546 	r3 = heapU8[r0+28];
   44547 	r4 = r3 == 0 ? r1 : r2;
   44548 	r5 = r4 >> 2;
   44549 	r6 = heap32[(r5+48)];
   44550 	r6 = r6 >> 2;
   44551 	r7 = heap32[(r6+1)];
   44552 	if(r7 ==31) //_LBB257_2
   44553 {
   44554 	r7 = r0 >> 2;
   44555 	r8 = heap32[(r6+17)];
   44556 	r9 = heap32[(r7+10)];
   44557 if(!(r8 ==r9)) //_LBB257_9
   44558 {
   44559 	r8 = heap32[(r7+3)];
   44560 if(!(r8 <1)) //_LBB257_8
   44561 {
   44562 	r9 = 0;
   44563 _7: while(true){
   44564 	r10 = heap32[(r7+5)];
   44565 	r11 = r9 << 2;
   44566 	r10 = (r10 + r11)|0;
   44567 	r10 = r10 >> 2;
   44568 	r10 = heap32[(r10)];
   44569 if(!(r10 ==0)) //_LBB257_7
   44570 {
   44571 	r12 = r10 >> 2;
   44572 	r12 = heap32[(r12)];
   44573 	r12 = r12 >> 2;
   44574 	r12 = heap32[(r12)];
   44575 	heap32[(g0)] = r10;
   44576 	__FUNCTION_TABLE__[(r12)>>2](i7);
   44577 	r10 = heap32[(r7+1)];
   44578 	r12 = r10 >> 2;
   44579 	r13 = heap32[(r7+5)];
   44580 	r11 = (r13 + r11)|0;
   44581 	r12 = heap32[(r12)];
   44582 	r12 = r12 >> 2;
   44583 	r11 = r11 >> 2;
   44584 	r12 = heap32[(r12+13)];
   44585 	r11 = heap32[(r11)];
   44586 	heap32[(g0)] = r10;
   44587 	heap32[(g0+1)] = r11;
   44588 	__FUNCTION_TABLE__[(r12)>>2](i7);
   44589 }
   44590 	r9 = (r9 + 1)|0;
   44591 if(!(r8 !=r9)) //_LBB257_5
   44592 {
   44593 break _7;
   44594 }
   44595 }
   44596 }
   44597 	heap32[(g0)] = r0;
   44598 	heap32[(g0+1)] = r1;
   44599 	heap32[(g0+2)] = r2;
   44600 	_ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(i7);
   44601 }
   44602 	r0 = heap32[(fp+3)];
   44603 	r8 = heap32[(fp+4)];
   44604 	r1 = r3 == 0 ? r2 : r1;
   44605 	r2 = _ZTV22btCompoundLeafCallback;
   44606 	r3 = heap32[(r6+16)];
   44607 	r9 = heap32[(r7+8)];
   44608 	r10 = heap32[(r7+5)];
   44609 	r11 = heap32[(r7+1)];
   44610 	r12 = sp + -32;
   44611 	r2 = (r2 + 8)|0;
   44612 	r13 = r12 >> 2;
   44613 	heap32[(fp+-8)] = r2;
   44614 	heap32[(r13+1)] = r4;
   44615 	heap32[(r13+2)] = r1;
   44616 	heap32[(r13+3)] = r11;
   44617 	heap32[(r13+4)] = r0;
   44618 	heap32[(r13+5)] = r8;
   44619 	heap32[(r13+6)] = r10;
   44620 	r0 = sp + -56;
   44621 	r2 = 1;
   44622 	heap32[(r13+7)] = r9;
   44623 	r4 = r0 >> 2;
   44624 	heap8[sp+-40] = r2;
   44625 	heap32[(r4+3)] = 0;
   44626 	r9 = (r8 + 72)|0;
   44627 	r10 = (r8 + 8)|0;
   44628 	r11 = 0;
   44629 	heap32[(r4+1)] = 0;
   44630 	heap32[(r4+2)] = 0;
   44631 _14: while(true){
   44632 	r13 = heap32[(r7+3)];
   44633 	if(r13 >r11) //_LBB257_10
   44634 {
   44635 	r13 = heap32[(r7+5)];
   44636 	r14 = r11 << 2;
   44637 	r13 = (r13 + r14)|0;
   44638 	r13 = r13 >> 2;
   44639 	r13 = heap32[(r13)];
   44640 if(!(r13 ==0)) //_LBB257_27
   44641 {
   44642 	r14 = r13 >> 2;
   44643 	r14 = heap32[(r14)];
   44644 	r14 = r14 >> 2;
   44645 	r14 = heap32[(r14+4)];
   44646 	heap32[(g0)] = r13;
   44647 	heap32[(g0+1)] = r0;
   44648 	r13 = 0;
   44649 	__FUNCTION_TABLE__[(r14)>>2](i7);
   44650 _19: while(true){
   44651 	r14 = heap32[(r4+3)];
   44652 	r15 = heap32[(r4+1)];
   44653 	if(r15 >r13) //_LBB257_12
   44654 {
   44655 	r15 = r13 << 2;
   44656 	r14 = (r14 + r15)|0;
   44657 	r14 = r14 >> 2;
   44658 	r14 = heap32[(r14)];
   44659 	r15 = r14 >> 2;
   44660 	r16 = heap32[(r15+279)];
   44661 if(!(r16 ==0)) //_LBB257_20
   44662 {
   44663 	r16 = r8 >> 2;
   44664 	heap32[(r16+1)] = r14;
   44665 	if(r14 !=0) //_LBB257_15
   44666 {
   44667 	r17 = heap32[(r15+279)];
   44668 if(!(r17 ==0)) //_LBB257_19
   44669 {
   44670 	r15 = heap32[(r15+277)];
   44671 	r17 = heap32[(r16+34)];
   44672 	if(r15 ==r17) //_LBB257_18
   44673 {
   44674 	heap32[(g0)] = r14;
   44675 	heap32[(g0+1)] = r10;
   44676 	heap32[(g0+2)] = r9;
   44677 	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
   44678 }
   44679 else{
   44680 	heap32[(g0)] = r14;
   44681 	heap32[(g0+1)] = r9;
   44682 	heap32[(g0+2)] = r10;
   44683 	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
   44684 }
   44685 }
   44686 	heap32[(r16+1)] = 0;
   44687 }
   44688 else{
   44689 __label__ = 14;
   44690 break _14;
   44691 }
   44692 }
   44693 	r13 = (r13 + 1)|0;
   44694 }
   44695 else{
   44696 break _19;
   44697 }
   44698 }
   44699 if(!(r14 ==0)) //_LBB257_26
   44700 {
   44701 	r13 = heapU8[sp+-40];
   44702 if(!(r13 ==0)) //_LBB257_25
   44703 {
   44704 	r13 = gNumAlignedFree;
   44705 	r13 = r13 >> 2;
   44706 	r15 = heap32[(r13)];
   44707 	r15 = (r15 + 1)|0;
   44708 	r14 = r14 >> 2;
   44709 	heap32[(r13)] = r15;
   44710 	r13 = heap32[(r14+-1)];
   44711 	heap32[(g0)] = r13;
   44712 	free(i7);
   44713 }
   44714 	heap32[(r4+3)] = 0;
   44715 }
   44716 	r13 = 1;
   44717 	heap8[sp+-40] = r13;
   44718 	heap32[(r4+3)] = 0;
   44719 	heap32[(r4+1)] = 0;
   44720 	heap32[(r4+2)] = 0;
   44721 }
   44722 	r11 = (r11 + 1)|0;
   44723 }
   44724 else{
   44725 __label__ = 29;
   44726 break _14;
   44727 }
   44728 }
   44729 switch(__label__ ){//multiple entries
   44730 case 29:
   44731 	heap8[sp+-40] = r2;
   44732 	heap32[(r4+3)] = 0;
   44733 	heap32[(r4+1)] = 0;
   44734 	heap32[(r4+2)] = 0;
   44735 _42: do {
   44736 	if(r3 ==0) //_LBB257_31
   44737 {
   44738 	if(r13 <1) //_LBB257_50
   44739 {
   44740 __label__ = 49;
   44741 }
   44742 else{
   44743 	r0 = 0;
   44744 _45: while(true){
   44745 	r3 = (r0 * 20)|0;
   44746 	r4 = heap32[(r6+6)];
   44747 	r3 = r3 << 2;
   44748 	r3 = (r4 + r3)|0;
   44749 	r3 = r3 >> 2;
   44750 	r3 = heap32[(r3+16)];
   44751 	heap32[(g0)] = r12;
   44752 	heap32[(g0+1)] = r3;
   44753 	heap32[(g0+2)] = r0;
   44754 	r0 = (r0 + 1)|0;
   44755 	_ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i7);
   44756 if(!(r13 !=r0)) //_LBB257_33
   44757 {
   44758 __label__ = 34;
   44759 break _42;
   44760 }
   44761 }
   44762 }
   44763 }
   44764 else{
   44765 	r13 = r1 >> 2;
   44766 	f0 = heapFloat[(r5+1)];
   44767 	f1 = heapFloat[(r13+1)];
   44768 	f2 = heapFloat[(r5+5)];
   44769 	f3 = heapFloat[(r13+5)];
   44770 	f4 = heapFloat[(r13+2)];
   44771 	f5 = heapFloat[(r13+6)];
   44772 	f6 = f1*f0;
   44773 	f7 = f3*f2;
   44774 	f8 = heapFloat[(r5+9)];
   44775 	f9 = heapFloat[(r13+9)];
   44776 	f10 = heapFloat[(r5+2)];
   44777 	f11 = heapFloat[(r5+6)];
   44778 	f12 = heapFloat[(r5+3)];
   44779 	f13 = heapFloat[(r13+13)];
   44780 	f14 = heapFloat[(r13+3)];
   44781 	f15 = heapFloat[(r5+7)];
   44782 	f16 = heapFloat[(r5+14)];
   44783 	f17 = heapFloat[(r13+14)];
   44784 	f18 = heapFloat[(r13+7)];
   44785 	f19 = heapFloat[(r5+10)];
   44786 	f20 = heapFloat[(r5+15)];
   44787 	f21 = heapFloat[(r5+11)];
   44788 	f22 = heapFloat[(r13+15)];
   44789 	f23 = heapFloat[(r13+11)];
   44790 	f24 = heapFloat[(r13+10)];
   44791 	f25 = heapFloat[(r5+13)];
   44792 	f26 = f4*f0;
   44793 	f27 = f5*f2;
   44794 	f6 = f6+f7;
   44795 	f7 = f9*f8;
   44796 	r0 = sp + -152;
   44797 	f28 = f14*f0;
   44798 	f29 = f18*f2;
   44799 	f26 = f26+f27;
   44800 	f27 = f24*f8;
   44801 	f6 = f6+f7;
   44802 	r4 = r0 >> 2;
   44803 	f7 = f28+f29;
   44804 	f28 = f23*f8;
   44805 	f26 = f26+f27;
   44806 	heapFloat[(fp+-38)] = f6;
   44807 	f6 = f1*f10;
   44808 	f27 = f3*f11;
   44809 	f7 = f7+f28;
   44810 	heapFloat[(r4+1)] = f26;
   44811 	heapFloat[(r4+2)] = f7;
   44812 	f7 = f4*f10;
   44813 	f26 = f5*f11;
   44814 	f6 = f6+f27;
   44815 	f27 = f9*f19;
   44816 	f28 = f14*f10;
   44817 	f29 = f18*f11;
   44818 	f7 = f7+f26;
   44819 	f26 = f24*f19;
   44820 	f6 = f6+f27;
   44821 	heap32[(r4+3)] = 0;
   44822 	f27 = f28+f29;
   44823 	f28 = f23*f19;
   44824 	f7 = f7+f26;
   44825 	heapFloat[(r4+4)] = f6;
   44826 	f1 = f1*f12;
   44827 	f3 = f3*f15;
   44828 	f6 = f27+f28;
   44829 	heapFloat[(r4+5)] = f7;
   44830 	heapFloat[(r4+6)] = f6;
   44831 	f4 = f4*f12;
   44832 	f5 = f5*f15;
   44833 	f1 = f1+f3;
   44834 	f3 = f9*f21;
   44835 	f6 = -f25;
   44836 	f7 = f14*f12;
   44837 	f9 = f18*f15;
   44838 	f4 = f4+f5;
   44839 	f5 = f24*f21;
   44840 	f1 = f1+f3;
   44841 	heap32[(r4+7)] = 0;
   44842 	f3 = f0*f13;
   44843 	f14 = f2*f17;
   44844 	f0 = f0*f6;
   44845 	f2 = f2*f16;
   44846 	f7 = f7+f9;
   44847 	f9 = f23*f21;
   44848 	f4 = f4+f5;
   44849 	heapFloat[(r4+8)] = f1;
   44850 	f1 = f10*f13;
   44851 	f5 = f11*f17;
   44852 	f10 = f10*f6;
   44853 	f11 = f11*f16;
   44854 	f3 = f3+f14;
   44855 	f14 = f8*f22;
   44856 	f0 = f0-f2;
   44857 	f2 = f8*f20;
   44858 	f7 = f7+f9;
   44859 	heapFloat[(r4+9)] = f4;
   44860 	heapFloat[(r4+10)] = f7;
   44861 	f4 = f12*f13;
   44862 	f7 = f15*f17;
   44863 	f6 = f12*f6;
   44864 	f8 = f15*f16;
   44865 	f1 = f1+f5;
   44866 	f5 = f19*f22;
   44867 	f9 = f10-f11;
   44868 	f10 = f19*f20;
   44869 	f3 = f3+f14;
   44870 	f0 = f0-f2;
   44871 	f2 = f4+f7;
   44872 	f4 = f21*f22;
   44873 	f6 = f6-f8;
   44874 	f7 = f21*f20;
   44875 	f1 = f1+f5;
   44876 	f5 = f9-f10;
   44877 	f0 = f3+f0;
   44878 	heap32[(r4+11)] = 0;
   44879 	f2 = f2+f4;
   44880 	f3 = f6-f7;
   44881 	f1 = f1+f5;
   44882 	heapFloat[(r4+12)] = f0;
   44883 	f0 = f2+f3;
   44884 	heapFloat[(r4+13)] = f1;
   44885 	heapFloat[(r4+14)] = f0;
   44886 	heap32[(r4+15)] = 0;
   44887 	r13 = heap32[(r13+48)];
   44888 	r4 = r13 >> 2;
   44889 	r4 = heap32[(r4)];
   44890 	r4 = r4 >> 2;
   44891 	r4 = heap32[(r4+2)];
   44892 	r8 = sp + -72;
   44893 	r9 = sp + -88;
   44894 	heap32[(g0)] = r13;
   44895 	heap32[(g0+1)] = r0;
   44896 	heap32[(g0+2)] = r8;
   44897 	heap32[(g0+3)] = r9;
   44898 	r13 = sp + -184;
   44899 	__FUNCTION_TABLE__[(r4)>>2](i7);
   44900 	r0 = r13 >> 2;
   44901 	r4 = r8 >> 2;
   44902 	heap32[(fp+-46)] = heap32[(fp+-18)];
   44903 	heap32[(r0+1)] = heap32[(r4+1)];
   44904 	heap32[(r0+2)] = heap32[(r4+2)];
   44905 	heap32[(r0+3)] = heap32[(r4+3)];
   44906 	r4 = r9 >> 2;
   44907 	heap32[(r0+4)] = heap32[(fp+-22)];
   44908 	heap32[(r0+5)] = heap32[(r4+1)];
   44909 	heap32[(r0+6)] = heap32[(r4+2)];
   44910 	r3 = r3 >> 2;
   44911 	heap32[(r0+7)] = heap32[(r4+3)];
   44912 	r0 = heap32[(r3)];
   44913 	heap32[(g0)] = r0;
   44914 	heap32[(g0+1)] = r13;
   44915 	heap32[(g0+2)] = r12;
   44916 	_ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7);
   44917 __label__ = 34;
   44918 }
   44919 } while(0);
   44920 _48: do {
   44921 if (__label__ == 34){
   44922 	r0 = heap32[(r7+3)];
   44923 if(!(r0 <1)) //_LBB257_50
   44924 {
   44925 	r3 = 0;
   44926 	r4 = (r1 + 4)|0;
   44927 	r0 = (r3 - r0)|0;
   44928 _51: while(true){
   44929 	r8 = heap32[(r7+5)];
   44930 	r9 = r3 << 2;
   44931 	r8 = (r8 - r9)|0;
   44932 	r8 = r8 >> 2;
   44933 	r8 = heap32[(r8)];
   44934 _53: do {
   44935 if(!(r8 ==0)) //_LBB257_49
   44936 {
   44937 	r8 = (r3 * -20)|0;
   44938 	r10 = heap32[(r6+6)];
   44939 	r8 = r8 << 2;
   44940 	r8 = (r10 + r8)|0;
   44941 	r8 = r8 >> 2;
   44942 	f0 = heapFloat[(r5+1)];
   44943 	f1 = heapFloat[(r8)];
   44944 	f2 = heapFloat[(r5+2)];
   44945 	f3 = heapFloat[(r8+4)];
   44946 	f4 = heapFloat[(r8+1)];
   44947 	f5 = heapFloat[(r8+5)];
   44948 	f6 = f1*f0;
   44949 	f7 = f3*f2;
   44950 	f8 = heapFloat[(r5+3)];
   44951 	f9 = heapFloat[(r8+8)];
   44952 	f10 = heapFloat[(r5+5)];
   44953 	f11 = heapFloat[(r5+6)];
   44954 	f12 = heapFloat[(r5+9)];
   44955 	f13 = heapFloat[(r8+12)];
   44956 	f14 = heapFloat[(r8+2)];
   44957 	f15 = heapFloat[(r5+10)];
   44958 	f16 = heapFloat[(r8+13)];
   44959 	f17 = heapFloat[(r8+6)];
   44960 	r10 = heap32[(r8+16)];
   44961 	f18 = heapFloat[(r5+7)];
   44962 	f19 = heapFloat[(r8+14)];
   44963 	f20 = heapFloat[(r5+11)];
   44964 	f21 = heapFloat[(r8+10)];
   44965 	f22 = heapFloat[(r8+9)];
   44966 	f23 = f4*f0;
   44967 	f24 = f5*f2;
   44968 	f6 = f6+f7;
   44969 	f7 = f9*f8;
   44970 	f25 = heapFloat[(r5+13)];
   44971 	f26 = heapFloat[(r5+14)];
   44972 	f27 = heapFloat[(r5+15)];
   44973 	r8 = sp + -248;
   44974 	f28 = f14*f0;
   44975 	f29 = f17*f2;
   44976 	f23 = f23+f24;
   44977 	f24 = f22*f8;
   44978 	f6 = f6+f7;
   44979 	r11 = r8 >> 2;
   44980 	f7 = f28+f29;
   44981 	f28 = f21*f8;
   44982 	f23 = f23+f24;
   44983 	heapFloat[(fp+-62)] = f6;
   44984 	f6 = f1*f10;
   44985 	f24 = f3*f11;
   44986 	f7 = f7+f28;
   44987 	heapFloat[(r11+1)] = f23;
   44988 	heapFloat[(r11+2)] = f7;
   44989 	f7 = f4*f10;
   44990 	f23 = f5*f11;
   44991 	f6 = f6+f24;
   44992 	f24 = f9*f18;
   44993 	f28 = f14*f10;
   44994 	f29 = f17*f11;
   44995 	f7 = f7+f23;
   44996 	f23 = f22*f18;
   44997 	f6 = f6+f24;
   44998 	heap32[(r11+3)] = 0;
   44999 	f24 = f28+f29;
   45000 	f28 = f21*f18;
   45001 	f7 = f7+f23;
   45002 	heapFloat[(r11+4)] = f6;
   45003 	f1 = f1*f12;
   45004 	f3 = f3*f15;
   45005 	f6 = f24+f28;
   45006 	heapFloat[(r11+5)] = f7;
   45007 	heapFloat[(r11+6)] = f6;
   45008 	f4 = f4*f12;
   45009 	f5 = f5*f15;
   45010 	f1 = f1+f3;
   45011 	f3 = f9*f20;
   45012 	f6 = f14*f12;
   45013 	f7 = f17*f15;
   45014 	f4 = f4+f5;
   45015 	f5 = f22*f20;
   45016 	f1 = f1+f3;
   45017 	heap32[(r11+7)] = 0;
   45018 	f0 = f0*f13;
   45019 	f2 = f2*f16;
   45020 	f3 = f6+f7;
   45021 	f6 = f21*f20;
   45022 	f4 = f4+f5;
   45023 	heapFloat[(r11+8)] = f1;
   45024 	f1 = f10*f13;
   45025 	f5 = f11*f16;
   45026 	f0 = f0+f2;
   45027 	f2 = f8*f19;
   45028 	f3 = f3+f6;
   45029 	heapFloat[(r11+9)] = f4;
   45030 	f0 = f0+f2;
   45031 	heapFloat[(r11+10)] = f3;
   45032 	f2 = f12*f13;
   45033 	f3 = f15*f16;
   45034 	f1 = f1+f5;
   45035 	f4 = f18*f19;
   45036 	f1 = f1+f4;
   45037 	f2 = f2+f3;
   45038 	f3 = f20*f19;
   45039 	f0 = f0+f25;
   45040 	heap32[(r11+11)] = 0;
   45041 	f2 = f2+f3;
   45042 	f1 = f1+f26;
   45043 	heapFloat[(r11+12)] = f0;
   45044 	f0 = f2+f27;
   45045 	heapFloat[(r11+13)] = f1;
   45046 	heapFloat[(r11+14)] = f0;
   45047 	r12 = r10 >> 2;
   45048 	heap32[(r11+15)] = 0;
   45049 	r11 = heap32[(r12)];
   45050 	r11 = r11 >> 2;
   45051 	r11 = heap32[(r11+2)];
   45052 	r12 = sp + -264;
   45053 	r13 = sp + -280;
   45054 	heap32[(g0)] = r10;
   45055 	heap32[(g0+1)] = r8;
   45056 	heap32[(g0+2)] = r12;
   45057 	heap32[(g0+3)] = r13;
   45058 	__FUNCTION_TABLE__[(r11)>>2](i7);
   45059 	r8 = r1 >> 2;
   45060 	r8 = heap32[(r8+48)];
   45061 	r10 = r8 >> 2;
   45062 	r10 = heap32[(r10)];
   45063 	r10 = r10 >> 2;
   45064 	r10 = heap32[(r10+2)];
   45065 	r11 = sp + -296;
   45066 	r14 = sp + -312;
   45067 	heap32[(g0)] = r8;
   45068 	heap32[(g0+1)] = r4;
   45069 	heap32[(g0+2)] = r11;
   45070 	heap32[(g0+3)] = r14;
   45071 	__FUNCTION_TABLE__[(r10)>>2](i7);
   45072 	f0 = heapFloat[(fp+-66)];
   45073 	f1 = heapFloat[(fp+-78)];
   45074 	if(f0 >f1) //_LBB257_40
   45075 {
   45076 __label__ = 40;
   45077 }
   45078 else{
   45079 	f0 = heapFloat[(fp+-70)];
   45080 	f1 = heapFloat[(fp+-74)];
   45081 	if(f0 <f1) //_LBB257_40
   45082 {
   45083 __label__ = 40;
   45084 }
   45085 else{
   45086 	r8 = r2;
   45087 __label__ = 41;
   45088 }
   45089 }
   45090 if (__label__ == 40){
   45091 	r8 = 0;
   45092 }
   45093 	r10 = r12 >> 2;
   45094 	r12 = r14 >> 2;
   45095 	f0 = heapFloat[(r10+2)];
   45096 	f1 = heapFloat[(r12+2)];
   45097 	if(f0 >f1) //_LBB257_44
   45098 {
   45099 __label__ = 43;
   45100 }
   45101 else{
   45102 	r14 = r13 >> 2;
   45103 	r15 = r11 >> 2;
   45104 	f0 = heapFloat[(r14+2)];
   45105 	f1 = heapFloat[(r15+2)];
   45106 	if(f0 <f1) //_LBB257_44
   45107 {
   45108 __label__ = 43;
   45109 }
   45110 else{
   45111 __label__ = 44;
   45112 }
   45113 }
   45114 if (__label__ == 43){
   45115 	r8 = 0;
   45116 }
   45117 	f0 = heapFloat[(r10+1)];
   45118 	f1 = heapFloat[(r12+1)];
   45119 if(!(f0 >f1)) //_LBB257_48
   45120 {
   45121 	r10 = r13 >> 2;
   45122 	r11 = r11 >> 2;
   45123 	f0 = heapFloat[(r10+1)];
   45124 	f1 = heapFloat[(r11+1)];
   45125 if(!(f0 <f1)) //_LBB257_48
   45126 {
   45127 	r8 = r8 & 255;
   45128 	if(r8 !=0) //_LBB257_49
   45129 {
   45130 break _53;
   45131 }
   45132 }
   45133 }
   45134 	r8 = heap32[(r7+5)];
   45135 	r8 = (r8 - r9)|0;
   45136 	r8 = r8 >> 2;
   45137 	r8 = heap32[(r8)];
   45138 	r10 = r8 >> 2;
   45139 	r10 = heap32[(r10)];
   45140 	r10 = r10 >> 2;
   45141 	r10 = heap32[(r10)];
   45142 	heap32[(g0)] = r8;
   45143 	__FUNCTION_TABLE__[(r10)>>2](i7);
   45144 	r8 = heap32[(r7+1)];
   45145 	r10 = r8 >> 2;
   45146 	r11 = heap32[(r7+5)];
   45147 	r11 = (r11 - r9)|0;
   45148 	r10 = heap32[(r10)];
   45149 	r10 = r10 >> 2;
   45150 	r11 = r11 >> 2;
   45151 	r10 = heap32[(r10+13)];
   45152 	r11 = heap32[(r11)];
   45153 	heap32[(g0)] = r8;
   45154 	heap32[(g0+1)] = r11;
   45155 	__FUNCTION_TABLE__[(r10)>>2](i7);
   45156 	r8 = heap32[(r7+5)];
   45157 	r8 = (r8 - r9)|0;
   45158 	r8 = r8 >> 2;
   45159 	heap32[(r8)] = 0;
   45160 }
   45161 } while(0);
   45162 	r3 = (r3 + -1)|0;
   45163 if(!(r0 !=r3)) //_LBB257_36
   45164 {
   45165 break _48;
   45166 }
   45167 }
   45168 }
   45169 }
   45170 } while(0);
   45171 	return;
   45172 break;
   45173 case 14:
   45174 	r14 = _2E_str59;
   45175 	r0 = _2E_str160;
   45176 	heap32[(g0)] = r14;
   45177 	heap32[(g0+1)] = r0;
   45178 	heap32[(g0+2)] = 101;
   45179 	_assert(i7);
   45180 break;
   45181 }
   45182 }
   45183 else{
   45184 	r0 = _2E_str99;
   45185 	r1 = _2E_str1100;
   45186 	heap32[(g0)] = r0;
   45187 	heap32[(g0+1)] = r1;
   45188 	heap32[(g0+2)] = 199;
   45189 	_assert(i7);
   45190 }
   45191 }
   45192 
   45193 function _ZN28btCompoundCollisionAlgorithmD0Ev(sp)
   45194 {
   45195 	var i7;
   45196 	var fp = sp>>2;
   45197 	var r0;
   45198 	var r1;
   45199 	var r2;
   45200 	var r3;
   45201 	var r4;
   45202 	var r5;
   45203 	var r6;
   45204 	var r7;
   45205 var __label__ = 0;
   45206 	i7 = sp + -8;var g0 = i7>>2; // save stack
   45207 	r0 = heap32[(fp)];
   45208 	r1 = _ZTV28btCompoundCollisionAlgorithm;
   45209 	r2 = r0 >> 2;
   45210 	r1 = (r1 + 8)|0;
   45211 	heap32[(r2)] = r1;
   45212 	r1 = heap32[(r2+3)];
   45213 if(!(r1 <1)) //_LBB258_5
   45214 {
   45215 	r3 = 0;
   45216 _3: while(true){
   45217 	r4 = heap32[(r2+5)];
   45218 	r5 = r3 << 2;
   45219 	r4 = (r4 + r5)|0;
   45220 	r4 = r4 >> 2;
   45221 	r4 = heap32[(r4)];
   45222 if(!(r4 ==0)) //_LBB258_4
   45223 {
   45224 	r6 = r4 >> 2;
   45225 	r6 = heap32[(r6)];
   45226 	r6 = r6 >> 2;
   45227 	r6 = heap32[(r6)];
   45228 	heap32[(g0)] = r4;
   45229 	__FUNCTION_TABLE__[(r6)>>2](i7);
   45230 	r4 = heap32[(r2+1)];
   45231 	r6 = r4 >> 2;
   45232 	r7 = heap32[(r2+5)];
   45233 	r5 = (r7 + r5)|0;
   45234 	r6 = heap32[(r6)];
   45235 	r6 = r6 >> 2;
   45236 	r5 = r5 >> 2;
   45237 	r6 = heap32[(r6+13)];
   45238 	r5 = heap32[(r5)];
   45239 	heap32[(g0)] = r4;
   45240 	heap32[(g0+1)] = r5;
   45241 	__FUNCTION_TABLE__[(r6)>>2](i7);
   45242 }
   45243 	r3 = (r3 + 1)|0;
   45244 	if(r1 !=r3) //_LBB258_2
   45245 {
   45246 continue _3;
   45247 }
   45248 else{
   45249 break _3;
   45250 }
   45251 }
   45252 }
   45253 	r1 = heap32[(r2+5)];
   45254 if(!(r1 ==0)) //_LBB258_9
   45255 {
   45256 	r3 = heapU8[r0+24];
   45257 if(!(r3 ==0)) //_LBB258_8
   45258 {
   45259 	r3 = gNumAlignedFree;
   45260 	r3 = r3 >> 2;
   45261 	r4 = heap32[(r3)];
   45262 	r4 = (r4 + 1)|0;
   45263 	r1 = r1 >> 2;
   45264 	heap32[(r3)] = r4;
   45265 	r1 = heap32[(r1+-1)];
   45266 	heap32[(g0)] = r1;
   45267 	free(i7);
   45268 }
   45269 	heap32[(r2+5)] = 0;
   45270 }
   45271 	r1 = 1;
   45272 	heap8[r0+24] = r1;
   45273 	heap32[(r2+5)] = 0;
   45274 	r1 = _ZTV30btActivatingCollisionAlgorithm;
   45275 	heap32[(r2+3)] = 0;
   45276 	r1 = (r1 + 8)|0;
   45277 	heap32[(r2+4)] = 0;
   45278 	heap32[(r2)] = r1;
   45279 	heap32[(g0)] = r0;
   45280 	_ZdlPv(i7);
   45281 	return;
   45282 }
   45283 
   45284 function _ZN28btCompoundCollisionAlgorithmD1Ev(sp)
   45285 {
   45286 	var i7;
   45287 	var fp = sp>>2;
   45288 	var r0;
   45289 	var r1;
   45290 	var r2;
   45291 	var r3;
   45292 	var r4;
   45293 	var r5;
   45294 	var r6;
   45295 	var r7;
   45296 var __label__ = 0;
   45297 	i7 = sp + -8;var g0 = i7>>2; // save stack
   45298 	r0 = heap32[(fp)];
   45299 	r1 = _ZTV28btCompoundCollisionAlgorithm;
   45300 	r2 = r0 >> 2;
   45301 	r1 = (r1 + 8)|0;
   45302 	heap32[(r2)] = r1;
   45303 	r1 = heap32[(r2+3)];
   45304 if(!(r1 <1)) //_LBB259_5
   45305 {
   45306 	r3 = 0;
   45307 _3: while(true){
   45308 	r4 = heap32[(r2+5)];
   45309 	r5 = r3 << 2;
   45310 	r4 = (r4 + r5)|0;
   45311 	r4 = r4 >> 2;
   45312 	r4 = heap32[(r4)];
   45313 if(!(r4 ==0)) //_LBB259_4
   45314 {
   45315 	r6 = r4 >> 2;
   45316 	r6 = heap32[(r6)];
   45317 	r6 = r6 >> 2;
   45318 	r6 = heap32[(r6)];
   45319 	heap32[(g0)] = r4;
   45320 	__FUNCTION_TABLE__[(r6)>>2](i7);
   45321 	r4 = heap32[(r2+1)];
   45322 	r6 = r4 >> 2;
   45323 	r7 = heap32[(r2+5)];
   45324 	r5 = (r7 + r5)|0;
   45325 	r6 = heap32[(r6)];
   45326 	r6 = r6 >> 2;
   45327 	r5 = r5 >> 2;
   45328 	r6 = heap32[(r6+13)];
   45329 	r5 = heap32[(r5)];
   45330 	heap32[(g0)] = r4;
   45331 	heap32[(g0+1)] = r5;
   45332 	__FUNCTION_TABLE__[(r6)>>2](i7);
   45333 }
   45334 	r3 = (r3 + 1)|0;
   45335 	if(r1 !=r3) //_LBB259_2
   45336 {
   45337 continue _3;
   45338 }
   45339 else{
   45340 break _3;
   45341 }
   45342 }
   45343 }
   45344 	r1 = heap32[(r2+5)];
   45345 if(!(r1 ==0)) //_LBB259_9
   45346 {
   45347 	r3 = heapU8[r0+24];
   45348 if(!(r3 ==0)) //_LBB259_8
   45349 {
   45350 	r3 = gNumAlignedFree;
   45351 	r3 = r3 >> 2;
   45352 	r4 = heap32[(r3)];
   45353 	r4 = (r4 + 1)|0;
   45354 	r1 = r1 >> 2;
   45355 	heap32[(r3)] = r4;
   45356 	r1 = heap32[(r1+-1)];
   45357 	heap32[(g0)] = r1;
   45358 	free(i7);
   45359 }
   45360 	heap32[(r2+5)] = 0;
   45361 }
   45362 	r1 = 1;
   45363 	heap8[r0+24] = r1;
   45364 	heap32[(r2+5)] = 0;
   45365 	r0 = _ZTV30btActivatingCollisionAlgorithm;
   45366 	heap32[(r2+3)] = 0;
   45367 	r0 = (r0 + 8)|0;
   45368 	heap32[(r2+4)] = 0;
   45369 	heap32[(r2)] = r0;
   45370 	return;
   45371 }
   45372 
   45373 function _ZNK21btConvexInternalShape15getLocalScalingEv(sp)
   45374 {
   45375 	var i7;
   45376 	var fp = sp>>2;
   45377 	var r0;
   45378 var __label__ = 0;
   45379 	i7 = sp + 0;var g0 = i7>>2; // save stack
   45380 	r0 = heap32[(fp)];
   45381 	r0 = (r0 + 12)|0;
   45382 	r_g0 = r0;
   45383 	return;
   45384 }
   45385 
   45386 function _ZN21btConvexInternalShape9setMarginEf(sp)
   45387 {
   45388 	var i7;
   45389 	var fp = sp>>2;
   45390 	var r0;
   45391 var __label__ = 0;
   45392 	i7 = sp + 0;var g0 = i7>>2; // save stack
   45393 	r0 = heap32[(fp)];
   45394 	r0 = r0 >> 2;
   45395 	heap32[(r0+11)] = heap32[(fp+1)];
   45396 	return;
   45397 }
   45398 
   45399 function _ZNK21btConvexInternalShape9getMarginEv(sp)
   45400 {
   45401 	var i7;
   45402 	var fp = sp>>2;
   45403 	var r0;
   45404 	var f0;
   45405 var __label__ = 0;
   45406 	i7 = sp + 0;var g0 = i7>>2; // save stack
   45407 	r0 = heap32[(fp)];
   45408 	r0 = r0 >> 2;
   45409 	f0 = heapFloat[(r0+11)];
   45410 	f_g0 = f0;
   45411 	return;
   45412 }
   45413 
   45414 function _ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv(sp)
   45415 {
   45416 	var i7;
   45417 	var fp = sp>>2;
   45418 	var r0;
   45419 var __label__ = 0;
   45420 	i7 = sp + 0;var g0 = i7>>2; // save stack
   45421 	r0 = 52;
   45422 	r_g0 = r0;
   45423 	return;
   45424 }
   45425 
   45426 function _ZNK15btTriangleShape14getNumVerticesEv(sp)
   45427 {
   45428 	var i7;
   45429 	var fp = sp>>2;
   45430 	var r0;
   45431 var __label__ = 0;
   45432 	i7 = sp + 0;var g0 = i7>>2; // save stack
   45433 	r0 = 3;
   45434 	r_g0 = r0;
   45435 	return;
   45436 }
   45437 
   45438 function _ZNK15btTriangleShape9getVertexEiR9btVector3(sp)
   45439 {
   45440 	var i7;
   45441 	var fp = sp>>2;
   45442 	var r0;
   45443 	var r1;
   45444 	var r2;
   45445 var __label__ = 0;
   45446 	i7 = sp + 0;var g0 = i7>>2; // save stack
   45447 	r0 = heap32[(fp+1)];
   45448 	r1 = heap32[(fp)];
   45449 	r0 = r0 << 4;
   45450 	r2 = heap32[(fp+2)];
   45451 	r0 = (r1 + r0)|0;
   45452 	r1 = r2 >> 2;
   45453 	r0 = r0 >> 2;
   45454 	heap32[(r1)] = heap32[(r0+13)];
   45455 	heap32[(r1+1)] = heap32[(r0+14)];
   45456 	heap32[(r1+2)] = heap32[(r0+15)];
   45457 	heap32[(r1+3)] = heap32[(r0+16)];
   45458 	return;
   45459 }
   45460 
   45461 function _ZNK15btTriangleShape11getNumEdgesEv(sp)
   45462 {
   45463 	var i7;
   45464 	var fp = sp>>2;
   45465 	var r0;
   45466 var __label__ = 0;
   45467 	i7 = sp + 0;var g0 = i7>>2; // save stack
   45468 	r0 = 3;
   45469 	r_g0 = r0;
   45470 	return;
   45471 }
   45472 
   45473 function _ZNK15btTriangleShape7getEdgeEiR9btVector3S1_(sp)
   45474 {
   45475 	var i7;
   45476 	var fp = sp>>2;
   45477 	var r0;
   45478 	var r1;
   45479 	var r2;
   45480 	var r3;
   45481 	var r4;
   45482 var __label__ = 0;
   45483 	i7 = sp + -16;var g0 = i7>>2; // save stack
   45484 	r0 = heap32[(fp)];
   45485 	r1 = r0 >> 2;
   45486 	r2 = heap32[(r1)];
   45487 	r2 = r2 >> 2;
   45488 	r2 = heap32[(r2+24)];
   45489 	r3 = heap32[(fp+1)];
   45490 	r4 = heap32[(fp+2)];
   45491 	heap32[(g0)] = r0;
   45492 	heap32[(g0+1)] = r3;
   45493 	heap32[(g0+2)] = r4;
   45494 	__FUNCTION_TABLE__[(r2)>>2](i7);
   45495 	r1 = heap32[(r1)];
   45496 	r1 = r1 >> 2;
   45497 	r1 = heap32[(r1+24)];
   45498 	r2 = (r3 + 1)|0;
   45499 	r2 = (r2 % 3)|0;
   45500 	r3 = heap32[(fp+3)];
   45501 	heap32[(g0)] = r0;
   45502 	heap32[(g0+1)] = r2;
   45503 	heap32[(g0+2)] = r3;
   45504 	__FUNCTION_TABLE__[(r1)>>2](i7);
   45505 	return;
   45506 }
   45507 
   45508 function _ZNK15btTriangleShape7getAabbERK11btTransformR9btVector3S4_(sp)
   45509 {
   45510 	var i7;
   45511 	var fp = sp>>2;
   45512 	var r0;
   45513 	var r1;
   45514 	var r2;
   45515 	var r3;
   45516 	var r4;
   45517 var __label__ = 0;
   45518 	i7 = sp + -16;var g0 = i7>>2; // save stack
   45519 	r0 = heap32[(fp)];
   45520 	r1 = r0 >> 2;
   45521 	r1 = heap32[(r1)];
   45522 	r1 = r1 >> 2;
   45523 	r1 = heap32[(r1+18)];
   45524 	r2 = heap32[(fp+1)];
   45525 	r3 = heap32[(fp+2)];
   45526 	r4 = heap32[(fp+3)];
   45527 	heap32[(g0)] = r0;
   45528 	heap32[(g0+1)] = r2;
   45529 	heap32[(g0+2)] = r3;
   45530 	heap32[(g0+3)] = r4;
   45531 	__FUNCTION_TABLE__[(r1)>>2](i7);
   45532 	return;
   45533 }
   45534 
   45535 function _ZNK15btTriangleShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp)
   45536 {
   45537 	var i7;
   45538 	var fp = sp>>2;
   45539 	var r0;
   45540 	var r1;
   45541 	var r2;
   45542 	var r3;
   45543 	var f0;
   45544 	var f1;
   45545 	var f2;
   45546 	var f3;
   45547 	var f4;
   45548 	var f5;
   45549 	var f6;
   45550 	var f7;
   45551 	var f8;
   45552 	var f9;
   45553 	var f10;
   45554 	var f11;
   45555 var __label__ = 0;
   45556 	i7 = sp + 0;var g0 = i7>>2; // save stack
   45557 	r0 = heap32[(fp+1)];
   45558 	r1 = heap32[(fp+2)];
   45559 	r2 = r0 >> 2;
   45560 	r1 = r1 >> 2;
   45561 	f0 = heapFloat[(r2+13)];
   45562 	f1 = heapFloat[(r1)];
   45563 	f2 = heapFloat[(r2+17)];
   45564 	f3 = heapFloat[(r2+21)];
   45565 	f4 = heapFloat[(r2+14)];
   45566 	f5 = heapFloat[(r1+1)];
   45567 	f6 = heapFloat[(r2+18)];
   45568 	f7 = heapFloat[(r2+22)];
   45569 	f0 = f1*f0;
   45570 	f4 = f5*f4;
   45571 	f8 = heapFloat[(r2+15)];
   45572 	f9 = heapFloat[(r1+2)];
   45573 	f10 = heapFloat[(r2+19)];
   45574 	f11 = heapFloat[(r2+23)];
   45575 	f2 = f1*f2;
   45576 	f6 = f5*f6;
   45577 	f1 = f1*f3;
   45578 	f3 = f5*f7;
   45579 	f0 = f0+f4;
   45580 	f4 = f9*f8;
   45581 	f2 = f2+f6;
   45582 	f5 = f9*f10;
   45583 	f1 = f1+f3;
   45584 	f3 = f9*f11;
   45585 	f0 = f0+f4;
   45586 	f2 = f2+f5;
   45587 	r1 = heap32[(fp)];
   45588 	f1 = f1+f3;
   45589 	if(f0 >=f2) //_LBB269_2
   45590 {
   45591 	r2 = 2;
   45592 	r3 = 0;
   45593 	r2 = f0 < f1 ? r2 : r3;
   45594 }
   45595 else{
   45596 	r2 = 2;
   45597 	r3 = 1;
   45598 	r2 = f2 < f1 ? r2 : r3;
   45599 }
   45600 	r2 = r2 << 4;
   45601 	r0 = (r0 + r2)|0;
   45602 	r1 = r1 >> 2;
   45603 	r0 = r0 >> 2;
   45604 	heap32[(r1)] = heap32[(r0+13)];
   45605 	heap32[(r1+1)] = heap32[(r0+14)];
   45606 	heap32[(r1+2)] = heap32[(r0+15)];
   45607 	heap32[(r1+3)] = heap32[(r0+16)];
   45608 	return;
   45609 }
   45610 
   45611 function _ZNK15btTriangleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(sp)
   45612 {
   45613 	var i7;
   45614 	var fp = sp>>2;
   45615 	var r0;
   45616 	var r1;
   45617 	var r2;
   45618 	var r3;
   45619 	var r4;
   45620 	var r5;
   45621 	var f0;
   45622 	var f1;
   45623 	var f2;
   45624 	var f3;
   45625 	var f4;
   45626 	var f5;
   45627 	var f6;
   45628 	var f7;
   45629 	var f8;
   45630 	var f9;
   45631 	var f10;
   45632 	var f11;
   45633 var __label__ = 0;
   45634 	i7 = sp + 0;var g0 = i7>>2; // save stack
   45635 	r0 = heap32[(fp+3)];
   45636 if(!(r0 <1)) //_LBB270_6
   45637 {
   45638 	r1 = heap32[(fp)];
   45639 	r2 = heap32[(fp+1)];
   45640 	r3 = heap32[(fp+2)];
   45641 	r2 = (r2 + 8)|0;
   45642 	r3 = (r3 + 12)|0;
   45643 _3: while(true){
   45644 	r4 = r1 >> 2;
   45645 	r5 = r2 >> 2;
   45646 	f0 = heapFloat[(r4+13)];
   45647 	f1 = heapFloat[(r5+-2)];
   45648 	f2 = heapFloat[(r4+17)];
   45649 	f3 = heapFloat[(r4+21)];
   45650 	f4 = heapFloat[(r4+14)];
   45651 	f5 = heapFloat[(r5+-1)];
   45652 	f6 = heapFloat[(r4+18)];
   45653 	f7 = heapFloat[(r4+22)];
   45654 	f0 = f1*f0;
   45655 	f4 = f5*f4;
   45656 	f8 = heapFloat[(r4+15)];
   45657 	f9 = heapFloat[(r5)];
   45658 	f10 = heapFloat[(r4+19)];
   45659 	f11 = heapFloat[(r4+23)];
   45660 	f2 = f1*f2;
   45661 	f6 = f5*f6;
   45662 	f1 = f1*f3;
   45663 	f3 = f5*f7;
   45664 	f0 = f0+f4;
   45665 	f4 = f9*f8;
   45666 	f2 = f2+f6;
   45667 	f5 = f9*f10;
   45668 	f1 = f1+f3;
   45669 	f3 = f9*f11;
   45670 	f0 = f0+f4;
   45671 	f2 = f2+f5;
   45672 	f1 = f1+f3;
   45673 	if(f0 >=f2) //_LBB270_4
   45674 {
   45675 	r4 = 2;
   45676 	r5 = 0;
   45677 	r4 = f0 < f1 ? r4 : r5;
   45678 }
   45679 else{
   45680 	r4 = 2;
   45681 	r5 = 1;
   45682 	r4 = f2 < f1 ? r4 : r5;
   45683 }
   45684 	r4 = r4 << 4;
   45685 	r4 = (r1 + r4)|0;
   45686 	r5 = r3 >> 2;
   45687 	r4 = r4 >> 2;
   45688 	heap32[(r5+-3)] = heap32[(r4+13)];
   45689 	heap32[(r5+-2)] = heap32[(r4+14)];
   45690 	r0 = (r0 + -1)|0;
   45691 	r2 = (r2 + 16)|0;
   45692 	r3 = (r3 + 16)|0;
   45693 	heap32[(r5+-1)] = heap32[(r4+15)];
   45694 	heap32[(r5)] = heap32[(r4+16)];
   45695 	if(r0 !=0) //_LBB270_2
   45696 {
   45697 continue _3;
   45698 }
   45699 else{
   45700 break _3;
   45701 }
   45702 }
   45703 }
   45704 	return;
   45705 }
   45706 
   45707 function _ZNK15btTriangleShape8getPlaneER9btVector3S1_i(sp)
   45708 {
   45709 	var i7;
   45710 	var fp = sp>>2;
   45711 	var r0;
   45712 	var r1;
   45713 	var r2;
   45714 	var r3;
   45715 	var r4;
   45716 var __label__ = 0;
   45717 	i7 = sp + -16;var g0 = i7>>2; // save stack
   45718 	r0 = heap32[(fp)];
   45719 	r1 = r0 >> 2;
   45720 	r1 = heap32[(r1)];
   45721 	r1 = r1 >> 2;
   45722 	r1 = heap32[(r1+28)];
   45723 	r2 = heap32[(fp+3)];
   45724 	r3 = heap32[(fp+1)];
   45725 	r4 = heap32[(fp+2)];
   45726 	heap32[(g0)] = r0;
   45727 	heap32[(g0+1)] = r2;
   45728 	heap32[(g0+2)] = r3;
   45729 	heap32[(g0+3)] = r4;
   45730 	__FUNCTION_TABLE__[(r1)>>2](i7);
   45731 	return;
   45732 }
   45733 
   45734 function _ZNK15btTriangleShape12getNumPlanesEv(sp)
   45735 {
   45736 	var i7;
   45737 	var fp = sp>>2;
   45738 	var r0;
   45739 var __label__ = 0;
   45740 	i7 = sp + 0;var g0 = i7>>2; // save stack
   45741 	r0 = 1;
   45742 	r_g0 = r0;
   45743 	return;
   45744 }
   45745 
   45746 function _ZNK15btTriangleShape7getNameEv(sp)
   45747 {
   45748 	var i7;
   45749 	var fp = sp>>2;
   45750 	var r0;
   45751 var __label__ = 0;
   45752 	i7 = sp + 0;var g0 = i7>>2; // save stack
   45753 	r0 = _2E_str109;
   45754 	r_g0 = r0;
   45755 	return;
   45756 }
   45757 
   45758 function _ZNK15btTriangleShape36getNumPreferredPenetrationDirectionsEv(sp)
   45759 {
   45760 	var i7;
   45761 	var fp = sp>>2;
   45762 	var r0;
   45763 var __label__ = 0;
   45764 	i7 = sp + 0;var g0 = i7>>2; // save stack
   45765 	r0 = 2;
   45766 	r_g0 = r0;
   45767 	return;
   45768 }
   45769 
   45770 function _ZN24btConvexTriangleCallbackD1Ev(sp)
   45771 {
   45772 	var i7;
   45773 	var fp = sp>>2;
   45774 	var r0;
   45775 	var r1;
   45776 	var r2;
   45777 	var r3;
   45778 var __label__ = 0;
   45779 	i7 = sp + -8;var g0 = i7>>2; // save stack
   45780 	r0 = heap32[(fp)];
   45781 	r1 = _ZTV24btConvexTriangleCallback;
   45782 	r0 = r0 >> 2;
   45783 	r1 = (r1 + 8)|0;
   45784 	heap32[(r0)] = r1;
   45785 	r1 = heap32[(r0+12)];
   45786 	r2 = r1 >> 2;
   45787 	r2 = heap32[(r2)];
   45788 	r2 = r2 >> 2;
   45789 	r2 = heap32[(r2+5)];
   45790 	r3 = heap32[(r0+16)];
   45791 	heap32[(g0)] = r1;
   45792 	heap32[(g0+1)] = r3;
   45793 	__FUNCTION_TABLE__[(r2)>>2](i7);
   45794 	r1 = heap32[(r0+12)];
   45795 	r2 = r1 >> 2;
   45796 	r2 = heap32[(r2)];
   45797 	r2 = r2 >> 2;
   45798 	r2 = heap32[(r2+4)];
   45799 	r3 = heap32[(r0+16)];
   45800 	heap32[(g0)] = r1;
   45801 	heap32[(g0+1)] = r3;
   45802 	r1 = _ZTV18btTriangleCallback;
   45803 	r1 = (r1 + 8)|0;
   45804 	__FUNCTION_TABLE__[(r2)>>2](i7);
   45805 	heap32[(r0)] = r1;
   45806 	return;
   45807 }
   45808 
   45809 function _ZN24btConvexTriangleCallbackD0Ev(sp)
   45810 {
   45811 	var i7;
   45812 	var fp = sp>>2;
   45813 	var r0;
   45814 	var r1;
   45815 	var r2;
   45816 	var r3;
   45817 	var r4;
   45818 var __label__ = 0;
   45819 	i7 = sp + -8;var g0 = i7>>2; // save stack
   45820 	r0 = heap32[(fp)];
   45821 	r1 = _ZTV24btConvexTriangleCallback;
   45822 	r2 = r0 >> 2;
   45823 	r1 = (r1 + 8)|0;
   45824 	heap32[(r2)] = r1;
   45825 	r1 = heap32[(r2+12)];
   45826 	r3 = r1 >> 2;
   45827 	r3 = heap32[(r3)];
   45828 	r3 = r3 >> 2;
   45829 	r3 = heap32[(r3+5)];
   45830 	r4 = heap32[(r2+16)];
   45831 	heap32[(g0)] = r1;
   45832 	heap32[(g0+1)] = r4;
   45833 	__FUNCTION_TABLE__[(r3)>>2](i7);
   45834 	r1 = heap32[(r2+12)];
   45835 	r3 = r1 >> 2;
   45836 	r3 = heap32[(r3)];
   45837 	r3 = r3 >> 2;
   45838 	r3 = heap32[(r3+4)];
   45839 	r4 = heap32[(r2+16)];
   45840 	heap32[(g0)] = r1;
   45841 	heap32[(g0+1)] = r4;
   45842 	r1 = _ZTV18btTriangleCallback;
   45843 	r1 = (r1 + 8)|0;
   45844 	__FUNCTION_TABLE__[(r3)>>2](i7);
   45845 	heap32[(r2)] = r1;
   45846 	heap32[(g0)] = r0;
   45847 	_ZdlPv(i7);
   45848 	return;
   45849 }
   45850 
   45851 function _ZN24btConvexTriangleCallback15processTriangleEP9btVector3ii(sp)
   45852 {
   45853 	var i7;
   45854 	var fp = sp>>2;
   45855 	var r0;
   45856 	var r1;
   45857 	var r2;
   45858 	var r3;
   45859 	var r4;
   45860 	var r5;
   45861 	var r6;
   45862 	var r7;
   45863 	var r8;
   45864 	var r9;
   45865 	var r10;
   45866 	var r11;
   45867 	var f0;
   45868 	var f1;
   45869 	var f2;
   45870 	var f3;
   45871 	var f4;
   45872 	var f5;
   45873 	var f6;
   45874 	var f7;
   45875 	var f8;
   45876 	var f9;
   45877 	var f10;
   45878 var __label__ = 0;
   45879 	i7 = sp + -240;var g0 = i7>>2; // save stack
   45880 	r0 = heap32[(fp)];
   45881 	r0 = r0 >> 2;
   45882 	r1 = heap32[(r0+13)];
   45883 	r2 = heap32[(fp+1)];
   45884 	r3 = heap32[(r0+12)];
   45885 	r4 = heap32[(r0+2)];
   45886 if(!(r1 ==0)) //_LBB277_4
   45887 {
   45888 	r1 = r1 >> 2;
   45889 	r1 = heap32[(r1+5)];
   45890 if(!(r1 ==0)) //_LBB277_4
   45891 {
   45892 	r5 = r1 >> 2;
   45893 	r5 = heap32[(r5)];
   45894 	r5 = r5 >> 2;
   45895 	r5 = heap32[(r5+12)];
   45896 	heap32[(g0)] = r1;
   45897 	__FUNCTION_TABLE__[(r5)>>2](i7);
   45898 	r1 = r_g0 & 1;
   45899 if(!(r1 ==0)) //_LBB277_4
   45900 {
   45901 	r1 = sp + -112;
   45902 	r5 = r1 >> 2;
   45903 	heap32[(fp+-28)] = 1065353216;
   45904 	heap32[(r5+1)] = 1065353216;
   45905 	heap32[(r5+2)] = 0;
   45906 	heap32[(r5+3)] = 0;
   45907 	r5 = heap32[(r0+13)];
   45908 	r5 = r5 >> 2;
   45909 	r6 = r4 >> 2;
   45910 	r7 = r2 >> 2;
   45911 	r8 = heap32[(r5+5)];
   45912 	r8 = r8 >> 2;
   45913 	f0 = heapFloat[(r7+4)];
   45914 	f1 = heapFloat[(r6+1)];
   45915 	f2 = heapFloat[(r7+5)];
   45916 	f3 = heapFloat[(r6+2)];
   45917 	r8 = heap32[(r8)];
   45918 	f4 = heapFloat[(r6+5)];
   45919 	f5 = heapFloat[(r6+6)];
   45920 	f1 = f1*f0;
   45921 	f3 = f3*f2;
   45922 	f6 = heapFloat[(r7+6)];
   45923 	f7 = heapFloat[(r6+3)];
   45924 	r8 = r8 >> 2;
   45925 	f8 = heapFloat[(r6+9)];
   45926 	f9 = heapFloat[(r6+10)];
   45927 	f10 = heapFloat[(r6+7)];
   45928 	f4 = f4*f0;
   45929 	f5 = f5*f2;
   45930 	f1 = f1+f3;
   45931 	f3 = f7*f6;
   45932 	f7 = heapFloat[(r6+11)];
   45933 	r8 = heap32[(r8+2)];
   45934 	f0 = f8*f0;
   45935 	f2 = f9*f2;
   45936 	f4 = f4+f5;
   45937 	f5 = f10*f6;
   45938 	f1 = f1+f3;
   45939 	f3 = heapFloat[(r6+13)];
   45940 	f8 = heapFloat[(r6+15)];
   45941 	f9 = heapFloat[(r6+14)];
   45942 	r9 = sp + -96;
   45943 	f4 = f4+f5;
   45944 	f0 = f0+f2;
   45945 	f2 = f7*f6;
   45946 	f1 = f1+f3;
   45947 	f0 = f0+f2;
   45948 	r10 = r9 >> 2;
   45949 	f2 = f4+f9;
   45950 	heapFloat[(fp+-24)] = f1;
   45951 	f0 = f0+f8;
   45952 	heapFloat[(r10+1)] = f2;
   45953 	heapFloat[(r10+2)] = f0;
   45954 	heap32[(r10+3)] = 0;
   45955 	f0 = heapFloat[(r7)];
   45956 	f1 = heapFloat[(r6+1)];
   45957 	f2 = heapFloat[(r7+1)];
   45958 	f3 = heapFloat[(r6+2)];
   45959 	f4 = heapFloat[(r6+5)];
   45960 	f5 = heapFloat[(r6+6)];
   45961 	f1 = f1*f0;
   45962 	f3 = f3*f2;
   45963 	f6 = heapFloat[(r7+2)];
   45964 	f7 = heapFloat[(r6+3)];
   45965 	f8 = heapFloat[(r6+9)];
   45966 	f9 = heapFloat[(r6+10)];
   45967 	f10 = heapFloat[(r6+7)];
   45968 	f4 = f4*f0;
   45969 	f5 = f5*f2;
   45970 	f1 = f1+f3;
   45971 	f3 = f7*f6;
   45972 	f7 = heapFloat[(r6+11)];
   45973 	f0 = f8*f0;
   45974 	f2 = f9*f2;
   45975 	f4 = f4+f5;
   45976 	f5 = f10*f6;
   45977 	f1 = f1+f3;
   45978 	f3 = heapFloat[(r6+13)];
   45979 	f8 = heapFloat[(r6+15)];
   45980 	f9 = heapFloat[(r6+14)];
   45981 	r10 = sp + -80;
   45982 	f4 = f4+f5;
   45983 	f0 = f0+f2;
   45984 	f2 = f7*f6;
   45985 	f1 = f1+f3;
   45986 	f0 = f0+f2;
   45987 	r11 = r10 >> 2;
   45988 	f2 = f4+f9;
   45989 	heapFloat[(fp+-20)] = f1;
   45990 	f0 = f0+f8;
   45991 	heapFloat[(r11+1)] = f2;
   45992 	heapFloat[(r11+2)] = f0;
   45993 	heap32[(r11+3)] = 0;
   45994 	r5 = heap32[(r5+5)];
   45995 	heap32[(g0)] = r5;
   45996 	heap32[(g0+1)] = r10;
   45997 	heap32[(g0+2)] = r9;
   45998 	heap32[(g0+3)] = r1;
   45999 	__FUNCTION_TABLE__[(r8)>>2](i7);
   46000 	r5 = heap32[(r0+13)];
   46001 	r5 = r5 >> 2;
   46002 	r8 = heap32[(r5+5)];
   46003 	r8 = r8 >> 2;
   46004 	f0 = heapFloat[(r7+8)];
   46005 	f1 = heapFloat[(r6+1)];
   46006 	f2 = heapFloat[(r7+9)];
   46007 	f3 = heapFloat[(r6+2)];
   46008 	r8 = heap32[(r8)];
   46009 	f4 = heapFloat[(r6+5)];
   46010 	f5 = heapFloat[(r6+6)];
   46011 	f1 = f1*f0;
   46012 	f3 = f3*f2;
   46013 	f6 = heapFloat[(r7+10)];
   46014 	f7 = heapFloat[(r6+3)];
   46015 	r8 = r8 >> 2;
   46016 	f8 = heapFloat[(r6+9)];
   46017 	f9 = heapFloat[(r6+10)];
   46018 	f10 = heapFloat[(r6+7)];
   46019 	f4 = f4*f0;
   46020 	f5 = f5*f2;
   46021 	f1 = f1+f3;
   46022 	f3 = f7*f6;
   46023 	f7 = heapFloat[(r6+11)];
   46024 	r8 = heap32[(r8+2)];
   46025 	f0 = f8*f0;
   46026 	f2 = f9*f2;
   46027 	f4 = f4+f5;
   46028 	f5 = f10*f6;
   46029 	f1 = f1+f3;
   46030 	f3 = heapFloat[(r6+13)];
   46031 	f8 = heapFloat[(r6+15)];
   46032 	f9 = heapFloat[(r6+14)];
   46033 	r9 = sp + -64;
   46034 	f4 = f4+f5;
   46035 	f0 = f0+f2;
   46036 	f2 = f7*f6;
   46037 	f1 = f1+f3;
   46038 	f0 = f0+f2;
   46039 	r10 = r9 >> 2;
   46040 	f2 = f4+f9;
   46041 	heapFloat[(fp+-16)] = f1;
   46042 	f0 = f0+f8;
   46043 	heapFloat[(r10+1)] = f2;
   46044 	heapFloat[(r10+2)] = f0;
   46045 	heap32[(r10+3)] = 0;
   46046 	f0 = heapFloat[(r7+4)];
   46047 	f1 = heapFloat[(r6+1)];
   46048 	f2 = heapFloat[(r7+5)];
   46049 	f3 = heapFloat[(r6+2)];
   46050 	f4 = heapFloat[(r6+5)];
   46051 	f5 = heapFloat[(r6+6)];
   46052 	f1 = f1*f0;
   46053 	f3 = f3*f2;
   46054 	f6 = heapFloat[(r7+6)];
   46055 	f7 = heapFloat[(r6+3)];
   46056 	f8 = heapFloat[(r6+9)];
   46057 	f9 = heapFloat[(r6+10)];
   46058 	f10 = heapFloat[(r6+7)];
   46059 	f4 = f4*f0;
   46060 	f5 = f5*f2;
   46061 	f1 = f1+f3;
   46062 	f3 = f7*f6;
   46063 	f7 = heapFloat[(r6+11)];
   46064 	f0 = f8*f0;
   46065 	f2 = f9*f2;
   46066 	f4 = f4+f5;
   46067 	f5 = f10*f6;
   46068 	f1 = f1+f3;
   46069 	f3 = heapFloat[(r6+13)];
   46070 	f8 = heapFloat[(r6+15)];
   46071 	f9 = heapFloat[(r6+14)];
   46072 	r10 = sp + -48;
   46073 	f4 = f4+f5;
   46074 	f0 = f0+f2;
   46075 	f2 = f7*f6;
   46076 	f1 = f1+f3;
   46077 	f0 = f0+f2;
   46078 	r11 = r10 >> 2;
   46079 	f2 = f4+f9;
   46080 	heapFloat[(fp+-12)] = f1;
   46081 	f0 = f0+f8;
   46082 	heapFloat[(r11+1)] = f2;
   46083 	heapFloat[(r11+2)] = f0;
   46084 	heap32[(r11+3)] = 0;
   46085 	r5 = heap32[(r5+5)];
   46086 	heap32[(g0)] = r5;
   46087 	heap32[(g0+1)] = r10;
   46088 	heap32[(g0+2)] = r9;
   46089 	heap32[(g0+3)] = r1;
   46090 	__FUNCTION_TABLE__[(r8)>>2](i7);
   46091 	r5 = heap32[(r0+13)];
   46092 	r5 = r5 >> 2;
   46093 	r8 = heap32[(r5+5)];
   46094 	r8 = r8 >> 2;
   46095 	f0 = heapFloat[(r7)];
   46096 	f1 = heapFloat[(r6+1)];
   46097 	f2 = heapFloat[(r7+1)];
   46098 	f3 = heapFloat[(r6+2)];
   46099 	r8 = heap32[(r8)];
   46100 	f4 = heapFloat[(r6+5)];
   46101 	f5 = heapFloat[(r6+6)];
   46102 	f1 = f1*f0;
   46103 	f3 = f3*f2;
   46104 	f6 = heapFloat[(r7+2)];
   46105 	f7 = heapFloat[(r6+3)];
   46106 	r8 = r8 >> 2;
   46107 	f8 = heapFloat[(r6+9)];
   46108 	f9 = heapFloat[(r6+10)];
   46109 	f10 = heapFloat[(r6+7)];
   46110 	f4 = f4*f0;
   46111 	f5 = f5*f2;
   46112 	f1 = f1+f3;
   46113 	f3 = f7*f6;
   46114 	f7 = heapFloat[(r6+11)];
   46115 	r8 = heap32[(r8+2)];
   46116 	f0 = f8*f0;
   46117 	f2 = f9*f2;
   46118 	f4 = f4+f5;
   46119 	f5 = f10*f6;
   46120 	f1 = f1+f3;
   46121 	f3 = heapFloat[(r6+13)];
   46122 	f8 = heapFloat[(r6+15)];
   46123 	f9 = heapFloat[(r6+14)];
   46124 	r9 = sp + -32;
   46125 	f4 = f4+f5;
   46126 	f0 = f0+f2;
   46127 	f2 = f7*f6;
   46128 	f1 = f1+f3;
   46129 	f0 = f0+f2;
   46130 	r10 = r9 >> 2;
   46131 	f2 = f4+f9;
   46132 	heapFloat[(fp+-8)] = f1;
   46133 	f0 = f0+f8;
   46134 	heapFloat[(r10+1)] = f2;
   46135 	heapFloat[(r10+2)] = f0;
   46136 	heap32[(r10+3)] = 0;
   46137 	f0 = heapFloat[(r7+8)];
   46138 	f1 = heapFloat[(r6+1)];
   46139 	f2 = heapFloat[(r7+9)];
   46140 	f3 = heapFloat[(r6+2)];
   46141 	f4 = heapFloat[(r6+5)];
   46142 	f5 = heapFloat[(r6+6)];
   46143 	f1 = f1*f0;
   46144 	f3 = f3*f2;
   46145 	f6 = heapFloat[(r7+10)];
   46146 	f7 = heapFloat[(r6+3)];
   46147 	f8 = heapFloat[(r6+9)];
   46148 	f9 = heapFloat[(r6+10)];
   46149 	f10 = heapFloat[(r6+7)];
   46150 	f4 = f4*f0;
   46151 	f5 = f5*f2;
   46152 	f1 = f1+f3;
   46153 	f3 = f7*f6;
   46154 	f7 = heapFloat[(r6+11)];
   46155 	f0 = f8*f0;
   46156 	f2 = f9*f2;
   46157 	f4 = f4+f5;
   46158 	f5 = f10*f6;
   46159 	f1 = f1+f3;
   46160 	f3 = heapFloat[(r6+13)];
   46161 	f8 = heapFloat[(r6+15)];
   46162 	f9 = heapFloat[(r6+14)];
   46163 	r6 = sp + -16;
   46164 	f4 = f4+f5;
   46165 	f0 = f0+f2;
   46166 	f2 = f7*f6;
   46167 	f1 = f1+f3;
   46168 	f0 = f0+f2;
   46169 	r7 = r6 >> 2;
   46170 	f2 = f4+f9;
   46171 	heapFloat[(fp+-4)] = f1;
   46172 	f0 = f0+f8;
   46173 	heapFloat[(r7+1)] = f2;
   46174 	heapFloat[(r7+2)] = f0;
   46175 	heap32[(r7+3)] = 0;
   46176 	r5 = heap32[(r5+5)];
   46177 	heap32[(g0)] = r5;
   46178 	heap32[(g0+1)] = r6;
   46179 	heap32[(g0+2)] = r9;
   46180 	heap32[(g0+3)] = r1;
   46181 	__FUNCTION_TABLE__[(r8)>>2](i7);
   46182 }
   46183 }
   46184 }
   46185 	r1 = heap32[(r0+1)];
   46186 	r1 = r1 >> 2;
   46187 	r1 = heap32[(r1+48)];
   46188 	r1 = r1 >> 2;
   46189 	r1 = heap32[(r1+1)];
   46190 if(!(r1 >19)) //_LBB277_9
   46191 {
   46192 	r1 = heap32[(fp+2)];
   46193 	r5 = heap32[(fp+3)];
   46194 	r6 = sp + -216;
   46195 	r7 = r6 >> 2;
   46196 	heap32[(r7+2)] = 0;
   46197 	heap32[(r7+3)] = 1065353216;
   46198 	heap32[(r7+4)] = 1065353216;
   46199 	r8 = _ZTV15btTriangleShape;
   46200 	heap32[(r7+5)] = 1065353216;
   46201 	r8 = (r8 + 8)|0;
   46202 	heap32[(r7+6)] = 0;
   46203 	heap32[(fp+-54)] = r8;
   46204 	r2 = r2 >> 2;
   46205 	heap32[(r7+1)] = 1;
   46206 	heap32[(r7+13)] = heap32[(r2)];
   46207 	heap32[(r7+14)] = heap32[(r2+1)];
   46208 	heap32[(r7+15)] = heap32[(r2+2)];
   46209 	heap32[(r7+16)] = heap32[(r2+3)];
   46210 	heap32[(r7+17)] = heap32[(r2+4)];
   46211 	heap32[(r7+18)] = heap32[(r2+5)];
   46212 	heap32[(r7+19)] = heap32[(r2+6)];
   46213 	heap32[(r7+20)] = heap32[(r2+7)];
   46214 	heap32[(r7+21)] = heap32[(r2+8)];
   46215 	heap32[(r7+22)] = heap32[(r2+9)];
   46216 	heap32[(r7+23)] = heap32[(r2+10)];
   46217 	heap32[(r7+24)] = heap32[(r2+11)];
   46218 	r2 = r4 >> 2;
   46219 	heap32[(r7+11)] = heap32[(r0+14)];
   46220 	r4 = heap32[(r2+48)];
   46221 	heap32[(r2+48)] = r6;
   46222 	r6 = r3 >> 2;
   46223 	r7 = heap32[(r6)];
   46224 	r7 = r7 >> 2;
   46225 	r7 = heap32[(r7+2)];
   46226 	r8 = heap32[(r0+16)];
   46227 	r9 = heap32[(r0+2)];
   46228 	r10 = heap32[(r0+1)];
   46229 	heap32[(g0)] = r3;
   46230 	heap32[(g0+1)] = r10;
   46231 	heap32[(g0+2)] = r9;
   46232 	heap32[(g0+3)] = r8;
   46233 	__FUNCTION_TABLE__[(r7)>>2](i7);
   46234 	r7 = r_g0;
   46235 	r8 = heap32[(r0+11)];
   46236 	r9 = r8 >> 2;
   46237 	r10 = heap32[(r9)];
   46238 	r9 = heap32[(r9+34)];
   46239 	r11 = heap32[(r0+2)];
   46240 	if(r9 !=r11) //_LBB277_7
   46241 {
   46242 	r9 = r10 >> 2;
   46243 	r9 = heap32[(r9+3)];
   46244 	heap32[(g0)] = r8;
   46245 	heap32[(g0+1)] = r1;
   46246 	heap32[(g0+2)] = r5;
   46247 	__FUNCTION_TABLE__[(r9)>>2](i7);
   46248 }
   46249 else{
   46250 	r10 = r10 >> 2;
   46251 	r10 = heap32[(r10+2)];
   46252 	heap32[(g0)] = r8;
   46253 	heap32[(g0+1)] = r1;
   46254 	heap32[(g0+2)] = r5;
   46255 	__FUNCTION_TABLE__[(r10)>>2](i7);
   46256 }
   46257 	r1 = r7 >> 2;
   46258 	r5 = heap32[(r1)];
   46259 	r5 = r5 >> 2;
   46260 	r5 = heap32[(r5+2)];
   46261 	r8 = heap32[(r0+11)];
   46262 	r9 = heap32[(r0+13)];
   46263 	r10 = heap32[(r0+2)];
   46264 	r0 = heap32[(r0+1)];
   46265 	heap32[(g0)] = r7;
   46266 	heap32[(g0+1)] = r0;
   46267 	heap32[(g0+2)] = r10;
   46268 	heap32[(g0+3)] = r9;
   46269 	heap32[(g0+4)] = r8;
   46270 	__FUNCTION_TABLE__[(r5)>>2](i7);
   46271 	r0 = heap32[(r1)];
   46272 	r0 = r0 >> 2;
   46273 	r0 = heap32[(r0)];
   46274 	heap32[(g0)] = r7;
   46275 	__FUNCTION_TABLE__[(r0)>>2](i7);
   46276 	r0 = heap32[(r6)];
   46277 	r0 = r0 >> 2;
   46278 	r0 = heap32[(r0+13)];
   46279 	heap32[(g0)] = r3;
   46280 	heap32[(g0+1)] = r7;
   46281 	__FUNCTION_TABLE__[(r0)>>2](i7);
   46282 	heap32[(r2+48)] = r4;
   46283 }
   46284 	return;
   46285 }
   46286 
   46287 function _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD1Ev(sp)
   46288 {
   46289 	var i7;
   46290 	var fp = sp>>2;
   46291 	var r0;
   46292 	var r1;
   46293 var __label__ = 0;
   46294 	i7 = sp + 0;var g0 = i7>>2; // save stack
   46295 	r0 = heap32[(fp)];
   46296 	r1 = _ZTV18btTriangleCallback;
   46297 	r0 = r0 >> 2;
   46298 	r1 = (r1 + 8)|0;
   46299 	heap32[(r0)] = r1;
   46300 	return;
   46301 }
   46302 
   46303 function _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD0Ev(sp)
   46304 {
   46305 	var i7;
   46306 	var fp = sp>>2;
   46307 	var r0;
   46308 	var r1;
   46309 	var r2;
   46310 var __label__ = 0;
   46311 	i7 = sp + -8;var g0 = i7>>2; // save stack
   46312 	r0 = heap32[(fp)];
   46313 	r1 = _ZTV18btTriangleCallback;
   46314 	r2 = r0 >> 2;
   46315 	r1 = (r1 + 8)|0;
   46316 	heap32[(r2)] = r1;
   46317 	heap32[(g0)] = r0;
   46318 	_ZdlPv(i7);
   46319 	return;
   46320 }
   46321 
   46322 function _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallback15processTriangleEP9btVector3ii(sp)
   46323 {
   46324 	var i7;
   46325 	var fp = sp>>2;
   46326 	var r0;
   46327 	var r1;
   46328 	var r2;
   46329 	var r3;
   46330 	var r4;
   46331 	var r5;
   46332 	var r6;
   46333 	var r7;
   46334 	var r8;
   46335 	var r9;
   46336 	var r10;
   46337 	var f0;
   46338 	var f1;
   46339 var __label__ = 0;
   46340 	i7 = sp + -800;var g0 = i7>>2; // save stack
   46341 	r0 = sp + -64;
   46342 	r1 = r0 >> 2;
   46343 	heap32[(fp+-16)] = 1065353216;
   46344 	heap32[(r1+1)] = 0;
   46345 	heap32[(r1+2)] = 0;
   46346 	heap32[(r1+3)] = 0;
   46347 	heap32[(r1+4)] = 0;
   46348 	heap32[(r1+5)] = 1065353216;
   46349 	heap32[(r1+6)] = 0;
   46350 	heap32[(r1+7)] = 0;
   46351 	heap32[(r1+8)] = 0;
   46352 	heap32[(r1+9)] = 0;
   46353 	heap32[(r1+10)] = 1065353216;
   46354 	heap32[(r1+11)] = 0;
   46355 	heap32[(r1+12)] = 0;
   46356 	heap32[(r1+13)] = 0;
   46357 	r2 = _ZTVN12btConvexCast10CastResultE;
   46358 	heap32[(r1+14)] = 0;
   46359 	r3 = sp + -240;
   46360 	r2 = (r2 + 8)|0;
   46361 	heap32[(r1+15)] = 0;
   46362 	r1 = r3 >> 2;
   46363 	heap32[(fp+-60)] = r2;
   46364 	r2 = heap32[(fp)];
   46365 	heap32[(r1+42)] = 0;
   46366 	r4 = r2 >> 2;
   46367 	heap32[(r1+43)] = 0;
   46368 	r5 = sp + -296;
   46369 	heap32[(r1+41)] = heap32[(r4+50)];
   46370 	r6 = r5 >> 2;
   46371 	f0 = heapFloat[(r4+49)];
   46372 	heap32[(r6+2)] = 0;
   46373 	heap32[(r6+3)] = 1065353216;
   46374 	heap32[(r6+4)] = 1065353216;
   46375 	r7 = _ZTV13btSphereShape;
   46376 	heap32[(r6+5)] = 1065353216;
   46377 	r7 = (r7 + 8)|0;
   46378 	heap32[(r6+6)] = 0;
   46379 	heap32[(fp+-74)] = r7;
   46380 	heap32[(r6+1)] = 8;
   46381 	r7 = sp + -400;
   46382 	heapFloat[(r6+7)] = f0;
   46383 	r8 = r7 >> 2;
   46384 	heapFloat[(r6+11)] = f0;
   46385 	heap32[(r8+2)] = 0;
   46386 	heap32[(r8+3)] = 1065353216;
   46387 	heap32[(r8+4)] = 1065353216;
   46388 	heap32[(r8+5)] = 1065353216;
   46389 	r6 = _ZTV15btTriangleShape;
   46390 	heap32[(r8+6)] = 0;
   46391 	r6 = (r6 + 8)|0;
   46392 	heap32[(r8+11)] = 1025758986;
   46393 	r9 = heap32[(fp+1)];
   46394 	heap32[(fp+-100)] = r6;
   46395 	r6 = r9 >> 2;
   46396 	heap32[(r8+1)] = 1;
   46397 	heap32[(r8+13)] = heap32[(r6)];
   46398 	heap32[(r8+14)] = heap32[(r6+1)];
   46399 	heap32[(r8+15)] = heap32[(r6+2)];
   46400 	heap32[(r8+16)] = heap32[(r6+3)];
   46401 	heap32[(r8+17)] = heap32[(r6+4)];
   46402 	heap32[(r8+18)] = heap32[(r6+5)];
   46403 	heap32[(r8+19)] = heap32[(r6+6)];
   46404 	heap32[(r8+20)] = heap32[(r6+7)];
   46405 	heap32[(r8+21)] = heap32[(r6+8)];
   46406 	heap32[(r8+22)] = heap32[(r6+9)];
   46407 	r9 = sp + -760;
   46408 	heap32[(r8+23)] = heap32[(r6+10)];
   46409 	r10 = r9 >> 2;
   46410 	heap32[(r8+24)] = heap32[(r6+11)];
   46411 	r6 = _ZTV22btSubsimplexConvexCast;
   46412 	r8 = 0;
   46413 	heap32[(r10+77)] = 953267991;
   46414 	r10 = sp + -776;
   46415 	r6 = (r6 + 8)|0;
   46416 	heap8[sp+-428] = r8;
   46417 	r8 = r10 >> 2;
   46418 	heap32[(fp+-194)] = r6;
   46419 	heap32[(r8+1)] = r9;
   46420 	heap32[(r8+2)] = r5;
   46421 	heap32[(r8+3)] = r7;
   46422 	r5 = (r2 + 4)|0;
   46423 	r2 = (r2 + 68)|0;
   46424 	heap32[(g0)] = r10;
   46425 	heap32[(g0+1)] = r5;
   46426 	heap32[(g0+2)] = r2;
   46427 	heap32[(g0+3)] = r0;
   46428 	heap32[(g0+4)] = r0;
   46429 	heap32[(g0+5)] = r3;
   46430 	_ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7);
   46431 	r0 = r_g0;
   46432 if(!(r0 ==0)) //_LBB280_3
   46433 {
   46434 	f0 = heapFloat[(r1+41)];
   46435 	f1 = heapFloat[(r4+50)];
   46436 if(!(f1 <=f0)) //_LBB280_3
   46437 {
   46438 	heapFloat[(r4+50)] = f0;
   46439 }
   46440 }
   46441 	return;
   46442 }
   46443 
   46444 function _ZN15btTriangleShapeD1Ev(sp)
   46445 {
   46446 	var i7;
   46447 	var fp = sp>>2;
   46448 	var r0;
   46449 	var r1;
   46450 var __label__ = 0;
   46451 	i7 = sp + 0;var g0 = i7>>2; // save stack
   46452 	r0 = heap32[(fp)];
   46453 	r1 = _ZTV13btConvexShape;
   46454 	r0 = r0 >> 2;
   46455 	r1 = (r1 + 8)|0;
   46456 	heap32[(r0)] = r1;
   46457 	return;
   46458 }
   46459 
   46460 function _ZN15btTriangleShapeD0Ev(sp)
   46461 {
   46462 	var i7;
   46463 	var fp = sp>>2;
   46464 	var r0;
   46465 	var r1;
   46466 	var r2;
   46467 var __label__ = 0;
   46468 	i7 = sp + -8;var g0 = i7>>2; // save stack
   46469 	r0 = heap32[(fp)];
   46470 	r1 = _ZTV13btConvexShape;
   46471 	r2 = r0 >> 2;
   46472 	r1 = (r1 + 8)|0;
   46473 	heap32[(r2)] = r1;
   46474 if(!(r0 ==0)) //_LBB282_2
   46475 {
   46476 	r0 = gNumAlignedFree;
   46477 	r0 = r0 >> 2;
   46478 	r1 = heap32[(r0)];
   46479 	r1 = (r1 + 1)|0;
   46480 	heap32[(r0)] = r1;
   46481 	r0 = heap32[(r2+-1)];
   46482 	heap32[(g0)] = r0;
   46483 	free(i7);
   46484 }
   46485 	return;
   46486 }
   46487 
   46488 function _ZNK15btTriangleShape21calculateLocalInertiaEfR9btVector3(sp)
   46489 {
   46490 	var i7;
   46491 	var fp = sp>>2;
   46492 	var r0;
   46493 	var r1;
   46494 var __label__ = 0;
   46495 	i7 = sp + -16;var g0 = i7>>2; // save stack
   46496 	r0 = _2E_str10;
   46497 	r1 = _2E_str3112;
   46498 	heap32[(g0)] = r0;
   46499 	heap32[(g0+1)] = r1;
   46500 	heap32[(g0+2)] = 125;
   46501 	_assert(i7);
   46502 }
   46503 
   46504 function _ZNK21btConvexInternalShape9serializeEPvP12btSerializer(sp)
   46505 {
   46506 	var i7;
   46507 	var fp = sp>>2;
   46508 	var r0;
   46509 	var r1;
   46510 	var r2;
   46511 	var r3;
   46512 	var r4;
   46513 	var r5;
   46514 var __label__ = 0;
   46515 	i7 = sp + -8;var g0 = i7>>2; // save stack
   46516 	r0 = heap32[(fp+2)];
   46517 	r1 = r0 >> 2;
   46518 	r2 = heap32[(r1)];
   46519 	r2 = r2 >> 2;
   46520 	r2 = heap32[(r2+10)];
   46521 	r3 = heap32[(fp)];
   46522 	heap32[(g0)] = r0;
   46523 	heap32[(g0+1)] = r3;
   46524 	__FUNCTION_TABLE__[(r2)>>2](i7);
   46525 	r2 = r_g0;
   46526 	r4 = heap32[(r1)];
   46527 	r4 = r4 >> 2;
   46528 	r4 = heap32[(r4+7)];
   46529 	heap32[(g0)] = r0;
   46530 	heap32[(g0+1)] = r2;
   46531 	r5 = heap32[(fp+1)];
   46532 	__FUNCTION_TABLE__[(r4)>>2](i7);
   46533 	r4 = r_g0;
   46534 	r5 = r5 >> 2;
   46535 	heap32[(r5)] = r4;
   46536 if(!(r4 ==0)) //_LBB284_2
   46537 {
   46538 	r1 = heap32[(r1)];
   46539 	r1 = r1 >> 2;
   46540 	r1 = heap32[(r1+12)];
   46541 	heap32[(g0)] = r0;
   46542 	heap32[(g0+1)] = r2;
   46543 	__FUNCTION_TABLE__[(r1)>>2](i7);
   46544 }
   46545 	r0 = r3 >> 2;
   46546 	r1 = heap32[(r0+1)];
   46547 	heap32[(r5+1)] = r1;
   46548 	heap32[(r5+7)] = heap32[(r0+7)];
   46549 	heap32[(r5+8)] = heap32[(r0+8)];
   46550 	heap32[(r5+9)] = heap32[(r0+9)];
   46551 	heap32[(r5+10)] = heap32[(r0+10)];
   46552 	heap32[(r5+3)] = heap32[(r0+3)];
   46553 	heap32[(r5+4)] = heap32[(r0+4)];
   46554 	heap32[(r5+5)] = heap32[(r0+5)];
   46555 	heap32[(r5+6)] = heap32[(r0+6)];
   46556 	heap32[(r5+11)] = heap32[(r0+11)];
   46557 	r0 = _2E_str1110;
   46558 	r_g0 = r0;
   46559 	return;
   46560 }
   46561 
   46562 function _ZNK15btTriangleShape32getPreferredPenetrationDirectionEiR9btVector3(sp)
   46563 {
   46564 	var i7;
   46565 	var fp = sp>>2;
   46566 	var r0;
   46567 	var r1;
   46568 	var f0;
   46569 	var f1;
   46570 	var f2;
   46571 	var f3;
   46572 	var f4;
   46573 	var f5;
   46574 	var f6;
   46575 	var f7;
   46576 var __label__ = 0;
   46577 	i7 = sp + -8;var g0 = i7>>2; // save stack
   46578 	r0 = heap32[(fp)];
   46579 	r0 = r0 >> 2;
   46580 	f0 = heapFloat[(r0+23)];
   46581 	f1 = heapFloat[(r0+15)];
   46582 	f2 = heapFloat[(r0+19)];
   46583 	f3 = heapFloat[(r0+22)];
   46584 	f4 = heapFloat[(r0+14)];
   46585 	f5 = heapFloat[(r0+18)];
   46586 	f5 = f5-f4;
   46587 	f0 = f0-f1;
   46588 	f1 = f2-f1;
   46589 	f2 = f3-f4;
   46590 	f3 = heapFloat[(r0+21)];
   46591 	f4 = heapFloat[(r0+13)];
   46592 	f6 = heapFloat[(r0+17)];
   46593 	f3 = f3-f4;
   46594 	f4 = f6-f4;
   46595 	r0 = heap32[(fp+2)];
   46596 	f6 = f5*f0;
   46597 	f7 = f1*f2;
   46598 	f6 = f6-f7;
   46599 	f1 = f1*f3;
   46600 	f0 = f4*f0;
   46601 	r0 = r0 >> 2;
   46602 	f0 = f1-f0;
   46603 	heapFloat[(r0)] = f6;
   46604 	f1 = f4*f2;
   46605 	f2 = f5*f3;
   46606 	f1 = f1-f2;
   46607 	heapFloat[(r0+1)] = f0;
   46608 	heapFloat[(r0+2)] = f1;
   46609 	f2 = f6*f6;
   46610 	f0 = f0*f0;
   46611 	heap32[(r0+3)] = 0;
   46612 	f0 = f2+f0;
   46613 	f1 = f1*f1;
   46614 	f0 = f0+f1;
   46615 	heapFloat[(g0)] = f0;
   46616 	sqrtf(i7);
   46617 	f1 =                         1;
   46618 	f0 = f1/f_g0;
   46619 	f1 = heapFloat[(r0)];
   46620 	f1 = f1*f0;
   46621 	heapFloat[(r0)] = f1;
   46622 	f2 = heapFloat[(r0+1)];
   46623 	f2 = f2*f0;
   46624 	heapFloat[(r0+1)] = f2;
   46625 	f3 = heapFloat[(r0+2)];
   46626 	f0 = f3*f0;
   46627 	heapFloat[(r0+2)] = f0;
   46628 	r1 = heap32[(fp+1)];
   46629 if(!(r1 ==0)) //_LBB285_2
   46630 {
   46631 	f1 = -f1;
   46632 	f2 = -f2;
   46633 	heapFloat[(r0)] = f1;
   46634 	f0 = -f0;
   46635 	heapFloat[(r0+1)] = f2;
   46636 	heapFloat[(r0+2)] = f0;
   46637 }
   46638 	return;
   46639 }
   46640 
   46641 function _ZNK15btTriangleShape8isInsideERK9btVector3f(sp)
   46642 {
   46643 	var i7;
   46644 	var fp = sp>>2;
   46645 	var r0;
   46646 	var r1;
   46647 	var r2;
   46648 	var r3;
   46649 	var r4;
   46650 	var r5;
   46651 	var r6;
   46652 	var f0;
   46653 	var f1;
   46654 	var f2;
   46655 	var f3;
   46656 	var f4;
   46657 	var f5;
   46658 	var f6;
   46659 	var f7;
   46660 	var f8;
   46661 	var f9;
   46662 	var f10;
   46663 	var f11;
   46664 	var f12;
   46665 	var f13;
   46666 var __label__ = 0;
   46667 	i7 = sp + -48;var g0 = i7>>2; // save stack
   46668 	r0 = heap32[(fp)];
   46669 	r1 = r0 >> 2;
   46670 	f0 = heapFloat[(r1+19)];
   46671 	f1 = heapFloat[(r1+15)];
   46672 	f2 = heapFloat[(r1+23)];
   46673 	f3 = heapFloat[(r1+17)];
   46674 	f4 = heapFloat[(r1+13)];
   46675 	f5 = heapFloat[(r1+21)];
   46676 	f6 = heapFloat[(r1+22)];
   46677 	f7 = heapFloat[(r1+14)];
   46678 	f8 = heapFloat[(r1+18)];
   46679 	f0 = f0-f1;
   46680 	f6 = f6-f7;
   46681 	f3 = f3-f4;
   46682 	f1 = f2-f1;
   46683 	f2 = f8-f7;
   46684 	f4 = f5-f4;
   46685 	f5 = f2*f1;
   46686 	f7 = f0*f6;
   46687 	f0 = f0*f4;
   46688 	f1 = f3*f1;
   46689 	f5 = f5-f7;
   46690 	f0 = f0-f1;
   46691 	f1 = f3*f6;
   46692 	f2 = f2*f4;
   46693 	f1 = f1-f2;
   46694 	f2 = f5*f5;
   46695 	f3 = f0*f0;
   46696 	f2 = f2+f3;
   46697 	f3 = f1*f1;
   46698 	f2 = f2+f3;
   46699 	heapFloat[(g0)] = f2;
   46700 	sqrtf(i7);
   46701 	r2 = heap32[(fp+1)];
   46702 	f3 =                         1;
   46703 	r2 = r2 >> 2;
   46704 	f2 = f3/f_g0;
   46705 	f4 = f5*f2;
   46706 	f5 = heapFloat[(r2)];
   46707 	f6 = heapFloat[(r1+13)];
   46708 	f0 = f0*f2;
   46709 	f7 = heapFloat[(r2+1)];
   46710 	f8 = heapFloat[(r1+14)];
   46711 	f1 = f1*f2;
   46712 	f2 = heapFloat[(r2+2)];
   46713 	f9 = heapFloat[(r1+15)];
   46714 	f5 = f5*f4;
   46715 	f7 = f7*f0;
   46716 	f6 = f6*f4;
   46717 	f8 = f8*f0;
   46718 	f5 = f5+f7;
   46719 	f2 = f2*f1;
   46720 	f6 = f6+f8;
   46721 	f7 = f9*f1;
   46722 	f8 = heapFloat[(fp+2)];
   46723 	f2 = f5+f2;
   46724 	f5 = f6+f7;
   46725 	f2 = f2-f5;
   46726 	f5 = -f8;
   46727 _1: do {
   46728 	if(f2 <f5) //_LBB286_2
   46729 {
   46730 __label__ = 2;
   46731 }
   46732 else{
   46733 	if(f2 <=f8) //_LBB286_3
   46734 {
   46735 	r3 = 0;
   46736 _4: while(true){
   46737 	if(r3 <3) //_LBB286_4
   46738 {
   46739 	r4 = heap32[(r1)];
   46740 	r4 = r4 >> 2;
   46741 	r4 = heap32[(r4+23)];
   46742 	r5 = sp + -32;
   46743 	r6 = sp + -16;
   46744 	heap32[(g0)] = r0;
   46745 	heap32[(g0+1)] = r3;
   46746 	heap32[(g0+2)] = r6;
   46747 	heap32[(g0+3)] = r5;
   46748 	__FUNCTION_TABLE__[(r4)>>2](i7);
   46749 	r4 = r5 >> 2;
   46750 	r5 = r6 >> 2;
   46751 	f2 = heapFloat[(r4+2)];
   46752 	f6 = heapFloat[(r5+2)];
   46753 	f7 = heapFloat[(r4+1)];
   46754 	f8 = heapFloat[(r5+1)];
   46755 	f9 = heapFloat[(fp+-8)];
   46756 	f10 = heapFloat[(fp+-4)];
   46757 	f2 = f2-f6;
   46758 	f6 = f9-f10;
   46759 	f7 = f7-f8;
   46760 	f8 = f7*f1;
   46761 	f9 = f2*f0;
   46762 	f2 = f2*f4;
   46763 	f10 = f6*f1;
   46764 	f8 = f8-f9;
   46765 	f2 = f2-f10;
   46766 	f6 = f6*f0;
   46767 	f7 = f7*f4;
   46768 	f6 = f6-f7;
   46769 	f7 = f8*f8;
   46770 	f9 = f2*f2;
   46771 	f7 = f7+f9;
   46772 	f9 = f6*f6;
   46773 	f7 = f7+f9;
   46774 	heapFloat[(g0)] = f7;
   46775 	sqrtf(i7);
   46776 	f7 = f3/f_g0;
   46777 	f9 = heapFloat[(r2)];
   46778 	f8 = f8*f7;
   46779 	f10 = heapFloat[(fp+-4)];
   46780 	f11 = heapFloat[(r2+1)];
   46781 	f2 = f2*f7;
   46782 	f12 = heapFloat[(r5+1)];
   46783 	f9 = f9*f8;
   46784 	f11 = f11*f2;
   46785 	f13 = heapFloat[(r2+2)];
   46786 	f6 = f6*f7;
   46787 	f7 = heapFloat[(r5+2)];
   46788 	f8 = f10*f8;
   46789 	f2 = f12*f2;
   46790 	f9 = f9+f11;
   46791 	f10 = f13*f6;
   46792 	f2 = f8+f2;
   46793 	f6 = f7*f6;
   46794 	f7 = f9+f10;
   46795 	f2 = f2+f6;
   46796 	f2 = f7-f2;
   46797 	if(f2 <f5) //_LBB286_2
   46798 {
   46799 __label__ = 2;
   46800 break _1;
   46801 }
   46802 else{
   46803 	r3 = (r3 + 1)|0;
   46804 }
   46805 }
   46806 else{
   46807 break _4;
   46808 }
   46809 }
   46810 	r0 = 1;
   46811 __label__ = 8;
   46812 }
   46813 else{
   46814 __label__ = 2;
   46815 }
   46816 }
   46817 } while(0);
   46818 if (__label__ == 2){
   46819 	r0 = 0;
   46820 }
   46821 	r0 = r0 & 255;
   46822 	r_g0 = r0;
   46823 	return;
   46824 }
   46825 
   46826 function _ZNK15btTriangleShape16getPlaneEquationEiR9btVector3S1_(sp)
   46827 {
   46828 	var i7;
   46829 	var fp = sp>>2;
   46830 	var r0;
   46831 	var r1;
   46832 	var r2;
   46833 	var f0;
   46834 	var f1;
   46835 	var f2;
   46836 	var f3;
   46837 	var f4;
   46838 	var f5;
   46839 	var f6;
   46840 	var f7;
   46841 var __label__ = 0;
   46842 	i7 = sp + -8;var g0 = i7>>2; // save stack
   46843 	r0 = heap32[(fp)];
   46844 	r0 = r0 >> 2;
   46845 	f0 = heapFloat[(r0+23)];
   46846 	f1 = heapFloat[(r0+15)];
   46847 	f2 = heapFloat[(r0+19)];
   46848 	f3 = heapFloat[(r0+22)];
   46849 	f4 = heapFloat[(r0+14)];
   46850 	f5 = heapFloat[(r0+18)];
   46851 	f5 = f5-f4;
   46852 	f0 = f0-f1;
   46853 	f1 = f2-f1;
   46854 	f2 = f3-f4;
   46855 	f3 = heapFloat[(r0+21)];
   46856 	f4 = heapFloat[(r0+13)];
   46857 	f6 = heapFloat[(r0+17)];
   46858 	f3 = f3-f4;
   46859 	f4 = f6-f4;
   46860 	r1 = heap32[(fp+2)];
   46861 	f6 = f5*f0;
   46862 	f7 = f1*f2;
   46863 	f6 = f6-f7;
   46864 	r1 = r1 >> 2;
   46865 	f1 = f1*f3;
   46866 	f0 = f4*f0;
   46867 	f0 = f1-f0;
   46868 	heapFloat[(r1)] = f6;
   46869 	f1 = f4*f2;
   46870 	f2 = f5*f3;
   46871 	f1 = f1-f2;
   46872 	heapFloat[(r1+1)] = f0;
   46873 	heapFloat[(r1+2)] = f1;
   46874 	f2 = f6*f6;
   46875 	f0 = f0*f0;
   46876 	heap32[(r1+3)] = 0;
   46877 	f0 = f2+f0;
   46878 	f1 = f1*f1;
   46879 	f0 = f0+f1;
   46880 	heapFloat[(g0)] = f0;
   46881 	sqrtf(i7);
   46882 	f1 =                         1;
   46883 	f0 = f1/f_g0;
   46884 	f1 = heapFloat[(r1)];
   46885 	f1 = f1*f0;
   46886 	heapFloat[(r1)] = f1;
   46887 	f1 = heapFloat[(r1+1)];
   46888 	f1 = f1*f0;
   46889 	heapFloat[(r1+1)] = f1;
   46890 	f1 = heapFloat[(r1+2)];
   46891 	r2 = heap32[(fp+3)];
   46892 	f0 = f1*f0;
   46893 	r2 = r2 >> 2;
   46894 	heapFloat[(r1+2)] = f0;
   46895 	heap32[(r2)] = heap32[(r0+13)];
   46896 	heap32[(r2+1)] = heap32[(r0+14)];
   46897 	heap32[(r2+2)] = heap32[(r0+15)];
   46898 	heap32[(r2+3)] = heap32[(r0+16)];
   46899 	return;
   46900 }
   46901 
   46902 function _ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
   46903 {
   46904 	var i7;
   46905 	var fp = sp>>2;
   46906 	var r0;
   46907 	var r1;
   46908 	var r2;
   46909 	var r3;
   46910 	var r4;
   46911 	var r5;
   46912 	var r6;
   46913 	var r7;
   46914 	var f0;
   46915 	var f1;
   46916 	var f2;
   46917 	var f3;
   46918 	var f4;
   46919 	var f5;
   46920 	var f6;
   46921 	var f7;
   46922 	var f8;
   46923 	var f9;
   46924 	var f10;
   46925 	var f11;
   46926 	var f12;
   46927 	var f13;
   46928 	var f14;
   46929 	var f15;
   46930 	var f16;
   46931 	var f17;
   46932 	var f18;
   46933 	var f19;
   46934 	var f20;
   46935 	var f21;
   46936 	var f22;
   46937 	var f23;
   46938 	var f24;
   46939 	var f25;
   46940 	var f26;
   46941 	var f27;
   46942 	var f28;
   46943 	var f29;
   46944 	var f30;
   46945 var __label__ = 0;
   46946 	i7 = sp + -440;var g0 = i7>>2; // save stack
   46947 	r0 = heap32[(fp)];
   46948 	r0 = heapU8[r0+8];
   46949 	r1 = heap32[(fp+1)];
   46950 	r2 = heap32[(fp+2)];
   46951 	r3 = r0 == 0 ? r1 : r2;
   46952 	r3 = r3 >> 2;
   46953 	f0 = heapFloat[(r3+30)];
   46954 	f1 = heapFloat[(r3+14)];
   46955 	f2 = heapFloat[(r3+29)];
   46956 	f3 = heapFloat[(r3+13)];
   46957 	f4 = f2-f3;
   46958 	f5 = f0-f1;
   46959 	f6 = heapFloat[(r3+31)];
   46960 	f7 = heapFloat[(r3+15)];
   46961 	f8 = f6-f7;
   46962 	f4 = f4*f4;
   46963 	f5 = f5*f5;
   46964 	f9 = heapFloat[(r3+62)];
   46965 	f4 = f4+f5;
   46966 	f5 = f8*f8;
   46967 	f8 = f9*f9;
   46968 	f4 = f4+f5;
   46969 if(!(f8 >f4)) //_LBB288_23
   46970 {
   46971 	r0 = r0 == 0 ? r2 : r1;
   46972 	r0 = r0 >> 2;
   46973 	r1 = heap32[(r0+48)];
   46974 	r2 = r1 >> 2;
   46975 	r4 = heap32[(r2+1)];
   46976 	r4 = (r4 + -21)|0;
   46977 if(!(uint(r4) >uint(8))) //_LBB288_23
   46978 {
   46979 	f4 = heapFloat[(r0+13)];
   46980 	f5 = heapFloat[(r0+3)];
   46981 	f8 = heapFloat[(r0+2)];
   46982 	f4 = -f4;
   46983 	f9 = heapFloat[(r0+1)];
   46984 	f10 = heapFloat[(r0+7)];
   46985 	f11 = heapFloat[(r0+6)];
   46986 	f12 = heapFloat[(r0+14)];
   46987 	f13 = heapFloat[(r0+5)];
   46988 	f14 = heapFloat[(r3+3)];
   46989 	f15 = heapFloat[(r3+7)];
   46990 	f16 = heapFloat[(r3+2)];
   46991 	f17 = heapFloat[(r3+6)];
   46992 	f18 = heapFloat[(r3+1)];
   46993 	f19 = heapFloat[(r3+5)];
   46994 	f20 = heapFloat[(r3+19)];
   46995 	heapFloat[(fp+-63)] = f20;
   46996 	f21 = heapFloat[(r3+23)];
   46997 	f22 = heapFloat[(r3+18)];
   46998 	f23 = heapFloat[(r3+22)];
   46999 	f24 = heapFloat[(r3+17)];
   47000 	f25 = heapFloat[(r3+21)];
   47001 	f26 = f5*f3;
   47002 	heapFloat[(fp+-65)] = f26;
   47003 	f27 = f10*f1;
   47004 	f28 = f8*f3;
   47005 	heapFloat[(fp+-66)] = f28;
   47006 	f29 = f11*f1;
   47007 	f3 = f9*f3;
   47008 	heapFloat[(fp+-64)] = f3;
   47009 	f1 = f13*f1;
   47010 	f30 = heapFloat[(r0+11)];
   47011 	f3 = heapFloat[(r0+10)];
   47012 	f20 = heapFloat[(r0+15)];
   47013 	f26 = heapFloat[(r0+9)];
   47014 	f28 = f5*f2;
   47015 	heapFloat[(fp+-67)] = f28;
   47016 	f28 = f10*f0;
   47017 	heapFloat[(fp+-69)] = f28;
   47018 	f28 = f5*f4;
   47019 	heapFloat[(fp+-68)] = f28;
   47020 	f28 = f10*f12;
   47021 	heapFloat[(fp+-71)] = f28;
   47022 	f28 = f8*f2;
   47023 	heapFloat[(fp+-70)] = f28;
   47024 	f28 = f11*f0;
   47025 	heapFloat[(fp+-73)] = f28;
   47026 	f28 = f8*f4;
   47027 	heapFloat[(fp+-72)] = f28;
   47028 	f28 = f11*f12;
   47029 	heapFloat[(fp+-78)] = f28;
   47030 	f2 = f9*f2;
   47031 	heapFloat[(fp+-74)] = f2;
   47032 	f0 = f13*f0;
   47033 	heapFloat[(fp+-76)] = f0;
   47034 	f4 = f9*f4;
   47035 	heapFloat[(fp+-75)] = f4;
   47036 	f12 = f13*f12;
   47037 	heapFloat[(fp+-77)] = f12;
   47038 	f0 = heapFloat[(r3+11)];
   47039 	f2 = heapFloat[(r3+10)];
   47040 	f4 = heapFloat[(r3+9)];
   47041 	f12 = heapFloat[(r3+27)];
   47042 	f28 = heapFloat[(r3+26)];
   47043 	heapFloat[(fp+-62)] = f28;
   47044 	f28 = heapFloat[(r3+25)];
   47045 	heapFloat[(fp+-61)] = f28;
   47046 	f28 = heapFloat[(fp+-65)];
   47047 	f27 = f28+f27;
   47048 	heapFloat[(fp+-65)] = f27;
   47049 	f27 = f30*f7;
   47050 	heapFloat[(fp+-99)] = f27;
   47051 	f28 = heapFloat[(fp+-66)];
   47052 	f28 = f28+f29;
   47053 	heapFloat[(fp+-66)] = f28;
   47054 	f29 = f3*f7;
   47055 	heapFloat[(fp+-98)] = f29;
   47056 	f27 = heapFloat[(fp+-64)];
   47057 	f1 = f27+f1;
   47058 	heapFloat[(fp+-80)] = f1;
   47059 	f7 = f26*f7;
   47060 	heapFloat[(fp+-97)] = f7;
   47061 	f27 = f14*f5;
   47062 	heapFloat[(fp+-64)] = f27;
   47063 	f1 = f15*f10;
   47064 	heapFloat[(fp+-82)] = f1;
   47065 	f1 = f16*f5;
   47066 	heapFloat[(fp+-79)] = f1;
   47067 	f1 = f17*f10;
   47068 	heapFloat[(fp+-84)] = f1;
   47069 	f1 = f18*f5;
   47070 	heapFloat[(fp+-81)] = f1;
   47071 	f1 = f19*f10;
   47072 	heapFloat[(fp+-86)] = f1;
   47073 	f1 = f14*f8;
   47074 	heapFloat[(fp+-83)] = f1;
   47075 	f1 = f15*f11;
   47076 	heapFloat[(fp+-88)] = f1;
   47077 	f1 = f16*f8;
   47078 	heapFloat[(fp+-85)] = f1;
   47079 	f1 = f17*f11;
   47080 	heapFloat[(fp+-92)] = f1;
   47081 	f1 = f18*f8;
   47082 	heapFloat[(fp+-87)] = f1;
   47083 	f1 = f19*f11;
   47084 	heapFloat[(fp+-93)] = f1;
   47085 	f14 = f14*f9;
   47086 	heapFloat[(fp+-89)] = f14;
   47087 	f15 = f15*f13;
   47088 	heapFloat[(fp+-94)] = f15;
   47089 	f16 = f16*f9;
   47090 	heapFloat[(fp+-90)] = f16;
   47091 	f17 = f17*f13;
   47092 	heapFloat[(fp+-95)] = f17;
   47093 	f18 = f18*f9;
   47094 	heapFloat[(fp+-91)] = f18;
   47095 	f19 = f19*f13;
   47096 	heapFloat[(fp+-96)] = f19;
   47097 	f1 = heapFloat[(fp+-67)];
   47098 	f7 = heapFloat[(fp+-69)];
   47099 	f1 = f1+f7;
   47100 	f7 = f30*f6;
   47101 	f14 = heapFloat[(fp+-68)];
   47102 	f15 = heapFloat[(fp+-71)];
   47103 	f14 = f14-f15;
   47104 	f15 = f30*f20;
   47105 	f16 = heapFloat[(fp+-70)];
   47106 	f17 = heapFloat[(fp+-73)];
   47107 	f16 = f16+f17;
   47108 	f17 = f3*f6;
   47109 	f18 = heapFloat[(fp+-72)];
   47110 	f19 = heapFloat[(fp+-78)];
   47111 	f18 = f18-f19;
   47112 	f19 = f3*f20;
   47113 	f27 = heapFloat[(fp+-74)];
   47114 	f28 = heapFloat[(fp+-76)];
   47115 	f27 = f27+f28;
   47116 	f6 = f26*f6;
   47117 	f28 = heapFloat[(fp+-75)];
   47118 	f29 = heapFloat[(fp+-77)];
   47119 	f28 = f28-f29;
   47120 	f20 = f26*f20;
   47121 	f29 = heapFloat[(fp+-63)];
   47122 	f29 = f29*f5;
   47123 	heapFloat[(fp+-67)] = f29;
   47124 	f29 = f21*f10;
   47125 	heapFloat[(fp+-69)] = f29;
   47126 	f29 = f22*f5;
   47127 	heapFloat[(fp+-68)] = f29;
   47128 	f29 = f23*f10;
   47129 	f5 = f24*f5;
   47130 	heapFloat[(fp+-70)] = f5;
   47131 	f5 = f25*f10;
   47132 	heapFloat[(fp+-101)] = f5;
   47133 	f10 = heapFloat[(fp+-63)];
   47134 	f5 = f10*f8;
   47135 	heapFloat[(fp+-71)] = f5;
   47136 	f5 = f21*f11;
   47137 	heapFloat[(fp+-73)] = f5;
   47138 	f5 = f22*f8;
   47139 	heapFloat[(fp+-72)] = f5;
   47140 	f5 = f23*f11;
   47141 	heapFloat[(fp+-100)] = f5;
   47142 	f8 = f24*f8;
   47143 	heapFloat[(fp+-74)] = f8;
   47144 	f5 = f25*f11;
   47145 	heapFloat[(fp+-102)] = f5;
   47146 	f8 = f10*f9;
   47147 	heapFloat[(fp+-75)] = f8;
   47148 	f5 = f21*f13;
   47149 	heapFloat[(fp+-103)] = f5;
   47150 	f8 = f22*f9;
   47151 	heapFloat[(fp+-78)] = f8;
   47152 	f5 = f23*f13;
   47153 	heapFloat[(fp+-104)] = f5;
   47154 	f8 = f24*f9;
   47155 	heapFloat[(fp+-76)] = f8;
   47156 	f5 = f25*f13;
   47157 	heapFloat[(fp+-105)] = f5;
   47158 	f8 = heapFloat[(fp+-65)];
   47159 	f9 = heapFloat[(fp+-99)];
   47160 	f8 = f8+f9;
   47161 	heapFloat[(fp+-77)] = f8;
   47162 	f9 = f14-f15;
   47163 	f1 = f1+f7;
   47164 	heapFloat[(fp+-63)] = f1;
   47165 	f7 = heapFloat[(fp+-66)];
   47166 	f10 = heapFloat[(fp+-98)];
   47167 	f7 = f7+f10;
   47168 	heapFloat[(fp+-98)] = f7;
   47169 	f10 = f18-f19;
   47170 	f11 = f16+f17;
   47171 	heapFloat[(fp+-65)] = f11;
   47172 	f13 = heapFloat[(fp+-80)];
   47173 	f14 = heapFloat[(fp+-97)];
   47174 	f1 = f13+f14;
   47175 	heapFloat[(fp+-80)] = f1;
   47176 	f5 = f28-f20;
   47177 	f6 = f27+f6;
   47178 	heapFloat[(fp+-66)] = f6;
   47179 	f7 = heapFloat[(fp+-64)];
   47180 	f8 = heapFloat[(fp+-82)];
   47181 	f1 = f7+f8;
   47182 	heapFloat[(fp+-64)] = f1;
   47183 	f1 = f0*f30;
   47184 	heapFloat[(fp+-82)] = f1;
   47185 	f6 = heapFloat[(fp+-79)];
   47186 	f7 = heapFloat[(fp+-84)];
   47187 	f1 = f6+f7;
   47188 	heapFloat[(fp+-79)] = f1;
   47189 	f1 = f2*f30;
   47190 	heapFloat[(fp+-84)] = f1;
   47191 	f6 = heapFloat[(fp+-81)];
   47192 	f7 = heapFloat[(fp+-86)];
   47193 	f1 = f6+f7;
   47194 	heapFloat[(fp+-81)] = f1;
   47195 	f1 = f4*f30;
   47196 	heapFloat[(fp+-86)] = f1;
   47197 	f6 = heapFloat[(fp+-83)];
   47198 	f7 = heapFloat[(fp+-88)];
   47199 	f1 = f6+f7;
   47200 	heapFloat[(fp+-83)] = f1;
   47201 	f1 = f0*f3;
   47202 	heapFloat[(fp+-88)] = f1;
   47203 	f6 = heapFloat[(fp+-85)];
   47204 	f7 = heapFloat[(fp+-92)];
   47205 	f1 = f6+f7;
   47206 	heapFloat[(fp+-85)] = f1;
   47207 	f1 = f2*f3;
   47208 	heapFloat[(fp+-92)] = f1;
   47209 	f6 = heapFloat[(fp+-87)];
   47210 	f7 = heapFloat[(fp+-93)];
   47211 	f1 = f6+f7;
   47212 	heapFloat[(fp+-87)] = f1;
   47213 	f1 = f4*f3;
   47214 	heapFloat[(fp+-93)] = f1;
   47215 	f6 = heapFloat[(fp+-89)];
   47216 	f7 = heapFloat[(fp+-94)];
   47217 	f1 = f6+f7;
   47218 	heapFloat[(fp+-89)] = f1;
   47219 	f0 = f0*f26;
   47220 	f6 = heapFloat[(fp+-90)];
   47221 	f7 = heapFloat[(fp+-95)];
   47222 	f6 = f6+f7;
   47223 	f2 = f2*f26;
   47224 	f7 = heapFloat[(fp+-91)];
   47225 	f8 = heapFloat[(fp+-96)];
   47226 	f7 = f7+f8;
   47227 	f4 = f4*f26;
   47228 	f8 = heapFloat[(fp+-67)];
   47229 	f11 = heapFloat[(fp+-69)];
   47230 	f8 = f8+f11;
   47231 	f11 = f12*f30;
   47232 	f13 = heapFloat[(fp+-68)];
   47233 	f13 = f13+f29;
   47234 	f28 = heapFloat[(fp+-62)];
   47235 	f14 = f28*f30;
   47236 	f15 = heapFloat[(fp+-70)];
   47237 	f16 = heapFloat[(fp+-101)];
   47238 	f15 = f15+f16;
   47239 	f28 = heapFloat[(fp+-61)];
   47240 	f16 = f28*f30;
   47241 	f17 = heapFloat[(fp+-71)];
   47242 	f18 = heapFloat[(fp+-73)];
   47243 	f17 = f17+f18;
   47244 	f18 = f12*f3;
   47245 	f19 = heapFloat[(fp+-72)];
   47246 	f20 = heapFloat[(fp+-100)];
   47247 	f19 = f19+f20;
   47248 	f28 = heapFloat[(fp+-62)];
   47249 	f20 = f28*f3;
   47250 	f21 = heapFloat[(fp+-74)];
   47251 	f22 = heapFloat[(fp+-102)];
   47252 	f21 = f21+f22;
   47253 	f28 = heapFloat[(fp+-61)];
   47254 	f3 = f28*f3;
   47255 	f22 = heapFloat[(fp+-75)];
   47256 	f23 = heapFloat[(fp+-103)];
   47257 	f22 = f22+f23;
   47258 	f12 = f12*f26;
   47259 	f23 = heapFloat[(fp+-78)];
   47260 	f24 = heapFloat[(fp+-104)];
   47261 	f23 = f23+f24;
   47262 	f28 = heapFloat[(fp+-62)];
   47263 	f24 = f28*f26;
   47264 	f25 = heapFloat[(fp+-76)];
   47265 	f27 = heapFloat[(fp+-105)];
   47266 	f25 = f25+f27;
   47267 	f28 = heapFloat[(fp+-61)];
   47268 	f26 = f28*f26;
   47269 	f27 = heapFloat[(fp+-77)];
   47270 	f27 = f27+f9;
   47271 	f28 = heapFloat[(fp+-98)];
   47272 	f28 = f28+f10;
   47273 	f29 = heapFloat[(fp+-80)];
   47274 	f29 = f29+f5;
   47275 	f30 = heapFloat[(fp+-64)];
   47276 	f1 = heapFloat[(fp+-82)];
   47277 	f1 = f30+f1;
   47278 	heapFloat[(fp+-61)] = f1;
   47279 	f1 = heapFloat[(fp+-79)];
   47280 	f30 = heapFloat[(fp+-84)];
   47281 	f1 = f1+f30;
   47282 	heapFloat[(fp+-62)] = f1;
   47283 	f1 = heapFloat[(fp+-81)];
   47284 	f30 = heapFloat[(fp+-86)];
   47285 	f1 = f1+f30;
   47286 	heapFloat[(fp+-64)] = f1;
   47287 	f1 = heapFloat[(fp+-83)];
   47288 	f30 = heapFloat[(fp+-88)];
   47289 	f1 = f1+f30;
   47290 	heapFloat[(fp+-67)] = f1;
   47291 	f1 = heapFloat[(fp+-85)];
   47292 	f30 = heapFloat[(fp+-92)];
   47293 	f1 = f1+f30;
   47294 	heapFloat[(fp+-68)] = f1;
   47295 	f1 = heapFloat[(fp+-87)];
   47296 	f30 = heapFloat[(fp+-93)];
   47297 	f1 = f1+f30;
   47298 	f30 = heapFloat[(fp+-89)];
   47299 	f0 = f30+f0;
   47300 	f2 = f6+f2;
   47301 	f4 = f7+f4;
   47302 	f6 = heapFloat[(fp+-63)];
   47303 	f6 = f6+f9;
   47304 	f7 = heapFloat[(fp+-65)];
   47305 	f7 = f7+f10;
   47306 	f9 = heapFloat[(fp+-66)];
   47307 	f5 = f9+f5;
   47308 	f8 = f8+f11;
   47309 	f9 = f13+f14;
   47310 	f10 = f15+f16;
   47311 	f11 = f17+f18;
   47312 	f13 = f19+f20;
   47313 	f3 = f21+f3;
   47314 	f12 = f22+f12;
   47315 	f14 = f23+f24;
   47316 	f15 = f25+f26;
   47317 	r0 = sp + -16;
   47318 	r4 = r0 >> 2;
   47319 	heapFloat[(fp+-4)] = f29;
   47320 	heapFloat[(r4+1)] = f28;
   47321 	heapFloat[(r4+2)] = f27;
   47322 	heap32[(r4+3)] = 0;
   47323 	if(f5 <f29) //_LBB288_4
   47324 {
   47325 	heapFloat[(fp+-4)] = f5;
   47326 	f16 = f5;
   47327 }
   47328 else{
   47329 	f16 = f29;
   47330 }
   47331 	if(f7 <f28) //_LBB288_7
   47332 {
   47333 	heapFloat[(r4+1)] = f7;
   47334 	f17 = f7;
   47335 }
   47336 else{
   47337 	f17 = f28;
   47338 }
   47339 	if(f6 <f27) //_LBB288_10
   47340 {
   47341 	heapFloat[(r4+2)] = f6;
   47342 	f18 = f6;
   47343 }
   47344 else{
   47345 	f18 = f27;
   47346 }
   47347 	r5 = sp + -32;
   47348 	r6 = r5 >> 2;
   47349 	heapFloat[(fp+-8)] = f29;
   47350 	heapFloat[(r6+1)] = f28;
   47351 	heapFloat[(r6+2)] = f27;
   47352 	heap32[(r6+3)] = 0;
   47353 	if(f29 <f5) //_LBB288_13
   47354 {
   47355 	heapFloat[(fp+-8)] = f5;
   47356 	f19 = f5;
   47357 }
   47358 else{
   47359 	f19 = f29;
   47360 }
   47361 	if(f28 <f7) //_LBB288_16
   47362 {
   47363 	heapFloat[(r6+1)] = f7;
   47364 	f20 = f7;
   47365 }
   47366 else{
   47367 	f20 = f28;
   47368 }
   47369 	if(f27 <f6) //_LBB288_19
   47370 {
   47371 	heapFloat[(r6+2)] = f6;
   47372 	f21 = f6;
   47373 }
   47374 else{
   47375 	f21 = f27;
   47376 }
   47377 	f22 = heapFloat[(r3+61)];
   47378 	f16 = f16-f22;
   47379 	f17 = f17-f22;
   47380 	heapFloat[(fp+-4)] = f16;
   47381 	f16 = f18-f22;
   47382 	heapFloat[(r4+1)] = f17;
   47383 	f17 = f19+f22;
   47384 	heapFloat[(r4+2)] = f16;
   47385 	f16 = f20+f22;
   47386 	heapFloat[(fp+-8)] = f17;
   47387 	r4 = _ZTVZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback;
   47388 	f17 = f21+f22;
   47389 	heapFloat[(r6+1)] = f16;
   47390 	r7 = sp + -240;
   47391 	r4 = (r4 + 8)|0;
   47392 	heapFloat[(r6+2)] = f17;
   47393 	r6 = r7 >> 2;
   47394 	heap32[(fp+-60)] = r4;
   47395 	heapFloat[(r6+1)] = f4;
   47396 	heapFloat[(r6+2)] = f2;
   47397 	heapFloat[(r6+3)] = f0;
   47398 	heap32[(r6+4)] = 0;
   47399 	heapFloat[(r6+5)] = f1;
   47400 	f0 = heapFloat[(fp+-68)];
   47401 	heapFloat[(r6+6)] = f0;
   47402 	f0 = heapFloat[(fp+-67)];
   47403 	heapFloat[(r6+7)] = f0;
   47404 	heap32[(r6+8)] = 0;
   47405 	f0 = heapFloat[(fp+-64)];
   47406 	heapFloat[(r6+9)] = f0;
   47407 	f0 = heapFloat[(fp+-62)];
   47408 	heapFloat[(r6+10)] = f0;
   47409 	f0 = heapFloat[(fp+-61)];
   47410 	heapFloat[(r6+11)] = f0;
   47411 	heap32[(r6+12)] = 0;
   47412 	heapFloat[(r6+13)] = f29;
   47413 	heapFloat[(r6+14)] = f28;
   47414 	heapFloat[(r6+15)] = f27;
   47415 	heap32[(r6+16)] = 0;
   47416 	heapFloat[(r6+17)] = f15;
   47417 	heapFloat[(r6+18)] = f14;
   47418 	heapFloat[(r6+19)] = f12;
   47419 	heap32[(r6+20)] = 0;
   47420 	heapFloat[(r6+21)] = f3;
   47421 	heapFloat[(r6+22)] = f13;
   47422 	heapFloat[(r6+23)] = f11;
   47423 	heap32[(r6+24)] = 0;
   47424 	heapFloat[(r6+25)] = f10;
   47425 	heapFloat[(r6+26)] = f9;
   47426 	heapFloat[(r6+27)] = f8;
   47427 	heap32[(r6+28)] = 0;
   47428 	heapFloat[(r6+29)] = f5;
   47429 	heapFloat[(r6+30)] = f7;
   47430 	heapFloat[(r6+31)] = f6;
   47431 	heap32[(r6+32)] = 0;
   47432 	heapFloat[(r6+49)] = f22;
   47433 	heap32[(r6+50)] = heap32[(r3+60)];
   47434 if(!(r1 ==0)) //_LBB288_23
   47435 {
   47436 	r2 = heap32[(r2)];
   47437 	r2 = r2 >> 2;
   47438 	r2 = heap32[(r2+15)];
   47439 	heap32[(g0)] = r1;
   47440 	heap32[(g0+1)] = r7;
   47441 	heap32[(g0+2)] = r0;
   47442 	heap32[(g0+3)] = r5;
   47443 	__FUNCTION_TABLE__[(r2)>>2](i7);
   47444 	f0 = heapFloat[(r6+50)];
   47445 	f1 = heapFloat[(r3+60)];
   47446 if(!(f0 >=f1)) //_LBB288_23
   47447 {
   47448 	heapFloat[(r3+60)] = f0;
   47449 	f_g0 = f0;
   47450 	return;
   47451 }
   47452 }
   47453 }
   47454 }
   47455 	f0 =                         1;
   47456 	f_g0 = f0;
   47457 	return;
   47458 }
   47459 
   47460 function _ZN33btConvexConcaveCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
   47461 {
   47462 	var i7;
   47463 	var fp = sp>>2;
   47464 	var r0;
   47465 	var r1;
   47466 	var r2;
   47467 	var r3;
   47468 	var r4;
   47469 	var r5;
   47470 	var r6;
   47471 	var r7;
   47472 	var r8;
   47473 	var r9;
   47474 	var r10;
   47475 	var r11;
   47476 	var r12;
   47477 	var f0;
   47478 	var f1;
   47479 	var f2;
   47480 	var f3;
   47481 	var f4;
   47482 	var f5;
   47483 	var f6;
   47484 	var f7;
   47485 	var f8;
   47486 	var f9;
   47487 	var f10;
   47488 	var f11;
   47489 	var f12;
   47490 	var f13;
   47491 	var f14;
   47492 	var f15;
   47493 	var f16;
   47494 	var f17;
   47495 	var f18;
   47496 	var f19;
   47497 	var f20;
   47498 	var f21;
   47499 	var f22;
   47500 	var f23;
   47501 	var f24;
   47502 	var f25;
   47503 	var f26;
   47504 	var f27;
   47505 	var f28;
   47506 	var f29;
   47507 	var f30;
   47508 var __label__ = 0;
   47509 	i7 = sp + -80;var g0 = i7>>2; // save stack
   47510 	r0 = heap32[(fp)];
   47511 	r1 = heapU8[r0+8];
   47512 	r2 = heap32[(fp+2)];
   47513 	r3 = heap32[(fp+1)];
   47514 	r4 = r1 == 0 ? r2 : r3;
   47515 	r5 = r4 >> 2;
   47516 	r5 = heap32[(r5+48)];
   47517 	r6 = r5 >> 2;
   47518 	r7 = heap32[(r6+1)];
   47519 	r7 = (r7 + -21)|0;
   47520 if(!(uint(r7) >uint(8))) //_LBB289_8
   47521 {
   47522 	r1 = r1 == 0 ? r3 : r2;
   47523 	r2 = r1 >> 2;
   47524 	r2 = heap32[(r2+48)];
   47525 	r2 = r2 >> 2;
   47526 	r2 = heap32[(r2+1)];
   47527 if(!(r2 >19)) //_LBB289_8
   47528 {
   47529 	r2 = heap32[(fp+3)];
   47530 	r3 = heap32[(fp+4)];
   47531 	r7 = heap32[(r6)];
   47532 	r7 = r7 >> 2;
   47533 	r7 = heap32[(r7+11)];
   47534 	heap32[(g0)] = r5;
   47535 	r8 = r0 >> 2;
   47536 	__FUNCTION_TABLE__[(r7)>>2](i7);
   47537 	f0 = f_g0;
   47538 	r7 = r3 >> 2;
   47539 	r9 = heap32[(r8+19)];
   47540 	heap32[(r7+1)] = r9;
   47541 	heap32[(r8+16)] = r2;
   47542 	heapFloat[(r8+17)] = f0;
   47543 	heap32[(r8+14)] = r3;
   47544 	r2 = heap32[(r8+4)];
   47545 	r9 = heap32[(r8+5)];
   47546 	r9 = r9 >> 2;
   47547 	r2 = r2 >> 2;
   47548 	f1 = heapFloat[(r9+1)];
   47549 	f2 = heapFloat[(r2+1)];
   47550 	f3 = heapFloat[(r9+5)];
   47551 	f4 = heapFloat[(r2+5)];
   47552 	f5 = heapFloat[(r2+2)];
   47553 	f6 = heapFloat[(r2+6)];
   47554 	f7 = f2*f1;
   47555 	f8 = f4*f3;
   47556 	f9 = heapFloat[(r9+9)];
   47557 	f10 = heapFloat[(r2+9)];
   47558 	f11 = heapFloat[(r9+2)];
   47559 	f12 = heapFloat[(r9+6)];
   47560 	f13 = heapFloat[(r9+3)];
   47561 	f14 = heapFloat[(r2+13)];
   47562 	f15 = heapFloat[(r2+3)];
   47563 	f16 = heapFloat[(r9+7)];
   47564 	f17 = heapFloat[(r9+14)];
   47565 	f18 = heapFloat[(r2+14)];
   47566 	f19 = heapFloat[(r2+7)];
   47567 	f20 = heapFloat[(r9+10)];
   47568 	f21 = heapFloat[(r9+15)];
   47569 	f22 = heapFloat[(r9+11)];
   47570 	f23 = heapFloat[(r2+15)];
   47571 	f24 = heapFloat[(r2+11)];
   47572 	f25 = heapFloat[(r2+10)];
   47573 	f26 = heapFloat[(r9+13)];
   47574 	f27 = f5*f1;
   47575 	f28 = f6*f3;
   47576 	f7 = f7+f8;
   47577 	f8 = f10*f9;
   47578 	r9 = sp + -64;
   47579 	f29 = f15*f1;
   47580 	f30 = f19*f3;
   47581 	f27 = f27+f28;
   47582 	f28 = f25*f9;
   47583 	f7 = f7+f8;
   47584 	r10 = r9 >> 2;
   47585 	f8 = f29+f30;
   47586 	f29 = f24*f9;
   47587 	f27 = f27+f28;
   47588 	heapFloat[(fp+-16)] = f7;
   47589 	f7 = f2*f11;
   47590 	f28 = f4*f12;
   47591 	f8 = f8+f29;
   47592 	heapFloat[(r10+1)] = f27;
   47593 	heapFloat[(r10+2)] = f8;
   47594 	f8 = f5*f11;
   47595 	f27 = f6*f12;
   47596 	f7 = f7+f28;
   47597 	f28 = f10*f20;
   47598 	f29 = f15*f11;
   47599 	f30 = f19*f12;
   47600 	f8 = f8+f27;
   47601 	f27 = f25*f20;
   47602 	f7 = f7+f28;
   47603 	heap32[(r10+3)] = 0;
   47604 	f28 = f29+f30;
   47605 	f29 = f24*f20;
   47606 	f8 = f8+f27;
   47607 	heapFloat[(r10+4)] = f7;
   47608 	f2 = f2*f13;
   47609 	f4 = f4*f16;
   47610 	f7 = f28+f29;
   47611 	heapFloat[(r10+5)] = f8;
   47612 	heapFloat[(r10+6)] = f7;
   47613 	f5 = f5*f13;
   47614 	f6 = f6*f16;
   47615 	f2 = f2+f4;
   47616 	f4 = f10*f22;
   47617 	f7 = -f26;
   47618 	f8 = f15*f13;
   47619 	f10 = f19*f16;
   47620 	f5 = f5+f6;
   47621 	f6 = f25*f22;
   47622 	f2 = f2+f4;
   47623 	heap32[(r10+7)] = 0;
   47624 	f4 = f1*f14;
   47625 	f15 = f3*f18;
   47626 	f1 = f1*f7;
   47627 	f3 = f3*f17;
   47628 	f8 = f8+f10;
   47629 	f10 = f24*f22;
   47630 	f5 = f5+f6;
   47631 	heapFloat[(r10+8)] = f2;
   47632 	f2 = f11*f14;
   47633 	f6 = f12*f18;
   47634 	f11 = f11*f7;
   47635 	f12 = f12*f17;
   47636 	f4 = f4+f15;
   47637 	f15 = f9*f23;
   47638 	f1 = f1-f3;
   47639 	f3 = f9*f21;
   47640 	f8 = f8+f10;
   47641 	heapFloat[(r10+9)] = f5;
   47642 	heapFloat[(r10+10)] = f8;
   47643 	f5 = f13*f14;
   47644 	f8 = f16*f18;
   47645 	f7 = f13*f7;
   47646 	f9 = f16*f17;
   47647 	f2 = f2+f6;
   47648 	f6 = f20*f23;
   47649 	f10 = f11-f12;
   47650 	f11 = f20*f21;
   47651 	f4 = f4+f15;
   47652 	f1 = f1-f3;
   47653 	f3 = f5+f8;
   47654 	f5 = f22*f23;
   47655 	f7 = f7-f9;
   47656 	f8 = f22*f21;
   47657 	f2 = f2+f6;
   47658 	f6 = f10-f11;
   47659 	f1 = f4+f1;
   47660 	heap32[(r10+11)] = 0;
   47661 	f3 = f3+f5;
   47662 	f4 = f7-f8;
   47663 	f2 = f2+f6;
   47664 	heapFloat[(r10+12)] = f1;
   47665 	f1 = f3+f4;
   47666 	heapFloat[(r10+13)] = f2;
   47667 	heapFloat[(r10+14)] = f1;
   47668 	heap32[(r10+15)] = 0;
   47669 	r2 = heap32[(r2+48)];
   47670 	r10 = r2 >> 2;
   47671 	r10 = heap32[(r10)];
   47672 	r10 = r10 >> 2;
   47673 	r10 = heap32[(r10+2)];
   47674 	r11 = (r0 + 40)|0;
   47675 	r12 = (r0 + 24)|0;
   47676 	heap32[(g0)] = r2;
   47677 	heap32[(g0+1)] = r9;
   47678 	heap32[(g0+2)] = r12;
   47679 	heap32[(g0+3)] = r11;
   47680 	__FUNCTION_TABLE__[(r10)>>2](i7);
   47681 	f1 = heapFloat[(r8+10)];
   47682 	f1 = f1+f0;
   47683 	heapFloat[(r8+10)] = f1;
   47684 	f1 = heapFloat[(r8+11)];
   47685 	f1 = f1+f0;
   47686 	heapFloat[(r8+11)] = f1;
   47687 	f1 = heapFloat[(r8+12)];
   47688 	f1 = f1+f0;
   47689 	heapFloat[(r8+12)] = f1;
   47690 	f1 = heapFloat[(r8+6)];
   47691 	f1 = f1-f0;
   47692 	heapFloat[(r8+6)] = f1;
   47693 	f1 = heapFloat[(r8+7)];
   47694 	f1 = f1-f0;
   47695 	heapFloat[(r8+7)] = f1;
   47696 	f1 = heapFloat[(r8+8)];
   47697 	f0 = f1-f0;
   47698 	heapFloat[(r8+8)] = f0;
   47699 	r2 = heap32[(r8+19)];
   47700 	r2 = r2 >> 2;
   47701 	heap32[(r2+277)] = r1;
   47702 	heap32[(r2+278)] = r4;
   47703 	r1 = heap32[(r6)];
   47704 	r1 = r1 >> 2;
   47705 	r1 = heap32[(r1+15)];
   47706 	r0 = (r0 + 12)|0;
   47707 	heap32[(g0)] = r5;
   47708 	heap32[(g0+1)] = r0;
   47709 	heap32[(g0+2)] = r12;
   47710 	heap32[(g0+3)] = r11;
   47711 	__FUNCTION_TABLE__[(r1)>>2](i7);
   47712 	r0 = heap32[(r7+1)];
   47713 	if(r0 !=0) //_LBB289_4
   47714 {
   47715 	r1 = r0 >> 2;
   47716 	r2 = heap32[(r1+279)];
   47717 if(!(r2 ==0)) //_LBB289_8
   47718 {
   47719 	r1 = heap32[(r1+277)];
   47720 	r2 = heap32[(r7+34)];
   47721 	if(r1 ==r2) //_LBB289_7
   47722 {
   47723 	r1 = (r3 + 8)|0;
   47724 	r2 = (r3 + 72)|0;
   47725 	heap32[(g0)] = r0;
   47726 	heap32[(g0+1)] = r1;
   47727 	heap32[(g0+2)] = r2;
   47728 	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
   47729 }
   47730 else{
   47731 	r1 = (r3 + 72)|0;
   47732 	r3 = (r3 + 8)|0;
   47733 	heap32[(g0)] = r0;
   47734 	heap32[(g0+1)] = r1;
   47735 	heap32[(g0+2)] = r3;
   47736 	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
   47737 	return;
   47738 }
   47739 }
   47740 }
   47741 else{
   47742 	r0 = _2E_str59;
   47743 	r3 = _2E_str160;
   47744 	heap32[(g0)] = r0;
   47745 	heap32[(g0+1)] = r3;
   47746 	heap32[(g0+2)] = 101;
   47747 	_assert(i7);
   47748 }
   47749 }
   47750 }
   47751 	return;
   47752 }
   47753 
   47754 function _ZN33btConvexConcaveCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
   47755 {
   47756 	var i7;
   47757 	var fp = sp>>2;
   47758 	var r0;
   47759 	var r1;
   47760 	var r2;
   47761 	var r3;
   47762 	var r4;
   47763 	var r5;
   47764 	var r6;
   47765 	var r7;
   47766 	var r8;
   47767 	var r9;
   47768 	var r10;
   47769 	var r11;
   47770 var __label__ = 0;
   47771 	i7 = sp + -8;var g0 = i7>>2; // save stack
   47772 	r0 = heap32[(fp)];
   47773 	r0 = r0 >> 2;
   47774 	r1 = heap32[(r0+19)];
   47775 if(!(r1 ==0)) //_LBB290_22
   47776 {
   47777 	r2 = heap32[(fp+1)];
   47778 	r3 = r2 >> 2;
   47779 	r4 = heap32[(r3+2)];
   47780 	r5 = heap32[(r3+1)];
   47781 	if(r4 ==r5) //_LBB290_3
   47782 {
   47783 	r6 = 1;
   47784 	r7 = r5 << 1;
   47785 	r7 = r5 == 0 ? r6 : r7;
   47786 if(!(r4 >=r7)) //_LBB290_2
   47787 {
   47788 	if(r7 !=0) //_LBB290_6
   47789 {
   47790 	r1 = gNumAlignedAllocs;
   47791 	r1 = r1 >> 2;
   47792 	r4 = heap32[(r1)];
   47793 	r8 = r7 << 2;
   47794 	r4 = (r4 + 1)|0;
   47795 	r8 = r8 | 3;
   47796 	heap32[(r1)] = r4;
   47797 	r1 = (r8 + 16)|0;
   47798 	heap32[(g0)] = r1;
   47799 	malloc(i7);
   47800 	r1 = r_g0;
   47801 	if(r1 !=0) //_LBB290_8
   47802 {
   47803 	r4 = 0;
   47804 	r8 = (r1 + 4)|0;
   47805 	r4 = (r4 - r8)|0;
   47806 	r4 = r4 & 15;
   47807 	r4 = (r1 + r4)|0;
   47808 	r8 = (r4 + 4)|0;
   47809 	r4 = r4 >> 2;
   47810 	heap32[(r4)] = r1;
   47811 	r1 = r8;
   47812 }
   47813 }
   47814 else{
   47815 	r1 = 0;
   47816 }
   47817 	r4 = (r2 + 12)|0;
   47818 	if(r5 <1) //_LBB290_11
   47819 {
   47820 	r8 = r4 >> 2;
   47821 	r9 = heap32[(r8)];
   47822 }
   47823 else{
   47824 	r8 = 0;
   47825 _14: while(true){
   47826 	r9 = r4 >> 2;
   47827 	r9 = heap32[(r9)];
   47828 	r10 = r8 << 2;
   47829 	r11 = (r9 + r10)|0;
   47830 	r11 = r11 >> 2;
   47831 	r10 = (r1 + r10)|0;
   47832 	r11 = heap32[(r11)];
   47833 	r8 = (r8 + 1)|0;
   47834 	r10 = r10 >> 2;
   47835 	heap32[(r10)] = r11;
   47836 if(!(r5 !=r8)) //_LBB290_12
   47837 {
   47838 break _14;
   47839 }
   47840 }
   47841 	r4 = (r2 + 12)|0;
   47842 }
   47843 	if(r9 !=0) //_LBB290_16
   47844 {
   47845 	r8 = heapU8[r2+16];
   47846 	if(r8 !=0) //_LBB290_18
   47847 {
   47848 	r5 = gNumAlignedFree;
   47849 	r5 = r5 >> 2;
   47850 	r8 = heap32[(r5)];
   47851 	r8 = (r8 + 1)|0;
   47852 	r9 = r9 >> 2;
   47853 	heap32[(r5)] = r8;
   47854 	r5 = heap32[(r9+-1)];
   47855 	heap32[(g0)] = r5;
   47856 	free(i7);
   47857 	r5 = heap32[(r3+1)];
   47858 }
   47859 	r8 = r4 >> 2;
   47860 	heap32[(r8)] = 0;
   47861 }
   47862 	r4 = r4 >> 2;
   47863 	heap8[r2+16] = r6;
   47864 	heap32[(r4)] = r1;
   47865 	heap32[(r3+2)] = r7;
   47866 	r1 = heap32[(r0+19)];
   47867 }
   47868 }
   47869 	r0 = r5 << 2;
   47870 	r2 = heap32[(r3+3)];
   47871 	r0 = (r2 + r0)|0;
   47872 	r0 = r0 >> 2;
   47873 	heap32[(r0)] = r1;
   47874 	r0 = heap32[(r3+1)];
   47875 	r0 = (r0 + 1)|0;
   47876 	heap32[(r3+1)] = r0;
   47877 }
   47878 	return;
   47879 }
   47880 
   47881 function _ZN33btConvexConcaveCollisionAlgorithmD0Ev(sp)
   47882 {
   47883 	var i7;
   47884 	var fp = sp>>2;
   47885 	var r0;
   47886 	var r1;
   47887 	var r2;
   47888 	var r3;
   47889 	var r4;
   47890 var __label__ = 0;
   47891 	i7 = sp + -8;var g0 = i7>>2; // save stack
   47892 	r0 = heap32[(fp)];
   47893 	r1 = _ZTV33btConvexConcaveCollisionAlgorithm;
   47894 	r2 = _ZTV24btConvexTriangleCallback;
   47895 	r1 = (r1 + 8)|0;
   47896 	r3 = r0 >> 2;
   47897 	r2 = (r2 + 8)|0;
   47898 	heap32[(r3)] = r1;
   47899 	heap32[(r3+3)] = r2;
   47900 	r1 = heap32[(r3+15)];
   47901 	r2 = r1 >> 2;
   47902 	r2 = heap32[(r2)];
   47903 	r2 = r2 >> 2;
   47904 	r2 = heap32[(r2+5)];
   47905 	r4 = heap32[(r3+19)];
   47906 	heap32[(g0)] = r1;
   47907 	heap32[(g0+1)] = r4;
   47908 	__FUNCTION_TABLE__[(r2)>>2](i7);
   47909 	r1 = heap32[(r3+15)];
   47910 	r2 = r1 >> 2;
   47911 	r2 = heap32[(r2)];
   47912 	r2 = r2 >> 2;
   47913 	r2 = heap32[(r2+4)];
   47914 	r4 = heap32[(r3+19)];
   47915 	heap32[(g0)] = r1;
   47916 	heap32[(g0+1)] = r4;
   47917 	r1 = _ZTV18btTriangleCallback;
   47918 	r4 = _ZTV30btActivatingCollisionAlgorithm;
   47919 	r1 = (r1 + 8)|0;
   47920 	__FUNCTION_TABLE__[(r2)>>2](i7);
   47921 	r2 = (r4 + 8)|0;
   47922 	heap32[(r3+3)] = r1;
   47923 	heap32[(r3)] = r2;
   47924 	heap32[(g0)] = r0;
   47925 	_ZdlPv(i7);
   47926 	return;
   47927 }
   47928 
   47929 function _ZN33btConvexConcaveCollisionAlgorithmD1Ev(sp)
   47930 {
   47931 	var i7;
   47932 	var fp = sp>>2;
   47933 	var r0;
   47934 	var r1;
   47935 	var r2;
   47936 	var r3;
   47937 var __label__ = 0;
   47938 	i7 = sp + -8;var g0 = i7>>2; // save stack
   47939 	r0 = heap32[(fp)];
   47940 	r1 = _ZTV33btConvexConcaveCollisionAlgorithm;
   47941 	r2 = _ZTV24btConvexTriangleCallback;
   47942 	r0 = r0 >> 2;
   47943 	r1 = (r1 + 8)|0;
   47944 	r2 = (r2 + 8)|0;
   47945 	heap32[(r0)] = r1;
   47946 	heap32[(r0+3)] = r2;
   47947 	r1 = heap32[(r0+15)];
   47948 	r2 = r1 >> 2;
   47949 	r2 = heap32[(r2)];
   47950 	r2 = r2 >> 2;
   47951 	r2 = heap32[(r2+5)];
   47952 	r3 = heap32[(r0+19)];
   47953 	heap32[(g0)] = r1;
   47954 	heap32[(g0+1)] = r3;
   47955 	__FUNCTION_TABLE__[(r2)>>2](i7);
   47956 	r1 = heap32[(r0+15)];
   47957 	r2 = r1 >> 2;
   47958 	r2 = heap32[(r2)];
   47959 	r2 = r2 >> 2;
   47960 	r2 = heap32[(r2+4)];
   47961 	r3 = heap32[(r0+19)];
   47962 	heap32[(g0)] = r1;
   47963 	heap32[(g0+1)] = r3;
   47964 	r1 = _ZTV18btTriangleCallback;
   47965 	r3 = _ZTV30btActivatingCollisionAlgorithm;
   47966 	r1 = (r1 + 8)|0;
   47967 	__FUNCTION_TABLE__[(r2)>>2](i7);
   47968 	r2 = (r3 + 8)|0;
   47969 	heap32[(r0+3)] = r1;
   47970 	heap32[(r0)] = r2;
   47971 	return;
   47972 }
   47973 
   47974 function _ZN23btConvexConvexAlgorithm10CreateFuncD1Ev(sp)
   47975 {
   47976 	var i7;
   47977 	var fp = sp>>2;
   47978 	var r0;
   47979 	var r1;
   47980 var __label__ = 0;
   47981 	i7 = sp + 0;var g0 = i7>>2; // save stack
   47982 	r0 = heap32[(fp)];
   47983 	r1 = _ZTVN23btConvexConvexAlgorithm10CreateFuncE;
   47984 	r0 = r0 >> 2;
   47985 	r1 = (r1 + 8)|0;
   47986 	heap32[(r0)] = r1;
   47987 	return;
   47988 }
   47989 
   47990 function _ZN23btConvexConvexAlgorithm10CreateFuncD0Ev(sp)
   47991 {
   47992 	var i7;
   47993 	var fp = sp>>2;
   47994 	var r0;
   47995 	var r1;
   47996 	var r2;
   47997 var __label__ = 0;
   47998 	i7 = sp + -8;var g0 = i7>>2; // save stack
   47999 	r0 = heap32[(fp)];
   48000 	r1 = _ZTVN23btConvexConvexAlgorithm10CreateFuncE;
   48001 	r2 = r0 >> 2;
   48002 	r1 = (r1 + 8)|0;
   48003 	heap32[(r2)] = r1;
   48004 	heap32[(g0)] = r0;
   48005 	_ZdlPv(i7);
   48006 	return;
   48007 }
   48008 
   48009 function _ZN23btConvexConvexAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
   48010 {
   48011 	var i7;
   48012 	var fp = sp>>2;
   48013 	var r0;
   48014 	var r1;
   48015 	var r2;
   48016 	var r3;
   48017 	var r4;
   48018 	var r5;
   48019 	var r6;
   48020 	var r7;
   48021 	var r8;
   48022 var __label__ = 0;
   48023 	i7 = sp + -8;var g0 = i7>>2; // save stack
   48024 	r0 = heap32[(fp+1)];
   48025 	r0 = r0 >> 2;
   48026 	r1 = heap32[(r0)];
   48027 	r2 = r1 >> 2;
   48028 	r2 = heap32[(r2)];
   48029 	r2 = r2 >> 2;
   48030 	r2 = heap32[(r2+12)];
   48031 	heap32[(g0)] = r1;
   48032 	heap32[(g0+1)] = 36;
   48033 	r1 = heap32[(fp)];
   48034 	__FUNCTION_TABLE__[(r2)>>2](i7);
   48035 	r1 = r1 >> 2;
   48036 	r3 = _ZTV20btCollisionAlgorithm;
   48037 	r4 = heap32[(r1+5)];
   48038 	r5 = heap32[(r1+4)];
   48039 	r6 = heap32[(r0+1)];
   48040 	r7 = heap32[(r1+2)];
   48041 	r1 = heap32[(r1+3)];
   48042 	r8 = r_g0 >> 2;
   48043 	r3 = (r3 + 8)|0;
   48044 	heap32[(r8)] = r3;
   48045 	r0 = heap32[(r0)];
   48046 	r3 = _ZTV23btConvexConvexAlgorithm;
   48047 	r3 = (r3 + 8)|0;
   48048 	heap32[(r8+1)] = r0;
   48049 	heap32[(r8)] = r3;
   48050 	heap32[(r8+2)] = r1;
   48051 	r0 = 0;
   48052 	heap32[(r8+3)] = r7;
   48053 	heap8[r_g0+16] = r0;
   48054 	heap32[(r8+5)] = r6;
   48055 	heap8[r_g0+24] = r0;
   48056 	heap32[(r8+7)] = r5;
   48057 	heap32[(r8+8)] = r4;
   48058 	return;
   48059 }
   48060 
   48061 function _ZN24btPerturbedContactResultD1Ev(sp)
   48062 {
   48063 	var i7;
   48064 	var fp = sp>>2;
   48065 	var r0;
   48066 	var r1;
   48067 var __label__ = 0;
   48068 	i7 = sp + 0;var g0 = i7>>2; // save stack
   48069 	r0 = heap32[(fp)];
   48070 	r1 = _ZTV24btPerturbedContactResult;
   48071 	r0 = r0 >> 2;
   48072 	r1 = (r1 + 8)|0;
   48073 	heap32[(r0)] = r1;
   48074 	return;
   48075 }
   48076 
   48077 function _ZN24btPerturbedContactResultD0Ev(sp)
   48078 {
   48079 	var i7;
   48080 	var fp = sp>>2;
   48081 	var r0;
   48082 	var r1;
   48083 	var r2;
   48084 var __label__ = 0;
   48085 	i7 = sp + -8;var g0 = i7>>2; // save stack
   48086 	r0 = heap32[(fp)];
   48087 	r1 = _ZTV24btPerturbedContactResult;
   48088 	r2 = r0 >> 2;
   48089 	r1 = (r1 + 8)|0;
   48090 	heap32[(r2)] = r1;
   48091 	heap32[(g0)] = r0;
   48092 	_ZdlPv(i7);
   48093 	return;
   48094 }
   48095 
   48096 function _ZN24btPerturbedContactResult15addContactPointERK9btVector3S2_f(sp)
   48097 {
   48098 	var i7;
   48099 	var fp = sp>>2;
   48100 	var r0;
   48101 	var r1;
   48102 	var r2;
   48103 	var r3;
   48104 	var f0;
   48105 	var f1;
   48106 	var f2;
   48107 	var f3;
   48108 	var f4;
   48109 	var f5;
   48110 	var f6;
   48111 	var f7;
   48112 	var f8;
   48113 	var f9;
   48114 	var f10;
   48115 	var f11;
   48116 	var f12;
   48117 	var f13;
   48118 	var f14;
   48119 	var f15;
   48120 	var f16;
   48121 	var f17;
   48122 	var f18;
   48123 	var f19;
   48124 	var f20;
   48125 	var f21;
   48126 	var f22;
   48127 	var f23;
   48128 	var f24;
   48129 	var f25;
   48130 	var f26;
   48131 	var f27;
   48132 	var f28;
   48133 	var f29;
   48134 	var f30;
   48135 var __label__ = 0;
   48136 	i7 = sp + -104;var g0 = i7>>2; // save stack
   48137 	r0 = heap32[(fp+1)];
   48138 	r1 = r0 >> 2;
   48139 	r2 = heap32[(fp+2)];
   48140 	r2 = r2 >> 2;
   48141 	f0 = heapFloat[(r1+2)];
   48142 	heapFloat[(fp+-5)] = f0;
   48143 	f1 = heapFloat[(r1+1)];
   48144 	heapFloat[(fp+-6)] = f1;
   48145 	f2 = heapFloat[(fp+3)];
   48146 	f3 = heapFloat[(r1)];
   48147 	heapFloat[(fp+-7)] = f3;
   48148 	f4 = heapFloat[(r2+2)];
   48149 	heapFloat[(fp+-11)] = f4;
   48150 	f0 = f0*f2;
   48151 	f5 = heapFloat[(r2+1)];
   48152 	heapFloat[(fp+-12)] = f5;
   48153 	f1 = f1*f2;
   48154 	f6 = heapFloat[(r2)];
   48155 	heapFloat[(fp+-13)] = f6;
   48156 	f2 = f3*f2;
   48157 	r1 = heap32[(fp)];
   48158 	f0 = f4+f0;
   48159 	heapFloat[(fp+-8)] = f0;
   48160 	f0 = f5+f1;
   48161 	heapFloat[(fp+-9)] = f0;
   48162 	f0 = f6+f2;
   48163 	heapFloat[(fp+-10)] = f0;
   48164 	r2 = heapU8[r1+356];
   48165 	if(r2 ==0) //_LBB298_2
   48166 {
   48167 	r2 = r1 >> 2;
   48168 	f3 = heapFloat[(r2+69)];
   48169 	f3 = -f3;
   48170 	f0 = heapFloat[(r2+57)];
   48171 	f1 = heapFloat[(r2+58)];
   48172 	f2 = heapFloat[(r2+61)];
   48173 	f4 = heapFloat[(r2+70)];
   48174 	f5 = heapFloat[(r2+62)];
   48175 	f6 = heapFloat[(r2+77)];
   48176 	f7 = heapFloat[(r2+78)];
   48177 	f8 = heapFloat[(r2+73)];
   48178 	f9 = heapFloat[(r2+65)];
   48179 	f10 = heapFloat[(r2+74)];
   48180 	f11 = heapFloat[(r2+66)];
   48181 	f12 = heapFloat[(r2+71)];
   48182 	f13 = heapFloat[(r2+59)];
   48183 	f14 = heapFloat[(r2+63)];
   48184 	f15 = f0*f3;
   48185 	f16 = f2*f4;
   48186 	f17 = f1*f3;
   48187 	f18 = f5*f4;
   48188 	f19 = heapFloat[(r2+81)];
   48189 	f20 = heapFloat[(r2+82)];
   48190 	f21 = heapFloat[(r2+79)];
   48191 	f22 = heapFloat[(r2+67)];
   48192 	f23 = heapFloat[(r2+75)];
   48193 	f24 = f0*f6;
   48194 	f25 = f1*f7;
   48195 	f26 = f2*f6;
   48196 	f27 = f5*f7;
   48197 	f28 = f0*f8;
   48198 	heapFloat[(fp+-14)] = f28;
   48199 	f28 = f1*f10;
   48200 	heapFloat[(fp+-15)] = f28;
   48201 	f29 = f2*f8;
   48202 	f28 = f5*f10;
   48203 	f15 = f15-f16;
   48204 	f16 = f9*f12;
   48205 	f17 = f17-f18;
   48206 	f18 = f11*f12;
   48207 	f3 = f13*f3;
   48208 	heapFloat[(fp+-16)] = f3;
   48209 	f3 = f14*f4;
   48210 	heapFloat[(fp+-20)] = f3;
   48211 	f4 = f15-f16;
   48212 	f15 = f17-f18;
   48213 	f16 = heapFloat[(r2+83)];
   48214 	f0 = f0*f19;
   48215 	f1 = f1*f20;
   48216 	f2 = f2*f19;
   48217 	f5 = f5*f20;
   48218 	f17 = f24+f25;
   48219 	heapFloat[(fp+-17)] = f17;
   48220 	f3 = f13*f21;
   48221 	heapFloat[(fp+-21)] = f3;
   48222 	f17 = f26+f27;
   48223 	heapFloat[(fp+-18)] = f17;
   48224 	f18 = f14*f21;
   48225 	f24 = f9*f6;
   48226 	heapFloat[(fp+-19)] = f24;
   48227 	f25 = f11*f7;
   48228 	f26 = heapFloat[(fp+-14)];
   48229 	f27 = heapFloat[(fp+-15)];
   48230 	f26 = f26+f27;
   48231 	f27 = f13*f23;
   48232 	f28 = f29+f28;
   48233 	f29 = f14*f23;
   48234 	f30 = f9*f8;
   48235 	f3 = f11*f10;
   48236 	f17 = heapFloat[(fp+-16)];
   48237 	f24 = heapFloat[(fp+-20)];
   48238 	f17 = f17-f24;
   48239 	f12 = f22*f12;
   48240 	f12 = f17-f12;
   48241 	f0 = f0+f1;
   48242 	f1 = f13*f16;
   48243 	f2 = f2+f5;
   48244 	f5 = f14*f16;
   48245 	f9 = f9*f19;
   48246 	f11 = f11*f20;
   48247 	f17 = heapFloat[(fp+-17)];
   48248 	f13 = heapFloat[(fp+-21)];
   48249 	f13 = f17+f13;
   48250 	f14 = f26+f27;
   48251 	f17 = heapFloat[(fp+-18)];
   48252 	f17 = f17+f18;
   48253 	f18 = f28+f29;
   48254 	f24 = heapFloat[(fp+-19)];
   48255 	f24 = f24+f25;
   48256 	f25 = f22*f21;
   48257 	f6 = f6*f4;
   48258 	f7 = f7*f15;
   48259 	f3 = f30+f3;
   48260 	f26 = f22*f23;
   48261 	f8 = f8*f4;
   48262 	f10 = f10*f15;
   48263 	f0 = f0+f1;
   48264 	f1 = f2+f5;
   48265 	f2 = f9+f11;
   48266 	f5 = f22*f16;
   48267 	f4 = f19*f4;
   48268 	f9 = f20*f15;
   48269 	f11 = heapFloat[(fp+-13)];
   48270 	f13 = f13*f11;
   48271 	f15 = heapFloat[(fp+-12)];
   48272 	f17 = f17*f15;
   48273 	f19 = f24+f25;
   48274 	f3 = f3+f26;
   48275 	f6 = f6+f7;
   48276 	f7 = f21*f12;
   48277 	f14 = f14*f11;
   48278 	f18 = f18*f15;
   48279 	f8 = f8+f10;
   48280 	f10 = f23*f12;
   48281 	f2 = f2+f5;
   48282 	f0 = f0*f11;
   48283 	f1 = f1*f15;
   48284 	f4 = f4+f9;
   48285 	f5 = f16*f12;
   48286 	f9 = f13+f17;
   48287 	f11 = heapFloat[(fp+-11)];
   48288 	f12 = f19*f11;
   48289 	f6 = f6+f7;
   48290 	f7 = heapFloat[(r2+86)];
   48291 	f13 = f14+f18;
   48292 	f3 = f3*f11;
   48293 	f8 = f8+f10;
   48294 	f10 = heapFloat[(r2+85)];
   48295 	f14 = heapFloat[(r2+87)];
   48296 	f4 = f4+f5;
   48297 	f0 = f0+f1;
   48298 	f1 = f2*f11;
   48299 	f2 = f9+f12;
   48300 	f5 = f6+f7;
   48301 	f3 = f13+f3;
   48302 	f6 = f8+f10;
   48303 	f3 = f3+f6;
   48304 	f2 = f2+f5;
   48305 	f0 = f0+f1;
   48306 	f1 = f4+f14;
   48307 	r2 = sp + -16;
   48308 	f4 = heapFloat[(fp+-10)];
   48309 	f4 = f4-f3;
   48310 	f5 = heapFloat[(fp+-9)];
   48311 	f5 = f5-f2;
   48312 	f0 = f0+f1;
   48313 	f1 = heapFloat[(fp+-7)];
   48314 	f1 = f4*f1;
   48315 	f4 = heapFloat[(fp+-6)];
   48316 	f4 = f5*f4;
   48317 	f5 = heapFloat[(fp+-8)];
   48318 	f5 = f5-f0;
   48319 	r2 = r2 >> 2;
   48320 	heapFloat[(fp+-4)] = f3;
   48321 	heapFloat[(r2+1)] = f2;
   48322 	f3 = f1+f4;
   48323 	f1 = heapFloat[(fp+-5)];
   48324 	f1 = f5*f1;
   48325 	f3 = f3+f1;
   48326 	heapFloat[(r2+2)] = f0;
   48327 	heap32[(r2+3)] = 0;
   48328 }
   48329 else{
   48330 	r2 = r1 >> 2;
   48331 	f0 = heapFloat[(r2+53)];
   48332 	f0 = -f0;
   48333 	f1 = heapFloat[(r2+41)];
   48334 	f2 = heapFloat[(r2+42)];
   48335 	f3 = heapFloat[(r2+45)];
   48336 	f4 = heapFloat[(r2+54)];
   48337 	f5 = heapFloat[(r2+46)];
   48338 	f6 = heapFloat[(r2+77)];
   48339 	f7 = heapFloat[(r2+78)];
   48340 	f8 = heapFloat[(r2+73)];
   48341 	f9 = heapFloat[(r2+49)];
   48342 	f10 = heapFloat[(r2+74)];
   48343 	f11 = heapFloat[(r2+50)];
   48344 	f12 = heapFloat[(r2+55)];
   48345 	f13 = heapFloat[(r2+43)];
   48346 	f14 = heapFloat[(r2+47)];
   48347 	f15 = f1*f0;
   48348 	f16 = f3*f4;
   48349 	f17 = f2*f0;
   48350 	f18 = f5*f4;
   48351 	f19 = heapFloat[(r2+81)];
   48352 	f20 = heapFloat[(r2+82)];
   48353 	f21 = heapFloat[(r2+79)];
   48354 	f22 = heapFloat[(r2+51)];
   48355 	f23 = heapFloat[(r2+75)];
   48356 	f24 = f1*f8;
   48357 	f25 = f2*f10;
   48358 	f26 = f3*f8;
   48359 	f27 = f5*f10;
   48360 	f28 = f1*f6;
   48361 	heapFloat[(fp+-14)] = f28;
   48362 	f29 = f2*f7;
   48363 	f30 = f3*f6;
   48364 	f28 = f5*f7;
   48365 	f15 = f15-f16;
   48366 	f16 = f9*f12;
   48367 	f17 = f17-f18;
   48368 	f18 = f11*f12;
   48369 	f0 = f13*f0;
   48370 	heapFloat[(fp+-15)] = f0;
   48371 	f0 = f14*f4;
   48372 	heapFloat[(fp+-16)] = f0;
   48373 	f4 = f15-f16;
   48374 	f15 = f17-f18;
   48375 	f16 = heapFloat[(r2+83)];
   48376 	f0 = f24+f25;
   48377 	heapFloat[(fp+-17)] = f0;
   48378 	f17 = f13*f23;
   48379 	f0 = f26+f27;
   48380 	heapFloat[(fp+-18)] = f0;
   48381 	f18 = f14*f23;
   48382 	f24 = f9*f8;
   48383 	f25 = f11*f10;
   48384 	f26 = heapFloat[(fp+-14)];
   48385 	f26 = f26+f29;
   48386 	f27 = f13*f21;
   48387 	f28 = f30+f28;
   48388 	f29 = f14*f21;
   48389 	f30 = f9*f6;
   48390 	f0 = f11*f7;
   48391 	f1 = f1*f19;
   48392 	heapFloat[(fp+-14)] = f1;
   48393 	f2 = f2*f20;
   48394 	f1 = f3*f19;
   48395 	heapFloat[(fp+-19)] = f1;
   48396 	f3 = f5*f20;
   48397 	f5 = heapFloat[(fp+-15)];
   48398 	f1 = heapFloat[(fp+-16)];
   48399 	f1 = f5-f1;
   48400 	f5 = f22*f12;
   48401 	f1 = f1-f5;
   48402 	f5 = heapFloat[(fp+-17)];
   48403 	f5 = f5+f17;
   48404 	f12 = f26+f27;
   48405 	f17 = heapFloat[(fp+-18)];
   48406 	f17 = f17+f18;
   48407 	f18 = f28+f29;
   48408 	f24 = f24+f25;
   48409 	f25 = f22*f23;
   48410 	f8 = f8*f4;
   48411 	f10 = f10*f15;
   48412 	f0 = f30+f0;
   48413 	f26 = f22*f21;
   48414 	f6 = f6*f4;
   48415 	f7 = f7*f15;
   48416 	f27 = heapFloat[(fp+-14)];
   48417 	f2 = f27+f2;
   48418 	f13 = f13*f16;
   48419 	f27 = heapFloat[(fp+-19)];
   48420 	f3 = f27+f3;
   48421 	f14 = f14*f16;
   48422 	f9 = f9*f19;
   48423 	f11 = f11*f20;
   48424 	f2 = f2+f13;
   48425 	f3 = f3+f14;
   48426 	f13 = heapFloat[(fp+-10)];
   48427 	f5 = f5*f13;
   48428 	f14 = heapFloat[(fp+-9)];
   48429 	f17 = f17*f14;
   48430 	f24 = f24+f25;
   48431 	f0 = f0+f26;
   48432 	f8 = f8+f10;
   48433 	f10 = f23*f1;
   48434 	f12 = f12*f13;
   48435 	f18 = f18*f14;
   48436 	f6 = f6+f7;
   48437 	f7 = f21*f1;
   48438 	f9 = f9+f11;
   48439 	f11 = f22*f16;
   48440 	f4 = f19*f4;
   48441 	f15 = f20*f15;
   48442 	f9 = f9+f11;
   48443 	f5 = f5+f17;
   48444 	f11 = heapFloat[(fp+-8)];
   48445 	f17 = f24*f11;
   48446 	f8 = f8+f10;
   48447 	f10 = heapFloat[(r2+85)];
   48448 	f12 = f12+f18;
   48449 	f0 = f0*f11;
   48450 	f6 = f6+f7;
   48451 	f7 = heapFloat[(r2+86)];
   48452 	f2 = f2*f13;
   48453 	f3 = f3*f14;
   48454 	f4 = f4+f15;
   48455 	f1 = f16*f1;
   48456 	f13 = heapFloat[(r2+87)];
   48457 	f1 = f4+f1;
   48458 	f4 = f5+f17;
   48459 	f5 = f8+f10;
   48460 	f0 = f12+f0;
   48461 	f6 = f6+f7;
   48462 	f2 = f2+f3;
   48463 	f3 = f9*f11;
   48464 	f4 = f4+f5;
   48465 	f0 = f0+f6;
   48466 	f2 = f2+f3;
   48467 	f1 = f1+f13;
   48468 	f3 = heapFloat[(fp+-13)];
   48469 	f3 = f4-f3;
   48470 	f5 = heapFloat[(fp+-12)];
   48471 	f5 = f0-f5;
   48472 	f1 = f2+f1;
   48473 	f2 = heapFloat[(fp+-7)];
   48474 	f3 = f3*f2;
   48475 	f6 = heapFloat[(fp+-6)];
   48476 	f5 = f5*f6;
   48477 	f7 = heapFloat[(fp+-11)];
   48478 	f7 = f1-f7;
   48479 	f3 = f3+f5;
   48480 	f5 = heapFloat[(fp+-5)];
   48481 	f7 = f7*f5;
   48482 	f3 = f3+f7;
   48483 	f2 = f2*f3;
   48484 	r2 = sp + -16;
   48485 	f6 = f6*f3;
   48486 	f2 = f4+f2;
   48487 	f4 = f5*f3;
   48488 	r2 = r2 >> 2;
   48489 	f0 = f0+f6;
   48490 	heapFloat[(fp+-4)] = f2;
   48491 	f1 = f1+f4;
   48492 	heapFloat[(r2+1)] = f0;
   48493 	heapFloat[(r2+2)] = f1;
   48494 	heap32[(r2+3)] = 0;
   48495 }
   48496 	r1 = r1 >> 2;
   48497 	r1 = heap32[(r1+40)];
   48498 	r2 = r1 >> 2;
   48499 	r2 = heap32[(r2)];
   48500 	r2 = r2 >> 2;
   48501 	r2 = heap32[(r2+4)];
   48502 	r3 = sp + -16;
   48503 	heap32[(g0)] = r1;
   48504 	heap32[(g0+1)] = r0;
   48505 	heap32[(g0+2)] = r3;
   48506 	heapFloat[(g0+3)] = f3;
   48507 	__FUNCTION_TABLE__[(r2)>>2](i7);
   48508 	return;
   48509 }
   48510 
   48511 function _ZN23btConvexConvexAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
   48512 {
   48513 	var i7;
   48514 	var fp = sp>>2;
   48515 	var r0;
   48516 	var r1;
   48517 	var r2;
   48518 	var r3;
   48519 	var r4;
   48520 	var r5;
   48521 	var r6;
   48522 	var r7;
   48523 	var r8;
   48524 	var r9;
   48525 	var r10;
   48526 	var r11;
   48527 var __label__ = 0;
   48528 	i7 = sp + -8;var g0 = i7>>2; // save stack
   48529 	r0 = heap32[(fp)];
   48530 	r1 = r0 >> 2;
   48531 	r2 = heap32[(r1+5)];
   48532 if(!(r2 ==0)) //_LBB299_23
   48533 {
   48534 	r0 = heapU8[r0+16];
   48535 if(!(r0 ==0)) //_LBB299_23
   48536 {
   48537 	r0 = heap32[(fp+1)];
   48538 	r3 = r0 >> 2;
   48539 	r4 = heap32[(r3+2)];
   48540 	r5 = heap32[(r3+1)];
   48541 	if(r4 ==r5) //_LBB299_4
   48542 {
   48543 	r6 = 1;
   48544 	r7 = r5 << 1;
   48545 	r7 = r5 == 0 ? r6 : r7;
   48546 if(!(r4 >=r7)) //_LBB299_3
   48547 {
   48548 	if(r7 !=0) //_LBB299_7
   48549 {
   48550 	r2 = gNumAlignedAllocs;
   48551 	r2 = r2 >> 2;
   48552 	r4 = heap32[(r2)];
   48553 	r8 = r7 << 2;
   48554 	r4 = (r4 + 1)|0;
   48555 	r8 = r8 | 3;
   48556 	heap32[(r2)] = r4;
   48557 	r2 = (r8 + 16)|0;
   48558 	heap32[(g0)] = r2;
   48559 	malloc(i7);
   48560 	r2 = r_g0;
   48561 	if(r2 !=0) //_LBB299_9
   48562 {
   48563 	r4 = 0;
   48564 	r8 = (r2 + 4)|0;
   48565 	r4 = (r4 - r8)|0;
   48566 	r4 = r4 & 15;
   48567 	r4 = (r2 + r4)|0;
   48568 	r8 = (r4 + 4)|0;
   48569 	r4 = r4 >> 2;
   48570 	heap32[(r4)] = r2;
   48571 	r2 = r8;
   48572 }
   48573 }
   48574 else{
   48575 	r2 = 0;
   48576 }
   48577 	r4 = (r0 + 12)|0;
   48578 	if(r5 <1) //_LBB299_12
   48579 {
   48580 	r8 = r4 >> 2;
   48581 	r9 = heap32[(r8)];
   48582 }
   48583 else{
   48584 	r8 = 0;
   48585 _15: while(true){
   48586 	r9 = r4 >> 2;
   48587 	r9 = heap32[(r9)];
   48588 	r10 = r8 << 2;
   48589 	r11 = (r9 + r10)|0;
   48590 	r11 = r11 >> 2;
   48591 	r10 = (r2 + r10)|0;
   48592 	r11 = heap32[(r11)];
   48593 	r8 = (r8 + 1)|0;
   48594 	r10 = r10 >> 2;
   48595 	heap32[(r10)] = r11;
   48596 if(!(r5 !=r8)) //_LBB299_13
   48597 {
   48598 break _15;
   48599 }
   48600 }
   48601 	r4 = (r0 + 12)|0;
   48602 }
   48603 	if(r9 !=0) //_LBB299_17
   48604 {
   48605 	r8 = heapU8[r0+16];
   48606 	if(r8 !=0) //_LBB299_19
   48607 {
   48608 	r5 = gNumAlignedFree;
   48609 	r5 = r5 >> 2;
   48610 	r8 = heap32[(r5)];
   48611 	r8 = (r8 + 1)|0;
   48612 	r9 = r9 >> 2;
   48613 	heap32[(r5)] = r8;
   48614 	r5 = heap32[(r9+-1)];
   48615 	heap32[(g0)] = r5;
   48616 	free(i7);
   48617 	r5 = heap32[(r3+1)];
   48618 }
   48619 	r8 = r4 >> 2;
   48620 	heap32[(r8)] = 0;
   48621 }
   48622 	r4 = r4 >> 2;
   48623 	heap8[r0+16] = r6;
   48624 	heap32[(r4)] = r2;
   48625 	heap32[(r3+2)] = r7;
   48626 	r2 = heap32[(r1+5)];
   48627 }
   48628 }
   48629 	r0 = r5 << 2;
   48630 	r1 = heap32[(r3+3)];
   48631 	r0 = (r1 + r0)|0;
   48632 	r0 = r0 >> 2;
   48633 	heap32[(r0)] = r2;
   48634 	r0 = heap32[(r3+1)];
   48635 	r0 = (r0 + 1)|0;
   48636 	heap32[(r3+1)] = r0;
   48637 }
   48638 }
   48639 	return;
   48640 }
   48641 
   48642 function _ZN23btConvexConvexAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
   48643 {
   48644 	var i7;
   48645 	var fp = sp>>2;
   48646 	var r0;
   48647 	var r1;
   48648 	var r2;
   48649 	var r3;
   48650 	var r4;
   48651 	var r5;
   48652 	var r6;
   48653 	var r7;
   48654 	var r8;
   48655 	var r9;
   48656 	var r10;
   48657 	var r11;
   48658 	var r12;
   48659 	var r13;
   48660 	var f0;
   48661 	var f1;
   48662 	var f2;
   48663 	var f3;
   48664 	var f4;
   48665 	var f5;
   48666 var __label__ = 0;
   48667 	i7 = sp + -1240;var g0 = i7>>2; // save stack
   48668 	r0 = heap32[(fp+1)];
   48669 	r1 = r0 >> 2;
   48670 	r2 = heap32[(fp+2)];
   48671 	r3 = r2 >> 2;
   48672 	f0 = heapFloat[(r1+29)];
   48673 	f1 = heapFloat[(r1+13)];
   48674 	f2 = heapFloat[(r1+30)];
   48675 	f3 = heapFloat[(r1+14)];
   48676 	f0 = f0-f1;
   48677 	f1 = f2-f3;
   48678 	f2 = heapFloat[(r1+31)];
   48679 	f3 = heapFloat[(r1+15)];
   48680 	f2 = f2-f3;
   48681 	f0 = f0*f0;
   48682 	f1 = f1*f1;
   48683 	f3 = heapFloat[(r1+62)];
   48684 	f0 = f0+f1;
   48685 	f1 = f2*f2;
   48686 	f2 = f3*f3;
   48687 	f0 = f0+f1;
   48688 if(!(f2 <=f0)) //_LBB300_2
   48689 {
   48690 	f0 = heapFloat[(r3+31)];
   48691 	f1 = heapFloat[(r3+15)];
   48692 	f2 = heapFloat[(r3+30)];
   48693 	f3 = heapFloat[(r3+14)];
   48694 	f4 = heapFloat[(r3+29)];
   48695 	f5 = heapFloat[(r3+13)];
   48696 	f0 = f0-f1;
   48697 	f1 = f2-f3;
   48698 	f2 = f4-f5;
   48699 	f2 = f2*f2;
   48700 	f1 = f1*f1;
   48701 	f3 = heapFloat[(r3+62)];
   48702 	f1 = f2+f1;
   48703 	f0 = f0*f0;
   48704 	f2 = f3*f3;
   48705 	f0 = f1+f0;
   48706 	if(f2 >f0) //_LBB300_16
   48707 {
   48708 	f0 =                         1;
   48709 	f_g0 = f0;
   48710 	return;
   48711 }
   48712 }
   48713 	r4 = sp + -56;
   48714 	r5 = heap32[(r1+48)];
   48715 	f0 = heapFloat[(r3+61)];
   48716 	r6 = r4 >> 2;
   48717 	heap32[(r6+2)] = 0;
   48718 	heap32[(r6+3)] = 1065353216;
   48719 	heap32[(r6+4)] = 1065353216;
   48720 	r7 = _ZTV13btSphereShape;
   48721 	heap32[(r6+5)] = 1065353216;
   48722 	r7 = (r7 + 8)|0;
   48723 	heap32[(r6+6)] = 0;
   48724 	heap32[(fp+-14)] = r7;
   48725 	heap32[(r6+1)] = 8;
   48726 	r8 = _ZTVN12btConvexCast10CastResultE;
   48727 	heapFloat[(r6+7)] = f0;
   48728 	r9 = sp + -232;
   48729 	r8 = (r8 + 8)|0;
   48730 	heapFloat[(r6+11)] = f0;
   48731 	r6 = r9 >> 2;
   48732 	heap32[(fp+-58)] = r8;
   48733 	heap32[(r6+41)] = 1566444395;
   48734 	r10 = sp + -592;
   48735 	heap32[(r6+42)] = 0;
   48736 	r11 = r10 >> 2;
   48737 	heap32[(r6+43)] = 0;
   48738 	r12 = _ZTV15btGjkConvexCast;
   48739 	r13 = 0;
   48740 	heap32[(r11+77)] = 953267991;
   48741 	r11 = sp + -608;
   48742 	r12 = (r12 + 8)|0;
   48743 	heap8[sp+-260] = r13;
   48744 	r13 = r11 >> 2;
   48745 	heap32[(fp+-152)] = r12;
   48746 	heap32[(r13+1)] = r10;
   48747 	heap32[(r13+2)] = r5;
   48748 	heap32[(r13+3)] = r4;
   48749 	r4 = (r2 + 68)|0;
   48750 	r2 = (r2 + 4)|0;
   48751 	r5 = (r0 + 68)|0;
   48752 	r0 = (r0 + 4)|0;
   48753 	heap32[(g0)] = r11;
   48754 	heap32[(g0+1)] = r0;
   48755 	heap32[(g0+2)] = r5;
   48756 	heap32[(g0+3)] = r2;
   48757 	heap32[(g0+4)] = r4;
   48758 	heap32[(g0+5)] = r9;
   48759 	_ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7);
   48760 	r9 = r_g0;
   48761 	if(r9 !=0) //_LBB300_4
   48762 {
   48763 	f0 = heapFloat[(r6+41)];
   48764 	f1 = heapFloat[(r1+60)];
   48765 if(!(f1 <=f0)) //_LBB300_6
   48766 {
   48767 	heapFloat[(r1+60)] = f0;
   48768 }
   48769 	f1 = heapFloat[(r3+60)];
   48770 if(!(f1 <=f0)) //_LBB300_8
   48771 {
   48772 	heapFloat[(r3+60)] = f0;
   48773 }
   48774 	f1 =                         1;
   48775 	if(f0 >=f1) //_LBB300_3
   48776 {
   48777 __label__ = 3;
   48778 }
   48779 else{
   48780 __label__ = 9;
   48781 }
   48782 }
   48783 else{
   48784 __label__ = 3;
   48785 }
   48786 if (__label__ == 3){
   48787 	f0 =                         1;
   48788 }
   48789 	r6 = _ZTV12btConvexCast;
   48790 	r9 = _ZTV13btConvexShape;
   48791 	r6 = (r6 + 8)|0;
   48792 	r9 = (r9 + 8)|0;
   48793 	heap32[(fp+-152)] = r6;
   48794 	heap32[(fp+-14)] = r9;
   48795 	r6 = sp + -664;
   48796 	r9 = heap32[(r3+48)];
   48797 	f1 = heapFloat[(r1+61)];
   48798 	r10 = r6 >> 2;
   48799 	heap32[(r10+2)] = 0;
   48800 	heap32[(r10+3)] = 1065353216;
   48801 	heap32[(r10+4)] = 1065353216;
   48802 	heap32[(r10+5)] = 1065353216;
   48803 	heap32[(r10+6)] = 0;
   48804 	heap32[(fp+-166)] = r7;
   48805 	heap32[(r10+1)] = 8;
   48806 	heapFloat[(r10+7)] = f1;
   48807 	r7 = sp + -840;
   48808 	heapFloat[(r10+11)] = f1;
   48809 	r10 = r7 >> 2;
   48810 	heap32[(fp+-210)] = r8;
   48811 	heap32[(r10+41)] = 1566444395;
   48812 	r8 = sp + -1200;
   48813 	heap32[(r10+42)] = 0;
   48814 	r11 = r8 >> 2;
   48815 	heap32[(r10+43)] = 0;
   48816 	heap32[(r11+77)] = 953267991;
   48817 	r11 = heapU8[sp+-868];
   48818 	r11 = r11 & 240;
   48819 	r13 = sp + -1216;
   48820 	heap8[sp+-868] = r11;
   48821 	r11 = r13 >> 2;
   48822 	heap32[(fp+-304)] = r12;
   48823 	heap32[(r11+1)] = r8;
   48824 	heap32[(r11+2)] = r6;
   48825 	heap32[(r11+3)] = r9;
   48826 	heap32[(g0)] = r13;
   48827 	heap32[(g0+1)] = r0;
   48828 	heap32[(g0+2)] = r5;
   48829 	heap32[(g0+3)] = r2;
   48830 	heap32[(g0+4)] = r4;
   48831 	heap32[(g0+5)] = r7;
   48832 	_ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7);
   48833 	r0 = r_g0;
   48834 if(!(r0 ==0)) //_LBB300_15
   48835 {
   48836 	f1 = heapFloat[(r10+41)];
   48837 	f2 = heapFloat[(r1+60)];
   48838 if(!(f2 <=f1)) //_LBB300_12
   48839 {
   48840 	heapFloat[(r1+60)] = f1;
   48841 }
   48842 	f2 = heapFloat[(r3+60)];
   48843 if(!(f2 <=f1)) //_LBB300_14
   48844 {
   48845 	heapFloat[(r3+60)] = f1;
   48846 }
   48847 	f0 = f1 < f0 ? f1 : f0;
   48848 }
   48849 	f_g0 = f0;
   48850 	return;
   48851 }
   48852 
   48853 function _ZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
   48854 {
   48855 	var i7;
   48856 	var fp = sp>>2;
   48857 	var r0;
   48858 	var r1;
   48859 	var r2;
   48860 	var r3;
   48861 	var r4;
   48862 	var r5;
   48863 	var r6;
   48864 	var r7;
   48865 	var r8;
   48866 	var r9;
   48867 	var r10;
   48868 	var r11;
   48869 	var r12;
   48870 	var r13;
   48871 	var r14;
   48872 	var r15;
   48873 	var r16;
   48874 	var r17;
   48875 	var f0;
   48876 	var f1;
   48877 	var f2;
   48878 	var f3;
   48879 	var f4;
   48880 	var f5;
   48881 	var f6;
   48882 	var f7;
   48883 	var f8;
   48884 	var f9;
   48885 	var f10;
   48886 	var f11;
   48887 	var f12;
   48888 	var f13;
   48889 	var f14;
   48890 	var f15;
   48891 	var f16;
   48892 	var f17;
   48893 	var f18;
   48894 	var f19;
   48895 	var f20;
   48896 	var f21;
   48897 	var f22;
   48898 	var f23;
   48899 	var f24;
   48900 	var f25;
   48901 	var f26;
   48902 	var f27;
   48903 	var f28;
   48904 	var f29;
   48905 	var f30;
   48906 var __label__ = 0;
   48907 	i7 = sp + -816;var g0 = i7>>2; // save stack
   48908 	r0 = heap32[(fp)];
   48909 	r1 = r0 >> 2;
   48910 	r2 = heap32[(r1+5)];
   48911 	r3 = heap32[(fp+1)];
   48912 	r4 = heap32[(fp+2)];
   48913 	r5 = heap32[(fp+3)];
   48914 	r6 = heap32[(fp+4)];
   48915 	if(r2 ==0) //_LBB301_2
   48916 {
   48917 	r2 = heap32[(r1+1)];
   48918 	r7 = r2 >> 2;
   48919 	r7 = heap32[(r7)];
   48920 	r7 = r7 >> 2;
   48921 	r7 = heap32[(r7+3)];
   48922 	heap32[(g0)] = r2;
   48923 	heap32[(g0+1)] = r3;
   48924 	heap32[(g0+2)] = r4;
   48925 	__FUNCTION_TABLE__[(r7)>>2](i7);
   48926 	r2 = r_g0;
   48927 	r7 = 1;
   48928 	heap32[(r1+5)] = r2;
   48929 	heap8[r0+16] = r7;
   48930 }
   48931 	r7 = r6 >> 2;
   48932 	r8 = r3 >> 2;
   48933 	heap32[(r7+1)] = r2;
   48934 	r2 = r4 >> 2;
   48935 	r9 = heap32[(r8+48)];
   48936 	r10 = heap32[(r2+48)];
   48937 	r11 = r9 >> 2;
   48938 	r12 = heap32[(r11+1)];
   48939 	if(r12 !=10) //_LBB301_5
   48940 {
   48941 __label__ = 4;
   48942 }
   48943 else{
   48944 	r12 = r10 >> 2;
   48945 	r13 = heap32[(r12+1)];
   48946 	if(r13 ==10) //_LBB301_6
   48947 {
   48948 	r0 = heap32[(r11)];
   48949 	r0 = r0 >> 2;
   48950 	r0 = heap32[(r0+7)];
   48951 	heap32[(g0)] = r9;
   48952 	__FUNCTION_TABLE__[(r0)>>2](i7);
   48953 	r0 = heap32[(r12)];
   48954 	r0 = r0 >> 2;
   48955 	r0 = heap32[(r0+7)];
   48956 	heap32[(g0)] = r10;
   48957 	__FUNCTION_TABLE__[(r0)>>2](i7);
   48958 	r0 = heap32[(r11+13)];
   48959 	r5 = heap32[(r12+13)];
   48960 	r11 = r5 << 2;
   48961 	r12 = r0 << 2;
   48962 	r3 = (r3 + r12)|0;
   48963 	r4 = (r4 + r11)|0;
   48964 	r3 = r3 >> 2;
   48965 	r4 = r4 >> 2;
   48966 	r5 = (r5 + 2)|0;
   48967 	r0 = (r0 + 2)|0;
   48968 	f0 = heapFloat[(r3+1)];
   48969 	f1 = heapFloat[(r4+1)];
   48970 	f2 = heapFloat[(r3+5)];
   48971 	f3 = heapFloat[(r4+5)];
   48972 	r5 = (r5 % 3)|0;
   48973 	r0 = (r0 % 3)|0;
   48974 	f4 = heapFloat[(r3+9)];
   48975 	f5 = heapFloat[(r4+9)];
   48976 	f6 = f0*f1;
   48977 	f7 = f2*f3;
   48978 	f8 = heapFloat[(r2+13)];
   48979 	f9 = heapFloat[(r8+13)];
   48980 	f10 = heapFloat[(r2+14)];
   48981 	f11 = heapFloat[(r8+14)];
   48982 	f8 = f8-f9;
   48983 	f9 = f10-f11;
   48984 	r3 = (r10 + 28)|0;
   48985 	r4 = r5 << 2;
   48986 	r5 = (r9 + 28)|0;
   48987 	r0 = r0 << 2;
   48988 	f6 = f6+f7;
   48989 	f7 = f4*f5;
   48990 	f10 = heapFloat[(r2+15)];
   48991 	f11 = heapFloat[(r8+15)];
   48992 	f10 = f10-f11;
   48993 	f6 = f6+f7;
   48994 	r1 = heap32[(r1+5)];
   48995 	r4 = (r3 + r4)|0;
   48996 	r3 = (r3 + r11)|0;
   48997 	r0 = (r5 + r0)|0;
   48998 	r5 = (r5 + r12)|0;
   48999 	f7 = f0*f8;
   49000 	f11 = f2*f9;
   49001 	f12 = f1*f8;
   49002 	f13 = f3*f9;
   49003 	r1 = r1 >> 2;
   49004 	r4 = r4 >> 2;
   49005 	r3 = r3 >> 2;
   49006 	r0 = r0 >> 2;
   49007 	r5 = r5 >> 2;
   49008 	f14 =                         1;
   49009 	f15 = f6*f6;
   49010 	f7 = f7+f11;
   49011 	f11 = f4*f10;
   49012 	f12 = f12+f13;
   49013 	f13 = f5*f10;
   49014 	f15 = f14-f15;
   49015 	f16 = heapFloat[(r1+280)];
   49016 	f17 = heapFloat[(r4)];
   49017 	f18 = heapFloat[(r3)];
   49018 	f19 = heapFloat[(r0)];
   49019 	f20 = heapFloat[(r5)];
   49020 	f7 = f7+f11;
   49021 	f11 = f12+f13;
   49022 	f12 =                         0;
   49023 	if(f15 !=f12) //_LBB301_8
   49024 {
   49025 	f13 = f11*f6;
   49026 	f13 = f7-f13;
   49027 	f13 = f13/f15;
   49028 	f15 = -f20;
   49029 	if(f13 >=f15) //_LBB301_10
   49030 {
   49031 	if(f13 >f20) //_LBB301_12
   49032 {
   49033 	f15 = f20;
   49034 }
   49035 else{
   49036 	f15 = f13;
   49037 }
   49038 }
   49039 }
   49040 else{
   49041 	f15 =                         0;
   49042 }
   49043 	f13 = f15*f6;
   49044 	f11 = f13-f11;
   49045 	f13 = -f18;
   49046 	if(f11 >=f13) //_LBB301_19
   49047 {
   49048 	if(f11 >f18) //_LBB301_21
   49049 {
   49050 	f13 = f6*f18;
   49051 	f6 = f13+f7;
   49052 	f15 = -f20;
   49053 	if(f6 >=f15) //_LBB301_23
   49054 {
   49055 	if(f6 >f20) //_LBB301_25
   49056 {
   49057 	f13 = f18;
   49058 	f15 = f20;
   49059 }
   49060 else{
   49061 	f13 = f18;
   49062 	f15 = f6;
   49063 }
   49064 }
   49065 else{
   49066 	f13 = f18;
   49067 }
   49068 }
   49069 else{
   49070 	f13 = f11;
   49071 }
   49072 }
   49073 else{
   49074 	f6 = f6*f13;
   49075 	f6 = f6+f7;
   49076 	f15 = -f20;
   49077 	if(f6 >=f15) //_LBB301_16
   49078 {
   49079 	if(f6 >f20) //_LBB301_18
   49080 {
   49081 	f15 = f20;
   49082 }
   49083 else{
   49084 	f15 = f6;
   49085 }
   49086 }
   49087 }
   49088 	f6 = f0*f15;
   49089 	f7 = f2*f15;
   49090 	f1 = f1*f13;
   49091 	f6 = f8-f6;
   49092 	f3 = f3*f13;
   49093 	f7 = f9-f7;
   49094 	f8 = f4*f15;
   49095 	f6 = f6+f1;
   49096 	f7 = f7+f3;
   49097 	f5 = f5*f13;
   49098 	f8 = f10-f8;
   49099 	f8 = f8+f5;
   49100 	f9 = f6*f6;
   49101 	f10 = f7*f7;
   49102 	f9 = f9+f10;
   49103 	f10 = f8*f8;
   49104 	f9 = f9+f10;
   49105 	heapFloat[(g0)] = f9;
   49106 	sqrtf(i7);
   49107 	f10 = f_g0-f19;
   49108 	f10 = f10-f17;
   49109 if(!(f10 >f16)) //_LBB301_36
   49110 {
   49111 	f11 =   1.4210854715202004e-014;
   49112 	if(f9 >f11) //_LBB301_34
   49113 {
   49114 	heapFloat[(g0)] = f9;
   49115 	f0 =                        -1;
   49116 	sqrtf(i7);
   49117 	f0 = f0/f_g0;
   49118 	f9 = f6*f0;
   49119 	r0 = sp + -16;
   49120 	f6 = f7*f0;
   49121 	r0 = r0 >> 2;
   49122 	heapFloat[(fp+-4)] = f9;
   49123 	f12 = f8*f0;
   49124 	heapFloat[(r0+1)] = f6;
   49125 	heapFloat[(r0+2)] = f12;
   49126 	heap32[(r0+3)] = 0;
   49127 }
   49128 else{
   49129 	if(f4 <f12) //_LBB301_30
   49130 {
   49131 	f6 = -f4;
   49132 }
   49133 else{
   49134 	f6 = f4;
   49135 }
   49136 	f7 =       0.70710676908493042;
   49137 	if(f6 <=f7) //_LBB301_33
   49138 {
   49139 	f6 = f0*f0;
   49140 	f9 = f2*f2;
   49141 	f6 = f6+f9;
   49142 	heapFloat[(g0)] = f6;
   49143 	sqrtf(i7);
   49144 	f6 = f14/f_g0;
   49145 	f9 = -f2;
   49146 	f9 = f6*f9;
   49147 	r0 = sp + -16;
   49148 	f6 = f0*f6;
   49149 	r0 = r0 >> 2;
   49150 	heapFloat[(fp+-4)] = f9;
   49151 	heapFloat[(r0+1)] = f6;
   49152 	heap32[(r0+2)] = 0;
   49153 }
   49154 else{
   49155 	f0 = f2*f2;
   49156 	f6 = f4*f4;
   49157 	f0 = f0+f6;
   49158 	heapFloat[(g0)] = f0;
   49159 	sqrtf(i7);
   49160 	r0 = sp + -16;
   49161 	f0 = f14/f_g0;
   49162 	f6 = -f4;
   49163 	f6 = f0*f6;
   49164 	r0 = r0 >> 2;
   49165 	heap32[(fp+-4)] = 0;
   49166 	f9 =                         0;
   49167 	f12 = f2*f0;
   49168 	heapFloat[(r0+1)] = f6;
   49169 	heapFloat[(r0+2)] = f12;
   49170 }
   49171 }
   49172 	f0 = heapFloat[(r2+13)];
   49173 	f2 = heapFloat[(r2+14)];
   49174 	f4 = heapFloat[(r2+15)];
   49175 	f0 = f0+f1;
   49176 	f1 = f9*f17;
   49177 	r0 = sp + -32;
   49178 	f2 = f2+f3;
   49179 	f3 = f6*f17;
   49180 	f0 = f0+f1;
   49181 	r0 = r0 >> 2;
   49182 	f1 = f4+f5;
   49183 	f4 = f12*f17;
   49184 	f2 = f2+f3;
   49185 	heapFloat[(fp+-8)] = f0;
   49186 	f0 = f1+f4;
   49187 	heapFloat[(r0+1)] = f2;
   49188 	heapFloat[(r0+2)] = f0;
   49189 	heap32[(r0+3)] = 0;
   49190 }
   49191 if(!(f10 >=f16)) //_LBB301_40
   49192 {
   49193 	r0 = sp + -16;
   49194 	r1 = r0 >> 2;
   49195 	f0 = heapFloat[(fp+-4)];
   49196 	f1 = heapFloat[(r1+1)];
   49197 	f2 = heapFloat[(r1+2)];
   49198 	f0 = f0*f0;
   49199 	f1 = f1*f1;
   49200 	f0 = f0+f1;
   49201 	f1 = f2*f2;
   49202 	f0 = f0+f1;
   49203 	f1 =   1.4210854715202004e-014;
   49204 	if(f0 >=f1) //_LBB301_39
   49205 {
   49206 	r1 = heap32[(r7)];
   49207 	r1 = r1 >> 2;
   49208 	r1 = heap32[(r1+4)];
   49209 	r2 = sp + -32;
   49210 	heap32[(g0)] = r6;
   49211 	heap32[(g0+1)] = r0;
   49212 	heap32[(g0+2)] = r2;
   49213 	heapFloat[(g0+3)] = f10;
   49214 	__FUNCTION_TABLE__[(r1)>>2](i7);
   49215 }
   49216 else{
   49217 	r0 = _2E_str4119;
   49218 	r1 = _2E_str5120;
   49219 	heap32[(g0)] = r0;
   49220 	heap32[(g0+1)] = r1;
   49221 	heap32[(g0+2)] = 325;
   49222 	_assert(i7);
   49223 }
   49224 }
   49225 	r0 = heap32[(r7+1)];
   49226 	if(r0 !=0) //_LBB301_42
   49227 {
   49228 	r1 = r0 >> 2;
   49229 	r2 = heap32[(r1+279)];
   49230 	if(r2 ==0) //_LBB301_47
   49231 {
   49232 __label__ = 44;
   49233 }
   49234 else{
   49235 	r1 = heap32[(r1+277)];
   49236 	r2 = heap32[(r7+34)];
   49237 	if(r1 ==r2) //_LBB301_46
   49238 {
   49239 __label__ = 43;
   49240 }
   49241 else{
   49242 	r1 = (r6 + 72)|0;
   49243 	r2 = (r6 + 8)|0;
   49244 __label__ = 42;
   49245 }
   49246 }
   49247 }
   49248 else{
   49249 	r0 = _2E_str59;
   49250 	r1 = _2E_str160;
   49251 	heap32[(g0)] = r0;
   49252 	heap32[(g0+1)] = r1;
   49253 	heap32[(g0+2)] = 101;
   49254 	_assert(i7);
   49255 }
   49256 }
   49257 else{
   49258 __label__ = 4;
   49259 }
   49260 }
   49261 if (__label__ == 4){
   49262 	r3 = sp + -168;
   49263 	r4 = r3 >> 2;
   49264 	heap32[(r4+32)] = 1566444395;
   49265 	heap32[(r4+33)] = 0;
   49266 	r12 = _ZTV17btGjkPairDetector;
   49267 	r13 = heap32[(r1+2)];
   49268 	r14 = heap32[(r1+3)];
   49269 	r15 = sp + -248;
   49270 	r12 = (r12 + 8)|0;
   49271 	heap32[(fp+-62)] = r12;
   49272 	r12 = r15 >> 2;
   49273 	heap32[(r12+1)] = 0;
   49274 	heap32[(r12+2)] = 1065353216;
   49275 	heap32[(r12+3)] = 0;
   49276 	heap32[(r12+4)] = 0;
   49277 	heap32[(r12+5)] = r14;
   49278 	heap32[(r12+6)] = r13;
   49279 	heap32[(r12+7)] = r9;
   49280 	heap32[(r12+8)] = r10;
   49281 	r13 = heap32[(r11+1)];
   49282 	heap32[(r12+9)] = r13;
   49283 	r13 = r10 >> 2;
   49284 	r14 = heap32[(r13+1)];
   49285 	heap32[(r12+10)] = r14;
   49286 	r14 = heap32[(r11)];
   49287 	r14 = r14 >> 2;
   49288 	r14 = heap32[(r14+11)];
   49289 	heap32[(g0)] = r9;
   49290 	__FUNCTION_TABLE__[(r14)>>2](i7);
   49291 	heapFloat[(r12+11)] = f_g0;
   49292 	r14 = heap32[(r13)];
   49293 	r14 = r14 >> 2;
   49294 	r14 = heap32[(r14+11)];
   49295 	heap32[(g0)] = r10;
   49296 	__FUNCTION_TABLE__[(r14)>>2](i7);
   49297 	r14 = 0;
   49298 	heapFloat[(r12+12)] = f_g0;
   49299 	heap8[sp+-196] = r14;
   49300 	heap32[(r12+15)] = -1;
   49301 	heap32[(r12+18)] = 1;
   49302 	heap32[(r12+7)] = r9;
   49303 	heap32[(r12+8)] = r10;
   49304 	r16 = heap32[(r11)];
   49305 	r16 = r16 >> 2;
   49306 	r17 = heapU8[r5+40];
   49307 	r16 = heap32[(r16+11)];
   49308 	heap32[(g0)] = r9;
   49309 	__FUNCTION_TABLE__[(r16)>>2](i7);
   49310 	f0 = f_g0;
   49311 	r16 = heap32[(r13)];
   49312 	r16 = r16 >> 2;
   49313 	r16 = heap32[(r16+11)];
   49314 	heap32[(g0)] = r10;
   49315 	__FUNCTION_TABLE__[(r16)>>2](i7);
   49316 	f0 = f0+f_g0;
   49317 	r16 = heap32[(r1+5)];
   49318 	if(r17 ==0) //_LBB301_49
   49319 {
   49320 	r16 = (r16 + 1120)|0;
   49321 }
   49322 else{
   49323 	r16 = (r16 + 1124)|0;
   49324 }
   49325 	r16 = r16 >> 2;
   49326 	f1 = heapFloat[(r16)];
   49327 	f0 = f0+f1;
   49328 	f0 = f0*f0;
   49329 	r5 = r5 >> 2;
   49330 	heapFloat[(r4+32)] = f0;
   49331 	r16 = heap32[(r5+11)];
   49332 	heap32[(r4+33)] = r16;
   49333 	heap32[(fp+-42)] = heap32[(r8+1)];
   49334 	heap32[(r4+1)] = heap32[(r8+2)];
   49335 	heap32[(r4+2)] = heap32[(r8+3)];
   49336 	heap32[(r4+3)] = heap32[(r8+4)];
   49337 	heap32[(r4+4)] = heap32[(r8+5)];
   49338 	heap32[(r4+5)] = heap32[(r8+6)];
   49339 	heap32[(r4+6)] = heap32[(r8+7)];
   49340 	heap32[(r4+7)] = heap32[(r8+8)];
   49341 	heap32[(r4+8)] = heap32[(r8+9)];
   49342 	heap32[(r4+9)] = heap32[(r8+10)];
   49343 	heap32[(r4+10)] = heap32[(r8+11)];
   49344 	heap32[(r4+11)] = heap32[(r8+12)];
   49345 	heap32[(r4+12)] = heap32[(r8+13)];
   49346 	heap32[(r4+13)] = heap32[(r8+14)];
   49347 	heap32[(r4+14)] = heap32[(r8+15)];
   49348 	heap32[(r4+15)] = heap32[(r8+16)];
   49349 	heap32[(r4+16)] = heap32[(r2+1)];
   49350 	heap32[(r4+17)] = heap32[(r2+2)];
   49351 	heap32[(r4+18)] = heap32[(r2+3)];
   49352 	heap32[(r4+19)] = heap32[(r2+4)];
   49353 	heap32[(r4+20)] = heap32[(r2+5)];
   49354 	heap32[(r4+21)] = heap32[(r2+6)];
   49355 	heap32[(r4+22)] = heap32[(r2+7)];
   49356 	heap32[(r4+23)] = heap32[(r2+8)];
   49357 	heap32[(r4+24)] = heap32[(r2+9)];
   49358 	heap32[(r4+25)] = heap32[(r2+10)];
   49359 	heap32[(r4+26)] = heap32[(r2+11)];
   49360 	heap32[(r4+27)] = heap32[(r2+12)];
   49361 	heap32[(r4+28)] = heap32[(r2+13)];
   49362 	heap32[(r4+29)] = heap32[(r2+14)];
   49363 	heap32[(r4+30)] = heap32[(r2+15)];
   49364 	heap32[(r4+31)] = heap32[(r2+16)];
   49365 	r16 = heap32[(r5+5)];
   49366 	heap32[(g0)] = r15;
   49367 	heap32[(g0+1)] = r3;
   49368 	heap32[(g0+2)] = r6;
   49369 	heap32[(g0+3)] = r16;
   49370 	heap32[(g0+4)] = 0;
   49371 	_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
   49372 	r16 = heap32[(r1+7)];
   49373 _63: do {
   49374 if(!(r16 ==0)) //_LBB301_73
   49375 {
   49376 	r16 = heap32[(r7+1)];
   49377 	r16 = r16 >> 2;
   49378 	r16 = heap32[(r16+279)];
   49379 	r17 = heap32[(r1+8)];
   49380 if(!(r16 >=r17)) //_LBB301_73
   49381 {
   49382 	f0 = heapFloat[(r12+1)];
   49383 	f1 = heapFloat[(r12+2)];
   49384 	f2 = heapFloat[(r12+3)];
   49385 	f0 = f0*f0;
   49386 	f1 = f1*f1;
   49387 	f0 = f0+f1;
   49388 	f1 = f2*f2;
   49389 	f0 = f0+f1;
   49390 	heapFloat[(g0)] = f0;
   49391 	sqrtf(i7);
   49392 	f1 =                         1;
   49393 	heapFloat[(fp+-169)] = f1;
   49394 	f2 = heapFloat[(r12+3)];
   49395 	f0 = f1/f_g0;
   49396 	f1 = heapFloat[(r12+2)];
   49397 	f3 = heapFloat[(r12+1)];
   49398 	f2 = f2*f0;
   49399 	heapFloat[(fp+-171)] = f2;
   49400 	f1 = f1*f0;
   49401 	heapFloat[(fp+-170)] = f1;
   49402 	f0 = f3*f0;
   49403 	heapFloat[(fp+-174)] = f0;
   49404 	f0 =                         0;
   49405 	heapFloat[(fp+-175)] = f0;
   49406 	if(f2 <f0) //_LBB301_54
   49407 {
   49408 	f0 = f2;
   49409 	f0 = -f0;
   49410 }
   49411 else{
   49412 	f0 = heapFloat[(fp+-171)];
   49413 }
   49414 	f1 =       0.70710676908493042;
   49415 	if(f0 <=f1) //_LBB301_57
   49416 {
   49417 	f0 = heapFloat[(fp+-174)];
   49418 	f1 = f0*f0;
   49419 	f2 = heapFloat[(fp+-170)];
   49420 	f3 = f2*f2;
   49421 	f1 = f1+f3;
   49422 	heapFloat[(g0)] = f1;
   49423 	sqrtf(i7);
   49424 	f3 = heapFloat[(fp+-169)];
   49425 	f1 = f3/f_g0;
   49426 	f2 = -f2;
   49427 	f2 = f1*f2;
   49428 	heapFloat[(fp+-173)] = f2;
   49429 	f0 = f0*f1;
   49430 	heapFloat[(fp+-172)] = f0;
   49431 }
   49432 else{
   49433 	f0 = heapFloat[(fp+-170)];
   49434 	f1 = f0*f0;
   49435 	f2 = heapFloat[(fp+-171)];
   49436 	f3 = f2*f2;
   49437 	f1 = f1+f3;
   49438 	heapFloat[(g0)] = f1;
   49439 	sqrtf(i7);
   49440 	f3 = heapFloat[(fp+-169)];
   49441 	f1 = f3/f_g0;
   49442 	f2 = -f2;
   49443 	f2 = f1*f2;
   49444 	heapFloat[(fp+-172)] = f2;
   49445 	f0 = f0*f1;
   49446 	heapFloat[(fp+-175)] = f0;
   49447 	f0 =                         0;
   49448 	heapFloat[(fp+-173)] = f0;
   49449 }
   49450 	r11 = heap32[(r11)];
   49451 	r11 = r11 >> 2;
   49452 	r11 = heap32[(r11+4)];
   49453 	heap32[(g0)] = r9;
   49454 	__FUNCTION_TABLE__[(r11)>>2](i7);
   49455 	f0 = f_g0;
   49456 	heapFloat[(fp+-194)] = f0;
   49457 	r9 = heap32[(r13)];
   49458 	r9 = r9 >> 2;
   49459 	r9 = heap32[(r9+4)];
   49460 	heap32[(g0)] = r10;
   49461 	__FUNCTION_TABLE__[(r9)>>2](i7);
   49462 	f1 = f_g0;
   49463 	heapFloat[(fp+-195)] = f1;
   49464 	r9 = f0 < f1;
   49465 	f2 =      0.019999999552965164;
   49466 	f3 = f0 < f1 ? f0 : f1;
   49467 	r9 = r9 & 1;
   49468 	f2 = f2/f3;
   49469 	if(f0 >=f1) //_LBB301_60
   49470 {
   49471 	f0 = heapFloat[(r4+16)];
   49472 	heapFloat[(fp+-176)] = f0;
   49473 	f0 = heapFloat[(r4+17)];
   49474 	heapFloat[(fp+-177)] = f0;
   49475 	f0 = heapFloat[(r4+18)];
   49476 	heapFloat[(fp+-178)] = f0;
   49477 	f0 = heapFloat[(r4+19)];
   49478 	heapFloat[(fp+-179)] = f0;
   49479 	f0 = heapFloat[(r4+20)];
   49480 	heapFloat[(fp+-180)] = f0;
   49481 	f0 = heapFloat[(r4+21)];
   49482 	heapFloat[(fp+-181)] = f0;
   49483 	f0 = heapFloat[(r4+22)];
   49484 	heapFloat[(fp+-182)] = f0;
   49485 	f0 = heapFloat[(r4+23)];
   49486 	heapFloat[(fp+-183)] = f0;
   49487 	f0 = heapFloat[(r4+24)];
   49488 	heapFloat[(fp+-184)] = f0;
   49489 	f0 = heapFloat[(r4+25)];
   49490 	heapFloat[(fp+-185)] = f0;
   49491 	f0 = heapFloat[(r4+26)];
   49492 	heapFloat[(fp+-186)] = f0;
   49493 	f0 = heapFloat[(r4+27)];
   49494 	heapFloat[(fp+-187)] = f0;
   49495 	f0 = heapFloat[(r4+28)];
   49496 	heapFloat[(fp+-188)] = f0;
   49497 	f0 = heapFloat[(r4+29)];
   49498 	heapFloat[(fp+-189)] = f0;
   49499 	f0 = heapFloat[(r4+30)];
   49500 	heapFloat[(fp+-190)] = f0;
   49501 	f0 = heapFloat[(r4+31)];
   49502 	heapFloat[(fp+-191)] = f0;
   49503 }
   49504 else{
   49505 	f0 = heapFloat[(fp+-42)];
   49506 	heapFloat[(fp+-176)] = f0;
   49507 	f0 = heapFloat[(r4+1)];
   49508 	heapFloat[(fp+-177)] = f0;
   49509 	f0 = heapFloat[(r4+2)];
   49510 	heapFloat[(fp+-178)] = f0;
   49511 	f0 = heapFloat[(r4+3)];
   49512 	heapFloat[(fp+-179)] = f0;
   49513 	f0 = heapFloat[(r4+4)];
   49514 	heapFloat[(fp+-180)] = f0;
   49515 	f0 = heapFloat[(r4+5)];
   49516 	heapFloat[(fp+-181)] = f0;
   49517 	f0 = heapFloat[(r4+6)];
   49518 	heapFloat[(fp+-182)] = f0;
   49519 	f0 = heapFloat[(r4+7)];
   49520 	heapFloat[(fp+-183)] = f0;
   49521 	f0 = heapFloat[(r4+8)];
   49522 	heapFloat[(fp+-184)] = f0;
   49523 	f0 = heapFloat[(r4+9)];
   49524 	heapFloat[(fp+-185)] = f0;
   49525 	f0 = heapFloat[(r4+10)];
   49526 	heapFloat[(fp+-186)] = f0;
   49527 	f0 = heapFloat[(r4+11)];
   49528 	heapFloat[(fp+-187)] = f0;
   49529 	f0 = heapFloat[(r4+12)];
   49530 	heapFloat[(fp+-188)] = f0;
   49531 	f0 = heapFloat[(r4+13)];
   49532 	heapFloat[(fp+-189)] = f0;
   49533 	f0 = heapFloat[(r4+14)];
   49534 	heapFloat[(fp+-190)] = f0;
   49535 	f0 = heapFloat[(r4+15)];
   49536 	heapFloat[(fp+-191)] = f0;
   49537 }
   49538 	f0 = heapFloat[(fp+-173)];
   49539 	f0 = f0*f0;
   49540 	f1 = heapFloat[(fp+-172)];
   49541 	f1 = f1*f1;
   49542 	f3 =                       0.5;
   49543 	heapFloat[(fp+-193)] = f3;
   49544 	f4 = heapFloat[(fp+-174)];
   49545 	f4 = f4*f4;
   49546 	f5 = heapFloat[(fp+-170)];
   49547 	f5 = f5*f5;
   49548 	f0 = f0+f1;
   49549 	f1 = heapFloat[(fp+-175)];
   49550 	f1 = f1*f1;
   49551 	f6 =       0.39269909262657166;
   49552 	f7 =       0.19634954631328583;
   49553 	f3 = f2*f3;
   49554 	f4 = f4+f5;
   49555 	f5 = heapFloat[(fp+-171)];
   49556 	f5 = f5*f5;
   49557 	f0 = f0+f1;
   49558 	heapFloat[(fp+-196)] = f0;
   49559 	f0 = f2 > f6 ? f7 : f3;
   49560 	heapFloat[(fp+-197)] = f0;
   49561 	f0 = f4+f5;
   49562 	heapFloat[(fp+-192)] = f0;
   49563 _78: while(true){
   49564 	r10 = heap32[(r1+7)];
   49565 	if(r10 >r14) //_LBB301_62
   49566 {
   49567 	f0 =   1.1920928955078125e-007;
   49568 	f1 = heapFloat[(fp+-196)];
   49569 if(!(f1 <=f0)) //_LBB301_71
   49570 {
   49571 	f0 = f1;
   49572 	heapFloat[(g0)] = f0;
   49573 	sqrtf(i7);
   49574 	f0 = f_g0;
   49575 	f1 =                         0;
   49576 	if(f0 !=f1) //_LBB301_65
   49577 {
   49578 	f2 = heapFloat[(fp+-197)];
   49579 	heapFloat[(g0)] = f2;
   49580 	sinf(i7);
   49581 	f3 = f_g0;
   49582 	heapFloat[(g0)] = f2;
   49583 	cosf(i7);
   49584 	f2 = f_g0;
   49585 	r10 = heap32[(r1+7)];
   49586 	f4 = heapFloat[(fp+-192)];
   49587 	heapFloat[(g0)] = f4;
   49588 	sqrtf(i7);
   49589 	f4 = f_g0;
   49590 	if(f4 !=f1) //_LBB301_67
   49591 {
   49592 	f0 = f3/f0;
   49593 	f3 = heapFloat[(fp+-175)];
   49594 	f3 = f3*f0;
   49595 	f5 = heapFloat[(fp+-172)];
   49596 	f5 = f5*f0;
   49597 	f6 = heapFloat[(fp+-173)];
   49598 	f0 = f6*f0;
   49599 	f6 =        6.2831854820251465;
   49600 	f7 = r10; //fitos r10, f7
   49601 	f8 = r14; //fitos r14, f8
   49602 	f6 = f6/f7;
   49603 	f6 = f8*f6;
   49604 	f7 = heapFloat[(fp+-193)];
   49605 	f6 = f6*f7;
   49606 	heapFloat[(g0)] = f6;
   49607 	sinf(i7);
   49608 	heapFloat[(g0)] = f6;
   49609 	f4 = f_g0/f4;
   49610 	f6 = heapFloat[(fp+-171)];
   49611 	f6 = f6*f4;
   49612 	f7 = heapFloat[(fp+-170)];
   49613 	f7 = f7*f4;
   49614 	f8 = heapFloat[(fp+-174)];
   49615 	f4 = f8*f4;
   49616 	cosf(i7);
   49617 	f8 = f_g0;
   49618 	f10 = heapFloat[(fp+-195)];
   49619 	f9 = heapFloat[(fp+-194)];
   49620 	if(f9 >=f10) //_LBB301_69
   49621 {
   49622 	f9 = heapFloat[(r8+1)];
   49623 	heapFloat[(fp+-155)] = f9;
   49624 	heapFloat[(fp+-42)] = f9;
   49625 	f9 = heapFloat[(r8+2)];
   49626 	heapFloat[(fp+-156)] = f9;
   49627 	heapFloat[(r4+1)] = f9;
   49628 	f9 = heapFloat[(r8+3)];
   49629 	heapFloat[(fp+-157)] = f9;
   49630 	heapFloat[(r4+2)] = f9;
   49631 	f9 = heapFloat[(r8+4)];
   49632 	heapFloat[(fp+-163)] = f9;
   49633 	heapFloat[(r4+3)] = f9;
   49634 	f9 = heapFloat[(r8+5)];
   49635 	heapFloat[(fp+-158)] = f9;
   49636 	heapFloat[(r4+4)] = f9;
   49637 	f9 = heapFloat[(r8+6)];
   49638 	heapFloat[(fp+-159)] = f9;
   49639 	heapFloat[(r4+5)] = f9;
   49640 	f9 = heapFloat[(r8+7)];
   49641 	heapFloat[(fp+-160)] = f9;
   49642 	heapFloat[(r4+6)] = f9;
   49643 	f9 = heapFloat[(r8+8)];
   49644 	heapFloat[(fp+-162)] = f9;
   49645 	heapFloat[(r4+7)] = f9;
   49646 	f9 = heapFloat[(r8+9)];
   49647 	heapFloat[(fp+-161)] = f9;
   49648 	f10 = f8*f2;
   49649 	f11 = f0*f4;
   49650 	f12 = f8*f0;
   49651 	f13 = f2*f4;
   49652 	f14 = f8*f5;
   49653 	f15 = f2*f7;
   49654 	heapFloat[(r4+8)] = f9;
   49655 	f9 = f10+f11;
   49656 	f10 = f5*f7;
   49657 	f11 = f8*f3;
   49658 	f2 = f2*f6;
   49659 	f12 = f12-f13;
   49660 	f13 = f3*f7;
   49661 	f14 = f14-f15;
   49662 	f15 = f0*f6;
   49663 	f16 = heapFloat[(r8+10)];
   49664 	heapFloat[(fp+-164)] = f16;
   49665 	f9 = f9+f10;
   49666 	f10 = f3*f6;
   49667 	f2 = f11-f2;
   49668 	f11 = f5*f4;
   49669 	f12 = f12-f13;
   49670 	f5 = f5*f6;
   49671 	f13 = f14-f15;
   49672 	f3 = f3*f4;
   49673 	f9 = f9+f10;
   49674 	f5 = f12+f5;
   49675 	f3 = f13+f3;
   49676 	heapFloat[(r4+9)] = f16;
   49677 	f2 = f2-f11;
   49678 	f0 = f0*f7;
   49679 	f0 = f2+f0;
   49680 	f2 = heapFloat[(r8+11)];
   49681 	heapFloat[(fp+-166)] = f2;
   49682 	f10 = f9*f7;
   49683 	f11 = f3*f8;
   49684 	f12 = f9*f4;
   49685 	f13 = f5*f8;
   49686 	heapFloat[(r4+10)] = f2;
   49687 	f2 = f10+f11;
   49688 	f10 = f0*f4;
   49689 	f11 = f12+f13;
   49690 	f12 = f3*f6;
   49691 	f13 = f9*f6;
   49692 	f14 = f0*f8;
   49693 	f17 = heapFloat[(r8+12)];
   49694 	f8 = f9*f8;
   49695 	f9 = f5*f4;
   49696 	f2 = f2+f10;
   49697 	f10 = f5*f6;
   49698 	f11 = f11+f12;
   49699 	f12 = f0*f7;
   49700 	f13 = f13+f14;
   49701 	f5 = f5*f7;
   49702 	f10 = f2-f10;
   49703 	f2 = f11-f12;
   49704 	heapFloat[(r4+11)] = f17;
   49705 	f8 = f8-f9;
   49706 	f7 = f3*f7;
   49707 	f5 = f13+f5;
   49708 	f3 = f3*f4;
   49709 	f4 = heapFloat[(r8+13)];
   49710 	heapFloat[(fp+-165)] = f4;
   49711 	f3 = f5-f3;
   49712 	f5 = f8-f7;
   49713 	f0 = f0*f6;
   49714 	f6 = f2*f2;
   49715 	f7 = f10*f10;
   49716 	f5 = f5-f0;
   49717 	heapFloat[(r4+12)] = f4;
   49718 	f0 = f6+f7;
   49719 	f4 = f3*f3;
   49720 	f6 = heapFloat[(r8+14)];
   49721 	heapFloat[(fp+-167)] = f6;
   49722 	f0 = f0+f4;
   49723 	f4 = f5*f5;
   49724 	heapFloat[(r4+13)] = f6;
   49725 	f6 =                         2;
   49726 	f0 = f0+f4;
   49727 	f0 = f6/f0;
   49728 	f4 = heapFloat[(r8+15)];
   49729 	heapFloat[(fp+-168)] = f4;
   49730 	f6 = f3*f0;
   49731 	f7 = f10*f0;
   49732 	heapFloat[(r4+14)] = f4;
   49733 	f16 = heapFloat[(r8+16)];
   49734 	f4 = f10*f7;
   49735 	f3 = f3*f6;
   49736 	f8 = f4+f3;
   49737 	f9 = f2*f7;
   49738 	f11 = f5*f6;
   49739 	heapFloat[(r4+15)] = f16;
   49740 	f12 = heapFloat[(fp+-169)];
   49741 	f8 = f12-f8;
   49742 	f13 = heapFloat[(r2+1)];
   49743 	f14 = f9-f11;
   49744 	f15 = heapFloat[(r2+5)];
   49745 	f18 = f2*f6;
   49746 	f7 = f5*f7;
   49747 	f19 = f2*f0;
   49748 	f20 = heapFloat[(r2+2)];
   49749 	f21 = heapFloat[(r2+6)];
   49750 	f0 = f13*f8;
   49751 	f22 = f15*f14;
   49752 	f23 = f18+f7;
   49753 	f24 = heapFloat[(r2+9)];
   49754 	f25 = f2*f19;
   49755 	f26 = heapFloat[(r2+3)];
   49756 	f27 = heapFloat[(r2+7)];
   49757 	f28 = heapFloat[(r2+11)];
   49758 	f29 = heapFloat[(r2+10)];
   49759 	f2 = f20*f8;
   49760 	f30 = f21*f14;
   49761 	f0 = f0+f22;
   49762 	f22 = f24*f23;
   49763 	f3 = f25+f3;
   49764 	f0 = f0+f22;
   49765 	f8 = f26*f8;
   49766 	f14 = f27*f14;
   49767 	f2 = f2+f30;
   49768 	f22 = f29*f23;
   49769 	f9 = f9+f11;
   49770 	f11 = f12-f3;
   49771 	f2 = f2+f22;
   49772 	heapFloat[(r4+16)] = f0;
   49773 	f6 = f10*f6;
   49774 	f10 = f5*f19;
   49775 	f3 = f8+f14;
   49776 	f5 = f28*f23;
   49777 	f8 = f6-f10;
   49778 	f3 = f3+f5;
   49779 	heapFloat[(r4+17)] = f2;
   49780 	f5 = f13*f9;
   49781 	f14 = f15*f11;
   49782 	heapFloat[(r4+18)] = f3;
   49783 	f19 = f20*f9;
   49784 	f22 = f21*f11;
   49785 	f5 = f5+f14;
   49786 	f14 = f24*f8;
   49787 	f5 = f5+f14;
   49788 	heap32[(r4+19)] = 0;
   49789 	f9 = f26*f9;
   49790 	f11 = f27*f11;
   49791 	f14 = f19+f22;
   49792 	f19 = f29*f8;
   49793 	f18 = f18-f7;
   49794 	f10 = f6+f10;
   49795 	f4 = f25+f4;
   49796 	f6 = f14+f19;
   49797 	heapFloat[(r4+20)] = f5;
   49798 	f7 = f9+f11;
   49799 	f8 = f28*f8;
   49800 	f4 = f12-f4;
   49801 	f7 = f7+f8;
   49802 	heapFloat[(r4+21)] = f6;
   49803 	f8 = f13*f18;
   49804 	f9 = f15*f10;
   49805 	heapFloat[(r4+22)] = f7;
   49806 	f11 = f20*f18;
   49807 	f12 = f21*f10;
   49808 	f8 = f8+f9;
   49809 	f9 = f24*f4;
   49810 	f9 = f8+f9;
   49811 	heap32[(r4+23)] = 0;
   49812 	f8 = f26*f18;
   49813 	f13 = f27*f10;
   49814 	f10 = f11+f12;
   49815 	f11 = f29*f4;
   49816 	f10 = f10+f11;
   49817 	heapFloat[(r4+24)] = f9;
   49818 	f8 = f8+f13;
   49819 	f4 = f28*f4;
   49820 	f11 = f8+f4;
   49821 	heapFloat[(r4+25)] = f10;
   49822 	heapFloat[(r4+26)] = f11;
   49823 	heap32[(r4+27)] = 0;
   49824 	f12 = heapFloat[(r4+28)];
   49825 	f13 = heapFloat[(r4+29)];
   49826 	f14 = heapFloat[(r4+30)];
   49827 	f15 = heapFloat[(r4+31)];
   49828 	f8 = f1;
   49829 	f4 = f1;
   49830 }
   49831 else{
   49832 	f1 = f8*f2;
   49833 	f9 = f0*f4;
   49834 	f10 = f8*f0;
   49835 	f11 = f2*f4;
   49836 	f12 = f8*f5;
   49837 	f13 = f2*f7;
   49838 	f1 = f1+f9;
   49839 	f9 = f5*f7;
   49840 	f14 = f8*f3;
   49841 	f2 = f2*f6;
   49842 	f10 = f10-f11;
   49843 	f11 = f3*f7;
   49844 	f12 = f12-f13;
   49845 	f13 = f0*f6;
   49846 	f1 = f1+f9;
   49847 	f9 = f3*f6;
   49848 	f2 = f14-f2;
   49849 	f14 = f5*f4;
   49850 	f10 = f10-f11;
   49851 	f5 = f5*f6;
   49852 	f11 = f12-f13;
   49853 	f3 = f3*f4;
   49854 	f1 = f1+f9;
   49855 	f5 = f10+f5;
   49856 	f3 = f11+f3;
   49857 	f2 = f2-f14;
   49858 	f0 = f0*f7;
   49859 	f0 = f2+f0;
   49860 	f2 = f1*f7;
   49861 	f9 = f3*f8;
   49862 	f10 = f1*f4;
   49863 	f11 = f5*f8;
   49864 	f2 = f2+f9;
   49865 	f9 = f0*f4;
   49866 	f10 = f10+f11;
   49867 	f11 = f3*f6;
   49868 	f12 = f1*f6;
   49869 	f13 = f0*f8;
   49870 	f1 = f1*f8;
   49871 	f8 = f5*f4;
   49872 	f2 = f2+f9;
   49873 	f9 = f5*f6;
   49874 	f10 = f10+f11;
   49875 	f11 = f0*f7;
   49876 	f12 = f12+f13;
   49877 	f5 = f5*f7;
   49878 	f2 = f2-f9;
   49879 	f9 = f10-f11;
   49880 	f1 = f1-f8;
   49881 	f7 = f3*f7;
   49882 	f5 = f12+f5;
   49883 	f3 = f3*f4;
   49884 	f3 = f5-f3;
   49885 	f1 = f1-f7;
   49886 	f0 = f0*f6;
   49887 	f4 = f9*f9;
   49888 	f5 = f2*f2;
   49889 	f0 = f1-f0;
   49890 	f1 = f4+f5;
   49891 	f4 = f3*f3;
   49892 	f1 = f1+f4;
   49893 	f4 = f0*f0;
   498