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