js/src/jit-test/lib/bullet.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:ecdbbf5bb000
1 // Note: For maximum-speed code, see "Optimizing Code" on the Emscripten wiki, https://github.com/kripken/emscripten/wiki/Optimizing-Code
2 // Note: Some Emscripten settings may limit the speed of the generated code.
3 // The Module object: Our interface to the outside world. We import
4 // and export values on it, and do the work to get that through
5 // closure compiler if necessary. There are various ways Module can be used:
6 // 1. Not defined. We create it here
7 // 2. A function parameter, function(Module) { ..generated code.. }
8 // 3. pre-run appended it, var Module = {}; ..generated code..
9 // 4. External script tag defines var Module.
10 // We need to do an eval in order to handle the closure compiler
11 // case, where this code here is minified but Module was defined
12 // elsewhere (e.g. case 4 above). We also need to check if Module
13 // already exists (e.g. case 3 above).
14 // Note that if you want to run closure, and also to use Module
15 // after the generated code, you will need to define var Module = {};
16 // before the code. Then that object will be used in the code, and you
17 // can continue to use Module afterwards as well.
18 var Module;
19 if (!Module) Module = eval('(function() { try { return Module || {} } catch(e) { return {} } })()');
20 // Sometimes an existing Module object exists with properties
21 // meant to overwrite the default module functionality. Here
22 // we collect those properties and reapply _after_ we configure
23 // the current environment's defaults to avoid having to be so
24 // defensive during initialization.
25 var moduleOverrides = {};
26 for (var key in Module) {
27 if (Module.hasOwnProperty(key)) {
28 moduleOverrides[key] = Module[key];
29 }
30 }
31 // The environment setup code below is customized to use Module.
32 // *** Environment setup code ***
33 var printedOutput = "";
34 Module['print'] = function f(str) {
35 printedOutput += str;
36 }
37 if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm
38 if (typeof read != 'undefined') {
39 Module['read'] = read;
40 } else {
41 Module['read'] = function() { throw 'no read() available (jsc?)' };
42 }
43 Module['readBinary'] = function(f) {
44 return read(f, 'binary');
45 };
46 if (typeof scriptArgs != 'undefined') {
47 Module['arguments'] = scriptArgs;
48 } else if (typeof arguments != 'undefined') {
49 Module['arguments'] = arguments;
50 }
51 this['Module'] = Module;
52 function globalEval(x) {
53 eval.call(null, x);
54 }
55 if (!Module['load'] == 'undefined' && Module['read']) {
56 Module['load'] = function(f) {
57 globalEval(Module['read'](f));
58 };
59 }
60 if (!Module['printErr']) {
61 Module['printErr'] = Module['print'];
62 }
63 // *** Environment setup code ***
64 // Closure helpers
65 Module.print = Module['print'];
66 Module.printErr = Module['printErr'];
67 // Callbacks
68 Module['preRun'] = [];
69 Module['postRun'] = [];
70 // Merge back in the overrides
71 for (var key in moduleOverrides) {
72 if (moduleOverrides.hasOwnProperty(key)) {
73 Module[key] = moduleOverrides[key];
74 }
75 }
76 // === Auto-generated preamble library stuff ===
77 //========================================
78 // Runtime code shared with compiler
79 //========================================
80 var Runtime = {
81 stackSave: function () {
82 return STACKTOP;
83 },
84 stackRestore: function (stackTop) {
85 STACKTOP = stackTop;
86 },
87 forceAlign: function (target, quantum) {
88 quantum = quantum || 4;
89 if (quantum == 1) return target;
90 if (isNumber(target) && isNumber(quantum)) {
91 return Math.ceil(target/quantum)*quantum;
92 } else if (isNumber(quantum) && isPowerOfTwo(quantum)) {
93 var logg = log2(quantum);
94 return '((((' +target + ')+' + (quantum-1) + ')>>' + logg + ')<<' + logg + ')';
95 }
96 return 'Math.ceil((' + target + ')/' + quantum + ')*' + quantum;
97 },
98 isNumberType: function (type) {
99 return type in Runtime.INT_TYPES || type in Runtime.FLOAT_TYPES;
100 },
101 isPointerType: function isPointerType(type) {
102 return type[type.length-1] == '*';
103 },
104 isStructType: function isStructType(type) {
105 if (isPointerType(type)) return false;
106 if (isArrayType(type)) return true;
107 if (/<?{ ?[^}]* ?}>?/.test(type)) return true; // { i32, i8 } etc. - anonymous struct types
108 // See comment in isStructPointerType()
109 return type[0] == '%';
110 },
111 INT_TYPES: {"i1":0,"i8":0,"i16":0,"i32":0,"i64":0},
112 FLOAT_TYPES: {"float":0,"double":0},
113 or64: function (x, y) {
114 var l = (x | 0) | (y | 0);
115 var h = (Math.round(x / 4294967296) | Math.round(y / 4294967296)) * 4294967296;
116 return l + h;
117 },
118 and64: function (x, y) {
119 var l = (x | 0) & (y | 0);
120 var h = (Math.round(x / 4294967296) & Math.round(y / 4294967296)) * 4294967296;
121 return l + h;
122 },
123 xor64: function (x, y) {
124 var l = (x | 0) ^ (y | 0);
125 var h = (Math.round(x / 4294967296) ^ Math.round(y / 4294967296)) * 4294967296;
126 return l + h;
127 },
128 getNativeTypeSize: function (type, quantumSize) {
129 if (Runtime.QUANTUM_SIZE == 1) return 1;
130 var size = {
131 '%i1': 1,
132 '%i8': 1,
133 '%i16': 2,
134 '%i32': 4,
135 '%i64': 8,
136 "%float": 4,
137 "%double": 8
138 }['%'+type]; // add '%' since float and double confuse Closure compiler as keys, and also spidermonkey as a compiler will remove 's from '_i8' etc
139 if (!size) {
140 if (type.charAt(type.length-1) == '*') {
141 size = Runtime.QUANTUM_SIZE; // A pointer
142 } else if (type[0] == 'i') {
143 var bits = parseInt(type.substr(1));
144 assert(bits % 8 == 0);
145 size = bits/8;
146 }
147 }
148 return size;
149 },
150 getNativeFieldSize: function (type) {
151 return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE);
152 },
153 dedup: function dedup(items, ident) {
154 var seen = {};
155 if (ident) {
156 return items.filter(function(item) {
157 if (seen[item[ident]]) return false;
158 seen[item[ident]] = true;
159 return true;
160 });
161 } else {
162 return items.filter(function(item) {
163 if (seen[item]) return false;
164 seen[item] = true;
165 return true;
166 });
167 }
168 },
169 set: function set() {
170 var args = typeof arguments[0] === 'object' ? arguments[0] : arguments;
171 var ret = {};
172 for (var i = 0; i < args.length; i++) {
173 ret[args[i]] = 0;
174 }
175 return ret;
176 },
177 STACK_ALIGN: 8,
178 getAlignSize: function (type, size, vararg) {
179 // we align i64s and doubles on 64-bit boundaries, unlike x86
180 if (type == 'i64' || type == 'double' || vararg) return 8;
181 if (!type) return Math.min(size, 8); // align structures internally to 64 bits
182 return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE);
183 },
184 calculateStructAlignment: function calculateStructAlignment(type) {
185 type.flatSize = 0;
186 type.alignSize = 0;
187 var diffs = [];
188 var prev = -1;
189 var index = 0;
190 type.flatIndexes = type.fields.map(function(field) {
191 index++;
192 var size, alignSize;
193 if (Runtime.isNumberType(field) || Runtime.isPointerType(field)) {
194 size = Runtime.getNativeTypeSize(field); // pack char; char; in structs, also char[X]s.
195 alignSize = Runtime.getAlignSize(field, size);
196 } else if (Runtime.isStructType(field)) {
197 if (field[1] === '0') {
198 // this is [0 x something]. When inside another structure like here, it must be at the end,
199 // and it adds no size
200 // XXX this happens in java-nbody for example... assert(index === type.fields.length, 'zero-length in the middle!');
201 size = 0;
202 if (Types.types[field]) {
203 alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize);
204 } else {
205 alignSize = type.alignSize || QUANTUM_SIZE;
206 }
207 } else {
208 size = Types.types[field].flatSize;
209 alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize);
210 }
211 } else if (field[0] == 'b') {
212 // bN, large number field, like a [N x i8]
213 size = field.substr(1)|0;
214 alignSize = 1;
215 } else {
216 throw 'Unclear type in struct: ' + field + ', in ' + type.name_ + ' :: ' + dump(Types.types[type.name_]);
217 }
218 if (type.packed) alignSize = 1;
219 type.alignSize = Math.max(type.alignSize, alignSize);
220 var curr = Runtime.alignMemory(type.flatSize, alignSize); // if necessary, place this on aligned memory
221 type.flatSize = curr + size;
222 if (prev >= 0) {
223 diffs.push(curr-prev);
224 }
225 prev = curr;
226 return curr;
227 });
228 type.flatSize = Runtime.alignMemory(type.flatSize, type.alignSize);
229 if (diffs.length == 0) {
230 type.flatFactor = type.flatSize;
231 } else if (Runtime.dedup(diffs).length == 1) {
232 type.flatFactor = diffs[0];
233 }
234 type.needsFlattening = (type.flatFactor != 1);
235 return type.flatIndexes;
236 },
237 generateStructInfo: function (struct, typeName, offset) {
238 var type, alignment;
239 if (typeName) {
240 offset = offset || 0;
241 type = (typeof Types === 'undefined' ? Runtime.typeInfo : Types.types)[typeName];
242 if (!type) return null;
243 if (type.fields.length != struct.length) {
244 printErr('Number of named fields must match the type for ' + typeName + ': possibly duplicate struct names. Cannot return structInfo');
245 return null;
246 }
247 alignment = type.flatIndexes;
248 } else {
249 var type = { fields: struct.map(function(item) { return item[0] }) };
250 alignment = Runtime.calculateStructAlignment(type);
251 }
252 var ret = {
253 __size__: type.flatSize
254 };
255 if (typeName) {
256 struct.forEach(function(item, i) {
257 if (typeof item === 'string') {
258 ret[item] = alignment[i] + offset;
259 } else {
260 // embedded struct
261 var key;
262 for (var k in item) key = k;
263 ret[key] = Runtime.generateStructInfo(item[key], type.fields[i], alignment[i]);
264 }
265 });
266 } else {
267 struct.forEach(function(item, i) {
268 ret[item[1]] = alignment[i];
269 });
270 }
271 return ret;
272 },
273 dynCall: function (sig, ptr, args) {
274 if (args && args.length) {
275 if (!args.splice) args = Array.prototype.slice.call(args);
276 args.splice(0, 0, ptr);
277 return Module['dynCall_' + sig].apply(null, args);
278 } else {
279 return Module['dynCall_' + sig].call(null, ptr);
280 }
281 },
282 functionPointers: [],
283 addFunction: function (func) {
284 for (var i = 0; i < Runtime.functionPointers.length; i++) {
285 if (!Runtime.functionPointers[i]) {
286 Runtime.functionPointers[i] = func;
287 return 2 + 2*i;
288 }
289 }
290 throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';
291 },
292 removeFunction: function (index) {
293 Runtime.functionPointers[(index-2)/2] = null;
294 },
295 warnOnce: function (text) {
296 if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {};
297 if (!Runtime.warnOnce.shown[text]) {
298 Runtime.warnOnce.shown[text] = 1;
299 Module.printErr(text);
300 }
301 },
302 funcWrappers: {},
303 getFuncWrapper: function (func, sig) {
304 assert(sig);
305 if (!Runtime.funcWrappers[func]) {
306 Runtime.funcWrappers[func] = function() {
307 return Runtime.dynCall(sig, func, arguments);
308 };
309 }
310 return Runtime.funcWrappers[func];
311 },
312 UTF8Processor: function () {
313 var buffer = [];
314 var needed = 0;
315 this.processCChar = function (code) {
316 code = code & 0xFF;
317 if (buffer.length == 0) {
318 if ((code & 0x80) == 0x00) { // 0xxxxxxx
319 return String.fromCharCode(code);
320 }
321 buffer.push(code);
322 if ((code & 0xE0) == 0xC0) { // 110xxxxx
323 needed = 1;
324 } else if ((code & 0xF0) == 0xE0) { // 1110xxxx
325 needed = 2;
326 } else { // 11110xxx
327 needed = 3;
328 }
329 return '';
330 }
331 if (needed) {
332 buffer.push(code);
333 needed--;
334 if (needed > 0) return '';
335 }
336 var c1 = buffer[0];
337 var c2 = buffer[1];
338 var c3 = buffer[2];
339 var c4 = buffer[3];
340 var ret;
341 if (buffer.length == 2) {
342 ret = String.fromCharCode(((c1 & 0x1F) << 6) | (c2 & 0x3F));
343 } else if (buffer.length == 3) {
344 ret = String.fromCharCode(((c1 & 0x0F) << 12) | ((c2 & 0x3F) << 6) | (c3 & 0x3F));
345 } else {
346 // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
347 var codePoint = ((c1 & 0x07) << 18) | ((c2 & 0x3F) << 12) |
348 ((c3 & 0x3F) << 6) | (c4 & 0x3F);
349 ret = String.fromCharCode(
350 Math.floor((codePoint - 0x10000) / 0x400) + 0xD800,
351 (codePoint - 0x10000) % 0x400 + 0xDC00);
352 }
353 buffer.length = 0;
354 return ret;
355 }
356 this.processJSString = function(string) {
357 string = unescape(encodeURIComponent(string));
358 var ret = [];
359 for (var i = 0; i < string.length; i++) {
360 ret.push(string.charCodeAt(i));
361 }
362 return ret;
363 }
364 },
365 stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = ((((STACKTOP)+7)>>3)<<3); return ret; },
366 staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + size)|0;STATICTOP = ((((STATICTOP)+7)>>3)<<3); return ret; },
367 dynamicAlloc: function (size) { var ret = DYNAMICTOP;DYNAMICTOP = (DYNAMICTOP + size)|0;DYNAMICTOP = ((((DYNAMICTOP)+7)>>3)<<3); if (DYNAMICTOP >= TOTAL_MEMORY) enlargeMemory();; return ret; },
368 alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 8))*(quantum ? quantum : 8); return ret; },
369 makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+(((low)>>>(0))))+((+(((high)>>>(0))))*(+(4294967296)))) : ((+(((low)>>>(0))))+((+(((high)|(0))))*(+(4294967296))))); return ret; },
370 GLOBAL_BASE: 8,
371 QUANTUM_SIZE: 4,
372 __dummy__: 0
373 }
374 //========================================
375 // Runtime essentials
376 //========================================
377 var __THREW__ = 0; // Used in checking for thrown exceptions.
378 var ABORT = false; // whether we are quitting the application. no code should run after this. set in exit() and abort()
379 var EXITSTATUS = 0;
380 var undef = 0;
381 // tempInt is used for 32-bit signed values or smaller. tempBigInt is used
382 // for 32-bit unsigned values or more than 32 bits. TODO: audit all uses of tempInt
383 var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair, tempBigIntI, tempBigIntR, tempBigIntS, tempBigIntP, tempBigIntD;
384 var tempI64, tempI64b;
385 var tempRet0, tempRet1, tempRet2, tempRet3, tempRet4, tempRet5, tempRet6, tempRet7, tempRet8, tempRet9;
386 function assert(condition, text) {
387 if (!condition) {
388 abort('Assertion failed: ' + text);
389 }
390 }
391 var globalScope = this;
392 // C calling interface. A convenient way to call C functions (in C files, or
393 // defined with extern "C").
394 //
395 // Note: LLVM optimizations can inline and remove functions, after which you will not be
396 // able to call them. Closure can also do so. To avoid that, add your function to
397 // the exports using something like
398 //
399 // -s EXPORTED_FUNCTIONS='["_main", "_myfunc"]'
400 //
401 // @param ident The name of the C function (note that C++ functions will be name-mangled - use extern "C")
402 // @param returnType The return type of the function, one of the JS types 'number', 'string' or 'array' (use 'number' for any C pointer, and
403 // 'array' for JavaScript arrays and typed arrays; note that arrays are 8-bit).
404 // @param argTypes An array of the types of arguments for the function (if there are no arguments, this can be ommitted). Types are as in returnType,
405 // except that 'array' is not possible (there is no way for us to know the length of the array)
406 // @param args An array of the arguments to the function, as native JS values (as in returnType)
407 // Note that string arguments will be stored on the stack (the JS string will become a C string on the stack).
408 // @return The return value, as a native JS value (as in returnType)
409 function ccall(ident, returnType, argTypes, args) {
410 return ccallFunc(getCFunc(ident), returnType, argTypes, args);
411 }
412 Module["ccall"] = ccall;
413 // Returns the C function with a specified identifier (for C++, you need to do manual name mangling)
414 function getCFunc(ident) {
415 try {
416 var func = Module['_' + ident]; // closure exported function
417 if (!func) func = eval('_' + ident); // explicit lookup
418 } catch(e) {
419 }
420 assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)');
421 return func;
422 }
423 // Internal function that does a C call using a function, not an identifier
424 function ccallFunc(func, returnType, argTypes, args) {
425 var stack = 0;
426 function toC(value, type) {
427 if (type == 'string') {
428 if (value === null || value === undefined || value === 0) return 0; // null string
429 if (!stack) stack = Runtime.stackSave();
430 var ret = Runtime.stackAlloc(value.length+1);
431 writeStringToMemory(value, ret);
432 return ret;
433 } else if (type == 'array') {
434 if (!stack) stack = Runtime.stackSave();
435 var ret = Runtime.stackAlloc(value.length);
436 writeArrayToMemory(value, ret);
437 return ret;
438 }
439 return value;
440 }
441 function fromC(value, type) {
442 if (type == 'string') {
443 return Pointer_stringify(value);
444 }
445 assert(type != 'array');
446 return value;
447 }
448 var i = 0;
449 var cArgs = args ? args.map(function(arg) {
450 return toC(arg, argTypes[i++]);
451 }) : [];
452 var ret = fromC(func.apply(null, cArgs), returnType);
453 if (stack) Runtime.stackRestore(stack);
454 return ret;
455 }
456 // Returns a native JS wrapper for a C function. This is similar to ccall, but
457 // returns a function you can call repeatedly in a normal way. For example:
458 //
459 // var my_function = cwrap('my_c_function', 'number', ['number', 'number']);
460 // alert(my_function(5, 22));
461 // alert(my_function(99, 12));
462 //
463 function cwrap(ident, returnType, argTypes) {
464 var func = getCFunc(ident);
465 return function() {
466 return ccallFunc(func, returnType, argTypes, Array.prototype.slice.call(arguments));
467 }
468 }
469 Module["cwrap"] = cwrap;
470 // Sets a value in memory in a dynamic way at run-time. Uses the
471 // type data. This is the same as makeSetValue, except that
472 // makeSetValue is done at compile-time and generates the needed
473 // code then, whereas this function picks the right code at
474 // run-time.
475 // Note that setValue and getValue only do *aligned* writes and reads!
476 // Note that ccall uses JS types as for defining types, while setValue and
477 // getValue need LLVM types ('i8', 'i32') - this is a lower-level operation
478 function setValue(ptr, value, type, noSafe) {
479 type = type || 'i8';
480 if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
481 switch(type) {
482 case 'i1': HEAP8[(ptr)]=value; break;
483 case 'i8': HEAP8[(ptr)]=value; break;
484 case 'i16': HEAP16[((ptr)>>1)]=value; break;
485 case 'i32': HEAP32[((ptr)>>2)]=value; break;
486 case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math.abs(tempDouble))) >= (+(1)) ? (tempDouble > (+(0)) ? ((Math.min((+(Math.floor((tempDouble)/(+(4294967296))))), (+(4294967295))))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/(+(4294967296)))))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;
487 case 'float': HEAPF32[((ptr)>>2)]=value; break;
488 case 'double': HEAPF64[((ptr)>>3)]=value; break;
489 default: abort('invalid type for setValue: ' + type);
490 }
491 }
492 Module['setValue'] = setValue;
493 // Parallel to setValue.
494 function getValue(ptr, type, noSafe) {
495 type = type || 'i8';
496 if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
497 switch(type) {
498 case 'i1': return HEAP8[(ptr)];
499 case 'i8': return HEAP8[(ptr)];
500 case 'i16': return HEAP16[((ptr)>>1)];
501 case 'i32': return HEAP32[((ptr)>>2)];
502 case 'i64': return HEAP32[((ptr)>>2)];
503 case 'float': return HEAPF32[((ptr)>>2)];
504 case 'double': return HEAPF64[((ptr)>>3)];
505 default: abort('invalid type for setValue: ' + type);
506 }
507 return null;
508 }
509 Module['getValue'] = getValue;
510 var ALLOC_NORMAL = 0; // Tries to use _malloc()
511 var ALLOC_STACK = 1; // Lives for the duration of the current function call
512 var ALLOC_STATIC = 2; // Cannot be freed
513 var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk
514 var ALLOC_NONE = 4; // Do not allocate
515 Module['ALLOC_NORMAL'] = ALLOC_NORMAL;
516 Module['ALLOC_STACK'] = ALLOC_STACK;
517 Module['ALLOC_STATIC'] = ALLOC_STATIC;
518 Module['ALLOC_DYNAMIC'] = ALLOC_DYNAMIC;
519 Module['ALLOC_NONE'] = ALLOC_NONE;
520 // allocate(): This is for internal use. You can use it yourself as well, but the interface
521 // is a little tricky (see docs right below). The reason is that it is optimized
522 // for multiple syntaxes to save space in generated code. So you should
523 // normally not use allocate(), and instead allocate memory using _malloc(),
524 // initialize it with setValue(), and so forth.
525 // @slab: An array of data, or a number. If a number, then the size of the block to allocate,
526 // in *bytes* (note that this is sometimes confusing: the next parameter does not
527 // affect this!)
528 // @types: Either an array of types, one for each byte (or 0 if no type at that position),
529 // or a single type which is used for the entire block. This only matters if there
530 // is initial data - if @slab is a number, then this does not matter at all and is
531 // ignored.
532 // @allocator: How to allocate memory, see ALLOC_*
533 function allocate(slab, types, allocator, ptr) {
534 var zeroinit, size;
535 if (typeof slab === 'number') {
536 zeroinit = true;
537 size = slab;
538 } else {
539 zeroinit = false;
540 size = slab.length;
541 }
542 var singleType = typeof types === 'string' ? types : null;
543 var ret;
544 if (allocator == ALLOC_NONE) {
545 ret = ptr;
546 } else {
547 ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));
548 }
549 if (zeroinit) {
550 var ptr = ret, stop;
551 assert((ret & 3) == 0);
552 stop = ret + (size & ~3);
553 for (; ptr < stop; ptr += 4) {
554 HEAP32[((ptr)>>2)]=0;
555 }
556 stop = ret + size;
557 while (ptr < stop) {
558 HEAP8[((ptr++)|0)]=0;
559 }
560 return ret;
561 }
562 if (singleType === 'i8') {
563 if (slab.subarray || slab.slice) {
564 HEAPU8.set(slab, ret);
565 } else {
566 HEAPU8.set(new Uint8Array(slab), ret);
567 }
568 return ret;
569 }
570 var i = 0, type, typeSize, previousType;
571 while (i < size) {
572 var curr = slab[i];
573 if (typeof curr === 'function') {
574 curr = Runtime.getFunctionIndex(curr);
575 }
576 type = singleType || types[i];
577 if (type === 0) {
578 i++;
579 continue;
580 }
581 if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later
582 setValue(ret+i, curr, type);
583 // no need to look up size unless type changes, so cache it
584 if (previousType !== type) {
585 typeSize = Runtime.getNativeTypeSize(type);
586 previousType = type;
587 }
588 i += typeSize;
589 }
590 return ret;
591 }
592 Module['allocate'] = allocate;
593 function Pointer_stringify(ptr, /* optional */ length) {
594 // TODO: use TextDecoder
595 // Find the length, and check for UTF while doing so
596 var hasUtf = false;
597 var t;
598 var i = 0;
599 while (1) {
600 t = HEAPU8[(((ptr)+(i))|0)];
601 if (t >= 128) hasUtf = true;
602 else if (t == 0 && !length) break;
603 i++;
604 if (length && i == length) break;
605 }
606 if (!length) length = i;
607 var ret = '';
608 if (!hasUtf) {
609 var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack
610 var curr;
611 while (length > 0) {
612 curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK)));
613 ret = ret ? ret + curr : curr;
614 ptr += MAX_CHUNK;
615 length -= MAX_CHUNK;
616 }
617 return ret;
618 }
619 var utf8 = new Runtime.UTF8Processor();
620 for (i = 0; i < length; i++) {
621 t = HEAPU8[(((ptr)+(i))|0)];
622 ret += utf8.processCChar(t);
623 }
624 return ret;
625 }
626 Module['Pointer_stringify'] = Pointer_stringify;
627 // Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns
628 // a copy of that string as a Javascript String object.
629 function UTF16ToString(ptr) {
630 var i = 0;
631 var str = '';
632 while (1) {
633 var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];
634 if (codeUnit == 0)
635 return str;
636 ++i;
637 // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.
638 str += String.fromCharCode(codeUnit);
639 }
640 }
641 Module['UTF16ToString'] = UTF16ToString;
642 // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
643 // null-terminated and encoded in UTF16LE form. The copy will require at most (str.length*2+1)*2 bytes of space in the HEAP.
644 function stringToUTF16(str, outPtr) {
645 for(var i = 0; i < str.length; ++i) {
646 // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.
647 var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
648 HEAP16[(((outPtr)+(i*2))>>1)]=codeUnit
649 }
650 // Null-terminate the pointer to the HEAP.
651 HEAP16[(((outPtr)+(str.length*2))>>1)]=0
652 }
653 Module['stringToUTF16'] = stringToUTF16;
654 // Given a pointer 'ptr' to a null-terminated UTF32LE-encoded string in the emscripten HEAP, returns
655 // a copy of that string as a Javascript String object.
656 function UTF32ToString(ptr) {
657 var i = 0;
658 var str = '';
659 while (1) {
660 var utf32 = HEAP32[(((ptr)+(i*4))>>2)];
661 if (utf32 == 0)
662 return str;
663 ++i;
664 // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.
665 if (utf32 >= 0x10000) {
666 var ch = utf32 - 0x10000;
667 str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
668 } else {
669 str += String.fromCharCode(utf32);
670 }
671 }
672 }
673 Module['UTF32ToString'] = UTF32ToString;
674 // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
675 // null-terminated and encoded in UTF32LE form. The copy will require at most (str.length+1)*4 bytes of space in the HEAP,
676 // but can use less, since str.length does not return the number of characters in the string, but the number of UTF-16 code units in the string.
677 function stringToUTF32(str, outPtr) {
678 var iChar = 0;
679 for(var iCodeUnit = 0; iCodeUnit < str.length; ++iCodeUnit) {
680 // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.
681 var codeUnit = str.charCodeAt(iCodeUnit); // possibly a lead surrogate
682 if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {
683 var trailSurrogate = str.charCodeAt(++iCodeUnit);
684 codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);
685 }
686 HEAP32[(((outPtr)+(iChar*4))>>2)]=codeUnit
687 ++iChar;
688 }
689 // Null-terminate the pointer to the HEAP.
690 HEAP32[(((outPtr)+(iChar*4))>>2)]=0
691 }
692 Module['stringToUTF32'] = stringToUTF32;
693 // Memory management
694 var PAGE_SIZE = 4096;
695 function alignMemoryPage(x) {
696 return ((x+4095)>>12)<<12;
697 }
698 var HEAP;
699 var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
700 var STATIC_BASE = 0, STATICTOP = 0, staticSealed = false; // static area
701 var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; // stack area
702 var DYNAMIC_BASE = 0, DYNAMICTOP = 0; // dynamic area handled by sbrk
703 function enlargeMemory() {
704 abort('Cannot enlarge memory arrays in asm.js. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', or (2) set Module.TOTAL_MEMORY before the program runs.');
705 }
706 var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880;
707 var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216;
708 var FAST_MEMORY = Module['FAST_MEMORY'] || 2097152;
709 // Initialize the runtime's memory
710 // check for full engine support (use string 'subarray' to avoid closure compiler confusion)
711 assert(!!Int32Array && !!Float64Array && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']),
712 'Cannot fallback to non-typed array case: Code is too specialized');
713 var buffer = new ArrayBuffer(TOTAL_MEMORY);
714 HEAP8 = new Int8Array(buffer);
715 HEAP16 = new Int16Array(buffer);
716 HEAP32 = new Int32Array(buffer);
717 HEAPU8 = new Uint8Array(buffer);
718 HEAPU16 = new Uint16Array(buffer);
719 HEAPU32 = new Uint32Array(buffer);
720 HEAPF32 = new Float32Array(buffer);
721 HEAPF64 = new Float64Array(buffer);
722 // Endianness check (note: assumes compiler arch was little-endian)
723 HEAP32[0] = 255;
724 assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, 'Typed arrays 2 must be run on a little-endian system');
725 Module['HEAP'] = HEAP;
726 Module['HEAP8'] = HEAP8;
727 Module['HEAP16'] = HEAP16;
728 Module['HEAP32'] = HEAP32;
729 Module['HEAPU8'] = HEAPU8;
730 Module['HEAPU16'] = HEAPU16;
731 Module['HEAPU32'] = HEAPU32;
732 Module['HEAPF32'] = HEAPF32;
733 Module['HEAPF64'] = HEAPF64;
734 function callRuntimeCallbacks(callbacks) {
735 while(callbacks.length > 0) {
736 var callback = callbacks.shift();
737 if (typeof callback == 'function') {
738 callback();
739 continue;
740 }
741 var func = callback.func;
742 if (typeof func === 'number') {
743 if (callback.arg === undefined) {
744 Runtime.dynCall('v', func);
745 } else {
746 Runtime.dynCall('vi', func, [callback.arg]);
747 }
748 } else {
749 func(callback.arg === undefined ? null : callback.arg);
750 }
751 }
752 }
753 var __ATPRERUN__ = []; // functions called before the runtime is initialized
754 var __ATINIT__ = []; // functions called during startup
755 var __ATMAIN__ = []; // functions called when main() is to be run
756 var __ATEXIT__ = []; // functions called during shutdown
757 var __ATPOSTRUN__ = []; // functions called after the runtime has exited
758 var runtimeInitialized = false;
759 function preRun() {
760 // compatibility - merge in anything from Module['preRun'] at this time
761 if (Module['preRun']) {
762 if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];
763 while (Module['preRun'].length) {
764 addOnPreRun(Module['preRun'].shift());
765 }
766 }
767 callRuntimeCallbacks(__ATPRERUN__);
768 }
769 function ensureInitRuntime() {
770 if (runtimeInitialized) return;
771 runtimeInitialized = true;
772 callRuntimeCallbacks(__ATINIT__);
773 }
774 function preMain() {
775 callRuntimeCallbacks(__ATMAIN__);
776 }
777 function exitRuntime() {
778 callRuntimeCallbacks(__ATEXIT__);
779 }
780 function postRun() {
781 // compatibility - merge in anything from Module['postRun'] at this time
782 if (Module['postRun']) {
783 if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];
784 while (Module['postRun'].length) {
785 addOnPostRun(Module['postRun'].shift());
786 }
787 }
788 callRuntimeCallbacks(__ATPOSTRUN__);
789 }
790 function addOnPreRun(cb) {
791 __ATPRERUN__.unshift(cb);
792 }
793 Module['addOnPreRun'] = Module.addOnPreRun = addOnPreRun;
794 function addOnInit(cb) {
795 __ATINIT__.unshift(cb);
796 }
797 Module['addOnInit'] = Module.addOnInit = addOnInit;
798 function addOnPreMain(cb) {
799 __ATMAIN__.unshift(cb);
800 }
801 Module['addOnPreMain'] = Module.addOnPreMain = addOnPreMain;
802 function addOnExit(cb) {
803 __ATEXIT__.unshift(cb);
804 }
805 Module['addOnExit'] = Module.addOnExit = addOnExit;
806 function addOnPostRun(cb) {
807 __ATPOSTRUN__.unshift(cb);
808 }
809 Module['addOnPostRun'] = Module.addOnPostRun = addOnPostRun;
810 // Tools
811 // This processes a JS string into a C-line array of numbers, 0-terminated.
812 // For LLVM-originating strings, see parser.js:parseLLVMString function
813 function intArrayFromString(stringy, dontAddNull, length /* optional */) {
814 var ret = (new Runtime.UTF8Processor()).processJSString(stringy);
815 if (length) {
816 ret.length = length;
817 }
818 if (!dontAddNull) {
819 ret.push(0);
820 }
821 return ret;
822 }
823 Module['intArrayFromString'] = intArrayFromString;
824 function intArrayToString(array) {
825 var ret = [];
826 for (var i = 0; i < array.length; i++) {
827 var chr = array[i];
828 if (chr > 0xFF) {
829 chr &= 0xFF;
830 }
831 ret.push(String.fromCharCode(chr));
832 }
833 return ret.join('');
834 }
835 Module['intArrayToString'] = intArrayToString;
836 // Write a Javascript array to somewhere in the heap
837 function writeStringToMemory(string, buffer, dontAddNull) {
838 var array = intArrayFromString(string, dontAddNull);
839 var i = 0;
840 while (i < array.length) {
841 var chr = array[i];
842 HEAP8[(((buffer)+(i))|0)]=chr
843 i = i + 1;
844 }
845 }
846 Module['writeStringToMemory'] = writeStringToMemory;
847 function writeArrayToMemory(array, buffer) {
848 for (var i = 0; i < array.length; i++) {
849 HEAP8[(((buffer)+(i))|0)]=array[i];
850 }
851 }
852 Module['writeArrayToMemory'] = writeArrayToMemory;
853 function unSign(value, bits, ignore, sig) {
854 if (value >= 0) {
855 return value;
856 }
857 return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts
858 : Math.pow(2, bits) + value;
859 }
860 function reSign(value, bits, ignore, sig) {
861 if (value <= 0) {
862 return value;
863 }
864 var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32
865 : Math.pow(2, bits-1);
866 if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that
867 // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors
868 // TODO: In i64 mode 1, resign the two parts separately and safely
869 value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts
870 }
871 return value;
872 }
873 if (!Math['imul']) Math['imul'] = function(a, b) {
874 var ah = a >>> 16;
875 var al = a & 0xffff;
876 var bh = b >>> 16;
877 var bl = b & 0xffff;
878 return (al*bl + ((ah*bl + al*bh) << 16))|0;
879 };
880 Math.imul = Math['imul'];
881 // A counter of dependencies for calling run(). If we need to
882 // do asynchronous work before running, increment this and
883 // decrement it. Incrementing must happen in a place like
884 // PRE_RUN_ADDITIONS (used by emcc to add file preloading).
885 // Note that you can add dependencies in preRun, even though
886 // it happens right before run - run will be postponed until
887 // the dependencies are met.
888 var runDependencies = 0;
889 var runDependencyTracking = {};
890 var calledInit = false, calledRun = false;
891 var runDependencyWatcher = null;
892 function addRunDependency(id) {
893 runDependencies++;
894 if (Module['monitorRunDependencies']) {
895 Module['monitorRunDependencies'](runDependencies);
896 }
897 if (id) {
898 assert(!runDependencyTracking[id]);
899 runDependencyTracking[id] = 1;
900 } else {
901 Module.printErr('warning: run dependency added without ID');
902 }
903 }
904 Module['addRunDependency'] = addRunDependency;
905 function removeRunDependency(id) {
906 runDependencies--;
907 if (Module['monitorRunDependencies']) {
908 Module['monitorRunDependencies'](runDependencies);
909 }
910 if (id) {
911 assert(runDependencyTracking[id]);
912 delete runDependencyTracking[id];
913 } else {
914 Module.printErr('warning: run dependency removed without ID');
915 }
916 if (runDependencies == 0) {
917 if (runDependencyWatcher !== null) {
918 clearInterval(runDependencyWatcher);
919 runDependencyWatcher = null;
920 }
921 // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)
922 if (!calledRun) run();
923 }
924 }
925 Module['removeRunDependency'] = removeRunDependency;
926 Module["preloadedImages"] = {}; // maps url to image data
927 Module["preloadedAudios"] = {}; // maps url to audio data
928 function loadMemoryInitializer(filename) {
929 function applyData(data) {
930 HEAPU8.set(data, STATIC_BASE);
931 }
932 // always do this asynchronously, to keep shell and web as similar as possible
933 addOnPreRun(function() {
934 if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) {
935 applyData(Module['readBinary'](filename));
936 } else {
937 Browser.asyncLoad(filename, function(data) {
938 applyData(data);
939 }, function(data) {
940 throw 'could not load memory initializer ' + filename;
941 });
942 }
943 });
944 }
945 // === Body ===
946 STATIC_BASE = 8;
947 STATICTOP = STATIC_BASE + 14352;
948 /* global initializers */ __ATINIT__.push({ func: function() { runPostSets() } },{ func: function() { __GLOBAL__I_a() } });
949 var ___dso_handle;
950 var __ZTVN10__cxxabiv120__si_class_type_infoE;
951 var __ZTVN10__cxxabiv117__class_type_infoE;
952 var __ZN23btDiscreteDynamicsWorldC1EP12btDispatcherP21btBroadphaseInterfaceP18btConstraintSolverP24btCollisionConfiguration;
953 var __ZN11btRigidBodyC1ERKNS_27btRigidBodyConstructionInfoE;
954 var __ZN11btRigidBodyC1EfP13btMotionStateP16btCollisionShapeRK9btVector3;
955 var __ZN35btSequentialImpulseConstraintSolverC1Ev;
956 var __ZN21btCollisionDispatcherC1EP24btCollisionConfiguration;
957 var __ZN27btContinuousConvexCollisionC1EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver;
958 var __ZN27btContinuousConvexCollisionC1EPK13btConvexShapePK18btStaticPlaneShape;
959 var __ZN16btDbvtBroadphaseC1EP22btOverlappingPairCache;
960 var __ZN31btDefaultCollisionConfigurationC1ERK34btDefaultCollisionConstructionInfo;
961 var __ZN16btEmptyAlgorithmC1ERK36btCollisionAlgorithmConstructionInfo;
962 var __ZN17btGjkPairDetectorC1EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver;
963 var __ZN17btGjkPairDetectorC1EPK13btConvexShapeS2_iiffP22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver;
964 var __ZN16btManifoldResultC1EP17btCollisionObjectS1_;
965 var __ZN28btHashedOverlappingPairCacheC1Ev;
966 var __ZN25btSimulationIslandManagerC1Ev;
967 var __ZN32btSphereSphereCollisionAlgorithmC1EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_;
968 var __ZN34btSphereTriangleCollisionAlgorithmC1EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_b;
969 var __ZN22btSubsimplexConvexCastC1EPK13btConvexShapeS2_P22btVoronoiSimplexSolver;
970 var __ZN11btUnionFindD1Ev;
971 var __ZN11btUnionFindC1Ev;
972 var __ZN22SphereTriangleDetectorC1EP13btSphereShapeP15btTriangleShapef;
973 var __ZN26btBoxBoxCollisionAlgorithmC1EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_;
974 var __ZN16btBoxBoxDetectorC1EP10btBoxShapeS1_;
975 var __ZN28btCompoundCollisionAlgorithmC1ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b;
976 var __ZN33btConvexConcaveCollisionAlgorithmC1ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b;
977 var __ZN23btConvexConvexAlgorithm10CreateFuncC1EP22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver;
978 var __ZN31btConvexPlaneCollisionAlgorithmC1EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_bii;
979 var __ZN18btConvexPolyhedronC1Ev;
980 var __ZN6btDbvtC1Ev;
981 var __ZN6btDbvtD1Ev;
982 var __ZN15btGjkConvexCastC1EPK13btConvexShapeS2_P22btVoronoiSimplexSolver;
983 __ZTVN10__cxxabiv120__si_class_type_infoE=allocate([0,0,0,0,96,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_STATIC);
984 __ZTVN10__cxxabiv117__class_type_infoE=allocate([0,0,0,0,112,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_STATIC);
985 /* memory initializer */ allocate([0,0,0,64,0,0,0,0,10,215,163,60,0,0,0,0,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,70,108,111,97,116,68,97,116,97,0,0,0,0,0,0,99,111,110,118,101,120,83,119,101,101,112,84,101,115,116,0,67,67,68,32,109,111,116,105,111,110,32,99,108,97,109,112,105,110,103,0,0,0,0,0,99,111,110,118,101,120,83,119,101,101,112,67,111,109,112,111,117,110,100,0,0,0,0,0,105,110,116,101,103,114,97,116,101,84,114,97,110,115,102,111,114,109,115,0,0,0,0,0,100,105,115,112,97,116,99,104,65,108,108,67,111,108,108,105,115,105,111,110,80,97,105,114,115,0,0,0,0,0,0,0,99,97,108,99,117,108,97,116,101,83,105,109,117,108,97,116,105,111,110,73,115,108,97,110,100,115,0,0,0,0,0,0,99,97,108,99,117,108,97,116,101,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,115,0,0,0,0,0,0,0,115,111,108,118,101,67,111,110,115,116,114,97,105,110,116,115,0,0,0,0,0,0,0,0,82,111,111,116,0,0,0,0,112,101,114,102,111,114,109,68,105,115,99,114,101,116,101,67,111,108,108,105,115,105,111,110,68,101,116,101,99,116,105,111,110,0,0,0,0,0,0,0,117,112,100,97,116,101,65,99,116,105,118,97,116,105,111,110,83,116,97,116,101,0,0,0,66,117,108,108,101,116,67,111,108,108,105,115,105,111,110,47,78,97,114,114,111,119,80,104,97,115,101,67,111,108,108,105,115,105,111,110,47,98,116,80,111,108,121,104,101,100,114,97,108,67,111,110,116,97,99,116,67,108,105,112,112,105,110,103,46,99,112,112,0,0,0,0,115,111,108,118,101,71,114,111,117,112,67,97,99,104,101,70,114,105,101,110,100,108,121,83,101,116,117,112,0,0,0,0,117,112,100,97,116,101,65,97,98,98,115,0,0,0,0,0,117,112,100,97,116,101,65,99,116,105,111,110,115,0,0,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,0,84,104,97,110,107,115,46,10,0,0,0,0,0,0,0,0,105,115,108,97,110,100,85,110,105,111,110,70,105,110,100,65,110,100,81,117,105,99,107,83,111,114,116,0,0,0,0,0,105,110,116,101,114,110,97,108,83,105,110,103,108,101,83,116,101,112,83,105,109,117,108,97,116,105,111,110,0,0,0,0,100,49,62,61,48,46,48,102,0,0,0,0,0,0,0,0,115,111,108,118,101,71,114,111,117,112,0,0,0,0,0,0,98,116,82,105,103,105,100,66,111,100,121,70,108,111,97,116,68,97,116,97,0,0,0,0,80,108,101,97,115,101,32,105,110,99,108,117,100,101,32,97,98,111,118,101,32,105,110,102,111,114,109,97,116,105,111,110,44,32,121,111,117,114,32,80,108,97,116,102,111,114,109,44,32,118,101,114,115,105,111,110,32,111,102,32,79,83,46,10,0,0,0,0,0,0,0,0,115,116,101,112,83,105,109,117,108,97,116,105,111,110,0,0,66,111,120,0,0,0,0,0,100,48,62,61,48,46,48,102,0,0,0,0,0,0,0,0,115,111,108,118,101,71,114,111,117,112,67,97,99,104,101,70,114,105,101,110,100,108,121,73,116,101,114,97,116,105,111,110,115,0,0,0,0,0,0,0,83,80,72,69,82,69,0,0,112,114,111,99,101,115,115,73,115,108,97,110,100,115,0,0,98,116,67,111,110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,68,97,116,97,0,0,0,0,0,0,0,84,114,105,97,110,103,108,101,0,0,0,0,0,0,0,0,112,114,101,100,105,99,116,85,110,99,111,110,115,116,114,97,105,110,116,77,111,116,105,111,110,0,0,0,0,0,0,0,79,118,101,114,102,108,111,119,32,105,110,32,65,65,66,66,44,32,111,98,106,101,99,116,32,114,101,109,111,118,101,100,32,102,114,111,109,32,115,105,109,117,108,97,116,105,111,110,0,0,0,0,0,0,0,0,115,121,110,99,104,114,111,110,105,122,101,77,111,116,105,111,110,83,116,97,116,101,115,0,73,102,32,121,111,117,32,99,97,110,32,114,101,112,114,111,100,117,99,101,32,116,104,105,115,44,32,112,108,101,97,115,101,32,101,109,97,105,108,32,98,117,103,115,64,99,111,110,116,105,110,117,111,117,115,112,104,121,115,105,99,115,46,99,111,109,10,0,0,0,0,0,115,101,97,114,99,104,32,115,112,101,99,117,108,97,116,105,118,101,32,99,111,110,116,97,99,116,115,0,0,0,0,0,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,68,97,116,97,0,0,0,0,97,100,100,83,112,101,99,117,108,97,116,105,118,101,67,111,110,116,97,99,116,115,0,0,100,101,98,117,103,68,114,97,119,87,111,114,108,100,0,0,119,111,114,108,100,32,112,111,115,32,61,32,37,46,50,102,44,37,46,50,102,44,37,46,50,102,10,0,0,0,0,0,98,111,111,108,32,84,101,115,116,83,101,112,65,120,105,115,40,99,111,110,115,116,32,98,116,67,111,110,118,101,120,80,111,108,121,104,101,100,114,111,110,32,38,44,32,99,111,110,115,116,32,98,116,67,111,110,118,101,120,80,111,108,121,104,101,100,114,111,110,32,38,44,32,99,111,110,115,116,32,98,116,84,114,97,110,115,102,111,114,109,32,38,44,32,99,111,110,115,116,32,98,116,84,114,97,110,115,102,111,114,109,32,38,44,32,99,111,110,115,116,32,98,116,86,101,99,116,111,114,51,32,38,44,32,102,108,111,97,116,32,38,41,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,40,0,0,20,1,0,0,44,0,0,0,86,0,0,0,4,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,40,0,0,84,0,0,0,42,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,40,0,0,90,0,0,0,204,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,40,0,0,116,1,0,0,90,1,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,40,0,0,196,0,0,0,104,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,40,0,0,98,1,0,0,50,1,0,0,26,0,0,0,16,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,40,0,0,8,1,0,0,40,0,0,0,74,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,40,0,0,198,0,0,0,56,1,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,40,0,0,4,0,0,0,14,0,0,0,26,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,40,0,0,122,0,0,0,30,0,0,0,26,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,0,236,0,0,0,98,0,0,0,38,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,41,0,0,114,0,0,0,158,0,0,0,10,0,0,0,76,0,0,0,2,0,0,0,32,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,41,0,0,124,0,0,0,168,0,0,0,40,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,41,0,0,22,0,0,0,184,0,0,0,40,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,41,0,0,64,1,0,0,190,0,0,0,22,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,41,0,0,32,0,0,0,180,0,0,0,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,41,0,0,94,1,0,0,240,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,41,0,0,28,0,0,0,20,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,41,0,0,228,0,0,0,248,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,41,0,0,72,0,0,0,60,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,41,0,0,82,1,0,0,92,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,41,0,0,112,0,0,0,142,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,41,0,0,150,0,0,0,100,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,41,0,0,48,1,0,0,202,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,42,0,0,102,1,0,0,220,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,42,0,0,88,1,0,0,30,1,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,42,0,0,34,0,0,0,200,0,0,0,30,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,42,0,0,20,0,0,0,34,0,0,0,80,0,0,0,100,0,0,0,126,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,42,0,0,6,0,0,0,14,1,0,0,74,0,0,0,214,0,0,0,4,0,0,0,2,0,0,0,32,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,42,0,0,112,1,0,0,38,0,0,0,56,0,0,0,2,0,0,0,30,0,0,0,162,0,0,0,2,0,0,0,6,0,0,0,2,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,42,0,0,156,0,0,0,2,0,0,0,2,0,0,0,16,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,42,0,0,54,1,0,0,70,1,0,0,24,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,42,0,0,52,0,0,0,182,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,42,0,0,146,0,0,0,62,1,0,0,26,0,0,0,8,0,0,0,98,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,42,0,0,118,1,0,0,6,1,0,0,14,0,0,0,2,0,0,0,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,0,0,88,0,0,0,224,0,0,0,32,0,0,0,36,0,0,0,40,0,0,0,20,0,0,0,74,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,43,0,0,120,1,0,0,218,0,0,0,20,0,0,0,6,0,0,0,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,43,0,0,32,1,0,0,178,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,43,0,0,106,0,0,0,250,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,43,0,0,96,1,0,0,174,0,0,0,26,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,43,0,0,144,0,0,0,38,1,0,0,10,0,0,0,22,0,0,0,48,0,0,0,6,0,0,0,24,0,0,0,60,0,0,0,14,0,0,0,14,0,0,0,24,0,0,0,68,0,0,0,62,0,0,0,12,0,0,0,58,0,0,0,36,0,0,0,82,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,43,0,0,102,0,0,0,68,1,0,0,4,0,0,0,10,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,43,0,0,10,1,0,0,22,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,43,0,0,8,0,0,0,252,0,0,0,28,0,0,0,4,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,43,0,0,58,1,0,0,26,0,0,0,40,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,43,0,0,52,1,0,0,104,1,0,0,22,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,43,0,0,84,1,0,0,238,0,0,0,52,0,0,0,70,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,43,0,0,40,1,0,0,74,1,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,43,0,0,80,0,0,0,26,1,0,0,58,0,0,0,60,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,56,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,6,0,0,0,34,0,0,0,6,0,0,0,86,0,0,0,38,0,0,0,42,0,0,0,28,0,0,0,38,0,0,0,12,0,0,0,78,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,242,0,0,0,132,0,0,0,96,0,0,0,22,0,0,0,30,0,0,0,86,1,0,0,14,0,0,0,60,0,0,0,70,0,0,0,78,0,0,0,176,0,0,0,50,0,0,0,2,0,0,0,68,0,0,0,40,0,0,0,106,0,0,0,10,0,0,0,38,0,0,0,44,0,0,0,154,0,0,0,42,0,0,0,56,0,0,0,104,0,0,0,70,0,0,0,64,0,0,0,8,0,0,0,34,0,0,0,36,0,0,0,54,0,0,0,210,0,0,0,74,0,0,0,8,0,0,0,26,0,0,0,46,0,0,0,14,0,0,0,10,0,0,0,8,0,0,0,94,0,0,0,94,0,0,0,16,0,0,0,18,0,0,0,62,0,0,0,66,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,44,0,0,66,1,0,0,82,0,0,0,16,0,0,0,12,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,44,0,0,48,0,0,0,232,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,44,0,0,18,0,0,0,18,1,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,44,0,0,42,1,0,0,110,0,0,0,10,0,0,0,52,0,0,0,2,0,0,0,32,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,44,0,0,4,1,0,0,172,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,44,0,0,254,0,0,0,16,1,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,44,0,0,186,0,0,0,208,0,0,0,58,0,0,0,60,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,56,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,6,0,0,0,34,0,0,0,6,0,0,0,86,0,0,0,38,0,0,0,2,0,0,0,2,0,0,0,38,0,0,0,12,0,0,0,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,44,0,0,46,1,0,0,36,0,0,0,8,0,0,0,2,0,0,0,12,0,0,0,100,0,0,0,8,0,0,0,16,0,0,0,44,0,0,0,44,0,0,0,16,0,0,0,48,0,0,0,26,0,0,0,70,0,0,0,12,0,0,0,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,44,0,0,216,0,0,0,114,1,0,0,20,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,44,0,0,24,0,0,0,140,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,44,0,0,138,0,0,0,2,1,0,0,10,0,0,0,6,0,0,0,2,0,0,0,32,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,44,0,0,136,0,0,0,170,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,44,0,0,230,0,0,0,108,1,0,0,10,0,0,0,80,0,0,0,2,0,0,0,32,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,45,0,0,54,0,0,0,0,1,0,0,2,0,0,0,92,0,0,0,2,0,0,0,32,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,45,0,0,70,0,0,0,212,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,45,0,0,28,1,0,0,60,1,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,45,0,0,20,0,0,0,118,0,0,0,24,1,0,0,30,0,0,0,76,0,0,0,22,0,0,0,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,45,0,0,194,0,0,0,134,0,0,0,68,0,0,0,16,0,0,0,252,255,255,255,80,45,0,0,130,0,0,0,108,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,45,0,0,16,0,0,0,222,0,0,0,34,0,0,0,50,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,45,0,0,12,0,0,0,110,1,0,0,52,0,0,0,70,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,45,0,0,116,0,0,0,160,0,0,0,38,0,0,0,14,0,0,0,88,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,45,0,0,66,0,0,0,188,0,0,0,2,0,0,0,58,0,0,0,12,0,0,0,54,0,0,0,8,0,0,0,12,0,0,0,56,0,0,0,62,0,0,0,68,0,0,0,84,0,0,0,48,0,0,0,76,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,45,0,0,128,0,0,0,106,1,0,0,96,0,0,0,22,0,0,0,30,0,0,0,78,0,0,0,14,0,0,0,60,0,0,0,8,0,0,0,24,0,0,0,176,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,45,0,0,226,0,0,0,72,1,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,45,0,0,166,0,0,0,50,0,0,0,66,0,0,0,60,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,56,0,0,0,2,0,0,0,18,0,0,0,4,0,0,0,6,0,0,0,34,0,0,0,6,0,0,0,86,0,0,0,38,0,0,0,6,0,0,0,50,0,0,0,38,0,0,0,42,0,0,0,12,0,0,0,2,0,0,0,50,0,0,0,4,0,0,0,20,0,0,0,30,0,0,0,28,0,0,0,6,0,0,0,2,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,45,0,0,120,0,0,0,10,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,0,0,46,0,0,0,76,1,0,0,10,0,0,0,60,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,56,0,0,0,6,0,0,0,16,0,0,0,12,0,0,0,2,0,0,0,34,0,0,0,6,0,0,0,86,0,0,0,46,0,0,0,18,0,0,0,34,0,0,0,38,0,0,0,12,0,0,0,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,46,0,0,206,0,0,0,78,1,0,0,2,0,0,0,60,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,10,0,0,0,14,0,0,0,86,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,46,0,0,6,0,0,0,12,1,0,0,34,1,0,0,30,0,0,0,20,0,0,0,18,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,46,0,0,148,0,0,0,86,0,0,0,48,0,0,0,60,0,0,0,4,0,0,0,2,0,0,0,64,0,0,0,56,0,0,0,8,0,0,0,72,0,0,0,2,0,0,0,6,0,0,0,34,0,0,0,6,0,0,0,86,0,0,0,72,0,0,0,64,0,0,0,46,0,0,0,38,0,0,0,46,0,0,0,8,0,0,0,2,0,0,0,22,0,0,0,38,0,0,0,18,0,0,0,54,0,0,0,52,0,0,0,62,0,0,0,4,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,90,78,51,51,98,116,77,105,110,107,111,119,115,107,105,80,101,110,101,116,114,97,116,105,111,110,68,101,112,116,104,83,111,108,118,101,114,49,50,99,97,108,99,80,101,110,68,101,112,116,104,69,82,50,50,98,116,86,111,114,111,110,111,105,83,105,109,112,108,101,120,83,111,108,118,101,114,80,75,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,83,52,95,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,55,95,82,57,98,116,86,101,99,116,111,114,51,83,57,95,83,57,95,80,49,50,98,116,73,68,101,98,117,103,68,114,97,119,80,49,50,98,116,83,116,97,99,107,65,108,108,111,99,69,50,48,98,116,73,110,116,101,114,109,101,100,105,97,116,101,82,101,115,117,108,116,0,0,0,0,0,0,0,90,78,51,51,98,116,67,111,110,118,101,120,67,111,110,99,97,118,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,50,49,99,97,108,99,117,108,97,116,101,84,105,109,101,79,102,73,109,112,97,99,116,69,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,83,49,95,82,75,49,54,98,116,68,105,115,112,97,116,99,104,101,114,73,110,102,111,80,49,54,98,116,77,97,110,105,102,111,108,100,82,101,115,117,108,116,69,51,49,76,111,99,97,108,84,114,105,97,110,103,108,101,83,112,104,101,114,101,67,97,115,116,67,97,108,108,98,97,99,107,0,0,0,90,78,50,56,98,116,72,97,115,104,101,100,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,99,104,101,51,55,114,101,109,111,118,101,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,115,67,111,110,116,97,105,110,105,110,103,80,114,111,120,121,69,80,49,55,98,116,66,114,111,97,100,112,104,97,115,101,80,114,111,120,121,80,49,50,98,116,68,105,115,112,97,116,99,104,101,114,69,49,56,82,101,109,111,118,101,80,97,105,114,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,0,90,78,50,56,98,116,72,97,115,104,101,100,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,99,104,101,49,57,99,108,101,97,110,80,114,111,120,121,70,114,111,109,80,97,105,114,115,69,80,49,55,98,116,66,114,111,97,100,112,104,97,115,101,80,114,111,120,121,80,49,50,98,116,68,105,115,112,97,116,99,104,101,114,69,49,55,67,108,101,97,110,80,97,105,114,67,97,108,108,98,97,99,107,0,0,0,90,78,50,51,98,116,68,105,115,99,114,101,116,101,68,121,110,97,109,105,99,115,87,111,114,108,100,49,54,115,111,108,118,101,67,111,110,115,116,114,97,105,110,116,115,69,82,49,57,98,116,67,111,110,116,97,99,116,83,111,108,118,101,114,73,110,102,111,69,50,55,73,110,112,108,97,99,101,83,111,108,118,101,114,73,115,108,97,110,100,67,97,108,108,98,97,99,107,0,0,0,0,0,0,90,78,50,51,98,116,67,111,110,118,101,120,67,111,110,118,101,120,65,108,103,111,114,105,116,104,109,49,54,112,114,111,99,101,115,115,67,111,108,108,105,115,105,111,110,69,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,83,49,95,82,75,49,54,98,116,68,105,115,112,97,116,99,104,101,114,73,110,102,111,80,49,54,98,116,77,97,110,105,102,111,108,100,82,101,115,117,108,116,69,49,51,98,116,68,117,109,109,121,82,101,115,117,108,116,0,0,0,0,90,78,50,50,98,116,66,118,104,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,49,55,112,101,114,102,111,114,109,67,111,110,118,101,120,99,97,115,116,69,80,49,56,98,116,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,82,75,57,98,116,86,101,99,116,111,114,51,83,52,95,83,52,95,83,52,95,69,50,49,77,121,78,111,100,101,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,0,90,78,50,50,98,116,66,118,104,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,49,52,112,101,114,102,111,114,109,82,97,121,99,97,115,116,69,80,49,56,98,116,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,82,75,57,98,116,86,101,99,116,111,114,51,83,52,95,69,50,49,77,121,78,111,100,101,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,55,111,98,106,101,99,116,81,117,101,114,121,83,105,110,103,108,101,69,80,75,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,53,95,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,80,75,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,83,53,95,82,78,83,95,50,48,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,102,69,51,50,66,114,105,100,103,101,84,114,105,97,110,103,108,101,67,111,110,118,101,120,99,97,115,116,67,97,108,108,98,97,99,107,95,48,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,55,111,98,106,101,99,116,81,117,101,114,121,83,105,110,103,108,101,69,80,75,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,53,95,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,80,75,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,83,53,95,82,78,83,95,50,48,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,102,69,51,50,66,114,105,100,103,101,84,114,105,97,110,103,108,101,67,111,110,118,101,120,99,97,115,116,67,97,108,108,98,97,99,107,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,55,111,98,106,101,99,116,81,117,101,114,121,83,105,110,103,108,101,69,80,75,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,53,95,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,80,75,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,83,53,95,82,78,83,95,50,48,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,102,69,49,52,76,111,99,97,108,73,110,102,111,65,100,100,101,114,95,49,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,51,114,97,121,84,101,115,116,83,105,110,103,108,101,69,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,50,95,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,80,75,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,83,50,95,82,78,83,95,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,69,57,82,97,121,84,101,115,116,101,114,95,49,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,51,114,97,121,84,101,115,116,83,105,110,103,108,101,69,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,50,95,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,80,75,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,83,50,95,82,78,83,95,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,69,50,57,66,114,105,100,103,101,84,114,105,97,110,103,108,101,82,97,121,99,97,115,116,67,97,108,108,98,97,99,107,95,48,0,0,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,51,114,97,121,84,101,115,116,83,105,110,103,108,101,69,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,50,95,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,80,75,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,83,50,95,82,78,83,95,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,69,50,57,66,114,105,100,103,101,84,114,105,97,110,103,108,101,82,97,121,99,97,115,116,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,51,114,97,121,84,101,115,116,83,105,110,103,108,101,69,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,50,95,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,80,75,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,83,50,95,82,78,83,95,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,69,49,53,76,111,99,97,108,73,110,102,111,65,100,100,101,114,50,0,0,0,0,0,83,116,57,116,121,112,101,95,105,110,102,111,0,0,0,0,83,116,57,101,120,99,101,112,116,105,111,110,0,0,0,0,83,116,57,98,97,100,95,97,108,108,111,99,0,0,0,0,78,54,98,116,68,98,118,116,56,73,67,111,108,108,105,100,101,69,0,0,0,0,0,0,78,51,54,98,116,68,105,115,99,114,101,116,101,67,111,108,108,105,115,105,111,110,68,101,116,101,99,116,111,114,73,110,116,101,114,102,97,99,101,54,82,101,115,117,108,116,69,0,78,51,52,98,116,83,112,104,101,114,101,84,114,105,97,110,103,108,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,78,51,51,98,116,67,111,110,118,101,120,67,111,110,99,97,118,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,55,83,119,97,112,112,101,100,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,0,0,78,51,51,98,116,67,111,110,118,101,120,67,111,110,99,97,118,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,0,78,51,50,98,116,83,112,104,101,114,101,83,112,104,101,114,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,0,0,78,51,49,98,116,67,111,110,118,101,120,80,108,97,110,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,78,50,56,98,116,67,111,109,112,111,117,110,100,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,55,83,119,97,112,112,101,100,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,78,50,56,98,116,67,111,109,112,111,117,110,100,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,78,50,54,98,116,66,111,120,66,111,120,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,78,50,53,98,116,83,105,109,117,108,97,116,105,111,110,73,115,108,97,110,100,77,97,110,97,103,101,114,49,52,73,115,108,97,110,100,67,97,108,108,98,97,99,107,69,0,0,0,78,50,51,98,116,67,111,110,118,101,120,67,111,110,118,101,120,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,78,49,54,98,116,69,109,112,116,121,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,0,0,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,55,67,108,111,115,101,115,116,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,0,0,0,0,0,0,0,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,48,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,0,0,0,0,0,0,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,0,78,49,50,98,116,67,111,110,118,101,120,67,97,115,116,49,48,67,97,115,116,82,101,115,117,108,116,69,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,0,51,54,98,116,68,105,115,99,114,101,116,101,67,111,108,108,105,115,105,111,110,68,101,116,101,99,116,111,114,73,110,116,101,114,102,97,99,101,0,0,51,53,98,116,83,101,113,117,101,110,116,105,97,108,73,109,112,117,108,115,101,67,111,110,115,116,114,97,105,110,116,83,111,108,118,101,114,0,0,0,51,52,98,116,83,112,104,101,114,101,84,114,105,97,110,103,108,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,51,52,98,116,67,108,111,115,101,115,116,78,111,116,77,101,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,0,0,0,0,51,51,98,116,77,105,110,107,111,119,115,107,105,80,101,110,101,116,114,97,116,105,111,110,68,101,112,116,104,83,111,108,118,101,114,0,0,0,0,0,51,51,98,116,67,111,110,118,101,120,67,111,110,99,97,118,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,0,51,50,98,116,83,112,104,101,114,101,83,112,104,101,114,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,51,49,98,116,73,110,116,101,114,110,97,108,84,114,105,97,110,103,108,101,73,110,100,101,120,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,51,49,98,116,68,101,102,97,117,108,116,67,111,108,108,105,115,105,111,110,67,111,110,102,105,103,117,114,97,116,105,111,110,0,0,0,0,0,0,0,51,49,98,116,67,111,110,118,101,120,80,108,97,110,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,0,51,48,98,116,71,106,107,69,112,97,80,101,110,101,116,114,97,116,105,111,110,68,101,112,116,104,83,111,108,118,101,114,0,0,0,0,0,0,0,0,51,48,98,116,67,111,110,118,101,120,80,101,110,101,116,114,97,116,105,111,110,68,101,112,116,104,83,111,108,118,101,114,0,0,0,0,0,0,0,0,51,48,98,116,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,67,114,101,97,116,101,70,117,110,99,0,0,0,0,0,0,0,0,51,48,98,116,65,99,116,105,118,97,116,105,110,103,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,0,0,50,56,98,116,84,114,105,97,110,103,108,101,67,111,110,118,101,120,99,97,115,116,67,97,108,108,98,97,99,107,0,0,50,56,98,116,72,97,115,104,101,100,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,99,104,101,0,0,50,56,98,116,67,111,109,112,111,117,110,100,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,50,55,98,116,67,111,110,116,105,110,117,111,117,115,67,111,110,118,101,120,67,111,108,108,105,115,105,111,110,0,0,0,50,54,98,116,66,111,120,66,111,120,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,50,53,98,116,84,114,105,97,110,103,108,101,82,97,121,99,97,115,116,67,97,108,108,98,97,99,107,0,0,0,0,0,50,53,98,116,83,105,109,117,108,97,116,105,111,110,73,115,108,97,110,100,77,97,110,97,103,101,114,0,0,0,0,0,50,53,98,116,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,108,108,98,97,99,107,0,0,0,0,0,50,52,98,116,80,101,114,116,117,114,98,101,100,67,111,110,116,97,99,116,82,101,115,117,108,116,0,0,0,0,0,0,50,52,98,116,67,111,110,118,101,120,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,0,0,0,0,0,0,50,52,98,116,67,111,108,108,105,115,105,111,110,67,111,110,102,105,103,117,114,97,116,105,111,110,0,0,0,0,0,0,50,52,98,116,66,114,111,97,100,112,104,97,115,101,65,97,98,98,67,97,108,108,98,97,99,107,0,0,0,0,0,0,50,51,98,116,80,111,108,121,104,101,100,114,97,108,67,111,110,118,101,120,83,104,97,112,101,0,0,0,0,0,0,0,50,51,98,116,68,105,115,99,114,101,116,101,68,121,110,97,109,105,99,115,87,111,114,108,100,0,0,0,0,0,0,0,50,51,98,116,67,111,110,118,101,120,67,111,110,118,101,120,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,0,50,51,98,116,67,111,108,108,105,115,105,111,110,80,97,105,114,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,50,51,98,116,66,114,111,97,100,112,104,97,115,101,82,97,121,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,50,50,98,116,83,117,98,115,105,109,112,108,101,120,67,111,110,118,101,120,67,97,115,116,0,0,0,0,0,0,0,0,50,50,98,116,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,99,104,101,0,0,0,0,0,0,0,0,50,50,98,116,67,111,109,112,111,117,110,100,76,101,97,102,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,0,50,50,83,112,104,101,114,101,84,114,105,97,110,103,108,101,68,101,116,101,99,116,111,114,0,0,0,0,0,0,0,0,50,49,98,116,83,105,110,103,108,101,83,119,101,101,112,67,97,108,108,98,97,99,107,0,50,49,98,116,78,111,100,101,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,50,49,98,116,67,111,110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,0,50,49,98,116,67,111,108,108,105,115,105,111,110,68,105,115,112,97,116,99,104,101,114,0,50,49,98,116,66,114,111,97,100,112,104,97,115,101,73,110,116,101,114,102,97,99,101,0,50,48,98,116,68,101,102,97,117,108,116,77,111,116,105,111,110,83,116,97,116,101,0,0,50,48,98,116,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,50,48,66,114,111,97,100,112,104,97,115,101,65,97,98,98,84,101,115,116,101,114,0,0,49,57,98,116,83,105,110,103,108,101,82,97,121,67,97,108,108,98,97,99,107,0,0,0,49,57,66,114,111,97,100,112,104,97,115,101,82,97,121,84,101,115,116,101,114,0,0,0,49,56,98,116,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,0,0,0,0,49,56,98,116,68,98,118,116,84,114,101,101,67,111,108,108,105,100,101,114,0,0,0,0,49,56,98,116,67,111,110,118,101,120,80,111,108,121,104,101,100,114,111,110,0,0,0,0,49,56,98,116,67,111,110,115,116,114,97,105,110,116,83,111,108,118,101,114,0,0,0,0,49,55,98,116,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,0,0,0,0,49,55,98,116,71,106,107,80,97,105,114,68,101,116,101,99,116,111,114,0,0,0,0,0,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,0,0,0,0,0,49,55,68,101,98,117,103,68,114,97,119,99,97,108,108,98,97,99,107,0,0,0,0,0,49,54,98,116,80,111,105,110,116,67,111,108,108,101,99,116,111,114,0,0,0,0,0,0,49,54,98,116,77,97,110,105,102,111,108,100,82,101,115,117,108,116,0,0,0,0,0,0,49,54,98,116,69,109,112,116,121,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,49,54,98,116,68,98,118,116,66,114,111,97,100,112,104,97,115,101,0,0,0,0,0,0,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,0,0,0,0,0,0,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,0,0,0,0,0,0,49,54,98,116,66,111,120,66,111,120,68,101,116,101,99,116,111,114,0,0,0,0,0,0,49,53,98,116,84,114,105,97,110,103,108,101,83,104,97,112,101,0,0,0,0,0,0,0,49,53,98,116,71,106,107,67,111,110,118,101,120,67,97,115,116,0,0,0,0,0,0,0,49,53,98,116,68,121,110,97,109,105,99,115,87,111,114,108,100,0,0,0,0,0,0,0,49,51,98,116,83,112,104,101,114,101,83,104,97,112,101,0,49,51,98,116,77,111,116,105].concat([111,110,83,116,97,116,101,0,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,0,49,50,98,116,68,105,115,112,97,116,99,104,101,114,0,0,49,50,98,116,67,111,110,118,101,120,67,97,115,116,0,0,49,49,98,116,82,105,103,105,100,66,111,100,121,0,0,0,49,48,98,116,66,111,120,83,104,97,112,101,0,0,0,0,0,0,0,0,248,19,0,0,120,41,0,0,0,0,0,0,0,0,0,0,184,20,0,0,8,45,0,0,0,0,0,0,0,0,0,0,88,21,0,0,48,45,0,0,0,0,0,0,0,0,0,0,224,21,0,0,48,45,0,0,0,0,0,0,0,0,0,0,80,22,0,0,0,42,0,0,0,0,0,0,0,0,0,0,184,22,0,0,120,41,0,0,0,0,0,0,0,0,0,0,56,23,0,0,144,44,0,0,0,0,0,0,0,0,0,0,176,23,0,0,144,44,0,0,0,0,0,0,0,0,0,0,24,24,0,0,80,43,0,0,0,0,0,0,0,0,0,0,208,24,0,0,80,43,0,0,0,0,0,0,0,0,0,0,136,25,0,0,56,42,0,0,0,0,0,0,0,0,0,0,48,26,0,0,112,41,0,0,0,0,0,0,0,0,0,0,184,26,0,0,160,43,0,0,0,0,0,0,0,0,0,0,88,27,0,0,160,43,0,0,0,0,0,0,0,0,0,0,248,27,0,0,64,42,0,0,0,0,0,0,0,0,0,0,136,28,0,0,0,0,0,0,152,28,0,0,0,0,0,0,168,28,0,0,88,41,0,0,0,0,0,0,0,0,0,0,184,28,0,0,0,0,0,0,208,28,0,0,0,0,0,0,0,29,0,0,56,43,0,0,0,0,0,0,0,0,0,0,56,29,0,0,56,43,0,0,0,0,0,0,0,0,0,0,120,29,0,0,56,43,0,0,0,0,0,0,0,0,0,0,176,29,0,0,56,43,0,0,0,0,0,0,0,0,0,0,232,29,0,0,56,43,0,0,0,0,0,0,0,0,0,0,24,30,0,0,56,43,0,0,0,0,0,0,0,0,0,0,80,30,0,0,56,43,0,0,0,0,0,0,0,0,0,0,128,30,0,0,56,43,0,0,0,0,0,0,0,0,0,0,176,30,0,0,0,0,0,0,224,30,0,0,56,43,0,0,0,0,0,0,0,0,0,0,8,31,0,0,56,43,0,0,0,0,0,0,0,0,0,0,48,31,0,0,56,42,0,0,0,0,0,0,0,0,0,0,104,31,0,0,0,0,0,0,152,31,0,0,0,0,0,0,192,31,0,0,0,0,0,0,224,31,0,0,112,42,0,0,0,0,0,0,0,0,0,0,8,32,0,0,112,42,0,0,0,0,0,0,0,0,0,0,48,32,0,0,128,42,0,0,0,0,0,0,0,0,0,0,88,32,0,0,80,41,0,0,0,0,0,0,0,0,0,0,128,32,0,0,0,0,0,0,168,32,0,0,40,45,0,0,0,0,0,0,0,0,0,0,208,32,0,0,64,43,0,0,0,0,0,0,0,0,0,0,248,32,0,0,40,42,0,0,0,0,0,0,0,0,0,0,32,33,0,0,48,43,0,0,0,0,0,0,0,0,0,0,72,33,0,0,64,43,0,0,0,0,0,0,0,0,0,0,112,33,0,0,64,43,0,0,0,0,0,0,0,0,0,0,152,33,0,0,0,0,0,0,192,33,0,0,224,43,0,0,0,0,0,0,0,0,0,0,232,33,0,0,208,44,0,0,0,0,0,0,0,0,0,0,16,34,0,0,48,43,0,0,0,0,0,0,0,0,0,0,56,34,0,0,0,0,0,0,96,34,0,0,0,0,0,0,136,34,0,0,208,44,0,0,0,0,0,0,0,0,0,0,176,34,0,0,8,45,0,0,0,0,0,0,0,0,0,0,208,34,0,0,80,44,0,0,0,0,0,0,0,0,0,0,240,34,0,0,64,43,0,0,0,0,0,0,0,0,0,0,16,35,0,0,48,46,0,0,0,0,0,0,0,0,0,0,48,35,0,0,64,43,0,0,0,0,0,0,0,0,0,0,80,35,0,0,8,45,0,0,0,0,0,0,0,0,0,0,112,35,0,0,0,0,0,0,144,35,0,0,0,0,0,0,176,35,0,0,128,45,0,0,0,0,0,0,0,0,0,0,208,35,0,0,8,45,0,0,0,0,0,0,0,0,0,0,240,35,0,0,0,0,0,0,16,36,0,0,0,0,0,0,48,36,0,0,152,44,0,0,0,0,0,0,0,0,0,0,80,36,0,0,240,45,0,0,0,0,0,0,0,0,0,0,112,36,0,0,64,43,0,0,0,0,0,0,0,0,0,0,144,36,0,0,48,45,0,0,0,0,0,0,0,0,0,0,176,36,0,0,232,43,0,0,0,0,0,0,0,0,0,0,208,36,0,0,48,46,0,0,0,0,0,0,0,0,0,0,240,36,0,0,184,43,0,0,0,0,0,0,0,0,0,0,16,37,0,0,112,41,0,0,0,0,0,0,0,0,0,0,48,37,0,0,144,42,0,0,0,0,0,0,0,0,0,0,80,37,0,0,48,44,0,0,0,0,0,0,0,0,0,0,104,37,0,0,0,0,0,0,128,37,0,0,24,46,0,0,0,0,0,0,0,0,0,0,152,37,0,0,40,46,0,0,0,0,0,0,0,0,0,0,176,37,0,0,0,0,0,0,200,37,0,0,16,46,0,0,0,0,0,0,0,0,0,0,224,37,0,0,0,0,0,0,248,37,0,0,112,41,0,0,0,0,0,0,0,0,0,0,16,38,0,0,48,44,0,0,0,0,0,0,0,0,0,0,40,38,0,0,112,41,0,0,0,0,0,0,0,0,0,0,64,38,0,0,0,0,0,0,88,38,0,0,112,41,0,0,0,0,0,0,0,0,0,0,112,38,0,0,0,0,0,0,136,38,0,0,0,0,0,0,160,38,0,0,0,0,0,0,184,38,0,0,144,42,0,0,0,0,0,0,0,0,0,0,208,38,0,0,16,9,0,0,232,38,0,0,0,0,0,0,2,0,0,0,8,45,0,0,2,0,0,0,248,42,0,0,2,4,0,0,0,0,0,0,0,39,0,0,120,41,0,0,0,0,0,0,0,0,0,0,24,39,0,0,120,41,0,0,0,0,0,0,0,0,0,0,48,39,0,0,208,44,0,0,0,0,0,0,0,0,0,0,72,39,0,0,184,44,0,0,0,0,0,0,0,0,0,0,96,39,0,0,0,0,0,0,120,39,0,0,0,0,0,0,144,39,0,0,144,42,0,0,0,0,0,0,0,0,0,0,168,39,0,0,240,43,0,0,0,0,0,0,0,0,0,0,192,39,0,0,48,46,0,0,0,0,0,0,0,0,0,0,216,39,0,0,176,45,0,0,0,0,0,0,0,0,0,0,240,39,0,0,152,44,0,0,0,0,0,0,0,0,0,0,0,40,0,0,0,0,0,0,16,40,0,0,184,45,0,0,0,0,0,0,0,0,0,0,32,40,0,0,0,0,0,0,48,40,0,0,0,0,0,0,64,40,0,0,72,45,0,0,0,0,0,0,0,0,0,0,80,40,0,0,240,43,0,0,0,0,0,0,176,55,0,0,0,0,0,0,44,1,0,0,0,0,0,0,4,0,0,0,0,0,0,0,164,0,0,0,0,0,0,0,78,0,0,0,0,0,0,0])
986 , "i8", ALLOC_NONE, Runtime.GLOBAL_BASE)
987 var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8);
988 assert(tempDoublePtr % 8 == 0);
989 function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much
990 HEAP8[tempDoublePtr] = HEAP8[ptr];
991 HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
992 HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
993 HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
994 }
995 function copyTempDouble(ptr) {
996 HEAP8[tempDoublePtr] = HEAP8[ptr];
997 HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
998 HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
999 HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
1000 HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];
1001 HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];
1002 HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];
1003 HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];
1004 }
1005 function ___gxx_personality_v0() {
1006 }
1007 function __exit(status) {
1008 // void _exit(int status);
1009 // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html
1010 Module.print('exit(' + status + ') called');
1011 Module['exit'](status);
1012 }function _exit(status) {
1013 __exit(status);
1014 }function __ZSt9terminatev() {
1015 _exit(-1234);
1016 }
1017 var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:35,EIDRM:36,ECHRNG:37,EL2NSYNC:38,EL3HLT:39,EL3RST:40,ELNRNG:41,EUNATCH:42,ENOCSI:43,EL2HLT:44,EDEADLK:45,ENOLCK:46,EBADE:50,EBADR:51,EXFULL:52,ENOANO:53,EBADRQC:54,EBADSLT:55,EDEADLOCK:56,EBFONT:57,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:74,EDOTDOT:76,EBADMSG:77,ENOTUNIQ:80,EBADFD:81,EREMCHG:82,ELIBACC:83,ELIBBAD:84,ELIBSCN:85,ELIBMAX:86,ELIBEXEC:87,ENOSYS:88,ENOTEMPTY:90,ENAMETOOLONG:91,ELOOP:92,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:106,EPROTOTYPE:107,ENOTSOCK:108,ENOPROTOOPT:109,ESHUTDOWN:110,ECONNREFUSED:111,EADDRINUSE:112,ECONNABORTED:113,ENETUNREACH:114,ENETDOWN:115,ETIMEDOUT:116,EHOSTDOWN:117,EHOSTUNREACH:118,EINPROGRESS:119,EALREADY:120,EDESTADDRREQ:121,EMSGSIZE:122,EPROTONOSUPPORT:123,ESOCKTNOSUPPORT:124,EADDRNOTAVAIL:125,ENETRESET:126,EISCONN:127,ENOTCONN:128,ETOOMANYREFS:129,EUSERS:131,EDQUOT:132,ESTALE:133,ENOTSUP:134,ENOMEDIUM:135,EILSEQ:138,EOVERFLOW:139,ECANCELED:140,ENOTRECOVERABLE:141,EOWNERDEAD:142,ESTRPIPE:143};
1018 var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"No message of desired type",36:"Identifier removed",37:"Channel number out of range",38:"Level 2 not synchronized",39:"Level 3 halted",40:"Level 3 reset",41:"Link number out of range",42:"Protocol driver not attached",43:"No CSI structure available",44:"Level 2 halted",45:"Deadlock condition",46:"No record locks available",50:"Invalid exchange",51:"Invalid request descriptor",52:"Exchange full",53:"No anode",54:"Invalid request code",55:"Invalid slot",56:"File locking deadlock error",57:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",74:"Multihop attempted",76:"Cross mount point (not really error)",77:"Trying to read unreadable message",80:"Given log. name not unique",81:"f.d. invalid for this operation",82:"Remote address changed",83:"Can access a needed shared lib",84:"Accessing a corrupted shared lib",85:".lib section in a.out corrupted",86:"Attempting to link in too many libs",87:"Attempting to exec a shared library",88:"Function not implemented",90:"Directory not empty",91:"File or path name too long",92:"Too many symbolic links",95:"Operation not supported on transport endpoint",96:"Protocol family not supported",104:"Connection reset by peer",105:"No buffer space available",106:"Address family not supported by protocol family",107:"Protocol wrong type for socket",108:"Socket operation on non-socket",109:"Protocol not available",110:"Can't send after socket shutdown",111:"Connection refused",112:"Address already in use",113:"Connection aborted",114:"Network is unreachable",115:"Network interface is not configured",116:"Connection timed out",117:"Host is down",118:"Host is unreachable",119:"Connection already in progress",120:"Socket already connected",121:"Destination address required",122:"Message too long",123:"Unknown protocol",124:"Socket type not supported",125:"Address not available",126:"Connection reset by network",127:"Socket is already connected",128:"Socket is not connected",129:"Too many references",131:"Too many users",132:"Quota exceeded",133:"Stale file handle",134:"Not supported",135:"No medium (in tape drive)",138:"Illegal byte sequence",139:"Value too large for defined data type",140:"Operation canceled",141:"State not recoverable",142:"Previous owner died",143:"Streams pipe error"};
1019 var ___errno_state=0;function ___setErrNo(value) {
1020 // For convenient setting and returning of errno.
1021 HEAP32[((___errno_state)>>2)]=value
1022 return value;
1023 }
1024 var VFS=undefined;
1025 var PATH={splitPath:function (filename) {
1026 var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
1027 return splitPathRe.exec(filename).slice(1);
1028 },normalizeArray:function (parts, allowAboveRoot) {
1029 // if the path tries to go above the root, `up` ends up > 0
1030 var up = 0;
1031 for (var i = parts.length - 1; i >= 0; i--) {
1032 var last = parts[i];
1033 if (last === '.') {
1034 parts.splice(i, 1);
1035 } else if (last === '..') {
1036 parts.splice(i, 1);
1037 up++;
1038 } else if (up) {
1039 parts.splice(i, 1);
1040 up--;
1041 }
1042 }
1043 // if the path is allowed to go above the root, restore leading ..s
1044 if (allowAboveRoot) {
1045 for (; up--; up) {
1046 parts.unshift('..');
1047 }
1048 }
1049 return parts;
1050 },normalize:function (path) {
1051 var isAbsolute = path.charAt(0) === '/',
1052 trailingSlash = path.substr(-1) === '/';
1053 // Normalize the path
1054 path = PATH.normalizeArray(path.split('/').filter(function(p) {
1055 return !!p;
1056 }), !isAbsolute).join('/');
1057 if (!path && !isAbsolute) {
1058 path = '.';
1059 }
1060 if (path && trailingSlash) {
1061 path += '/';
1062 }
1063 return (isAbsolute ? '/' : '') + path;
1064 },dirname:function (path) {
1065 var result = PATH.splitPath(path),
1066 root = result[0],
1067 dir = result[1];
1068 if (!root && !dir) {
1069 // No dirname whatsoever
1070 return '.';
1071 }
1072 if (dir) {
1073 // It has a dirname, strip trailing slash
1074 dir = dir.substr(0, dir.length - 1);
1075 }
1076 return root + dir;
1077 },basename:function (path, ext) {
1078 // EMSCRIPTEN return '/'' for '/', not an empty string
1079 if (path === '/') return '/';
1080 var f = PATH.splitPath(path)[2];
1081 if (ext && f.substr(-1 * ext.length) === ext) {
1082 f = f.substr(0, f.length - ext.length);
1083 }
1084 return f;
1085 },extname:function (path) {
1086 return PATH.splitPath(path)[3];
1087 },join:function () {
1088 var paths = Array.prototype.slice.call(arguments, 0);
1089 return PATH.normalize(paths.filter(function(p, index) {
1090 if (typeof p !== 'string') {
1091 throw new TypeError('Arguments to path.join must be strings');
1092 }
1093 return p;
1094 }).join('/'));
1095 },resolve:function () {
1096 var resolvedPath = '',
1097 resolvedAbsolute = false;
1098 for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
1099 var path = (i >= 0) ? arguments[i] : FS.cwd();
1100 // Skip empty and invalid entries
1101 if (typeof path !== 'string') {
1102 throw new TypeError('Arguments to path.resolve must be strings');
1103 } else if (!path) {
1104 continue;
1105 }
1106 resolvedPath = path + '/' + resolvedPath;
1107 resolvedAbsolute = path.charAt(0) === '/';
1108 }
1109 // At this point the path should be resolved to a full absolute path, but
1110 // handle relative paths to be safe (might happen when process.cwd() fails)
1111 resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) {
1112 return !!p;
1113 }), !resolvedAbsolute).join('/');
1114 return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
1115 },relative:function (from, to) {
1116 from = PATH.resolve(from).substr(1);
1117 to = PATH.resolve(to).substr(1);
1118 function trim(arr) {
1119 var start = 0;
1120 for (; start < arr.length; start++) {
1121 if (arr[start] !== '') break;
1122 }
1123 var end = arr.length - 1;
1124 for (; end >= 0; end--) {
1125 if (arr[end] !== '') break;
1126 }
1127 if (start > end) return [];
1128 return arr.slice(start, end - start + 1);
1129 }
1130 var fromParts = trim(from.split('/'));
1131 var toParts = trim(to.split('/'));
1132 var length = Math.min(fromParts.length, toParts.length);
1133 var samePartsLength = length;
1134 for (var i = 0; i < length; i++) {
1135 if (fromParts[i] !== toParts[i]) {
1136 samePartsLength = i;
1137 break;
1138 }
1139 }
1140 var outputParts = [];
1141 for (var i = samePartsLength; i < fromParts.length; i++) {
1142 outputParts.push('..');
1143 }
1144 outputParts = outputParts.concat(toParts.slice(samePartsLength));
1145 return outputParts.join('/');
1146 }};
1147 var TTY={ttys:[],init:function () {
1148 // https://github.com/kripken/emscripten/pull/1555
1149 // if (ENVIRONMENT_IS_NODE) {
1150 // // currently, FS.init does not distinguish if process.stdin is a file or TTY
1151 // // device, it always assumes it's a TTY device. because of this, we're forcing
1152 // // process.stdin to UTF8 encoding to at least make stdin reading compatible
1153 // // with text files until FS.init can be refactored.
1154 // process['stdin']['setEncoding']('utf8');
1155 // }
1156 },shutdown:function () {
1157 // https://github.com/kripken/emscripten/pull/1555
1158 // if (ENVIRONMENT_IS_NODE) {
1159 // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)?
1160 // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation
1161 // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists?
1162 // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle
1163 // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call
1164 // process['stdin']['pause']();
1165 // }
1166 },register:function (dev, ops) {
1167 TTY.ttys[dev] = { input: [], output: [], ops: ops };
1168 FS.registerDevice(dev, TTY.stream_ops);
1169 },stream_ops:{open:function (stream) {
1170 var tty = TTY.ttys[stream.node.rdev];
1171 if (!tty) {
1172 throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
1173 }
1174 stream.tty = tty;
1175 stream.seekable = false;
1176 },close:function (stream) {
1177 // flush any pending line data
1178 if (stream.tty.output.length) {
1179 stream.tty.ops.put_char(stream.tty, 10);
1180 }
1181 },read:function (stream, buffer, offset, length, pos /* ignored */) {
1182 if (!stream.tty || !stream.tty.ops.get_char) {
1183 throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
1184 }
1185 var bytesRead = 0;
1186 for (var i = 0; i < length; i++) {
1187 var result;
1188 try {
1189 result = stream.tty.ops.get_char(stream.tty);
1190 } catch (e) {
1191 throw new FS.ErrnoError(ERRNO_CODES.EIO);
1192 }
1193 if (result === undefined && bytesRead === 0) {
1194 throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
1195 }
1196 if (result === null || result === undefined) break;
1197 bytesRead++;
1198 buffer[offset+i] = result;
1199 }
1200 if (bytesRead) {
1201 stream.node.timestamp = Date.now();
1202 }
1203 return bytesRead;
1204 },write:function (stream, buffer, offset, length, pos) {
1205 if (!stream.tty || !stream.tty.ops.put_char) {
1206 throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
1207 }
1208 for (var i = 0; i < length; i++) {
1209 try {
1210 stream.tty.ops.put_char(stream.tty, buffer[offset+i]);
1211 } catch (e) {
1212 throw new FS.ErrnoError(ERRNO_CODES.EIO);
1213 }
1214 }
1215 if (length) {
1216 stream.node.timestamp = Date.now();
1217 }
1218 return i;
1219 }},default_tty_ops:{get_char:function (tty) {
1220 if (!tty.input.length) {
1221 var result = null;
1222 if (ENVIRONMENT_IS_NODE) {
1223 result = process['stdin']['read']();
1224 if (!result) {
1225 if (process['stdin']['_readableState'] && process['stdin']['_readableState']['ended']) {
1226 return null; // EOF
1227 }
1228 return undefined; // no data available
1229 }
1230 } else if (typeof window != 'undefined' &&
1231 typeof window.prompt == 'function') {
1232 // Browser.
1233 result = window.prompt('Input: '); // returns null on cancel
1234 if (result !== null) {
1235 result += '\n';
1236 }
1237 } else if (typeof readline == 'function') {
1238 // Command line.
1239 result = readline();
1240 if (result !== null) {
1241 result += '\n';
1242 }
1243 }
1244 if (!result) {
1245 return null;
1246 }
1247 tty.input = intArrayFromString(result, true);
1248 }
1249 return tty.input.shift();
1250 },put_char:function (tty, val) {
1251 if (val === null || val === 10) {
1252 Module['print'](tty.output.join(''));
1253 tty.output = [];
1254 } else {
1255 tty.output.push(TTY.utf8.processCChar(val));
1256 }
1257 }},default_tty1_ops:{put_char:function (tty, val) {
1258 if (val === null || val === 10) {
1259 Module['printErr'](tty.output.join(''));
1260 tty.output = [];
1261 } else {
1262 tty.output.push(TTY.utf8.processCChar(val));
1263 }
1264 }}};
1265 var MEMFS={CONTENT_OWNING:1,CONTENT_FLEXIBLE:2,CONTENT_FIXED:3,ensureFlexible:function (node) {
1266 if (node.contentMode !== MEMFS.CONTENT_FLEXIBLE) {
1267 var contents = node.contents;
1268 node.contents = Array.prototype.slice.call(contents);
1269 node.contentMode = MEMFS.CONTENT_FLEXIBLE;
1270 }
1271 },mount:function (mount) {
1272 return MEMFS.create_node(null, '/', 0040000 | 0777, 0);
1273 },create_node:function (parent, name, mode, dev) {
1274 if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
1275 // no supported
1276 throw new FS.ErrnoError(ERRNO_CODES.EPERM);
1277 }
1278 var node = FS.createNode(parent, name, mode, dev);
1279 if (FS.isDir(node.mode)) {
1280 node.node_ops = {
1281 getattr: MEMFS.node_ops.getattr,
1282 setattr: MEMFS.node_ops.setattr,
1283 lookup: MEMFS.node_ops.lookup,
1284 mknod: MEMFS.node_ops.mknod,
1285 mknod: MEMFS.node_ops.mknod,
1286 rename: MEMFS.node_ops.rename,
1287 unlink: MEMFS.node_ops.unlink,
1288 rmdir: MEMFS.node_ops.rmdir,
1289 readdir: MEMFS.node_ops.readdir,
1290 symlink: MEMFS.node_ops.symlink
1291 };
1292 node.stream_ops = {
1293 llseek: MEMFS.stream_ops.llseek
1294 };
1295 node.contents = {};
1296 } else if (FS.isFile(node.mode)) {
1297 node.node_ops = {
1298 getattr: MEMFS.node_ops.getattr,
1299 setattr: MEMFS.node_ops.setattr
1300 };
1301 node.stream_ops = {
1302 llseek: MEMFS.stream_ops.llseek,
1303 read: MEMFS.stream_ops.read,
1304 write: MEMFS.stream_ops.write,
1305 allocate: MEMFS.stream_ops.allocate,
1306 mmap: MEMFS.stream_ops.mmap
1307 };
1308 node.contents = [];
1309 node.contentMode = MEMFS.CONTENT_FLEXIBLE;
1310 } else if (FS.isLink(node.mode)) {
1311 node.node_ops = {
1312 getattr: MEMFS.node_ops.getattr,
1313 setattr: MEMFS.node_ops.setattr,
1314 readlink: MEMFS.node_ops.readlink
1315 };
1316 node.stream_ops = {};
1317 } else if (FS.isChrdev(node.mode)) {
1318 node.node_ops = {
1319 getattr: MEMFS.node_ops.getattr,
1320 setattr: MEMFS.node_ops.setattr
1321 };
1322 node.stream_ops = FS.chrdev_stream_ops;
1323 }
1324 node.timestamp = Date.now();
1325 // add the new node to the parent
1326 if (parent) {
1327 parent.contents[name] = node;
1328 }
1329 return node;
1330 },node_ops:{getattr:function (node) {
1331 var attr = {};
1332 // device numbers reuse inode numbers.
1333 attr.dev = FS.isChrdev(node.mode) ? node.id : 1;
1334 attr.ino = node.id;
1335 attr.mode = node.mode;
1336 attr.nlink = 1;
1337 attr.uid = 0;
1338 attr.gid = 0;
1339 attr.rdev = node.rdev;
1340 if (FS.isDir(node.mode)) {
1341 attr.size = 4096;
1342 } else if (FS.isFile(node.mode)) {
1343 attr.size = node.contents.length;
1344 } else if (FS.isLink(node.mode)) {
1345 attr.size = node.link.length;
1346 } else {
1347 attr.size = 0;
1348 }
1349 attr.atime = new Date(node.timestamp);
1350 attr.mtime = new Date(node.timestamp);
1351 attr.ctime = new Date(node.timestamp);
1352 // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize),
1353 // but this is not required by the standard.
1354 attr.blksize = 4096;
1355 attr.blocks = Math.ceil(attr.size / attr.blksize);
1356 return attr;
1357 },setattr:function (node, attr) {
1358 if (attr.mode !== undefined) {
1359 node.mode = attr.mode;
1360 }
1361 if (attr.timestamp !== undefined) {
1362 node.timestamp = attr.timestamp;
1363 }
1364 if (attr.size !== undefined) {
1365 MEMFS.ensureFlexible(node);
1366 var contents = node.contents;
1367 if (attr.size < contents.length) contents.length = attr.size;
1368 else while (attr.size > contents.length) contents.push(0);
1369 }
1370 },lookup:function (parent, name) {
1371 throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
1372 },mknod:function (parent, name, mode, dev) {
1373 return MEMFS.create_node(parent, name, mode, dev);
1374 },rename:function (old_node, new_dir, new_name) {
1375 // if we're overwriting a directory at new_name, make sure it's empty.
1376 if (FS.isDir(old_node.mode)) {
1377 var new_node;
1378 try {
1379 new_node = FS.lookupNode(new_dir, new_name);
1380 } catch (e) {
1381 }
1382 if (new_node) {
1383 for (var i in new_node.contents) {
1384 throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
1385 }
1386 }
1387 }
1388 // do the internal rewiring
1389 delete old_node.parent.contents[old_node.name];
1390 old_node.name = new_name;
1391 new_dir.contents[new_name] = old_node;
1392 },unlink:function (parent, name) {
1393 delete parent.contents[name];
1394 },rmdir:function (parent, name) {
1395 var node = FS.lookupNode(parent, name);
1396 for (var i in node.contents) {
1397 throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
1398 }
1399 delete parent.contents[name];
1400 },readdir:function (node) {
1401 var entries = ['.', '..']
1402 for (var key in node.contents) {
1403 if (!node.contents.hasOwnProperty(key)) {
1404 continue;
1405 }
1406 entries.push(key);
1407 }
1408 return entries;
1409 },symlink:function (parent, newname, oldpath) {
1410 var node = MEMFS.create_node(parent, newname, 0777 | 0120000, 0);
1411 node.link = oldpath;
1412 return node;
1413 },readlink:function (node) {
1414 if (!FS.isLink(node.mode)) {
1415 throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
1416 }
1417 return node.link;
1418 }},stream_ops:{read:function (stream, buffer, offset, length, position) {
1419 var contents = stream.node.contents;
1420 var size = Math.min(contents.length - position, length);
1421 if (size > 8 && contents.subarray) { // non-trivial, and typed array
1422 buffer.set(contents.subarray(position, position + size), offset);
1423 } else
1424 {
1425 for (var i = 0; i < size; i++) {
1426 buffer[offset + i] = contents[position + i];
1427 }
1428 }
1429 return size;
1430 },write:function (stream, buffer, offset, length, position, canOwn) {
1431 var node = stream.node;
1432 node.timestamp = Date.now();
1433 var contents = node.contents;
1434 if (length && contents.length === 0 && position === 0 && buffer.subarray) {
1435 // just replace it with the new data
1436 assert(buffer.length);
1437 if (canOwn && buffer.buffer === HEAP8.buffer && offset === 0) {
1438 node.contents = buffer; // this is a subarray of the heap, and we can own it
1439 node.contentMode = MEMFS.CONTENT_OWNING;
1440 } else {
1441 node.contents = new Uint8Array(buffer.subarray(offset, offset+length));
1442 node.contentMode = MEMFS.CONTENT_FIXED;
1443 }
1444 return length;
1445 }
1446 MEMFS.ensureFlexible(node);
1447 var contents = node.contents;
1448 while (contents.length < position) contents.push(0);
1449 for (var i = 0; i < length; i++) {
1450 contents[position + i] = buffer[offset + i];
1451 }
1452 return length;
1453 },llseek:function (stream, offset, whence) {
1454 var position = offset;
1455 if (whence === 1) { // SEEK_CUR.
1456 position += stream.position;
1457 } else if (whence === 2) { // SEEK_END.
1458 if (FS.isFile(stream.node.mode)) {
1459 position += stream.node.contents.length;
1460 }
1461 }
1462 if (position < 0) {
1463 throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
1464 }
1465 stream.ungotten = [];
1466 stream.position = position;
1467 return position;
1468 },allocate:function (stream, offset, length) {
1469 MEMFS.ensureFlexible(stream.node);
1470 var contents = stream.node.contents;
1471 var limit = offset + length;
1472 while (limit > contents.length) contents.push(0);
1473 },mmap:function (stream, buffer, offset, length, position, prot, flags) {
1474 if (!FS.isFile(stream.node.mode)) {
1475 throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
1476 }
1477 var ptr;
1478 var allocated;
1479 var contents = stream.node.contents;
1480 // Only make a new copy when MAP_PRIVATE is specified.
1481 if ( !(flags & 0x02) &&
1482 (contents.buffer === buffer || contents.buffer === buffer.buffer) ) {
1483 // We can't emulate MAP_SHARED when the file is not backed by the buffer
1484 // we're mapping to (e.g. the HEAP buffer).
1485 allocated = false;
1486 ptr = contents.byteOffset;
1487 } else {
1488 // Try to avoid unnecessary slices.
1489 if (position > 0 || position + length < contents.length) {
1490 if (contents.subarray) {
1491 contents = contents.subarray(position, position + length);
1492 } else {
1493 contents = Array.prototype.slice.call(contents, position, position + length);
1494 }
1495 }
1496 allocated = true;
1497 ptr = _malloc(length);
1498 if (!ptr) {
1499 throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);
1500 }
1501 buffer.set(contents, ptr);
1502 }
1503 return { ptr: ptr, allocated: allocated };
1504 }}};
1505 var _stdin=allocate(1, "i32*", ALLOC_STATIC);
1506 var _stdout=allocate(1, "i32*", ALLOC_STATIC);
1507 var _stderr=allocate(1, "i32*", ALLOC_STATIC);
1508 function _fflush(stream) {
1509 // int fflush(FILE *stream);
1510 // http://pubs.opengroup.org/onlinepubs/000095399/functions/fflush.html
1511 // we don't currently perform any user-space buffering of data
1512 }var FS={root:null,devices:[null],streams:[null],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:function ErrnoError(errno) {
1513 this.errno = errno;
1514 for (var key in ERRNO_CODES) {
1515 if (ERRNO_CODES[key] === errno) {
1516 this.code = key;
1517 break;
1518 }
1519 }
1520 this.message = ERRNO_MESSAGES[errno];
1521 },handleFSError:function (e) {
1522 if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + new Error().stack;
1523 return ___setErrNo(e.errno);
1524 },cwd:function () {
1525 return FS.currentPath;
1526 },lookupPath:function (path, opts) {
1527 path = PATH.resolve(FS.currentPath, path);
1528 opts = opts || { recurse_count: 0 };
1529 if (opts.recurse_count > 8) { // max recursive lookup of 8
1530 throw new FS.ErrnoError(ERRNO_CODES.ELOOP);
1531 }
1532 // split the path
1533 var parts = PATH.normalizeArray(path.split('/').filter(function(p) {
1534 return !!p;
1535 }), false);
1536 // start at the root
1537 var current = FS.root;
1538 var current_path = '/';
1539 for (var i = 0; i < parts.length; i++) {
1540 var islast = (i === parts.length-1);
1541 if (islast && opts.parent) {
1542 // stop resolving
1543 break;
1544 }
1545 current = FS.lookupNode(current, parts[i]);
1546 current_path = PATH.join(current_path, parts[i]);
1547 // jump to the mount's root node if this is a mountpoint
1548 if (FS.isMountpoint(current)) {
1549 current = current.mount.root;
1550 }
1551 // follow symlinks
1552 // by default, lookupPath will not follow a symlink if it is the final path component.
1553 // setting opts.follow = true will override this behavior.
1554 if (!islast || opts.follow) {
1555 var count = 0;
1556 while (FS.isLink(current.mode)) {
1557 var link = FS.readlink(current_path);
1558 current_path = PATH.resolve(PATH.dirname(current_path), link);
1559 var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count });
1560 current = lookup.node;
1561 if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX).
1562 throw new FS.ErrnoError(ERRNO_CODES.ELOOP);
1563 }
1564 }
1565 }
1566 }
1567 return { path: current_path, node: current };
1568 },getPath:function (node) {
1569 var path;
1570 while (true) {
1571 if (FS.isRoot(node)) {
1572 return path ? PATH.join(node.mount.mountpoint, path) : node.mount.mountpoint;
1573 }
1574 path = path ? PATH.join(node.name, path) : node.name;
1575 node = node.parent;
1576 }
1577 },hashName:function (parentid, name) {
1578 var hash = 0;
1579 for (var i = 0; i < name.length; i++) {
1580 hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0;
1581 }
1582 return ((parentid + hash) >>> 0) % FS.nameTable.length;
1583 },hashAddNode:function (node) {
1584 var hash = FS.hashName(node.parent.id, node.name);
1585 node.name_next = FS.nameTable[hash];
1586 FS.nameTable[hash] = node;
1587 },hashRemoveNode:function (node) {
1588 var hash = FS.hashName(node.parent.id, node.name);
1589 if (FS.nameTable[hash] === node) {
1590 FS.nameTable[hash] = node.name_next;
1591 } else {
1592 var current = FS.nameTable[hash];
1593 while (current) {
1594 if (current.name_next === node) {
1595 current.name_next = node.name_next;
1596 break;
1597 }
1598 current = current.name_next;
1599 }
1600 }
1601 },lookupNode:function (parent, name) {
1602 var err = FS.mayLookup(parent);
1603 if (err) {
1604 throw new FS.ErrnoError(err);
1605 }
1606 var hash = FS.hashName(parent.id, name);
1607 for (var node = FS.nameTable[hash]; node; node = node.name_next) {
1608 if (node.parent.id === parent.id && node.name === name) {
1609 return node;
1610 }
1611 }
1612 // if we failed to find it in the cache, call into the VFS
1613 return FS.lookup(parent, name);
1614 },createNode:function (parent, name, mode, rdev) {
1615 var node = {
1616 id: FS.nextInode++,
1617 name: name,
1618 mode: mode,
1619 node_ops: {},
1620 stream_ops: {},
1621 rdev: rdev,
1622 parent: null,
1623 mount: null
1624 };
1625 if (!parent) {
1626 parent = node; // root node sets parent to itself
1627 }
1628 node.parent = parent;
1629 node.mount = parent.mount;
1630 // compatibility
1631 var readMode = 292 | 73;
1632 var writeMode = 146;
1633 // NOTE we must use Object.defineProperties instead of individual calls to
1634 // Object.defineProperty in order to make closure compiler happy
1635 Object.defineProperties(node, {
1636 read: {
1637 get: function() { return (node.mode & readMode) === readMode; },
1638 set: function(val) { val ? node.mode |= readMode : node.mode &= ~readMode; }
1639 },
1640 write: {
1641 get: function() { return (node.mode & writeMode) === writeMode; },
1642 set: function(val) { val ? node.mode |= writeMode : node.mode &= ~writeMode; }
1643 },
1644 isFolder: {
1645 get: function() { return FS.isDir(node.mode); },
1646 },
1647 isDevice: {
1648 get: function() { return FS.isChrdev(node.mode); },
1649 },
1650 });
1651 FS.hashAddNode(node);
1652 return node;
1653 },destroyNode:function (node) {
1654 FS.hashRemoveNode(node);
1655 },isRoot:function (node) {
1656 return node === node.parent;
1657 },isMountpoint:function (node) {
1658 return node.mounted;
1659 },isFile:function (mode) {
1660 return (mode & 0170000) === 0100000;
1661 },isDir:function (mode) {
1662 return (mode & 0170000) === 0040000;
1663 },isLink:function (mode) {
1664 return (mode & 0170000) === 0120000;
1665 },isChrdev:function (mode) {
1666 return (mode & 0170000) === 0020000;
1667 },isBlkdev:function (mode) {
1668 return (mode & 0170000) === 0060000;
1669 },isFIFO:function (mode) {
1670 return (mode & 0170000) === 0010000;
1671 },isSocket:function (mode) {
1672 return (mode & 0140000) === 0140000;
1673 },flagModes:{"r":0,"rs":8192,"r+":2,"w":1537,"wx":3585,"xw":3585,"w+":1538,"wx+":3586,"xw+":3586,"a":521,"ax":2569,"xa":2569,"a+":522,"ax+":2570,"xa+":2570},modeStringToFlags:function (str) {
1674 var flags = FS.flagModes[str];
1675 if (typeof flags === 'undefined') {
1676 throw new Error('Unknown file open mode: ' + str);
1677 }
1678 return flags;
1679 },flagsToPermissionString:function (flag) {
1680 var accmode = flag & 3;
1681 var perms = ['r', 'w', 'rw'][accmode];
1682 if ((flag & 1024)) {
1683 perms += 'w';
1684 }
1685 return perms;
1686 },nodePermissions:function (node, perms) {
1687 if (FS.ignorePermissions) {
1688 return 0;
1689 }
1690 // return 0 if any user, group or owner bits are set.
1691 if (perms.indexOf('r') !== -1 && !(node.mode & 292)) {
1692 return ERRNO_CODES.EACCES;
1693 } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) {
1694 return ERRNO_CODES.EACCES;
1695 } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) {
1696 return ERRNO_CODES.EACCES;
1697 }
1698 return 0;
1699 },mayLookup:function (dir) {
1700 return FS.nodePermissions(dir, 'x');
1701 },mayCreate:function (dir, name) {
1702 try {
1703 var node = FS.lookupNode(dir, name);
1704 return ERRNO_CODES.EEXIST;
1705 } catch (e) {
1706 }
1707 return FS.nodePermissions(dir, 'wx');
1708 },mayDelete:function (dir, name, isdir) {
1709 var node;
1710 try {
1711 node = FS.lookupNode(dir, name);
1712 } catch (e) {
1713 return e.errno;
1714 }
1715 var err = FS.nodePermissions(dir, 'wx');
1716 if (err) {
1717 return err;
1718 }
1719 if (isdir) {
1720 if (!FS.isDir(node.mode)) {
1721 return ERRNO_CODES.ENOTDIR;
1722 }
1723 if (FS.isRoot(node) || FS.getPath(node) === FS.currentPath) {
1724 return ERRNO_CODES.EBUSY;
1725 }
1726 } else {
1727 if (FS.isDir(node.mode)) {
1728 return ERRNO_CODES.EISDIR;
1729 }
1730 }
1731 return 0;
1732 },mayOpen:function (node, flags) {
1733 if (!node) {
1734 return ERRNO_CODES.ENOENT;
1735 }
1736 if (FS.isLink(node.mode)) {
1737 return ERRNO_CODES.ELOOP;
1738 } else if (FS.isDir(node.mode)) {
1739 if ((flags & 3) !== 0 || // opening for write
1740 (flags & 1024)) {
1741 return ERRNO_CODES.EISDIR;
1742 }
1743 }
1744 return FS.nodePermissions(node, FS.flagsToPermissionString(flags));
1745 },MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) {
1746 fd_start = fd_start || 1;
1747 fd_end = fd_end || FS.MAX_OPEN_FDS;
1748 for (var fd = fd_start; fd <= fd_end; fd++) {
1749 if (!FS.streams[fd]) {
1750 return fd;
1751 }
1752 }
1753 throw new FS.ErrnoError(ERRNO_CODES.EMFILE);
1754 },getStream:function (fd) {
1755 return FS.streams[fd];
1756 },createStream:function (stream, fd_start, fd_end) {
1757 var fd = FS.nextfd(fd_start, fd_end);
1758 stream.fd = fd;
1759 // compatibility
1760 Object.defineProperties(stream, {
1761 object: {
1762 get: function() { return stream.node; },
1763 set: function(val) { stream.node = val; }
1764 },
1765 isRead: {
1766 get: function() { return (stream.flags & 3) !== 1; }
1767 },
1768 isWrite: {
1769 get: function() { return (stream.flags & 3) !== 0; }
1770 },
1771 isAppend: {
1772 get: function() { return (stream.flags & 8); }
1773 }
1774 });
1775 FS.streams[fd] = stream;
1776 return stream;
1777 },closeStream:function (fd) {
1778 FS.streams[fd] = null;
1779 },chrdev_stream_ops:{open:function (stream) {
1780 var device = FS.getDevice(stream.node.rdev);
1781 // override node's stream ops with the device's
1782 stream.stream_ops = device.stream_ops;
1783 // forward the open call
1784 if (stream.stream_ops.open) {
1785 stream.stream_ops.open(stream);
1786 }
1787 },llseek:function () {
1788 throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
1789 }},major:function (dev) {
1790 return ((dev) >> 8);
1791 },minor:function (dev) {
1792 return ((dev) & 0xff);
1793 },makedev:function (ma, mi) {
1794 return ((ma) << 8 | (mi));
1795 },registerDevice:function (dev, ops) {
1796 FS.devices[dev] = { stream_ops: ops };
1797 },getDevice:function (dev) {
1798 return FS.devices[dev];
1799 },mount:function (type, opts, mountpoint) {
1800 var mount = {
1801 type: type,
1802 opts: opts,
1803 mountpoint: mountpoint,
1804 root: null
1805 };
1806 var lookup;
1807 if (mountpoint) {
1808 lookup = FS.lookupPath(mountpoint, { follow: false });
1809 }
1810 // create a root node for the fs
1811 var root = type.mount(mount);
1812 root.mount = mount;
1813 mount.root = root;
1814 // assign the mount info to the mountpoint's node
1815 if (lookup) {
1816 lookup.node.mount = mount;
1817 lookup.node.mounted = true;
1818 // compatibility update FS.root if we mount to /
1819 if (mountpoint === '/') {
1820 FS.root = mount.root;
1821 }
1822 }
1823 return root;
1824 },lookup:function (parent, name) {
1825 return parent.node_ops.lookup(parent, name);
1826 },mknod:function (path, mode, dev) {
1827 var lookup = FS.lookupPath(path, { parent: true });
1828 var parent = lookup.node;
1829 var name = PATH.basename(path);
1830 var err = FS.mayCreate(parent, name);
1831 if (err) {
1832 throw new FS.ErrnoError(err);
1833 }
1834 if (!parent.node_ops.mknod) {
1835 throw new FS.ErrnoError(ERRNO_CODES.EPERM);
1836 }
1837 return parent.node_ops.mknod(parent, name, mode, dev);
1838 },create:function (path, mode) {
1839 mode = mode !== undefined ? mode : 0666;
1840 mode &= 4095;
1841 mode |= 0100000;
1842 return FS.mknod(path, mode, 0);
1843 },mkdir:function (path, mode) {
1844 mode = mode !== undefined ? mode : 0777;
1845 mode &= 511 | 0001000;
1846 mode |= 0040000;
1847 return FS.mknod(path, mode, 0);
1848 },mkdev:function (path, mode, dev) {
1849 if (typeof(dev) === 'undefined') {
1850 dev = mode;
1851 mode = 0666;
1852 }
1853 mode |= 0020000;
1854 return FS.mknod(path, mode, dev);
1855 },symlink:function (oldpath, newpath) {
1856 var lookup = FS.lookupPath(newpath, { parent: true });
1857 var parent = lookup.node;
1858 var newname = PATH.basename(newpath);
1859 var err = FS.mayCreate(parent, newname);
1860 if (err) {
1861 throw new FS.ErrnoError(err);
1862 }
1863 if (!parent.node_ops.symlink) {
1864 throw new FS.ErrnoError(ERRNO_CODES.EPERM);
1865 }
1866 return parent.node_ops.symlink(parent, newname, oldpath);
1867 },rename:function (old_path, new_path) {
1868 var old_dirname = PATH.dirname(old_path);
1869 var new_dirname = PATH.dirname(new_path);
1870 var old_name = PATH.basename(old_path);
1871 var new_name = PATH.basename(new_path);
1872 // parents must exist
1873 var lookup, old_dir, new_dir;
1874 try {
1875 lookup = FS.lookupPath(old_path, { parent: true });
1876 old_dir = lookup.node;
1877 lookup = FS.lookupPath(new_path, { parent: true });
1878 new_dir = lookup.node;
1879 } catch (e) {
1880 throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
1881 }
1882 // need to be part of the same mount
1883 if (old_dir.mount !== new_dir.mount) {
1884 throw new FS.ErrnoError(ERRNO_CODES.EXDEV);
1885 }
1886 // source must exist
1887 var old_node = FS.lookupNode(old_dir, old_name);
1888 // old path should not be an ancestor of the new path
1889 var relative = PATH.relative(old_path, new_dirname);
1890 if (relative.charAt(0) !== '.') {
1891 throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
1892 }
1893 // new path should not be an ancestor of the old path
1894 relative = PATH.relative(new_path, old_dirname);
1895 if (relative.charAt(0) !== '.') {
1896 throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
1897 }
1898 // see if the new path already exists
1899 var new_node;
1900 try {
1901 new_node = FS.lookupNode(new_dir, new_name);
1902 } catch (e) {
1903 // not fatal
1904 }
1905 // early out if nothing needs to change
1906 if (old_node === new_node) {
1907 return;
1908 }
1909 // we'll need to delete the old entry
1910 var isdir = FS.isDir(old_node.mode);
1911 var err = FS.mayDelete(old_dir, old_name, isdir);
1912 if (err) {
1913 throw new FS.ErrnoError(err);
1914 }
1915 // need delete permissions if we'll be overwriting.
1916 // need create permissions if new doesn't already exist.
1917 err = new_node ?
1918 FS.mayDelete(new_dir, new_name, isdir) :
1919 FS.mayCreate(new_dir, new_name);
1920 if (err) {
1921 throw new FS.ErrnoError(err);
1922 }
1923 if (!old_dir.node_ops.rename) {
1924 throw new FS.ErrnoError(ERRNO_CODES.EPERM);
1925 }
1926 if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) {
1927 throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
1928 }
1929 // if we are going to change the parent, check write permissions
1930 if (new_dir !== old_dir) {
1931 err = FS.nodePermissions(old_dir, 'w');
1932 if (err) {
1933 throw new FS.ErrnoError(err);
1934 }
1935 }
1936 // remove the node from the lookup hash
1937 FS.hashRemoveNode(old_node);
1938 // do the underlying fs rename
1939 try {
1940 old_dir.node_ops.rename(old_node, new_dir, new_name);
1941 } catch (e) {
1942 throw e;
1943 } finally {
1944 // add the node back to the hash (in case node_ops.rename
1945 // changed its name)
1946 FS.hashAddNode(old_node);
1947 }
1948 },rmdir:function (path) {
1949 var lookup = FS.lookupPath(path, { parent: true });
1950 var parent = lookup.node;
1951 var name = PATH.basename(path);
1952 var node = FS.lookupNode(parent, name);
1953 var err = FS.mayDelete(parent, name, true);
1954 if (err) {
1955 throw new FS.ErrnoError(err);
1956 }
1957 if (!parent.node_ops.rmdir) {
1958 throw new FS.ErrnoError(ERRNO_CODES.EPERM);
1959 }
1960 if (FS.isMountpoint(node)) {
1961 throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
1962 }
1963 parent.node_ops.rmdir(parent, name);
1964 FS.destroyNode(node);
1965 },readdir:function (path) {
1966 var lookup = FS.lookupPath(path, { follow: true });
1967 var node = lookup.node;
1968 if (!node.node_ops.readdir) {
1969 throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
1970 }
1971 return node.node_ops.readdir(node);
1972 },unlink:function (path) {
1973 var lookup = FS.lookupPath(path, { parent: true });
1974 var parent = lookup.node;
1975 var name = PATH.basename(path);
1976 var node = FS.lookupNode(parent, name);
1977 var err = FS.mayDelete(parent, name, false);
1978 if (err) {
1979 // POSIX says unlink should set EPERM, not EISDIR
1980 if (err === ERRNO_CODES.EISDIR) err = ERRNO_CODES.EPERM;
1981 throw new FS.ErrnoError(err);
1982 }
1983 if (!parent.node_ops.unlink) {
1984 throw new FS.ErrnoError(ERRNO_CODES.EPERM);
1985 }
1986 if (FS.isMountpoint(node)) {
1987 throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
1988 }
1989 parent.node_ops.unlink(parent, name);
1990 FS.destroyNode(node);
1991 },readlink:function (path) {
1992 var lookup = FS.lookupPath(path, { follow: false });
1993 var link = lookup.node;
1994 if (!link.node_ops.readlink) {
1995 throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
1996 }
1997 return link.node_ops.readlink(link);
1998 },stat:function (path, dontFollow) {
1999 var lookup = FS.lookupPath(path, { follow: !dontFollow });
2000 var node = lookup.node;
2001 if (!node.node_ops.getattr) {
2002 throw new FS.ErrnoError(ERRNO_CODES.EPERM);
2003 }
2004 return node.node_ops.getattr(node);
2005 },lstat:function (path) {
2006 return FS.stat(path, true);
2007 },chmod:function (path, mode, dontFollow) {
2008 var node;
2009 if (typeof path === 'string') {
2010 var lookup = FS.lookupPath(path, { follow: !dontFollow });
2011 node = lookup.node;
2012 } else {
2013 node = path;
2014 }
2015 if (!node.node_ops.setattr) {
2016 throw new FS.ErrnoError(ERRNO_CODES.EPERM);
2017 }
2018 node.node_ops.setattr(node, {
2019 mode: (mode & 4095) | (node.mode & ~4095),
2020 timestamp: Date.now()
2021 });
2022 },lchmod:function (path, mode) {
2023 FS.chmod(path, mode, true);
2024 },fchmod:function (fd, mode) {
2025 var stream = FS.getStream(fd);
2026 if (!stream) {
2027 throw new FS.ErrnoError(ERRNO_CODES.EBADF);
2028 }
2029 FS.chmod(stream.node, mode);
2030 },chown:function (path, uid, gid, dontFollow) {
2031 var node;
2032 if (typeof path === 'string') {
2033 var lookup = FS.lookupPath(path, { follow: !dontFollow });
2034 node = lookup.node;
2035 } else {
2036 node = path;
2037 }
2038 if (!node.node_ops.setattr) {
2039 throw new FS.ErrnoError(ERRNO_CODES.EPERM);
2040 }
2041 node.node_ops.setattr(node, {
2042 timestamp: Date.now()
2043 // we ignore the uid / gid for now
2044 });
2045 },lchown:function (path, uid, gid) {
2046 FS.chown(path, uid, gid, true);
2047 },fchown:function (fd, uid, gid) {
2048 var stream = FS.getStream(fd);
2049 if (!stream) {
2050 throw new FS.ErrnoError(ERRNO_CODES.EBADF);
2051 }
2052 FS.chown(stream.node, uid, gid);
2053 },truncate:function (path, len) {
2054 if (len < 0) {
2055 throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
2056 }
2057 var node;
2058 if (typeof path === 'string') {
2059 var lookup = FS.lookupPath(path, { follow: true });
2060 node = lookup.node;
2061 } else {
2062 node = path;
2063 }
2064 if (!node.node_ops.setattr) {
2065 throw new FS.ErrnoError(ERRNO_CODES.EPERM);
2066 }
2067 if (FS.isDir(node.mode)) {
2068 throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
2069 }
2070 if (!FS.isFile(node.mode)) {
2071 throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
2072 }
2073 var err = FS.nodePermissions(node, 'w');
2074 if (err) {
2075 throw new FS.ErrnoError(err);
2076 }
2077 node.node_ops.setattr(node, {
2078 size: len,
2079 timestamp: Date.now()
2080 });
2081 },ftruncate:function (fd, len) {
2082 var stream = FS.getStream(fd);
2083 if (!stream) {
2084 throw new FS.ErrnoError(ERRNO_CODES.EBADF);
2085 }
2086 if ((stream.flags & 3) === 0) {
2087 throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
2088 }
2089 FS.truncate(stream.node, len);
2090 },utime:function (path, atime, mtime) {
2091 var lookup = FS.lookupPath(path, { follow: true });
2092 var node = lookup.node;
2093 node.node_ops.setattr(node, {
2094 timestamp: Math.max(atime, mtime)
2095 });
2096 },open:function (path, flags, mode, fd_start, fd_end) {
2097 path = PATH.normalize(path);
2098 flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags;
2099 mode = typeof mode === 'undefined' ? 0666 : mode;
2100 if ((flags & 512)) {
2101 mode = (mode & 4095) | 0100000;
2102 } else {
2103 mode = 0;
2104 }
2105 var node;
2106 try {
2107 var lookup = FS.lookupPath(path, {
2108 follow: !(flags & 0200000)
2109 });
2110 node = lookup.node;
2111 path = lookup.path;
2112 } catch (e) {
2113 // ignore
2114 }
2115 // perhaps we need to create the node
2116 if ((flags & 512)) {
2117 if (node) {
2118 // if O_CREAT and O_EXCL are set, error out if the node already exists
2119 if ((flags & 2048)) {
2120 throw new FS.ErrnoError(ERRNO_CODES.EEXIST);
2121 }
2122 } else {
2123 // node doesn't exist, try to create it
2124 node = FS.mknod(path, mode, 0);
2125 }
2126 }
2127 if (!node) {
2128 throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
2129 }
2130 // can't truncate a device
2131 if (FS.isChrdev(node.mode)) {
2132 flags &= ~1024;
2133 }
2134 // check permissions
2135 var err = FS.mayOpen(node, flags);
2136 if (err) {
2137 throw new FS.ErrnoError(err);
2138 }
2139 // do truncation if necessary
2140 if ((flags & 1024)) {
2141 FS.truncate(node, 0);
2142 }
2143 // register the stream with the filesystem
2144 var stream = FS.createStream({
2145 path: path,
2146 node: node,
2147 flags: flags,
2148 seekable: true,
2149 position: 0,
2150 stream_ops: node.stream_ops,
2151 // used by the file family libc calls (fopen, fwrite, ferror, etc.)
2152 ungotten: [],
2153 error: false
2154 }, fd_start, fd_end);
2155 // call the new stream's open function
2156 if (stream.stream_ops.open) {
2157 stream.stream_ops.open(stream);
2158 }
2159 return stream;
2160 },close:function (stream) {
2161 try {
2162 if (stream.stream_ops.close) {
2163 stream.stream_ops.close(stream);
2164 }
2165 } catch (e) {
2166 throw e;
2167 } finally {
2168 FS.closeStream(stream.fd);
2169 }
2170 },llseek:function (stream, offset, whence) {
2171 if (!stream.seekable || !stream.stream_ops.llseek) {
2172 throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
2173 }
2174 return stream.stream_ops.llseek(stream, offset, whence);
2175 },read:function (stream, buffer, offset, length, position) {
2176 if (length < 0 || position < 0) {
2177 throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
2178 }
2179 if ((stream.flags & 3) === 1) {
2180 throw new FS.ErrnoError(ERRNO_CODES.EBADF);
2181 }
2182 if (FS.isDir(stream.node.mode)) {
2183 throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
2184 }
2185 if (!stream.stream_ops.read) {
2186 throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
2187 }
2188 var seeking = true;
2189 if (typeof position === 'undefined') {
2190 position = stream.position;
2191 seeking = false;
2192 } else if (!stream.seekable) {
2193 throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
2194 }
2195 var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);
2196 if (!seeking) stream.position += bytesRead;
2197 return bytesRead;
2198 },write:function (stream, buffer, offset, length, position, canOwn) {
2199 if (length < 0 || position < 0) {
2200 throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
2201 }
2202 if ((stream.flags & 3) === 0) {
2203 throw new FS.ErrnoError(ERRNO_CODES.EBADF);
2204 }
2205 if (FS.isDir(stream.node.mode)) {
2206 throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
2207 }
2208 if (!stream.stream_ops.write) {
2209 throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
2210 }
2211 var seeking = true;
2212 if (typeof position === 'undefined') {
2213 position = stream.position;
2214 seeking = false;
2215 } else if (!stream.seekable) {
2216 throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
2217 }
2218 if (stream.flags & 8) {
2219 // seek to the end before writing in append mode
2220 FS.llseek(stream, 0, 2);
2221 }
2222 var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);
2223 if (!seeking) stream.position += bytesWritten;
2224 return bytesWritten;
2225 },allocate:function (stream, offset, length) {
2226 if (offset < 0 || length <= 0) {
2227 throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
2228 }
2229 if ((stream.flags & 3) === 0) {
2230 throw new FS.ErrnoError(ERRNO_CODES.EBADF);
2231 }
2232 if (!FS.isFile(stream.node.mode) && !FS.isDir(node.mode)) {
2233 throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
2234 }
2235 if (!stream.stream_ops.allocate) {
2236 throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
2237 }
2238 stream.stream_ops.allocate(stream, offset, length);
2239 },mmap:function (stream, buffer, offset, length, position, prot, flags) {
2240 // TODO if PROT is PROT_WRITE, make sure we have write access
2241 if ((stream.flags & 3) === 1) {
2242 throw new FS.ErrnoError(ERRNO_CODES.EACCES);
2243 }
2244 if (!stream.stream_ops.mmap) {
2245 throw new FS.errnoError(ERRNO_CODES.ENODEV);
2246 }
2247 return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags);
2248 },ioctl:function (stream, cmd, arg) {
2249 if (!stream.stream_ops.ioctl) {
2250 throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);
2251 }
2252 return stream.stream_ops.ioctl(stream, cmd, arg);
2253 },readFile:function (path, opts) {
2254 opts = opts || {};
2255 opts.flags = opts.flags || 'r';
2256 opts.encoding = opts.encoding || 'binary';
2257 var ret;
2258 var stream = FS.open(path, opts.flags);
2259 var stat = FS.stat(path);
2260 var length = stat.size;
2261 var buf = new Uint8Array(length);
2262 FS.read(stream, buf, 0, length, 0);
2263 if (opts.encoding === 'utf8') {
2264 ret = '';
2265 var utf8 = new Runtime.UTF8Processor();
2266 for (var i = 0; i < length; i++) {
2267 ret += utf8.processCChar(buf[i]);
2268 }
2269 } else if (opts.encoding === 'binary') {
2270 ret = buf;
2271 } else {
2272 throw new Error('Invalid encoding type "' + opts.encoding + '"');
2273 }
2274 FS.close(stream);
2275 return ret;
2276 },writeFile:function (path, data, opts) {
2277 opts = opts || {};
2278 opts.flags = opts.flags || 'w';
2279 opts.encoding = opts.encoding || 'utf8';
2280 var stream = FS.open(path, opts.flags, opts.mode);
2281 if (opts.encoding === 'utf8') {
2282 var utf8 = new Runtime.UTF8Processor();
2283 var buf = new Uint8Array(utf8.processJSString(data));
2284 FS.write(stream, buf, 0, buf.length, 0);
2285 } else if (opts.encoding === 'binary') {
2286 FS.write(stream, data, 0, data.length, 0);
2287 } else {
2288 throw new Error('Invalid encoding type "' + opts.encoding + '"');
2289 }
2290 FS.close(stream);
2291 },createDefaultDirectories:function () {
2292 FS.mkdir('/tmp');
2293 },createDefaultDevices:function () {
2294 // create /dev
2295 FS.mkdir('/dev');
2296 // setup /dev/null
2297 FS.registerDevice(FS.makedev(1, 3), {
2298 read: function() { return 0; },
2299 write: function() { return 0; }
2300 });
2301 FS.mkdev('/dev/null', FS.makedev(1, 3));
2302 // setup /dev/tty and /dev/tty1
2303 // stderr needs to print output using Module['printErr']
2304 // so we register a second tty just for it.
2305 TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
2306 TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
2307 FS.mkdev('/dev/tty', FS.makedev(5, 0));
2308 FS.mkdev('/dev/tty1', FS.makedev(6, 0));
2309 // we're not going to emulate the actual shm device,
2310 // just create the tmp dirs that reside in it commonly
2311 FS.mkdir('/dev/shm');
2312 FS.mkdir('/dev/shm/tmp');
2313 },createStandardStreams:function () {
2314 // TODO deprecate the old functionality of a single
2315 // input / output callback and that utilizes FS.createDevice
2316 // and instead require a unique set of stream ops
2317 // by default, we symlink the standard streams to the
2318 // default tty devices. however, if the standard streams
2319 // have been overwritten we create a unique device for
2320 // them instead.
2321 if (Module['stdin']) {
2322 FS.createDevice('/dev', 'stdin', Module['stdin']);
2323 } else {
2324 FS.symlink('/dev/tty', '/dev/stdin');
2325 }
2326 if (Module['stdout']) {
2327 FS.createDevice('/dev', 'stdout', null, Module['stdout']);
2328 } else {
2329 FS.symlink('/dev/tty', '/dev/stdout');
2330 }
2331 if (Module['stderr']) {
2332 FS.createDevice('/dev', 'stderr', null, Module['stderr']);
2333 } else {
2334 FS.symlink('/dev/tty1', '/dev/stderr');
2335 }
2336 // open default streams for the stdin, stdout and stderr devices
2337 var stdin = FS.open('/dev/stdin', 'r');
2338 HEAP32[((_stdin)>>2)]=stdin.fd;
2339 assert(stdin.fd === 1, 'invalid handle for stdin (' + stdin.fd + ')');
2340 var stdout = FS.open('/dev/stdout', 'w');
2341 HEAP32[((_stdout)>>2)]=stdout.fd;
2342 assert(stdout.fd === 2, 'invalid handle for stdout (' + stdout.fd + ')');
2343 var stderr = FS.open('/dev/stderr', 'w');
2344 HEAP32[((_stderr)>>2)]=stderr.fd;
2345 assert(stderr.fd === 3, 'invalid handle for stderr (' + stderr.fd + ')');
2346 },staticInit:function () {
2347 FS.nameTable = new Array(4096);
2348 FS.root = FS.createNode(null, '/', 0040000 | 0777, 0);
2349 FS.mount(MEMFS, {}, '/');
2350 FS.createDefaultDirectories();
2351 FS.createDefaultDevices();
2352 },init:function (input, output, error) {
2353 assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)');
2354 FS.init.initialized = true;
2355 // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here
2356 Module['stdin'] = input || Module['stdin'];
2357 Module['stdout'] = output || Module['stdout'];
2358 Module['stderr'] = error || Module['stderr'];
2359 FS.createStandardStreams();
2360 },quit:function () {
2361 FS.init.initialized = false;
2362 for (var i = 0; i < FS.streams.length; i++) {
2363 var stream = FS.streams[i];
2364 if (!stream) {
2365 continue;
2366 }
2367 FS.close(stream);
2368 }
2369 },getMode:function (canRead, canWrite) {
2370 var mode = 0;
2371 if (canRead) mode |= 292 | 73;
2372 if (canWrite) mode |= 146;
2373 return mode;
2374 },joinPath:function (parts, forceRelative) {
2375 var path = PATH.join.apply(null, parts);
2376 if (forceRelative && path[0] == '/') path = path.substr(1);
2377 return path;
2378 },absolutePath:function (relative, base) {
2379 return PATH.resolve(base, relative);
2380 },standardizePath:function (path) {
2381 return PATH.normalize(path);
2382 },findObject:function (path, dontResolveLastLink) {
2383 var ret = FS.analyzePath(path, dontResolveLastLink);
2384 if (ret.exists) {
2385 return ret.object;
2386 } else {
2387 ___setErrNo(ret.error);
2388 return null;
2389 }
2390 },analyzePath:function (path, dontResolveLastLink) {
2391 // operate from within the context of the symlink's target
2392 try {
2393 var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
2394 path = lookup.path;
2395 } catch (e) {
2396 }
2397 var ret = {
2398 isRoot: false, exists: false, error: 0, name: null, path: null, object: null,
2399 parentExists: false, parentPath: null, parentObject: null
2400 };
2401 try {
2402 var lookup = FS.lookupPath(path, { parent: true });
2403 ret.parentExists = true;
2404 ret.parentPath = lookup.path;
2405 ret.parentObject = lookup.node;
2406 ret.name = PATH.basename(path);
2407 lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
2408 ret.exists = true;
2409 ret.path = lookup.path;
2410 ret.object = lookup.node;
2411 ret.name = lookup.node.name;
2412 ret.isRoot = lookup.path === '/';
2413 } catch (e) {
2414 ret.error = e.errno;
2415 };
2416 return ret;
2417 },createFolder:function (parent, name, canRead, canWrite) {
2418 var path = PATH.join(typeof parent === 'string' ? parent : FS.getPath(parent), name);
2419 var mode = FS.getMode(canRead, canWrite);
2420 return FS.mkdir(path, mode);
2421 },createPath:function (parent, path, canRead, canWrite) {
2422 parent = typeof parent === 'string' ? parent : FS.getPath(parent);
2423 var parts = path.split('/').reverse();
2424 while (parts.length) {
2425 var part = parts.pop();
2426 if (!part) continue;
2427 var current = PATH.join(parent, part);
2428 try {
2429 FS.mkdir(current);
2430 } catch (e) {
2431 // ignore EEXIST
2432 }
2433 parent = current;
2434 }
2435 return current;
2436 },createFile:function (parent, name, properties, canRead, canWrite) {
2437 var path = PATH.join(typeof parent === 'string' ? parent : FS.getPath(parent), name);
2438 var mode = FS.getMode(canRead, canWrite);
2439 return FS.create(path, mode);
2440 },createDataFile:function (parent, name, data, canRead, canWrite, canOwn) {
2441 var path = name ? PATH.join(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent;
2442 var mode = FS.getMode(canRead, canWrite);
2443 var node = FS.create(path, mode);
2444 if (data) {
2445 if (typeof data === 'string') {
2446 var arr = new Array(data.length);
2447 for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i);
2448 data = arr;
2449 }
2450 // make sure we can write to the file
2451 FS.chmod(path, mode | 146);
2452 var stream = FS.open(path, 'w');
2453 FS.write(stream, data, 0, data.length, 0, canOwn);
2454 FS.close(stream);
2455 FS.chmod(path, mode);
2456 }
2457 return node;
2458 },createDevice:function (parent, name, input, output) {
2459 var path = PATH.join(typeof parent === 'string' ? parent : FS.getPath(parent), name);
2460 var mode = FS.getMode(!!input, !!output);
2461 if (!FS.createDevice.major) FS.createDevice.major = 64;
2462 var dev = FS.makedev(FS.createDevice.major++, 0);
2463 // Create a fake device that a set of stream ops to emulate
2464 // the old behavior.
2465 FS.registerDevice(dev, {
2466 open: function(stream) {
2467 stream.seekable = false;
2468 },
2469 close: function(stream) {
2470 // flush any pending line data
2471 if (output && output.buffer && output.buffer.length) {
2472 output(10);
2473 }
2474 },
2475 read: function(stream, buffer, offset, length, pos /* ignored */) {
2476 var bytesRead = 0;
2477 for (var i = 0; i < length; i++) {
2478 var result;
2479 try {
2480 result = input();
2481 } catch (e) {
2482 throw new FS.ErrnoError(ERRNO_CODES.EIO);
2483 }
2484 if (result === undefined && bytesRead === 0) {
2485 throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
2486 }
2487 if (result === null || result === undefined) break;
2488 bytesRead++;
2489 buffer[offset+i] = result;
2490 }
2491 if (bytesRead) {
2492 stream.node.timestamp = Date.now();
2493 }
2494 return bytesRead;
2495 },
2496 write: function(stream, buffer, offset, length, pos) {
2497 for (var i = 0; i < length; i++) {
2498 try {
2499 output(buffer[offset+i]);
2500 } catch (e) {
2501 throw new FS.ErrnoError(ERRNO_CODES.EIO);
2502 }
2503 }
2504 if (length) {
2505 stream.node.timestamp = Date.now();
2506 }
2507 return i;
2508 }
2509 });
2510 return FS.mkdev(path, mode, dev);
2511 },createLink:function (parent, name, target, canRead, canWrite) {
2512 var path = PATH.join(typeof parent === 'string' ? parent : FS.getPath(parent), name);
2513 return FS.symlink(target, path);
2514 },forceLoadFile:function (obj) {
2515 if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;
2516 var success = true;
2517 if (typeof XMLHttpRequest !== 'undefined') {
2518 throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
2519 } else if (Module['read']) {
2520 // Command-line.
2521 try {
2522 // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as
2523 // read() will try to parse UTF8.
2524 obj.contents = intArrayFromString(Module['read'](obj.url), true);
2525 } catch (e) {
2526 success = false;
2527 }
2528 } else {
2529 throw new Error('Cannot load without read() or XMLHttpRequest.');
2530 }
2531 if (!success) ___setErrNo(ERRNO_CODES.EIO);
2532 return success;
2533 },createLazyFile:function (parent, name, url, canRead, canWrite) {
2534 if (typeof XMLHttpRequest !== 'undefined') {
2535 if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc';
2536 // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse.
2537 var LazyUint8Array = function() {
2538 this.lengthKnown = false;
2539 this.chunks = []; // Loaded chunks. Index is the chunk number
2540 }
2541 LazyUint8Array.prototype.get = function(idx) {
2542 if (idx > this.length-1 || idx < 0) {
2543 return undefined;
2544 }
2545 var chunkOffset = idx % this.chunkSize;
2546 var chunkNum = Math.floor(idx / this.chunkSize);
2547 return this.getter(chunkNum)[chunkOffset];
2548 }
2549 LazyUint8Array.prototype.setDataGetter = function(getter) {
2550 this.getter = getter;
2551 }
2552 LazyUint8Array.prototype.cacheLength = function() {
2553 // Find length
2554 var xhr = new XMLHttpRequest();
2555 xhr.open('HEAD', url, false);
2556 xhr.send(null);
2557 if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
2558 var datalength = Number(xhr.getResponseHeader("Content-length"));
2559 var header;
2560 var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
2561 var chunkSize = 1024*1024; // Chunk size in bytes
2562 if (!hasByteServing) chunkSize = datalength;
2563 // Function to get a range from the remote URL.
2564 var doXHR = (function(from, to) {
2565 if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!");
2566 if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!");
2567 // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available.
2568 var xhr = new XMLHttpRequest();
2569 xhr.open('GET', url, false);
2570 if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
2571 // Some hints to the browser that we want binary data.
2572 if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer';
2573 if (xhr.overrideMimeType) {
2574 xhr.overrideMimeType('text/plain; charset=x-user-defined');
2575 }
2576 xhr.send(null);
2577 if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
2578 if (xhr.response !== undefined) {
2579 return new Uint8Array(xhr.response || []);
2580 } else {
2581 return intArrayFromString(xhr.responseText || '', true);
2582 }
2583 });
2584 var lazyArray = this;
2585 lazyArray.setDataGetter(function(chunkNum) {
2586 var start = chunkNum * chunkSize;
2587 var end = (chunkNum+1) * chunkSize - 1; // including this byte
2588 end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block
2589 if (typeof(lazyArray.chunks[chunkNum]) === "undefined") {
2590 lazyArray.chunks[chunkNum] = doXHR(start, end);
2591 }
2592 if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!");
2593 return lazyArray.chunks[chunkNum];
2594 });
2595 this._length = datalength;
2596 this._chunkSize = chunkSize;
2597 this.lengthKnown = true;
2598 }
2599 var lazyArray = new LazyUint8Array();
2600 Object.defineProperty(lazyArray, "length", {
2601 get: function() {
2602 if(!this.lengthKnown) {
2603 this.cacheLength();
2604 }
2605 return this._length;
2606 }
2607 });
2608 Object.defineProperty(lazyArray, "chunkSize", {
2609 get: function() {
2610 if(!this.lengthKnown) {
2611 this.cacheLength();
2612 }
2613 return this._chunkSize;
2614 }
2615 });
2616 var properties = { isDevice: false, contents: lazyArray };
2617 } else {
2618 var properties = { isDevice: false, url: url };
2619 }
2620 var node = FS.createFile(parent, name, properties, canRead, canWrite);
2621 // This is a total hack, but I want to get this lazy file code out of the
2622 // core of MEMFS. If we want to keep this lazy file concept I feel it should
2623 // be its own thin LAZYFS proxying calls to MEMFS.
2624 if (properties.contents) {
2625 node.contents = properties.contents;
2626 } else if (properties.url) {
2627 node.contents = null;
2628 node.url = properties.url;
2629 }
2630 // override each stream op with one that tries to force load the lazy file first
2631 var stream_ops = {};
2632 var keys = Object.keys(node.stream_ops);
2633 keys.forEach(function(key) {
2634 var fn = node.stream_ops[key];
2635 stream_ops[key] = function() {
2636 if (!FS.forceLoadFile(node)) {
2637 throw new FS.ErrnoError(ERRNO_CODES.EIO);
2638 }
2639 return fn.apply(null, arguments);
2640 };
2641 });
2642 // use a custom read function
2643 stream_ops.read = function(stream, buffer, offset, length, position) {
2644 if (!FS.forceLoadFile(node)) {
2645 throw new FS.ErrnoError(ERRNO_CODES.EIO);
2646 }
2647 var contents = stream.node.contents;
2648 var size = Math.min(contents.length - position, length);
2649 if (contents.slice) { // normal array
2650 for (var i = 0; i < size; i++) {
2651 buffer[offset + i] = contents[position + i];
2652 }
2653 } else {
2654 for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR
2655 buffer[offset + i] = contents.get(position + i);
2656 }
2657 }
2658 return size;
2659 };
2660 node.stream_ops = stream_ops;
2661 return node;
2662 },createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn) {
2663 Browser.init();
2664 // TODO we should allow people to just pass in a complete filename instead
2665 // of parent and name being that we just join them anyways
2666 var fullname = name ? PATH.resolve(PATH.join(parent, name)) : parent;
2667 function processData(byteArray) {
2668 function finish(byteArray) {
2669 if (!dontCreateFile) {
2670 FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);
2671 }
2672 if (onload) onload();
2673 removeRunDependency('cp ' + fullname);
2674 }
2675 var handled = false;
2676 Module['preloadPlugins'].forEach(function(plugin) {
2677 if (handled) return;
2678 if (plugin['canHandle'](fullname)) {
2679 plugin['handle'](byteArray, fullname, finish, function() {
2680 if (onerror) onerror();
2681 removeRunDependency('cp ' + fullname);
2682 });
2683 handled = true;
2684 }
2685 });
2686 if (!handled) finish(byteArray);
2687 }
2688 addRunDependency('cp ' + fullname);
2689 if (typeof url == 'string') {
2690 Browser.asyncLoad(url, function(byteArray) {
2691 processData(byteArray);
2692 }, onerror);
2693 } else {
2694 processData(url);
2695 }
2696 },indexedDB:function () {
2697 return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
2698 },DB_NAME:function () {
2699 return 'EM_FS_' + window.location.pathname;
2700 },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) {
2701 onload = onload || function(){};
2702 onerror = onerror || function(){};
2703 var indexedDB = FS.indexedDB();
2704 try {
2705 var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
2706 } catch (e) {
2707 return onerror(e);
2708 }
2709 openRequest.onupgradeneeded = function() {
2710 console.log('creating db');
2711 var db = openRequest.result;
2712 db.createObjectStore(FS.DB_STORE_NAME);
2713 };
2714 openRequest.onsuccess = function() {
2715 var db = openRequest.result;
2716 var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite');
2717 var files = transaction.objectStore(FS.DB_STORE_NAME);
2718 var ok = 0, fail = 0, total = paths.length;
2719 function finish() {
2720 if (fail == 0) onload(); else onerror();
2721 }
2722 paths.forEach(function(path) {
2723 var putRequest = files.put(FS.analyzePath(path).object.contents, path);
2724 putRequest.onsuccess = function() { ok++; if (ok + fail == total) finish() };
2725 putRequest.onerror = function() { fail++; if (ok + fail == total) finish() };
2726 });
2727 transaction.onerror = onerror;
2728 };
2729 openRequest.onerror = onerror;
2730 },loadFilesFromDB:function (paths, onload, onerror) {
2731 onload = onload || function(){};
2732 onerror = onerror || function(){};
2733 var indexedDB = FS.indexedDB();
2734 try {
2735 var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
2736 } catch (e) {
2737 return onerror(e);
2738 }
2739 openRequest.onupgradeneeded = onerror; // no database to load from
2740 openRequest.onsuccess = function() {
2741 var db = openRequest.result;
2742 try {
2743 var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly');
2744 } catch(e) {
2745 onerror(e);
2746 return;
2747 }
2748 var files = transaction.objectStore(FS.DB_STORE_NAME);
2749 var ok = 0, fail = 0, total = paths.length;
2750 function finish() {
2751 if (fail == 0) onload(); else onerror();
2752 }
2753 paths.forEach(function(path) {
2754 var getRequest = files.get(path);
2755 getRequest.onsuccess = function() {
2756 if (FS.analyzePath(path).exists) {
2757 FS.unlink(path);
2758 }
2759 FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);
2760 ok++;
2761 if (ok + fail == total) finish();
2762 };
2763 getRequest.onerror = function() { fail++; if (ok + fail == total) finish() };
2764 });
2765 transaction.onerror = onerror;
2766 };
2767 openRequest.onerror = onerror;
2768 }};
2769 var SOCKFS={mount:function (mount) {
2770 return FS.createNode(null, '/', 0040000 | 0777, 0);
2771 },nextname:function () {
2772 if (!SOCKFS.nextname.current) {
2773 SOCKFS.nextname.current = 0;
2774 }
2775 return 'socket[' + (SOCKFS.nextname.current++) + ']';
2776 },createSocket:function (family, type, protocol) {
2777 var streaming = type == 1;
2778 if (protocol) {
2779 assert(streaming == (protocol == 6)); // if SOCK_STREAM, must be tcp
2780 }
2781 // create our internal socket structure
2782 var sock = {
2783 family: family,
2784 type: type,
2785 protocol: protocol,
2786 server: null,
2787 peers: {},
2788 pending: [],
2789 recv_queue: [],
2790 sock_ops: SOCKFS.websocket_sock_ops
2791 };
2792 // create the filesystem node to store the socket structure
2793 var name = SOCKFS.nextname();
2794 var node = FS.createNode(SOCKFS.root, name, 0140000, 0);
2795 node.sock = sock;
2796 // and the wrapping stream that enables library functions such
2797 // as read and write to indirectly interact with the socket
2798 var stream = FS.createStream({
2799 path: name,
2800 node: node,
2801 flags: FS.modeStringToFlags('r+'),
2802 seekable: false,
2803 stream_ops: SOCKFS.stream_ops
2804 });
2805 // map the new stream to the socket structure (sockets have a 1:1
2806 // relationship with a stream)
2807 sock.stream = stream;
2808 return sock;
2809 },getSocket:function (fd) {
2810 var stream = FS.getStream(fd);
2811 if (!stream || !FS.isSocket(stream.node.mode)) {
2812 return null;
2813 }
2814 return stream.node.sock;
2815 },stream_ops:{poll:function (stream) {
2816 var sock = stream.node.sock;
2817 return sock.sock_ops.poll(sock);
2818 },ioctl:function (stream, request, varargs) {
2819 var sock = stream.node.sock;
2820 return sock.sock_ops.ioctl(sock, request, varargs);
2821 },read:function (stream, buffer, offset, length, position /* ignored */) {
2822 var sock = stream.node.sock;
2823 var msg = sock.sock_ops.recvmsg(sock, length);
2824 if (!msg) {
2825 // socket is closed
2826 return 0;
2827 }
2828 buffer.set(msg.buffer, offset);
2829 return msg.buffer.length;
2830 },write:function (stream, buffer, offset, length, position /* ignored */) {
2831 var sock = stream.node.sock;
2832 return sock.sock_ops.sendmsg(sock, buffer, offset, length);
2833 },close:function (stream) {
2834 var sock = stream.node.sock;
2835 sock.sock_ops.close(sock);
2836 }},websocket_sock_ops:{createPeer:function (sock, addr, port) {
2837 var ws;
2838 if (typeof addr === 'object') {
2839 ws = addr;
2840 addr = null;
2841 port = null;
2842 }
2843 if (ws) {
2844 // for sockets that've already connected (e.g. we're the server)
2845 // we can inspect the _socket property for the address
2846 if (ws._socket) {
2847 addr = ws._socket.remoteAddress;
2848 port = ws._socket.remotePort;
2849 }
2850 // if we're just now initializing a connection to the remote,
2851 // inspect the url property
2852 else {
2853 var result = /ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);
2854 if (!result) {
2855 throw new Error('WebSocket URL must be in the format ws(s)://address:port');
2856 }
2857 addr = result[1];
2858 port = parseInt(result[2], 10);
2859 }
2860 } else {
2861 // create the actual websocket object and connect
2862 try {
2863 var url = 'ws://' + addr + ':' + port;
2864 // the node ws library API is slightly different than the browser's
2865 var opts = ENVIRONMENT_IS_NODE ? {} : ['binary'];
2866 ws = new WebSocket(url, opts);
2867 ws.binaryType = 'arraybuffer';
2868 } catch (e) {
2869 throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH);
2870 }
2871 }
2872 var peer = {
2873 addr: addr,
2874 port: port,
2875 socket: ws,
2876 dgram_send_queue: []
2877 };
2878 SOCKFS.websocket_sock_ops.addPeer(sock, peer);
2879 SOCKFS.websocket_sock_ops.handlePeerEvents(sock, peer);
2880 // if this is a bound dgram socket, send the port number first to allow
2881 // us to override the ephemeral port reported to us by remotePort on the
2882 // remote end.
2883 if (sock.type === 2 && typeof sock.sport !== 'undefined') {
2884 peer.dgram_send_queue.push(new Uint8Array([
2885 255, 255, 255, 255,
2886 'p'.charCodeAt(0), 'o'.charCodeAt(0), 'r'.charCodeAt(0), 't'.charCodeAt(0),
2887 ((sock.sport & 0xff00) >> 8) , (sock.sport & 0xff)
2888 ]));
2889 }
2890 return peer;
2891 },getPeer:function (sock, addr, port) {
2892 return sock.peers[addr + ':' + port];
2893 },addPeer:function (sock, peer) {
2894 sock.peers[peer.addr + ':' + peer.port] = peer;
2895 },removePeer:function (sock, peer) {
2896 delete sock.peers[peer.addr + ':' + peer.port];
2897 },handlePeerEvents:function (sock, peer) {
2898 var first = true;
2899 var handleOpen = function () {
2900 try {
2901 var queued = peer.dgram_send_queue.shift();
2902 while (queued) {
2903 peer.socket.send(queued);
2904 queued = peer.dgram_send_queue.shift();
2905 }
2906 } catch (e) {
2907 // not much we can do here in the way of proper error handling as we've already
2908 // lied and said this data was sent. shut it down.
2909 peer.socket.close();
2910 }
2911 };
2912 var handleMessage = function(data) {
2913 assert(typeof data !== 'string' && data.byteLength !== undefined); // must receive an ArrayBuffer
2914 data = new Uint8Array(data); // make a typed array view on the array buffer
2915 // if this is the port message, override the peer's port with it
2916 var wasfirst = first;
2917 first = false;
2918 if (wasfirst &&
2919 data.length === 10 &&
2920 data[0] === 255 && data[1] === 255 && data[2] === 255 && data[3] === 255 &&
2921 data[4] === 'p'.charCodeAt(0) && data[5] === 'o'.charCodeAt(0) && data[6] === 'r'.charCodeAt(0) && data[7] === 't'.charCodeAt(0)) {
2922 // update the peer's port and it's key in the peer map
2923 var newport = ((data[8] << 8) | data[9]);
2924 SOCKFS.websocket_sock_ops.removePeer(sock, peer);
2925 peer.port = newport;
2926 SOCKFS.websocket_sock_ops.addPeer(sock, peer);
2927 return;
2928 }
2929 sock.recv_queue.push({ addr: peer.addr, port: peer.port, data: data });
2930 };
2931 if (ENVIRONMENT_IS_NODE) {
2932 peer.socket.on('open', handleOpen);
2933 peer.socket.on('message', function(data, flags) {
2934 if (!flags.binary) {
2935 return;
2936 }
2937 handleMessage((new Uint8Array(data)).buffer); // copy from node Buffer -> ArrayBuffer
2938 });
2939 peer.socket.on('error', function() {
2940 // don't throw
2941 });
2942 } else {
2943 peer.socket.onopen = handleOpen;
2944 peer.socket.onmessage = function(event) {
2945 handleMessage(event.data);
2946 };
2947 }
2948 },poll:function (sock) {
2949 if (sock.type === 1 && sock.server) {
2950 // listen sockets should only say they're available for reading
2951 // if there are pending clients.
2952 return sock.pending.length ? (0 /* XXX missing C define POLLRDNORM */ | 1) : 0;
2953 }
2954 var mask = 0;
2955 var dest = sock.type === 1 ? // we only care about the socket state for connection-based sockets
2956 SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport) :
2957 null;
2958 if (sock.recv_queue.length ||
2959 !dest || // connection-less sockets are always ready to read
2960 (dest && dest.socket.readyState === dest.socket.CLOSING) ||
2961 (dest && dest.socket.readyState === dest.socket.CLOSED)) { // let recv return 0 once closed
2962 mask |= (0 /* XXX missing C define POLLRDNORM */ | 1);
2963 }
2964 if (!dest || // connection-less sockets are always ready to write
2965 (dest && dest.socket.readyState === dest.socket.OPEN)) {
2966 mask |= 2;
2967 }
2968 if ((dest && dest.socket.readyState === dest.socket.CLOSING) ||
2969 (dest && dest.socket.readyState === dest.socket.CLOSED)) {
2970 mask |= 16;
2971 }
2972 return mask;
2973 },ioctl:function (sock, request, arg) {
2974 switch (request) {
2975 case 1:
2976 var bytes = 0;
2977 if (sock.recv_queue.length) {
2978 bytes = sock.recv_queue[0].data.length;
2979 }
2980 HEAP32[((arg)>>2)]=bytes;
2981 return 0;
2982 default:
2983 return ERRNO_CODES.EINVAL;
2984 }
2985 },close:function (sock) {
2986 // if we've spawned a listen server, close it
2987 if (sock.server) {
2988 try {
2989 sock.server.close();
2990 } catch (e) {
2991 }
2992 sock.server = null;
2993 }
2994 // close any peer connections
2995 var peers = Object.keys(sock.peers);
2996 for (var i = 0; i < peers.length; i++) {
2997 var peer = sock.peers[peers[i]];
2998 try {
2999 peer.socket.close();
3000 } catch (e) {
3001 }
3002 SOCKFS.websocket_sock_ops.removePeer(sock, peer);
3003 }
3004 return 0;
3005 },bind:function (sock, addr, port) {
3006 if (typeof sock.saddr !== 'undefined' || typeof sock.sport !== 'undefined') {
3007 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already bound
3008 }
3009 sock.saddr = addr;
3010 sock.sport = port || _mkport();
3011 // in order to emulate dgram sockets, we need to launch a listen server when
3012 // binding on a connection-less socket
3013 // note: this is only required on the server side
3014 if (sock.type === 2) {
3015 // close the existing server if it exists
3016 if (sock.server) {
3017 sock.server.close();
3018 sock.server = null;
3019 }
3020 // swallow error operation not supported error that occurs when binding in the
3021 // browser where this isn't supported
3022 try {
3023 sock.sock_ops.listen(sock, 0);
3024 } catch (e) {
3025 if (!(e instanceof FS.ErrnoError)) throw e;
3026 if (e.errno !== ERRNO_CODES.EOPNOTSUPP) throw e;
3027 }
3028 }
3029 },connect:function (sock, addr, port) {
3030 if (sock.server) {
3031 throw new FS.ErrnoError(ERRNO_CODS.EOPNOTSUPP);
3032 }
3033 // TODO autobind
3034 // if (!sock.addr && sock.type == 2) {
3035 // }
3036 // early out if we're already connected / in the middle of connecting
3037 if (typeof sock.daddr !== 'undefined' && typeof sock.dport !== 'undefined') {
3038 var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport);
3039 if (dest) {
3040 if (dest.socket.readyState === dest.socket.CONNECTING) {
3041 throw new FS.ErrnoError(ERRNO_CODES.EALREADY);
3042 } else {
3043 throw new FS.ErrnoError(ERRNO_CODES.EISCONN);
3044 }
3045 }
3046 }
3047 // add the socket to our peer list and set our
3048 // destination address / port to match
3049 var peer = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port);
3050 sock.daddr = peer.addr;
3051 sock.dport = peer.port;
3052 // always "fail" in non-blocking mode
3053 throw new FS.ErrnoError(ERRNO_CODES.EINPROGRESS);
3054 },listen:function (sock, backlog) {
3055 if (!ENVIRONMENT_IS_NODE) {
3056 throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
3057 }
3058 if (sock.server) {
3059 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already listening
3060 }
3061 var WebSocketServer = require('ws').Server;
3062 var host = sock.saddr;
3063 sock.server = new WebSocketServer({
3064 host: host,
3065 port: sock.sport
3066 // TODO support backlog
3067 });
3068 sock.server.on('connection', function(ws) {
3069 if (sock.type === 1) {
3070 var newsock = SOCKFS.createSocket(sock.family, sock.type, sock.protocol);
3071 // create a peer on the new socket
3072 var peer = SOCKFS.websocket_sock_ops.createPeer(newsock, ws);
3073 newsock.daddr = peer.addr;
3074 newsock.dport = peer.port;
3075 // push to queue for accept to pick up
3076 sock.pending.push(newsock);
3077 } else {
3078 // create a peer on the listen socket so calling sendto
3079 // with the listen socket and an address will resolve
3080 // to the correct client
3081 SOCKFS.websocket_sock_ops.createPeer(sock, ws);
3082 }
3083 });
3084 sock.server.on('closed', function() {
3085 sock.server = null;
3086 });
3087 sock.server.on('error', function() {
3088 // don't throw
3089 });
3090 },accept:function (listensock) {
3091 if (!listensock.server) {
3092 throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
3093 }
3094 var newsock = listensock.pending.shift();
3095 newsock.stream.flags = listensock.stream.flags;
3096 return newsock;
3097 },getname:function (sock, peer) {
3098 var addr, port;
3099 if (peer) {
3100 if (sock.daddr === undefined || sock.dport === undefined) {
3101 throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
3102 }
3103 addr = sock.daddr;
3104 port = sock.dport;
3105 } else {
3106 // TODO saddr and sport will be set for bind()'d UDP sockets, but what
3107 // should we be returning for TCP sockets that've been connect()'d?
3108 addr = sock.saddr || 0;
3109 port = sock.sport || 0;
3110 }
3111 return { addr: addr, port: port };
3112 },sendmsg:function (sock, buffer, offset, length, addr, port) {
3113 if (sock.type === 2) {
3114 // connection-less sockets will honor the message address,
3115 // and otherwise fall back to the bound destination address
3116 if (addr === undefined || port === undefined) {
3117 addr = sock.daddr;
3118 port = sock.dport;
3119 }
3120 // if there was no address to fall back to, error out
3121 if (addr === undefined || port === undefined) {
3122 throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ);
3123 }
3124 } else {
3125 // connection-based sockets will only use the bound
3126 addr = sock.daddr;
3127 port = sock.dport;
3128 }
3129 // find the peer for the destination address
3130 var dest = SOCKFS.websocket_sock_ops.getPeer(sock, addr, port);
3131 // early out if not connected with a connection-based socket
3132 if (sock.type === 1) {
3133 if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
3134 throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
3135 } else if (dest.socket.readyState === dest.socket.CONNECTING) {
3136 throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
3137 }
3138 }
3139 // create a copy of the incoming data to send, as the WebSocket API
3140 // doesn't work entirely with an ArrayBufferView, it'll just send
3141 // the entire underlying buffer
3142 var data;
3143 if (buffer instanceof Array || buffer instanceof ArrayBuffer) {
3144 data = buffer.slice(offset, offset + length);
3145 } else { // ArrayBufferView
3146 data = buffer.buffer.slice(buffer.byteOffset + offset, buffer.byteOffset + offset + length);
3147 }
3148 // if we're emulating a connection-less dgram socket and don't have
3149 // a cached connection, queue the buffer to send upon connect and
3150 // lie, saying the data was sent now.
3151 if (sock.type === 2) {
3152 if (!dest || dest.socket.readyState !== dest.socket.OPEN) {
3153 // if we're not connected, open a new connection
3154 if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
3155 dest = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port);
3156 }
3157 dest.dgram_send_queue.push(data);
3158 return length;
3159 }
3160 }
3161 try {
3162 // send the actual data
3163 dest.socket.send(data);
3164 return length;
3165 } catch (e) {
3166 throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
3167 }
3168 },recvmsg:function (sock, length) {
3169 // http://pubs.opengroup.org/onlinepubs/7908799/xns/recvmsg.html
3170 if (sock.type === 1 && sock.server) {
3171 // tcp servers should not be recv()'ing on the listen socket
3172 throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
3173 }
3174 var queued = sock.recv_queue.shift();
3175 if (!queued) {
3176 if (sock.type === 1) {
3177 var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport);
3178 if (!dest) {
3179 // if we have a destination address but are not connected, error out
3180 throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
3181 }
3182 else if (dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
3183 // return null if the socket has closed
3184 return null;
3185 }
3186 else {
3187 // else, our socket is in a valid state but truly has nothing available
3188 throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
3189 }
3190 } else {
3191 throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
3192 }
3193 }
3194 // queued.data will be an ArrayBuffer if it's unadulterated, but if it's
3195 // requeued TCP data it'll be an ArrayBufferView
3196 var queuedLength = queued.data.byteLength || queued.data.length;
3197 var queuedOffset = queued.data.byteOffset || 0;
3198 var queuedBuffer = queued.data.buffer || queued.data;
3199 var bytesRead = Math.min(length, queuedLength);
3200 var res = {
3201 buffer: new Uint8Array(queuedBuffer, queuedOffset, bytesRead),
3202 addr: queued.addr,
3203 port: queued.port
3204 };
3205 // push back any unread data for TCP connections
3206 if (sock.type === 1 && bytesRead < queuedLength) {
3207 var bytesRemaining = queuedLength - bytesRead;
3208 queued.data = new Uint8Array(queuedBuffer, queuedOffset + bytesRead, bytesRemaining);
3209 sock.recv_queue.unshift(queued);
3210 }
3211 return res;
3212 }}};function _send(fd, buf, len, flags) {
3213 var sock = SOCKFS.getSocket(fd);
3214 if (!sock) {
3215 ___setErrNo(ERRNO_CODES.EBADF);
3216 return -1;
3217 }
3218 // TODO honor flags
3219 return _write(fd, buf, len);
3220 }
3221 function _pwrite(fildes, buf, nbyte, offset) {
3222 // ssize_t pwrite(int fildes, const void *buf, size_t nbyte, off_t offset);
3223 // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html
3224 var stream = FS.getStream(fildes);
3225 if (!stream) {
3226 ___setErrNo(ERRNO_CODES.EBADF);
3227 return -1;
3228 }
3229 try {
3230 var slab = HEAP8;
3231 return FS.write(stream, slab, buf, nbyte, offset);
3232 } catch (e) {
3233 FS.handleFSError(e);
3234 return -1;
3235 }
3236 }function _write(fildes, buf, nbyte) {
3237 // ssize_t write(int fildes, const void *buf, size_t nbyte);
3238 // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html
3239 var stream = FS.getStream(fildes);
3240 if (!stream) {
3241 ___setErrNo(ERRNO_CODES.EBADF);
3242 return -1;
3243 }
3244 try {
3245 var slab = HEAP8;
3246 return FS.write(stream, slab, buf, nbyte);
3247 } catch (e) {
3248 FS.handleFSError(e);
3249 return -1;
3250 }
3251 }function _fwrite(ptr, size, nitems, stream) {
3252 // size_t fwrite(const void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);
3253 // http://pubs.opengroup.org/onlinepubs/000095399/functions/fwrite.html
3254 var bytesToWrite = nitems * size;
3255 if (bytesToWrite == 0) return 0;
3256 var bytesWritten = _write(stream, ptr, bytesToWrite);
3257 if (bytesWritten == -1) {
3258 var streamObj = FS.getStream(stream);
3259 if (streamObj) streamObj.error = true;
3260 return 0;
3261 } else {
3262 return Math.floor(bytesWritten / size);
3263 }
3264 }
3265 Module["_strlen"] = _strlen;
3266 function __reallyNegative(x) {
3267 return x < 0 || (x === 0 && (1/x) === -Infinity);
3268 }function __formatString(format, varargs) {
3269 var textIndex = format;
3270 var argIndex = 0;
3271 function getNextArg(type) {
3272 // NOTE: Explicitly ignoring type safety. Otherwise this fails:
3273 // int x = 4; printf("%c\n", (char)x);
3274 var ret;
3275 if (type === 'double') {
3276 ret = HEAPF64[(((varargs)+(argIndex))>>3)];
3277 } else if (type == 'i64') {
3278 ret = [HEAP32[(((varargs)+(argIndex))>>2)],
3279 HEAP32[(((varargs)+(argIndex+8))>>2)]];
3280 argIndex += 8; // each 32-bit chunk is in a 64-bit block
3281 } else {
3282 type = 'i32'; // varargs are always i32, i64, or double
3283 ret = HEAP32[(((varargs)+(argIndex))>>2)];
3284 }
3285 argIndex += Math.max(Runtime.getNativeFieldSize(type), Runtime.getAlignSize(type, null, true));
3286 return ret;
3287 }
3288 var ret = [];
3289 var curr, next, currArg;
3290 while(1) {
3291 var startTextIndex = textIndex;
3292 curr = HEAP8[(textIndex)];
3293 if (curr === 0) break;
3294 next = HEAP8[((textIndex+1)|0)];
3295 if (curr == 37) {
3296 // Handle flags.
3297 var flagAlwaysSigned = false;
3298 var flagLeftAlign = false;
3299 var flagAlternative = false;
3300 var flagZeroPad = false;
3301 flagsLoop: while (1) {
3302 switch (next) {
3303 case 43:
3304 flagAlwaysSigned = true;
3305 break;
3306 case 45:
3307 flagLeftAlign = true;
3308 break;
3309 case 35:
3310 flagAlternative = true;
3311 break;
3312 case 48:
3313 if (flagZeroPad) {
3314 break flagsLoop;
3315 } else {
3316 flagZeroPad = true;
3317 break;
3318 }
3319 default:
3320 break flagsLoop;
3321 }
3322 textIndex++;
3323 next = HEAP8[((textIndex+1)|0)];
3324 }
3325 // Handle width.
3326 var width = 0;
3327 if (next == 42) {
3328 width = getNextArg('i32');
3329 textIndex++;
3330 next = HEAP8[((textIndex+1)|0)];
3331 } else {
3332 while (next >= 48 && next <= 57) {
3333 width = width * 10 + (next - 48);
3334 textIndex++;
3335 next = HEAP8[((textIndex+1)|0)];
3336 }
3337 }
3338 // Handle precision.
3339 var precisionSet = false;
3340 if (next == 46) {
3341 var precision = 0;
3342 precisionSet = true;
3343 textIndex++;
3344 next = HEAP8[((textIndex+1)|0)];
3345 if (next == 42) {
3346 precision = getNextArg('i32');
3347 textIndex++;
3348 } else {
3349 while(1) {
3350 var precisionChr = HEAP8[((textIndex+1)|0)];
3351 if (precisionChr < 48 ||
3352 precisionChr > 57) break;
3353 precision = precision * 10 + (precisionChr - 48);
3354 textIndex++;
3355 }
3356 }
3357 next = HEAP8[((textIndex+1)|0)];
3358 } else {
3359 var precision = 6; // Standard default.
3360 }
3361 // Handle integer sizes. WARNING: These assume a 32-bit architecture!
3362 var argSize;
3363 switch (String.fromCharCode(next)) {
3364 case 'h':
3365 var nextNext = HEAP8[((textIndex+2)|0)];
3366 if (nextNext == 104) {
3367 textIndex++;
3368 argSize = 1; // char (actually i32 in varargs)
3369 } else {
3370 argSize = 2; // short (actually i32 in varargs)
3371 }
3372 break;
3373 case 'l':
3374 var nextNext = HEAP8[((textIndex+2)|0)];
3375 if (nextNext == 108) {
3376 textIndex++;
3377 argSize = 8; // long long
3378 } else {
3379 argSize = 4; // long
3380 }
3381 break;
3382 case 'L': // long long
3383 case 'q': // int64_t
3384 case 'j': // intmax_t
3385 argSize = 8;
3386 break;
3387 case 'z': // size_t
3388 case 't': // ptrdiff_t
3389 case 'I': // signed ptrdiff_t or unsigned size_t
3390 argSize = 4;
3391 break;
3392 default:
3393 argSize = null;
3394 }
3395 if (argSize) textIndex++;
3396 next = HEAP8[((textIndex+1)|0)];
3397 // Handle type specifier.
3398 switch (String.fromCharCode(next)) {
3399 case 'd': case 'i': case 'u': case 'o': case 'x': case 'X': case 'p': {
3400 // Integer.
3401 var signed = next == 100 || next == 105;
3402 argSize = argSize || 4;
3403 var currArg = getNextArg('i' + (argSize * 8));
3404 var origArg = currArg;
3405 var argText;
3406 // Flatten i64-1 [low, high] into a (slightly rounded) double
3407 if (argSize == 8) {
3408 currArg = Runtime.makeBigInt(currArg[0], currArg[1], next == 117);
3409 }
3410 // Truncate to requested size.
3411 if (argSize <= 4) {
3412 var limit = Math.pow(256, argSize) - 1;
3413 currArg = (signed ? reSign : unSign)(currArg & limit, argSize * 8);
3414 }
3415 // Format the number.
3416 var currAbsArg = Math.abs(currArg);
3417 var prefix = '';
3418 if (next == 100 || next == 105) {
3419 if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], null); else
3420 argText = reSign(currArg, 8 * argSize, 1).toString(10);
3421 } else if (next == 117) {
3422 if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], true); else
3423 argText = unSign(currArg, 8 * argSize, 1).toString(10);
3424 currArg = Math.abs(currArg);
3425 } else if (next == 111) {
3426 argText = (flagAlternative ? '0' : '') + currAbsArg.toString(8);
3427 } else if (next == 120 || next == 88) {
3428 prefix = (flagAlternative && currArg != 0) ? '0x' : '';
3429 if (argSize == 8 && i64Math) {
3430 if (origArg[1]) {
3431 argText = (origArg[1]>>>0).toString(16);
3432 var lower = (origArg[0]>>>0).toString(16);
3433 while (lower.length < 8) lower = '0' + lower;
3434 argText += lower;
3435 } else {
3436 argText = (origArg[0]>>>0).toString(16);
3437 }
3438 } else
3439 if (currArg < 0) {
3440 // Represent negative numbers in hex as 2's complement.
3441 currArg = -currArg;
3442 argText = (currAbsArg - 1).toString(16);
3443 var buffer = [];
3444 for (var i = 0; i < argText.length; i++) {
3445 buffer.push((0xF - parseInt(argText[i], 16)).toString(16));
3446 }
3447 argText = buffer.join('');
3448 while (argText.length < argSize * 2) argText = 'f' + argText;
3449 } else {
3450 argText = currAbsArg.toString(16);
3451 }
3452 if (next == 88) {
3453 prefix = prefix.toUpperCase();
3454 argText = argText.toUpperCase();
3455 }
3456 } else if (next == 112) {
3457 if (currAbsArg === 0) {
3458 argText = '(nil)';
3459 } else {
3460 prefix = '0x';
3461 argText = currAbsArg.toString(16);
3462 }
3463 }
3464 if (precisionSet) {
3465 while (argText.length < precision) {
3466 argText = '0' + argText;
3467 }
3468 }
3469 // Add sign if needed
3470 if (flagAlwaysSigned) {
3471 if (currArg < 0) {
3472 prefix = '-' + prefix;
3473 } else {
3474 prefix = '+' + prefix;
3475 }
3476 }
3477 // Add padding.
3478 while (prefix.length + argText.length < width) {
3479 if (flagLeftAlign) {
3480 argText += ' ';
3481 } else {
3482 if (flagZeroPad) {
3483 argText = '0' + argText;
3484 } else {
3485 prefix = ' ' + prefix;
3486 }
3487 }
3488 }
3489 // Insert the result into the buffer.
3490 argText = prefix + argText;
3491 argText.split('').forEach(function(chr) {
3492 ret.push(chr.charCodeAt(0));
3493 });
3494 break;
3495 }
3496 case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': {
3497 // Float.
3498 var currArg = getNextArg('double');
3499 var argText;
3500 if (isNaN(currArg)) {
3501 argText = 'nan';
3502 flagZeroPad = false;
3503 } else if (!isFinite(currArg)) {
3504 argText = (currArg < 0 ? '-' : '') + 'inf';
3505 flagZeroPad = false;
3506 } else {
3507 var isGeneral = false;
3508 var effectivePrecision = Math.min(precision, 20);
3509 // Convert g/G to f/F or e/E, as per:
3510 // http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html
3511 if (next == 103 || next == 71) {
3512 isGeneral = true;
3513 precision = precision || 1;
3514 var exponent = parseInt(currArg.toExponential(effectivePrecision).split('e')[1], 10);
3515 if (precision > exponent && exponent >= -4) {
3516 next = ((next == 103) ? 'f' : 'F').charCodeAt(0);
3517 precision -= exponent + 1;
3518 } else {
3519 next = ((next == 103) ? 'e' : 'E').charCodeAt(0);
3520 precision--;
3521 }
3522 effectivePrecision = Math.min(precision, 20);
3523 }
3524 if (next == 101 || next == 69) {
3525 argText = currArg.toExponential(effectivePrecision);
3526 // Make sure the exponent has at least 2 digits.
3527 if (/[eE][-+]\d$/.test(argText)) {
3528 argText = argText.slice(0, -1) + '0' + argText.slice(-1);
3529 }
3530 } else if (next == 102 || next == 70) {
3531 argText = currArg.toFixed(effectivePrecision);
3532 if (currArg === 0 && __reallyNegative(currArg)) {
3533 argText = '-' + argText;
3534 }
3535 }
3536 var parts = argText.split('e');
3537 if (isGeneral && !flagAlternative) {
3538 // Discard trailing zeros and periods.
3539 while (parts[0].length > 1 && parts[0].indexOf('.') != -1 &&
3540 (parts[0].slice(-1) == '0' || parts[0].slice(-1) == '.')) {
3541 parts[0] = parts[0].slice(0, -1);
3542 }
3543 } else {
3544 // Make sure we have a period in alternative mode.
3545 if (flagAlternative && argText.indexOf('.') == -1) parts[0] += '.';
3546 // Zero pad until required precision.
3547 while (precision > effectivePrecision++) parts[0] += '0';
3548 }
3549 argText = parts[0] + (parts.length > 1 ? 'e' + parts[1] : '');
3550 // Capitalize 'E' if needed.
3551 if (next == 69) argText = argText.toUpperCase();
3552 // Add sign.
3553 if (flagAlwaysSigned && currArg >= 0) {
3554 argText = '+' + argText;
3555 }
3556 }
3557 // Add padding.
3558 while (argText.length < width) {
3559 if (flagLeftAlign) {
3560 argText += ' ';
3561 } else {
3562 if (flagZeroPad && (argText[0] == '-' || argText[0] == '+')) {
3563 argText = argText[0] + '0' + argText.slice(1);
3564 } else {
3565 argText = (flagZeroPad ? '0' : ' ') + argText;
3566 }
3567 }
3568 }
3569 // Adjust case.
3570 if (next < 97) argText = argText.toUpperCase();
3571 // Insert the result into the buffer.
3572 argText.split('').forEach(function(chr) {
3573 ret.push(chr.charCodeAt(0));
3574 });
3575 break;
3576 }
3577 case 's': {
3578 // String.
3579 var arg = getNextArg('i8*');
3580 var argLength = arg ? _strlen(arg) : '(null)'.length;
3581 if (precisionSet) argLength = Math.min(argLength, precision);
3582 if (!flagLeftAlign) {
3583 while (argLength < width--) {
3584 ret.push(32);
3585 }
3586 }
3587 if (arg) {
3588 for (var i = 0; i < argLength; i++) {
3589 ret.push(HEAPU8[((arg++)|0)]);
3590 }
3591 } else {
3592 ret = ret.concat(intArrayFromString('(null)'.substr(0, argLength), true));
3593 }
3594 if (flagLeftAlign) {
3595 while (argLength < width--) {
3596 ret.push(32);
3597 }
3598 }
3599 break;
3600 }
3601 case 'c': {
3602 // Character.
3603 if (flagLeftAlign) ret.push(getNextArg('i8'));
3604 while (--width > 0) {
3605 ret.push(32);
3606 }
3607 if (!flagLeftAlign) ret.push(getNextArg('i8'));
3608 break;
3609 }
3610 case 'n': {
3611 // Write the length written so far to the next parameter.
3612 var ptr = getNextArg('i32*');
3613 HEAP32[((ptr)>>2)]=ret.length
3614 break;
3615 }
3616 case '%': {
3617 // Literal percent sign.
3618 ret.push(curr);
3619 break;
3620 }
3621 default: {
3622 // Unknown specifiers remain untouched.
3623 for (var i = startTextIndex; i < textIndex + 2; i++) {
3624 ret.push(HEAP8[(i)]);
3625 }
3626 }
3627 }
3628 textIndex += 2;
3629 // TODO: Support a/A (hex float) and m (last error) specifiers.
3630 // TODO: Support %1${specifier} for arg selection.
3631 } else {
3632 ret.push(curr);
3633 textIndex += 1;
3634 }
3635 }
3636 return ret;
3637 }function _fprintf(stream, format, varargs) {
3638 // int fprintf(FILE *restrict stream, const char *restrict format, ...);
3639 // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html
3640 var result = __formatString(format, varargs);
3641 var stack = Runtime.stackSave();
3642 var ret = _fwrite(allocate(result, 'i8', ALLOC_STACK), 1, result.length, stream);
3643 Runtime.stackRestore(stack);
3644 return ret;
3645 }function _printf(format, varargs) {
3646 // int printf(const char *restrict format, ...);
3647 // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html
3648 var stdout = HEAP32[((_stdout)>>2)];
3649 return _fprintf(stdout, format, varargs);
3650 }
3651 Module["_memcpy"] = _memcpy;var _llvm_memcpy_p0i8_p0i8_i32=_memcpy;
3652 function ___cxa_guard_acquire(variable) {
3653 if (!HEAP8[(variable)]) { // ignore SAFE_HEAP stuff because llvm mixes i64 and i8 here
3654 HEAP8[(variable)]=1;
3655 return 1;
3656 }
3657 return 0;
3658 }
3659 function ___cxa_guard_release() {}
3660 Module["_memset"] = _memset;var _llvm_memset_p0i8_i64=_memset;
3661 var _sinf=Math.sin;
3662 var _cosf=Math.cos;
3663 var _sqrtf=Math.sqrt;
3664 var _fabsf=Math.abs;
3665 function _llvm_lifetime_start() {}
3666 function _llvm_lifetime_end() {}
3667 function _fmod(x, y) {
3668 return x % y;
3669 }var _fmodf=_fmod;
3670 var _atan2f=Math.atan2;
3671 var _llvm_pow_f32=Math.pow;
3672 var _acosf=Math.acos;
3673 var _llvm_memset_p0i8_i32=_memset;
3674 function _atexit(func, arg) {
3675 __ATEXIT__.unshift({ func: func, arg: arg });
3676 }var ___cxa_atexit=_atexit;
3677 function ___cxa_guard_abort() {}
3678 function ___cxa_pure_virtual() {
3679 ABORT = true;
3680 throw 'Pure virtual function called!';
3681 }
3682 function ___assert_func(filename, line, func, condition) {
3683 throw 'Assertion failed: ' + (condition ? Pointer_stringify(condition) : 'unknown condition') + ', at: ' + [filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? Pointer_stringify(func) : 'unknown function'] + ' at ' + new Error().stack;
3684 }
3685 Module["_llvm_uadd_with_overflow_i64"] = _llvm_uadd_with_overflow_i64;
3686 function _gettimeofday(ptr) {
3687 // %struct.timeval = type { i32, i32 }
3688 var now = Date.now();
3689 HEAP32[((ptr)>>2)]=Math.floor(now/1000); // seconds
3690 HEAP32[(((ptr)+(4))>>2)]=Math.floor((now-1000*Math.floor(now/1000))*1000); // microseconds
3691 return 0;
3692 }
3693 function _abort() {
3694 Module['abort']();
3695 }
3696 function ___errno_location() {
3697 return ___errno_state;
3698 }var ___errno=___errno_location;
3699 function _sbrk(bytes) {
3700 // Implement a Linux-like 'memory area' for our 'process'.
3701 // Changes the size of the memory area by |bytes|; returns the
3702 // address of the previous top ('break') of the memory area
3703 // We control the "dynamic" memory - DYNAMIC_BASE to DYNAMICTOP
3704 var self = _sbrk;
3705 if (!self.called) {
3706 DYNAMICTOP = alignMemoryPage(DYNAMICTOP); // make sure we start out aligned
3707 self.called = true;
3708 assert(Runtime.dynamicAlloc);
3709 self.alloc = Runtime.dynamicAlloc;
3710 Runtime.dynamicAlloc = function() { abort('cannot dynamically allocate, sbrk now has control') };
3711 }
3712 var ret = DYNAMICTOP;
3713 if (bytes != 0) self.alloc(bytes);
3714 return ret; // Previous break location.
3715 }
3716 function _sysconf(name) {
3717 // long sysconf(int name);
3718 // http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html
3719 switch(name) {
3720 case 8: return PAGE_SIZE;
3721 case 54:
3722 case 56:
3723 case 21:
3724 case 61:
3725 case 63:
3726 case 22:
3727 case 67:
3728 case 23:
3729 case 24:
3730 case 25:
3731 case 26:
3732 case 27:
3733 case 69:
3734 case 28:
3735 case 101:
3736 case 70:
3737 case 71:
3738 case 29:
3739 case 30:
3740 case 199:
3741 case 75:
3742 case 76:
3743 case 32:
3744 case 43:
3745 case 44:
3746 case 80:
3747 case 46:
3748 case 47:
3749 case 45:
3750 case 48:
3751 case 49:
3752 case 42:
3753 case 82:
3754 case 33:
3755 case 7:
3756 case 108:
3757 case 109:
3758 case 107:
3759 case 112:
3760 case 119:
3761 case 121:
3762 return 200809;
3763 case 13:
3764 case 104:
3765 case 94:
3766 case 95:
3767 case 34:
3768 case 35:
3769 case 77:
3770 case 81:
3771 case 83:
3772 case 84:
3773 case 85:
3774 case 86:
3775 case 87:
3776 case 88:
3777 case 89:
3778 case 90:
3779 case 91:
3780 case 94:
3781 case 95:
3782 case 110:
3783 case 111:
3784 case 113:
3785 case 114:
3786 case 115:
3787 case 116:
3788 case 117:
3789 case 118:
3790 case 120:
3791 case 40:
3792 case 16:
3793 case 79:
3794 case 19:
3795 return -1;
3796 case 92:
3797 case 93:
3798 case 5:
3799 case 72:
3800 case 6:
3801 case 74:
3802 case 92:
3803 case 93:
3804 case 96:
3805 case 97:
3806 case 98:
3807 case 99:
3808 case 102:
3809 case 103:
3810 case 105:
3811 return 1;
3812 case 38:
3813 case 66:
3814 case 50:
3815 case 51:
3816 case 4:
3817 return 1024;
3818 case 15:
3819 case 64:
3820 case 41:
3821 return 32;
3822 case 55:
3823 case 37:
3824 case 17:
3825 return 2147483647;
3826 case 18:
3827 case 1:
3828 return 47839;
3829 case 59:
3830 case 57:
3831 return 99;
3832 case 68:
3833 case 58:
3834 return 2048;
3835 case 0: return 2097152;
3836 case 3: return 65536;
3837 case 14: return 32768;
3838 case 73: return 32767;
3839 case 39: return 16384;
3840 case 60: return 1000;
3841 case 106: return 700;
3842 case 52: return 256;
3843 case 62: return 255;
3844 case 2: return 100;
3845 case 65: return 64;
3846 case 36: return 20;
3847 case 100: return 16;
3848 case 20: return 6;
3849 case 53: return 4;
3850 case 10: return 1;
3851 }
3852 ___setErrNo(ERRNO_CODES.EINVAL);
3853 return -1;
3854 }
3855 function _time(ptr) {
3856 var ret = Math.floor(Date.now()/1000);
3857 if (ptr) {
3858 HEAP32[((ptr)>>2)]=ret
3859 }
3860 return ret;
3861 }
3862 function ___cxa_allocate_exception(size) {
3863 return _malloc(size);
3864 }
3865 function _llvm_eh_exception() {
3866 return HEAP32[((_llvm_eh_exception.buf)>>2)];
3867 }
3868 function __ZSt18uncaught_exceptionv() { // std::uncaught_exception()
3869 return !!__ZSt18uncaught_exceptionv.uncaught_exception;
3870 }
3871 function ___cxa_is_number_type(type) {
3872 var isNumber = false;
3873 try { if (type == __ZTIi) isNumber = true } catch(e){}
3874 try { if (type == __ZTIj) isNumber = true } catch(e){}
3875 try { if (type == __ZTIl) isNumber = true } catch(e){}
3876 try { if (type == __ZTIm) isNumber = true } catch(e){}
3877 try { if (type == __ZTIx) isNumber = true } catch(e){}
3878 try { if (type == __ZTIy) isNumber = true } catch(e){}
3879 try { if (type == __ZTIf) isNumber = true } catch(e){}
3880 try { if (type == __ZTId) isNumber = true } catch(e){}
3881 try { if (type == __ZTIe) isNumber = true } catch(e){}
3882 try { if (type == __ZTIc) isNumber = true } catch(e){}
3883 try { if (type == __ZTIa) isNumber = true } catch(e){}
3884 try { if (type == __ZTIh) isNumber = true } catch(e){}
3885 try { if (type == __ZTIs) isNumber = true } catch(e){}
3886 try { if (type == __ZTIt) isNumber = true } catch(e){}
3887 return isNumber;
3888 }function ___cxa_does_inherit(definiteType, possibilityType, possibility) {
3889 if (possibility == 0) return false;
3890 if (possibilityType == 0 || possibilityType == definiteType)
3891 return true;
3892 var possibility_type_info;
3893 if (___cxa_is_number_type(possibilityType)) {
3894 possibility_type_info = possibilityType;
3895 } else {
3896 var possibility_type_infoAddr = HEAP32[((possibilityType)>>2)] - 8;
3897 possibility_type_info = HEAP32[((possibility_type_infoAddr)>>2)];
3898 }
3899 switch (possibility_type_info) {
3900 case 0: // possibility is a pointer
3901 // See if definite type is a pointer
3902 var definite_type_infoAddr = HEAP32[((definiteType)>>2)] - 8;
3903 var definite_type_info = HEAP32[((definite_type_infoAddr)>>2)];
3904 if (definite_type_info == 0) {
3905 // Also a pointer; compare base types of pointers
3906 var defPointerBaseAddr = definiteType+8;
3907 var defPointerBaseType = HEAP32[((defPointerBaseAddr)>>2)];
3908 var possPointerBaseAddr = possibilityType+8;
3909 var possPointerBaseType = HEAP32[((possPointerBaseAddr)>>2)];
3910 return ___cxa_does_inherit(defPointerBaseType, possPointerBaseType, possibility);
3911 } else
3912 return false; // one pointer and one non-pointer
3913 case 1: // class with no base class
3914 return false;
3915 case 2: // class with base class
3916 var parentTypeAddr = possibilityType + 8;
3917 var parentType = HEAP32[((parentTypeAddr)>>2)];
3918 return ___cxa_does_inherit(definiteType, parentType, possibility);
3919 default:
3920 return false; // some unencountered type
3921 }
3922 }
3923 function ___resumeException(ptr) {
3924 if (HEAP32[((_llvm_eh_exception.buf)>>2)] == 0) HEAP32[((_llvm_eh_exception.buf)>>2)]=ptr;
3925 throw ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";;
3926 }function ___cxa_find_matching_catch(thrown, throwntype) {
3927 if (thrown == -1) thrown = HEAP32[((_llvm_eh_exception.buf)>>2)];
3928 if (throwntype == -1) throwntype = HEAP32[(((_llvm_eh_exception.buf)+(4))>>2)];
3929 var typeArray = Array.prototype.slice.call(arguments, 2);
3930 // If throwntype is a pointer, this means a pointer has been
3931 // thrown. When a pointer is thrown, actually what's thrown
3932 // is a pointer to the pointer. We'll dereference it.
3933 if (throwntype != 0 && !___cxa_is_number_type(throwntype)) {
3934 var throwntypeInfoAddr= HEAP32[((throwntype)>>2)] - 8;
3935 var throwntypeInfo= HEAP32[((throwntypeInfoAddr)>>2)];
3936 if (throwntypeInfo == 0)
3937 thrown = HEAP32[((thrown)>>2)];
3938 }
3939 // The different catch blocks are denoted by different types.
3940 // Due to inheritance, those types may not precisely match the
3941 // type of the thrown object. Find one which matches, and
3942 // return the type of the catch block which should be called.
3943 for (var i = 0; i < typeArray.length; i++) {
3944 if (___cxa_does_inherit(typeArray[i], throwntype, thrown))
3945 return ((asm["setTempRet0"](typeArray[i]),thrown)|0);
3946 }
3947 // Shouldn't happen unless we have bogus data in typeArray
3948 // or encounter a type for which emscripten doesn't have suitable
3949 // typeinfo defined. Best-efforts match just in case.
3950 return ((asm["setTempRet0"](throwntype),thrown)|0);
3951 }function ___cxa_throw(ptr, type, destructor) {
3952 if (!___cxa_throw.initialized) {
3953 try {
3954 HEAP32[((__ZTVN10__cxxabiv119__pointer_type_infoE)>>2)]=0; // Workaround for libcxxabi integration bug
3955 } catch(e){}
3956 try {
3957 HEAP32[((__ZTVN10__cxxabiv117__class_type_infoE)>>2)]=1; // Workaround for libcxxabi integration bug
3958 } catch(e){}
3959 try {
3960 HEAP32[((__ZTVN10__cxxabiv120__si_class_type_infoE)>>2)]=2; // Workaround for libcxxabi integration bug
3961 } catch(e){}
3962 ___cxa_throw.initialized = true;
3963 }
3964 HEAP32[((_llvm_eh_exception.buf)>>2)]=ptr
3965 HEAP32[(((_llvm_eh_exception.buf)+(4))>>2)]=type
3966 HEAP32[(((_llvm_eh_exception.buf)+(8))>>2)]=destructor
3967 if (!("uncaught_exception" in __ZSt18uncaught_exceptionv)) {
3968 __ZSt18uncaught_exceptionv.uncaught_exception = 1;
3969 } else {
3970 __ZSt18uncaught_exceptionv.uncaught_exception++;
3971 }
3972 throw ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";;
3973 }
3974 function ___cxa_call_unexpected(exception) {
3975 Module.printErr('Unexpected exception thrown, this is not properly supported - aborting');
3976 ABORT = true;
3977 throw exception;
3978 }
3979 var Browser={mainLoop:{scheduler:null,shouldPause:false,paused:false,queue:[],pause:function () {
3980 Browser.mainLoop.shouldPause = true;
3981 },resume:function () {
3982 if (Browser.mainLoop.paused) {
3983 Browser.mainLoop.paused = false;
3984 Browser.mainLoop.scheduler();
3985 }
3986 Browser.mainLoop.shouldPause = false;
3987 },updateStatus:function () {
3988 if (Module['setStatus']) {
3989 var message = Module['statusMessage'] || 'Please wait...';
3990 var remaining = Browser.mainLoop.remainingBlockers;
3991 var expected = Browser.mainLoop.expectedBlockers;
3992 if (remaining) {
3993 if (remaining < expected) {
3994 Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')');
3995 } else {
3996 Module['setStatus'](message);
3997 }
3998 } else {
3999 Module['setStatus']('');
4000 }
4001 }
4002 }},isFullScreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () {
4003 if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers
4004 if (Browser.initted || ENVIRONMENT_IS_WORKER) return;
4005 Browser.initted = true;
4006 try {
4007 new Blob();
4008 Browser.hasBlobConstructor = true;
4009 } catch(e) {
4010 Browser.hasBlobConstructor = false;
4011 console.log("warning: no blob constructor, cannot create blobs with mimetypes");
4012 }
4013 Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null));
4014 Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined;
4015 if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') {
4016 console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");
4017 Module.noImageDecoding = true;
4018 }
4019 // Support for plugins that can process preloaded files. You can add more of these to
4020 // your app by creating and appending to Module.preloadPlugins.
4021 //
4022 // Each plugin is asked if it can handle a file based on the file's name. If it can,
4023 // it is given the file's raw data. When it is done, it calls a callback with the file's
4024 // (possibly modified) data. For example, a plugin might decompress a file, or it
4025 // might create some side data structure for use later (like an Image element, etc.).
4026 var imagePlugin = {};
4027 imagePlugin['canHandle'] = function(name) {
4028 return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name);
4029 };
4030 imagePlugin['handle'] = function(byteArray, name, onload, onerror) {
4031 var b = null;
4032 if (Browser.hasBlobConstructor) {
4033 try {
4034 b = new Blob([byteArray], { type: Browser.getMimetype(name) });
4035 if (b.size !== byteArray.length) { // Safari bug #118630
4036 // Safari's Blob can only take an ArrayBuffer
4037 b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) });
4038 }
4039 } catch(e) {
4040 Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder');
4041 }
4042 }
4043 if (!b) {
4044 var bb = new Browser.BlobBuilder();
4045 bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range
4046 b = bb.getBlob();
4047 }
4048 var url = Browser.URLObject.createObjectURL(b);
4049 var img = new Image();
4050 img.onload = function() {
4051 assert(img.complete, 'Image ' + name + ' could not be decoded');
4052 var canvas = document.createElement('canvas');
4053 canvas.width = img.width;
4054 canvas.height = img.height;
4055 var ctx = canvas.getContext('2d');
4056 ctx.drawImage(img, 0, 0);
4057 Module["preloadedImages"][name] = canvas;
4058 Browser.URLObject.revokeObjectURL(url);
4059 if (onload) onload(byteArray);
4060 };
4061 img.onerror = function(event) {
4062 console.log('Image ' + url + ' could not be decoded');
4063 if (onerror) onerror();
4064 };
4065 img.src = url;
4066 };
4067 Module['preloadPlugins'].push(imagePlugin);
4068 var audioPlugin = {};
4069 audioPlugin['canHandle'] = function(name) {
4070 return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 };
4071 };
4072 audioPlugin['handle'] = function(byteArray, name, onload, onerror) {
4073 var done = false;
4074 function finish(audio) {
4075 if (done) return;
4076 done = true;
4077 Module["preloadedAudios"][name] = audio;
4078 if (onload) onload(byteArray);
4079 }
4080 function fail() {
4081 if (done) return;
4082 done = true;
4083 Module["preloadedAudios"][name] = new Audio(); // empty shim
4084 if (onerror) onerror();
4085 }
4086 if (Browser.hasBlobConstructor) {
4087 try {
4088 var b = new Blob([byteArray], { type: Browser.getMimetype(name) });
4089 } catch(e) {
4090 return fail();
4091 }
4092 var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this!
4093 var audio = new Audio();
4094 audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926
4095 audio.onerror = function(event) {
4096 if (done) return;
4097 console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach');
4098 function encode64(data) {
4099 var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
4100 var PAD = '=';
4101 var ret = '';
4102 var leftchar = 0;
4103 var leftbits = 0;
4104 for (var i = 0; i < data.length; i++) {
4105 leftchar = (leftchar << 8) | data[i];
4106 leftbits += 8;
4107 while (leftbits >= 6) {
4108 var curr = (leftchar >> (leftbits-6)) & 0x3f;
4109 leftbits -= 6;
4110 ret += BASE[curr];
4111 }
4112 }
4113 if (leftbits == 2) {
4114 ret += BASE[(leftchar&3) << 4];
4115 ret += PAD + PAD;
4116 } else if (leftbits == 4) {
4117 ret += BASE[(leftchar&0xf) << 2];
4118 ret += PAD;
4119 }
4120 return ret;
4121 }
4122 audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray);
4123 finish(audio); // we don't wait for confirmation this worked - but it's worth trying
4124 };
4125 audio.src = url;
4126 // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror
4127 Browser.safeSetTimeout(function() {
4128 finish(audio); // try to use it even though it is not necessarily ready to play
4129 }, 10000);
4130 } else {
4131 return fail();
4132 }
4133 };
4134 Module['preloadPlugins'].push(audioPlugin);
4135 // Canvas event setup
4136 var canvas = Module['canvas'];
4137 canvas.requestPointerLock = canvas['requestPointerLock'] ||
4138 canvas['mozRequestPointerLock'] ||
4139 canvas['webkitRequestPointerLock'];
4140 canvas.exitPointerLock = document['exitPointerLock'] ||
4141 document['mozExitPointerLock'] ||
4142 document['webkitExitPointerLock'] ||
4143 function(){}; // no-op if function does not exist
4144 canvas.exitPointerLock = canvas.exitPointerLock.bind(document);
4145 function pointerLockChange() {
4146 Browser.pointerLock = document['pointerLockElement'] === canvas ||
4147 document['mozPointerLockElement'] === canvas ||
4148 document['webkitPointerLockElement'] === canvas;
4149 }
4150 document.addEventListener('pointerlockchange', pointerLockChange, false);
4151 document.addEventListener('mozpointerlockchange', pointerLockChange, false);
4152 document.addEventListener('webkitpointerlockchange', pointerLockChange, false);
4153 if (Module['elementPointerLock']) {
4154 canvas.addEventListener("click", function(ev) {
4155 if (!Browser.pointerLock && canvas.requestPointerLock) {
4156 canvas.requestPointerLock();
4157 ev.preventDefault();
4158 }
4159 }, false);
4160 }
4161 },createContext:function (canvas, useWebGL, setInModule) {
4162 var ctx;
4163 try {
4164 if (useWebGL) {
4165 ctx = canvas.getContext('experimental-webgl', {
4166 alpha: false
4167 });
4168 } else {
4169 ctx = canvas.getContext('2d');
4170 }
4171 if (!ctx) throw ':(';
4172 } catch (e) {
4173 Module.print('Could not create canvas - ' + e);
4174 return null;
4175 }
4176 if (useWebGL) {
4177 // Set the background of the WebGL canvas to black
4178 canvas.style.backgroundColor = "black";
4179 // Warn on context loss
4180 canvas.addEventListener('webglcontextlost', function(event) {
4181 alert('WebGL context lost. You will need to reload the page.');
4182 }, false);
4183 }
4184 if (setInModule) {
4185 Module.ctx = ctx;
4186 Module.useWebGL = useWebGL;
4187 Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() });
4188 Browser.init();
4189 }
4190 return ctx;
4191 },destroyContext:function (canvas, useWebGL, setInModule) {},fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:function (lockPointer, resizeCanvas) {
4192 Browser.lockPointer = lockPointer;
4193 Browser.resizeCanvas = resizeCanvas;
4194 if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true;
4195 if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false;
4196 var canvas = Module['canvas'];
4197 function fullScreenChange() {
4198 Browser.isFullScreen = false;
4199 if ((document['webkitFullScreenElement'] || document['webkitFullscreenElement'] ||
4200 document['mozFullScreenElement'] || document['mozFullscreenElement'] ||
4201 document['fullScreenElement'] || document['fullscreenElement']) === canvas) {
4202 canvas.cancelFullScreen = document['cancelFullScreen'] ||
4203 document['mozCancelFullScreen'] ||
4204 document['webkitCancelFullScreen'];
4205 canvas.cancelFullScreen = canvas.cancelFullScreen.bind(document);
4206 if (Browser.lockPointer) canvas.requestPointerLock();
4207 Browser.isFullScreen = true;
4208 if (Browser.resizeCanvas) Browser.setFullScreenCanvasSize();
4209 } else if (Browser.resizeCanvas){
4210 Browser.setWindowedCanvasSize();
4211 }
4212 if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullScreen);
4213 }
4214 if (!Browser.fullScreenHandlersInstalled) {
4215 Browser.fullScreenHandlersInstalled = true;
4216 document.addEventListener('fullscreenchange', fullScreenChange, false);
4217 document.addEventListener('mozfullscreenchange', fullScreenChange, false);
4218 document.addEventListener('webkitfullscreenchange', fullScreenChange, false);
4219 }
4220 canvas.requestFullScreen = canvas['requestFullScreen'] ||
4221 canvas['mozRequestFullScreen'] ||
4222 (canvas['webkitRequestFullScreen'] ? function() { canvas['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null);
4223 canvas.requestFullScreen();
4224 },requestAnimationFrame:function (func) {
4225 if (!window.requestAnimationFrame) {
4226 window.requestAnimationFrame = window['requestAnimationFrame'] ||
4227 window['mozRequestAnimationFrame'] ||
4228 window['webkitRequestAnimationFrame'] ||
4229 window['msRequestAnimationFrame'] ||
4230 window['oRequestAnimationFrame'] ||
4231 window['setTimeout'];
4232 }
4233 window.requestAnimationFrame(func);
4234 },safeCallback:function (func) {
4235 return function() {
4236 if (!ABORT) return func.apply(null, arguments);
4237 };
4238 },safeRequestAnimationFrame:function (func) {
4239 return Browser.requestAnimationFrame(function() {
4240 if (!ABORT) func();
4241 });
4242 },safeSetTimeout:function (func, timeout) {
4243 return setTimeout(function() {
4244 if (!ABORT) func();
4245 }, timeout);
4246 },safeSetInterval:function (func, timeout) {
4247 return setInterval(function() {
4248 if (!ABORT) func();
4249 }, timeout);
4250 },getMimetype:function (name) {
4251 return {
4252 'jpg': 'image/jpeg',
4253 'jpeg': 'image/jpeg',
4254 'png': 'image/png',
4255 'bmp': 'image/bmp',
4256 'ogg': 'audio/ogg',
4257 'wav': 'audio/wav',
4258 'mp3': 'audio/mpeg'
4259 }[name.substr(name.lastIndexOf('.')+1)];
4260 },getUserMedia:function (func) {
4261 if(!window.getUserMedia) {
4262 window.getUserMedia = navigator['getUserMedia'] ||
4263 navigator['mozGetUserMedia'];
4264 }
4265 window.getUserMedia(func);
4266 },getMovementX:function (event) {
4267 return event['movementX'] ||
4268 event['mozMovementX'] ||
4269 event['webkitMovementX'] ||
4270 0;
4271 },getMovementY:function (event) {
4272 return event['movementY'] ||
4273 event['mozMovementY'] ||
4274 event['webkitMovementY'] ||
4275 0;
4276 },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup
4277 if (Browser.pointerLock) {
4278 // When the pointer is locked, calculate the coordinates
4279 // based on the movement of the mouse.
4280 // Workaround for Firefox bug 764498
4281 if (event.type != 'mousemove' &&
4282 ('mozMovementX' in event)) {
4283 Browser.mouseMovementX = Browser.mouseMovementY = 0;
4284 } else {
4285 Browser.mouseMovementX = Browser.getMovementX(event);
4286 Browser.mouseMovementY = Browser.getMovementY(event);
4287 }
4288 // check if SDL is available
4289 if (typeof SDL != "undefined") {
4290 Browser.mouseX = SDL.mouseX + Browser.mouseMovementX;
4291 Browser.mouseY = SDL.mouseY + Browser.mouseMovementY;
4292 } else {
4293 // just add the mouse delta to the current absolut mouse position
4294 // FIXME: ideally this should be clamped against the canvas size and zero
4295 Browser.mouseX += Browser.mouseMovementX;
4296 Browser.mouseY += Browser.mouseMovementY;
4297 }
4298 } else {
4299 // Otherwise, calculate the movement based on the changes
4300 // in the coordinates.
4301 var rect = Module["canvas"].getBoundingClientRect();
4302 var x, y;
4303 if (event.type == 'touchstart' ||
4304 event.type == 'touchend' ||
4305 event.type == 'touchmove') {
4306 var t = event.touches.item(0);
4307 if (t) {
4308 x = t.pageX - (window.scrollX + rect.left);
4309 y = t.pageY - (window.scrollY + rect.top);
4310 } else {
4311 return;
4312 }
4313 } else {
4314 x = event.pageX - (window.scrollX + rect.left);
4315 y = event.pageY - (window.scrollY + rect.top);
4316 }
4317 // the canvas might be CSS-scaled compared to its backbuffer;
4318 // SDL-using content will want mouse coordinates in terms
4319 // of backbuffer units.
4320 var cw = Module["canvas"].width;
4321 var ch = Module["canvas"].height;
4322 x = x * (cw / rect.width);
4323 y = y * (ch / rect.height);
4324 Browser.mouseMovementX = x - Browser.mouseX;
4325 Browser.mouseMovementY = y - Browser.mouseY;
4326 Browser.mouseX = x;
4327 Browser.mouseY = y;
4328 }
4329 },xhrLoad:function (url, onload, onerror) {
4330 var xhr = new XMLHttpRequest();
4331 xhr.open('GET', url, true);
4332 xhr.responseType = 'arraybuffer';
4333 xhr.onload = function() {
4334 if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
4335 onload(xhr.response);
4336 } else {
4337 onerror();
4338 }
4339 };
4340 xhr.onerror = onerror;
4341 xhr.send(null);
4342 },asyncLoad:function (url, onload, onerror, noRunDep) {
4343 Browser.xhrLoad(url, function(arrayBuffer) {
4344 assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).');
4345 onload(new Uint8Array(arrayBuffer));
4346 if (!noRunDep) removeRunDependency('al ' + url);
4347 }, function(event) {
4348 if (onerror) {
4349 onerror();
4350 } else {
4351 throw 'Loading data file "' + url + '" failed.';
4352 }
4353 });
4354 if (!noRunDep) addRunDependency('al ' + url);
4355 },resizeListeners:[],updateResizeListeners:function () {
4356 var canvas = Module['canvas'];
4357 Browser.resizeListeners.forEach(function(listener) {
4358 listener(canvas.width, canvas.height);
4359 });
4360 },setCanvasSize:function (width, height, noUpdates) {
4361 var canvas = Module['canvas'];
4362 canvas.width = width;
4363 canvas.height = height;
4364 if (!noUpdates) Browser.updateResizeListeners();
4365 },windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function () {
4366 var canvas = Module['canvas'];
4367 this.windowedWidth = canvas.width;
4368 this.windowedHeight = canvas.height;
4369 canvas.width = screen.width;
4370 canvas.height = screen.height;
4371 // check if SDL is available
4372 if (typeof SDL != "undefined") {
4373 var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)];
4374 flags = flags | 0x00800000; // set SDL_FULLSCREEN flag
4375 HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags
4376 }
4377 Browser.updateResizeListeners();
4378 },setWindowedCanvasSize:function () {
4379 var canvas = Module['canvas'];
4380 canvas.width = this.windowedWidth;
4381 canvas.height = this.windowedHeight;
4382 // check if SDL is available
4383 if (typeof SDL != "undefined") {
4384 var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)];
4385 flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag
4386 HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags
4387 }
4388 Browser.updateResizeListeners();
4389 }};
4390 FS.staticInit();__ATINIT__.unshift({ func: function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() } });__ATMAIN__.push({ func: function() { FS.ignorePermissions = false } });__ATEXIT__.push({ func: function() { FS.quit() } });Module["FS_createFolder"] = FS.createFolder;Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPreloadedFile"] = FS.createPreloadedFile;Module["FS_createLazyFile"] = FS.createLazyFile;Module["FS_createLink"] = FS.createLink;Module["FS_createDevice"] = FS.createDevice;
4391 ___errno_state = Runtime.staticAlloc(4); HEAP32[((___errno_state)>>2)]=0;
4392 __ATINIT__.unshift({ func: function() { TTY.init() } });__ATEXIT__.push({ func: function() { TTY.shutdown() } });TTY.utf8 = new Runtime.UTF8Processor();
4393 __ATINIT__.push({ func: function() { SOCKFS.root = FS.mount(SOCKFS, {}, null); } });
4394 _llvm_eh_exception.buf = allocate(12, "void*", ALLOC_STATIC);
4395 Module["requestFullScreen"] = function(lockPointer, resizeCanvas) { Browser.requestFullScreen(lockPointer, resizeCanvas) };
4396 Module["requestAnimationFrame"] = function(func) { Browser.requestAnimationFrame(func) };
4397 Module["setCanvasSize"] = function(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) };
4398 Module["pauseMainLoop"] = function() { Browser.mainLoop.pause() };
4399 Module["resumeMainLoop"] = function() { Browser.mainLoop.resume() };
4400 Module["getUserMedia"] = function() { Browser.getUserMedia() }
4401 STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP);
4402 staticSealed = true; // seal the static portion of memory
4403 STACK_MAX = STACK_BASE + 5242880;
4404 DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX);
4405 assert(DYNAMIC_BASE < TOTAL_MEMORY); // Stack must fit in TOTAL_MEMORY; allocations from here on may enlarge TOTAL_MEMORY
4406 var ctlz_i8 = allocate([8,7,6,6,5,5,5,5,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_DYNAMIC);
4407 var cttz_i8 = allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0], "i8", ALLOC_DYNAMIC);
4408 var Math_min = Math.min;
4409 function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7) {
4410 try {
4411 return Module["dynCall_iiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7);
4412 } catch(e) {
4413 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4414 asm["setThrew"](1, 0);
4415 }
4416 }
4417 function invoke_vif(index,a1,a2) {
4418 try {
4419 Module["dynCall_vif"](index,a1,a2);
4420 } catch(e) {
4421 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4422 asm["setThrew"](1, 0);
4423 }
4424 }
4425 function invoke_viifii(index,a1,a2,a3,a4,a5) {
4426 try {
4427 Module["dynCall_viifii"](index,a1,a2,a3,a4,a5);
4428 } catch(e) {
4429 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4430 asm["setThrew"](1, 0);
4431 }
4432 }
4433 function invoke_viiiii(index,a1,a2,a3,a4,a5) {
4434 try {
4435 Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5);
4436 } catch(e) {
4437 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4438 asm["setThrew"](1, 0);
4439 }
4440 }
4441 function invoke_vi(index,a1) {
4442 try {
4443 Module["dynCall_vi"](index,a1);
4444 } catch(e) {
4445 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4446 asm["setThrew"](1, 0);
4447 }
4448 }
4449 function invoke_vii(index,a1,a2) {
4450 try {
4451 Module["dynCall_vii"](index,a1,a2);
4452 } catch(e) {
4453 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4454 asm["setThrew"](1, 0);
4455 }
4456 }
4457 function invoke_viiifii(index,a1,a2,a3,a4,a5,a6) {
4458 try {
4459 Module["dynCall_viiifii"](index,a1,a2,a3,a4,a5,a6);
4460 } catch(e) {
4461 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4462 asm["setThrew"](1, 0);
4463 }
4464 }
4465 function invoke_vifiii(index,a1,a2,a3,a4,a5) {
4466 try {
4467 Module["dynCall_vifiii"](index,a1,a2,a3,a4,a5);
4468 } catch(e) {
4469 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4470 asm["setThrew"](1, 0);
4471 }
4472 }
4473 function invoke_ii(index,a1) {
4474 try {
4475 return Module["dynCall_ii"](index,a1);
4476 } catch(e) {
4477 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4478 asm["setThrew"](1, 0);
4479 }
4480 }
4481 function invoke_viiiiffffiif(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) {
4482 try {
4483 Module["dynCall_viiiiffffiif"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);
4484 } catch(e) {
4485 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4486 asm["setThrew"](1, 0);
4487 }
4488 }
4489 function invoke_fiii(index,a1,a2,a3) {
4490 try {
4491 return Module["dynCall_fiii"](index,a1,a2,a3);
4492 } catch(e) {
4493 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4494 asm["setThrew"](1, 0);
4495 }
4496 }
4497 function invoke_viiif(index,a1,a2,a3,a4) {
4498 try {
4499 Module["dynCall_viiif"](index,a1,a2,a3,a4);
4500 } catch(e) {
4501 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4502 asm["setThrew"](1, 0);
4503 }
4504 }
4505 function invoke_fiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) {
4506 try {
4507 return Module["dynCall_fiiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);
4508 } catch(e) {
4509 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4510 asm["setThrew"](1, 0);
4511 }
4512 }
4513 function invoke_fiifii(index,a1,a2,a3,a4,a5) {
4514 try {
4515 return Module["dynCall_fiifii"](index,a1,a2,a3,a4,a5);
4516 } catch(e) {
4517 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4518 asm["setThrew"](1, 0);
4519 }
4520 }
4521 function invoke_iii(index,a1,a2) {
4522 try {
4523 return Module["dynCall_iii"](index,a1,a2);
4524 } catch(e) {
4525 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4526 asm["setThrew"](1, 0);
4527 }
4528 }
4529 function invoke_iiii(index,a1,a2,a3) {
4530 try {
4531 return Module["dynCall_iiii"](index,a1,a2,a3);
4532 } catch(e) {
4533 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4534 asm["setThrew"](1, 0);
4535 }
4536 }
4537 function invoke_fif(index,a1,a2) {
4538 try {
4539 return Module["dynCall_fif"](index,a1,a2);
4540 } catch(e) {
4541 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4542 asm["setThrew"](1, 0);
4543 }
4544 }
4545 function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) {
4546 try {
4547 Module["dynCall_viiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8);
4548 } catch(e) {
4549 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4550 asm["setThrew"](1, 0);
4551 }
4552 }
4553 function invoke_vifi(index,a1,a2,a3) {
4554 try {
4555 Module["dynCall_vifi"](index,a1,a2,a3);
4556 } catch(e) {
4557 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4558 asm["setThrew"](1, 0);
4559 }
4560 }
4561 function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) {
4562 try {
4563 Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6);
4564 } catch(e) {
4565 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4566 asm["setThrew"](1, 0);
4567 }
4568 }
4569 function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) {
4570 try {
4571 return Module["dynCall_iiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9);
4572 } catch(e) {
4573 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4574 asm["setThrew"](1, 0);
4575 }
4576 }
4577 function invoke_viffiii(index,a1,a2,a3,a4,a5,a6) {
4578 try {
4579 Module["dynCall_viffiii"](index,a1,a2,a3,a4,a5,a6);
4580 } catch(e) {
4581 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4582 asm["setThrew"](1, 0);
4583 }
4584 }
4585 function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6) {
4586 try {
4587 return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6);
4588 } catch(e) {
4589 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4590 asm["setThrew"](1, 0);
4591 }
4592 }
4593 function invoke_fiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) {
4594 try {
4595 return Module["dynCall_fiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);
4596 } catch(e) {
4597 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4598 asm["setThrew"](1, 0);
4599 }
4600 }
4601 function invoke_fiiiii(index,a1,a2,a3,a4,a5) {
4602 try {
4603 return Module["dynCall_fiiiii"](index,a1,a2,a3,a4,a5);
4604 } catch(e) {
4605 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4606 asm["setThrew"](1, 0);
4607 }
4608 }
4609 function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) {
4610 try {
4611 return Module["dynCall_iiiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);
4612 } catch(e) {
4613 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4614 asm["setThrew"](1, 0);
4615 }
4616 }
4617 function invoke_vifii(index,a1,a2,a3,a4) {
4618 try {
4619 Module["dynCall_vifii"](index,a1,a2,a3,a4);
4620 } catch(e) {
4621 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4622 asm["setThrew"](1, 0);
4623 }
4624 }
4625 function invoke_fi(index,a1) {
4626 try {
4627 return Module["dynCall_fi"](index,a1);
4628 } catch(e) {
4629 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4630 asm["setThrew"](1, 0);
4631 }
4632 }
4633 function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) {
4634 try {
4635 Module["dynCall_viiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);
4636 } catch(e) {
4637 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4638 asm["setThrew"](1, 0);
4639 }
4640 }
4641 function invoke_viiiifffffif(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) {
4642 try {
4643 Module["dynCall_viiiifffffif"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);
4644 } catch(e) {
4645 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4646 asm["setThrew"](1, 0);
4647 }
4648 }
4649 function invoke_viiiiiffii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) {
4650 try {
4651 Module["dynCall_viiiiiffii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9);
4652 } catch(e) {
4653 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4654 asm["setThrew"](1, 0);
4655 }
4656 }
4657 function invoke_iifif(index,a1,a2,a3,a4) {
4658 try {
4659 return Module["dynCall_iifif"](index,a1,a2,a3,a4);
4660 } catch(e) {
4661 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4662 asm["setThrew"](1, 0);
4663 }
4664 }
4665 function invoke_iiiii(index,a1,a2,a3,a4) {
4666 try {
4667 return Module["dynCall_iiiii"](index,a1,a2,a3,a4);
4668 } catch(e) {
4669 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4670 asm["setThrew"](1, 0);
4671 }
4672 }
4673 function invoke_viii(index,a1,a2,a3) {
4674 try {
4675 Module["dynCall_viii"](index,a1,a2,a3);
4676 } catch(e) {
4677 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4678 asm["setThrew"](1, 0);
4679 }
4680 }
4681 function invoke_viifi(index,a1,a2,a3,a4) {
4682 try {
4683 Module["dynCall_viifi"](index,a1,a2,a3,a4);
4684 } catch(e) {
4685 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4686 asm["setThrew"](1, 0);
4687 }
4688 }
4689 function invoke_v(index) {
4690 try {
4691 Module["dynCall_v"](index);
4692 } catch(e) {
4693 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4694 asm["setThrew"](1, 0);
4695 }
4696 }
4697 function invoke_viif(index,a1,a2,a3) {
4698 try {
4699 Module["dynCall_viif"](index,a1,a2,a3);
4700 } catch(e) {
4701 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4702 asm["setThrew"](1, 0);
4703 }
4704 }
4705 function invoke_iiif(index,a1,a2,a3) {
4706 try {
4707 return Module["dynCall_iiif"](index,a1,a2,a3);
4708 } catch(e) {
4709 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4710 asm["setThrew"](1, 0);
4711 }
4712 }
4713 function invoke_fiiifii(index,a1,a2,a3,a4,a5,a6) {
4714 try {
4715 return Module["dynCall_fiiifii"](index,a1,a2,a3,a4,a5,a6);
4716 } catch(e) {
4717 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4718 asm["setThrew"](1, 0);
4719 }
4720 }
4721 function invoke_viiii(index,a1,a2,a3,a4) {
4722 try {
4723 Module["dynCall_viiii"](index,a1,a2,a3,a4);
4724 } catch(e) {
4725 if (typeof e !== 'number' && e !== 'longjmp') throw e;
4726 asm["setThrew"](1, 0);
4727 }
4728 }
4729 function asmPrintInt(x, y) {
4730 Module.print('int ' + x + ',' + y);// + ' ' + new Error().stack);
4731 }
4732 function asmPrintFloat(x, y) {
4733 Module.print('float ' + x + ',' + y);// + ' ' + new Error().stack);
4734 }
4735 // EMSCRIPTEN_START_ASM
4736 var asmModule = function(global, env, buffer) {
4737 'use asm';
4738 var HEAP8 = new global.Int8Array(buffer);
4739 var HEAP16 = new global.Int16Array(buffer);
4740 var HEAP32 = new global.Int32Array(buffer);
4741 var HEAPU8 = new global.Uint8Array(buffer);
4742 var HEAPU16 = new global.Uint16Array(buffer);
4743 var HEAPU32 = new global.Uint32Array(buffer);
4744 var HEAPF32 = new global.Float32Array(buffer);
4745 var HEAPF64 = new global.Float64Array(buffer);
4746 var STACKTOP=env.STACKTOP|0;
4747 var STACK_MAX=env.STACK_MAX|0;
4748 var tempDoublePtr=env.tempDoublePtr|0;
4749 var ABORT=env.ABORT|0;
4750 var cttz_i8=env.cttz_i8|0;
4751 var ctlz_i8=env.ctlz_i8|0;
4752 var __ZTVN10__cxxabiv117__class_type_infoE=env.__ZTVN10__cxxabiv117__class_type_infoE|0;
4753 var __ZTVN10__cxxabiv120__si_class_type_infoE=env.__ZTVN10__cxxabiv120__si_class_type_infoE|0;
4754 var ___dso_handle=env.___dso_handle|0;
4755 var NaN=+env.NaN;
4756 var Infinity=+env.Infinity;
4757 var __THREW__ = 0;
4758 var threwValue = 0;
4759 var setjmpId = 0;
4760 var undef = 0;
4761 var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0;
4762 var tempRet0 = 0;
4763 var tempRet1 = 0;
4764 var tempRet2 = 0;
4765 var tempRet3 = 0;
4766 var tempRet4 = 0;
4767 var tempRet5 = 0;
4768 var tempRet6 = 0;
4769 var tempRet7 = 0;
4770 var tempRet8 = 0;
4771 var tempRet9 = 0;
4772 var Math_floor=global.Math.floor;
4773 var Math_abs=global.Math.abs;
4774 var Math_sqrt=global.Math.sqrt;
4775 var Math_pow=global.Math.pow;
4776 var Math_cos=global.Math.cos;
4777 var Math_sin=global.Math.sin;
4778 var Math_tan=global.Math.tan;
4779 var Math_acos=global.Math.acos;
4780 var Math_asin=global.Math.asin;
4781 var Math_atan=global.Math.atan;
4782 var Math_atan2=global.Math.atan2;
4783 var Math_exp=global.Math.exp;
4784 var Math_log=global.Math.log;
4785 var Math_ceil=global.Math.ceil;
4786 var Math_imul=global.Math.imul;
4787 var abort=env.abort;
4788 var assert=env.assert;
4789 var asmPrintInt=env.asmPrintInt;
4790 var asmPrintFloat=env.asmPrintFloat;
4791 var Math_min=env.min;
4792 var invoke_iiiiiiii=env.invoke_iiiiiiii;
4793 var invoke_vif=env.invoke_vif;
4794 var invoke_viifii=env.invoke_viifii;
4795 var invoke_viiiii=env.invoke_viiiii;
4796 var invoke_vi=env.invoke_vi;
4797 var invoke_vii=env.invoke_vii;
4798 var invoke_viiifii=env.invoke_viiifii;
4799 var invoke_vifiii=env.invoke_vifiii;
4800 var invoke_ii=env.invoke_ii;
4801 var invoke_viiiiffffiif=env.invoke_viiiiffffiif;
4802 var invoke_fiii=env.invoke_fiii;
4803 var invoke_viiif=env.invoke_viiif;
4804 var invoke_fiiiiiiiiiii=env.invoke_fiiiiiiiiiii;
4805 var invoke_fiifii=env.invoke_fiifii;
4806 var invoke_iii=env.invoke_iii;
4807 var invoke_iiii=env.invoke_iiii;
4808 var invoke_fif=env.invoke_fif;
4809 var invoke_viiiiiiii=env.invoke_viiiiiiii;
4810 var invoke_vifi=env.invoke_vifi;
4811 var invoke_viiiiii=env.invoke_viiiiii;
4812 var invoke_iiiiiiiiii=env.invoke_iiiiiiiiii;
4813 var invoke_viffiii=env.invoke_viffiii;
4814 var invoke_iiiiiii=env.invoke_iiiiiii;
4815 var invoke_fiiiiiiiiii=env.invoke_fiiiiiiiiii;
4816 var invoke_fiiiii=env.invoke_fiiiii;
4817 var invoke_iiiiiiiiiiii=env.invoke_iiiiiiiiiiii;
4818 var invoke_vifii=env.invoke_vifii;
4819 var invoke_fi=env.invoke_fi;
4820 var invoke_viiiiiiiiii=env.invoke_viiiiiiiiii;
4821 var invoke_viiiifffffif=env.invoke_viiiifffffif;
4822 var invoke_viiiiiffii=env.invoke_viiiiiffii;
4823 var invoke_iifif=env.invoke_iifif;
4824 var invoke_iiiii=env.invoke_iiiii;
4825 var invoke_viii=env.invoke_viii;
4826 var invoke_viifi=env.invoke_viifi;
4827 var invoke_v=env.invoke_v;
4828 var invoke_viif=env.invoke_viif;
4829 var invoke_iiif=env.invoke_iiif;
4830 var invoke_fiiifii=env.invoke_fiiifii;
4831 var invoke_viiii=env.invoke_viiii;
4832 var _llvm_lifetime_end=env._llvm_lifetime_end;
4833 var _cosf=env._cosf;
4834 var _fabsf=env._fabsf;
4835 var _sysconf=env._sysconf;
4836 var ___cxa_throw=env.___cxa_throw;
4837 var _atexit=env._atexit;
4838 var _abort=env._abort;
4839 var _fprintf=env._fprintf;
4840 var _llvm_eh_exception=env._llvm_eh_exception;
4841 var _printf=env._printf;
4842 var _acosf=env._acosf;
4843 var _fflush=env._fflush;
4844 var __reallyNegative=env.__reallyNegative;
4845 var _sqrtf=env._sqrtf;
4846 var _llvm_pow_f32=env._llvm_pow_f32;
4847 var ___setErrNo=env.___setErrNo;
4848 var _fwrite=env._fwrite;
4849 var _send=env._send;
4850 var _write=env._write;
4851 var _exit=env._exit;
4852 var _atan2f=env._atan2f;
4853 var ___cxa_pure_virtual=env.___cxa_pure_virtual;
4854 var ___cxa_is_number_type=env.___cxa_is_number_type;
4855 var _time=env._time;
4856 var __formatString=env.__formatString;
4857 var ___cxa_does_inherit=env.___cxa_does_inherit;
4858 var ___cxa_guard_acquire=env.___cxa_guard_acquire;
4859 var __ZSt9terminatev=env.__ZSt9terminatev;
4860 var _gettimeofday=env._gettimeofday;
4861 var ___cxa_find_matching_catch=env.___cxa_find_matching_catch;
4862 var _sinf=env._sinf;
4863 var ___assert_func=env.___assert_func;
4864 var __ZSt18uncaught_exceptionv=env.__ZSt18uncaught_exceptionv;
4865 var _pwrite=env._pwrite;
4866 var ___cxa_call_unexpected=env.___cxa_call_unexpected;
4867 var _sbrk=env._sbrk;
4868 var ___cxa_guard_abort=env.___cxa_guard_abort;
4869 var ___cxa_allocate_exception=env.___cxa_allocate_exception;
4870 var ___errno_location=env.___errno_location;
4871 var ___gxx_personality_v0=env.___gxx_personality_v0;
4872 var _llvm_lifetime_start=env._llvm_lifetime_start;
4873 var _fmod=env._fmod;
4874 var ___cxa_guard_release=env.___cxa_guard_release;
4875 var __exit=env.__exit;
4876 var ___resumeException=env.___resumeException;
4877 // EMSCRIPTEN_START_FUNCS
4878 function __ZN20btConvexHullInternal9shiftFaceEPNS_4FaceEf20btAlignedObjectArrayIPNS_6VertexEE(i1, i2, d3, i4) {
4879 i1 = i1 | 0;
4880 i2 = i2 | 0;
4881 d3 = +d3;
4882 i4 = i4 | 0;
4883 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, d15 = 0.0, d16 = 0.0, d17 = 0.0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0, i87 = 0, i88 = 0, i89 = 0, i90 = 0, i91 = 0, i92 = 0, i93 = 0, i94 = 0, i95 = 0, i96 = 0, i97 = 0, i98 = 0, i99 = 0, i100 = 0, i101 = 0, i102 = 0, i103 = 0, i104 = 0, i105 = 0, i106 = 0, i107 = 0, i108 = 0, i109 = 0, i110 = 0, i111 = 0, i112 = 0, i113 = 0, i114 = 0, i115 = 0, i116 = 0, i117 = 0, i118 = 0, i119 = 0, i120 = 0, i121 = 0, i122 = 0, i123 = 0, i124 = 0, i125 = 0, i126 = 0, i127 = 0, i128 = 0, i129 = 0, i130 = 0, i131 = 0, i132 = 0, i133 = 0, i134 = 0, i135 = 0, i136 = 0, i137 = 0, i138 = 0, i139 = 0, i140 = 0, i141 = 0, i142 = 0, i143 = 0, i144 = 0, i145 = 0, i146 = 0, i147 = 0, i148 = 0, i149 = 0, i150 = 0, i151 = 0, i152 = 0, i153 = 0, i154 = 0, i155 = 0, i156 = 0, i157 = 0, i158 = 0, i159 = 0, i160 = 0, i161 = 0, i162 = 0, i163 = 0, i164 = 0, i165 = 0, i166 = 0, i167 = 0, i168 = 0, i169 = 0, i170 = 0, i171 = 0, i172 = 0, i173 = 0, i174 = 0, i175 = 0, i176 = 0, i177 = 0, i178 = 0, i179 = 0, i180 = 0, i181 = 0, i182 = 0, i183 = 0, i184 = 0, i185 = 0, i186 = 0, i187 = 0, i188 = 0, i189 = 0, i190 = 0, i191 = 0, i192 = 0, i193 = 0, i194 = 0, i195 = 0, i196 = 0, i197 = 0, i198 = 0, i199 = 0, i200 = 0, i201 = 0, i202 = 0, i203 = 0, i204 = 0, i205 = 0, i206 = 0, i207 = 0, i208 = 0, i209 = 0, i210 = 0, i211 = 0, i212 = 0, i213 = 0, i214 = 0, i215 = 0, i216 = 0, i217 = 0, i218 = 0, i219 = 0, i220 = 0, i221 = 0, i222 = 0, i223 = 0, i224 = 0, i225 = 0, i226 = 0, i227 = 0, i228 = 0, i229 = 0, i230 = 0, i231 = 0, i232 = 0, i233 = 0, i234 = 0, i235 = 0, i236 = 0, i237 = 0, i238 = 0, i239 = 0, i240 = 0, i241 = 0, i242 = 0, i243 = 0, i244 = 0, i245 = 0, i246 = 0, i247 = 0, i248 = 0, i249 = 0, i250 = 0, i251 = 0, i252 = 0, i253 = 0, i254 = 0, i255 = 0, i256 = 0, i257 = 0, i258 = 0, i259 = 0, i260 = 0, i261 = 0, i262 = 0, i263 = 0, i264 = 0, i265 = 0, i266 = 0, i267 = 0, i268 = 0, i269 = 0, i270 = 0, i271 = 0, i272 = 0, i273 = 0, i274 = 0, i275 = 0, i276 = 0, i277 = 0, i278 = 0, i279 = 0, i280 = 0, i281 = 0, i282 = 0, i283 = 0, i284 = 0, i285 = 0, i286 = 0, i287 = 0, i288 = 0, i289 = 0, i290 = 0, i291 = 0, i292 = 0, i293 = 0, i294 = 0, i295 = 0, i296 = 0, i297 = 0, i298 = 0, i299 = 0, i300 = 0, i301 = 0, i302 = 0;
4884 i5 = STACKTOP;
4885 STACKTOP = STACKTOP + 296 | 0;
4886 i6 = i5 | 0;
4887 i7 = i5 + 16 | 0;
4888 i8 = i5 + 32 | 0;
4889 i9 = i5 + 56 | 0;
4890 i10 = i5 + 96 | 0;
4891 i11 = i5 + 136 | 0;
4892 i12 = i5 + 176 | 0;
4893 i13 = i5 + 216 | 0;
4894 i14 = i5 + 256 | 0;
4895 __ZN20btConvexHullInternal11getBtNormalEPNS_4FaceE(i7, i1, i2);
4896 d15 = -0.0 - d3;
4897 d3 = +HEAPF32[i7 >> 2] * d15;
4898 d16 = +HEAPF32[i7 + 4 >> 2] * d15;
4899 d17 = +HEAPF32[i7 + 8 >> 2] * d15;
4900 i7 = i6 | 0;
4901 HEAPF32[i7 >> 2] = d3;
4902 i18 = i6 + 4 | 0;
4903 HEAPF32[i18 >> 2] = d16;
4904 i19 = i6 + 8 | 0;
4905 HEAPF32[i19 >> 2] = d17;
4906 HEAPF32[i6 + 12 >> 2] = 0.0;
4907 d15 = +HEAPF32[i1 >> 2];
4908 if (d15 > 0.0) {
4909 HEAPF32[i7 >> 2] = d3 / d15;
4910 }
4911 d15 = +HEAPF32[i1 + 4 >> 2];
4912 if (d15 > 0.0) {
4913 HEAPF32[i18 >> 2] = d16 / d15;
4914 }
4915 d15 = +HEAPF32[i1 + 8 >> 2];
4916 if (d15 > 0.0) {
4917 HEAPF32[i19 >> 2] = d17 / d15;
4918 }
4919 i19 = ~~+HEAPF32[i6 + (HEAP32[i1 + 108 >> 2] << 2) >> 2];
4920 i18 = ~~+HEAPF32[i6 + (HEAP32[i1 + 112 >> 2] << 2) >> 2];
4921 i7 = ~~+HEAPF32[i6 + (HEAP32[i1 + 104 >> 2] << 2) >> 2];
4922 if ((i18 | i19 | i7 | 0) == 0) {
4923 i20 = 1;
4924 STACKTOP = i5;
4925 return i20 | 0;
4926 }
4927 i6 = i2 + 32 | 0;
4928 i21 = HEAP32[i6 >> 2] | 0;
4929 i22 = i2 + 52 | 0;
4930 i23 = HEAP32[i22 >> 2] | 0;
4931 i24 = Math_imul(i23, i21) | 0;
4932 i25 = i2 + 36 | 0;
4933 i26 = HEAP32[i25 >> 2] | 0;
4934 i27 = i2 + 48 | 0;
4935 i28 = HEAP32[i27 >> 2] | 0;
4936 i29 = i24 - (Math_imul(i28, i26) | 0) | 0;
4937 i24 = i29;
4938 i30 = (i29 | 0) < 0 ? -1 : 0;
4939 i29 = i2 + 44 | 0;
4940 i31 = HEAP32[i29 >> 2] | 0;
4941 i32 = Math_imul(i31, i26) | 0;
4942 i26 = i2 + 28 | 0;
4943 i33 = HEAP32[i26 >> 2] | 0;
4944 i34 = i32 - (Math_imul(i33, i23) | 0) | 0;
4945 i23 = i34;
4946 i32 = (i34 | 0) < 0 ? -1 : 0;
4947 i34 = Math_imul(i33, i28) | 0;
4948 i28 = i34 - (Math_imul(i31, i21) | 0) | 0;
4949 i21 = i28;
4950 i31 = (i28 | 0) < 0 ? -1 : 0;
4951 i28 = i8 | 0;
4952 HEAP32[i28 >> 2] = i24;
4953 HEAP32[i28 + 4 >> 2] = i30;
4954 i28 = i8 + 8 | 0;
4955 HEAP32[i28 >> 2] = i23;
4956 HEAP32[i28 + 4 >> 2] = i32;
4957 i28 = i8 + 16 | 0;
4958 HEAP32[i28 >> 2] = i21;
4959 HEAP32[i28 + 4 >> 2] = i31;
4960 i28 = i2 + 12 | 0;
4961 i34 = HEAP32[i28 >> 2] | 0;
4962 i33 = ___muldi3(i34, (i34 | 0) < 0 ? -1 : 0, i24, i30) | 0;
4963 i35 = tempRet0;
4964 i36 = i2 + 16 | 0;
4965 i37 = HEAP32[i36 >> 2] | 0;
4966 i38 = ___muldi3(i37, (i37 | 0) < 0 ? -1 : 0, i23, i32) | 0;
4967 i39 = _i64Add(i38, tempRet0, i33, i35) | 0;
4968 i35 = tempRet0;
4969 i33 = i2 + 20 | 0;
4970 i38 = HEAP32[i33 >> 2] | 0;
4971 i40 = ___muldi3(i38, (i38 | 0) < 0 ? -1 : 0, i21, i31) | 0;
4972 i41 = _i64Add(i39, i35, i40, tempRet0) | 0;
4973 i40 = tempRet0;
4974 i35 = i34 + i19 | 0;
4975 i19 = i37 + i18 | 0;
4976 i18 = i38 + i7 | 0;
4977 i7 = i35;
4978 i38 = (i35 | 0) < 0 ? -1 : 0;
4979 i37 = ___muldi3(i7, i38, i24, i30) | 0;
4980 i30 = tempRet0;
4981 i24 = i19;
4982 i34 = (i19 | 0) < 0 ? -1 : 0;
4983 i39 = ___muldi3(i24, i34, i23, i32) | 0;
4984 i32 = _i64Add(i39, tempRet0, i37, i30) | 0;
4985 i30 = tempRet0;
4986 i37 = i18;
4987 i39 = (i18 | 0) < 0 ? -1 : 0;
4988 i23 = ___muldi3(i37, i39, i21, i31) | 0;
4989 i31 = _i64Add(i32, i30, i23, tempRet0) | 0;
4990 i23 = tempRet0;
4991 if (!((i23 | 0) < (i40 | 0) | (i23 | 0) == (i40 | 0) & i31 >>> 0 < i41 >>> 0)) {
4992 i20 = 0;
4993 STACKTOP = i5;
4994 return i20 | 0;
4995 }
4996 i41 = HEAP32[i2 + 4 >> 2] | 0;
4997 i40 = HEAP32[i41 + 8 >> 2] | 0;
4998 __ZNK20btConvexHullInternal6Vertex3dotERKNS_7Point64E(i9, i41, i8);
4999 i41 = __ZNK20btConvexHullInternal11Rational1287compareEx(i9, i31, i23) | 0;
5000 i30 = i9;
5001 do {
5002 if ((i41 | 0) > -1) {
5003 i32 = i10;
5004 i21 = i40;
5005 i42 = i41;
5006 i43 = i40;
5007 while (1) {
5008 __ZNK20btConvexHullInternal6Vertex3dotERKNS_7Point64E(i10, HEAP32[i43 + 12 >> 2] | 0, i8);
5009 if ((__ZNK20btConvexHullInternal11Rational1287compareERKS0_(i10, i9) | 0) < 0) {
5010 i44 = __ZNK20btConvexHullInternal11Rational1287compareEx(i10, i31, i23) | 0;
5011 HEAP32[i30 >> 2] = HEAP32[i32 >> 2];
5012 HEAP32[i30 + 4 >> 2] = HEAP32[i32 + 4 >> 2];
5013 HEAP32[i30 + 8 >> 2] = HEAP32[i32 + 8 >> 2];
5014 HEAP32[i30 + 12 >> 2] = HEAP32[i32 + 12 >> 2];
5015 HEAP32[i30 + 16 >> 2] = HEAP32[i32 + 16 >> 2];
5016 HEAP32[i30 + 20 >> 2] = HEAP32[i32 + 20 >> 2];
5017 HEAP32[i30 + 24 >> 2] = HEAP32[i32 + 24 >> 2];
5018 HEAP32[i30 + 28 >> 2] = HEAP32[i32 + 28 >> 2];
5019 HEAP32[i30 + 32 >> 2] = HEAP32[i32 + 32 >> 2];
5020 HEAP8[i30 + 36 | 0] = HEAP8[i32 + 36 | 0] | 0;
5021 i45 = HEAP32[i43 + 8 >> 2] | 0;
5022 if ((i44 | 0) < 0) {
5023 break;
5024 } else {
5025 i46 = i45;
5026 i47 = i44;
5027 i48 = i45;
5028 }
5029 } else {
5030 i46 = i21;
5031 i47 = i42;
5032 i48 = i43;
5033 }
5034 i44 = HEAP32[i48 + 4 >> 2] | 0;
5035 if ((i44 | 0) == (i46 | 0)) {
5036 i20 = 0;
5037 i49 = 1612;
5038 break;
5039 } else {
5040 i21 = i46;
5041 i42 = i47;
5042 i43 = i44;
5043 }
5044 }
5045 if ((i49 | 0) == 1612) {
5046 STACKTOP = i5;
5047 return i20 | 0;
5048 }
5049 if ((i45 | 0) == 0) {
5050 i20 = 0;
5051 } else {
5052 i50 = i45;
5053 i51 = i42;
5054 break;
5055 }
5056 STACKTOP = i5;
5057 return i20 | 0;
5058 } else {
5059 i43 = i11;
5060 i21 = i40;
5061 i32 = i40;
5062 while (1) {
5063 __ZNK20btConvexHullInternal6Vertex3dotERKNS_7Point64E(i11, HEAP32[i32 + 12 >> 2] | 0, i8);
5064 if ((__ZNK20btConvexHullInternal11Rational1287compareERKS0_(i11, i9) | 0) > 0) {
5065 i52 = __ZNK20btConvexHullInternal11Rational1287compareEx(i11, i31, i23) | 0;
5066 if ((i52 | 0) > -1) {
5067 break;
5068 }
5069 HEAP32[i30 >> 2] = HEAP32[i43 >> 2];
5070 HEAP32[i30 + 4 >> 2] = HEAP32[i43 + 4 >> 2];
5071 HEAP32[i30 + 8 >> 2] = HEAP32[i43 + 8 >> 2];
5072 HEAP32[i30 + 12 >> 2] = HEAP32[i43 + 12 >> 2];
5073 HEAP32[i30 + 16 >> 2] = HEAP32[i43 + 16 >> 2];
5074 HEAP32[i30 + 20 >> 2] = HEAP32[i43 + 20 >> 2];
5075 HEAP32[i30 + 24 >> 2] = HEAP32[i43 + 24 >> 2];
5076 HEAP32[i30 + 28 >> 2] = HEAP32[i43 + 28 >> 2];
5077 HEAP32[i30 + 32 >> 2] = HEAP32[i43 + 32 >> 2];
5078 HEAP8[i30 + 36 | 0] = HEAP8[i43 + 36 | 0] | 0;
5079 i44 = HEAP32[i32 + 8 >> 2] | 0;
5080 i53 = i44;
5081 i54 = i44;
5082 } else {
5083 i53 = i21;
5084 i54 = i32;
5085 }
5086 i44 = HEAP32[i54 + 4 >> 2] | 0;
5087 if ((i44 | 0) == (i53 | 0)) {
5088 i20 = 1;
5089 i49 = 1615;
5090 break;
5091 } else {
5092 i21 = i53;
5093 i32 = i44;
5094 }
5095 }
5096 if ((i49 | 0) == 1615) {
5097 STACKTOP = i5;
5098 return i20 | 0;
5099 }
5100 if ((i32 | 0) == 0) {
5101 i20 = 1;
5102 } else {
5103 i50 = i32;
5104 i51 = i52;
5105 break;
5106 }
5107 STACKTOP = i5;
5108 return i20 | 0;
5109 }
5110 } while (0);
5111 L1672 : do {
5112 if ((i51 | 0) == 0) {
5113 i52 = i50 + 8 | 0;
5114 i53 = HEAP32[HEAP32[i52 >> 2] >> 2] | 0;
5115 while (1) {
5116 __ZNK20btConvexHullInternal6Vertex3dotERKNS_7Point64E(i12, HEAP32[i53 + 12 >> 2] | 0, i8);
5117 if ((__ZNK20btConvexHullInternal11Rational1287compareEx(i12, i31, i23) | 0) >= 1) {
5118 break L1672;
5119 }
5120 i54 = HEAP32[i53 >> 2] | 0;
5121 if ((i54 | 0) == (HEAP32[i52 >> 2] | 0)) {
5122 i20 = 1;
5123 break;
5124 } else {
5125 i53 = i54;
5126 }
5127 }
5128 STACKTOP = i5;
5129 return i20 | 0;
5130 }
5131 } while (0);
5132 i12 = i1 + 32 | 0;
5133 i53 = i4 + 4 | 0;
5134 i52 = i4 + 8 | 0;
5135 i32 = i4 + 12 | 0;
5136 i54 = i4 + 16 | 0;
5137 i4 = i1 + 56 | 0;
5138 i30 = i1 + 116 | 0;
5139 i11 = i1 + 48 | 0;
5140 i9 = i1 + 100 | 0;
5141 i40 = i1 + 120 | 0;
5142 i45 = (i35 | 0) < 0;
5143 i47 = _i64Subtract(0, 0, i7, i38) | 0;
5144 i46 = tempRet0;
5145 i48 = (i19 | 0) < 0;
5146 i10 = _i64Subtract(0, 0, i24, i34) | 0;
5147 i41 = tempRet0;
5148 i21 = (i18 | 0) < 0;
5149 i43 = _i64Subtract(0, 0, i37, i39) | 0;
5150 i42 = tempRet0;
5151 i44 = i50;
5152 i50 = i51;
5153 i51 = 0;
5154 i55 = 0;
5155 i56 = 0;
5156 L1679 : while (1) {
5157 i57 = (i50 | 0) == 0;
5158 L1681 : do {
5159 if (i57) {
5160 i58 = HEAP32[HEAP32[i44 + 8 >> 2] >> 2] | 0;
5161 i59 = i44;
5162 i60 = i58;
5163 while (1) {
5164 __ZNK20btConvexHullInternal6Vertex3dotERKNS_7Point64E(i13, HEAP32[i60 + 12 >> 2] | 0, i8);
5165 if ((__ZNK20btConvexHullInternal11Rational1287compareEx(i13, i31, i23) | 0) > -1) {
5166 i61 = i59;
5167 break L1681;
5168 }
5169 i62 = HEAP32[i60 >> 2] | 0;
5170 if ((i62 | 0) == (i58 | 0)) {
5171 i20 = 1;
5172 i49 = 1618;
5173 break L1679;
5174 } else {
5175 i59 = HEAP32[i60 + 8 >> 2] | 0;
5176 i60 = i62;
5177 }
5178 }
5179 } else {
5180 i61 = i44;
5181 }
5182 } while (0);
5183 if ((i51 | 0) == 0) {
5184 i63 = i61;
5185 } else {
5186 if ((i61 | 0) == (i51 | 0)) {
5187 break;
5188 } else {
5189 i63 = i51;
5190 }
5191 }
5192 i60 = i61 + 8 | 0;
5193 i59 = HEAP32[i60 >> 2] | 0;
5194 do {
5195 i59 = HEAP32[(HEAP32[i59 + 8 >> 2] | 0) + 4 >> 2] | 0;
5196 i64 = i59 + 12 | 0;
5197 __ZNK20btConvexHullInternal6Vertex3dotERKNS_7Point64E(i14, HEAP32[i64 >> 2] | 0, i8);
5198 i65 = __ZNK20btConvexHullInternal11Rational1287compareEx(i14, i31, i23) | 0;
5199 } while ((i65 | 0) <= -1);
5200 if ((i65 | 0) > 0) {
5201 i58 = HEAP32[i64 >> 2] | 0;
5202 i62 = i59 + 8 | 0;
5203 i66 = HEAP32[i62 >> 2] | 0;
5204 i67 = i66 + 4 | 0;
5205 i68 = HEAP32[i67 >> 2] | 0;
5206 i69 = i58 + 8 | 0;
5207 if ((i68 | 0) == (i66 | 0)) {
5208 HEAP32[i69 >> 2] = 0;
5209 } else {
5210 HEAP32[i69 >> 2] = i68;
5211 i68 = HEAP32[i67 >> 2] | 0;
5212 i69 = i66 | 0;
5213 i70 = HEAP32[i69 >> 2] | 0;
5214 HEAP32[i68 >> 2] = i70;
5215 HEAP32[i70 + 4 >> 2] = i68;
5216 HEAP32[i69 >> 2] = i66;
5217 HEAP32[i67 >> 2] = i66;
5218 }
5219 i67 = HEAP32[i59 + 16 >> 2] | 0;
5220 i69 = HEAP32[i67 + 32 >> 2] | 0;
5221 i68 = HEAP32[i67 + 52 >> 2] | 0;
5222 i70 = Math_imul(i68, i69) | 0;
5223 i71 = HEAP32[i67 + 36 >> 2] | 0;
5224 i72 = HEAP32[i67 + 48 >> 2] | 0;
5225 i73 = i70 - (Math_imul(i72, i71) | 0) | 0;
5226 i70 = i73;
5227 i74 = (i73 | 0) < 0 ? -1 : 0;
5228 i73 = HEAP32[i67 + 44 >> 2] | 0;
5229 i75 = Math_imul(i73, i71) | 0;
5230 i71 = HEAP32[i67 + 28 >> 2] | 0;
5231 i76 = i75 - (Math_imul(i71, i68) | 0) | 0;
5232 i68 = i76;
5233 i75 = (i76 | 0) < 0 ? -1 : 0;
5234 i76 = Math_imul(i71, i72) | 0;
5235 i72 = i76 - (Math_imul(i73, i69) | 0) | 0;
5236 i69 = i72;
5237 i73 = (i72 | 0) < 0 ? -1 : 0;
5238 i72 = HEAP32[(HEAP32[i62 >> 2] | 0) + 16 >> 2] | 0;
5239 i62 = HEAP32[i72 + 32 >> 2] | 0;
5240 i76 = HEAP32[i72 + 52 >> 2] | 0;
5241 i71 = Math_imul(i76, i62) | 0;
5242 i77 = HEAP32[i72 + 36 >> 2] | 0;
5243 i78 = HEAP32[i72 + 48 >> 2] | 0;
5244 i79 = i71 - (Math_imul(i78, i77) | 0) | 0;
5245 i71 = i79;
5246 i80 = (i79 | 0) < 0 ? -1 : 0;
5247 i79 = HEAP32[i72 + 44 >> 2] | 0;
5248 i81 = Math_imul(i79, i77) | 0;
5249 i77 = HEAP32[i72 + 28 >> 2] | 0;
5250 i82 = i81 - (Math_imul(i77, i76) | 0) | 0;
5251 i76 = i82;
5252 i81 = (i82 | 0) < 0 ? -1 : 0;
5253 i82 = Math_imul(i77, i78) | 0;
5254 i78 = i82 - (Math_imul(i79, i62) | 0) | 0;
5255 i62 = i78;
5256 i79 = (i78 | 0) < 0 ? -1 : 0;
5257 i78 = HEAP32[i26 >> 2] | 0;
5258 i82 = i78;
5259 i77 = (i78 | 0) < 0 ? -1 : 0;
5260 i78 = ___muldi3(i82, i77, i70, i74) | 0;
5261 i83 = tempRet0;
5262 i84 = HEAP32[i6 >> 2] | 0;
5263 i85 = i84;
5264 i86 = (i84 | 0) < 0 ? -1 : 0;
5265 i84 = ___muldi3(i85, i86, i68, i75) | 0;
5266 i87 = _i64Add(i84, tempRet0, i78, i83) | 0;
5267 i83 = tempRet0;
5268 i78 = HEAP32[i25 >> 2] | 0;
5269 i84 = i78;
5270 i88 = (i78 | 0) < 0 ? -1 : 0;
5271 i78 = ___muldi3(i84, i88, i69, i73) | 0;
5272 i89 = _i64Add(i87, i83, i78, tempRet0) | 0;
5273 i78 = tempRet0;
5274 i83 = HEAP32[i29 >> 2] | 0;
5275 i87 = i83;
5276 i90 = (i83 | 0) < 0 ? -1 : 0;
5277 i83 = ___muldi3(i87, i90, i70, i74) | 0;
5278 i91 = tempRet0;
5279 i92 = HEAP32[i27 >> 2] | 0;
5280 i93 = i92;
5281 i94 = (i92 | 0) < 0 ? -1 : 0;
5282 i92 = ___muldi3(i93, i94, i68, i75) | 0;
5283 i95 = _i64Add(i92, tempRet0, i83, i91) | 0;
5284 i91 = tempRet0;
5285 i83 = HEAP32[i22 >> 2] | 0;
5286 i92 = i83;
5287 i96 = (i83 | 0) < 0 ? -1 : 0;
5288 i83 = ___muldi3(i92, i96, i69, i73) | 0;
5289 i97 = _i64Add(i95, i91, i83, tempRet0) | 0;
5290 i83 = tempRet0;
5291 i91 = ___muldi3(i82, i77, i71, i80) | 0;
5292 i77 = tempRet0;
5293 i82 = ___muldi3(i85, i86, i76, i81) | 0;
5294 i86 = _i64Add(i82, tempRet0, i91, i77) | 0;
5295 i77 = tempRet0;
5296 i91 = ___muldi3(i84, i88, i62, i79) | 0;
5297 i88 = _i64Add(i86, i77, i91, tempRet0) | 0;
5298 i91 = tempRet0;
5299 i77 = ___muldi3(i87, i90, i71, i80) | 0;
5300 i90 = tempRet0;
5301 i87 = ___muldi3(i93, i94, i76, i81) | 0;
5302 i94 = _i64Add(i87, tempRet0, i77, i90) | 0;
5303 i90 = tempRet0;
5304 i77 = ___muldi3(i92, i96, i62, i79) | 0;
5305 i96 = _i64Add(i94, i90, i77, tempRet0) | 0;
5306 i77 = tempRet0;
5307 i90 = (HEAP32[i67 + 12 >> 2] | 0) - i35 | 0;
5308 i94 = (HEAP32[i67 + 16 >> 2] | 0) - i19 | 0;
5309 i92 = (HEAP32[i67 + 20 >> 2] | 0) - i18 | 0;
5310 i67 = ___muldi3(i90, (i90 | 0) < 0 ? -1 : 0, i70, i74) | 0;
5311 i74 = tempRet0;
5312 i70 = ___muldi3(i94, (i94 | 0) < 0 ? -1 : 0, i68, i75) | 0;
5313 i75 = _i64Add(i70, tempRet0, i67, i74) | 0;
5314 i74 = tempRet0;
5315 i67 = ___muldi3(i92, (i92 | 0) < 0 ? -1 : 0, i69, i73) | 0;
5316 i73 = _i64Add(i75, i74, i67, tempRet0) | 0;
5317 i67 = tempRet0;
5318 i74 = (HEAP32[i72 + 12 >> 2] | 0) - i35 | 0;
5319 i75 = (HEAP32[i72 + 16 >> 2] | 0) - i19 | 0;
5320 i69 = (HEAP32[i72 + 20 >> 2] | 0) - i18 | 0;
5321 i72 = ___muldi3(i74, (i74 | 0) < 0 ? -1 : 0, i71, i80) | 0;
5322 i80 = tempRet0;
5323 i71 = ___muldi3(i75, (i75 | 0) < 0 ? -1 : 0, i76, i81) | 0;
5324 i81 = _i64Add(i71, tempRet0, i72, i80) | 0;
5325 i80 = tempRet0;
5326 i72 = ___muldi3(i69, (i69 | 0) < 0 ? -1 : 0, i62, i79) | 0;
5327 i79 = _i64Add(i81, i80, i72, tempRet0) | 0;
5328 i72 = tempRet0;
5329 i80 = 0;
5330 i81 = (i78 | 0) < (i80 | 0) | (i78 | 0) == (i80 | 0) & i89 >>> 0 < 0 >>> 0;
5331 i80 = _i64Subtract(0, 0, i89, i78) | 0;
5332 i62 = i81 ? tempRet0 : i78;
5333 i78 = 0;
5334 i69 = (i77 | 0) < (i78 | 0) | (i77 | 0) == (i78 | 0) & i96 >>> 0 < 0 >>> 0;
5335 if (i69) {
5336 i78 = _i64Subtract(0, 0, i96, i77) | 0;
5337 i98 = i81 ^ 1;
5338 i99 = tempRet0;
5339 i100 = i78;
5340 } else {
5341 i98 = i81;
5342 i99 = i77;
5343 i100 = i96;
5344 }
5345 i78 = (i81 ? i80 : i89) | 0;
5346 i89 = i62 & 0;
5347 i80 = i100 | 0;
5348 i71 = i99 & 0;
5349 i76 = ___muldi3(i80, i71, i78, i89) | 0;
5350 i75 = tempRet0;
5351 i74 = i99;
5352 i92 = 0;
5353 i70 = ___muldi3(i74, i92, i78, i89) | 0;
5354 i68 = tempRet0;
5355 i94 = i62;
5356 i62 = 0;
5357 i90 = ___muldi3(i80, i71, i94, i62) | 0;
5358 i71 = tempRet0;
5359 i80 = ___muldi3(i74, i92, i94, i62) | 0;
5360 i92 = tempRet0;
5361 i74 = _i64Add(i70 | 0, i68 & 0, i90 | 0, i71 & 0) | 0;
5362 i90 = tempRet0;
5363 i70 = _i64Add(i68, 0, i80, i92) | 0;
5364 i92 = _i64Add(i70, tempRet0, i71, 0) | 0;
5365 i71 = tempRet0;
5366 i70 = _llvm_uadd_with_overflow_i64(i76 | 0, i75 | 0, 0, i74 | 0) | 0;
5367 i74 = i70;
5368 i70 = tempRet0;
5369 i75 = _i64Add(i92, i71, tempRet1 & 1, 0) | 0;
5370 i71 = _i64Add(i75, tempRet0, i90, 0) | 0;
5371 i90 = tempRet0;
5372 if (i98) {
5373 i75 = _i64Subtract(0, 0, i74, i70) | 0;
5374 i92 = tempRet0;
5375 i76 = _i64Add((i74 | 0) == 0 & (i70 | 0) == 0 & 1, 0, ~i71, ~i90) | 0;
5376 i101 = i92;
5377 i102 = i75;
5378 i103 = tempRet0;
5379 i104 = i76;
5380 } else {
5381 i101 = i70;
5382 i102 = i74;
5383 i103 = i90;
5384 i104 = i71;
5385 }
5386 i71 = 0;
5387 i90 = (i83 | 0) < (i71 | 0) | (i83 | 0) == (i71 | 0) & i97 >>> 0 < 0 >>> 0;
5388 i71 = _i64Subtract(0, 0, i97, i83) | 0;
5389 i74 = i90 ? tempRet0 : i83;
5390 i83 = 0;
5391 i70 = (i91 | 0) < (i83 | 0) | (i91 | 0) == (i83 | 0) & i88 >>> 0 < 0 >>> 0;
5392 if (i70) {
5393 i83 = _i64Subtract(0, 0, i88, i91) | 0;
5394 i105 = i90 ^ 1;
5395 i106 = tempRet0;
5396 i107 = i83;
5397 } else {
5398 i105 = i90;
5399 i106 = i91;
5400 i107 = i88;
5401 }
5402 i83 = (i90 ? i71 : i97) | 0;
5403 i97 = i74 & 0;
5404 i71 = i107 | 0;
5405 i76 = i106 & 0;
5406 i75 = ___muldi3(i71, i76, i83, i97) | 0;
5407 i92 = tempRet0;
5408 i80 = i106;
5409 i68 = 0;
5410 i87 = ___muldi3(i80, i68, i83, i97) | 0;
5411 i93 = tempRet0;
5412 i86 = i74;
5413 i74 = 0;
5414 i84 = ___muldi3(i71, i76, i86, i74) | 0;
5415 i76 = tempRet0;
5416 i71 = ___muldi3(i80, i68, i86, i74) | 0;
5417 i68 = tempRet0;
5418 i80 = _i64Add(i87 | 0, i93 & 0, i84 | 0, i76 & 0) | 0;
5419 i84 = tempRet0;
5420 i87 = _i64Add(i93, 0, i71, i68) | 0;
5421 i68 = _i64Add(i87, tempRet0, i76, 0) | 0;
5422 i76 = tempRet0;
5423 i87 = _llvm_uadd_with_overflow_i64(i75 | 0, i92 | 0, 0, i80 | 0) | 0;
5424 i80 = i87;
5425 i87 = tempRet0;
5426 i92 = _i64Add(i68, i76, tempRet1 & 1, 0) | 0;
5427 i76 = _i64Add(i92, tempRet0, i84, 0) | 0;
5428 i84 = tempRet0;
5429 if (i105) {
5430 i92 = _i64Subtract(0, 0, i80, i87) | 0;
5431 i68 = tempRet0;
5432 i75 = _i64Add((i80 | 0) == 0 & (i87 | 0) == 0 & 1, 0, ~i76, ~i84) | 0;
5433 i108 = i68;
5434 i109 = i92;
5435 i110 = tempRet0;
5436 i111 = i75;
5437 } else {
5438 i108 = i87;
5439 i109 = i80;
5440 i110 = i84;
5441 i111 = i76;
5442 }
5443 i76 = _i64Subtract(0, 0, i109, i108) | 0;
5444 i84 = _llvm_uadd_with_overflow_i64(i102 | 0, i101 | 0, i76 | 0, tempRet0 | 0) | 0;
5445 i76 = i84;
5446 i84 = tempRet0;
5447 i80 = tempRet1 & 1;
5448 i87 = _i64Add(i104, i103, ~i111, ~i110) | 0;
5449 i75 = _i64Add(i87, tempRet0, (i109 | 0) == 0 & (i108 | 0) == 0 & 1, 0) | 0;
5450 i87 = _i64Add(i75, tempRet0, i80, 0) | 0;
5451 i80 = tempRet0;
5452 i75 = __ZN20btConvexHullInternal4PoolINS_6VertexEE9newObjectEv(i12) | 0;
5453 HEAP32[i75 + 100 >> 2] = -1;
5454 HEAP32[i75 + 104 >> 2] = -1;
5455 i92 = HEAP32[i26 >> 2] | 0;
5456 i68 = i92;
5457 i71 = (i92 | 0) < 0 ? -1 : 0;
5458 i92 = ___muldi3(i68, i71, i73, i67) | 0;
5459 i93 = tempRet0;
5460 i82 = 0;
5461 i85 = (i93 | 0) < (i82 | 0) | (i93 | 0) == (i82 | 0) & i92 >>> 0 < 0 >>> 0;
5462 i82 = _i64Subtract(0, 0, i92, i93) | 0;
5463 i95 = i85 ? tempRet0 : i93;
5464 if (i69) {
5465 i93 = _i64Subtract(0, 0, i96, i77) | 0;
5466 i112 = i85 ^ 1;
5467 i113 = tempRet0;
5468 i114 = i93;
5469 } else {
5470 i112 = i85;
5471 i113 = i77;
5472 i114 = i96;
5473 }
5474 i93 = (i85 ? i82 : i92) | 0;
5475 i92 = i95 & 0;
5476 i82 = i114 | 0;
5477 i85 = i113 & 0;
5478 i115 = ___muldi3(i82, i85, i93, i92) | 0;
5479 i116 = tempRet0;
5480 i117 = i113;
5481 i118 = 0;
5482 i119 = ___muldi3(i117, i118, i93, i92) | 0;
5483 i92 = tempRet0;
5484 i93 = i95;
5485 i95 = 0;
5486 i120 = ___muldi3(i82, i85, i93, i95) | 0;
5487 i85 = tempRet0;
5488 i82 = ___muldi3(i117, i118, i93, i95) | 0;
5489 i95 = tempRet0;
5490 i93 = _i64Add(i119 | 0, i92 & 0, i120 | 0, i85 & 0) | 0;
5491 i120 = tempRet0;
5492 i119 = _i64Add(i92, 0, i82, i95) | 0;
5493 i95 = _i64Add(i119, tempRet0, i85, 0) | 0;
5494 i85 = tempRet0;
5495 i119 = _llvm_uadd_with_overflow_i64(i115 | 0, i116 | 0, 0, i93 | 0) | 0;
5496 i93 = i119;
5497 i119 = tempRet0;
5498 i116 = _i64Add(i95, i85, tempRet1 & 1, 0) | 0;
5499 i85 = _i64Add(i116, tempRet0, i120, 0) | 0;
5500 i120 = tempRet0;
5501 if (i112) {
5502 i116 = _i64Subtract(0, 0, i93, i119) | 0;
5503 i95 = tempRet0;
5504 i115 = _i64Add((i93 | 0) == 0 & (i119 | 0) == 0 & 1, 0, ~i85, ~i120) | 0;
5505 i121 = i95;
5506 i122 = i116;
5507 i123 = tempRet0;
5508 i124 = i115;
5509 } else {
5510 i121 = i119;
5511 i122 = i93;
5512 i123 = i120;
5513 i124 = i85;
5514 }
5515 i85 = ___muldi3(i68, i71, i79, i72) | 0;
5516 i71 = tempRet0;
5517 i68 = 0;
5518 i120 = (i71 | 0) < (i68 | 0) | (i71 | 0) == (i68 | 0) & i85 >>> 0 < 0 >>> 0;
5519 i68 = _i64Subtract(0, 0, i85, i71) | 0;
5520 i93 = i120 ? tempRet0 : i71;
5521 i71 = (i120 ? i68 : i85) | 0;
5522 i85 = i93 & 0;
5523 i68 = ___muldi3(i71, i85, i83, i97) | 0;
5524 i119 = tempRet0;
5525 i115 = ___muldi3(i71, i85, i86, i74) | 0;
5526 i85 = tempRet0;
5527 i71 = i93;
5528 i93 = 0;
5529 i116 = ___muldi3(i71, i93, i83, i97) | 0;
5530 i95 = tempRet0;
5531 i82 = ___muldi3(i71, i93, i86, i74) | 0;
5532 i93 = tempRet0;
5533 i71 = _i64Add(i115 | 0, i85 & 0, i116 | 0, i95 & 0) | 0;
5534 i116 = tempRet0;
5535 i115 = _llvm_uadd_with_overflow_i64(i68 | 0, i119 | 0, 0, i71 | 0) | 0;
5536 i71 = i115;
5537 i115 = tempRet0;
5538 i119 = tempRet1 & 1;
5539 i68 = _i64Add(i85, 0, i82, i93) | 0;
5540 i93 = _i64Add(i68, tempRet0, i95, 0) | 0;
5541 i95 = _i64Add(i93, tempRet0, i116, 0) | 0;
5542 i116 = _i64Add(i95, tempRet0, i119, 0) | 0;
5543 i119 = tempRet0;
5544 if (i120 ^ i90) {
5545 i120 = _i64Subtract(0, 0, i71, i115) | 0;
5546 i95 = tempRet0;
5547 i93 = _i64Add((i71 | 0) == 0 & (i115 | 0) == 0 & 1, 0, ~i116, ~i119) | 0;
5548 i125 = i95;
5549 i126 = i120;
5550 i127 = tempRet0;
5551 i128 = i93;
5552 } else {
5553 i125 = i115;
5554 i126 = i71;
5555 i127 = i119;
5556 i128 = i116;
5557 }
5558 i116 = _i64Subtract(0, 0, i126, i125) | 0;
5559 i119 = _llvm_uadd_with_overflow_i64(i122 | 0, i121 | 0, i116 | 0, tempRet0 | 0) | 0;
5560 i116 = tempRet0;
5561 i71 = tempRet1 & 1;
5562 i115 = HEAP32[i29 >> 2] | 0;
5563 i93 = i115;
5564 i120 = (i115 | 0) < 0 ? -1 : 0;
5565 i115 = ___muldi3(i93, i120, i79, i72) | 0;
5566 i95 = tempRet0;
5567 i68 = 0;
5568 i82 = (i95 | 0) < (i68 | 0) | (i95 | 0) == (i68 | 0) & i115 >>> 0 < 0 >>> 0;
5569 i68 = _i64Subtract(0, 0, i115, i95) | 0;
5570 i85 = i82 ? tempRet0 : i95;
5571 i95 = (i82 ? i68 : i115) | 0;
5572 i115 = i85 & 0;
5573 i68 = ___muldi3(i95, i115, i78, i89) | 0;
5574 i92 = tempRet0;
5575 i118 = ___muldi3(i95, i115, i94, i62) | 0;
5576 i115 = tempRet0;
5577 i95 = i85;
5578 i85 = 0;
5579 i117 = ___muldi3(i95, i85, i78, i89) | 0;
5580 i129 = tempRet0;
5581 i130 = ___muldi3(i95, i85, i94, i62) | 0;
5582 i85 = tempRet0;
5583 i95 = _i64Add(i118 | 0, i115 & 0, i117 | 0, i129 & 0) | 0;
5584 i117 = tempRet0;
5585 i118 = _llvm_uadd_with_overflow_i64(i68 | 0, i92 | 0, 0, i95 | 0) | 0;
5586 i95 = i118;
5587 i118 = tempRet0;
5588 i92 = _i64Add(i130, i85, tempRet1 & 1, 0) | 0;
5589 i85 = _i64Add(i92, tempRet0, i115, 0) | 0;
5590 i115 = _i64Add(i85, tempRet0, i129, 0) | 0;
5591 i129 = _i64Add(i115, tempRet0, i117, 0) | 0;
5592 i117 = tempRet0;
5593 if (i82 ^ i81) {
5594 i82 = _i64Subtract(0, 0, i95, i118) | 0;
5595 i115 = tempRet0;
5596 i85 = _i64Add((i95 | 0) == 0 & (i118 | 0) == 0 & 1, 0, ~i129, ~i117) | 0;
5597 i131 = i115;
5598 i132 = i82;
5599 i133 = tempRet0;
5600 i134 = i85;
5601 } else {
5602 i131 = i118;
5603 i132 = i95;
5604 i133 = i117;
5605 i134 = i129;
5606 }
5607 i129 = _llvm_uadd_with_overflow_i64(i119 | 0, i116 | 0, i132 | 0, i131 | 0) | 0;
5608 i116 = tempRet0;
5609 i119 = tempRet1 & 1;
5610 i117 = ___muldi3(i93, i120, i73, i67) | 0;
5611 i120 = tempRet0;
5612 i93 = 0;
5613 i95 = (i120 | 0) < (i93 | 0) | (i120 | 0) == (i93 | 0) & i117 >>> 0 < 0 >>> 0;
5614 i93 = _i64Subtract(0, 0, i117, i120) | 0;
5615 i118 = i95 ? tempRet0 : i120;
5616 if (i70) {
5617 i120 = _i64Subtract(0, 0, i88, i91) | 0;
5618 i135 = i95 ^ 1;
5619 i136 = tempRet0;
5620 i137 = i120;
5621 } else {
5622 i135 = i95;
5623 i136 = i91;
5624 i137 = i88;
5625 }
5626 i120 = (i95 ? i93 : i117) | 0;
5627 i117 = i118 & 0;
5628 i93 = i137 | 0;
5629 i95 = i136 & 0;
5630 i85 = ___muldi3(i93, i95, i120, i117) | 0;
5631 i82 = tempRet0;
5632 i115 = i136;
5633 i92 = 0;
5634 i130 = ___muldi3(i115, i92, i120, i117) | 0;
5635 i117 = tempRet0;
5636 i120 = i118;
5637 i118 = 0;
5638 i68 = ___muldi3(i93, i95, i120, i118) | 0;
5639 i95 = tempRet0;
5640 i93 = ___muldi3(i115, i92, i120, i118) | 0;
5641 i118 = tempRet0;
5642 i120 = _i64Add(i130 | 0, i117 & 0, i68 | 0, i95 & 0) | 0;
5643 i68 = tempRet0;
5644 i130 = _i64Add(i117, 0, i93, i118) | 0;
5645 i118 = _i64Add(i130, tempRet0, i95, 0) | 0;
5646 i95 = tempRet0;
5647 i130 = _llvm_uadd_with_overflow_i64(i85 | 0, i82 | 0, 0, i120 | 0) | 0;
5648 i120 = i130;
5649 i130 = tempRet0;
5650 i82 = _i64Add(i118, i95, tempRet1 & 1, 0) | 0;
5651 i95 = _i64Add(i82, tempRet0, i68, 0) | 0;
5652 i68 = tempRet0;
5653 if (i135) {
5654 i82 = _i64Subtract(0, 0, i120, i130) | 0;
5655 i118 = tempRet0;
5656 i85 = _i64Add((i120 | 0) == 0 & (i130 | 0) == 0 & 1, 0, ~i95, ~i68) | 0;
5657 i138 = i118;
5658 i139 = i82;
5659 i140 = tempRet0;
5660 i141 = i85;
5661 } else {
5662 i138 = i130;
5663 i139 = i120;
5664 i140 = i68;
5665 i141 = i95;
5666 }
5667 i95 = _i64Subtract(0, 0, i139, i138) | 0;
5668 i68 = _llvm_uadd_with_overflow_i64(i129 | 0, i116 | 0, i95 | 0, tempRet0 | 0) | 0;
5669 i95 = tempRet0;
5670 i116 = tempRet1 & 1;
5671 i129 = 0;
5672 i120 = (i80 | 0) < (i129 | 0) | (i80 | 0) == (i129 | 0) & i87 >>> 0 < 0 >>> 0;
5673 if (i120) {
5674 i129 = _i64Subtract(0, 0, i76, i84) | 0;
5675 i130 = tempRet0;
5676 i85 = _i64Add((i76 | 0) == 0 & (i84 | 0) == 0 & 1, 0, ~i87, ~i80) | 0;
5677 i142 = i130;
5678 i143 = i129;
5679 i144 = tempRet0;
5680 i145 = i85;
5681 } else {
5682 i142 = i84;
5683 i143 = i76;
5684 i144 = i80;
5685 i145 = i87;
5686 }
5687 i85 = i45 ? i47 : i7;
5688 i129 = i45 ? i46 : i38;
5689 i130 = i143 | 0;
5690 i82 = i142 & 0;
5691 i118 = i85 | 0;
5692 i93 = i129 & 0;
5693 i117 = ___muldi3(i118, i93, i130, i82) | 0;
5694 i92 = tempRet0;
5695 i115 = i129;
5696 i146 = 0;
5697 i147 = ___muldi3(i115, i146, i130, i82) | 0;
5698 i82 = tempRet0;
5699 i130 = i142;
5700 i148 = 0;
5701 i149 = ___muldi3(i118, i93, i130, i148) | 0;
5702 i93 = tempRet0;
5703 i118 = ___muldi3(i115, i146, i130, i148) | 0;
5704 i148 = tempRet0;
5705 i130 = _i64Add(i147 | 0, i82 & 0, i149 | 0, i93 & 0) | 0;
5706 i149 = tempRet0;
5707 i147 = _llvm_uadd_with_overflow_i64(i117 | 0, i92 | 0, 0, i130 | 0) | 0;
5708 i130 = i147;
5709 i147 = tempRet0;
5710 i92 = tempRet1 & 1;
5711 i117 = ___muldi3(i85, i129, i145, i144) | 0;
5712 i129 = _i64Add(i118, i148, i117, tempRet0) | 0;
5713 i117 = _i64Add(i129, tempRet0, i82, 0) | 0;
5714 i82 = _i64Add(i117, tempRet0, i93, 0) | 0;
5715 i93 = _i64Add(i82, tempRet0, i92, 0) | 0;
5716 i92 = _i64Add(i93, tempRet0, i149, 0) | 0;
5717 i149 = tempRet0;
5718 if (i120 ^ i45) {
5719 i93 = _i64Subtract(0, 0, i130, i147) | 0;
5720 i82 = tempRet0;
5721 i117 = _i64Add((i130 | 0) == 0 & (i147 | 0) == 0 & 1, 0, ~i92, ~i149) | 0;
5722 i150 = i82;
5723 i151 = i93;
5724 i152 = tempRet0;
5725 i153 = i117;
5726 } else {
5727 i150 = i147;
5728 i151 = i130;
5729 i152 = i149;
5730 i153 = i92;
5731 }
5732 i92 = _llvm_uadd_with_overflow_i64(i68 | 0, i95 | 0, i151 | 0, i150 | 0) | 0;
5733 i95 = tempRet0;
5734 i68 = tempRet1 & 1;
5735 i149 = _i64Add(i124, i123, ~i128, ~i127) | 0;
5736 i130 = _i64Add(i149, tempRet0, (i126 | 0) == 0 & (i125 | 0) == 0 & 1, 0) | 0;
5737 i149 = _i64Add(i130, tempRet0, i71, 0) | 0;
5738 i71 = _i64Add(i149, tempRet0, i134, i133) | 0;
5739 i149 = _i64Add(i71, tempRet0, i119, 0) | 0;
5740 i119 = _i64Add(i149, tempRet0, ~i141, ~i140) | 0;
5741 i149 = _i64Add(i119, tempRet0, (i139 | 0) == 0 & (i138 | 0) == 0 & 1, 0) | 0;
5742 i119 = _i64Add(i149, tempRet0, i116, 0) | 0;
5743 i116 = _i64Add(i119, tempRet0, i153, i152) | 0;
5744 i119 = _i64Add(i116, tempRet0, i68, 0) | 0;
5745 i68 = tempRet0;
5746 i116 = HEAP32[i6 >> 2] | 0;
5747 i149 = i116;
5748 i71 = (i116 | 0) < 0 ? -1 : 0;
5749 i116 = ___muldi3(i149, i71, i73, i67) | 0;
5750 i130 = tempRet0;
5751 i147 = 0;
5752 i117 = (i130 | 0) < (i147 | 0) | (i130 | 0) == (i147 | 0) & i116 >>> 0 < 0 >>> 0;
5753 i147 = _i64Subtract(0, 0, i116, i130) | 0;
5754 i93 = i117 ? tempRet0 : i130;
5755 if (i69) {
5756 i130 = _i64Subtract(0, 0, i96, i77) | 0;
5757 i154 = i117 ^ 1;
5758 i155 = tempRet0;
5759 i156 = i130;
5760 } else {
5761 i154 = i117;
5762 i155 = i77;
5763 i156 = i96;
5764 }
5765 i130 = (i117 ? i147 : i116) | 0;
5766 i116 = i93 & 0;
5767 i147 = i156 | 0;
5768 i117 = i155 & 0;
5769 i82 = ___muldi3(i147, i117, i130, i116) | 0;
5770 i129 = tempRet0;
5771 i148 = i155;
5772 i118 = 0;
5773 i85 = ___muldi3(i148, i118, i130, i116) | 0;
5774 i116 = tempRet0;
5775 i130 = i93;
5776 i93 = 0;
5777 i146 = ___muldi3(i147, i117, i130, i93) | 0;
5778 i117 = tempRet0;
5779 i147 = ___muldi3(i148, i118, i130, i93) | 0;
5780 i93 = tempRet0;
5781 i130 = _i64Add(i85 | 0, i116 & 0, i146 | 0, i117 & 0) | 0;
5782 i146 = tempRet0;
5783 i85 = _i64Add(i116, 0, i147, i93) | 0;
5784 i93 = _i64Add(i85, tempRet0, i117, 0) | 0;
5785 i117 = tempRet0;
5786 i85 = _llvm_uadd_with_overflow_i64(i82 | 0, i129 | 0, 0, i130 | 0) | 0;
5787 i130 = i85;
5788 i85 = tempRet0;
5789 i129 = _i64Add(i93, i117, tempRet1 & 1, 0) | 0;
5790 i117 = _i64Add(i129, tempRet0, i146, 0) | 0;
5791 i146 = tempRet0;
5792 if (i154) {
5793 i129 = _i64Subtract(0, 0, i130, i85) | 0;
5794 i93 = tempRet0;
5795 i82 = _i64Add((i130 | 0) == 0 & (i85 | 0) == 0 & 1, 0, ~i117, ~i146) | 0;
5796 i157 = i93;
5797 i158 = i129;
5798 i159 = tempRet0;
5799 i160 = i82;
5800 } else {
5801 i157 = i85;
5802 i158 = i130;
5803 i159 = i146;
5804 i160 = i117;
5805 }
5806 i117 = ___muldi3(i149, i71, i79, i72) | 0;
5807 i71 = tempRet0;
5808 i149 = 0;
5809 i146 = (i71 | 0) < (i149 | 0) | (i71 | 0) == (i149 | 0) & i117 >>> 0 < 0 >>> 0;
5810 i149 = _i64Subtract(0, 0, i117, i71) | 0;
5811 i130 = i146 ? tempRet0 : i71;
5812 i71 = (i146 ? i149 : i117) | 0;
5813 i117 = i130 & 0;
5814 i149 = ___muldi3(i71, i117, i83, i97) | 0;
5815 i85 = tempRet0;
5816 i82 = ___muldi3(i71, i117, i86, i74) | 0;
5817 i117 = tempRet0;
5818 i71 = i130;
5819 i130 = 0;
5820 i129 = ___muldi3(i71, i130, i83, i97) | 0;
5821 i93 = tempRet0;
5822 i147 = ___muldi3(i71, i130, i86, i74) | 0;
5823 i130 = tempRet0;
5824 i71 = _i64Add(i82 | 0, i117 & 0, i129 | 0, i93 & 0) | 0;
5825 i129 = tempRet0;
5826 i82 = _llvm_uadd_with_overflow_i64(i149 | 0, i85 | 0, 0, i71 | 0) | 0;
5827 i71 = i82;
5828 i82 = tempRet0;
5829 i85 = tempRet1 & 1;
5830 i149 = _i64Add(i117, 0, i147, i130) | 0;
5831 i130 = _i64Add(i149, tempRet0, i93, 0) | 0;
5832 i93 = _i64Add(i130, tempRet0, i129, 0) | 0;
5833 i129 = _i64Add(i93, tempRet0, i85, 0) | 0;
5834 i85 = tempRet0;
5835 if (i146 ^ i90) {
5836 i146 = _i64Subtract(0, 0, i71, i82) | 0;
5837 i93 = tempRet0;
5838 i130 = _i64Add((i71 | 0) == 0 & (i82 | 0) == 0 & 1, 0, ~i129, ~i85) | 0;
5839 i161 = i93;
5840 i162 = i146;
5841 i163 = tempRet0;
5842 i164 = i130;
5843 } else {
5844 i161 = i82;
5845 i162 = i71;
5846 i163 = i85;
5847 i164 = i129;
5848 }
5849 i129 = _i64Subtract(0, 0, i162, i161) | 0;
5850 i85 = _llvm_uadd_with_overflow_i64(i158 | 0, i157 | 0, i129 | 0, tempRet0 | 0) | 0;
5851 i129 = tempRet0;
5852 i71 = tempRet1 & 1;
5853 i82 = HEAP32[i27 >> 2] | 0;
5854 i130 = i82;
5855 i146 = (i82 | 0) < 0 ? -1 : 0;
5856 i82 = ___muldi3(i130, i146, i79, i72) | 0;
5857 i93 = tempRet0;
5858 i149 = 0;
5859 i147 = (i93 | 0) < (i149 | 0) | (i93 | 0) == (i149 | 0) & i82 >>> 0 < 0 >>> 0;
5860 i149 = _i64Subtract(0, 0, i82, i93) | 0;
5861 i117 = i147 ? tempRet0 : i93;
5862 i93 = (i147 ? i149 : i82) | 0;
5863 i82 = i117 & 0;
5864 i149 = ___muldi3(i93, i82, i78, i89) | 0;
5865 i116 = tempRet0;
5866 i118 = ___muldi3(i93, i82, i94, i62) | 0;
5867 i82 = tempRet0;
5868 i93 = i117;
5869 i117 = 0;
5870 i148 = ___muldi3(i93, i117, i78, i89) | 0;
5871 i115 = tempRet0;
5872 i165 = ___muldi3(i93, i117, i94, i62) | 0;
5873 i117 = tempRet0;
5874 i93 = _i64Add(i118 | 0, i82 & 0, i148 | 0, i115 & 0) | 0;
5875 i148 = tempRet0;
5876 i118 = _llvm_uadd_with_overflow_i64(i149 | 0, i116 | 0, 0, i93 | 0) | 0;
5877 i93 = i118;
5878 i118 = tempRet0;
5879 i116 = _i64Add(i165, i117, tempRet1 & 1, 0) | 0;
5880 i117 = _i64Add(i116, tempRet0, i82, 0) | 0;
5881 i82 = _i64Add(i117, tempRet0, i115, 0) | 0;
5882 i115 = _i64Add(i82, tempRet0, i148, 0) | 0;
5883 i148 = tempRet0;
5884 if (i147 ^ i81) {
5885 i147 = _i64Subtract(0, 0, i93, i118) | 0;
5886 i82 = tempRet0;
5887 i117 = _i64Add((i93 | 0) == 0 & (i118 | 0) == 0 & 1, 0, ~i115, ~i148) | 0;
5888 i166 = i82;
5889 i167 = i147;
5890 i168 = tempRet0;
5891 i169 = i117;
5892 } else {
5893 i166 = i118;
5894 i167 = i93;
5895 i168 = i148;
5896 i169 = i115;
5897 }
5898 i115 = _llvm_uadd_with_overflow_i64(i85 | 0, i129 | 0, i167 | 0, i166 | 0) | 0;
5899 i129 = tempRet0;
5900 i85 = tempRet1 & 1;
5901 i148 = ___muldi3(i130, i146, i73, i67) | 0;
5902 i146 = tempRet0;
5903 i130 = 0;
5904 i93 = (i146 | 0) < (i130 | 0) | (i146 | 0) == (i130 | 0) & i148 >>> 0 < 0 >>> 0;
5905 i130 = _i64Subtract(0, 0, i148, i146) | 0;
5906 i118 = i93 ? tempRet0 : i146;
5907 if (i70) {
5908 i146 = _i64Subtract(0, 0, i88, i91) | 0;
5909 i170 = i93 ^ 1;
5910 i171 = tempRet0;
5911 i172 = i146;
5912 } else {
5913 i170 = i93;
5914 i171 = i91;
5915 i172 = i88;
5916 }
5917 i146 = (i93 ? i130 : i148) | 0;
5918 i148 = i118 & 0;
5919 i130 = i172 | 0;
5920 i93 = i171 & 0;
5921 i117 = ___muldi3(i130, i93, i146, i148) | 0;
5922 i147 = tempRet0;
5923 i82 = i171;
5924 i116 = 0;
5925 i165 = ___muldi3(i82, i116, i146, i148) | 0;
5926 i148 = tempRet0;
5927 i146 = i118;
5928 i118 = 0;
5929 i149 = ___muldi3(i130, i93, i146, i118) | 0;
5930 i93 = tempRet0;
5931 i130 = ___muldi3(i82, i116, i146, i118) | 0;
5932 i118 = tempRet0;
5933 i146 = _i64Add(i165 | 0, i148 & 0, i149 | 0, i93 & 0) | 0;
5934 i149 = tempRet0;
5935 i165 = _i64Add(i148, 0, i130, i118) | 0;
5936 i118 = _i64Add(i165, tempRet0, i93, 0) | 0;
5937 i93 = tempRet0;
5938 i165 = _llvm_uadd_with_overflow_i64(i117 | 0, i147 | 0, 0, i146 | 0) | 0;
5939 i146 = i165;
5940 i165 = tempRet0;
5941 i147 = _i64Add(i118, i93, tempRet1 & 1, 0) | 0;
5942 i93 = _i64Add(i147, tempRet0, i149, 0) | 0;
5943 i149 = tempRet0;
5944 if (i170) {
5945 i147 = _i64Subtract(0, 0, i146, i165) | 0;
5946 i118 = tempRet0;
5947 i117 = _i64Add((i146 | 0) == 0 & (i165 | 0) == 0 & 1, 0, ~i93, ~i149) | 0;
5948 i173 = i118;
5949 i174 = i147;
5950 i175 = tempRet0;
5951 i176 = i117;
5952 } else {
5953 i173 = i165;
5954 i174 = i146;
5955 i175 = i149;
5956 i176 = i93;
5957 }
5958 i93 = _i64Subtract(0, 0, i174, i173) | 0;
5959 i149 = _llvm_uadd_with_overflow_i64(i115 | 0, i129 | 0, i93 | 0, tempRet0 | 0) | 0;
5960 i93 = tempRet0;
5961 i129 = tempRet1 & 1;
5962 if (i120) {
5963 i115 = _i64Subtract(0, 0, i76, i84) | 0;
5964 i146 = tempRet0;
5965 i165 = _i64Add((i76 | 0) == 0 & (i84 | 0) == 0 & 1, 0, ~i87, ~i80) | 0;
5966 i177 = i146;
5967 i178 = i115;
5968 i179 = tempRet0;
5969 i180 = i165;
5970 } else {
5971 i177 = i84;
5972 i178 = i76;
5973 i179 = i80;
5974 i180 = i87;
5975 }
5976 i165 = i48 ? i10 : i24;
5977 i115 = i48 ? i41 : i34;
5978 i146 = i178 | 0;
5979 i117 = i177 & 0;
5980 i147 = i165 | 0;
5981 i118 = i115 & 0;
5982 i130 = ___muldi3(i147, i118, i146, i117) | 0;
5983 i148 = tempRet0;
5984 i116 = i115;
5985 i82 = 0;
5986 i181 = ___muldi3(i116, i82, i146, i117) | 0;
5987 i117 = tempRet0;
5988 i146 = i177;
5989 i182 = 0;
5990 i183 = ___muldi3(i147, i118, i146, i182) | 0;
5991 i118 = tempRet0;
5992 i147 = ___muldi3(i116, i82, i146, i182) | 0;
5993 i182 = tempRet0;
5994 i146 = _i64Add(i181 | 0, i117 & 0, i183 | 0, i118 & 0) | 0;
5995 i183 = tempRet0;
5996 i181 = _llvm_uadd_with_overflow_i64(i130 | 0, i148 | 0, 0, i146 | 0) | 0;
5997 i146 = i181;
5998 i181 = tempRet0;
5999 i148 = tempRet1 & 1;
6000 i130 = ___muldi3(i165, i115, i180, i179) | 0;
6001 i115 = _i64Add(i147, i182, i130, tempRet0) | 0;
6002 i130 = _i64Add(i115, tempRet0, i117, 0) | 0;
6003 i117 = _i64Add(i130, tempRet0, i118, 0) | 0;
6004 i118 = _i64Add(i117, tempRet0, i148, 0) | 0;
6005 i148 = _i64Add(i118, tempRet0, i183, 0) | 0;
6006 i183 = tempRet0;
6007 if (i120 ^ i48) {
6008 i118 = _i64Subtract(0, 0, i146, i181) | 0;
6009 i117 = tempRet0;
6010 i130 = _i64Add((i146 | 0) == 0 & (i181 | 0) == 0 & 1, 0, ~i148, ~i183) | 0;
6011 i184 = i117;
6012 i185 = i118;
6013 i186 = tempRet0;
6014 i187 = i130;
6015 } else {
6016 i184 = i181;
6017 i185 = i146;
6018 i186 = i183;
6019 i187 = i148;
6020 }
6021 i148 = _llvm_uadd_with_overflow_i64(i149 | 0, i93 | 0, i185 | 0, i184 | 0) | 0;
6022 i93 = tempRet0;
6023 i149 = tempRet1 & 1;
6024 i183 = _i64Add(i160, i159, ~i164, ~i163) | 0;
6025 i146 = _i64Add(i183, tempRet0, (i162 | 0) == 0 & (i161 | 0) == 0 & 1, 0) | 0;
6026 i183 = _i64Add(i146, tempRet0, i71, 0) | 0;
6027 i71 = _i64Add(i183, tempRet0, i169, i168) | 0;
6028 i183 = _i64Add(i71, tempRet0, i85, 0) | 0;
6029 i85 = _i64Add(i183, tempRet0, ~i176, ~i175) | 0;
6030 i183 = _i64Add(i85, tempRet0, (i174 | 0) == 0 & (i173 | 0) == 0 & 1, 0) | 0;
6031 i85 = _i64Add(i183, tempRet0, i129, 0) | 0;
6032 i129 = _i64Add(i85, tempRet0, i187, i186) | 0;
6033 i85 = _i64Add(i129, tempRet0, i149, 0) | 0;
6034 i149 = tempRet0;
6035 i129 = HEAP32[i25 >> 2] | 0;
6036 i183 = i129;
6037 i71 = (i129 | 0) < 0 ? -1 : 0;
6038 i129 = ___muldi3(i183, i71, i73, i67) | 0;
6039 i146 = tempRet0;
6040 i181 = 0;
6041 i130 = (i146 | 0) < (i181 | 0) | (i146 | 0) == (i181 | 0) & i129 >>> 0 < 0 >>> 0;
6042 i181 = _i64Subtract(0, 0, i129, i146) | 0;
6043 i118 = i130 ? tempRet0 : i146;
6044 if (i69) {
6045 i69 = _i64Subtract(0, 0, i96, i77) | 0;
6046 i188 = i130 ^ 1;
6047 i189 = tempRet0;
6048 i190 = i69;
6049 } else {
6050 i188 = i130;
6051 i189 = i77;
6052 i190 = i96;
6053 }
6054 i96 = (i130 ? i181 : i129) | 0;
6055 i129 = i118 & 0;
6056 i181 = i190 | 0;
6057 i130 = i189 & 0;
6058 i77 = ___muldi3(i181, i130, i96, i129) | 0;
6059 i69 = tempRet0;
6060 i146 = i189;
6061 i117 = 0;
6062 i115 = ___muldi3(i146, i117, i96, i129) | 0;
6063 i129 = tempRet0;
6064 i96 = i118;
6065 i118 = 0;
6066 i182 = ___muldi3(i181, i130, i96, i118) | 0;
6067 i130 = tempRet0;
6068 i181 = ___muldi3(i146, i117, i96, i118) | 0;
6069 i118 = tempRet0;
6070 i96 = _i64Add(i115 | 0, i129 & 0, i182 | 0, i130 & 0) | 0;
6071 i182 = tempRet0;
6072 i115 = _i64Add(i129, 0, i181, i118) | 0;
6073 i118 = _i64Add(i115, tempRet0, i130, 0) | 0;
6074 i130 = tempRet0;
6075 i115 = _llvm_uadd_with_overflow_i64(i77 | 0, i69 | 0, 0, i96 | 0) | 0;
6076 i96 = i115;
6077 i115 = tempRet0;
6078 i69 = _i64Add(i118, i130, tempRet1 & 1, 0) | 0;
6079 i130 = _i64Add(i69, tempRet0, i182, 0) | 0;
6080 i182 = tempRet0;
6081 if (i188) {
6082 i69 = _i64Subtract(0, 0, i96, i115) | 0;
6083 i118 = tempRet0;
6084 i77 = _i64Add((i96 | 0) == 0 & (i115 | 0) == 0 & 1, 0, ~i130, ~i182) | 0;
6085 i191 = i118;
6086 i192 = i69;
6087 i193 = tempRet0;
6088 i194 = i77;
6089 } else {
6090 i191 = i115;
6091 i192 = i96;
6092 i193 = i182;
6093 i194 = i130;
6094 }
6095 i130 = ___muldi3(i183, i71, i79, i72) | 0;
6096 i71 = tempRet0;
6097 i183 = 0;
6098 i182 = (i71 | 0) < (i183 | 0) | (i71 | 0) == (i183 | 0) & i130 >>> 0 < 0 >>> 0;
6099 i183 = _i64Subtract(0, 0, i130, i71) | 0;
6100 i96 = i182 ? tempRet0 : i71;
6101 i71 = (i182 ? i183 : i130) | 0;
6102 i130 = i96 & 0;
6103 i183 = ___muldi3(i71, i130, i83, i97) | 0;
6104 i115 = tempRet0;
6105 i77 = ___muldi3(i71, i130, i86, i74) | 0;
6106 i130 = tempRet0;
6107 i71 = i96;
6108 i96 = 0;
6109 i69 = ___muldi3(i71, i96, i83, i97) | 0;
6110 i97 = tempRet0;
6111 i83 = ___muldi3(i71, i96, i86, i74) | 0;
6112 i74 = tempRet0;
6113 i86 = _i64Add(i77 | 0, i130 & 0, i69 | 0, i97 & 0) | 0;
6114 i69 = tempRet0;
6115 i77 = _llvm_uadd_with_overflow_i64(i183 | 0, i115 | 0, 0, i86 | 0) | 0;
6116 i86 = i77;
6117 i77 = tempRet0;
6118 i115 = tempRet1 & 1;
6119 i183 = _i64Add(i130, 0, i83, i74) | 0;
6120 i74 = _i64Add(i183, tempRet0, i97, 0) | 0;
6121 i97 = _i64Add(i74, tempRet0, i69, 0) | 0;
6122 i69 = _i64Add(i97, tempRet0, i115, 0) | 0;
6123 i115 = tempRet0;
6124 if (i182 ^ i90) {
6125 i90 = _i64Subtract(0, 0, i86, i77) | 0;
6126 i182 = tempRet0;
6127 i97 = _i64Add((i86 | 0) == 0 & (i77 | 0) == 0 & 1, 0, ~i69, ~i115) | 0;
6128 i195 = i182;
6129 i196 = i90;
6130 i197 = tempRet0;
6131 i198 = i97;
6132 } else {
6133 i195 = i77;
6134 i196 = i86;
6135 i197 = i115;
6136 i198 = i69;
6137 }
6138 i69 = _i64Subtract(0, 0, i196, i195) | 0;
6139 i115 = _llvm_uadd_with_overflow_i64(i192 | 0, i191 | 0, i69 | 0, tempRet0 | 0) | 0;
6140 i69 = tempRet0;
6141 i86 = tempRet1 & 1;
6142 i77 = HEAP32[i22 >> 2] | 0;
6143 i97 = i77;
6144 i90 = (i77 | 0) < 0 ? -1 : 0;
6145 i77 = ___muldi3(i97, i90, i79, i72) | 0;
6146 i72 = tempRet0;
6147 i79 = 0;
6148 i182 = (i72 | 0) < (i79 | 0) | (i72 | 0) == (i79 | 0) & i77 >>> 0 < 0 >>> 0;
6149 i79 = _i64Subtract(0, 0, i77, i72) | 0;
6150 i74 = i182 ? tempRet0 : i72;
6151 i72 = (i182 ? i79 : i77) | 0;
6152 i77 = i74 & 0;
6153 i79 = ___muldi3(i72, i77, i78, i89) | 0;
6154 i183 = tempRet0;
6155 i83 = ___muldi3(i72, i77, i94, i62) | 0;
6156 i77 = tempRet0;
6157 i72 = i74;
6158 i74 = 0;
6159 i130 = ___muldi3(i72, i74, i78, i89) | 0;
6160 i89 = tempRet0;
6161 i78 = ___muldi3(i72, i74, i94, i62) | 0;
6162 i62 = tempRet0;
6163 i94 = _i64Add(i83 | 0, i77 & 0, i130 | 0, i89 & 0) | 0;
6164 i130 = tempRet0;
6165 i83 = _llvm_uadd_with_overflow_i64(i79 | 0, i183 | 0, 0, i94 | 0) | 0;
6166 i94 = i83;
6167 i83 = tempRet0;
6168 i183 = _i64Add(i78, i62, tempRet1 & 1, 0) | 0;
6169 i62 = _i64Add(i183, tempRet0, i77, 0) | 0;
6170 i77 = _i64Add(i62, tempRet0, i89, 0) | 0;
6171 i89 = _i64Add(i77, tempRet0, i130, 0) | 0;
6172 i130 = tempRet0;
6173 if (i182 ^ i81) {
6174 i81 = _i64Subtract(0, 0, i94, i83) | 0;
6175 i182 = tempRet0;
6176 i77 = _i64Add((i94 | 0) == 0 & (i83 | 0) == 0 & 1, 0, ~i89, ~i130) | 0;
6177 i199 = i182;
6178 i200 = i81;
6179 i201 = tempRet0;
6180 i202 = i77;
6181 } else {
6182 i199 = i83;
6183 i200 = i94;
6184 i201 = i130;
6185 i202 = i89;
6186 }
6187 i89 = _llvm_uadd_with_overflow_i64(i115 | 0, i69 | 0, i200 | 0, i199 | 0) | 0;
6188 i69 = tempRet0;
6189 i115 = tempRet1 & 1;
6190 i130 = ___muldi3(i97, i90, i73, i67) | 0;
6191 i67 = tempRet0;
6192 i73 = 0;
6193 i90 = (i67 | 0) < (i73 | 0) | (i67 | 0) == (i73 | 0) & i130 >>> 0 < 0 >>> 0;
6194 i73 = _i64Subtract(0, 0, i130, i67) | 0;
6195 i97 = i90 ? tempRet0 : i67;
6196 if (i70) {
6197 i70 = _i64Subtract(0, 0, i88, i91) | 0;
6198 i203 = i90 ^ 1;
6199 i204 = tempRet0;
6200 i205 = i70;
6201 } else {
6202 i203 = i90;
6203 i204 = i91;
6204 i205 = i88;
6205 }
6206 i88 = (i90 ? i73 : i130) | 0;
6207 i130 = i97 & 0;
6208 i73 = i205 | 0;
6209 i90 = i204 & 0;
6210 i91 = ___muldi3(i73, i90, i88, i130) | 0;
6211 i70 = tempRet0;
6212 i67 = i204;
6213 i94 = 0;
6214 i83 = ___muldi3(i67, i94, i88, i130) | 0;
6215 i130 = tempRet0;
6216 i88 = i97;
6217 i97 = 0;
6218 i77 = ___muldi3(i73, i90, i88, i97) | 0;
6219 i90 = tempRet0;
6220 i73 = ___muldi3(i67, i94, i88, i97) | 0;
6221 i97 = tempRet0;
6222 i88 = _i64Add(i83 | 0, i130 & 0, i77 | 0, i90 & 0) | 0;
6223 i77 = tempRet0;
6224 i83 = _i64Add(i130, 0, i73, i97) | 0;
6225 i97 = _i64Add(i83, tempRet0, i90, 0) | 0;
6226 i90 = tempRet0;
6227 i83 = _llvm_uadd_with_overflow_i64(i91 | 0, i70 | 0, 0, i88 | 0) | 0;
6228 i88 = i83;
6229 i83 = tempRet0;
6230 i70 = _i64Add(i97, i90, tempRet1 & 1, 0) | 0;
6231 i90 = _i64Add(i70, tempRet0, i77, 0) | 0;
6232 i77 = tempRet0;
6233 if (i203) {
6234 i70 = _i64Subtract(0, 0, i88, i83) | 0;
6235 i97 = tempRet0;
6236 i91 = _i64Add((i88 | 0) == 0 & (i83 | 0) == 0 & 1, 0, ~i90, ~i77) | 0;
6237 i206 = i97;
6238 i207 = i70;
6239 i208 = tempRet0;
6240 i209 = i91;
6241 } else {
6242 i206 = i83;
6243 i207 = i88;
6244 i208 = i77;
6245 i209 = i90;
6246 }
6247 i90 = _i64Subtract(0, 0, i207, i206) | 0;
6248 i77 = _llvm_uadd_with_overflow_i64(i89 | 0, i69 | 0, i90 | 0, tempRet0 | 0) | 0;
6249 i90 = tempRet0;
6250 i69 = tempRet1 & 1;
6251 if (i120) {
6252 i89 = _i64Subtract(0, 0, i76, i84) | 0;
6253 i88 = tempRet0;
6254 i83 = _i64Add((i76 | 0) == 0 & (i84 | 0) == 0 & 1, 0, ~i87, ~i80) | 0;
6255 i210 = i88;
6256 i211 = i89;
6257 i212 = tempRet0;
6258 i213 = i83;
6259 } else {
6260 i210 = i84;
6261 i211 = i76;
6262 i212 = i80;
6263 i213 = i87;
6264 }
6265 i83 = i21 ? i43 : i37;
6266 i89 = i21 ? i42 : i39;
6267 i88 = i211 | 0;
6268 i91 = i210 & 0;
6269 i70 = i83 | 0;
6270 i97 = i89 & 0;
6271 i73 = ___muldi3(i70, i97, i88, i91) | 0;
6272 i130 = tempRet0;
6273 i94 = i89;
6274 i67 = 0;
6275 i81 = ___muldi3(i94, i67, i88, i91) | 0;
6276 i91 = tempRet0;
6277 i88 = i210;
6278 i182 = 0;
6279 i62 = ___muldi3(i70, i97, i88, i182) | 0;
6280 i97 = tempRet0;
6281 i70 = ___muldi3(i94, i67, i88, i182) | 0;
6282 i182 = tempRet0;
6283 i88 = _i64Add(i81 | 0, i91 & 0, i62 | 0, i97 & 0) | 0;
6284 i62 = tempRet0;
6285 i81 = _llvm_uadd_with_overflow_i64(i73 | 0, i130 | 0, 0, i88 | 0) | 0;
6286 i88 = i81;
6287 i81 = tempRet0;
6288 i130 = tempRet1 & 1;
6289 i73 = ___muldi3(i83, i89, i213, i212) | 0;
6290 i89 = _i64Add(i70, i182, i73, tempRet0) | 0;
6291 i73 = _i64Add(i89, tempRet0, i91, 0) | 0;
6292 i91 = _i64Add(i73, tempRet0, i97, 0) | 0;
6293 i97 = _i64Add(i91, tempRet0, i130, 0) | 0;
6294 i130 = _i64Add(i97, tempRet0, i62, 0) | 0;
6295 i62 = tempRet0;
6296 if (i120 ^ i21) {
6297 i120 = _i64Subtract(0, 0, i88, i81) | 0;
6298 i97 = tempRet0;
6299 i91 = _i64Add((i88 | 0) == 0 & (i81 | 0) == 0 & 1, 0, ~i130, ~i62) | 0;
6300 i214 = i97;
6301 i215 = i120;
6302 i216 = tempRet0;
6303 i217 = i91;
6304 } else {
6305 i214 = i81;
6306 i215 = i88;
6307 i216 = i62;
6308 i217 = i130;
6309 }
6310 i130 = _llvm_uadd_with_overflow_i64(i77 | 0, i90 | 0, i215 | 0, i214 | 0) | 0;
6311 i90 = tempRet0;
6312 i77 = tempRet1 & 1;
6313 i62 = _i64Add(i194, i193, ~i198, ~i197) | 0;
6314 i88 = _i64Add(i62, tempRet0, (i196 | 0) == 0 & (i195 | 0) == 0 & 1, 0) | 0;
6315 i62 = _i64Add(i88, tempRet0, i86, 0) | 0;
6316 i86 = _i64Add(i62, tempRet0, i202, i201) | 0;
6317 i62 = _i64Add(i86, tempRet0, i115, 0) | 0;
6318 i115 = _i64Add(i62, tempRet0, ~i209, ~i208) | 0;
6319 i62 = _i64Add(i115, tempRet0, (i207 | 0) == 0 & (i206 | 0) == 0 & 1, 0) | 0;
6320 i115 = _i64Add(i62, tempRet0, i69, 0) | 0;
6321 i69 = _i64Add(i115, tempRet0, i217, i216) | 0;
6322 i115 = _i64Add(i69, tempRet0, i77, 0) | 0;
6323 i77 = i75 + 24 | 0;
6324 HEAP32[i77 >> 2] = i92;
6325 HEAP32[i77 + 4 >> 2] = i95;
6326 i95 = i75 + 32 | 0;
6327 HEAP32[i95 >> 2] = i119;
6328 HEAP32[i95 + 4 >> 2] = i68;
6329 i68 = i75 + 40 | 0;
6330 HEAP32[i68 >> 2] = i148;
6331 HEAP32[i68 + 4 >> 2] = i93;
6332 i93 = i75 + 48 | 0;
6333 HEAP32[i93 >> 2] = i85;
6334 HEAP32[i93 + 4 >> 2] = i149;
6335 i149 = i75 + 56 | 0;
6336 HEAP32[i149 >> 2] = i130;
6337 HEAP32[i149 + 4 >> 2] = i90;
6338 i90 = i75 + 64 | 0;
6339 HEAP32[i90 >> 2] = i115;
6340 HEAP32[i90 + 4 >> 2] = tempRet0;
6341 i90 = i75 + 72 | 0;
6342 i115 = i75 + 72 | 0;
6343 HEAP32[i115 >> 2] = i76;
6344 HEAP32[i115 + 4 >> 2] = i84;
6345 i84 = i75 + 80 | 0;
6346 HEAP32[i84 >> 2] = i87;
6347 HEAP32[i84 + 4 >> 2] = i80;
6348 d15 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i75 + 24 | 0);
6349 HEAP32[i75 + 88 >> 2] = ~~(d15 / +__ZNK20btConvexHullInternal6Int1288toScalarEv(i90));
6350 d15 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i75 + 40 | 0);
6351 HEAP32[i75 + 92 >> 2] = ~~(d15 / +__ZNK20btConvexHullInternal6Int1288toScalarEv(i90));
6352 d15 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i75 + 56 | 0);
6353 HEAP32[i75 + 96 >> 2] = ~~(d15 / +__ZNK20btConvexHullInternal6Int1288toScalarEv(i90));
6354 HEAP32[i64 >> 2] = i75;
6355 HEAP32[i75 + 8 >> 2] = i66;
6356 i66 = HEAP32[i53 >> 2] | 0;
6357 i90 = HEAP32[i52 >> 2] | 0;
6358 do {
6359 if ((i66 | 0) == (i90 | 0)) {
6360 i80 = (i66 | 0) == 0 ? 1 : i66 << 1;
6361 if ((i66 | 0) >= (i80 | 0)) {
6362 i218 = i66;
6363 i219 = i66;
6364 break;
6365 }
6366 if ((i80 | 0) == 0) {
6367 i220 = 0;
6368 i221 = i66;
6369 } else {
6370 i84 = __Z22btAlignedAllocInternalji(i80 << 2, 16) | 0;
6371 i220 = i84;
6372 i221 = HEAP32[i53 >> 2] | 0;
6373 }
6374 if ((i221 | 0) > 0) {
6375 i84 = 0;
6376 do {
6377 i87 = i220 + (i84 << 2) | 0;
6378 if ((i87 | 0) != 0) {
6379 HEAP32[i87 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i84 << 2) >> 2];
6380 }
6381 i84 = i84 + 1 | 0;
6382 } while ((i84 | 0) < (i221 | 0));
6383 }
6384 i84 = HEAP32[i32 >> 2] | 0;
6385 if ((i84 | 0) == 0) {
6386 i222 = i221;
6387 } else {
6388 if ((HEAP8[i54] | 0) == 0) {
6389 i223 = i221;
6390 } else {
6391 __Z21btAlignedFreeInternalPv(i84);
6392 i223 = HEAP32[i53 >> 2] | 0;
6393 }
6394 HEAP32[i32 >> 2] = 0;
6395 i222 = i223;
6396 }
6397 HEAP8[i54] = 1;
6398 HEAP32[i32 >> 2] = i220;
6399 HEAP32[i52 >> 2] = i80;
6400 i218 = i222;
6401 i219 = i80;
6402 } else {
6403 i218 = i66;
6404 i219 = i90;
6405 }
6406 } while (0);
6407 i90 = (HEAP32[i32 >> 2] | 0) + (i218 << 2) | 0;
6408 if ((i90 | 0) != 0) {
6409 HEAP32[i90 >> 2] = i75;
6410 }
6411 i90 = i218 + 1 | 0;
6412 HEAP32[i53 >> 2] = i90;
6413 do {
6414 if ((i90 | 0) == (i219 | 0)) {
6415 i66 = (i219 | 0) == 0 ? 1 : i219 << 1;
6416 if ((i219 | 0) >= (i66 | 0)) {
6417 i224 = i219;
6418 i225 = i219;
6419 break;
6420 }
6421 if ((i66 | 0) == 0) {
6422 i226 = 0;
6423 i227 = i219;
6424 } else {
6425 i84 = __Z22btAlignedAllocInternalji(i66 << 2, 16) | 0;
6426 i226 = i84;
6427 i227 = HEAP32[i53 >> 2] | 0;
6428 }
6429 if ((i227 | 0) > 0) {
6430 i84 = 0;
6431 do {
6432 i87 = i226 + (i84 << 2) | 0;
6433 if ((i87 | 0) != 0) {
6434 HEAP32[i87 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i84 << 2) >> 2];
6435 }
6436 i84 = i84 + 1 | 0;
6437 } while ((i84 | 0) < (i227 | 0));
6438 }
6439 i84 = HEAP32[i32 >> 2] | 0;
6440 if ((i84 | 0) == 0) {
6441 i228 = i227;
6442 } else {
6443 if ((HEAP8[i54] | 0) == 0) {
6444 i229 = i227;
6445 } else {
6446 __Z21btAlignedFreeInternalPv(i84);
6447 i229 = HEAP32[i53 >> 2] | 0;
6448 }
6449 HEAP32[i32 >> 2] = 0;
6450 i228 = i229;
6451 }
6452 HEAP8[i54] = 1;
6453 HEAP32[i32 >> 2] = i226;
6454 HEAP32[i52 >> 2] = i66;
6455 i224 = i228;
6456 i225 = i66;
6457 } else {
6458 i224 = i90;
6459 i225 = i219;
6460 }
6461 } while (0);
6462 i90 = (HEAP32[i32 >> 2] | 0) + (i224 << 2) | 0;
6463 if ((i90 | 0) != 0) {
6464 HEAP32[i90 >> 2] = i58;
6465 }
6466 i90 = i224 + 1 | 0;
6467 HEAP32[i53 >> 2] = i90;
6468 do {
6469 if ((i90 | 0) == (i225 | 0)) {
6470 i75 = (i225 | 0) == 0 ? 1 : i225 << 1;
6471 if ((i225 | 0) >= (i75 | 0)) {
6472 i230 = i225;
6473 break;
6474 }
6475 if ((i75 | 0) == 0) {
6476 i231 = 0;
6477 i232 = i225;
6478 } else {
6479 i84 = __Z22btAlignedAllocInternalji(i75 << 2, 16) | 0;
6480 i231 = i84;
6481 i232 = HEAP32[i53 >> 2] | 0;
6482 }
6483 if ((i232 | 0) > 0) {
6484 i84 = 0;
6485 do {
6486 i80 = i231 + (i84 << 2) | 0;
6487 if ((i80 | 0) != 0) {
6488 HEAP32[i80 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i84 << 2) >> 2];
6489 }
6490 i84 = i84 + 1 | 0;
6491 } while ((i84 | 0) < (i232 | 0));
6492 }
6493 i84 = HEAP32[i32 >> 2] | 0;
6494 if ((i84 | 0) == 0) {
6495 i233 = i232;
6496 } else {
6497 if ((HEAP8[i54] | 0) == 0) {
6498 i234 = i232;
6499 } else {
6500 __Z21btAlignedFreeInternalPv(i84);
6501 i234 = HEAP32[i53 >> 2] | 0;
6502 }
6503 HEAP32[i32 >> 2] = 0;
6504 i233 = i234;
6505 }
6506 HEAP8[i54] = 1;
6507 HEAP32[i32 >> 2] = i231;
6508 HEAP32[i52 >> 2] = i75;
6509 i230 = i233;
6510 } else {
6511 i230 = i90;
6512 }
6513 } while (0);
6514 i90 = (HEAP32[i32 >> 2] | 0) + (i230 << 2) | 0;
6515 if ((i90 | 0) != 0) {
6516 HEAP32[i90 >> 2] = 0;
6517 }
6518 HEAP32[i53 >> 2] = i230 + 1;
6519 }
6520 i90 = (i65 | 0) == 0;
6521 if ((i65 | i50 | 0) == 0) {
6522 i58 = HEAP32[HEAP32[i60 >> 2] >> 2] | 0;
6523 i84 = HEAP32[i64 >> 2] | 0;
6524 if ((HEAP32[i58 + 12 >> 2] | 0) == (i84 | 0)) {
6525 i235 = i58;
6526 } else {
6527 i236 = i84;
6528 i49 = 1401;
6529 }
6530 } else {
6531 i236 = HEAP32[i64 >> 2] | 0;
6532 i49 = 1401;
6533 }
6534 if ((i49 | 0) == 1401) {
6535 i49 = 0;
6536 i84 = HEAP32[i61 + 12 >> 2] | 0;
6537 i58 = __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i11) | 0;
6538 i66 = __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i11) | 0;
6539 i80 = i58 + 8 | 0;
6540 HEAP32[i80 >> 2] = i66;
6541 HEAP32[i66 + 8 >> 2] = i58;
6542 HEAP32[i58 + 20 >> 2] = HEAP32[i9 >> 2];
6543 HEAP32[i66 + 20 >> 2] = HEAP32[i9 >> 2];
6544 HEAP32[i58 + 12 >> 2] = i236;
6545 HEAP32[i66 + 12 >> 2] = i84;
6546 HEAP32[i58 + 16 >> 2] = 0;
6547 HEAP32[i66 + 16 >> 2] = 0;
6548 i66 = (HEAP32[i30 >> 2] | 0) + 1 | 0;
6549 HEAP32[i30 >> 2] = i66;
6550 if ((i66 | 0) > (HEAP32[i40 >> 2] | 0)) {
6551 HEAP32[i40 >> 2] = i66;
6552 }
6553 if (i57) {
6554 i66 = HEAP32[HEAP32[i60 >> 2] >> 2] | 0;
6555 HEAP32[i58 >> 2] = i66;
6556 HEAP32[i66 + 4 >> 2] = i58;
6557 i49 = 1406;
6558 } else {
6559 if ((i55 | 0) != 0) {
6560 i49 = 1406;
6561 }
6562 }
6563 if ((i49 | 0) == 1406) {
6564 i49 = 0;
6565 i66 = HEAP32[i60 >> 2] | 0;
6566 HEAP32[i66 >> 2] = i58;
6567 HEAP32[i58 + 4 >> 2] = i66;
6568 }
6569 i66 = i59 + 8 | 0;
6570 if (i90) {
6571 i90 = HEAP32[(HEAP32[i66 >> 2] | 0) + 4 >> 2] | 0;
6572 i84 = HEAP32[i80 >> 2] | 0;
6573 HEAP32[i90 >> 2] = i84;
6574 HEAP32[i84 + 4 >> 2] = i90;
6575 }
6576 i90 = HEAP32[i80 >> 2] | 0;
6577 i80 = HEAP32[i66 >> 2] | 0;
6578 HEAP32[i90 >> 2] = i80;
6579 HEAP32[i80 + 4 >> 2] = i90;
6580 i235 = i58;
6581 }
6582 do {
6583 if ((i55 | 0) != 0) {
6584 i58 = i55 + 8 | 0;
6585 i90 = HEAP32[i58 >> 2] | 0;
6586 if ((i50 | 0) > 0) {
6587 HEAP32[i235 >> 2] = i90;
6588 HEAP32[i90 + 4 >> 2] = i235;
6589 break;
6590 }
6591 if ((i235 | 0) == (i90 | 0)) {
6592 break;
6593 }
6594 i90 = i55 + 12 | 0;
6595 i80 = HEAP32[i53 >> 2] | 0;
6596 i66 = HEAP32[i52 >> 2] | 0;
6597 do {
6598 if ((i80 | 0) == (i66 | 0)) {
6599 i84 = (i80 | 0) == 0 ? 1 : i80 << 1;
6600 if ((i80 | 0) >= (i84 | 0)) {
6601 i237 = i80;
6602 i238 = i80;
6603 break;
6604 }
6605 if ((i84 | 0) == 0) {
6606 i239 = 0;
6607 i240 = i80;
6608 } else {
6609 i87 = __Z22btAlignedAllocInternalji(i84 << 2, 16) | 0;
6610 i239 = i87;
6611 i240 = HEAP32[i53 >> 2] | 0;
6612 }
6613 if ((i240 | 0) > 0) {
6614 i87 = 0;
6615 do {
6616 i115 = i239 + (i87 << 2) | 0;
6617 if ((i115 | 0) != 0) {
6618 HEAP32[i115 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i87 << 2) >> 2];
6619 }
6620 i87 = i87 + 1 | 0;
6621 } while ((i87 | 0) < (i240 | 0));
6622 }
6623 i87 = HEAP32[i32 >> 2] | 0;
6624 if ((i87 | 0) == 0) {
6625 i241 = i240;
6626 } else {
6627 if ((HEAP8[i54] | 0) == 0) {
6628 i242 = i240;
6629 } else {
6630 __Z21btAlignedFreeInternalPv(i87);
6631 i242 = HEAP32[i53 >> 2] | 0;
6632 }
6633 HEAP32[i32 >> 2] = 0;
6634 i241 = i242;
6635 }
6636 HEAP8[i54] = 1;
6637 HEAP32[i32 >> 2] = i239;
6638 HEAP32[i52 >> 2] = i84;
6639 i237 = i241;
6640 i238 = i84;
6641 } else {
6642 i237 = i80;
6643 i238 = i66;
6644 }
6645 } while (0);
6646 i66 = (HEAP32[i32 >> 2] | 0) + (i237 << 2) | 0;
6647 if ((i66 | 0) != 0) {
6648 HEAP32[i66 >> 2] = HEAP32[i90 >> 2];
6649 }
6650 i66 = i237 + 1 | 0;
6651 HEAP32[i53 >> 2] = i66;
6652 i80 = i235 | 0;
6653 i75 = HEAP32[i80 >> 2] | 0;
6654 if ((i75 | 0) == (HEAP32[i58 >> 2] | 0)) {
6655 i243 = i66;
6656 i244 = i238;
6657 } else {
6658 i66 = i75;
6659 while (1) {
6660 i75 = i66 + 12 | 0;
6661 i87 = HEAP32[i75 >> 2] | 0;
6662 i115 = i66 | 0;
6663 i76 = HEAP32[i115 >> 2] | 0;
6664 i149 = HEAP32[i66 + 8 >> 2] | 0;
6665 if ((i76 | 0) == (i66 | 0)) {
6666 HEAP32[(HEAP32[i149 + 12 >> 2] | 0) + 8 >> 2] = 0;
6667 } else {
6668 i130 = i66 + 4 | 0;
6669 HEAP32[i76 + 4 >> 2] = HEAP32[i130 >> 2];
6670 HEAP32[HEAP32[i130 >> 2] >> 2] = i76;
6671 HEAP32[(HEAP32[i149 + 12 >> 2] | 0) + 8 >> 2] = i76;
6672 }
6673 i76 = i149 | 0;
6674 i130 = HEAP32[i76 >> 2] | 0;
6675 if ((i130 | 0) == (i149 | 0)) {
6676 HEAP32[(HEAP32[i75 >> 2] | 0) + 8 >> 2] = 0;
6677 } else {
6678 i93 = i149 + 4 | 0;
6679 HEAP32[i130 + 4 >> 2] = HEAP32[i93 >> 2];
6680 HEAP32[HEAP32[i93 >> 2] >> 2] = i130;
6681 HEAP32[(HEAP32[i75 >> 2] | 0) + 8 >> 2] = i130;
6682 }
6683 _memset(i66 | 0, 0, 20);
6684 HEAP32[i115 >> 2] = HEAP32[i4 >> 2];
6685 HEAP32[i4 >> 2] = i66;
6686 _memset(i149 | 0, 0, 20);
6687 HEAP32[i76 >> 2] = HEAP32[i4 >> 2];
6688 HEAP32[i4 >> 2] = i149;
6689 HEAP32[i30 >> 2] = (HEAP32[i30 >> 2] | 0) - 1;
6690 i149 = HEAP32[i53 >> 2] | 0;
6691 i76 = HEAP32[i52 >> 2] | 0;
6692 do {
6693 if ((i149 | 0) == (i76 | 0)) {
6694 i115 = (i149 | 0) == 0 ? 1 : i149 << 1;
6695 if ((i149 | 0) >= (i115 | 0)) {
6696 i245 = i149;
6697 i246 = i149;
6698 break;
6699 }
6700 if ((i115 | 0) == 0) {
6701 i247 = 0;
6702 i248 = i149;
6703 } else {
6704 i130 = __Z22btAlignedAllocInternalji(i115 << 2, 16) | 0;
6705 i247 = i130;
6706 i248 = HEAP32[i53 >> 2] | 0;
6707 }
6708 if ((i248 | 0) > 0) {
6709 i130 = 0;
6710 do {
6711 i75 = i247 + (i130 << 2) | 0;
6712 if ((i75 | 0) != 0) {
6713 HEAP32[i75 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i130 << 2) >> 2];
6714 }
6715 i130 = i130 + 1 | 0;
6716 } while ((i130 | 0) < (i248 | 0));
6717 }
6718 i130 = HEAP32[i32 >> 2] | 0;
6719 if ((i130 | 0) == 0) {
6720 i249 = i248;
6721 } else {
6722 if ((HEAP8[i54] | 0) == 0) {
6723 i250 = i248;
6724 } else {
6725 __Z21btAlignedFreeInternalPv(i130);
6726 i250 = HEAP32[i53 >> 2] | 0;
6727 }
6728 HEAP32[i32 >> 2] = 0;
6729 i249 = i250;
6730 }
6731 HEAP8[i54] = 1;
6732 HEAP32[i32 >> 2] = i247;
6733 HEAP32[i52 >> 2] = i115;
6734 i245 = i249;
6735 i246 = i115;
6736 } else {
6737 i245 = i149;
6738 i246 = i76;
6739 }
6740 } while (0);
6741 i76 = (HEAP32[i32 >> 2] | 0) + (i245 << 2) | 0;
6742 if ((i76 | 0) != 0) {
6743 HEAP32[i76 >> 2] = i87;
6744 }
6745 i76 = i245 + 1 | 0;
6746 HEAP32[i53 >> 2] = i76;
6747 i149 = HEAP32[i80 >> 2] | 0;
6748 if ((i149 | 0) == (HEAP32[i58 >> 2] | 0)) {
6749 i243 = i76;
6750 i244 = i246;
6751 break;
6752 } else {
6753 i66 = i149;
6754 }
6755 }
6756 }
6757 do {
6758 if ((i243 | 0) == (i244 | 0)) {
6759 i66 = (i244 | 0) == 0 ? 1 : i244 << 1;
6760 if ((i244 | 0) >= (i66 | 0)) {
6761 i251 = i244;
6762 break;
6763 }
6764 if ((i66 | 0) == 0) {
6765 i252 = 0;
6766 i253 = i244;
6767 } else {
6768 i58 = __Z22btAlignedAllocInternalji(i66 << 2, 16) | 0;
6769 i252 = i58;
6770 i253 = HEAP32[i53 >> 2] | 0;
6771 }
6772 if ((i253 | 0) > 0) {
6773 i58 = 0;
6774 do {
6775 i80 = i252 + (i58 << 2) | 0;
6776 if ((i80 | 0) != 0) {
6777 HEAP32[i80 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i58 << 2) >> 2];
6778 }
6779 i58 = i58 + 1 | 0;
6780 } while ((i58 | 0) < (i253 | 0));
6781 }
6782 i58 = HEAP32[i32 >> 2] | 0;
6783 if ((i58 | 0) == 0) {
6784 i254 = i253;
6785 } else {
6786 if ((HEAP8[i54] | 0) == 0) {
6787 i255 = i253;
6788 } else {
6789 __Z21btAlignedFreeInternalPv(i58);
6790 i255 = HEAP32[i53 >> 2] | 0;
6791 }
6792 HEAP32[i32 >> 2] = 0;
6793 i254 = i255;
6794 }
6795 HEAP8[i54] = 1;
6796 HEAP32[i32 >> 2] = i252;
6797 HEAP32[i52 >> 2] = i66;
6798 i251 = i254;
6799 } else {
6800 i251 = i243;
6801 }
6802 } while (0);
6803 i58 = (HEAP32[i32 >> 2] | 0) + (i251 << 2) | 0;
6804 if ((i58 | 0) != 0) {
6805 HEAP32[i58 >> 2] = 0;
6806 }
6807 HEAP32[i53 >> 2] = i251 + 1;
6808 }
6809 } while (0);
6810 HEAP32[i235 + 16 >> 2] = i2;
6811 HEAP32[(HEAP32[i235 + 8 >> 2] | 0) + 16 >> 2] = HEAP32[i59 + 16 >> 2];
6812 i44 = i59;
6813 i50 = i65;
6814 i51 = i63;
6815 i55 = i235;
6816 i56 = (i56 | 0) == 0 ? i235 : i56;
6817 }
6818 if ((i49 | 0) == 1618) {
6819 STACKTOP = i5;
6820 return i20 | 0;
6821 }
6822 do {
6823 if ((i50 | 0) > 0) {
6824 HEAP32[(HEAP32[i56 + 8 >> 2] | 0) + 12 >> 2] = HEAP32[i55 + 12 >> 2];
6825 i235 = HEAP32[i51 + 8 >> 2] | 0;
6826 HEAP32[i235 >> 2] = i56;
6827 HEAP32[i56 + 4 >> 2] = i235;
6828 i235 = HEAP32[i55 + 8 >> 2] | 0;
6829 HEAP32[i56 >> 2] = i235;
6830 HEAP32[i235 + 4 >> 2] = i56;
6831 } else {
6832 i235 = i55 + 8 | 0;
6833 if ((i56 | 0) == (HEAP32[i235 >> 2] | 0)) {
6834 break;
6835 }
6836 i63 = i55 + 12 | 0;
6837 i65 = HEAP32[i53 >> 2] | 0;
6838 i44 = HEAP32[i52 >> 2] | 0;
6839 do {
6840 if ((i65 | 0) == (i44 | 0)) {
6841 i251 = (i65 | 0) == 0 ? 1 : i65 << 1;
6842 if ((i65 | 0) >= (i251 | 0)) {
6843 i256 = i65;
6844 i257 = i65;
6845 break;
6846 }
6847 if ((i251 | 0) == 0) {
6848 i258 = 0;
6849 i259 = i65;
6850 } else {
6851 i243 = __Z22btAlignedAllocInternalji(i251 << 2, 16) | 0;
6852 i258 = i243;
6853 i259 = HEAP32[i53 >> 2] | 0;
6854 }
6855 if ((i259 | 0) > 0) {
6856 i243 = 0;
6857 do {
6858 i254 = i258 + (i243 << 2) | 0;
6859 if ((i254 | 0) != 0) {
6860 HEAP32[i254 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i243 << 2) >> 2];
6861 }
6862 i243 = i243 + 1 | 0;
6863 } while ((i243 | 0) < (i259 | 0));
6864 }
6865 i243 = HEAP32[i32 >> 2] | 0;
6866 if ((i243 | 0) == 0) {
6867 i260 = i259;
6868 } else {
6869 if ((HEAP8[i54] | 0) == 0) {
6870 i261 = i259;
6871 } else {
6872 __Z21btAlignedFreeInternalPv(i243);
6873 i261 = HEAP32[i53 >> 2] | 0;
6874 }
6875 HEAP32[i32 >> 2] = 0;
6876 i260 = i261;
6877 }
6878 HEAP8[i54] = 1;
6879 HEAP32[i32 >> 2] = i258;
6880 HEAP32[i52 >> 2] = i251;
6881 i256 = i260;
6882 i257 = i251;
6883 } else {
6884 i256 = i65;
6885 i257 = i44;
6886 }
6887 } while (0);
6888 i44 = (HEAP32[i32 >> 2] | 0) + (i256 << 2) | 0;
6889 if ((i44 | 0) != 0) {
6890 HEAP32[i44 >> 2] = HEAP32[i63 >> 2];
6891 }
6892 i44 = i256 + 1 | 0;
6893 HEAP32[i53 >> 2] = i44;
6894 i65 = i56 | 0;
6895 i59 = HEAP32[i65 >> 2] | 0;
6896 if ((i59 | 0) == (HEAP32[i235 >> 2] | 0)) {
6897 i262 = i44;
6898 i263 = i257;
6899 } else {
6900 i44 = i59;
6901 while (1) {
6902 i59 = i44 + 12 | 0;
6903 i243 = HEAP32[i59 >> 2] | 0;
6904 i254 = i44 | 0;
6905 i252 = HEAP32[i254 >> 2] | 0;
6906 i255 = HEAP32[i44 + 8 >> 2] | 0;
6907 if ((i252 | 0) == (i44 | 0)) {
6908 HEAP32[(HEAP32[i255 + 12 >> 2] | 0) + 8 >> 2] = 0;
6909 } else {
6910 i253 = i44 + 4 | 0;
6911 HEAP32[i252 + 4 >> 2] = HEAP32[i253 >> 2];
6912 HEAP32[HEAP32[i253 >> 2] >> 2] = i252;
6913 HEAP32[(HEAP32[i255 + 12 >> 2] | 0) + 8 >> 2] = i252;
6914 }
6915 i252 = i255 | 0;
6916 i253 = HEAP32[i252 >> 2] | 0;
6917 if ((i253 | 0) == (i255 | 0)) {
6918 HEAP32[(HEAP32[i59 >> 2] | 0) + 8 >> 2] = 0;
6919 } else {
6920 i244 = i255 + 4 | 0;
6921 HEAP32[i253 + 4 >> 2] = HEAP32[i244 >> 2];
6922 HEAP32[HEAP32[i244 >> 2] >> 2] = i253;
6923 HEAP32[(HEAP32[i59 >> 2] | 0) + 8 >> 2] = i253;
6924 }
6925 _memset(i44 | 0, 0, 20);
6926 HEAP32[i254 >> 2] = HEAP32[i4 >> 2];
6927 HEAP32[i4 >> 2] = i44;
6928 _memset(i255 | 0, 0, 20);
6929 HEAP32[i252 >> 2] = HEAP32[i4 >> 2];
6930 HEAP32[i4 >> 2] = i255;
6931 HEAP32[i30 >> 2] = (HEAP32[i30 >> 2] | 0) - 1;
6932 i255 = HEAP32[i53 >> 2] | 0;
6933 i252 = HEAP32[i52 >> 2] | 0;
6934 do {
6935 if ((i255 | 0) == (i252 | 0)) {
6936 i254 = (i255 | 0) == 0 ? 1 : i255 << 1;
6937 if ((i255 | 0) >= (i254 | 0)) {
6938 i264 = i255;
6939 i265 = i255;
6940 break;
6941 }
6942 if ((i254 | 0) == 0) {
6943 i266 = 0;
6944 i267 = i255;
6945 } else {
6946 i253 = __Z22btAlignedAllocInternalji(i254 << 2, 16) | 0;
6947 i266 = i253;
6948 i267 = HEAP32[i53 >> 2] | 0;
6949 }
6950 if ((i267 | 0) > 0) {
6951 i253 = 0;
6952 do {
6953 i59 = i266 + (i253 << 2) | 0;
6954 if ((i59 | 0) != 0) {
6955 HEAP32[i59 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i253 << 2) >> 2];
6956 }
6957 i253 = i253 + 1 | 0;
6958 } while ((i253 | 0) < (i267 | 0));
6959 }
6960 i253 = HEAP32[i32 >> 2] | 0;
6961 if ((i253 | 0) == 0) {
6962 i268 = i267;
6963 } else {
6964 if ((HEAP8[i54] | 0) == 0) {
6965 i269 = i267;
6966 } else {
6967 __Z21btAlignedFreeInternalPv(i253);
6968 i269 = HEAP32[i53 >> 2] | 0;
6969 }
6970 HEAP32[i32 >> 2] = 0;
6971 i268 = i269;
6972 }
6973 HEAP8[i54] = 1;
6974 HEAP32[i32 >> 2] = i266;
6975 HEAP32[i52 >> 2] = i254;
6976 i264 = i268;
6977 i265 = i254;
6978 } else {
6979 i264 = i255;
6980 i265 = i252;
6981 }
6982 } while (0);
6983 i252 = (HEAP32[i32 >> 2] | 0) + (i264 << 2) | 0;
6984 if ((i252 | 0) != 0) {
6985 HEAP32[i252 >> 2] = i243;
6986 }
6987 i252 = i264 + 1 | 0;
6988 HEAP32[i53 >> 2] = i252;
6989 i255 = HEAP32[i65 >> 2] | 0;
6990 if ((i255 | 0) == (HEAP32[i235 >> 2] | 0)) {
6991 i262 = i252;
6992 i263 = i265;
6993 break;
6994 } else {
6995 i44 = i255;
6996 }
6997 }
6998 }
6999 do {
7000 if ((i262 | 0) == (i263 | 0)) {
7001 i44 = (i263 | 0) == 0 ? 1 : i263 << 1;
7002 if ((i263 | 0) >= (i44 | 0)) {
7003 i270 = i263;
7004 break;
7005 }
7006 if ((i44 | 0) == 0) {
7007 i271 = 0;
7008 i272 = i263;
7009 } else {
7010 i235 = __Z22btAlignedAllocInternalji(i44 << 2, 16) | 0;
7011 i271 = i235;
7012 i272 = HEAP32[i53 >> 2] | 0;
7013 }
7014 if ((i272 | 0) > 0) {
7015 i235 = 0;
7016 do {
7017 i65 = i271 + (i235 << 2) | 0;
7018 if ((i65 | 0) != 0) {
7019 HEAP32[i65 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i235 << 2) >> 2];
7020 }
7021 i235 = i235 + 1 | 0;
7022 } while ((i235 | 0) < (i272 | 0));
7023 }
7024 i235 = HEAP32[i32 >> 2] | 0;
7025 if ((i235 | 0) == 0) {
7026 i273 = i272;
7027 } else {
7028 if ((HEAP8[i54] | 0) == 0) {
7029 i274 = i272;
7030 } else {
7031 __Z21btAlignedFreeInternalPv(i235);
7032 i274 = HEAP32[i53 >> 2] | 0;
7033 }
7034 HEAP32[i32 >> 2] = 0;
7035 i273 = i274;
7036 }
7037 HEAP8[i54] = 1;
7038 HEAP32[i32 >> 2] = i271;
7039 HEAP32[i52 >> 2] = i44;
7040 i270 = i273;
7041 } else {
7042 i270 = i262;
7043 }
7044 } while (0);
7045 i235 = (HEAP32[i32 >> 2] | 0) + (i270 << 2) | 0;
7046 if ((i235 | 0) != 0) {
7047 HEAP32[i235 >> 2] = 0;
7048 }
7049 HEAP32[i53 >> 2] = i270 + 1;
7050 }
7051 } while (0);
7052 HEAP32[i1 + 124 >> 2] = HEAP32[HEAP32[i32 >> 2] >> 2];
7053 i1 = HEAP32[i53 >> 2] | 0;
7054 if ((i1 | 0) > 0) {
7055 i270 = 0;
7056 i262 = i1;
7057 while (1) {
7058 if ((i270 | 0) < (i262 | 0)) {
7059 i273 = i270;
7060 while (1) {
7061 i271 = HEAP32[i32 >> 2] | 0;
7062 i274 = HEAP32[i271 + (i273 << 2) >> 2] | 0;
7063 i272 = i273 + 2 | 0;
7064 i263 = HEAP32[i271 + (i273 + 1 << 2) >> 2] | 0;
7065 do {
7066 if ((i263 | 0) == 0) {
7067 i275 = i272;
7068 } else {
7069 i271 = i274 + 16 | 0;
7070 i265 = i274 + 12 | 0;
7071 i264 = 0;
7072 i268 = i272;
7073 i266 = i263;
7074 while (1) {
7075 i269 = HEAP32[i271 >> 2] | 0;
7076 i267 = i266 + 12 | 0;
7077 i257 = HEAP32[i267 >> 2] | 0;
7078 if ((i269 | 0) == 0) {
7079 HEAP32[i265 >> 2] = i257;
7080 } else {
7081 HEAP32[i269 + 8 >> 2] = i257;
7082 }
7083 i257 = i266 + 16 | 0;
7084 i269 = HEAP32[i257 >> 2] | 0;
7085 if ((i269 | 0) != 0) {
7086 HEAP32[i271 >> 2] = i269;
7087 }
7088 i269 = HEAP32[i267 >> 2] | 0;
7089 if ((i269 | 0) != 0) {
7090 i56 = i269;
7091 do {
7092 HEAP32[i56 + 4 >> 2] = i274;
7093 i56 = HEAP32[i56 + 8 >> 2] | 0;
7094 } while ((i56 | 0) != 0);
7095 }
7096 HEAP32[i267 >> 2] = 0;
7097 HEAP32[i257 >> 2] = 0;
7098 i56 = i266 + 8 | 0;
7099 i115 = HEAP32[i56 >> 2] | 0;
7100 if ((i115 | 0) == 0) {
7101 i276 = i264;
7102 } else {
7103 i269 = i264;
7104 i256 = i115;
7105 while (1) {
7106 i115 = HEAP32[i53 >> 2] | 0;
7107 i260 = HEAP32[i52 >> 2] | 0;
7108 if (i269) {
7109 i277 = i256;
7110 i278 = i115;
7111 i279 = i260;
7112 } else {
7113 do {
7114 if ((i115 | 0) == (i260 | 0)) {
7115 i258 = (i115 | 0) == 0 ? 1 : i115 << 1;
7116 if ((i115 | 0) >= (i258 | 0)) {
7117 i280 = i115;
7118 i281 = i115;
7119 break;
7120 }
7121 if ((i258 | 0) == 0) {
7122 i282 = 0;
7123 i283 = i115;
7124 } else {
7125 i261 = __Z22btAlignedAllocInternalji(i258 << 2, 16) | 0;
7126 i282 = i261;
7127 i283 = HEAP32[i53 >> 2] | 0;
7128 }
7129 if ((i283 | 0) > 0) {
7130 i261 = 0;
7131 do {
7132 i259 = i282 + (i261 << 2) | 0;
7133 if ((i259 | 0) != 0) {
7134 HEAP32[i259 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i261 << 2) >> 2];
7135 }
7136 i261 = i261 + 1 | 0;
7137 } while ((i261 | 0) < (i283 | 0));
7138 }
7139 i261 = HEAP32[i32 >> 2] | 0;
7140 if ((i261 | 0) == 0) {
7141 i284 = i283;
7142 } else {
7143 if ((HEAP8[i54] | 0) == 0) {
7144 i285 = i283;
7145 } else {
7146 __Z21btAlignedFreeInternalPv(i261);
7147 i285 = HEAP32[i53 >> 2] | 0;
7148 }
7149 HEAP32[i32 >> 2] = 0;
7150 i284 = i285;
7151 }
7152 HEAP8[i54] = 1;
7153 HEAP32[i32 >> 2] = i282;
7154 HEAP32[i52 >> 2] = i258;
7155 i280 = i284;
7156 i281 = i258;
7157 } else {
7158 i280 = i115;
7159 i281 = i260;
7160 }
7161 } while (0);
7162 i260 = (HEAP32[i32 >> 2] | 0) + (i280 << 2) | 0;
7163 if ((i260 | 0) != 0) {
7164 HEAP32[i260 >> 2] = i274;
7165 }
7166 i260 = i280 + 1 | 0;
7167 HEAP32[i53 >> 2] = i260;
7168 i277 = HEAP32[i56 >> 2] | 0;
7169 i278 = i260;
7170 i279 = i281;
7171 }
7172 i260 = i277 + 12 | 0;
7173 do {
7174 if ((i278 | 0) == (i279 | 0)) {
7175 i115 = (i279 | 0) == 0 ? 1 : i279 << 1;
7176 if ((i279 | 0) >= (i115 | 0)) {
7177 i286 = i279;
7178 break;
7179 }
7180 if ((i115 | 0) == 0) {
7181 i287 = 0;
7182 i288 = i279;
7183 } else {
7184 i261 = __Z22btAlignedAllocInternalji(i115 << 2, 16) | 0;
7185 i287 = i261;
7186 i288 = HEAP32[i53 >> 2] | 0;
7187 }
7188 if ((i288 | 0) > 0) {
7189 i261 = 0;
7190 do {
7191 i259 = i287 + (i261 << 2) | 0;
7192 if ((i259 | 0) != 0) {
7193 HEAP32[i259 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i261 << 2) >> 2];
7194 }
7195 i261 = i261 + 1 | 0;
7196 } while ((i261 | 0) < (i288 | 0));
7197 }
7198 i261 = HEAP32[i32 >> 2] | 0;
7199 if ((i261 | 0) == 0) {
7200 i289 = i288;
7201 } else {
7202 if ((HEAP8[i54] | 0) == 0) {
7203 i290 = i288;
7204 } else {
7205 __Z21btAlignedFreeInternalPv(i261);
7206 i290 = HEAP32[i53 >> 2] | 0;
7207 }
7208 HEAP32[i32 >> 2] = 0;
7209 i289 = i290;
7210 }
7211 HEAP8[i54] = 1;
7212 HEAP32[i32 >> 2] = i287;
7213 HEAP32[i52 >> 2] = i115;
7214 i286 = i289;
7215 } else {
7216 i286 = i278;
7217 }
7218 } while (0);
7219 i261 = (HEAP32[i32 >> 2] | 0) + (i286 << 2) | 0;
7220 if ((i261 | 0) != 0) {
7221 HEAP32[i261 >> 2] = HEAP32[i260 >> 2];
7222 }
7223 HEAP32[i53 >> 2] = i286 + 1;
7224 i261 = HEAP32[i56 >> 2] | 0;
7225 i258 = i261 | 0;
7226 i259 = HEAP32[i258 >> 2] | 0;
7227 i55 = HEAP32[i261 + 8 >> 2] | 0;
7228 if ((i259 | 0) == (i261 | 0)) {
7229 HEAP32[(HEAP32[i55 + 12 >> 2] | 0) + 8 >> 2] = 0;
7230 } else {
7231 i51 = i261 + 4 | 0;
7232 HEAP32[i259 + 4 >> 2] = HEAP32[i51 >> 2];
7233 HEAP32[HEAP32[i51 >> 2] >> 2] = i259;
7234 HEAP32[(HEAP32[i55 + 12 >> 2] | 0) + 8 >> 2] = i259;
7235 }
7236 i259 = i55 | 0;
7237 i51 = HEAP32[i259 >> 2] | 0;
7238 if ((i51 | 0) == (i55 | 0)) {
7239 HEAP32[(HEAP32[i261 + 12 >> 2] | 0) + 8 >> 2] = 0;
7240 } else {
7241 i50 = i55 + 4 | 0;
7242 HEAP32[i51 + 4 >> 2] = HEAP32[i50 >> 2];
7243 HEAP32[HEAP32[i50 >> 2] >> 2] = i51;
7244 HEAP32[(HEAP32[i261 + 12 >> 2] | 0) + 8 >> 2] = i51;
7245 }
7246 _memset(i261 | 0, 0, 20);
7247 HEAP32[i258 >> 2] = HEAP32[i4 >> 2];
7248 HEAP32[i4 >> 2] = i261;
7249 _memset(i55 | 0, 0, 20);
7250 HEAP32[i259 >> 2] = HEAP32[i4 >> 2];
7251 HEAP32[i4 >> 2] = i55;
7252 HEAP32[i30 >> 2] = (HEAP32[i30 >> 2] | 0) - 1;
7253 i55 = HEAP32[i56 >> 2] | 0;
7254 if ((i55 | 0) == 0) {
7255 i276 = 1;
7256 break;
7257 } else {
7258 i269 = 1;
7259 i256 = i55;
7260 }
7261 }
7262 }
7263 i291 = i268 + 1 | 0;
7264 i292 = HEAP32[i32 >> 2] | 0;
7265 i256 = HEAP32[i292 + (i268 << 2) >> 2] | 0;
7266 if ((i256 | 0) == 0) {
7267 break;
7268 } else {
7269 i264 = i276;
7270 i268 = i291;
7271 i266 = i256;
7272 }
7273 }
7274 if (!i276) {
7275 i275 = i291;
7276 break;
7277 }
7278 i266 = HEAP32[i53 >> 2] | 0;
7279 do {
7280 if ((i266 | 0) == (HEAP32[i52 >> 2] | 0)) {
7281 i268 = (i266 | 0) == 0 ? 1 : i266 << 1;
7282 if ((i266 | 0) >= (i268 | 0)) {
7283 i293 = i266;
7284 i294 = i292;
7285 break;
7286 }
7287 if ((i268 | 0) == 0) {
7288 i295 = 0;
7289 i296 = i266;
7290 } else {
7291 i264 = __Z22btAlignedAllocInternalji(i268 << 2, 16) | 0;
7292 i295 = i264;
7293 i296 = HEAP32[i53 >> 2] | 0;
7294 }
7295 if ((i296 | 0) > 0) {
7296 i264 = 0;
7297 do {
7298 i271 = i295 + (i264 << 2) | 0;
7299 if ((i271 | 0) != 0) {
7300 HEAP32[i271 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i264 << 2) >> 2];
7301 }
7302 i264 = i264 + 1 | 0;
7303 } while ((i264 | 0) < (i296 | 0));
7304 }
7305 i264 = HEAP32[i32 >> 2] | 0;
7306 if ((i264 | 0) == 0) {
7307 i297 = i296;
7308 } else {
7309 if ((HEAP8[i54] | 0) == 0) {
7310 i298 = i296;
7311 } else {
7312 __Z21btAlignedFreeInternalPv(i264);
7313 i298 = HEAP32[i53 >> 2] | 0;
7314 }
7315 HEAP32[i32 >> 2] = 0;
7316 i297 = i298;
7317 }
7318 HEAP8[i54] = 1;
7319 HEAP32[i32 >> 2] = i295;
7320 HEAP32[i52 >> 2] = i268;
7321 i293 = i297;
7322 i294 = i295;
7323 } else {
7324 i293 = i266;
7325 i294 = i292;
7326 }
7327 } while (0);
7328 i266 = i294 + (i293 << 2) | 0;
7329 if ((i266 | 0) != 0) {
7330 HEAP32[i266 >> 2] = 0;
7331 }
7332 HEAP32[i53 >> 2] = i293 + 1;
7333 i275 = i291;
7334 }
7335 } while (0);
7336 if ((i275 | 0) < (i262 | 0)) {
7337 i273 = i275;
7338 } else {
7339 break;
7340 }
7341 }
7342 i299 = i275;
7343 i300 = HEAP32[i53 >> 2] | 0;
7344 } else {
7345 i299 = i270;
7346 i300 = i262;
7347 }
7348 if ((i299 | 0) < (i300 | 0)) {
7349 i270 = i299;
7350 i262 = i300;
7351 } else {
7352 break;
7353 }
7354 }
7355 if ((i300 | 0) <= 0) {
7356 i301 = i300;
7357 i49 = 1599;
7358 }
7359 } else {
7360 i301 = i1;
7361 i49 = 1599;
7362 }
7363 do {
7364 if ((i49 | 0) == 1599) {
7365 if ((i301 | 0) >= 0) {
7366 break;
7367 }
7368 if ((HEAP32[i52 >> 2] | 0) < 0) {
7369 i1 = HEAP32[i32 >> 2] | 0;
7370 if ((i1 | 0) != 0) {
7371 if ((HEAP8[i54] | 0) != 0) {
7372 __Z21btAlignedFreeInternalPv(i1);
7373 }
7374 HEAP32[i32 >> 2] = 0;
7375 }
7376 HEAP8[i54] = 1;
7377 HEAP32[i32 >> 2] = 0;
7378 HEAP32[i52 >> 2] = 0;
7379 i302 = i301;
7380 } else {
7381 i302 = i301;
7382 }
7383 do {
7384 i1 = (HEAP32[i32 >> 2] | 0) + (i302 << 2) | 0;
7385 if ((i1 | 0) != 0) {
7386 HEAP32[i1 >> 2] = 0;
7387 }
7388 i302 = i302 + 1 | 0;
7389 } while ((i302 | 0) < 0);
7390 }
7391 } while (0);
7392 HEAP32[i53 >> 2] = 0;
7393 HEAP32[i28 >> 2] = i35;
7394 HEAP32[i36 >> 2] = i19;
7395 HEAP32[i33 >> 2] = i18;
7396 HEAP32[i2 + 24 >> 2] = -1;
7397 i20 = 1;
7398 STACKTOP = i5;
7399 return i20 | 0;
7400 }
7401 function _malloc(i1) {
7402 i1 = i1 | 0;
7403 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0;
7404 do {
7405 if (i1 >>> 0 < 245) {
7406 if (i1 >>> 0 < 11) {
7407 i2 = 16;
7408 } else {
7409 i2 = i1 + 11 & -8;
7410 }
7411 i3 = i2 >>> 3;
7412 i4 = HEAP32[3016] | 0;
7413 i5 = i4 >>> (i3 >>> 0);
7414 if ((i5 & 3 | 0) != 0) {
7415 i6 = (i5 & 1 ^ 1) + i3 | 0;
7416 i7 = i6 << 1;
7417 i8 = 12104 + (i7 << 2) | 0;
7418 i9 = 12104 + (i7 + 2 << 2) | 0;
7419 i7 = HEAP32[i9 >> 2] | 0;
7420 i10 = i7 + 8 | 0;
7421 i11 = HEAP32[i10 >> 2] | 0;
7422 do {
7423 if ((i8 | 0) == (i11 | 0)) {
7424 HEAP32[3016] = i4 & ~(1 << i6);
7425 } else {
7426 if (i11 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
7427 _abort();
7428 return 0;
7429 }
7430 i12 = i11 + 12 | 0;
7431 if ((HEAP32[i12 >> 2] | 0) == (i7 | 0)) {
7432 HEAP32[i12 >> 2] = i8;
7433 HEAP32[i9 >> 2] = i11;
7434 break;
7435 } else {
7436 _abort();
7437 return 0;
7438 }
7439 }
7440 } while (0);
7441 i11 = i6 << 3;
7442 HEAP32[i7 + 4 >> 2] = i11 | 3;
7443 i9 = i7 + (i11 | 4) | 0;
7444 HEAP32[i9 >> 2] = HEAP32[i9 >> 2] | 1;
7445 i13 = i10;
7446 return i13 | 0;
7447 }
7448 if (i2 >>> 0 <= (HEAP32[3018] | 0) >>> 0) {
7449 i14 = i2;
7450 break;
7451 }
7452 if ((i5 | 0) != 0) {
7453 i9 = 2 << i3;
7454 i11 = i5 << i3 & (i9 | -i9);
7455 i9 = (i11 & -i11) - 1 | 0;
7456 i11 = i9 >>> 12 & 16;
7457 i8 = i9 >>> (i11 >>> 0);
7458 i9 = i8 >>> 5 & 8;
7459 i12 = i8 >>> (i9 >>> 0);
7460 i8 = i12 >>> 2 & 4;
7461 i15 = i12 >>> (i8 >>> 0);
7462 i12 = i15 >>> 1 & 2;
7463 i16 = i15 >>> (i12 >>> 0);
7464 i15 = i16 >>> 1 & 1;
7465 i17 = (i9 | i11 | i8 | i12 | i15) + (i16 >>> (i15 >>> 0)) | 0;
7466 i15 = i17 << 1;
7467 i16 = 12104 + (i15 << 2) | 0;
7468 i12 = 12104 + (i15 + 2 << 2) | 0;
7469 i15 = HEAP32[i12 >> 2] | 0;
7470 i8 = i15 + 8 | 0;
7471 i11 = HEAP32[i8 >> 2] | 0;
7472 do {
7473 if ((i16 | 0) == (i11 | 0)) {
7474 HEAP32[3016] = i4 & ~(1 << i17);
7475 } else {
7476 if (i11 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
7477 _abort();
7478 return 0;
7479 }
7480 i9 = i11 + 12 | 0;
7481 if ((HEAP32[i9 >> 2] | 0) == (i15 | 0)) {
7482 HEAP32[i9 >> 2] = i16;
7483 HEAP32[i12 >> 2] = i11;
7484 break;
7485 } else {
7486 _abort();
7487 return 0;
7488 }
7489 }
7490 } while (0);
7491 i11 = i17 << 3;
7492 i12 = i11 - i2 | 0;
7493 HEAP32[i15 + 4 >> 2] = i2 | 3;
7494 i16 = i15;
7495 i4 = i16 + i2 | 0;
7496 HEAP32[i16 + (i2 | 4) >> 2] = i12 | 1;
7497 HEAP32[i16 + i11 >> 2] = i12;
7498 i11 = HEAP32[3018] | 0;
7499 if ((i11 | 0) != 0) {
7500 i16 = HEAP32[3021] | 0;
7501 i3 = i11 >>> 3;
7502 i11 = i3 << 1;
7503 i5 = 12104 + (i11 << 2) | 0;
7504 i10 = HEAP32[3016] | 0;
7505 i7 = 1 << i3;
7506 do {
7507 if ((i10 & i7 | 0) == 0) {
7508 HEAP32[3016] = i10 | i7;
7509 i18 = i5;
7510 i19 = 12104 + (i11 + 2 << 2) | 0;
7511 } else {
7512 i3 = 12104 + (i11 + 2 << 2) | 0;
7513 i6 = HEAP32[i3 >> 2] | 0;
7514 if (i6 >>> 0 >= (HEAP32[3020] | 0) >>> 0) {
7515 i18 = i6;
7516 i19 = i3;
7517 break;
7518 }
7519 _abort();
7520 return 0;
7521 }
7522 } while (0);
7523 HEAP32[i19 >> 2] = i16;
7524 HEAP32[i18 + 12 >> 2] = i16;
7525 HEAP32[i16 + 8 >> 2] = i18;
7526 HEAP32[i16 + 12 >> 2] = i5;
7527 }
7528 HEAP32[3018] = i12;
7529 HEAP32[3021] = i4;
7530 i13 = i8;
7531 return i13 | 0;
7532 }
7533 i11 = HEAP32[3017] | 0;
7534 if ((i11 | 0) == 0) {
7535 i14 = i2;
7536 break;
7537 }
7538 i7 = (i11 & -i11) - 1 | 0;
7539 i11 = i7 >>> 12 & 16;
7540 i10 = i7 >>> (i11 >>> 0);
7541 i7 = i10 >>> 5 & 8;
7542 i15 = i10 >>> (i7 >>> 0);
7543 i10 = i15 >>> 2 & 4;
7544 i17 = i15 >>> (i10 >>> 0);
7545 i15 = i17 >>> 1 & 2;
7546 i3 = i17 >>> (i15 >>> 0);
7547 i17 = i3 >>> 1 & 1;
7548 i6 = HEAP32[12368 + ((i7 | i11 | i10 | i15 | i17) + (i3 >>> (i17 >>> 0)) << 2) >> 2] | 0;
7549 i17 = i6;
7550 i3 = i6;
7551 i15 = (HEAP32[i6 + 4 >> 2] & -8) - i2 | 0;
7552 while (1) {
7553 i6 = HEAP32[i17 + 16 >> 2] | 0;
7554 if ((i6 | 0) == 0) {
7555 i10 = HEAP32[i17 + 20 >> 2] | 0;
7556 if ((i10 | 0) == 0) {
7557 break;
7558 } else {
7559 i20 = i10;
7560 }
7561 } else {
7562 i20 = i6;
7563 }
7564 i6 = (HEAP32[i20 + 4 >> 2] & -8) - i2 | 0;
7565 i10 = i6 >>> 0 < i15 >>> 0;
7566 i17 = i20;
7567 i3 = i10 ? i20 : i3;
7568 i15 = i10 ? i6 : i15;
7569 }
7570 i17 = i3;
7571 i8 = HEAP32[3020] | 0;
7572 if (i17 >>> 0 < i8 >>> 0) {
7573 _abort();
7574 return 0;
7575 }
7576 i4 = i17 + i2 | 0;
7577 i12 = i4;
7578 if (i17 >>> 0 >= i4 >>> 0) {
7579 _abort();
7580 return 0;
7581 }
7582 i4 = HEAP32[i3 + 24 >> 2] | 0;
7583 i5 = HEAP32[i3 + 12 >> 2] | 0;
7584 do {
7585 if ((i5 | 0) == (i3 | 0)) {
7586 i16 = i3 + 20 | 0;
7587 i6 = HEAP32[i16 >> 2] | 0;
7588 if ((i6 | 0) == 0) {
7589 i10 = i3 + 16 | 0;
7590 i11 = HEAP32[i10 >> 2] | 0;
7591 if ((i11 | 0) == 0) {
7592 i21 = 0;
7593 break;
7594 } else {
7595 i22 = i11;
7596 i23 = i10;
7597 }
7598 } else {
7599 i22 = i6;
7600 i23 = i16;
7601 }
7602 while (1) {
7603 i16 = i22 + 20 | 0;
7604 i6 = HEAP32[i16 >> 2] | 0;
7605 if ((i6 | 0) != 0) {
7606 i22 = i6;
7607 i23 = i16;
7608 continue;
7609 }
7610 i16 = i22 + 16 | 0;
7611 i6 = HEAP32[i16 >> 2] | 0;
7612 if ((i6 | 0) == 0) {
7613 break;
7614 } else {
7615 i22 = i6;
7616 i23 = i16;
7617 }
7618 }
7619 if (i23 >>> 0 < i8 >>> 0) {
7620 _abort();
7621 return 0;
7622 } else {
7623 HEAP32[i23 >> 2] = 0;
7624 i21 = i22;
7625 break;
7626 }
7627 } else {
7628 i16 = HEAP32[i3 + 8 >> 2] | 0;
7629 if (i16 >>> 0 < i8 >>> 0) {
7630 _abort();
7631 return 0;
7632 }
7633 i6 = i16 + 12 | 0;
7634 if ((HEAP32[i6 >> 2] | 0) != (i3 | 0)) {
7635 _abort();
7636 return 0;
7637 }
7638 i10 = i5 + 8 | 0;
7639 if ((HEAP32[i10 >> 2] | 0) == (i3 | 0)) {
7640 HEAP32[i6 >> 2] = i5;
7641 HEAP32[i10 >> 2] = i16;
7642 i21 = i5;
7643 break;
7644 } else {
7645 _abort();
7646 return 0;
7647 }
7648 }
7649 } while (0);
7650 L78 : do {
7651 if ((i4 | 0) != 0) {
7652 i5 = i3 + 28 | 0;
7653 i8 = 12368 + (HEAP32[i5 >> 2] << 2) | 0;
7654 do {
7655 if ((i3 | 0) == (HEAP32[i8 >> 2] | 0)) {
7656 HEAP32[i8 >> 2] = i21;
7657 if ((i21 | 0) != 0) {
7658 break;
7659 }
7660 HEAP32[3017] = HEAP32[3017] & ~(1 << HEAP32[i5 >> 2]);
7661 break L78;
7662 } else {
7663 if (i4 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
7664 _abort();
7665 return 0;
7666 }
7667 i16 = i4 + 16 | 0;
7668 if ((HEAP32[i16 >> 2] | 0) == (i3 | 0)) {
7669 HEAP32[i16 >> 2] = i21;
7670 } else {
7671 HEAP32[i4 + 20 >> 2] = i21;
7672 }
7673 if ((i21 | 0) == 0) {
7674 break L78;
7675 }
7676 }
7677 } while (0);
7678 if (i21 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
7679 _abort();
7680 return 0;
7681 }
7682 HEAP32[i21 + 24 >> 2] = i4;
7683 i5 = HEAP32[i3 + 16 >> 2] | 0;
7684 do {
7685 if ((i5 | 0) != 0) {
7686 if (i5 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
7687 _abort();
7688 return 0;
7689 } else {
7690 HEAP32[i21 + 16 >> 2] = i5;
7691 HEAP32[i5 + 24 >> 2] = i21;
7692 break;
7693 }
7694 }
7695 } while (0);
7696 i5 = HEAP32[i3 + 20 >> 2] | 0;
7697 if ((i5 | 0) == 0) {
7698 break;
7699 }
7700 if (i5 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
7701 _abort();
7702 return 0;
7703 } else {
7704 HEAP32[i21 + 20 >> 2] = i5;
7705 HEAP32[i5 + 24 >> 2] = i21;
7706 break;
7707 }
7708 }
7709 } while (0);
7710 if (i15 >>> 0 < 16) {
7711 i4 = i15 + i2 | 0;
7712 HEAP32[i3 + 4 >> 2] = i4 | 3;
7713 i5 = i17 + (i4 + 4) | 0;
7714 HEAP32[i5 >> 2] = HEAP32[i5 >> 2] | 1;
7715 } else {
7716 HEAP32[i3 + 4 >> 2] = i2 | 3;
7717 HEAP32[i17 + (i2 | 4) >> 2] = i15 | 1;
7718 HEAP32[i17 + (i15 + i2) >> 2] = i15;
7719 i5 = HEAP32[3018] | 0;
7720 if ((i5 | 0) != 0) {
7721 i4 = HEAP32[3021] | 0;
7722 i8 = i5 >>> 3;
7723 i5 = i8 << 1;
7724 i16 = 12104 + (i5 << 2) | 0;
7725 i10 = HEAP32[3016] | 0;
7726 i6 = 1 << i8;
7727 do {
7728 if ((i10 & i6 | 0) == 0) {
7729 HEAP32[3016] = i10 | i6;
7730 i24 = i16;
7731 i25 = 12104 + (i5 + 2 << 2) | 0;
7732 } else {
7733 i8 = 12104 + (i5 + 2 << 2) | 0;
7734 i11 = HEAP32[i8 >> 2] | 0;
7735 if (i11 >>> 0 >= (HEAP32[3020] | 0) >>> 0) {
7736 i24 = i11;
7737 i25 = i8;
7738 break;
7739 }
7740 _abort();
7741 return 0;
7742 }
7743 } while (0);
7744 HEAP32[i25 >> 2] = i4;
7745 HEAP32[i24 + 12 >> 2] = i4;
7746 HEAP32[i4 + 8 >> 2] = i24;
7747 HEAP32[i4 + 12 >> 2] = i16;
7748 }
7749 HEAP32[3018] = i15;
7750 HEAP32[3021] = i12;
7751 }
7752 i5 = i3 + 8 | 0;
7753 if ((i5 | 0) == 0) {
7754 i14 = i2;
7755 break;
7756 } else {
7757 i13 = i5;
7758 }
7759 return i13 | 0;
7760 } else {
7761 if (i1 >>> 0 > 4294967231) {
7762 i14 = -1;
7763 break;
7764 }
7765 i5 = i1 + 11 | 0;
7766 i6 = i5 & -8;
7767 i10 = HEAP32[3017] | 0;
7768 if ((i10 | 0) == 0) {
7769 i14 = i6;
7770 break;
7771 }
7772 i17 = -i6 | 0;
7773 i8 = i5 >>> 8;
7774 do {
7775 if ((i8 | 0) == 0) {
7776 i26 = 0;
7777 } else {
7778 if (i6 >>> 0 > 16777215) {
7779 i26 = 31;
7780 break;
7781 }
7782 i5 = (i8 + 1048320 | 0) >>> 16 & 8;
7783 i11 = i8 << i5;
7784 i7 = (i11 + 520192 | 0) >>> 16 & 4;
7785 i9 = i11 << i7;
7786 i11 = (i9 + 245760 | 0) >>> 16 & 2;
7787 i27 = 14 - (i7 | i5 | i11) + (i9 << i11 >>> 15) | 0;
7788 i26 = i6 >>> ((i27 + 7 | 0) >>> 0) & 1 | i27 << 1;
7789 }
7790 } while (0);
7791 i8 = HEAP32[12368 + (i26 << 2) >> 2] | 0;
7792 L126 : do {
7793 if ((i8 | 0) == 0) {
7794 i28 = 0;
7795 i29 = i17;
7796 i30 = 0;
7797 } else {
7798 if ((i26 | 0) == 31) {
7799 i31 = 0;
7800 } else {
7801 i31 = 25 - (i26 >>> 1) | 0;
7802 }
7803 i3 = 0;
7804 i12 = i17;
7805 i15 = i8;
7806 i16 = i6 << i31;
7807 i4 = 0;
7808 while (1) {
7809 i27 = HEAP32[i15 + 4 >> 2] & -8;
7810 i11 = i27 - i6 | 0;
7811 if (i11 >>> 0 < i12 >>> 0) {
7812 if ((i27 | 0) == (i6 | 0)) {
7813 i28 = i15;
7814 i29 = i11;
7815 i30 = i15;
7816 break L126;
7817 } else {
7818 i32 = i15;
7819 i33 = i11;
7820 }
7821 } else {
7822 i32 = i3;
7823 i33 = i12;
7824 }
7825 i11 = HEAP32[i15 + 20 >> 2] | 0;
7826 i27 = HEAP32[i15 + 16 + (i16 >>> 31 << 2) >> 2] | 0;
7827 i9 = (i11 | 0) == 0 | (i11 | 0) == (i27 | 0) ? i4 : i11;
7828 if ((i27 | 0) == 0) {
7829 i28 = i32;
7830 i29 = i33;
7831 i30 = i9;
7832 break;
7833 } else {
7834 i3 = i32;
7835 i12 = i33;
7836 i15 = i27;
7837 i16 = i16 << 1;
7838 i4 = i9;
7839 }
7840 }
7841 }
7842 } while (0);
7843 if ((i30 | 0) == 0 & (i28 | 0) == 0) {
7844 i8 = 2 << i26;
7845 i17 = i10 & (i8 | -i8);
7846 if ((i17 | 0) == 0) {
7847 i14 = i6;
7848 break;
7849 }
7850 i8 = (i17 & -i17) - 1 | 0;
7851 i17 = i8 >>> 12 & 16;
7852 i4 = i8 >>> (i17 >>> 0);
7853 i8 = i4 >>> 5 & 8;
7854 i16 = i4 >>> (i8 >>> 0);
7855 i4 = i16 >>> 2 & 4;
7856 i15 = i16 >>> (i4 >>> 0);
7857 i16 = i15 >>> 1 & 2;
7858 i12 = i15 >>> (i16 >>> 0);
7859 i15 = i12 >>> 1 & 1;
7860 i34 = HEAP32[12368 + ((i8 | i17 | i4 | i16 | i15) + (i12 >>> (i15 >>> 0)) << 2) >> 2] | 0;
7861 } else {
7862 i34 = i30;
7863 }
7864 if ((i34 | 0) == 0) {
7865 i35 = i29;
7866 i36 = i28;
7867 } else {
7868 i15 = i34;
7869 i12 = i29;
7870 i16 = i28;
7871 while (1) {
7872 i4 = (HEAP32[i15 + 4 >> 2] & -8) - i6 | 0;
7873 i17 = i4 >>> 0 < i12 >>> 0;
7874 i8 = i17 ? i4 : i12;
7875 i4 = i17 ? i15 : i16;
7876 i17 = HEAP32[i15 + 16 >> 2] | 0;
7877 if ((i17 | 0) != 0) {
7878 i15 = i17;
7879 i12 = i8;
7880 i16 = i4;
7881 continue;
7882 }
7883 i17 = HEAP32[i15 + 20 >> 2] | 0;
7884 if ((i17 | 0) == 0) {
7885 i35 = i8;
7886 i36 = i4;
7887 break;
7888 } else {
7889 i15 = i17;
7890 i12 = i8;
7891 i16 = i4;
7892 }
7893 }
7894 }
7895 if ((i36 | 0) == 0) {
7896 i14 = i6;
7897 break;
7898 }
7899 if (i35 >>> 0 >= ((HEAP32[3018] | 0) - i6 | 0) >>> 0) {
7900 i14 = i6;
7901 break;
7902 }
7903 i16 = i36;
7904 i12 = HEAP32[3020] | 0;
7905 if (i16 >>> 0 < i12 >>> 0) {
7906 _abort();
7907 return 0;
7908 }
7909 i15 = i16 + i6 | 0;
7910 i10 = i15;
7911 if (i16 >>> 0 >= i15 >>> 0) {
7912 _abort();
7913 return 0;
7914 }
7915 i4 = HEAP32[i36 + 24 >> 2] | 0;
7916 i8 = HEAP32[i36 + 12 >> 2] | 0;
7917 do {
7918 if ((i8 | 0) == (i36 | 0)) {
7919 i17 = i36 + 20 | 0;
7920 i3 = HEAP32[i17 >> 2] | 0;
7921 if ((i3 | 0) == 0) {
7922 i9 = i36 + 16 | 0;
7923 i27 = HEAP32[i9 >> 2] | 0;
7924 if ((i27 | 0) == 0) {
7925 i37 = 0;
7926 break;
7927 } else {
7928 i38 = i27;
7929 i39 = i9;
7930 }
7931 } else {
7932 i38 = i3;
7933 i39 = i17;
7934 }
7935 while (1) {
7936 i17 = i38 + 20 | 0;
7937 i3 = HEAP32[i17 >> 2] | 0;
7938 if ((i3 | 0) != 0) {
7939 i38 = i3;
7940 i39 = i17;
7941 continue;
7942 }
7943 i17 = i38 + 16 | 0;
7944 i3 = HEAP32[i17 >> 2] | 0;
7945 if ((i3 | 0) == 0) {
7946 break;
7947 } else {
7948 i38 = i3;
7949 i39 = i17;
7950 }
7951 }
7952 if (i39 >>> 0 < i12 >>> 0) {
7953 _abort();
7954 return 0;
7955 } else {
7956 HEAP32[i39 >> 2] = 0;
7957 i37 = i38;
7958 break;
7959 }
7960 } else {
7961 i17 = HEAP32[i36 + 8 >> 2] | 0;
7962 if (i17 >>> 0 < i12 >>> 0) {
7963 _abort();
7964 return 0;
7965 }
7966 i3 = i17 + 12 | 0;
7967 if ((HEAP32[i3 >> 2] | 0) != (i36 | 0)) {
7968 _abort();
7969 return 0;
7970 }
7971 i9 = i8 + 8 | 0;
7972 if ((HEAP32[i9 >> 2] | 0) == (i36 | 0)) {
7973 HEAP32[i3 >> 2] = i8;
7974 HEAP32[i9 >> 2] = i17;
7975 i37 = i8;
7976 break;
7977 } else {
7978 _abort();
7979 return 0;
7980 }
7981 }
7982 } while (0);
7983 L176 : do {
7984 if ((i4 | 0) != 0) {
7985 i8 = i36 + 28 | 0;
7986 i12 = 12368 + (HEAP32[i8 >> 2] << 2) | 0;
7987 do {
7988 if ((i36 | 0) == (HEAP32[i12 >> 2] | 0)) {
7989 HEAP32[i12 >> 2] = i37;
7990 if ((i37 | 0) != 0) {
7991 break;
7992 }
7993 HEAP32[3017] = HEAP32[3017] & ~(1 << HEAP32[i8 >> 2]);
7994 break L176;
7995 } else {
7996 if (i4 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
7997 _abort();
7998 return 0;
7999 }
8000 i17 = i4 + 16 | 0;
8001 if ((HEAP32[i17 >> 2] | 0) == (i36 | 0)) {
8002 HEAP32[i17 >> 2] = i37;
8003 } else {
8004 HEAP32[i4 + 20 >> 2] = i37;
8005 }
8006 if ((i37 | 0) == 0) {
8007 break L176;
8008 }
8009 }
8010 } while (0);
8011 if (i37 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
8012 _abort();
8013 return 0;
8014 }
8015 HEAP32[i37 + 24 >> 2] = i4;
8016 i8 = HEAP32[i36 + 16 >> 2] | 0;
8017 do {
8018 if ((i8 | 0) != 0) {
8019 if (i8 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
8020 _abort();
8021 return 0;
8022 } else {
8023 HEAP32[i37 + 16 >> 2] = i8;
8024 HEAP32[i8 + 24 >> 2] = i37;
8025 break;
8026 }
8027 }
8028 } while (0);
8029 i8 = HEAP32[i36 + 20 >> 2] | 0;
8030 if ((i8 | 0) == 0) {
8031 break;
8032 }
8033 if (i8 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
8034 _abort();
8035 return 0;
8036 } else {
8037 HEAP32[i37 + 20 >> 2] = i8;
8038 HEAP32[i8 + 24 >> 2] = i37;
8039 break;
8040 }
8041 }
8042 } while (0);
8043 do {
8044 if (i35 >>> 0 < 16) {
8045 i4 = i35 + i6 | 0;
8046 HEAP32[i36 + 4 >> 2] = i4 | 3;
8047 i8 = i16 + (i4 + 4) | 0;
8048 HEAP32[i8 >> 2] = HEAP32[i8 >> 2] | 1;
8049 } else {
8050 HEAP32[i36 + 4 >> 2] = i6 | 3;
8051 HEAP32[i16 + (i6 | 4) >> 2] = i35 | 1;
8052 HEAP32[i16 + (i35 + i6) >> 2] = i35;
8053 i8 = i35 >>> 3;
8054 if (i35 >>> 0 < 256) {
8055 i4 = i8 << 1;
8056 i12 = 12104 + (i4 << 2) | 0;
8057 i17 = HEAP32[3016] | 0;
8058 i9 = 1 << i8;
8059 do {
8060 if ((i17 & i9 | 0) == 0) {
8061 HEAP32[3016] = i17 | i9;
8062 i40 = i12;
8063 i41 = 12104 + (i4 + 2 << 2) | 0;
8064 } else {
8065 i8 = 12104 + (i4 + 2 << 2) | 0;
8066 i3 = HEAP32[i8 >> 2] | 0;
8067 if (i3 >>> 0 >= (HEAP32[3020] | 0) >>> 0) {
8068 i40 = i3;
8069 i41 = i8;
8070 break;
8071 }
8072 _abort();
8073 return 0;
8074 }
8075 } while (0);
8076 HEAP32[i41 >> 2] = i10;
8077 HEAP32[i40 + 12 >> 2] = i10;
8078 HEAP32[i16 + (i6 + 8) >> 2] = i40;
8079 HEAP32[i16 + (i6 + 12) >> 2] = i12;
8080 break;
8081 }
8082 i4 = i15;
8083 i9 = i35 >>> 8;
8084 do {
8085 if ((i9 | 0) == 0) {
8086 i42 = 0;
8087 } else {
8088 if (i35 >>> 0 > 16777215) {
8089 i42 = 31;
8090 break;
8091 }
8092 i17 = (i9 + 1048320 | 0) >>> 16 & 8;
8093 i8 = i9 << i17;
8094 i3 = (i8 + 520192 | 0) >>> 16 & 4;
8095 i27 = i8 << i3;
8096 i8 = (i27 + 245760 | 0) >>> 16 & 2;
8097 i11 = 14 - (i3 | i17 | i8) + (i27 << i8 >>> 15) | 0;
8098 i42 = i35 >>> ((i11 + 7 | 0) >>> 0) & 1 | i11 << 1;
8099 }
8100 } while (0);
8101 i9 = 12368 + (i42 << 2) | 0;
8102 HEAP32[i16 + (i6 + 28) >> 2] = i42;
8103 HEAP32[i16 + (i6 + 20) >> 2] = 0;
8104 HEAP32[i16 + (i6 + 16) >> 2] = 0;
8105 i12 = HEAP32[3017] | 0;
8106 i11 = 1 << i42;
8107 if ((i12 & i11 | 0) == 0) {
8108 HEAP32[3017] = i12 | i11;
8109 HEAP32[i9 >> 2] = i4;
8110 HEAP32[i16 + (i6 + 24) >> 2] = i9;
8111 HEAP32[i16 + (i6 + 12) >> 2] = i4;
8112 HEAP32[i16 + (i6 + 8) >> 2] = i4;
8113 break;
8114 }
8115 if ((i42 | 0) == 31) {
8116 i43 = 0;
8117 } else {
8118 i43 = 25 - (i42 >>> 1) | 0;
8119 }
8120 i11 = i35 << i43;
8121 i12 = HEAP32[i9 >> 2] | 0;
8122 while (1) {
8123 if ((HEAP32[i12 + 4 >> 2] & -8 | 0) == (i35 | 0)) {
8124 break;
8125 }
8126 i44 = i12 + 16 + (i11 >>> 31 << 2) | 0;
8127 i9 = HEAP32[i44 >> 2] | 0;
8128 if ((i9 | 0) == 0) {
8129 i45 = 151;
8130 break;
8131 } else {
8132 i11 = i11 << 1;
8133 i12 = i9;
8134 }
8135 }
8136 if ((i45 | 0) == 151) {
8137 if (i44 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
8138 _abort();
8139 return 0;
8140 } else {
8141 HEAP32[i44 >> 2] = i4;
8142 HEAP32[i16 + (i6 + 24) >> 2] = i12;
8143 HEAP32[i16 + (i6 + 12) >> 2] = i4;
8144 HEAP32[i16 + (i6 + 8) >> 2] = i4;
8145 break;
8146 }
8147 }
8148 i11 = i12 + 8 | 0;
8149 i9 = HEAP32[i11 >> 2] | 0;
8150 i8 = HEAP32[3020] | 0;
8151 if (i12 >>> 0 < i8 >>> 0) {
8152 _abort();
8153 return 0;
8154 }
8155 if (i9 >>> 0 < i8 >>> 0) {
8156 _abort();
8157 return 0;
8158 } else {
8159 HEAP32[i9 + 12 >> 2] = i4;
8160 HEAP32[i11 >> 2] = i4;
8161 HEAP32[i16 + (i6 + 8) >> 2] = i9;
8162 HEAP32[i16 + (i6 + 12) >> 2] = i12;
8163 HEAP32[i16 + (i6 + 24) >> 2] = 0;
8164 break;
8165 }
8166 }
8167 } while (0);
8168 i16 = i36 + 8 | 0;
8169 if ((i16 | 0) == 0) {
8170 i14 = i6;
8171 break;
8172 } else {
8173 i13 = i16;
8174 }
8175 return i13 | 0;
8176 }
8177 } while (0);
8178 i36 = HEAP32[3018] | 0;
8179 if (i14 >>> 0 <= i36 >>> 0) {
8180 i44 = i36 - i14 | 0;
8181 i35 = HEAP32[3021] | 0;
8182 if (i44 >>> 0 > 15) {
8183 i43 = i35;
8184 HEAP32[3021] = i43 + i14;
8185 HEAP32[3018] = i44;
8186 HEAP32[i43 + (i14 + 4) >> 2] = i44 | 1;
8187 HEAP32[i43 + i36 >> 2] = i44;
8188 HEAP32[i35 + 4 >> 2] = i14 | 3;
8189 } else {
8190 HEAP32[3018] = 0;
8191 HEAP32[3021] = 0;
8192 HEAP32[i35 + 4 >> 2] = i36 | 3;
8193 i44 = i35 + (i36 + 4) | 0;
8194 HEAP32[i44 >> 2] = HEAP32[i44 >> 2] | 1;
8195 }
8196 i13 = i35 + 8 | 0;
8197 return i13 | 0;
8198 }
8199 i35 = HEAP32[3019] | 0;
8200 if (i14 >>> 0 < i35 >>> 0) {
8201 i44 = i35 - i14 | 0;
8202 HEAP32[3019] = i44;
8203 i35 = HEAP32[3022] | 0;
8204 i36 = i35;
8205 HEAP32[3022] = i36 + i14;
8206 HEAP32[i36 + (i14 + 4) >> 2] = i44 | 1;
8207 HEAP32[i35 + 4 >> 2] = i14 | 3;
8208 i13 = i35 + 8 | 0;
8209 return i13 | 0;
8210 }
8211 do {
8212 if ((HEAP32[2976] | 0) == 0) {
8213 i35 = _sysconf(8) | 0;
8214 if ((i35 - 1 & i35 | 0) == 0) {
8215 HEAP32[2978] = i35;
8216 HEAP32[2977] = i35;
8217 HEAP32[2979] = -1;
8218 HEAP32[2980] = -1;
8219 HEAP32[2981] = 0;
8220 HEAP32[3127] = 0;
8221 HEAP32[2976] = (_time(0) | 0) & -16 ^ 1431655768;
8222 break;
8223 } else {
8224 _abort();
8225 return 0;
8226 }
8227 }
8228 } while (0);
8229 i35 = i14 + 48 | 0;
8230 i44 = HEAP32[2978] | 0;
8231 i36 = i14 + 47 | 0;
8232 i43 = i44 + i36 | 0;
8233 i42 = -i44 | 0;
8234 i44 = i43 & i42;
8235 if (i44 >>> 0 <= i14 >>> 0) {
8236 i13 = 0;
8237 return i13 | 0;
8238 }
8239 i40 = HEAP32[3126] | 0;
8240 do {
8241 if ((i40 | 0) != 0) {
8242 i41 = HEAP32[3124] | 0;
8243 i37 = i41 + i44 | 0;
8244 if (i37 >>> 0 <= i41 >>> 0 | i37 >>> 0 > i40 >>> 0) {
8245 i13 = 0;
8246 } else {
8247 break;
8248 }
8249 return i13 | 0;
8250 }
8251 } while (0);
8252 L268 : do {
8253 if ((HEAP32[3127] & 4 | 0) == 0) {
8254 i40 = HEAP32[3022] | 0;
8255 L270 : do {
8256 if ((i40 | 0) == 0) {
8257 i45 = 181;
8258 } else {
8259 i37 = i40;
8260 i41 = 12512;
8261 while (1) {
8262 i46 = i41 | 0;
8263 i38 = HEAP32[i46 >> 2] | 0;
8264 if (i38 >>> 0 <= i37 >>> 0) {
8265 i47 = i41 + 4 | 0;
8266 if ((i38 + (HEAP32[i47 >> 2] | 0) | 0) >>> 0 > i37 >>> 0) {
8267 break;
8268 }
8269 }
8270 i38 = HEAP32[i41 + 8 >> 2] | 0;
8271 if ((i38 | 0) == 0) {
8272 i45 = 181;
8273 break L270;
8274 } else {
8275 i41 = i38;
8276 }
8277 }
8278 if ((i41 | 0) == 0) {
8279 i45 = 181;
8280 break;
8281 }
8282 i37 = i43 - (HEAP32[3019] | 0) & i42;
8283 if (i37 >>> 0 >= 2147483647) {
8284 i48 = 0;
8285 break;
8286 }
8287 i12 = _sbrk(i37 | 0) | 0;
8288 i4 = (i12 | 0) == ((HEAP32[i46 >> 2] | 0) + (HEAP32[i47 >> 2] | 0) | 0);
8289 i49 = i4 ? i12 : -1;
8290 i50 = i4 ? i37 : 0;
8291 i51 = i12;
8292 i52 = i37;
8293 i45 = 190;
8294 }
8295 } while (0);
8296 do {
8297 if ((i45 | 0) == 181) {
8298 i40 = _sbrk(0) | 0;
8299 if ((i40 | 0) == -1) {
8300 i48 = 0;
8301 break;
8302 }
8303 i6 = i40;
8304 i37 = HEAP32[2977] | 0;
8305 i12 = i37 - 1 | 0;
8306 if ((i12 & i6 | 0) == 0) {
8307 i53 = i44;
8308 } else {
8309 i53 = i44 - i6 + (i12 + i6 & -i37) | 0;
8310 }
8311 i37 = HEAP32[3124] | 0;
8312 i6 = i37 + i53 | 0;
8313 if (!(i53 >>> 0 > i14 >>> 0 & i53 >>> 0 < 2147483647)) {
8314 i48 = 0;
8315 break;
8316 }
8317 i12 = HEAP32[3126] | 0;
8318 if ((i12 | 0) != 0) {
8319 if (i6 >>> 0 <= i37 >>> 0 | i6 >>> 0 > i12 >>> 0) {
8320 i48 = 0;
8321 break;
8322 }
8323 }
8324 i12 = _sbrk(i53 | 0) | 0;
8325 i6 = (i12 | 0) == (i40 | 0);
8326 i49 = i6 ? i40 : -1;
8327 i50 = i6 ? i53 : 0;
8328 i51 = i12;
8329 i52 = i53;
8330 i45 = 190;
8331 }
8332 } while (0);
8333 L290 : do {
8334 if ((i45 | 0) == 190) {
8335 i12 = -i52 | 0;
8336 if ((i49 | 0) != -1) {
8337 i54 = i50;
8338 i55 = i49;
8339 i45 = 201;
8340 break L268;
8341 }
8342 do {
8343 if ((i51 | 0) != -1 & i52 >>> 0 < 2147483647 & i52 >>> 0 < i35 >>> 0) {
8344 i6 = HEAP32[2978] | 0;
8345 i40 = i36 - i52 + i6 & -i6;
8346 if (i40 >>> 0 >= 2147483647) {
8347 i56 = i52;
8348 break;
8349 }
8350 if ((_sbrk(i40 | 0) | 0) == -1) {
8351 _sbrk(i12 | 0) | 0;
8352 i48 = i50;
8353 break L290;
8354 } else {
8355 i56 = i40 + i52 | 0;
8356 break;
8357 }
8358 } else {
8359 i56 = i52;
8360 }
8361 } while (0);
8362 if ((i51 | 0) == -1) {
8363 i48 = i50;
8364 } else {
8365 i54 = i56;
8366 i55 = i51;
8367 i45 = 201;
8368 break L268;
8369 }
8370 }
8371 } while (0);
8372 HEAP32[3127] = HEAP32[3127] | 4;
8373 i57 = i48;
8374 i45 = 198;
8375 } else {
8376 i57 = 0;
8377 i45 = 198;
8378 }
8379 } while (0);
8380 do {
8381 if ((i45 | 0) == 198) {
8382 if (i44 >>> 0 >= 2147483647) {
8383 break;
8384 }
8385 i48 = _sbrk(i44 | 0) | 0;
8386 i51 = _sbrk(0) | 0;
8387 if (!((i51 | 0) != -1 & (i48 | 0) != -1 & i48 >>> 0 < i51 >>> 0)) {
8388 break;
8389 }
8390 i56 = i51 - i48 | 0;
8391 i51 = i56 >>> 0 > (i14 + 40 | 0) >>> 0;
8392 i50 = i51 ? i48 : -1;
8393 if ((i50 | 0) != -1) {
8394 i54 = i51 ? i56 : i57;
8395 i55 = i50;
8396 i45 = 201;
8397 }
8398 }
8399 } while (0);
8400 do {
8401 if ((i45 | 0) == 201) {
8402 i57 = (HEAP32[3124] | 0) + i54 | 0;
8403 HEAP32[3124] = i57;
8404 if (i57 >>> 0 > (HEAP32[3125] | 0) >>> 0) {
8405 HEAP32[3125] = i57;
8406 }
8407 i57 = HEAP32[3022] | 0;
8408 L310 : do {
8409 if ((i57 | 0) == 0) {
8410 i44 = HEAP32[3020] | 0;
8411 if ((i44 | 0) == 0 | i55 >>> 0 < i44 >>> 0) {
8412 HEAP32[3020] = i55;
8413 }
8414 HEAP32[3128] = i55;
8415 HEAP32[3129] = i54;
8416 HEAP32[3131] = 0;
8417 HEAP32[3025] = HEAP32[2976];
8418 HEAP32[3024] = -1;
8419 i44 = 0;
8420 do {
8421 i50 = i44 << 1;
8422 i56 = 12104 + (i50 << 2) | 0;
8423 HEAP32[12104 + (i50 + 3 << 2) >> 2] = i56;
8424 HEAP32[12104 + (i50 + 2 << 2) >> 2] = i56;
8425 i44 = i44 + 1 | 0;
8426 } while (i44 >>> 0 < 32);
8427 i44 = i55 + 8 | 0;
8428 if ((i44 & 7 | 0) == 0) {
8429 i58 = 0;
8430 } else {
8431 i58 = -i44 & 7;
8432 }
8433 i44 = i54 - 40 - i58 | 0;
8434 HEAP32[3022] = i55 + i58;
8435 HEAP32[3019] = i44;
8436 HEAP32[i55 + (i58 + 4) >> 2] = i44 | 1;
8437 HEAP32[i55 + (i54 - 36) >> 2] = 40;
8438 HEAP32[3023] = HEAP32[2980];
8439 } else {
8440 i44 = 12512;
8441 while (1) {
8442 i59 = HEAP32[i44 >> 2] | 0;
8443 i60 = i44 + 4 | 0;
8444 i61 = HEAP32[i60 >> 2] | 0;
8445 if ((i55 | 0) == (i59 + i61 | 0)) {
8446 i45 = 213;
8447 break;
8448 }
8449 i56 = HEAP32[i44 + 8 >> 2] | 0;
8450 if ((i56 | 0) == 0) {
8451 break;
8452 } else {
8453 i44 = i56;
8454 }
8455 }
8456 do {
8457 if ((i45 | 0) == 213) {
8458 if ((HEAP32[i44 + 12 >> 2] & 8 | 0) != 0) {
8459 break;
8460 }
8461 i56 = i57;
8462 if (!(i56 >>> 0 >= i59 >>> 0 & i56 >>> 0 < i55 >>> 0)) {
8463 break;
8464 }
8465 HEAP32[i60 >> 2] = i61 + i54;
8466 i56 = HEAP32[3022] | 0;
8467 i50 = (HEAP32[3019] | 0) + i54 | 0;
8468 i51 = i56;
8469 i48 = i56 + 8 | 0;
8470 if ((i48 & 7 | 0) == 0) {
8471 i62 = 0;
8472 } else {
8473 i62 = -i48 & 7;
8474 }
8475 i48 = i50 - i62 | 0;
8476 HEAP32[3022] = i51 + i62;
8477 HEAP32[3019] = i48;
8478 HEAP32[i51 + (i62 + 4) >> 2] = i48 | 1;
8479 HEAP32[i51 + (i50 + 4) >> 2] = 40;
8480 HEAP32[3023] = HEAP32[2980];
8481 break L310;
8482 }
8483 } while (0);
8484 if (i55 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
8485 HEAP32[3020] = i55;
8486 }
8487 i44 = i55 + i54 | 0;
8488 i50 = 12512;
8489 while (1) {
8490 i63 = i50 | 0;
8491 if ((HEAP32[i63 >> 2] | 0) == (i44 | 0)) {
8492 i45 = 223;
8493 break;
8494 }
8495 i51 = HEAP32[i50 + 8 >> 2] | 0;
8496 if ((i51 | 0) == 0) {
8497 break;
8498 } else {
8499 i50 = i51;
8500 }
8501 }
8502 do {
8503 if ((i45 | 0) == 223) {
8504 if ((HEAP32[i50 + 12 >> 2] & 8 | 0) != 0) {
8505 break;
8506 }
8507 HEAP32[i63 >> 2] = i55;
8508 i44 = i50 + 4 | 0;
8509 HEAP32[i44 >> 2] = (HEAP32[i44 >> 2] | 0) + i54;
8510 i44 = i55 + 8 | 0;
8511 if ((i44 & 7 | 0) == 0) {
8512 i64 = 0;
8513 } else {
8514 i64 = -i44 & 7;
8515 }
8516 i44 = i55 + (i54 + 8) | 0;
8517 if ((i44 & 7 | 0) == 0) {
8518 i65 = 0;
8519 } else {
8520 i65 = -i44 & 7;
8521 }
8522 i44 = i55 + (i65 + i54) | 0;
8523 i51 = i44;
8524 i48 = i64 + i14 | 0;
8525 i56 = i55 + i48 | 0;
8526 i52 = i56;
8527 i36 = i44 - (i55 + i64) - i14 | 0;
8528 HEAP32[i55 + (i64 + 4) >> 2] = i14 | 3;
8529 do {
8530 if ((i51 | 0) == (HEAP32[3022] | 0)) {
8531 i35 = (HEAP32[3019] | 0) + i36 | 0;
8532 HEAP32[3019] = i35;
8533 HEAP32[3022] = i52;
8534 HEAP32[i55 + (i48 + 4) >> 2] = i35 | 1;
8535 } else {
8536 if ((i51 | 0) == (HEAP32[3021] | 0)) {
8537 i35 = (HEAP32[3018] | 0) + i36 | 0;
8538 HEAP32[3018] = i35;
8539 HEAP32[3021] = i52;
8540 HEAP32[i55 + (i48 + 4) >> 2] = i35 | 1;
8541 HEAP32[i55 + (i35 + i48) >> 2] = i35;
8542 break;
8543 }
8544 i35 = i54 + 4 | 0;
8545 i49 = HEAP32[i55 + (i35 + i65) >> 2] | 0;
8546 if ((i49 & 3 | 0) == 1) {
8547 i53 = i49 & -8;
8548 i47 = i49 >>> 3;
8549 L355 : do {
8550 if (i49 >>> 0 < 256) {
8551 i46 = HEAP32[i55 + ((i65 | 8) + i54) >> 2] | 0;
8552 i42 = HEAP32[i55 + (i54 + 12 + i65) >> 2] | 0;
8553 i43 = 12104 + (i47 << 1 << 2) | 0;
8554 do {
8555 if ((i46 | 0) != (i43 | 0)) {
8556 if (i46 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
8557 _abort();
8558 return 0;
8559 }
8560 if ((HEAP32[i46 + 12 >> 2] | 0) == (i51 | 0)) {
8561 break;
8562 }
8563 _abort();
8564 return 0;
8565 }
8566 } while (0);
8567 if ((i42 | 0) == (i46 | 0)) {
8568 HEAP32[3016] = HEAP32[3016] & ~(1 << i47);
8569 break;
8570 }
8571 do {
8572 if ((i42 | 0) == (i43 | 0)) {
8573 i66 = i42 + 8 | 0;
8574 } else {
8575 if (i42 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
8576 _abort();
8577 return 0;
8578 }
8579 i12 = i42 + 8 | 0;
8580 if ((HEAP32[i12 >> 2] | 0) == (i51 | 0)) {
8581 i66 = i12;
8582 break;
8583 }
8584 _abort();
8585 return 0;
8586 }
8587 } while (0);
8588 HEAP32[i46 + 12 >> 2] = i42;
8589 HEAP32[i66 >> 2] = i46;
8590 } else {
8591 i43 = i44;
8592 i12 = HEAP32[i55 + ((i65 | 24) + i54) >> 2] | 0;
8593 i41 = HEAP32[i55 + (i54 + 12 + i65) >> 2] | 0;
8594 do {
8595 if ((i41 | 0) == (i43 | 0)) {
8596 i40 = i65 | 16;
8597 i6 = i55 + (i35 + i40) | 0;
8598 i37 = HEAP32[i6 >> 2] | 0;
8599 if ((i37 | 0) == 0) {
8600 i4 = i55 + (i40 + i54) | 0;
8601 i40 = HEAP32[i4 >> 2] | 0;
8602 if ((i40 | 0) == 0) {
8603 i67 = 0;
8604 break;
8605 } else {
8606 i68 = i40;
8607 i69 = i4;
8608 }
8609 } else {
8610 i68 = i37;
8611 i69 = i6;
8612 }
8613 while (1) {
8614 i6 = i68 + 20 | 0;
8615 i37 = HEAP32[i6 >> 2] | 0;
8616 if ((i37 | 0) != 0) {
8617 i68 = i37;
8618 i69 = i6;
8619 continue;
8620 }
8621 i6 = i68 + 16 | 0;
8622 i37 = HEAP32[i6 >> 2] | 0;
8623 if ((i37 | 0) == 0) {
8624 break;
8625 } else {
8626 i68 = i37;
8627 i69 = i6;
8628 }
8629 }
8630 if (i69 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
8631 _abort();
8632 return 0;
8633 } else {
8634 HEAP32[i69 >> 2] = 0;
8635 i67 = i68;
8636 break;
8637 }
8638 } else {
8639 i6 = HEAP32[i55 + ((i65 | 8) + i54) >> 2] | 0;
8640 if (i6 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
8641 _abort();
8642 return 0;
8643 }
8644 i37 = i6 + 12 | 0;
8645 if ((HEAP32[i37 >> 2] | 0) != (i43 | 0)) {
8646 _abort();
8647 return 0;
8648 }
8649 i4 = i41 + 8 | 0;
8650 if ((HEAP32[i4 >> 2] | 0) == (i43 | 0)) {
8651 HEAP32[i37 >> 2] = i41;
8652 HEAP32[i4 >> 2] = i6;
8653 i67 = i41;
8654 break;
8655 } else {
8656 _abort();
8657 return 0;
8658 }
8659 }
8660 } while (0);
8661 if ((i12 | 0) == 0) {
8662 break;
8663 }
8664 i41 = i55 + (i54 + 28 + i65) | 0;
8665 i46 = 12368 + (HEAP32[i41 >> 2] << 2) | 0;
8666 do {
8667 if ((i43 | 0) == (HEAP32[i46 >> 2] | 0)) {
8668 HEAP32[i46 >> 2] = i67;
8669 if ((i67 | 0) != 0) {
8670 break;
8671 }
8672 HEAP32[3017] = HEAP32[3017] & ~(1 << HEAP32[i41 >> 2]);
8673 break L355;
8674 } else {
8675 if (i12 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
8676 _abort();
8677 return 0;
8678 }
8679 i42 = i12 + 16 | 0;
8680 if ((HEAP32[i42 >> 2] | 0) == (i43 | 0)) {
8681 HEAP32[i42 >> 2] = i67;
8682 } else {
8683 HEAP32[i12 + 20 >> 2] = i67;
8684 }
8685 if ((i67 | 0) == 0) {
8686 break L355;
8687 }
8688 }
8689 } while (0);
8690 if (i67 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
8691 _abort();
8692 return 0;
8693 }
8694 HEAP32[i67 + 24 >> 2] = i12;
8695 i43 = i65 | 16;
8696 i41 = HEAP32[i55 + (i43 + i54) >> 2] | 0;
8697 do {
8698 if ((i41 | 0) != 0) {
8699 if (i41 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
8700 _abort();
8701 return 0;
8702 } else {
8703 HEAP32[i67 + 16 >> 2] = i41;
8704 HEAP32[i41 + 24 >> 2] = i67;
8705 break;
8706 }
8707 }
8708 } while (0);
8709 i41 = HEAP32[i55 + (i35 + i43) >> 2] | 0;
8710 if ((i41 | 0) == 0) {
8711 break;
8712 }
8713 if (i41 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
8714 _abort();
8715 return 0;
8716 } else {
8717 HEAP32[i67 + 20 >> 2] = i41;
8718 HEAP32[i41 + 24 >> 2] = i67;
8719 break;
8720 }
8721 }
8722 } while (0);
8723 i70 = i55 + ((i53 | i65) + i54) | 0;
8724 i71 = i53 + i36 | 0;
8725 } else {
8726 i70 = i51;
8727 i71 = i36;
8728 }
8729 i35 = i70 + 4 | 0;
8730 HEAP32[i35 >> 2] = HEAP32[i35 >> 2] & -2;
8731 HEAP32[i55 + (i48 + 4) >> 2] = i71 | 1;
8732 HEAP32[i55 + (i71 + i48) >> 2] = i71;
8733 i35 = i71 >>> 3;
8734 if (i71 >>> 0 < 256) {
8735 i47 = i35 << 1;
8736 i49 = 12104 + (i47 << 2) | 0;
8737 i41 = HEAP32[3016] | 0;
8738 i12 = 1 << i35;
8739 do {
8740 if ((i41 & i12 | 0) == 0) {
8741 HEAP32[3016] = i41 | i12;
8742 i72 = i49;
8743 i73 = 12104 + (i47 + 2 << 2) | 0;
8744 } else {
8745 i35 = 12104 + (i47 + 2 << 2) | 0;
8746 i46 = HEAP32[i35 >> 2] | 0;
8747 if (i46 >>> 0 >= (HEAP32[3020] | 0) >>> 0) {
8748 i72 = i46;
8749 i73 = i35;
8750 break;
8751 }
8752 _abort();
8753 return 0;
8754 }
8755 } while (0);
8756 HEAP32[i73 >> 2] = i52;
8757 HEAP32[i72 + 12 >> 2] = i52;
8758 HEAP32[i55 + (i48 + 8) >> 2] = i72;
8759 HEAP32[i55 + (i48 + 12) >> 2] = i49;
8760 break;
8761 }
8762 i47 = i56;
8763 i12 = i71 >>> 8;
8764 do {
8765 if ((i12 | 0) == 0) {
8766 i74 = 0;
8767 } else {
8768 if (i71 >>> 0 > 16777215) {
8769 i74 = 31;
8770 break;
8771 }
8772 i41 = (i12 + 1048320 | 0) >>> 16 & 8;
8773 i53 = i12 << i41;
8774 i35 = (i53 + 520192 | 0) >>> 16 & 4;
8775 i46 = i53 << i35;
8776 i53 = (i46 + 245760 | 0) >>> 16 & 2;
8777 i42 = 14 - (i35 | i41 | i53) + (i46 << i53 >>> 15) | 0;
8778 i74 = i71 >>> ((i42 + 7 | 0) >>> 0) & 1 | i42 << 1;
8779 }
8780 } while (0);
8781 i12 = 12368 + (i74 << 2) | 0;
8782 HEAP32[i55 + (i48 + 28) >> 2] = i74;
8783 HEAP32[i55 + (i48 + 20) >> 2] = 0;
8784 HEAP32[i55 + (i48 + 16) >> 2] = 0;
8785 i49 = HEAP32[3017] | 0;
8786 i42 = 1 << i74;
8787 if ((i49 & i42 | 0) == 0) {
8788 HEAP32[3017] = i49 | i42;
8789 HEAP32[i12 >> 2] = i47;
8790 HEAP32[i55 + (i48 + 24) >> 2] = i12;
8791 HEAP32[i55 + (i48 + 12) >> 2] = i47;
8792 HEAP32[i55 + (i48 + 8) >> 2] = i47;
8793 break;
8794 }
8795 if ((i74 | 0) == 31) {
8796 i75 = 0;
8797 } else {
8798 i75 = 25 - (i74 >>> 1) | 0;
8799 }
8800 i42 = i71 << i75;
8801 i49 = HEAP32[i12 >> 2] | 0;
8802 while (1) {
8803 if ((HEAP32[i49 + 4 >> 2] & -8 | 0) == (i71 | 0)) {
8804 break;
8805 }
8806 i76 = i49 + 16 + (i42 >>> 31 << 2) | 0;
8807 i12 = HEAP32[i76 >> 2] | 0;
8808 if ((i12 | 0) == 0) {
8809 i45 = 296;
8810 break;
8811 } else {
8812 i42 = i42 << 1;
8813 i49 = i12;
8814 }
8815 }
8816 if ((i45 | 0) == 296) {
8817 if (i76 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
8818 _abort();
8819 return 0;
8820 } else {
8821 HEAP32[i76 >> 2] = i47;
8822 HEAP32[i55 + (i48 + 24) >> 2] = i49;
8823 HEAP32[i55 + (i48 + 12) >> 2] = i47;
8824 HEAP32[i55 + (i48 + 8) >> 2] = i47;
8825 break;
8826 }
8827 }
8828 i42 = i49 + 8 | 0;
8829 i12 = HEAP32[i42 >> 2] | 0;
8830 i53 = HEAP32[3020] | 0;
8831 if (i49 >>> 0 < i53 >>> 0) {
8832 _abort();
8833 return 0;
8834 }
8835 if (i12 >>> 0 < i53 >>> 0) {
8836 _abort();
8837 return 0;
8838 } else {
8839 HEAP32[i12 + 12 >> 2] = i47;
8840 HEAP32[i42 >> 2] = i47;
8841 HEAP32[i55 + (i48 + 8) >> 2] = i12;
8842 HEAP32[i55 + (i48 + 12) >> 2] = i49;
8843 HEAP32[i55 + (i48 + 24) >> 2] = 0;
8844 break;
8845 }
8846 }
8847 } while (0);
8848 i13 = i55 + (i64 | 8) | 0;
8849 return i13 | 0;
8850 }
8851 } while (0);
8852 i50 = i57;
8853 i48 = 12512;
8854 while (1) {
8855 i77 = HEAP32[i48 >> 2] | 0;
8856 if (i77 >>> 0 <= i50 >>> 0) {
8857 i78 = HEAP32[i48 + 4 >> 2] | 0;
8858 i79 = i77 + i78 | 0;
8859 if (i79 >>> 0 > i50 >>> 0) {
8860 break;
8861 }
8862 }
8863 i48 = HEAP32[i48 + 8 >> 2] | 0;
8864 }
8865 i48 = i77 + (i78 - 39) | 0;
8866 if ((i48 & 7 | 0) == 0) {
8867 i80 = 0;
8868 } else {
8869 i80 = -i48 & 7;
8870 }
8871 i48 = i77 + (i78 - 47 + i80) | 0;
8872 i56 = i48 >>> 0 < (i57 + 16 | 0) >>> 0 ? i50 : i48;
8873 i48 = i56 + 8 | 0;
8874 i52 = i55 + 8 | 0;
8875 if ((i52 & 7 | 0) == 0) {
8876 i81 = 0;
8877 } else {
8878 i81 = -i52 & 7;
8879 }
8880 i52 = i54 - 40 - i81 | 0;
8881 HEAP32[3022] = i55 + i81;
8882 HEAP32[3019] = i52;
8883 HEAP32[i55 + (i81 + 4) >> 2] = i52 | 1;
8884 HEAP32[i55 + (i54 - 36) >> 2] = 40;
8885 HEAP32[3023] = HEAP32[2980];
8886 HEAP32[i56 + 4 >> 2] = 27;
8887 HEAP32[i48 >> 2] = HEAP32[3128];
8888 HEAP32[i48 + 4 >> 2] = HEAP32[12516 >> 2];
8889 HEAP32[i48 + 8 >> 2] = HEAP32[12520 >> 2];
8890 HEAP32[i48 + 12 >> 2] = HEAP32[12524 >> 2];
8891 HEAP32[3128] = i55;
8892 HEAP32[3129] = i54;
8893 HEAP32[3131] = 0;
8894 HEAP32[3130] = i48;
8895 i48 = i56 + 28 | 0;
8896 HEAP32[i48 >> 2] = 7;
8897 if ((i56 + 32 | 0) >>> 0 < i79 >>> 0) {
8898 i52 = i48;
8899 while (1) {
8900 i48 = i52 + 4 | 0;
8901 HEAP32[i48 >> 2] = 7;
8902 if ((i52 + 8 | 0) >>> 0 < i79 >>> 0) {
8903 i52 = i48;
8904 } else {
8905 break;
8906 }
8907 }
8908 }
8909 if ((i56 | 0) == (i50 | 0)) {
8910 break;
8911 }
8912 i52 = i56 - i57 | 0;
8913 i48 = i50 + (i52 + 4) | 0;
8914 HEAP32[i48 >> 2] = HEAP32[i48 >> 2] & -2;
8915 HEAP32[i57 + 4 >> 2] = i52 | 1;
8916 HEAP32[i50 + i52 >> 2] = i52;
8917 i48 = i52 >>> 3;
8918 if (i52 >>> 0 < 256) {
8919 i36 = i48 << 1;
8920 i51 = 12104 + (i36 << 2) | 0;
8921 i44 = HEAP32[3016] | 0;
8922 i12 = 1 << i48;
8923 do {
8924 if ((i44 & i12 | 0) == 0) {
8925 HEAP32[3016] = i44 | i12;
8926 i82 = i51;
8927 i83 = 12104 + (i36 + 2 << 2) | 0;
8928 } else {
8929 i48 = 12104 + (i36 + 2 << 2) | 0;
8930 i42 = HEAP32[i48 >> 2] | 0;
8931 if (i42 >>> 0 >= (HEAP32[3020] | 0) >>> 0) {
8932 i82 = i42;
8933 i83 = i48;
8934 break;
8935 }
8936 _abort();
8937 return 0;
8938 }
8939 } while (0);
8940 HEAP32[i83 >> 2] = i57;
8941 HEAP32[i82 + 12 >> 2] = i57;
8942 HEAP32[i57 + 8 >> 2] = i82;
8943 HEAP32[i57 + 12 >> 2] = i51;
8944 break;
8945 }
8946 i36 = i57;
8947 i12 = i52 >>> 8;
8948 do {
8949 if ((i12 | 0) == 0) {
8950 i84 = 0;
8951 } else {
8952 if (i52 >>> 0 > 16777215) {
8953 i84 = 31;
8954 break;
8955 }
8956 i44 = (i12 + 1048320 | 0) >>> 16 & 8;
8957 i50 = i12 << i44;
8958 i56 = (i50 + 520192 | 0) >>> 16 & 4;
8959 i48 = i50 << i56;
8960 i50 = (i48 + 245760 | 0) >>> 16 & 2;
8961 i42 = 14 - (i56 | i44 | i50) + (i48 << i50 >>> 15) | 0;
8962 i84 = i52 >>> ((i42 + 7 | 0) >>> 0) & 1 | i42 << 1;
8963 }
8964 } while (0);
8965 i12 = 12368 + (i84 << 2) | 0;
8966 HEAP32[i57 + 28 >> 2] = i84;
8967 HEAP32[i57 + 20 >> 2] = 0;
8968 HEAP32[i57 + 16 >> 2] = 0;
8969 i51 = HEAP32[3017] | 0;
8970 i42 = 1 << i84;
8971 if ((i51 & i42 | 0) == 0) {
8972 HEAP32[3017] = i51 | i42;
8973 HEAP32[i12 >> 2] = i36;
8974 HEAP32[i57 + 24 >> 2] = i12;
8975 HEAP32[i57 + 12 >> 2] = i57;
8976 HEAP32[i57 + 8 >> 2] = i57;
8977 break;
8978 }
8979 if ((i84 | 0) == 31) {
8980 i85 = 0;
8981 } else {
8982 i85 = 25 - (i84 >>> 1) | 0;
8983 }
8984 i42 = i52 << i85;
8985 i51 = HEAP32[i12 >> 2] | 0;
8986 while (1) {
8987 if ((HEAP32[i51 + 4 >> 2] & -8 | 0) == (i52 | 0)) {
8988 break;
8989 }
8990 i86 = i51 + 16 + (i42 >>> 31 << 2) | 0;
8991 i12 = HEAP32[i86 >> 2] | 0;
8992 if ((i12 | 0) == 0) {
8993 i45 = 331;
8994 break;
8995 } else {
8996 i42 = i42 << 1;
8997 i51 = i12;
8998 }
8999 }
9000 if ((i45 | 0) == 331) {
9001 if (i86 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
9002 _abort();
9003 return 0;
9004 } else {
9005 HEAP32[i86 >> 2] = i36;
9006 HEAP32[i57 + 24 >> 2] = i51;
9007 HEAP32[i57 + 12 >> 2] = i57;
9008 HEAP32[i57 + 8 >> 2] = i57;
9009 break;
9010 }
9011 }
9012 i42 = i51 + 8 | 0;
9013 i52 = HEAP32[i42 >> 2] | 0;
9014 i12 = HEAP32[3020] | 0;
9015 if (i51 >>> 0 < i12 >>> 0) {
9016 _abort();
9017 return 0;
9018 }
9019 if (i52 >>> 0 < i12 >>> 0) {
9020 _abort();
9021 return 0;
9022 } else {
9023 HEAP32[i52 + 12 >> 2] = i36;
9024 HEAP32[i42 >> 2] = i36;
9025 HEAP32[i57 + 8 >> 2] = i52;
9026 HEAP32[i57 + 12 >> 2] = i51;
9027 HEAP32[i57 + 24 >> 2] = 0;
9028 break;
9029 }
9030 }
9031 } while (0);
9032 i57 = HEAP32[3019] | 0;
9033 if (i57 >>> 0 <= i14 >>> 0) {
9034 break;
9035 }
9036 i52 = i57 - i14 | 0;
9037 HEAP32[3019] = i52;
9038 i57 = HEAP32[3022] | 0;
9039 i42 = i57;
9040 HEAP32[3022] = i42 + i14;
9041 HEAP32[i42 + (i14 + 4) >> 2] = i52 | 1;
9042 HEAP32[i57 + 4 >> 2] = i14 | 3;
9043 i13 = i57 + 8 | 0;
9044 return i13 | 0;
9045 }
9046 } while (0);
9047 HEAP32[(___errno_location() | 0) >> 2] = 12;
9048 i13 = 0;
9049 return i13 | 0;
9050 }
9051 function __Z8dBoxBox2RK9btVector3PKfS1_S1_S3_S1_RS_PfPiiP12dContactGeomiRN36btDiscreteCollisionDetectorInterface6ResultE(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13) {
9052 i1 = i1 | 0;
9053 i2 = i2 | 0;
9054 i3 = i3 | 0;
9055 i4 = i4 | 0;
9056 i5 = i5 | 0;
9057 i6 = i6 | 0;
9058 i7 = i7 | 0;
9059 i8 = i8 | 0;
9060 i9 = i9 | 0;
9061 i10 = i10 | 0;
9062 i11 = i11 | 0;
9063 i12 = i12 | 0;
9064 i13 = i13 | 0;
9065 var i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, d37 = 0.0, i38 = 0, d39 = 0.0, i40 = 0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, i46 = 0, d47 = 0.0, i48 = 0, d49 = 0.0, i50 = 0, d51 = 0.0, d52 = 0.0, i53 = 0, d54 = 0.0, i55 = 0, d56 = 0.0, i57 = 0, d58 = 0.0, d59 = 0.0, d60 = 0.0, i61 = 0, d62 = 0.0, d63 = 0.0, d64 = 0.0, d65 = 0.0, d66 = 0.0, d67 = 0.0, d68 = 0.0, d69 = 0.0, d70 = 0.0, d71 = 0.0, i72 = 0, d73 = 0.0, i74 = 0, d75 = 0.0, d76 = 0.0, i77 = 0, d78 = 0.0, i79 = 0, d80 = 0.0, i81 = 0, d82 = 0.0, d83 = 0.0, d84 = 0.0, d85 = 0.0, d86 = 0.0, d87 = 0.0, d88 = 0.0, d89 = 0.0, d90 = 0.0, d91 = 0.0, d92 = 0.0, d93 = 0.0, i94 = 0, i95 = 0, i96 = 0, i97 = 0, d98 = 0.0, i99 = 0, i100 = 0, i101 = 0, d102 = 0.0, i103 = 0, i104 = 0, i105 = 0, d106 = 0.0, i107 = 0, i108 = 0, i109 = 0, d110 = 0.0, i111 = 0, i112 = 0, i113 = 0, d114 = 0.0, i115 = 0, i116 = 0, i117 = 0, d118 = 0.0, i119 = 0, i120 = 0, i121 = 0, d122 = 0.0, d123 = 0.0, d124 = 0.0, d125 = 0.0, i126 = 0, i127 = 0, i128 = 0, d129 = 0.0, d130 = 0.0, d131 = 0.0, d132 = 0.0, i133 = 0, i134 = 0, i135 = 0, d136 = 0.0, d137 = 0.0, d138 = 0.0, d139 = 0.0, i140 = 0, i141 = 0, i142 = 0, d143 = 0.0, d144 = 0.0, d145 = 0.0, d146 = 0.0, i147 = 0, i148 = 0, i149 = 0, d150 = 0.0, d151 = 0.0, d152 = 0.0, d153 = 0.0, i154 = 0, i155 = 0, i156 = 0, d157 = 0.0, d158 = 0.0, d159 = 0.0, d160 = 0.0, i161 = 0, i162 = 0, i163 = 0, d164 = 0.0, d165 = 0.0, d166 = 0.0, d167 = 0.0, i168 = 0, i169 = 0, i170 = 0, d171 = 0.0, d172 = 0.0, d173 = 0.0, d174 = 0.0, i175 = 0, i176 = 0, i177 = 0, d178 = 0.0, d179 = 0.0, d180 = 0.0, d181 = 0.0, i182 = 0, i183 = 0, d184 = 0.0, d185 = 0.0, d186 = 0.0, d187 = 0.0, d188 = 0.0, d189 = 0.0, d190 = 0.0, d191 = 0.0, i192 = 0, i193 = 0, i194 = 0, i195 = 0, i196 = 0, i197 = 0, i198 = 0, i199 = 0, i200 = 0, d201 = 0.0, d202 = 0.0, d203 = 0.0, i204 = 0, i205 = 0, i206 = 0, i207 = 0, i208 = 0, i209 = 0, d210 = 0.0, d211 = 0.0, i212 = 0, i213 = 0, i214 = 0, i215 = 0, i216 = 0, i217 = 0, i218 = 0, i219 = 0, i220 = 0, i221 = 0, d222 = 0.0, d223 = 0.0, i224 = 0, i225 = 0, i226 = 0, i227 = 0, i228 = 0;
9066 i12 = STACKTOP;
9067 i11 = i4;
9068 i14 = STACKTOP;
9069 STACKTOP = STACKTOP + 64 | 0;
9070 i15 = STACKTOP;
9071 STACKTOP = STACKTOP + 12 | 0;
9072 STACKTOP = STACKTOP + 7 >> 3 << 3;
9073 i16 = STACKTOP;
9074 STACKTOP = STACKTOP + 12 | 0;
9075 STACKTOP = STACKTOP + 7 >> 3 << 3;
9076 i17 = STACKTOP;
9077 STACKTOP = STACKTOP + 16 | 0;
9078 i18 = i17;
9079 i19 = STACKTOP;
9080 STACKTOP = STACKTOP + 16 | 0;
9081 i20 = STACKTOP;
9082 STACKTOP = STACKTOP + 16 | 0;
9083 i21 = STACKTOP;
9084 STACKTOP = STACKTOP + 32 | 0;
9085 i22 = STACKTOP;
9086 STACKTOP = STACKTOP + 8 | 0;
9087 i23 = STACKTOP;
9088 STACKTOP = STACKTOP + 64 | 0;
9089 i24 = STACKTOP;
9090 STACKTOP = STACKTOP + 96 | 0;
9091 i25 = STACKTOP;
9092 STACKTOP = STACKTOP + 32 | 0;
9093 i26 = STACKTOP;
9094 STACKTOP = STACKTOP + 16 | 0;
9095 i27 = STACKTOP;
9096 STACKTOP = STACKTOP + 16 | 0;
9097 i28 = STACKTOP;
9098 STACKTOP = STACKTOP + 16 | 0;
9099 i29 = STACKTOP;
9100 STACKTOP = STACKTOP + 16 | 0;
9101 i30 = STACKTOP;
9102 STACKTOP = STACKTOP + 32 | 0;
9103 i31 = STACKTOP;
9104 STACKTOP = STACKTOP + 16 | 0;
9105 i32 = STACKTOP;
9106 STACKTOP = STACKTOP + 16 | 0;
9107 i33 = STACKTOP;
9108 STACKTOP = STACKTOP + 16 | 0;
9109 i34 = STACKTOP;
9110 STACKTOP = STACKTOP + 16 | 0;
9111 i35 = i4 | 0;
9112 i36 = i1 | 0;
9113 d37 = +HEAPF32[i35 >> 2] - +HEAPF32[i36 >> 2];
9114 i38 = i1 + 4 | 0;
9115 d39 = +HEAPF32[i4 + 4 >> 2] - +HEAPF32[i38 >> 2];
9116 i40 = i1 + 8 | 0;
9117 d41 = +HEAPF32[i4 + 8 >> 2] - +HEAPF32[i40 >> 2];
9118 d42 = +HEAPF32[i2 >> 2];
9119 i4 = i2 + 16 | 0;
9120 d43 = +HEAPF32[i4 >> 2];
9121 i1 = i2 + 32 | 0;
9122 d44 = +HEAPF32[i1 >> 2];
9123 d45 = d37 * d42 + d39 * d43 + d41 * d44;
9124 i46 = i2 + 4 | 0;
9125 d47 = +HEAPF32[i46 >> 2];
9126 i48 = i2 + 20 | 0;
9127 d49 = +HEAPF32[i48 >> 2];
9128 i50 = i2 + 36 | 0;
9129 d51 = +HEAPF32[i50 >> 2];
9130 d52 = d37 * d47 + d39 * d49 + d41 * d51;
9131 i53 = i2 + 8 | 0;
9132 d54 = +HEAPF32[i53 >> 2];
9133 i55 = i2 + 24 | 0;
9134 d56 = +HEAPF32[i55 >> 2];
9135 i57 = i2 + 40 | 0;
9136 d58 = +HEAPF32[i57 >> 2];
9137 d59 = d37 * d54 + d39 * d56 + d41 * d58;
9138 d60 = +HEAPF32[i3 >> 2] * .5;
9139 i61 = i15 | 0;
9140 HEAPF32[i61 >> 2] = d60;
9141 d62 = +HEAPF32[i3 + 4 >> 2] * .5;
9142 HEAPF32[i15 + 4 >> 2] = d62;
9143 d63 = +HEAPF32[i3 + 8 >> 2] * .5;
9144 HEAPF32[i15 + 8 >> 2] = d63;
9145 d64 = +HEAPF32[i6 >> 2] * .5;
9146 i15 = i16 | 0;
9147 HEAPF32[i15 >> 2] = d64;
9148 d65 = +HEAPF32[i6 + 4 >> 2] * .5;
9149 HEAPF32[i16 + 4 >> 2] = d65;
9150 d66 = +HEAPF32[i6 + 8 >> 2] * .5;
9151 HEAPF32[i16 + 8 >> 2] = d66;
9152 d67 = +HEAPF32[i5 >> 2];
9153 i16 = i5 + 16 | 0;
9154 d68 = +HEAPF32[i16 >> 2];
9155 i6 = i5 + 32 | 0;
9156 d69 = +HEAPF32[i6 >> 2];
9157 d70 = d42 * d67 + d43 * d68 + d44 * d69;
9158 i3 = i5 + 4 | 0;
9159 d71 = +HEAPF32[i3 >> 2];
9160 i72 = i5 + 20 | 0;
9161 d73 = +HEAPF32[i72 >> 2];
9162 i74 = i5 + 36 | 0;
9163 d75 = +HEAPF32[i74 >> 2];
9164 d76 = d42 * d71 + d43 * d73 + d44 * d75;
9165 i77 = i5 + 8 | 0;
9166 d78 = +HEAPF32[i77 >> 2];
9167 i79 = i5 + 24 | 0;
9168 d80 = +HEAPF32[i79 >> 2];
9169 i81 = i5 + 40 | 0;
9170 d82 = +HEAPF32[i81 >> 2];
9171 d83 = d42 * d78 + d43 * d80 + d44 * d82;
9172 d44 = d47 * d67 + d49 * d68 + d51 * d69;
9173 d43 = d47 * d71 + d49 * d73 + d51 * d75;
9174 d84 = d47 * d78 + d49 * d80 + d51 * d82;
9175 d51 = d54 * d67 + d56 * d68 + d58 * d69;
9176 d49 = d54 * d71 + d56 * d73 + d58 * d75;
9177 d85 = d54 * d78 + d56 * d80 + d58 * d82;
9178 d58 = +Math_abs(+d70);
9179 d56 = +Math_abs(+d76);
9180 d86 = +Math_abs(+d83);
9181 d87 = +Math_abs(+d44);
9182 d88 = +Math_abs(+d43);
9183 d89 = +Math_abs(+d84);
9184 d90 = +Math_abs(+d51);
9185 d91 = +Math_abs(+d49);
9186 d92 = +Math_abs(+d85);
9187 d93 = +Math_abs(+d45) - (d66 * d86 + (d60 + d64 * d58 + d65 * d56));
9188 if (d93 > 0.0) {
9189 i94 = 0;
9190 STACKTOP = i12;
9191 return i94 | 0;
9192 }
9193 if (d93 > -3.4028234663852886e+38) {
9194 i95 = i2;
9195 i96 = 1;
9196 i97 = d45 < 0.0 | 0;
9197 d98 = d93;
9198 } else {
9199 i95 = 0;
9200 i96 = 0;
9201 i97 = 0;
9202 d98 = -3.4028234663852886e+38;
9203 }
9204 d93 = +Math_abs(+d52) - (d62 + d64 * d87 + d65 * d88 + d66 * d89);
9205 if (d93 > 0.0) {
9206 i94 = 0;
9207 STACKTOP = i12;
9208 return i94 | 0;
9209 }
9210 if (d93 > d98) {
9211 i99 = i46;
9212 i100 = 2;
9213 i101 = d52 < 0.0 | 0;
9214 d102 = d93;
9215 } else {
9216 i99 = i95;
9217 i100 = i96;
9218 i101 = i97;
9219 d102 = d98;
9220 }
9221 d98 = +Math_abs(+d59) - (d63 + d64 * d90 + d65 * d91 + d66 * d92);
9222 if (d98 > 0.0) {
9223 i94 = 0;
9224 STACKTOP = i12;
9225 return i94 | 0;
9226 }
9227 if (d98 > d102) {
9228 i103 = i53;
9229 i104 = 3;
9230 i105 = d59 < 0.0 | 0;
9231 d106 = d98;
9232 } else {
9233 i103 = i99;
9234 i104 = i100;
9235 i105 = i101;
9236 d106 = d102;
9237 }
9238 d102 = d37 * d67 + d39 * d68 + d41 * d69;
9239 d69 = +Math_abs(+d102) - (d64 + (d60 * d58 + d62 * d87 + d63 * d90));
9240 if (d69 > 0.0) {
9241 i94 = 0;
9242 STACKTOP = i12;
9243 return i94 | 0;
9244 }
9245 if (d69 > d106) {
9246 i107 = i5;
9247 i108 = 4;
9248 i109 = d102 < 0.0 | 0;
9249 d110 = d69;
9250 } else {
9251 i107 = i103;
9252 i108 = i104;
9253 i109 = i105;
9254 d110 = d106;
9255 }
9256 d106 = d37 * d71 + d39 * d73 + d41 * d75;
9257 d75 = +Math_abs(+d106) - (d65 + (d60 * d56 + d62 * d88 + d63 * d91));
9258 if (d75 > 0.0) {
9259 i94 = 0;
9260 STACKTOP = i12;
9261 return i94 | 0;
9262 }
9263 if (d75 > d110) {
9264 i111 = i3;
9265 i112 = 5;
9266 i113 = d106 < 0.0 | 0;
9267 d114 = d75;
9268 } else {
9269 i111 = i107;
9270 i112 = i108;
9271 i113 = i109;
9272 d114 = d110;
9273 }
9274 d110 = d37 * d78 + d39 * d80 + d41 * d82;
9275 d82 = +Math_abs(+d110) - (d66 + (d60 * d86 + d62 * d89 + d63 * d92));
9276 if (d82 > 0.0) {
9277 i94 = 0;
9278 STACKTOP = i12;
9279 return i94 | 0;
9280 }
9281 if (d82 > d114) {
9282 i115 = i77;
9283 i116 = 6;
9284 i117 = d110 < 0.0 | 0;
9285 d118 = d82;
9286 } else {
9287 i115 = i111;
9288 i116 = i112;
9289 i117 = i113;
9290 d118 = d114;
9291 }
9292 d114 = d58 + 9999999747378752.0e-21;
9293 d58 = d56 + 9999999747378752.0e-21;
9294 d56 = d86 + 9999999747378752.0e-21;
9295 d86 = d87 + 9999999747378752.0e-21;
9296 d87 = d88 + 9999999747378752.0e-21;
9297 d88 = d89 + 9999999747378752.0e-21;
9298 d89 = d90 + 9999999747378752.0e-21;
9299 d90 = d91 + 9999999747378752.0e-21;
9300 d91 = d92 + 9999999747378752.0e-21;
9301 d92 = d59 * d44 - d52 * d51;
9302 d82 = +Math_abs(+d92) - (d66 * d58 + (d65 * d56 + (d63 * d86 + d62 * d89)));
9303 if (d82 > 1.1920928955078125e-7) {
9304 i94 = 0;
9305 STACKTOP = i12;
9306 return i94 | 0;
9307 }
9308 d110 = -0.0 - d51;
9309 d41 = d51 * d51 + 0.0;
9310 d80 = d44 * d44;
9311 d39 = +Math_sqrt(+(d80 + d41));
9312 do {
9313 if (d39 > 1.1920928955078125e-7) {
9314 d78 = d82 / d39;
9315 if (d78 * 1.0499999523162842 <= d118) {
9316 i119 = i115;
9317 i120 = i116;
9318 i121 = i117;
9319 d122 = d118;
9320 d123 = 0.0;
9321 d124 = 0.0;
9322 d125 = 0.0;
9323 break;
9324 }
9325 i119 = 0;
9326 i120 = 7;
9327 i121 = d92 < 0.0 | 0;
9328 d122 = d78;
9329 d123 = 0.0 / d39;
9330 d124 = d110 / d39;
9331 d125 = d44 / d39;
9332 } else {
9333 i119 = i115;
9334 i120 = i116;
9335 i121 = i117;
9336 d122 = d118;
9337 d123 = 0.0;
9338 d124 = 0.0;
9339 d125 = 0.0;
9340 }
9341 } while (0);
9342 d118 = d59 * d43 - d52 * d49;
9343 d39 = +Math_abs(+d118) - (d66 * d114 + (d64 * d56 + (d63 * d87 + d62 * d90)));
9344 if (d39 > 1.1920928955078125e-7) {
9345 i94 = 0;
9346 STACKTOP = i12;
9347 return i94 | 0;
9348 }
9349 d110 = -0.0 - d49;
9350 d92 = d49 * d49 + 0.0;
9351 d82 = d43 * d43;
9352 d78 = +Math_sqrt(+(d82 + d92));
9353 do {
9354 if (d78 > 1.1920928955078125e-7) {
9355 d37 = d39 / d78;
9356 if (d37 * 1.0499999523162842 <= d122) {
9357 i126 = i119;
9358 i127 = i120;
9359 i128 = i121;
9360 d129 = d122;
9361 d130 = d123;
9362 d131 = d124;
9363 d132 = d125;
9364 break;
9365 }
9366 i126 = 0;
9367 i127 = 8;
9368 i128 = d118 < 0.0 | 0;
9369 d129 = d37;
9370 d130 = 0.0 / d78;
9371 d131 = d110 / d78;
9372 d132 = d43 / d78;
9373 } else {
9374 i126 = i119;
9375 i127 = i120;
9376 i128 = i121;
9377 d129 = d122;
9378 d130 = d123;
9379 d131 = d124;
9380 d132 = d125;
9381 }
9382 } while (0);
9383 d125 = d59 * d84 - d52 * d85;
9384 d124 = +Math_abs(+d125) - (d65 * d114 + (d64 * d58 + (d63 * d88 + d62 * d91)));
9385 if (d124 > 1.1920928955078125e-7) {
9386 i94 = 0;
9387 STACKTOP = i12;
9388 return i94 | 0;
9389 }
9390 d123 = -0.0 - d85;
9391 d122 = d85 * d85 + 0.0;
9392 d78 = d84 * d84;
9393 d110 = +Math_sqrt(+(d78 + d122));
9394 do {
9395 if (d110 > 1.1920928955078125e-7) {
9396 d118 = d124 / d110;
9397 if (d118 * 1.0499999523162842 <= d129) {
9398 i133 = i126;
9399 i134 = i127;
9400 i135 = i128;
9401 d136 = d129;
9402 d137 = d130;
9403 d138 = d131;
9404 d139 = d132;
9405 break;
9406 }
9407 i133 = 0;
9408 i134 = 9;
9409 i135 = d125 < 0.0 | 0;
9410 d136 = d118;
9411 d137 = 0.0 / d110;
9412 d138 = d123 / d110;
9413 d139 = d84 / d110;
9414 } else {
9415 i133 = i126;
9416 i134 = i127;
9417 i135 = i128;
9418 d136 = d129;
9419 d137 = d130;
9420 d138 = d131;
9421 d139 = d132;
9422 }
9423 } while (0);
9424 d132 = d45 * d51 - d59 * d70;
9425 d131 = +Math_abs(+d132) - (d66 * d87 + (d65 * d88 + (d63 * d114 + d60 * d89)));
9426 if (d131 > 1.1920928955078125e-7) {
9427 i94 = 0;
9428 STACKTOP = i12;
9429 return i94 | 0;
9430 }
9431 d130 = -0.0 - d70;
9432 d129 = d70 * d70;
9433 d110 = +Math_sqrt(+(d129 + d41));
9434 do {
9435 if (d110 > 1.1920928955078125e-7) {
9436 d41 = d131 / d110;
9437 if (d41 * 1.0499999523162842 <= d136) {
9438 i140 = i133;
9439 i141 = i134;
9440 i142 = i135;
9441 d143 = d136;
9442 d144 = d137;
9443 d145 = d138;
9444 d146 = d139;
9445 break;
9446 }
9447 i140 = 0;
9448 i141 = 10;
9449 i142 = d132 < 0.0 | 0;
9450 d143 = d41;
9451 d144 = d51 / d110;
9452 d145 = 0.0 / d110;
9453 d146 = d130 / d110;
9454 } else {
9455 i140 = i133;
9456 i141 = i134;
9457 i142 = i135;
9458 d143 = d136;
9459 d144 = d137;
9460 d145 = d138;
9461 d146 = d139;
9462 }
9463 } while (0);
9464 d139 = d45 * d49 - d59 * d76;
9465 d138 = +Math_abs(+d139) - (d66 * d86 + (d64 * d88 + (d63 * d58 + d60 * d90)));
9466 if (d138 > 1.1920928955078125e-7) {
9467 i94 = 0;
9468 STACKTOP = i12;
9469 return i94 | 0;
9470 }
9471 d137 = -0.0 - d76;
9472 d136 = d76 * d76;
9473 d110 = +Math_sqrt(+(d136 + d92));
9474 do {
9475 if (d110 > 1.1920928955078125e-7) {
9476 d92 = d138 / d110;
9477 if (d92 * 1.0499999523162842 <= d143) {
9478 i147 = i140;
9479 i148 = i141;
9480 i149 = i142;
9481 d150 = d143;
9482 d151 = d144;
9483 d152 = d145;
9484 d153 = d146;
9485 break;
9486 }
9487 i147 = 0;
9488 i148 = 11;
9489 i149 = d139 < 0.0 | 0;
9490 d150 = d92;
9491 d151 = d49 / d110;
9492 d152 = 0.0 / d110;
9493 d153 = d137 / d110;
9494 } else {
9495 i147 = i140;
9496 i148 = i141;
9497 i149 = i142;
9498 d150 = d143;
9499 d151 = d144;
9500 d152 = d145;
9501 d153 = d146;
9502 }
9503 } while (0);
9504 d146 = d45 * d85 - d59 * d83;
9505 d59 = +Math_abs(+d146) - (d65 * d86 + (d64 * d87 + (d63 * d56 + d60 * d91)));
9506 if (d59 > 1.1920928955078125e-7) {
9507 i94 = 0;
9508 STACKTOP = i12;
9509 return i94 | 0;
9510 }
9511 d145 = -0.0 - d83;
9512 d144 = d83 * d83;
9513 d143 = +Math_sqrt(+(d144 + d122));
9514 do {
9515 if (d143 > 1.1920928955078125e-7) {
9516 d122 = d59 / d143;
9517 if (d122 * 1.0499999523162842 <= d150) {
9518 i154 = i147;
9519 i155 = i148;
9520 i156 = i149;
9521 d157 = d150;
9522 d158 = d151;
9523 d159 = d152;
9524 d160 = d153;
9525 break;
9526 }
9527 i154 = 0;
9528 i155 = 12;
9529 i156 = d146 < 0.0 | 0;
9530 d157 = d122;
9531 d158 = d85 / d143;
9532 d159 = 0.0 / d143;
9533 d160 = d145 / d143;
9534 } else {
9535 i154 = i147;
9536 i155 = i148;
9537 i156 = i149;
9538 d157 = d150;
9539 d158 = d151;
9540 d159 = d152;
9541 d160 = d153;
9542 }
9543 } while (0);
9544 d153 = d52 * d70 - d45 * d44;
9545 d152 = +Math_abs(+d153) - (d66 * d90 + (d62 * d114 + d60 * d86 + d65 * d91));
9546 if (d152 > 1.1920928955078125e-7) {
9547 i94 = 0;
9548 STACKTOP = i12;
9549 return i94 | 0;
9550 }
9551 d86 = -0.0 - d44;
9552 d44 = +Math_sqrt(+(d129 + d80 + 0.0));
9553 do {
9554 if (d44 > 1.1920928955078125e-7) {
9555 d80 = d152 / d44;
9556 if (d80 * 1.0499999523162842 <= d157) {
9557 i161 = i154;
9558 i162 = i155;
9559 i163 = i156;
9560 d164 = d157;
9561 d165 = d158;
9562 d166 = d159;
9563 d167 = d160;
9564 break;
9565 }
9566 i161 = 0;
9567 i162 = 13;
9568 i163 = d153 < 0.0 | 0;
9569 d164 = d80;
9570 d165 = d86 / d44;
9571 d166 = d70 / d44;
9572 d167 = 0.0 / d44;
9573 } else {
9574 i161 = i154;
9575 i162 = i155;
9576 i163 = i156;
9577 d164 = d157;
9578 d165 = d158;
9579 d166 = d159;
9580 d167 = d160;
9581 }
9582 } while (0);
9583 d160 = d52 * d76 - d45 * d43;
9584 d159 = +Math_abs(+d160) - (d66 * d89 + (d62 * d58 + d60 * d87 + d64 * d91));
9585 if (d159 > 1.1920928955078125e-7) {
9586 i94 = 0;
9587 STACKTOP = i12;
9588 return i94 | 0;
9589 }
9590 d91 = -0.0 - d43;
9591 d43 = +Math_sqrt(+(d136 + d82 + 0.0));
9592 do {
9593 if (d43 > 1.1920928955078125e-7) {
9594 d82 = d159 / d43;
9595 if (d82 * 1.0499999523162842 <= d164) {
9596 i168 = i161;
9597 i169 = i162;
9598 i170 = i163;
9599 d171 = d164;
9600 d172 = d165;
9601 d173 = d166;
9602 d174 = d167;
9603 break;
9604 }
9605 i168 = 0;
9606 i169 = 14;
9607 i170 = d160 < 0.0 | 0;
9608 d171 = d82;
9609 d172 = d91 / d43;
9610 d173 = d76 / d43;
9611 d174 = 0.0 / d43;
9612 } else {
9613 i168 = i161;
9614 i169 = i162;
9615 i170 = i163;
9616 d171 = d164;
9617 d172 = d165;
9618 d173 = d166;
9619 d174 = d167;
9620 }
9621 } while (0);
9622 d167 = d52 * d83 - d45 * d84;
9623 d45 = +Math_abs(+d167) - (d65 * d89 + (d62 * d56 + d60 * d88 + d64 * d90));
9624 if (d45 > 1.1920928955078125e-7) {
9625 i94 = 0;
9626 STACKTOP = i12;
9627 return i94 | 0;
9628 }
9629 d90 = -0.0 - d84;
9630 d84 = +Math_sqrt(+(d144 + d78 + 0.0));
9631 do {
9632 if (d84 > 1.1920928955078125e-7) {
9633 d78 = d45 / d84;
9634 if (d78 * 1.0499999523162842 <= d171) {
9635 i175 = 899;
9636 break;
9637 }
9638 i176 = 15;
9639 i177 = d167 < 0.0 | 0;
9640 d178 = d78;
9641 d179 = d90 / d84;
9642 d180 = d83 / d84;
9643 d181 = 0.0 / d84;
9644 i175 = 902;
9645 } else {
9646 i175 = 899;
9647 }
9648 } while (0);
9649 do {
9650 if ((i175 | 0) == 899) {
9651 if ((i169 | 0) == 0) {
9652 i94 = 0;
9653 STACKTOP = i12;
9654 return i94 | 0;
9655 }
9656 if ((i168 | 0) == 0) {
9657 i176 = i169;
9658 i177 = i170;
9659 d178 = d171;
9660 d179 = d172;
9661 d180 = d173;
9662 d181 = d174;
9663 i175 = 902;
9664 break;
9665 }
9666 d84 = +HEAPF32[i168 >> 2];
9667 HEAPF32[i7 >> 2] = d84;
9668 d83 = +HEAPF32[i168 + 16 >> 2];
9669 HEAPF32[i7 + 4 >> 2] = d83;
9670 d90 = +HEAPF32[i168 + 32 >> 2];
9671 HEAPF32[i7 + 8 >> 2] = d90;
9672 i182 = i169;
9673 i183 = i170;
9674 d184 = d171;
9675 d185 = d84;
9676 d186 = d83;
9677 d187 = d90;
9678 }
9679 } while (0);
9680 if ((i175 | 0) == 902) {
9681 d171 = d54 * d181 + (d47 * d180 + d42 * d179);
9682 HEAPF32[i7 >> 2] = d171;
9683 d42 = d179 * +HEAPF32[i4 >> 2] + d180 * +HEAPF32[i48 >> 2] + d181 * +HEAPF32[i55 >> 2];
9684 HEAPF32[i7 + 4 >> 2] = d42;
9685 d47 = d179 * +HEAPF32[i1 >> 2] + d180 * +HEAPF32[i50 >> 2] + d181 * +HEAPF32[i57 >> 2];
9686 HEAPF32[i7 + 8 >> 2] = d47;
9687 i182 = i176;
9688 i183 = i177;
9689 d184 = d178;
9690 d185 = d171;
9691 d186 = d42;
9692 d187 = d47;
9693 }
9694 if ((i183 | 0) != 0) {
9695 HEAPF32[i7 >> 2] = -0.0 - d185;
9696 HEAPF32[i7 + 4 >> 2] = -0.0 - d186;
9697 HEAPF32[i7 + 8 >> 2] = -0.0 - d187;
9698 }
9699 HEAPF32[i8 >> 2] = -0.0 - d184;
9700 if ((i182 | 0) > 6) {
9701 d187 = +HEAPF32[i7 >> 2];
9702 d186 = +HEAPF32[i7 + 4 >> 2];
9703 d185 = +HEAPF32[i7 + 8 >> 2];
9704 d47 = +HEAPF32[i2 >> 2];
9705 d42 = +HEAPF32[i4 >> 2];
9706 d171 = +HEAPF32[i1 >> 2];
9707 d178 = d60 * (d187 * d47 + d186 * d42 + d185 * d171 > 0.0 ? 1.0 : -1.0);
9708 d60 = +HEAPF32[i46 >> 2];
9709 d181 = +HEAPF32[i48 >> 2];
9710 d180 = +HEAPF32[i50 >> 2];
9711 d179 = d62 * (d187 * d60 + d186 * d181 + d185 * d180 > 0.0 ? 1.0 : -1.0);
9712 d62 = +HEAPF32[i53 >> 2];
9713 d54 = +HEAPF32[i55 >> 2];
9714 d174 = +HEAPF32[i57 >> 2];
9715 d173 = d63 * (d187 * d62 + d186 * d54 + d185 * d174 > 0.0 ? 1.0 : -1.0);
9716 d63 = +HEAPF32[i36 >> 2] + d47 * d178 + d60 * d179 + d62 * d173;
9717 d62 = +HEAPF32[i38 >> 2] + d42 * d178 + d181 * d179 + d54 * d173;
9718 d54 = +HEAPF32[i40 >> 2] + d171 * d178 + d180 * d179 + d174 * d173;
9719 HEAP32[i18 >> 2] = HEAP32[i11 >> 2];
9720 HEAP32[i18 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
9721 HEAP32[i18 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
9722 d173 = +HEAPF32[i5 >> 2];
9723 d174 = +HEAPF32[i16 >> 2];
9724 d179 = +HEAPF32[i6 >> 2];
9725 d180 = d64 * (d187 * d173 + d186 * d174 + d185 * d179 > 0.0 ? -1.0 : 1.0);
9726 i6 = i17 | 0;
9727 i16 = i17 + 4 | 0;
9728 i11 = i17 + 8 | 0;
9729 d64 = +HEAPF32[i3 >> 2];
9730 d178 = +HEAPF32[i72 >> 2];
9731 d171 = +HEAPF32[i74 >> 2];
9732 d181 = d65 * (d187 * d64 + d186 * d178 + d185 * d171 > 0.0 ? -1.0 : 1.0);
9733 d65 = +HEAPF32[i16 >> 2] + d174 * d180 + d178 * d181;
9734 d178 = +HEAPF32[i11 >> 2] + d179 * d180 + d171 * d181;
9735 d171 = +HEAPF32[i77 >> 2];
9736 d179 = +HEAPF32[i79 >> 2];
9737 d174 = +HEAPF32[i81 >> 2];
9738 d42 = d66 * (d187 * d171 + d186 * d179 + d185 * d174 > 0.0 ? -1.0 : 1.0);
9739 d66 = +HEAPF32[i6 >> 2] + d173 * d180 + d64 * d181 + d171 * d42;
9740 HEAPF32[i6 >> 2] = d66;
9741 d171 = d65 + d179 * d42;
9742 HEAPF32[i16 >> 2] = d171;
9743 d179 = d178 + d174 * d42;
9744 HEAPF32[i11 >> 2] = d179;
9745 i81 = i182 - 7 | 0;
9746 i79 = (i81 | 0) / 3 | 0;
9747 d42 = +HEAPF32[i2 + (i79 << 2) >> 2];
9748 d174 = +HEAPF32[i2 + (i79 + 4 << 2) >> 2];
9749 d178 = +HEAPF32[i2 + (i79 + 8 << 2) >> 2];
9750 i79 = (i81 | 0) % 3 | 0;
9751 d65 = +HEAPF32[i5 + (i79 << 2) >> 2];
9752 d181 = +HEAPF32[i5 + (i79 + 4 << 2) >> 2];
9753 d64 = +HEAPF32[i5 + (i79 + 8 << 2) >> 2];
9754 d180 = d66 - d63;
9755 d63 = d171 - d62;
9756 d62 = d179 - d54;
9757 d54 = d42 * d65 + d174 * d181 + d178 * d64;
9758 d173 = 1.0 - d54 * d54;
9759 if (d173 > 9999999747378752.0e-20) {
9760 d188 = (d54 * (d178 * d62 + (d42 * d180 + d174 * d63)) - (d62 * d64 + (d65 * d180 + d181 * d63))) * (1.0 / d173);
9761 } else {
9762 d188 = 0.0;
9763 }
9764 HEAPF32[i6 >> 2] = d66 + d65 * d188;
9765 HEAPF32[i16 >> 2] = d171 + d181 * d188;
9766 HEAPF32[i11 >> 2] = d179 + d64 * d188;
9767 i11 = HEAP32[(HEAP32[i13 >> 2] | 0) + 16 >> 2] | 0;
9768 HEAPF32[i19 >> 2] = -0.0 - d187;
9769 HEAPF32[i19 + 4 >> 2] = -0.0 - d186;
9770 HEAPF32[i19 + 8 >> 2] = -0.0 - d185;
9771 HEAPF32[i19 + 12 >> 2] = 0.0;
9772 FUNCTION_TABLE_viiif[i11 & 15](i13, i19, i17, d184);
9773 HEAP32[i9 >> 2] = i182;
9774 i94 = 1;
9775 STACKTOP = i12;
9776 return i94 | 0;
9777 }
9778 i17 = (i182 | 0) < 4;
9779 i19 = i7 | 0;
9780 d184 = +HEAPF32[i19 >> 2];
9781 if (i17) {
9782 d189 = d184;
9783 d190 = +HEAPF32[i7 + 4 >> 2];
9784 d191 = +HEAPF32[i7 + 8 >> 2];
9785 i192 = i2;
9786 i193 = i5;
9787 i194 = i36;
9788 i195 = i35;
9789 i196 = i61;
9790 i197 = i15;
9791 } else {
9792 d189 = -0.0 - d184;
9793 d190 = -0.0 - +HEAPF32[i7 + 4 >> 2];
9794 d191 = -0.0 - +HEAPF32[i7 + 8 >> 2];
9795 i192 = i5;
9796 i193 = i2;
9797 i194 = i35;
9798 i195 = i36;
9799 i196 = i15;
9800 i197 = i61;
9801 }
9802 d184 = d189 * +HEAPF32[i193 >> 2] + d190 * +HEAPF32[i193 + 16 >> 2] + d191 * +HEAPF32[i193 + 32 >> 2];
9803 HEAPF32[i20 >> 2] = d184;
9804 d185 = d189 * +HEAPF32[i193 + 4 >> 2] + d190 * +HEAPF32[i193 + 20 >> 2] + d191 * +HEAPF32[i193 + 36 >> 2];
9805 HEAPF32[i20 + 4 >> 2] = d185;
9806 d186 = d189 * +HEAPF32[i193 + 8 >> 2] + d190 * +HEAPF32[i193 + 24 >> 2] + d191 * +HEAPF32[i193 + 40 >> 2];
9807 HEAPF32[i20 + 8 >> 2] = d186;
9808 d187 = +Math_abs(+d184);
9809 d184 = +Math_abs(+d185);
9810 d185 = +Math_abs(+d186);
9811 if (d184 > d187) {
9812 i61 = d184 > d185;
9813 i198 = 0;
9814 i199 = i61 ? 1 : 2;
9815 i200 = i61;
9816 } else {
9817 i61 = d187 > d185;
9818 i198 = i61 & 1;
9819 i199 = i61 ? 0 : 2;
9820 i200 = i61;
9821 }
9822 i61 = i200 ? 2 : 1;
9823 d185 = +HEAPF32[i197 + (i199 << 2) >> 2];
9824 d187 = +HEAPF32[i195 >> 2] - +HEAPF32[i194 >> 2];
9825 d184 = d185 * +HEAPF32[i193 + (i199 << 2) >> 2];
9826 if (+HEAPF32[i20 + (i199 << 2) >> 2] < 0.0) {
9827 d201 = d187 + d184;
9828 d202 = +HEAPF32[i195 + 4 >> 2] - +HEAPF32[i194 + 4 >> 2] + d185 * +HEAPF32[i193 + ((i199 | 4) << 2) >> 2];
9829 d203 = +HEAPF32[i195 + 8 >> 2] - +HEAPF32[i194 + 8 >> 2] + d185 * +HEAPF32[i193 + ((i199 | 8) << 2) >> 2];
9830 } else {
9831 d201 = d187 - d184;
9832 d202 = +HEAPF32[i195 + 4 >> 2] - +HEAPF32[i194 + 4 >> 2] - d185 * +HEAPF32[i193 + ((i199 | 4) << 2) >> 2];
9833 d203 = +HEAPF32[i195 + 8 >> 2] - +HEAPF32[i194 + 8 >> 2] - d185 * +HEAPF32[i193 + ((i199 | 8) << 2) >> 2];
9834 }
9835 i199 = (i17 ? -1 : -4) + i182 | 0;
9836 if ((i199 | 0) == 1) {
9837 i204 = 2;
9838 i205 = 0;
9839 } else if ((i199 | 0) == 0) {
9840 i204 = 2;
9841 i205 = 1;
9842 } else {
9843 i204 = 1;
9844 i205 = 0;
9845 }
9846 d185 = +HEAPF32[i192 + (i205 << 2) >> 2];
9847 d184 = +HEAPF32[i192 + ((i205 | 4) << 2) >> 2];
9848 d187 = +HEAPF32[i192 + ((i205 | 8) << 2) >> 2];
9849 d186 = d201 * d185 + d202 * d184 + d203 * d187;
9850 d188 = +HEAPF32[i192 + (i204 << 2) >> 2];
9851 d64 = +HEAPF32[i192 + ((i204 | 4) << 2) >> 2];
9852 d179 = +HEAPF32[i192 + ((i204 | 8) << 2) >> 2];
9853 d181 = d201 * d188 + d202 * d64 + d203 * d179;
9854 i192 = i193 + (i198 << 2) | 0;
9855 d171 = +HEAPF32[i192 >> 2];
9856 i195 = i193 + ((i198 | 4) << 2) | 0;
9857 d65 = +HEAPF32[i195 >> 2];
9858 i20 = i193 + ((i198 | 8) << 2) | 0;
9859 d66 = +HEAPF32[i20 >> 2];
9860 d173 = d185 * d171 + d184 * d65 + d187 * d66;
9861 i200 = i193 + (i61 << 2) | 0;
9862 d63 = +HEAPF32[i200 >> 2];
9863 i15 = i193 + ((i61 | 4) << 2) | 0;
9864 d180 = +HEAPF32[i15 >> 2];
9865 i36 = i193 + ((i61 | 8) << 2) | 0;
9866 d62 = +HEAPF32[i36 >> 2];
9867 d174 = d185 * d63 + d184 * d180 + d187 * d62;
9868 d187 = d188 * d171 + d64 * d65 + d179 * d66;
9869 d66 = d188 * d63 + d64 * d180 + d179 * d62;
9870 d62 = +HEAPF32[i197 + (i198 << 2) >> 2];
9871 d179 = d173 * d62;
9872 d180 = d187 * d62;
9873 d62 = +HEAPF32[i197 + (i61 << 2) >> 2];
9874 d64 = d174 * d62;
9875 d63 = d66 * d62;
9876 d62 = d186 - d179;
9877 i61 = i21 | 0;
9878 HEAPF32[i61 >> 2] = d62 - d64;
9879 d188 = d181 - d180;
9880 HEAPF32[i21 + 4 >> 2] = d188 - d63;
9881 HEAPF32[i21 + 8 >> 2] = d62 + d64;
9882 HEAPF32[i21 + 12 >> 2] = d188 + d63;
9883 d188 = d186 + d179;
9884 HEAPF32[i21 + 16 >> 2] = d188 + d64;
9885 d179 = d181 + d180;
9886 HEAPF32[i21 + 20 >> 2] = d179 + d63;
9887 HEAPF32[i21 + 24 >> 2] = d188 - d64;
9888 HEAPF32[i21 + 28 >> 2] = d179 - d63;
9889 HEAPF32[i22 >> 2] = +HEAPF32[i196 + (i205 << 2) >> 2];
9890 HEAPF32[i22 + 4 >> 2] = +HEAPF32[i196 + (i204 << 2) >> 2];
9891 i204 = i23 | 0;
9892 i205 = i14 | 0;
9893 i14 = i61;
9894 i61 = i204;
9895 i21 = 0;
9896 i197 = 4;
9897 L1130 : while (1) {
9898 i198 = i22 + (i21 << 2) | 0;
9899 i193 = 1 - i21 | 0;
9900 do {
9901 if ((i197 | 0) > 0) {
9902 i35 = 0;
9903 i2 = i14;
9904 i5 = i61;
9905 i11 = i197;
9906 while (1) {
9907 i16 = i2 + (i21 << 2) | 0;
9908 d63 = +HEAPF32[i16 >> 2];
9909 d179 = +HEAPF32[i198 >> 2];
9910 if (d63 * -1.0 < d179) {
9911 HEAPF32[i5 >> 2] = +HEAPF32[i2 >> 2];
9912 HEAPF32[i5 + 4 >> 2] = +HEAPF32[i2 + 4 >> 2];
9913 i6 = i35 + 1 | 0;
9914 if ((i6 & 8 | 0) != 0) {
9915 i206 = i6;
9916 i207 = i61;
9917 break L1130;
9918 }
9919 i208 = i5 + 8 | 0;
9920 i209 = i6;
9921 d210 = +HEAPF32[i16 >> 2];
9922 d211 = +HEAPF32[i198 >> 2];
9923 } else {
9924 i208 = i5;
9925 i209 = i35;
9926 d210 = d63;
9927 d211 = d179;
9928 }
9929 i16 = i2 + 8 | 0;
9930 i6 = (i11 | 0) > 1 ? i16 : i14;
9931 d179 = +HEAPF32[i6 + (i21 << 2) >> 2];
9932 if (d210 * -1.0 < d211 ^ d179 * -1.0 < d211) {
9933 d63 = +HEAPF32[i2 + (i193 << 2) >> 2];
9934 HEAPF32[i208 + (i193 << 2) >> 2] = d63 + (d211 * -1.0 - d210) * ((+HEAPF32[i6 + (i193 << 2) >> 2] - d63) / (d179 - d210));
9935 HEAPF32[i208 + (i21 << 2) >> 2] = +HEAPF32[i198 >> 2] * -1.0;
9936 i6 = i209 + 1 | 0;
9937 if ((i6 & 8 | 0) == 0) {
9938 i212 = i208 + 8 | 0;
9939 i213 = i6;
9940 } else {
9941 i206 = i6;
9942 i207 = i61;
9943 break L1130;
9944 }
9945 } else {
9946 i212 = i208;
9947 i213 = i209;
9948 }
9949 i6 = i11 - 1 | 0;
9950 if ((i6 | 0) > 0) {
9951 i35 = i213;
9952 i2 = i16;
9953 i5 = i212;
9954 i11 = i6;
9955 } else {
9956 break;
9957 }
9958 }
9959 i11 = (i61 | 0) == (i204 | 0) ? i205 : i204;
9960 if ((i213 | 0) > 0) {
9961 i214 = 0;
9962 i215 = i61;
9963 i216 = i11;
9964 i217 = i213;
9965 } else {
9966 i218 = 0;
9967 i219 = i11;
9968 break;
9969 }
9970 while (1) {
9971 i5 = i215 + (i21 << 2) | 0;
9972 d179 = +HEAPF32[i5 >> 2];
9973 d63 = +HEAPF32[i198 >> 2];
9974 if (d179 < d63) {
9975 HEAPF32[i216 >> 2] = +HEAPF32[i215 >> 2];
9976 HEAPF32[i216 + 4 >> 2] = +HEAPF32[i215 + 4 >> 2];
9977 i2 = i214 + 1 | 0;
9978 if ((i2 & 8 | 0) != 0) {
9979 i206 = i2;
9980 i207 = i11;
9981 break L1130;
9982 }
9983 i220 = i216 + 8 | 0;
9984 i221 = i2;
9985 d222 = +HEAPF32[i5 >> 2];
9986 d223 = +HEAPF32[i198 >> 2];
9987 } else {
9988 i220 = i216;
9989 i221 = i214;
9990 d222 = d179;
9991 d223 = d63;
9992 }
9993 i5 = i215 + 8 | 0;
9994 i2 = (i217 | 0) > 1 ? i5 : i61;
9995 d63 = +HEAPF32[i2 + (i21 << 2) >> 2];
9996 if (d222 < d223 ^ d63 < d223) {
9997 d179 = +HEAPF32[i215 + (i193 << 2) >> 2];
9998 HEAPF32[i220 + (i193 << 2) >> 2] = d179 + (d223 - d222) * ((+HEAPF32[i2 + (i193 << 2) >> 2] - d179) / (d63 - d222));
9999 HEAPF32[i220 + (i21 << 2) >> 2] = +HEAPF32[i198 >> 2];
10000 i2 = i221 + 1 | 0;
10001 if ((i2 & 8 | 0) == 0) {
10002 i224 = i220 + 8 | 0;
10003 i225 = i2;
10004 } else {
10005 i206 = i2;
10006 i207 = i11;
10007 break L1130;
10008 }
10009 } else {
10010 i224 = i220;
10011 i225 = i221;
10012 }
10013 i2 = i217 - 1 | 0;
10014 if ((i2 | 0) > 0) {
10015 i214 = i225;
10016 i215 = i5;
10017 i216 = i224;
10018 i217 = i2;
10019 } else {
10020 i218 = i225;
10021 i219 = i11;
10022 break;
10023 }
10024 }
10025 } else {
10026 i218 = 0;
10027 i219 = (i61 | 0) == (i204 | 0) ? i205 : i204;
10028 }
10029 } while (0);
10030 i198 = i21 + 1 | 0;
10031 if ((i198 | 0) < 2) {
10032 i14 = i219;
10033 i61 = (i219 | 0) == (i204 | 0) ? i205 : i204;
10034 i21 = i198;
10035 i197 = i218;
10036 } else {
10037 i206 = i218;
10038 i207 = i219;
10039 break;
10040 }
10041 }
10042 if ((i207 | 0) != (i204 | 0)) {
10043 i219 = i23;
10044 i218 = i207;
10045 i207 = i206 << 3;
10046 _memcpy(i219 | 0, i218 | 0, i207) | 0;
10047 }
10048 if ((i206 | 0) < 1) {
10049 i94 = 0;
10050 STACKTOP = i12;
10051 return i94 | 0;
10052 }
10053 d222 = 1.0 / (d173 * d66 - d187 * d174);
10054 d223 = d173 * d222;
10055 d173 = d174 * d222;
10056 d174 = d66 * d222;
10057 d66 = -0.0 - d187 * d222;
10058 d222 = +HEAPF32[i196 + (i199 << 2) >> 2];
10059 d187 = +HEAPF32[i192 >> 2];
10060 d210 = +HEAPF32[i200 >> 2];
10061 d211 = +HEAPF32[i195 >> 2];
10062 d63 = +HEAPF32[i15 >> 2];
10063 d179 = +HEAPF32[i20 >> 2];
10064 d64 = +HEAPF32[i36 >> 2];
10065 i36 = 0;
10066 i20 = 0;
10067 while (1) {
10068 i15 = i36 << 1;
10069 d188 = +HEAPF32[i23 + (i15 << 2) >> 2];
10070 d180 = d188 - d186;
10071 d62 = +HEAPF32[i23 + ((i15 | 1) << 2) >> 2];
10072 d65 = d62 - d181;
10073 d171 = d174 * d180 - d173 * d65;
10074 d184 = d180 * d66 + d223 * d65;
10075 i15 = i20 * 3 | 0;
10076 d65 = d210 * d184 + (d201 + d187 * d171);
10077 HEAPF32[i24 + (i15 << 2) >> 2] = d65;
10078 d180 = d63 * d184 + (d202 + d211 * d171);
10079 HEAPF32[i24 + (i15 + 1 << 2) >> 2] = d180;
10080 d185 = d64 * d184 + (d203 + d179 * d171);
10081 HEAPF32[i24 + (i15 + 2 << 2) >> 2] = d185;
10082 d171 = d222 - (d189 * d65 + d190 * d180 + d191 * d185);
10083 HEAPF32[i25 + (i20 << 2) >> 2] = d171;
10084 if (d171 < 0.0) {
10085 i226 = i20;
10086 } else {
10087 i15 = i20 << 1;
10088 HEAPF32[i23 + (i15 << 2) >> 2] = d188;
10089 HEAPF32[i23 + ((i15 | 1) << 2) >> 2] = d62;
10090 i226 = i20 + 1 | 0;
10091 }
10092 i15 = i36 + 1 | 0;
10093 if ((i15 | 0) < (i206 | 0)) {
10094 i36 = i15;
10095 i20 = i226;
10096 } else {
10097 break;
10098 }
10099 }
10100 if ((i226 | 0) < 1) {
10101 i94 = 0;
10102 STACKTOP = i12;
10103 return i94 | 0;
10104 }
10105 i20 = (i226 | 0) < (i10 | 0) ? i226 : i10;
10106 i10 = (i20 | 0) < 1 ? 1 : i20;
10107 do {
10108 if ((i226 | 0) > (i10 | 0)) {
10109 if ((i226 | 0) > 1) {
10110 i20 = 1;
10111 i36 = 0;
10112 d191 = +HEAPF32[i25 >> 2];
10113 while (1) {
10114 d190 = +HEAPF32[i25 + (i20 << 2) >> 2];
10115 i206 = d190 > d191;
10116 i23 = i206 ? i20 : i36;
10117 i15 = i20 + 1 | 0;
10118 if ((i15 | 0) < (i226 | 0)) {
10119 i20 = i15;
10120 i36 = i23;
10121 d191 = i206 ? d190 : d191;
10122 } else {
10123 i227 = i23;
10124 break;
10125 }
10126 }
10127 } else {
10128 i227 = 0;
10129 }
10130 __Z11cullPoints2iPfiiPi(i226, i204, i10, i227, i30 | 0);
10131 if ((i10 | 0) <= 0) {
10132 i228 = i10;
10133 break;
10134 }
10135 i36 = i13;
10136 i20 = i7 + 4 | 0;
10137 i23 = i7 + 8 | 0;
10138 i206 = i32 | 0;
10139 i15 = i32 + 4 | 0;
10140 i195 = i32 + 8 | 0;
10141 i200 = i32 + 12 | 0;
10142 i192 = i33 | 0;
10143 i199 = i33 + 4 | 0;
10144 i196 = i33 + 8 | 0;
10145 i207 = i33 + 12 | 0;
10146 i218 = i31 | 0;
10147 i219 = i31 + 4 | 0;
10148 i197 = i31 + 8 | 0;
10149 i21 = i34 | 0;
10150 i205 = i34 + 4 | 0;
10151 i61 = i34 + 8 | 0;
10152 i14 = i34 + 12 | 0;
10153 i225 = i194 + 4 | 0;
10154 i217 = i194 + 8 | 0;
10155 if (i17) {
10156 i224 = 0;
10157 while (1) {
10158 i216 = HEAP32[i30 + (i224 << 2) >> 2] | 0;
10159 i215 = i216 * 3 | 0;
10160 HEAPF32[i218 >> 2] = +HEAPF32[i24 + (i215 << 2) >> 2] + +HEAPF32[i194 >> 2];
10161 HEAPF32[i219 >> 2] = +HEAPF32[i24 + (i215 + 1 << 2) >> 2] + +HEAPF32[i225 >> 2];
10162 HEAPF32[i197 >> 2] = +HEAPF32[i24 + (i215 + 2 << 2) >> 2] + +HEAPF32[i217 >> 2];
10163 d191 = -0.0 - +HEAPF32[i23 >> 2];
10164 d190 = -0.0 - +HEAPF32[i20 >> 2];
10165 i215 = HEAP32[(HEAP32[i36 >> 2] | 0) + 16 >> 2] | 0;
10166 HEAPF32[i206 >> 2] = -0.0 - +HEAPF32[i19 >> 2];
10167 HEAPF32[i15 >> 2] = d190;
10168 HEAPF32[i195 >> 2] = d191;
10169 HEAPF32[i200 >> 2] = 0.0;
10170 FUNCTION_TABLE_viiif[i215 & 15](i13, i32, i31, -0.0 - +HEAPF32[i25 + (i216 << 2) >> 2]);
10171 i216 = i224 + 1 | 0;
10172 if ((i216 | 0) < (i10 | 0)) {
10173 i224 = i216;
10174 } else {
10175 i228 = i10;
10176 break;
10177 }
10178 }
10179 } else {
10180 i224 = 0;
10181 while (1) {
10182 i200 = HEAP32[i30 + (i224 << 2) >> 2] | 0;
10183 i195 = i200 * 3 | 0;
10184 d191 = +HEAPF32[i24 + (i195 << 2) >> 2] + +HEAPF32[i194 >> 2];
10185 HEAPF32[i218 >> 2] = d191;
10186 d190 = +HEAPF32[i24 + (i195 + 1 << 2) >> 2] + +HEAPF32[i225 >> 2];
10187 HEAPF32[i219 >> 2] = d190;
10188 d189 = +HEAPF32[i24 + (i195 + 2 << 2) >> 2] + +HEAPF32[i217 >> 2];
10189 HEAPF32[i197 >> 2] = d189;
10190 d222 = +HEAPF32[i19 >> 2];
10191 d179 = +HEAPF32[i20 >> 2];
10192 d203 = +HEAPF32[i23 >> 2];
10193 i195 = HEAP32[(HEAP32[i36 >> 2] | 0) + 16 >> 2] | 0;
10194 HEAPF32[i192 >> 2] = -0.0 - d222;
10195 HEAPF32[i199 >> 2] = -0.0 - d179;
10196 HEAPF32[i196 >> 2] = -0.0 - d203;
10197 HEAPF32[i207 >> 2] = 0.0;
10198 d64 = +HEAPF32[i25 + (i200 << 2) >> 2];
10199 HEAPF32[i21 >> 2] = d191 - d222 * d64;
10200 HEAPF32[i205 >> 2] = d190 - d179 * d64;
10201 HEAPF32[i61 >> 2] = d189 - d203 * d64;
10202 HEAPF32[i14 >> 2] = 0.0;
10203 FUNCTION_TABLE_viiif[i195 & 15](i13, i33, i34, -0.0 - d64);
10204 i195 = i224 + 1 | 0;
10205 if ((i195 | 0) < (i10 | 0)) {
10206 i224 = i195;
10207 } else {
10208 i228 = i10;
10209 break;
10210 }
10211 }
10212 }
10213 } else {
10214 i224 = (i226 | 0) > 0;
10215 if (i17) {
10216 if (!i224) {
10217 i228 = i226;
10218 break;
10219 }
10220 i14 = i13;
10221 i61 = i7 + 4 | 0;
10222 i205 = i7 + 8 | 0;
10223 i21 = i27 | 0;
10224 i207 = i27 + 4 | 0;
10225 i196 = i27 + 8 | 0;
10226 i199 = i27 + 12 | 0;
10227 i192 = i26 | 0;
10228 i36 = i194 + 4 | 0;
10229 i23 = i26 + 4 | 0;
10230 i20 = i194 + 8 | 0;
10231 i197 = i26 + 8 | 0;
10232 i217 = 0;
10233 while (1) {
10234 i219 = i217 * 3 | 0;
10235 HEAPF32[i192 >> 2] = +HEAPF32[i24 + (i219 << 2) >> 2] + +HEAPF32[i194 >> 2];
10236 HEAPF32[i23 >> 2] = +HEAPF32[i24 + (i219 + 1 << 2) >> 2] + +HEAPF32[i36 >> 2];
10237 HEAPF32[i197 >> 2] = +HEAPF32[i24 + (i219 + 2 << 2) >> 2] + +HEAPF32[i20 >> 2];
10238 i219 = HEAP32[(HEAP32[i14 >> 2] | 0) + 16 >> 2] | 0;
10239 d64 = -0.0 - +HEAPF32[i61 >> 2];
10240 d203 = -0.0 - +HEAPF32[i205 >> 2];
10241 HEAPF32[i21 >> 2] = -0.0 - +HEAPF32[i19 >> 2];
10242 HEAPF32[i207 >> 2] = d64;
10243 HEAPF32[i196 >> 2] = d203;
10244 HEAPF32[i199 >> 2] = 0.0;
10245 FUNCTION_TABLE_viiif[i219 & 15](i13, i27, i26, -0.0 - +HEAPF32[i25 + (i217 << 2) >> 2]);
10246 i219 = i217 + 1 | 0;
10247 if ((i219 | 0) < (i226 | 0)) {
10248 i217 = i219;
10249 } else {
10250 i228 = i226;
10251 break;
10252 }
10253 }
10254 } else {
10255 if (!i224) {
10256 i228 = i226;
10257 break;
10258 }
10259 i217 = i13;
10260 i199 = i7 + 4 | 0;
10261 i196 = i7 + 8 | 0;
10262 i207 = i29 | 0;
10263 i21 = i29 + 4 | 0;
10264 i205 = i29 + 8 | 0;
10265 i61 = i29 + 12 | 0;
10266 i14 = i28 | 0;
10267 i20 = i194 + 4 | 0;
10268 i197 = i28 + 4 | 0;
10269 i36 = i194 + 8 | 0;
10270 i23 = i28 + 8 | 0;
10271 i192 = 0;
10272 while (1) {
10273 i219 = i192 * 3 | 0;
10274 d203 = +HEAPF32[i25 + (i192 << 2) >> 2];
10275 d64 = +HEAPF32[i19 >> 2];
10276 HEAPF32[i14 >> 2] = +HEAPF32[i24 + (i219 << 2) >> 2] + +HEAPF32[i194 >> 2] - d203 * d64;
10277 d189 = +HEAPF32[i199 >> 2];
10278 HEAPF32[i197 >> 2] = +HEAPF32[i24 + (i219 + 1 << 2) >> 2] + +HEAPF32[i20 >> 2] - d203 * d189;
10279 d179 = +HEAPF32[i196 >> 2];
10280 HEAPF32[i23 >> 2] = +HEAPF32[i24 + (i219 + 2 << 2) >> 2] + +HEAPF32[i36 >> 2] - d203 * d179;
10281 i219 = HEAP32[(HEAP32[i217 >> 2] | 0) + 16 >> 2] | 0;
10282 HEAPF32[i207 >> 2] = -0.0 - d64;
10283 HEAPF32[i21 >> 2] = -0.0 - d189;
10284 HEAPF32[i205 >> 2] = -0.0 - d179;
10285 HEAPF32[i61 >> 2] = 0.0;
10286 FUNCTION_TABLE_viiif[i219 & 15](i13, i29, i28, -0.0 - d203);
10287 i219 = i192 + 1 | 0;
10288 if ((i219 | 0) < (i226 | 0)) {
10289 i192 = i219;
10290 } else {
10291 i228 = i226;
10292 break;
10293 }
10294 }
10295 }
10296 }
10297 } while (0);
10298 HEAP32[i9 >> 2] = i182;
10299 i94 = i228;
10300 STACKTOP = i12;
10301 return i94 | 0;
10302 }
10303 function __ZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
10304 i1 = i1 | 0;
10305 i2 = i2 | 0;
10306 i3 = i3 | 0;
10307 i4 = i4 | 0;
10308 i5 = i5 | 0;
10309 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, d48 = 0.0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0, d61 = 0.0, d62 = 0.0, d63 = 0.0, d64 = 0.0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, d78 = 0.0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0, i87 = 0, i88 = 0, i89 = 0, i90 = 0, i91 = 0, i92 = 0, i93 = 0, i94 = 0, i95 = 0, i96 = 0, i97 = 0, i98 = 0, i99 = 0, i100 = 0, i101 = 0, i102 = 0, i103 = 0, i104 = 0, i105 = 0, i106 = 0, i107 = 0, i108 = 0, i109 = 0, i110 = 0, i111 = 0, i112 = 0, d113 = 0.0, d114 = 0.0, d115 = 0.0, i116 = 0, i117 = 0, i118 = 0, i119 = 0, i120 = 0, i121 = 0, i122 = 0, i123 = 0, i124 = 0, i125 = 0, i126 = 0, i127 = 0, i128 = 0, i129 = 0, i130 = 0, i131 = 0, i132 = 0, i133 = 0, i134 = 0, i135 = 0, i136 = 0, i137 = 0, i138 = 0, i139 = 0, i140 = 0, i141 = 0, i142 = 0, i143 = 0, i144 = 0, i145 = 0, i146 = 0, i147 = 0, i148 = 0;
10310 i6 = STACKTOP;
10311 STACKTOP = STACKTOP + 744 | 0;
10312 i7 = i6 | 0;
10313 i8 = i6 + 16 | 0;
10314 i9 = i6 + 32 | 0;
10315 i10 = i6 + 168 | 0;
10316 i11 = i6 + 248 | 0;
10317 i12 = i6 + 256 | 0;
10318 i13 = i6 + 272 | 0;
10319 i14 = i6 + 288 | 0;
10320 i15 = i6 + 312 | 0;
10321 i16 = i6 + 328 | 0;
10322 i17 = i6 + 344 | 0;
10323 i18 = i6 + 360 | 0;
10324 i19 = i6 + 376 | 0;
10325 i20 = i1 + 20 | 0;
10326 i21 = HEAP32[i20 >> 2] | 0;
10327 if ((i21 | 0) == 0) {
10328 i22 = HEAP32[i1 + 4 >> 2] | 0;
10329 i23 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i22 >> 2] | 0) + 12 >> 2] & 31](i22, i2, i3) | 0;
10330 HEAP32[i20 >> 2] = i23;
10331 HEAP8[i1 + 16 | 0] = 1;
10332 i24 = i23;
10333 } else {
10334 i24 = i21;
10335 }
10336 i21 = i5 + 4 | 0;
10337 HEAP32[i21 >> 2] = i24;
10338 i24 = HEAP32[i2 + 192 >> 2] | 0;
10339 i23 = i24;
10340 i22 = HEAP32[i3 + 192 >> 2] | 0;
10341 i25 = i22;
10342 i26 = i24 + 4 | 0;
10343 do {
10344 if ((HEAP32[i26 >> 2] | 0) == 10) {
10345 if ((HEAP32[i22 + 4 >> 2] | 0) != 10) {
10346 break;
10347 }
10348 i27 = i24;
10349 i28 = i22;
10350 i29 = i24;
10351 i30 = HEAP32[(HEAP32[i24 >> 2] | 0) + 28 >> 2] | 0;
10352 FUNCTION_TABLE_ii[i30 & 127](i29) | 0;
10353 i29 = i22;
10354 i30 = HEAP32[(HEAP32[i22 >> 2] | 0) + 28 >> 2] | 0;
10355 FUNCTION_TABLE_ii[i30 & 127](i29) | 0;
10356 d31 = +__ZNK20btPersistentManifold27getContactBreakingThresholdEv(HEAP32[i20 >> 2] | 0);
10357 i29 = HEAP32[i24 + 52 >> 2] | 0;
10358 d32 = +HEAPF32[i27 + 28 + (i29 << 2) >> 2];
10359 d33 = +HEAPF32[i27 + 28 + (((i29 + 2 | 0) % 3 | 0) << 2) >> 2];
10360 i27 = HEAP32[i22 + 52 >> 2] | 0;
10361 d34 = +HEAPF32[i28 + 28 + (i27 << 2) >> 2];
10362 d35 = +HEAPF32[i28 + 28 + (((i27 + 2 | 0) % 3 | 0) << 2) >> 2];
10363 d36 = +HEAPF32[i2 + 4 + (i29 << 2) >> 2];
10364 d37 = +HEAPF32[i2 + 20 + (i29 << 2) >> 2];
10365 d38 = +HEAPF32[i2 + 36 + (i29 << 2) >> 2];
10366 d39 = +HEAPF32[i3 + 4 + (i27 << 2) >> 2];
10367 d40 = +HEAPF32[i3 + 20 + (i27 << 2) >> 2];
10368 d41 = +HEAPF32[i3 + 36 + (i27 << 2) >> 2];
10369 d42 = +HEAPF32[i3 + 52 >> 2];
10370 d43 = +HEAPF32[i3 + 56 >> 2];
10371 d44 = +HEAPF32[i3 + 60 >> 2];
10372 d45 = d42 - +HEAPF32[i2 + 52 >> 2];
10373 d46 = d43 - +HEAPF32[i2 + 56 >> 2];
10374 d47 = d44 - +HEAPF32[i2 + 60 >> 2];
10375 d48 = d36 * d39 + d37 * d40 + d38 * d41;
10376 d49 = d36 * d45 + d37 * d46 + d38 * d47;
10377 d50 = d39 * d45 + d40 * d46 + d41 * d47;
10378 d51 = 1.0 - d48 * d48;
10379 do {
10380 if (d51 == 0.0) {
10381 d52 = 0.0;
10382 } else {
10383 d53 = (d49 - d48 * d50) / d51;
10384 d54 = -0.0 - d32;
10385 if (d53 < d54) {
10386 d52 = d54;
10387 break;
10388 }
10389 if (d53 <= d32) {
10390 d52 = d53;
10391 break;
10392 }
10393 d52 = d32;
10394 }
10395 } while (0);
10396 d51 = d48 * d52 - d50;
10397 d53 = -0.0 - d34;
10398 do {
10399 if (d51 < d53) {
10400 d54 = d48 * d53 + d49;
10401 d55 = -0.0 - d32;
10402 if (d54 < d55) {
10403 d56 = d55;
10404 d57 = d53;
10405 break;
10406 }
10407 if (d54 <= d32) {
10408 d56 = d54;
10409 d57 = d53;
10410 break;
10411 }
10412 d56 = d32;
10413 d57 = d53;
10414 } else {
10415 if (d51 <= d34) {
10416 d56 = d52;
10417 d57 = d51;
10418 break;
10419 }
10420 d54 = d34 * d48 + d49;
10421 d55 = -0.0 - d32;
10422 if (d54 < d55) {
10423 d56 = d55;
10424 d57 = d34;
10425 break;
10426 }
10427 if (d54 <= d32) {
10428 d56 = d54;
10429 d57 = d34;
10430 break;
10431 }
10432 d56 = d32;
10433 d57 = d34;
10434 }
10435 } while (0);
10436 d34 = d39 * d57;
10437 d32 = d40 * d57;
10438 d49 = d41 * d57;
10439 d48 = d34 + (d45 - d36 * d56);
10440 d51 = d32 + (d46 - d37 * d56);
10441 d53 = d49 + (d47 - d38 * d56);
10442 d50 = d53 * d53 + (d48 * d48 + d51 * d51);
10443 d54 = +Math_sqrt(+d50);
10444 d55 = d54 - d33 - d35;
10445 if (d55 <= d31) {
10446 do {
10447 if (d50 > 1.4210854715202004e-14) {
10448 d58 = -0.0 - 1.0 / d54;
10449 d59 = d48 * d58;
10450 d60 = d51 * d58;
10451 d61 = d53 * d58;
10452 HEAPF32[i7 >> 2] = d59;
10453 HEAPF32[i7 + 4 >> 2] = d60;
10454 HEAPF32[i7 + 8 >> 2] = d61;
10455 HEAPF32[i7 + 12 >> 2] = 0.0;
10456 d62 = d59;
10457 d63 = d60;
10458 d64 = d61;
10459 } else {
10460 if (+Math_abs(+d38) > .7071067690849304) {
10461 d61 = 1.0 / +Math_sqrt(+(d37 * d37 + d38 * d38));
10462 HEAPF32[i7 >> 2] = 0.0;
10463 d60 = d61 * (-0.0 - d38);
10464 HEAPF32[i7 + 4 >> 2] = d60;
10465 d59 = d37 * d61;
10466 HEAPF32[i7 + 8 >> 2] = d59;
10467 d62 = 0.0;
10468 d63 = d60;
10469 d64 = d59;
10470 break;
10471 } else {
10472 d59 = 1.0 / +Math_sqrt(+(d36 * d36 + d37 * d37));
10473 d60 = d59 * (-0.0 - d37);
10474 HEAPF32[i7 >> 2] = d60;
10475 d61 = d36 * d59;
10476 HEAPF32[i7 + 4 >> 2] = d61;
10477 HEAPF32[i7 + 8 >> 2] = 0.0;
10478 d62 = d60;
10479 d63 = d61;
10480 d64 = 0.0;
10481 break;
10482 }
10483 }
10484 } while (0);
10485 HEAPF32[i8 >> 2] = d42 + d34 + d35 * d62;
10486 HEAPF32[i8 + 4 >> 2] = d43 + d32 + d35 * d63;
10487 HEAPF32[i8 + 8 >> 2] = d44 + d49 + d35 * d64;
10488 HEAPF32[i8 + 12 >> 2] = 0.0;
10489 }
10490 if (d55 < d31) {
10491 FUNCTION_TABLE_viiif[HEAP32[(HEAP32[i5 >> 2] | 0) + 16 >> 2] & 15](i5, i7, i8, d55);
10492 }
10493 i27 = HEAP32[i21 >> 2] | 0;
10494 if ((HEAP32[i27 + 1116 >> 2] | 0) == 0) {
10495 STACKTOP = i6;
10496 return;
10497 }
10498 if ((HEAP32[i27 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
10499 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i27, i5 + 8 | 0, i5 + 72 | 0);
10500 STACKTOP = i6;
10501 return;
10502 } else {
10503 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i27, i5 + 72 | 0, i5 + 8 | 0);
10504 STACKTOP = i6;
10505 return;
10506 }
10507 }
10508 } while (0);
10509 i8 = i9 + 128 | 0;
10510 HEAPF32[i8 >> 2] = 999999984306749400.0;
10511 i7 = i9 + 132 | 0;
10512 HEAP32[i7 >> 2] = 0;
10513 __ZN17btGjkPairDetectorC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i10, i23, i25, HEAP32[i1 + 8 >> 2] | 0, HEAP32[i1 + 12 >> 2] | 0);
10514 HEAP32[i10 + 28 >> 2] = i23;
10515 HEAP32[i10 + 32 >> 2] = i25;
10516 d64 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i24 >> 2] | 0) + 44 >> 2] & 7](i23);
10517 d63 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i22 >> 2] | 0) + 44 >> 2] & 7](i25);
10518 d62 = d64 + d63 + +__ZNK20btPersistentManifold27getContactBreakingThresholdEv(HEAP32[i20 >> 2] | 0);
10519 HEAPF32[i8 >> 2] = d62 * d62;
10520 HEAP32[i7 >> 2] = HEAP32[i4 + 40 >> 2];
10521 i7 = i2 + 4 | 0;
10522 i8 = i9;
10523 i25 = i7;
10524 HEAP32[i8 >> 2] = HEAP32[i25 >> 2];
10525 HEAP32[i8 + 4 >> 2] = HEAP32[i25 + 4 >> 2];
10526 HEAP32[i8 + 8 >> 2] = HEAP32[i25 + 8 >> 2];
10527 HEAP32[i8 + 12 >> 2] = HEAP32[i25 + 12 >> 2];
10528 i23 = i9 + 16 | 0;
10529 i27 = i2 + 20 | 0;
10530 HEAP32[i23 >> 2] = HEAP32[i27 >> 2];
10531 HEAP32[i23 + 4 >> 2] = HEAP32[i27 + 4 >> 2];
10532 HEAP32[i23 + 8 >> 2] = HEAP32[i27 + 8 >> 2];
10533 HEAP32[i23 + 12 >> 2] = HEAP32[i27 + 12 >> 2];
10534 i29 = i9 + 32 | 0;
10535 i28 = i2 + 36 | 0;
10536 HEAP32[i29 >> 2] = HEAP32[i28 >> 2];
10537 HEAP32[i29 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
10538 HEAP32[i29 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
10539 HEAP32[i29 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
10540 i30 = i9 + 48 | 0;
10541 i65 = i2 + 52 | 0;
10542 HEAP32[i30 >> 2] = HEAP32[i65 >> 2];
10543 HEAP32[i30 + 4 >> 2] = HEAP32[i65 + 4 >> 2];
10544 HEAP32[i30 + 8 >> 2] = HEAP32[i65 + 8 >> 2];
10545 HEAP32[i30 + 12 >> 2] = HEAP32[i65 + 12 >> 2];
10546 i66 = i3 + 4 | 0;
10547 i67 = i9 + 64 | 0;
10548 i68 = i66;
10549 HEAP32[i67 >> 2] = HEAP32[i68 >> 2];
10550 HEAP32[i67 + 4 >> 2] = HEAP32[i68 + 4 >> 2];
10551 HEAP32[i67 + 8 >> 2] = HEAP32[i68 + 8 >> 2];
10552 HEAP32[i67 + 12 >> 2] = HEAP32[i68 + 12 >> 2];
10553 i69 = i9 + 80 | 0;
10554 i70 = i3 + 20 | 0;
10555 HEAP32[i69 >> 2] = HEAP32[i70 >> 2];
10556 HEAP32[i69 + 4 >> 2] = HEAP32[i70 + 4 >> 2];
10557 HEAP32[i69 + 8 >> 2] = HEAP32[i70 + 8 >> 2];
10558 HEAP32[i69 + 12 >> 2] = HEAP32[i70 + 12 >> 2];
10559 i71 = i9 + 96 | 0;
10560 i72 = i3 + 36 | 0;
10561 HEAP32[i71 >> 2] = HEAP32[i72 >> 2];
10562 HEAP32[i71 + 4 >> 2] = HEAP32[i72 + 4 >> 2];
10563 HEAP32[i71 + 8 >> 2] = HEAP32[i72 + 8 >> 2];
10564 HEAP32[i71 + 12 >> 2] = HEAP32[i72 + 12 >> 2];
10565 i73 = i9 + 112 | 0;
10566 i74 = i3 + 52 | 0;
10567 HEAP32[i73 >> 2] = HEAP32[i74 >> 2];
10568 HEAP32[i73 + 4 >> 2] = HEAP32[i74 + 4 >> 2];
10569 HEAP32[i73 + 8 >> 2] = HEAP32[i74 + 8 >> 2];
10570 HEAP32[i73 + 12 >> 2] = HEAP32[i74 + 12 >> 2];
10571 do {
10572 if ((HEAP32[i26 >> 2] | 0) < 7) {
10573 i75 = HEAP32[i22 + 4 >> 2] | 0;
10574 if ((i75 | 0) >= 7) {
10575 break;
10576 }
10577 HEAP32[i11 >> 2] = 1552;
10578 i76 = i24 + 52 | 0;
10579 if ((HEAP32[i76 >> 2] | 0) == 0) {
10580 break;
10581 }
10582 i77 = i22 + 52 | 0;
10583 if ((HEAP32[i77 >> 2] | 0) != 0) {
10584 __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i10, i9, i11 | 0, HEAP32[i4 + 20 >> 2] | 0, 0);
10585 d62 = +__ZNK20btPersistentManifold27getContactBreakingThresholdEv(HEAP32[i20 >> 2] | 0);
10586 if ((HEAP8[i4 + 24 | 0] | 0) == 0) {
10587 d63 = +HEAPF32[i10 + 4 >> 2];
10588 d64 = +HEAPF32[i10 + 8 >> 2];
10589 d56 = +HEAPF32[i10 + 12 >> 2];
10590 d57 = 1.0 / +Math_sqrt(+(d63 * d63 + d64 * d64 + d56 * d56));
10591 HEAPF32[i12 >> 2] = d63 * d57;
10592 HEAPF32[i12 + 4 >> 2] = d64 * d57;
10593 HEAPF32[i12 + 8 >> 2] = d56 * d57;
10594 HEAPF32[i12 + 12 >> 2] = 0.0;
10595 d78 = +HEAPF32[i10 + 56 >> 2];
10596 i79 = 1404;
10597 } else {
10598 if (__ZN27btPolyhedralContactClipping18findSeparatingAxisERK18btConvexPolyhedronS2_RK11btTransformS5_R9btVector3(HEAP32[i76 >> 2] | 0, HEAP32[i77 >> 2] | 0, i7, i66, i12) | 0) {
10599 d78 = 0.0;
10600 i79 = 1404;
10601 }
10602 }
10603 if ((i79 | 0) == 1404) {
10604 __ZN27btPolyhedralContactClipping19clipHullAgainstHullERK9btVector3RK18btConvexPolyhedronS5_RK11btTransformS8_ffRN36btDiscreteCollisionDetectorInterface6ResultE(i12, HEAP32[i76 >> 2] | 0, HEAP32[i77 >> 2] | 0, i7, i66, d78 - d62, d62, i5 | 0);
10605 }
10606 if ((HEAP8[i1 + 16 | 0] | 0) == 0) {
10607 STACKTOP = i6;
10608 return;
10609 }
10610 i77 = HEAP32[i21 >> 2] | 0;
10611 if ((HEAP32[i77 + 1116 >> 2] | 0) == 0) {
10612 STACKTOP = i6;
10613 return;
10614 }
10615 if ((HEAP32[i77 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
10616 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i77, i5 + 8 | 0, i5 + 72 | 0);
10617 STACKTOP = i6;
10618 return;
10619 } else {
10620 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i77, i5 + 72 | 0, i5 + 8 | 0);
10621 STACKTOP = i6;
10622 return;
10623 }
10624 }
10625 if ((i75 | 0) != 1) {
10626 break;
10627 }
10628 __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i10, i9, i11 | 0, HEAP32[i4 + 20 >> 2] | 0, 0);
10629 d62 = +HEAPF32[i10 + 4 >> 2];
10630 d57 = +HEAPF32[i10 + 8 >> 2];
10631 d56 = +HEAPF32[i10 + 12 >> 2];
10632 d64 = 1.0 / +Math_sqrt(+(d62 * d62 + d57 * d57 + d56 * d56));
10633 HEAPF32[i13 >> 2] = d62 * d64;
10634 HEAPF32[i13 + 4 >> 2] = d57 * d64;
10635 HEAPF32[i13 + 8 >> 2] = d56 * d64;
10636 HEAPF32[i13 + 12 >> 2] = 0.0;
10637 i75 = i14 + 16 | 0;
10638 HEAP8[i75] = 1;
10639 i77 = i14 + 12 | 0;
10640 HEAP32[i77 >> 2] = 0;
10641 i80 = i14 + 4 | 0;
10642 HEAP32[i80 >> 2] = 0;
10643 i81 = i14 + 8 | 0;
10644 HEAP32[i81 >> 2] = 0;
10645 i82 = i22 + 56 | 0;
10646 i83 = i66 | 0;
10647 d64 = +HEAPF32[i82 >> 2];
10648 i84 = i3 + 8 | 0;
10649 d56 = +HEAPF32[i82 + 4 >> 2];
10650 i85 = i3 + 12 | 0;
10651 d57 = +HEAPF32[i82 + 8 >> 2];
10652 i86 = i3 + 52 | 0;
10653 d62 = +HEAPF32[i86 >> 2] + (+HEAPF32[i83 >> 2] * d64 + +HEAPF32[i84 >> 2] * d56 + +HEAPF32[i85 >> 2] * d57);
10654 i87 = i3 + 20 | 0;
10655 i88 = i3 + 24 | 0;
10656 i89 = i3 + 28 | 0;
10657 i90 = i3 + 56 | 0;
10658 d63 = +HEAPF32[i90 >> 2] + (d64 * +HEAPF32[i87 >> 2] + d56 * +HEAPF32[i88 >> 2] + d57 * +HEAPF32[i89 >> 2]);
10659 i91 = i3 + 36 | 0;
10660 i92 = i3 + 40 | 0;
10661 i93 = i3 + 44 | 0;
10662 i94 = i3 + 60 | 0;
10663 d52 = +HEAPF32[i94 >> 2] + (d64 * +HEAPF32[i91 >> 2] + d56 * +HEAPF32[i92 >> 2] + d57 * +HEAPF32[i93 >> 2]);
10664 i95 = __Z22btAlignedAllocInternalji(16, 16) | 0;
10665 HEAP8[i75] = 1;
10666 HEAP32[i77 >> 2] = i95;
10667 HEAP32[i81 >> 2] = 1;
10668 i96 = HEAP32[i80 >> 2] | 0;
10669 i97 = i95 + (i96 << 4) | 0;
10670 if ((i97 | 0) == 0) {
10671 i98 = i96;
10672 i99 = 1;
10673 } else {
10674 HEAPF32[i97 >> 2] = d62;
10675 HEAPF32[i95 + (i96 << 4) + 4 >> 2] = d63;
10676 HEAPF32[i95 + (i96 << 4) + 8 >> 2] = d52;
10677 HEAPF32[i95 + (i96 << 4) + 12 >> 2] = 0.0;
10678 i98 = HEAP32[i80 >> 2] | 0;
10679 i99 = HEAP32[i81 >> 2] | 0;
10680 }
10681 i96 = i98 + 1 | 0;
10682 HEAP32[i80 >> 2] = i96;
10683 d52 = +HEAPF32[i82 + 16 >> 2];
10684 d63 = +HEAPF32[i82 + 20 >> 2];
10685 d62 = +HEAPF32[i82 + 24 >> 2];
10686 d57 = +HEAPF32[i86 >> 2] + (+HEAPF32[i83 >> 2] * d52 + +HEAPF32[i84 >> 2] * d63 + +HEAPF32[i85 >> 2] * d62);
10687 d56 = +HEAPF32[i90 >> 2] + (d52 * +HEAPF32[i87 >> 2] + d63 * +HEAPF32[i88 >> 2] + d62 * +HEAPF32[i89 >> 2]);
10688 d64 = +HEAPF32[i94 >> 2] + (d52 * +HEAPF32[i91 >> 2] + d63 * +HEAPF32[i92 >> 2] + d62 * +HEAPF32[i93 >> 2]);
10689 do {
10690 if ((i96 | 0) == (i99 | 0)) {
10691 i95 = (i99 | 0) == 0 ? 1 : i99 << 1;
10692 if ((i99 | 0) >= (i95 | 0)) {
10693 i100 = i99;
10694 i101 = i99;
10695 break;
10696 }
10697 if ((i95 | 0) == 0) {
10698 i102 = 0;
10699 i103 = i99;
10700 } else {
10701 i97 = __Z22btAlignedAllocInternalji(i95 << 4, 16) | 0;
10702 i102 = i97;
10703 i103 = HEAP32[i80 >> 2] | 0;
10704 }
10705 if ((i103 | 0) > 0) {
10706 i97 = 0;
10707 do {
10708 i104 = i102 + (i97 << 4) | 0;
10709 if ((i104 | 0) != 0) {
10710 i105 = i104;
10711 i104 = (HEAP32[i77 >> 2] | 0) + (i97 << 4) | 0;
10712 HEAP32[i105 >> 2] = HEAP32[i104 >> 2];
10713 HEAP32[i105 + 4 >> 2] = HEAP32[i104 + 4 >> 2];
10714 HEAP32[i105 + 8 >> 2] = HEAP32[i104 + 8 >> 2];
10715 HEAP32[i105 + 12 >> 2] = HEAP32[i104 + 12 >> 2];
10716 }
10717 i97 = i97 + 1 | 0;
10718 } while ((i97 | 0) < (i103 | 0));
10719 }
10720 i97 = HEAP32[i77 >> 2] | 0;
10721 if ((i97 | 0) != 0) {
10722 if ((HEAP8[i75] | 0) != 0) {
10723 __Z21btAlignedFreeInternalPv(i97);
10724 }
10725 HEAP32[i77 >> 2] = 0;
10726 }
10727 HEAP8[i75] = 1;
10728 HEAP32[i77 >> 2] = i102;
10729 HEAP32[i81 >> 2] = i95;
10730 i100 = HEAP32[i80 >> 2] | 0;
10731 i101 = i95;
10732 } else {
10733 i100 = i96;
10734 i101 = i99;
10735 }
10736 } while (0);
10737 i96 = HEAP32[i77 >> 2] | 0;
10738 i97 = i96 + (i100 << 4) | 0;
10739 if ((i97 | 0) == 0) {
10740 i106 = i100;
10741 i107 = i101;
10742 } else {
10743 HEAPF32[i97 >> 2] = d57;
10744 HEAPF32[i96 + (i100 << 4) + 4 >> 2] = d56;
10745 HEAPF32[i96 + (i100 << 4) + 8 >> 2] = d64;
10746 HEAPF32[i96 + (i100 << 4) + 12 >> 2] = 0.0;
10747 i106 = HEAP32[i80 >> 2] | 0;
10748 i107 = HEAP32[i81 >> 2] | 0;
10749 }
10750 i96 = i106 + 1 | 0;
10751 HEAP32[i80 >> 2] = i96;
10752 d55 = +HEAPF32[i82 + 32 >> 2];
10753 d31 = +HEAPF32[i82 + 36 >> 2];
10754 d35 = +HEAPF32[i82 + 40 >> 2];
10755 d49 = +HEAPF32[i86 >> 2] + (+HEAPF32[i83 >> 2] * d55 + +HEAPF32[i84 >> 2] * d31 + +HEAPF32[i85 >> 2] * d35);
10756 d44 = +HEAPF32[i90 >> 2] + (d55 * +HEAPF32[i87 >> 2] + d31 * +HEAPF32[i88 >> 2] + d35 * +HEAPF32[i89 >> 2]);
10757 d32 = +HEAPF32[i94 >> 2] + (d55 * +HEAPF32[i91 >> 2] + d31 * +HEAPF32[i92 >> 2] + d35 * +HEAPF32[i93 >> 2]);
10758 do {
10759 if ((i96 | 0) == (i107 | 0)) {
10760 i97 = (i107 | 0) == 0 ? 1 : i107 << 1;
10761 if ((i107 | 0) >= (i97 | 0)) {
10762 i108 = i107;
10763 break;
10764 }
10765 if ((i97 | 0) == 0) {
10766 i109 = 0;
10767 i110 = i107;
10768 } else {
10769 i104 = __Z22btAlignedAllocInternalji(i97 << 4, 16) | 0;
10770 i109 = i104;
10771 i110 = HEAP32[i80 >> 2] | 0;
10772 }
10773 if ((i110 | 0) > 0) {
10774 i104 = 0;
10775 do {
10776 i105 = i109 + (i104 << 4) | 0;
10777 if ((i105 | 0) != 0) {
10778 i111 = i105;
10779 i105 = (HEAP32[i77 >> 2] | 0) + (i104 << 4) | 0;
10780 HEAP32[i111 >> 2] = HEAP32[i105 >> 2];
10781 HEAP32[i111 + 4 >> 2] = HEAP32[i105 + 4 >> 2];
10782 HEAP32[i111 + 8 >> 2] = HEAP32[i105 + 8 >> 2];
10783 HEAP32[i111 + 12 >> 2] = HEAP32[i105 + 12 >> 2];
10784 }
10785 i104 = i104 + 1 | 0;
10786 } while ((i104 | 0) < (i110 | 0));
10787 }
10788 i104 = HEAP32[i77 >> 2] | 0;
10789 if ((i104 | 0) != 0) {
10790 if ((HEAP8[i75] | 0) != 0) {
10791 __Z21btAlignedFreeInternalPv(i104);
10792 }
10793 HEAP32[i77 >> 2] = 0;
10794 }
10795 HEAP8[i75] = 1;
10796 HEAP32[i77 >> 2] = i109;
10797 HEAP32[i81 >> 2] = i97;
10798 i108 = HEAP32[i80 >> 2] | 0;
10799 } else {
10800 i108 = i96;
10801 }
10802 } while (0);
10803 i96 = HEAP32[i77 >> 2] | 0;
10804 i93 = i96 + (i108 << 4) | 0;
10805 if ((i93 | 0) == 0) {
10806 i112 = i108;
10807 } else {
10808 HEAPF32[i93 >> 2] = d49;
10809 HEAPF32[i96 + (i108 << 4) + 4 >> 2] = d44;
10810 HEAPF32[i96 + (i108 << 4) + 8 >> 2] = d32;
10811 HEAPF32[i96 + (i108 << 4) + 12 >> 2] = 0.0;
10812 i112 = HEAP32[i80 >> 2] | 0;
10813 }
10814 HEAP32[i80 >> 2] = i112 + 1;
10815 d64 = +__ZNK20btPersistentManifold27getContactBreakingThresholdEv(HEAP32[i20 >> 2] | 0);
10816 __ZN27btPolyhedralContactClipping19clipFaceAgainstHullERK9btVector3RK18btConvexPolyhedronRK11btTransformR20btAlignedObjectArrayIS0_EffRN36btDiscreteCollisionDetectorInterface6ResultE(i13, HEAP32[i76 >> 2] | 0, i7, i14, +HEAPF32[i10 + 56 >> 2] - d64, d64, i5 | 0);
10817 do {
10818 if ((HEAP8[i1 + 16 | 0] | 0) != 0) {
10819 i96 = HEAP32[i21 >> 2] | 0;
10820 if ((HEAP32[i96 + 1116 >> 2] | 0) == 0) {
10821 break;
10822 }
10823 if ((HEAP32[i96 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
10824 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i96, i5 + 8 | 0, i5 + 72 | 0);
10825 break;
10826 } else {
10827 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i96, i5 + 72 | 0, i5 + 8 | 0);
10828 break;
10829 }
10830 }
10831 } while (0);
10832 i76 = HEAP32[i77 >> 2] | 0;
10833 if ((i76 | 0) != 0) {
10834 if ((HEAP8[i75] | 0) != 0) {
10835 __Z21btAlignedFreeInternalPv(i76);
10836 }
10837 HEAP32[i77 >> 2] = 0;
10838 }
10839 HEAP8[i75] = 1;
10840 HEAP32[i77 >> 2] = 0;
10841 HEAP32[i80 >> 2] = 0;
10842 HEAP32[i81 >> 2] = 0;
10843 STACKTOP = i6;
10844 return;
10845 }
10846 } while (0);
10847 i14 = i4 + 20 | 0;
10848 __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i10, i9, i5 | 0, HEAP32[i14 >> 2] | 0, 0);
10849 i4 = i1 + 28 | 0;
10850 L1724 : do {
10851 if ((HEAP32[i4 >> 2] | 0) != 0) {
10852 if ((HEAP32[(HEAP32[i21 >> 2] | 0) + 1116 >> 2] | 0) >= (HEAP32[i1 + 32 >> 2] | 0)) {
10853 break;
10854 }
10855 d78 = +HEAPF32[i10 + 4 >> 2];
10856 d32 = +HEAPF32[i10 + 8 >> 2];
10857 d44 = +HEAPF32[i10 + 12 >> 2];
10858 d49 = 1.0 / +Math_sqrt(+(d78 * d78 + d32 * d32 + d44 * d44));
10859 d64 = d78 * d49;
10860 d78 = d32 * d49;
10861 d32 = d44 * d49;
10862 if (+Math_abs(+d32) > .7071067690849304) {
10863 d49 = 1.0 / +Math_sqrt(+(d32 * d32 + d78 * d78));
10864 d113 = 0.0;
10865 d114 = d49 * (-0.0 - d32);
10866 d115 = d78 * d49;
10867 } else {
10868 d49 = 1.0 / +Math_sqrt(+(d64 * d64 + d78 * d78));
10869 d113 = d49 * (-0.0 - d78);
10870 d114 = d64 * d49;
10871 d115 = 0.0;
10872 }
10873 d49 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i24 >> 2] | 0) + 16 >> 2] & 7](i24);
10874 d44 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i22 >> 2] | 0) + 16 >> 2] & 7](i22);
10875 i13 = d49 < d44;
10876 d56 = +HEAPF32[4] / (i13 ? d49 : d44);
10877 i20 = i15;
10878 if (i13) {
10879 HEAP32[i20 >> 2] = HEAP32[i8 >> 2];
10880 HEAP32[i20 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
10881 HEAP32[i20 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
10882 HEAP32[i20 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
10883 i112 = i16;
10884 HEAP32[i112 >> 2] = HEAP32[i23 >> 2];
10885 HEAP32[i112 + 4 >> 2] = HEAP32[i23 + 4 >> 2];
10886 HEAP32[i112 + 8 >> 2] = HEAP32[i23 + 8 >> 2];
10887 HEAP32[i112 + 12 >> 2] = HEAP32[i23 + 12 >> 2];
10888 i112 = i17;
10889 HEAP32[i112 >> 2] = HEAP32[i29 >> 2];
10890 HEAP32[i112 + 4 >> 2] = HEAP32[i29 + 4 >> 2];
10891 HEAP32[i112 + 8 >> 2] = HEAP32[i29 + 8 >> 2];
10892 HEAP32[i112 + 12 >> 2] = HEAP32[i29 + 12 >> 2];
10893 i112 = i18;
10894 HEAP32[i112 >> 2] = HEAP32[i30 >> 2];
10895 HEAP32[i112 + 4 >> 2] = HEAP32[i30 + 4 >> 2];
10896 HEAP32[i112 + 8 >> 2] = HEAP32[i30 + 8 >> 2];
10897 HEAP32[i112 + 12 >> 2] = HEAP32[i30 + 12 >> 2];
10898 } else {
10899 HEAP32[i20 >> 2] = HEAP32[i67 >> 2];
10900 HEAP32[i20 + 4 >> 2] = HEAP32[i67 + 4 >> 2];
10901 HEAP32[i20 + 8 >> 2] = HEAP32[i67 + 8 >> 2];
10902 HEAP32[i20 + 12 >> 2] = HEAP32[i67 + 12 >> 2];
10903 i112 = i16;
10904 HEAP32[i112 >> 2] = HEAP32[i69 >> 2];
10905 HEAP32[i112 + 4 >> 2] = HEAP32[i69 + 4 >> 2];
10906 HEAP32[i112 + 8 >> 2] = HEAP32[i69 + 8 >> 2];
10907 HEAP32[i112 + 12 >> 2] = HEAP32[i69 + 12 >> 2];
10908 i112 = i17;
10909 HEAP32[i112 >> 2] = HEAP32[i71 >> 2];
10910 HEAP32[i112 + 4 >> 2] = HEAP32[i71 + 4 >> 2];
10911 HEAP32[i112 + 8 >> 2] = HEAP32[i71 + 8 >> 2];
10912 HEAP32[i112 + 12 >> 2] = HEAP32[i71 + 12 >> 2];
10913 i112 = i18;
10914 HEAP32[i112 >> 2] = HEAP32[i73 >> 2];
10915 HEAP32[i112 + 4 >> 2] = HEAP32[i73 + 4 >> 2];
10916 HEAP32[i112 + 8 >> 2] = HEAP32[i73 + 8 >> 2];
10917 HEAP32[i112 + 12 >> 2] = HEAP32[i73 + 12 >> 2];
10918 }
10919 i112 = HEAP32[i4 >> 2] | 0;
10920 if ((i112 | 0) <= 0) {
10921 break;
10922 }
10923 d44 = d115 * d115 + (d114 * d114 + d113 * d113);
10924 d49 = d56 > .39269909262657166 ? .19634954631328583 : d56 * .5;
10925 d56 = d32 * d32 + (d64 * d64 + d78 * d78);
10926 i108 = i7 | 0;
10927 i109 = i2 + 20 | 0;
10928 i110 = i2 + 36 | 0;
10929 i107 = i2 + 8 | 0;
10930 i106 = i2 + 24 | 0;
10931 i100 = i2 + 40 | 0;
10932 i101 = i2 + 12 | 0;
10933 i99 = i2 + 28 | 0;
10934 i102 = i2 + 44 | 0;
10935 i103 = i9 | 0;
10936 i98 = i9 + 4 | 0;
10937 i11 = i9 + 8 | 0;
10938 i12 = i9 + 12 | 0;
10939 i79 = i9 + 16 | 0;
10940 i26 = i9 + 20 | 0;
10941 i76 = i9 + 24 | 0;
10942 i96 = i9 + 28 | 0;
10943 i93 = i9 + 32 | 0;
10944 i92 = i9 + 36 | 0;
10945 i91 = i9 + 40 | 0;
10946 i94 = i9 + 44 | 0;
10947 i89 = i19 | 0;
10948 i88 = i19 + 144 | 0;
10949 i87 = i19 + 160 | 0;
10950 i90 = i19 + 164 | 0;
10951 i85 = i19 + 180 | 0;
10952 i84 = i19 + 196 | 0;
10953 i83 = i19 + 212 | 0;
10954 i86 = i19 + 228 | 0;
10955 i82 = i19 + 244 | 0;
10956 i104 = i19 + 260 | 0;
10957 i95 = i19 + 276 | 0;
10958 i105 = i19 + 292 | 0;
10959 i111 = i19 + 308 | 0;
10960 i116 = i16;
10961 i117 = i19 + 324 | 0;
10962 i118 = i17;
10963 i119 = i19 + 340 | 0;
10964 i120 = i18;
10965 i121 = i19 + 356 | 0;
10966 i122 = i13 & 1;
10967 i123 = i19 + 360 | 0;
10968 i124 = i19 | 0;
10969 i125 = i66 | 0;
10970 i126 = i3 + 20 | 0;
10971 i127 = i3 + 36 | 0;
10972 i128 = i3 + 8 | 0;
10973 i129 = i3 + 24 | 0;
10974 i130 = i3 + 40 | 0;
10975 i131 = i3 + 12 | 0;
10976 i132 = i3 + 28 | 0;
10977 i133 = i3 + 44 | 0;
10978 i134 = i9 + 64 | 0;
10979 i135 = i9 + 68 | 0;
10980 i136 = i9 + 72 | 0;
10981 i137 = i9 + 76 | 0;
10982 i138 = i9 + 80 | 0;
10983 i139 = i9 + 84 | 0;
10984 i140 = i9 + 88 | 0;
10985 i141 = i9 + 92 | 0;
10986 i142 = i9 + 96 | 0;
10987 i143 = i9 + 100 | 0;
10988 i144 = i9 + 104 | 0;
10989 i145 = i9 + 108 | 0;
10990 if (d44 > 1.1920928955078125e-7) {
10991 i146 = 0;
10992 i147 = i112;
10993 } else {
10994 if (i13) {
10995 i148 = 0;
10996 while (1) {
10997 i148 = i148 + 1 | 0;
10998 if ((i148 | 0) >= (i112 | 0)) {
10999 break L1724;
11000 }
11001 }
11002 } else {
11003 i148 = 0;
11004 while (1) {
11005 i148 = i148 + 1 | 0;
11006 if ((i148 | 0) >= (i112 | 0)) {
11007 break L1724;
11008 }
11009 }
11010 }
11011 }
11012 do {
11013 d57 = +Math_sqrt(+d44);
11014 d35 = +Math_sin(+d49) / d57;
11015 d57 = d113 * d35;
11016 d31 = d114 * d35;
11017 d55 = d115 * d35;
11018 d35 = +Math_cos(+d49);
11019 d43 = +Math_sqrt(+d56);
11020 d34 = +(i146 | 0) * (6.2831854820251465 / +(i147 | 0)) * .5;
11021 d42 = +Math_sin(+d34) / d43;
11022 d43 = d64 * d42;
11023 d62 = d78 * d42;
11024 d63 = d32 * d42;
11025 d42 = +Math_cos(+d34);
11026 if (i13) {
11027 d34 = -0.0 - d43;
11028 d52 = -0.0 - d62;
11029 d36 = -0.0 - d63;
11030 d37 = d55 * d52 + (d57 * d42 + d35 * d34) - d31 * d36;
11031 d38 = d57 * d36 + (d31 * d42 + d35 * d52) - d55 * d34;
11032 d53 = d31 * d34 + (d55 * d42 + d35 * d36) - d57 * d52;
11033 d51 = d35 * d42 - d57 * d34 - d31 * d52 - d55 * d36;
11034 d36 = d63 * d38 + (d43 * d51 + d42 * d37) - d62 * d53;
11035 d52 = d43 * d53 + (d42 * d38 + d62 * d51) - d63 * d37;
11036 d34 = d62 * d37 + (d63 * d51 + d42 * d53) - d43 * d38;
11037 d48 = d42 * d51 - d43 * d37 - d62 * d38 - d63 * d53;
11038 d53 = 2.0 / (d48 * d48 + (d34 * d34 + (d36 * d36 + d52 * d52)));
11039 d38 = d36 * d53;
11040 d37 = d52 * d53;
11041 d51 = d34 * d53;
11042 d53 = d48 * d38;
11043 d54 = d48 * d37;
11044 d50 = d48 * d51;
11045 d48 = d36 * d38;
11046 d38 = d36 * d37;
11047 d33 = d36 * d51;
11048 d36 = d52 * d37;
11049 d37 = d52 * d51;
11050 d52 = d34 * d51;
11051 d51 = 1.0 - (d36 + d52);
11052 d34 = d38 - d50;
11053 d47 = d33 + d54;
11054 d46 = d38 + d50;
11055 d50 = 1.0 - (d48 + d52);
11056 d52 = d37 - d53;
11057 d38 = d33 - d54;
11058 d54 = d37 + d53;
11059 d53 = 1.0 - (d48 + d36);
11060 d36 = +HEAPF32[i108 >> 2];
11061 d48 = +HEAPF32[i109 >> 2];
11062 d37 = +HEAPF32[i110 >> 2];
11063 d33 = +HEAPF32[i107 >> 2];
11064 d45 = +HEAPF32[i106 >> 2];
11065 d41 = +HEAPF32[i100 >> 2];
11066 d40 = +HEAPF32[i101 >> 2];
11067 d39 = +HEAPF32[i99 >> 2];
11068 d61 = +HEAPF32[i102 >> 2];
11069 HEAPF32[i103 >> 2] = d37 * d47 + (d48 * d34 + d36 * d51);
11070 HEAPF32[i98 >> 2] = d51 * d33 + d34 * d45 + d47 * d41;
11071 HEAPF32[i11 >> 2] = d51 * d40 + d34 * d39 + d47 * d61;
11072 HEAPF32[i12 >> 2] = 0.0;
11073 HEAPF32[i79 >> 2] = d37 * d52 + (d36 * d46 + d48 * d50);
11074 HEAPF32[i26 >> 2] = d46 * d33 + d50 * d45 + d52 * d41;
11075 HEAPF32[i76 >> 2] = d46 * d40 + d50 * d39 + d52 * d61;
11076 HEAPF32[i96 >> 2] = 0.0;
11077 HEAPF32[i93 >> 2] = d36 * d38 + d48 * d54 + d37 * d53;
11078 HEAPF32[i92 >> 2] = d38 * d33 + d54 * d45 + d53 * d41;
11079 HEAPF32[i91 >> 2] = d38 * d40 + d54 * d39 + d53 * d61;
11080 HEAPF32[i94 >> 2] = 0.0;
11081 HEAP32[i67 >> 2] = HEAP32[i68 >> 2];
11082 HEAP32[i67 + 4 >> 2] = HEAP32[i68 + 4 >> 2];
11083 HEAP32[i67 + 8 >> 2] = HEAP32[i68 + 8 >> 2];
11084 HEAP32[i67 + 12 >> 2] = HEAP32[i68 + 12 >> 2];
11085 HEAP32[i69 >> 2] = HEAP32[i70 >> 2];
11086 HEAP32[i69 + 4 >> 2] = HEAP32[i70 + 4 >> 2];
11087 HEAP32[i69 + 8 >> 2] = HEAP32[i70 + 8 >> 2];
11088 HEAP32[i69 + 12 >> 2] = HEAP32[i70 + 12 >> 2];
11089 HEAP32[i71 >> 2] = HEAP32[i72 >> 2];
11090 HEAP32[i71 + 4 >> 2] = HEAP32[i72 + 4 >> 2];
11091 HEAP32[i71 + 8 >> 2] = HEAP32[i72 + 8 >> 2];
11092 HEAP32[i71 + 12 >> 2] = HEAP32[i72 + 12 >> 2];
11093 HEAP32[i73 >> 2] = HEAP32[i74 >> 2];
11094 HEAP32[i73 + 4 >> 2] = HEAP32[i74 + 4 >> 2];
11095 HEAP32[i73 + 8 >> 2] = HEAP32[i74 + 8 >> 2];
11096 HEAP32[i73 + 12 >> 2] = HEAP32[i74 + 12 >> 2];
11097 } else {
11098 HEAP32[i8 >> 2] = HEAP32[i25 >> 2];
11099 HEAP32[i8 + 4 >> 2] = HEAP32[i25 + 4 >> 2];
11100 HEAP32[i8 + 8 >> 2] = HEAP32[i25 + 8 >> 2];
11101 HEAP32[i8 + 12 >> 2] = HEAP32[i25 + 12 >> 2];
11102 HEAP32[i23 >> 2] = HEAP32[i27 >> 2];
11103 HEAP32[i23 + 4 >> 2] = HEAP32[i27 + 4 >> 2];
11104 HEAP32[i23 + 8 >> 2] = HEAP32[i27 + 8 >> 2];
11105 HEAP32[i23 + 12 >> 2] = HEAP32[i27 + 12 >> 2];
11106 HEAP32[i29 >> 2] = HEAP32[i28 >> 2];
11107 HEAP32[i29 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
11108 HEAP32[i29 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
11109 HEAP32[i29 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
11110 HEAP32[i30 >> 2] = HEAP32[i65 >> 2];
11111 HEAP32[i30 + 4 >> 2] = HEAP32[i65 + 4 >> 2];
11112 HEAP32[i30 + 8 >> 2] = HEAP32[i65 + 8 >> 2];
11113 HEAP32[i30 + 12 >> 2] = HEAP32[i65 + 12 >> 2];
11114 d61 = -0.0 - d43;
11115 d53 = -0.0 - d62;
11116 d39 = -0.0 - d63;
11117 d54 = d55 * d53 + (d57 * d42 + d35 * d61) - d31 * d39;
11118 d40 = d57 * d39 + (d31 * d42 + d35 * d53) - d55 * d61;
11119 d38 = d31 * d61 + (d55 * d42 + d35 * d39) - d57 * d53;
11120 d41 = d35 * d42 - d57 * d61 - d31 * d53 - d55 * d39;
11121 d39 = d63 * d40 + (d43 * d41 + d42 * d54) - d62 * d38;
11122 d55 = d43 * d38 + (d42 * d40 + d62 * d41) - d63 * d54;
11123 d53 = d62 * d54 + (d63 * d41 + d42 * d38) - d43 * d40;
11124 d31 = d42 * d41 - d43 * d54 - d62 * d40 - d63 * d38;
11125 d38 = 2.0 / (d31 * d31 + (d53 * d53 + (d39 * d39 + d55 * d55)));
11126 d63 = d39 * d38;
11127 d40 = d55 * d38;
11128 d62 = d53 * d38;
11129 d38 = d31 * d63;
11130 d54 = d31 * d40;
11131 d43 = d31 * d62;
11132 d31 = d39 * d63;
11133 d63 = d39 * d40;
11134 d41 = d39 * d62;
11135 d39 = d55 * d40;
11136 d40 = d55 * d62;
11137 d55 = d53 * d62;
11138 d62 = 1.0 - (d39 + d55);
11139 d53 = d63 - d43;
11140 d42 = d41 + d54;
11141 d61 = d63 + d43;
11142 d43 = 1.0 - (d31 + d55);
11143 d55 = d40 - d38;
11144 d63 = d41 - d54;
11145 d54 = d40 + d38;
11146 d38 = 1.0 - (d31 + d39);
11147 d39 = +HEAPF32[i125 >> 2];
11148 d31 = +HEAPF32[i126 >> 2];
11149 d40 = +HEAPF32[i127 >> 2];
11150 d41 = +HEAPF32[i128 >> 2];
11151 d57 = +HEAPF32[i129 >> 2];
11152 d35 = +HEAPF32[i130 >> 2];
11153 d45 = +HEAPF32[i131 >> 2];
11154 d33 = +HEAPF32[i132 >> 2];
11155 d37 = +HEAPF32[i133 >> 2];
11156 HEAPF32[i134 >> 2] = d40 * d42 + (d31 * d53 + d39 * d62);
11157 HEAPF32[i135 >> 2] = d62 * d41 + d53 * d57 + d42 * d35;
11158 HEAPF32[i136 >> 2] = d62 * d45 + d53 * d33 + d42 * d37;
11159 HEAPF32[i137 >> 2] = 0.0;
11160 HEAPF32[i138 >> 2] = d40 * d55 + (d39 * d61 + d31 * d43);
11161 HEAPF32[i139 >> 2] = d61 * d41 + d43 * d57 + d55 * d35;
11162 HEAPF32[i140 >> 2] = d61 * d45 + d43 * d33 + d55 * d37;
11163 HEAPF32[i141 >> 2] = 0.0;
11164 HEAPF32[i142 >> 2] = d39 * d63 + d31 * d54 + d40 * d38;
11165 HEAPF32[i143 >> 2] = d63 * d41 + d54 * d57 + d38 * d35;
11166 HEAPF32[i144 >> 2] = d63 * d45 + d54 * d33 + d38 * d37;
11167 HEAPF32[i145 >> 2] = 0.0;
11168 }
11169 i112 = HEAP32[i14 >> 2] | 0;
11170 _memset(i88 | 0, -1 | 0, 16);
11171 HEAP32[i89 >> 2] = 3064;
11172 HEAP32[i87 >> 2] = i5;
11173 HEAP32[i90 >> 2] = HEAP32[i8 >> 2];
11174 HEAP32[i90 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
11175 HEAP32[i90 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
11176 HEAP32[i90 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
11177 HEAP32[i85 >> 2] = HEAP32[i23 >> 2];
11178 HEAP32[i85 + 4 >> 2] = HEAP32[i23 + 4 >> 2];
11179 HEAP32[i85 + 8 >> 2] = HEAP32[i23 + 8 >> 2];
11180 HEAP32[i85 + 12 >> 2] = HEAP32[i23 + 12 >> 2];
11181 HEAP32[i84 >> 2] = HEAP32[i29 >> 2];
11182 HEAP32[i84 + 4 >> 2] = HEAP32[i29 + 4 >> 2];
11183 HEAP32[i84 + 8 >> 2] = HEAP32[i29 + 8 >> 2];
11184 HEAP32[i84 + 12 >> 2] = HEAP32[i29 + 12 >> 2];
11185 HEAP32[i83 >> 2] = HEAP32[i30 >> 2];
11186 HEAP32[i83 + 4 >> 2] = HEAP32[i30 + 4 >> 2];
11187 HEAP32[i83 + 8 >> 2] = HEAP32[i30 + 8 >> 2];
11188 HEAP32[i83 + 12 >> 2] = HEAP32[i30 + 12 >> 2];
11189 HEAP32[i86 >> 2] = HEAP32[i67 >> 2];
11190 HEAP32[i86 + 4 >> 2] = HEAP32[i67 + 4 >> 2];
11191 HEAP32[i86 + 8 >> 2] = HEAP32[i67 + 8 >> 2];
11192 HEAP32[i86 + 12 >> 2] = HEAP32[i67 + 12 >> 2];
11193 HEAP32[i82 >> 2] = HEAP32[i69 >> 2];
11194 HEAP32[i82 + 4 >> 2] = HEAP32[i69 + 4 >> 2];
11195 HEAP32[i82 + 8 >> 2] = HEAP32[i69 + 8 >> 2];
11196 HEAP32[i82 + 12 >> 2] = HEAP32[i69 + 12 >> 2];
11197 HEAP32[i104 >> 2] = HEAP32[i71 >> 2];
11198 HEAP32[i104 + 4 >> 2] = HEAP32[i71 + 4 >> 2];
11199 HEAP32[i104 + 8 >> 2] = HEAP32[i71 + 8 >> 2];
11200 HEAP32[i104 + 12 >> 2] = HEAP32[i71 + 12 >> 2];
11201 HEAP32[i95 >> 2] = HEAP32[i73 >> 2];
11202 HEAP32[i95 + 4 >> 2] = HEAP32[i73 + 4 >> 2];
11203 HEAP32[i95 + 8 >> 2] = HEAP32[i73 + 8 >> 2];
11204 HEAP32[i95 + 12 >> 2] = HEAP32[i73 + 12 >> 2];
11205 HEAP32[i105 >> 2] = HEAP32[i20 >> 2];
11206 HEAP32[i105 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
11207 HEAP32[i105 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
11208 HEAP32[i105 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
11209 HEAP32[i111 >> 2] = HEAP32[i116 >> 2];
11210 HEAP32[i111 + 4 >> 2] = HEAP32[i116 + 4 >> 2];
11211 HEAP32[i111 + 8 >> 2] = HEAP32[i116 + 8 >> 2];
11212 HEAP32[i111 + 12 >> 2] = HEAP32[i116 + 12 >> 2];
11213 HEAP32[i117 >> 2] = HEAP32[i118 >> 2];
11214 HEAP32[i117 + 4 >> 2] = HEAP32[i118 + 4 >> 2];
11215 HEAP32[i117 + 8 >> 2] = HEAP32[i118 + 8 >> 2];
11216 HEAP32[i117 + 12 >> 2] = HEAP32[i118 + 12 >> 2];
11217 HEAP32[i119 >> 2] = HEAP32[i120 >> 2];
11218 HEAP32[i119 + 4 >> 2] = HEAP32[i120 + 4 >> 2];
11219 HEAP32[i119 + 8 >> 2] = HEAP32[i120 + 8 >> 2];
11220 HEAP32[i119 + 12 >> 2] = HEAP32[i120 + 12 >> 2];
11221 HEAP8[i121] = i122;
11222 HEAP32[i123 >> 2] = i112;
11223 __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i10, i9, i124, i112, 0);
11224 i147 = HEAP32[i4 >> 2] | 0;
11225 i146 = i146 + 1 | 0;
11226 } while ((i146 | 0) < (i147 | 0));
11227 }
11228 } while (0);
11229 if ((HEAP8[i1 + 16 | 0] | 0) == 0) {
11230 STACKTOP = i6;
11231 return;
11232 }
11233 i1 = HEAP32[i21 >> 2] | 0;
11234 if ((HEAP32[i1 + 1116 >> 2] | 0) == 0) {
11235 STACKTOP = i6;
11236 return;
11237 }
11238 if ((HEAP32[i1 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
11239 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i5 + 8 | 0, i5 + 72 | 0);
11240 STACKTOP = i6;
11241 return;
11242 } else {
11243 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i5 + 72 | 0, i5 + 8 | 0);
11244 STACKTOP = i6;
11245 return;
11246 }
11247 }
11248 function __ZN20btConvexHullInternal24findEdgeForCoplanarFacesEPNS_6VertexES1_RPNS_4EdgeES4_S1_S1_(i1, i2, i3, i4, i5, i6, i7) {
11249 i1 = i1 | 0;
11250 i2 = i2 | 0;
11251 i3 = i3 | 0;
11252 i4 = i4 | 0;
11253 i5 = i5 | 0;
11254 i6 = i6 | 0;
11255 i7 = i7 | 0;
11256 var i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0, i87 = 0, i88 = 0, i89 = 0, i90 = 0, i91 = 0, i92 = 0, i93 = 0, i94 = 0, i95 = 0, i96 = 0, i97 = 0, i98 = 0, i99 = 0, i100 = 0, i101 = 0, i102 = 0, i103 = 0, i104 = 0, i105 = 0, i106 = 0, i107 = 0, i108 = 0, i109 = 0, i110 = 0, i111 = 0, i112 = 0, i113 = 0, i114 = 0, i115 = 0, i116 = 0, i117 = 0, i118 = 0;
11257 i8 = STACKTOP;
11258 STACKTOP = STACKTOP + 192 | 0;
11259 i9 = i8 | 0;
11260 i10 = i8 + 24 | 0;
11261 i11 = i8 + 48 | 0;
11262 i12 = i8 + 72 | 0;
11263 i13 = i8 + 96 | 0;
11264 i14 = i8 + 120 | 0;
11265 i15 = i8 + 144 | 0;
11266 i16 = i8 + 168 | 0;
11267 i17 = HEAP32[i4 >> 2] | 0;
11268 i18 = HEAP32[i5 >> 2] | 0;
11269 i19 = (i17 | 0) != 0;
11270 if (i19) {
11271 i20 = HEAP32[i17 + 12 >> 2] | 0;
11272 } else {
11273 i20 = i2;
11274 }
11275 i21 = HEAP32[i20 + 88 >> 2] | 0;
11276 i22 = HEAP32[i20 + 92 >> 2] | 0;
11277 i23 = HEAP32[i20 + 96 >> 2] | 0;
11278 if ((i18 | 0) == 0) {
11279 i24 = i3;
11280 } else {
11281 i24 = HEAP32[i18 + 12 >> 2] | 0;
11282 }
11283 i20 = HEAP32[i24 + 88 >> 2] | 0;
11284 i25 = HEAP32[i24 + 92 >> 2] | 0;
11285 i26 = HEAP32[i24 + 96 >> 2] | 0;
11286 i24 = HEAP32[i2 + 88 >> 2] | 0;
11287 i27 = (HEAP32[i3 + 88 >> 2] | 0) - i24 | 0;
11288 i28 = HEAP32[i2 + 92 >> 2] | 0;
11289 i29 = (HEAP32[i3 + 92 >> 2] | 0) - i28 | 0;
11290 i30 = HEAP32[i2 + 96 >> 2] | 0;
11291 i2 = (HEAP32[i3 + 96 >> 2] | 0) - i30 | 0;
11292 i3 = HEAP32[(i19 ? i17 : i18) + 12 >> 2] | 0;
11293 i19 = (HEAP32[i3 + 88 >> 2] | 0) - i24 | 0;
11294 i31 = (HEAP32[i3 + 92 >> 2] | 0) - i28 | 0;
11295 i32 = (HEAP32[i3 + 96 >> 2] | 0) - i30 | 0;
11296 i3 = Math_imul(i31, i2) | 0;
11297 i33 = i3 - (Math_imul(i32, i29) | 0) | 0;
11298 i3 = i33;
11299 i34 = (i33 | 0) < 0 ? -1 : 0;
11300 i33 = Math_imul(i32, i27) | 0;
11301 i32 = i33 - (Math_imul(i19, i2) | 0) | 0;
11302 i33 = i32;
11303 i35 = (i32 | 0) < 0 ? -1 : 0;
11304 i32 = Math_imul(i19, i29) | 0;
11305 i19 = i32 - (Math_imul(i31, i27) | 0) | 0;
11306 i31 = i19;
11307 i32 = (i19 | 0) < 0 ? -1 : 0;
11308 i19 = ___muldi3(i3, i34, i24, (i24 | 0) < 0 ? -1 : 0) | 0;
11309 i24 = tempRet0;
11310 i36 = ___muldi3(i33, i35, i28, (i28 | 0) < 0 ? -1 : 0) | 0;
11311 i28 = tempRet0;
11312 i37 = ___muldi3(i31, i32, i30, (i30 | 0) < 0 ? -1 : 0) | 0;
11313 i30 = _i64Add(i19, i24, i37, tempRet0) | 0;
11314 i37 = _i64Add(i30, tempRet0, i36, i28) | 0;
11315 i28 = tempRet0;
11316 i36 = i29;
11317 i30 = (i29 | 0) < 0 ? -1 : 0;
11318 i24 = ___muldi3(i31, i32, i36, i30) | 0;
11319 i19 = tempRet0;
11320 i38 = i2;
11321 i39 = (i2 | 0) < 0 ? -1 : 0;
11322 i40 = ___muldi3(i33, i35, i38, i39) | 0;
11323 i41 = _i64Subtract(i24, i19, i40, tempRet0) | 0;
11324 i40 = tempRet0;
11325 i19 = ___muldi3(i3, i34, i38, i39) | 0;
11326 i39 = tempRet0;
11327 i38 = i27;
11328 i24 = (i27 | 0) < 0 ? -1 : 0;
11329 i42 = ___muldi3(i31, i32, i38, i24) | 0;
11330 i43 = _i64Subtract(i19, i39, i42, tempRet0) | 0;
11331 i42 = tempRet0;
11332 i39 = ___muldi3(i33, i35, i38, i24) | 0;
11333 i24 = tempRet0;
11334 i38 = ___muldi3(i3, i34, i36, i30) | 0;
11335 i30 = _i64Subtract(i39, i24, i38, tempRet0) | 0;
11336 i38 = tempRet0;
11337 i24 = ___muldi3(i41, i40, i21, (i21 | 0) < 0 ? -1 : 0) | 0;
11338 i39 = tempRet0;
11339 i36 = ___muldi3(i43, i42, i22, (i22 | 0) < 0 ? -1 : 0) | 0;
11340 i19 = _i64Add(i36, tempRet0, i24, i39) | 0;
11341 i39 = tempRet0;
11342 i24 = ___muldi3(i30, i38, i23, (i23 | 0) < 0 ? -1 : 0) | 0;
11343 i36 = _i64Add(i19, i39, i24, tempRet0) | 0;
11344 i24 = tempRet0;
11345 do {
11346 if ((i17 | 0) == 0) {
11347 i44 = i24;
11348 i45 = i36;
11349 i46 = i21;
11350 i47 = i22;
11351 i48 = i23;
11352 i49 = i18;
11353 } else {
11354 if ((HEAP32[i17 + 12 >> 2] | 0) == (i6 | 0)) {
11355 i44 = i24;
11356 i45 = i36;
11357 i46 = i21;
11358 i47 = i22;
11359 i48 = i23;
11360 i49 = i18;
11361 break;
11362 }
11363 i39 = i1 + 100 | 0;
11364 i19 = i23;
11365 i50 = i22;
11366 i51 = i21;
11367 i52 = i24;
11368 i53 = i36;
11369 i54 = i17;
11370 while (1) {
11371 i55 = HEAP32[(HEAP32[i54 + 8 >> 2] | 0) + 4 >> 2] | 0;
11372 i56 = i55 + 12 | 0;
11373 i57 = HEAP32[i56 >> 2] | 0;
11374 i58 = HEAP32[i57 + 88 >> 2] | 0;
11375 i59 = i58;
11376 i60 = (i58 | 0) < 0 ? -1 : 0;
11377 i58 = ___muldi3(i59, i60, i3, i34) | 0;
11378 i61 = tempRet0;
11379 i62 = HEAP32[i57 + 92 >> 2] | 0;
11380 i63 = i62;
11381 i64 = (i62 | 0) < 0 ? -1 : 0;
11382 i62 = ___muldi3(i63, i64, i33, i35) | 0;
11383 i65 = _i64Add(i62, tempRet0, i58, i61) | 0;
11384 i61 = tempRet0;
11385 i58 = HEAP32[i57 + 96 >> 2] | 0;
11386 i57 = i58;
11387 i62 = (i58 | 0) < 0 ? -1 : 0;
11388 i58 = ___muldi3(i57, i62, i31, i32) | 0;
11389 i66 = _i64Add(i65, i61, i58, tempRet0) | 0;
11390 i58 = tempRet0;
11391 if ((i58 | 0) < (i28 | 0) | (i58 | 0) == (i28 | 0) & i66 >>> 0 < i37 >>> 0) {
11392 i67 = i19;
11393 i68 = i50;
11394 i69 = i51;
11395 i70 = i52;
11396 i71 = i53;
11397 break;
11398 }
11399 if ((HEAP32[i55 + 20 >> 2] | 0) == (HEAP32[i39 >> 2] | 0)) {
11400 i67 = i19;
11401 i68 = i50;
11402 i69 = i51;
11403 i70 = i52;
11404 i71 = i53;
11405 break;
11406 }
11407 i66 = ___muldi3(i59, i60, i41, i40) | 0;
11408 i60 = tempRet0;
11409 i59 = ___muldi3(i63, i64, i43, i42) | 0;
11410 i64 = _i64Add(i59, tempRet0, i66, i60) | 0;
11411 i60 = tempRet0;
11412 i66 = ___muldi3(i57, i62, i30, i38) | 0;
11413 i62 = _i64Add(i64, i60, i66, tempRet0) | 0;
11414 i66 = tempRet0;
11415 if (!((i66 | 0) > (i52 | 0) | (i66 | 0) == (i52 | 0) & i62 >>> 0 > i53 >>> 0)) {
11416 i67 = i19;
11417 i68 = i50;
11418 i69 = i51;
11419 i70 = i52;
11420 i71 = i53;
11421 break;
11422 }
11423 HEAP32[i4 >> 2] = i55;
11424 i60 = HEAP32[i56 >> 2] | 0;
11425 i56 = HEAP32[i60 + 88 >> 2] | 0;
11426 i64 = HEAP32[i60 + 92 >> 2] | 0;
11427 i57 = HEAP32[i60 + 96 >> 2] | 0;
11428 if ((i60 | 0) == (i6 | 0)) {
11429 i67 = i57;
11430 i68 = i64;
11431 i69 = i56;
11432 i70 = i66;
11433 i71 = i62;
11434 break;
11435 } else {
11436 i19 = i57;
11437 i50 = i64;
11438 i51 = i56;
11439 i52 = i66;
11440 i53 = i62;
11441 i54 = i55;
11442 }
11443 }
11444 i44 = i70;
11445 i45 = i71;
11446 i46 = i69;
11447 i47 = i68;
11448 i48 = i67;
11449 i49 = HEAP32[i5 >> 2] | 0;
11450 }
11451 } while (0);
11452 i67 = ___muldi3(i41, i40, i20, (i20 | 0) < 0 ? -1 : 0) | 0;
11453 i68 = tempRet0;
11454 i69 = ___muldi3(i43, i42, i25, (i25 | 0) < 0 ? -1 : 0) | 0;
11455 i71 = _i64Add(i69, tempRet0, i67, i68) | 0;
11456 i68 = tempRet0;
11457 i67 = ___muldi3(i30, i38, i26, (i26 | 0) < 0 ? -1 : 0) | 0;
11458 i69 = _i64Add(i71, i68, i67, tempRet0) | 0;
11459 i67 = tempRet0;
11460 L1159 : do {
11461 if ((i49 | 0) == 0) {
11462 i72 = i67;
11463 i73 = i69;
11464 i74 = i20;
11465 i75 = i25;
11466 i76 = i26;
11467 i77 = 0;
11468 } else {
11469 if ((HEAP32[i49 + 12 >> 2] | 0) == (i7 | 0)) {
11470 i72 = i67;
11471 i73 = i69;
11472 i74 = i20;
11473 i75 = i25;
11474 i76 = i26;
11475 i77 = i49;
11476 break;
11477 }
11478 i68 = i1 + 100 | 0;
11479 i71 = i26;
11480 i70 = i25;
11481 i36 = i20;
11482 i24 = i67;
11483 i21 = i69;
11484 i22 = i49;
11485 while (1) {
11486 i23 = HEAP32[HEAP32[i22 + 8 >> 2] >> 2] | 0;
11487 i54 = i23 + 12 | 0;
11488 i53 = HEAP32[i54 >> 2] | 0;
11489 i52 = HEAP32[i53 + 88 >> 2] | 0;
11490 i51 = i52;
11491 i50 = (i52 | 0) < 0 ? -1 : 0;
11492 i52 = ___muldi3(i51, i50, i3, i34) | 0;
11493 i19 = tempRet0;
11494 i39 = HEAP32[i53 + 92 >> 2] | 0;
11495 i55 = i39;
11496 i62 = (i39 | 0) < 0 ? -1 : 0;
11497 i39 = ___muldi3(i55, i62, i33, i35) | 0;
11498 i66 = _i64Add(i39, tempRet0, i52, i19) | 0;
11499 i19 = tempRet0;
11500 i52 = HEAP32[i53 + 96 >> 2] | 0;
11501 i53 = i52;
11502 i39 = (i52 | 0) < 0 ? -1 : 0;
11503 i52 = ___muldi3(i53, i39, i31, i32) | 0;
11504 i56 = _i64Add(i66, i19, i52, tempRet0) | 0;
11505 i52 = tempRet0;
11506 if ((i52 | 0) < (i28 | 0) | (i52 | 0) == (i28 | 0) & i56 >>> 0 < i37 >>> 0) {
11507 i72 = i24;
11508 i73 = i21;
11509 i74 = i36;
11510 i75 = i70;
11511 i76 = i71;
11512 i77 = i22;
11513 break L1159;
11514 }
11515 if ((HEAP32[i23 + 20 >> 2] | 0) == (HEAP32[i68 >> 2] | 0)) {
11516 i72 = i24;
11517 i73 = i21;
11518 i74 = i36;
11519 i75 = i70;
11520 i76 = i71;
11521 i77 = i22;
11522 break L1159;
11523 }
11524 i56 = ___muldi3(i51, i50, i41, i40) | 0;
11525 i50 = tempRet0;
11526 i51 = ___muldi3(i55, i62, i43, i42) | 0;
11527 i62 = _i64Add(i51, tempRet0, i56, i50) | 0;
11528 i50 = tempRet0;
11529 i56 = ___muldi3(i53, i39, i30, i38) | 0;
11530 i39 = _i64Add(i62, i50, i56, tempRet0) | 0;
11531 i56 = tempRet0;
11532 if (!((i56 | 0) > (i24 | 0) | (i56 | 0) == (i24 | 0) & i39 >>> 0 > i21 >>> 0)) {
11533 i72 = i24;
11534 i73 = i21;
11535 i74 = i36;
11536 i75 = i70;
11537 i76 = i71;
11538 i77 = i22;
11539 break L1159;
11540 }
11541 HEAP32[i5 >> 2] = i23;
11542 i50 = HEAP32[i54 >> 2] | 0;
11543 i54 = HEAP32[i50 + 88 >> 2] | 0;
11544 i62 = HEAP32[i50 + 92 >> 2] | 0;
11545 i53 = HEAP32[i50 + 96 >> 2] | 0;
11546 if ((i50 | 0) == (i7 | 0)) {
11547 i72 = i56;
11548 i73 = i39;
11549 i74 = i54;
11550 i75 = i62;
11551 i76 = i53;
11552 i77 = i23;
11553 break;
11554 } else {
11555 i71 = i53;
11556 i70 = i62;
11557 i36 = i54;
11558 i24 = i56;
11559 i21 = i39;
11560 i22 = i23;
11561 }
11562 }
11563 }
11564 } while (0);
11565 i37 = _i64Subtract(i73, i72, i45, i44) | 0;
11566 i44 = tempRet0;
11567 i45 = 0;
11568 if ((i44 | 0) > (i45 | 0) | (i44 | 0) == (i45 | 0) & i37 >>> 0 > 0 >>> 0) {
11569 i45 = i1 + 100 | 0;
11570 i72 = _i64Subtract(0, 0, i31, i32) | 0;
11571 i73 = tempRet0;
11572 i28 = i11 + 16 | 0;
11573 i49 = i11 | 0;
11574 i69 = i11 + 8 | 0;
11575 i67 = i12 + 16 | 0;
11576 i20 = i12 | 0;
11577 i25 = i12 + 8 | 0;
11578 i26 = i9 + 16 | 0;
11579 i22 = i9 | 0;
11580 i21 = i9 + 8 | 0;
11581 i24 = i10 + 16 | 0;
11582 i36 = i10 | 0;
11583 i70 = i10 + 8 | 0;
11584 i71 = i44;
11585 i68 = i37;
11586 i23 = i74;
11587 i39 = i75;
11588 i56 = i76;
11589 i54 = i46;
11590 i62 = i47;
11591 i53 = i48;
11592 L1170 : while (1) {
11593 i50 = i71;
11594 i51 = i68;
11595 i55 = i23;
11596 i52 = i39;
11597 i19 = i56;
11598 L1172 : while (1) {
11599 i66 = Math_imul(i55 - i54 | 0, i27) | 0;
11600 i64 = Math_imul(i52 - i62 | 0, i29) | 0;
11601 i57 = i64 + (Math_imul(i19 - i53 | 0, i2) | 0) + i66 | 0;
11602 i66 = i57;
11603 i64 = (i57 | 0) < 0 ? -1 : 0;
11604 i78 = HEAP32[i4 >> 2] | 0;
11605 do {
11606 if ((i78 | 0) != 0) {
11607 if ((HEAP32[i78 + 12 >> 2] | 0) == (i6 | 0)) {
11608 break;
11609 }
11610 i79 = HEAP32[(HEAP32[i78 >> 2] | 0) + 8 >> 2] | 0;
11611 if ((HEAP32[i79 + 20 >> 2] | 0) <= (HEAP32[i45 >> 2] | 0)) {
11612 break;
11613 }
11614 i60 = HEAP32[i79 + 12 >> 2] | 0;
11615 i80 = HEAP32[i60 + 88 >> 2] | 0;
11616 i59 = i80 - i54 | 0;
11617 i81 = HEAP32[i60 + 92 >> 2] | 0;
11618 i63 = i81 - i62 | 0;
11619 i82 = HEAP32[i60 + 96 >> 2] | 0;
11620 i60 = i82 - i53 | 0;
11621 i58 = ___muldi3(i59, (i59 | 0) < 0 ? -1 : 0, i41, i40) | 0;
11622 i61 = tempRet0;
11623 i65 = ___muldi3(i63, (i63 | 0) < 0 ? -1 : 0, i43, i42) | 0;
11624 i83 = _i64Add(i65, tempRet0, i58, i61) | 0;
11625 i61 = tempRet0;
11626 i58 = ___muldi3(i60, (i60 | 0) < 0 ? -1 : 0, i30, i38) | 0;
11627 i65 = _i64Add(i83, i61, i58, tempRet0) | 0;
11628 i58 = tempRet0;
11629 i61 = Math_imul(i59, i27) | 0;
11630 i59 = (Math_imul(i63, i29) | 0) + i61 | 0;
11631 i61 = i59 + (Math_imul(i60, i2) | 0) | 0;
11632 i60 = i61;
11633 i59 = (i61 | 0) < 0 ? -1 : 0;
11634 if ((i65 | 0) == 0 & (i58 | 0) == 0) {
11635 if ((i61 | 0) < 0) {
11636 break L1172;
11637 } else {
11638 break;
11639 }
11640 }
11641 i63 = 0;
11642 if (!((i58 | 0) < (i63 | 0) | (i58 | 0) == (i63 | 0) & i65 >>> 0 < 0 >>> 0)) {
11643 break;
11644 }
11645 do {
11646 if ((i61 | 0) > 0) {
11647 HEAP32[i26 >> 2] = 1;
11648 HEAP32[i22 >> 2] = i60;
11649 HEAP32[i22 + 4 >> 2] = i59;
11650 i84 = 1;
11651 } else {
11652 if ((i61 | 0) < 0) {
11653 HEAP32[i26 >> 2] = -1;
11654 i63 = _i64Subtract(0, 0, i60, i59) | 0;
11655 HEAP32[i22 >> 2] = i63;
11656 HEAP32[i22 + 4 >> 2] = tempRet0;
11657 i84 = -1;
11658 break;
11659 } else {
11660 HEAP32[i26 >> 2] = 0;
11661 HEAP32[i22 >> 2] = 0;
11662 HEAP32[i22 + 4 >> 2] = 0;
11663 i84 = 0;
11664 break;
11665 }
11666 }
11667 } while (0);
11668 i59 = 0;
11669 if ((i58 | 0) > (i59 | 0) | (i58 | 0) == (i59 | 0) & i65 >>> 0 > 0 >>> 0) {
11670 i85 = i58;
11671 i86 = i65;
11672 } else {
11673 HEAP32[i26 >> 2] = -i84;
11674 i59 = _i64Subtract(0, 0, i65, i58) | 0;
11675 i85 = tempRet0;
11676 i86 = i59;
11677 }
11678 HEAP32[i21 >> 2] = i86;
11679 HEAP32[i21 + 4 >> 2] = i85;
11680 do {
11681 if ((i57 | 0) > 0) {
11682 HEAP32[i24 >> 2] = 1;
11683 HEAP32[i36 >> 2] = i66;
11684 HEAP32[i36 + 4 >> 2] = i64;
11685 i87 = 1;
11686 } else {
11687 if ((i57 | 0) < 0) {
11688 HEAP32[i24 >> 2] = -1;
11689 i59 = _i64Subtract(0, 0, i66, i64) | 0;
11690 HEAP32[i36 >> 2] = i59;
11691 HEAP32[i36 + 4 >> 2] = tempRet0;
11692 i87 = -1;
11693 break;
11694 } else {
11695 HEAP32[i24 >> 2] = 0;
11696 HEAP32[i36 >> 2] = 0;
11697 HEAP32[i36 + 4 >> 2] = 0;
11698 i87 = 0;
11699 break;
11700 }
11701 }
11702 } while (0);
11703 i58 = 0;
11704 do {
11705 if ((i50 | 0) > (i58 | 0) | (i50 | 0) == (i58 | 0) & i51 >>> 0 > 0 >>> 0) {
11706 HEAP32[i70 >> 2] = i51;
11707 HEAP32[i70 + 4 >> 2] = i50;
11708 } else {
11709 i65 = 0;
11710 if ((i50 | 0) < (i65 | 0) | (i50 | 0) == (i65 | 0) & i51 >>> 0 < 0 >>> 0) {
11711 HEAP32[i24 >> 2] = -i87;
11712 i65 = _i64Subtract(0, 0, i51, i50) | 0;
11713 HEAP32[i70 >> 2] = i65;
11714 HEAP32[i70 + 4 >> 2] = tempRet0;
11715 break;
11716 } else {
11717 HEAP32[i70 >> 2] = 0;
11718 HEAP32[i70 + 4 >> 2] = 0;
11719 break;
11720 }
11721 }
11722 } while (0);
11723 if ((__ZNK20btConvexHullInternal10Rational647compareERKS0_(i9, i10) | 0) > -1) {
11724 break L1172;
11725 }
11726 }
11727 } while (0);
11728 i58 = HEAP32[i5 >> 2] | 0;
11729 if ((i58 | 0) == 0) {
11730 i88 = 1019;
11731 break L1170;
11732 }
11733 if ((HEAP32[i58 + 12 >> 2] | 0) == (i7 | 0)) {
11734 i88 = 1008;
11735 break L1170;
11736 }
11737 i65 = HEAP32[HEAP32[i58 + 8 >> 2] >> 2] | 0;
11738 if ((HEAP32[i65 + 20 >> 2] | 0) <= (HEAP32[i45 >> 2] | 0)) {
11739 i88 = 1010;
11740 break L1170;
11741 }
11742 i58 = i65 + 12 | 0;
11743 i59 = HEAP32[i58 >> 2] | 0;
11744 i60 = HEAP32[i59 + 88 >> 2] | 0;
11745 i61 = i60 - i55 | 0;
11746 i63 = HEAP32[i59 + 92 >> 2] | 0;
11747 i83 = i63 - i52 | 0;
11748 i89 = HEAP32[i59 + 96 >> 2] | 0;
11749 i59 = i89 - i19 | 0;
11750 i90 = i61;
11751 i91 = (i61 | 0) < 0 ? -1 : 0;
11752 i92 = ___muldi3(i90, i91, i3, i34) | 0;
11753 i93 = tempRet0;
11754 i94 = i83;
11755 i95 = (i83 | 0) < 0 ? -1 : 0;
11756 i96 = ___muldi3(i94, i95, i33, i35) | 0;
11757 i97 = _i64Add(i96, tempRet0, i92, i93) | 0;
11758 i93 = tempRet0;
11759 i92 = i59;
11760 i96 = (i59 | 0) < 0 ? -1 : 0;
11761 i98 = ___muldi3(i92, i96, i72, i73) | 0;
11762 if (!((i97 | 0) == (i98 | 0) & (i93 | 0) == (tempRet0 | 0))) {
11763 i88 = 1004;
11764 break L1170;
11765 }
11766 i93 = ___muldi3(i90, i91, i41, i40) | 0;
11767 i91 = tempRet0;
11768 i90 = ___muldi3(i94, i95, i43, i42) | 0;
11769 i95 = _i64Add(i90, tempRet0, i93, i91) | 0;
11770 i91 = tempRet0;
11771 i93 = ___muldi3(i92, i96, i30, i38) | 0;
11772 i96 = _i64Add(i95, i91, i93, tempRet0) | 0;
11773 i93 = tempRet0;
11774 i91 = Math_imul(i61, i27) | 0;
11775 i61 = (Math_imul(i83, i29) | 0) + i91 | 0;
11776 i91 = i61 + (Math_imul(i59, i2) | 0) | 0;
11777 i59 = i91;
11778 i61 = (i91 | 0) < 0 ? -1 : 0;
11779 i83 = i60 - i54 | 0;
11780 i60 = i63 - i62 | 0;
11781 i63 = i89 - i53 | 0;
11782 i89 = ___muldi3(i83, (i83 | 0) < 0 ? -1 : 0, i41, i40) | 0;
11783 i83 = tempRet0;
11784 i95 = ___muldi3(i60, (i60 | 0) < 0 ? -1 : 0, i43, i42) | 0;
11785 i60 = _i64Add(i95, tempRet0, i89, i83) | 0;
11786 i83 = tempRet0;
11787 i89 = ___muldi3(i63, (i63 | 0) < 0 ? -1 : 0, i30, i38) | 0;
11788 i63 = _i64Add(i60, i83, i89, tempRet0) | 0;
11789 i89 = tempRet0;
11790 i83 = 0;
11791 if (!((i89 | 0) > (i83 | 0) | (i89 | 0) == (i83 | 0) & i63 >>> 0 > 0 >>> 0)) {
11792 i88 = 1005;
11793 break L1170;
11794 }
11795 if ((i96 | 0) == 0 & (i93 | 0) == 0) {
11796 if ((i91 | 0) >= 0) {
11797 i88 = 1011;
11798 break L1170;
11799 }
11800 } else {
11801 i83 = 0;
11802 if (!((i93 | 0) < (i83 | 0) | (i93 | 0) == (i83 | 0) & i96 >>> 0 < 0 >>> 0)) {
11803 i88 = 1009;
11804 break L1170;
11805 }
11806 do {
11807 if ((i91 | 0) > 0) {
11808 HEAP32[i28 >> 2] = 1;
11809 HEAP32[i49 >> 2] = i59;
11810 HEAP32[i49 + 4 >> 2] = i61;
11811 i99 = 1;
11812 } else {
11813 if ((i91 | 0) < 0) {
11814 HEAP32[i28 >> 2] = -1;
11815 i83 = _i64Subtract(0, 0, i59, i61) | 0;
11816 HEAP32[i49 >> 2] = i83;
11817 HEAP32[i49 + 4 >> 2] = tempRet0;
11818 i99 = -1;
11819 break;
11820 } else {
11821 HEAP32[i28 >> 2] = 0;
11822 HEAP32[i49 >> 2] = 0;
11823 HEAP32[i49 + 4 >> 2] = 0;
11824 i99 = 0;
11825 break;
11826 }
11827 }
11828 } while (0);
11829 i61 = 0;
11830 if ((i93 | 0) > (i61 | 0) | (i93 | 0) == (i61 | 0) & i96 >>> 0 > 0 >>> 0) {
11831 i100 = i93;
11832 i101 = i96;
11833 } else {
11834 HEAP32[i28 >> 2] = -i99;
11835 i61 = _i64Subtract(0, 0, i96, i93) | 0;
11836 i100 = tempRet0;
11837 i101 = i61;
11838 }
11839 HEAP32[i69 >> 2] = i101;
11840 HEAP32[i69 + 4 >> 2] = i100;
11841 do {
11842 if ((i57 | 0) > 0) {
11843 HEAP32[i67 >> 2] = 1;
11844 HEAP32[i20 >> 2] = i66;
11845 HEAP32[i20 + 4 >> 2] = i64;
11846 i102 = 1;
11847 } else {
11848 if ((i57 | 0) < 0) {
11849 HEAP32[i67 >> 2] = -1;
11850 i61 = _i64Subtract(0, 0, i66, i64) | 0;
11851 HEAP32[i20 >> 2] = i61;
11852 HEAP32[i20 + 4 >> 2] = tempRet0;
11853 i102 = -1;
11854 break;
11855 } else {
11856 HEAP32[i67 >> 2] = 0;
11857 HEAP32[i20 >> 2] = 0;
11858 HEAP32[i20 + 4 >> 2] = 0;
11859 i102 = 0;
11860 break;
11861 }
11862 }
11863 } while (0);
11864 i64 = 0;
11865 do {
11866 if ((i50 | 0) > (i64 | 0) | (i50 | 0) == (i64 | 0) & i51 >>> 0 > 0 >>> 0) {
11867 HEAP32[i25 >> 2] = i51;
11868 HEAP32[i25 + 4 >> 2] = i50;
11869 } else {
11870 i66 = 0;
11871 if ((i50 | 0) < (i66 | 0) | (i50 | 0) == (i66 | 0) & i51 >>> 0 < 0 >>> 0) {
11872 HEAP32[i67 >> 2] = -i102;
11873 i66 = _i64Subtract(0, 0, i51, i50) | 0;
11874 HEAP32[i25 >> 2] = i66;
11875 HEAP32[i25 + 4 >> 2] = tempRet0;
11876 break;
11877 } else {
11878 HEAP32[i25 >> 2] = 0;
11879 HEAP32[i25 + 4 >> 2] = 0;
11880 break;
11881 }
11882 }
11883 } while (0);
11884 if ((__ZNK20btConvexHullInternal10Rational647compareERKS0_(i11, i12) | 0) <= 0) {
11885 i88 = 1006;
11886 break L1170;
11887 }
11888 }
11889 HEAP32[i5 >> 2] = i65;
11890 i64 = HEAP32[i58 >> 2] | 0;
11891 i50 = i89;
11892 i51 = i63;
11893 i55 = HEAP32[i64 + 88 >> 2] | 0;
11894 i52 = HEAP32[i64 + 92 >> 2] | 0;
11895 i19 = HEAP32[i64 + 96 >> 2] | 0;
11896 }
11897 i51 = i55 - i80 | 0;
11898 i50 = i52 - i81 | 0;
11899 i64 = i19 - i82 | 0;
11900 i66 = ___muldi3(i51, (i51 | 0) < 0 ? -1 : 0, i41, i40) | 0;
11901 i51 = tempRet0;
11902 i57 = ___muldi3(i50, (i50 | 0) < 0 ? -1 : 0, i43, i42) | 0;
11903 i50 = _i64Add(i57, tempRet0, i66, i51) | 0;
11904 i51 = tempRet0;
11905 i66 = ___muldi3(i64, (i64 | 0) < 0 ? -1 : 0, i30, i38) | 0;
11906 i64 = _i64Add(i50, i51, i66, tempRet0) | 0;
11907 HEAP32[i4 >> 2] = (i78 | 0) == (i17 | 0) ? 0 : i79;
11908 i71 = tempRet0;
11909 i68 = i64;
11910 i23 = i55;
11911 i39 = i52;
11912 i56 = i19;
11913 i54 = i80;
11914 i62 = i81;
11915 i53 = i82;
11916 }
11917 if ((i88 | 0) == 1004) {
11918 STACKTOP = i8;
11919 return;
11920 } else if ((i88 | 0) == 1005) {
11921 STACKTOP = i8;
11922 return;
11923 } else if ((i88 | 0) == 1006) {
11924 STACKTOP = i8;
11925 return;
11926 } else if ((i88 | 0) == 1008) {
11927 STACKTOP = i8;
11928 return;
11929 } else if ((i88 | 0) == 1009) {
11930 STACKTOP = i8;
11931 return;
11932 } else if ((i88 | 0) == 1010) {
11933 STACKTOP = i8;
11934 return;
11935 } else if ((i88 | 0) == 1011) {
11936 STACKTOP = i8;
11937 return;
11938 } else if ((i88 | 0) == 1019) {
11939 STACKTOP = i8;
11940 return;
11941 }
11942 }
11943 i82 = 0;
11944 if (!((i44 | 0) < (i82 | 0) | (i44 | 0) == (i82 | 0) & i37 >>> 0 < 0 >>> 0)) {
11945 STACKTOP = i8;
11946 return;
11947 }
11948 i82 = i1 + 100 | 0;
11949 i1 = _i64Subtract(0, 0, i31, i32) | 0;
11950 i32 = tempRet0;
11951 i31 = i15 + 16 | 0;
11952 i53 = i15 | 0;
11953 i81 = i15 + 8 | 0;
11954 i62 = i16 + 16 | 0;
11955 i80 = i16 | 0;
11956 i54 = i16 + 8 | 0;
11957 i56 = i13 + 16 | 0;
11958 i39 = i13 | 0;
11959 i23 = i13 + 8 | 0;
11960 i68 = i14 + 16 | 0;
11961 i71 = i14 | 0;
11962 i79 = i14 + 8 | 0;
11963 i17 = i44;
11964 i44 = i37;
11965 i37 = i74;
11966 i74 = i75;
11967 i75 = i76;
11968 i76 = i46;
11969 i46 = i47;
11970 i47 = i48;
11971 i48 = i77;
11972 while (1) {
11973 i77 = Math_imul(i37 - i76 | 0, i27) | 0;
11974 i78 = Math_imul(i74 - i46 | 0, i29) | 0;
11975 i12 = i78 + (Math_imul(i75 - i47 | 0, i2) | 0) + i77 | 0;
11976 i77 = i12;
11977 i78 = (i12 | 0) < 0 ? -1 : 0;
11978 L1257 : do {
11979 if ((i48 | 0) == 0) {
11980 i103 = i75;
11981 i104 = i74;
11982 i105 = i37;
11983 i106 = i17;
11984 i107 = i44;
11985 i108 = i12;
11986 i109 = i78;
11987 i110 = i77;
11988 } else {
11989 i11 = i75;
11990 i25 = i74;
11991 i102 = i37;
11992 i67 = i17;
11993 i20 = i44;
11994 i100 = i12;
11995 i69 = i78;
11996 i101 = i77;
11997 i99 = i48;
11998 while (1) {
11999 if ((HEAP32[i99 + 12 >> 2] | 0) == (i7 | 0)) {
12000 i103 = i11;
12001 i104 = i25;
12002 i105 = i102;
12003 i106 = i67;
12004 i107 = i20;
12005 i108 = i100;
12006 i109 = i69;
12007 i110 = i101;
12008 break L1257;
12009 }
12010 i28 = HEAP32[(HEAP32[i99 + 4 >> 2] | 0) + 8 >> 2] | 0;
12011 if ((HEAP32[i28 + 20 >> 2] | 0) <= (HEAP32[i82 >> 2] | 0)) {
12012 i103 = i11;
12013 i104 = i25;
12014 i105 = i102;
12015 i106 = i67;
12016 i107 = i20;
12017 i108 = i100;
12018 i109 = i69;
12019 i110 = i101;
12020 break L1257;
12021 }
12022 i49 = HEAP32[i28 + 12 >> 2] | 0;
12023 i73 = HEAP32[i49 + 88 >> 2] | 0;
12024 i72 = i73 - i102 | 0;
12025 i45 = HEAP32[i49 + 92 >> 2] | 0;
12026 i10 = i45 - i25 | 0;
12027 i9 = HEAP32[i49 + 96 >> 2] | 0;
12028 i49 = i9 - i11 | 0;
12029 i70 = ___muldi3(i72, (i72 | 0) < 0 ? -1 : 0, i41, i40) | 0;
12030 i87 = tempRet0;
12031 i24 = ___muldi3(i10, (i10 | 0) < 0 ? -1 : 0, i43, i42) | 0;
12032 i36 = _i64Add(i24, tempRet0, i70, i87) | 0;
12033 i87 = tempRet0;
12034 i70 = ___muldi3(i49, (i49 | 0) < 0 ? -1 : 0, i30, i38) | 0;
12035 i24 = _i64Add(i36, i87, i70, tempRet0) | 0;
12036 i70 = tempRet0;
12037 i87 = Math_imul(i72, i27) | 0;
12038 i72 = (Math_imul(i10, i29) | 0) + i87 | 0;
12039 i87 = i72 + (Math_imul(i49, i2) | 0) | 0;
12040 i49 = i87;
12041 i72 = (i87 | 0) < 0 ? -1 : 0;
12042 if ((i24 | 0) == 0 & (i70 | 0) == 0) {
12043 if ((i87 | 0) <= 0) {
12044 i103 = i11;
12045 i104 = i25;
12046 i105 = i102;
12047 i106 = i67;
12048 i107 = i20;
12049 i108 = i100;
12050 i109 = i69;
12051 i110 = i101;
12052 break L1257;
12053 }
12054 } else {
12055 i10 = 0;
12056 if (!((i70 | 0) < (i10 | 0) | (i70 | 0) == (i10 | 0) & i24 >>> 0 < 0 >>> 0)) {
12057 i103 = i11;
12058 i104 = i25;
12059 i105 = i102;
12060 i106 = i67;
12061 i107 = i20;
12062 i108 = i100;
12063 i109 = i69;
12064 i110 = i101;
12065 break L1257;
12066 }
12067 do {
12068 if ((i87 | 0) > 0) {
12069 HEAP32[i56 >> 2] = 1;
12070 HEAP32[i39 >> 2] = i49;
12071 HEAP32[i39 + 4 >> 2] = i72;
12072 i111 = 1;
12073 } else {
12074 if ((i87 | 0) < 0) {
12075 HEAP32[i56 >> 2] = -1;
12076 i10 = _i64Subtract(0, 0, i49, i72) | 0;
12077 HEAP32[i39 >> 2] = i10;
12078 HEAP32[i39 + 4 >> 2] = tempRet0;
12079 i111 = -1;
12080 break;
12081 } else {
12082 HEAP32[i56 >> 2] = 0;
12083 HEAP32[i39 >> 2] = 0;
12084 HEAP32[i39 + 4 >> 2] = 0;
12085 i111 = 0;
12086 break;
12087 }
12088 }
12089 } while (0);
12090 i72 = 0;
12091 if ((i70 | 0) > (i72 | 0) | (i70 | 0) == (i72 | 0) & i24 >>> 0 > 0 >>> 0) {
12092 i112 = i70;
12093 i113 = i24;
12094 } else {
12095 HEAP32[i56 >> 2] = -i111;
12096 i72 = _i64Subtract(0, 0, i24, i70) | 0;
12097 i112 = tempRet0;
12098 i113 = i72;
12099 }
12100 HEAP32[i23 >> 2] = i113;
12101 HEAP32[i23 + 4 >> 2] = i112;
12102 do {
12103 if ((i100 | 0) > 0) {
12104 HEAP32[i68 >> 2] = 1;
12105 HEAP32[i71 >> 2] = i101;
12106 HEAP32[i71 + 4 >> 2] = i69;
12107 i114 = 1;
12108 } else {
12109 if ((i100 | 0) < 0) {
12110 HEAP32[i68 >> 2] = -1;
12111 i72 = _i64Subtract(0, 0, i101, i69) | 0;
12112 HEAP32[i71 >> 2] = i72;
12113 HEAP32[i71 + 4 >> 2] = tempRet0;
12114 i114 = -1;
12115 break;
12116 } else {
12117 HEAP32[i68 >> 2] = 0;
12118 HEAP32[i71 >> 2] = 0;
12119 HEAP32[i71 + 4 >> 2] = 0;
12120 i114 = 0;
12121 break;
12122 }
12123 }
12124 } while (0);
12125 i70 = 0;
12126 do {
12127 if ((i67 | 0) > (i70 | 0) | (i67 | 0) == (i70 | 0) & i20 >>> 0 > 0 >>> 0) {
12128 HEAP32[i79 >> 2] = i20;
12129 HEAP32[i79 + 4 >> 2] = i67;
12130 } else {
12131 i24 = 0;
12132 if ((i67 | 0) < (i24 | 0) | (i67 | 0) == (i24 | 0) & i20 >>> 0 < 0 >>> 0) {
12133 HEAP32[i68 >> 2] = -i114;
12134 i24 = _i64Subtract(0, 0, i20, i67) | 0;
12135 HEAP32[i79 >> 2] = i24;
12136 HEAP32[i79 + 4 >> 2] = tempRet0;
12137 break;
12138 } else {
12139 HEAP32[i79 >> 2] = 0;
12140 HEAP32[i79 + 4 >> 2] = 0;
12141 break;
12142 }
12143 }
12144 } while (0);
12145 if ((__ZNK20btConvexHullInternal10Rational647compareERKS0_(i13, i14) | 0) >= 1) {
12146 i103 = i11;
12147 i104 = i25;
12148 i105 = i102;
12149 i106 = i67;
12150 i107 = i20;
12151 i108 = i100;
12152 i109 = i69;
12153 i110 = i101;
12154 break L1257;
12155 }
12156 }
12157 i70 = i73 - i76 | 0;
12158 i24 = i45 - i46 | 0;
12159 i72 = i9 - i47 | 0;
12160 i49 = ___muldi3(i70, (i70 | 0) < 0 ? -1 : 0, i41, i40) | 0;
12161 i87 = tempRet0;
12162 i10 = ___muldi3(i24, (i24 | 0) < 0 ? -1 : 0, i43, i42) | 0;
12163 i36 = _i64Add(i10, tempRet0, i49, i87) | 0;
12164 i87 = tempRet0;
12165 i49 = ___muldi3(i72, (i72 | 0) < 0 ? -1 : 0, i30, i38) | 0;
12166 i10 = _i64Add(i36, i87, i49, tempRet0) | 0;
12167 i49 = tempRet0;
12168 i87 = (i99 | 0) == (i18 | 0) ? 0 : i28;
12169 HEAP32[i5 >> 2] = i87;
12170 i36 = Math_imul(i70, i27) | 0;
12171 i70 = Math_imul(i24, i29) | 0;
12172 i24 = i70 + i36 + (Math_imul(i72, i2) | 0) | 0;
12173 i72 = i24;
12174 i36 = (i24 | 0) < 0 ? -1 : 0;
12175 if ((i87 | 0) == 0) {
12176 i103 = i9;
12177 i104 = i45;
12178 i105 = i73;
12179 i106 = i49;
12180 i107 = i10;
12181 i108 = i24;
12182 i109 = i36;
12183 i110 = i72;
12184 break;
12185 } else {
12186 i11 = i9;
12187 i25 = i45;
12188 i102 = i73;
12189 i67 = i49;
12190 i20 = i10;
12191 i100 = i24;
12192 i69 = i36;
12193 i101 = i72;
12194 i99 = i87;
12195 }
12196 }
12197 }
12198 } while (0);
12199 i77 = HEAP32[i4 >> 2] | 0;
12200 if ((i77 | 0) == 0) {
12201 i88 = 1012;
12202 break;
12203 }
12204 if ((HEAP32[i77 + 12 >> 2] | 0) == (i6 | 0)) {
12205 i88 = 1013;
12206 break;
12207 }
12208 i78 = HEAP32[(HEAP32[i77 + 8 >> 2] | 0) + 4 >> 2] | 0;
12209 if ((HEAP32[i78 + 20 >> 2] | 0) <= (HEAP32[i82 >> 2] | 0)) {
12210 i88 = 1014;
12211 break;
12212 }
12213 i77 = i78 + 12 | 0;
12214 i12 = HEAP32[i77 >> 2] | 0;
12215 i19 = HEAP32[i12 + 88 >> 2] | 0;
12216 i52 = i19 - i76 | 0;
12217 i55 = HEAP32[i12 + 92 >> 2] | 0;
12218 i99 = i55 - i46 | 0;
12219 i101 = HEAP32[i12 + 96 >> 2] | 0;
12220 i12 = i101 - i47 | 0;
12221 i69 = i52;
12222 i100 = (i52 | 0) < 0 ? -1 : 0;
12223 i20 = ___muldi3(i69, i100, i3, i34) | 0;
12224 i67 = tempRet0;
12225 i102 = i99;
12226 i25 = (i99 | 0) < 0 ? -1 : 0;
12227 i11 = ___muldi3(i102, i25, i33, i35) | 0;
12228 i63 = _i64Add(i11, tempRet0, i20, i67) | 0;
12229 i67 = tempRet0;
12230 i20 = i12;
12231 i11 = (i12 | 0) < 0 ? -1 : 0;
12232 i89 = ___muldi3(i20, i11, i1, i32) | 0;
12233 if (!((i63 | 0) == (i89 | 0) & (i67 | 0) == (tempRet0 | 0))) {
12234 i88 = 1015;
12235 break;
12236 }
12237 i67 = ___muldi3(i69, i100, i41, i40) | 0;
12238 i100 = tempRet0;
12239 i69 = ___muldi3(i102, i25, i43, i42) | 0;
12240 i25 = _i64Add(i69, tempRet0, i67, i100) | 0;
12241 i100 = tempRet0;
12242 i67 = ___muldi3(i20, i11, i30, i38) | 0;
12243 i11 = _i64Add(i25, i100, i67, tempRet0) | 0;
12244 i67 = tempRet0;
12245 i100 = Math_imul(i52, i27) | 0;
12246 i52 = (Math_imul(i99, i29) | 0) + i100 | 0;
12247 i100 = i52 + (Math_imul(i12, i2) | 0) | 0;
12248 i12 = i100;
12249 i52 = (i100 | 0) < 0 ? -1 : 0;
12250 i99 = i105 - i19 | 0;
12251 i19 = i104 - i55 | 0;
12252 i55 = i103 - i101 | 0;
12253 i101 = ___muldi3(i99, (i99 | 0) < 0 ? -1 : 0, i41, i40) | 0;
12254 i99 = tempRet0;
12255 i25 = ___muldi3(i19, (i19 | 0) < 0 ? -1 : 0, i43, i42) | 0;
12256 i19 = _i64Add(i25, tempRet0, i101, i99) | 0;
12257 i99 = tempRet0;
12258 i101 = ___muldi3(i55, (i55 | 0) < 0 ? -1 : 0, i30, i38) | 0;
12259 i55 = _i64Add(i19, i99, i101, tempRet0) | 0;
12260 i101 = tempRet0;
12261 i99 = 0;
12262 if (!((i101 | 0) < (i99 | 0) | (i101 | 0) == (i99 | 0) & i55 >>> 0 < 0 >>> 0)) {
12263 i88 = 1016;
12264 break;
12265 }
12266 if ((i11 | 0) == 0 & (i67 | 0) == 0) {
12267 if ((i100 | 0) <= 0) {
12268 i88 = 1017;
12269 break;
12270 }
12271 } else {
12272 i99 = 0;
12273 if (!((i67 | 0) < (i99 | 0) | (i67 | 0) == (i99 | 0) & i11 >>> 0 < 0 >>> 0)) {
12274 i88 = 1018;
12275 break;
12276 }
12277 do {
12278 if ((i100 | 0) > 0) {
12279 HEAP32[i31 >> 2] = 1;
12280 HEAP32[i53 >> 2] = i12;
12281 HEAP32[i53 + 4 >> 2] = i52;
12282 i115 = 1;
12283 } else {
12284 if ((i100 | 0) < 0) {
12285 HEAP32[i31 >> 2] = -1;
12286 i99 = _i64Subtract(0, 0, i12, i52) | 0;
12287 HEAP32[i53 >> 2] = i99;
12288 HEAP32[i53 + 4 >> 2] = tempRet0;
12289 i115 = -1;
12290 break;
12291 } else {
12292 HEAP32[i31 >> 2] = 0;
12293 HEAP32[i53 >> 2] = 0;
12294 HEAP32[i53 + 4 >> 2] = 0;
12295 i115 = 0;
12296 break;
12297 }
12298 }
12299 } while (0);
12300 i52 = 0;
12301 if ((i67 | 0) > (i52 | 0) | (i67 | 0) == (i52 | 0) & i11 >>> 0 > 0 >>> 0) {
12302 i116 = i67;
12303 i117 = i11;
12304 } else {
12305 HEAP32[i31 >> 2] = -i115;
12306 i52 = _i64Subtract(0, 0, i11, i67) | 0;
12307 i116 = tempRet0;
12308 i117 = i52;
12309 }
12310 HEAP32[i81 >> 2] = i117;
12311 HEAP32[i81 + 4 >> 2] = i116;
12312 do {
12313 if ((i108 | 0) > 0) {
12314 HEAP32[i62 >> 2] = 1;
12315 HEAP32[i80 >> 2] = i110;
12316 HEAP32[i80 + 4 >> 2] = i109;
12317 i118 = 1;
12318 } else {
12319 if ((i108 | 0) < 0) {
12320 HEAP32[i62 >> 2] = -1;
12321 i52 = _i64Subtract(0, 0, i110, i109) | 0;
12322 HEAP32[i80 >> 2] = i52;
12323 HEAP32[i80 + 4 >> 2] = tempRet0;
12324 i118 = -1;
12325 break;
12326 } else {
12327 HEAP32[i62 >> 2] = 0;
12328 HEAP32[i80 >> 2] = 0;
12329 HEAP32[i80 + 4 >> 2] = 0;
12330 i118 = 0;
12331 break;
12332 }
12333 }
12334 } while (0);
12335 i67 = 0;
12336 do {
12337 if ((i106 | 0) > (i67 | 0) | (i106 | 0) == (i67 | 0) & i107 >>> 0 > 0 >>> 0) {
12338 HEAP32[i54 >> 2] = i107;
12339 HEAP32[i54 + 4 >> 2] = i106;
12340 } else {
12341 i11 = 0;
12342 if ((i106 | 0) < (i11 | 0) | (i106 | 0) == (i11 | 0) & i107 >>> 0 < 0 >>> 0) {
12343 HEAP32[i62 >> 2] = -i118;
12344 i11 = _i64Subtract(0, 0, i107, i106) | 0;
12345 HEAP32[i54 >> 2] = i11;
12346 HEAP32[i54 + 4 >> 2] = tempRet0;
12347 break;
12348 } else {
12349 HEAP32[i54 >> 2] = 0;
12350 HEAP32[i54 + 4 >> 2] = 0;
12351 break;
12352 }
12353 }
12354 } while (0);
12355 if ((__ZNK20btConvexHullInternal10Rational647compareERKS0_(i15, i16) | 0) >= 0) {
12356 i88 = 1020;
12357 break;
12358 }
12359 }
12360 HEAP32[i4 >> 2] = i78;
12361 i67 = HEAP32[i77 >> 2] | 0;
12362 i17 = i101;
12363 i44 = i55;
12364 i37 = i105;
12365 i74 = i104;
12366 i75 = i103;
12367 i76 = HEAP32[i67 + 88 >> 2] | 0;
12368 i46 = HEAP32[i67 + 92 >> 2] | 0;
12369 i47 = HEAP32[i67 + 96 >> 2] | 0;
12370 i48 = HEAP32[i5 >> 2] | 0;
12371 }
12372 if ((i88 | 0) == 1012) {
12373 STACKTOP = i8;
12374 return;
12375 } else if ((i88 | 0) == 1013) {
12376 STACKTOP = i8;
12377 return;
12378 } else if ((i88 | 0) == 1014) {
12379 STACKTOP = i8;
12380 return;
12381 } else if ((i88 | 0) == 1015) {
12382 STACKTOP = i8;
12383 return;
12384 } else if ((i88 | 0) == 1016) {
12385 STACKTOP = i8;
12386 return;
12387 } else if ((i88 | 0) == 1017) {
12388 STACKTOP = i8;
12389 return;
12390 } else if ((i88 | 0) == 1018) {
12391 STACKTOP = i8;
12392 return;
12393 } else if ((i88 | 0) == 1020) {
12394 STACKTOP = i8;
12395 return;
12396 }
12397 }
12398 function __ZN23btDiscreteDynamicsWorld19debugDrawConstraintEP17btTypedConstraint(i1, i2) {
12399 i1 = i1 | 0;
12400 i2 = i2 | 0;
12401 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, d48 = 0.0, d49 = 0.0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, d69 = 0.0, d70 = 0.0, d71 = 0.0, d72 = 0.0, d73 = 0.0, d74 = 0.0, d75 = 0.0, d76 = 0.0, d77 = 0.0, d78 = 0.0, d79 = 0.0;
12402 i3 = STACKTOP;
12403 STACKTOP = STACKTOP + 1008 | 0;
12404 i4 = i3 | 0;
12405 i5 = i3 + 64 | 0;
12406 i6 = i3 + 128 | 0;
12407 i7 = i3 + 192 | 0;
12408 i8 = i3 + 208 | 0;
12409 i9 = i3 + 224 | 0;
12410 i10 = i3 + 240 | 0;
12411 i11 = i3 + 304 | 0;
12412 i12 = i3 + 368 | 0;
12413 i13 = i3 + 384 | 0;
12414 i14 = i3 + 400 | 0;
12415 i15 = i3 + 416 | 0;
12416 i16 = i3 + 432 | 0;
12417 i17 = i3 + 496 | 0;
12418 i18 = i3 + 560 | 0;
12419 i19 = i3 + 576 | 0;
12420 i20 = i3 + 592 | 0;
12421 i21 = i3 + 608 | 0;
12422 i22 = i3 + 624 | 0;
12423 i23 = i3 + 688 | 0;
12424 i24 = i3 + 704 | 0;
12425 i25 = i3 + 720 | 0;
12426 i26 = i3 + 736 | 0;
12427 i27 = i3 + 752 | 0;
12428 i28 = i3 + 768 | 0;
12429 i29 = i3 + 784 | 0;
12430 i30 = i3 + 800 | 0;
12431 i31 = i3 + 816 | 0;
12432 i32 = i3 + 832 | 0;
12433 i33 = i3 + 848 | 0;
12434 i34 = i3 + 912 | 0;
12435 i35 = i3 + 928 | 0;
12436 i36 = i3 + 944 | 0;
12437 i37 = i3 + 960 | 0;
12438 i38 = i3 + 976 | 0;
12439 i39 = i3 + 992 | 0;
12440 i40 = i1 | 0;
12441 i41 = i1;
12442 i1 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
12443 i42 = (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 48 >> 2] & 127](i1) | 0) >>> 11;
12444 i1 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
12445 i43 = (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 48 >> 2] & 127](i1) | 0) >>> 12;
12446 d44 = +HEAPF32[i2 + 36 >> 2];
12447 if (d44 <= 0.0) {
12448 STACKTOP = i3;
12449 return;
12450 }
12451 switch (HEAP32[i2 + 4 >> 2] | 0) {
12452 case 3:
12453 {
12454 HEAPF32[i4 >> 2] = 1.0;
12455 _memset(i4 + 4 | 0, 0, 16);
12456 HEAPF32[i4 + 20 >> 2] = 1.0;
12457 _memset(i4 + 24 | 0, 0, 16);
12458 HEAPF32[i4 + 40 >> 2] = 1.0;
12459 _memset(i4 + 44 | 0, 0, 20);
12460 d45 = +HEAPF32[i2 + 292 >> 2];
12461 d46 = +HEAPF32[i2 + 296 >> 2];
12462 d47 = +HEAPF32[i2 + 300 >> 2];
12463 i1 = HEAP32[i2 + 24 >> 2] | 0;
12464 d48 = +HEAPF32[i1 + 56 >> 2] + (d45 * +HEAPF32[i1 + 20 >> 2] + d46 * +HEAPF32[i1 + 24 >> 2] + d47 * +HEAPF32[i1 + 28 >> 2]);
12465 d49 = +HEAPF32[i1 + 60 >> 2] + (d45 * +HEAPF32[i1 + 36 >> 2] + d46 * +HEAPF32[i1 + 40 >> 2] + d47 * +HEAPF32[i1 + 44 >> 2]);
12466 i50 = i4 + 48 | 0;
12467 HEAPF32[i50 >> 2] = +HEAPF32[i1 + 52 >> 2] + (d45 * +HEAPF32[i1 + 4 >> 2] + d46 * +HEAPF32[i1 + 8 >> 2] + d47 * +HEAPF32[i1 + 12 >> 2]);
12468 i1 = i4 + 52 | 0;
12469 HEAPF32[i1 >> 2] = d48;
12470 i51 = i4 + 56 | 0;
12471 HEAPF32[i51 >> 2] = d49;
12472 i52 = i4 + 60 | 0;
12473 HEAPF32[i52 >> 2] = 0.0;
12474 i53 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
12475 FUNCTION_TABLE_viif[HEAP32[(HEAP32[i53 >> 2] | 0) + 56 >> 2] & 3](i53, i4, d44);
12476 d49 = +HEAPF32[i2 + 308 >> 2];
12477 d48 = +HEAPF32[i2 + 312 >> 2];
12478 d47 = +HEAPF32[i2 + 316 >> 2];
12479 i53 = HEAP32[i2 + 28 >> 2] | 0;
12480 d46 = +HEAPF32[i53 + 56 >> 2] + (d49 * +HEAPF32[i53 + 20 >> 2] + d48 * +HEAPF32[i53 + 24 >> 2] + d47 * +HEAPF32[i53 + 28 >> 2]);
12481 d45 = +HEAPF32[i53 + 60 >> 2] + (d49 * +HEAPF32[i53 + 36 >> 2] + d48 * +HEAPF32[i53 + 40 >> 2] + d47 * +HEAPF32[i53 + 44 >> 2]);
12482 HEAPF32[i50 >> 2] = +HEAPF32[i53 + 52 >> 2] + (d49 * +HEAPF32[i53 + 4 >> 2] + d48 * +HEAPF32[i53 + 8 >> 2] + d47 * +HEAPF32[i53 + 12 >> 2]);
12483 HEAPF32[i1 >> 2] = d46;
12484 HEAPF32[i51 >> 2] = d45;
12485 HEAPF32[i52 >> 2] = 0.0;
12486 if ((i42 & 1 | 0) == 0) {
12487 STACKTOP = i3;
12488 return;
12489 }
12490 i52 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
12491 FUNCTION_TABLE_viif[HEAP32[(HEAP32[i52 >> 2] | 0) + 56 >> 2] & 3](i52, i4, d44);
12492 STACKTOP = i3;
12493 return;
12494 }
12495 case 4:
12496 {
12497 __ZNK11btTransformmlERKS_(i5, (HEAP32[i2 + 24 >> 2] | 0) + 4 | 0, i2 + 544 | 0);
12498 if ((i42 & 1 | 0) == 0) {
12499 __ZNK11btTransformmlERKS_(i6, (HEAP32[i2 + 28 >> 2] | 0) + 4 | 0, i2 + 608 | 0);
12500 i4 = i5;
12501 i52 = i6;
12502 HEAP32[i4 >> 2] = HEAP32[i52 >> 2];
12503 HEAP32[i4 + 4 >> 2] = HEAP32[i52 + 4 >> 2];
12504 HEAP32[i4 + 8 >> 2] = HEAP32[i52 + 8 >> 2];
12505 HEAP32[i4 + 12 >> 2] = HEAP32[i52 + 12 >> 2];
12506 i52 = i5 + 16 | 0;
12507 i4 = i6 + 16 | 0;
12508 HEAP32[i52 >> 2] = HEAP32[i4 >> 2];
12509 HEAP32[i52 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
12510 HEAP32[i52 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
12511 HEAP32[i52 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
12512 i4 = i5 + 32 | 0;
12513 i52 = i6 + 32 | 0;
12514 HEAP32[i4 >> 2] = HEAP32[i52 >> 2];
12515 HEAP32[i4 + 4 >> 2] = HEAP32[i52 + 4 >> 2];
12516 HEAP32[i4 + 8 >> 2] = HEAP32[i52 + 8 >> 2];
12517 HEAP32[i4 + 12 >> 2] = HEAP32[i52 + 12 >> 2];
12518 i52 = i5 + 48 | 0;
12519 i4 = i6 + 48 | 0;
12520 HEAP32[i52 >> 2] = HEAP32[i4 >> 2];
12521 HEAP32[i52 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
12522 HEAP32[i52 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
12523 HEAP32[i52 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
12524 } else {
12525 i4 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
12526 FUNCTION_TABLE_viif[HEAP32[(HEAP32[i4 >> 2] | 0) + 56 >> 2] & 3](i4, i5, d44);
12527 __ZNK11btTransformmlERKS_(i6, (HEAP32[i2 + 28 >> 2] | 0) + 4 | 0, i2 + 608 | 0);
12528 i4 = i5;
12529 i52 = i6;
12530 HEAP32[i4 >> 2] = HEAP32[i52 >> 2];
12531 HEAP32[i4 + 4 >> 2] = HEAP32[i52 + 4 >> 2];
12532 HEAP32[i4 + 8 >> 2] = HEAP32[i52 + 8 >> 2];
12533 HEAP32[i4 + 12 >> 2] = HEAP32[i52 + 12 >> 2];
12534 i52 = i5 + 16 | 0;
12535 i4 = i6 + 16 | 0;
12536 HEAP32[i52 >> 2] = HEAP32[i4 >> 2];
12537 HEAP32[i52 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
12538 HEAP32[i52 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
12539 HEAP32[i52 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
12540 i4 = i5 + 32 | 0;
12541 i52 = i6 + 32 | 0;
12542 HEAP32[i4 >> 2] = HEAP32[i52 >> 2];
12543 HEAP32[i4 + 4 >> 2] = HEAP32[i52 + 4 >> 2];
12544 HEAP32[i4 + 8 >> 2] = HEAP32[i52 + 8 >> 2];
12545 HEAP32[i4 + 12 >> 2] = HEAP32[i52 + 12 >> 2];
12546 i52 = i5 + 48 | 0;
12547 i4 = i6 + 48 | 0;
12548 HEAP32[i52 >> 2] = HEAP32[i4 >> 2];
12549 HEAP32[i52 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
12550 HEAP32[i52 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
12551 HEAP32[i52 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
12552 i4 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
12553 FUNCTION_TABLE_viif[HEAP32[(HEAP32[i4 >> 2] | 0) + 56 >> 2] & 3](i4, i5, d44);
12554 }
12555 i4 = i2 + 680 | 0;
12556 d45 = +__ZNK14btAngularLimit6getLowEv(i4);
12557 d46 = +__ZNK14btAngularLimit7getHighEv(i4);
12558 if (d45 == d46) {
12559 STACKTOP = i3;
12560 return;
12561 }
12562 i4 = d45 > d46;
12563 if ((i43 & 1 | 0) == 0) {
12564 STACKTOP = i3;
12565 return;
12566 }
12567 HEAPF32[i7 >> 2] = +HEAPF32[i5 + 8 >> 2];
12568 HEAPF32[i7 + 4 >> 2] = +HEAPF32[i5 + 24 >> 2];
12569 HEAPF32[i7 + 8 >> 2] = +HEAPF32[i5 + 40 >> 2];
12570 HEAPF32[i7 + 12 >> 2] = 0.0;
12571 HEAPF32[i8 >> 2] = +HEAPF32[i5 >> 2];
12572 HEAPF32[i8 + 4 >> 2] = +HEAPF32[i5 + 16 >> 2];
12573 HEAPF32[i8 + 8 >> 2] = +HEAPF32[i5 + 32 >> 2];
12574 HEAPF32[i8 + 12 >> 2] = 0.0;
12575 i52 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
12576 i6 = HEAP32[(HEAP32[i52 >> 2] | 0) + 60 >> 2] | 0;
12577 _memset(i9 | 0, 0, 16);
12578 FUNCTION_TABLE_viiiiffffiif[i6 & 1](i52, i5 + 48 | 0, i7, i8, d44, d44, i4 ? 0.0 : d45, i4 ? 6.2831854820251465 : d46, i9, i4 ^ 1, 10.0);
12579 STACKTOP = i3;
12580 return;
12581 }
12582 case 5:
12583 {
12584 i4 = i2;
12585 i9 = i2 + 24 | 0;
12586 i8 = i2 + 292 | 0;
12587 __ZNK11btTransformmlERKS_(i10, (HEAP32[i9 >> 2] | 0) + 4 | 0, i8);
12588 if ((i42 & 1 | 0) == 0) {
12589 __ZNK11btTransformmlERKS_(i11, (HEAP32[i2 + 28 >> 2] | 0) + 4 | 0, i2 + 356 | 0);
12590 i7 = i10;
12591 i5 = i11;
12592 HEAP32[i7 >> 2] = HEAP32[i5 >> 2];
12593 HEAP32[i7 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
12594 HEAP32[i7 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
12595 HEAP32[i7 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
12596 i5 = i10 + 16 | 0;
12597 i7 = i11 + 16 | 0;
12598 HEAP32[i5 >> 2] = HEAP32[i7 >> 2];
12599 HEAP32[i5 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
12600 HEAP32[i5 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
12601 HEAP32[i5 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
12602 i7 = i10 + 32 | 0;
12603 i5 = i11 + 32 | 0;
12604 HEAP32[i7 >> 2] = HEAP32[i5 >> 2];
12605 HEAP32[i7 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
12606 HEAP32[i7 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
12607 HEAP32[i7 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
12608 i5 = i10 + 48 | 0;
12609 i7 = i11 + 48 | 0;
12610 HEAP32[i5 >> 2] = HEAP32[i7 >> 2];
12611 HEAP32[i5 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
12612 HEAP32[i5 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
12613 HEAP32[i5 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
12614 } else {
12615 i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
12616 FUNCTION_TABLE_viif[HEAP32[(HEAP32[i7 >> 2] | 0) + 56 >> 2] & 3](i7, i10, d44);
12617 __ZNK11btTransformmlERKS_(i11, (HEAP32[i2 + 28 >> 2] | 0) + 4 | 0, i2 + 356 | 0);
12618 i7 = i10;
12619 i5 = i11;
12620 HEAP32[i7 >> 2] = HEAP32[i5 >> 2];
12621 HEAP32[i7 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
12622 HEAP32[i7 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
12623 HEAP32[i7 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
12624 i5 = i10 + 16 | 0;
12625 i7 = i11 + 16 | 0;
12626 HEAP32[i5 >> 2] = HEAP32[i7 >> 2];
12627 HEAP32[i5 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
12628 HEAP32[i5 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
12629 HEAP32[i5 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
12630 i7 = i10 + 32 | 0;
12631 i5 = i11 + 32 | 0;
12632 HEAP32[i7 >> 2] = HEAP32[i5 >> 2];
12633 HEAP32[i7 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
12634 HEAP32[i7 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
12635 HEAP32[i7 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
12636 i5 = i10 + 48 | 0;
12637 i7 = i11 + 48 | 0;
12638 HEAP32[i5 >> 2] = HEAP32[i7 >> 2];
12639 HEAP32[i5 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
12640 HEAP32[i5 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
12641 HEAP32[i5 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
12642 i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
12643 FUNCTION_TABLE_viif[HEAP32[(HEAP32[i7 >> 2] | 0) + 56 >> 2] & 3](i7, i10, d44);
12644 }
12645 if ((i43 & 1 | 0) == 0) {
12646 STACKTOP = i3;
12647 return;
12648 }
12649 __ZNK21btConeTwistConstraint16GetPointForAngleEff(i12, i4, 6.0868353843688965, d44);
12650 i7 = i10 | 0;
12651 i5 = i12 | 0;
12652 d46 = +HEAPF32[i5 >> 2];
12653 i11 = i10 + 4 | 0;
12654 i52 = i12 + 4 | 0;
12655 d45 = +HEAPF32[i52 >> 2];
12656 i6 = i10 + 8 | 0;
12657 i51 = i12 + 8 | 0;
12658 d47 = +HEAPF32[i51 >> 2];
12659 i1 = i10 + 48 | 0;
12660 i53 = i10 + 16 | 0;
12661 i50 = i10 + 20 | 0;
12662 i54 = i10 + 24 | 0;
12663 i55 = i10 + 52 | 0;
12664 d48 = +HEAPF32[i55 >> 2] + (d46 * +HEAPF32[i53 >> 2] + d45 * +HEAPF32[i50 >> 2] + d47 * +HEAPF32[i54 >> 2]);
12665 i56 = i10 + 32 | 0;
12666 i57 = i10 + 36 | 0;
12667 i58 = i10 + 40 | 0;
12668 i59 = i10 + 56 | 0;
12669 d49 = +HEAPF32[i59 >> 2] + (d46 * +HEAPF32[i56 >> 2] + d45 * +HEAPF32[i57 >> 2] + d47 * +HEAPF32[i58 >> 2]);
12670 i60 = i12;
12671 HEAPF32[i5 >> 2] = +HEAPF32[i1 >> 2] + (+HEAPF32[i7 >> 2] * d46 + +HEAPF32[i11 >> 2] * d45 + +HEAPF32[i6 >> 2] * d47);
12672 HEAPF32[i52 >> 2] = d48;
12673 HEAPF32[i51 >> 2] = d49;
12674 HEAPF32[i12 + 12 >> 2] = 0.0;
12675 i51 = i13 | 0;
12676 i52 = i13 + 4 | 0;
12677 i5 = i13 + 8 | 0;
12678 i61 = i13;
12679 i62 = i13 + 12 | 0;
12680 i63 = i10 + 48 | 0;
12681 i64 = i14;
12682 i65 = i15;
12683 i66 = 0;
12684 do {
12685 __ZNK21btConeTwistConstraint16GetPointForAngleEff(i13, i4, +(i66 | 0) * 6.283185005187988 * .03125, d44);
12686 d49 = +HEAPF32[i51 >> 2];
12687 d48 = +HEAPF32[i52 >> 2];
12688 d47 = +HEAPF32[i5 >> 2];
12689 d45 = +HEAPF32[i55 >> 2] + (d49 * +HEAPF32[i53 >> 2] + d48 * +HEAPF32[i50 >> 2] + d47 * +HEAPF32[i54 >> 2]);
12690 d46 = +HEAPF32[i59 >> 2] + (d49 * +HEAPF32[i56 >> 2] + d48 * +HEAPF32[i57 >> 2] + d47 * +HEAPF32[i58 >> 2]);
12691 HEAPF32[i51 >> 2] = +HEAPF32[i1 >> 2] + (+HEAPF32[i7 >> 2] * d49 + +HEAPF32[i11 >> 2] * d48 + +HEAPF32[i6 >> 2] * d47);
12692 HEAPF32[i52 >> 2] = d45;
12693 HEAPF32[i5 >> 2] = d46;
12694 HEAPF32[i62 >> 2] = 0.0;
12695 i67 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
12696 i68 = HEAP32[(HEAP32[i67 >> 2] | 0) + 8 >> 2] | 0;
12697 _memset(i64 | 0, 0, 16);
12698 FUNCTION_TABLE_viiii[i68 & 127](i67, i12, i13, i14);
12699 if ((i66 & 3 | 0) == 0) {
12700 i67 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
12701 i68 = HEAP32[(HEAP32[i67 >> 2] | 0) + 8 >> 2] | 0;
12702 _memset(i65 | 0, 0, 16);
12703 FUNCTION_TABLE_viiii[i68 & 127](i67, i63, i13, i15);
12704 }
12705 HEAP32[i60 >> 2] = HEAP32[i61 >> 2];
12706 HEAP32[i60 + 4 >> 2] = HEAP32[i61 + 4 >> 2];
12707 HEAP32[i60 + 8 >> 2] = HEAP32[i61 + 8 >> 2];
12708 HEAP32[i60 + 12 >> 2] = HEAP32[i61 + 12 >> 2];
12709 i66 = i66 + 1 | 0;
12710 } while ((i66 | 0) < 32);
12711 d46 = +HEAPF32[i2 + 444 >> 2];
12712 d45 = +HEAPF32[i2 + 504 >> 2];
12713 i66 = HEAP32[i2 + 28 >> 2] | 0;
12714 if (+HEAPF32[i66 + 336 >> 2] > 0.0) {
12715 __ZNK11btTransformmlERKS_(i16, i66 + 4 | 0, i2 + 356 | 0);
12716 i66 = i10;
12717 i61 = i16;
12718 HEAP32[i66 >> 2] = HEAP32[i61 >> 2];
12719 HEAP32[i66 + 4 >> 2] = HEAP32[i61 + 4 >> 2];
12720 HEAP32[i66 + 8 >> 2] = HEAP32[i61 + 8 >> 2];
12721 HEAP32[i66 + 12 >> 2] = HEAP32[i61 + 12 >> 2];
12722 i61 = i10 + 16 | 0;
12723 i66 = i16 + 16 | 0;
12724 HEAP32[i61 >> 2] = HEAP32[i66 >> 2];
12725 HEAP32[i61 + 4 >> 2] = HEAP32[i66 + 4 >> 2];
12726 HEAP32[i61 + 8 >> 2] = HEAP32[i66 + 8 >> 2];
12727 HEAP32[i61 + 12 >> 2] = HEAP32[i66 + 12 >> 2];
12728 i66 = i10 + 32 | 0;
12729 i61 = i16 + 32 | 0;
12730 HEAP32[i66 >> 2] = HEAP32[i61 >> 2];
12731 HEAP32[i66 + 4 >> 2] = HEAP32[i61 + 4 >> 2];
12732 HEAP32[i66 + 8 >> 2] = HEAP32[i61 + 8 >> 2];
12733 HEAP32[i66 + 12 >> 2] = HEAP32[i61 + 12 >> 2];
12734 i61 = i63;
12735 i66 = i16 + 48 | 0;
12736 HEAP32[i61 >> 2] = HEAP32[i66 >> 2];
12737 HEAP32[i61 + 4 >> 2] = HEAP32[i66 + 4 >> 2];
12738 HEAP32[i61 + 8 >> 2] = HEAP32[i66 + 8 >> 2];
12739 HEAP32[i61 + 12 >> 2] = HEAP32[i66 + 12 >> 2];
12740 } else {
12741 __ZNK11btTransformmlERKS_(i17, (HEAP32[i9 >> 2] | 0) + 4 | 0, i8);
12742 i8 = i10;
12743 i9 = i17;
12744 HEAP32[i8 >> 2] = HEAP32[i9 >> 2];
12745 HEAP32[i8 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
12746 HEAP32[i8 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
12747 HEAP32[i8 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
12748 i9 = i10 + 16 | 0;
12749 i8 = i17 + 16 | 0;
12750 HEAP32[i9 >> 2] = HEAP32[i8 >> 2];
12751 HEAP32[i9 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
12752 HEAP32[i9 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
12753 HEAP32[i9 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
12754 i8 = i10 + 32 | 0;
12755 i10 = i17 + 32 | 0;
12756 HEAP32[i8 >> 2] = HEAP32[i10 >> 2];
12757 HEAP32[i8 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
12758 HEAP32[i8 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
12759 HEAP32[i8 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
12760 i10 = i63;
12761 i8 = i17 + 48 | 0;
12762 HEAP32[i10 >> 2] = HEAP32[i8 >> 2];
12763 HEAP32[i10 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
12764 HEAP32[i10 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
12765 HEAP32[i10 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
12766 }
12767 i8 = i18;
12768 i10 = i63;
12769 HEAP32[i8 >> 2] = HEAP32[i10 >> 2];
12770 HEAP32[i8 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
12771 HEAP32[i8 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
12772 HEAP32[i8 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
12773 HEAPF32[i19 >> 2] = +HEAPF32[i7 >> 2];
12774 HEAPF32[i19 + 4 >> 2] = +HEAPF32[i53 >> 2];
12775 HEAPF32[i19 + 8 >> 2] = +HEAPF32[i56 >> 2];
12776 HEAPF32[i19 + 12 >> 2] = 0.0;
12777 HEAPF32[i20 >> 2] = +HEAPF32[i11 >> 2];
12778 HEAPF32[i20 + 4 >> 2] = +HEAPF32[i50 >> 2];
12779 HEAPF32[i20 + 8 >> 2] = +HEAPF32[i57 >> 2];
12780 HEAPF32[i20 + 12 >> 2] = 0.0;
12781 i57 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
12782 i50 = HEAP32[(HEAP32[i57 >> 2] | 0) + 60 >> 2] | 0;
12783 _memset(i21 | 0, 0, 16);
12784 FUNCTION_TABLE_viiiiffffiif[i50 & 1](i57, i18, i19, i20, d44, d44, -0.0 - d45 - d46, d46 - d45, i21, 1, 10.0);
12785 STACKTOP = i3;
12786 return;
12787 }
12788 case 9:
12789 case 6:
12790 {
12791 i21 = i2;
12792 i20 = i2 + 1056 | 0;
12793 i19 = i22;
12794 i18 = i20;
12795 HEAP32[i19 >> 2] = HEAP32[i18 >> 2];
12796 HEAP32[i19 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
12797 HEAP32[i19 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
12798 HEAP32[i19 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
12799 i57 = i22 + 16 | 0;
12800 i50 = i20 + 16 | 0;
12801 HEAP32[i57 >> 2] = HEAP32[i50 >> 2];
12802 HEAP32[i57 + 4 >> 2] = HEAP32[i50 + 4 >> 2];
12803 HEAP32[i57 + 8 >> 2] = HEAP32[i50 + 8 >> 2];
12804 HEAP32[i57 + 12 >> 2] = HEAP32[i50 + 12 >> 2];
12805 i11 = i22 + 32 | 0;
12806 i56 = i20 + 32 | 0;
12807 HEAP32[i11 >> 2] = HEAP32[i56 >> 2];
12808 HEAP32[i11 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
12809 HEAP32[i11 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
12810 HEAP32[i11 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
12811 i53 = i22 + 48 | 0;
12812 i7 = i20 + 48 | 0;
12813 HEAP32[i53 >> 2] = HEAP32[i7 >> 2];
12814 HEAP32[i53 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
12815 HEAP32[i53 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
12816 HEAP32[i53 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
12817 if ((i42 & 1 | 0) == 0) {
12818 i20 = i2 + 1120 | 0;
12819 HEAP32[i19 >> 2] = HEAP32[i20 >> 2];
12820 HEAP32[i19 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
12821 HEAP32[i19 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
12822 HEAP32[i19 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
12823 i20 = i2 + 1136 | 0;
12824 HEAP32[i57 >> 2] = HEAP32[i20 >> 2];
12825 HEAP32[i57 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
12826 HEAP32[i57 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
12827 HEAP32[i57 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
12828 i20 = i2 + 1152 | 0;
12829 HEAP32[i11 >> 2] = HEAP32[i20 >> 2];
12830 HEAP32[i11 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
12831 HEAP32[i11 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
12832 HEAP32[i11 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
12833 i20 = i2 + 1168 | 0;
12834 HEAP32[i53 >> 2] = HEAP32[i20 >> 2];
12835 HEAP32[i53 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
12836 HEAP32[i53 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
12837 HEAP32[i53 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
12838 } else {
12839 i20 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
12840 FUNCTION_TABLE_viif[HEAP32[(HEAP32[i20 >> 2] | 0) + 56 >> 2] & 3](i20, i22, d44);
12841 i20 = i2 + 1120 | 0;
12842 HEAP32[i19 >> 2] = HEAP32[i20 >> 2];
12843 HEAP32[i19 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
12844 HEAP32[i19 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
12845 HEAP32[i19 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
12846 i20 = i2 + 1136 | 0;
12847 HEAP32[i57 >> 2] = HEAP32[i20 >> 2];
12848 HEAP32[i57 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
12849 HEAP32[i57 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
12850 HEAP32[i57 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
12851 i20 = i2 + 1152 | 0;
12852 HEAP32[i11 >> 2] = HEAP32[i20 >> 2];
12853 HEAP32[i11 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
12854 HEAP32[i11 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
12855 HEAP32[i11 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
12856 i20 = i2 + 1168 | 0;
12857 HEAP32[i53 >> 2] = HEAP32[i20 >> 2];
12858 HEAP32[i53 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
12859 HEAP32[i53 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
12860 HEAP32[i53 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
12861 i20 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
12862 FUNCTION_TABLE_viif[HEAP32[(HEAP32[i20 >> 2] | 0) + 56 >> 2] & 3](i20, i22, d44);
12863 }
12864 if ((i43 & 1 | 0) == 0) {
12865 STACKTOP = i3;
12866 return;
12867 }
12868 HEAP32[i19 >> 2] = HEAP32[i18 >> 2];
12869 HEAP32[i19 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
12870 HEAP32[i19 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
12871 HEAP32[i19 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
12872 HEAP32[i57 >> 2] = HEAP32[i50 >> 2];
12873 HEAP32[i57 + 4 >> 2] = HEAP32[i50 + 4 >> 2];
12874 HEAP32[i57 + 8 >> 2] = HEAP32[i50 + 8 >> 2];
12875 HEAP32[i57 + 12 >> 2] = HEAP32[i50 + 12 >> 2];
12876 HEAP32[i11 >> 2] = HEAP32[i56 >> 2];
12877 HEAP32[i11 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
12878 HEAP32[i11 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
12879 HEAP32[i11 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
12880 HEAP32[i53 >> 2] = HEAP32[i7 >> 2];
12881 HEAP32[i53 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
12882 HEAP32[i53 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
12883 HEAP32[i53 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
12884 i20 = i2 + 1168 | 0;
12885 i10 = i20;
12886 HEAPF32[i23 >> 2] = +HEAPF32[i22 + 8 >> 2];
12887 HEAPF32[i23 + 4 >> 2] = +HEAPF32[i22 + 24 >> 2];
12888 HEAPF32[i23 + 8 >> 2] = +HEAPF32[i22 + 40 >> 2];
12889 HEAPF32[i23 + 12 >> 2] = 0.0;
12890 i8 = i22 | 0;
12891 i63 = i22 + 16 | 0;
12892 i17 = i22 + 32 | 0;
12893 i9 = i24 | 0;
12894 HEAPF32[i9 >> 2] = +HEAPF32[i8 >> 2];
12895 i66 = i24 + 4 | 0;
12896 HEAPF32[i66 >> 2] = +HEAPF32[i63 >> 2];
12897 i61 = i24 + 8 | 0;
12898 HEAPF32[i61 >> 2] = +HEAPF32[i17 >> 2];
12899 i16 = i24 + 12 | 0;
12900 HEAPF32[i16 >> 2] = 0.0;
12901 i60 = i2 + 924 | 0;
12902 d45 = +HEAPF32[i60 >> 2];
12903 d46 = +HEAPF32[i60 + 4 >> 2];
12904 i60 = i2 + 988 | 0;
12905 d47 = +HEAPF32[i60 >> 2];
12906 d48 = +HEAPF32[i60 + 4 >> 2];
12907 i60 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
12908 i15 = HEAP32[(HEAP32[i60 >> 2] | 0) + 64 >> 2] | 0;
12909 _memset(i25 | 0, 0, 16);
12910 FUNCTION_TABLE_viiiifffffif[i15 & 1](i60, i10, i23, i24, d44 * .8999999761581421, d45, d46, d47, d48, i25, 10.0);
12911 d48 = +HEAPF32[i22 + 20 >> 2];
12912 d47 = +HEAPF32[i22 + 36 >> 2];
12913 HEAPF32[i9 >> 2] = +HEAPF32[i22 + 4 >> 2];
12914 HEAPF32[i66 >> 2] = d48;
12915 HEAPF32[i61 >> 2] = d47;
12916 HEAPF32[i16 >> 2] = 0.0;
12917 d47 = +__ZNK23btGeneric6DofConstraint8getAngleEi(i21, 1);
12918 d48 = +__ZNK23btGeneric6DofConstraint8getAngleEi(i21, 2);
12919 d46 = +Math_cos(+d47);
12920 d45 = +Math_sin(+d47);
12921 d47 = +Math_cos(+d48);
12922 d49 = +Math_sin(+d48);
12923 d48 = +HEAPF32[i9 >> 2];
12924 d69 = +HEAPF32[i66 >> 2];
12925 d70 = +HEAPF32[i61 >> 2];
12926 HEAPF32[i26 >> 2] = d46 * d47 * d48 + d46 * d49 * d69 - d45 * d70;
12927 HEAPF32[i26 + 4 >> 2] = d48 * (-0.0 - d49) + d47 * d69;
12928 HEAPF32[i26 + 8 >> 2] = d45 * d47 * d48 + d45 * d49 * d69 + d46 * d70;
12929 i61 = i2 + 1120 | 0;
12930 HEAP32[i19 >> 2] = HEAP32[i61 >> 2];
12931 HEAP32[i19 + 4 >> 2] = HEAP32[i61 + 4 >> 2];
12932 HEAP32[i19 + 8 >> 2] = HEAP32[i61 + 8 >> 2];
12933 HEAP32[i19 + 12 >> 2] = HEAP32[i61 + 12 >> 2];
12934 i61 = i2 + 1136 | 0;
12935 HEAP32[i57 >> 2] = HEAP32[i61 >> 2];
12936 HEAP32[i57 + 4 >> 2] = HEAP32[i61 + 4 >> 2];
12937 HEAP32[i57 + 8 >> 2] = HEAP32[i61 + 8 >> 2];
12938 HEAP32[i57 + 12 >> 2] = HEAP32[i61 + 12 >> 2];
12939 i61 = i2 + 1152 | 0;
12940 HEAP32[i11 >> 2] = HEAP32[i61 >> 2];
12941 HEAP32[i11 + 4 >> 2] = HEAP32[i61 + 4 >> 2];
12942 HEAP32[i11 + 8 >> 2] = HEAP32[i61 + 8 >> 2];
12943 HEAP32[i11 + 12 >> 2] = HEAP32[i61 + 12 >> 2];
12944 i61 = i20;
12945 HEAP32[i53 >> 2] = HEAP32[i61 >> 2];
12946 HEAP32[i53 + 4 >> 2] = HEAP32[i61 + 4 >> 2];
12947 HEAP32[i53 + 8 >> 2] = HEAP32[i61 + 8 >> 2];
12948 HEAP32[i53 + 12 >> 2] = HEAP32[i61 + 12 >> 2];
12949 d70 = -0.0 - +HEAPF32[i63 >> 2];
12950 d46 = -0.0 - +HEAPF32[i17 >> 2];
12951 HEAPF32[i27 >> 2] = -0.0 - +HEAPF32[i8 >> 2];
12952 HEAPF32[i27 + 4 >> 2] = d70;
12953 HEAPF32[i27 + 8 >> 2] = d46;
12954 HEAPF32[i27 + 12 >> 2] = 0.0;
12955 i8 = i2 + 860 | 0;
12956 d46 = +HEAPF32[i8 >> 2];
12957 d70 = +HEAPF32[i8 + 4 >> 2];
12958 do {
12959 if (d46 > d70) {
12960 i8 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
12961 i17 = HEAP32[(HEAP32[i8 >> 2] | 0) + 60 >> 2] | 0;
12962 _memset(i28 | 0, 0, 16);
12963 FUNCTION_TABLE_viiiiffffiif[i17 & 1](i8, i10, i27, i26, d44, d44, -3.1415927410125732, 3.1415927410125732, i28, 0, 10.0);
12964 } else {
12965 if (d46 >= d70) {
12966 break;
12967 }
12968 i8 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
12969 i17 = HEAP32[(HEAP32[i8 >> 2] | 0) + 60 >> 2] | 0;
12970 _memset(i29 | 0, 0, 16);
12971 FUNCTION_TABLE_viiiiffffiif[i17 & 1](i8, i10, i27, i26, d44, d44, d46, d70, i29, 1, 10.0);
12972 }
12973 } while (0);
12974 HEAP32[i19 >> 2] = HEAP32[i18 >> 2];
12975 HEAP32[i19 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
12976 HEAP32[i19 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
12977 HEAP32[i19 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
12978 HEAP32[i57 >> 2] = HEAP32[i50 >> 2];
12979 HEAP32[i57 + 4 >> 2] = HEAP32[i50 + 4 >> 2];
12980 HEAP32[i57 + 8 >> 2] = HEAP32[i50 + 8 >> 2];
12981 HEAP32[i57 + 12 >> 2] = HEAP32[i50 + 12 >> 2];
12982 HEAP32[i11 >> 2] = HEAP32[i56 >> 2];
12983 HEAP32[i11 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
12984 HEAP32[i11 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
12985 HEAP32[i11 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
12986 HEAP32[i53 >> 2] = HEAP32[i7 >> 2];
12987 HEAP32[i53 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
12988 HEAP32[i53 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
12989 HEAP32[i53 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
12990 i7 = i2 + 672 | 0;
12991 i53 = i30;
12992 i56 = i7;
12993 HEAP32[i53 >> 2] = HEAP32[i56 >> 2];
12994 HEAP32[i53 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
12995 HEAP32[i53 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
12996 HEAP32[i53 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
12997 i56 = i31;
12998 i53 = i7 + 16 | 0;
12999 HEAP32[i56 >> 2] = HEAP32[i53 >> 2];
13000 HEAP32[i56 + 4 >> 2] = HEAP32[i53 + 4 >> 2];
13001 HEAP32[i56 + 8 >> 2] = HEAP32[i53 + 8 >> 2];
13002 HEAP32[i56 + 12 >> 2] = HEAP32[i53 + 12 >> 2];
13003 i53 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
13004 i56 = HEAP32[(HEAP32[i53 >> 2] | 0) + 72 >> 2] | 0;
13005 _memset(i32 | 0, 0, 16);
13006 FUNCTION_TABLE_viiiii[i56 & 63](i53, i30, i31, i22, i32);
13007 STACKTOP = i3;
13008 return;
13009 }
13010 case 7:
13011 {
13012 i32 = i2 + 816 | 0;
13013 i22 = i33;
13014 i31 = i32;
13015 HEAP32[i22 >> 2] = HEAP32[i31 >> 2];
13016 HEAP32[i22 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
13017 HEAP32[i22 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
13018 HEAP32[i22 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
13019 i31 = i33 + 16 | 0;
13020 i30 = i32 + 16 | 0;
13021 HEAP32[i31 >> 2] = HEAP32[i30 >> 2];
13022 HEAP32[i31 + 4 >> 2] = HEAP32[i30 + 4 >> 2];
13023 HEAP32[i31 + 8 >> 2] = HEAP32[i30 + 8 >> 2];
13024 HEAP32[i31 + 12 >> 2] = HEAP32[i30 + 12 >> 2];
13025 i30 = i33 + 32 | 0;
13026 i53 = i32 + 32 | 0;
13027 HEAP32[i30 >> 2] = HEAP32[i53 >> 2];
13028 HEAP32[i30 + 4 >> 2] = HEAP32[i53 + 4 >> 2];
13029 HEAP32[i30 + 8 >> 2] = HEAP32[i53 + 8 >> 2];
13030 HEAP32[i30 + 12 >> 2] = HEAP32[i53 + 12 >> 2];
13031 i53 = i33 + 48 | 0;
13032 i56 = i32 + 48 | 0;
13033 HEAP32[i53 >> 2] = HEAP32[i56 >> 2];
13034 HEAP32[i53 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
13035 HEAP32[i53 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
13036 HEAP32[i53 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
13037 if ((i42 & 1 | 0) == 0) {
13038 i42 = i2 + 880 | 0;
13039 HEAP32[i22 >> 2] = HEAP32[i42 >> 2];
13040 HEAP32[i22 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
13041 HEAP32[i22 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
13042 HEAP32[i22 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
13043 i42 = i2 + 896 | 0;
13044 HEAP32[i31 >> 2] = HEAP32[i42 >> 2];
13045 HEAP32[i31 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
13046 HEAP32[i31 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
13047 HEAP32[i31 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
13048 i42 = i2 + 912 | 0;
13049 HEAP32[i30 >> 2] = HEAP32[i42 >> 2];
13050 HEAP32[i30 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
13051 HEAP32[i30 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
13052 HEAP32[i30 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
13053 i42 = i2 + 928 | 0;
13054 HEAP32[i53 >> 2] = HEAP32[i42 >> 2];
13055 HEAP32[i53 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
13056 HEAP32[i53 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
13057 HEAP32[i53 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
13058 } else {
13059 i42 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
13060 FUNCTION_TABLE_viif[HEAP32[(HEAP32[i42 >> 2] | 0) + 56 >> 2] & 3](i42, i33, d44);
13061 i42 = i2 + 880 | 0;
13062 HEAP32[i22 >> 2] = HEAP32[i42 >> 2];
13063 HEAP32[i22 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
13064 HEAP32[i22 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
13065 HEAP32[i22 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
13066 i42 = i2 + 896 | 0;
13067 HEAP32[i31 >> 2] = HEAP32[i42 >> 2];
13068 HEAP32[i31 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
13069 HEAP32[i31 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
13070 HEAP32[i31 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
13071 i42 = i2 + 912 | 0;
13072 HEAP32[i30 >> 2] = HEAP32[i42 >> 2];
13073 HEAP32[i30 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
13074 HEAP32[i30 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
13075 HEAP32[i30 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
13076 i42 = i2 + 928 | 0;
13077 HEAP32[i53 >> 2] = HEAP32[i42 >> 2];
13078 HEAP32[i53 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
13079 HEAP32[i53 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
13080 HEAP32[i53 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
13081 i42 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
13082 FUNCTION_TABLE_viif[HEAP32[(HEAP32[i42 >> 2] | 0) + 56 >> 2] & 3](i42, i33, d44);
13083 }
13084 if ((i43 & 1 | 0) == 0) {
13085 STACKTOP = i3;
13086 return;
13087 }
13088 i43 = (HEAP8[i2 + 172 | 0] | 0) != 0 ? i32 : i2 + 880 | 0;
13089 d70 = +HEAPF32[i43 >> 2];
13090 d46 = +HEAPF32[i43 + 4 >> 2];
13091 d69 = +HEAPF32[i43 + 16 >> 2];
13092 d49 = +HEAPF32[i43 + 20 >> 2];
13093 d45 = +HEAPF32[i43 + 32 >> 2];
13094 d48 = +HEAPF32[i43 + 36 >> 2];
13095 d47 = +HEAPF32[i43 + 48 >> 2];
13096 d71 = +HEAPF32[i43 + 52 >> 2];
13097 d72 = +HEAPF32[i43 + 56 >> 2];
13098 d73 = +HEAPF32[i2 + 176 >> 2];
13099 d74 = d46 * 0.0;
13100 d75 = +HEAPF32[i43 + 8 >> 2] * 0.0;
13101 d76 = d49 * 0.0;
13102 d77 = +HEAPF32[i43 + 24 >> 2] * 0.0;
13103 d78 = d48 * 0.0;
13104 d79 = +HEAPF32[i43 + 40 >> 2] * 0.0;
13105 HEAPF32[i34 >> 2] = d47 + (d75 + (d74 + d70 * d73));
13106 HEAPF32[i34 + 4 >> 2] = d71 + (d77 + (d76 + d69 * d73));
13107 HEAPF32[i34 + 8 >> 2] = d72 + (d79 + (d78 + d45 * d73));
13108 HEAPF32[i34 + 12 >> 2] = 0.0;
13109 d73 = +HEAPF32[i2 + 180 >> 2];
13110 HEAPF32[i35 >> 2] = d47 + (d75 + (d74 + d70 * d73));
13111 HEAPF32[i35 + 4 >> 2] = d71 + (d77 + (d76 + d69 * d73));
13112 HEAPF32[i35 + 8 >> 2] = d72 + (d79 + (d78 + d45 * d73));
13113 HEAPF32[i35 + 12 >> 2] = 0.0;
13114 i43 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
13115 i32 = HEAP32[(HEAP32[i43 >> 2] | 0) + 8 >> 2] | 0;
13116 _memset(i36 | 0, 0, 16);
13117 FUNCTION_TABLE_viiii[i32 & 127](i43, i34, i35, i36);
13118 HEAPF32[i37 >> 2] = d70;
13119 HEAPF32[i37 + 4 >> 2] = d69;
13120 HEAPF32[i37 + 8 >> 2] = d45;
13121 HEAPF32[i37 + 12 >> 2] = 0.0;
13122 HEAPF32[i38 >> 2] = d46;
13123 HEAPF32[i38 + 4 >> 2] = d49;
13124 HEAPF32[i38 + 8 >> 2] = d48;
13125 HEAPF32[i38 + 12 >> 2] = 0.0;
13126 d48 = +HEAPF32[i2 + 184 >> 2];
13127 d49 = +HEAPF32[i2 + 188 >> 2];
13128 i36 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
13129 i40 = HEAP32[(HEAP32[i36 >> 2] | 0) + 60 >> 2] | 0;
13130 _memset(i39 | 0, 0, 16);
13131 FUNCTION_TABLE_viiiiffffiif[i40 & 1](i36, i2 + 928 | 0, i37, i38, d44, d44, d48, d49, i39, 1, 10.0);
13132 STACKTOP = i3;
13133 return;
13134 }
13135 default:
13136 {
13137 STACKTOP = i3;
13138 return;
13139 }
13140 }
13141 }
13142 function __ZN20btConvexHullInternal5mergeERNS_16IntermediateHullES1_(i1, i2, i3) {
13143 i1 = i1 | 0;
13144 i2 = i2 | 0;
13145 i3 = i3 | 0;
13146 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0, i87 = 0, i88 = 0, i89 = 0, i90 = 0, i91 = 0, i92 = 0, i93 = 0, i94 = 0, i95 = 0, i96 = 0, i97 = 0, i98 = 0, i99 = 0, i100 = 0, i101 = 0, i102 = 0, i103 = 0, i104 = 0, i105 = 0, i106 = 0, i107 = 0, i108 = 0, i109 = 0, i110 = 0, i111 = 0, i112 = 0, i113 = 0, i114 = 0, i115 = 0, i116 = 0, i117 = 0, i118 = 0;
13147 i4 = STACKTOP;
13148 STACKTOP = STACKTOP + 160 | 0;
13149 i5 = i4 | 0;
13150 i6 = i4 + 8 | 0;
13151 i7 = i4 + 16 | 0;
13152 i8 = i4 + 24 | 0;
13153 i9 = i4 + 32 | 0;
13154 i10 = i4 + 48 | 0;
13155 i11 = i4 + 72 | 0;
13156 i12 = i4 + 96 | 0;
13157 i13 = i4 + 120 | 0;
13158 i14 = i4 + 144 | 0;
13159 i15 = i4 + 152 | 0;
13160 if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
13161 STACKTOP = i4;
13162 return;
13163 }
13164 if ((HEAP32[i2 + 4 >> 2] | 0) == 0) {
13165 i16 = i2;
13166 i17 = i3;
13167 HEAP32[i16 >> 2] = HEAP32[i17 >> 2];
13168 HEAP32[i16 + 4 >> 2] = HEAP32[i17 + 4 >> 2];
13169 HEAP32[i16 + 8 >> 2] = HEAP32[i17 + 8 >> 2];
13170 HEAP32[i16 + 12 >> 2] = HEAP32[i17 + 12 >> 2];
13171 STACKTOP = i4;
13172 return;
13173 }
13174 i17 = i1 + 100 | 0;
13175 HEAP32[i17 >> 2] = (HEAP32[i17 >> 2] | 0) - 1;
13176 HEAP32[i5 >> 2] = 0;
13177 HEAP32[i6 >> 2] = 0;
13178 i16 = __ZN20btConvexHullInternal15mergeProjectionERNS_16IntermediateHullES1_RPNS_6VertexES4_(0, i2, i3, i5, i6) | 0;
13179 i3 = HEAP32[i6 >> 2] | 0;
13180 if (i16) {
13181 i16 = HEAP32[i5 >> 2] | 0;
13182 i2 = HEAP32[i3 + 88 >> 2] | 0;
13183 i18 = HEAP32[i16 + 88 >> 2] | 0;
13184 i19 = i2 - i18 | 0;
13185 i20 = HEAP32[i3 + 92 >> 2] | 0;
13186 i21 = HEAP32[i16 + 92 >> 2] | 0;
13187 i22 = i20 - i21 | 0;
13188 i23 = HEAP32[i3 + 96 >> 2] | 0;
13189 i24 = HEAP32[i16 + 96 >> 2] | 0;
13190 i25 = i23 - i24 | 0;
13191 i26 = i22;
13192 i27 = (i22 | 0) < 0 ? -1 : 0;
13193 i22 = -i19 | 0;
13194 i28 = i22;
13195 i29 = (i22 | 0) < 0 ? -1 : 0;
13196 i22 = i25;
13197 i30 = (i25 | 0) < 0 ? -1 : 0;
13198 i25 = _i64Subtract(0, 0, i28, i29) | 0;
13199 i31 = ___muldi3(i22, i30, i25, tempRet0) | 0;
13200 i25 = tempRet0;
13201 i32 = ___muldi3(i22, i30, i26, i27) | 0;
13202 i30 = tempRet0;
13203 i22 = ___muldi3(i19, (i19 | 0) < 0 ? -1 : 0, i28, i29) | 0;
13204 i19 = tempRet0;
13205 i33 = ___muldi3(i26, i27, i26, i27) | 0;
13206 i34 = _i64Subtract(i22, i19, i33, tempRet0) | 0;
13207 i33 = tempRet0;
13208 i19 = HEAP32[i16 + 8 >> 2] | 0;
13209 HEAP32[i7 >> 2] = 0;
13210 if ((i19 | 0) == 0) {
13211 i35 = 0;
13212 } else {
13213 i22 = _i64Subtract(0, 0, i26, i27) | 0;
13214 i36 = tempRet0;
13215 i37 = i19;
13216 i38 = 0;
13217 while (1) {
13218 i39 = HEAP32[i37 + 12 >> 2] | 0;
13219 i40 = HEAP32[i39 + 88 >> 2] | 0;
13220 i41 = i40 - i18 | 0;
13221 i42 = HEAP32[i39 + 92 >> 2] | 0;
13222 i43 = i42 - i21 | 0;
13223 i44 = i41;
13224 i45 = (i41 | 0) < 0 ? -1 : 0;
13225 i41 = i43;
13226 i46 = (i43 | 0) < 0 ? -1 : 0;
13227 i43 = ___muldi3(i41, i46, i28, i29) | 0;
13228 i47 = tempRet0;
13229 i48 = ___muldi3(i44, i45, i22, i36) | 0;
13230 do {
13231 if ((i43 | 0) == (i48 | 0) & (i47 | 0) == (tempRet0 | 0)) {
13232 i49 = HEAP32[i39 + 96 >> 2] | 0;
13233 i50 = i49 - i24 | 0;
13234 i51 = ___muldi3(i44, i45, i31, i25) | 0;
13235 i52 = tempRet0;
13236 i53 = ___muldi3(i41, i46, i32, i30) | 0;
13237 i54 = _i64Add(i53, tempRet0, i51, i52) | 0;
13238 i52 = tempRet0;
13239 i51 = ___muldi3(i50, (i50 | 0) < 0 ? -1 : 0, i34, i33) | 0;
13240 i50 = _i64Add(i54, i52, i51, tempRet0) | 0;
13241 i51 = tempRet0;
13242 i52 = 0;
13243 if (!((i51 | 0) > (i52 | 0) | (i51 | 0) == (i52 | 0) & i50 >>> 0 > 0 >>> 0)) {
13244 i55 = i38;
13245 break;
13246 }
13247 if ((i38 | 0) != 0) {
13248 i50 = (HEAP32[i38 + 4 >> 2] | 0) == (i37 | 0);
13249 if ((HEAP32[i38 >> 2] | 0) == (i37 | 0)) {
13250 if (!i50) {
13251 i55 = i38;
13252 break;
13253 }
13254 i52 = HEAP32[i38 + 12 >> 2] | 0;
13255 i51 = HEAP32[(HEAP32[i37 + 8 >> 2] | 0) + 12 >> 2] | 0;
13256 i54 = HEAP32[i51 + 88 >> 2] | 0;
13257 i53 = (HEAP32[i52 + 88 >> 2] | 0) - i54 | 0;
13258 i56 = HEAP32[i51 + 92 >> 2] | 0;
13259 i57 = HEAP32[i51 + 96 >> 2] | 0;
13260 i51 = (HEAP32[i52 + 96 >> 2] | 0) - i57 | 0;
13261 i58 = i49 - i57 | 0;
13262 i57 = Math_imul(i58, (HEAP32[i52 + 92 >> 2] | 0) - i56 | 0) | 0;
13263 i52 = i57 - (Math_imul(i51, i42 - i56 | 0) | 0) | 0;
13264 i56 = Math_imul(i51, i40 - i54 | 0) | 0;
13265 i54 = i56 - (Math_imul(i58, i53) | 0) | 0;
13266 i53 = ___muldi3(i52, (i52 | 0) < 0 ? -1 : 0, i26, i27) | 0;
13267 i52 = tempRet0;
13268 i58 = ___muldi3(i54, (i54 | 0) < 0 ? -1 : 0, i28, i29) | 0;
13269 i54 = _i64Add(i53, i52, i58, tempRet0) | 0;
13270 i58 = tempRet0;
13271 i52 = 0;
13272 i59 = (i58 | 0) > (i52 | 0) | (i58 | 0) == (i52 | 0) & i54 >>> 0 > 0 >>> 0 ? 2 : 1;
13273 } else {
13274 i59 = i50 & 1;
13275 }
13276 if ((i59 | 0) != 1) {
13277 i55 = i38;
13278 break;
13279 }
13280 }
13281 HEAP32[i7 >> 2] = i37;
13282 i55 = i37;
13283 } else {
13284 i55 = i38;
13285 }
13286 } while (0);
13287 i40 = HEAP32[i37 >> 2] | 0;
13288 if ((i40 | 0) == (i19 | 0)) {
13289 i35 = i55;
13290 break;
13291 } else {
13292 i37 = i40;
13293 i38 = i55;
13294 }
13295 }
13296 }
13297 i55 = HEAP32[i3 + 8 >> 2] | 0;
13298 HEAP32[i8 >> 2] = 0;
13299 if ((i55 | 0) == 0) {
13300 i60 = 0;
13301 } else {
13302 i38 = _i64Subtract(0, 0, i26, i27) | 0;
13303 i37 = tempRet0;
13304 i19 = i55;
13305 i59 = 0;
13306 while (1) {
13307 i24 = HEAP32[i19 + 12 >> 2] | 0;
13308 i36 = HEAP32[i24 + 88 >> 2] | 0;
13309 i22 = i36 - i2 | 0;
13310 i21 = HEAP32[i24 + 92 >> 2] | 0;
13311 i18 = i21 - i20 | 0;
13312 i40 = i22;
13313 i42 = (i22 | 0) < 0 ? -1 : 0;
13314 i22 = i18;
13315 i46 = (i18 | 0) < 0 ? -1 : 0;
13316 i18 = ___muldi3(i22, i46, i28, i29) | 0;
13317 i41 = tempRet0;
13318 i45 = ___muldi3(i40, i42, i38, i37) | 0;
13319 L958 : do {
13320 if ((i18 | 0) == (i45 | 0) & (i41 | 0) == (tempRet0 | 0)) {
13321 i44 = HEAP32[i24 + 96 >> 2] | 0;
13322 i39 = i44 - i23 | 0;
13323 i47 = ___muldi3(i40, i42, i31, i25) | 0;
13324 i48 = tempRet0;
13325 i43 = ___muldi3(i22, i46, i32, i30) | 0;
13326 i50 = _i64Add(i43, tempRet0, i47, i48) | 0;
13327 i48 = tempRet0;
13328 i47 = ___muldi3(i39, (i39 | 0) < 0 ? -1 : 0, i34, i33) | 0;
13329 i39 = _i64Add(i50, i48, i47, tempRet0) | 0;
13330 i47 = tempRet0;
13331 i48 = 0;
13332 if (!((i47 | 0) > (i48 | 0) | (i47 | 0) == (i48 | 0) & i39 >>> 0 > 0 >>> 0)) {
13333 i61 = i59;
13334 break;
13335 }
13336 do {
13337 if ((i59 | 0) != 0) {
13338 if ((HEAP32[i59 >> 2] | 0) != (i19 | 0)) {
13339 i61 = i59;
13340 break L958;
13341 }
13342 if ((HEAP32[i59 + 4 >> 2] | 0) != (i19 | 0)) {
13343 break;
13344 }
13345 i39 = HEAP32[i59 + 12 >> 2] | 0;
13346 i48 = HEAP32[(HEAP32[i19 + 8 >> 2] | 0) + 12 >> 2] | 0;
13347 i47 = HEAP32[i48 + 88 >> 2] | 0;
13348 i50 = (HEAP32[i39 + 88 >> 2] | 0) - i47 | 0;
13349 i43 = HEAP32[i48 + 92 >> 2] | 0;
13350 i54 = HEAP32[i48 + 96 >> 2] | 0;
13351 i48 = (HEAP32[i39 + 96 >> 2] | 0) - i54 | 0;
13352 i52 = i44 - i54 | 0;
13353 i54 = Math_imul(i52, (HEAP32[i39 + 92 >> 2] | 0) - i43 | 0) | 0;
13354 i39 = i54 - (Math_imul(i48, i21 - i43 | 0) | 0) | 0;
13355 i43 = Math_imul(i48, i36 - i47 | 0) | 0;
13356 i47 = i43 - (Math_imul(i52, i50) | 0) | 0;
13357 i50 = ___muldi3(i39, (i39 | 0) < 0 ? -1 : 0, i26, i27) | 0;
13358 i39 = tempRet0;
13359 i52 = ___muldi3(i47, (i47 | 0) < 0 ? -1 : 0, i28, i29) | 0;
13360 i47 = _i64Add(i50, i39, i52, tempRet0) | 0;
13361 i52 = tempRet0;
13362 i39 = 0;
13363 if (!((i52 | 0) > (i39 | 0) | (i52 | 0) == (i39 | 0) & i47 >>> 0 > 0 >>> 0)) {
13364 i61 = i59;
13365 break L958;
13366 }
13367 }
13368 } while (0);
13369 HEAP32[i8 >> 2] = i19;
13370 i61 = i19;
13371 } else {
13372 i61 = i59;
13373 }
13374 } while (0);
13375 i36 = HEAP32[i19 >> 2] | 0;
13376 if ((i36 | 0) == (i55 | 0)) {
13377 i60 = i61;
13378 break;
13379 } else {
13380 i19 = i36;
13381 i59 = i61;
13382 }
13383 }
13384 }
13385 do {
13386 if ((i35 | 0) == 0 & (i60 | 0) == 0) {
13387 i62 = i16;
13388 i63 = i3;
13389 } else {
13390 __ZN20btConvexHullInternal24findEdgeForCoplanarFacesEPNS_6VertexES1_RPNS_4EdgeES4_S1_S1_(i1, i16, i3, i7, i8, 0, 0);
13391 i61 = HEAP32[i7 >> 2] | 0;
13392 if ((i61 | 0) == 0) {
13393 i64 = i16;
13394 } else {
13395 i59 = HEAP32[i61 + 12 >> 2] | 0;
13396 HEAP32[i5 >> 2] = i59;
13397 i64 = i59;
13398 }
13399 i59 = HEAP32[i8 >> 2] | 0;
13400 if ((i59 | 0) == 0) {
13401 i62 = i64;
13402 i63 = i3;
13403 break;
13404 }
13405 i61 = HEAP32[i59 + 12 >> 2] | 0;
13406 HEAP32[i6 >> 2] = i61;
13407 i62 = i64;
13408 i63 = i61;
13409 }
13410 } while (0);
13411 i65 = HEAP32[i63 + 88 >> 2] | 0;
13412 i66 = (HEAP32[i63 + 96 >> 2] | 0) + 1 | 0;
13413 i67 = i62;
13414 i68 = i63;
13415 } else {
13416 i65 = (HEAP32[i3 + 88 >> 2] | 0) + 1 | 0;
13417 i66 = HEAP32[i3 + 96 >> 2] | 0;
13418 i67 = HEAP32[i5 >> 2] | 0;
13419 i68 = i3;
13420 }
13421 i3 = HEAP32[i68 + 92 >> 2] | 0;
13422 i63 = i9 | 0;
13423 i62 = i9 + 4 | 0;
13424 i64 = i9 + 8 | 0;
13425 i8 = i9 + 12 | 0;
13426 i16 = i10 | 0;
13427 i7 = i10 + 8 | 0;
13428 i60 = i10 + 16 | 0;
13429 i35 = i11 | 0;
13430 i61 = i11 + 8 | 0;
13431 i59 = i11 + 16 | 0;
13432 i19 = i12 + 16 | 0;
13433 i55 = i12 + 8 | 0;
13434 i29 = i13 + 16 | 0;
13435 i28 = i13 + 8 | 0;
13436 i27 = i1 + 48 | 0;
13437 i26 = i1 + 116 | 0;
13438 i33 = i1 + 120 | 0;
13439 i34 = i1 + 56 | 0;
13440 i30 = i12;
13441 i32 = i13;
13442 i25 = 0;
13443 i31 = 0;
13444 i23 = 0;
13445 i37 = 0;
13446 i38 = 1;
13447 i20 = 0;
13448 i2 = 0;
13449 i36 = 0;
13450 i21 = 0;
13451 i46 = i65;
13452 i65 = i3;
13453 i22 = i66;
13454 i66 = i68;
13455 i42 = i67;
13456 i40 = i3;
13457 while (1) {
13458 i3 = i42 + 88 | 0;
13459 i24 = (HEAP32[i66 + 88 >> 2] | 0) - (HEAP32[i3 >> 2] | 0) | 0;
13460 i41 = i42 + 92 | 0;
13461 i45 = i40 - (HEAP32[i41 >> 2] | 0) | 0;
13462 i18 = i42 + 96 | 0;
13463 i44 = (HEAP32[i66 + 96 >> 2] | 0) - (HEAP32[i18 >> 2] | 0) | 0;
13464 HEAP32[i63 >> 2] = i24;
13465 HEAP32[i62 >> 2] = i45;
13466 HEAP32[i64 >> 2] = i44;
13467 HEAP32[i8 >> 2] = -1;
13468 i47 = i46 - (HEAP32[i3 >> 2] | 0) | 0;
13469 i3 = i65 - (HEAP32[i41 >> 2] | 0) | 0;
13470 i41 = i22 - (HEAP32[i18 >> 2] | 0) | 0;
13471 i18 = Math_imul(i3, i44) | 0;
13472 i39 = i18 - (Math_imul(i41, i45) | 0) | 0;
13473 i18 = i39;
13474 i52 = (i39 | 0) < 0 ? -1 : 0;
13475 i39 = Math_imul(i41, i24) | 0;
13476 i41 = i39 - (Math_imul(i47, i44) | 0) | 0;
13477 i39 = i41;
13478 i50 = (i41 | 0) < 0 ? -1 : 0;
13479 i41 = Math_imul(i47, i45) | 0;
13480 i47 = i41 - (Math_imul(i3, i24) | 0) | 0;
13481 i3 = i47;
13482 i41 = (i47 | 0) < 0 ? -1 : 0;
13483 HEAP32[i16 >> 2] = i18;
13484 HEAP32[i16 + 4 >> 2] = i52;
13485 HEAP32[i7 >> 2] = i39;
13486 HEAP32[i7 + 4 >> 2] = i50;
13487 HEAP32[i60 >> 2] = i3;
13488 HEAP32[i60 + 4 >> 2] = i41;
13489 i47 = i45;
13490 i43 = (i45 | 0) < 0 ? -1 : 0;
13491 i45 = ___muldi3(i3, i41, i47, i43) | 0;
13492 i48 = tempRet0;
13493 i54 = i44;
13494 i58 = (i44 | 0) < 0 ? -1 : 0;
13495 i44 = ___muldi3(i39, i50, i54, i58) | 0;
13496 i53 = _i64Subtract(i45, i48, i44, tempRet0) | 0;
13497 i44 = tempRet0;
13498 i48 = ___muldi3(i18, i52, i54, i58) | 0;
13499 i58 = tempRet0;
13500 i54 = i24;
13501 i45 = (i24 | 0) < 0 ? -1 : 0;
13502 i24 = ___muldi3(i3, i41, i54, i45) | 0;
13503 i41 = _i64Subtract(i48, i58, i24, tempRet0) | 0;
13504 i24 = tempRet0;
13505 i58 = ___muldi3(i39, i50, i54, i45) | 0;
13506 i45 = tempRet0;
13507 i54 = ___muldi3(i18, i52, i47, i43) | 0;
13508 i43 = _i64Subtract(i58, i45, i54, tempRet0) | 0;
13509 HEAP32[i35 >> 2] = i53;
13510 HEAP32[i35 + 4 >> 2] = i44;
13511 HEAP32[i61 >> 2] = i41;
13512 HEAP32[i61 + 4 >> 2] = i24;
13513 HEAP32[i59 >> 2] = i43;
13514 HEAP32[i59 + 4 >> 2] = tempRet0;
13515 _memset(i30 | 0, 0, 20);
13516 i43 = __ZN20btConvexHullInternal12findMaxAngleEbPKNS_6VertexERKNS_7Point32ERKNS_7Point64ES8_RNS_10Rational64E(i1, 0, i42, i9, i10, i11, i12) | 0;
13517 _memset(i32 | 0, 0, 20);
13518 i69 = HEAP32[i6 >> 2] | 0;
13519 i24 = __ZN20btConvexHullInternal12findMaxAngleEbPKNS_6VertexERKNS_7Point32ERKNS_7Point64ES8_RNS_10Rational64E(i1, 1, i69, i9, i10, i11, i13) | 0;
13520 i41 = (i43 | 0) != 0;
13521 i44 = i41 ^ 1;
13522 i53 = (i24 | 0) == 0;
13523 if (i53 & i44) {
13524 i70 = 753;
13525 break;
13526 }
13527 if (i53 | i44) {
13528 i71 = i41 ? -1 : 1;
13529 } else {
13530 i71 = __ZNK20btConvexHullInternal10Rational647compareERKS0_(i12, i13) | 0;
13531 }
13532 do {
13533 if (i38) {
13534 i70 = 765;
13535 } else {
13536 if ((i71 | 0) > -1) {
13537 if ((HEAP32[i29 >> 2] | 0) >= 0) {
13538 i70 = 765;
13539 break;
13540 }
13541 if ((HEAP32[i28 >> 2] | 0) == 0 & (HEAP32[i28 + 4 >> 2] | 0) == 0) {
13542 i72 = i23;
13543 i73 = i37;
13544 i74 = i36;
13545 i75 = i21;
13546 i70 = 772;
13547 break;
13548 } else {
13549 i70 = 765;
13550 break;
13551 }
13552 }
13553 if ((HEAP32[i19 >> 2] | 0) >= 0) {
13554 i70 = 765;
13555 break;
13556 }
13557 if (!((HEAP32[i55 >> 2] | 0) == 0 & (HEAP32[i55 + 4 >> 2] | 0) == 0)) {
13558 i70 = 765;
13559 break;
13560 }
13561 HEAP32[i14 >> 2] = i43;
13562 HEAP32[i15 >> 2] = i24;
13563 i76 = i22;
13564 i77 = i65;
13565 i78 = i46;
13566 i79 = i21;
13567 i80 = i36;
13568 i81 = i2;
13569 i82 = i20;
13570 i83 = i43;
13571 i84 = i37;
13572 i85 = i23;
13573 i70 = 794;
13574 }
13575 } while (0);
13576 if ((i70 | 0) == 765) {
13577 i70 = 0;
13578 i41 = HEAP32[i5 >> 2] | 0;
13579 i44 = __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i27) | 0;
13580 i53 = __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i27) | 0;
13581 i54 = i44 + 8 | 0;
13582 HEAP32[i54 >> 2] = i53;
13583 HEAP32[i53 + 8 >> 2] = i44;
13584 HEAP32[i44 + 20 >> 2] = HEAP32[i17 >> 2];
13585 HEAP32[i53 + 20 >> 2] = HEAP32[i17 >> 2];
13586 HEAP32[i44 + 12 >> 2] = i69;
13587 HEAP32[i53 + 12 >> 2] = i41;
13588 HEAP32[i44 + 16 >> 2] = 0;
13589 HEAP32[i53 + 16 >> 2] = 0;
13590 i53 = (HEAP32[i26 >> 2] | 0) + 1 | 0;
13591 HEAP32[i26 >> 2] = i53;
13592 if ((i53 | 0) > (HEAP32[i33 >> 2] | 0)) {
13593 HEAP32[i33 >> 2] = i53;
13594 }
13595 if ((i37 | 0) == 0) {
13596 i86 = i44;
13597 } else {
13598 HEAP32[i37 + 4 >> 2] = i44;
13599 i86 = i23;
13600 }
13601 HEAP32[i44 >> 2] = i37;
13602 i53 = HEAP32[i54 >> 2] | 0;
13603 if ((i21 | 0) == 0) {
13604 i87 = i53;
13605 } else {
13606 HEAP32[i21 >> 2] = i53;
13607 i87 = i36;
13608 }
13609 HEAP32[i53 + 4 >> 2] = i21;
13610 i72 = i86;
13611 i73 = i44;
13612 i74 = i87;
13613 i75 = i53;
13614 i70 = 772;
13615 }
13616 do {
13617 if ((i70 | 0) == 772) {
13618 i70 = 0;
13619 HEAP32[i14 >> 2] = i43;
13620 HEAP32[i15 >> 2] = i24;
13621 if ((i71 | 0) == 0) {
13622 __ZN20btConvexHullInternal24findEdgeForCoplanarFacesEPNS_6VertexES1_RPNS_4EdgeES4_S1_S1_(i1, HEAP32[i5 >> 2] | 0, HEAP32[i6 >> 2] | 0, i14, i15, 0, 0);
13623 i88 = HEAP32[i15 >> 2] | 0;
13624 } else {
13625 if ((i71 | 0) > -1) {
13626 i88 = i24;
13627 } else {
13628 i76 = i22;
13629 i77 = i65;
13630 i78 = i46;
13631 i79 = i75;
13632 i80 = i74;
13633 i81 = i2;
13634 i82 = i20;
13635 i83 = i43;
13636 i84 = i73;
13637 i85 = i72;
13638 i70 = 794;
13639 break;
13640 }
13641 }
13642 if ((i88 | 0) == 0) {
13643 i89 = i20;
13644 i90 = i2;
13645 i91 = i74;
13646 i92 = i75;
13647 i93 = i46;
13648 i94 = i65;
13649 i95 = i22;
13650 } else {
13651 i53 = (i20 | 0) != 0;
13652 do {
13653 if (i53) {
13654 i44 = HEAP32[i20 >> 2] | 0;
13655 if ((i44 | 0) == (i24 | 0)) {
13656 break;
13657 } else {
13658 i96 = i44;
13659 }
13660 while (1) {
13661 i44 = i96 | 0;
13662 i54 = HEAP32[i44 >> 2] | 0;
13663 i41 = HEAP32[i96 + 8 >> 2] | 0;
13664 if ((i54 | 0) == (i96 | 0)) {
13665 HEAP32[(HEAP32[i41 + 12 >> 2] | 0) + 8 >> 2] = 0;
13666 } else {
13667 i45 = i96 + 4 | 0;
13668 HEAP32[i54 + 4 >> 2] = HEAP32[i45 >> 2];
13669 HEAP32[HEAP32[i45 >> 2] >> 2] = i54;
13670 HEAP32[(HEAP32[i41 + 12 >> 2] | 0) + 8 >> 2] = i54;
13671 }
13672 i45 = i41 | 0;
13673 i58 = HEAP32[i45 >> 2] | 0;
13674 if ((i58 | 0) == (i41 | 0)) {
13675 HEAP32[(HEAP32[i96 + 12 >> 2] | 0) + 8 >> 2] = 0;
13676 } else {
13677 i47 = i41 + 4 | 0;
13678 HEAP32[i58 + 4 >> 2] = HEAP32[i47 >> 2];
13679 HEAP32[HEAP32[i47 >> 2] >> 2] = i58;
13680 HEAP32[(HEAP32[i96 + 12 >> 2] | 0) + 8 >> 2] = i58;
13681 }
13682 _memset(i96 | 0, 0, 20);
13683 HEAP32[i44 >> 2] = HEAP32[i34 >> 2];
13684 HEAP32[i34 >> 2] = i96;
13685 _memset(i41 | 0, 0, 20);
13686 HEAP32[i45 >> 2] = HEAP32[i34 >> 2];
13687 HEAP32[i34 >> 2] = i41;
13688 HEAP32[i26 >> 2] = (HEAP32[i26 >> 2] | 0) - 1;
13689 if ((i54 | 0) == (i24 | 0)) {
13690 break;
13691 } else {
13692 i96 = i54;
13693 }
13694 }
13695 }
13696 } while (0);
13697 if ((i75 | 0) == 0) {
13698 i97 = i53 ? i2 : i24;
13699 i98 = i74;
13700 i99 = i88;
13701 } else {
13702 if (i53) {
13703 HEAP32[i20 >> 2] = i74;
13704 HEAP32[i74 + 4 >> 2] = i20;
13705 i100 = i2;
13706 i101 = i24 + 4 | 0;
13707 } else {
13708 i54 = i24 + 4 | 0;
13709 i41 = HEAP32[i54 >> 2] | 0;
13710 HEAP32[i41 >> 2] = i74;
13711 HEAP32[i74 + 4 >> 2] = i41;
13712 i100 = i74;
13713 i101 = i54;
13714 }
13715 HEAP32[i75 >> 2] = i24;
13716 HEAP32[i101 >> 2] = i75;
13717 i97 = i100;
13718 i98 = 0;
13719 i99 = HEAP32[i15 >> 2] | 0;
13720 }
13721 i54 = HEAP32[i6 >> 2] | 0;
13722 i41 = HEAP32[i54 + 88 >> 2] | 0;
13723 i45 = HEAP32[i54 + 92 >> 2] | 0;
13724 i44 = HEAP32[i54 + 96 >> 2] | 0;
13725 HEAP32[i6 >> 2] = HEAP32[i99 + 12 >> 2];
13726 i89 = HEAP32[i99 + 8 >> 2] | 0;
13727 i90 = i97;
13728 i91 = i98;
13729 i92 = 0;
13730 i93 = i41;
13731 i94 = i45;
13732 i95 = i44;
13733 }
13734 if ((i71 | 0) >= 1) {
13735 i102 = i25;
13736 i103 = i31;
13737 i104 = i72;
13738 i105 = i73;
13739 i106 = i93;
13740 i107 = i94;
13741 i108 = i95;
13742 i109 = i92;
13743 i110 = i91;
13744 i111 = i90;
13745 i112 = i89;
13746 break;
13747 }
13748 i76 = i95;
13749 i77 = i94;
13750 i78 = i93;
13751 i79 = i92;
13752 i80 = i91;
13753 i81 = i90;
13754 i82 = i89;
13755 i83 = HEAP32[i14 >> 2] | 0;
13756 i84 = i73;
13757 i85 = i72;
13758 i70 = 794;
13759 }
13760 } while (0);
13761 do {
13762 if ((i70 | 0) == 794) {
13763 i70 = 0;
13764 if ((i83 | 0) == 0) {
13765 i102 = i25;
13766 i103 = i31;
13767 i104 = i85;
13768 i105 = i84;
13769 i106 = i78;
13770 i107 = i77;
13771 i108 = i76;
13772 i109 = i79;
13773 i110 = i80;
13774 i111 = i81;
13775 i112 = i82;
13776 break;
13777 }
13778 i24 = (i25 | 0) != 0;
13779 do {
13780 if (i24) {
13781 i44 = HEAP32[i25 + 4 >> 2] | 0;
13782 if ((i44 | 0) == (i43 | 0)) {
13783 break;
13784 } else {
13785 i113 = i44;
13786 }
13787 while (1) {
13788 i44 = i113 + 4 | 0;
13789 i45 = HEAP32[i44 >> 2] | 0;
13790 i41 = i113 | 0;
13791 i54 = HEAP32[i41 >> 2] | 0;
13792 i58 = HEAP32[i113 + 8 >> 2] | 0;
13793 if ((i54 | 0) == (i113 | 0)) {
13794 HEAP32[(HEAP32[i58 + 12 >> 2] | 0) + 8 >> 2] = 0;
13795 } else {
13796 HEAP32[i54 + 4 >> 2] = i45;
13797 HEAP32[HEAP32[i44 >> 2] >> 2] = i54;
13798 HEAP32[(HEAP32[i58 + 12 >> 2] | 0) + 8 >> 2] = i54;
13799 }
13800 i54 = i58 | 0;
13801 i44 = HEAP32[i54 >> 2] | 0;
13802 if ((i44 | 0) == (i58 | 0)) {
13803 HEAP32[(HEAP32[i113 + 12 >> 2] | 0) + 8 >> 2] = 0;
13804 } else {
13805 i47 = i58 + 4 | 0;
13806 HEAP32[i44 + 4 >> 2] = HEAP32[i47 >> 2];
13807 HEAP32[HEAP32[i47 >> 2] >> 2] = i44;
13808 HEAP32[(HEAP32[i113 + 12 >> 2] | 0) + 8 >> 2] = i44;
13809 }
13810 _memset(i113 | 0, 0, 20);
13811 HEAP32[i41 >> 2] = HEAP32[i34 >> 2];
13812 HEAP32[i34 >> 2] = i113;
13813 _memset(i58 | 0, 0, 20);
13814 HEAP32[i54 >> 2] = HEAP32[i34 >> 2];
13815 HEAP32[i34 >> 2] = i58;
13816 HEAP32[i26 >> 2] = (HEAP32[i26 >> 2] | 0) - 1;
13817 if ((i45 | 0) == (i43 | 0)) {
13818 break;
13819 } else {
13820 i113 = i45;
13821 }
13822 }
13823 }
13824 } while (0);
13825 if ((i84 | 0) == 0) {
13826 i114 = i24 ? i31 : i43;
13827 i115 = i85;
13828 i116 = i83;
13829 } else {
13830 if (i24) {
13831 HEAP32[i85 >> 2] = i25;
13832 HEAP32[i25 + 4 >> 2] = i85;
13833 i117 = i31;
13834 i118 = i43 | 0;
13835 } else {
13836 i53 = i43 | 0;
13837 i45 = HEAP32[i53 >> 2] | 0;
13838 HEAP32[i85 >> 2] = i45;
13839 HEAP32[i45 + 4 >> 2] = i85;
13840 i117 = i85;
13841 i118 = i53;
13842 }
13843 HEAP32[i118 >> 2] = i84;
13844 HEAP32[i84 + 4 >> 2] = i43;
13845 i114 = i117;
13846 i115 = 0;
13847 i116 = HEAP32[i14 >> 2] | 0;
13848 }
13849 i53 = HEAP32[i5 >> 2] | 0;
13850 i45 = HEAP32[i53 + 88 >> 2] | 0;
13851 i58 = HEAP32[i53 + 92 >> 2] | 0;
13852 i54 = HEAP32[i53 + 96 >> 2] | 0;
13853 HEAP32[i5 >> 2] = HEAP32[i116 + 12 >> 2];
13854 i102 = HEAP32[i116 + 8 >> 2] | 0;
13855 i103 = i114;
13856 i104 = i115;
13857 i105 = 0;
13858 i106 = i45;
13859 i107 = i58;
13860 i108 = i54;
13861 i109 = i79;
13862 i110 = i80;
13863 i111 = i81;
13864 i112 = i82;
13865 }
13866 } while (0);
13867 i43 = HEAP32[i5 >> 2] | 0;
13868 i54 = HEAP32[i6 >> 2] | 0;
13869 if ((i43 | 0) == (i67 | 0) & (i54 | 0) == (i68 | 0)) {
13870 break;
13871 }
13872 i25 = i102;
13873 i31 = i103;
13874 i23 = i104;
13875 i37 = i105;
13876 i38 = 0;
13877 i20 = i112;
13878 i2 = i111;
13879 i36 = i110;
13880 i21 = i109;
13881 i46 = i106;
13882 i65 = i107;
13883 i22 = i108;
13884 i66 = i54;
13885 i42 = i43;
13886 i40 = HEAP32[i54 + 92 >> 2] | 0;
13887 }
13888 if ((i70 | 0) == 753) {
13889 i70 = HEAP32[i5 >> 2] | 0;
13890 i40 = __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i27) | 0;
13891 i42 = __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i27) | 0;
13892 i27 = i40 + 8 | 0;
13893 HEAP32[i27 >> 2] = i42;
13894 HEAP32[i42 + 8 >> 2] = i40;
13895 HEAP32[i40 + 20 >> 2] = HEAP32[i17 >> 2];
13896 HEAP32[i42 + 20 >> 2] = HEAP32[i17 >> 2];
13897 HEAP32[i40 + 12 >> 2] = i69;
13898 HEAP32[i42 + 12 >> 2] = i70;
13899 HEAP32[i40 + 16 >> 2] = 0;
13900 HEAP32[i42 + 16 >> 2] = 0;
13901 i42 = (HEAP32[i26 >> 2] | 0) + 1 | 0;
13902 HEAP32[i26 >> 2] = i42;
13903 if ((i42 | 0) > (HEAP32[i33 >> 2] | 0)) {
13904 HEAP32[i33 >> 2] = i42;
13905 }
13906 HEAP32[i40 >> 2] = i40;
13907 HEAP32[i40 + 4 >> 2] = i40;
13908 HEAP32[i70 + 8 >> 2] = i40;
13909 i40 = HEAP32[i27 >> 2] | 0;
13910 HEAP32[i40 >> 2] = i40;
13911 HEAP32[i40 + 4 >> 2] = i40;
13912 HEAP32[i69 + 8 >> 2] = i40;
13913 STACKTOP = i4;
13914 return;
13915 }
13916 do {
13917 if ((i102 | 0) == 0) {
13918 HEAP32[i104 >> 2] = i105;
13919 HEAP32[i105 + 4 >> 2] = i104;
13920 HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] = i105;
13921 } else {
13922 i40 = i102 + 4 | 0;
13923 i69 = HEAP32[i40 >> 2] | 0;
13924 if ((i69 | 0) != (i103 | 0)) {
13925 i27 = i69;
13926 while (1) {
13927 i69 = i27 + 4 | 0;
13928 i70 = HEAP32[i69 >> 2] | 0;
13929 i42 = i27 | 0;
13930 i33 = HEAP32[i42 >> 2] | 0;
13931 i17 = HEAP32[i27 + 8 >> 2] | 0;
13932 if ((i33 | 0) == (i27 | 0)) {
13933 HEAP32[(HEAP32[i17 + 12 >> 2] | 0) + 8 >> 2] = 0;
13934 } else {
13935 HEAP32[i33 + 4 >> 2] = i70;
13936 HEAP32[HEAP32[i69 >> 2] >> 2] = i33;
13937 HEAP32[(HEAP32[i17 + 12 >> 2] | 0) + 8 >> 2] = i33;
13938 }
13939 i33 = i17 | 0;
13940 i69 = HEAP32[i33 >> 2] | 0;
13941 if ((i69 | 0) == (i17 | 0)) {
13942 HEAP32[(HEAP32[i27 + 12 >> 2] | 0) + 8 >> 2] = 0;
13943 } else {
13944 i66 = i17 + 4 | 0;
13945 HEAP32[i69 + 4 >> 2] = HEAP32[i66 >> 2];
13946 HEAP32[HEAP32[i66 >> 2] >> 2] = i69;
13947 HEAP32[(HEAP32[i27 + 12 >> 2] | 0) + 8 >> 2] = i69;
13948 }
13949 _memset(i27 | 0, 0, 20);
13950 HEAP32[i42 >> 2] = HEAP32[i34 >> 2];
13951 HEAP32[i34 >> 2] = i27;
13952 _memset(i17 | 0, 0, 20);
13953 HEAP32[i33 >> 2] = HEAP32[i34 >> 2];
13954 HEAP32[i34 >> 2] = i17;
13955 HEAP32[i26 >> 2] = (HEAP32[i26 >> 2] | 0) - 1;
13956 if ((i70 | 0) == (i103 | 0)) {
13957 break;
13958 } else {
13959 i27 = i70;
13960 }
13961 }
13962 }
13963 if ((i105 | 0) == 0) {
13964 break;
13965 }
13966 HEAP32[i104 >> 2] = i102;
13967 HEAP32[i40 >> 2] = i104;
13968 HEAP32[i103 >> 2] = i105;
13969 HEAP32[i105 + 4 >> 2] = i103;
13970 }
13971 } while (0);
13972 if ((i112 | 0) == 0) {
13973 HEAP32[i109 >> 2] = i110;
13974 HEAP32[i110 + 4 >> 2] = i109;
13975 HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] = i109;
13976 STACKTOP = i4;
13977 return;
13978 }
13979 i6 = i112 | 0;
13980 i103 = HEAP32[i6 >> 2] | 0;
13981 if ((i103 | 0) != (i111 | 0)) {
13982 i105 = i103;
13983 while (1) {
13984 i103 = i105 | 0;
13985 i104 = HEAP32[i103 >> 2] | 0;
13986 i102 = HEAP32[i105 + 8 >> 2] | 0;
13987 if ((i104 | 0) == (i105 | 0)) {
13988 HEAP32[(HEAP32[i102 + 12 >> 2] | 0) + 8 >> 2] = 0;
13989 } else {
13990 i5 = i105 + 4 | 0;
13991 HEAP32[i104 + 4 >> 2] = HEAP32[i5 >> 2];
13992 HEAP32[HEAP32[i5 >> 2] >> 2] = i104;
13993 HEAP32[(HEAP32[i102 + 12 >> 2] | 0) + 8 >> 2] = i104;
13994 }
13995 i5 = i102 | 0;
13996 i27 = HEAP32[i5 >> 2] | 0;
13997 if ((i27 | 0) == (i102 | 0)) {
13998 HEAP32[(HEAP32[i105 + 12 >> 2] | 0) + 8 >> 2] = 0;
13999 } else {
14000 i70 = i102 + 4 | 0;
14001 HEAP32[i27 + 4 >> 2] = HEAP32[i70 >> 2];
14002 HEAP32[HEAP32[i70 >> 2] >> 2] = i27;
14003 HEAP32[(HEAP32[i105 + 12 >> 2] | 0) + 8 >> 2] = i27;
14004 }
14005 _memset(i105 | 0, 0, 20);
14006 HEAP32[i103 >> 2] = HEAP32[i34 >> 2];
14007 HEAP32[i34 >> 2] = i105;
14008 _memset(i102 | 0, 0, 20);
14009 HEAP32[i5 >> 2] = HEAP32[i34 >> 2];
14010 HEAP32[i34 >> 2] = i102;
14011 HEAP32[i26 >> 2] = (HEAP32[i26 >> 2] | 0) - 1;
14012 if ((i104 | 0) == (i111 | 0)) {
14013 break;
14014 } else {
14015 i105 = i104;
14016 }
14017 }
14018 }
14019 if ((i109 | 0) == 0) {
14020 STACKTOP = i4;
14021 return;
14022 }
14023 HEAP32[i6 >> 2] = i110;
14024 HEAP32[i110 + 4 >> 2] = i112;
14025 HEAP32[i109 >> 2] = i111;
14026 HEAP32[i111 + 4 >> 2] = i109;
14027 STACKTOP = i4;
14028 return;
14029 }
14030 function __ZN17btGjkPairDetector26getClosestPointsNonVirtualERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDraw(i1, i2, i3, i4) {
14031 i1 = i1 | 0;
14032 i2 = i2 | 0;
14033 i3 = i3 | 0;
14034 i4 = i4 | 0;
14035 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, i37 = 0, d38 = 0.0, i39 = 0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, i45 = 0, d46 = 0.0, i47 = 0, d48 = 0.0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0, i87 = 0, i88 = 0, i89 = 0, i90 = 0, i91 = 0, i92 = 0, i93 = 0, i94 = 0, i95 = 0, i96 = 0, i97 = 0, i98 = 0, i99 = 0, i100 = 0, i101 = 0, i102 = 0, i103 = 0, i104 = 0, i105 = 0, i106 = 0, i107 = 0, i108 = 0, i109 = 0, i110 = 0, i111 = 0, i112 = 0, i113 = 0, i114 = 0, i115 = 0, i116 = 0, i117 = 0, i118 = 0, i119 = 0, i120 = 0, i121 = 0, i122 = 0, i123 = 0, i124 = 0, i125 = 0, d126 = 0.0, d127 = 0.0, d128 = 0.0, d129 = 0.0, d130 = 0.0, d131 = 0.0, d132 = 0.0, d133 = 0.0, d134 = 0.0, d135 = 0.0, d136 = 0.0, d137 = 0.0, d138 = 0.0, d139 = 0.0, i140 = 0, d141 = 0.0, d142 = 0.0, d143 = 0.0, d144 = 0.0, d145 = 0.0, d146 = 0.0, i147 = 0, d148 = 0.0, i149 = 0, d150 = 0.0, d151 = 0.0, d152 = 0.0, d153 = 0.0, i154 = 0, d155 = 0.0, d156 = 0.0, d157 = 0.0, d158 = 0.0, d159 = 0.0, d160 = 0.0;
14036 i5 = STACKTOP;
14037 STACKTOP = STACKTOP + 352 | 0;
14038 i6 = i5 | 0;
14039 i7 = i5 + 16 | 0;
14040 i8 = i5 + 32 | 0;
14041 i9 = i5 + 48 | 0;
14042 i10 = i5 + 112 | 0;
14043 i11 = i5 + 176 | 0;
14044 i12 = i5 + 192 | 0;
14045 i13 = i5 + 208 | 0;
14046 i14 = i5 + 224 | 0;
14047 i15 = i5 + 240 | 0;
14048 i16 = i5 + 256 | 0;
14049 i17 = i5 + 272 | 0;
14050 i18 = i5 + 288 | 0;
14051 i19 = i5 + 304 | 0;
14052 i20 = i5 + 320 | 0;
14053 i21 = i5 + 336 | 0;
14054 i22 = i1 + 56 | 0;
14055 HEAPF32[i22 >> 2] = 0.0;
14056 i23 = i6 | 0;
14057 i24 = i6 + 4 | 0;
14058 i25 = i6 + 8 | 0;
14059 i26 = i6 + 12 | 0;
14060 i27 = i9;
14061 i28 = i2;
14062 i29 = i6;
14063 _memset(i29 | 0, 0, 16);
14064 HEAP32[i27 >> 2] = HEAP32[i28 >> 2];
14065 HEAP32[i27 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
14066 HEAP32[i27 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
14067 HEAP32[i27 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
14068 i28 = i9 + 16 | 0;
14069 i27 = i2 + 16 | 0;
14070 HEAP32[i28 >> 2] = HEAP32[i27 >> 2];
14071 HEAP32[i28 + 4 >> 2] = HEAP32[i27 + 4 >> 2];
14072 HEAP32[i28 + 8 >> 2] = HEAP32[i27 + 8 >> 2];
14073 HEAP32[i28 + 12 >> 2] = HEAP32[i27 + 12 >> 2];
14074 i27 = i9 + 32 | 0;
14075 i28 = i2 + 32 | 0;
14076 HEAP32[i27 >> 2] = HEAP32[i28 >> 2];
14077 HEAP32[i27 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
14078 HEAP32[i27 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
14079 HEAP32[i27 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
14080 i28 = i9 + 48 | 0;
14081 i27 = i28;
14082 i30 = i2 + 48 | 0;
14083 HEAP32[i27 >> 2] = HEAP32[i30 >> 2];
14084 HEAP32[i27 + 4 >> 2] = HEAP32[i30 + 4 >> 2];
14085 HEAP32[i27 + 8 >> 2] = HEAP32[i30 + 8 >> 2];
14086 HEAP32[i27 + 12 >> 2] = HEAP32[i30 + 12 >> 2];
14087 i30 = i2 + 64 | 0;
14088 i27 = i10;
14089 i31 = i30;
14090 HEAP32[i27 >> 2] = HEAP32[i31 >> 2];
14091 HEAP32[i27 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
14092 HEAP32[i27 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
14093 HEAP32[i27 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
14094 i31 = i10 + 16 | 0;
14095 i27 = i2 + 80 | 0;
14096 HEAP32[i31 >> 2] = HEAP32[i27 >> 2];
14097 HEAP32[i31 + 4 >> 2] = HEAP32[i27 + 4 >> 2];
14098 HEAP32[i31 + 8 >> 2] = HEAP32[i27 + 8 >> 2];
14099 HEAP32[i31 + 12 >> 2] = HEAP32[i27 + 12 >> 2];
14100 i27 = i10 + 32 | 0;
14101 i31 = i2 + 96 | 0;
14102 HEAP32[i27 >> 2] = HEAP32[i31 >> 2];
14103 HEAP32[i27 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
14104 HEAP32[i27 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
14105 HEAP32[i27 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
14106 i31 = i10 + 48 | 0;
14107 i27 = i31;
14108 i32 = i2 + 112 | 0;
14109 HEAP32[i27 >> 2] = HEAP32[i32 >> 2];
14110 HEAP32[i27 + 4 >> 2] = HEAP32[i32 + 4 >> 2];
14111 HEAP32[i27 + 8 >> 2] = HEAP32[i32 + 8 >> 2];
14112 HEAP32[i27 + 12 >> 2] = HEAP32[i32 + 12 >> 2];
14113 i32 = i28 | 0;
14114 d33 = +HEAPF32[i32 >> 2];
14115 i28 = i31 | 0;
14116 d34 = +HEAPF32[i28 >> 2];
14117 i31 = i9 + 52 | 0;
14118 d35 = +HEAPF32[i31 >> 2];
14119 i27 = i10 + 52 | 0;
14120 d36 = +HEAPF32[i27 >> 2];
14121 i37 = i9 + 56 | 0;
14122 d38 = +HEAPF32[i37 >> 2];
14123 i39 = i10 + 56 | 0;
14124 d40 = +HEAPF32[i39 >> 2];
14125 d41 = (d33 + d34) * .5;
14126 d42 = (d35 + d36) * .5;
14127 d43 = (d38 + d40) * .5;
14128 d44 = d33 - d41;
14129 HEAPF32[i32 >> 2] = d44;
14130 d33 = d35 - d42;
14131 HEAPF32[i31 >> 2] = d33;
14132 d35 = d38 - d43;
14133 HEAPF32[i37 >> 2] = d35;
14134 d38 = d34 - d41;
14135 HEAPF32[i28 >> 2] = d38;
14136 d34 = d36 - d42;
14137 HEAPF32[i27 >> 2] = d34;
14138 d36 = d40 - d43;
14139 HEAPF32[i39 >> 2] = d36;
14140 i28 = i1 + 28 | 0;
14141 i32 = i1 + 32 | 0;
14142 if (((HEAP32[(HEAP32[i28 >> 2] | 0) + 4 >> 2] | 0) - 17 | 0) >>> 0 < 2) {
14143 i45 = ((HEAP32[(HEAP32[i32 >> 2] | 0) + 4 >> 2] | 0) - 17 | 0) >>> 0 < 2;
14144 } else {
14145 i45 = 0;
14146 }
14147 d40 = +HEAPF32[i1 + 44 >> 2];
14148 d46 = +HEAPF32[i1 + 48 >> 2];
14149 HEAP32[2992] = (HEAP32[2992] | 0) + 1;
14150 i47 = (HEAP8[i1 + 52 | 0] | 0) == 0;
14151 d48 = i47 ? d40 : 0.0;
14152 d40 = i47 ? d46 : 0.0;
14153 i47 = i1 + 64 | 0;
14154 HEAP32[i47 >> 2] = 0;
14155 i49 = i1 + 4 | 0;
14156 i50 = i49 | 0;
14157 HEAPF32[i50 >> 2] = 0.0;
14158 i51 = i1 + 8 | 0;
14159 HEAPF32[i51 >> 2] = 1.0;
14160 i52 = i1 + 12 | 0;
14161 HEAPF32[i52 >> 2] = 0.0;
14162 i53 = i1 + 16 | 0;
14163 HEAPF32[i53 >> 2] = 0.0;
14164 i54 = i1 + 68 | 0;
14165 HEAP32[i54 >> 2] = 0;
14166 i55 = i1 + 60 | 0;
14167 HEAP32[i55 >> 2] = -1;
14168 d46 = d48 + d40;
14169 i56 = i1 + 24 | 0;
14170 __ZN22btVoronoiSimplexSolver5resetEv(HEAP32[i56 >> 2] | 0);
14171 i57 = i2 | 0;
14172 i58 = i2 + 16 | 0;
14173 i59 = i2 + 32 | 0;
14174 i60 = i2 + 4 | 0;
14175 i61 = i2 + 20 | 0;
14176 i62 = i2 + 36 | 0;
14177 i63 = i2 + 8 | 0;
14178 i64 = i2 + 24 | 0;
14179 i65 = i2 + 40 | 0;
14180 i66 = i11 | 0;
14181 i67 = i11 + 4 | 0;
14182 i68 = i11 + 8 | 0;
14183 i69 = i11 + 12 | 0;
14184 i70 = i30 | 0;
14185 i30 = i2 + 80 | 0;
14186 i71 = i2 + 96 | 0;
14187 i72 = i2 + 68 | 0;
14188 i73 = i2 + 84 | 0;
14189 i74 = i2 + 100 | 0;
14190 i75 = i2 + 72 | 0;
14191 i76 = i2 + 88 | 0;
14192 i77 = i2 + 104 | 0;
14193 i78 = i12 | 0;
14194 i79 = i12 + 4 | 0;
14195 i80 = i12 + 8 | 0;
14196 i81 = i12 + 12 | 0;
14197 i82 = i9 | 0;
14198 i83 = i13 | 0;
14199 i84 = i9 + 4 | 0;
14200 i85 = i13 + 4 | 0;
14201 i86 = i9 + 8 | 0;
14202 i87 = i13 + 8 | 0;
14203 i88 = i9 + 48 | 0;
14204 i89 = i9 + 16 | 0;
14205 i90 = i9 + 20 | 0;
14206 i91 = i9 + 24 | 0;
14207 i92 = i9 + 32 | 0;
14208 i93 = i9 + 36 | 0;
14209 i94 = i9 + 40 | 0;
14210 i95 = i15 | 0;
14211 i96 = i15 + 4 | 0;
14212 i97 = i15 + 8 | 0;
14213 i98 = i15 + 12 | 0;
14214 i99 = i10 | 0;
14215 i100 = i14 | 0;
14216 i101 = i10 + 4 | 0;
14217 i102 = i14 + 4 | 0;
14218 i103 = i10 + 8 | 0;
14219 i104 = i14 + 8 | 0;
14220 i105 = i10 + 48 | 0;
14221 i106 = i10 + 16 | 0;
14222 i107 = i10 + 20 | 0;
14223 i108 = i10 + 24 | 0;
14224 i109 = i10 + 32 | 0;
14225 i110 = i10 + 36 | 0;
14226 i111 = i10 + 40 | 0;
14227 i112 = i16 | 0;
14228 i113 = i16 + 4 | 0;
14229 i114 = i16 + 8 | 0;
14230 i115 = i16 + 12 | 0;
14231 i116 = i17 | 0;
14232 i117 = i17 + 4 | 0;
14233 i118 = i17 + 8 | 0;
14234 i119 = i17 + 12 | 0;
14235 i120 = i2 + 128 | 0;
14236 i121 = i18 | 0;
14237 i122 = i18 + 4 | 0;
14238 i123 = i18 + 8 | 0;
14239 i124 = i49;
14240 i125 = i18;
14241 L1498 : do {
14242 if (i45) {
14243 d126 = 999999984306749400.0;
14244 d127 = d44;
14245 d128 = d33;
14246 d129 = d38;
14247 d130 = d34;
14248 while (1) {
14249 d131 = +HEAPF32[i50 >> 2];
14250 d132 = -0.0 - d131;
14251 d133 = +HEAPF32[i51 >> 2];
14252 d134 = -0.0 - d133;
14253 d135 = +HEAPF32[i52 >> 2];
14254 d136 = -0.0 - d135;
14255 d137 = +HEAPF32[i60 >> 2] * d132 + +HEAPF32[i61 >> 2] * d134 + +HEAPF32[i62 >> 2] * d136;
14256 d138 = +HEAPF32[i63 >> 2] * d132 + +HEAPF32[i64 >> 2] * d134 + +HEAPF32[i65 >> 2] * d136;
14257 HEAPF32[i66 >> 2] = +HEAPF32[i57 >> 2] * d132 + +HEAPF32[i58 >> 2] * d134 + +HEAPF32[i59 >> 2] * d136;
14258 HEAPF32[i67 >> 2] = d137;
14259 HEAPF32[i68 >> 2] = d138;
14260 HEAPF32[i69 >> 2] = 0.0;
14261 d138 = d131 * +HEAPF32[i72 >> 2] + d133 * +HEAPF32[i73 >> 2] + d135 * +HEAPF32[i74 >> 2];
14262 d137 = d131 * +HEAPF32[i75 >> 2] + d133 * +HEAPF32[i76 >> 2] + d135 * +HEAPF32[i77 >> 2];
14263 HEAPF32[i78 >> 2] = d131 * +HEAPF32[i70 >> 2] + d133 * +HEAPF32[i30 >> 2] + d135 * +HEAPF32[i71 >> 2];
14264 HEAPF32[i79 >> 2] = d138;
14265 HEAPF32[i80 >> 2] = d137;
14266 HEAPF32[i81 >> 2] = 0.0;
14267 __ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i13, HEAP32[i28 >> 2] | 0, i11);
14268 __ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i14, HEAP32[i32 >> 2] | 0, i12);
14269 d137 = +HEAPF32[i83 >> 2];
14270 d138 = +HEAPF32[i85 >> 2];
14271 d135 = +HEAPF32[i87 >> 2];
14272 d133 = d127 + (+HEAPF32[i82 >> 2] * d137 + +HEAPF32[i84 >> 2] * d138 + +HEAPF32[i86 >> 2] * d135);
14273 d131 = d128 + (d137 * +HEAPF32[i89 >> 2] + d138 * +HEAPF32[i90 >> 2] + d135 * +HEAPF32[i91 >> 2]);
14274 HEAPF32[i95 >> 2] = d133;
14275 HEAPF32[i96 >> 2] = d131;
14276 HEAPF32[i98 >> 2] = 0.0;
14277 d135 = +HEAPF32[i100 >> 2];
14278 d138 = +HEAPF32[i102 >> 2];
14279 d137 = +HEAPF32[i104 >> 2];
14280 d136 = d129 + (+HEAPF32[i99 >> 2] * d135 + +HEAPF32[i101 >> 2] * d138 + +HEAPF32[i103 >> 2] * d137);
14281 d134 = d130 + (d135 * +HEAPF32[i106 >> 2] + d138 * +HEAPF32[i107 >> 2] + d137 * +HEAPF32[i108 >> 2]);
14282 HEAPF32[i112 >> 2] = d136;
14283 HEAPF32[i113 >> 2] = d134;
14284 HEAPF32[i115 >> 2] = 0.0;
14285 HEAPF32[i97 >> 2] = 0.0;
14286 HEAPF32[i114 >> 2] = 0.0;
14287 d137 = d133 - d136;
14288 d136 = d131 - d134;
14289 HEAPF32[i116 >> 2] = d137;
14290 HEAPF32[i117 >> 2] = d136;
14291 HEAPF32[i118 >> 2] = 0.0;
14292 HEAPF32[i119 >> 2] = 0.0;
14293 d134 = d137 * +HEAPF32[i50 >> 2] + d136 * +HEAPF32[i51 >> 2] + +HEAPF32[i52 >> 2] * 0.0;
14294 if (d134 > 0.0) {
14295 if (d134 * d134 > d126 * +HEAPF32[i120 >> 2]) {
14296 d139 = d126;
14297 i140 = 1318;
14298 break L1498;
14299 }
14300 }
14301 if (__ZN22btVoronoiSimplexSolver9inSimplexERK9btVector3(HEAP32[i56 >> 2] | 0, i17) | 0) {
14302 d141 = d126;
14303 i140 = 1320;
14304 break L1498;
14305 }
14306 d136 = d126 - d134;
14307 if (d136 <= d126 * 9.999999974752427e-7) {
14308 d142 = d126;
14309 d143 = d136;
14310 i140 = 1322;
14311 break L1498;
14312 }
14313 __ZN22btVoronoiSimplexSolver9addVertexERK9btVector3S2_S2_(HEAP32[i56 >> 2] | 0, i17, i15, i16);
14314 if (!(__ZN22btVoronoiSimplexSolver7closestER9btVector3(HEAP32[i56 >> 2] | 0, i18) | 0)) {
14315 d144 = d126;
14316 i140 = 1324;
14317 break L1498;
14318 }
14319 d136 = +HEAPF32[i121 >> 2];
14320 d134 = +HEAPF32[i122 >> 2];
14321 d137 = +HEAPF32[i123 >> 2];
14322 d131 = d136 * d136 + d134 * d134 + d137 * d137;
14323 if (d131 < 9.999999974752427e-7) {
14324 d145 = d126;
14325 i140 = 1326;
14326 break L1498;
14327 }
14328 if (d126 - d131 <= d126 * 1.1920928955078125e-7) {
14329 d146 = d131;
14330 i140 = 1328;
14331 break L1498;
14332 }
14333 HEAP32[i124 >> 2] = HEAP32[i125 >> 2];
14334 HEAP32[i124 + 4 >> 2] = HEAP32[i125 + 4 >> 2];
14335 HEAP32[i124 + 8 >> 2] = HEAP32[i125 + 8 >> 2];
14336 HEAP32[i124 + 12 >> 2] = HEAP32[i125 + 12 >> 2];
14337 i147 = HEAP32[i47 >> 2] | 0;
14338 HEAP32[i47 >> 2] = i147 + 1;
14339 if ((i147 | 0) > 1e3) {
14340 d148 = 0.0;
14341 i149 = 0;
14342 break L1498;
14343 }
14344 if ((HEAP32[HEAP32[i56 >> 2] >> 2] | 0) == 4) {
14345 i140 = 1332;
14346 break L1498;
14347 }
14348 d126 = d131;
14349 d127 = +HEAPF32[i88 >> 2];
14350 d128 = +HEAPF32[i31 >> 2];
14351 d129 = +HEAPF32[i105 >> 2];
14352 d130 = +HEAPF32[i27 >> 2];
14353 }
14354 } else {
14355 d130 = 999999984306749400.0;
14356 d129 = d44;
14357 d128 = d33;
14358 d127 = d35;
14359 d126 = d38;
14360 d131 = d34;
14361 d137 = d36;
14362 while (1) {
14363 d134 = +HEAPF32[i50 >> 2];
14364 d136 = -0.0 - d134;
14365 d133 = +HEAPF32[i51 >> 2];
14366 d138 = -0.0 - d133;
14367 d135 = +HEAPF32[i52 >> 2];
14368 d132 = -0.0 - d135;
14369 d150 = +HEAPF32[i60 >> 2] * d136 + +HEAPF32[i61 >> 2] * d138 + +HEAPF32[i62 >> 2] * d132;
14370 d151 = +HEAPF32[i63 >> 2] * d136 + +HEAPF32[i64 >> 2] * d138 + +HEAPF32[i65 >> 2] * d132;
14371 HEAPF32[i66 >> 2] = +HEAPF32[i57 >> 2] * d136 + +HEAPF32[i58 >> 2] * d138 + +HEAPF32[i59 >> 2] * d132;
14372 HEAPF32[i67 >> 2] = d150;
14373 HEAPF32[i68 >> 2] = d151;
14374 HEAPF32[i69 >> 2] = 0.0;
14375 d151 = d134 * +HEAPF32[i72 >> 2] + d133 * +HEAPF32[i73 >> 2] + d135 * +HEAPF32[i74 >> 2];
14376 d150 = d134 * +HEAPF32[i75 >> 2] + d133 * +HEAPF32[i76 >> 2] + d135 * +HEAPF32[i77 >> 2];
14377 HEAPF32[i78 >> 2] = d134 * +HEAPF32[i70 >> 2] + d133 * +HEAPF32[i30 >> 2] + d135 * +HEAPF32[i71 >> 2];
14378 HEAPF32[i79 >> 2] = d151;
14379 HEAPF32[i80 >> 2] = d150;
14380 HEAPF32[i81 >> 2] = 0.0;
14381 __ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i13, HEAP32[i28 >> 2] | 0, i11);
14382 __ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i14, HEAP32[i32 >> 2] | 0, i12);
14383 d150 = +HEAPF32[i83 >> 2];
14384 d151 = +HEAPF32[i85 >> 2];
14385 d135 = +HEAPF32[i87 >> 2];
14386 d133 = d129 + (+HEAPF32[i82 >> 2] * d150 + +HEAPF32[i84 >> 2] * d151 + +HEAPF32[i86 >> 2] * d135);
14387 d134 = d128 + (d150 * +HEAPF32[i89 >> 2] + d151 * +HEAPF32[i90 >> 2] + d135 * +HEAPF32[i91 >> 2]);
14388 d132 = d127 + (d150 * +HEAPF32[i92 >> 2] + d151 * +HEAPF32[i93 >> 2] + d135 * +HEAPF32[i94 >> 2]);
14389 HEAPF32[i95 >> 2] = d133;
14390 HEAPF32[i96 >> 2] = d134;
14391 HEAPF32[i97 >> 2] = d132;
14392 HEAPF32[i98 >> 2] = 0.0;
14393 d135 = +HEAPF32[i100 >> 2];
14394 d151 = +HEAPF32[i102 >> 2];
14395 d150 = +HEAPF32[i104 >> 2];
14396 d138 = d126 + (+HEAPF32[i99 >> 2] * d135 + +HEAPF32[i101 >> 2] * d151 + +HEAPF32[i103 >> 2] * d150);
14397 d136 = d131 + (d135 * +HEAPF32[i106 >> 2] + d151 * +HEAPF32[i107 >> 2] + d150 * +HEAPF32[i108 >> 2]);
14398 d152 = d137 + (d135 * +HEAPF32[i109 >> 2] + d151 * +HEAPF32[i110 >> 2] + d150 * +HEAPF32[i111 >> 2]);
14399 HEAPF32[i112 >> 2] = d138;
14400 HEAPF32[i113 >> 2] = d136;
14401 HEAPF32[i114 >> 2] = d152;
14402 HEAPF32[i115 >> 2] = 0.0;
14403 d150 = d133 - d138;
14404 d138 = d134 - d136;
14405 d136 = d132 - d152;
14406 HEAPF32[i116 >> 2] = d150;
14407 HEAPF32[i117 >> 2] = d138;
14408 HEAPF32[i118 >> 2] = d136;
14409 HEAPF32[i119 >> 2] = 0.0;
14410 d152 = d150 * +HEAPF32[i50 >> 2] + d138 * +HEAPF32[i51 >> 2] + d136 * +HEAPF32[i52 >> 2];
14411 if (d152 > 0.0) {
14412 if (d152 * d152 > d130 * +HEAPF32[i120 >> 2]) {
14413 d139 = d130;
14414 i140 = 1318;
14415 break L1498;
14416 }
14417 }
14418 if (__ZN22btVoronoiSimplexSolver9inSimplexERK9btVector3(HEAP32[i56 >> 2] | 0, i17) | 0) {
14419 d141 = d130;
14420 i140 = 1320;
14421 break L1498;
14422 }
14423 d136 = d130 - d152;
14424 if (d136 <= d130 * 9.999999974752427e-7) {
14425 d142 = d130;
14426 d143 = d136;
14427 i140 = 1322;
14428 break L1498;
14429 }
14430 __ZN22btVoronoiSimplexSolver9addVertexERK9btVector3S2_S2_(HEAP32[i56 >> 2] | 0, i17, i15, i16);
14431 if (!(__ZN22btVoronoiSimplexSolver7closestER9btVector3(HEAP32[i56 >> 2] | 0, i18) | 0)) {
14432 d144 = d130;
14433 i140 = 1324;
14434 break L1498;
14435 }
14436 d136 = +HEAPF32[i121 >> 2];
14437 d152 = +HEAPF32[i122 >> 2];
14438 d138 = +HEAPF32[i123 >> 2];
14439 d150 = d136 * d136 + d152 * d152 + d138 * d138;
14440 if (d150 < 9.999999974752427e-7) {
14441 d145 = d130;
14442 i140 = 1326;
14443 break L1498;
14444 }
14445 if (d130 - d150 <= d130 * 1.1920928955078125e-7) {
14446 d146 = d150;
14447 i140 = 1328;
14448 break L1498;
14449 }
14450 HEAP32[i124 >> 2] = HEAP32[i125 >> 2];
14451 HEAP32[i124 + 4 >> 2] = HEAP32[i125 + 4 >> 2];
14452 HEAP32[i124 + 8 >> 2] = HEAP32[i125 + 8 >> 2];
14453 HEAP32[i124 + 12 >> 2] = HEAP32[i125 + 12 >> 2];
14454 i147 = HEAP32[i47 >> 2] | 0;
14455 HEAP32[i47 >> 2] = i147 + 1;
14456 if ((i147 | 0) > 1e3) {
14457 d148 = 0.0;
14458 i149 = 0;
14459 break L1498;
14460 }
14461 if ((HEAP32[HEAP32[i56 >> 2] >> 2] | 0) == 4) {
14462 i140 = 1332;
14463 break L1498;
14464 }
14465 d130 = d150;
14466 d129 = +HEAPF32[i88 >> 2];
14467 d128 = +HEAPF32[i31 >> 2];
14468 d127 = +HEAPF32[i37 >> 2];
14469 d126 = +HEAPF32[i105 >> 2];
14470 d131 = +HEAPF32[i27 >> 2];
14471 d137 = +HEAPF32[i39 >> 2];
14472 }
14473 }
14474 } while (0);
14475 if ((i140 | 0) == 1326) {
14476 HEAP32[i124 >> 2] = HEAP32[i125 >> 2];
14477 HEAP32[i124 + 4 >> 2] = HEAP32[i125 + 4 >> 2];
14478 HEAP32[i124 + 8 >> 2] = HEAP32[i125 + 8 >> 2];
14479 HEAP32[i124 + 12 >> 2] = HEAP32[i125 + 12 >> 2];
14480 HEAP32[i54 >> 2] = 6;
14481 d153 = d145;
14482 i140 = 1333;
14483 } else if ((i140 | 0) == 1328) {
14484 HEAP32[i54 >> 2] = 12;
14485 d153 = d146;
14486 i140 = 1333;
14487 } else if ((i140 | 0) == 1322) {
14488 HEAP32[i54 >> 2] = d143 > 0.0 ? 11 : 2;
14489 d153 = d142;
14490 i140 = 1333;
14491 } else if ((i140 | 0) == 1318) {
14492 HEAP32[i54 >> 2] = 10;
14493 d153 = d139;
14494 i140 = 1333;
14495 } else if ((i140 | 0) == 1320) {
14496 HEAP32[i54 >> 2] = 1;
14497 d153 = d141;
14498 i140 = 1333;
14499 } else if ((i140 | 0) == 1324) {
14500 HEAP32[i54 >> 2] = 3;
14501 d153 = d144;
14502 i140 = 1333;
14503 } else if ((i140 | 0) == 1332) {
14504 HEAP32[i54 >> 2] = 13;
14505 d148 = 0.0;
14506 i149 = 0;
14507 }
14508 do {
14509 if ((i140 | 0) == 1333) {
14510 __ZN22btVoronoiSimplexSolver14compute_pointsER9btVector3S1_(HEAP32[i56 >> 2] | 0, i7, i8);
14511 HEAP32[i29 >> 2] = HEAP32[i124 >> 2];
14512 HEAP32[i29 + 4 >> 2] = HEAP32[i124 + 4 >> 2];
14513 HEAP32[i29 + 8 >> 2] = HEAP32[i124 + 8 >> 2];
14514 HEAP32[i29 + 12 >> 2] = HEAP32[i124 + 12 >> 2];
14515 d144 = +HEAPF32[i50 >> 2];
14516 d141 = +HEAPF32[i51 >> 2];
14517 d139 = +HEAPF32[i52 >> 2];
14518 d142 = d144 * d144 + d141 * d141 + d139 * d139;
14519 if (d142 < 1.0e-4) {
14520 HEAP32[i54 >> 2] = 5;
14521 }
14522 if (d142 > 1.4210854715202004e-14) {
14523 d143 = 1.0 / +Math_sqrt(+d142);
14524 HEAPF32[i23 >> 2] = d143 * +HEAPF32[i23 >> 2];
14525 HEAPF32[i24 >> 2] = d143 * +HEAPF32[i24 >> 2];
14526 HEAPF32[i25 >> 2] = d143 * +HEAPF32[i25 >> 2];
14527 d142 = +Math_sqrt(+d153);
14528 d146 = d48 / d142;
14529 i125 = i7 | 0;
14530 HEAPF32[i125 >> 2] = +HEAPF32[i125 >> 2] - d144 * d146;
14531 i125 = i7 + 4 | 0;
14532 HEAPF32[i125 >> 2] = +HEAPF32[i125 >> 2] - d141 * d146;
14533 i125 = i7 + 8 | 0;
14534 HEAPF32[i125 >> 2] = +HEAPF32[i125 >> 2] - d139 * d146;
14535 d146 = d40 / d142;
14536 i125 = i8 | 0;
14537 HEAPF32[i125 >> 2] = d144 * d146 + +HEAPF32[i125 >> 2];
14538 i125 = i8 + 4 | 0;
14539 HEAPF32[i125 >> 2] = d141 * d146 + +HEAPF32[i125 >> 2];
14540 i125 = i8 + 8 | 0;
14541 HEAPF32[i125 >> 2] = d139 * d146 + +HEAPF32[i125 >> 2];
14542 HEAP32[i55 >> 2] = 1;
14543 d148 = 1.0 / d143 - d46;
14544 i149 = 1;
14545 break;
14546 } else {
14547 HEAP32[i55 >> 2] = 2;
14548 d148 = 0.0;
14549 i149 = 0;
14550 break;
14551 }
14552 }
14553 } while (0);
14554 do {
14555 if ((HEAP32[i1 + 72 >> 2] | 0) == 0) {
14556 i154 = 0;
14557 } else {
14558 if ((HEAP32[i1 + 20 >> 2] | 0) == 0) {
14559 i154 = 0;
14560 break;
14561 }
14562 if ((HEAP32[i54 >> 2] | 0) == 0) {
14563 i154 = 0;
14564 break;
14565 }
14566 i154 = d46 + d148 < .01;
14567 }
14568 } while (0);
14569 i54 = i149 ^ 1;
14570 do {
14571 if (i154 | i54) {
14572 i125 = HEAP32[i1 + 20 >> 2] | 0;
14573 if ((i125 | 0) == 0) {
14574 i140 = 1356;
14575 break;
14576 }
14577 HEAP32[2994] = (HEAP32[2994] | 0) + 1;
14578 _memset(i124 | 0, 0, 16);
14579 if (!(FUNCTION_TABLE_iiiiiiiiiiii[HEAP32[(HEAP32[i125 >> 2] | 0) + 8 >> 2] & 7](i125, HEAP32[i56 >> 2] | 0, HEAP32[i28 >> 2] | 0, HEAP32[i32 >> 2] | 0, i9, i10, i49, i19, i20, i4, HEAP32[i2 + 132 >> 2] | 0) | 0)) {
14580 d153 = +HEAPF32[i50 >> 2];
14581 d143 = +HEAPF32[i51 >> 2];
14582 d146 = +HEAPF32[i52 >> 2];
14583 if (d153 * d153 + d143 * d143 + d146 * d146 <= 0.0) {
14584 i140 = 1356;
14585 break;
14586 }
14587 d139 = +HEAPF32[i19 >> 2] - +HEAPF32[i20 >> 2];
14588 d141 = +HEAPF32[i19 + 4 >> 2] - +HEAPF32[i20 + 4 >> 2];
14589 d144 = +HEAPF32[i19 + 8 >> 2] - +HEAPF32[i20 + 8 >> 2];
14590 d142 = +Math_sqrt(+(d139 * d139 + d141 * d141 + d144 * d144)) - d46;
14591 if (d142 < d148 | i54) {
14592 i125 = i7;
14593 i39 = i19;
14594 HEAP32[i125 >> 2] = HEAP32[i39 >> 2];
14595 HEAP32[i125 + 4 >> 2] = HEAP32[i39 + 4 >> 2];
14596 HEAP32[i125 + 8 >> 2] = HEAP32[i39 + 8 >> 2];
14597 HEAP32[i125 + 12 >> 2] = HEAP32[i39 + 12 >> 2];
14598 i39 = i8;
14599 i125 = i20;
14600 HEAP32[i39 >> 2] = HEAP32[i125 >> 2];
14601 HEAP32[i39 + 4 >> 2] = HEAP32[i125 + 4 >> 2];
14602 HEAP32[i39 + 8 >> 2] = HEAP32[i125 + 8 >> 2];
14603 HEAP32[i39 + 12 >> 2] = HEAP32[i125 + 12 >> 2];
14604 i125 = i7 | 0;
14605 HEAPF32[i125 >> 2] = +HEAPF32[i125 >> 2] - d48 * d153;
14606 i125 = i7 + 4 | 0;
14607 HEAPF32[i125 >> 2] = +HEAPF32[i125 >> 2] - d48 * d143;
14608 i125 = i7 + 8 | 0;
14609 HEAPF32[i125 >> 2] = +HEAPF32[i125 >> 2] - d48 * d146;
14610 i125 = i8 | 0;
14611 HEAPF32[i125 >> 2] = d40 * d153 + +HEAPF32[i125 >> 2];
14612 i125 = i8 + 4 | 0;
14613 HEAPF32[i125 >> 2] = d40 * d143 + +HEAPF32[i125 >> 2];
14614 i125 = i8 + 8 | 0;
14615 HEAPF32[i125 >> 2] = d40 * d146 + +HEAPF32[i125 >> 2];
14616 HEAP32[i29 >> 2] = HEAP32[i124 >> 2];
14617 HEAP32[i29 + 4 >> 2] = HEAP32[i124 + 4 >> 2];
14618 HEAP32[i29 + 8 >> 2] = HEAP32[i124 + 8 >> 2];
14619 HEAP32[i29 + 12 >> 2] = HEAP32[i124 + 12 >> 2];
14620 d146 = +HEAPF32[i23 >> 2];
14621 d143 = +HEAPF32[i24 >> 2];
14622 d153 = +HEAPF32[i25 >> 2];
14623 d144 = 1.0 / +Math_sqrt(+(d146 * d146 + d143 * d143 + d153 * d153));
14624 HEAPF32[i23 >> 2] = d146 * d144;
14625 HEAPF32[i24 >> 2] = d143 * d144;
14626 HEAPF32[i25 >> 2] = d153 * d144;
14627 HEAP32[i55 >> 2] = 6;
14628 d155 = d142;
14629 break;
14630 }
14631 HEAP32[i55 >> 2] = 5;
14632 if (i149) {
14633 d155 = d148;
14634 break;
14635 }
14636 STACKTOP = i5;
14637 return;
14638 }
14639 d142 = +HEAPF32[i20 >> 2];
14640 d144 = +HEAPF32[i19 >> 2];
14641 d153 = d142 - d144;
14642 d143 = +HEAPF32[i20 + 4 >> 2];
14643 d146 = +HEAPF32[i19 + 4 >> 2];
14644 d141 = d143 - d146;
14645 d139 = +HEAPF32[i20 + 8 >> 2];
14646 d145 = +HEAPF32[i19 + 8 >> 2];
14647 d36 = d139 - d145;
14648 d34 = d153 * d153 + d141 * d141 + d36 * d36;
14649 if (d34 > 1.4210854715202004e-14) {
14650 d156 = d34;
14651 d157 = d153;
14652 d158 = d141;
14653 d159 = d36;
14654 d160 = 0.0;
14655 } else {
14656 d36 = +HEAPF32[i1 + 4 >> 2];
14657 d141 = +HEAPF32[i51 >> 2];
14658 d153 = +HEAPF32[i52 >> 2];
14659 d156 = d36 * d36 + d141 * d141 + d153 * d153;
14660 d157 = d36;
14661 d158 = d141;
14662 d159 = d153;
14663 d160 = +HEAPF32[i53 >> 2];
14664 }
14665 if (d156 <= 1.4210854715202004e-14) {
14666 HEAP32[i55 >> 2] = 9;
14667 if (i149) {
14668 d155 = d148;
14669 break;
14670 }
14671 STACKTOP = i5;
14672 return;
14673 }
14674 d153 = 1.0 / +Math_sqrt(+d156);
14675 d141 = d144 - d142;
14676 d142 = d146 - d143;
14677 d143 = d145 - d139;
14678 d139 = -0.0 - +Math_sqrt(+(d141 * d141 + d142 * d142 + d143 * d143));
14679 if (d148 > d139 | i54) {
14680 i125 = i7;
14681 i39 = i19;
14682 HEAP32[i125 >> 2] = HEAP32[i39 >> 2];
14683 HEAP32[i125 + 4 >> 2] = HEAP32[i39 + 4 >> 2];
14684 HEAP32[i125 + 8 >> 2] = HEAP32[i39 + 8 >> 2];
14685 HEAP32[i125 + 12 >> 2] = HEAP32[i39 + 12 >> 2];
14686 i39 = i8;
14687 i125 = i20;
14688 HEAP32[i39 >> 2] = HEAP32[i125 >> 2];
14689 HEAP32[i39 + 4 >> 2] = HEAP32[i125 + 4 >> 2];
14690 HEAP32[i39 + 8 >> 2] = HEAP32[i125 + 8 >> 2];
14691 HEAP32[i39 + 12 >> 2] = HEAP32[i125 + 12 >> 2];
14692 HEAPF32[i23 >> 2] = d157 * d153;
14693 HEAPF32[i24 >> 2] = d158 * d153;
14694 HEAPF32[i25 >> 2] = d159 * d153;
14695 HEAPF32[i26 >> 2] = d160;
14696 HEAP32[i55 >> 2] = 3;
14697 d155 = d139;
14698 break;
14699 }
14700 HEAP32[i55 >> 2] = 8;
14701 if (i149) {
14702 d155 = d148;
14703 break;
14704 }
14705 STACKTOP = i5;
14706 return;
14707 } else {
14708 i140 = 1356;
14709 }
14710 } while (0);
14711 do {
14712 if ((i140 | 0) == 1356) {
14713 if (i149) {
14714 d155 = d148;
14715 break;
14716 }
14717 STACKTOP = i5;
14718 return;
14719 }
14720 } while (0);
14721 do {
14722 if (d155 >= 0.0) {
14723 if (d155 * d155 < +HEAPF32[i120 >> 2]) {
14724 break;
14725 }
14726 STACKTOP = i5;
14727 return;
14728 }
14729 } while (0);
14730 HEAP32[i124 >> 2] = HEAP32[i29 >> 2];
14731 HEAP32[i124 + 4 >> 2] = HEAP32[i29 + 4 >> 2];
14732 HEAP32[i124 + 8 >> 2] = HEAP32[i29 + 8 >> 2];
14733 HEAP32[i124 + 12 >> 2] = HEAP32[i29 + 12 >> 2];
14734 HEAPF32[i22 >> 2] = d155;
14735 i22 = HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] | 0;
14736 d148 = d42 + +HEAPF32[i8 + 4 >> 2];
14737 d42 = d43 + +HEAPF32[i8 + 8 >> 2];
14738 HEAPF32[i21 >> 2] = d41 + +HEAPF32[i8 >> 2];
14739 HEAPF32[i21 + 4 >> 2] = d148;
14740 HEAPF32[i21 + 8 >> 2] = d42;
14741 HEAPF32[i21 + 12 >> 2] = 0.0;
14742 FUNCTION_TABLE_viiif[i22 & 15](i3, i6, i21, d155);
14743 STACKTOP = i5;
14744 return;
14745 }
14746 function __ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3(i1, i2, i3, i4) {
14747 i1 = i1 | 0;
14748 i2 = i2 | 0;
14749 i3 = i3 | 0;
14750 i4 = i4 | 0;
14751 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, d61 = 0.0, d62 = 0.0, d63 = 0.0, d64 = 0.0, d65 = 0.0, d66 = 0.0, d67 = 0.0, d68 = 0.0, d69 = 0.0, d70 = 0.0, d71 = 0.0, d72 = 0.0, i73 = 0, d74 = 0.0, d75 = 0.0, d76 = 0.0, d77 = 0.0, d78 = 0.0, d79 = 0.0, d80 = 0.0, d81 = 0.0, d82 = 0.0, d83 = 0.0, d84 = 0.0, d85 = 0.0, d86 = 0.0, i87 = 0, i88 = 0, d89 = 0.0, d90 = 0.0, d91 = 0.0, i92 = 0;
14752 i5 = STACKTOP;
14753 STACKTOP = STACKTOP + 576 | 0;
14754 i6 = i5 | 0;
14755 i7 = i5 + 64 | 0;
14756 i8 = i5 + 80 | 0;
14757 i9 = i5 + 96 | 0;
14758 i10 = i5 + 160 | 0;
14759 i11 = i5 + 176 | 0;
14760 i12 = i5 + 192 | 0;
14761 i13 = i5 + 208 | 0;
14762 i14 = i5 + 304 | 0;
14763 i15 = i5 + 320 | 0;
14764 i16 = i5 + 336 | 0;
14765 i17 = i5 + 432 | 0;
14766 i18 = i5 + 448 | 0;
14767 i19 = i5 + 464 | 0;
14768 i20 = i5 + 480 | 0;
14769 i21 = i5 + 496 | 0;
14770 i22 = i5 + 512 | 0;
14771 i23 = i5 + 528 | 0;
14772 i24 = i5 + 544 | 0;
14773 i25 = i5 + 560 | 0;
14774 i26 = i1;
14775 i27 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
14776 FUNCTION_TABLE_viif[HEAP32[(HEAP32[i27 >> 2] | 0) + 56 >> 2] & 3](i27, i2, 1.0);
14777 i27 = i3 + 4 | 0;
14778 i28 = HEAP32[i27 >> 2] | 0;
14779 switch (i28 | 0) {
14780 case 31:
14781 {
14782 i29 = HEAP32[i3 + 16 >> 2] | 0;
14783 if ((i29 | 0) <= 0) {
14784 STACKTOP = i5;
14785 return;
14786 }
14787 i30 = i3 + 24 | 0;
14788 i31 = i1;
14789 i32 = i2 | 0;
14790 i33 = i2 + 4 | 0;
14791 i34 = i2 + 8 | 0;
14792 i35 = i2 + 16 | 0;
14793 i36 = i2 + 20 | 0;
14794 i37 = i2 + 24 | 0;
14795 i38 = i2 + 32 | 0;
14796 i39 = i2 + 36 | 0;
14797 i40 = i2 + 40 | 0;
14798 i41 = i2 + 48 | 0;
14799 i42 = i2 + 52 | 0;
14800 i43 = i2 + 56 | 0;
14801 i44 = i6 | 0;
14802 i45 = i6 + 4 | 0;
14803 i46 = i6 + 8 | 0;
14804 i47 = i6 + 12 | 0;
14805 i48 = i6 + 16 | 0;
14806 i49 = i6 + 20 | 0;
14807 i50 = i6 + 24 | 0;
14808 i51 = i6 + 28 | 0;
14809 i52 = i6 + 32 | 0;
14810 i53 = i6 + 36 | 0;
14811 i54 = i6 + 40 | 0;
14812 i55 = i6 + 44 | 0;
14813 i56 = i6 + 48 | 0;
14814 i57 = i6 + 52 | 0;
14815 i58 = i6 + 56 | 0;
14816 i59 = i6 + 60 | 0;
14817 i60 = i29;
14818 do {
14819 i60 = i60 - 1 | 0;
14820 i29 = HEAP32[i30 >> 2] | 0;
14821 d61 = +HEAPF32[i29 + (i60 * 80 | 0) >> 2];
14822 d62 = +HEAPF32[i29 + (i60 * 80 | 0) + 4 >> 2];
14823 d63 = +HEAPF32[i29 + (i60 * 80 | 0) + 8 >> 2];
14824 d64 = +HEAPF32[i29 + (i60 * 80 | 0) + 16 >> 2];
14825 d65 = +HEAPF32[i29 + (i60 * 80 | 0) + 20 >> 2];
14826 d66 = +HEAPF32[i29 + (i60 * 80 | 0) + 24 >> 2];
14827 d67 = +HEAPF32[i29 + (i60 * 80 | 0) + 32 >> 2];
14828 d68 = +HEAPF32[i29 + (i60 * 80 | 0) + 36 >> 2];
14829 d69 = +HEAPF32[i29 + (i60 * 80 | 0) + 40 >> 2];
14830 d70 = +HEAPF32[i29 + (i60 * 80 | 0) + 48 >> 2];
14831 d71 = +HEAPF32[i29 + (i60 * 80 | 0) + 52 >> 2];
14832 d72 = +HEAPF32[i29 + (i60 * 80 | 0) + 56 >> 2];
14833 i73 = HEAP32[i29 + (i60 * 80 | 0) + 64 >> 2] | 0;
14834 i29 = HEAP32[(HEAP32[i31 >> 2] | 0) + 24 >> 2] | 0;
14835 d74 = +HEAPF32[i32 >> 2];
14836 d75 = +HEAPF32[i33 >> 2];
14837 d76 = +HEAPF32[i34 >> 2];
14838 d77 = +HEAPF32[i35 >> 2];
14839 d78 = +HEAPF32[i36 >> 2];
14840 d79 = +HEAPF32[i37 >> 2];
14841 d80 = +HEAPF32[i38 >> 2];
14842 d81 = +HEAPF32[i39 >> 2];
14843 d82 = +HEAPF32[i40 >> 2];
14844 d83 = d70 * d74 + d71 * d75 + d72 * d76 + +HEAPF32[i41 >> 2];
14845 d84 = d70 * d77 + d71 * d78 + d72 * d79 + +HEAPF32[i42 >> 2];
14846 d85 = d70 * d80 + d71 * d81 + d72 * d82 + +HEAPF32[i43 >> 2];
14847 HEAPF32[i44 >> 2] = d61 * d74 + d64 * d75 + d67 * d76;
14848 HEAPF32[i45 >> 2] = d62 * d74 + d65 * d75 + d68 * d76;
14849 HEAPF32[i46 >> 2] = d63 * d74 + d66 * d75 + d69 * d76;
14850 HEAPF32[i47 >> 2] = 0.0;
14851 HEAPF32[i48 >> 2] = d61 * d77 + d64 * d78 + d67 * d79;
14852 HEAPF32[i49 >> 2] = d62 * d77 + d65 * d78 + d68 * d79;
14853 HEAPF32[i50 >> 2] = d63 * d77 + d66 * d78 + d69 * d79;
14854 HEAPF32[i51 >> 2] = 0.0;
14855 HEAPF32[i52 >> 2] = d61 * d80 + d64 * d81 + d67 * d82;
14856 HEAPF32[i53 >> 2] = d62 * d80 + d65 * d81 + d68 * d82;
14857 HEAPF32[i54 >> 2] = d63 * d80 + d66 * d81 + d69 * d82;
14858 HEAPF32[i55 >> 2] = 0.0;
14859 HEAPF32[i56 >> 2] = d83;
14860 HEAPF32[i57 >> 2] = d84;
14861 HEAPF32[i58 >> 2] = d85;
14862 HEAPF32[i59 >> 2] = 0.0;
14863 FUNCTION_TABLE_viiii[i29 & 127](i1, i6, i73, i4);
14864 } while ((i60 | 0) > 0);
14865 STACKTOP = i5;
14866 return;
14867 }
14868 case 0:
14869 {
14870 i60 = i7;
14871 i6 = i3 + 28 | 0;
14872 HEAP32[i60 >> 2] = HEAP32[i6 >> 2];
14873 HEAP32[i60 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
14874 HEAP32[i60 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
14875 HEAP32[i60 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
14876 i6 = i3;
14877 i60 = i3;
14878 d85 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i60 >> 2] | 0) + 44 >> 2] & 7](i6);
14879 d84 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i60 >> 2] | 0) + 44 >> 2] & 7](i6);
14880 d83 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i60 >> 2] | 0) + 44 >> 2] & 7](i6);
14881 i6 = i7 | 0;
14882 d82 = d85 + +HEAPF32[i6 >> 2];
14883 HEAPF32[i6 >> 2] = d82;
14884 i6 = i7 + 4 | 0;
14885 d85 = d84 + +HEAPF32[i6 >> 2];
14886 HEAPF32[i6 >> 2] = d85;
14887 i6 = i7 + 8 | 0;
14888 d84 = d83 + +HEAPF32[i6 >> 2];
14889 HEAPF32[i6 >> 2] = d84;
14890 i6 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
14891 i60 = HEAP32[(HEAP32[i6 >> 2] | 0) + 72 >> 2] | 0;
14892 HEAPF32[i8 >> 2] = -0.0 - d82;
14893 HEAPF32[i8 + 4 >> 2] = -0.0 - d85;
14894 HEAPF32[i8 + 8 >> 2] = -0.0 - d84;
14895 HEAPF32[i8 + 12 >> 2] = 0.0;
14896 FUNCTION_TABLE_viiiii[i60 & 63](i6, i8, i7, i2, i4);
14897 STACKTOP = i5;
14898 return;
14899 }
14900 case 8:
14901 {
14902 d84 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i3 >> 2] | 0) + 44 >> 2] & 7](i3);
14903 i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
14904 FUNCTION_TABLE_vifii[HEAP32[(HEAP32[i7 >> 2] | 0) + 16 >> 2] & 1](i7, d84, i2, i4);
14905 STACKTOP = i5;
14906 return;
14907 }
14908 case 9:
14909 {
14910 i7 = HEAP32[i3 + 92 >> 2] | 0;
14911 if ((i7 | 0) <= 0) {
14912 STACKTOP = i5;
14913 return;
14914 }
14915 i8 = i3 + 100 | 0;
14916 i6 = i3 + 120 | 0;
14917 i60 = i2 | 0;
14918 i59 = i2 + 4 | 0;
14919 i58 = i2 + 8 | 0;
14920 i57 = i2 + 16 | 0;
14921 i56 = i2 + 20 | 0;
14922 i55 = i2 + 24 | 0;
14923 i54 = i2 + 32 | 0;
14924 i53 = i2 + 36 | 0;
14925 i52 = i2 + 40 | 0;
14926 i51 = i2 + 48 | 0;
14927 i50 = i2 + 52 | 0;
14928 i49 = i2 + 56 | 0;
14929 i48 = i9 | 0;
14930 i47 = i9 + 4 | 0;
14931 i46 = i9 + 8 | 0;
14932 i45 = i9 + 12 | 0;
14933 i44 = i9 + 16 | 0;
14934 i43 = i9 + 20 | 0;
14935 i42 = i9 + 24 | 0;
14936 i41 = i9 + 28 | 0;
14937 i40 = i9 + 32 | 0;
14938 i39 = i9 + 36 | 0;
14939 i38 = i9 + 40 | 0;
14940 i37 = i9 + 44 | 0;
14941 i36 = i9 + 48 | 0;
14942 i35 = i9 + 52 | 0;
14943 i34 = i9 + 56 | 0;
14944 i33 = i9 + 60 | 0;
14945 i32 = i7;
14946 do {
14947 i32 = i32 - 1 | 0;
14948 i7 = HEAP32[i8 >> 2] | 0;
14949 d84 = +HEAPF32[i7 + (i32 << 4) >> 2];
14950 d85 = +HEAPF32[i7 + (i32 << 4) + 4 >> 2];
14951 d82 = +HEAPF32[i7 + (i32 << 4) + 8 >> 2];
14952 i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
14953 i31 = HEAP32[(HEAP32[i7 >> 2] | 0) + 16 >> 2] | 0;
14954 d83 = +HEAPF32[(HEAP32[i6 >> 2] | 0) + (i32 << 2) >> 2];
14955 d69 = +HEAPF32[i60 >> 2];
14956 d81 = +HEAPF32[i59 >> 2];
14957 d66 = d81 * 0.0;
14958 d80 = +HEAPF32[i58 >> 2];
14959 d63 = d80 * 0.0;
14960 d68 = d69 * 0.0;
14961 d65 = +HEAPF32[i57 >> 2];
14962 d62 = +HEAPF32[i56 >> 2];
14963 d67 = d62 * 0.0;
14964 d64 = +HEAPF32[i55 >> 2];
14965 d61 = d64 * 0.0;
14966 d79 = d65 * 0.0;
14967 d78 = +HEAPF32[i54 >> 2];
14968 d77 = +HEAPF32[i53 >> 2];
14969 d76 = d77 * 0.0;
14970 d75 = +HEAPF32[i52 >> 2];
14971 d74 = d75 * 0.0;
14972 d72 = d78 * 0.0;
14973 d71 = d84 * d69 + d85 * d81 + d82 * d80 + +HEAPF32[i51 >> 2];
14974 d70 = d84 * d65 + d85 * d62 + d82 * d64 + +HEAPF32[i50 >> 2];
14975 d86 = d84 * d78 + d85 * d77 + d82 * d75 + +HEAPF32[i49 >> 2];
14976 HEAPF32[i48 >> 2] = d69 + d66 + d63;
14977 HEAPF32[i47 >> 2] = d68 + d81 + d63;
14978 HEAPF32[i46 >> 2] = d80 + (d68 + d66);
14979 HEAPF32[i45 >> 2] = 0.0;
14980 HEAPF32[i44 >> 2] = d65 + d67 + d61;
14981 HEAPF32[i43 >> 2] = d79 + d62 + d61;
14982 HEAPF32[i42 >> 2] = d64 + (d79 + d67);
14983 HEAPF32[i41 >> 2] = 0.0;
14984 HEAPF32[i40 >> 2] = d78 + d76 + d74;
14985 HEAPF32[i39 >> 2] = d72 + d77 + d74;
14986 HEAPF32[i38 >> 2] = d75 + (d72 + d76);
14987 HEAPF32[i37 >> 2] = 0.0;
14988 HEAPF32[i36 >> 2] = d71;
14989 HEAPF32[i35 >> 2] = d70;
14990 HEAPF32[i34 >> 2] = d86;
14991 HEAPF32[i33 >> 2] = 0.0;
14992 FUNCTION_TABLE_vifii[i31 & 1](i7, d83, i9, i4);
14993 } while ((i32 | 0) > 0);
14994 STACKTOP = i5;
14995 return;
14996 }
14997 case 11:
14998 {
14999 d83 = +HEAPF32[i3 + 56 >> 2];
15000 d86 = +HEAPF32[i3 + 60 >> 2];
15001 i32 = HEAP32[i3 + 68 >> 2] | 0;
15002 i9 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
15003 FUNCTION_TABLE_viffiii[HEAP32[(HEAP32[i9 >> 2] | 0) + 84 >> 2] & 1](i9, d83, d86, i32, i2, i4);
15004 STACKTOP = i5;
15005 return;
15006 }
15007 case 10:
15008 {
15009 i32 = i3;
15010 i9 = HEAP32[i3 + 52 >> 2] | 0;
15011 d86 = +HEAPF32[i32 + 28 + (((i9 + 2 | 0) % 3 | 0) << 2) >> 2];
15012 d83 = +HEAPF32[i32 + 28 + (i9 << 2) >> 2];
15013 i32 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
15014 FUNCTION_TABLE_viffiii[HEAP32[(HEAP32[i32 >> 2] | 0) + 76 >> 2] & 1](i32, d86, d83, i9, i2, i4);
15015 STACKTOP = i5;
15016 return;
15017 }
15018 case 13:
15019 {
15020 i9 = HEAP32[i3 + 52 >> 2] | 0;
15021 d83 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i3 >> 2] | 0) + 84 >> 2] & 7](i3);
15022 i32 = i10;
15023 i33 = i3 + 28 | 0;
15024 HEAP32[i32 >> 2] = HEAP32[i33 >> 2];
15025 HEAP32[i32 + 4 >> 2] = HEAP32[i33 + 4 >> 2];
15026 HEAP32[i32 + 8 >> 2] = HEAP32[i33 + 8 >> 2];
15027 HEAP32[i32 + 12 >> 2] = HEAP32[i33 + 12 >> 2];
15028 i33 = i3;
15029 i32 = i3;
15030 d86 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i32 >> 2] | 0) + 44 >> 2] & 7](i33);
15031 d70 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i32 >> 2] | 0) + 44 >> 2] & 7](i33);
15032 d71 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i32 >> 2] | 0) + 44 >> 2] & 7](i33);
15033 i33 = i10 | 0;
15034 HEAPF32[i33 >> 2] = d86 + +HEAPF32[i33 >> 2];
15035 i33 = i10 + 4 | 0;
15036 HEAPF32[i33 >> 2] = d70 + +HEAPF32[i33 >> 2];
15037 i33 = i10 + 8 | 0;
15038 HEAPF32[i33 >> 2] = d71 + +HEAPF32[i33 >> 2];
15039 d71 = +HEAPF32[i10 + (i9 << 2) >> 2];
15040 i10 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
15041 FUNCTION_TABLE_viffiii[HEAP32[(HEAP32[i10 >> 2] | 0) + 80 >> 2] & 1](i10, d83, d71, i9, i2, i4);
15042 STACKTOP = i5;
15043 return;
15044 }
15045 case 28:
15046 {
15047 d71 = +HEAPF32[i3 + 64 >> 2];
15048 i9 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
15049 FUNCTION_TABLE_viifii[HEAP32[(HEAP32[i9 >> 2] | 0) + 88 >> 2] & 1](i9, i3 + 48 | 0, d71, i2, i4);
15050 STACKTOP = i5;
15051 return;
15052 }
15053 default:
15054 {
15055 if ((i28 - 21 | 0) >>> 0 < 9) {
15056 HEAPF32[i11 >> 2] = 999999984306749400.0;
15057 HEAPF32[i11 + 4 >> 2] = 999999984306749400.0;
15058 HEAPF32[i11 + 8 >> 2] = 999999984306749400.0;
15059 HEAPF32[i11 + 12 >> 2] = 0.0;
15060 HEAPF32[i12 >> 2] = -999999984306749400.0;
15061 HEAPF32[i12 + 4 >> 2] = -999999984306749400.0;
15062 HEAPF32[i12 + 8 >> 2] = -999999984306749400.0;
15063 HEAPF32[i12 + 12 >> 2] = 0.0;
15064 i9 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
15065 HEAP32[i13 >> 2] = 4216;
15066 HEAP32[i13 + 4 >> 2] = 4240;
15067 HEAP32[i13 + 8 >> 2] = i9;
15068 i9 = i13 + 12 | 0;
15069 i10 = i4;
15070 HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
15071 HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
15072 HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
15073 HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
15074 i10 = i13 + 28 | 0;
15075 i9 = i2;
15076 HEAP32[i10 >> 2] = HEAP32[i9 >> 2];
15077 HEAP32[i10 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
15078 HEAP32[i10 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
15079 HEAP32[i10 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
15080 i9 = i13 + 44 | 0;
15081 i10 = i2 + 16 | 0;
15082 HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
15083 HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
15084 HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
15085 HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
15086 i10 = i13 + 60 | 0;
15087 i9 = i2 + 32 | 0;
15088 HEAP32[i10 >> 2] = HEAP32[i9 >> 2];
15089 HEAP32[i10 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
15090 HEAP32[i10 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
15091 HEAP32[i10 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
15092 i9 = i13 + 76 | 0;
15093 i10 = i2 + 48 | 0;
15094 HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
15095 HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
15096 HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
15097 HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
15098 i10 = i13 | 0;
15099 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i3 >> 2] | 0) + 60 >> 2] & 127](i3, i10, i12, i11);
15100 __ZN31btInternalTriangleIndexCallbackD2Ev(i13 + 4 | 0);
15101 __ZN18btTriangleCallbackD2Ev(i10);
15102 i87 = HEAP32[i27 >> 2] | 0;
15103 } else {
15104 i87 = i28;
15105 }
15106 if ((i87 | 0) == 3) {
15107 HEAPF32[i14 >> 2] = 999999984306749400.0;
15108 HEAPF32[i14 + 4 >> 2] = 999999984306749400.0;
15109 HEAPF32[i14 + 8 >> 2] = 999999984306749400.0;
15110 HEAPF32[i14 + 12 >> 2] = 0.0;
15111 HEAPF32[i15 >> 2] = -999999984306749400.0;
15112 HEAPF32[i15 + 4 >> 2] = -999999984306749400.0;
15113 HEAPF32[i15 + 8 >> 2] = -999999984306749400.0;
15114 HEAPF32[i15 + 12 >> 2] = 0.0;
15115 i28 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
15116 HEAP32[i16 >> 2] = 4216;
15117 HEAP32[i16 + 4 >> 2] = 4240;
15118 HEAP32[i16 + 8 >> 2] = i28;
15119 i28 = i16 + 12 | 0;
15120 i10 = i4;
15121 HEAP32[i28 >> 2] = HEAP32[i10 >> 2];
15122 HEAP32[i28 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
15123 HEAP32[i28 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
15124 HEAP32[i28 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
15125 i10 = i16 + 28 | 0;
15126 i28 = i2;
15127 HEAP32[i10 >> 2] = HEAP32[i28 >> 2];
15128 HEAP32[i10 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
15129 HEAP32[i10 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
15130 HEAP32[i10 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
15131 i28 = i16 + 44 | 0;
15132 i10 = i2 + 16 | 0;
15133 HEAP32[i28 >> 2] = HEAP32[i10 >> 2];
15134 HEAP32[i28 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
15135 HEAP32[i28 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
15136 HEAP32[i28 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
15137 i10 = i16 + 60 | 0;
15138 i28 = i2 + 32 | 0;
15139 HEAP32[i10 >> 2] = HEAP32[i28 >> 2];
15140 HEAP32[i10 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
15141 HEAP32[i10 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
15142 HEAP32[i10 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
15143 i28 = i16 + 76 | 0;
15144 i10 = i2 + 48 | 0;
15145 HEAP32[i28 >> 2] = HEAP32[i10 >> 2];
15146 HEAP32[i28 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
15147 HEAP32[i28 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
15148 HEAP32[i28 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
15149 i10 = HEAP32[i3 + 92 >> 2] | 0;
15150 i28 = i16 + 4 | 0;
15151 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i10 >> 2] | 0) + 8 >> 2] & 127](i10, i28, i15, i14);
15152 __ZN31btInternalTriangleIndexCallbackD2Ev(i28);
15153 __ZN18btTriangleCallbackD2Ev(i16 | 0);
15154 i88 = HEAP32[i27 >> 2] | 0;
15155 } else {
15156 i88 = i87;
15157 }
15158 if ((i88 | 0) >= 7) {
15159 STACKTOP = i5;
15160 return;
15161 }
15162 i88 = i3;
15163 i87 = HEAP32[i3 + 52 >> 2] | 0;
15164 if ((i87 | 0) == 0) {
15165 i27 = i3;
15166 if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i27 >> 2] | 0) + 92 >> 2] & 127](i88) | 0) <= 0) {
15167 STACKTOP = i5;
15168 return;
15169 }
15170 i16 = i3;
15171 i3 = i2 | 0;
15172 i28 = i22 | 0;
15173 i14 = i2 + 4 | 0;
15174 i15 = i22 + 4 | 0;
15175 i10 = i2 + 8 | 0;
15176 i13 = i22 + 8 | 0;
15177 i11 = i2 + 48 | 0;
15178 i12 = i2 + 16 | 0;
15179 i9 = i2 + 20 | 0;
15180 i33 = i2 + 24 | 0;
15181 i32 = i2 + 52 | 0;
15182 i34 = i2 + 32 | 0;
15183 i35 = i2 + 36 | 0;
15184 i36 = i2 + 40 | 0;
15185 i37 = i2 + 56 | 0;
15186 i38 = i24 | 0;
15187 i39 = i24 + 4 | 0;
15188 i40 = i24 + 8 | 0;
15189 i41 = i24 + 12 | 0;
15190 i42 = i23 | 0;
15191 i43 = i23 + 4 | 0;
15192 i44 = i23 + 8 | 0;
15193 i45 = i25 | 0;
15194 i46 = i25 + 4 | 0;
15195 i47 = i25 + 8 | 0;
15196 i48 = i25 + 12 | 0;
15197 i49 = 0;
15198 do {
15199 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i16 >> 2] | 0) + 96 >> 2] & 127](i88, i49, i22, i23);
15200 d71 = +HEAPF32[i3 >> 2];
15201 d83 = +HEAPF32[i28 >> 2];
15202 d70 = +HEAPF32[i14 >> 2];
15203 d86 = +HEAPF32[i15 >> 2];
15204 d76 = +HEAPF32[i10 >> 2];
15205 d72 = +HEAPF32[i13 >> 2];
15206 d75 = +HEAPF32[i11 >> 2];
15207 d74 = +HEAPF32[i12 >> 2];
15208 d77 = +HEAPF32[i9 >> 2];
15209 d78 = +HEAPF32[i33 >> 2];
15210 d67 = +HEAPF32[i32 >> 2];
15211 d79 = +HEAPF32[i34 >> 2];
15212 d64 = +HEAPF32[i35 >> 2];
15213 d61 = +HEAPF32[i36 >> 2];
15214 d62 = +HEAPF32[i37 >> 2];
15215 HEAPF32[i38 >> 2] = d75 + (d71 * d83 + d70 * d86 + d76 * d72);
15216 HEAPF32[i39 >> 2] = d67 + (d83 * d74 + d86 * d77 + d72 * d78);
15217 HEAPF32[i40 >> 2] = d62 + (d83 * d79 + d86 * d64 + d72 * d61);
15218 HEAPF32[i41 >> 2] = 0.0;
15219 d72 = +HEAPF32[i42 >> 2];
15220 d86 = +HEAPF32[i43 >> 2];
15221 d83 = +HEAPF32[i44 >> 2];
15222 HEAPF32[i45 >> 2] = d75 + (d71 * d72 + d70 * d86 + d76 * d83);
15223 HEAPF32[i46 >> 2] = d67 + (d74 * d72 + d77 * d86 + d78 * d83);
15224 HEAPF32[i47 >> 2] = d62 + (d79 * d72 + d64 * d86 + d61 * d83);
15225 HEAPF32[i48 >> 2] = 0.0;
15226 i50 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
15227 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i50 >> 2] | 0) + 8 >> 2] & 127](i50, i24, i25, i4);
15228 i49 = i49 + 1 | 0;
15229 } while ((i49 | 0) < (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i27 >> 2] | 0) + 92 >> 2] & 127](i88) | 0));
15230 STACKTOP = i5;
15231 return;
15232 }
15233 i88 = i87 + 28 | 0;
15234 if ((HEAP32[i88 >> 2] | 0) <= 0) {
15235 STACKTOP = i5;
15236 return;
15237 }
15238 i27 = i87 + 36 | 0;
15239 i49 = i19 | 0;
15240 i25 = i19 + 4 | 0;
15241 i24 = i19 + 8 | 0;
15242 i48 = i19 + 12 | 0;
15243 i47 = i2 | 0;
15244 i46 = i2 + 4 | 0;
15245 i45 = i2 + 8 | 0;
15246 i44 = i2 + 48 | 0;
15247 i43 = i2 + 16 | 0;
15248 i42 = i2 + 20 | 0;
15249 i41 = i2 + 24 | 0;
15250 i40 = i2 + 52 | 0;
15251 i39 = i2 + 32 | 0;
15252 i38 = i2 + 36 | 0;
15253 i37 = i2 + 40 | 0;
15254 i36 = i2 + 56 | 0;
15255 i2 = i20 | 0;
15256 i35 = i20 + 4 | 0;
15257 i34 = i20 + 8 | 0;
15258 i32 = i20 + 12 | 0;
15259 i33 = i21 | 0;
15260 i9 = i21 + 4 | 0;
15261 i12 = i21 + 8 | 0;
15262 i11 = i21 + 12 | 0;
15263 i13 = i87 + 16 | 0;
15264 i87 = i17 | 0;
15265 i10 = i17 + 4 | 0;
15266 i15 = i17 + 8 | 0;
15267 i14 = i17 + 12 | 0;
15268 i28 = i18 | 0;
15269 i3 = i18 + 4 | 0;
15270 i23 = i18 + 8 | 0;
15271 i22 = i18 + 12 | 0;
15272 i16 = 0;
15273 do {
15274 i50 = HEAP32[i27 >> 2] | 0;
15275 i51 = HEAP32[i50 + (i16 * 56 | 0) + 4 >> 2] | 0;
15276 L252 : do {
15277 if ((i51 | 0) > 0) {
15278 i52 = HEAP32[i50 + (i16 * 56 | 0) + 12 >> 2] | 0;
15279 d83 = 0.0;
15280 d61 = 0.0;
15281 d86 = 0.0;
15282 i53 = HEAP32[i52 + (i51 - 1 << 2) >> 2] | 0;
15283 i54 = 0;
15284 i55 = i52;
15285 while (1) {
15286 i52 = HEAP32[i55 + (i54 << 2) >> 2] | 0;
15287 i56 = HEAP32[i13 >> 2] | 0;
15288 d64 = d86 + +HEAPF32[i56 + (i52 << 4) >> 2];
15289 d72 = d61 + +HEAPF32[i56 + (i52 << 4) + 4 >> 2];
15290 d79 = d83 + +HEAPF32[i56 + (i52 << 4) + 8 >> 2];
15291 i56 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
15292 i57 = HEAP32[(HEAP32[i56 >> 2] | 0) + 8 >> 2] | 0;
15293 i58 = HEAP32[i13 >> 2] | 0;
15294 d62 = +HEAPF32[i47 >> 2];
15295 d78 = +HEAPF32[i58 + (i53 << 4) >> 2];
15296 d77 = +HEAPF32[i46 >> 2];
15297 d74 = +HEAPF32[i58 + (i53 << 4) + 4 >> 2];
15298 d67 = +HEAPF32[i45 >> 2];
15299 d76 = +HEAPF32[i58 + (i53 << 4) + 8 >> 2];
15300 d70 = +HEAPF32[i44 >> 2];
15301 d71 = +HEAPF32[i43 >> 2];
15302 d75 = +HEAPF32[i42 >> 2];
15303 d65 = +HEAPF32[i41 >> 2];
15304 d66 = +HEAPF32[i40 >> 2];
15305 d68 = +HEAPF32[i39 >> 2];
15306 d80 = +HEAPF32[i38 >> 2];
15307 d63 = +HEAPF32[i37 >> 2];
15308 d81 = +HEAPF32[i36 >> 2];
15309 HEAPF32[i87 >> 2] = d70 + (d62 * d78 + d77 * d74 + d67 * d76);
15310 HEAPF32[i10 >> 2] = d66 + (d78 * d71 + d74 * d75 + d76 * d65);
15311 HEAPF32[i15 >> 2] = d81 + (d78 * d68 + d74 * d80 + d76 * d63);
15312 HEAPF32[i14 >> 2] = 0.0;
15313 d76 = +HEAPF32[i58 + (i52 << 4) >> 2];
15314 d74 = +HEAPF32[i58 + (i52 << 4) + 4 >> 2];
15315 d78 = +HEAPF32[i58 + (i52 << 4) + 8 >> 2];
15316 HEAPF32[i28 >> 2] = d70 + (d62 * d76 + d77 * d74 + d67 * d78);
15317 HEAPF32[i3 >> 2] = d66 + (d71 * d76 + d75 * d74 + d65 * d78);
15318 HEAPF32[i23 >> 2] = d81 + (d68 * d76 + d80 * d74 + d63 * d78);
15319 HEAPF32[i22 >> 2] = 0.0;
15320 FUNCTION_TABLE_viiii[i57 & 127](i56, i17, i18, i4);
15321 i56 = i54 + 1 | 0;
15322 i57 = HEAP32[i27 >> 2] | 0;
15323 if ((i56 | 0) >= (HEAP32[i57 + (i16 * 56 | 0) + 4 >> 2] | 0)) {
15324 d89 = d64;
15325 d90 = d72;
15326 d91 = d79;
15327 i92 = i57;
15328 break L252;
15329 }
15330 d83 = d79;
15331 d61 = d72;
15332 d86 = d64;
15333 i53 = i52;
15334 i54 = i56;
15335 i55 = HEAP32[i57 + (i16 * 56 | 0) + 12 >> 2] | 0;
15336 }
15337 } else {
15338 d89 = 0.0;
15339 d90 = 0.0;
15340 d91 = 0.0;
15341 i92 = i50;
15342 }
15343 } while (0);
15344 d86 = 1.0 / +(i51 | 0);
15345 d61 = d89 * d86;
15346 d83 = d90 * d86;
15347 d64 = d91 * d86;
15348 HEAPF32[i49 >> 2] = 1.0;
15349 HEAPF32[i25 >> 2] = 1.0;
15350 HEAPF32[i24 >> 2] = 0.0;
15351 HEAPF32[i48 >> 2] = 0.0;
15352 d86 = +HEAPF32[i92 + (i16 * 56 | 0) + 40 >> 2];
15353 d72 = +HEAPF32[i92 + (i16 * 56 | 0) + 44 >> 2];
15354 d79 = +HEAPF32[i92 + (i16 * 56 | 0) + 48 >> 2];
15355 i50 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
15356 i55 = HEAP32[(HEAP32[i50 >> 2] | 0) + 8 >> 2] | 0;
15357 d78 = +HEAPF32[i47 >> 2];
15358 d63 = +HEAPF32[i46 >> 2];
15359 d74 = +HEAPF32[i45 >> 2];
15360 d80 = +HEAPF32[i44 >> 2];
15361 d76 = +HEAPF32[i43 >> 2];
15362 d68 = +HEAPF32[i42 >> 2];
15363 d81 = +HEAPF32[i41 >> 2];
15364 d65 = +HEAPF32[i40 >> 2];
15365 d75 = +HEAPF32[i39 >> 2];
15366 d71 = +HEAPF32[i38 >> 2];
15367 d66 = +HEAPF32[i37 >> 2];
15368 d67 = +HEAPF32[i36 >> 2];
15369 HEAPF32[i2 >> 2] = d80 + (d61 * d78 + d83 * d63 + d64 * d74);
15370 HEAPF32[i35 >> 2] = d65 + (d61 * d76 + d83 * d68 + d64 * d81);
15371 HEAPF32[i34 >> 2] = d67 + (d61 * d75 + d83 * d71 + d64 * d66);
15372 HEAPF32[i32 >> 2] = 0.0;
15373 d77 = d61 + d86;
15374 d86 = d83 + d72;
15375 d72 = d64 + d79;
15376 HEAPF32[i33 >> 2] = d80 + (d77 * d78 + d86 * d63 + d72 * d74);
15377 HEAPF32[i9 >> 2] = d65 + (d77 * d76 + d86 * d68 + d72 * d81);
15378 HEAPF32[i12 >> 2] = d67 + (d77 * d75 + d86 * d71 + d72 * d66);
15379 HEAPF32[i11 >> 2] = 0.0;
15380 FUNCTION_TABLE_viiii[i55 & 127](i50, i20, i21, i19);
15381 i16 = i16 + 1 | 0;
15382 } while ((i16 | 0) < (HEAP32[i88 >> 2] | 0));
15383 STACKTOP = i5;
15384 return;
15385 }
15386 }
15387 }
15388 function __ZN20btConvexHullInternal6shrinkEff(i1, d2, d3) {
15389 i1 = i1 | 0;
15390 d2 = +d2;
15391 d3 = +d3;
15392 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, d15 = 0.0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0, i87 = 0, i88 = 0, i89 = 0, i90 = 0, i91 = 0, i92 = 0, i93 = 0, i94 = 0, i95 = 0, i96 = 0, i97 = 0, i98 = 0, i99 = 0, i100 = 0, i101 = 0, i102 = 0, i103 = 0, i104 = 0, i105 = 0, i106 = 0, i107 = 0, i108 = 0, i109 = 0, i110 = 0, i111 = 0, i112 = 0, i113 = 0, i114 = 0, i115 = 0, i116 = 0, i117 = 0, i118 = 0, i119 = 0, i120 = 0, i121 = 0, i122 = 0, i123 = 0, i124 = 0, i125 = 0, i126 = 0, i127 = 0, i128 = 0, i129 = 0, i130 = 0, i131 = 0, i132 = 0, i133 = 0, i134 = 0, i135 = 0, i136 = 0, i137 = 0, i138 = 0, i139 = 0, i140 = 0, i141 = 0, i142 = 0, i143 = 0, i144 = 0, i145 = 0, i146 = 0, i147 = 0, i148 = 0, i149 = 0, i150 = 0, i151 = 0, i152 = 0, i153 = 0, i154 = 0, i155 = 0, i156 = 0, i157 = 0, i158 = 0, i159 = 0, i160 = 0, i161 = 0, i162 = 0, i163 = 0, i164 = 0, i165 = 0, i166 = 0, i167 = 0, i168 = 0, i169 = 0, i170 = 0, i171 = 0, i172 = 0, d173 = 0.0, d174 = 0.0, d175 = 0.0, d176 = 0.0, d177 = 0.0, d178 = 0.0, d179 = 0.0, d180 = 0.0;
15393 i4 = STACKTOP;
15394 STACKTOP = STACKTOP + 136 | 0;
15395 i5 = i4 | 0;
15396 i6 = i4 + 16 | 0;
15397 i7 = i4 + 32 | 0;
15398 i8 = i4 + 48 | 0;
15399 i9 = i4 + 64 | 0;
15400 i10 = i4 + 80 | 0;
15401 i11 = i4 + 96 | 0;
15402 i12 = i4 + 112 | 0;
15403 i13 = i1 + 124 | 0;
15404 i14 = HEAP32[i13 >> 2] | 0;
15405 if ((i14 | 0) == 0) {
15406 d15 = 0.0;
15407 STACKTOP = i4;
15408 return +d15;
15409 }
15410 i16 = i1 + 100 | 0;
15411 i17 = (HEAP32[i16 >> 2] | 0) - 1 | 0;
15412 HEAP32[i16 >> 2] = i17;
15413 HEAP32[i14 + 104 >> 2] = i17;
15414 i14 = __Z22btAlignedAllocInternalji(4, 16) | 0;
15415 i16 = i14;
15416 if ((i14 | 0) != 0) {
15417 HEAP32[i16 >> 2] = HEAP32[i13 >> 2];
15418 }
15419 i14 = HEAP32[i13 >> 2] | 0;
15420 i13 = HEAP32[i14 + 88 >> 2] | 0;
15421 i18 = HEAP32[i14 + 92 >> 2] | 0;
15422 i19 = HEAP32[i14 + 96 >> 2] | 0;
15423 i14 = i6 | 0;
15424 i20 = i6 + 8 | 0;
15425 i21 = i7 | 0;
15426 _memset(i6 | 0, 0, 16);
15427 i22 = i7 + 8 | 0;
15428 i23 = i8 | 0;
15429 _memset(i7 | 0, 0, 16);
15430 i24 = i8 + 8 | 0;
15431 i25 = i9 | 0;
15432 _memset(i8 | 0, 0, 16);
15433 i26 = i9 + 8 | 0;
15434 i27 = i1 + 64 | 0;
15435 _memset(i9 | 0, 0, 16);
15436 i28 = 0;
15437 i29 = 0;
15438 i30 = 0;
15439 i31 = 1;
15440 i32 = 1;
15441 i33 = i16;
15442 i16 = 0;
15443 i34 = 0;
15444 i35 = 0;
15445 i36 = 0;
15446 i37 = 0;
15447 i38 = 0;
15448 i39 = 0;
15449 i40 = 0;
15450 i41 = 0;
15451 i42 = 0;
15452 i43 = 0;
15453 i44 = 0;
15454 i45 = 0;
15455 i46 = 0;
15456 i47 = 0;
15457 i48 = 0;
15458 L1498 : while (1) {
15459 i49 = i31;
15460 while (1) {
15461 if ((i49 | 0) <= 0) {
15462 break L1498;
15463 }
15464 i50 = i49 - 1 | 0;
15465 i51 = HEAP32[i33 + (i50 << 2) >> 2] | 0;
15466 i52 = i51 + 8 | 0;
15467 i53 = HEAP32[i52 >> 2] | 0;
15468 if ((i53 | 0) == 0) {
15469 i49 = i50;
15470 } else {
15471 break;
15472 }
15473 }
15474 i54 = i51 + 88 | 0;
15475 i55 = i51 + 92 | 0;
15476 i56 = i51 + 96 | 0;
15477 i57 = i53;
15478 i58 = i28;
15479 i59 = i29;
15480 i60 = i30;
15481 i61 = i50;
15482 i62 = i32;
15483 i63 = i33;
15484 i64 = i16;
15485 i65 = i34;
15486 i66 = i35;
15487 i67 = i36;
15488 i68 = i37;
15489 i69 = i38;
15490 i70 = i39;
15491 i71 = i40;
15492 i72 = i41;
15493 i73 = i42;
15494 i74 = i43;
15495 i75 = i44;
15496 i76 = i45;
15497 i77 = i46;
15498 i78 = i47;
15499 i79 = i48;
15500 while (1) {
15501 i80 = i57 + 12 | 0;
15502 i81 = (HEAP32[i80 >> 2] | 0) + 104 | 0;
15503 if ((HEAP32[i81 >> 2] | 0) == (i17 | 0)) {
15504 i82 = i61;
15505 i83 = i62;
15506 i84 = i63;
15507 } else {
15508 HEAP32[i81 >> 2] = i17;
15509 do {
15510 if ((i61 | 0) == (i62 | 0)) {
15511 i81 = (i62 | 0) == 0 ? 1 : i62 << 1;
15512 if ((i62 | 0) >= (i81 | 0)) {
15513 i85 = i62;
15514 i86 = i63;
15515 break;
15516 }
15517 if ((i81 | 0) == 0) {
15518 i87 = 0;
15519 } else {
15520 i87 = __Z22btAlignedAllocInternalji(i81 << 2, 16) | 0;
15521 }
15522 if ((i62 | 0) > 0) {
15523 i88 = 0;
15524 do {
15525 i89 = i87 + (i88 << 2) | 0;
15526 if ((i89 | 0) != 0) {
15527 HEAP32[i89 >> 2] = HEAP32[i63 + (i88 << 2) >> 2];
15528 }
15529 i88 = i88 + 1 | 0;
15530 } while ((i88 | 0) < (i62 | 0));
15531 }
15532 if ((i63 | 0) == 0) {
15533 i85 = i81;
15534 i86 = i87;
15535 break;
15536 }
15537 __Z21btAlignedFreeInternalPv(i63);
15538 i85 = i81;
15539 i86 = i87;
15540 } else {
15541 i85 = i62;
15542 i86 = i63;
15543 }
15544 } while (0);
15545 i88 = i86 + (i61 << 2) | 0;
15546 if ((i88 | 0) != 0) {
15547 HEAP32[i88 >> 2] = HEAP32[i80 >> 2];
15548 }
15549 i82 = i61 + 1 | 0;
15550 i83 = i85;
15551 i84 = i86;
15552 }
15553 if ((HEAP32[i57 + 20 >> 2] | 0) == (i17 | 0)) {
15554 i90 = i58;
15555 i91 = i59;
15556 i92 = i60;
15557 i93 = i64;
15558 i94 = i65;
15559 i95 = i66;
15560 i96 = i67;
15561 i97 = i68;
15562 i98 = i69;
15563 i99 = i70;
15564 i100 = i71;
15565 i101 = i72;
15566 i102 = i73;
15567 i103 = i74;
15568 i104 = i75;
15569 i105 = i76;
15570 i106 = i77;
15571 i107 = i78;
15572 i108 = i79;
15573 } else {
15574 i88 = __ZN20btConvexHullInternal4PoolINS_4FaceEE9newObjectEv(i27) | 0;
15575 i89 = HEAP32[i80 >> 2] | 0;
15576 i109 = HEAP32[(HEAP32[(HEAP32[i57 + 8 >> 2] | 0) + 4 >> 2] | 0) + 12 >> 2] | 0;
15577 HEAP32[i88 + 4 >> 2] = i89;
15578 i110 = i88 + 12 | 0;
15579 i111 = i89 + 88 | 0;
15580 HEAP32[i110 >> 2] = HEAP32[i111 >> 2];
15581 HEAP32[i110 + 4 >> 2] = HEAP32[i111 + 4 >> 2];
15582 HEAP32[i110 + 8 >> 2] = HEAP32[i111 + 8 >> 2];
15583 HEAP32[i110 + 12 >> 2] = HEAP32[i111 + 12 >> 2];
15584 i111 = i89 + 88 | 0;
15585 i110 = i89 + 92 | 0;
15586 i112 = (HEAP32[i109 + 92 >> 2] | 0) - (HEAP32[i110 >> 2] | 0) | 0;
15587 i113 = i89 + 96 | 0;
15588 i114 = (HEAP32[i109 + 96 >> 2] | 0) - (HEAP32[i113 >> 2] | 0) | 0;
15589 HEAP32[i88 + 28 >> 2] = (HEAP32[i109 + 88 >> 2] | 0) - (HEAP32[i111 >> 2] | 0);
15590 HEAP32[i88 + 32 >> 2] = i112;
15591 HEAP32[i88 + 36 >> 2] = i114;
15592 HEAP32[i88 + 40 >> 2] = -1;
15593 i114 = (HEAP32[i55 >> 2] | 0) - (HEAP32[i110 >> 2] | 0) | 0;
15594 i110 = (HEAP32[i56 >> 2] | 0) - (HEAP32[i113 >> 2] | 0) | 0;
15595 HEAP32[i88 + 44 >> 2] = (HEAP32[i54 >> 2] | 0) - (HEAP32[i111 >> 2] | 0);
15596 HEAP32[i88 + 48 >> 2] = i114;
15597 HEAP32[i88 + 52 >> 2] = i110;
15598 HEAP32[i88 + 56 >> 2] = -1;
15599 i110 = i89 + 16 | 0;
15600 i114 = HEAP32[i110 >> 2] | 0;
15601 if ((i114 | 0) == 0) {
15602 HEAP32[i89 + 12 >> 2] = i88;
15603 } else {
15604 HEAP32[i114 + 8 >> 2] = i88;
15605 }
15606 HEAP32[i110 >> 2] = i88;
15607 do {
15608 if ((i58 | 0) == (i59 | 0)) {
15609 i110 = (i59 | 0) == 0 ? 1 : i59 << 1;
15610 if ((i59 | 0) >= (i110 | 0)) {
15611 i115 = i59;
15612 i116 = i60;
15613 break;
15614 }
15615 if ((i110 | 0) == 0) {
15616 i117 = 0;
15617 } else {
15618 i117 = __Z22btAlignedAllocInternalji(i110 << 2, 16) | 0;
15619 }
15620 if ((i59 | 0) > 0) {
15621 i114 = 0;
15622 do {
15623 i89 = i117 + (i114 << 2) | 0;
15624 if ((i89 | 0) != 0) {
15625 HEAP32[i89 >> 2] = HEAP32[i60 + (i114 << 2) >> 2];
15626 }
15627 i114 = i114 + 1 | 0;
15628 } while ((i114 | 0) < (i59 | 0));
15629 }
15630 if ((i60 | 0) == 0) {
15631 i115 = i110;
15632 i116 = i117;
15633 break;
15634 }
15635 __Z21btAlignedFreeInternalPv(i60);
15636 i115 = i110;
15637 i116 = i117;
15638 } else {
15639 i115 = i59;
15640 i116 = i60;
15641 }
15642 } while (0);
15643 i80 = i116 + (i58 << 2) | 0;
15644 if ((i80 | 0) == 0) {
15645 i118 = 0;
15646 i119 = 0;
15647 i120 = i57;
15648 i121 = i64;
15649 i122 = i65;
15650 i123 = i66;
15651 i124 = i67;
15652 i125 = i68;
15653 i126 = i69;
15654 i127 = i70;
15655 i128 = i71;
15656 i129 = i72;
15657 i130 = i73;
15658 i131 = i74;
15659 i132 = i75;
15660 i133 = i76;
15661 i134 = i77;
15662 i135 = i78;
15663 i136 = i79;
15664 } else {
15665 HEAP32[i80 >> 2] = i88;
15666 i118 = 0;
15667 i119 = 0;
15668 i120 = i57;
15669 i121 = i64;
15670 i122 = i65;
15671 i123 = i66;
15672 i124 = i67;
15673 i125 = i68;
15674 i126 = i69;
15675 i127 = i70;
15676 i128 = i71;
15677 i129 = i72;
15678 i130 = i73;
15679 i131 = i74;
15680 i132 = i75;
15681 i133 = i76;
15682 i134 = i77;
15683 i135 = i78;
15684 i136 = i79;
15685 }
15686 while (1) {
15687 if ((i119 | 0) == 0 | (i118 | 0) == 0) {
15688 i137 = i121;
15689 i138 = i122;
15690 i139 = i123;
15691 i140 = i124;
15692 i141 = i125;
15693 i142 = i126;
15694 i143 = i127;
15695 i144 = i128;
15696 i145 = i129;
15697 i146 = i130;
15698 i147 = i131;
15699 i148 = i132;
15700 i149 = i133;
15701 i150 = i134;
15702 i151 = i135;
15703 i152 = i136;
15704 } else {
15705 i80 = HEAP32[i54 >> 2] | 0;
15706 i114 = i80 - i13 | 0;
15707 i81 = HEAP32[i55 >> 2] | 0;
15708 i89 = i81 - i18 | 0;
15709 i111 = HEAP32[i56 >> 2] | 0;
15710 i113 = i111 - i19 | 0;
15711 i112 = HEAP32[i119 + 88 >> 2] | 0;
15712 i109 = i112 - i13 | 0;
15713 i153 = HEAP32[i119 + 92 >> 2] | 0;
15714 i154 = i153 - i18 | 0;
15715 i155 = HEAP32[i119 + 96 >> 2] | 0;
15716 i156 = i155 - i19 | 0;
15717 i157 = HEAP32[i118 + 88 >> 2] | 0;
15718 i158 = i157 - i13 | 0;
15719 i159 = HEAP32[i118 + 92 >> 2] | 0;
15720 i160 = i159 - i18 | 0;
15721 i161 = HEAP32[i118 + 96 >> 2] | 0;
15722 i162 = i161 - i19 | 0;
15723 i163 = Math_imul(i162, i154) | 0;
15724 i164 = i163 - (Math_imul(i160, i156) | 0) | 0;
15725 i163 = Math_imul(i158, i156) | 0;
15726 i156 = i163 - (Math_imul(i162, i109) | 0) | 0;
15727 i162 = Math_imul(i160, i109) | 0;
15728 i109 = i162 - (Math_imul(i158, i154) | 0) | 0;
15729 i154 = ___muldi3(i164, (i164 | 0) < 0 ? -1 : 0, i114, (i114 | 0) < 0 ? -1 : 0) | 0;
15730 i114 = tempRet0;
15731 i164 = ___muldi3(i156, (i156 | 0) < 0 ? -1 : 0, i89, (i89 | 0) < 0 ? -1 : 0) | 0;
15732 i89 = tempRet0;
15733 i156 = ___muldi3(i109, (i109 | 0) < 0 ? -1 : 0, i113, (i113 | 0) < 0 ? -1 : 0) | 0;
15734 i113 = _i64Add(i154, i114, i156, tempRet0) | 0;
15735 i156 = _i64Add(i113, tempRet0, i164, i89) | 0;
15736 i89 = tempRet0;
15737 i164 = i80 + i13 + i112 + i157 | 0;
15738 i157 = i81 + i18 + i153 + i159 | 0;
15739 i159 = i111 + i19 + i155 + i161 | 0;
15740 i161 = ___muldi3(i156, i89, i164, (i164 | 0) < 0 ? -1 : 0) | 0;
15741 i164 = tempRet0;
15742 i155 = _llvm_uadd_with_overflow_i64(i122 | 0, i121 | 0, i161 | 0, i164 | 0) | 0;
15743 i161 = i155;
15744 i155 = tempRet0;
15745 if (tempRet1) {
15746 i111 = _i64Add(i124, i123, 1, 0) | 0;
15747 i153 = tempRet0;
15748 HEAP32[i20 >> 2] = i111;
15749 HEAP32[i20 + 4 >> 2] = i153;
15750 i165 = i153;
15751 i166 = i111;
15752 } else {
15753 i165 = i123;
15754 i166 = i124;
15755 }
15756 HEAP32[i14 >> 2] = i161;
15757 HEAP32[i14 + 4 >> 2] = i155;
15758 i111 = _i64Add(i166, i165, i164 >> 31 | ((i164 | 0) < 0 ? -1 : 0) << 1, ((i164 | 0) < 0 ? -1 : 0) >> 31 | ((i164 | 0) < 0 ? -1 : 0) << 1) | 0;
15759 i164 = tempRet0;
15760 HEAP32[i20 >> 2] = i111;
15761 HEAP32[i20 + 4 >> 2] = i164;
15762 i153 = ___muldi3(i156, i89, i157, (i157 | 0) < 0 ? -1 : 0) | 0;
15763 i157 = tempRet0;
15764 i81 = _llvm_uadd_with_overflow_i64(i126 | 0, i125 | 0, i153 | 0, i157 | 0) | 0;
15765 i153 = i81;
15766 i81 = tempRet0;
15767 if (tempRet1) {
15768 i112 = _i64Add(i128, i127, 1, 0) | 0;
15769 i80 = tempRet0;
15770 HEAP32[i22 >> 2] = i112;
15771 HEAP32[i22 + 4 >> 2] = i80;
15772 i167 = i80;
15773 i168 = i112;
15774 } else {
15775 i167 = i127;
15776 i168 = i128;
15777 }
15778 HEAP32[i21 >> 2] = i153;
15779 HEAP32[i21 + 4 >> 2] = i81;
15780 i112 = _i64Add(i168, i167, i157 >> 31 | ((i157 | 0) < 0 ? -1 : 0) << 1, ((i157 | 0) < 0 ? -1 : 0) >> 31 | ((i157 | 0) < 0 ? -1 : 0) << 1) | 0;
15781 i157 = tempRet0;
15782 HEAP32[i22 >> 2] = i112;
15783 HEAP32[i22 + 4 >> 2] = i157;
15784 i80 = ___muldi3(i156, i89, i159, (i159 | 0) < 0 ? -1 : 0) | 0;
15785 i159 = tempRet0;
15786 i113 = _llvm_uadd_with_overflow_i64(i130 | 0, i129 | 0, i80 | 0, i159 | 0) | 0;
15787 i80 = i113;
15788 i113 = tempRet0;
15789 if (tempRet1) {
15790 i114 = _i64Add(i132, i131, 1, 0) | 0;
15791 i154 = tempRet0;
15792 HEAP32[i24 >> 2] = i114;
15793 HEAP32[i24 + 4 >> 2] = i154;
15794 i169 = i154;
15795 i170 = i114;
15796 } else {
15797 i169 = i131;
15798 i170 = i132;
15799 }
15800 HEAP32[i23 >> 2] = i80;
15801 HEAP32[i23 + 4 >> 2] = i113;
15802 i114 = _i64Add(i170, i169, i159 >> 31 | ((i159 | 0) < 0 ? -1 : 0) << 1, ((i159 | 0) < 0 ? -1 : 0) >> 31 | ((i159 | 0) < 0 ? -1 : 0) << 1) | 0;
15803 i159 = tempRet0;
15804 HEAP32[i24 >> 2] = i114;
15805 HEAP32[i24 + 4 >> 2] = i159;
15806 i154 = _llvm_uadd_with_overflow_i64(i134 | 0, i133 | 0, i156 | 0, i89 | 0) | 0;
15807 i156 = i154;
15808 i154 = tempRet0;
15809 if (tempRet1) {
15810 i109 = _i64Add(i136, i135, 1, 0) | 0;
15811 i158 = tempRet0;
15812 HEAP32[i26 >> 2] = i109;
15813 HEAP32[i26 + 4 >> 2] = i158;
15814 i171 = i158;
15815 i172 = i109;
15816 } else {
15817 i171 = i135;
15818 i172 = i136;
15819 }
15820 HEAP32[i25 >> 2] = i156;
15821 HEAP32[i25 + 4 >> 2] = i154;
15822 i109 = _i64Add(i172, i171, i89 >> 31 | ((i89 | 0) < 0 ? -1 : 0) << 1, ((i89 | 0) < 0 ? -1 : 0) >> 31 | ((i89 | 0) < 0 ? -1 : 0) << 1) | 0;
15823 i89 = tempRet0;
15824 HEAP32[i26 >> 2] = i109;
15825 HEAP32[i26 + 4 >> 2] = i89;
15826 i137 = i155;
15827 i138 = i161;
15828 i139 = i164;
15829 i140 = i111;
15830 i141 = i81;
15831 i142 = i153;
15832 i143 = i157;
15833 i144 = i112;
15834 i145 = i113;
15835 i146 = i80;
15836 i147 = i159;
15837 i148 = i114;
15838 i149 = i154;
15839 i150 = i156;
15840 i151 = i89;
15841 i152 = i109;
15842 }
15843 HEAP32[i120 + 20 >> 2] = i17;
15844 HEAP32[i120 + 16 >> 2] = i88;
15845 i109 = HEAP32[(HEAP32[i120 + 8 >> 2] | 0) + 4 >> 2] | 0;
15846 if ((i109 | 0) == (i57 | 0)) {
15847 break;
15848 } else {
15849 i119 = i118;
15850 i118 = HEAP32[i120 + 12 >> 2] | 0;
15851 i120 = i109;
15852 i121 = i137;
15853 i122 = i138;
15854 i123 = i139;
15855 i124 = i140;
15856 i125 = i141;
15857 i126 = i142;
15858 i127 = i143;
15859 i128 = i144;
15860 i129 = i145;
15861 i130 = i146;
15862 i131 = i147;
15863 i132 = i148;
15864 i133 = i149;
15865 i134 = i150;
15866 i135 = i151;
15867 i136 = i152;
15868 }
15869 }
15870 i90 = i58 + 1 | 0;
15871 i91 = i115;
15872 i92 = i116;
15873 i93 = i137;
15874 i94 = i138;
15875 i95 = i139;
15876 i96 = i140;
15877 i97 = i141;
15878 i98 = i142;
15879 i99 = i143;
15880 i100 = i144;
15881 i101 = i145;
15882 i102 = i146;
15883 i103 = i147;
15884 i104 = i148;
15885 i105 = i149;
15886 i106 = i150;
15887 i107 = i151;
15888 i108 = i152;
15889 }
15890 i88 = HEAP32[i57 >> 2] | 0;
15891 if ((i88 | 0) == (HEAP32[i52 >> 2] | 0)) {
15892 i28 = i90;
15893 i29 = i91;
15894 i30 = i92;
15895 i31 = i82;
15896 i32 = i83;
15897 i33 = i84;
15898 i16 = i93;
15899 i34 = i94;
15900 i35 = i95;
15901 i36 = i96;
15902 i37 = i97;
15903 i38 = i98;
15904 i39 = i99;
15905 i40 = i100;
15906 i41 = i101;
15907 i42 = i102;
15908 i43 = i103;
15909 i44 = i104;
15910 i45 = i105;
15911 i46 = i106;
15912 i47 = i107;
15913 i48 = i108;
15914 continue L1498;
15915 } else {
15916 i57 = i88;
15917 i58 = i90;
15918 i59 = i91;
15919 i60 = i92;
15920 i61 = i82;
15921 i62 = i83;
15922 i63 = i84;
15923 i64 = i93;
15924 i65 = i94;
15925 i66 = i95;
15926 i67 = i96;
15927 i68 = i97;
15928 i69 = i98;
15929 i70 = i99;
15930 i71 = i100;
15931 i72 = i101;
15932 i73 = i102;
15933 i74 = i103;
15934 i75 = i104;
15935 i76 = i105;
15936 i77 = i106;
15937 i78 = i107;
15938 i79 = i108;
15939 }
15940 }
15941 }
15942 i108 = 0;
15943 L1573 : do {
15944 if ((i47 | 0) < (i108 | 0) | (i47 | 0) == (i108 | 0) & i48 >>> 0 < 0 >>> 0) {
15945 d173 = 0.0;
15946 } else {
15947 if ((i46 | i48 | 0) == 0 & (i45 | i47 | 0) == 0) {
15948 d173 = 0.0;
15949 break;
15950 }
15951 d174 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i6);
15952 i107 = i1 + 108 | 0;
15953 i106 = i10 | 0;
15954 HEAPF32[i10 + (HEAP32[i107 >> 2] << 2) >> 2] = d174;
15955 d174 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i7);
15956 i105 = i1 + 112 | 0;
15957 HEAPF32[i10 + (HEAP32[i105 >> 2] << 2) >> 2] = d174;
15958 d174 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i8);
15959 i104 = i1 + 104 | 0;
15960 HEAPF32[i10 + (HEAP32[i104 >> 2] << 2) >> 2] = d174;
15961 d174 = 1.0 / (+__ZNK20btConvexHullInternal6Int1288toScalarEv(i9) * 4.0);
15962 i103 = i10 + 4 | 0;
15963 d175 = d174 * +HEAPF32[i103 >> 2];
15964 i102 = i10 + 8 | 0;
15965 d176 = d174 * +HEAPF32[i102 >> 2];
15966 i101 = i1 | 0;
15967 d177 = d174 * +HEAPF32[i106 >> 2] * +HEAPF32[i101 >> 2];
15968 HEAPF32[i106 >> 2] = d177;
15969 i106 = i1 + 4 | 0;
15970 d174 = d175 * +HEAPF32[i106 >> 2];
15971 HEAPF32[i103 >> 2] = d174;
15972 i103 = i1 + 8 | 0;
15973 d175 = d176 * +HEAPF32[i103 >> 2];
15974 HEAPF32[i102 >> 2] = d175;
15975 if (d3 > 0.0) {
15976 if ((i28 | 0) > 0) {
15977 i102 = i5 | 0;
15978 i100 = i5 + 4 | 0;
15979 i99 = i5 + 8 | 0;
15980 i98 = i11 | 0;
15981 i97 = i11 + 4 | 0;
15982 i96 = i11 + 8 | 0;
15983 d176 = 3.4028234663852886e+38;
15984 i95 = 0;
15985 do {
15986 i94 = i30 + (i95 << 2) | 0;
15987 __ZN20btConvexHullInternal11getBtNormalEPNS_4FaceE(i11, i1, HEAP32[i94 >> 2] | 0);
15988 i93 = HEAP32[i94 >> 2] | 0;
15989 HEAPF32[i5 + (HEAP32[i107 >> 2] << 2) >> 2] = +(HEAP32[i93 + 12 >> 2] | 0);
15990 HEAPF32[i5 + (HEAP32[i105 >> 2] << 2) >> 2] = +(HEAP32[i93 + 16 >> 2] | 0);
15991 HEAPF32[i5 + (HEAP32[i104 >> 2] << 2) >> 2] = +(HEAP32[i93 + 20 >> 2] | 0);
15992 d178 = (+HEAPF32[i102 >> 2] * +HEAPF32[i101 >> 2] - d177) * +HEAPF32[i98 >> 2] + (+HEAPF32[i100 >> 2] * +HEAPF32[i106 >> 2] - d174) * +HEAPF32[i97 >> 2] + (+HEAPF32[i99 >> 2] * +HEAPF32[i103 >> 2] - d175) * +HEAPF32[i96 >> 2];
15993 d176 = d178 < d176 ? d178 : d176;
15994 i95 = i95 + 1 | 0;
15995 } while ((i95 | 0) < (i28 | 0));
15996 if (d176 > 0.0) {
15997 d179 = d176;
15998 } else {
15999 d173 = 0.0;
16000 break;
16001 }
16002 } else {
16003 d179 = 3.4028234663852886e+38;
16004 }
16005 d175 = d179 * d3;
16006 d180 = d175 > d2 ? d2 : d175;
16007 } else {
16008 d180 = d2;
16009 }
16010 if ((i28 | 0) > 0) {
16011 i95 = 243703;
16012 i96 = 0;
16013 do {
16014 i103 = i30 + (i96 << 2) | 0;
16015 i99 = i30 + (((i95 >>> 0) % (i28 >>> 0) | 0) << 2) | 0;
16016 i97 = HEAP32[i103 >> 2] | 0;
16017 HEAP32[i103 >> 2] = HEAP32[i99 >> 2];
16018 HEAP32[i99 >> 2] = i97;
16019 i96 = i96 + 1 | 0;
16020 i95 = (Math_imul(i95, 1664525) | 0) + 1013904223 | 0;
16021 } while ((i96 | 0) < (i28 | 0));
16022 }
16023 i96 = i12 + 16 | 0;
16024 i95 = i12 + 12 | 0;
16025 i97 = i12 + 4 | 0;
16026 i99 = i12 + 8 | 0;
16027 i103 = 0;
16028 while (1) {
16029 if ((i103 | 0) >= (i28 | 0)) {
16030 d173 = d180;
16031 break L1573;
16032 }
16033 i106 = HEAP32[i30 + (i103 << 2) >> 2] | 0;
16034 HEAP8[i96] = 1;
16035 HEAP32[i95 >> 2] = 0;
16036 HEAP32[i99 >> 2] = 0;
16037 HEAP32[i97 >> 2] = i49;
16038 i100 = __ZN20btConvexHullInternal9shiftFaceEPNS_4FaceEf20btAlignedObjectArrayIPNS_6VertexEE(i1, i106, d180, i12) | 0;
16039 i106 = HEAP32[i95 >> 2] | 0;
16040 if ((i106 | 0) != 0) {
16041 if ((HEAP8[i96] | 0) != 0) {
16042 __Z21btAlignedFreeInternalPv(i106);
16043 }
16044 HEAP32[i95 >> 2] = 0;
16045 }
16046 HEAP8[i96] = 1;
16047 HEAP32[i95 >> 2] = 0;
16048 HEAP32[i97 >> 2] = 0;
16049 HEAP32[i99 >> 2] = 0;
16050 if (i100) {
16051 i103 = i103 + 1 | 0;
16052 } else {
16053 break;
16054 }
16055 }
16056 d173 = -0.0 - d180;
16057 }
16058 } while (0);
16059 if ((i30 | 0) != 0) {
16060 __Z21btAlignedFreeInternalPv(i30);
16061 }
16062 if ((i33 | 0) == 0) {
16063 d15 = d173;
16064 STACKTOP = i4;
16065 return +d15;
16066 }
16067 __Z21btAlignedFreeInternalPv(i33);
16068 d15 = d173;
16069 STACKTOP = i4;
16070 return +d15;
16071 }
16072 function __ZN20btConvexHullComputer7computeEPKvbiiff(i1, i2, i3, i4, i5, d6, d7) {
16073 i1 = i1 | 0;
16074 i2 = i2 | 0;
16075 i3 = i3 | 0;
16076 i4 = i4 | 0;
16077 i5 = i5 | 0;
16078 d6 = +d6;
16079 d7 = +d7;
16080 var i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, d19 = 0.0, d20 = 0.0, d21 = 0.0, i22 = 0, d23 = 0.0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0, i87 = 0;
16081 i8 = STACKTOP;
16082 STACKTOP = STACKTOP + 208 | 0;
16083 i9 = i8 | 0;
16084 i10 = i8 + 128 | 0;
16085 i11 = i8 + 144 | 0;
16086 i12 = i8 + 160 | 0;
16087 i13 = i8 + 176 | 0;
16088 i14 = i8 + 192 | 0;
16089 if ((i5 | 0) < 1) {
16090 i15 = i1 + 4 | 0;
16091 i16 = i1 + 12 | 0;
16092 i17 = HEAP32[i16 >> 2] | 0;
16093 i18 = i1 + 16 | 0;
16094 if ((i17 | 0) != 0) {
16095 if ((HEAP8[i18] | 0) != 0) {
16096 __Z21btAlignedFreeInternalPv(i17);
16097 }
16098 HEAP32[i16 >> 2] = 0;
16099 }
16100 HEAP8[i18] = 1;
16101 HEAP32[i16 >> 2] = 0;
16102 HEAP32[i15 >> 2] = 0;
16103 HEAP32[i1 + 8 >> 2] = 0;
16104 i15 = i1 + 24 | 0;
16105 i16 = i1 + 32 | 0;
16106 i18 = HEAP32[i16 >> 2] | 0;
16107 i17 = i1 + 36 | 0;
16108 if ((i18 | 0) != 0) {
16109 if ((HEAP8[i17] | 0) != 0) {
16110 __Z21btAlignedFreeInternalPv(i18);
16111 }
16112 HEAP32[i16 >> 2] = 0;
16113 }
16114 HEAP8[i17] = 1;
16115 HEAP32[i16 >> 2] = 0;
16116 HEAP32[i15 >> 2] = 0;
16117 HEAP32[i1 + 28 >> 2] = 0;
16118 i15 = i1 + 44 | 0;
16119 i16 = i1 + 52 | 0;
16120 i17 = HEAP32[i16 >> 2] | 0;
16121 i18 = i1 + 56 | 0;
16122 if ((i17 | 0) != 0) {
16123 if ((HEAP8[i18] | 0) != 0) {
16124 __Z21btAlignedFreeInternalPv(i17);
16125 }
16126 HEAP32[i16 >> 2] = 0;
16127 }
16128 HEAP8[i18] = 1;
16129 HEAP32[i16 >> 2] = 0;
16130 HEAP32[i15 >> 2] = 0;
16131 HEAP32[i1 + 48 >> 2] = 0;
16132 d19 = 0.0;
16133 STACKTOP = i8;
16134 return +d19;
16135 }
16136 HEAP32[i9 + 32 >> 2] = 0;
16137 HEAP32[i9 + 36 >> 2] = 0;
16138 HEAP32[i9 + 40 >> 2] = 0;
16139 HEAP32[i9 + 44 >> 2] = 256;
16140 HEAP32[i9 + 48 >> 2] = 0;
16141 HEAP32[i9 + 52 >> 2] = 0;
16142 HEAP32[i9 + 56 >> 2] = 0;
16143 HEAP32[i9 + 60 >> 2] = 256;
16144 HEAP32[i9 + 64 >> 2] = 0;
16145 HEAP32[i9 + 68 >> 2] = 0;
16146 HEAP32[i9 + 72 >> 2] = 0;
16147 HEAP32[i9 + 76 >> 2] = 256;
16148 HEAP8[i9 + 96 | 0] = 1;
16149 HEAP32[i9 + 92 >> 2] = 0;
16150 HEAP32[i9 + 84 >> 2] = 0;
16151 HEAP32[i9 + 88 >> 2] = 0;
16152 __ZN20btConvexHullInternal7computeEPKvbii(i9, i2, i3, i4, i5);
16153 do {
16154 if (d6 > 0.0) {
16155 d20 = +__ZN20btConvexHullInternal6shrinkEff(i9, d6, d7);
16156 if (d20 >= 0.0) {
16157 d21 = d20;
16158 i22 = 1689;
16159 break;
16160 }
16161 i5 = i1 + 4 | 0;
16162 i4 = i1 + 12 | 0;
16163 i3 = HEAP32[i4 >> 2] | 0;
16164 i2 = i1 + 16 | 0;
16165 if ((i3 | 0) != 0) {
16166 if ((HEAP8[i2] | 0) != 0) {
16167 __Z21btAlignedFreeInternalPv(i3);
16168 }
16169 HEAP32[i4 >> 2] = 0;
16170 }
16171 HEAP8[i2] = 1;
16172 HEAP32[i4 >> 2] = 0;
16173 HEAP32[i5 >> 2] = 0;
16174 HEAP32[i1 + 8 >> 2] = 0;
16175 i5 = i1 + 24 | 0;
16176 i4 = i1 + 32 | 0;
16177 i2 = HEAP32[i4 >> 2] | 0;
16178 i3 = i1 + 36 | 0;
16179 if ((i2 | 0) != 0) {
16180 if ((HEAP8[i3] | 0) != 0) {
16181 __Z21btAlignedFreeInternalPv(i2);
16182 }
16183 HEAP32[i4 >> 2] = 0;
16184 }
16185 HEAP8[i3] = 1;
16186 HEAP32[i4 >> 2] = 0;
16187 HEAP32[i5 >> 2] = 0;
16188 HEAP32[i1 + 28 >> 2] = 0;
16189 i5 = i1 + 44 | 0;
16190 i4 = i1 + 52 | 0;
16191 i3 = HEAP32[i4 >> 2] | 0;
16192 i2 = i1 + 56 | 0;
16193 if ((i3 | 0) != 0) {
16194 if ((HEAP8[i2] | 0) != 0) {
16195 __Z21btAlignedFreeInternalPv(i3);
16196 }
16197 HEAP32[i4 >> 2] = 0;
16198 }
16199 HEAP8[i2] = 1;
16200 HEAP32[i4 >> 2] = 0;
16201 HEAP32[i5 >> 2] = 0;
16202 HEAP32[i1 + 48 >> 2] = 0;
16203 d23 = d20;
16204 } else {
16205 d21 = 0.0;
16206 i22 = 1689;
16207 }
16208 } while (0);
16209 do {
16210 if ((i22 | 0) == 1689) {
16211 i5 = i1 + 4 | 0;
16212 i4 = HEAP32[i5 >> 2] | 0;
16213 if ((i4 | 0) < 0) {
16214 i2 = i1 + 8 | 0;
16215 i3 = i1 + 12 | 0;
16216 if ((HEAP32[i2 >> 2] | 0) < 0) {
16217 i15 = HEAP32[i3 >> 2] | 0;
16218 i16 = i1 + 16 | 0;
16219 if ((i15 | 0) != 0) {
16220 if ((HEAP8[i16] | 0) != 0) {
16221 __Z21btAlignedFreeInternalPv(i15);
16222 }
16223 HEAP32[i3 >> 2] = 0;
16224 }
16225 HEAP8[i16] = 1;
16226 HEAP32[i3 >> 2] = 0;
16227 HEAP32[i2 >> 2] = 0;
16228 }
16229 i2 = i10;
16230 i16 = i4;
16231 do {
16232 i4 = (HEAP32[i3 >> 2] | 0) + (i16 << 4) | 0;
16233 if ((i4 | 0) != 0) {
16234 i15 = i4;
16235 HEAP32[i15 >> 2] = HEAP32[i2 >> 2];
16236 HEAP32[i15 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
16237 HEAP32[i15 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
16238 HEAP32[i15 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
16239 }
16240 i16 = i16 + 1 | 0;
16241 } while ((i16 | 0) < 0);
16242 }
16243 HEAP32[i5 >> 2] = 0;
16244 i16 = i11;
16245 _memset(i16 | 0, 0, 12);
16246 i2 = i1 + 24 | 0;
16247 i3 = HEAP32[i2 >> 2] | 0;
16248 if ((i3 | 0) < 0) {
16249 i15 = i1 + 28 | 0;
16250 i4 = i1 + 32 | 0;
16251 if ((HEAP32[i15 >> 2] | 0) < 0) {
16252 i18 = HEAP32[i4 >> 2] | 0;
16253 i17 = i1 + 36 | 0;
16254 if ((i18 | 0) != 0) {
16255 if ((HEAP8[i17] | 0) != 0) {
16256 __Z21btAlignedFreeInternalPv(i18);
16257 }
16258 HEAP32[i4 >> 2] = 0;
16259 }
16260 HEAP8[i17] = 1;
16261 HEAP32[i4 >> 2] = 0;
16262 HEAP32[i15 >> 2] = 0;
16263 i24 = i3;
16264 } else {
16265 i24 = i3;
16266 }
16267 do {
16268 i3 = (HEAP32[i4 >> 2] | 0) + (i24 * 12 | 0) | 0;
16269 if ((i3 | 0) != 0) {
16270 i15 = i3;
16271 HEAP32[i15 >> 2] = HEAP32[i16 >> 2];
16272 HEAP32[i15 + 4 >> 2] = HEAP32[i16 + 4 >> 2];
16273 HEAP32[i15 + 8 >> 2] = HEAP32[i16 + 8 >> 2];
16274 }
16275 i24 = i24 + 1 | 0;
16276 } while ((i24 | 0) < 0);
16277 }
16278 HEAP32[i2 >> 2] = 0;
16279 i16 = i1 + 44 | 0;
16280 i4 = HEAP32[i16 >> 2] | 0;
16281 if ((i4 | 0) < 0) {
16282 i15 = i1 + 48 | 0;
16283 i3 = i1 + 52 | 0;
16284 i17 = HEAP32[i3 >> 2] | 0;
16285 if ((HEAP32[i15 >> 2] | 0) < 0) {
16286 i18 = i1 + 56 | 0;
16287 if ((i17 | 0) != 0) {
16288 if ((HEAP8[i18] | 0) != 0) {
16289 __Z21btAlignedFreeInternalPv(i17);
16290 }
16291 HEAP32[i3 >> 2] = 0;
16292 }
16293 HEAP8[i18] = 1;
16294 HEAP32[i3 >> 2] = 0;
16295 HEAP32[i15 >> 2] = 0;
16296 i25 = 0;
16297 } else {
16298 i25 = i17;
16299 }
16300 i17 = i4;
16301 do {
16302 i4 = i25 + (i17 << 2) | 0;
16303 if ((i4 | 0) != 0) {
16304 HEAP32[i4 >> 2] = 0;
16305 }
16306 i17 = i17 + 1 | 0;
16307 } while ((i17 | 0) < 0);
16308 }
16309 HEAP32[i16 >> 2] = 0;
16310 i17 = HEAP32[i9 + 124 >> 2] | 0;
16311 i4 = i17 + 104 | 0;
16312 if ((HEAP32[i4 >> 2] | 0) >= 0) {
16313 d23 = d21;
16314 break;
16315 }
16316 HEAP32[i4 >> 2] = 0;
16317 i4 = __Z22btAlignedAllocInternalji(4, 16) | 0;
16318 i15 = i4;
16319 if ((i4 | 0) != 0) {
16320 HEAP32[i15 >> 2] = i17;
16321 }
16322 i17 = i1 + 8 | 0;
16323 i4 = i1 + 12 | 0;
16324 i3 = i1 + 16 | 0;
16325 i18 = i13;
16326 i26 = i1 + 28 | 0;
16327 i27 = i1 + 32 | 0;
16328 i28 = i1 + 36 | 0;
16329 i29 = i14;
16330 i30 = i12;
16331 i31 = i15;
16332 i15 = 1;
16333 i32 = 1;
16334 i33 = 0;
16335 while (1) {
16336 i34 = HEAP32[i31 + (i33 << 2) >> 2] | 0;
16337 __ZN20btConvexHullInternal14getCoordinatesEPKNS_6VertexE(i12, i9, i34);
16338 i35 = HEAP32[i5 >> 2] | 0;
16339 do {
16340 if ((i35 | 0) == (HEAP32[i17 >> 2] | 0)) {
16341 i36 = (i35 | 0) == 0 ? 1 : i35 << 1;
16342 if ((i35 | 0) >= (i36 | 0)) {
16343 i37 = i35;
16344 break;
16345 }
16346 if ((i36 | 0) == 0) {
16347 i38 = 0;
16348 i39 = i35;
16349 } else {
16350 i40 = __Z22btAlignedAllocInternalji(i36 << 4, 16) | 0;
16351 i38 = i40;
16352 i39 = HEAP32[i5 >> 2] | 0;
16353 }
16354 if ((i39 | 0) > 0) {
16355 i40 = 0;
16356 do {
16357 i41 = i38 + (i40 << 4) | 0;
16358 if ((i41 | 0) != 0) {
16359 i42 = i41;
16360 i41 = (HEAP32[i4 >> 2] | 0) + (i40 << 4) | 0;
16361 HEAP32[i42 >> 2] = HEAP32[i41 >> 2];
16362 HEAP32[i42 + 4 >> 2] = HEAP32[i41 + 4 >> 2];
16363 HEAP32[i42 + 8 >> 2] = HEAP32[i41 + 8 >> 2];
16364 HEAP32[i42 + 12 >> 2] = HEAP32[i41 + 12 >> 2];
16365 }
16366 i40 = i40 + 1 | 0;
16367 } while ((i40 | 0) < (i39 | 0));
16368 }
16369 i40 = HEAP32[i4 >> 2] | 0;
16370 if ((i40 | 0) != 0) {
16371 if ((HEAP8[i3] | 0) != 0) {
16372 __Z21btAlignedFreeInternalPv(i40);
16373 }
16374 HEAP32[i4 >> 2] = 0;
16375 }
16376 HEAP8[i3] = 1;
16377 HEAP32[i4 >> 2] = i38;
16378 HEAP32[i17 >> 2] = i36;
16379 i37 = HEAP32[i5 >> 2] | 0;
16380 } else {
16381 i37 = i35;
16382 }
16383 } while (0);
16384 i35 = (HEAP32[i4 >> 2] | 0) + (i37 << 4) | 0;
16385 if ((i35 | 0) == 0) {
16386 i43 = i37;
16387 } else {
16388 i40 = i35;
16389 HEAP32[i40 >> 2] = HEAP32[i30 >> 2];
16390 HEAP32[i40 + 4 >> 2] = HEAP32[i30 + 4 >> 2];
16391 HEAP32[i40 + 8 >> 2] = HEAP32[i30 + 8 >> 2];
16392 HEAP32[i40 + 12 >> 2] = HEAP32[i30 + 12 >> 2];
16393 i43 = HEAP32[i5 >> 2] | 0;
16394 }
16395 HEAP32[i5 >> 2] = i43 + 1;
16396 i40 = HEAP32[i34 + 8 >> 2] | 0;
16397 if ((i40 | 0) == 0) {
16398 i44 = i32;
16399 i45 = i15;
16400 i46 = i31;
16401 } else {
16402 i35 = i40;
16403 i41 = -1;
16404 i42 = -1;
16405 i47 = i32;
16406 i48 = i15;
16407 i49 = i31;
16408 while (1) {
16409 i50 = i35 + 20 | 0;
16410 i51 = HEAP32[i50 >> 2] | 0;
16411 if ((i51 | 0) < 0) {
16412 i52 = HEAP32[i2 >> 2] | 0;
16413 _memset(i18 | 0, 0, 12);
16414 i53 = HEAP32[i26 >> 2] | 0;
16415 do {
16416 if ((i52 | 0) == (i53 | 0)) {
16417 i54 = (i52 | 0) == 0 ? 1 : i52 << 1;
16418 if ((i52 | 0) >= (i54 | 0)) {
16419 i55 = i52;
16420 i56 = i52;
16421 break;
16422 }
16423 if ((i54 | 0) == 0) {
16424 i57 = 0;
16425 i58 = i52;
16426 } else {
16427 i59 = __Z22btAlignedAllocInternalji(i54 * 12 | 0, 16) | 0;
16428 i57 = i59;
16429 i58 = HEAP32[i2 >> 2] | 0;
16430 }
16431 if ((i58 | 0) > 0) {
16432 i59 = 0;
16433 do {
16434 i60 = i57 + (i59 * 12 | 0) | 0;
16435 if ((i60 | 0) != 0) {
16436 i61 = i60;
16437 i60 = (HEAP32[i27 >> 2] | 0) + (i59 * 12 | 0) | 0;
16438 HEAP32[i61 >> 2] = HEAP32[i60 >> 2];
16439 HEAP32[i61 + 4 >> 2] = HEAP32[i60 + 4 >> 2];
16440 HEAP32[i61 + 8 >> 2] = HEAP32[i60 + 8 >> 2];
16441 }
16442 i59 = i59 + 1 | 0;
16443 } while ((i59 | 0) < (i58 | 0));
16444 }
16445 i59 = HEAP32[i27 >> 2] | 0;
16446 if ((i59 | 0) != 0) {
16447 if ((HEAP8[i28] | 0) != 0) {
16448 __Z21btAlignedFreeInternalPv(i59);
16449 }
16450 HEAP32[i27 >> 2] = 0;
16451 }
16452 HEAP8[i28] = 1;
16453 HEAP32[i27 >> 2] = i57;
16454 HEAP32[i26 >> 2] = i54;
16455 i55 = HEAP32[i2 >> 2] | 0;
16456 i56 = i54;
16457 } else {
16458 i55 = i52;
16459 i56 = i53;
16460 }
16461 } while (0);
16462 i53 = (HEAP32[i27 >> 2] | 0) + (i55 * 12 | 0) | 0;
16463 if ((i53 | 0) == 0) {
16464 i62 = i55;
16465 i63 = i56;
16466 } else {
16467 i36 = i53;
16468 HEAP32[i36 >> 2] = HEAP32[i18 >> 2];
16469 HEAP32[i36 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
16470 HEAP32[i36 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
16471 i62 = HEAP32[i2 >> 2] | 0;
16472 i63 = HEAP32[i26 >> 2] | 0;
16473 }
16474 i36 = i62 + 1 | 0;
16475 HEAP32[i2 >> 2] = i36;
16476 _memset(i29 | 0, 0, 12);
16477 do {
16478 if ((i36 | 0) == (i63 | 0)) {
16479 i53 = (i63 | 0) == 0 ? 1 : i63 << 1;
16480 if ((i63 | 0) >= (i53 | 0)) {
16481 i64 = i63;
16482 break;
16483 }
16484 if ((i53 | 0) == 0) {
16485 i65 = 0;
16486 i66 = i63;
16487 } else {
16488 i59 = __Z22btAlignedAllocInternalji(i53 * 12 | 0, 16) | 0;
16489 i65 = i59;
16490 i66 = HEAP32[i2 >> 2] | 0;
16491 }
16492 if ((i66 | 0) > 0) {
16493 i59 = 0;
16494 do {
16495 i60 = i65 + (i59 * 12 | 0) | 0;
16496 if ((i60 | 0) != 0) {
16497 i61 = i60;
16498 i60 = (HEAP32[i27 >> 2] | 0) + (i59 * 12 | 0) | 0;
16499 HEAP32[i61 >> 2] = HEAP32[i60 >> 2];
16500 HEAP32[i61 + 4 >> 2] = HEAP32[i60 + 4 >> 2];
16501 HEAP32[i61 + 8 >> 2] = HEAP32[i60 + 8 >> 2];
16502 }
16503 i59 = i59 + 1 | 0;
16504 } while ((i59 | 0) < (i66 | 0));
16505 }
16506 i59 = HEAP32[i27 >> 2] | 0;
16507 if ((i59 | 0) != 0) {
16508 if ((HEAP8[i28] | 0) != 0) {
16509 __Z21btAlignedFreeInternalPv(i59);
16510 }
16511 HEAP32[i27 >> 2] = 0;
16512 }
16513 HEAP8[i28] = 1;
16514 HEAP32[i27 >> 2] = i65;
16515 HEAP32[i26 >> 2] = i53;
16516 i64 = HEAP32[i2 >> 2] | 0;
16517 } else {
16518 i64 = i36;
16519 }
16520 } while (0);
16521 i36 = HEAP32[i27 >> 2] | 0;
16522 i59 = i36 + (i64 * 12 | 0) | 0;
16523 if ((i59 | 0) == 0) {
16524 i67 = i64;
16525 i68 = i36;
16526 } else {
16527 i36 = i59;
16528 HEAP32[i36 >> 2] = HEAP32[i29 >> 2];
16529 HEAP32[i36 + 4 >> 2] = HEAP32[i29 + 4 >> 2];
16530 HEAP32[i36 + 8 >> 2] = HEAP32[i29 + 8 >> 2];
16531 i67 = HEAP32[i2 >> 2] | 0;
16532 i68 = HEAP32[i27 >> 2] | 0;
16533 }
16534 HEAP32[i2 >> 2] = i67 + 1;
16535 i36 = i52 + 1 | 0;
16536 HEAP32[i50 >> 2] = i52;
16537 HEAP32[(HEAP32[i35 + 8 >> 2] | 0) + 20 >> 2] = i36;
16538 HEAP32[i68 + (i52 * 12 | 0) + 4 >> 2] = 1;
16539 HEAP32[i68 + (i36 * 12 | 0) + 4 >> 2] = -1;
16540 i59 = HEAP32[i35 + 12 >> 2] | 0;
16541 i54 = i59 + 104 | 0;
16542 i60 = HEAP32[i54 >> 2] | 0;
16543 if ((i60 | 0) < 0) {
16544 HEAP32[i54 >> 2] = i47;
16545 do {
16546 if ((i47 | 0) == (i48 | 0)) {
16547 i54 = (i48 | 0) == 0 ? 1 : i48 << 1;
16548 if ((i48 | 0) >= (i54 | 0)) {
16549 i69 = i48;
16550 i70 = i49;
16551 break;
16552 }
16553 if ((i54 | 0) == 0) {
16554 i71 = 0;
16555 } else {
16556 i71 = __Z22btAlignedAllocInternalji(i54 << 2, 16) | 0;
16557 }
16558 if ((i48 | 0) > 0) {
16559 i61 = 0;
16560 do {
16561 i72 = i71 + (i61 << 2) | 0;
16562 if ((i72 | 0) != 0) {
16563 HEAP32[i72 >> 2] = HEAP32[i49 + (i61 << 2) >> 2];
16564 }
16565 i61 = i61 + 1 | 0;
16566 } while ((i61 | 0) < (i48 | 0));
16567 }
16568 if ((i49 | 0) == 0) {
16569 i69 = i54;
16570 i70 = i71;
16571 break;
16572 }
16573 __Z21btAlignedFreeInternalPv(i49);
16574 i69 = i54;
16575 i70 = i71;
16576 } else {
16577 i69 = i48;
16578 i70 = i49;
16579 }
16580 } while (0);
16581 i61 = i70 + (i47 << 2) | 0;
16582 if ((i61 | 0) != 0) {
16583 HEAP32[i61 >> 2] = i59;
16584 }
16585 i73 = i47;
16586 i74 = i47 + 1 | 0;
16587 i75 = i69;
16588 i76 = i70;
16589 } else {
16590 i73 = i60;
16591 i74 = i47;
16592 i75 = i48;
16593 i76 = i49;
16594 }
16595 HEAP32[i68 + (i52 * 12 | 0) + 8 >> 2] = i73;
16596 HEAP32[i68 + (i36 * 12 | 0) + 8 >> 2] = i33;
16597 i77 = i74;
16598 i78 = i75;
16599 i79 = i76;
16600 i80 = HEAP32[i50 >> 2] | 0;
16601 } else {
16602 i77 = i47;
16603 i78 = i48;
16604 i79 = i49;
16605 i80 = i51;
16606 }
16607 if ((i41 | 0) > -1) {
16608 HEAP32[(HEAP32[i27 >> 2] | 0) + (i80 * 12 | 0) >> 2] = i41 - i80;
16609 i81 = i42;
16610 i82 = HEAP32[i50 >> 2] | 0;
16611 } else {
16612 i81 = i80;
16613 i82 = i80;
16614 }
16615 i61 = HEAP32[i35 >> 2] | 0;
16616 if ((i61 | 0) == (i40 | 0)) {
16617 break;
16618 } else {
16619 i35 = i61;
16620 i41 = i82;
16621 i42 = i81;
16622 i47 = i77;
16623 i48 = i78;
16624 i49 = i79;
16625 }
16626 }
16627 HEAP32[(HEAP32[i27 >> 2] | 0) + (i81 * 12 | 0) >> 2] = i82 - i81;
16628 i44 = i77;
16629 i45 = i78;
16630 i46 = i79;
16631 }
16632 i83 = i33 + 1 | 0;
16633 if ((i83 | 0) < (i44 | 0)) {
16634 i31 = i46;
16635 i15 = i45;
16636 i32 = i44;
16637 i33 = i83;
16638 } else {
16639 break;
16640 }
16641 }
16642 if ((i83 | 0) > 0) {
16643 i33 = i1 + 48 | 0;
16644 i32 = i1 + 52 | 0;
16645 i15 = i1 + 56 | 0;
16646 i31 = 0;
16647 do {
16648 i27 = HEAP32[(HEAP32[i46 + (i31 << 2) >> 2] | 0) + 8 >> 2] | 0;
16649 if ((i27 | 0) != 0) {
16650 i2 = i27;
16651 do {
16652 i29 = i2 + 20 | 0;
16653 if ((HEAP32[i29 >> 2] | 0) > -1) {
16654 i26 = HEAP32[i16 >> 2] | 0;
16655 do {
16656 if ((i26 | 0) == (HEAP32[i33 >> 2] | 0)) {
16657 i28 = (i26 | 0) == 0 ? 1 : i26 << 1;
16658 if ((i26 | 0) >= (i28 | 0)) {
16659 i84 = i26;
16660 break;
16661 }
16662 if ((i28 | 0) == 0) {
16663 i85 = 0;
16664 i86 = i26;
16665 } else {
16666 i18 = __Z22btAlignedAllocInternalji(i28 << 2, 16) | 0;
16667 i85 = i18;
16668 i86 = HEAP32[i16 >> 2] | 0;
16669 }
16670 if ((i86 | 0) > 0) {
16671 i18 = 0;
16672 do {
16673 i5 = i85 + (i18 << 2) | 0;
16674 if ((i5 | 0) != 0) {
16675 HEAP32[i5 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i18 << 2) >> 2];
16676 }
16677 i18 = i18 + 1 | 0;
16678 } while ((i18 | 0) < (i86 | 0));
16679 }
16680 i18 = HEAP32[i32 >> 2] | 0;
16681 if ((i18 | 0) != 0) {
16682 if ((HEAP8[i15] | 0) != 0) {
16683 __Z21btAlignedFreeInternalPv(i18);
16684 }
16685 HEAP32[i32 >> 2] = 0;
16686 }
16687 HEAP8[i15] = 1;
16688 HEAP32[i32 >> 2] = i85;
16689 HEAP32[i33 >> 2] = i28;
16690 i84 = HEAP32[i16 >> 2] | 0;
16691 } else {
16692 i84 = i26;
16693 }
16694 } while (0);
16695 i26 = (HEAP32[i32 >> 2] | 0) + (i84 << 2) | 0;
16696 if ((i26 | 0) == 0) {
16697 i87 = i84;
16698 } else {
16699 HEAP32[i26 >> 2] = HEAP32[i29 >> 2];
16700 i87 = HEAP32[i16 >> 2] | 0;
16701 }
16702 HEAP32[i16 >> 2] = i87 + 1;
16703 i26 = i2;
16704 do {
16705 HEAP32[i26 + 20 >> 2] = -1;
16706 i26 = HEAP32[(HEAP32[i26 + 8 >> 2] | 0) + 4 >> 2] | 0;
16707 } while ((i26 | 0) != (i2 | 0));
16708 }
16709 i2 = HEAP32[i2 >> 2] | 0;
16710 } while ((i2 | 0) != (i27 | 0));
16711 }
16712 i31 = i31 + 1 | 0;
16713 } while ((i31 | 0) < (i83 | 0));
16714 }
16715 if ((i46 | 0) == 0) {
16716 d23 = d21;
16717 break;
16718 }
16719 __Z21btAlignedFreeInternalPv(i46);
16720 d23 = d21;
16721 }
16722 } while (0);
16723 __ZN20btConvexHullInternalD2Ev(i9);
16724 d19 = d23;
16725 STACKTOP = i8;
16726 return +d19;
16727 }
16728 function __ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(i1, i2, i3, i4, i5, i6, i7, d8) {
16729 i1 = i1 | 0;
16730 i2 = i2 | 0;
16731 i3 = i3 | 0;
16732 i4 = i4 | 0;
16733 i5 = i5 | 0;
16734 i6 = i6 | 0;
16735 i7 = i7 | 0;
16736 d8 = +d8;
16737 var i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, d36 = 0.0, i37 = 0, d38 = 0.0, i39 = 0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, d75 = 0.0, d76 = 0.0, d77 = 0.0, d78 = 0.0, d79 = 0.0, d80 = 0.0, i81 = 0, d82 = 0.0, d83 = 0.0, d84 = 0.0, d85 = 0.0, d86 = 0.0, d87 = 0.0, d88 = 0.0, d89 = 0.0, d90 = 0.0, d91 = 0.0, d92 = 0.0, d93 = 0.0, d94 = 0.0, d95 = 0.0, d96 = 0.0, d97 = 0.0, d98 = 0.0, d99 = 0.0;
16738 i9 = STACKTOP;
16739 STACKTOP = STACKTOP + 1656 | 0;
16740 i10 = i9 | 0;
16741 i11 = i9 + 176 | 0;
16742 i12 = i9 + 536 | 0;
16743 i13 = i9 + 544 | 0;
16744 i14 = i9 + 568 | 0;
16745 i15 = i9 + 616 | 0;
16746 i16 = i9 + 632 | 0;
16747 i17 = i9 + 648 | 0;
16748 i18 = i9 + 712 | 0;
16749 i19 = i9 + 936 | 0;
16750 i20 = i9 + 952 | 0;
16751 i21 = i9 + 968 | 0;
16752 i22 = i9 + 1144 | 0;
16753 i23 = i9 + 1168 | 0;
16754 i24 = i9 + 1216 | 0;
16755 i25 = i9 + 1280 | 0;
16756 i26 = i9 + 1504 | 0;
16757 i27 = i9 + 1520 | 0;
16758 i28 = i9 + 1536 | 0;
16759 i29 = i9 + 1552 | 0;
16760 i30 = i9 + 1568 | 0;
16761 i31 = i9 + 1632 | 0;
16762 i32 = HEAP32[i5 + 4 >> 2] | 0;
16763 if ((i32 | 0) < 20) {
16764 HEAP32[i10 >> 2] = 2280;
16765 i33 = i10 + 164 | 0;
16766 HEAP32[i10 + 168 >> 2] = 0;
16767 HEAPF32[i10 + 172 >> 2] = d8;
16768 i34 = i7 + 4 | 0;
16769 HEAPF32[i33 >> 2] = +HEAPF32[i34 >> 2];
16770 HEAPF32[i11 + 308 >> 2] = 9999999747378752.0e-20;
16771 HEAP16[i11 + 332 >> 1] = 0;
16772 HEAP32[i12 >> 2] = 2696;
16773 __ZN27btContinuousConvexCollisionC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i13, i1, i5, i11, i12 | 0);
16774 i12 = i13 | 0;
16775 do {
16776 if (FUNCTION_TABLE_iiiiiii[HEAP32[(HEAP32[i13 >> 2] | 0) + 8 >> 2] & 7](i12, i2, i3, i6, i6, i10) | 0) {
16777 i11 = i10 + 132 | 0;
16778 i35 = i11 | 0;
16779 d36 = +HEAPF32[i35 >> 2];
16780 i37 = i10 + 136 | 0;
16781 d38 = +HEAPF32[i37 >> 2];
16782 i39 = i10 + 140 | 0;
16783 d40 = +HEAPF32[i39 >> 2];
16784 d41 = d36 * d36 + d38 * d38 + d40 * d40;
16785 if (d41 <= 9999999747378752.0e-20) {
16786 break;
16787 }
16788 d42 = +HEAPF32[i33 >> 2];
16789 if (d42 >= +HEAPF32[i34 >> 2]) {
16790 break;
16791 }
16792 d43 = 1.0 / +Math_sqrt(+d41);
16793 HEAPF32[i35 >> 2] = d36 * d43;
16794 HEAPF32[i37 >> 2] = d38 * d43;
16795 HEAPF32[i39 >> 2] = d40 * d43;
16796 HEAP32[i14 >> 2] = i4;
16797 HEAP32[i14 + 4 >> 2] = 0;
16798 i39 = i14 + 8 | 0;
16799 i37 = i11;
16800 HEAP32[i39 >> 2] = HEAP32[i37 >> 2];
16801 HEAP32[i39 + 4 >> 2] = HEAP32[i37 + 4 >> 2];
16802 HEAP32[i39 + 8 >> 2] = HEAP32[i37 + 8 >> 2];
16803 HEAP32[i39 + 12 >> 2] = HEAP32[i37 + 12 >> 2];
16804 i37 = i14 + 24 | 0;
16805 i39 = i10 + 148 | 0;
16806 HEAP32[i37 >> 2] = HEAP32[i39 >> 2];
16807 HEAP32[i37 + 4 >> 2] = HEAP32[i39 + 4 >> 2];
16808 HEAP32[i37 + 8 >> 2] = HEAP32[i39 + 8 >> 2];
16809 HEAP32[i37 + 12 >> 2] = HEAP32[i39 + 12 >> 2];
16810 HEAPF32[i14 + 40 >> 2] = d42;
16811 i39 = HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] | 0;
16812 +FUNCTION_TABLE_fiii[i39 & 15](i7, i14, 1);
16813 }
16814 } while (0);
16815 __ZN12btConvexCastD2Ev(i12);
16816 STACKTOP = i9;
16817 return;
16818 }
16819 if ((i32 - 21 | 0) >>> 0 >= 9) {
16820 if ((i32 | 0) != 31) {
16821 STACKTOP = i9;
16822 return;
16823 }
16824 __ZN15CProfileManager13Start_ProfileEPKc(96);
16825 i12 = i5 + 16 | 0;
16826 if ((HEAP32[i12 >> 2] | 0) > 0) {
16827 i14 = i5 + 24 | 0;
16828 i10 = i6 | 0;
16829 i34 = i6 + 4 | 0;
16830 i33 = i6 + 8 | 0;
16831 i13 = i6 + 16 | 0;
16832 i39 = i6 + 20 | 0;
16833 i37 = i6 + 24 | 0;
16834 i11 = i6 + 32 | 0;
16835 i35 = i6 + 36 | 0;
16836 i44 = i6 + 40 | 0;
16837 i45 = i6 + 48 | 0;
16838 i46 = i6 + 52 | 0;
16839 i47 = i6 + 56 | 0;
16840 i48 = i30 | 0;
16841 i49 = i30 + 4 | 0;
16842 i50 = i30 + 8 | 0;
16843 i51 = i30 + 12 | 0;
16844 i52 = i30 + 16 | 0;
16845 i53 = i30 + 20 | 0;
16846 i54 = i30 + 24 | 0;
16847 i55 = i30 + 28 | 0;
16848 i56 = i30 + 32 | 0;
16849 i57 = i30 + 36 | 0;
16850 i58 = i30 + 40 | 0;
16851 i59 = i30 + 44 | 0;
16852 i60 = i30 + 48 | 0;
16853 i61 = i30 + 52 | 0;
16854 i62 = i30 + 56 | 0;
16855 i63 = i30 + 60 | 0;
16856 i64 = i4 + 192 | 0;
16857 i65 = i31 | 0;
16858 i66 = i31 + 4 | 0;
16859 i67 = i31 + 8 | 0;
16860 i68 = i31 + 10 | 0;
16861 i69 = i31 + 12 | 0;
16862 i70 = i31 + 16 | 0;
16863 i71 = i7 + 4 | 0;
16864 i72 = i31 | 0;
16865 i31 = HEAP32[i64 >> 2] | 0;
16866 i73 = 0;
16867 do {
16868 i74 = HEAP32[i14 >> 2] | 0;
16869 d42 = +HEAPF32[i74 + (i73 * 80 | 0) >> 2];
16870 d43 = +HEAPF32[i74 + (i73 * 80 | 0) + 4 >> 2];
16871 d40 = +HEAPF32[i74 + (i73 * 80 | 0) + 8 >> 2];
16872 d38 = +HEAPF32[i74 + (i73 * 80 | 0) + 16 >> 2];
16873 d36 = +HEAPF32[i74 + (i73 * 80 | 0) + 20 >> 2];
16874 d41 = +HEAPF32[i74 + (i73 * 80 | 0) + 24 >> 2];
16875 d75 = +HEAPF32[i74 + (i73 * 80 | 0) + 32 >> 2];
16876 d76 = +HEAPF32[i74 + (i73 * 80 | 0) + 36 >> 2];
16877 d77 = +HEAPF32[i74 + (i73 * 80 | 0) + 40 >> 2];
16878 d78 = +HEAPF32[i74 + (i73 * 80 | 0) + 48 >> 2];
16879 d79 = +HEAPF32[i74 + (i73 * 80 | 0) + 52 >> 2];
16880 d80 = +HEAPF32[i74 + (i73 * 80 | 0) + 56 >> 2];
16881 i81 = HEAP32[i74 + (i73 * 80 | 0) + 64 >> 2] | 0;
16882 d82 = +HEAPF32[i10 >> 2];
16883 d83 = +HEAPF32[i34 >> 2];
16884 d84 = +HEAPF32[i33 >> 2];
16885 d85 = +HEAPF32[i13 >> 2];
16886 d86 = +HEAPF32[i39 >> 2];
16887 d87 = +HEAPF32[i37 >> 2];
16888 d88 = +HEAPF32[i11 >> 2];
16889 d89 = +HEAPF32[i35 >> 2];
16890 d90 = +HEAPF32[i44 >> 2];
16891 d91 = d78 * d82 + d79 * d83 + d80 * d84 + +HEAPF32[i45 >> 2];
16892 d92 = d78 * d85 + d79 * d86 + d80 * d87 + +HEAPF32[i46 >> 2];
16893 d93 = d78 * d88 + d79 * d89 + d80 * d90 + +HEAPF32[i47 >> 2];
16894 HEAPF32[i48 >> 2] = d42 * d82 + d38 * d83 + d75 * d84;
16895 HEAPF32[i49 >> 2] = d43 * d82 + d36 * d83 + d76 * d84;
16896 HEAPF32[i50 >> 2] = d40 * d82 + d41 * d83 + d77 * d84;
16897 HEAPF32[i51 >> 2] = 0.0;
16898 HEAPF32[i52 >> 2] = d42 * d85 + d38 * d86 + d75 * d87;
16899 HEAPF32[i53 >> 2] = d43 * d85 + d36 * d86 + d76 * d87;
16900 HEAPF32[i54 >> 2] = d40 * d85 + d41 * d86 + d77 * d87;
16901 HEAPF32[i55 >> 2] = 0.0;
16902 HEAPF32[i56 >> 2] = d42 * d88 + d38 * d89 + d75 * d90;
16903 HEAPF32[i57 >> 2] = d43 * d88 + d36 * d89 + d76 * d90;
16904 HEAPF32[i58 >> 2] = d40 * d88 + d41 * d89 + d77 * d90;
16905 HEAPF32[i59 >> 2] = 0.0;
16906 HEAPF32[i60 >> 2] = d91;
16907 HEAPF32[i61 >> 2] = d92;
16908 HEAPF32[i62 >> 2] = d93;
16909 HEAPF32[i63 >> 2] = 0.0;
16910 HEAP32[i64 >> 2] = i81;
16911 HEAP16[i67 >> 1] = 1;
16912 HEAP16[i68 >> 1] = -1;
16913 HEAP32[i65 >> 2] = 1720;
16914 HEAP32[i69 >> 2] = i7;
16915 HEAP32[i70 >> 2] = i73;
16916 HEAPF32[i66 >> 2] = +HEAPF32[i71 >> 2];
16917 __ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(i1, i2, i3, i4, i81, i30, i72, d8);
16918 HEAP32[i64 >> 2] = i31;
16919 i73 = i73 + 1 | 0;
16920 } while ((i73 | 0) < (HEAP32[i12 >> 2] | 0));
16921 }
16922 __ZN15CProfileManager12Stop_ProfileEv();
16923 STACKTOP = i9;
16924 return;
16925 }
16926 if ((i32 | 0) == 21) {
16927 d93 = +HEAPF32[i6 >> 2];
16928 d92 = +HEAPF32[i6 + 16 >> 2];
16929 d91 = +HEAPF32[i6 + 32 >> 2];
16930 d90 = +HEAPF32[i6 + 4 >> 2];
16931 d77 = +HEAPF32[i6 + 20 >> 2];
16932 d89 = +HEAPF32[i6 + 36 >> 2];
16933 d41 = +HEAPF32[i6 + 8 >> 2];
16934 d88 = +HEAPF32[i6 + 24 >> 2];
16935 d40 = +HEAPF32[i6 + 40 >> 2];
16936 d76 = -0.0 - +HEAPF32[i6 + 48 >> 2];
16937 d36 = -0.0 - +HEAPF32[i6 + 52 >> 2];
16938 d43 = -0.0 - +HEAPF32[i6 + 56 >> 2];
16939 d75 = d93 * d76 + d92 * d36 + d91 * d43;
16940 d38 = d90 * d76 + d77 * d36 + d89 * d43;
16941 d42 = d41 * d76 + d88 * d36 + d40 * d43;
16942 d43 = +HEAPF32[i2 + 48 >> 2];
16943 d36 = +HEAPF32[i2 + 52 >> 2];
16944 d76 = +HEAPF32[i2 + 56 >> 2];
16945 HEAPF32[i15 >> 2] = d75 + (d93 * d43 + d92 * d36 + d91 * d76);
16946 HEAPF32[i15 + 4 >> 2] = d38 + (d90 * d43 + d77 * d36 + d89 * d76);
16947 HEAPF32[i15 + 8 >> 2] = d42 + (d41 * d43 + d88 * d36 + d40 * d76);
16948 HEAPF32[i15 + 12 >> 2] = 0.0;
16949 d76 = +HEAPF32[i3 + 48 >> 2];
16950 d36 = +HEAPF32[i3 + 52 >> 2];
16951 d43 = +HEAPF32[i3 + 56 >> 2];
16952 HEAPF32[i16 >> 2] = d75 + (d93 * d76 + d92 * d36 + d91 * d43);
16953 HEAPF32[i16 + 4 >> 2] = d38 + (d90 * d76 + d77 * d36 + d89 * d43);
16954 HEAPF32[i16 + 8 >> 2] = d42 + (d41 * d76 + d88 * d36 + d40 * d43);
16955 HEAPF32[i16 + 12 >> 2] = 0.0;
16956 d43 = +HEAPF32[i3 >> 2];
16957 d36 = +HEAPF32[i3 + 16 >> 2];
16958 d76 = +HEAPF32[i3 + 32 >> 2];
16959 d42 = +HEAPF32[i3 + 4 >> 2];
16960 d38 = +HEAPF32[i3 + 20 >> 2];
16961 d75 = +HEAPF32[i3 + 36 >> 2];
16962 d87 = +HEAPF32[i3 + 8 >> 2];
16963 d86 = +HEAPF32[i3 + 24 >> 2];
16964 d85 = +HEAPF32[i3 + 40 >> 2];
16965 HEAPF32[i17 >> 2] = d93 * d43 + d92 * d36 + d91 * d76;
16966 HEAPF32[i17 + 4 >> 2] = d93 * d42 + d92 * d38 + d91 * d75;
16967 HEAPF32[i17 + 8 >> 2] = d93 * d87 + d92 * d86 + d91 * d85;
16968 HEAPF32[i17 + 12 >> 2] = 0.0;
16969 HEAPF32[i17 + 16 >> 2] = d90 * d43 + d77 * d36 + d89 * d76;
16970 HEAPF32[i17 + 20 >> 2] = d90 * d42 + d77 * d38 + d89 * d75;
16971 HEAPF32[i17 + 24 >> 2] = d90 * d87 + d77 * d86 + d89 * d85;
16972 HEAPF32[i17 + 28 >> 2] = 0.0;
16973 HEAPF32[i17 + 32 >> 2] = d41 * d43 + d88 * d36 + d40 * d76;
16974 HEAPF32[i17 + 36 >> 2] = d41 * d42 + d88 * d38 + d40 * d75;
16975 HEAPF32[i17 + 40 >> 2] = d41 * d87 + d88 * d86 + d40 * d85;
16976 _memset(i17 + 44 | 0, 0, 20);
16977 __ZN28btTriangleConvexcastCallbackC2EPK13btConvexShapeRK11btTransformS5_S5_f(i18 | 0, i1, i2, i3, i6, +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i5 >> 2] | 0) + 44 >> 2] & 7](i5));
16978 HEAP32[i18 >> 2] = 1688;
16979 HEAP32[i18 + 212 >> 2] = i7;
16980 HEAP32[i18 + 216 >> 2] = i4;
16981 HEAP32[i18 + 220 >> 2] = i5;
16982 HEAPF32[i18 + 200 >> 2] = +HEAPF32[i7 + 4 >> 2];
16983 HEAPF32[i18 + 208 >> 2] = d8;
16984 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i1, i17, i19, i20);
16985 i17 = i18 | 0;
16986 __ZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_(i5, i17, i15, i16, i19, i20);
16987 __ZN18btTriangleCallbackD2Ev(i17);
16988 STACKTOP = i9;
16989 return;
16990 } else if ((i32 | 0) == 28) {
16991 HEAP32[i21 >> 2] = 2280;
16992 i32 = i21 + 164 | 0;
16993 HEAP32[i21 + 168 >> 2] = 0;
16994 HEAPF32[i21 + 172 >> 2] = d8;
16995 i17 = i7 + 4 | 0;
16996 HEAPF32[i32 >> 2] = +HEAPF32[i17 >> 2];
16997 __ZN27btContinuousConvexCollisionC2EPK13btConvexShapePK18btStaticPlaneShape(i22, i1, i5);
16998 i20 = i22 | 0;
16999 do {
17000 if (FUNCTION_TABLE_iiiiiii[HEAP32[(HEAP32[i22 >> 2] | 0) + 8 >> 2] & 7](i20, i2, i3, i6, i6, i21) | 0) {
17001 i19 = i21 + 132 | 0;
17002 i16 = i19 | 0;
17003 d85 = +HEAPF32[i16 >> 2];
17004 i15 = i21 + 136 | 0;
17005 d40 = +HEAPF32[i15 >> 2];
17006 i18 = i21 + 140 | 0;
17007 d86 = +HEAPF32[i18 >> 2];
17008 d88 = d85 * d85 + d40 * d40 + d86 * d86;
17009 if (d88 <= 9999999747378752.0e-20) {
17010 break;
17011 }
17012 d87 = +HEAPF32[i32 >> 2];
17013 if (d87 >= +HEAPF32[i17 >> 2]) {
17014 break;
17015 }
17016 d41 = 1.0 / +Math_sqrt(+d88);
17017 HEAPF32[i16 >> 2] = d85 * d41;
17018 HEAPF32[i15 >> 2] = d40 * d41;
17019 HEAPF32[i18 >> 2] = d86 * d41;
17020 HEAP32[i23 >> 2] = i4;
17021 HEAP32[i23 + 4 >> 2] = 0;
17022 i18 = i23 + 8 | 0;
17023 i15 = i19;
17024 HEAP32[i18 >> 2] = HEAP32[i15 >> 2];
17025 HEAP32[i18 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
17026 HEAP32[i18 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
17027 HEAP32[i18 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
17028 i15 = i23 + 24 | 0;
17029 i18 = i21 + 148 | 0;
17030 HEAP32[i15 >> 2] = HEAP32[i18 >> 2];
17031 HEAP32[i15 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
17032 HEAP32[i15 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
17033 HEAP32[i15 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
17034 HEAPF32[i23 + 40 >> 2] = d87;
17035 i18 = HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] | 0;
17036 +FUNCTION_TABLE_fiii[i18 & 15](i7, i23, 1);
17037 }
17038 } while (0);
17039 __ZN12btConvexCastD2Ev(i20);
17040 STACKTOP = i9;
17041 return;
17042 } else {
17043 i20 = i5;
17044 d87 = +HEAPF32[i6 >> 2];
17045 d41 = +HEAPF32[i6 + 16 >> 2];
17046 d86 = +HEAPF32[i6 + 32 >> 2];
17047 d40 = +HEAPF32[i6 + 4 >> 2];
17048 d85 = +HEAPF32[i6 + 20 >> 2];
17049 d88 = +HEAPF32[i6 + 36 >> 2];
17050 d75 = +HEAPF32[i6 + 8 >> 2];
17051 d38 = +HEAPF32[i6 + 24 >> 2];
17052 d42 = +HEAPF32[i6 + 40 >> 2];
17053 d76 = -0.0 - +HEAPF32[i6 + 48 >> 2];
17054 d36 = -0.0 - +HEAPF32[i6 + 52 >> 2];
17055 d43 = -0.0 - +HEAPF32[i6 + 56 >> 2];
17056 d89 = d87 * d76 + d41 * d36 + d86 * d43;
17057 d77 = d40 * d76 + d85 * d36 + d88 * d43;
17058 d90 = d75 * d76 + d38 * d36 + d42 * d43;
17059 d43 = +HEAPF32[i2 + 48 >> 2];
17060 d36 = +HEAPF32[i2 + 52 >> 2];
17061 d76 = +HEAPF32[i2 + 56 >> 2];
17062 d91 = d89 + (d87 * d43 + d41 * d36 + d86 * d76);
17063 d92 = d77 + (d40 * d43 + d85 * d36 + d88 * d76);
17064 d93 = d90 + (d75 * d43 + d38 * d36 + d42 * d76);
17065 d76 = +HEAPF32[i3 + 48 >> 2];
17066 d36 = +HEAPF32[i3 + 52 >> 2];
17067 d43 = +HEAPF32[i3 + 56 >> 2];
17068 d84 = d89 + (d87 * d76 + d41 * d36 + d86 * d43);
17069 d89 = d77 + (d40 * d76 + d85 * d36 + d88 * d43);
17070 d77 = d90 + (d75 * d76 + d38 * d36 + d42 * d43);
17071 d43 = +HEAPF32[i3 >> 2];
17072 d36 = +HEAPF32[i3 + 16 >> 2];
17073 d76 = +HEAPF32[i3 + 32 >> 2];
17074 d90 = +HEAPF32[i3 + 4 >> 2];
17075 d83 = +HEAPF32[i3 + 20 >> 2];
17076 d82 = +HEAPF32[i3 + 36 >> 2];
17077 d80 = +HEAPF32[i3 + 8 >> 2];
17078 d79 = +HEAPF32[i3 + 24 >> 2];
17079 d78 = +HEAPF32[i3 + 40 >> 2];
17080 HEAPF32[i24 >> 2] = d87 * d43 + d41 * d36 + d86 * d76;
17081 HEAPF32[i24 + 4 >> 2] = d87 * d90 + d41 * d83 + d86 * d82;
17082 HEAPF32[i24 + 8 >> 2] = d87 * d80 + d41 * d79 + d86 * d78;
17083 HEAPF32[i24 + 12 >> 2] = 0.0;
17084 HEAPF32[i24 + 16 >> 2] = d40 * d43 + d85 * d36 + d88 * d76;
17085 HEAPF32[i24 + 20 >> 2] = d40 * d90 + d85 * d83 + d88 * d82;
17086 HEAPF32[i24 + 24 >> 2] = d40 * d80 + d85 * d79 + d88 * d78;
17087 HEAPF32[i24 + 28 >> 2] = 0.0;
17088 HEAPF32[i24 + 32 >> 2] = d75 * d43 + d38 * d36 + d42 * d76;
17089 HEAPF32[i24 + 36 >> 2] = d75 * d90 + d38 * d83 + d42 * d82;
17090 HEAPF32[i24 + 40 >> 2] = d75 * d80 + d38 * d79 + d42 * d78;
17091 _memset(i24 + 44 | 0, 0, 20);
17092 __ZN28btTriangleConvexcastCallbackC2EPK13btConvexShapeRK11btTransformS5_S5_f(i25 | 0, i1, i2, i3, i6, +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i5 >> 2] | 0) + 44 >> 2] & 7](i20));
17093 HEAP32[i25 >> 2] = 1656;
17094 HEAP32[i25 + 212 >> 2] = i7;
17095 HEAP32[i25 + 216 >> 2] = i4;
17096 HEAP32[i25 + 220 >> 2] = i20;
17097 HEAPF32[i25 + 200 >> 2] = +HEAPF32[i7 + 4 >> 2];
17098 HEAPF32[i25 + 208 >> 2] = d8;
17099 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i1, i24, i26, i27);
17100 i24 = i28 | 0;
17101 HEAPF32[i24 >> 2] = d91;
17102 i1 = i28 + 4 | 0;
17103 HEAPF32[i1 >> 2] = d92;
17104 i7 = i28 + 8 | 0;
17105 HEAPF32[i7 >> 2] = d93;
17106 HEAPF32[i28 + 12 >> 2] = 0.0;
17107 if (d84 < d91) {
17108 HEAPF32[i24 >> 2] = d84;
17109 d94 = d84;
17110 } else {
17111 d94 = d91;
17112 }
17113 if (d89 < d92) {
17114 HEAPF32[i1 >> 2] = d89;
17115 d95 = d89;
17116 } else {
17117 d95 = d92;
17118 }
17119 if (d77 < d93) {
17120 HEAPF32[i7 >> 2] = d77;
17121 d96 = d77;
17122 } else {
17123 d96 = d93;
17124 }
17125 i4 = i29 | 0;
17126 HEAPF32[i4 >> 2] = d91;
17127 i6 = i29 + 4 | 0;
17128 HEAPF32[i6 >> 2] = d92;
17129 i3 = i29 + 8 | 0;
17130 HEAPF32[i3 >> 2] = d93;
17131 HEAPF32[i29 + 12 >> 2] = 0.0;
17132 if (d91 < d84) {
17133 HEAPF32[i4 >> 2] = d84;
17134 d97 = d84;
17135 } else {
17136 d97 = d91;
17137 }
17138 if (d92 < d89) {
17139 HEAPF32[i6 >> 2] = d89;
17140 d98 = d89;
17141 } else {
17142 d98 = d92;
17143 }
17144 if (d93 < d77) {
17145 HEAPF32[i3 >> 2] = d77;
17146 d99 = d77;
17147 } else {
17148 d99 = d93;
17149 }
17150 HEAPF32[i24 >> 2] = d94 + +HEAPF32[i26 >> 2];
17151 HEAPF32[i1 >> 2] = d95 + +HEAPF32[i26 + 4 >> 2];
17152 HEAPF32[i7 >> 2] = d96 + +HEAPF32[i26 + 8 >> 2];
17153 HEAPF32[i4 >> 2] = d97 + +HEAPF32[i27 >> 2];
17154 HEAPF32[i6 >> 2] = d98 + +HEAPF32[i27 + 4 >> 2];
17155 HEAPF32[i3 >> 2] = d99 + +HEAPF32[i27 + 8 >> 2];
17156 i27 = i25 | 0;
17157 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i5 >> 2] | 0) + 60 >> 2] & 127](i20, i27, i28, i29);
17158 __ZN18btTriangleCallbackD2Ev(i27);
17159 STACKTOP = i9;
17160 return;
17161 }
17162 }
17163 function __ZN35btSequentialImpulseConstraintSolver28solveGroupCacheFriendlySetupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10) {
17164 i1 = i1 | 0;
17165 i2 = i2 | 0;
17166 i3 = i3 | 0;
17167 i4 = i4 | 0;
17168 i5 = i5 | 0;
17169 i6 = i6 | 0;
17170 i7 = i7 | 0;
17171 i8 = i8 | 0;
17172 i9 = i9 | 0;
17173 i10 = i10 | 0;
17174 var i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, d46 = 0.0, d47 = 0.0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, d81 = 0.0, d82 = 0.0, d83 = 0.0, d84 = 0.0, d85 = 0.0, d86 = 0.0, d87 = 0.0, d88 = 0.0, d89 = 0.0, d90 = 0.0, d91 = 0.0, i92 = 0, i93 = 0, i94 = 0, i95 = 0, i96 = 0, i97 = 0;
17175 i10 = STACKTOP;
17176 STACKTOP = STACKTOP + 192 | 0;
17177 i9 = i10 | 0;
17178 i11 = i10 + 136 | 0;
17179 __ZN15CProfileManager13Start_ProfileEPKc(408);
17180 if ((i7 | 0) == (-i5 | 0)) {
17181 __ZN15CProfileManager12Stop_ProfileEv();
17182 STACKTOP = i10;
17183 return +0.0;
17184 }
17185 i12 = (i3 | 0) > 0;
17186 do {
17187 if ((HEAP32[i8 + 44 >> 2] | 0) == 0) {
17188 if (i12) {
17189 i13 = 0;
17190 } else {
17191 break;
17192 }
17193 do {
17194 i14 = HEAP32[i2 + (i13 << 2) >> 2] | 0;
17195 if (!((HEAP32[i14 + 232 >> 2] & 2 | 0) == 0 | (i14 | 0) == 0)) {
17196 _memset(i14 + 504 | 0, 0, 32);
17197 }
17198 i13 = i13 + 1 | 0;
17199 } while ((i13 | 0) < (i3 | 0));
17200 } else {
17201 if (i12) {
17202 i15 = 0;
17203 } else {
17204 break;
17205 }
17206 do {
17207 i14 = HEAP32[i2 + (i15 << 2) >> 2] | 0;
17208 if (!((HEAP32[i14 + 232 >> 2] & 2 | 0) == 0 | (i14 | 0) == 0)) {
17209 _memset(i14 + 504 | 0, 0, 32);
17210 _memset(i14 + 568 | 0, 0, 32);
17211 }
17212 i15 = i15 + 1 | 0;
17213 } while ((i15 | 0) < (i3 | 0));
17214 }
17215 } while (0);
17216 i3 = (i7 | 0) > 0;
17217 if (i3) {
17218 i15 = 0;
17219 do {
17220 i2 = HEAP32[i6 + (i15 << 2) >> 2] | 0;
17221 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i2 >> 2] | 0) + 8 >> 2] & 511](i2);
17222 HEAPF32[i2 + 32 >> 2] = 0.0;
17223 i15 = i15 + 1 | 0;
17224 } while ((i15 | 0) < (i7 | 0));
17225 }
17226 i15 = i1 + 108 | 0;
17227 i2 = HEAP32[i15 >> 2] | 0;
17228 if ((i2 | 0) < (i7 | 0)) {
17229 i12 = i1 + 112 | 0;
17230 if ((HEAP32[i12 >> 2] | 0) < (i7 | 0)) {
17231 if ((i7 | 0) == 0) {
17232 i16 = 0;
17233 i17 = i2;
17234 } else {
17235 i13 = __Z22btAlignedAllocInternalji(i7 << 3, 16) | 0;
17236 i16 = i13;
17237 i17 = HEAP32[i15 >> 2] | 0;
17238 }
17239 i13 = i1 + 116 | 0;
17240 if ((i17 | 0) > 0) {
17241 i14 = 0;
17242 do {
17243 i18 = i16 + (i14 << 3) | 0;
17244 if ((i18 | 0) != 0) {
17245 i19 = (HEAP32[i13 >> 2] | 0) + (i14 << 3) | 0;
17246 i20 = i18;
17247 i18 = HEAP32[i19 + 4 >> 2] | 0;
17248 HEAP32[i20 >> 2] = HEAP32[i19 >> 2];
17249 HEAP32[i20 + 4 >> 2] = i18;
17250 }
17251 i14 = i14 + 1 | 0;
17252 } while ((i14 | 0) < (i17 | 0));
17253 }
17254 i17 = HEAP32[i13 >> 2] | 0;
17255 i14 = i1 + 120 | 0;
17256 if ((i17 | 0) != 0) {
17257 if ((HEAP8[i14] | 0) != 0) {
17258 __Z21btAlignedFreeInternalPv(i17);
17259 }
17260 HEAP32[i13 >> 2] = 0;
17261 }
17262 HEAP8[i14] = 1;
17263 HEAP32[i13 >> 2] = i16;
17264 HEAP32[i12 >> 2] = i7;
17265 i21 = i13;
17266 } else {
17267 i21 = i1 + 116 | 0;
17268 }
17269 i13 = i2;
17270 do {
17271 i2 = (HEAP32[i21 >> 2] | 0) + (i13 << 3) | 0;
17272 if ((i2 | 0) != 0) {
17273 i12 = i2;
17274 HEAP32[i12 >> 2] = 0;
17275 HEAP32[i12 + 4 >> 2] = 0;
17276 }
17277 i13 = i13 + 1 | 0;
17278 } while ((i13 | 0) < (i7 | 0));
17279 }
17280 HEAP32[i15 >> 2] = i7;
17281 if (i3) {
17282 i15 = i1 + 116 | 0;
17283 i13 = 0;
17284 i21 = 0;
17285 while (1) {
17286 i12 = HEAP32[i15 >> 2] | 0;
17287 i2 = i12 + (i13 << 3) | 0;
17288 i16 = HEAP32[i6 + (i13 << 2) >> 2] | 0;
17289 if ((HEAP8[i16 + 20 | 0] | 0) == 0) {
17290 HEAP32[i2 >> 2] = 0;
17291 HEAP32[i12 + (i13 << 3) + 4 >> 2] = 0;
17292 i22 = 0;
17293 } else {
17294 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i16 >> 2] | 0) + 16 >> 2] & 127](i16, i2);
17295 i22 = HEAP32[i2 >> 2] | 0;
17296 }
17297 i2 = i22 + i21 | 0;
17298 i16 = i13 + 1 | 0;
17299 if ((i16 | 0) < (i7 | 0)) {
17300 i13 = i16;
17301 i21 = i2;
17302 } else {
17303 i23 = i2;
17304 break;
17305 }
17306 }
17307 } else {
17308 i23 = 0;
17309 }
17310 i21 = i9;
17311 _memset(i21 | 0, 0, 136);
17312 i9 = i1 + 28 | 0;
17313 i13 = HEAP32[i9 >> 2] | 0;
17314 if ((i13 | 0) < (i23 | 0)) {
17315 i22 = i1 + 32 | 0;
17316 if ((HEAP32[i22 >> 2] | 0) < (i23 | 0)) {
17317 if ((i23 | 0) == 0) {
17318 i24 = 0;
17319 i25 = i13;
17320 } else {
17321 i15 = __Z22btAlignedAllocInternalji(i23 * 136 | 0, 16) | 0;
17322 i24 = i15;
17323 i25 = HEAP32[i9 >> 2] | 0;
17324 }
17325 i15 = i1 + 36 | 0;
17326 if ((i25 | 0) > 0) {
17327 i2 = 0;
17328 do {
17329 i16 = i24 + (i2 * 136 | 0) | 0;
17330 i12 = (HEAP32[i15 >> 2] | 0) + (i2 * 136 | 0) | 0;
17331 _memcpy(i16 | 0, i12 | 0, 136) | 0;
17332 i2 = i2 + 1 | 0;
17333 } while ((i2 | 0) < (i25 | 0));
17334 }
17335 i25 = HEAP32[i15 >> 2] | 0;
17336 i2 = i1 + 40 | 0;
17337 if ((i25 | 0) != 0) {
17338 if ((HEAP8[i2] | 0) != 0) {
17339 __Z21btAlignedFreeInternalPv(i25);
17340 }
17341 HEAP32[i15 >> 2] = 0;
17342 }
17343 HEAP8[i2] = 1;
17344 HEAP32[i15 >> 2] = i24;
17345 HEAP32[i22 >> 2] = i23;
17346 i26 = i15;
17347 } else {
17348 i26 = i1 + 36 | 0;
17349 }
17350 i15 = i13;
17351 do {
17352 i13 = (HEAP32[i26 >> 2] | 0) + (i15 * 136 | 0) | 0;
17353 _memcpy(i13 | 0, i21 | 0, 136) | 0;
17354 i15 = i15 + 1 | 0;
17355 } while ((i15 | 0) < (i23 | 0));
17356 }
17357 HEAP32[i9 >> 2] = i23;
17358 if (i3) {
17359 i3 = i1 + 116 | 0;
17360 i23 = i1 + 36 | 0;
17361 i9 = i8 + 12 | 0;
17362 i15 = i11 | 0;
17363 i21 = i8 + 32 | 0;
17364 i26 = i11 + 4 | 0;
17365 i13 = i11 + 8 | 0;
17366 i22 = i11 + 12 | 0;
17367 i24 = i11 + 16 | 0;
17368 i2 = i11 + 20 | 0;
17369 i25 = i11 + 24 | 0;
17370 i12 = i11 + 28 | 0;
17371 i16 = i8 + 40 | 0;
17372 i14 = i8 + 4 | 0;
17373 i17 = i11 + 52 | 0;
17374 i18 = i11 + 32 | 0;
17375 i20 = i11 + 36 | 0;
17376 i19 = i11 + 40 | 0;
17377 i27 = i8 + 20 | 0;
17378 i28 = i11 + 48 | 0;
17379 i29 = 0;
17380 i30 = 0;
17381 i31 = HEAP32[i3 >> 2] | 0;
17382 while (1) {
17383 i32 = i31 + (i30 << 3) | 0;
17384 i33 = HEAP32[i32 >> 2] | 0;
17385 if ((i33 | 0) == 0) {
17386 i34 = i31;
17387 i35 = 0;
17388 } else {
17389 i36 = HEAP32[i23 >> 2] | 0;
17390 i37 = i6 + (i30 << 2) | 0;
17391 i38 = HEAP32[i37 >> 2] | 0;
17392 i39 = i38 + 24 | 0;
17393 i40 = HEAP32[i39 >> 2] | 0;
17394 i41 = i38 + 28 | 0;
17395 i42 = HEAP32[i41 >> 2] | 0;
17396 if ((i33 | 0) > 0) {
17397 i33 = 0;
17398 do {
17399 i43 = i33 + i29 | 0;
17400 _memset(i36 + (i43 * 136 | 0) | 0, 0, 136);
17401 HEAPF32[i36 + (i43 * 136 | 0) + 124 >> 2] = -3.4028234663852886e+38;
17402 HEAPF32[i36 + (i43 * 136 | 0) + 128 >> 2] = 3.4028234663852886e+38;
17403 HEAPF32[i36 + (i43 * 136 | 0) + 84 >> 2] = 0.0;
17404 HEAPF32[i36 + (i43 * 136 | 0) + 80 >> 2] = 0.0;
17405 HEAP32[i36 + (i43 * 136 | 0) + 104 >> 2] = i40;
17406 HEAP32[i36 + (i43 * 136 | 0) + 108 >> 2] = i42;
17407 i33 = i33 + 1 | 0;
17408 } while ((i33 | 0) < (HEAP32[i32 >> 2] | 0));
17409 i44 = HEAP32[i37 >> 2] | 0;
17410 } else {
17411 i44 = i38;
17412 }
17413 _memset(i40 + 504 | 0, 0, 32);
17414 _memset(i42 + 504 | 0, 0, 32);
17415 HEAPF32[i15 >> 2] = 1.0 / +HEAPF32[i9 >> 2];
17416 HEAPF32[i26 >> 2] = +HEAPF32[i21 >> 2];
17417 HEAP32[i13 >> 2] = i36 + (i29 * 136 | 0) + 16;
17418 HEAP32[i22 >> 2] = i36 + (i29 * 136 | 0);
17419 HEAP32[i24 >> 2] = 0;
17420 HEAP32[i2 >> 2] = i36 + (i29 * 136 | 0) + 32;
17421 HEAP32[i25 >> 2] = 34;
17422 HEAP32[i12 >> 2] = i36 + (i29 * 136 | 0) + 116;
17423 i33 = i36 + (i29 * 136 | 0) + 120 | 0;
17424 HEAPF32[i33 >> 2] = +HEAPF32[i16 >> 2];
17425 HEAPF32[i17 >> 2] = +HEAPF32[i14 >> 2];
17426 HEAP32[i18 >> 2] = i33;
17427 i33 = i36 + (i29 * 136 | 0) + 124 | 0;
17428 HEAP32[i20 >> 2] = i33;
17429 i43 = i36 + (i29 * 136 | 0) + 128 | 0;
17430 HEAP32[i19 >> 2] = i43;
17431 HEAP32[i28 >> 2] = HEAP32[i27 >> 2];
17432 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i44 >> 2] | 0) + 20 >> 2] & 127](i44, i11);
17433 i45 = (HEAP32[i37 >> 2] | 0) + 16 | 0;
17434 d46 = +HEAPF32[i45 >> 2];
17435 if (+HEAPF32[i43 >> 2] > d46) {
17436 HEAPF32[i43 >> 2] = d46;
17437 d47 = +HEAPF32[i45 >> 2];
17438 } else {
17439 d47 = d46;
17440 }
17441 d46 = -0.0 - d47;
17442 if (+HEAPF32[i33 >> 2] < d46) {
17443 HEAPF32[i33 >> 2] = d46;
17444 }
17445 if ((HEAP32[i32 >> 2] | 0) > 0) {
17446 i33 = i38;
17447 i45 = i40 + 336 | 0;
17448 i43 = i40 + 256 | 0;
17449 i48 = i40 + 260 | 0;
17450 i49 = i40 + 264 | 0;
17451 i50 = i40 + 272 | 0;
17452 i51 = i40 + 276 | 0;
17453 i52 = i40 + 280 | 0;
17454 i53 = i40 + 288 | 0;
17455 i54 = i40 + 292 | 0;
17456 i55 = i40 + 296 | 0;
17457 i56 = i42 + 336 | 0;
17458 i57 = i42 + 256 | 0;
17459 i58 = i42 + 260 | 0;
17460 i59 = i42 + 264 | 0;
17461 i60 = i42 + 272 | 0;
17462 i61 = i42 + 276 | 0;
17463 i62 = i42 + 280 | 0;
17464 i63 = i42 + 288 | 0;
17465 i64 = i42 + 292 | 0;
17466 i65 = i42 + 296 | 0;
17467 i66 = i40 + 304 | 0;
17468 i67 = i40 + 308 | 0;
17469 i68 = i40 + 312 | 0;
17470 i69 = i40 + 320 | 0;
17471 i70 = i40 + 324 | 0;
17472 i71 = i40 + 328 | 0;
17473 i72 = i42 + 304 | 0;
17474 i73 = i42 + 308 | 0;
17475 i74 = i42 + 312 | 0;
17476 i75 = i42 + 320 | 0;
17477 i76 = i42 + 324 | 0;
17478 i77 = i42 + 328 | 0;
17479 i78 = 0;
17480 do {
17481 i79 = i78 + i29 | 0;
17482 HEAP32[i36 + (i79 * 136 | 0) + 112 >> 2] = i33;
17483 i80 = HEAP32[i39 >> 2] | 0;
17484 d46 = +HEAPF32[i36 + (i79 * 136 | 0) >> 2];
17485 d81 = +HEAPF32[i36 + (i79 * 136 | 0) + 4 >> 2];
17486 d82 = +HEAPF32[i36 + (i79 * 136 | 0) + 8 >> 2];
17487 d83 = (d46 * +HEAPF32[i80 + 272 >> 2] + d81 * +HEAPF32[i80 + 276 >> 2] + d82 * +HEAPF32[i80 + 280 >> 2]) * +HEAPF32[i80 + 540 >> 2];
17488 d84 = (d46 * +HEAPF32[i80 + 288 >> 2] + d81 * +HEAPF32[i80 + 292 >> 2] + d82 * +HEAPF32[i80 + 296 >> 2]) * +HEAPF32[i80 + 544 >> 2];
17489 HEAPF32[i36 + (i79 * 136 | 0) + 48 >> 2] = (+HEAPF32[i80 + 256 >> 2] * d46 + +HEAPF32[i80 + 260 >> 2] * d81 + +HEAPF32[i80 + 264 >> 2] * d82) * +HEAPF32[i80 + 536 >> 2];
17490 HEAPF32[i36 + (i79 * 136 | 0) + 52 >> 2] = d83;
17491 HEAPF32[i36 + (i79 * 136 | 0) + 56 >> 2] = d84;
17492 HEAPF32[i36 + (i79 * 136 | 0) + 60 >> 2] = 0.0;
17493 i80 = HEAP32[i41 >> 2] | 0;
17494 d84 = +HEAPF32[i36 + (i79 * 136 | 0) + 32 >> 2];
17495 d83 = +HEAPF32[i36 + (i79 * 136 | 0) + 36 >> 2];
17496 d85 = +HEAPF32[i36 + (i79 * 136 | 0) + 40 >> 2];
17497 d86 = (d84 * +HEAPF32[i80 + 272 >> 2] + d83 * +HEAPF32[i80 + 276 >> 2] + d85 * +HEAPF32[i80 + 280 >> 2]) * +HEAPF32[i80 + 540 >> 2];
17498 d87 = (d84 * +HEAPF32[i80 + 288 >> 2] + d83 * +HEAPF32[i80 + 292 >> 2] + d85 * +HEAPF32[i80 + 296 >> 2]) * +HEAPF32[i80 + 544 >> 2];
17499 HEAPF32[i36 + (i79 * 136 | 0) + 64 >> 2] = (+HEAPF32[i80 + 256 >> 2] * d84 + +HEAPF32[i80 + 260 >> 2] * d83 + +HEAPF32[i80 + 264 >> 2] * d85) * +HEAPF32[i80 + 536 >> 2];
17500 HEAPF32[i36 + (i79 * 136 | 0) + 68 >> 2] = d86;
17501 HEAPF32[i36 + (i79 * 136 | 0) + 72 >> 2] = d87;
17502 HEAPF32[i36 + (i79 * 136 | 0) + 76 >> 2] = 0.0;
17503 d87 = +HEAPF32[i45 >> 2];
17504 d86 = +HEAPF32[i36 + (i79 * 136 | 0) + 16 >> 2];
17505 d88 = +HEAPF32[i36 + (i79 * 136 | 0) + 20 >> 2];
17506 d89 = +HEAPF32[i36 + (i79 * 136 | 0) + 24 >> 2];
17507 d90 = +HEAPF32[i56 >> 2];
17508 d91 = 1.0 / (d86 * d87 * d86 + d88 * d87 * d88 + d89 * d87 * d89 + (d46 * (d46 * +HEAPF32[i43 >> 2] + d81 * +HEAPF32[i48 >> 2] + d82 * +HEAPF32[i49 >> 2]) + d81 * (d46 * +HEAPF32[i50 >> 2] + d81 * +HEAPF32[i51 >> 2] + d82 * +HEAPF32[i52 >> 2]) + d82 * (d46 * +HEAPF32[i53 >> 2] + d81 * +HEAPF32[i54 >> 2] + d82 * +HEAPF32[i55 >> 2])) + (d89 * d89 * d90 + (d86 * d86 * d90 + d88 * d88 * d90)) + (d84 * (d84 * +HEAPF32[i57 >> 2] + d83 * +HEAPF32[i58 >> 2] + d85 * +HEAPF32[i59 >> 2]) + d83 * (d84 * +HEAPF32[i60 >> 2] + d83 * +HEAPF32[i61 >> 2] + d85 * +HEAPF32[i62 >> 2]) + d85 * (d84 * +HEAPF32[i63 >> 2] + d83 * +HEAPF32[i64 >> 2] + d85 * +HEAPF32[i65 >> 2])));
17509 HEAPF32[i36 + (i79 * 136 | 0) + 92 >> 2] = d91;
17510 i80 = i36 + (i79 * 136 | 0) + 116 | 0;
17511 HEAPF32[i80 >> 2] = d91 * +HEAPF32[i80 >> 2] + d91 * (0.0 - +HEAPF32[i17 >> 2] * (d86 * +HEAPF32[i66 >> 2] + d88 * +HEAPF32[i67 >> 2] + d89 * +HEAPF32[i68 >> 2] + (d46 * +HEAPF32[i69 >> 2] + d81 * +HEAPF32[i70 >> 2] + d82 * +HEAPF32[i71 >> 2]) + (d84 * +HEAPF32[i75 >> 2] + d83 * +HEAPF32[i76 >> 2] + d85 * +HEAPF32[i77 >> 2] - (d86 * +HEAPF32[i72 >> 2] + d88 * +HEAPF32[i73 >> 2] + d89 * +HEAPF32[i74 >> 2]))));
17512 HEAPF32[i36 + (i79 * 136 | 0) + 84 >> 2] = 0.0;
17513 i78 = i78 + 1 | 0;
17514 } while ((i78 | 0) < (HEAP32[i32 >> 2] | 0));
17515 }
17516 i32 = HEAP32[i3 >> 2] | 0;
17517 i34 = i32;
17518 i35 = HEAP32[i32 + (i30 << 3) >> 2] | 0;
17519 }
17520 i32 = i30 + 1 | 0;
17521 if ((i32 | 0) < (i7 | 0)) {
17522 i29 = i35 + i29 | 0;
17523 i30 = i32;
17524 i31 = i34;
17525 } else {
17526 break;
17527 }
17528 }
17529 }
17530 if ((i5 | 0) > 0) {
17531 i34 = 0;
17532 do {
17533 __ZN35btSequentialImpulseConstraintSolver14convertContactEP20btPersistentManifoldRK19btContactSolverInfo(i1, HEAP32[i4 + (i34 << 2) >> 2] | 0, i8);
17534 i34 = i34 + 1 | 0;
17535 } while ((i34 | 0) < (i5 | 0));
17536 }
17537 i5 = HEAP32[i1 + 8 >> 2] | 0;
17538 i34 = HEAP32[i1 + 48 >> 2] | 0;
17539 i8 = i1 + 68 | 0;
17540 i4 = HEAP32[i8 >> 2] | 0;
17541 if ((i4 | 0) < (i5 | 0)) {
17542 i31 = i1 + 72 | 0;
17543 if ((HEAP32[i31 >> 2] | 0) < (i5 | 0)) {
17544 if ((i5 | 0) == 0) {
17545 i92 = 0;
17546 i93 = i4;
17547 } else {
17548 i30 = __Z22btAlignedAllocInternalji(i5 << 2, 16) | 0;
17549 i92 = i30;
17550 i93 = HEAP32[i8 >> 2] | 0;
17551 }
17552 i30 = i1 + 76 | 0;
17553 if ((i93 | 0) > 0) {
17554 i29 = 0;
17555 do {
17556 i35 = i92 + (i29 << 2) | 0;
17557 if ((i35 | 0) != 0) {
17558 HEAP32[i35 >> 2] = HEAP32[(HEAP32[i30 >> 2] | 0) + (i29 << 2) >> 2];
17559 }
17560 i29 = i29 + 1 | 0;
17561 } while ((i29 | 0) < (i93 | 0));
17562 }
17563 i93 = HEAP32[i30 >> 2] | 0;
17564 i29 = i1 + 80 | 0;
17565 if ((i93 | 0) != 0) {
17566 if ((HEAP8[i29] | 0) != 0) {
17567 __Z21btAlignedFreeInternalPv(i93);
17568 }
17569 HEAP32[i30 >> 2] = 0;
17570 }
17571 HEAP8[i29] = 1;
17572 HEAP32[i30 >> 2] = i92;
17573 HEAP32[i31 >> 2] = i5;
17574 i94 = i92;
17575 } else {
17576 i94 = HEAP32[i1 + 76 >> 2] | 0;
17577 }
17578 i92 = i4;
17579 do {
17580 i4 = i94 + (i92 << 2) | 0;
17581 if ((i4 | 0) != 0) {
17582 HEAP32[i4 >> 2] = 0;
17583 }
17584 i92 = i92 + 1 | 0;
17585 } while ((i92 | 0) < (i5 | 0));
17586 }
17587 HEAP32[i8 >> 2] = i5;
17588 i8 = i1 + 88 | 0;
17589 i92 = HEAP32[i8 >> 2] | 0;
17590 if ((i92 | 0) < (i34 | 0)) {
17591 i94 = i1 + 92 | 0;
17592 if ((HEAP32[i94 >> 2] | 0) < (i34 | 0)) {
17593 if ((i34 | 0) == 0) {
17594 i95 = 0;
17595 i96 = i92;
17596 } else {
17597 i4 = __Z22btAlignedAllocInternalji(i34 << 2, 16) | 0;
17598 i95 = i4;
17599 i96 = HEAP32[i8 >> 2] | 0;
17600 }
17601 i4 = i1 + 96 | 0;
17602 if ((i96 | 0) > 0) {
17603 i31 = 0;
17604 do {
17605 i30 = i95 + (i31 << 2) | 0;
17606 if ((i30 | 0) != 0) {
17607 HEAP32[i30 >> 2] = HEAP32[(HEAP32[i4 >> 2] | 0) + (i31 << 2) >> 2];
17608 }
17609 i31 = i31 + 1 | 0;
17610 } while ((i31 | 0) < (i96 | 0));
17611 }
17612 i96 = HEAP32[i4 >> 2] | 0;
17613 i31 = i1 + 100 | 0;
17614 if ((i96 | 0) != 0) {
17615 if ((HEAP8[i31] | 0) != 0) {
17616 __Z21btAlignedFreeInternalPv(i96);
17617 }
17618 HEAP32[i4 >> 2] = 0;
17619 }
17620 HEAP8[i31] = 1;
17621 HEAP32[i4 >> 2] = i95;
17622 HEAP32[i94 >> 2] = i34;
17623 i97 = i95;
17624 } else {
17625 i97 = HEAP32[i1 + 96 >> 2] | 0;
17626 }
17627 i95 = i92;
17628 do {
17629 i92 = i97 + (i95 << 2) | 0;
17630 if ((i92 | 0) != 0) {
17631 HEAP32[i92 >> 2] = 0;
17632 }
17633 i95 = i95 + 1 | 0;
17634 } while ((i95 | 0) < (i34 | 0));
17635 }
17636 HEAP32[i8 >> 2] = i34;
17637 if ((i5 | 0) > 0) {
17638 i8 = HEAP32[i1 + 76 >> 2] | 0;
17639 i95 = 0;
17640 do {
17641 HEAP32[i8 + (i95 << 2) >> 2] = i95;
17642 i95 = i95 + 1 | 0;
17643 } while ((i95 | 0) < (i5 | 0));
17644 }
17645 if ((i34 | 0) <= 0) {
17646 __ZN15CProfileManager12Stop_ProfileEv();
17647 STACKTOP = i10;
17648 return +0.0;
17649 }
17650 i5 = HEAP32[i1 + 96 >> 2] | 0;
17651 i1 = 0;
17652 do {
17653 HEAP32[i5 + (i1 << 2) >> 2] = i1;
17654 i1 = i1 + 1 | 0;
17655 } while ((i1 | 0) < (i34 | 0));
17656 __ZN15CProfileManager12Stop_ProfileEv();
17657 STACKTOP = i10;
17658 return +0.0;
17659 }
17660 function __ZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
17661 i1 = i1 | 0;
17662 i2 = i2 | 0;
17663 i3 = i3 | 0;
17664 i4 = i4 | 0;
17665 i5 = i5 | 0;
17666 i6 = i6 | 0;
17667 i7 = i7 | 0;
17668 i8 = i8 | 0;
17669 i9 = i9 | 0;
17670 i10 = i10 | 0;
17671 i11 = i11 | 0;
17672 var i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, d48 = 0.0, d49 = 0.0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, d63 = 0.0, d64 = 0.0, d65 = 0.0, d66 = 0.0, d67 = 0.0, d68 = 0.0, d69 = 0.0, d70 = 0.0, d71 = 0.0, d72 = 0.0, d73 = 0.0, d74 = 0.0, d75 = 0.0, d76 = 0.0, d77 = 0.0, d78 = 0.0, d79 = 0.0, d80 = 0.0, d81 = 0.0, d82 = 0.0, i83 = 0;
17673 i11 = STACKTOP;
17674 STACKTOP = STACKTOP + 4264 | 0;
17675 i1 = i11 | 0;
17676 i12 = i11 + 992 | 0;
17677 i13 = i11 + 1984 | 0;
17678 i14 = i11 + 2976 | 0;
17679 i15 = i11 + 3968 | 0;
17680 i16 = i11 + 3984 | 0;
17681 i17 = i11 + 4e3 | 0;
17682 i18 = i11 + 4080 | 0;
17683 i19 = i11 + 4216 | 0;
17684 if (((HEAP32[i3 + 4 >> 2] | 0) - 17 | 0) >>> 0 < 2) {
17685 i20 = ((HEAP32[i4 + 4 >> 2] | 0) - 17 | 0) >>> 0 < 2;
17686 } else {
17687 i20 = 0;
17688 }
17689 i21 = i1 | 0;
17690 i22 = i13 | 0;
17691 i23 = i5 | 0;
17692 i24 = i5 + 16 | 0;
17693 i25 = i5 + 32 | 0;
17694 i26 = i5 + 4 | 0;
17695 i27 = i5 + 20 | 0;
17696 i28 = i5 + 36 | 0;
17697 i29 = i5 + 8 | 0;
17698 i30 = i5 + 24 | 0;
17699 i31 = i5 + 40 | 0;
17700 i32 = i6 | 0;
17701 i33 = i6 + 16 | 0;
17702 i34 = i6 + 32 | 0;
17703 i35 = i6 + 4 | 0;
17704 i36 = i6 + 20 | 0;
17705 i37 = i6 + 36 | 0;
17706 i38 = i6 + 8 | 0;
17707 i39 = i6 + 24 | 0;
17708 i40 = i6 + 40 | 0;
17709 i41 = 0;
17710 do {
17711 __ZN33btMinkowskiPenetrationDepthSolver24getPenetrationDirectionsEv() | 0;
17712 d42 = +HEAPF32[13144 + (i41 << 4) >> 2];
17713 d43 = +HEAPF32[13148 + (i41 << 4) >> 2];
17714 d44 = +HEAPF32[13152 + (i41 << 4) >> 2];
17715 d45 = -0.0 - d42;
17716 d46 = -0.0 - d43;
17717 d47 = -0.0 - d44;
17718 d48 = +HEAPF32[i26 >> 2] * d45 + +HEAPF32[i27 >> 2] * d46 + +HEAPF32[i28 >> 2] * d47;
17719 d49 = +HEAPF32[i29 >> 2] * d45 + +HEAPF32[i30 >> 2] * d46 + +HEAPF32[i31 >> 2] * d47;
17720 HEAPF32[i13 + (i41 << 4) >> 2] = +HEAPF32[i23 >> 2] * d45 + +HEAPF32[i24 >> 2] * d46 + +HEAPF32[i25 >> 2] * d47;
17721 HEAPF32[i13 + (i41 << 4) + 4 >> 2] = d48;
17722 HEAPF32[i13 + (i41 << 4) + 8 >> 2] = d49;
17723 HEAPF32[i13 + (i41 << 4) + 12 >> 2] = 0.0;
17724 d49 = d42 * +HEAPF32[i35 >> 2] + d43 * +HEAPF32[i36 >> 2] + d44 * +HEAPF32[i37 >> 2];
17725 d48 = d42 * +HEAPF32[i38 >> 2] + d43 * +HEAPF32[i39 >> 2] + d44 * +HEAPF32[i40 >> 2];
17726 HEAPF32[i14 + (i41 << 4) >> 2] = d42 * +HEAPF32[i32 >> 2] + d43 * +HEAPF32[i33 >> 2] + d44 * +HEAPF32[i34 >> 2];
17727 HEAPF32[i14 + (i41 << 4) + 4 >> 2] = d49;
17728 HEAPF32[i14 + (i41 << 4) + 8 >> 2] = d48;
17729 HEAPF32[i14 + (i41 << 4) + 12 >> 2] = 0.0;
17730 i41 = i41 + 1 | 0;
17731 } while ((i41 | 0) < 42);
17732 i41 = i12 | 0;
17733 i50 = i14 | 0;
17734 i51 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 76 >> 2] & 127](i3) | 0;
17735 if ((i51 | 0) > 0) {
17736 i52 = i3;
17737 i53 = i15 | 0;
17738 i54 = i15 + 4 | 0;
17739 i55 = i15 + 8 | 0;
17740 i56 = i15;
17741 i57 = i15 + 12 | 0;
17742 i58 = 0;
17743 i59 = 42;
17744 while (1) {
17745 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i52 >> 2] | 0) + 80 >> 2] & 127](i3, i58, i15);
17746 d48 = +HEAPF32[i53 >> 2];
17747 d49 = +HEAPF32[i54 >> 2];
17748 d44 = +HEAPF32[i55 >> 2];
17749 d43 = d48 * +HEAPF32[i24 >> 2] + d49 * +HEAPF32[i27 >> 2] + d44 * +HEAPF32[i30 >> 2];
17750 d42 = d48 * +HEAPF32[i25 >> 2] + d49 * +HEAPF32[i28 >> 2] + d44 * +HEAPF32[i31 >> 2];
17751 HEAPF32[i53 >> 2] = +HEAPF32[i23 >> 2] * d48 + +HEAPF32[i26 >> 2] * d49 + +HEAPF32[i29 >> 2] * d44;
17752 HEAPF32[i54 >> 2] = d43;
17753 HEAPF32[i55 >> 2] = d42;
17754 HEAPF32[i57 >> 2] = 0.0;
17755 __ZN33btMinkowskiPenetrationDepthSolver24getPenetrationDirectionsEv() | 0;
17756 i60 = 13144 + (i59 << 4) | 0;
17757 HEAP32[i60 >> 2] = HEAP32[i56 >> 2];
17758 HEAP32[i60 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
17759 HEAP32[i60 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
17760 HEAP32[i60 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
17761 d42 = +HEAPF32[i53 >> 2];
17762 d43 = -0.0 - d42;
17763 d44 = +HEAPF32[i54 >> 2];
17764 d49 = -0.0 - d44;
17765 d48 = +HEAPF32[i55 >> 2];
17766 d47 = -0.0 - d48;
17767 d46 = +HEAPF32[i26 >> 2] * d43 + +HEAPF32[i27 >> 2] * d49 + +HEAPF32[i28 >> 2] * d47;
17768 d45 = +HEAPF32[i29 >> 2] * d43 + +HEAPF32[i30 >> 2] * d49 + +HEAPF32[i31 >> 2] * d47;
17769 HEAPF32[i13 + (i59 << 4) >> 2] = +HEAPF32[i23 >> 2] * d43 + +HEAPF32[i24 >> 2] * d49 + +HEAPF32[i25 >> 2] * d47;
17770 HEAPF32[i13 + (i59 << 4) + 4 >> 2] = d46;
17771 HEAPF32[i13 + (i59 << 4) + 8 >> 2] = d45;
17772 HEAPF32[i13 + (i59 << 4) + 12 >> 2] = 0.0;
17773 d45 = d42 * +HEAPF32[i35 >> 2] + d44 * +HEAPF32[i36 >> 2] + d48 * +HEAPF32[i37 >> 2];
17774 d46 = d42 * +HEAPF32[i38 >> 2] + d44 * +HEAPF32[i39 >> 2] + d48 * +HEAPF32[i40 >> 2];
17775 HEAPF32[i14 + (i59 << 4) >> 2] = d42 * +HEAPF32[i32 >> 2] + d44 * +HEAPF32[i33 >> 2] + d48 * +HEAPF32[i34 >> 2];
17776 HEAPF32[i14 + (i59 << 4) + 4 >> 2] = d45;
17777 HEAPF32[i14 + (i59 << 4) + 8 >> 2] = d46;
17778 HEAPF32[i14 + (i59 << 4) + 12 >> 2] = 0.0;
17779 i60 = i58 + 1 | 0;
17780 if ((i60 | 0) < (i51 | 0)) {
17781 i58 = i60;
17782 i59 = i59 + 1 | 0;
17783 } else {
17784 break;
17785 }
17786 }
17787 i61 = i51 + 42 | 0;
17788 } else {
17789 i61 = 42;
17790 }
17791 i51 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i4 >> 2] | 0) + 76 >> 2] & 127](i4) | 0;
17792 if ((i51 | 0) > 0) {
17793 i59 = i4;
17794 i58 = i16 | 0;
17795 i55 = i16 + 4 | 0;
17796 i54 = i16 + 8 | 0;
17797 i53 = i16;
17798 i56 = i16 + 12 | 0;
17799 i57 = i61;
17800 i15 = 0;
17801 while (1) {
17802 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i59 >> 2] | 0) + 80 >> 2] & 127](i4, i15, i16);
17803 d46 = +HEAPF32[i58 >> 2];
17804 d45 = +HEAPF32[i55 >> 2];
17805 d48 = +HEAPF32[i54 >> 2];
17806 d44 = d46 * +HEAPF32[i33 >> 2] + d45 * +HEAPF32[i36 >> 2] + d48 * +HEAPF32[i39 >> 2];
17807 d42 = d46 * +HEAPF32[i34 >> 2] + d45 * +HEAPF32[i37 >> 2] + d48 * +HEAPF32[i40 >> 2];
17808 HEAPF32[i58 >> 2] = +HEAPF32[i32 >> 2] * d46 + +HEAPF32[i35 >> 2] * d45 + +HEAPF32[i38 >> 2] * d48;
17809 HEAPF32[i55 >> 2] = d44;
17810 HEAPF32[i54 >> 2] = d42;
17811 HEAPF32[i56 >> 2] = 0.0;
17812 __ZN33btMinkowskiPenetrationDepthSolver24getPenetrationDirectionsEv() | 0;
17813 i52 = 13144 + (i57 << 4) | 0;
17814 HEAP32[i52 >> 2] = HEAP32[i53 >> 2];
17815 HEAP32[i52 + 4 >> 2] = HEAP32[i53 + 4 >> 2];
17816 HEAP32[i52 + 8 >> 2] = HEAP32[i53 + 8 >> 2];
17817 HEAP32[i52 + 12 >> 2] = HEAP32[i53 + 12 >> 2];
17818 d42 = +HEAPF32[i58 >> 2];
17819 d44 = -0.0 - d42;
17820 d48 = +HEAPF32[i55 >> 2];
17821 d45 = -0.0 - d48;
17822 d46 = +HEAPF32[i54 >> 2];
17823 d47 = -0.0 - d46;
17824 d49 = +HEAPF32[i26 >> 2] * d44 + +HEAPF32[i27 >> 2] * d45 + +HEAPF32[i28 >> 2] * d47;
17825 d43 = +HEAPF32[i29 >> 2] * d44 + +HEAPF32[i30 >> 2] * d45 + +HEAPF32[i31 >> 2] * d47;
17826 HEAPF32[i13 + (i57 << 4) >> 2] = +HEAPF32[i23 >> 2] * d44 + +HEAPF32[i24 >> 2] * d45 + +HEAPF32[i25 >> 2] * d47;
17827 HEAPF32[i13 + (i57 << 4) + 4 >> 2] = d49;
17828 HEAPF32[i13 + (i57 << 4) + 8 >> 2] = d43;
17829 HEAPF32[i13 + (i57 << 4) + 12 >> 2] = 0.0;
17830 d43 = d42 * +HEAPF32[i35 >> 2] + d48 * +HEAPF32[i36 >> 2] + d46 * +HEAPF32[i37 >> 2];
17831 d49 = d42 * +HEAPF32[i38 >> 2] + d48 * +HEAPF32[i39 >> 2] + d46 * +HEAPF32[i40 >> 2];
17832 HEAPF32[i14 + (i57 << 4) >> 2] = d42 * +HEAPF32[i32 >> 2] + d48 * +HEAPF32[i33 >> 2] + d46 * +HEAPF32[i34 >> 2];
17833 HEAPF32[i14 + (i57 << 4) + 4 >> 2] = d43;
17834 HEAPF32[i14 + (i57 << 4) + 8 >> 2] = d49;
17835 HEAPF32[i14 + (i57 << 4) + 12 >> 2] = 0.0;
17836 i52 = i15 + 1 | 0;
17837 if ((i52 | 0) < (i51 | 0)) {
17838 i57 = i57 + 1 | 0;
17839 i15 = i52;
17840 } else {
17841 break;
17842 }
17843 }
17844 i62 = i51 + i61 | 0;
17845 } else {
17846 i62 = i61;
17847 }
17848 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i3 >> 2] | 0) + 68 >> 2] & 127](i3, i22, i21, i62);
17849 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i4 >> 2] | 0) + 68 >> 2] & 127](i4, i50, i41, i62);
17850 if ((i62 | 0) > 0) {
17851 i41 = i5 + 48 | 0;
17852 i50 = i5 + 52 | 0;
17853 i21 = i5 + 56 | 0;
17854 i22 = i6 + 48 | 0;
17855 i61 = i6 + 52 | 0;
17856 i51 = i6 + 56 | 0;
17857 if (i20) {
17858 d49 = 0.0;
17859 d43 = 0.0;
17860 d46 = 0.0;
17861 i20 = 0;
17862 d48 = 999999984306749400.0;
17863 while (1) {
17864 __ZN33btMinkowskiPenetrationDepthSolver24getPenetrationDirectionsEv() | 0;
17865 d42 = +HEAPF32[13144 + (i20 << 4) >> 2];
17866 d47 = +HEAPF32[13148 + (i20 << 4) >> 2];
17867 d45 = +HEAPF32[13156 + (i20 << 4) >> 2];
17868 do {
17869 if (d42 * d42 + d47 * d47 + 0.0 > .01) {
17870 d44 = +HEAPF32[i1 + (i20 << 4) >> 2];
17871 d63 = +HEAPF32[i1 + (i20 << 4) + 4 >> 2];
17872 d64 = +HEAPF32[i1 + (i20 << 4) + 8 >> 2];
17873 d65 = +HEAPF32[i12 + (i20 << 4) >> 2];
17874 d66 = +HEAPF32[i12 + (i20 << 4) + 4 >> 2];
17875 d67 = +HEAPF32[i12 + (i20 << 4) + 8 >> 2];
17876 d68 = d42 * (+HEAPF32[i22 >> 2] + (d65 * +HEAPF32[i32 >> 2] + d66 * +HEAPF32[i35 >> 2] + d67 * +HEAPF32[i38 >> 2]) - (+HEAPF32[i41 >> 2] + (d44 * +HEAPF32[i23 >> 2] + d63 * +HEAPF32[i26 >> 2] + d64 * +HEAPF32[i29 >> 2]))) + d47 * (+HEAPF32[i61 >> 2] + (d65 * +HEAPF32[i33 >> 2] + d66 * +HEAPF32[i36 >> 2] + d67 * +HEAPF32[i39 >> 2]) - (+HEAPF32[i50 >> 2] + (d44 * +HEAPF32[i24 >> 2] + d63 * +HEAPF32[i27 >> 2] + d64 * +HEAPF32[i30 >> 2]))) + 0.0;
17877 if (d68 >= d48) {
17878 d69 = d48;
17879 d70 = d46;
17880 d71 = d43;
17881 d72 = d49;
17882 break;
17883 }
17884 d69 = d68;
17885 d70 = d42;
17886 d71 = d47;
17887 d72 = d45;
17888 } else {
17889 d69 = d48;
17890 d70 = d46;
17891 d71 = d43;
17892 d72 = d49;
17893 }
17894 } while (0);
17895 i15 = i20 + 1 | 0;
17896 if ((i15 | 0) < (i62 | 0)) {
17897 d49 = d72;
17898 d43 = d71;
17899 d46 = d70;
17900 i20 = i15;
17901 d48 = d69;
17902 } else {
17903 d73 = d72;
17904 d74 = 0.0;
17905 d75 = d71;
17906 d76 = d70;
17907 d77 = d69;
17908 break;
17909 }
17910 }
17911 } else {
17912 d69 = 0.0;
17913 d70 = 0.0;
17914 d71 = 0.0;
17915 d72 = 0.0;
17916 i20 = 0;
17917 d48 = 999999984306749400.0;
17918 while (1) {
17919 __ZN33btMinkowskiPenetrationDepthSolver24getPenetrationDirectionsEv() | 0;
17920 d46 = +HEAPF32[13144 + (i20 << 4) >> 2];
17921 d43 = +HEAPF32[13148 + (i20 << 4) >> 2];
17922 d49 = +HEAPF32[13152 + (i20 << 4) >> 2];
17923 d45 = +HEAPF32[13156 + (i20 << 4) >> 2];
17924 do {
17925 if (d46 * d46 + d43 * d43 + d49 * d49 > .01) {
17926 d47 = +HEAPF32[i1 + (i20 << 4) >> 2];
17927 d42 = +HEAPF32[i1 + (i20 << 4) + 4 >> 2];
17928 d68 = +HEAPF32[i1 + (i20 << 4) + 8 >> 2];
17929 d64 = +HEAPF32[i12 + (i20 << 4) >> 2];
17930 d63 = +HEAPF32[i12 + (i20 << 4) + 4 >> 2];
17931 d44 = +HEAPF32[i12 + (i20 << 4) + 8 >> 2];
17932 d67 = d46 * (+HEAPF32[i22 >> 2] + (d64 * +HEAPF32[i32 >> 2] + d63 * +HEAPF32[i35 >> 2] + d44 * +HEAPF32[i38 >> 2]) - (+HEAPF32[i41 >> 2] + (d47 * +HEAPF32[i23 >> 2] + d42 * +HEAPF32[i26 >> 2] + d68 * +HEAPF32[i29 >> 2]))) + d43 * (+HEAPF32[i61 >> 2] + (d64 * +HEAPF32[i33 >> 2] + d63 * +HEAPF32[i36 >> 2] + d44 * +HEAPF32[i39 >> 2]) - (+HEAPF32[i50 >> 2] + (d47 * +HEAPF32[i24 >> 2] + d42 * +HEAPF32[i27 >> 2] + d68 * +HEAPF32[i30 >> 2]))) + d49 * (+HEAPF32[i51 >> 2] + (d64 * +HEAPF32[i34 >> 2] + d63 * +HEAPF32[i37 >> 2] + d44 * +HEAPF32[i40 >> 2]) - (+HEAPF32[i21 >> 2] + (d47 * +HEAPF32[i25 >> 2] + d42 * +HEAPF32[i28 >> 2] + d68 * +HEAPF32[i31 >> 2])));
17933 if (d67 >= d48) {
17934 d78 = d48;
17935 d79 = d72;
17936 d80 = d71;
17937 d81 = d70;
17938 d82 = d69;
17939 break;
17940 }
17941 d78 = d67;
17942 d79 = d46;
17943 d80 = d43;
17944 d81 = d49;
17945 d82 = d45;
17946 } else {
17947 d78 = d48;
17948 d79 = d72;
17949 d80 = d71;
17950 d81 = d70;
17951 d82 = d69;
17952 }
17953 } while (0);
17954 i15 = i20 + 1 | 0;
17955 if ((i15 | 0) < (i62 | 0)) {
17956 d69 = d82;
17957 d70 = d81;
17958 d71 = d80;
17959 d72 = d79;
17960 i20 = i15;
17961 d48 = d78;
17962 } else {
17963 d73 = d82;
17964 d74 = d81;
17965 d75 = d80;
17966 d76 = d79;
17967 d77 = d78;
17968 break;
17969 }
17970 }
17971 }
17972 } else {
17973 d73 = 0.0;
17974 d74 = 0.0;
17975 d75 = 0.0;
17976 d76 = 0.0;
17977 d77 = 999999984306749400.0;
17978 }
17979 +__ZNK13btConvexShape19getMarginNonVirtualEv(i3);
17980 +__ZNK13btConvexShape19getMarginNonVirtualEv(i4);
17981 if (d77 < 0.0) {
17982 i83 = 0;
17983 STACKTOP = i11;
17984 return i83 | 0;
17985 }
17986 d78 = +__ZNK13btConvexShape19getMarginNonVirtualEv(i3);
17987 d79 = d77 + (d78 + +__ZNK13btConvexShape19getMarginNonVirtualEv(i4) + .5);
17988 __ZN17btGjkPairDetectorC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i17, i3, i4, i2, 0);
17989 HEAP32[i18 + 132 >> 2] = 0;
17990 d78 = +HEAPF32[i5 + 48 >> 2] + d76 * d79;
17991 d77 = +HEAPF32[i5 + 52 >> 2] + d75 * d79;
17992 d80 = +HEAPF32[i5 + 56 >> 2] + d74 * d79;
17993 i2 = i5;
17994 i4 = i18;
17995 HEAP32[i4 >> 2] = HEAP32[i2 >> 2];
17996 HEAP32[i4 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
17997 HEAP32[i4 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
17998 HEAP32[i4 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
17999 i2 = i5 + 16 | 0;
18000 i4 = i5 + 32 | 0;
18001 i5 = i18 + 16 | 0;
18002 HEAP32[i5 >> 2] = HEAP32[i2 >> 2];
18003 HEAP32[i5 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
18004 HEAP32[i5 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
18005 HEAP32[i5 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
18006 i2 = i18 + 32 | 0;
18007 HEAP32[i2 >> 2] = HEAP32[i4 >> 2];
18008 HEAP32[i2 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
18009 HEAP32[i2 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
18010 HEAP32[i2 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
18011 HEAPF32[i18 + 48 >> 2] = d78;
18012 HEAPF32[i18 + 52 >> 2] = d77;
18013 HEAPF32[i18 + 56 >> 2] = d80;
18014 HEAPF32[i18 + 60 >> 2] = 0.0;
18015 i4 = i18 + 64 | 0;
18016 i2 = i6;
18017 HEAP32[i4 >> 2] = HEAP32[i2 >> 2];
18018 HEAP32[i4 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
18019 HEAP32[i4 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
18020 HEAP32[i4 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
18021 i2 = i18 + 80 | 0;
18022 i4 = i6 + 16 | 0;
18023 HEAP32[i2 >> 2] = HEAP32[i4 >> 2];
18024 HEAP32[i2 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
18025 HEAP32[i2 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
18026 HEAP32[i2 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
18027 i4 = i18 + 96 | 0;
18028 i2 = i6 + 32 | 0;
18029 HEAP32[i4 >> 2] = HEAP32[i2 >> 2];
18030 HEAP32[i4 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
18031 HEAP32[i4 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
18032 HEAP32[i4 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
18033 i2 = i18 + 112 | 0;
18034 i4 = i6 + 48 | 0;
18035 HEAP32[i2 >> 2] = HEAP32[i4 >> 2];
18036 HEAP32[i2 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
18037 HEAP32[i2 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
18038 HEAP32[i2 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
18039 HEAPF32[i18 + 128 >> 2] = 999999984306749400.0;
18040 HEAP32[i19 >> 2] = 1384;
18041 i4 = i19 + 40 | 0;
18042 HEAP8[i4] = 0;
18043 HEAPF32[i17 + 4 >> 2] = -0.0 - d76;
18044 HEAPF32[i17 + 8 >> 2] = -0.0 - d75;
18045 HEAPF32[i17 + 12 >> 2] = -0.0 - d74;
18046 HEAPF32[i17 + 16 >> 2] = 0.0;
18047 __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i17, i18, i19 | 0, i10, 0);
18048 d80 = d79 - +HEAPF32[i19 + 36 >> 2];
18049 i10 = HEAP8[i4] | 0;
18050 if (i10 << 24 >> 24 != 0) {
18051 i4 = i19 + 20 | 0;
18052 d79 = +HEAPF32[i19 + 24 >> 2] - d75 * d80;
18053 d77 = +HEAPF32[i19 + 28 >> 2] - d74 * d80;
18054 HEAPF32[i8 >> 2] = +HEAPF32[i4 >> 2] - d76 * d80;
18055 HEAPF32[i8 + 4 >> 2] = d79;
18056 HEAPF32[i8 + 8 >> 2] = d77;
18057 HEAPF32[i8 + 12 >> 2] = 0.0;
18058 i8 = i9;
18059 i9 = i4;
18060 HEAP32[i8 >> 2] = HEAP32[i9 >> 2];
18061 HEAP32[i8 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
18062 HEAP32[i8 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
18063 HEAP32[i8 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
18064 HEAPF32[i7 >> 2] = d76;
18065 HEAPF32[i7 + 4 >> 2] = d75;
18066 HEAPF32[i7 + 8 >> 2] = d74;
18067 HEAPF32[i7 + 12 >> 2] = d73;
18068 }
18069 i83 = i10 << 24 >> 24 != 0;
18070 STACKTOP = i11;
18071 return i83 | 0;
18072 }
18073 function _main(i1, i2) {
18074 i1 = i1 | 0;
18075 i2 = i2 | 0;
18076 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0;
18077 i2 = STACKTOP;
18078 STACKTOP = STACKTOP + 80 | 0;
18079 i1 = i2 | 0;
18080 i3 = i2 + 32 | 0;
18081 i4 = i2 + 48 | 0;
18082 i5 = i2 + 64 | 0;
18083 i6 = i5 | 0;
18084 i7 = STACKTOP;
18085 STACKTOP = STACKTOP + 136 | 0;
18086 i8 = STACKTOP;
18087 STACKTOP = STACKTOP + 16 | 0;
18088 i9 = STACKTOP;
18089 STACKTOP = STACKTOP + 16 | 0;
18090 i10 = i9 | 0;
18091 i11 = STACKTOP;
18092 STACKTOP = STACKTOP + 16 | 0;
18093 i12 = STACKTOP;
18094 STACKTOP = STACKTOP + 136 | 0;
18095 i13 = STACKTOP;
18096 STACKTOP = STACKTOP + 64 | 0;
18097 i14 = __Znwj(88) | 0;
18098 i15 = i14;
18099 HEAP32[i1 >> 2] = 0;
18100 HEAP32[i1 + 4 >> 2] = 0;
18101 HEAP32[i1 + 8 >> 2] = 0;
18102 HEAP32[i1 + 12 >> 2] = 4096;
18103 HEAP32[i1 + 16 >> 2] = 4096;
18104 HEAP32[i1 + 20 >> 2] = 0;
18105 HEAP32[i1 + 24 >> 2] = 0;
18106 HEAP32[i1 + 28 >> 2] = 1;
18107 __ZN31btDefaultCollisionConfigurationC2ERK34btDefaultCollisionConstructionInfo(i15, i1);
18108 i1 = __Znwj(5388) | 0;
18109 i16 = i1;
18110 i17 = i14;
18111 __ZN21btCollisionDispatcherC2EP24btCollisionConfiguration(i16, i17);
18112 i18 = __Znwj(156) | 0;
18113 __ZN16btDbvtBroadphaseC2EP22btOverlappingPairCache(i18, 0);
18114 i19 = i18;
18115 i20 = __Znwj(128) | 0;
18116 i21 = i20;
18117 __ZN35btSequentialImpulseConstraintSolverC2Ev(i21);
18118 i22 = __Znwj(268) | 0;
18119 i23 = i22;
18120 __ZN23btDiscreteDynamicsWorldC2EP12btDispatcherP21btBroadphaseInterfaceP18btConstraintSolverP24btCollisionConfiguration(i23, i1, i19, i20, i17);
18121 i17 = HEAP32[(HEAP32[i22 >> 2] | 0) + 68 >> 2] | 0;
18122 HEAPF32[i3 >> 2] = 0.0;
18123 HEAPF32[i3 + 4 >> 2] = -10.0;
18124 HEAPF32[i3 + 8 >> 2] = 0.0;
18125 HEAPF32[i3 + 12 >> 2] = 0.0;
18126 FUNCTION_TABLE_vii[i17 & 127](i23, i3);
18127 i3 = __Z22btAlignedAllocInternalji(56, 16) | 0;
18128 __ZN23btPolyhedralConvexShapeC2Ev(i3);
18129 HEAP32[i3 >> 2] = 4984;
18130 HEAP32[i3 + 4 >> 2] = 0;
18131 i17 = i3;
18132 i24 = i3;
18133 d25 = +FUNCTION_TABLE_fi[HEAP32[1257] & 7](i17);
18134 d26 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i24 >> 2] | 0) + 44 >> 2] & 7](i17);
18135 d27 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i24 >> 2] | 0) + 44 >> 2] & 7](i17);
18136 d28 = +HEAPF32[i3 + 16 >> 2] * 50.0 - d26;
18137 d26 = +HEAPF32[i3 + 20 >> 2] * 50.0 - d27;
18138 HEAPF32[i3 + 28 >> 2] = +HEAPF32[i3 + 12 >> 2] * 50.0 - d25;
18139 HEAPF32[i3 + 32 >> 2] = d28;
18140 HEAPF32[i3 + 36 >> 2] = d26;
18141 HEAPF32[i3 + 40 >> 2] = 0.0;
18142 i17 = i3;
18143 i3 = __Z22btAlignedAllocInternalji(4, 16) | 0;
18144 i24 = i3;
18145 i29 = (i3 | 0) == 0;
18146 if (!i29) {
18147 HEAP32[i24 >> 2] = i17;
18148 }
18149 i30 = i4 | 0;
18150 _memset(i30 | 0, 0, 16);
18151 _memset(i5 | 0, 0, 16);
18152 i31 = __Znwj(200) | 0;
18153 do {
18154 if ((HEAP8[14344] | 0) == 0) {
18155 if ((___cxa_guard_acquire(14344) | 0) == 0) {
18156 break;
18157 }
18158 do {
18159 if ((HEAP8[14352] | 0) == 0) {
18160 if ((___cxa_guard_acquire(14352) | 0) == 0) {
18161 break;
18162 }
18163 HEAPF32[3550] = 1.0;
18164 _memset(14204, 0, 16);
18165 HEAPF32[3555] = 1.0;
18166 _memset(14224, 0, 16);
18167 HEAPF32[3560] = 1.0;
18168 HEAPF32[3561] = 0.0;
18169 }
18170 } while (0);
18171 HEAP32[3534] = HEAP32[3550];
18172 HEAP32[3535] = HEAP32[3551];
18173 HEAP32[3536] = HEAP32[3552];
18174 HEAP32[3537] = HEAP32[3553];
18175 HEAP32[3538] = HEAP32[3554];
18176 HEAP32[14156 >> 2] = HEAP32[14220 >> 2];
18177 HEAP32[14160 >> 2] = HEAP32[14224 >> 2];
18178 HEAP32[14164 >> 2] = HEAP32[14228 >> 2];
18179 HEAP32[3542] = HEAP32[3558];
18180 HEAP32[14172 >> 2] = HEAP32[14236 >> 2];
18181 HEAP32[14176 >> 2] = HEAP32[14240 >> 2];
18182 HEAP32[14180 >> 2] = HEAP32[14244 >> 2];
18183 _memset(14184, 0, 16);
18184 }
18185 } while (0);
18186 HEAP32[i31 >> 2] = 3864;
18187 HEAPF32[i31 + 4 >> 2] = 1.0;
18188 i32 = i31 + 8 | 0;
18189 HEAP32[i32 >> 2] = HEAP32[i30 >> 2];
18190 HEAP32[i32 + 4 >> 2] = HEAP32[i30 + 4 >> 2];
18191 HEAP32[i32 + 8 >> 2] = HEAP32[i30 + 8 >> 2];
18192 i32 = HEAP32[i4 + 12 >> 2] | 0;
18193 HEAP32[i31 + 20 >> 2] = i32;
18194 HEAPF32[i31 + 24 >> 2] = 1.0;
18195 i4 = i31 + 28 | 0;
18196 i33 = HEAP32[i6 >> 2] | 0;
18197 i34 = HEAP32[i6 + 4 >> 2] | 0;
18198 HEAP32[i4 >> 2] = i33;
18199 HEAP32[i4 + 4 >> 2] = i34;
18200 i4 = i5 + 8 | 0;
18201 i5 = i31 + 36 | 0;
18202 i6 = HEAP32[i4 >> 2] | 0;
18203 i35 = HEAP32[i4 + 4 >> 2] | 0;
18204 HEAP32[i5 >> 2] = i6;
18205 HEAP32[i5 + 4 >> 2] = i35;
18206 HEAPF32[i31 + 44 >> 2] = 1.0;
18207 HEAPF32[i31 + 48 >> 2] = 0.0;
18208 HEAPF32[i31 + 52 >> 2] = 0.0;
18209 HEAPF32[i31 + 56 >> 2] = -56.0;
18210 HEAPF32[i31 + 60 >> 2] = 0.0;
18211 HEAPF32[i31 + 64 >> 2] = 0.0;
18212 i5 = i31 + 68 | 0;
18213 HEAP32[i5 >> 2] = HEAP32[3534];
18214 HEAP32[i5 + 4 >> 2] = HEAP32[3535];
18215 HEAP32[i5 + 8 >> 2] = HEAP32[3536];
18216 HEAP32[i5 + 12 >> 2] = HEAP32[3537];
18217 i5 = i31 + 84 | 0;
18218 HEAP32[i5 >> 2] = HEAP32[3538];
18219 HEAP32[i5 + 4 >> 2] = HEAP32[14156 >> 2];
18220 HEAP32[i5 + 8 >> 2] = HEAP32[14160 >> 2];
18221 HEAP32[i5 + 12 >> 2] = HEAP32[14164 >> 2];
18222 i5 = i31 + 100 | 0;
18223 HEAP32[i5 >> 2] = HEAP32[3542];
18224 HEAP32[i5 + 4 >> 2] = HEAP32[14172 >> 2];
18225 HEAP32[i5 + 8 >> 2] = HEAP32[14176 >> 2];
18226 HEAP32[i5 + 12 >> 2] = HEAP32[14180 >> 2];
18227 i5 = i31 + 116 | 0;
18228 HEAP32[i5 >> 2] = HEAP32[3546];
18229 HEAP32[i5 + 4 >> 2] = HEAP32[14188 >> 2];
18230 HEAP32[i5 + 8 >> 2] = HEAP32[14192 >> 2];
18231 HEAP32[i5 + 12 >> 2] = HEAP32[14196 >> 2];
18232 HEAPF32[i31 + 132 >> 2] = 1.0;
18233 i5 = i31 + 136 | 0;
18234 HEAP32[i5 >> 2] = HEAP32[i30 >> 2];
18235 HEAP32[i5 + 4 >> 2] = HEAP32[i30 + 4 >> 2];
18236 HEAP32[i5 + 8 >> 2] = HEAP32[i30 + 8 >> 2];
18237 HEAP32[i31 + 148 >> 2] = i32;
18238 HEAPF32[i31 + 152 >> 2] = 1.0;
18239 i32 = i31 + 156 | 0;
18240 HEAP32[i32 >> 2] = i33;
18241 HEAP32[i32 + 4 >> 2] = i34;
18242 i34 = i31 + 164 | 0;
18243 HEAP32[i34 >> 2] = i6;
18244 HEAP32[i34 + 4 >> 2] = i35;
18245 HEAPF32[i31 + 172 >> 2] = 1.0;
18246 HEAPF32[i31 + 176 >> 2] = 0.0;
18247 HEAPF32[i31 + 180 >> 2] = 0.0;
18248 HEAPF32[i31 + 184 >> 2] = -56.0;
18249 HEAPF32[i31 + 188 >> 2] = 0.0;
18250 HEAPF32[i31 + 192 >> 2] = 0.0;
18251 HEAP32[i31 + 196 >> 2] = 0;
18252 HEAPF32[i7 >> 2] = 0.0;
18253 HEAP32[i7 + 4 >> 2] = i31;
18254 HEAP32[i7 + 72 >> 2] = i17;
18255 _memset(i7 + 76 | 0, 0, 24);
18256 HEAPF32[i7 + 100 >> 2] = .5;
18257 HEAPF32[i7 + 104 >> 2] = 0.0;
18258 HEAPF32[i7 + 108 >> 2] = .800000011920929;
18259 HEAPF32[i7 + 112 >> 2] = 1.0;
18260 HEAP8[i7 + 116 | 0] = 0;
18261 HEAPF32[i7 + 120 >> 2] = .004999999888241291;
18262 HEAPF32[i7 + 124 >> 2] = .009999999776482582;
18263 HEAPF32[i7 + 128 >> 2] = .009999999776482582;
18264 HEAPF32[i7 + 132 >> 2] = .009999999776482582;
18265 HEAPF32[i7 + 8 >> 2] = 1.0;
18266 _memset(i7 + 12 | 0, 0, 16);
18267 HEAPF32[i7 + 28 >> 2] = 1.0;
18268 _memset(i7 + 32 | 0, 0, 16);
18269 HEAPF32[i7 + 48 >> 2] = 1.0;
18270 _memset(i7 + 52 | 0, 0, 20);
18271 i17 = __Z22btAlignedAllocInternalji(608, 16) | 0;
18272 __ZN11btRigidBodyC2ERKNS_27btRigidBodyConstructionInfoE(i17, i7);
18273 i7 = i22;
18274 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i7 >> 2] | 0) + 80 >> 2] & 127](i23, i17);
18275 i17 = __Z22btAlignedAllocInternalji(52, 16) | 0;
18276 __ZN21btConvexInternalShapeC2Ev(i17);
18277 HEAP32[i17 >> 2] = 4728;
18278 HEAP32[i17 + 4 >> 2] = 8;
18279 HEAPF32[i17 + 28 >> 2] = 1.0;
18280 HEAPF32[i17 + 44 >> 2] = 1.0;
18281 i31 = i17;
18282 i35 = __Z22btAlignedAllocInternalji(8, 16) | 0;
18283 i34 = i35;
18284 if ((i35 | 0) != 0) {
18285 HEAP32[i34 >> 2] = HEAP32[i24 >> 2];
18286 }
18287 if (!i29) {
18288 __Z21btAlignedFreeInternalPv(i3);
18289 }
18290 i3 = i35 + 4 | 0;
18291 if ((i3 | 0) != 0) {
18292 HEAP32[i3 >> 2] = i31;
18293 }
18294 i3 = i8 | 0;
18295 _memset(i3 | 0, 0, 16);
18296 _memset(i9 | 0, 0, 16);
18297 _memset(i11 | 0, 0, 16);
18298 FUNCTION_TABLE_vifi[HEAP32[(HEAP32[i17 >> 2] | 0) + 32 >> 2] & 15](i31, 1.0, i11);
18299 i17 = __Znwj(200) | 0;
18300 do {
18301 if ((HEAP8[14344] | 0) == 0) {
18302 if ((___cxa_guard_acquire(14344) | 0) == 0) {
18303 break;
18304 }
18305 do {
18306 if ((HEAP8[14352] | 0) == 0) {
18307 if ((___cxa_guard_acquire(14352) | 0) == 0) {
18308 break;
18309 }
18310 HEAPF32[3550] = 1.0;
18311 _memset(14204, 0, 16);
18312 HEAPF32[3555] = 1.0;
18313 _memset(14224, 0, 16);
18314 HEAPF32[3560] = 1.0;
18315 HEAPF32[3561] = 0.0;
18316 }
18317 } while (0);
18318 HEAP32[3534] = HEAP32[3550];
18319 HEAP32[3535] = HEAP32[3551];
18320 HEAP32[3536] = HEAP32[3552];
18321 HEAP32[3537] = HEAP32[3553];
18322 HEAP32[3538] = HEAP32[3554];
18323 HEAP32[14156 >> 2] = HEAP32[14220 >> 2];
18324 HEAP32[14160 >> 2] = HEAP32[14224 >> 2];
18325 HEAP32[14164 >> 2] = HEAP32[14228 >> 2];
18326 HEAP32[3542] = HEAP32[3558];
18327 HEAP32[14172 >> 2] = HEAP32[14236 >> 2];
18328 HEAP32[14176 >> 2] = HEAP32[14240 >> 2];
18329 HEAP32[14180 >> 2] = HEAP32[14244 >> 2];
18330 _memset(14184, 0, 16);
18331 }
18332 } while (0);
18333 HEAP32[i17 >> 2] = 3864;
18334 HEAPF32[i17 + 4 >> 2] = 1.0;
18335 i29 = i17 + 8 | 0;
18336 HEAP32[i29 >> 2] = HEAP32[i3 >> 2];
18337 HEAP32[i29 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
18338 HEAP32[i29 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
18339 i29 = HEAP32[i8 + 12 >> 2] | 0;
18340 HEAP32[i17 + 20 >> 2] = i29;
18341 HEAPF32[i17 + 24 >> 2] = 1.0;
18342 i8 = i17 + 28 | 0;
18343 i24 = HEAP32[i10 >> 2] | 0;
18344 i6 = HEAP32[i10 + 4 >> 2] | 0;
18345 HEAP32[i8 >> 2] = i24;
18346 HEAP32[i8 + 4 >> 2] = i6;
18347 i8 = i9 + 8 | 0;
18348 i9 = i17 + 36 | 0;
18349 i10 = HEAP32[i8 >> 2] | 0;
18350 i32 = HEAP32[i8 + 4 >> 2] | 0;
18351 HEAP32[i9 >> 2] = i10;
18352 HEAP32[i9 + 4 >> 2] = i32;
18353 HEAPF32[i17 + 44 >> 2] = 1.0;
18354 HEAPF32[i17 + 48 >> 2] = 0.0;
18355 HEAPF32[i17 + 52 >> 2] = 2.0;
18356 HEAPF32[i17 + 56 >> 2] = 10.0;
18357 HEAPF32[i17 + 60 >> 2] = 0.0;
18358 HEAPF32[i17 + 64 >> 2] = 0.0;
18359 i9 = i17 + 68 | 0;
18360 HEAP32[i9 >> 2] = HEAP32[3534];
18361 HEAP32[i9 + 4 >> 2] = HEAP32[3535];
18362 HEAP32[i9 + 8 >> 2] = HEAP32[3536];
18363 HEAP32[i9 + 12 >> 2] = HEAP32[3537];
18364 i9 = i17 + 84 | 0;
18365 HEAP32[i9 >> 2] = HEAP32[3538];
18366 HEAP32[i9 + 4 >> 2] = HEAP32[14156 >> 2];
18367 HEAP32[i9 + 8 >> 2] = HEAP32[14160 >> 2];
18368 HEAP32[i9 + 12 >> 2] = HEAP32[14164 >> 2];
18369 i9 = i17 + 100 | 0;
18370 HEAP32[i9 >> 2] = HEAP32[3542];
18371 HEAP32[i9 + 4 >> 2] = HEAP32[14172 >> 2];
18372 HEAP32[i9 + 8 >> 2] = HEAP32[14176 >> 2];
18373 HEAP32[i9 + 12 >> 2] = HEAP32[14180 >> 2];
18374 i9 = i17 + 116 | 0;
18375 HEAP32[i9 >> 2] = HEAP32[3546];
18376 HEAP32[i9 + 4 >> 2] = HEAP32[14188 >> 2];
18377 HEAP32[i9 + 8 >> 2] = HEAP32[14192 >> 2];
18378 HEAP32[i9 + 12 >> 2] = HEAP32[14196 >> 2];
18379 HEAPF32[i17 + 132 >> 2] = 1.0;
18380 i9 = i17 + 136 | 0;
18381 HEAP32[i9 >> 2] = HEAP32[i3 >> 2];
18382 HEAP32[i9 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
18383 HEAP32[i9 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
18384 HEAP32[i17 + 148 >> 2] = i29;
18385 HEAPF32[i17 + 152 >> 2] = 1.0;
18386 i29 = i17 + 156 | 0;
18387 HEAP32[i29 >> 2] = i24;
18388 HEAP32[i29 + 4 >> 2] = i6;
18389 i6 = i17 + 164 | 0;
18390 HEAP32[i6 >> 2] = i10;
18391 HEAP32[i6 + 4 >> 2] = i32;
18392 HEAPF32[i17 + 172 >> 2] = 1.0;
18393 HEAPF32[i17 + 176 >> 2] = 0.0;
18394 HEAPF32[i17 + 180 >> 2] = 2.0;
18395 HEAPF32[i17 + 184 >> 2] = 10.0;
18396 HEAPF32[i17 + 188 >> 2] = 0.0;
18397 HEAPF32[i17 + 192 >> 2] = 0.0;
18398 HEAP32[i17 + 196 >> 2] = 0;
18399 HEAPF32[i12 >> 2] = 1.0;
18400 HEAP32[i12 + 4 >> 2] = i17;
18401 HEAP32[i12 + 72 >> 2] = i31;
18402 i31 = i12 + 76 | 0;
18403 i17 = i11;
18404 HEAP32[i31 >> 2] = HEAP32[i17 >> 2];
18405 HEAP32[i31 + 4 >> 2] = HEAP32[i17 + 4 >> 2];
18406 HEAP32[i31 + 8 >> 2] = HEAP32[i17 + 8 >> 2];
18407 HEAP32[i31 + 12 >> 2] = HEAP32[i17 + 12 >> 2];
18408 HEAPF32[i12 + 92 >> 2] = 0.0;
18409 HEAPF32[i12 + 96 >> 2] = 0.0;
18410 HEAPF32[i12 + 100 >> 2] = .5;
18411 HEAPF32[i12 + 104 >> 2] = 0.0;
18412 HEAPF32[i12 + 108 >> 2] = .800000011920929;
18413 HEAPF32[i12 + 112 >> 2] = 1.0;
18414 HEAP8[i12 + 116 | 0] = 0;
18415 HEAPF32[i12 + 120 >> 2] = .004999999888241291;
18416 HEAPF32[i12 + 124 >> 2] = .009999999776482582;
18417 HEAPF32[i12 + 128 >> 2] = .009999999776482582;
18418 HEAPF32[i12 + 132 >> 2] = .009999999776482582;
18419 HEAPF32[i12 + 8 >> 2] = 1.0;
18420 _memset(i12 + 12 | 0, 0, 16);
18421 HEAPF32[i12 + 28 >> 2] = 1.0;
18422 _memset(i12 + 32 | 0, 0, 16);
18423 HEAPF32[i12 + 48 >> 2] = 1.0;
18424 _memset(i12 + 52 | 0, 0, 20);
18425 i17 = __Z22btAlignedAllocInternalji(608, 16) | 0;
18426 __ZN11btRigidBodyC2ERKNS_27btRigidBodyConstructionInfoE(i17, i12);
18427 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i7 >> 2] | 0) + 80 >> 2] & 127](i23, i17);
18428 i17 = i22;
18429 i7 = i22 + 8 | 0;
18430 i12 = i22 + 16 | 0;
18431 i31 = i13 + 48 | 0;
18432 i11 = i13 + 52 | 0;
18433 i32 = i13 + 56 | 0;
18434 i6 = 0;
18435 do {
18436 FUNCTION_TABLE_iifif[HEAP32[(HEAP32[i17 >> 2] | 0) + 48 >> 2] & 3](i23, .01666666753590107, 10, .01666666753590107) | 0;
18437 i10 = HEAP32[i7 >> 2] | 0;
18438 if ((i10 | 0) > 0) {
18439 i29 = i10;
18440 do {
18441 i29 = i29 - 1 | 0;
18442 i10 = HEAP32[(HEAP32[i12 >> 2] | 0) + (i29 << 2) >> 2] | 0;
18443 do {
18444 if (!((HEAP32[i10 + 232 >> 2] & 2 | 0) == 0 | (i10 | 0) == 0)) {
18445 i24 = HEAP32[i10 + 472 >> 2] | 0;
18446 if ((i24 | 0) == 0) {
18447 break;
18448 }
18449 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i24 >> 2] | 0) + 8 >> 2] & 127](i24, i13);
18450 d26 = +HEAPF32[i31 >> 2];
18451 d28 = +HEAPF32[i11 >> 2];
18452 d25 = +HEAPF32[i32 >> 2];
18453 _printf(1128, (i24 = STACKTOP, STACKTOP = STACKTOP + 24 | 0, HEAPF64[i24 >> 3] = d26, HEAPF64[i24 + 8 >> 3] = d28, HEAPF64[i24 + 16 >> 3] = d25, i24) | 0) | 0;
18454 STACKTOP = i24;
18455 }
18456 } while (0);
18457 } while ((i29 | 0) > 0);
18458 }
18459 i6 = i6 + 1 | 0;
18460 } while ((i6 | 0) < 135);
18461 i6 = HEAP32[i7 >> 2] | 0;
18462 if ((i6 | 0) > 0) {
18463 i7 = i22;
18464 i32 = i6;
18465 do {
18466 i32 = i32 - 1 | 0;
18467 i6 = HEAP32[(HEAP32[i12 >> 2] | 0) + (i32 << 2) >> 2] | 0;
18468 i11 = (i6 | 0) == 0;
18469 do {
18470 if (!((HEAP32[i6 + 232 >> 2] & 2 | 0) == 0 | i11)) {
18471 i31 = HEAP32[i6 + 472 >> 2] | 0;
18472 if ((i31 | 0) == 0) {
18473 break;
18474 }
18475 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i31 >> 2] | 0) + 4 >> 2] & 511](i31);
18476 }
18477 } while (0);
18478 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i7 >> 2] | 0) + 36 >> 2] & 127](i23, i6);
18479 if (!i11) {
18480 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] & 511](i6);
18481 }
18482 } while ((i32 | 0) > 0);
18483 }
18484 i32 = HEAP32[i34 >> 2] | 0;
18485 HEAP32[i34 >> 2] = 0;
18486 if ((i32 | 0) != 0) {
18487 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i32 >> 2] | 0) + 4 >> 2] & 511](i32);
18488 }
18489 i32 = i35 + 4 | 0;
18490 i34 = HEAP32[i32 >> 2] | 0;
18491 HEAP32[i32 >> 2] = 0;
18492 if ((i34 | 0) != 0) {
18493 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i34 >> 2] | 0) + 4 >> 2] & 511](i34);
18494 }
18495 if ((i22 | 0) != 0) {
18496 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i22 >> 2] | 0) + 4 >> 2] & 511](i23);
18497 }
18498 if ((i20 | 0) != 0) {
18499 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i20 >> 2] | 0) + 4 >> 2] & 511](i21);
18500 }
18501 if ((i18 | 0) != 0) {
18502 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i18 >> 2] | 0) + 4 >> 2] & 511](i19);
18503 }
18504 if ((i1 | 0) != 0) {
18505 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i1 >> 2] | 0) + 4 >> 2] & 511](i16);
18506 }
18507 if ((i14 | 0) != 0) {
18508 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i14 >> 2] | 0) + 4 >> 2] & 511](i15);
18509 }
18510 if ((i35 | 0) == 0) {
18511 STACKTOP = i2;
18512 return 0;
18513 }
18514 __Z21btAlignedFreeInternalPv(i35);
18515 STACKTOP = i2;
18516 return 0;
18517 }
18518 function __ZN23btPolyhedralConvexShape28initializePolyhedralFeaturesEv(i1) {
18519 i1 = i1 | 0;
18520 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, i45 = 0, d46 = 0.0, d47 = 0.0, d48 = 0.0, d49 = 0.0, i50 = 0, i51 = 0, d52 = 0.0, i53 = 0, i54 = 0;
18521 i2 = STACKTOP;
18522 STACKTOP = STACKTOP + 248 | 0;
18523 i3 = i2 + 16 | 0;
18524 i4 = i2 + 80 | 0;
18525 i5 = i2 + 96 | 0;
18526 i6 = i2 + 152 | 0;
18527 i7 = i2 + 168 | 0;
18528 i8 = i2 + 216 | 0;
18529 i9 = i2 + 232 | 0;
18530 i10 = i1 + 52 | 0;
18531 i11 = HEAP32[i10 >> 2] | 0;
18532 if ((i11 | 0) != 0) {
18533 __Z21btAlignedFreeInternalPv(i11);
18534 }
18535 i11 = __Z22btAlignedAllocInternalji(80, 16) | 0;
18536 if ((i11 | 0) == 0) {
18537 i12 = 0;
18538 } else {
18539 i13 = i11;
18540 __ZN18btConvexPolyhedronC2Ev(i13);
18541 i12 = i13;
18542 }
18543 HEAP32[i10 >> 2] = i12;
18544 i12 = i1;
18545 i13 = i1;
18546 i11 = i2 | 0;
18547 i14 = 0;
18548 i15 = 0;
18549 i16 = 0;
18550 while (1) {
18551 if ((i14 | 0) >= (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i12 >> 2] | 0) + 88 >> 2] & 127](i1) | 0)) {
18552 break;
18553 }
18554 do {
18555 if ((i14 | 0) == (i15 | 0)) {
18556 i17 = (i15 | 0) == 0 ? 1 : i15 << 1;
18557 if ((i15 | 0) >= (i17 | 0)) {
18558 i18 = i15;
18559 i19 = i16;
18560 break;
18561 }
18562 if ((i17 | 0) == 0) {
18563 i20 = 0;
18564 } else {
18565 i20 = __Z22btAlignedAllocInternalji(i17 << 4, 16) | 0;
18566 }
18567 if ((i15 | 0) > 0) {
18568 i21 = 0;
18569 do {
18570 i22 = i20 + (i21 << 4) | 0;
18571 if ((i22 | 0) != 0) {
18572 i23 = i22;
18573 i22 = i16 + (i21 << 4) | 0;
18574 HEAP32[i23 >> 2] = HEAP32[i22 >> 2];
18575 HEAP32[i23 + 4 >> 2] = HEAP32[i22 + 4 >> 2];
18576 HEAP32[i23 + 8 >> 2] = HEAP32[i22 + 8 >> 2];
18577 HEAP32[i23 + 12 >> 2] = HEAP32[i22 + 12 >> 2];
18578 }
18579 i21 = i21 + 1 | 0;
18580 } while ((i21 | 0) < (i15 | 0));
18581 }
18582 if ((i16 | 0) == 0) {
18583 i18 = i17;
18584 i19 = i20;
18585 break;
18586 }
18587 __Z21btAlignedFreeInternalPv(i16);
18588 i18 = i17;
18589 i19 = i20;
18590 } else {
18591 i18 = i15;
18592 i19 = i16;
18593 }
18594 } while (0);
18595 i21 = i19 + (i14 << 4) | 0;
18596 if ((i21 | 0) != 0) {
18597 i22 = i21;
18598 HEAP32[i22 >> 2] = HEAP32[i11 >> 2];
18599 HEAP32[i22 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
18600 HEAP32[i22 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
18601 HEAP32[i22 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
18602 }
18603 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i13 >> 2] | 0) + 100 >> 2] & 127](i1, i14, i21);
18604 i14 = i14 + 1 | 0;
18605 i15 = i18;
18606 i16 = i19;
18607 }
18608 HEAP8[i3 + 16 | 0] = 1;
18609 i19 = i3 + 12 | 0;
18610 HEAP32[i19 >> 2] = 0;
18611 i18 = i3 + 4 | 0;
18612 HEAP32[i18 >> 2] = 0;
18613 HEAP32[i3 + 8 >> 2] = 0;
18614 HEAP8[i3 + 36 | 0] = 1;
18615 i15 = i3 + 32 | 0;
18616 HEAP32[i15 >> 2] = 0;
18617 HEAP32[i3 + 24 >> 2] = 0;
18618 HEAP32[i3 + 28 >> 2] = 0;
18619 HEAP8[i3 + 56 | 0] = 1;
18620 i13 = i3 + 52 | 0;
18621 HEAP32[i13 >> 2] = 0;
18622 i11 = i3 + 44 | 0;
18623 HEAP32[i11 >> 2] = 0;
18624 HEAP32[i3 + 48 >> 2] = 0;
18625 i20 = i16;
18626 +__ZN20btConvexHullComputer7computeEPKvbiiff(i3, i20, 0, 16, i14, 0.0, 0.0);
18627 i14 = HEAP32[i11 >> 2] | 0;
18628 i11 = (i14 | 0) > 0;
18629 if (i11) {
18630 i12 = __Z22btAlignedAllocInternalji(i14 << 4, 16) | 0;
18631 i21 = i4;
18632 i4 = 0;
18633 while (1) {
18634 i22 = i12 + (i4 << 4) | 0;
18635 if ((i22 | 0) != 0) {
18636 i23 = i22;
18637 HEAP32[i23 >> 2] = HEAP32[i21 >> 2];
18638 HEAP32[i23 + 4 >> 2] = HEAP32[i21 + 4 >> 2];
18639 HEAP32[i23 + 8 >> 2] = HEAP32[i21 + 8 >> 2];
18640 HEAP32[i23 + 12 >> 2] = HEAP32[i21 + 12 >> 2];
18641 }
18642 i23 = i4 + 1 | 0;
18643 if ((i23 | 0) < (i14 | 0)) {
18644 i4 = i23;
18645 } else {
18646 i24 = i12;
18647 break;
18648 }
18649 }
18650 } else {
18651 i24 = 0;
18652 }
18653 i12 = HEAP32[i10 >> 2] | 0;
18654 _memset(i5 | 0, 0, 56);
18655 i4 = i5 + 16 | 0;
18656 HEAP8[i4] = 1;
18657 i21 = i5 + 12 | 0;
18658 HEAP32[i21 >> 2] = 0;
18659 i23 = i5 + 4 | 0;
18660 HEAP32[i23 >> 2] = 0;
18661 i22 = i5 + 8 | 0;
18662 HEAP32[i22 >> 2] = 0;
18663 i25 = i5 + 36 | 0;
18664 HEAP8[i25] = 1;
18665 i26 = i5 + 32 | 0;
18666 HEAP32[i26 >> 2] = 0;
18667 i27 = i5 + 24 | 0;
18668 HEAP32[i27 >> 2] = 0;
18669 i28 = i5 + 28 | 0;
18670 HEAP32[i28 >> 2] = 0;
18671 __ZN20btAlignedObjectArrayI6btFaceE6resizeEiRKS0_(i12 + 24 | 0, i14, i5);
18672 i5 = HEAP32[i26 >> 2] | 0;
18673 if ((i5 | 0) != 0) {
18674 if ((HEAP8[i25] | 0) != 0) {
18675 __Z21btAlignedFreeInternalPv(i5);
18676 }
18677 HEAP32[i26 >> 2] = 0;
18678 }
18679 HEAP8[i25] = 1;
18680 HEAP32[i26 >> 2] = 0;
18681 HEAP32[i27 >> 2] = 0;
18682 HEAP32[i28 >> 2] = 0;
18683 i28 = HEAP32[i21 >> 2] | 0;
18684 if ((i28 | 0) != 0) {
18685 if ((HEAP8[i4] | 0) != 0) {
18686 __Z21btAlignedFreeInternalPv(i28);
18687 }
18688 HEAP32[i21 >> 2] = 0;
18689 }
18690 HEAP8[i4] = 1;
18691 HEAP32[i21 >> 2] = 0;
18692 HEAP32[i23 >> 2] = 0;
18693 HEAP32[i22 >> 2] = 0;
18694 i22 = HEAP32[i18 >> 2] | 0;
18695 i23 = HEAP32[i10 >> 2] | 0;
18696 i21 = i23 + 8 | 0;
18697 i4 = HEAP32[i21 >> 2] | 0;
18698 if ((i4 | 0) < (i22 | 0)) {
18699 i28 = i23 + 12 | 0;
18700 if ((HEAP32[i28 >> 2] | 0) < (i22 | 0)) {
18701 if ((i22 | 0) == 0) {
18702 i29 = 0;
18703 i30 = i4;
18704 } else {
18705 i27 = __Z22btAlignedAllocInternalji(i22 << 4, 16) | 0;
18706 i29 = i27;
18707 i30 = HEAP32[i21 >> 2] | 0;
18708 }
18709 i27 = i23 + 16 | 0;
18710 if ((i30 | 0) > 0) {
18711 i26 = 0;
18712 do {
18713 i25 = i29 + (i26 << 4) | 0;
18714 if ((i25 | 0) != 0) {
18715 i5 = i25;
18716 i25 = (HEAP32[i27 >> 2] | 0) + (i26 << 4) | 0;
18717 HEAP32[i5 >> 2] = HEAP32[i25 >> 2];
18718 HEAP32[i5 + 4 >> 2] = HEAP32[i25 + 4 >> 2];
18719 HEAP32[i5 + 8 >> 2] = HEAP32[i25 + 8 >> 2];
18720 HEAP32[i5 + 12 >> 2] = HEAP32[i25 + 12 >> 2];
18721 }
18722 i26 = i26 + 1 | 0;
18723 } while ((i26 | 0) < (i30 | 0));
18724 }
18725 i30 = HEAP32[i27 >> 2] | 0;
18726 i26 = i23 + 20 | 0;
18727 if ((i30 | 0) != 0) {
18728 if ((HEAP8[i26] | 0) != 0) {
18729 __Z21btAlignedFreeInternalPv(i30);
18730 }
18731 HEAP32[i27 >> 2] = 0;
18732 }
18733 HEAP8[i26] = 1;
18734 HEAP32[i27 >> 2] = i29;
18735 HEAP32[i28 >> 2] = i22;
18736 i31 = i27;
18737 } else {
18738 i31 = i23 + 16 | 0;
18739 }
18740 i23 = i6;
18741 i6 = i4;
18742 do {
18743 i4 = (HEAP32[i31 >> 2] | 0) + (i6 << 4) | 0;
18744 if ((i4 | 0) != 0) {
18745 i27 = i4;
18746 HEAP32[i27 >> 2] = HEAP32[i23 >> 2];
18747 HEAP32[i27 + 4 >> 2] = HEAP32[i23 + 4 >> 2];
18748 HEAP32[i27 + 8 >> 2] = HEAP32[i23 + 8 >> 2];
18749 HEAP32[i27 + 12 >> 2] = HEAP32[i23 + 12 >> 2];
18750 }
18751 i6 = i6 + 1 | 0;
18752 } while ((i6 | 0) < (i22 | 0));
18753 }
18754 HEAP32[i21 >> 2] = i22;
18755 if ((i22 | 0) > 0) {
18756 i21 = 0;
18757 do {
18758 i6 = (HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] | 0) + (i21 << 4) | 0;
18759 i23 = (HEAP32[i19 >> 2] | 0) + (i21 << 4) | 0;
18760 HEAP32[i6 >> 2] = HEAP32[i23 >> 2];
18761 HEAP32[i6 + 4 >> 2] = HEAP32[i23 + 4 >> 2];
18762 HEAP32[i6 + 8 >> 2] = HEAP32[i23 + 8 >> 2];
18763 HEAP32[i6 + 12 >> 2] = HEAP32[i23 + 12 >> 2];
18764 i21 = i21 + 1 | 0;
18765 } while ((i21 | 0) < (i22 | 0));
18766 }
18767 if (i11) {
18768 i11 = i7 + 4 | 0;
18769 i22 = i7 + 24 | 0;
18770 i21 = i7 + 8 | 0;
18771 i23 = i7 + 20 | 0;
18772 i6 = i7 + 16 | 0;
18773 i31 = i7 | 0;
18774 i27 = 0;
18775 while (1) {
18776 i4 = (HEAP32[i15 >> 2] | 0) + ((HEAP32[(HEAP32[i13 >> 2] | 0) + (i27 << 2) >> 2] | 0) * 12 | 0) | 0;
18777 i28 = i4;
18778 i29 = 0;
18779 while (1) {
18780 i26 = i28 + 4 | 0;
18781 i30 = HEAP32[i28 + ((HEAP32[i26 >> 2] | 0) * 12 | 0) + 8 >> 2] | 0;
18782 i25 = HEAP32[(HEAP32[i10 >> 2] | 0) + 36 >> 2] | 0;
18783 i5 = i25 + (i27 * 56 | 0) + 4 | 0;
18784 i12 = HEAP32[i5 >> 2] | 0;
18785 i32 = i25 + (i27 * 56 | 0) + 8 | 0;
18786 do {
18787 if ((i12 | 0) == (HEAP32[i32 >> 2] | 0)) {
18788 i33 = (i12 | 0) == 0 ? 1 : i12 << 1;
18789 if ((i12 | 0) >= (i33 | 0)) {
18790 i34 = i12;
18791 break;
18792 }
18793 if ((i33 | 0) == 0) {
18794 i35 = 0;
18795 i36 = i12;
18796 } else {
18797 i37 = __Z22btAlignedAllocInternalji(i33 << 2, 16) | 0;
18798 i35 = i37;
18799 i36 = HEAP32[i5 >> 2] | 0;
18800 }
18801 i37 = i25 + (i27 * 56 | 0) + 12 | 0;
18802 if ((i36 | 0) > 0) {
18803 i38 = 0;
18804 do {
18805 i39 = i35 + (i38 << 2) | 0;
18806 if ((i39 | 0) != 0) {
18807 HEAP32[i39 >> 2] = HEAP32[(HEAP32[i37 >> 2] | 0) + (i38 << 2) >> 2];
18808 }
18809 i38 = i38 + 1 | 0;
18810 } while ((i38 | 0) < (i36 | 0));
18811 }
18812 i38 = HEAP32[i37 >> 2] | 0;
18813 i39 = i25 + (i27 * 56 | 0) + 16 | 0;
18814 if ((i38 | 0) != 0) {
18815 if ((HEAP8[i39] | 0) != 0) {
18816 __Z21btAlignedFreeInternalPv(i38);
18817 }
18818 HEAP32[i37 >> 2] = 0;
18819 }
18820 HEAP8[i39] = 1;
18821 HEAP32[i37 >> 2] = i35;
18822 HEAP32[i32 >> 2] = i33;
18823 i34 = HEAP32[i5 >> 2] | 0;
18824 } else {
18825 i34 = i12;
18826 }
18827 } while (0);
18828 i12 = (HEAP32[i25 + (i27 * 56 | 0) + 12 >> 2] | 0) + (i34 << 2) | 0;
18829 if ((i12 | 0) == 0) {
18830 i40 = i34;
18831 } else {
18832 HEAP32[i12 >> 2] = i30;
18833 i40 = HEAP32[i5 >> 2] | 0;
18834 }
18835 HEAP32[i5 >> 2] = i40 + 1;
18836 i12 = HEAP32[i28 + 8 >> 2] | 0;
18837 i32 = HEAP32[i19 >> 2] | 0;
18838 d41 = +HEAPF32[i32 + (i12 << 4) >> 2] - +HEAPF32[i32 + (i30 << 4) >> 2];
18839 d42 = +HEAPF32[i32 + (i12 << 4) + 4 >> 2] - +HEAPF32[i32 + (i30 << 4) + 4 >> 2];
18840 d43 = +HEAPF32[i32 + (i12 << 4) + 8 >> 2] - +HEAPF32[i32 + (i30 << 4) + 8 >> 2];
18841 d44 = 1.0 / +Math_sqrt(+(d41 * d41 + d42 * d42 + d43 * d43));
18842 if ((i29 | 0) < 2) {
18843 HEAPF32[i7 + (i29 << 4) >> 2] = d41 * d44;
18844 HEAPF32[i7 + (i29 << 4) + 4 >> 2] = d42 * d44;
18845 HEAPF32[i7 + (i29 << 4) + 8 >> 2] = d43 * d44;
18846 HEAPF32[i7 + (i29 << 4) + 12 >> 2] = 0.0;
18847 i45 = i29 + 1 | 0;
18848 } else {
18849 i45 = i29;
18850 }
18851 i32 = HEAP32[i26 >> 2] | 0;
18852 i12 = i28 + (((HEAP32[i28 + (i32 * 12 | 0) >> 2] | 0) + i32 | 0) * 12 | 0) | 0;
18853 if ((i12 | 0) == (i4 | 0)) {
18854 break;
18855 } else {
18856 i28 = i12;
18857 i29 = i45;
18858 }
18859 }
18860 i29 = i24 + (i27 << 4) | 0;
18861 if ((i45 | 0) == 2) {
18862 d44 = +HEAPF32[i11 >> 2];
18863 d43 = +HEAPF32[i22 >> 2];
18864 d42 = +HEAPF32[i21 >> 2];
18865 d41 = +HEAPF32[i23 >> 2];
18866 d46 = d44 * d43 - d42 * d41;
18867 d47 = +HEAPF32[i6 >> 2];
18868 d48 = +HEAPF32[i31 >> 2];
18869 d49 = d42 * d47 - d43 * d48;
18870 d43 = d41 * d48 - d44 * d47;
18871 i28 = i24 + (i27 << 4) + 4 | 0;
18872 i4 = i24 + (i27 << 4) + 8 | 0;
18873 HEAPF32[i24 + (i27 << 4) + 12 >> 2] = 0.0;
18874 d47 = 1.0 / +Math_sqrt(+(d43 * d43 + (d46 * d46 + d49 * d49)));
18875 d44 = d46 * d47;
18876 HEAPF32[i29 >> 2] = d44;
18877 HEAPF32[i28 >> 2] = d49 * d47;
18878 HEAPF32[i4 >> 2] = d43 * d47;
18879 i12 = HEAP32[i10 >> 2] | 0;
18880 i32 = HEAP32[i12 + 36 >> 2] | 0;
18881 HEAPF32[i32 + (i27 * 56 | 0) + 40 >> 2] = -0.0 - d44;
18882 HEAPF32[i32 + (i27 * 56 | 0) + 44 >> 2] = -0.0 - +HEAPF32[i28 >> 2];
18883 HEAPF32[i32 + (i27 * 56 | 0) + 48 >> 2] = -0.0 - +HEAPF32[i4 >> 2];
18884 HEAPF32[i32 + (i27 * 56 | 0) + 52 >> 2] = 1.0000000150474662e+30;
18885 i50 = i12;
18886 i51 = i32;
18887 } else {
18888 _memset(i29 | 0, 0, 16);
18889 i32 = HEAP32[i10 >> 2] | 0;
18890 i50 = i32;
18891 i51 = HEAP32[i32 + 36 >> 2] | 0;
18892 }
18893 i32 = HEAP32[i51 + (i27 * 56 | 0) + 4 >> 2] | 0;
18894 if ((i32 | 0) > 0) {
18895 d44 = +HEAPF32[i29 >> 2];
18896 d47 = +HEAPF32[i24 + (i27 << 4) + 4 >> 2];
18897 d43 = +HEAPF32[i24 + (i27 << 4) + 8 >> 2];
18898 i29 = HEAP32[i51 + (i27 * 56 | 0) + 12 >> 2] | 0;
18899 i12 = HEAP32[i50 + 16 >> 2] | 0;
18900 d49 = 1.0000000150474662e+30;
18901 i4 = 0;
18902 while (1) {
18903 i28 = HEAP32[i29 + (i4 << 2) >> 2] | 0;
18904 d46 = d44 * +HEAPF32[i12 + (i28 << 4) >> 2] + d47 * +HEAPF32[i12 + (i28 << 4) + 4 >> 2] + d43 * +HEAPF32[i12 + (i28 << 4) + 8 >> 2];
18905 d48 = d49 > d46 ? d46 : d49;
18906 i28 = i4 + 1 | 0;
18907 if ((i28 | 0) < (i32 | 0)) {
18908 d49 = d48;
18909 i4 = i28;
18910 } else {
18911 d52 = d48;
18912 break;
18913 }
18914 }
18915 } else {
18916 d52 = 1.0000000150474662e+30;
18917 }
18918 HEAPF32[i51 + (i27 * 56 | 0) + 52 >> 2] = d52;
18919 i4 = i27 + 1 | 0;
18920 if ((i4 | 0) < (i14 | 0)) {
18921 i27 = i4;
18922 } else {
18923 i53 = i50;
18924 break;
18925 }
18926 }
18927 } else {
18928 i53 = HEAP32[i10 >> 2] | 0;
18929 }
18930 i50 = HEAP32[i53 + 28 >> 2] | 0;
18931 do {
18932 if ((i50 | 0) == 0) {
18933 i54 = i53;
18934 } else {
18935 if (!((HEAP32[i18 >> 2] | 0) != 0 & (i50 | 0) > 0)) {
18936 i54 = i53;
18937 break;
18938 }
18939 i27 = i1;
18940 i14 = i9 | 0;
18941 i51 = i9 + 4 | 0;
18942 i31 = i9 + 8 | 0;
18943 i6 = i9 + 12 | 0;
18944 i23 = i1 | 0;
18945 i21 = i8 | 0;
18946 i22 = i8 + 4 | 0;
18947 i11 = i8 + 8 | 0;
18948 i45 = 0;
18949 i7 = i53;
18950 while (1) {
18951 i19 = HEAP32[i7 + 36 >> 2] | 0;
18952 d52 = +HEAPF32[i19 + (i45 * 56 | 0) + 40 >> 2];
18953 d49 = +HEAPF32[i19 + (i45 * 56 | 0) + 44 >> 2];
18954 d43 = +HEAPF32[i19 + (i45 * 56 | 0) + 48 >> 2];
18955 d47 = +HEAPF32[i19 + (i45 * 56 | 0) + 52 >> 2];
18956 i19 = HEAP32[(HEAP32[i27 >> 2] | 0) + 60 >> 2] | 0;
18957 HEAPF32[i14 >> 2] = -0.0 - d52;
18958 HEAPF32[i51 >> 2] = -0.0 - d49;
18959 HEAPF32[i31 >> 2] = -0.0 - d43;
18960 HEAPF32[i6 >> 2] = 0.0;
18961 FUNCTION_TABLE_viii[i19 & 127](i8, i23, i9);
18962 i19 = HEAP32[i10 >> 2] | 0;
18963 do {
18964 if (d52 * +HEAPF32[i21 >> 2] + d49 * +HEAPF32[i22 >> 2] + d43 * +HEAPF32[i11 >> 2] < d47) {
18965 i40 = HEAP32[i19 + 36 >> 2] | 0;
18966 i34 = i40 + (i45 * 56 | 0) + 40 | 0;
18967 HEAPF32[i34 >> 2] = +HEAPF32[i34 >> 2] * -1.0;
18968 i34 = i40 + (i45 * 56 | 0) + 44 | 0;
18969 HEAPF32[i34 >> 2] = +HEAPF32[i34 >> 2] * -1.0;
18970 i34 = i40 + (i45 * 56 | 0) + 48 | 0;
18971 HEAPF32[i34 >> 2] = +HEAPF32[i34 >> 2] * -1.0;
18972 i34 = i40 + (i45 * 56 | 0) + 52 | 0;
18973 HEAPF32[i34 >> 2] = +HEAPF32[i34 >> 2] * -1.0;
18974 i34 = HEAP32[i40 + (i45 * 56 | 0) + 4 >> 2] | 0;
18975 i35 = (i34 | 0) / 2 | 0;
18976 if ((i34 | 0) <= 1) {
18977 break;
18978 }
18979 i36 = HEAP32[i40 + (i45 * 56 | 0) + 12 >> 2] | 0;
18980 i40 = i34 - 1 | 0;
18981 i34 = 0;
18982 do {
18983 i13 = i36 + (i34 << 2) | 0;
18984 i15 = i36 + (i40 - i34 << 2) | 0;
18985 i4 = HEAP32[i13 >> 2] | 0;
18986 HEAP32[i13 >> 2] = HEAP32[i15 >> 2];
18987 HEAP32[i15 >> 2] = i4;
18988 i34 = i34 + 1 | 0;
18989 } while ((i34 | 0) < (i35 | 0));
18990 }
18991 } while (0);
18992 i26 = i45 + 1 | 0;
18993 if ((i26 | 0) < (HEAP32[i19 + 28 >> 2] | 0)) {
18994 i45 = i26;
18995 i7 = i19;
18996 } else {
18997 i54 = i19;
18998 break;
18999 }
19000 }
19001 }
19002 } while (0);
19003 __ZN18btConvexPolyhedron10initializeEv(i54);
19004 if ((i24 | 0) != 0) {
19005 __Z21btAlignedFreeInternalPv(i24);
19006 }
19007 __ZN20btConvexHullComputerD2Ev(i3);
19008 if ((i16 | 0) == 0) {
19009 STACKTOP = i2;
19010 return 1;
19011 }
19012 __Z21btAlignedFreeInternalPv(i20);
19013 STACKTOP = i2;
19014 return 1;
19015 }
19016 function __ZN18btConvexPolyhedron10initializeEv(i1) {
19017 i1 = i1 | 0;
19018 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, d68 = 0.0, d69 = 0.0, d70 = 0.0, d71 = 0.0, d72 = 0.0, d73 = 0.0, d74 = 0.0, d75 = 0.0, d76 = 0.0, d77 = 0.0, d78 = 0.0, d79 = 0.0, d80 = 0.0, d81 = 0.0, d82 = 0.0, d83 = 0.0, d84 = 0.0;
19019 i2 = STACKTOP;
19020 STACKTOP = STACKTOP + 96 | 0;
19021 i3 = i2 | 0;
19022 i4 = i2 + 80 | 0;
19023 i5 = i2 + 88 | 0;
19024 HEAP8[i3 + 16 | 0] = 1;
19025 i6 = i3 + 12 | 0;
19026 HEAP32[i6 >> 2] = 0;
19027 i7 = i3 + 4 | 0;
19028 HEAP32[i7 >> 2] = 0;
19029 HEAP32[i3 + 8 >> 2] = 0;
19030 HEAP8[i3 + 36 | 0] = 1;
19031 i8 = i3 + 32 | 0;
19032 HEAP32[i8 >> 2] = 0;
19033 HEAP32[i3 + 24 >> 2] = 0;
19034 HEAP32[i3 + 28 >> 2] = 0;
19035 HEAP8[i3 + 56 | 0] = 1;
19036 i9 = i3 + 52 | 0;
19037 HEAP32[i9 >> 2] = 0;
19038 HEAP32[i3 + 44 >> 2] = 0;
19039 i10 = i3 + 48 | 0;
19040 HEAP32[i10 >> 2] = 0;
19041 HEAP8[i3 + 76 | 0] = 1;
19042 i11 = i3 + 72 | 0;
19043 HEAP32[i11 >> 2] = 0;
19044 HEAP32[i3 + 64 >> 2] = 0;
19045 HEAP32[i3 + 68 >> 2] = 0;
19046 i12 = i1 + 64 | 0;
19047 i13 = i1 + 68 | 0;
19048 i14 = i1 + 72 | 0;
19049 i15 = i1 + 28 | 0;
19050 _memset(i12 | 0, 0, 16);
19051 i16 = HEAP32[i15 >> 2] | 0;
19052 if ((i16 | 0) <= 0) {
19053 d17 = 0.0;
19054 d18 = 1.0 / d17;
19055 d19 = +HEAPF32[i12 >> 2];
19056 d20 = d18 * d19;
19057 HEAPF32[i12 >> 2] = d20;
19058 d21 = +HEAPF32[i13 >> 2];
19059 d22 = d18 * d21;
19060 HEAPF32[i13 >> 2] = d22;
19061 d23 = +HEAPF32[i14 >> 2];
19062 d24 = d18 * d23;
19063 HEAPF32[i14 >> 2] = d24;
19064 __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeED2Ev(i3);
19065 STACKTOP = i2;
19066 return;
19067 }
19068 i25 = i1 + 36 | 0;
19069 i26 = i4 | 0;
19070 i27 = i4 + 2 | 0;
19071 i28 = i1 + 16 | 0;
19072 i29 = i1 + 48 | 0;
19073 i30 = i5 | 0;
19074 i31 = i5 + 2 | 0;
19075 i32 = i1 + 52 | 0;
19076 i33 = i1 + 56 | 0;
19077 i34 = i1 + 60 | 0;
19078 i1 = 0;
19079 i35 = i16;
19080 while (1) {
19081 i16 = HEAP32[i25 >> 2] | 0;
19082 i36 = HEAP32[i16 + (i1 * 56 | 0) + 4 >> 2] | 0;
19083 if ((i36 | 0) > 0) {
19084 i37 = i1 & 65535;
19085 i38 = 0;
19086 i39 = i16;
19087 while (1) {
19088 i16 = i38 + 1 | 0;
19089 i40 = HEAP32[i39 + (i1 * 56 | 0) + 12 >> 2] | 0;
19090 i41 = HEAP32[i40 + (i38 << 2) >> 2] & 65535;
19091 i42 = HEAP32[i40 + (((i16 | 0) == (i36 | 0) ? 0 : i16) << 2) >> 2] & 65535;
19092 HEAP16[i26 >> 1] = i41;
19093 HEAP16[i27 >> 1] = i42;
19094 if (i41 << 16 >> 16 < i42 << 16 >> 16) {
19095 HEAP16[i26 >> 1] = i42;
19096 HEAP16[i27 >> 1] = i41;
19097 i43 = i42;
19098 i44 = i41;
19099 } else {
19100 i43 = i41;
19101 i44 = i42;
19102 }
19103 i42 = i43 << 16 >> 16;
19104 i41 = ((i44 & 65535) << 16) + i42 & (HEAP32[i10 >> 2] | 0) - 1;
19105 L1973 : do {
19106 if (i41 >>> 0 < (HEAP32[i7 >> 2] | 0) >>> 0) {
19107 i40 = HEAP32[(HEAP32[i6 >> 2] | 0) + (i41 << 2) >> 2] | 0;
19108 if ((i40 | 0) == -1) {
19109 i45 = 0;
19110 break;
19111 }
19112 i46 = HEAP32[i11 >> 2] | 0;
19113 i47 = HEAP32[i8 >> 2] | 0;
19114 i48 = i40;
19115 while (1) {
19116 if (i43 << 16 >> 16 == (HEAP16[i46 + (i48 << 2) >> 1] | 0)) {
19117 if (i44 << 16 >> 16 == (HEAP16[i46 + (i48 << 2) + 2 >> 1] | 0)) {
19118 break;
19119 }
19120 }
19121 i40 = HEAP32[i47 + (i48 << 2) >> 2] | 0;
19122 if ((i40 | 0) == -1) {
19123 i45 = 0;
19124 break L1973;
19125 } else {
19126 i48 = i40;
19127 }
19128 }
19129 if ((i48 | 0) == -1) {
19130 i45 = 0;
19131 break;
19132 }
19133 i45 = (HEAP32[i9 >> 2] | 0) + (i48 << 2) | 0;
19134 } else {
19135 i45 = 0;
19136 }
19137 } while (0);
19138 i41 = i44 << 16 >> 16;
19139 i47 = HEAP32[i28 >> 2] | 0;
19140 d49 = +HEAPF32[i47 + (i41 << 4) >> 2] - +HEAPF32[i47 + (i42 << 4) >> 2];
19141 d50 = +HEAPF32[i47 + (i41 << 4) + 4 >> 2] - +HEAPF32[i47 + (i42 << 4) + 4 >> 2];
19142 d51 = +HEAPF32[i47 + (i41 << 4) + 8 >> 2] - +HEAPF32[i47 + (i42 << 4) + 8 >> 2];
19143 d52 = 1.0 / +Math_sqrt(+(d49 * d49 + d50 * d50 + d51 * d51));
19144 d53 = d49 * d52;
19145 d49 = d50 * d52;
19146 d50 = d51 * d52;
19147 i47 = HEAP32[i29 >> 2] | 0;
19148 L1984 : do {
19149 if ((i47 | 0) > 0) {
19150 i41 = HEAP32[i33 >> 2] | 0;
19151 i46 = 0;
19152 while (1) {
19153 d52 = +HEAPF32[i41 + (i46 << 4) >> 2];
19154 d51 = +HEAPF32[i41 + (i46 << 4) + 8 >> 2];
19155 d54 = d51 - d50;
19156 do {
19157 if (+Math_abs(+(d52 - d53)) <= 1.0e-6) {
19158 if (+Math_abs(+(+HEAPF32[i41 + (i46 << 4) + 4 >> 2] - d49)) > 1.0e-6) {
19159 break;
19160 }
19161 if (+Math_abs(+d54) <= 1.0e-6) {
19162 break L1984;
19163 }
19164 }
19165 } while (0);
19166 d54 = d50 + d51;
19167 do {
19168 if (+Math_abs(+(d53 + d52)) <= 1.0e-6) {
19169 if (+Math_abs(+(d49 + +HEAPF32[i41 + (i46 << 4) + 4 >> 2])) > 1.0e-6) {
19170 break;
19171 }
19172 if (+Math_abs(+d54) <= 1.0e-6) {
19173 break L1984;
19174 }
19175 }
19176 } while (0);
19177 i40 = i46 + 1 | 0;
19178 if ((i40 | 0) < (i47 | 0)) {
19179 i46 = i40;
19180 } else {
19181 i55 = 1714;
19182 break;
19183 }
19184 }
19185 } else {
19186 i55 = 1714;
19187 }
19188 } while (0);
19189 if ((i55 | 0) == 1714) {
19190 i55 = 0;
19191 do {
19192 if ((i47 | 0) == (HEAP32[i32 >> 2] | 0)) {
19193 i42 = (i47 | 0) == 0 ? 1 : i47 << 1;
19194 if ((i47 | 0) >= (i42 | 0)) {
19195 i56 = i47;
19196 break;
19197 }
19198 if ((i42 | 0) == 0) {
19199 i57 = 0;
19200 i58 = i47;
19201 } else {
19202 i46 = __Z22btAlignedAllocInternalji(i42 << 4, 16) | 0;
19203 i57 = i46;
19204 i58 = HEAP32[i29 >> 2] | 0;
19205 }
19206 if ((i58 | 0) > 0) {
19207 i46 = 0;
19208 do {
19209 i41 = i57 + (i46 << 4) | 0;
19210 if ((i41 | 0) != 0) {
19211 i48 = i41;
19212 i41 = (HEAP32[i33 >> 2] | 0) + (i46 << 4) | 0;
19213 HEAP32[i48 >> 2] = HEAP32[i41 >> 2];
19214 HEAP32[i48 + 4 >> 2] = HEAP32[i41 + 4 >> 2];
19215 HEAP32[i48 + 8 >> 2] = HEAP32[i41 + 8 >> 2];
19216 HEAP32[i48 + 12 >> 2] = HEAP32[i41 + 12 >> 2];
19217 }
19218 i46 = i46 + 1 | 0;
19219 } while ((i46 | 0) < (i58 | 0));
19220 }
19221 i46 = HEAP32[i33 >> 2] | 0;
19222 if ((i46 | 0) != 0) {
19223 if ((HEAP8[i34] | 0) != 0) {
19224 __Z21btAlignedFreeInternalPv(i46);
19225 }
19226 HEAP32[i33 >> 2] = 0;
19227 }
19228 HEAP8[i34] = 1;
19229 HEAP32[i33 >> 2] = i57;
19230 HEAP32[i32 >> 2] = i42;
19231 i56 = HEAP32[i29 >> 2] | 0;
19232 } else {
19233 i56 = i47;
19234 }
19235 } while (0);
19236 i47 = HEAP32[i33 >> 2] | 0;
19237 i46 = i47 + (i56 << 4) | 0;
19238 if ((i46 | 0) == 0) {
19239 i59 = i56;
19240 } else {
19241 HEAPF32[i46 >> 2] = d53;
19242 HEAPF32[i47 + (i56 << 4) + 4 >> 2] = d49;
19243 HEAPF32[i47 + (i56 << 4) + 8 >> 2] = d50;
19244 HEAPF32[i47 + (i56 << 4) + 12 >> 2] = 0.0;
19245 i59 = HEAP32[i29 >> 2] | 0;
19246 }
19247 HEAP32[i29 >> 2] = i59 + 1;
19248 }
19249 if ((i45 | 0) == 0) {
19250 HEAP16[i31 >> 1] = -1;
19251 HEAP16[i30 >> 1] = i37;
19252 __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeE6insertERKS0_RKS1_(i3, i4, i5);
19253 } else {
19254 HEAP16[i45 + 2 >> 1] = i37;
19255 }
19256 if ((i16 | 0) >= (i36 | 0)) {
19257 break;
19258 }
19259 i38 = i16;
19260 i39 = HEAP32[i25 >> 2] | 0;
19261 }
19262 i60 = HEAP32[i15 >> 2] | 0;
19263 } else {
19264 i60 = i35;
19265 }
19266 i39 = i1 + 1 | 0;
19267 if ((i39 | 0) < (i60 | 0)) {
19268 i1 = i39;
19269 i35 = i60;
19270 } else {
19271 break;
19272 }
19273 }
19274 if ((i60 | 0) <= 0) {
19275 d17 = 0.0;
19276 d18 = 1.0 / d17;
19277 d19 = +HEAPF32[i12 >> 2];
19278 d20 = d18 * d19;
19279 HEAPF32[i12 >> 2] = d20;
19280 d21 = +HEAPF32[i13 >> 2];
19281 d22 = d18 * d21;
19282 HEAPF32[i13 >> 2] = d22;
19283 d23 = +HEAPF32[i14 >> 2];
19284 d24 = d18 * d23;
19285 HEAPF32[i14 >> 2] = d24;
19286 __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeED2Ev(i3);
19287 STACKTOP = i2;
19288 return;
19289 }
19290 i60 = (HEAP32[i10 >> 2] | 0) - 1 | 0;
19291 i10 = HEAP32[i7 >> 2] | 0;
19292 i7 = HEAP32[i6 >> 2] | 0;
19293 i6 = HEAP32[i11 >> 2] | 0;
19294 i11 = HEAP32[i8 >> 2] | 0;
19295 i8 = HEAP32[i9 >> 2] | 0;
19296 i9 = 0;
19297 do {
19298 i35 = HEAP32[i25 >> 2] | 0;
19299 i1 = HEAP32[i35 + (i9 * 56 | 0) + 4 >> 2] | 0;
19300 i45 = i35 + (i9 * 56 | 0) + 24 | 0;
19301 i5 = HEAP32[i45 >> 2] | 0;
19302 if ((i5 | 0) < (i1 | 0)) {
19303 i4 = i35 + (i9 * 56 | 0) + 28 | 0;
19304 if ((HEAP32[i4 >> 2] | 0) < (i1 | 0)) {
19305 if ((i1 | 0) == 0) {
19306 i61 = 0;
19307 i62 = i5;
19308 } else {
19309 i30 = __Z22btAlignedAllocInternalji(i1 << 2, 16) | 0;
19310 i61 = i30;
19311 i62 = HEAP32[i45 >> 2] | 0;
19312 }
19313 i30 = i35 + (i9 * 56 | 0) + 32 | 0;
19314 if ((i62 | 0) > 0) {
19315 i31 = 0;
19316 do {
19317 i59 = i61 + (i31 << 2) | 0;
19318 if ((i59 | 0) != 0) {
19319 HEAP32[i59 >> 2] = HEAP32[(HEAP32[i30 >> 2] | 0) + (i31 << 2) >> 2];
19320 }
19321 i31 = i31 + 1 | 0;
19322 } while ((i31 | 0) < (i62 | 0));
19323 }
19324 i31 = HEAP32[i30 >> 2] | 0;
19325 i59 = i35 + (i9 * 56 | 0) + 36 | 0;
19326 if ((i31 | 0) != 0) {
19327 if ((HEAP8[i59] | 0) != 0) {
19328 __Z21btAlignedFreeInternalPv(i31);
19329 }
19330 HEAP32[i30 >> 2] = 0;
19331 }
19332 HEAP8[i59] = 1;
19333 HEAP32[i30 >> 2] = i61;
19334 HEAP32[i4 >> 2] = i1;
19335 i63 = i61;
19336 } else {
19337 i63 = HEAP32[i35 + (i9 * 56 | 0) + 32 >> 2] | 0;
19338 }
19339 i59 = i5;
19340 do {
19341 i31 = i63 + (i59 << 2) | 0;
19342 if ((i31 | 0) != 0) {
19343 HEAP32[i31 >> 2] = 0;
19344 }
19345 i59 = i59 + 1 | 0;
19346 } while ((i59 | 0) < (i1 | 0));
19347 }
19348 HEAP32[i45 >> 2] = i1;
19349 if ((i1 | 0) > 0) {
19350 i59 = HEAP32[i25 >> 2] | 0;
19351 i5 = HEAP32[i59 + (i9 * 56 | 0) + 12 >> 2] | 0;
19352 i35 = i59 + (i9 * 56 | 0) + 32 | 0;
19353 i59 = 0;
19354 while (1) {
19355 i4 = i59 + 1 | 0;
19356 i30 = HEAP32[i5 + (i59 << 2) >> 2] & 65535;
19357 i31 = HEAP32[i5 + (((i4 | 0) == (i1 | 0) ? 0 : i4) << 2) >> 2] & 65535;
19358 i29 = i30 << 16 >> 16 < i31 << 16 >> 16;
19359 i56 = i29 ? i30 : i31;
19360 i33 = i29 ? i31 : i30;
19361 i30 = ((i56 & 65535) << 16) + (i33 << 16 >> 16) & i60;
19362 L2069 : do {
19363 if (i30 >>> 0 < i10 >>> 0) {
19364 i31 = HEAP32[i7 + (i30 << 2) >> 2] | 0;
19365 if ((i31 | 0) == -1) {
19366 i64 = 0;
19367 break;
19368 } else {
19369 i65 = i31;
19370 }
19371 while (1) {
19372 if (i33 << 16 >> 16 == (HEAP16[i6 + (i65 << 2) >> 1] | 0)) {
19373 if (i56 << 16 >> 16 == (HEAP16[i6 + (i65 << 2) + 2 >> 1] | 0)) {
19374 break;
19375 }
19376 }
19377 i31 = HEAP32[i11 + (i65 << 2) >> 2] | 0;
19378 if ((i31 | 0) == -1) {
19379 i64 = 0;
19380 break L2069;
19381 } else {
19382 i65 = i31;
19383 }
19384 }
19385 if ((i65 | 0) == -1) {
19386 i64 = 0;
19387 break;
19388 }
19389 i64 = i8 + (i65 << 2) | 0;
19390 } else {
19391 i64 = 0;
19392 }
19393 } while (0);
19394 i56 = HEAP16[i64 >> 1] | 0;
19395 if ((i56 << 16 >> 16 | 0) == (i9 | 0)) {
19396 i66 = HEAP16[i64 + 2 >> 1] | 0;
19397 } else {
19398 i66 = i56;
19399 }
19400 HEAP32[(HEAP32[i35 >> 2] | 0) + (i59 << 2) >> 2] = i66 << 16 >> 16;
19401 if ((i4 | 0) < (i1 | 0)) {
19402 i59 = i4;
19403 } else {
19404 break;
19405 }
19406 }
19407 }
19408 i9 = i9 + 1 | 0;
19409 i67 = HEAP32[i15 >> 2] | 0;
19410 } while ((i9 | 0) < (i67 | 0));
19411 if ((i67 | 0) <= 0) {
19412 d17 = 0.0;
19413 d18 = 1.0 / d17;
19414 d19 = +HEAPF32[i12 >> 2];
19415 d20 = d18 * d19;
19416 HEAPF32[i12 >> 2] = d20;
19417 d21 = +HEAPF32[i13 >> 2];
19418 d22 = d18 * d21;
19419 HEAPF32[i13 >> 2] = d22;
19420 d23 = +HEAPF32[i14 >> 2];
19421 d24 = d18 * d23;
19422 HEAPF32[i14 >> 2] = d24;
19423 __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeED2Ev(i3);
19424 STACKTOP = i2;
19425 return;
19426 }
19427 i9 = HEAP32[i25 >> 2] | 0;
19428 i25 = HEAP32[i28 >> 2] | 0;
19429 d50 = 0.0;
19430 i28 = 0;
19431 while (1) {
19432 i15 = HEAP32[i9 + (i28 * 56 | 0) + 4 >> 2] | 0;
19433 i66 = i15 - 2 | 0;
19434 i64 = HEAP32[i9 + (i28 * 56 | 0) + 12 >> 2] | 0;
19435 i65 = HEAP32[i64 >> 2] | 0;
19436 if ((i66 | 0) < 1) {
19437 d68 = d50;
19438 } else {
19439 i8 = i25 + (i65 << 4) | 0;
19440 i11 = i25 + (i65 << 4) + 4 | 0;
19441 i6 = i25 + (i65 << 4) + 8 | 0;
19442 d49 = d50;
19443 i65 = 1;
19444 d53 = +HEAPF32[i12 >> 2];
19445 d54 = +HEAPF32[i13 >> 2];
19446 d52 = +HEAPF32[i14 >> 2];
19447 while (1) {
19448 i7 = i65 + 1 | 0;
19449 i10 = HEAP32[i64 + (i65 << 2) >> 2] | 0;
19450 i60 = HEAP32[i64 + (((i7 | 0) % (i15 | 0) | 0) << 2) >> 2] | 0;
19451 d51 = +HEAPF32[i8 >> 2];
19452 d69 = +HEAPF32[i25 + (i10 << 4) >> 2];
19453 d70 = d51 - d69;
19454 d71 = +HEAPF32[i11 >> 2];
19455 d72 = +HEAPF32[i25 + (i10 << 4) + 4 >> 2];
19456 d73 = d71 - d72;
19457 d74 = +HEAPF32[i6 >> 2];
19458 d75 = +HEAPF32[i25 + (i10 << 4) + 8 >> 2];
19459 d76 = d74 - d75;
19460 d77 = +HEAPF32[i25 + (i60 << 4) >> 2];
19461 d78 = d51 - d77;
19462 d79 = +HEAPF32[i25 + (i60 << 4) + 4 >> 2];
19463 d80 = d71 - d79;
19464 d81 = +HEAPF32[i25 + (i60 << 4) + 8 >> 2];
19465 d82 = d74 - d81;
19466 d83 = d73 * d82 - d76 * d80;
19467 d84 = d76 * d78 - d70 * d82;
19468 d82 = d70 * d80 - d73 * d78;
19469 d78 = +Math_sqrt(+(d82 * d82 + (d83 * d83 + d84 * d84))) * .5;
19470 d84 = d53 + (d51 + d69 + d77) * .3333333432674408 * d78;
19471 HEAPF32[i12 >> 2] = d84;
19472 d77 = d54 + (d71 + d72 + d79) * .3333333432674408 * d78;
19473 HEAPF32[i13 >> 2] = d77;
19474 d79 = d52 + d78 * (d74 + d75 + d81) * .3333333432674408;
19475 HEAPF32[i14 >> 2] = d79;
19476 d81 = d49 + d78;
19477 if ((i7 | 0) > (i66 | 0)) {
19478 d68 = d81;
19479 break;
19480 } else {
19481 d49 = d81;
19482 i65 = i7;
19483 d53 = d84;
19484 d54 = d77;
19485 d52 = d79;
19486 }
19487 }
19488 }
19489 i65 = i28 + 1 | 0;
19490 if ((i65 | 0) < (i67 | 0)) {
19491 d50 = d68;
19492 i28 = i65;
19493 } else {
19494 d17 = d68;
19495 break;
19496 }
19497 }
19498 d18 = 1.0 / d17;
19499 d19 = +HEAPF32[i12 >> 2];
19500 d20 = d18 * d19;
19501 HEAPF32[i12 >> 2] = d20;
19502 d21 = +HEAPF32[i13 >> 2];
19503 d22 = d18 * d21;
19504 HEAPF32[i13 >> 2] = d22;
19505 d23 = +HEAPF32[i14 >> 2];
19506 d24 = d18 * d23;
19507 HEAPF32[i14 >> 2] = d24;
19508 __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeED2Ev(i3);
19509 STACKTOP = i2;
19510 return;
19511 }
19512 function __ZN12gjkepa2_impl3EPA8EvaluateERNS_3GJKERK9btVector3(i1, i2, i3) {
19513 i1 = i1 | 0;
19514 i2 = i2 | 0;
19515 i3 = i3 | 0;
19516 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, i24 = 0, d25 = 0.0, d26 = 0.0, d27 = 0.0, i28 = 0, i29 = 0, d30 = 0.0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, d36 = 0.0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, d62 = 0.0, d63 = 0.0, d64 = 0.0, d65 = 0.0, d66 = 0.0, i67 = 0, d68 = 0.0, d69 = 0.0, d70 = 0.0, d71 = 0.0, d72 = 0.0, d73 = 0.0, d74 = 0.0, i75 = 0, d76 = 0.0, d77 = 0.0, d78 = 0.0;
19517 i4 = STACKTOP;
19518 STACKTOP = STACKTOP + 16 | 0;
19519 i5 = i4 | 0;
19520 i6 = HEAP32[i2 + 372 >> 2] | 0;
19521 do {
19522 if ((HEAP32[i6 + 32 >> 2] | 0) >>> 0 > 1) {
19523 if (!(__ZN12gjkepa2_impl3GJK13EncloseOriginEv(i2) | 0)) {
19524 break;
19525 }
19526 i7 = i1 + 9792 | 0;
19527 i8 = HEAP32[i7 >> 2] | 0;
19528 if ((i8 | 0) != 0) {
19529 i9 = i1 + 9796 | 0;
19530 i10 = i1 + 9800 | 0;
19531 i11 = i1 + 9804 | 0;
19532 i12 = i8;
19533 i8 = HEAP32[i9 >> 2] | 0;
19534 i13 = HEAP32[i11 >> 2] | 0;
19535 do {
19536 i14 = i12 + 52 | 0;
19537 i15 = HEAP32[i14 >> 2] | 0;
19538 i16 = i12 + 48 | 0;
19539 if ((i15 | 0) != 0) {
19540 HEAP32[i15 + 48 >> 2] = HEAP32[i16 >> 2];
19541 }
19542 i15 = HEAP32[i16 >> 2] | 0;
19543 if ((i15 | 0) != 0) {
19544 HEAP32[i15 + 52 >> 2] = HEAP32[i14 >> 2];
19545 }
19546 if ((HEAP32[i7 >> 2] | 0) == (i12 | 0)) {
19547 HEAP32[i7 >> 2] = HEAP32[i14 >> 2];
19548 }
19549 i8 = i8 - 1 | 0;
19550 HEAP32[i16 >> 2] = 0;
19551 HEAP32[i14 >> 2] = HEAP32[i10 >> 2];
19552 i14 = HEAP32[i10 >> 2] | 0;
19553 if ((i14 | 0) != 0) {
19554 HEAP32[i14 + 48 >> 2] = i12;
19555 }
19556 HEAP32[i10 >> 2] = i12;
19557 i13 = i13 + 1 | 0;
19558 i12 = HEAP32[i7 >> 2] | 0;
19559 } while ((i12 | 0) != 0);
19560 HEAP32[i9 >> 2] = i8;
19561 HEAP32[i11 >> 2] = i13;
19562 }
19563 i12 = i1 | 0;
19564 HEAP32[i12 >> 2] = 0;
19565 i10 = i1 + 9788 | 0;
19566 HEAP32[i10 >> 2] = 0;
19567 i14 = i6 | 0;
19568 i16 = HEAP32[i14 >> 2] | 0;
19569 i15 = i6 + 12 | 0;
19570 i17 = HEAP32[i15 >> 2] | 0;
19571 d18 = +HEAPF32[i17 + 16 >> 2];
19572 d19 = +HEAPF32[i16 + 16 >> 2] - d18;
19573 d20 = +HEAPF32[i17 + 20 >> 2];
19574 d21 = +HEAPF32[i16 + 20 >> 2] - d20;
19575 d22 = +HEAPF32[i17 + 24 >> 2];
19576 d23 = +HEAPF32[i16 + 24 >> 2] - d22;
19577 i17 = i6 + 4 | 0;
19578 i24 = HEAP32[i17 >> 2] | 0;
19579 d25 = +HEAPF32[i24 + 16 >> 2] - d18;
19580 d26 = +HEAPF32[i24 + 20 >> 2] - d20;
19581 d27 = +HEAPF32[i24 + 24 >> 2] - d22;
19582 i28 = i6 + 8 | 0;
19583 i29 = HEAP32[i28 >> 2] | 0;
19584 d30 = +HEAPF32[i29 + 16 >> 2] - d18;
19585 d18 = +HEAPF32[i29 + 20 >> 2] - d20;
19586 d20 = +HEAPF32[i29 + 24 >> 2] - d22;
19587 if (d19 * d26 * d20 + (d21 * d27 * d30 + d23 * d25 * d18 - d19 * d27 * d18 - d21 * d25 * d20) - d23 * d26 * d30 < 0.0) {
19588 HEAP32[i14 >> 2] = i24;
19589 HEAP32[i17 >> 2] = i16;
19590 i31 = i6 + 16 | 0;
19591 i32 = i6 + 20 | 0;
19592 d30 = +HEAPF32[i31 >> 2];
19593 HEAPF32[i31 >> 2] = +HEAPF32[i32 >> 2];
19594 HEAPF32[i32 >> 2] = d30;
19595 i33 = i24;
19596 i34 = i16;
19597 } else {
19598 i33 = i16;
19599 i34 = i24;
19600 }
19601 i24 = __ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i1, i33, i34, i29, 1) | 0;
19602 i29 = __ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i1, HEAP32[i17 >> 2] | 0, HEAP32[i14 >> 2] | 0, HEAP32[i15 >> 2] | 0, 1) | 0;
19603 i16 = __ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i1, HEAP32[i28 >> 2] | 0, HEAP32[i17 >> 2] | 0, HEAP32[i15 >> 2] | 0, 1) | 0;
19604 i17 = __ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i1, HEAP32[i14 >> 2] | 0, HEAP32[i28 >> 2] | 0, HEAP32[i15 >> 2] | 0, 1) | 0;
19605 i15 = i1 + 9796 | 0;
19606 if ((HEAP32[i15 >> 2] | 0) != 4) {
19607 break;
19608 }
19609 i28 = HEAP32[i7 >> 2] | 0;
19610 d30 = +HEAPF32[i28 + 16 >> 2];
19611 i14 = HEAP32[i28 + 52 >> 2] | 0;
19612 if ((i14 | 0) == 0) {
19613 i35 = i28;
19614 d36 = d30;
19615 } else {
19616 d26 = d30 * d30;
19617 d30 = +HEAPF32[i28 + 20 >> 2];
19618 i32 = i28;
19619 i28 = i14;
19620 while (1) {
19621 d23 = +HEAPF32[i28 + 16 >> 2];
19622 d20 = d23 * d23;
19623 d23 = +HEAPF32[i28 + 20 >> 2];
19624 i14 = d23 >= d30 & d20 < d26;
19625 i37 = i14 ? i28 : i32;
19626 i31 = HEAP32[i28 + 52 >> 2] | 0;
19627 if ((i31 | 0) == 0) {
19628 break;
19629 } else {
19630 d26 = i14 ? d20 : d26;
19631 d30 = i14 ? d23 : d30;
19632 i32 = i37;
19633 i28 = i31;
19634 }
19635 }
19636 i35 = i37;
19637 d36 = +HEAPF32[i37 + 16 >> 2];
19638 }
19639 d30 = +HEAPF32[i35 >> 2];
19640 d26 = +HEAPF32[i35 + 4 >> 2];
19641 d23 = +HEAPF32[i35 + 8 >> 2];
19642 d20 = +HEAPF32[i35 + 12 >> 2];
19643 d25 = +HEAPF32[i35 + 20 >> 2];
19644 i28 = HEAP32[i35 + 24 >> 2] | 0;
19645 i32 = HEAP32[i35 + 28 >> 2] | 0;
19646 i13 = HEAP32[i35 + 32 >> 2] | 0;
19647 HEAP8[i24 + 56 | 0] = 0;
19648 HEAP32[i24 + 36 >> 2] = i29;
19649 HEAP8[i29 + 56 | 0] = 0;
19650 HEAP32[i29 + 36 >> 2] = i24;
19651 HEAP8[i24 + 57 | 0] = 0;
19652 HEAP32[i24 + 40 >> 2] = i16;
19653 HEAP8[i16 + 56 | 0] = 1;
19654 HEAP32[i16 + 36 >> 2] = i24;
19655 HEAP8[i24 + 58 | 0] = 0;
19656 HEAP32[i24 + 44 >> 2] = i17;
19657 HEAP8[i17 + 56 | 0] = 2;
19658 HEAP32[i17 + 36 >> 2] = i24;
19659 HEAP8[i29 + 57 | 0] = 2;
19660 HEAP32[i29 + 40 >> 2] = i17;
19661 HEAP8[i17 + 58 | 0] = 1;
19662 HEAP32[i17 + 44 >> 2] = i29;
19663 HEAP8[i29 + 58 | 0] = 1;
19664 HEAP32[i29 + 44 >> 2] = i16;
19665 HEAP8[i16 + 57 | 0] = 2;
19666 HEAP32[i16 + 40 >> 2] = i29;
19667 HEAP8[i16 + 58 | 0] = 1;
19668 HEAP32[i16 + 44 >> 2] = i17;
19669 HEAP8[i17 + 57 | 0] = 2;
19670 HEAP32[i17 + 40 >> 2] = i16;
19671 HEAP32[i12 >> 2] = 0;
19672 i11 = i5 | 0;
19673 i8 = i5 + 4 | 0;
19674 i9 = i5 + 8 | 0;
19675 i31 = i1 + 9800 | 0;
19676 i14 = i1 + 9804 | 0;
19677 i38 = i13;
19678 i13 = i32;
19679 i32 = i28;
19680 d21 = d25;
19681 d25 = d36;
19682 d18 = d20;
19683 d20 = d23;
19684 d23 = d26;
19685 d26 = d30;
19686 i28 = 0;
19687 i39 = 1;
19688 i40 = i35;
19689 while (1) {
19690 i41 = HEAP32[i10 >> 2] | 0;
19691 if (i41 >>> 0 >= 64) {
19692 i42 = 114;
19693 break;
19694 }
19695 HEAP32[i11 >> 2] = 0;
19696 HEAP32[i8 >> 2] = 0;
19697 HEAP32[i9 >> 2] = 0;
19698 HEAP32[i10 >> 2] = i41 + 1;
19699 i43 = i1 + 60 + (i41 << 5) | 0;
19700 HEAP8[i40 + 59 | 0] = i39 & 255;
19701 __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i2, i40 | 0, i43);
19702 if (+HEAPF32[i40 >> 2] * +HEAPF32[i1 + 60 + (i41 << 5) + 16 >> 2] + +HEAPF32[i40 + 4 >> 2] * +HEAPF32[i1 + 60 + (i41 << 5) + 20 >> 2] + +HEAPF32[i40 + 8 >> 2] * +HEAPF32[i1 + 60 + (i41 << 5) + 24 >> 2] - +HEAPF32[i40 + 16 >> 2] > 9999999747378752.0e-20) {
19703 i44 = 1;
19704 i45 = 0;
19705 } else {
19706 i42 = 113;
19707 break;
19708 }
19709 do {
19710 i44 = i44 & (__ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(i1, i39, i43, HEAP32[i40 + 36 + (i45 << 2) >> 2] | 0, HEAPU8[i40 + 56 + i45 | 0] | 0, i5) | 0);
19711 i45 = i45 + 1 | 0;
19712 } while (!(i45 >>> 0 > 2 | i44 ^ 1));
19713 if (!i44) {
19714 i42 = 112;
19715 break;
19716 }
19717 if ((HEAP32[i9 >> 2] | 0) >>> 0 <= 2) {
19718 i42 = 112;
19719 break;
19720 }
19721 i43 = HEAP32[i11 >> 2] | 0;
19722 i41 = HEAP32[i8 >> 2] | 0;
19723 HEAP8[i43 + 57 | 0] = 2;
19724 HEAP32[i43 + 40 >> 2] = i41;
19725 HEAP8[i41 + 58 | 0] = 1;
19726 HEAP32[i41 + 44 >> 2] = i43;
19727 i43 = i40 + 52 | 0;
19728 i41 = HEAP32[i43 >> 2] | 0;
19729 i46 = i40 + 48 | 0;
19730 if ((i41 | 0) != 0) {
19731 HEAP32[i41 + 48 >> 2] = HEAP32[i46 >> 2];
19732 }
19733 i41 = HEAP32[i46 >> 2] | 0;
19734 if ((i41 | 0) != 0) {
19735 HEAP32[i41 + 52 >> 2] = HEAP32[i43 >> 2];
19736 }
19737 if ((HEAP32[i7 >> 2] | 0) == (i40 | 0)) {
19738 HEAP32[i7 >> 2] = HEAP32[i43 >> 2];
19739 }
19740 HEAP32[i15 >> 2] = (HEAP32[i15 >> 2] | 0) - 1;
19741 HEAP32[i46 >> 2] = 0;
19742 HEAP32[i43 >> 2] = HEAP32[i31 >> 2];
19743 i43 = HEAP32[i31 >> 2] | 0;
19744 if ((i43 | 0) != 0) {
19745 HEAP32[i43 + 48 >> 2] = i40;
19746 }
19747 HEAP32[i31 >> 2] = i40;
19748 HEAP32[i14 >> 2] = (HEAP32[i14 >> 2] | 0) + 1;
19749 i43 = HEAP32[i7 >> 2] | 0;
19750 d30 = +HEAPF32[i43 + 16 >> 2];
19751 i46 = HEAP32[i43 + 52 >> 2] | 0;
19752 if ((i46 | 0) == 0) {
19753 i47 = i43;
19754 } else {
19755 d27 = d30 * d30;
19756 d30 = +HEAPF32[i43 + 20 >> 2];
19757 i41 = i43;
19758 i43 = i46;
19759 while (1) {
19760 d19 = +HEAPF32[i43 + 16 >> 2];
19761 d22 = d19 * d19;
19762 d19 = +HEAPF32[i43 + 20 >> 2];
19763 i46 = d19 >= d30 & d22 < d27;
19764 i48 = i46 ? i43 : i41;
19765 i49 = HEAP32[i43 + 52 >> 2] | 0;
19766 if ((i49 | 0) == 0) {
19767 i47 = i48;
19768 break;
19769 } else {
19770 d27 = i46 ? d22 : d27;
19771 d30 = i46 ? d19 : d30;
19772 i41 = i48;
19773 i43 = i49;
19774 }
19775 }
19776 }
19777 d30 = +HEAPF32[i47 + 20 >> 2];
19778 if (d30 < d21) {
19779 d50 = d26;
19780 d51 = d23;
19781 d52 = d20;
19782 d53 = d18;
19783 d54 = d25;
19784 d55 = d21;
19785 i56 = i32;
19786 i57 = i13;
19787 i58 = i38;
19788 } else {
19789 d50 = +HEAPF32[i47 >> 2];
19790 d51 = +HEAPF32[i47 + 4 >> 2];
19791 d52 = +HEAPF32[i47 + 8 >> 2];
19792 d53 = +HEAPF32[i47 + 12 >> 2];
19793 d54 = +HEAPF32[i47 + 16 >> 2];
19794 d55 = d30;
19795 i56 = HEAP32[i47 + 24 >> 2] | 0;
19796 i57 = HEAP32[i47 + 28 >> 2] | 0;
19797 i58 = HEAP32[i47 + 32 >> 2] | 0;
19798 }
19799 i43 = i28 + 1 | 0;
19800 if (i43 >>> 0 < 255) {
19801 i38 = i58;
19802 i13 = i57;
19803 i32 = i56;
19804 d21 = d55;
19805 d25 = d54;
19806 d18 = d53;
19807 d20 = d52;
19808 d23 = d51;
19809 d26 = d50;
19810 i28 = i43;
19811 i39 = i39 + 1 | 0;
19812 i40 = i47;
19813 } else {
19814 i42 = 116;
19815 break;
19816 }
19817 }
19818 if ((i42 | 0) == 112) {
19819 HEAP32[i12 >> 2] = 4;
19820 i59 = i38;
19821 i60 = i13;
19822 i61 = i32;
19823 d62 = d25;
19824 d63 = d18;
19825 d64 = d20;
19826 d65 = d23;
19827 d66 = d26;
19828 i67 = 4;
19829 } else if ((i42 | 0) == 113) {
19830 HEAP32[i12 >> 2] = 7;
19831 i59 = i38;
19832 i60 = i13;
19833 i61 = i32;
19834 d62 = d25;
19835 d63 = d18;
19836 d64 = d20;
19837 d65 = d23;
19838 d66 = d26;
19839 i67 = 7;
19840 } else if ((i42 | 0) == 114) {
19841 HEAP32[i12 >> 2] = 6;
19842 i59 = i38;
19843 i60 = i13;
19844 i61 = i32;
19845 d62 = d25;
19846 d63 = d18;
19847 d64 = d20;
19848 d65 = d23;
19849 d66 = d26;
19850 i67 = 6;
19851 } else if ((i42 | 0) == 116) {
19852 i59 = i58;
19853 i60 = i57;
19854 i61 = i56;
19855 d62 = d54;
19856 d63 = d53;
19857 d64 = d52;
19858 d65 = d51;
19859 d66 = d50;
19860 i67 = HEAP32[i12 >> 2] | 0;
19861 }
19862 d21 = d66 * d62;
19863 d30 = d65 * d62;
19864 d27 = d64 * d62;
19865 HEAPF32[i1 + 40 >> 2] = d66;
19866 HEAPF32[i1 + 44 >> 2] = d65;
19867 HEAPF32[i1 + 48 >> 2] = d64;
19868 HEAPF32[i1 + 52 >> 2] = d63;
19869 HEAPF32[i1 + 56 >> 2] = d62;
19870 HEAP32[i1 + 36 >> 2] = 3;
19871 HEAP32[i1 + 4 >> 2] = i61;
19872 HEAP32[i1 + 8 >> 2] = i60;
19873 HEAP32[i1 + 12 >> 2] = i59;
19874 i40 = i60 + 16 | 0;
19875 d19 = +HEAPF32[i40 >> 2] - d21;
19876 i39 = i60 + 20 | 0;
19877 d22 = +HEAPF32[i39 >> 2] - d30;
19878 i28 = i60 + 24 | 0;
19879 d68 = +HEAPF32[i28 >> 2] - d27;
19880 i7 = i59 + 16 | 0;
19881 d69 = +HEAPF32[i7 >> 2] - d21;
19882 i14 = i59 + 20 | 0;
19883 d70 = +HEAPF32[i14 >> 2] - d30;
19884 i31 = i59 + 24 | 0;
19885 d71 = +HEAPF32[i31 >> 2] - d27;
19886 d72 = d22 * d71 - d68 * d70;
19887 d73 = d68 * d69 - d19 * d71;
19888 d71 = d19 * d70 - d22 * d69;
19889 d69 = +Math_sqrt(+(d71 * d71 + (d72 * d72 + d73 * d73)));
19890 i15 = i1 + 20 | 0;
19891 HEAPF32[i15 >> 2] = d69;
19892 d73 = +HEAPF32[i7 >> 2] - d21;
19893 d72 = +HEAPF32[i14 >> 2] - d30;
19894 d71 = +HEAPF32[i31 >> 2] - d27;
19895 i31 = i61 + 16 | 0;
19896 d22 = +HEAPF32[i31 >> 2] - d21;
19897 i14 = i61 + 20 | 0;
19898 d70 = +HEAPF32[i14 >> 2] - d30;
19899 i7 = i61 + 24 | 0;
19900 d19 = +HEAPF32[i7 >> 2] - d27;
19901 d68 = d72 * d19 - d71 * d70;
19902 d74 = d71 * d22 - d73 * d19;
19903 d19 = d73 * d70 - d72 * d22;
19904 d22 = +Math_sqrt(+(d19 * d19 + (d68 * d68 + d74 * d74)));
19905 i8 = i1 + 24 | 0;
19906 HEAPF32[i8 >> 2] = d22;
19907 d74 = +HEAPF32[i31 >> 2] - d21;
19908 d68 = +HEAPF32[i14 >> 2] - d30;
19909 d19 = +HEAPF32[i7 >> 2] - d27;
19910 d72 = +HEAPF32[i40 >> 2] - d21;
19911 d21 = +HEAPF32[i39 >> 2] - d30;
19912 d30 = +HEAPF32[i28 >> 2] - d27;
19913 d27 = d68 * d30 - d19 * d21;
19914 d70 = d19 * d72 - d74 * d30;
19915 d30 = d74 * d21 - d68 * d72;
19916 d72 = +Math_sqrt(+(d30 * d30 + (d27 * d27 + d70 * d70)));
19917 d70 = d69 + d22 + d72;
19918 HEAPF32[i15 >> 2] = d69 / d70;
19919 HEAPF32[i8 >> 2] = d22 / d70;
19920 HEAPF32[i1 + 28 >> 2] = d72 / d70;
19921 i75 = i67;
19922 STACKTOP = i4;
19923 return i75 | 0;
19924 }
19925 } while (0);
19926 HEAP32[i1 >> 2] = 8;
19927 d62 = +HEAPF32[i3 >> 2];
19928 d63 = -0.0 - d62;
19929 d64 = +HEAPF32[i3 + 4 >> 2];
19930 d65 = -0.0 - d64;
19931 d66 = +HEAPF32[i3 + 8 >> 2];
19932 d50 = -0.0 - d66;
19933 i3 = i1 + 40 | 0;
19934 HEAPF32[i3 >> 2] = d63;
19935 i67 = i1 + 44 | 0;
19936 HEAPF32[i67 >> 2] = d65;
19937 i61 = i1 + 48 | 0;
19938 HEAPF32[i61 >> 2] = d50;
19939 i59 = i1 + 52 | 0;
19940 HEAPF32[i59 >> 2] = 0.0;
19941 d51 = +Math_sqrt(+(d62 * d62 + d64 * d64 + d66 * d66));
19942 if (d51 > 0.0) {
19943 d66 = 1.0 / d51;
19944 d76 = d66 * d50;
19945 d77 = d66 * d65;
19946 d78 = d66 * d63;
19947 } else {
19948 d76 = 0.0;
19949 d77 = 0.0;
19950 d78 = 1.0;
19951 }
19952 HEAPF32[i3 >> 2] = d78;
19953 HEAPF32[i67 >> 2] = d77;
19954 HEAPF32[i61 >> 2] = d76;
19955 HEAPF32[i59 >> 2] = 0.0;
19956 HEAPF32[i1 + 56 >> 2] = 0.0;
19957 HEAP32[i1 + 36 >> 2] = 1;
19958 HEAP32[i1 + 4 >> 2] = HEAP32[i6 >> 2];
19959 HEAPF32[i1 + 20 >> 2] = 1.0;
19960 i75 = 8;
19961 STACKTOP = i4;
19962 return i75 | 0;
19963 }
19964 function _free(i1) {
19965 i1 = i1 | 0;
19966 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0;
19967 if ((i1 | 0) == 0) {
19968 return;
19969 }
19970 i2 = i1 - 8 | 0;
19971 i3 = i2;
19972 i4 = HEAP32[3020] | 0;
19973 if (i2 >>> 0 < i4 >>> 0) {
19974 _abort();
19975 }
19976 i5 = HEAP32[i1 - 4 >> 2] | 0;
19977 i6 = i5 & 3;
19978 if ((i6 | 0) == 1) {
19979 _abort();
19980 }
19981 i7 = i5 & -8;
19982 i8 = i1 + (i7 - 8) | 0;
19983 i9 = i8;
19984 L527 : do {
19985 if ((i5 & 1 | 0) == 0) {
19986 i10 = HEAP32[i2 >> 2] | 0;
19987 if ((i6 | 0) == 0) {
19988 return;
19989 }
19990 i11 = -8 - i10 | 0;
19991 i12 = i1 + i11 | 0;
19992 i13 = i12;
19993 i14 = i10 + i7 | 0;
19994 if (i12 >>> 0 < i4 >>> 0) {
19995 _abort();
19996 }
19997 if ((i13 | 0) == (HEAP32[3021] | 0)) {
19998 i15 = i1 + (i7 - 4) | 0;
19999 if ((HEAP32[i15 >> 2] & 3 | 0) != 3) {
20000 i16 = i13;
20001 i17 = i14;
20002 break;
20003 }
20004 HEAP32[3018] = i14;
20005 HEAP32[i15 >> 2] = HEAP32[i15 >> 2] & -2;
20006 HEAP32[i1 + (i11 + 4) >> 2] = i14 | 1;
20007 HEAP32[i8 >> 2] = i14;
20008 return;
20009 }
20010 i15 = i10 >>> 3;
20011 if (i10 >>> 0 < 256) {
20012 i10 = HEAP32[i1 + (i11 + 8) >> 2] | 0;
20013 i18 = HEAP32[i1 + (i11 + 12) >> 2] | 0;
20014 i19 = 12104 + (i15 << 1 << 2) | 0;
20015 do {
20016 if ((i10 | 0) != (i19 | 0)) {
20017 if (i10 >>> 0 < i4 >>> 0) {
20018 _abort();
20019 }
20020 if ((HEAP32[i10 + 12 >> 2] | 0) == (i13 | 0)) {
20021 break;
20022 }
20023 _abort();
20024 }
20025 } while (0);
20026 if ((i18 | 0) == (i10 | 0)) {
20027 HEAP32[3016] = HEAP32[3016] & ~(1 << i15);
20028 i16 = i13;
20029 i17 = i14;
20030 break;
20031 }
20032 do {
20033 if ((i18 | 0) == (i19 | 0)) {
20034 i20 = i18 + 8 | 0;
20035 } else {
20036 if (i18 >>> 0 < i4 >>> 0) {
20037 _abort();
20038 }
20039 i21 = i18 + 8 | 0;
20040 if ((HEAP32[i21 >> 2] | 0) == (i13 | 0)) {
20041 i20 = i21;
20042 break;
20043 }
20044 _abort();
20045 }
20046 } while (0);
20047 HEAP32[i10 + 12 >> 2] = i18;
20048 HEAP32[i20 >> 2] = i10;
20049 i16 = i13;
20050 i17 = i14;
20051 break;
20052 }
20053 i19 = i12;
20054 i15 = HEAP32[i1 + (i11 + 24) >> 2] | 0;
20055 i21 = HEAP32[i1 + (i11 + 12) >> 2] | 0;
20056 do {
20057 if ((i21 | 0) == (i19 | 0)) {
20058 i22 = i1 + (i11 + 20) | 0;
20059 i23 = HEAP32[i22 >> 2] | 0;
20060 if ((i23 | 0) == 0) {
20061 i24 = i1 + (i11 + 16) | 0;
20062 i25 = HEAP32[i24 >> 2] | 0;
20063 if ((i25 | 0) == 0) {
20064 i26 = 0;
20065 break;
20066 } else {
20067 i27 = i25;
20068 i28 = i24;
20069 }
20070 } else {
20071 i27 = i23;
20072 i28 = i22;
20073 }
20074 while (1) {
20075 i22 = i27 + 20 | 0;
20076 i23 = HEAP32[i22 >> 2] | 0;
20077 if ((i23 | 0) != 0) {
20078 i27 = i23;
20079 i28 = i22;
20080 continue;
20081 }
20082 i22 = i27 + 16 | 0;
20083 i23 = HEAP32[i22 >> 2] | 0;
20084 if ((i23 | 0) == 0) {
20085 break;
20086 } else {
20087 i27 = i23;
20088 i28 = i22;
20089 }
20090 }
20091 if (i28 >>> 0 < i4 >>> 0) {
20092 _abort();
20093 } else {
20094 HEAP32[i28 >> 2] = 0;
20095 i26 = i27;
20096 break;
20097 }
20098 } else {
20099 i22 = HEAP32[i1 + (i11 + 8) >> 2] | 0;
20100 if (i22 >>> 0 < i4 >>> 0) {
20101 _abort();
20102 }
20103 i23 = i22 + 12 | 0;
20104 if ((HEAP32[i23 >> 2] | 0) != (i19 | 0)) {
20105 _abort();
20106 }
20107 i24 = i21 + 8 | 0;
20108 if ((HEAP32[i24 >> 2] | 0) == (i19 | 0)) {
20109 HEAP32[i23 >> 2] = i21;
20110 HEAP32[i24 >> 2] = i22;
20111 i26 = i21;
20112 break;
20113 } else {
20114 _abort();
20115 }
20116 }
20117 } while (0);
20118 if ((i15 | 0) == 0) {
20119 i16 = i13;
20120 i17 = i14;
20121 break;
20122 }
20123 i21 = i1 + (i11 + 28) | 0;
20124 i12 = 12368 + (HEAP32[i21 >> 2] << 2) | 0;
20125 do {
20126 if ((i19 | 0) == (HEAP32[i12 >> 2] | 0)) {
20127 HEAP32[i12 >> 2] = i26;
20128 if ((i26 | 0) != 0) {
20129 break;
20130 }
20131 HEAP32[3017] = HEAP32[3017] & ~(1 << HEAP32[i21 >> 2]);
20132 i16 = i13;
20133 i17 = i14;
20134 break L527;
20135 } else {
20136 if (i15 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
20137 _abort();
20138 }
20139 i10 = i15 + 16 | 0;
20140 if ((HEAP32[i10 >> 2] | 0) == (i19 | 0)) {
20141 HEAP32[i10 >> 2] = i26;
20142 } else {
20143 HEAP32[i15 + 20 >> 2] = i26;
20144 }
20145 if ((i26 | 0) == 0) {
20146 i16 = i13;
20147 i17 = i14;
20148 break L527;
20149 }
20150 }
20151 } while (0);
20152 if (i26 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
20153 _abort();
20154 }
20155 HEAP32[i26 + 24 >> 2] = i15;
20156 i19 = HEAP32[i1 + (i11 + 16) >> 2] | 0;
20157 do {
20158 if ((i19 | 0) != 0) {
20159 if (i19 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
20160 _abort();
20161 } else {
20162 HEAP32[i26 + 16 >> 2] = i19;
20163 HEAP32[i19 + 24 >> 2] = i26;
20164 break;
20165 }
20166 }
20167 } while (0);
20168 i19 = HEAP32[i1 + (i11 + 20) >> 2] | 0;
20169 if ((i19 | 0) == 0) {
20170 i16 = i13;
20171 i17 = i14;
20172 break;
20173 }
20174 if (i19 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
20175 _abort();
20176 } else {
20177 HEAP32[i26 + 20 >> 2] = i19;
20178 HEAP32[i19 + 24 >> 2] = i26;
20179 i16 = i13;
20180 i17 = i14;
20181 break;
20182 }
20183 } else {
20184 i16 = i3;
20185 i17 = i7;
20186 }
20187 } while (0);
20188 i3 = i16;
20189 if (i3 >>> 0 >= i8 >>> 0) {
20190 _abort();
20191 }
20192 i26 = i1 + (i7 - 4) | 0;
20193 i4 = HEAP32[i26 >> 2] | 0;
20194 if ((i4 & 1 | 0) == 0) {
20195 _abort();
20196 }
20197 do {
20198 if ((i4 & 2 | 0) == 0) {
20199 if ((i9 | 0) == (HEAP32[3022] | 0)) {
20200 i27 = (HEAP32[3019] | 0) + i17 | 0;
20201 HEAP32[3019] = i27;
20202 HEAP32[3022] = i16;
20203 HEAP32[i16 + 4 >> 2] = i27 | 1;
20204 if ((i16 | 0) != (HEAP32[3021] | 0)) {
20205 return;
20206 }
20207 HEAP32[3021] = 0;
20208 HEAP32[3018] = 0;
20209 return;
20210 }
20211 if ((i9 | 0) == (HEAP32[3021] | 0)) {
20212 i27 = (HEAP32[3018] | 0) + i17 | 0;
20213 HEAP32[3018] = i27;
20214 HEAP32[3021] = i16;
20215 HEAP32[i16 + 4 >> 2] = i27 | 1;
20216 HEAP32[i3 + i27 >> 2] = i27;
20217 return;
20218 }
20219 i27 = (i4 & -8) + i17 | 0;
20220 i28 = i4 >>> 3;
20221 L630 : do {
20222 if (i4 >>> 0 < 256) {
20223 i20 = HEAP32[i1 + i7 >> 2] | 0;
20224 i6 = HEAP32[i1 + (i7 | 4) >> 2] | 0;
20225 i2 = 12104 + (i28 << 1 << 2) | 0;
20226 do {
20227 if ((i20 | 0) != (i2 | 0)) {
20228 if (i20 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
20229 _abort();
20230 }
20231 if ((HEAP32[i20 + 12 >> 2] | 0) == (i9 | 0)) {
20232 break;
20233 }
20234 _abort();
20235 }
20236 } while (0);
20237 if ((i6 | 0) == (i20 | 0)) {
20238 HEAP32[3016] = HEAP32[3016] & ~(1 << i28);
20239 break;
20240 }
20241 do {
20242 if ((i6 | 0) == (i2 | 0)) {
20243 i29 = i6 + 8 | 0;
20244 } else {
20245 if (i6 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
20246 _abort();
20247 }
20248 i5 = i6 + 8 | 0;
20249 if ((HEAP32[i5 >> 2] | 0) == (i9 | 0)) {
20250 i29 = i5;
20251 break;
20252 }
20253 _abort();
20254 }
20255 } while (0);
20256 HEAP32[i20 + 12 >> 2] = i6;
20257 HEAP32[i29 >> 2] = i20;
20258 } else {
20259 i2 = i8;
20260 i5 = HEAP32[i1 + (i7 + 16) >> 2] | 0;
20261 i19 = HEAP32[i1 + (i7 | 4) >> 2] | 0;
20262 do {
20263 if ((i19 | 0) == (i2 | 0)) {
20264 i15 = i1 + (i7 + 12) | 0;
20265 i21 = HEAP32[i15 >> 2] | 0;
20266 if ((i21 | 0) == 0) {
20267 i12 = i1 + (i7 + 8) | 0;
20268 i10 = HEAP32[i12 >> 2] | 0;
20269 if ((i10 | 0) == 0) {
20270 i30 = 0;
20271 break;
20272 } else {
20273 i31 = i10;
20274 i32 = i12;
20275 }
20276 } else {
20277 i31 = i21;
20278 i32 = i15;
20279 }
20280 while (1) {
20281 i15 = i31 + 20 | 0;
20282 i21 = HEAP32[i15 >> 2] | 0;
20283 if ((i21 | 0) != 0) {
20284 i31 = i21;
20285 i32 = i15;
20286 continue;
20287 }
20288 i15 = i31 + 16 | 0;
20289 i21 = HEAP32[i15 >> 2] | 0;
20290 if ((i21 | 0) == 0) {
20291 break;
20292 } else {
20293 i31 = i21;
20294 i32 = i15;
20295 }
20296 }
20297 if (i32 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
20298 _abort();
20299 } else {
20300 HEAP32[i32 >> 2] = 0;
20301 i30 = i31;
20302 break;
20303 }
20304 } else {
20305 i15 = HEAP32[i1 + i7 >> 2] | 0;
20306 if (i15 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
20307 _abort();
20308 }
20309 i21 = i15 + 12 | 0;
20310 if ((HEAP32[i21 >> 2] | 0) != (i2 | 0)) {
20311 _abort();
20312 }
20313 i12 = i19 + 8 | 0;
20314 if ((HEAP32[i12 >> 2] | 0) == (i2 | 0)) {
20315 HEAP32[i21 >> 2] = i19;
20316 HEAP32[i12 >> 2] = i15;
20317 i30 = i19;
20318 break;
20319 } else {
20320 _abort();
20321 }
20322 }
20323 } while (0);
20324 if ((i5 | 0) == 0) {
20325 break;
20326 }
20327 i19 = i1 + (i7 + 20) | 0;
20328 i20 = 12368 + (HEAP32[i19 >> 2] << 2) | 0;
20329 do {
20330 if ((i2 | 0) == (HEAP32[i20 >> 2] | 0)) {
20331 HEAP32[i20 >> 2] = i30;
20332 if ((i30 | 0) != 0) {
20333 break;
20334 }
20335 HEAP32[3017] = HEAP32[3017] & ~(1 << HEAP32[i19 >> 2]);
20336 break L630;
20337 } else {
20338 if (i5 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
20339 _abort();
20340 }
20341 i6 = i5 + 16 | 0;
20342 if ((HEAP32[i6 >> 2] | 0) == (i2 | 0)) {
20343 HEAP32[i6 >> 2] = i30;
20344 } else {
20345 HEAP32[i5 + 20 >> 2] = i30;
20346 }
20347 if ((i30 | 0) == 0) {
20348 break L630;
20349 }
20350 }
20351 } while (0);
20352 if (i30 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
20353 _abort();
20354 }
20355 HEAP32[i30 + 24 >> 2] = i5;
20356 i2 = HEAP32[i1 + (i7 + 8) >> 2] | 0;
20357 do {
20358 if ((i2 | 0) != 0) {
20359 if (i2 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
20360 _abort();
20361 } else {
20362 HEAP32[i30 + 16 >> 2] = i2;
20363 HEAP32[i2 + 24 >> 2] = i30;
20364 break;
20365 }
20366 }
20367 } while (0);
20368 i2 = HEAP32[i1 + (i7 + 12) >> 2] | 0;
20369 if ((i2 | 0) == 0) {
20370 break;
20371 }
20372 if (i2 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
20373 _abort();
20374 } else {
20375 HEAP32[i30 + 20 >> 2] = i2;
20376 HEAP32[i2 + 24 >> 2] = i30;
20377 break;
20378 }
20379 }
20380 } while (0);
20381 HEAP32[i16 + 4 >> 2] = i27 | 1;
20382 HEAP32[i3 + i27 >> 2] = i27;
20383 if ((i16 | 0) != (HEAP32[3021] | 0)) {
20384 i33 = i27;
20385 break;
20386 }
20387 HEAP32[3018] = i27;
20388 return;
20389 } else {
20390 HEAP32[i26 >> 2] = i4 & -2;
20391 HEAP32[i16 + 4 >> 2] = i17 | 1;
20392 HEAP32[i3 + i17 >> 2] = i17;
20393 i33 = i17;
20394 }
20395 } while (0);
20396 i17 = i33 >>> 3;
20397 if (i33 >>> 0 < 256) {
20398 i3 = i17 << 1;
20399 i4 = 12104 + (i3 << 2) | 0;
20400 i26 = HEAP32[3016] | 0;
20401 i30 = 1 << i17;
20402 do {
20403 if ((i26 & i30 | 0) == 0) {
20404 HEAP32[3016] = i26 | i30;
20405 i34 = i4;
20406 i35 = 12104 + (i3 + 2 << 2) | 0;
20407 } else {
20408 i17 = 12104 + (i3 + 2 << 2) | 0;
20409 i7 = HEAP32[i17 >> 2] | 0;
20410 if (i7 >>> 0 >= (HEAP32[3020] | 0) >>> 0) {
20411 i34 = i7;
20412 i35 = i17;
20413 break;
20414 }
20415 _abort();
20416 }
20417 } while (0);
20418 HEAP32[i35 >> 2] = i16;
20419 HEAP32[i34 + 12 >> 2] = i16;
20420 HEAP32[i16 + 8 >> 2] = i34;
20421 HEAP32[i16 + 12 >> 2] = i4;
20422 return;
20423 }
20424 i4 = i16;
20425 i34 = i33 >>> 8;
20426 do {
20427 if ((i34 | 0) == 0) {
20428 i36 = 0;
20429 } else {
20430 if (i33 >>> 0 > 16777215) {
20431 i36 = 31;
20432 break;
20433 }
20434 i35 = (i34 + 1048320 | 0) >>> 16 & 8;
20435 i3 = i34 << i35;
20436 i30 = (i3 + 520192 | 0) >>> 16 & 4;
20437 i26 = i3 << i30;
20438 i3 = (i26 + 245760 | 0) >>> 16 & 2;
20439 i17 = 14 - (i30 | i35 | i3) + (i26 << i3 >>> 15) | 0;
20440 i36 = i33 >>> ((i17 + 7 | 0) >>> 0) & 1 | i17 << 1;
20441 }
20442 } while (0);
20443 i34 = 12368 + (i36 << 2) | 0;
20444 HEAP32[i16 + 28 >> 2] = i36;
20445 HEAP32[i16 + 20 >> 2] = 0;
20446 HEAP32[i16 + 16 >> 2] = 0;
20447 i17 = HEAP32[3017] | 0;
20448 i3 = 1 << i36;
20449 do {
20450 if ((i17 & i3 | 0) == 0) {
20451 HEAP32[3017] = i17 | i3;
20452 HEAP32[i34 >> 2] = i4;
20453 HEAP32[i16 + 24 >> 2] = i34;
20454 HEAP32[i16 + 12 >> 2] = i16;
20455 HEAP32[i16 + 8 >> 2] = i16;
20456 } else {
20457 if ((i36 | 0) == 31) {
20458 i37 = 0;
20459 } else {
20460 i37 = 25 - (i36 >>> 1) | 0;
20461 }
20462 i26 = i33 << i37;
20463 i35 = HEAP32[i34 >> 2] | 0;
20464 while (1) {
20465 if ((HEAP32[i35 + 4 >> 2] & -8 | 0) == (i33 | 0)) {
20466 break;
20467 }
20468 i38 = i35 + 16 + (i26 >>> 31 << 2) | 0;
20469 i30 = HEAP32[i38 >> 2] | 0;
20470 if ((i30 | 0) == 0) {
20471 i39 = 508;
20472 break;
20473 } else {
20474 i26 = i26 << 1;
20475 i35 = i30;
20476 }
20477 }
20478 if ((i39 | 0) == 508) {
20479 if (i38 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
20480 _abort();
20481 } else {
20482 HEAP32[i38 >> 2] = i4;
20483 HEAP32[i16 + 24 >> 2] = i35;
20484 HEAP32[i16 + 12 >> 2] = i16;
20485 HEAP32[i16 + 8 >> 2] = i16;
20486 break;
20487 }
20488 }
20489 i26 = i35 + 8 | 0;
20490 i27 = HEAP32[i26 >> 2] | 0;
20491 i30 = HEAP32[3020] | 0;
20492 if (i35 >>> 0 < i30 >>> 0) {
20493 _abort();
20494 }
20495 if (i27 >>> 0 < i30 >>> 0) {
20496 _abort();
20497 } else {
20498 HEAP32[i27 + 12 >> 2] = i4;
20499 HEAP32[i26 >> 2] = i4;
20500 HEAP32[i16 + 8 >> 2] = i27;
20501 HEAP32[i16 + 12 >> 2] = i35;
20502 HEAP32[i16 + 24 >> 2] = 0;
20503 break;
20504 }
20505 }
20506 } while (0);
20507 i16 = (HEAP32[3024] | 0) - 1 | 0;
20508 HEAP32[3024] = i16;
20509 if ((i16 | 0) == 0) {
20510 i40 = 12520;
20511 } else {
20512 return;
20513 }
20514 while (1) {
20515 i16 = HEAP32[i40 >> 2] | 0;
20516 if ((i16 | 0) == 0) {
20517 break;
20518 } else {
20519 i40 = i16 + 8 | 0;
20520 }
20521 }
20522 HEAP32[3024] = -1;
20523 return;
20524 }
20525 function __ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(i1, i2, i3, i4, i5, i6) {
20526 i1 = i1 | 0;
20527 i2 = i2 | 0;
20528 i3 = i3 | 0;
20529 i4 = i4 | 0;
20530 i5 = i5 | 0;
20531 i6 = i6 | 0;
20532 var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, d32 = 0.0, i33 = 0, d34 = 0.0, i35 = 0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, d48 = 0.0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0;
20533 i7 = STACKTOP;
20534 STACKTOP = STACKTOP + 1264 | 0;
20535 i8 = i7 | 0;
20536 i9 = i7 + 64 | 0;
20537 i10 = i7 + 96 | 0;
20538 i11 = i7 + 152 | 0;
20539 i12 = i7 + 328 | 0;
20540 i13 = i7 + 688 | 0;
20541 i14 = i7 + 704 | 0;
20542 i15 = i7 + 736 | 0;
20543 i16 = i7 + 752 | 0;
20544 i17 = i7 + 768 | 0;
20545 i18 = i7 + 888 | 0;
20546 i19 = i7 + 904 | 0;
20547 i20 = i7 + 920 | 0;
20548 i21 = i7 + 1040 | 0;
20549 i22 = i7 + 1056 | 0;
20550 i23 = i7 + 1072 | 0;
20551 i24 = i7 + 1104 | 0;
20552 i25 = i7 + 1120 | 0;
20553 i26 = i7 + 1184 | 0;
20554 i27 = i7 + 1200 | 0;
20555 __ZN21btConvexInternalShapeC2Ev(i10 | 0);
20556 HEAP32[i10 >> 2] = 4728;
20557 HEAP32[i10 + 4 >> 2] = 8;
20558 HEAPF32[i10 + 28 >> 2] = 0.0;
20559 HEAPF32[i10 + 44 >> 2] = 0.0;
20560 i28 = i10 | 0;
20561 i10 = HEAP32[i4 + 4 >> 2] | 0;
20562 if ((i10 | 0) < 20) {
20563 HEAP32[i11 >> 2] = 2280;
20564 i29 = i11 + 164 | 0;
20565 HEAP32[i11 + 168 >> 2] = 0;
20566 HEAPF32[i11 + 172 >> 2] = 0.0;
20567 i30 = i6 + 4 | 0;
20568 HEAPF32[i29 >> 2] = +HEAPF32[i30 >> 2];
20569 HEAPF32[i12 + 308 >> 2] = 9999999747378752.0e-20;
20570 HEAP16[i12 + 332 >> 1] = 0;
20571 __ZN22btSubsimplexConvexCastC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolver(i13, i28, i4, i12);
20572 do {
20573 if (__ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i13, i1, i2, i5, i5, i11) | 0) {
20574 i12 = i11 + 132 | 0;
20575 i31 = i12 | 0;
20576 d32 = +HEAPF32[i31 >> 2];
20577 i33 = i11 + 136 | 0;
20578 d34 = +HEAPF32[i33 >> 2];
20579 i35 = i11 + 140 | 0;
20580 d36 = +HEAPF32[i35 >> 2];
20581 if (d32 * d32 + d34 * d34 + d36 * d36 <= 9999999747378752.0e-20) {
20582 break;
20583 }
20584 d37 = +HEAPF32[i29 >> 2];
20585 if (d37 >= +HEAPF32[i30 >> 2]) {
20586 break;
20587 }
20588 d38 = d32 * +HEAPF32[i1 >> 2] + d34 * +HEAPF32[i1 + 4 >> 2] + d36 * +HEAPF32[i1 + 8 >> 2];
20589 d39 = d32 * +HEAPF32[i1 + 16 >> 2] + d34 * +HEAPF32[i1 + 20 >> 2] + d36 * +HEAPF32[i1 + 24 >> 2];
20590 d40 = d32 * +HEAPF32[i1 + 32 >> 2] + d34 * +HEAPF32[i1 + 36 >> 2] + d36 * +HEAPF32[i1 + 40 >> 2];
20591 HEAPF32[i11 + 144 >> 2] = 0.0;
20592 d36 = 1.0 / +Math_sqrt(+(d38 * d38 + d39 * d39 + d40 * d40));
20593 HEAPF32[i31 >> 2] = d38 * d36;
20594 HEAPF32[i33 >> 2] = d39 * d36;
20595 HEAPF32[i35 >> 2] = d40 * d36;
20596 HEAP32[i14 >> 2] = i3;
20597 HEAP32[i14 + 4 >> 2] = 0;
20598 i35 = i14 + 8 | 0;
20599 i33 = i12;
20600 HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
20601 HEAP32[i35 + 4 >> 2] = HEAP32[i33 + 4 >> 2];
20602 HEAP32[i35 + 8 >> 2] = HEAP32[i33 + 8 >> 2];
20603 HEAP32[i35 + 12 >> 2] = HEAP32[i33 + 12 >> 2];
20604 HEAPF32[i14 + 24 >> 2] = d37;
20605 i33 = HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0;
20606 +FUNCTION_TABLE_fiii[i33 & 15](i6, i14, 1);
20607 }
20608 } while (0);
20609 __ZN12btConvexCastD2Ev(i13 | 0);
20610 __ZN13btConvexShapeD2Ev(i28);
20611 STACKTOP = i7;
20612 return;
20613 }
20614 if ((i10 - 21 | 0) >>> 0 >= 9) {
20615 if ((i10 | 0) != 31) {
20616 __ZN13btConvexShapeD2Ev(i28);
20617 STACKTOP = i7;
20618 return;
20619 }
20620 i13 = i4;
20621 i14 = HEAP32[i4 + 64 >> 2] | 0;
20622 HEAP32[i23 >> 2] = 1752;
20623 i11 = i23 + 4 | 0;
20624 HEAP32[i11 >> 2] = i3;
20625 i30 = i23 + 8 | 0;
20626 HEAP32[i30 >> 2] = i13;
20627 i29 = i23 + 12 | 0;
20628 HEAP32[i29 >> 2] = i5;
20629 i33 = i23 + 16 | 0;
20630 HEAP32[i33 >> 2] = i1;
20631 i35 = i23 + 20 | 0;
20632 HEAP32[i35 >> 2] = i2;
20633 i12 = i23 + 24 | 0;
20634 HEAP32[i12 >> 2] = i6;
20635 if ((i14 | 0) != 0) {
20636 __ZNK11btTransform12inverseTimesERKS_(i25, i5, i1);
20637 i31 = i24;
20638 i41 = i25 + 48 | 0;
20639 HEAP32[i31 >> 2] = HEAP32[i41 >> 2];
20640 HEAP32[i31 + 4 >> 2] = HEAP32[i41 + 4 >> 2];
20641 HEAP32[i31 + 8 >> 2] = HEAP32[i41 + 8 >> 2];
20642 HEAP32[i31 + 12 >> 2] = HEAP32[i41 + 12 >> 2];
20643 __ZNK11btTransform12inverseTimesERKS_(i27, i5, i2);
20644 i41 = i26;
20645 i31 = i27 + 48 | 0;
20646 HEAP32[i41 >> 2] = HEAP32[i31 >> 2];
20647 HEAP32[i41 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
20648 HEAP32[i41 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
20649 HEAP32[i41 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
20650 __ZN6btDbvt7rayTestEPK10btDbvtNodeRK9btVector3S5_RNS_8ICollideE(HEAP32[i14 >> 2] | 0, i24, i26, i23 | 0);
20651 __ZN13btConvexShapeD2Ev(i28);
20652 STACKTOP = i7;
20653 return;
20654 }
20655 i23 = HEAP32[i4 + 16 >> 2] | 0;
20656 if ((i23 | 0) <= 0) {
20657 __ZN13btConvexShapeD2Ev(i28);
20658 STACKTOP = i7;
20659 return;
20660 }
20661 i26 = i9 | 0;
20662 i24 = i9 + 4 | 0;
20663 i14 = i9 + 8 | 0;
20664 i31 = i9 + 12 | 0;
20665 i41 = i9 + 14 | 0;
20666 i27 = i9 + 16 | 0;
20667 i25 = i9 + 20 | 0;
20668 i42 = i9 + 24 | 0;
20669 i43 = i9 | 0;
20670 i9 = 0;
20671 i44 = i13;
20672 i13 = i5;
20673 while (1) {
20674 i45 = HEAP32[i44 + 24 >> 2] | 0;
20675 i46 = HEAP32[i45 + (i9 * 80 | 0) + 64 >> 2] | 0;
20676 __ZNK11btTransformmlERKS_(i8, i13, i45 + (i9 * 80 | 0) | 0);
20677 i45 = (HEAP32[i11 >> 2] | 0) + 192 | 0;
20678 i47 = HEAP32[i45 >> 2] | 0;
20679 HEAP32[i45 >> 2] = i46;
20680 i45 = HEAP32[i12 >> 2] | 0;
20681 HEAPF32[i24 >> 2] = 1.0;
20682 HEAP32[i14 >> 2] = 0;
20683 HEAP16[i31 >> 1] = 1;
20684 HEAP16[i41 >> 1] = -1;
20685 HEAP32[i27 >> 2] = 0;
20686 HEAP32[i26 >> 2] = 1864;
20687 HEAP32[i25 >> 2] = i45;
20688 HEAP32[i42 >> 2] = i9;
20689 HEAPF32[i24 >> 2] = +HEAPF32[i45 + 4 >> 2];
20690 __ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(HEAP32[i33 >> 2] | 0, HEAP32[i35 >> 2] | 0, HEAP32[i11 >> 2] | 0, i46, i8, i43);
20691 HEAP32[(HEAP32[i11 >> 2] | 0) + 192 >> 2] = i47;
20692 i47 = i9 + 1 | 0;
20693 if ((i47 | 0) >= (i23 | 0)) {
20694 break;
20695 }
20696 i9 = i47;
20697 i44 = HEAP32[i30 >> 2] | 0;
20698 i13 = HEAP32[i29 >> 2] | 0;
20699 }
20700 __ZN13btConvexShapeD2Ev(i28);
20701 STACKTOP = i7;
20702 return;
20703 }
20704 if ((i10 | 0) == 21) {
20705 d37 = +HEAPF32[i5 >> 2];
20706 d36 = +HEAPF32[i5 + 16 >> 2];
20707 d40 = +HEAPF32[i5 + 32 >> 2];
20708 d39 = +HEAPF32[i5 + 4 >> 2];
20709 d38 = +HEAPF32[i5 + 20 >> 2];
20710 d34 = +HEAPF32[i5 + 36 >> 2];
20711 d32 = +HEAPF32[i5 + 8 >> 2];
20712 d48 = +HEAPF32[i5 + 24 >> 2];
20713 d49 = +HEAPF32[i5 + 40 >> 2];
20714 d50 = -0.0 - +HEAPF32[i5 + 48 >> 2];
20715 d51 = -0.0 - +HEAPF32[i5 + 52 >> 2];
20716 d52 = -0.0 - +HEAPF32[i5 + 56 >> 2];
20717 d53 = d37 * d50 + d36 * d51 + d40 * d52;
20718 d54 = d39 * d50 + d38 * d51 + d34 * d52;
20719 d55 = d32 * d50 + d48 * d51 + d49 * d52;
20720 d52 = +HEAPF32[i1 + 48 >> 2];
20721 d51 = +HEAPF32[i1 + 52 >> 2];
20722 d50 = +HEAPF32[i1 + 56 >> 2];
20723 HEAPF32[i15 >> 2] = d53 + (d37 * d52 + d36 * d51 + d40 * d50);
20724 HEAPF32[i15 + 4 >> 2] = d54 + (d39 * d52 + d38 * d51 + d34 * d50);
20725 HEAPF32[i15 + 8 >> 2] = d55 + (d32 * d52 + d48 * d51 + d49 * d50);
20726 HEAPF32[i15 + 12 >> 2] = 0.0;
20727 d50 = +HEAPF32[i2 + 48 >> 2];
20728 d51 = +HEAPF32[i2 + 52 >> 2];
20729 d52 = +HEAPF32[i2 + 56 >> 2];
20730 HEAPF32[i16 >> 2] = d53 + (d37 * d50 + d36 * d51 + d40 * d52);
20731 HEAPF32[i16 + 4 >> 2] = d54 + (d39 * d50 + d38 * d51 + d34 * d52);
20732 HEAPF32[i16 + 8 >> 2] = d55 + (d32 * d50 + d48 * d51 + d49 * d52);
20733 HEAPF32[i16 + 12 >> 2] = 0.0;
20734 __ZN25btTriangleRaycastCallbackC2ERK9btVector3S2_j(i17 | 0, i15, i16, HEAP32[i6 + 16 >> 2] | 0);
20735 HEAP32[i17 >> 2] = 1832;
20736 HEAP32[i17 + 44 >> 2] = i6;
20737 HEAP32[i17 + 48 >> 2] = i3;
20738 HEAP32[i17 + 52 >> 2] = i4;
20739 i10 = i17 + 56 | 0;
20740 i29 = i5;
20741 HEAP32[i10 >> 2] = HEAP32[i29 >> 2];
20742 HEAP32[i10 + 4 >> 2] = HEAP32[i29 + 4 >> 2];
20743 HEAP32[i10 + 8 >> 2] = HEAP32[i29 + 8 >> 2];
20744 HEAP32[i10 + 12 >> 2] = HEAP32[i29 + 12 >> 2];
20745 i29 = i17 + 72 | 0;
20746 i10 = i5 + 16 | 0;
20747 HEAP32[i29 >> 2] = HEAP32[i10 >> 2];
20748 HEAP32[i29 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
20749 HEAP32[i29 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
20750 HEAP32[i29 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
20751 i10 = i17 + 88 | 0;
20752 i29 = i5 + 32 | 0;
20753 HEAP32[i10 >> 2] = HEAP32[i29 >> 2];
20754 HEAP32[i10 + 4 >> 2] = HEAP32[i29 + 4 >> 2];
20755 HEAP32[i10 + 8 >> 2] = HEAP32[i29 + 8 >> 2];
20756 HEAP32[i10 + 12 >> 2] = HEAP32[i29 + 12 >> 2];
20757 i29 = i17 + 104 | 0;
20758 i10 = i5 + 48 | 0;
20759 HEAP32[i29 >> 2] = HEAP32[i10 >> 2];
20760 HEAP32[i29 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
20761 HEAP32[i29 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
20762 HEAP32[i29 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
20763 HEAPF32[i17 + 40 >> 2] = +HEAPF32[i6 + 4 >> 2];
20764 i10 = i17 | 0;
20765 __ZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_(i4, i10, i15, i16);
20766 __ZN18btTriangleCallbackD2Ev(i10);
20767 __ZN13btConvexShapeD2Ev(i28);
20768 STACKTOP = i7;
20769 return;
20770 }
20771 i10 = i4;
20772 d52 = +HEAPF32[i5 >> 2];
20773 d49 = +HEAPF32[i5 + 16 >> 2];
20774 d51 = +HEAPF32[i5 + 32 >> 2];
20775 d48 = +HEAPF32[i5 + 4 >> 2];
20776 d50 = +HEAPF32[i5 + 20 >> 2];
20777 d32 = +HEAPF32[i5 + 36 >> 2];
20778 d55 = +HEAPF32[i5 + 8 >> 2];
20779 d34 = +HEAPF32[i5 + 24 >> 2];
20780 d38 = +HEAPF32[i5 + 40 >> 2];
20781 d39 = -0.0 - +HEAPF32[i5 + 48 >> 2];
20782 d54 = -0.0 - +HEAPF32[i5 + 52 >> 2];
20783 d40 = -0.0 - +HEAPF32[i5 + 56 >> 2];
20784 d36 = d52 * d39 + d49 * d54 + d51 * d40;
20785 d37 = d48 * d39 + d50 * d54 + d32 * d40;
20786 d53 = d55 * d39 + d34 * d54 + d38 * d40;
20787 d40 = +HEAPF32[i1 + 48 >> 2];
20788 d54 = +HEAPF32[i1 + 52 >> 2];
20789 d39 = +HEAPF32[i1 + 56 >> 2];
20790 HEAPF32[i18 >> 2] = d36 + (d52 * d40 + d49 * d54 + d51 * d39);
20791 HEAPF32[i18 + 4 >> 2] = d37 + (d48 * d40 + d50 * d54 + d32 * d39);
20792 HEAPF32[i18 + 8 >> 2] = d53 + (d55 * d40 + d34 * d54 + d38 * d39);
20793 HEAPF32[i18 + 12 >> 2] = 0.0;
20794 d39 = +HEAPF32[i2 + 48 >> 2];
20795 d54 = +HEAPF32[i2 + 52 >> 2];
20796 d40 = +HEAPF32[i2 + 56 >> 2];
20797 i2 = i19 | 0;
20798 HEAPF32[i2 >> 2] = d36 + (d52 * d39 + d49 * d54 + d51 * d40);
20799 i1 = i19 + 4 | 0;
20800 HEAPF32[i1 >> 2] = d37 + (d48 * d39 + d50 * d54 + d32 * d40);
20801 i16 = i19 + 8 | 0;
20802 HEAPF32[i16 >> 2] = d53 + (d55 * d39 + d34 * d54 + d38 * d40);
20803 i15 = i19 + 12 | 0;
20804 HEAPF32[i15 >> 2] = 0.0;
20805 __ZN25btTriangleRaycastCallbackC2ERK9btVector3S2_j(i20 | 0, i18, i19, HEAP32[i6 + 16 >> 2] | 0);
20806 HEAP32[i20 >> 2] = 1800;
20807 HEAP32[i20 + 44 >> 2] = i6;
20808 HEAP32[i20 + 48 >> 2] = i3;
20809 HEAP32[i20 + 52 >> 2] = i10;
20810 i3 = i20 + 56 | 0;
20811 i19 = i5;
20812 HEAP32[i3 >> 2] = HEAP32[i19 >> 2];
20813 HEAP32[i3 + 4 >> 2] = HEAP32[i19 + 4 >> 2];
20814 HEAP32[i3 + 8 >> 2] = HEAP32[i19 + 8 >> 2];
20815 HEAP32[i3 + 12 >> 2] = HEAP32[i19 + 12 >> 2];
20816 i19 = i20 + 72 | 0;
20817 i3 = i5 + 16 | 0;
20818 HEAP32[i19 >> 2] = HEAP32[i3 >> 2];
20819 HEAP32[i19 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
20820 HEAP32[i19 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
20821 HEAP32[i19 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
20822 i3 = i20 + 88 | 0;
20823 i19 = i5 + 32 | 0;
20824 HEAP32[i3 >> 2] = HEAP32[i19 >> 2];
20825 HEAP32[i3 + 4 >> 2] = HEAP32[i19 + 4 >> 2];
20826 HEAP32[i3 + 8 >> 2] = HEAP32[i19 + 8 >> 2];
20827 HEAP32[i3 + 12 >> 2] = HEAP32[i19 + 12 >> 2];
20828 i19 = i20 + 104 | 0;
20829 i3 = i5 + 48 | 0;
20830 HEAP32[i19 >> 2] = HEAP32[i3 >> 2];
20831 HEAP32[i19 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
20832 HEAP32[i19 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
20833 HEAP32[i19 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
20834 HEAPF32[i20 + 40 >> 2] = +HEAPF32[i6 + 4 >> 2];
20835 i6 = i21;
20836 i3 = i18;
20837 HEAP32[i6 >> 2] = HEAP32[i3 >> 2];
20838 HEAP32[i6 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
20839 HEAP32[i6 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
20840 HEAP32[i6 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
20841 i6 = i21 | 0;
20842 d40 = +HEAPF32[i2 >> 2];
20843 if (d40 < +HEAPF32[i6 >> 2]) {
20844 HEAPF32[i6 >> 2] = d40;
20845 }
20846 i6 = i21 + 4 | 0;
20847 d38 = +HEAPF32[i1 >> 2];
20848 if (d38 < +HEAPF32[i6 >> 2]) {
20849 HEAPF32[i6 >> 2] = d38;
20850 }
20851 i6 = i21 + 8 | 0;
20852 d54 = +HEAPF32[i16 >> 2];
20853 if (d54 < +HEAPF32[i6 >> 2]) {
20854 HEAPF32[i6 >> 2] = d54;
20855 }
20856 i6 = i21 + 12 | 0;
20857 d34 = +HEAPF32[i15 >> 2];
20858 if (d34 < +HEAPF32[i6 >> 2]) {
20859 HEAPF32[i6 >> 2] = d34;
20860 }
20861 i6 = i22;
20862 HEAP32[i6 >> 2] = HEAP32[i3 >> 2];
20863 HEAP32[i6 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
20864 HEAP32[i6 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
20865 HEAP32[i6 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
20866 i3 = i22 | 0;
20867 if (+HEAPF32[i3 >> 2] < d40) {
20868 HEAPF32[i3 >> 2] = d40;
20869 }
20870 i3 = i22 + 4 | 0;
20871 if (+HEAPF32[i3 >> 2] < d38) {
20872 HEAPF32[i3 >> 2] = d38;
20873 }
20874 i3 = i22 + 8 | 0;
20875 if (+HEAPF32[i3 >> 2] < d54) {
20876 HEAPF32[i3 >> 2] = d54;
20877 }
20878 i3 = i22 + 12 | 0;
20879 if (+HEAPF32[i3 >> 2] < d34) {
20880 HEAPF32[i3 >> 2] = d34;
20881 }
20882 i3 = i20 | 0;
20883 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i4 >> 2] | 0) + 60 >> 2] & 127](i10, i3, i21, i22);
20884 __ZN18btTriangleCallbackD2Ev(i3);
20885 __ZN13btConvexShapeD2Ev(i28);
20886 STACKTOP = i7;
20887 return;
20888 }
20889 function __ZN28btCompoundCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
20890 i1 = i1 | 0;
20891 i2 = i2 | 0;
20892 i3 = i3 | 0;
20893 i4 = i4 | 0;
20894 i5 = i5 | 0;
20895 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, d48 = 0.0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0, d61 = 0.0, d62 = 0.0, d63 = 0.0, d64 = 0.0, d65 = 0.0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0;
20896 i6 = STACKTOP;
20897 STACKTOP = STACKTOP + 312 | 0;
20898 i7 = i6 | 0;
20899 i8 = i6 + 32 | 0;
20900 i9 = i6 + 56 | 0;
20901 i10 = i6 + 72 | 0;
20902 i11 = i6 + 88 | 0;
20903 i12 = i6 + 152 | 0;
20904 i13 = i6 + 184 | 0;
20905 i14 = i6 + 248 | 0;
20906 i15 = i6 + 264 | 0;
20907 i16 = i6 + 280 | 0;
20908 i17 = i6 + 296 | 0;
20909 i18 = (HEAP8[i1 + 28 | 0] | 0) != 0;
20910 i19 = i18 ? i3 : i2;
20911 i20 = i18 ? i2 : i3;
20912 i18 = HEAP32[i19 + 192 >> 2] | 0;
20913 i21 = i1 + 12 | 0;
20914 if ((HEAP32[i18 + 68 >> 2] | 0) != (HEAP32[i1 + 40 >> 2] | 0)) {
20915 i22 = HEAP32[i21 >> 2] | 0;
20916 if ((i22 | 0) > 0) {
20917 i23 = i1 + 20 | 0;
20918 i24 = i1 + 4 | 0;
20919 i25 = 0;
20920 do {
20921 i26 = HEAP32[(HEAP32[i23 >> 2] | 0) + (i25 << 2) >> 2] | 0;
20922 if ((i26 | 0) != 0) {
20923 FUNCTION_TABLE_vi[HEAP32[HEAP32[i26 >> 2] >> 2] & 511](i26);
20924 i26 = HEAP32[i24 >> 2] | 0;
20925 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i26 >> 2] | 0) + 60 >> 2] & 127](i26, HEAP32[(HEAP32[i23 >> 2] | 0) + (i25 << 2) >> 2] | 0);
20926 }
20927 i25 = i25 + 1 | 0;
20928 } while ((i25 | 0) < (i22 | 0));
20929 }
20930 __ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(i1, i2, i3);
20931 }
20932 i3 = HEAP32[i18 + 64 >> 2] | 0;
20933 i2 = i1 + 4 | 0;
20934 i22 = HEAP32[i2 >> 2] | 0;
20935 i25 = i1 + 20 | 0;
20936 i23 = HEAP32[i25 >> 2] | 0;
20937 i24 = HEAP32[i1 + 32 >> 2] | 0;
20938 HEAP32[i7 >> 2] = 3568;
20939 HEAP32[i7 + 4 >> 2] = i19;
20940 HEAP32[i7 + 8 >> 2] = i20;
20941 HEAP32[i7 + 12 >> 2] = i22;
20942 HEAP32[i7 + 16 >> 2] = i4;
20943 HEAP32[i7 + 20 >> 2] = i5;
20944 HEAP32[i7 + 24 >> 2] = i23;
20945 HEAP32[i7 + 28 >> 2] = i24;
20946 i24 = i8 + 16 | 0;
20947 HEAP8[i24] = 1;
20948 i4 = i8 + 12 | 0;
20949 HEAP32[i4 >> 2] = 0;
20950 i22 = i8 + 4 | 0;
20951 HEAP32[i22 >> 2] = 0;
20952 i1 = i8 + 8 | 0;
20953 HEAP32[i1 >> 2] = 0;
20954 i26 = HEAP32[i21 >> 2] | 0;
20955 do {
20956 if ((i26 | 0) > 0) {
20957 i27 = i5 + 4 | 0;
20958 i28 = i5 + 136 | 0;
20959 i29 = i5 + 8 | 0;
20960 i30 = i5 + 72 | 0;
20961 i31 = 0;
20962 i32 = i26;
20963 i33 = i23;
20964 while (1) {
20965 i34 = HEAP32[i33 + (i31 << 2) >> 2] | 0;
20966 if ((i34 | 0) == 0) {
20967 i35 = i32;
20968 } else {
20969 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i34 >> 2] | 0) + 16 >> 2] & 127](i34, i8);
20970 i34 = HEAP32[i22 >> 2] | 0;
20971 if ((i34 | 0) > 0) {
20972 i36 = 0;
20973 i37 = i34;
20974 while (1) {
20975 i38 = HEAP32[(HEAP32[i4 >> 2] | 0) + (i36 << 2) >> 2] | 0;
20976 if ((HEAP32[i38 + 1116 >> 2] | 0) == 0) {
20977 i39 = i37;
20978 } else {
20979 HEAP32[i27 >> 2] = i38;
20980 if ((HEAP32[i38 + 1108 >> 2] | 0) == (HEAP32[i28 >> 2] | 0)) {
20981 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i38, i29, i30);
20982 } else {
20983 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i38, i30, i29);
20984 }
20985 HEAP32[i27 >> 2] = 0;
20986 i39 = HEAP32[i22 >> 2] | 0;
20987 }
20988 i38 = i36 + 1 | 0;
20989 if ((i38 | 0) < (i39 | 0)) {
20990 i36 = i38;
20991 i37 = i39;
20992 } else {
20993 i40 = i39;
20994 break;
20995 }
20996 }
20997 } else {
20998 i40 = i34;
20999 }
21000 if ((i40 | 0) < 0) {
21001 if ((HEAP32[i1 >> 2] | 0) < 0) {
21002 i37 = HEAP32[i4 >> 2] | 0;
21003 if ((i40 | 0) > 0) {
21004 i36 = 0;
21005 do {
21006 if ((i36 | 0) != 0) {
21007 HEAP32[i36 << 2 >> 2] = HEAP32[i37 + (i36 << 2) >> 2];
21008 }
21009 i36 = i36 + 1 | 0;
21010 } while ((i36 | 0) < (i40 | 0));
21011 }
21012 if ((i37 | 0) != 0) {
21013 if ((HEAP8[i24] | 0) != 0) {
21014 __Z21btAlignedFreeInternalPv(i37);
21015 }
21016 HEAP32[i4 >> 2] = 0;
21017 }
21018 HEAP8[i24] = 1;
21019 HEAP32[i4 >> 2] = 0;
21020 HEAP32[i1 >> 2] = 0;
21021 i41 = i40;
21022 } else {
21023 i41 = i40;
21024 }
21025 do {
21026 i36 = (HEAP32[i4 >> 2] | 0) + (i41 << 2) | 0;
21027 if ((i36 | 0) != 0) {
21028 HEAP32[i36 >> 2] = 0;
21029 }
21030 i41 = i41 + 1 | 0;
21031 } while ((i41 | 0) < 0);
21032 }
21033 HEAP32[i22 >> 2] = 0;
21034 i35 = HEAP32[i21 >> 2] | 0;
21035 }
21036 i37 = i31 + 1 | 0;
21037 if ((i37 | 0) >= (i35 | 0)) {
21038 break;
21039 }
21040 i31 = i37;
21041 i32 = i35;
21042 i33 = HEAP32[i25 >> 2] | 0;
21043 }
21044 i33 = HEAP32[i4 >> 2] | 0;
21045 if ((i33 | 0) == 0) {
21046 break;
21047 }
21048 if ((HEAP8[i24] | 0) != 0) {
21049 __Z21btAlignedFreeInternalPv(i33);
21050 }
21051 HEAP32[i4 >> 2] = 0;
21052 }
21053 } while (0);
21054 HEAP8[i24] = 1;
21055 HEAP32[i4 >> 2] = 0;
21056 HEAP32[i22 >> 2] = 0;
21057 HEAP32[i1 >> 2] = 0;
21058 if ((i3 | 0) == 0) {
21059 i1 = HEAP32[i21 >> 2] | 0;
21060 if ((i1 | 0) <= 0) {
21061 STACKTOP = i6;
21062 return;
21063 }
21064 i22 = i18 + 24 | 0;
21065 i4 = 0;
21066 do {
21067 __ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i7, HEAP32[(HEAP32[i22 >> 2] | 0) + (i4 * 80 | 0) + 64 >> 2] | 0, i4);
21068 i4 = i4 + 1 | 0;
21069 } while ((i4 | 0) < (i1 | 0));
21070 } else {
21071 d42 = +HEAPF32[i19 + 4 >> 2];
21072 d43 = +HEAPF32[i19 + 20 >> 2];
21073 d44 = +HEAPF32[i19 + 36 >> 2];
21074 d45 = +HEAPF32[i19 + 8 >> 2];
21075 d46 = +HEAPF32[i19 + 24 >> 2];
21076 d47 = +HEAPF32[i19 + 40 >> 2];
21077 d48 = +HEAPF32[i19 + 12 >> 2];
21078 d49 = +HEAPF32[i19 + 28 >> 2];
21079 d50 = +HEAPF32[i19 + 44 >> 2];
21080 d51 = -0.0 - +HEAPF32[i19 + 52 >> 2];
21081 d52 = -0.0 - +HEAPF32[i19 + 56 >> 2];
21082 d53 = -0.0 - +HEAPF32[i19 + 60 >> 2];
21083 d54 = +HEAPF32[i20 + 4 >> 2];
21084 d55 = +HEAPF32[i20 + 20 >> 2];
21085 d56 = +HEAPF32[i20 + 36 >> 2];
21086 d57 = +HEAPF32[i20 + 8 >> 2];
21087 d58 = +HEAPF32[i20 + 24 >> 2];
21088 d59 = +HEAPF32[i20 + 40 >> 2];
21089 d60 = +HEAPF32[i20 + 12 >> 2];
21090 d61 = +HEAPF32[i20 + 28 >> 2];
21091 d62 = +HEAPF32[i20 + 44 >> 2];
21092 d63 = +HEAPF32[i20 + 52 >> 2];
21093 d64 = +HEAPF32[i20 + 56 >> 2];
21094 d65 = +HEAPF32[i20 + 60 >> 2];
21095 HEAPF32[i11 >> 2] = d42 * d54 + d43 * d55 + d44 * d56;
21096 HEAPF32[i11 + 4 >> 2] = d42 * d57 + d43 * d58 + d44 * d59;
21097 HEAPF32[i11 + 8 >> 2] = d42 * d60 + d43 * d61 + d44 * d62;
21098 HEAPF32[i11 + 12 >> 2] = 0.0;
21099 HEAPF32[i11 + 16 >> 2] = d45 * d54 + d46 * d55 + d47 * d56;
21100 HEAPF32[i11 + 20 >> 2] = d45 * d57 + d46 * d58 + d47 * d59;
21101 HEAPF32[i11 + 24 >> 2] = d45 * d60 + d46 * d61 + d47 * d62;
21102 HEAPF32[i11 + 28 >> 2] = 0.0;
21103 HEAPF32[i11 + 32 >> 2] = d48 * d54 + d49 * d55 + d50 * d56;
21104 HEAPF32[i11 + 36 >> 2] = d48 * d57 + d49 * d58 + d50 * d59;
21105 HEAPF32[i11 + 40 >> 2] = d48 * d60 + d49 * d61 + d50 * d62;
21106 HEAPF32[i11 + 44 >> 2] = 0.0;
21107 HEAPF32[i11 + 48 >> 2] = d42 * d51 + d43 * d52 + d44 * d53 + (d42 * d63 + d43 * d64 + d44 * d65);
21108 HEAPF32[i11 + 52 >> 2] = d45 * d51 + d46 * d52 + d47 * d53 + (d45 * d63 + d46 * d64 + d47 * d65);
21109 HEAPF32[i11 + 56 >> 2] = d48 * d51 + d49 * d52 + d50 * d53 + (d48 * d63 + d49 * d64 + d50 * d65);
21110 HEAPF32[i11 + 60 >> 2] = 0.0;
21111 i1 = HEAP32[i20 + 192 >> 2] | 0;
21112 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i1, i11, i9, i10);
21113 i11 = i12;
21114 i1 = i9;
21115 HEAP32[i11 >> 2] = HEAP32[i1 >> 2];
21116 HEAP32[i11 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
21117 HEAP32[i11 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
21118 HEAP32[i11 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
21119 i1 = i12 + 16 | 0;
21120 i11 = i10;
21121 HEAP32[i1 >> 2] = HEAP32[i11 >> 2];
21122 HEAP32[i1 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
21123 HEAP32[i1 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
21124 HEAP32[i1 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
21125 __ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(0, HEAP32[i3 >> 2] | 0, i12, i7 | 0);
21126 }
21127 i7 = HEAP32[i21 >> 2] | 0;
21128 if ((i7 | 0) <= 0) {
21129 STACKTOP = i6;
21130 return;
21131 }
21132 i21 = i18 + 24 | 0;
21133 i18 = i19 + 4 | 0;
21134 i12 = i19 + 8 | 0;
21135 i3 = i19 + 12 | 0;
21136 i11 = i19 + 20 | 0;
21137 i1 = i19 + 24 | 0;
21138 i10 = i19 + 28 | 0;
21139 i9 = i19 + 36 | 0;
21140 i4 = i19 + 40 | 0;
21141 i22 = i19 + 44 | 0;
21142 i24 = i19 + 52 | 0;
21143 i35 = i19 + 56 | 0;
21144 i41 = i19 + 60 | 0;
21145 i19 = i13 | 0;
21146 i40 = i13 + 4 | 0;
21147 i39 = i13 + 8 | 0;
21148 i8 = i13 + 12 | 0;
21149 i23 = i13 + 16 | 0;
21150 i26 = i13 + 20 | 0;
21151 i5 = i13 + 24 | 0;
21152 i33 = i13 + 28 | 0;
21153 i32 = i13 + 32 | 0;
21154 i31 = i13 + 36 | 0;
21155 i27 = i13 + 40 | 0;
21156 i29 = i13 + 44 | 0;
21157 i30 = i13 + 48 | 0;
21158 i28 = i13 + 52 | 0;
21159 i37 = i13 + 56 | 0;
21160 i36 = i13 + 60 | 0;
21161 i34 = i20 + 192 | 0;
21162 i38 = i20 + 4 | 0;
21163 i20 = i14 | 0;
21164 i66 = i17 | 0;
21165 i67 = i14 + 8 | 0;
21166 i68 = i17 + 8 | 0;
21167 i69 = i14 + 4 | 0;
21168 i70 = i17 + 4 | 0;
21169 i71 = i15 + 4 | 0;
21170 i72 = i16 + 4 | 0;
21171 i73 = i15 + 8 | 0;
21172 i74 = i16 + 8 | 0;
21173 i75 = i15 | 0;
21174 i76 = i16 | 0;
21175 i77 = 0;
21176 do {
21177 do {
21178 if ((HEAP32[(HEAP32[i25 >> 2] | 0) + (i77 << 2) >> 2] | 0) != 0) {
21179 i78 = HEAP32[i21 >> 2] | 0;
21180 i79 = HEAP32[i78 + (i77 * 80 | 0) + 64 >> 2] | 0;
21181 d65 = +HEAPF32[i18 >> 2];
21182 d50 = +HEAPF32[i12 >> 2];
21183 d64 = +HEAPF32[i3 >> 2];
21184 d49 = +HEAPF32[i11 >> 2];
21185 d63 = +HEAPF32[i1 >> 2];
21186 d48 = +HEAPF32[i10 >> 2];
21187 d53 = +HEAPF32[i9 >> 2];
21188 d52 = +HEAPF32[i4 >> 2];
21189 d51 = +HEAPF32[i22 >> 2];
21190 d47 = +HEAPF32[i78 + (i77 * 80 | 0) >> 2];
21191 d46 = +HEAPF32[i78 + (i77 * 80 | 0) + 16 >> 2];
21192 d45 = +HEAPF32[i78 + (i77 * 80 | 0) + 32 >> 2];
21193 d44 = +HEAPF32[i78 + (i77 * 80 | 0) + 4 >> 2];
21194 d43 = +HEAPF32[i78 + (i77 * 80 | 0) + 20 >> 2];
21195 d42 = +HEAPF32[i78 + (i77 * 80 | 0) + 36 >> 2];
21196 d62 = +HEAPF32[i78 + (i77 * 80 | 0) + 8 >> 2];
21197 d61 = +HEAPF32[i78 + (i77 * 80 | 0) + 24 >> 2];
21198 d60 = +HEAPF32[i78 + (i77 * 80 | 0) + 40 >> 2];
21199 d59 = +HEAPF32[i78 + (i77 * 80 | 0) + 48 >> 2];
21200 d58 = +HEAPF32[i78 + (i77 * 80 | 0) + 52 >> 2];
21201 d57 = +HEAPF32[i78 + (i77 * 80 | 0) + 56 >> 2];
21202 d56 = +HEAPF32[i24 >> 2] + (d65 * d59 + d50 * d58 + d64 * d57);
21203 d55 = +HEAPF32[i35 >> 2] + (d49 * d59 + d63 * d58 + d48 * d57);
21204 d54 = +HEAPF32[i41 >> 2] + (d53 * d59 + d52 * d58 + d51 * d57);
21205 HEAPF32[i19 >> 2] = d65 * d47 + d50 * d46 + d64 * d45;
21206 HEAPF32[i40 >> 2] = d65 * d44 + d50 * d43 + d64 * d42;
21207 HEAPF32[i39 >> 2] = d65 * d62 + d50 * d61 + d64 * d60;
21208 HEAPF32[i8 >> 2] = 0.0;
21209 HEAPF32[i23 >> 2] = d49 * d47 + d63 * d46 + d48 * d45;
21210 HEAPF32[i26 >> 2] = d49 * d44 + d63 * d43 + d48 * d42;
21211 HEAPF32[i5 >> 2] = d49 * d62 + d63 * d61 + d48 * d60;
21212 HEAPF32[i33 >> 2] = 0.0;
21213 HEAPF32[i32 >> 2] = d53 * d47 + d52 * d46 + d51 * d45;
21214 HEAPF32[i31 >> 2] = d53 * d44 + d52 * d43 + d51 * d42;
21215 HEAPF32[i27 >> 2] = d53 * d62 + d52 * d61 + d51 * d60;
21216 HEAPF32[i29 >> 2] = 0.0;
21217 HEAPF32[i30 >> 2] = d56;
21218 HEAPF32[i28 >> 2] = d55;
21219 HEAPF32[i37 >> 2] = d54;
21220 HEAPF32[i36 >> 2] = 0.0;
21221 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i79 >> 2] | 0) + 8 >> 2] & 127](i79, i13, i14, i15);
21222 i79 = HEAP32[i34 >> 2] | 0;
21223 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i79 >> 2] | 0) + 8 >> 2] & 127](i79, i38, i16, i17);
21224 do {
21225 if (+HEAPF32[i20 >> 2] > +HEAPF32[i66 >> 2]) {
21226 i80 = 0;
21227 } else {
21228 if (+HEAPF32[i75 >> 2] < +HEAPF32[i76 >> 2]) {
21229 i80 = 0;
21230 break;
21231 }
21232 i80 = 1;
21233 }
21234 } while (0);
21235 do {
21236 if (+HEAPF32[i67 >> 2] > +HEAPF32[i68 >> 2]) {
21237 i81 = 0;
21238 } else {
21239 if (+HEAPF32[i73 >> 2] < +HEAPF32[i74 >> 2]) {
21240 i81 = 0;
21241 break;
21242 }
21243 i81 = i80;
21244 }
21245 } while (0);
21246 if (+HEAPF32[i69 >> 2] <= +HEAPF32[i70 >> 2]) {
21247 if (!(+HEAPF32[i71 >> 2] < +HEAPF32[i72 >> 2] | i81 ^ 1)) {
21248 break;
21249 }
21250 }
21251 i79 = HEAP32[(HEAP32[i25 >> 2] | 0) + (i77 << 2) >> 2] | 0;
21252 FUNCTION_TABLE_vi[HEAP32[HEAP32[i79 >> 2] >> 2] & 511](i79);
21253 i79 = HEAP32[i2 >> 2] | 0;
21254 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i79 >> 2] | 0) + 60 >> 2] & 127](i79, HEAP32[(HEAP32[i25 >> 2] | 0) + (i77 << 2) >> 2] | 0);
21255 HEAP32[(HEAP32[i25 >> 2] | 0) + (i77 << 2) >> 2] = 0;
21256 }
21257 } while (0);
21258 i77 = i77 + 1 | 0;
21259 } while ((i77 | 0) < (i7 | 0));
21260 STACKTOP = i6;
21261 return;
21262 }
21263 function __ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i1, i2, i3, i4, i5, i6) {
21264 i1 = i1 | 0;
21265 i2 = i2 | 0;
21266 i3 = i3 | 0;
21267 i4 = i4 | 0;
21268 i5 = i5 | 0;
21269 i6 = i6 | 0;
21270 var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, d25 = 0.0, i26 = 0, i27 = 0, d28 = 0.0, i29 = 0, d30 = 0.0, i31 = 0, i32 = 0, d33 = 0.0, i34 = 0, i35 = 0, d36 = 0.0, i37 = 0, d38 = 0.0, i39 = 0, d40 = 0.0, i41 = 0, d42 = 0.0, i43 = 0, d44 = 0.0, i45 = 0, d46 = 0.0, i47 = 0, d48 = 0.0, i49 = 0, d50 = 0.0, i51 = 0, d52 = 0.0, i53 = 0, d54 = 0.0, i55 = 0, d56 = 0.0, d57 = 0.0, i58 = 0, d59 = 0.0, i60 = 0, d61 = 0.0, i62 = 0, d63 = 0.0, i64 = 0, d65 = 0.0, i66 = 0, d67 = 0.0, i68 = 0, d69 = 0.0, i70 = 0, d71 = 0.0, i72 = 0, d73 = 0.0, d74 = 0.0, d75 = 0.0, d76 = 0.0, i77 = 0, i78 = 0, d79 = 0.0, d80 = 0.0, d81 = 0.0, d82 = 0.0, d83 = 0.0, d84 = 0.0, d85 = 0.0, d86 = 0.0, d87 = 0.0, i88 = 0, i89 = 0, i90 = 0, i91 = 0, i92 = 0, d93 = 0.0, d94 = 0.0, d95 = 0.0, i96 = 0, d97 = 0.0, d98 = 0.0, d99 = 0.0, d100 = 0.0, i101 = 0, d102 = 0.0, d103 = 0.0, d104 = 0.0, d105 = 0.0, i106 = 0, i107 = 0, d108 = 0.0, d109 = 0.0, d110 = 0.0, d111 = 0.0, d112 = 0.0, d113 = 0.0, d114 = 0.0, d115 = 0.0, d116 = 0.0, i117 = 0, i118 = 0, d119 = 0.0, d120 = 0.0, d121 = 0.0, d122 = 0.0, d123 = 0.0, d124 = 0.0, d125 = 0.0, d126 = 0.0, d127 = 0.0, d128 = 0.0, d129 = 0.0, d130 = 0.0, d131 = 0.0, d132 = 0.0, d133 = 0.0;
21271 i7 = STACKTOP;
21272 STACKTOP = STACKTOP + 224 | 0;
21273 i8 = i7 | 0;
21274 i9 = i7 + 16 | 0;
21275 i10 = i7 + 32 | 0;
21276 i11 = i7 + 48 | 0;
21277 i12 = i7 + 64 | 0;
21278 i13 = i7 + 80 | 0;
21279 i14 = i7 + 96 | 0;
21280 i15 = i7 + 112 | 0;
21281 i16 = i7 + 128 | 0;
21282 i17 = i7 + 144 | 0;
21283 i18 = i7 + 160 | 0;
21284 i19 = i7 + 176 | 0;
21285 i20 = i7 + 192 | 0;
21286 i21 = i7 + 208 | 0;
21287 i22 = i1 + 4 | 0;
21288 __ZN22btVoronoiSimplexSolver5resetEv(HEAP32[i22 >> 2] | 0);
21289 i23 = i3 + 48 | 0;
21290 i24 = i2 + 48 | 0;
21291 d25 = +HEAPF32[i24 >> 2];
21292 i26 = i3 + 52 | 0;
21293 i27 = i2 + 52 | 0;
21294 d28 = +HEAPF32[i27 >> 2];
21295 i29 = i3 + 56 | 0;
21296 i3 = i2 + 56 | 0;
21297 d30 = +HEAPF32[i3 >> 2];
21298 i31 = i5 + 48 | 0;
21299 i32 = i4 + 48 | 0;
21300 d33 = +HEAPF32[i32 >> 2];
21301 i34 = i5 + 52 | 0;
21302 i35 = i4 + 52 | 0;
21303 d36 = +HEAPF32[i35 >> 2];
21304 i37 = i5 + 56 | 0;
21305 i5 = i4 + 56 | 0;
21306 d38 = +HEAPF32[i5 >> 2];
21307 i39 = i2 | 0;
21308 d40 = +HEAPF32[i39 >> 2];
21309 i41 = i2 + 4 | 0;
21310 d42 = +HEAPF32[i41 >> 2];
21311 i43 = i2 + 8 | 0;
21312 d44 = +HEAPF32[i43 >> 2];
21313 i45 = i2 + 16 | 0;
21314 d46 = +HEAPF32[i45 >> 2];
21315 i47 = i2 + 20 | 0;
21316 d48 = +HEAPF32[i47 >> 2];
21317 i49 = i2 + 24 | 0;
21318 d50 = +HEAPF32[i49 >> 2];
21319 i51 = i2 + 32 | 0;
21320 d52 = +HEAPF32[i51 >> 2];
21321 i53 = i2 + 36 | 0;
21322 d54 = +HEAPF32[i53 >> 2];
21323 i55 = i2 + 40 | 0;
21324 d56 = +HEAPF32[i55 >> 2];
21325 i2 = i4 | 0;
21326 d57 = +HEAPF32[i2 >> 2];
21327 i58 = i4 + 4 | 0;
21328 d59 = +HEAPF32[i58 >> 2];
21329 i60 = i4 + 8 | 0;
21330 d61 = +HEAPF32[i60 >> 2];
21331 i62 = i4 + 16 | 0;
21332 d63 = +HEAPF32[i62 >> 2];
21333 i64 = i4 + 20 | 0;
21334 d65 = +HEAPF32[i64 >> 2];
21335 i66 = i4 + 24 | 0;
21336 d67 = +HEAPF32[i66 >> 2];
21337 i68 = i4 + 32 | 0;
21338 d69 = +HEAPF32[i68 >> 2];
21339 i70 = i4 + 36 | 0;
21340 d71 = +HEAPF32[i70 >> 2];
21341 i72 = i4 + 40 | 0;
21342 d73 = +HEAPF32[i72 >> 2];
21343 d74 = +HEAPF32[i23 >> 2] - d25 - (+HEAPF32[i31 >> 2] - d33);
21344 d75 = +HEAPF32[i26 >> 2] - d28 - (+HEAPF32[i34 >> 2] - d36);
21345 d76 = +HEAPF32[i29 >> 2] - d30 - (+HEAPF32[i37 >> 2] - d38);
21346 i4 = i1 + 8 | 0;
21347 i77 = HEAP32[i4 >> 2] | 0;
21348 i78 = HEAP32[(HEAP32[i77 >> 2] | 0) + 60 >> 2] | 0;
21349 d79 = -0.0 - d74;
21350 d80 = -0.0 - d75;
21351 d81 = -0.0 - d76;
21352 HEAPF32[i11 >> 2] = d40 * d79 + d46 * d80 + d52 * d81;
21353 HEAPF32[i11 + 4 >> 2] = d42 * d79 + d48 * d80 + d54 * d81;
21354 HEAPF32[i11 + 8 >> 2] = d44 * d79 + d50 * d80 + d56 * d81;
21355 HEAPF32[i11 + 12 >> 2] = 0.0;
21356 FUNCTION_TABLE_viii[i78 & 127](i10, i77, i11);
21357 d81 = +HEAPF32[i10 >> 2];
21358 d80 = +HEAPF32[i10 + 4 >> 2];
21359 d79 = +HEAPF32[i10 + 8 >> 2];
21360 d82 = +HEAPF32[i24 >> 2] + (+HEAPF32[i39 >> 2] * d81 + +HEAPF32[i41 >> 2] * d80 + +HEAPF32[i43 >> 2] * d79);
21361 d83 = +HEAPF32[i27 >> 2] + (d81 * +HEAPF32[i45 >> 2] + d80 * +HEAPF32[i47 >> 2] + d79 * +HEAPF32[i49 >> 2]);
21362 d84 = +HEAPF32[i3 >> 2] + (d81 * +HEAPF32[i51 >> 2] + d80 * +HEAPF32[i53 >> 2] + d79 * +HEAPF32[i55 >> 2]);
21363 i55 = i9 | 0;
21364 HEAPF32[i55 >> 2] = d82;
21365 i53 = i9 + 4 | 0;
21366 HEAPF32[i53 >> 2] = d83;
21367 i51 = i9 + 8 | 0;
21368 HEAPF32[i51 >> 2] = d84;
21369 i49 = i9 + 12 | 0;
21370 HEAPF32[i49 >> 2] = 0.0;
21371 i47 = i1 + 12 | 0;
21372 i1 = HEAP32[i47 >> 2] | 0;
21373 i45 = HEAP32[(HEAP32[i1 >> 2] | 0) + 60 >> 2] | 0;
21374 d79 = d74 * +HEAPF32[i58 >> 2] + d75 * +HEAPF32[i64 >> 2] + d76 * +HEAPF32[i70 >> 2];
21375 d80 = d74 * +HEAPF32[i60 >> 2] + d75 * +HEAPF32[i66 >> 2] + d76 * +HEAPF32[i72 >> 2];
21376 HEAPF32[i14 >> 2] = d74 * +HEAPF32[i2 >> 2] + d75 * +HEAPF32[i62 >> 2] + d76 * +HEAPF32[i68 >> 2];
21377 HEAPF32[i14 + 4 >> 2] = d79;
21378 HEAPF32[i14 + 8 >> 2] = d80;
21379 HEAPF32[i14 + 12 >> 2] = 0.0;
21380 FUNCTION_TABLE_viii[i45 & 127](i13, i1, i14);
21381 d80 = +HEAPF32[i13 >> 2];
21382 d79 = +HEAPF32[i13 + 4 >> 2];
21383 d81 = +HEAPF32[i13 + 8 >> 2];
21384 d85 = +HEAPF32[i32 >> 2] + (+HEAPF32[i2 >> 2] * d80 + +HEAPF32[i58 >> 2] * d79 + +HEAPF32[i60 >> 2] * d81);
21385 d86 = +HEAPF32[i35 >> 2] + (d80 * +HEAPF32[i62 >> 2] + d79 * +HEAPF32[i64 >> 2] + d81 * +HEAPF32[i66 >> 2]);
21386 d87 = +HEAPF32[i5 >> 2] + (d80 * +HEAPF32[i68 >> 2] + d79 * +HEAPF32[i70 >> 2] + d81 * +HEAPF32[i72 >> 2]);
21387 i72 = i12 | 0;
21388 HEAPF32[i72 >> 2] = d85;
21389 i70 = i12 + 4 | 0;
21390 HEAPF32[i70 >> 2] = d86;
21391 i68 = i12 + 8 | 0;
21392 HEAPF32[i68 >> 2] = d87;
21393 i66 = i12 + 12 | 0;
21394 HEAPF32[i66 >> 2] = 0.0;
21395 d81 = d82 - d85;
21396 d85 = d83 - d86;
21397 d86 = d84 - d87;
21398 i64 = i8 | 0;
21399 HEAPF32[i64 >> 2] = d81;
21400 i62 = i8 + 4 | 0;
21401 HEAPF32[i62 >> 2] = d85;
21402 i60 = i8 + 8 | 0;
21403 HEAPF32[i60 >> 2] = d86;
21404 HEAPF32[i8 + 12 >> 2] = 0.0;
21405 L561 : do {
21406 if (d81 * d81 + d85 * d85 + d86 * d86 > 9999999747378752.0e-20) {
21407 i58 = i17 | 0;
21408 i2 = i17 + 4 | 0;
21409 i13 = i17 + 8 | 0;
21410 i14 = i17 + 12 | 0;
21411 i1 = i16 | 0;
21412 i45 = i16 + 4 | 0;
21413 i43 = i16 + 8 | 0;
21414 i41 = i19 | 0;
21415 i39 = i19 + 4 | 0;
21416 i10 = i19 + 8 | 0;
21417 i11 = i19 + 12 | 0;
21418 i77 = i18 | 0;
21419 i78 = i18 + 4 | 0;
21420 i88 = i18 + 8 | 0;
21421 i89 = i15 | 0;
21422 i90 = i15 + 4 | 0;
21423 i91 = i15 + 8 | 0;
21424 i92 = i15 + 12 | 0;
21425 d87 = d30;
21426 d84 = d28;
21427 d83 = d25;
21428 d82 = d38;
21429 d79 = d36;
21430 d80 = d33;
21431 d93 = 0.0;
21432 d94 = 0.0;
21433 d95 = 0.0;
21434 i96 = 32;
21435 d97 = 0.0;
21436 d98 = d81;
21437 d99 = d85;
21438 d100 = d86;
21439 while (1) {
21440 i101 = i96 - 1 | 0;
21441 if ((i96 | 0) == 0) {
21442 d102 = d93;
21443 d103 = d94;
21444 d104 = d95;
21445 d105 = d97;
21446 break L561;
21447 }
21448 i106 = HEAP32[i4 >> 2] | 0;
21449 i107 = HEAP32[(HEAP32[i106 >> 2] | 0) + 60 >> 2] | 0;
21450 d108 = -0.0 - d98;
21451 d109 = -0.0 - d99;
21452 d110 = -0.0 - d100;
21453 HEAPF32[i58 >> 2] = d40 * d108 + d46 * d109 + d52 * d110;
21454 HEAPF32[i2 >> 2] = d42 * d108 + d48 * d109 + d54 * d110;
21455 HEAPF32[i13 >> 2] = d44 * d108 + d50 * d109 + d56 * d110;
21456 HEAPF32[i14 >> 2] = 0.0;
21457 FUNCTION_TABLE_viii[i107 & 127](i16, i106, i17);
21458 d110 = +HEAPF32[i1 >> 2];
21459 d109 = +HEAPF32[i45 >> 2];
21460 d108 = +HEAPF32[i43 >> 2];
21461 d111 = d83 + (d40 * d110 + d42 * d109 + d44 * d108);
21462 d112 = d84 + (d46 * d110 + d48 * d109 + d50 * d108);
21463 d113 = d87 + (d52 * d110 + d54 * d109 + d56 * d108);
21464 HEAPF32[i55 >> 2] = d111;
21465 HEAPF32[i53 >> 2] = d112;
21466 HEAPF32[i51 >> 2] = d113;
21467 HEAPF32[i49 >> 2] = 0.0;
21468 i106 = HEAP32[i47 >> 2] | 0;
21469 i107 = HEAP32[(HEAP32[i106 >> 2] | 0) + 60 >> 2] | 0;
21470 HEAPF32[i41 >> 2] = d57 * d98 + d63 * d99 + d69 * d100;
21471 HEAPF32[i39 >> 2] = d59 * d98 + d65 * d99 + d71 * d100;
21472 HEAPF32[i10 >> 2] = d61 * d98 + d67 * d99 + d73 * d100;
21473 HEAPF32[i11 >> 2] = 0.0;
21474 FUNCTION_TABLE_viii[i107 & 127](i18, i106, i19);
21475 d108 = +HEAPF32[i77 >> 2];
21476 d109 = +HEAPF32[i78 >> 2];
21477 d110 = +HEAPF32[i88 >> 2];
21478 d114 = d80 + (d57 * d108 + d59 * d109 + d61 * d110);
21479 d115 = d79 + (d63 * d108 + d65 * d109 + d67 * d110);
21480 d116 = d82 + (d69 * d108 + d71 * d109 + d73 * d110);
21481 HEAPF32[i72 >> 2] = d114;
21482 HEAPF32[i70 >> 2] = d115;
21483 HEAPF32[i68 >> 2] = d116;
21484 HEAPF32[i66 >> 2] = 0.0;
21485 d110 = d111 - d114;
21486 d114 = d112 - d115;
21487 d115 = d113 - d116;
21488 HEAPF32[i89 >> 2] = d110;
21489 HEAPF32[i90 >> 2] = d114;
21490 HEAPF32[i91 >> 2] = d115;
21491 HEAPF32[i92 >> 2] = 0.0;
21492 d116 = d100 * d115 + (d98 * d110 + d99 * d114);
21493 if (d97 > 1.0) {
21494 i117 = 0;
21495 i118 = 511;
21496 break;
21497 }
21498 if (d116 > 0.0) {
21499 d113 = d74 * d98 + d75 * d99 + d76 * d100;
21500 if (d113 >= -1.4210854715202004e-14) {
21501 i117 = 0;
21502 i118 = 513;
21503 break;
21504 }
21505 d112 = d97 - d116 / d113;
21506 d113 = 1.0 - d112;
21507 d116 = +HEAPF32[i24 >> 2] * d113 + d112 * +HEAPF32[i23 >> 2];
21508 d111 = d113 * +HEAPF32[i27 >> 2] + d112 * +HEAPF32[i26 >> 2];
21509 d109 = d113 * +HEAPF32[i3 >> 2] + d112 * +HEAPF32[i29 >> 2];
21510 d108 = d113 * +HEAPF32[i32 >> 2] + d112 * +HEAPF32[i31 >> 2];
21511 d119 = d113 * +HEAPF32[i35 >> 2] + d112 * +HEAPF32[i34 >> 2];
21512 d120 = d113 * +HEAPF32[i5 >> 2] + d112 * +HEAPF32[i37 >> 2];
21513 HEAPF32[i89 >> 2] = d110;
21514 HEAPF32[i90 >> 2] = d114;
21515 HEAPF32[i91 >> 2] = d115;
21516 HEAPF32[i92 >> 2] = 0.0;
21517 d121 = d112;
21518 d122 = d98;
21519 d123 = d99;
21520 d124 = d100;
21521 d125 = d108;
21522 d126 = d119;
21523 d127 = d120;
21524 d128 = d116;
21525 d129 = d111;
21526 d130 = d109;
21527 } else {
21528 d121 = d97;
21529 d122 = d95;
21530 d123 = d94;
21531 d124 = d93;
21532 d125 = d80;
21533 d126 = d79;
21534 d127 = d82;
21535 d128 = d83;
21536 d129 = d84;
21537 d130 = d87;
21538 }
21539 if (!(__ZN22btVoronoiSimplexSolver9inSimplexERK9btVector3(HEAP32[i22 >> 2] | 0, i15) | 0)) {
21540 __ZN22btVoronoiSimplexSolver9addVertexERK9btVector3S2_S2_(HEAP32[i22 >> 2] | 0, i15, i9, i12);
21541 }
21542 if (!(__ZN22btVoronoiSimplexSolver7closestER9btVector3(HEAP32[i22 >> 2] | 0, i8) | 0)) {
21543 d102 = d124;
21544 d103 = d123;
21545 d104 = d122;
21546 d105 = d121;
21547 break L561;
21548 }
21549 d109 = +HEAPF32[i64 >> 2];
21550 d111 = +HEAPF32[i62 >> 2];
21551 d116 = +HEAPF32[i60 >> 2];
21552 if (d109 * d109 + d111 * d111 + d116 * d116 > 9999999747378752.0e-20) {
21553 d87 = d130;
21554 d84 = d129;
21555 d83 = d128;
21556 d82 = d127;
21557 d79 = d126;
21558 d80 = d125;
21559 d93 = d124;
21560 d94 = d123;
21561 d95 = d122;
21562 i96 = i101;
21563 d97 = d121;
21564 d98 = d109;
21565 d99 = d111;
21566 d100 = d116;
21567 } else {
21568 d102 = d124;
21569 d103 = d123;
21570 d104 = d122;
21571 d105 = d121;
21572 break L561;
21573 }
21574 }
21575 if ((i118 | 0) == 511) {
21576 STACKTOP = i7;
21577 return i117 | 0;
21578 } else if ((i118 | 0) == 513) {
21579 STACKTOP = i7;
21580 return i117 | 0;
21581 }
21582 } else {
21583 d102 = 0.0;
21584 d103 = 0.0;
21585 d104 = 0.0;
21586 d105 = 0.0;
21587 }
21588 } while (0);
21589 HEAPF32[i6 + 164 >> 2] = d105;
21590 d105 = d102 * d102 + (d104 * d104 + d103 * d103);
21591 if (d105 < 1.4210854715202004e-14) {
21592 _memset(i6 + 132 | 0, 0, 16);
21593 d131 = 0.0;
21594 d132 = 0.0;
21595 d133 = 0.0;
21596 } else {
21597 d121 = 1.0 / +Math_sqrt(+d105);
21598 d105 = d104 * d121;
21599 d104 = d103 * d121;
21600 d103 = d102 * d121;
21601 HEAPF32[i6 + 132 >> 2] = d105;
21602 HEAPF32[i6 + 136 >> 2] = d104;
21603 HEAPF32[i6 + 140 >> 2] = d103;
21604 HEAPF32[i6 + 144 >> 2] = 0.0;
21605 d131 = d105;
21606 d132 = d104;
21607 d133 = d103;
21608 }
21609 if (d76 * d133 + (d75 * d132 + d74 * d131) >= -0.0 - +HEAPF32[i6 + 172 >> 2]) {
21610 i117 = 0;
21611 STACKTOP = i7;
21612 return i117 | 0;
21613 }
21614 __ZN22btVoronoiSimplexSolver14compute_pointsER9btVector3S1_(HEAP32[i22 >> 2] | 0, i20, i21);
21615 i20 = i6 + 148 | 0;
21616 i6 = i21;
21617 HEAP32[i20 >> 2] = HEAP32[i6 >> 2];
21618 HEAP32[i20 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
21619 HEAP32[i20 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
21620 HEAP32[i20 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
21621 i117 = 1;
21622 STACKTOP = i7;
21623 return i117 | 0;
21624 }
21625 function __ZN12gjkepa2_impl3GJK8EvaluateERKNS_13MinkowskiDiffERK9btVector3(i1, i2, i3) {
21626 i1 = i1 | 0;
21627 i2 = i2 | 0;
21628 i3 = i3 | 0;
21629 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, i22 = 0, i23 = 0, d24 = 0.0, i25 = 0, d26 = 0.0, i27 = 0, d28 = 0.0, i29 = 0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, d44 = 0.0, d45 = 0.0, d46 = 0.0, i47 = 0, d48 = 0.0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, d54 = 0.0, d55 = 0.0;
21630 i4 = STACKTOP;
21631 STACKTOP = STACKTOP + 120 | 0;
21632 i5 = i4 | 0;
21633 i6 = i4 + 64 | 0;
21634 i7 = i4 + 80 | 0;
21635 i8 = i4 + 96 | 0;
21636 i9 = i4 + 112 | 0;
21637 HEAP32[i1 + 348 >> 2] = i1 + 220;
21638 HEAP32[i1 + 352 >> 2] = i1 + 252;
21639 HEAP32[i1 + 356 >> 2] = i1 + 284;
21640 i10 = i1 + 316 | 0;
21641 HEAP32[i1 + 360 >> 2] = i10;
21642 i11 = i1 + 364 | 0;
21643 HEAP32[i11 >> 2] = 4;
21644 i12 = i1 + 368 | 0;
21645 HEAP32[i12 >> 2] = 0;
21646 i13 = i1 + 376 | 0;
21647 HEAP32[i13 >> 2] = 0;
21648 i14 = i2;
21649 i15 = i1;
21650 i16 = HEAP32[i14 + 4 >> 2] | 0;
21651 HEAP32[i15 >> 2] = HEAP32[i14 >> 2];
21652 HEAP32[i15 + 4 >> 2] = i16;
21653 i16 = i1 + 8 | 0;
21654 i15 = i2 + 8 | 0;
21655 HEAP32[i16 >> 2] = HEAP32[i15 >> 2];
21656 HEAP32[i16 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
21657 HEAP32[i16 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
21658 HEAP32[i16 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
21659 i15 = i1 + 24 | 0;
21660 i16 = i2 + 24 | 0;
21661 HEAP32[i15 >> 2] = HEAP32[i16 >> 2];
21662 HEAP32[i15 + 4 >> 2] = HEAP32[i16 + 4 >> 2];
21663 HEAP32[i15 + 8 >> 2] = HEAP32[i16 + 8 >> 2];
21664 HEAP32[i15 + 12 >> 2] = HEAP32[i16 + 12 >> 2];
21665 i16 = i1 + 40 | 0;
21666 i15 = i2 + 40 | 0;
21667 HEAP32[i16 >> 2] = HEAP32[i15 >> 2];
21668 HEAP32[i16 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
21669 HEAP32[i16 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
21670 HEAP32[i16 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
21671 i15 = i1 + 56 | 0;
21672 i16 = i2 + 56 | 0;
21673 HEAP32[i15 >> 2] = HEAP32[i16 >> 2];
21674 HEAP32[i15 + 4 >> 2] = HEAP32[i16 + 4 >> 2];
21675 HEAP32[i15 + 8 >> 2] = HEAP32[i16 + 8 >> 2];
21676 HEAP32[i15 + 12 >> 2] = HEAP32[i16 + 12 >> 2];
21677 i16 = i1 + 72 | 0;
21678 i15 = i2 + 72 | 0;
21679 HEAP32[i16 >> 2] = HEAP32[i15 >> 2];
21680 HEAP32[i16 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
21681 HEAP32[i16 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
21682 HEAP32[i16 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
21683 i15 = i1 + 88 | 0;
21684 i16 = i2 + 88 | 0;
21685 HEAP32[i15 >> 2] = HEAP32[i16 >> 2];
21686 HEAP32[i15 + 4 >> 2] = HEAP32[i16 + 4 >> 2];
21687 HEAP32[i15 + 8 >> 2] = HEAP32[i16 + 8 >> 2];
21688 HEAP32[i15 + 12 >> 2] = HEAP32[i16 + 12 >> 2];
21689 i16 = i1 + 104 | 0;
21690 i15 = i2 + 104 | 0;
21691 HEAP32[i16 >> 2] = HEAP32[i15 >> 2];
21692 HEAP32[i16 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
21693 HEAP32[i16 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
21694 HEAP32[i16 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
21695 i15 = i2 + 120 | 0;
21696 i2 = HEAP32[i15 + 4 >> 2] | 0;
21697 i16 = i1 + 120 | 0;
21698 HEAP32[i16 >> 2] = HEAP32[i15 >> 2];
21699 HEAP32[i16 + 4 >> 2] = i2;
21700 i2 = i1 + 144 | 0;
21701 HEAPF32[i2 >> 2] = 0.0;
21702 i16 = i1 + 180 | 0;
21703 HEAP32[i16 >> 2] = 0;
21704 i15 = i1 + 128 | 0;
21705 i14 = i15;
21706 i17 = i3;
21707 HEAP32[i14 >> 2] = HEAP32[i17 >> 2];
21708 HEAP32[i14 + 4 >> 2] = HEAP32[i17 + 4 >> 2];
21709 HEAP32[i14 + 8 >> 2] = HEAP32[i17 + 8 >> 2];
21710 HEAP32[i14 + 12 >> 2] = HEAP32[i17 + 12 >> 2];
21711 i17 = i15 | 0;
21712 d18 = +HEAPF32[i17 >> 2];
21713 i15 = i1 + 132 | 0;
21714 d19 = +HEAPF32[i15 >> 2];
21715 i3 = i1 + 136 | 0;
21716 d20 = +HEAPF32[i3 >> 2];
21717 d21 = d18 * d18 + d19 * d19 + d20 * d20;
21718 if (d21 > 0.0) {
21719 HEAPF32[i6 >> 2] = -0.0 - d18;
21720 HEAPF32[i6 + 4 >> 2] = -0.0 - d19;
21721 HEAPF32[i6 + 8 >> 2] = -0.0 - d20;
21722 HEAPF32[i6 + 12 >> 2] = 0.0;
21723 } else {
21724 HEAPF32[i6 >> 2] = 1.0;
21725 HEAPF32[i6 + 4 >> 2] = 0.0;
21726 HEAPF32[i6 + 8 >> 2] = 0.0;
21727 HEAPF32[i6 + 12 >> 2] = 0.0;
21728 }
21729 i22 = i1 + 164 | 0;
21730 HEAPF32[i22 >> 2] = 0.0;
21731 HEAP32[i11 >> 2] = 3;
21732 i23 = i1 + 148 | 0;
21733 HEAP32[i23 >> 2] = i10;
21734 HEAP32[i16 >> 2] = 1;
21735 __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i6, i10);
21736 HEAPF32[i22 >> 2] = 1.0;
21737 i22 = (HEAP32[i23 >> 2] | 0) + 16 | 0;
21738 HEAP32[i14 >> 2] = HEAP32[i22 >> 2];
21739 HEAP32[i14 + 4 >> 2] = HEAP32[i22 + 4 >> 2];
21740 HEAP32[i14 + 8 >> 2] = HEAP32[i22 + 8 >> 2];
21741 HEAP32[i14 + 12 >> 2] = HEAP32[i22 + 12 >> 2];
21742 i14 = i5 + 48 | 0;
21743 HEAP32[i14 >> 2] = HEAP32[i22 >> 2];
21744 HEAP32[i14 + 4 >> 2] = HEAP32[i22 + 4 >> 2];
21745 HEAP32[i14 + 8 >> 2] = HEAP32[i22 + 8 >> 2];
21746 HEAP32[i14 + 12 >> 2] = HEAP32[i22 + 12 >> 2];
21747 i14 = i5 + 32 | 0;
21748 HEAP32[i14 >> 2] = HEAP32[i22 >> 2];
21749 HEAP32[i14 + 4 >> 2] = HEAP32[i22 + 4 >> 2];
21750 HEAP32[i14 + 8 >> 2] = HEAP32[i22 + 8 >> 2];
21751 HEAP32[i14 + 12 >> 2] = HEAP32[i22 + 12 >> 2];
21752 i14 = i5 + 16 | 0;
21753 HEAP32[i14 >> 2] = HEAP32[i22 >> 2];
21754 HEAP32[i14 + 4 >> 2] = HEAP32[i22 + 4 >> 2];
21755 HEAP32[i14 + 8 >> 2] = HEAP32[i22 + 8 >> 2];
21756 HEAP32[i14 + 12 >> 2] = HEAP32[i22 + 12 >> 2];
21757 i14 = i5;
21758 HEAP32[i14 >> 2] = HEAP32[i22 >> 2];
21759 HEAP32[i14 + 4 >> 2] = HEAP32[i22 + 4 >> 2];
21760 HEAP32[i14 + 8 >> 2] = HEAP32[i22 + 8 >> 2];
21761 HEAP32[i14 + 12 >> 2] = HEAP32[i22 + 12 >> 2];
21762 i22 = i7 | 0;
21763 i14 = i7 + 4 | 0;
21764 i23 = i7 + 8 | 0;
21765 i10 = i7 + 12 | 0;
21766 i6 = i8 | 0;
21767 d20 = +HEAPF32[i17 >> 2];
21768 d19 = +HEAPF32[i15 >> 2];
21769 d18 = +HEAPF32[i3 >> 2];
21770 d24 = +Math_sqrt(+(d20 * d20 + d19 * d19 + d18 * d18));
21771 L24 : do {
21772 if (d24 < 9999999747378752.0e-20) {
21773 i25 = 21;
21774 } else {
21775 i16 = i1 + 128 | 0;
21776 d26 = 0.0;
21777 i27 = 1;
21778 d28 = d21;
21779 i29 = 1;
21780 d30 = d20;
21781 d31 = d19;
21782 d32 = d18;
21783 d33 = d24;
21784 L26 : while (1) {
21785 i34 = HEAP32[i12 >> 2] | 0;
21786 i35 = 1 - i34 | 0;
21787 i36 = i1 + 148 + (i34 * 36 | 0) | 0;
21788 HEAPF32[i22 >> 2] = -0.0 - d30;
21789 HEAPF32[i14 >> 2] = -0.0 - d31;
21790 HEAPF32[i23 >> 2] = -0.0 - d32;
21791 HEAPF32[i10 >> 2] = 0.0;
21792 i37 = i1 + 148 + (i34 * 36 | 0) + 32 | 0;
21793 HEAPF32[i1 + 148 + (i34 * 36 | 0) + 16 + (HEAP32[i37 >> 2] << 2) >> 2] = 0.0;
21794 i38 = (HEAP32[i11 >> 2] | 0) - 1 | 0;
21795 HEAP32[i11 >> 2] = i38;
21796 HEAP32[i1 + 148 + (i34 * 36 | 0) + (HEAP32[i37 >> 2] << 2) >> 2] = HEAP32[i1 + 348 + (i38 << 2) >> 2];
21797 i38 = HEAP32[i37 >> 2] | 0;
21798 HEAP32[i37 >> 2] = i38 + 1;
21799 __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i7, HEAP32[i1 + 148 + (i34 * 36 | 0) + (i38 << 2) >> 2] | 0);
21800 i38 = HEAP32[i37 >> 2] | 0;
21801 i39 = HEAP32[i1 + 148 + (i34 * 36 | 0) + (i38 - 1 << 2) >> 2] | 0;
21802 i40 = i39 + 16 | 0;
21803 i41 = i40 | 0;
21804 i42 = i39 + 20 | 0;
21805 i43 = i39 + 24 | 0;
21806 i39 = 0;
21807 while (1) {
21808 if (i39 >>> 0 >= 4) {
21809 break;
21810 }
21811 d44 = +HEAPF32[i41 >> 2] - +HEAPF32[i5 + (i39 << 4) >> 2];
21812 d45 = +HEAPF32[i42 >> 2] - +HEAPF32[i5 + (i39 << 4) + 4 >> 2];
21813 d46 = +HEAPF32[i43 >> 2] - +HEAPF32[i5 + (i39 << 4) + 8 >> 2];
21814 if (d44 * d44 + d45 * d45 + d46 * d46 < 9999999747378752.0e-20) {
21815 i25 = 25;
21816 break L26;
21817 } else {
21818 i39 = i39 + 1 | 0;
21819 }
21820 }
21821 i39 = i5 + (i27 << 4) | 0;
21822 i47 = i40;
21823 HEAP32[i39 >> 2] = HEAP32[i47 >> 2];
21824 HEAP32[i39 + 4 >> 2] = HEAP32[i47 + 4 >> 2];
21825 HEAP32[i39 + 8 >> 2] = HEAP32[i47 + 8 >> 2];
21826 HEAP32[i39 + 12 >> 2] = HEAP32[i47 + 12 >> 2];
21827 d46 = (+HEAPF32[i17 >> 2] * +HEAPF32[i41 >> 2] + +HEAPF32[i15 >> 2] * +HEAPF32[i42 >> 2] + +HEAPF32[i3 >> 2] * +HEAPF32[i43 >> 2]) / d33;
21828 d45 = d46 > d26 ? d46 : d26;
21829 if (d33 - d45 - d33 * 9999999747378752.0e-20 <= 0.0) {
21830 i25 = 27;
21831 break;
21832 }
21833 HEAP32[i9 >> 2] = 0;
21834 if ((i38 | 0) == 2) {
21835 d48 = +__ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_PfRj((HEAP32[i36 >> 2] | 0) + 16 | 0, (HEAP32[i1 + 148 + (i34 * 36 | 0) + 4 >> 2] | 0) + 16 | 0, i6, i9);
21836 } else if ((i38 | 0) == 3) {
21837 d48 = +__ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRj((HEAP32[i36 >> 2] | 0) + 16 | 0, (HEAP32[i1 + 148 + (i34 * 36 | 0) + 4 >> 2] | 0) + 16 | 0, (HEAP32[i1 + 148 + (i34 * 36 | 0) + 8 >> 2] | 0) + 16 | 0, i6, i9);
21838 } else if ((i38 | 0) == 4) {
21839 d48 = +__ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_S3_PfRj((HEAP32[i36 >> 2] | 0) + 16 | 0, (HEAP32[i1 + 148 + (i34 * 36 | 0) + 4 >> 2] | 0) + 16 | 0, (HEAP32[i1 + 148 + (i34 * 36 | 0) + 8 >> 2] | 0) + 16 | 0, (HEAP32[i1 + 148 + (i34 * 36 | 0) + 12 >> 2] | 0) + 16 | 0, i6, i9);
21840 } else {
21841 d48 = d28;
21842 }
21843 if (d48 < 0.0) {
21844 i25 = 40;
21845 break;
21846 }
21847 i47 = i1 + 148 + (i35 * 36 | 0) + 32 | 0;
21848 HEAP32[i47 >> 2] = 0;
21849 _memset(i16 | 0, 0, 16);
21850 HEAP32[i12 >> 2] = i35;
21851 i39 = HEAP32[i37 >> 2] | 0;
21852 i49 = HEAP32[i9 >> 2] | 0;
21853 if ((i39 | 0) != 0) {
21854 i50 = 0;
21855 do {
21856 i51 = i1 + 148 + (i34 * 36 | 0) + (i50 << 2) | 0;
21857 i52 = HEAP32[i51 >> 2] | 0;
21858 if ((1 << i50 & i49 | 0) == 0) {
21859 i53 = HEAP32[i11 >> 2] | 0;
21860 HEAP32[i11 >> 2] = i53 + 1;
21861 HEAP32[i1 + 348 + (i53 << 2) >> 2] = i52;
21862 } else {
21863 HEAP32[i1 + 148 + (i35 * 36 | 0) + (HEAP32[i47 >> 2] << 2) >> 2] = i52;
21864 d46 = +HEAPF32[i8 + (i50 << 2) >> 2];
21865 i52 = HEAP32[i47 >> 2] | 0;
21866 HEAP32[i47 >> 2] = i52 + 1;
21867 HEAPF32[i1 + 148 + (i35 * 36 | 0) + 16 + (i52 << 2) >> 2] = d46;
21868 i52 = HEAP32[i51 >> 2] | 0;
21869 d44 = d46 * +HEAPF32[i52 + 20 >> 2];
21870 d54 = d46 * +HEAPF32[i52 + 24 >> 2];
21871 HEAPF32[i17 >> 2] = d46 * +HEAPF32[i52 + 16 >> 2] + +HEAPF32[i17 >> 2];
21872 HEAPF32[i15 >> 2] = d44 + +HEAPF32[i15 >> 2];
21873 HEAPF32[i3 >> 2] = d54 + +HEAPF32[i3 >> 2];
21874 }
21875 i50 = i50 + 1 | 0;
21876 } while (i50 >>> 0 < i39 >>> 0);
21877 }
21878 if ((i49 | 0) == 15) {
21879 HEAP32[i13 >> 2] = 1;
21880 }
21881 if (i29 >>> 0 >= 128) {
21882 i25 = 42;
21883 break;
21884 }
21885 if ((HEAP32[i13 >> 2] | 0) != 0) {
21886 break L24;
21887 }
21888 d54 = +HEAPF32[i17 >> 2];
21889 d44 = +HEAPF32[i15 >> 2];
21890 d46 = +HEAPF32[i3 >> 2];
21891 d55 = +Math_sqrt(+(d54 * d54 + d44 * d44 + d46 * d46));
21892 if (d55 < 9999999747378752.0e-20) {
21893 i25 = 21;
21894 break L24;
21895 } else {
21896 d26 = d45;
21897 i27 = i27 + 1 & 3;
21898 d28 = d48;
21899 i29 = i29 + 1 | 0;
21900 d30 = d54;
21901 d31 = d44;
21902 d32 = d46;
21903 d33 = d55;
21904 }
21905 }
21906 if ((i25 | 0) == 25) {
21907 i29 = HEAP32[i12 >> 2] | 0;
21908 i27 = i1 + 148 + (i29 * 36 | 0) + 32 | 0;
21909 i16 = (HEAP32[i27 >> 2] | 0) - 1 | 0;
21910 HEAP32[i27 >> 2] = i16;
21911 i27 = HEAP32[i1 + 148 + (i29 * 36 | 0) + (i16 << 2) >> 2] | 0;
21912 i16 = HEAP32[i11 >> 2] | 0;
21913 HEAP32[i11 >> 2] = i16 + 1;
21914 HEAP32[i1 + 348 + (i16 << 2) >> 2] = i27;
21915 break;
21916 } else if ((i25 | 0) == 27) {
21917 i27 = HEAP32[i12 >> 2] | 0;
21918 i16 = i1 + 148 + (i27 * 36 | 0) + 32 | 0;
21919 i29 = (HEAP32[i16 >> 2] | 0) - 1 | 0;
21920 HEAP32[i16 >> 2] = i29;
21921 i16 = HEAP32[i1 + 148 + (i27 * 36 | 0) + (i29 << 2) >> 2] | 0;
21922 i29 = HEAP32[i11 >> 2] | 0;
21923 HEAP32[i11 >> 2] = i29 + 1;
21924 HEAP32[i1 + 348 + (i29 << 2) >> 2] = i16;
21925 break;
21926 } else if ((i25 | 0) == 40) {
21927 i16 = HEAP32[i12 >> 2] | 0;
21928 i29 = i1 + 148 + (i16 * 36 | 0) + 32 | 0;
21929 i27 = (HEAP32[i29 >> 2] | 0) - 1 | 0;
21930 HEAP32[i29 >> 2] = i27;
21931 i29 = HEAP32[i1 + 148 + (i16 * 36 | 0) + (i27 << 2) >> 2] | 0;
21932 i27 = HEAP32[i11 >> 2] | 0;
21933 HEAP32[i11 >> 2] = i27 + 1;
21934 HEAP32[i1 + 348 + (i27 << 2) >> 2] = i29;
21935 break;
21936 } else if ((i25 | 0) == 42) {
21937 HEAP32[i13 >> 2] = 2;
21938 break;
21939 }
21940 }
21941 } while (0);
21942 if ((i25 | 0) == 21) {
21943 HEAP32[i13 >> 2] = 1;
21944 }
21945 HEAP32[i1 + 372 >> 2] = i1 + 148 + ((HEAP32[i12 >> 2] | 0) * 36 | 0);
21946 i12 = HEAP32[i13 >> 2] | 0;
21947 if ((i12 | 0) == 0) {
21948 d48 = +HEAPF32[i17 >> 2];
21949 d24 = +HEAPF32[i15 >> 2];
21950 d18 = +HEAPF32[i3 >> 2];
21951 HEAPF32[i2 >> 2] = +Math_sqrt(+(d48 * d48 + d24 * d24 + d18 * d18));
21952 STACKTOP = i4;
21953 return i12 | 0;
21954 } else if ((i12 | 0) == 1) {
21955 HEAPF32[i2 >> 2] = 0.0;
21956 STACKTOP = i4;
21957 return i12 | 0;
21958 } else {
21959 STACKTOP = i4;
21960 return i12 | 0;
21961 }
21962 return 0;
21963 }
21964 function __ZN35btSequentialImpulseConstraintSolver22setupContactConstraintER18btSolverConstraintP17btCollisionObjectS3_R15btManifoldPointRK19btContactSolverInfoR9btVector3RfSB_SA_SA_(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
21965 i1 = i1 | 0;
21966 i2 = i2 | 0;
21967 i3 = i3 | 0;
21968 i4 = i4 | 0;
21969 i5 = i5 | 0;
21970 i6 = i6 | 0;
21971 i7 = i7 | 0;
21972 i8 = i8 | 0;
21973 i9 = i9 | 0;
21974 i10 = i10 | 0;
21975 i11 = i11 | 0;
21976 var i12 = 0, i13 = 0, d14 = 0.0, d15 = 0.0, i16 = 0, i17 = 0, i18 = 0, d19 = 0.0, i20 = 0, d21 = 0.0, d22 = 0.0, i23 = 0, d24 = 0.0, d25 = 0.0, d26 = 0.0, i27 = 0, d28 = 0.0, d29 = 0.0, d30 = 0.0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, d35 = 0.0, d36 = 0.0, d37 = 0.0, i38 = 0, i39 = 0, i40 = 0, d41 = 0.0, d42 = 0.0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0, d61 = 0.0, d62 = 0.0, d63 = 0.0, d64 = 0.0, d65 = 0.0, d66 = 0.0, d67 = 0.0, i68 = 0, i69 = 0, i70 = 0;
21977 if ((HEAP32[i3 + 232 >> 2] & 2 | 0) == 0) {
21978 i12 = 0;
21979 } else {
21980 i12 = i3;
21981 }
21982 if ((HEAP32[i4 + 232 >> 2] & 2 | 0) == 0) {
21983 i13 = 0;
21984 } else {
21985 i13 = i4;
21986 }
21987 d14 = +HEAPF32[i5 + 52 >> 2] - +HEAPF32[i3 + 56 >> 2];
21988 d15 = +HEAPF32[i5 + 56 >> 2] - +HEAPF32[i3 + 60 >> 2];
21989 i1 = i10 | 0;
21990 HEAPF32[i1 >> 2] = +HEAPF32[i5 + 48 >> 2] - +HEAPF32[i3 + 52 >> 2];
21991 i3 = i10 + 4 | 0;
21992 HEAPF32[i3 >> 2] = d14;
21993 i16 = i10 + 8 | 0;
21994 HEAPF32[i16 >> 2] = d15;
21995 HEAPF32[i10 + 12 >> 2] = 0.0;
21996 d15 = +HEAPF32[i5 + 36 >> 2] - +HEAPF32[i4 + 56 >> 2];
21997 d14 = +HEAPF32[i5 + 40 >> 2] - +HEAPF32[i4 + 60 >> 2];
21998 i10 = i11 | 0;
21999 HEAPF32[i10 >> 2] = +HEAPF32[i5 + 32 >> 2] - +HEAPF32[i4 + 52 >> 2];
22000 i4 = i11 + 4 | 0;
22001 HEAPF32[i4 >> 2] = d15;
22002 i17 = i11 + 8 | 0;
22003 HEAPF32[i17 >> 2] = d14;
22004 HEAPF32[i11 + 12 >> 2] = 0.0;
22005 HEAPF32[i9 >> 2] = 1.0;
22006 i11 = i5 + 64 | 0;
22007 d14 = +HEAPF32[i3 >> 2];
22008 i18 = i5 + 72 | 0;
22009 d15 = +HEAPF32[i18 >> 2];
22010 d19 = +HEAPF32[i16 >> 2];
22011 i20 = i5 + 68 | 0;
22012 d21 = +HEAPF32[i20 >> 2];
22013 d22 = d14 * d15 - d19 * d21;
22014 i23 = i11 | 0;
22015 d24 = +HEAPF32[i23 >> 2];
22016 d25 = +HEAPF32[i1 >> 2];
22017 d26 = d19 * d24 - d15 * d25;
22018 d15 = d21 * d25 - d14 * d24;
22019 i27 = (i12 | 0) != 0;
22020 if (i27) {
22021 d28 = (d22 * +HEAPF32[i12 + 256 >> 2] + d26 * +HEAPF32[i12 + 260 >> 2] + d15 * +HEAPF32[i12 + 264 >> 2]) * +HEAPF32[i12 + 536 >> 2];
22022 d29 = (d22 * +HEAPF32[i12 + 272 >> 2] + d26 * +HEAPF32[i12 + 276 >> 2] + d15 * +HEAPF32[i12 + 280 >> 2]) * +HEAPF32[i12 + 540 >> 2];
22023 d30 = (d22 * +HEAPF32[i12 + 288 >> 2] + d26 * +HEAPF32[i12 + 292 >> 2] + d15 * +HEAPF32[i12 + 296 >> 2]) * +HEAPF32[i12 + 544 >> 2];
22024 } else {
22025 d28 = 0.0;
22026 d29 = 0.0;
22027 d30 = 0.0;
22028 }
22029 i31 = i2 + 48 | 0;
22030 HEAPF32[i31 >> 2] = d28;
22031 i32 = i2 + 52 | 0;
22032 HEAPF32[i32 >> 2] = d29;
22033 i33 = i2 + 56 | 0;
22034 HEAPF32[i33 >> 2] = d30;
22035 HEAPF32[i2 + 60 >> 2] = 0.0;
22036 d15 = +HEAPF32[i4 >> 2];
22037 d26 = +HEAPF32[i18 >> 2];
22038 d22 = +HEAPF32[i17 >> 2];
22039 d24 = +HEAPF32[i20 >> 2];
22040 d14 = +HEAPF32[i23 >> 2];
22041 d25 = +HEAPF32[i10 >> 2];
22042 i34 = (i13 | 0) != 0;
22043 if (i34) {
22044 d21 = -0.0 - (d15 * d26 - d22 * d24);
22045 d19 = -0.0 - (d22 * d14 - d26 * d25);
22046 d26 = -0.0 - (d24 * d25 - d15 * d14);
22047 d35 = (+HEAPF32[i13 + 256 >> 2] * d21 + +HEAPF32[i13 + 260 >> 2] * d19 + +HEAPF32[i13 + 264 >> 2] * d26) * +HEAPF32[i13 + 536 >> 2];
22048 d36 = (+HEAPF32[i13 + 272 >> 2] * d21 + +HEAPF32[i13 + 276 >> 2] * d19 + +HEAPF32[i13 + 280 >> 2] * d26) * +HEAPF32[i13 + 540 >> 2];
22049 d37 = (+HEAPF32[i13 + 288 >> 2] * d21 + +HEAPF32[i13 + 292 >> 2] * d19 + +HEAPF32[i13 + 296 >> 2] * d26) * +HEAPF32[i13 + 544 >> 2];
22050 } else {
22051 d35 = 0.0;
22052 d36 = 0.0;
22053 d37 = 0.0;
22054 }
22055 i38 = i2 + 64 | 0;
22056 HEAPF32[i38 >> 2] = d35;
22057 i39 = i2 + 68 | 0;
22058 HEAPF32[i39 >> 2] = d36;
22059 i40 = i2 + 72 | 0;
22060 HEAPF32[i40 >> 2] = d37;
22061 HEAPF32[i2 + 76 >> 2] = 0.0;
22062 if (i27) {
22063 d26 = +HEAPF32[i16 >> 2];
22064 d19 = +HEAPF32[i3 >> 2];
22065 d21 = +HEAPF32[i1 >> 2];
22066 d41 = +HEAPF32[i12 + 336 >> 2] + ((d29 * d26 - d30 * d19) * +HEAPF32[i23 >> 2] + (d30 * d21 - d28 * d26) * +HEAPF32[i20 >> 2] + (d28 * d19 - d29 * d21) * +HEAPF32[i18 >> 2]);
22067 } else {
22068 d41 = 0.0;
22069 }
22070 if (i34) {
22071 d21 = -0.0 - d35;
22072 d35 = -0.0 - d36;
22073 d36 = -0.0 - d37;
22074 d37 = +HEAPF32[i17 >> 2];
22075 d29 = +HEAPF32[i4 >> 2];
22076 d19 = +HEAPF32[i10 >> 2];
22077 d42 = +HEAPF32[i13 + 336 >> 2] + ((d37 * d35 - d29 * d36) * +HEAPF32[i23 >> 2] + (d19 * d36 - d37 * d21) * +HEAPF32[i20 >> 2] + (d29 * d21 - d19 * d35) * +HEAPF32[i18 >> 2]);
22078 } else {
22079 d42 = 0.0;
22080 }
22081 i43 = i2 + 92 | 0;
22082 HEAPF32[i43 >> 2] = +HEAPF32[i9 >> 2] / (d41 + d42);
22083 i9 = i2 + 16 | 0;
22084 i44 = i9;
22085 i45 = i11;
22086 HEAP32[i44 >> 2] = HEAP32[i45 >> 2];
22087 HEAP32[i44 + 4 >> 2] = HEAP32[i45 + 4 >> 2];
22088 HEAP32[i44 + 8 >> 2] = HEAP32[i45 + 8 >> 2];
22089 HEAP32[i44 + 12 >> 2] = HEAP32[i45 + 12 >> 2];
22090 d42 = +HEAPF32[i3 >> 2];
22091 d41 = +HEAPF32[i18 >> 2];
22092 d35 = +HEAPF32[i16 >> 2];
22093 d19 = +HEAPF32[i20 >> 2];
22094 d21 = +HEAPF32[i23 >> 2];
22095 d29 = +HEAPF32[i1 >> 2];
22096 i45 = i2 | 0;
22097 HEAPF32[i45 >> 2] = d42 * d41 - d35 * d19;
22098 i44 = i2 + 4 | 0;
22099 HEAPF32[i44 >> 2] = d35 * d21 - d41 * d29;
22100 i11 = i2 + 8 | 0;
22101 HEAPF32[i11 >> 2] = d19 * d29 - d42 * d21;
22102 HEAPF32[i2 + 12 >> 2] = 0.0;
22103 d21 = -0.0 - +HEAPF32[i23 >> 2];
22104 d42 = -0.0 - +HEAPF32[i20 >> 2];
22105 d29 = -0.0 - +HEAPF32[i18 >> 2];
22106 d19 = +HEAPF32[i4 >> 2];
22107 d41 = +HEAPF32[i17 >> 2];
22108 d35 = +HEAPF32[i10 >> 2];
22109 i46 = i2 + 32 | 0;
22110 HEAPF32[i46 >> 2] = d19 * d29 - d41 * d42;
22111 i47 = i2 + 36 | 0;
22112 HEAPF32[i47 >> 2] = d41 * d21 - d35 * d29;
22113 i48 = i2 + 40 | 0;
22114 HEAPF32[i48 >> 2] = d35 * d42 - d19 * d21;
22115 HEAPF32[i2 + 44 >> 2] = 0.0;
22116 if (i27) {
22117 d21 = +HEAPF32[i12 + 324 >> 2];
22118 d19 = +HEAPF32[i16 >> 2];
22119 d42 = +HEAPF32[i12 + 328 >> 2];
22120 d35 = +HEAPF32[i3 >> 2];
22121 d29 = +HEAPF32[i1 >> 2];
22122 d41 = +HEAPF32[i12 + 320 >> 2];
22123 d49 = d21 * d19 - d42 * d35 + +HEAPF32[i12 + 304 >> 2];
22124 d50 = +HEAPF32[i12 + 308 >> 2] + (d42 * d29 - d19 * d41);
22125 d51 = d35 * d41 - d21 * d29 + +HEAPF32[i12 + 312 >> 2];
22126 } else {
22127 d49 = 0.0;
22128 d50 = 0.0;
22129 d51 = 0.0;
22130 }
22131 if (i34) {
22132 d29 = +HEAPF32[i13 + 324 >> 2];
22133 d21 = +HEAPF32[i17 >> 2];
22134 d41 = +HEAPF32[i13 + 328 >> 2];
22135 d35 = +HEAPF32[i4 >> 2];
22136 d19 = +HEAPF32[i10 >> 2];
22137 d42 = +HEAPF32[i13 + 320 >> 2];
22138 d52 = d29 * d21 - d41 * d35 + +HEAPF32[i13 + 304 >> 2];
22139 d53 = +HEAPF32[i13 + 308 >> 2] + (d41 * d19 - d21 * d42);
22140 d54 = d35 * d42 - d29 * d19 + +HEAPF32[i13 + 312 >> 2];
22141 } else {
22142 d52 = 0.0;
22143 d53 = 0.0;
22144 d54 = 0.0;
22145 }
22146 d19 = d49 - d52;
22147 d52 = d50 - d53;
22148 d53 = d51 - d54;
22149 HEAPF32[i7 >> 2] = d19;
22150 HEAPF32[i7 + 4 >> 2] = d52;
22151 HEAPF32[i7 + 8 >> 2] = d53;
22152 HEAPF32[i7 + 12 >> 2] = 0.0;
22153 HEAPF32[i8 >> 2] = +HEAPF32[i23 >> 2] * d19 + d52 * +HEAPF32[i20 >> 2] + d53 * +HEAPF32[i18 >> 2];
22154 d53 = +HEAPF32[i5 + 80 >> 2] + +HEAPF32[i6 + 52 >> 2];
22155 HEAPF32[i2 + 88 >> 2] = +HEAPF32[i5 + 84 >> 2];
22156 do {
22157 if ((HEAP32[i5 + 144 >> 2] | 0) > (HEAP32[i6 + 64 >> 2] | 0)) {
22158 d55 = 0.0;
22159 } else {
22160 d52 = +HEAPF32[i5 + 88 >> 2] * (-0.0 - +HEAPF32[i8 >> 2]);
22161 if (d52 > 0.0) {
22162 d55 = d52;
22163 break;
22164 }
22165 d55 = 0.0;
22166 }
22167 } while (0);
22168 do {
22169 if ((HEAP32[i6 + 60 >> 2] & 4 | 0) == 0) {
22170 HEAPF32[i2 + 84 >> 2] = 0.0;
22171 } else {
22172 d52 = +HEAPF32[i5 + 112 >> 2] * +HEAPF32[i6 + 56 >> 2];
22173 i8 = i2 + 84 | 0;
22174 HEAPF32[i8 >> 2] = d52;
22175 do {
22176 if (i27) {
22177 d19 = +HEAPF32[i12 + 336 >> 2];
22178 if (d19 == 0.0) {
22179 break;
22180 }
22181 d54 = d52 * d19 * +HEAPF32[i2 + 20 >> 2] * +HEAPF32[i12 + 344 >> 2];
22182 d51 = d52 * d19 * +HEAPF32[i2 + 24 >> 2] * +HEAPF32[i12 + 348 >> 2];
22183 i18 = i12 + 504 | 0;
22184 HEAPF32[i18 >> 2] = +HEAPF32[i18 >> 2] + d52 * d19 * +HEAPF32[i9 >> 2] * +HEAPF32[i12 + 340 >> 2];
22185 i18 = i12 + 508 | 0;
22186 HEAPF32[i18 >> 2] = d54 + +HEAPF32[i18 >> 2];
22187 i18 = i12 + 512 | 0;
22188 HEAPF32[i18 >> 2] = d51 + +HEAPF32[i18 >> 2];
22189 d51 = d52 * +HEAPF32[i12 + 540 >> 2] * +HEAPF32[i32 >> 2];
22190 d54 = d52 * +HEAPF32[i12 + 544 >> 2] * +HEAPF32[i33 >> 2];
22191 i18 = i12 + 520 | 0;
22192 HEAPF32[i18 >> 2] = d52 * +HEAPF32[i12 + 536 >> 2] * +HEAPF32[i31 >> 2] + +HEAPF32[i18 >> 2];
22193 i18 = i12 + 524 | 0;
22194 HEAPF32[i18 >> 2] = d51 + +HEAPF32[i18 >> 2];
22195 i18 = i12 + 528 | 0;
22196 HEAPF32[i18 >> 2] = d54 + +HEAPF32[i18 >> 2];
22197 }
22198 } while (0);
22199 if (!i34) {
22200 break;
22201 }
22202 d52 = +HEAPF32[i13 + 336 >> 2];
22203 d54 = -0.0 - +HEAPF32[i8 >> 2];
22204 if (d52 == 0.0) {
22205 break;
22206 }
22207 d51 = -0.0 - +HEAPF32[i40 >> 2];
22208 d19 = -0.0 - +HEAPF32[i39 >> 2];
22209 d50 = -0.0 - +HEAPF32[i38 >> 2];
22210 d49 = d52 * +HEAPF32[i2 + 20 >> 2] * +HEAPF32[i13 + 344 >> 2] * d54;
22211 d29 = d52 * +HEAPF32[i2 + 24 >> 2] * +HEAPF32[i13 + 348 >> 2] * d54;
22212 i18 = i13 + 504 | 0;
22213 HEAPF32[i18 >> 2] = +HEAPF32[i18 >> 2] + d52 * +HEAPF32[i9 >> 2] * +HEAPF32[i13 + 340 >> 2] * d54;
22214 i18 = i13 + 508 | 0;
22215 HEAPF32[i18 >> 2] = d49 + +HEAPF32[i18 >> 2];
22216 i18 = i13 + 512 | 0;
22217 HEAPF32[i18 >> 2] = d29 + +HEAPF32[i18 >> 2];
22218 d29 = +HEAPF32[i13 + 540 >> 2] * d54 * d19;
22219 d19 = +HEAPF32[i13 + 544 >> 2] * d54 * d51;
22220 i18 = i13 + 520 | 0;
22221 HEAPF32[i18 >> 2] = +HEAPF32[i13 + 536 >> 2] * d54 * d50 + +HEAPF32[i18 >> 2];
22222 i18 = i13 + 524 | 0;
22223 HEAPF32[i18 >> 2] = d29 + +HEAPF32[i18 >> 2];
22224 i18 = i13 + 528 | 0;
22225 HEAPF32[i18 >> 2] = d19 + +HEAPF32[i18 >> 2];
22226 }
22227 } while (0);
22228 HEAPF32[i2 + 80 >> 2] = 0.0;
22229 if (i27) {
22230 d56 = +HEAPF32[i12 + 304 >> 2];
22231 d57 = +HEAPF32[i12 + 308 >> 2];
22232 d58 = +HEAPF32[i12 + 312 >> 2];
22233 } else {
22234 d56 = 0.0;
22235 d57 = 0.0;
22236 d58 = 0.0;
22237 }
22238 d19 = +HEAPF32[i9 >> 2];
22239 d29 = +HEAPF32[i2 + 20 >> 2];
22240 d50 = +HEAPF32[i2 + 24 >> 2];
22241 if (i27) {
22242 d59 = +HEAPF32[i12 + 320 >> 2];
22243 d60 = +HEAPF32[i12 + 324 >> 2];
22244 d61 = +HEAPF32[i12 + 328 >> 2];
22245 } else {
22246 d59 = 0.0;
22247 d60 = 0.0;
22248 d61 = 0.0;
22249 }
22250 if (i34) {
22251 d62 = +HEAPF32[i13 + 320 >> 2];
22252 d63 = +HEAPF32[i13 + 324 >> 2];
22253 d64 = +HEAPF32[i13 + 328 >> 2];
22254 d65 = d19 * +HEAPF32[i13 + 304 >> 2] + d29 * +HEAPF32[i13 + 308 >> 2] + d50 * +HEAPF32[i13 + 312 >> 2];
22255 } else {
22256 d62 = 0.0;
22257 d63 = 0.0;
22258 d64 = 0.0;
22259 d65 = d19 * 0.0 + d29 * 0.0 + d50 * 0.0;
22260 }
22261 d54 = d55 - (d56 * d19 + d57 * d29 + d58 * d50 + (d59 * +HEAPF32[i45 >> 2] + d60 * +HEAPF32[i44 >> 2] + d61 * +HEAPF32[i11 >> 2]) + (d62 * +HEAPF32[i46 >> 2] + d63 * +HEAPF32[i47 >> 2] + d64 * +HEAPF32[i48 >> 2] - d65));
22262 if (d53 > 0.0) {
22263 d66 = d54 - d53 / +HEAPF32[i6 + 12 >> 2];
22264 d67 = 0.0;
22265 } else {
22266 d66 = d54;
22267 d67 = +HEAPF32[i6 + 32 >> 2] * (-0.0 - d53) / +HEAPF32[i6 + 12 >> 2];
22268 }
22269 d54 = +HEAPF32[i43 >> 2];
22270 d65 = d67 * d54;
22271 d67 = d66 * d54;
22272 do {
22273 if ((HEAP32[i6 + 44 >> 2] | 0) != 0) {
22274 if (d53 > +HEAPF32[i6 + 48 >> 2]) {
22275 break;
22276 }
22277 HEAPF32[i2 + 116 >> 2] = d67;
22278 HEAPF32[i2 + 132 >> 2] = d65;
22279 i68 = i2 + 120 | 0;
22280 HEAPF32[i68 >> 2] = 0.0;
22281 i69 = i2 + 124 | 0;
22282 HEAPF32[i69 >> 2] = 0.0;
22283 i70 = i2 + 128 | 0;
22284 HEAPF32[i70 >> 2] = 1.0e10;
22285 return;
22286 }
22287 } while (0);
22288 HEAPF32[i2 + 116 >> 2] = d65 + d67;
22289 HEAPF32[i2 + 132 >> 2] = 0.0;
22290 i68 = i2 + 120 | 0;
22291 HEAPF32[i68 >> 2] = 0.0;
22292 i69 = i2 + 124 | 0;
22293 HEAPF32[i69 >> 2] = 0.0;
22294 i70 = i2 + 128 | 0;
22295 HEAPF32[i70 >> 2] = 1.0e10;
22296 return;
22297 }
22298 function __ZN20btConvexHullInternal15mergeProjectionERNS_16IntermediateHullES1_RPNS_6VertexES4_(i1, i2, i3, i4, i5) {
22299 i1 = i1 | 0;
22300 i2 = i2 | 0;
22301 i3 = i3 | 0;
22302 i4 = i4 | 0;
22303 i5 = i5 | 0;
22304 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0;
22305 i1 = i2 + 12 | 0;
22306 i6 = HEAP32[i1 >> 2] | 0;
22307 i7 = HEAP32[i3 + 8 >> 2] | 0;
22308 L791 : do {
22309 if ((HEAP32[i6 + 88 >> 2] | 0) == (HEAP32[i7 + 88 >> 2] | 0)) {
22310 if ((HEAP32[i6 + 92 >> 2] | 0) != (HEAP32[i7 + 92 >> 2] | 0)) {
22311 break;
22312 }
22313 i8 = HEAP32[i7 + 4 >> 2] | 0;
22314 if ((i8 | 0) == (i7 | 0)) {
22315 HEAP32[i4 >> 2] = i6;
22316 i9 = HEAP32[i7 + 8 >> 2] | 0;
22317 if ((i9 | 0) == 0) {
22318 i10 = 0;
22319 i11 = i7;
22320 HEAP32[i5 >> 2] = i11;
22321 return i10 | 0;
22322 }
22323 i10 = 0;
22324 i11 = HEAP32[i9 + 12 >> 2] | 0;
22325 HEAP32[i5 >> 2] = i11;
22326 return i10 | 0;
22327 }
22328 i9 = HEAP32[i7 >> 2] | 0;
22329 HEAP32[i8 >> 2] = i9;
22330 HEAP32[i9 + 4 >> 2] = i8;
22331 i12 = i3 | 0;
22332 L801 : do {
22333 if ((i7 | 0) == (HEAP32[i12 >> 2] | 0)) {
22334 i13 = HEAP32[i9 + 88 >> 2] | 0;
22335 i14 = HEAP32[i8 + 88 >> 2] | 0;
22336 do {
22337 if ((i13 | 0) >= (i14 | 0)) {
22338 if ((i13 | 0) == (i14 | 0)) {
22339 if ((HEAP32[i9 + 92 >> 2] | 0) < (HEAP32[i8 + 92 >> 2] | 0)) {
22340 break;
22341 }
22342 }
22343 HEAP32[i12 >> 2] = i8;
22344 break L801;
22345 }
22346 } while (0);
22347 HEAP32[i12 >> 2] = i9;
22348 }
22349 } while (0);
22350 i12 = i3 + 4 | 0;
22351 if ((i7 | 0) != (HEAP32[i12 >> 2] | 0)) {
22352 break;
22353 }
22354 i14 = HEAP32[i9 + 88 >> 2] | 0;
22355 i13 = HEAP32[i8 + 88 >> 2] | 0;
22356 do {
22357 if ((i14 | 0) <= (i13 | 0)) {
22358 if ((i14 | 0) == (i13 | 0)) {
22359 if ((HEAP32[i9 + 92 >> 2] | 0) > (HEAP32[i8 + 92 >> 2] | 0)) {
22360 break;
22361 }
22362 }
22363 HEAP32[i12 >> 2] = i8;
22364 break L791;
22365 }
22366 } while (0);
22367 HEAP32[i12 >> 2] = i9;
22368 }
22369 } while (0);
22370 i7 = i2 + 4 | 0;
22371 i6 = i3 + 4 | 0;
22372 i8 = i2 | 0;
22373 i2 = i3 | 0;
22374 i13 = 0;
22375 i14 = 1;
22376 i15 = 0;
22377 i16 = 0;
22378 i17 = i6;
22379 i18 = i7;
22380 L818 : while (1) {
22381 i19 = i13;
22382 i20 = HEAP32[i17 >> 2] | 0;
22383 i21 = HEAP32[i18 >> 2] | 0;
22384 while (1) {
22385 i22 = HEAP32[i21 + 88 >> 2] | 0;
22386 i23 = Math_imul((HEAP32[i20 + 88 >> 2] | 0) - i22 | 0, i14) | 0;
22387 L822 : do {
22388 if ((i23 | 0) > 0) {
22389 i24 = (i19 | 0) != 0;
22390 i25 = i21;
22391 i26 = i20;
22392 i27 = i23;
22393 i28 = HEAP32[i20 + 92 >> 2] | 0;
22394 while (1) {
22395 i29 = i26 + 88 | 0;
22396 i30 = i25 + 88 | 0;
22397 i31 = HEAP32[i25 + 92 >> 2] | 0;
22398 i32 = i28 - i31 | 0;
22399 i33 = HEAP32[(i24 ? i25 | 0 : i25 + 4 | 0) >> 2] | 0;
22400 L864 : do {
22401 if ((i33 | 0) == (i25 | 0)) {
22402 i34 = i27;
22403 i35 = i25;
22404 i36 = i30;
22405 i37 = i32;
22406 } else {
22407 i38 = i29 | 0;
22408 i39 = i27;
22409 i40 = i25;
22410 i41 = i30;
22411 i42 = i31;
22412 i43 = i32;
22413 i44 = i33;
22414 while (1) {
22415 i45 = HEAP32[i44 + 88 >> 2] | 0;
22416 i46 = Math_imul(i45 - (HEAP32[i41 >> 2] | 0) | 0, i14) | 0;
22417 i47 = HEAP32[i44 + 92 >> 2] | 0;
22418 i48 = i47 - i42 | 0;
22419 if ((i48 | 0) >= 1) {
22420 i34 = i39;
22421 i35 = i40;
22422 i36 = i41;
22423 i37 = i43;
22424 break L864;
22425 }
22426 if ((i46 | 0) != 0) {
22427 if ((i46 | 0) >= 0) {
22428 i34 = i39;
22429 i35 = i40;
22430 i36 = i41;
22431 i37 = i43;
22432 break L864;
22433 }
22434 i49 = Math_imul(i48, i39) | 0;
22435 if ((i49 | 0) > (Math_imul(i46, i43) | 0)) {
22436 i34 = i39;
22437 i35 = i40;
22438 i36 = i41;
22439 i37 = i43;
22440 break L864;
22441 }
22442 }
22443 i46 = Math_imul((HEAP32[i38 >> 2] | 0) - i45 | 0, i14) | 0;
22444 i45 = i44 + 88 | 0;
22445 i49 = i28 - i47 | 0;
22446 i48 = HEAP32[(i24 ? i44 | 0 : i44 + 4 | 0) >> 2] | 0;
22447 if ((i48 | 0) == (i44 | 0)) {
22448 i34 = i46;
22449 i35 = i44;
22450 i36 = i45;
22451 i37 = i49;
22452 break;
22453 } else {
22454 i39 = i46;
22455 i40 = i44;
22456 i41 = i45;
22457 i42 = i47;
22458 i43 = i49;
22459 i44 = i48;
22460 }
22461 }
22462 }
22463 } while (0);
22464 i33 = HEAP32[(i24 ? i26 | 0 : i26 + 4 | 0) >> 2] | 0;
22465 if ((i33 | 0) == (i26 | 0)) {
22466 i50 = i35;
22467 i51 = i26;
22468 break L822;
22469 }
22470 i32 = HEAP32[i33 + 88 >> 2] | 0;
22471 i31 = Math_imul(i32 - (HEAP32[i29 >> 2] | 0) | 0, i14) | 0;
22472 i30 = HEAP32[i33 + 92 >> 2] | 0;
22473 i44 = i30 - i28 | 0;
22474 i43 = Math_imul(i32 - (HEAP32[i36 >> 2] | 0) | 0, i14) | 0;
22475 if (!((i43 | 0) > 0 & (i44 | 0) < 0)) {
22476 i50 = i35;
22477 i51 = i26;
22478 break L822;
22479 }
22480 if ((i31 | 0) == 0) {
22481 i25 = i35;
22482 i26 = i33;
22483 i27 = i43;
22484 i28 = i30;
22485 continue;
22486 }
22487 if ((i31 | 0) >= 0) {
22488 i50 = i35;
22489 i51 = i26;
22490 break L822;
22491 }
22492 i32 = Math_imul(i44, i34) | 0;
22493 if ((i32 | 0) < (Math_imul(i31, i37) | 0)) {
22494 i25 = i35;
22495 i26 = i33;
22496 i27 = i43;
22497 i28 = i30;
22498 } else {
22499 i50 = i35;
22500 i51 = i26;
22501 break;
22502 }
22503 }
22504 } else {
22505 if ((i23 | 0) < 0) {
22506 i26 = (i19 | 0) != 0;
22507 i28 = i21;
22508 i27 = i20;
22509 i25 = i23;
22510 i24 = HEAP32[i20 + 92 >> 2] | 0;
22511 i30 = HEAP32[i21 + 92 >> 2] | 0;
22512 while (1) {
22513 i43 = HEAP32[(i26 ? i27 + 4 | 0 : i27 | 0) >> 2] | 0;
22514 i33 = (i43 | 0) == (i27 | 0);
22515 i31 = i27 + 88 | 0;
22516 i32 = i43 + 88 | 0;
22517 i44 = i43 + 92 | 0;
22518 i42 = i28;
22519 i41 = i25;
22520 i40 = i30;
22521 L828 : while (1) {
22522 i52 = i42 + 88 | 0;
22523 i39 = i24 - i40 | 0;
22524 do {
22525 if (!i33) {
22526 i53 = HEAP32[i32 >> 2] | 0;
22527 i38 = Math_imul(i53 - (HEAP32[i31 >> 2] | 0) | 0, i14) | 0;
22528 i54 = HEAP32[i44 >> 2] | 0;
22529 i48 = i54 - i24 | 0;
22530 if ((i48 | 0) <= -1) {
22531 break;
22532 }
22533 if ((i38 | 0) == 0) {
22534 break L828;
22535 }
22536 if ((i38 | 0) >= 0) {
22537 break;
22538 }
22539 i49 = Math_imul(i48, i41) | 0;
22540 if ((i49 | 0) <= (Math_imul(i38, i39) | 0)) {
22541 break L828;
22542 }
22543 }
22544 } while (0);
22545 i38 = HEAP32[(i26 ? i42 + 4 | 0 : i42 | 0) >> 2] | 0;
22546 if ((i38 | 0) == (i42 | 0)) {
22547 i50 = i42;
22548 i51 = i27;
22549 break L822;
22550 }
22551 i49 = HEAP32[i38 + 88 >> 2] | 0;
22552 i48 = Math_imul(i49 - (HEAP32[i52 >> 2] | 0) | 0, i14) | 0;
22553 i47 = HEAP32[i38 + 92 >> 2] | 0;
22554 i45 = i47 - i40 | 0;
22555 i46 = Math_imul((HEAP32[i31 >> 2] | 0) - i49 | 0, i14) | 0;
22556 if (!((i46 | 0) < 0 & (i45 | 0) > 0)) {
22557 i50 = i42;
22558 i51 = i27;
22559 break L822;
22560 }
22561 if ((i48 | 0) == 0) {
22562 i42 = i38;
22563 i41 = i46;
22564 i40 = i47;
22565 continue;
22566 }
22567 if ((i48 | 0) >= 0) {
22568 i50 = i42;
22569 i51 = i27;
22570 break L822;
22571 }
22572 i49 = Math_imul(i45, i41) | 0;
22573 if ((i49 | 0) < (Math_imul(i48, i39) | 0)) {
22574 i42 = i38;
22575 i41 = i46;
22576 i40 = i47;
22577 } else {
22578 i50 = i42;
22579 i51 = i27;
22580 break L822;
22581 }
22582 }
22583 i28 = i42;
22584 i27 = i43;
22585 i25 = Math_imul(i53 - (HEAP32[i52 >> 2] | 0) | 0, i14) | 0;
22586 i24 = i54;
22587 i30 = i40;
22588 }
22589 }
22590 i30 = HEAP32[i21 + 92 >> 2] | 0;
22591 i24 = (i19 | 0) != 0;
22592 L842 : do {
22593 if (i24) {
22594 i25 = i21;
22595 i27 = i30;
22596 while (1) {
22597 i28 = HEAP32[i25 >> 2] | 0;
22598 if ((i28 | 0) == (i21 | 0)) {
22599 i55 = i25;
22600 break L842;
22601 }
22602 if ((HEAP32[i28 + 88 >> 2] | 0) != (i22 | 0)) {
22603 i55 = i25;
22604 break L842;
22605 }
22606 i26 = HEAP32[i28 + 92 >> 2] | 0;
22607 if ((i26 | 0) > (i27 | 0)) {
22608 i55 = i25;
22609 break;
22610 } else {
22611 i25 = i28;
22612 i27 = i26;
22613 }
22614 }
22615 } else {
22616 i27 = i21;
22617 i25 = i30;
22618 while (1) {
22619 i40 = HEAP32[i27 + 4 >> 2] | 0;
22620 if ((i40 | 0) == (i21 | 0)) {
22621 i55 = i27;
22622 break L842;
22623 }
22624 if ((HEAP32[i40 + 88 >> 2] | 0) != (i22 | 0)) {
22625 i55 = i27;
22626 break L842;
22627 }
22628 i43 = HEAP32[i40 + 92 >> 2] | 0;
22629 if ((i43 | 0) > (i25 | 0)) {
22630 i55 = i27;
22631 break;
22632 } else {
22633 i27 = i40;
22634 i25 = i43;
22635 }
22636 }
22637 }
22638 } while (0);
22639 i30 = HEAP32[i20 + 92 >> 2] | 0;
22640 if (i24) {
22641 i25 = i20;
22642 i27 = i30;
22643 while (1) {
22644 i43 = HEAP32[i25 + 4 >> 2] | 0;
22645 if ((i43 | 0) == (i20 | 0)) {
22646 i50 = i55;
22647 i51 = i25;
22648 break L822;
22649 }
22650 if ((HEAP32[i43 + 88 >> 2] | 0) != (i22 | 0)) {
22651 i50 = i55;
22652 i51 = i25;
22653 break L822;
22654 }
22655 i40 = HEAP32[i43 + 92 >> 2] | 0;
22656 if ((i40 | 0) < (i27 | 0)) {
22657 i50 = i55;
22658 i51 = i25;
22659 break;
22660 } else {
22661 i25 = i43;
22662 i27 = i40;
22663 }
22664 }
22665 } else {
22666 i27 = i20;
22667 i25 = i30;
22668 while (1) {
22669 i24 = HEAP32[i27 >> 2] | 0;
22670 if ((i24 | 0) == (i20 | 0)) {
22671 i50 = i55;
22672 i51 = i27;
22673 break L822;
22674 }
22675 if ((HEAP32[i24 + 88 >> 2] | 0) != (i22 | 0)) {
22676 i50 = i55;
22677 i51 = i27;
22678 break L822;
22679 }
22680 i40 = HEAP32[i24 + 92 >> 2] | 0;
22681 if ((i40 | 0) < (i25 | 0)) {
22682 i50 = i55;
22683 i51 = i27;
22684 break;
22685 } else {
22686 i27 = i24;
22687 i25 = i40;
22688 }
22689 }
22690 }
22691 }
22692 } while (0);
22693 if ((i19 | 0) == 0) {
22694 i13 = 1;
22695 i14 = -1;
22696 i15 = i51;
22697 i16 = i50;
22698 i17 = i2;
22699 i18 = i8;
22700 continue L818;
22701 }
22702 i22 = i19 + 1 | 0;
22703 if ((i22 | 0) < 2) {
22704 i19 = i22;
22705 i20 = i51;
22706 i21 = i50;
22707 } else {
22708 break L818;
22709 }
22710 }
22711 }
22712 HEAP32[i50 + 4 >> 2] = i51;
22713 HEAP32[i51 >> 2] = i50;
22714 HEAP32[i16 >> 2] = i15;
22715 HEAP32[i15 + 4 >> 2] = i16;
22716 i50 = HEAP32[i2 >> 2] | 0;
22717 if ((HEAP32[i50 + 88 >> 2] | 0) < (HEAP32[(HEAP32[i8 >> 2] | 0) + 88 >> 2] | 0)) {
22718 HEAP32[i8 >> 2] = i50;
22719 }
22720 i50 = HEAP32[i6 >> 2] | 0;
22721 if ((HEAP32[i50 + 88 >> 2] | 0) >= (HEAP32[(HEAP32[i7 >> 2] | 0) + 88 >> 2] | 0)) {
22722 HEAP32[i7 >> 2] = i50;
22723 }
22724 HEAP32[i1 >> 2] = HEAP32[i3 + 12 >> 2];
22725 HEAP32[i4 >> 2] = i16;
22726 i10 = 1;
22727 i11 = i15;
22728 HEAP32[i5 >> 2] = i11;
22729 return i10 | 0;
22730 }
22731 function __ZN20btConvexHullInternal7computeEPKvbii(i1, i2, i3, i4, i5) {
22732 i1 = i1 | 0;
22733 i2 = i2 | 0;
22734 i3 = i3 | 0;
22735 i4 = i4 | 0;
22736 i5 = i5 | 0;
22737 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, i19 = 0, i20 = 0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, i34 = 0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, d47 = 0.0, d48 = 0.0, d49 = 0.0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0;
22738 i6 = STACKTOP;
22739 STACKTOP = STACKTOP + 88 | 0;
22740 i7 = i6 | 0;
22741 i8 = i6 + 24 | 0;
22742 i9 = i6 + 40 | 0;
22743 i10 = i6 + 56 | 0;
22744 i11 = i6 + 72 | 0;
22745 i12 = (i5 | 0) > 0;
22746 do {
22747 if (i3) {
22748 if (i12) {
22749 d13 = 1.0000000150474662e+30;
22750 d14 = 1.0000000150474662e+30;
22751 d15 = 1.0000000150474662e+30;
22752 d16 = -1.0000000150474662e+30;
22753 d17 = -1.0000000150474662e+30;
22754 d18 = -1.0000000150474662e+30;
22755 i19 = 0;
22756 i20 = i2;
22757 } else {
22758 d21 = -1.0000000150474662e+30;
22759 d22 = -1.0000000150474662e+30;
22760 d23 = -1.0000000150474662e+30;
22761 d24 = 1.0000000150474662e+30;
22762 d25 = 1.0000000150474662e+30;
22763 d26 = 1.0000000150474662e+30;
22764 break;
22765 }
22766 while (1) {
22767 d27 = +HEAPF64[i20 >> 3];
22768 d28 = +HEAPF64[i20 + 8 >> 3];
22769 d29 = +HEAPF64[i20 + 16 >> 3];
22770 d30 = d27 < d15 ? d27 : d15;
22771 d31 = d28 < d14 ? d28 : d14;
22772 d32 = d29 < d13 ? d29 : d13;
22773 d33 = d18 < d27 ? d27 : d18;
22774 d27 = d17 < d28 ? d28 : d17;
22775 d28 = d16 < d29 ? d29 : d16;
22776 i34 = i19 + 1 | 0;
22777 if ((i34 | 0) < (i5 | 0)) {
22778 d13 = d32;
22779 d14 = d31;
22780 d15 = d30;
22781 d16 = d28;
22782 d17 = d27;
22783 d18 = d33;
22784 i19 = i34;
22785 i20 = i20 + i4 | 0;
22786 } else {
22787 d21 = d33;
22788 d22 = d27;
22789 d23 = d28;
22790 d24 = d30;
22791 d25 = d31;
22792 d26 = d32;
22793 break;
22794 }
22795 }
22796 } else {
22797 if (i12) {
22798 d35 = 1.0000000150474662e+30;
22799 d36 = 1.0000000150474662e+30;
22800 d37 = 1.0000000150474662e+30;
22801 d38 = -1.0000000150474662e+30;
22802 d39 = -1.0000000150474662e+30;
22803 d40 = -1.0000000150474662e+30;
22804 i41 = 0;
22805 i42 = i2;
22806 } else {
22807 d21 = -1.0000000150474662e+30;
22808 d22 = -1.0000000150474662e+30;
22809 d23 = -1.0000000150474662e+30;
22810 d24 = 1.0000000150474662e+30;
22811 d25 = 1.0000000150474662e+30;
22812 d26 = 1.0000000150474662e+30;
22813 break;
22814 }
22815 while (1) {
22816 d32 = +HEAPF32[i42 >> 2];
22817 d31 = +HEAPF32[i42 + 4 >> 2];
22818 d30 = +HEAPF32[i42 + 8 >> 2];
22819 d28 = d32 < d37 ? d32 : d37;
22820 d27 = d31 < d36 ? d31 : d36;
22821 d33 = d30 < d35 ? d30 : d35;
22822 d29 = d40 < d32 ? d32 : d40;
22823 d32 = d39 < d31 ? d31 : d39;
22824 d31 = d38 < d30 ? d30 : d38;
22825 i34 = i41 + 1 | 0;
22826 if ((i34 | 0) < (i5 | 0)) {
22827 d35 = d33;
22828 d36 = d27;
22829 d37 = d28;
22830 d38 = d31;
22831 d39 = d32;
22832 d40 = d29;
22833 i41 = i34;
22834 i42 = i42 + i4 | 0;
22835 } else {
22836 d21 = d29;
22837 d22 = d32;
22838 d23 = d31;
22839 d24 = d28;
22840 d25 = d27;
22841 d26 = d33;
22842 break;
22843 }
22844 }
22845 }
22846 } while (0);
22847 d40 = d21 - d24;
22848 d39 = d22 - d25;
22849 d38 = d23 - d26;
22850 if (d40 < d39) {
22851 i42 = i1 + 112 | 0;
22852 HEAP32[i42 >> 2] = d39 < d38 ? 2 : 1;
22853 i43 = d40 < d38 ? 0 : 2;
22854 i44 = i42;
22855 } else {
22856 i42 = i1 + 112 | 0;
22857 HEAP32[i42 >> 2] = d40 < d38 ? 2 : 0;
22858 i43 = d39 < d38 ? 1 : 2;
22859 i44 = i42;
22860 }
22861 i42 = i1 + 104 | 0;
22862 HEAP32[i42 >> 2] = i43;
22863 i41 = HEAP32[i44 >> 2] | 0;
22864 if ((i43 | 0) == (i41 | 0)) {
22865 i20 = ((i43 + 1 | 0) >>> 0) % 3 | 0;
22866 HEAP32[i42 >> 2] = i20;
22867 i45 = HEAP32[i44 >> 2] | 0;
22868 i46 = i20;
22869 } else {
22870 i45 = i41;
22871 i46 = i43;
22872 }
22873 i43 = i1 + 108 | 0;
22874 HEAP32[i43 >> 2] = 3 - i46 - i45;
22875 d37 = d40 * 9788566967472434.0e-20;
22876 d40 = d39 * 9788566967472434.0e-20;
22877 d39 = d38 * 9788566967472434.0e-20;
22878 HEAPF32[i1 >> 2] = d37;
22879 HEAPF32[i1 + 4 >> 2] = d40;
22880 HEAPF32[i1 + 8 >> 2] = d39;
22881 HEAPF32[i1 + 12 >> 2] = 0.0;
22882 if (d37 > 0.0) {
22883 d47 = 1.0 / d37;
22884 } else {
22885 d47 = d37;
22886 }
22887 if (d40 > 0.0) {
22888 d48 = 1.0 / d40;
22889 } else {
22890 d48 = d40;
22891 }
22892 if (d39 > 0.0) {
22893 d49 = 1.0 / d39;
22894 } else {
22895 d49 = d39;
22896 }
22897 i45 = i1 + 16 | 0;
22898 HEAPF32[i1 + 16 >> 2] = (d24 + d21) * .5;
22899 i46 = i1 + 20 | 0;
22900 HEAPF32[i46 >> 2] = (d25 + d22) * .5;
22901 i41 = i1 + 24 | 0;
22902 HEAPF32[i41 >> 2] = (d26 + d23) * .5;
22903 HEAPF32[i1 + 28 >> 2] = 0.0;
22904 i20 = i7 + 16 | 0;
22905 HEAP8[i20] = 1;
22906 i19 = i7 + 12 | 0;
22907 HEAP32[i19 >> 2] = 0;
22908 i34 = i7 + 4 | 0;
22909 HEAP32[i34 >> 2] = 0;
22910 i50 = i7 + 8 | 0;
22911 HEAP32[i50 >> 2] = 0;
22912 L1398 : do {
22913 if (i12) {
22914 i51 = __Z22btAlignedAllocInternalji(i5 << 4, 16) | 0;
22915 i52 = HEAP32[i34 >> 2] | 0;
22916 if ((i52 | 0) > 0) {
22917 i53 = 0;
22918 do {
22919 i54 = i51 + (i53 << 4) | 0;
22920 if ((i54 | 0) != 0) {
22921 i55 = i54;
22922 i54 = (HEAP32[i19 >> 2] | 0) + (i53 << 4) | 0;
22923 HEAP32[i55 >> 2] = HEAP32[i54 >> 2];
22924 HEAP32[i55 + 4 >> 2] = HEAP32[i54 + 4 >> 2];
22925 HEAP32[i55 + 8 >> 2] = HEAP32[i54 + 8 >> 2];
22926 HEAP32[i55 + 12 >> 2] = HEAP32[i54 + 12 >> 2];
22927 }
22928 i53 = i53 + 1 | 0;
22929 } while ((i53 | 0) < (i52 | 0));
22930 }
22931 i52 = HEAP32[i19 >> 2] | 0;
22932 if ((i52 | 0) != 0) {
22933 if ((HEAP8[i20] | 0) != 0) {
22934 __Z21btAlignedFreeInternalPv(i52);
22935 }
22936 HEAP32[i19 >> 2] = 0;
22937 }
22938 HEAP8[i20] = 1;
22939 HEAP32[i19 >> 2] = i51;
22940 HEAP32[i50 >> 2] = i5;
22941 i52 = i8;
22942 i53 = 0;
22943 i54 = i51;
22944 while (1) {
22945 i55 = i54 + (i53 << 4) | 0;
22946 if ((i55 | 0) != 0) {
22947 i56 = i55;
22948 HEAP32[i56 >> 2] = HEAP32[i52 >> 2];
22949 HEAP32[i56 + 4 >> 2] = HEAP32[i52 + 4 >> 2];
22950 HEAP32[i56 + 8 >> 2] = HEAP32[i52 + 8 >> 2];
22951 HEAP32[i56 + 12 >> 2] = HEAP32[i52 + 12 >> 2];
22952 }
22953 i56 = i53 + 1 | 0;
22954 if ((i56 | 0) >= (i5 | 0)) {
22955 break L1398;
22956 }
22957 i53 = i56;
22958 i54 = HEAP32[i19 >> 2] | 0;
22959 }
22960 }
22961 } while (0);
22962 HEAP32[i34 >> 2] = i5;
22963 L1421 : do {
22964 if (i3) {
22965 if (!i12) {
22966 break;
22967 }
22968 i8 = i9 | 0;
22969 i54 = i9 + 4 | 0;
22970 i53 = i9 + 8 | 0;
22971 i52 = i9 + 12 | 0;
22972 i51 = HEAP32[i19 >> 2] | 0;
22973 d23 = +HEAPF32[i45 >> 2];
22974 d26 = +HEAPF32[i46 >> 2];
22975 d22 = +HEAPF32[i41 >> 2];
22976 i56 = 0;
22977 i55 = i2;
22978 while (1) {
22979 d25 = d48 * (+HEAPF64[i55 + 8 >> 3] - d26);
22980 d21 = d49 * (+HEAPF64[i55 + 16 >> 3] - d22);
22981 HEAPF32[i8 >> 2] = d47 * (+HEAPF64[i55 >> 3] - d23);
22982 HEAPF32[i54 >> 2] = d25;
22983 HEAPF32[i53 >> 2] = d21;
22984 HEAPF32[i52 >> 2] = 0.0;
22985 HEAP32[i51 + (i56 << 4) >> 2] = ~~+HEAPF32[i9 + (HEAP32[i43 >> 2] << 2) >> 2];
22986 HEAP32[i51 + (i56 << 4) + 4 >> 2] = ~~+HEAPF32[i9 + (HEAP32[i44 >> 2] << 2) >> 2];
22987 HEAP32[i51 + (i56 << 4) + 8 >> 2] = ~~+HEAPF32[i9 + (HEAP32[i42 >> 2] << 2) >> 2];
22988 HEAP32[i51 + (i56 << 4) + 12 >> 2] = i56;
22989 i57 = i56 + 1 | 0;
22990 if ((i57 | 0) >= (i5 | 0)) {
22991 break L1421;
22992 }
22993 i56 = i57;
22994 i55 = i55 + i4 | 0;
22995 }
22996 } else {
22997 if (!i12) {
22998 break;
22999 }
23000 i55 = i10 | 0;
23001 i56 = i10 + 4 | 0;
23002 i51 = i10 + 8 | 0;
23003 i52 = i10 + 12 | 0;
23004 i53 = HEAP32[i19 >> 2] | 0;
23005 d23 = +HEAPF32[i45 >> 2];
23006 d22 = +HEAPF32[i46 >> 2];
23007 d26 = +HEAPF32[i41 >> 2];
23008 i54 = 0;
23009 i8 = i2;
23010 while (1) {
23011 d21 = +HEAPF32[i8 >> 2];
23012 HEAPF32[i55 >> 2] = d21;
23013 d25 = +HEAPF32[i8 + 4 >> 2];
23014 HEAPF32[i56 >> 2] = d25;
23015 d24 = d49 * (+HEAPF32[i8 + 8 >> 2] - d26);
23016 HEAPF32[i55 >> 2] = d47 * (d21 - d23);
23017 HEAPF32[i56 >> 2] = d48 * (d25 - d22);
23018 HEAPF32[i51 >> 2] = d24;
23019 HEAPF32[i52 >> 2] = 0.0;
23020 HEAP32[i53 + (i54 << 4) >> 2] = ~~+HEAPF32[i10 + (HEAP32[i43 >> 2] << 2) >> 2];
23021 HEAP32[i53 + (i54 << 4) + 4 >> 2] = ~~+HEAPF32[i10 + (HEAP32[i44 >> 2] << 2) >> 2];
23022 HEAP32[i53 + (i54 << 4) + 8 >> 2] = ~~+HEAPF32[i10 + (HEAP32[i42 >> 2] << 2) >> 2];
23023 HEAP32[i53 + (i54 << 4) + 12 >> 2] = i54;
23024 i57 = i54 + 1 | 0;
23025 if ((i57 | 0) >= (i5 | 0)) {
23026 break L1421;
23027 }
23028 i54 = i57;
23029 i8 = i8 + i4 | 0;
23030 }
23031 }
23032 } while (0);
23033 i4 = HEAP32[i34 >> 2] | 0;
23034 if ((i4 | 0) > 1) {
23035 __ZN20btAlignedObjectArrayIN20btConvexHullInternal7Point32EE17quickSortInternalIPFbRKS1_S5_EEEvT_ii(i7, 14, 0, i4 - 1 | 0);
23036 }
23037 i4 = i1 + 32 | 0;
23038 HEAP32[i1 + 36 >> 2] = HEAP32[i4 >> 2];
23039 HEAP32[i1 + 40 >> 2] = 0;
23040 HEAP32[i1 + 44 >> 2] = i5;
23041 i7 = i1 + 84 | 0;
23042 i42 = HEAP32[i7 >> 2] | 0;
23043 if ((i42 | 0) < (i5 | 0)) {
23044 i10 = i1 + 88 | 0;
23045 if ((HEAP32[i10 >> 2] | 0) < (i5 | 0)) {
23046 if ((i5 | 0) == 0) {
23047 i58 = 0;
23048 i59 = i42;
23049 } else {
23050 i44 = __Z22btAlignedAllocInternalji(i5 << 2, 16) | 0;
23051 i58 = i44;
23052 i59 = HEAP32[i7 >> 2] | 0;
23053 }
23054 i44 = i1 + 92 | 0;
23055 if ((i59 | 0) > 0) {
23056 i43 = 0;
23057 do {
23058 i2 = i58 + (i43 << 2) | 0;
23059 if ((i2 | 0) != 0) {
23060 HEAP32[i2 >> 2] = HEAP32[(HEAP32[i44 >> 2] | 0) + (i43 << 2) >> 2];
23061 }
23062 i43 = i43 + 1 | 0;
23063 } while ((i43 | 0) < (i59 | 0));
23064 }
23065 i59 = HEAP32[i44 >> 2] | 0;
23066 i43 = i1 + 96 | 0;
23067 if ((i59 | 0) != 0) {
23068 if ((HEAP8[i43] | 0) != 0) {
23069 __Z21btAlignedFreeInternalPv(i59);
23070 }
23071 HEAP32[i44 >> 2] = 0;
23072 }
23073 HEAP8[i43] = 1;
23074 HEAP32[i44 >> 2] = i58;
23075 HEAP32[i10 >> 2] = i5;
23076 i60 = i44;
23077 } else {
23078 i60 = i1 + 92 | 0;
23079 }
23080 i44 = i42;
23081 do {
23082 i42 = (HEAP32[i60 >> 2] | 0) + (i44 << 2) | 0;
23083 if ((i42 | 0) != 0) {
23084 HEAP32[i42 >> 2] = 0;
23085 }
23086 i44 = i44 + 1 | 0;
23087 } while ((i44 | 0) < (i5 | 0));
23088 }
23089 HEAP32[i7 >> 2] = i5;
23090 if (i12) {
23091 i12 = i1 + 92 | 0;
23092 i7 = 0;
23093 do {
23094 i44 = __ZN20btConvexHullInternal4PoolINS_6VertexEE9newObjectEv(i4) | 0;
23095 HEAP32[i44 + 8 >> 2] = 0;
23096 i60 = i44 + 88 | 0;
23097 i42 = (HEAP32[i19 >> 2] | 0) + (i7 << 4) | 0;
23098 HEAP32[i60 >> 2] = HEAP32[i42 >> 2];
23099 HEAP32[i60 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
23100 HEAP32[i60 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
23101 HEAP32[i60 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
23102 HEAP32[i44 + 104 >> 2] = -1;
23103 HEAP32[(HEAP32[i12 >> 2] | 0) + (i7 << 2) >> 2] = i44;
23104 i7 = i7 + 1 | 0;
23105 } while ((i7 | 0) < (i5 | 0));
23106 }
23107 i7 = HEAP32[i19 >> 2] | 0;
23108 if ((i7 | 0) != 0) {
23109 if ((HEAP8[i20] | 0) != 0) {
23110 __Z21btAlignedFreeInternalPv(i7);
23111 }
23112 HEAP32[i19 >> 2] = 0;
23113 }
23114 HEAP8[i20] = 1;
23115 HEAP32[i19 >> 2] = 0;
23116 HEAP32[i34 >> 2] = 0;
23117 HEAP32[i50 >> 2] = 0;
23118 HEAP32[i1 + 52 >> 2] = HEAP32[i1 + 48 >> 2];
23119 HEAP32[i1 + 56 >> 2] = 0;
23120 HEAP32[i1 + 60 >> 2] = i5 * 6 | 0;
23121 HEAP32[i1 + 116 >> 2] = 0;
23122 HEAP32[i1 + 120 >> 2] = 0;
23123 HEAP32[i1 + 100 >> 2] = -3;
23124 _memset(i11 | 0, 0, 16);
23125 __ZN20btConvexHullInternal15computeInternalEiiRNS_16IntermediateHullE(i1, 0, i5, i11);
23126 HEAP32[i1 + 124 >> 2] = HEAP32[i11 >> 2];
23127 i11 = HEAP32[i19 >> 2] | 0;
23128 if ((i11 | 0) == 0) {
23129 STACKTOP = i6;
23130 return;
23131 }
23132 if ((HEAP8[i20] | 0) != 0) {
23133 __Z21btAlignedFreeInternalPv(i11);
23134 }
23135 HEAP32[i19 >> 2] = 0;
23136 STACKTOP = i6;
23137 return;
23138 }
23139 function __ZN35btSequentialImpulseConstraintSolver14convertContactEP20btPersistentManifoldRK19btContactSolverInfo(i1, i2, i3) {
23140 i1 = i1 | 0;
23141 i2 = i2 | 0;
23142 i3 = i3 | 0;
23143 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, i59 = 0, i60 = 0, i61 = 0, d62 = 0.0, d63 = 0.0, i64 = 0, d65 = 0.0;
23144 i4 = STACKTOP;
23145 STACKTOP = STACKTOP + 128 | 0;
23146 i5 = i4 | 0;
23147 i6 = i4 + 16 | 0;
23148 i7 = i4 + 32 | 0;
23149 i8 = i4 + 48 | 0;
23150 i9 = i4 + 64 | 0;
23151 i10 = i4 + 80 | 0;
23152 i11 = i4 + 96 | 0;
23153 i12 = i4 + 104 | 0;
23154 i13 = i4 + 112 | 0;
23155 i14 = HEAP32[i2 + 1108 >> 2] | 0;
23156 i15 = i14;
23157 i16 = HEAP32[i2 + 1112 >> 2] | 0;
23158 i17 = i16;
23159 i18 = i14 + 232 | 0;
23160 if ((HEAP32[i18 >> 2] & 2 | 0) == 0) {
23161 i19 = 0;
23162 } else {
23163 i19 = i14;
23164 }
23165 i20 = i16 + 232 | 0;
23166 if ((HEAP32[i20 >> 2] & 2 | 0) == 0) {
23167 i21 = 0;
23168 } else {
23169 i21 = i16;
23170 }
23171 if ((i19 | 0) == 0) {
23172 i22 = 1360;
23173 } else {
23174 if (+HEAPF32[i19 + 336 >> 2] == 0.0) {
23175 i22 = 1360;
23176 }
23177 }
23178 do {
23179 if ((i22 | 0) == 1360) {
23180 if ((i21 | 0) == 0) {
23181 STACKTOP = i4;
23182 return;
23183 }
23184 if (+HEAPF32[i21 + 336 >> 2] != 0.0) {
23185 break;
23186 }
23187 STACKTOP = i4;
23188 return;
23189 }
23190 } while (0);
23191 i21 = i2 + 1116 | 0;
23192 i19 = HEAP32[i21 >> 2] | 0;
23193 if ((i19 | 0) <= 0) {
23194 STACKTOP = i4;
23195 return;
23196 }
23197 i23 = i2 + 1124 | 0;
23198 i24 = i1 + 8 | 0;
23199 i25 = i1 + 12 | 0;
23200 i26 = i1 + 16 | 0;
23201 i27 = i1 + 20 | 0;
23202 i28 = i1 + 48 | 0;
23203 i29 = i3 + 60 | 0;
23204 i30 = i13 | 0;
23205 i31 = i13 + 4 | 0;
23206 i32 = i13 + 8 | 0;
23207 i33 = i16;
23208 i16 = i14;
23209 i14 = i7;
23210 i34 = i8;
23211 i35 = i5;
23212 i36 = i6;
23213 i37 = 0;
23214 i38 = i19;
23215 while (1) {
23216 i19 = i2 + 4 + (i37 * 276 | 0) | 0;
23217 if (+HEAPF32[i2 + 4 + (i37 * 276 | 0) + 80 >> 2] > +HEAPF32[i23 >> 2]) {
23218 i39 = i38;
23219 } else {
23220 i40 = HEAP32[i24 >> 2] | 0;
23221 do {
23222 if ((i40 | 0) == (HEAP32[i25 >> 2] | 0)) {
23223 i41 = (i40 | 0) == 0 ? 1 : i40 << 1;
23224 if ((i40 | 0) >= (i41 | 0)) {
23225 i42 = i40;
23226 break;
23227 }
23228 if ((i41 | 0) == 0) {
23229 i43 = 0;
23230 i44 = i40;
23231 } else {
23232 i45 = __Z22btAlignedAllocInternalji(i41 * 136 | 0, 16) | 0;
23233 i43 = i45;
23234 i44 = HEAP32[i24 >> 2] | 0;
23235 }
23236 if ((i44 | 0) > 0) {
23237 i45 = 0;
23238 do {
23239 i46 = i43 + (i45 * 136 | 0) | 0;
23240 i47 = (HEAP32[i26 >> 2] | 0) + (i45 * 136 | 0) | 0;
23241 _memcpy(i46 | 0, i47 | 0, 136) | 0;
23242 i45 = i45 + 1 | 0;
23243 } while ((i45 | 0) < (i44 | 0));
23244 }
23245 i45 = HEAP32[i26 >> 2] | 0;
23246 if ((i45 | 0) != 0) {
23247 if ((HEAP8[i27] | 0) != 0) {
23248 __Z21btAlignedFreeInternalPv(i45);
23249 }
23250 HEAP32[i26 >> 2] = 0;
23251 }
23252 HEAP8[i27] = 1;
23253 HEAP32[i26 >> 2] = i43;
23254 HEAP32[i25 >> 2] = i41;
23255 i42 = HEAP32[i24 >> 2] | 0;
23256 } else {
23257 i42 = i40;
23258 }
23259 } while (0);
23260 HEAP32[i24 >> 2] = i42 + 1;
23261 i45 = HEAP32[i26 >> 2] | 0;
23262 i47 = i45 + (i40 * 136 | 0) | 0;
23263 i46 = (HEAP32[i18 >> 2] & 2 | 0) == 0 ? 0 : i16;
23264 i48 = (HEAP32[i20 >> 2] & 2 | 0) == 0 ? 0 : i33;
23265 if ((i46 | 0) == 0) {
23266 do {
23267 if ((HEAP8[14328] | 0) == 0) {
23268 if ((___cxa_guard_acquire(14328) | 0) == 0) {
23269 break;
23270 }
23271 _memset(i14 | 0, 0, 16);
23272 __ZN11btRigidBodyC2EfP13btMotionStateP16btCollisionShapeRK9btVector3(12536, 0.0, 0, 0, i7);
23273 _atexit(268, 12536, ___dso_handle | 0) | 0;
23274 }
23275 } while (0);
23276 _memset(i34 | 0, 0, 16);
23277 __ZN11btRigidBody12setMassPropsEfRK9btVector3(12536, 0.0, i8);
23278 i49 = 12536;
23279 } else {
23280 i49 = i46;
23281 }
23282 HEAP32[i45 + (i40 * 136 | 0) + 104 >> 2] = i49;
23283 if ((i48 | 0) == 0) {
23284 do {
23285 if ((HEAP8[14328] | 0) == 0) {
23286 if ((___cxa_guard_acquire(14328) | 0) == 0) {
23287 break;
23288 }
23289 _memset(i35 | 0, 0, 16);
23290 __ZN11btRigidBodyC2EfP13btMotionStateP16btCollisionShapeRK9btVector3(12536, 0.0, 0, 0, i5);
23291 _atexit(268, 12536, ___dso_handle | 0) | 0;
23292 }
23293 } while (0);
23294 _memset(i36 | 0, 0, 16);
23295 __ZN11btRigidBody12setMassPropsEfRK9btVector3(12536, 0.0, i6);
23296 i50 = 12536;
23297 } else {
23298 i50 = i48;
23299 }
23300 HEAP32[i45 + (i40 * 136 | 0) + 108 >> 2] = i50;
23301 HEAP32[i45 + (i40 * 136 | 0) + 112 >> 2] = i19;
23302 __ZN35btSequentialImpulseConstraintSolver22setupContactConstraintER18btSolverConstraintP17btCollisionObjectS3_R15btManifoldPointRK19btContactSolverInfoR9btVector3RfSB_SA_SA_(0, i47, i15, i17, i19, i3, i13, i12, i11, i9, i10);
23303 HEAP32[i45 + (i40 * 136 | 0) + 100 >> 2] = HEAP32[i28 >> 2];
23304 do {
23305 if ((HEAP32[i29 >> 2] & 32 | 0) == 0) {
23306 i22 = 1392;
23307 } else {
23308 if ((HEAP8[i2 + 4 + (i37 * 276 | 0) + 116 | 0] | 0) == 0) {
23309 i22 = 1392;
23310 break;
23311 }
23312 i51 = i2 + 4 + (i37 * 276 | 0) + 148 | 0;
23313 d52 = +HEAPF32[i11 >> 2];
23314 d53 = +HEAPF32[i2 + 4 + (i37 * 276 | 0) + 128 >> 2];
23315 d54 = +HEAPF32[i2 + 4 + (i37 * 276 | 0) + 136 >> 2];
23316 __ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i1, i51, 0, 0, i40, i19, i9, i10, i15, i17, d52, d53, d54) | 0;
23317 if ((HEAP32[i29 >> 2] & 16 | 0) == 0) {
23318 break;
23319 }
23320 i51 = i2 + 4 + (i37 * 276 | 0) + 164 | 0;
23321 d54 = +HEAPF32[i2 + 4 + (i37 * 276 | 0) + 132 >> 2];
23322 d53 = +HEAPF32[i2 + 4 + (i37 * 276 | 0) + 140 >> 2];
23323 __ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i1, i51, 0, 0, i40, i19, i9, i10, i15, i17, d52, d54, d53) | 0;
23324 }
23325 } while (0);
23326 do {
23327 if ((i22 | 0) == 1392) {
23328 i22 = 0;
23329 i45 = i2 + 4 + (i37 * 276 | 0) + 148 | 0;
23330 d53 = +HEAPF32[i2 + 4 + (i37 * 276 | 0) + 64 >> 2];
23331 d54 = +HEAPF32[i12 >> 2];
23332 d52 = +HEAPF32[i2 + 4 + (i37 * 276 | 0) + 68 >> 2];
23333 d55 = +HEAPF32[i2 + 4 + (i37 * 276 | 0) + 72 >> 2];
23334 d56 = +HEAPF32[i30 >> 2] - d53 * d54;
23335 d57 = +HEAPF32[i31 >> 2] - d54 * d52;
23336 d58 = +HEAPF32[i32 >> 2] - d54 * d55;
23337 HEAPF32[i2 + 4 + (i37 * 276 | 0) + 148 >> 2] = d56;
23338 i51 = i2 + 4 + (i37 * 276 | 0) + 152 | 0;
23339 HEAPF32[i51 >> 2] = d57;
23340 i59 = i2 + 4 + (i37 * 276 | 0) + 156 | 0;
23341 HEAPF32[i59 >> 2] = d58;
23342 HEAPF32[i2 + 4 + (i37 * 276 | 0) + 160 >> 2] = 0.0;
23343 i60 = i45 | 0;
23344 d54 = d56 * d56 + d57 * d57 + d58 * d58;
23345 i61 = HEAP32[i29 >> 2] | 0;
23346 if ((i61 & 64 | 0) == 0 & d54 > 1.1920928955078125e-7) {
23347 d62 = 1.0 / +Math_sqrt(+d54);
23348 d54 = d56 * d62;
23349 HEAPF32[i60 >> 2] = d54;
23350 d56 = d57 * d62;
23351 HEAPF32[i51 >> 2] = d56;
23352 d57 = d58 * d62;
23353 HEAPF32[i59 >> 2] = d57;
23354 if ((i61 & 16 | 0) == 0) {
23355 d63 = +HEAPF32[i11 >> 2];
23356 } else {
23357 i64 = i2 + 4 + (i37 * 276 | 0) + 164 | 0;
23358 d62 = d55 * d56 - d52 * d57;
23359 d58 = d53 * d57 - d55 * d54;
23360 d57 = d52 * d54 - d53 * d56;
23361 HEAPF32[i2 + 4 + (i37 * 276 | 0) + 164 >> 2] = d62;
23362 HEAPF32[i2 + 4 + (i37 * 276 | 0) + 176 >> 2] = 0.0;
23363 d56 = 1.0 / +Math_sqrt(+(d57 * d57 + (d62 * d62 + d58 * d58)));
23364 HEAPF32[i64 >> 2] = d62 * d56;
23365 HEAPF32[i2 + 4 + (i37 * 276 | 0) + 168 >> 2] = d58 * d56;
23366 HEAPF32[i2 + 4 + (i37 * 276 | 0) + 172 >> 2] = d57 * d56;
23367 __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i15, i64);
23368 __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i17, i64);
23369 d56 = +HEAPF32[i11 >> 2];
23370 __ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i1, i64, 0, 0, i40, i19, i9, i10, i15, i17, d56, 0.0, 0.0) | 0;
23371 d63 = d56;
23372 }
23373 __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i15, i45);
23374 __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i17, i45);
23375 __ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i1, i45, 0, 0, i40, i19, i9, i10, i15, i17, d63, 0.0, 0.0) | 0;
23376 HEAP8[i2 + 4 + (i37 * 276 | 0) + 116 | 0] = 1;
23377 break;
23378 }
23379 i64 = i2 + 4 + (i37 * 276 | 0) + 164 | 0;
23380 if (+Math_abs(+d55) > .7071067690849304) {
23381 d56 = d52 * d52 + d55 * d55;
23382 d57 = 1.0 / +Math_sqrt(+d56);
23383 HEAPF32[i60 >> 2] = 0.0;
23384 d58 = d57 * (-0.0 - d55);
23385 HEAPF32[i51 >> 2] = d58;
23386 d62 = d52 * d57;
23387 HEAPF32[i59 >> 2] = d62;
23388 HEAPF32[i64 >> 2] = d56 * d57;
23389 HEAPF32[i2 + 4 + (i37 * 276 | 0) + 168 >> 2] = d62 * (-0.0 - d53);
23390 HEAPF32[i2 + 4 + (i37 * 276 | 0) + 172 >> 2] = d53 * d58;
23391 } else {
23392 d58 = d53 * d53 + d52 * d52;
23393 d62 = 1.0 / +Math_sqrt(+d58);
23394 d57 = d62 * (-0.0 - d52);
23395 HEAPF32[i60 >> 2] = d57;
23396 d52 = d53 * d62;
23397 HEAPF32[i51 >> 2] = d52;
23398 HEAPF32[i59 >> 2] = 0.0;
23399 HEAPF32[i64 >> 2] = d52 * (-0.0 - d55);
23400 HEAPF32[i2 + 4 + (i37 * 276 | 0) + 168 >> 2] = d55 * d57;
23401 HEAPF32[i2 + 4 + (i37 * 276 | 0) + 172 >> 2] = d58 * d62;
23402 }
23403 if ((i61 & 16 | 0) == 0) {
23404 d65 = +HEAPF32[i11 >> 2];
23405 } else {
23406 __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i15, i64);
23407 __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i17, i64);
23408 d62 = +HEAPF32[i11 >> 2];
23409 __ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i1, i64, 0, 0, i40, i19, i9, i10, i15, i17, d62, 0.0, 0.0) | 0;
23410 d65 = d62;
23411 }
23412 __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i15, i45);
23413 __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i17, i45);
23414 __ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i1, i45, 0, 0, i40, i19, i9, i10, i15, i17, d65, 0.0, 0.0) | 0;
23415 HEAP8[i2 + 4 + (i37 * 276 | 0) + 116 | 0] = 1;
23416 }
23417 } while (0);
23418 __ZN35btSequentialImpulseConstraintSolver28setFrictionConstraintImpulseER18btSolverConstraintP11btRigidBodyS3_R15btManifoldPointRK19btContactSolverInfo(i1, i47, i46, i48, i19, i3);
23419 i39 = HEAP32[i21 >> 2] | 0;
23420 }
23421 i40 = i37 + 1 | 0;
23422 if ((i40 | 0) < (i39 | 0)) {
23423 i37 = i40;
23424 i38 = i39;
23425 } else {
23426 break;
23427 }
23428 }
23429 STACKTOP = i4;
23430 return;
23431 }
23432 function __ZNK20btConvexHullInternal6Vertex3dotERKNS_7Point64E(i1, i2, i3) {
23433 i1 = i1 | 0;
23434 i2 = i2 | 0;
23435 i3 = i3 | 0;
23436 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0;
23437 if ((HEAP32[i2 + 100 >> 2] | 0) > -1) {
23438 i4 = HEAP32[i2 + 88 >> 2] | 0;
23439 i5 = i3 | 0;
23440 i6 = ___muldi3(i4, (i4 | 0) < 0 ? -1 : 0, HEAP32[i5 >> 2] | 0, HEAP32[i5 + 4 >> 2] | 0) | 0;
23441 i5 = tempRet0;
23442 i4 = HEAP32[i2 + 92 >> 2] | 0;
23443 i7 = i3 + 8 | 0;
23444 i8 = ___muldi3(i4, (i4 | 0) < 0 ? -1 : 0, HEAP32[i7 >> 2] | 0, HEAP32[i7 + 4 >> 2] | 0) | 0;
23445 i7 = _i64Add(i8, tempRet0, i6, i5) | 0;
23446 i5 = tempRet0;
23447 i6 = HEAP32[i2 + 96 >> 2] | 0;
23448 i8 = i3 + 16 | 0;
23449 i4 = ___muldi3(i6, (i6 | 0) < 0 ? -1 : 0, HEAP32[i8 >> 2] | 0, HEAP32[i8 + 4 >> 2] | 0) | 0;
23450 i8 = _i64Add(i7, i5, i4, tempRet0) | 0;
23451 i4 = tempRet0;
23452 i5 = 0;
23453 do {
23454 if ((i4 | 0) > (i5 | 0) | (i4 | 0) == (i5 | 0) & i8 >>> 0 > 0 >>> 0) {
23455 HEAP32[i1 + 32 >> 2] = 1;
23456 i7 = i1 | 0;
23457 HEAP32[i7 >> 2] = i8;
23458 HEAP32[i7 + 4 >> 2] = i4;
23459 i7 = i1 + 8 | 0;
23460 HEAP32[i7 >> 2] = i4 >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
23461 HEAP32[i7 + 4 >> 2] = ((i4 | 0) < 0 ? -1 : 0) >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
23462 } else {
23463 i7 = 0;
23464 i6 = i1 + 32 | 0;
23465 if ((i4 | 0) < (i7 | 0) | (i4 | 0) == (i7 | 0) & i8 >>> 0 < 0 >>> 0) {
23466 HEAP32[i6 >> 2] = -1;
23467 i7 = _i64Subtract(0, 0, i8, i4) | 0;
23468 i9 = tempRet0;
23469 i10 = i1 | 0;
23470 HEAP32[i10 >> 2] = i7;
23471 HEAP32[i10 + 4 >> 2] = i9;
23472 i10 = i1 + 8 | 0;
23473 HEAP32[i10 >> 2] = i9 >> 31 | ((i9 | 0) < 0 ? -1 : 0) << 1;
23474 HEAP32[i10 + 4 >> 2] = ((i9 | 0) < 0 ? -1 : 0) >> 31 | ((i9 | 0) < 0 ? -1 : 0) << 1;
23475 break;
23476 } else {
23477 HEAP32[i6 >> 2] = 0;
23478 _memset(i1 | 0, 0, 16);
23479 break;
23480 }
23481 }
23482 } while (0);
23483 i4 = i1 + 16 | 0;
23484 HEAP32[i4 >> 2] = 1;
23485 HEAP32[i4 + 4 >> 2] = 0;
23486 i4 = i1 + 24 | 0;
23487 HEAP32[i4 >> 2] = 0;
23488 HEAP32[i4 + 4 >> 2] = 0;
23489 HEAP8[i1 + 36 | 0] = 1;
23490 return;
23491 }
23492 i4 = i3 | 0;
23493 i8 = HEAP32[i4 >> 2] | 0;
23494 i5 = HEAP32[i4 + 4 >> 2] | 0;
23495 i4 = i2 + 32 | 0;
23496 i6 = HEAP32[i4 >> 2] | 0;
23497 i9 = HEAP32[i4 + 4 >> 2] | 0;
23498 i4 = 0;
23499 i10 = (i9 | 0) < (i4 | 0) | (i9 | 0) == (i4 | 0) & i6 >>> 0 < 0 >>> 0;
23500 i4 = i2 + 24 | 0;
23501 i7 = HEAP32[i4 >> 2] | 0;
23502 i11 = HEAP32[i4 + 4 >> 2] | 0;
23503 if (i10) {
23504 i4 = _i64Subtract(0, 0, i7, i11) | 0;
23505 i12 = tempRet0;
23506 i13 = _i64Add((i7 | 0) == 0 & (i11 | 0) == 0 & 1, 0, ~i6, ~i9) | 0;
23507 i14 = i12;
23508 i15 = i4;
23509 i16 = tempRet0;
23510 i17 = i13;
23511 } else {
23512 i14 = i11;
23513 i15 = i7;
23514 i16 = i9;
23515 i17 = i6;
23516 }
23517 i6 = 0;
23518 if ((i5 | 0) < (i6 | 0) | (i5 | 0) == (i6 | 0) & i8 >>> 0 < 0 >>> 0) {
23519 i6 = _i64Subtract(0, 0, i8, i5) | 0;
23520 i18 = i10 ^ 1;
23521 i19 = tempRet0;
23522 i20 = i6;
23523 } else {
23524 i18 = i10;
23525 i19 = i5;
23526 i20 = i8;
23527 }
23528 i8 = i15 | 0;
23529 i15 = i14 & 0;
23530 i5 = i20 | 0;
23531 i10 = i19 & 0;
23532 i6 = ___muldi3(i5, i10, i8, i15) | 0;
23533 i9 = tempRet0;
23534 i7 = i19;
23535 i11 = 0;
23536 i13 = ___muldi3(i7, i11, i8, i15) | 0;
23537 i15 = tempRet0;
23538 i8 = i14;
23539 i14 = 0;
23540 i4 = ___muldi3(i5, i10, i8, i14) | 0;
23541 i10 = tempRet0;
23542 i5 = ___muldi3(i7, i11, i8, i14) | 0;
23543 i14 = tempRet0;
23544 i8 = _i64Add(i13 | 0, i15 & 0, i4 | 0, i10 & 0) | 0;
23545 i4 = tempRet0;
23546 i13 = _llvm_uadd_with_overflow_i64(i6 | 0, i9 | 0, 0, i8 | 0) | 0;
23547 i8 = i13;
23548 i13 = tempRet0;
23549 i9 = tempRet1 & 1;
23550 i6 = ___muldi3(i20, i19, i17, i16) | 0;
23551 i16 = _i64Add(i5, i14, i6, tempRet0) | 0;
23552 i6 = _i64Add(i16, tempRet0, i15, 0) | 0;
23553 i15 = _i64Add(i6, tempRet0, i10, 0) | 0;
23554 i10 = _i64Add(i15, tempRet0, i9, 0) | 0;
23555 i9 = _i64Add(i10, tempRet0, i4, 0) | 0;
23556 i4 = tempRet0;
23557 if (i18) {
23558 i18 = _i64Subtract(0, 0, i8, i13) | 0;
23559 i10 = tempRet0;
23560 i15 = _i64Add((i8 | 0) == 0 & (i13 | 0) == 0 & 1, 0, ~i9, ~i4) | 0;
23561 i21 = i10;
23562 i22 = i18;
23563 i23 = tempRet0;
23564 i24 = i15;
23565 } else {
23566 i21 = i13;
23567 i22 = i8;
23568 i23 = i4;
23569 i24 = i9;
23570 }
23571 i9 = i3 + 8 | 0;
23572 i4 = HEAP32[i9 >> 2] | 0;
23573 i8 = HEAP32[i9 + 4 >> 2] | 0;
23574 i9 = i2 + 48 | 0;
23575 i13 = HEAP32[i9 >> 2] | 0;
23576 i15 = HEAP32[i9 + 4 >> 2] | 0;
23577 i9 = 0;
23578 i18 = (i15 | 0) < (i9 | 0) | (i15 | 0) == (i9 | 0) & i13 >>> 0 < 0 >>> 0;
23579 i9 = i2 + 40 | 0;
23580 i10 = HEAP32[i9 >> 2] | 0;
23581 i6 = HEAP32[i9 + 4 >> 2] | 0;
23582 if (i18) {
23583 i9 = _i64Subtract(0, 0, i10, i6) | 0;
23584 i16 = tempRet0;
23585 i14 = _i64Add((i10 | 0) == 0 & (i6 | 0) == 0 & 1, 0, ~i13, ~i15) | 0;
23586 i25 = i16;
23587 i26 = i9;
23588 i27 = tempRet0;
23589 i28 = i14;
23590 } else {
23591 i25 = i6;
23592 i26 = i10;
23593 i27 = i15;
23594 i28 = i13;
23595 }
23596 i13 = 0;
23597 if ((i8 | 0) < (i13 | 0) | (i8 | 0) == (i13 | 0) & i4 >>> 0 < 0 >>> 0) {
23598 i13 = _i64Subtract(0, 0, i4, i8) | 0;
23599 i29 = i18 ^ 1;
23600 i30 = tempRet0;
23601 i31 = i13;
23602 } else {
23603 i29 = i18;
23604 i30 = i8;
23605 i31 = i4;
23606 }
23607 i4 = i26 | 0;
23608 i26 = i25 & 0;
23609 i8 = i31 | 0;
23610 i18 = i30 & 0;
23611 i13 = ___muldi3(i8, i18, i4, i26) | 0;
23612 i15 = tempRet0;
23613 i10 = i30;
23614 i6 = 0;
23615 i14 = ___muldi3(i10, i6, i4, i26) | 0;
23616 i26 = tempRet0;
23617 i4 = i25;
23618 i25 = 0;
23619 i9 = ___muldi3(i8, i18, i4, i25) | 0;
23620 i18 = tempRet0;
23621 i8 = ___muldi3(i10, i6, i4, i25) | 0;
23622 i25 = tempRet0;
23623 i4 = _i64Add(i14 | 0, i26 & 0, i9 | 0, i18 & 0) | 0;
23624 i9 = tempRet0;
23625 i14 = _llvm_uadd_with_overflow_i64(i13 | 0, i15 | 0, 0, i4 | 0) | 0;
23626 i4 = i14;
23627 i14 = tempRet0;
23628 i15 = tempRet1 & 1;
23629 i13 = ___muldi3(i31, i30, i28, i27) | 0;
23630 i27 = _i64Add(i8, i25, i13, tempRet0) | 0;
23631 i13 = _i64Add(i27, tempRet0, i26, 0) | 0;
23632 i26 = _i64Add(i13, tempRet0, i18, 0) | 0;
23633 i18 = _i64Add(i26, tempRet0, i15, 0) | 0;
23634 i15 = _i64Add(i18, tempRet0, i9, 0) | 0;
23635 i9 = tempRet0;
23636 if (i29) {
23637 i29 = _i64Subtract(0, 0, i4, i14) | 0;
23638 i18 = tempRet0;
23639 i26 = _i64Add((i4 | 0) == 0 & (i14 | 0) == 0 & 1, 0, ~i15, ~i9) | 0;
23640 i32 = i18;
23641 i33 = i29;
23642 i34 = tempRet0;
23643 i35 = i26;
23644 } else {
23645 i32 = i14;
23646 i33 = i4;
23647 i34 = i9;
23648 i35 = i15;
23649 }
23650 i15 = _llvm_uadd_with_overflow_i64(i22 | 0, i21 | 0, i33 | 0, i32 | 0) | 0;
23651 i32 = tempRet1;
23652 i33 = tempRet0;
23653 i21 = _i64Add(i35, i34, i24, i23) | 0;
23654 i23 = _i64Add(i21, tempRet0, i32 & 1, 0) | 0;
23655 i32 = tempRet0;
23656 i21 = i3 + 16 | 0;
23657 i3 = HEAP32[i21 >> 2] | 0;
23658 i24 = HEAP32[i21 + 4 >> 2] | 0;
23659 i21 = i2 + 64 | 0;
23660 i34 = HEAP32[i21 >> 2] | 0;
23661 i35 = HEAP32[i21 + 4 >> 2] | 0;
23662 i21 = 0;
23663 i22 = (i35 | 0) < (i21 | 0) | (i35 | 0) == (i21 | 0) & i34 >>> 0 < 0 >>> 0;
23664 i21 = i2 + 56 | 0;
23665 i9 = HEAP32[i21 >> 2] | 0;
23666 i4 = HEAP32[i21 + 4 >> 2] | 0;
23667 if (i22) {
23668 i21 = _i64Subtract(0, 0, i9, i4) | 0;
23669 i14 = tempRet0;
23670 i26 = _i64Add((i9 | 0) == 0 & (i4 | 0) == 0 & 1, 0, ~i34, ~i35) | 0;
23671 i36 = i14;
23672 i37 = i21;
23673 i38 = tempRet0;
23674 i39 = i26;
23675 } else {
23676 i36 = i4;
23677 i37 = i9;
23678 i38 = i35;
23679 i39 = i34;
23680 }
23681 i34 = 0;
23682 if ((i24 | 0) < (i34 | 0) | (i24 | 0) == (i34 | 0) & i3 >>> 0 < 0 >>> 0) {
23683 i34 = _i64Subtract(0, 0, i3, i24) | 0;
23684 i40 = i22 ^ 1;
23685 i41 = tempRet0;
23686 i42 = i34;
23687 } else {
23688 i40 = i22;
23689 i41 = i24;
23690 i42 = i3;
23691 }
23692 i3 = i37 | 0;
23693 i37 = i36 & 0;
23694 i24 = i42 | 0;
23695 i22 = i41 & 0;
23696 i34 = ___muldi3(i24, i22, i3, i37) | 0;
23697 i35 = tempRet0;
23698 i9 = i41;
23699 i4 = 0;
23700 i26 = ___muldi3(i9, i4, i3, i37) | 0;
23701 i37 = tempRet0;
23702 i3 = i36;
23703 i36 = 0;
23704 i21 = ___muldi3(i24, i22, i3, i36) | 0;
23705 i22 = tempRet0;
23706 i24 = ___muldi3(i9, i4, i3, i36) | 0;
23707 i36 = tempRet0;
23708 i3 = _i64Add(i26 | 0, i37 & 0, i21 | 0, i22 & 0) | 0;
23709 i21 = tempRet0;
23710 i26 = _llvm_uadd_with_overflow_i64(i34 | 0, i35 | 0, 0, i3 | 0) | 0;
23711 i3 = i26;
23712 i26 = tempRet0;
23713 i35 = tempRet1 & 1;
23714 i34 = ___muldi3(i42, i41, i39, i38) | 0;
23715 i38 = _i64Add(i24, i36, i34, tempRet0) | 0;
23716 i34 = _i64Add(i38, tempRet0, i37, 0) | 0;
23717 i37 = _i64Add(i34, tempRet0, i22, 0) | 0;
23718 i22 = _i64Add(i37, tempRet0, i35, 0) | 0;
23719 i35 = _i64Add(i22, tempRet0, i21, 0) | 0;
23720 i21 = tempRet0;
23721 if (i40) {
23722 i40 = _i64Subtract(0, 0, i3, i26) | 0;
23723 i22 = tempRet0;
23724 i37 = _i64Add((i3 | 0) == 0 & (i26 | 0) == 0 & 1, 0, ~i35, ~i21) | 0;
23725 i43 = i22;
23726 i44 = i40;
23727 i45 = tempRet0;
23728 i46 = i37;
23729 } else {
23730 i43 = i26;
23731 i44 = i3;
23732 i45 = i21;
23733 i46 = i35;
23734 }
23735 i35 = _llvm_uadd_with_overflow_i64(i15 | 0, i33 | 0, i44 | 0, i43 | 0) | 0;
23736 i43 = tempRet1;
23737 i44 = i35;
23738 i35 = tempRet0;
23739 i33 = _i64Add(i23, i32, i46, i45) | 0;
23740 i45 = _i64Add(i33, tempRet0, i43 & 1, 0) | 0;
23741 i43 = tempRet0;
23742 i33 = i2 + 72 | 0;
23743 i46 = i1 + 16 | 0;
23744 i32 = 0;
23745 if ((i43 | 0) < (i32 | 0) | (i43 | 0) == (i32 | 0) & i45 >>> 0 < 0 >>> 0) {
23746 i32 = i1 + 32 | 0;
23747 HEAP32[i32 >> 2] = -1;
23748 i23 = _i64Subtract(0, 0, i44, i35) | 0;
23749 i15 = tempRet0;
23750 i21 = _i64Add((i44 | 0) == 0 & (i35 | 0) == 0 & 1, 0, ~i45, ~i43) | 0;
23751 i3 = i1 | 0;
23752 HEAP32[i3 >> 2] = i23;
23753 HEAP32[i3 + 4 >> 2] = i15;
23754 i15 = i1 + 8 | 0;
23755 HEAP32[i15 >> 2] = i21;
23756 HEAP32[i15 + 4 >> 2] = tempRet0;
23757 i47 = i32;
23758 i48 = -1;
23759 } else {
23760 if ((i45 | 0) == 0 & (i43 | 0) == 0) {
23761 i49 = ((i44 | 0) != 0 | (i35 | 0) != 0) & 1;
23762 } else {
23763 i49 = 1;
23764 }
23765 i32 = i1 + 32 | 0;
23766 HEAP32[i32 >> 2] = i49;
23767 i15 = i1 | 0;
23768 HEAP32[i15 >> 2] = i44;
23769 HEAP32[i15 + 4 >> 2] = i35;
23770 i35 = i1 + 8 | 0;
23771 HEAP32[i35 >> 2] = i45;
23772 HEAP32[i35 + 4 >> 2] = i43;
23773 i47 = i32;
23774 i48 = i49;
23775 }
23776 i49 = i2 + 80 | 0;
23777 i2 = HEAP32[i49 >> 2] | 0;
23778 i32 = HEAP32[i49 + 4 >> 2] | 0;
23779 i49 = 0;
23780 if ((i32 | 0) < (i49 | 0) | (i32 | 0) == (i49 | 0) & i2 >>> 0 < 0 >>> 0) {
23781 HEAP32[i47 >> 2] = -i48;
23782 i48 = i33 | 0;
23783 i47 = HEAP32[i48 >> 2] | 0;
23784 i49 = HEAP32[i48 + 4 >> 2] | 0;
23785 i48 = _i64Subtract(0, 0, i47, i49) | 0;
23786 i43 = tempRet0;
23787 i35 = _i64Add((i47 | 0) == 0 & (i49 | 0) == 0 & 1, 0, ~i2, ~i32) | 0;
23788 i32 = i1 + 16 | 0;
23789 HEAP32[i32 >> 2] = i48;
23790 HEAP32[i32 + 4 >> 2] = i43;
23791 i43 = i1 + 24 | 0;
23792 HEAP32[i43 >> 2] = i35;
23793 HEAP32[i43 + 4 >> 2] = tempRet0;
23794 } else {
23795 i43 = i46;
23796 i46 = i33;
23797 HEAP32[i43 >> 2] = HEAP32[i46 >> 2];
23798 HEAP32[i43 + 4 >> 2] = HEAP32[i46 + 4 >> 2];
23799 HEAP32[i43 + 8 >> 2] = HEAP32[i46 + 8 >> 2];
23800 HEAP32[i43 + 12 >> 2] = HEAP32[i46 + 12 >> 2];
23801 }
23802 HEAP8[i1 + 36 | 0] = 0;
23803 return;
23804 }
23805 function __ZN12gjkepa2_impl3GJK13EncloseOriginEv(i1) {
23806 i1 = i1 | 0;
23807 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, d16 = 0.0, d17 = 0.0, d18 = 0.0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, d41 = 0.0, d42 = 0.0;
23808 i2 = STACKTOP;
23809 STACKTOP = STACKTOP + 112 | 0;
23810 i3 = i2 | 0;
23811 i4 = i2 + 16 | 0;
23812 i5 = i2 + 32 | 0;
23813 i6 = i2 + 48 | 0;
23814 i7 = i2 + 64 | 0;
23815 i8 = i2 + 80 | 0;
23816 i9 = i2 + 96 | 0;
23817 i10 = i1 + 372 | 0;
23818 i11 = HEAP32[i10 >> 2] | 0;
23819 i12 = i11 + 32 | 0;
23820 i13 = HEAP32[i12 >> 2] | 0;
23821 L165 : do {
23822 if ((i13 | 0) == 2) {
23823 i14 = HEAP32[i11 + 4 >> 2] | 0;
23824 i15 = HEAP32[i11 >> 2] | 0;
23825 d16 = +HEAPF32[i14 + 16 >> 2] - +HEAPF32[i15 + 16 >> 2];
23826 d17 = +HEAPF32[i14 + 20 >> 2] - +HEAPF32[i15 + 20 >> 2];
23827 d18 = +HEAPF32[i14 + 24 >> 2] - +HEAPF32[i15 + 24 >> 2];
23828 i15 = i5 | 0;
23829 i14 = i5 + 4 | 0;
23830 i19 = i5 + 8 | 0;
23831 i20 = i6 | 0;
23832 i21 = i6 + 4 | 0;
23833 i22 = i6 + 8 | 0;
23834 i23 = i6 + 12 | 0;
23835 i24 = i1 + 364 | 0;
23836 i25 = i7 | 0;
23837 i26 = i7 + 4 | 0;
23838 i27 = i7 + 8 | 0;
23839 i28 = i7 + 12 | 0;
23840 i29 = i5;
23841 i30 = 0;
23842 while (1) {
23843 _memset(i29 | 0, 0, 16);
23844 HEAPF32[i5 + (i30 << 2) >> 2] = 1.0;
23845 d31 = +HEAPF32[i19 >> 2];
23846 d32 = +HEAPF32[i14 >> 2];
23847 d33 = d17 * d31 - d18 * d32;
23848 d34 = +HEAPF32[i15 >> 2];
23849 d35 = d18 * d34 - d16 * d31;
23850 d31 = d16 * d32 - d17 * d34;
23851 HEAPF32[i20 >> 2] = d33;
23852 HEAPF32[i21 >> 2] = d35;
23853 HEAPF32[i22 >> 2] = d31;
23854 HEAPF32[i23 >> 2] = 0.0;
23855 if (d31 * d31 + (d33 * d33 + d35 * d35) > 0.0) {
23856 i36 = HEAP32[i10 >> 2] | 0;
23857 i37 = i36 + 32 | 0;
23858 HEAPF32[i36 + 16 + (HEAP32[i37 >> 2] << 2) >> 2] = 0.0;
23859 i38 = (HEAP32[i24 >> 2] | 0) - 1 | 0;
23860 HEAP32[i24 >> 2] = i38;
23861 HEAP32[i36 + (HEAP32[i37 >> 2] << 2) >> 2] = HEAP32[i1 + 348 + (i38 << 2) >> 2];
23862 i38 = HEAP32[i37 >> 2] | 0;
23863 HEAP32[i37 >> 2] = i38 + 1;
23864 __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i6, HEAP32[i36 + (i38 << 2) >> 2] | 0);
23865 if (__ZN12gjkepa2_impl3GJK13EncloseOriginEv(i1) | 0) {
23866 i39 = 1;
23867 i40 = 143;
23868 break;
23869 }
23870 i38 = HEAP32[i10 >> 2] | 0;
23871 i36 = i38 + 32 | 0;
23872 i37 = (HEAP32[i36 >> 2] | 0) - 1 | 0;
23873 HEAP32[i36 >> 2] = i37;
23874 i36 = HEAP32[i38 + (i37 << 2) >> 2] | 0;
23875 i37 = HEAP32[i24 >> 2] | 0;
23876 HEAP32[i24 >> 2] = i37 + 1;
23877 HEAP32[i1 + 348 + (i37 << 2) >> 2] = i36;
23878 i36 = HEAP32[i10 >> 2] | 0;
23879 d35 = -0.0 - +HEAPF32[i21 >> 2];
23880 d33 = -0.0 - +HEAPF32[i22 >> 2];
23881 HEAPF32[i25 >> 2] = -0.0 - +HEAPF32[i20 >> 2];
23882 HEAPF32[i26 >> 2] = d35;
23883 HEAPF32[i27 >> 2] = d33;
23884 HEAPF32[i28 >> 2] = 0.0;
23885 i37 = i36 + 32 | 0;
23886 HEAPF32[i36 + 16 + (HEAP32[i37 >> 2] << 2) >> 2] = 0.0;
23887 i38 = (HEAP32[i24 >> 2] | 0) - 1 | 0;
23888 HEAP32[i24 >> 2] = i38;
23889 HEAP32[i36 + (HEAP32[i37 >> 2] << 2) >> 2] = HEAP32[i1 + 348 + (i38 << 2) >> 2];
23890 i38 = HEAP32[i37 >> 2] | 0;
23891 HEAP32[i37 >> 2] = i38 + 1;
23892 __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i7, HEAP32[i36 + (i38 << 2) >> 2] | 0);
23893 if (__ZN12gjkepa2_impl3GJK13EncloseOriginEv(i1) | 0) {
23894 i39 = 1;
23895 i40 = 144;
23896 break;
23897 }
23898 i38 = HEAP32[i10 >> 2] | 0;
23899 i36 = i38 + 32 | 0;
23900 i37 = (HEAP32[i36 >> 2] | 0) - 1 | 0;
23901 HEAP32[i36 >> 2] = i37;
23902 i36 = HEAP32[i38 + (i37 << 2) >> 2] | 0;
23903 i37 = HEAP32[i24 >> 2] | 0;
23904 HEAP32[i24 >> 2] = i37 + 1;
23905 HEAP32[i1 + 348 + (i37 << 2) >> 2] = i36;
23906 }
23907 i30 = i30 + 1 | 0;
23908 if (i30 >>> 0 >= 3) {
23909 break L165;
23910 }
23911 }
23912 if ((i40 | 0) == 143) {
23913 STACKTOP = i2;
23914 return i39 | 0;
23915 } else if ((i40 | 0) == 144) {
23916 STACKTOP = i2;
23917 return i39 | 0;
23918 }
23919 } else if ((i13 | 0) == 3) {
23920 i30 = HEAP32[i11 + 4 >> 2] | 0;
23921 i24 = HEAP32[i11 >> 2] | 0;
23922 d17 = +HEAPF32[i24 + 16 >> 2];
23923 d16 = +HEAPF32[i30 + 16 >> 2] - d17;
23924 d18 = +HEAPF32[i24 + 20 >> 2];
23925 d33 = +HEAPF32[i30 + 20 >> 2] - d18;
23926 d35 = +HEAPF32[i24 + 24 >> 2];
23927 d31 = +HEAPF32[i30 + 24 >> 2] - d35;
23928 i30 = HEAP32[i11 + 8 >> 2] | 0;
23929 d34 = +HEAPF32[i30 + 16 >> 2] - d17;
23930 d17 = +HEAPF32[i30 + 20 >> 2] - d18;
23931 d18 = +HEAPF32[i30 + 24 >> 2] - d35;
23932 d35 = d33 * d18 - d31 * d17;
23933 d32 = d31 * d34 - d16 * d18;
23934 d18 = d16 * d17 - d33 * d34;
23935 i30 = i8 | 0;
23936 HEAPF32[i30 >> 2] = d35;
23937 i24 = i8 + 4 | 0;
23938 HEAPF32[i24 >> 2] = d32;
23939 i28 = i8 + 8 | 0;
23940 HEAPF32[i28 >> 2] = d18;
23941 HEAPF32[i8 + 12 >> 2] = 0.0;
23942 if (d18 * d18 + (d35 * d35 + d32 * d32) <= 0.0) {
23943 break;
23944 }
23945 HEAPF32[i11 + 28 >> 2] = 0.0;
23946 i27 = i1 + 364 | 0;
23947 i26 = (HEAP32[i27 >> 2] | 0) - 1 | 0;
23948 HEAP32[i27 >> 2] = i26;
23949 HEAP32[i11 + (HEAP32[i12 >> 2] << 2) >> 2] = HEAP32[i1 + 348 + (i26 << 2) >> 2];
23950 i26 = HEAP32[i12 >> 2] | 0;
23951 HEAP32[i12 >> 2] = i26 + 1;
23952 __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i8, HEAP32[i11 + (i26 << 2) >> 2] | 0);
23953 if (__ZN12gjkepa2_impl3GJK13EncloseOriginEv(i1) | 0) {
23954 i39 = 1;
23955 STACKTOP = i2;
23956 return i39 | 0;
23957 }
23958 i26 = HEAP32[i10 >> 2] | 0;
23959 i20 = i26 + 32 | 0;
23960 i25 = (HEAP32[i20 >> 2] | 0) - 1 | 0;
23961 HEAP32[i20 >> 2] = i25;
23962 i20 = HEAP32[i26 + (i25 << 2) >> 2] | 0;
23963 i25 = HEAP32[i27 >> 2] | 0;
23964 HEAP32[i27 >> 2] = i25 + 1;
23965 HEAP32[i1 + 348 + (i25 << 2) >> 2] = i20;
23966 i20 = HEAP32[i10 >> 2] | 0;
23967 d32 = -0.0 - +HEAPF32[i24 >> 2];
23968 d35 = -0.0 - +HEAPF32[i28 >> 2];
23969 HEAPF32[i9 >> 2] = -0.0 - +HEAPF32[i30 >> 2];
23970 HEAPF32[i9 + 4 >> 2] = d32;
23971 HEAPF32[i9 + 8 >> 2] = d35;
23972 HEAPF32[i9 + 12 >> 2] = 0.0;
23973 i30 = i20 + 32 | 0;
23974 HEAPF32[i20 + 16 + (HEAP32[i30 >> 2] << 2) >> 2] = 0.0;
23975 i28 = (HEAP32[i27 >> 2] | 0) - 1 | 0;
23976 HEAP32[i27 >> 2] = i28;
23977 HEAP32[i20 + (HEAP32[i30 >> 2] << 2) >> 2] = HEAP32[i1 + 348 + (i28 << 2) >> 2];
23978 i28 = HEAP32[i30 >> 2] | 0;
23979 HEAP32[i30 >> 2] = i28 + 1;
23980 __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i9, HEAP32[i20 + (i28 << 2) >> 2] | 0);
23981 if (__ZN12gjkepa2_impl3GJK13EncloseOriginEv(i1) | 0) {
23982 i39 = 1;
23983 STACKTOP = i2;
23984 return i39 | 0;
23985 } else {
23986 i28 = HEAP32[i10 >> 2] | 0;
23987 i20 = i28 + 32 | 0;
23988 i30 = (HEAP32[i20 >> 2] | 0) - 1 | 0;
23989 HEAP32[i20 >> 2] = i30;
23990 i20 = HEAP32[i28 + (i30 << 2) >> 2] | 0;
23991 i30 = HEAP32[i27 >> 2] | 0;
23992 HEAP32[i27 >> 2] = i30 + 1;
23993 HEAP32[i1 + 348 + (i30 << 2) >> 2] = i20;
23994 break;
23995 }
23996 } else if ((i13 | 0) == 4) {
23997 i20 = HEAP32[i11 >> 2] | 0;
23998 i30 = HEAP32[i11 + 12 >> 2] | 0;
23999 d35 = +HEAPF32[i30 + 16 >> 2];
24000 d32 = +HEAPF32[i20 + 16 >> 2] - d35;
24001 d18 = +HEAPF32[i30 + 20 >> 2];
24002 d34 = +HEAPF32[i20 + 20 >> 2] - d18;
24003 d33 = +HEAPF32[i30 + 24 >> 2];
24004 d17 = +HEAPF32[i20 + 24 >> 2] - d33;
24005 i20 = HEAP32[i11 + 4 >> 2] | 0;
24006 d16 = +HEAPF32[i20 + 16 >> 2] - d35;
24007 d31 = +HEAPF32[i20 + 20 >> 2] - d18;
24008 d41 = +HEAPF32[i20 + 24 >> 2] - d33;
24009 i20 = HEAP32[i11 + 8 >> 2] | 0;
24010 d42 = +HEAPF32[i20 + 16 >> 2] - d35;
24011 d35 = +HEAPF32[i20 + 20 >> 2] - d18;
24012 d18 = +HEAPF32[i20 + 24 >> 2] - d33;
24013 if (d32 * d31 * d18 + (d34 * d41 * d42 + d17 * d16 * d35 - d32 * d41 * d35 - d34 * d16 * d18) - d17 * d31 * d42 == 0.0) {
24014 break;
24015 } else {
24016 i39 = 1;
24017 }
24018 STACKTOP = i2;
24019 return i39 | 0;
24020 } else if ((i13 | 0) == 1) {
24021 i20 = i3 | 0;
24022 i30 = i3 + 4 | 0;
24023 i27 = i3 + 8 | 0;
24024 i28 = i1 + 364 | 0;
24025 i24 = i4 | 0;
24026 i25 = i4 + 4 | 0;
24027 i26 = i4 + 8 | 0;
24028 i22 = i4 + 12 | 0;
24029 i21 = i3;
24030 i23 = 0;
24031 i15 = i11;
24032 i14 = 1;
24033 while (1) {
24034 _memset(i21 | 0, 0, 16);
24035 HEAPF32[i3 + (i23 << 2) >> 2] = 1.0;
24036 i19 = i15 + 32 | 0;
24037 HEAPF32[i15 + 16 + (i14 << 2) >> 2] = 0.0;
24038 i29 = (HEAP32[i28 >> 2] | 0) - 1 | 0;
24039 HEAP32[i28 >> 2] = i29;
24040 HEAP32[i15 + (HEAP32[i19 >> 2] << 2) >> 2] = HEAP32[i1 + 348 + (i29 << 2) >> 2];
24041 i29 = HEAP32[i19 >> 2] | 0;
24042 HEAP32[i19 >> 2] = i29 + 1;
24043 __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i3, HEAP32[i15 + (i29 << 2) >> 2] | 0);
24044 if (__ZN12gjkepa2_impl3GJK13EncloseOriginEv(i1) | 0) {
24045 i39 = 1;
24046 i40 = 149;
24047 break;
24048 }
24049 i29 = HEAP32[i10 >> 2] | 0;
24050 i19 = i29 + 32 | 0;
24051 i36 = (HEAP32[i19 >> 2] | 0) - 1 | 0;
24052 HEAP32[i19 >> 2] = i36;
24053 i19 = HEAP32[i29 + (i36 << 2) >> 2] | 0;
24054 i36 = HEAP32[i28 >> 2] | 0;
24055 HEAP32[i28 >> 2] = i36 + 1;
24056 HEAP32[i1 + 348 + (i36 << 2) >> 2] = i19;
24057 i19 = HEAP32[i10 >> 2] | 0;
24058 d42 = -0.0 - +HEAPF32[i30 >> 2];
24059 d31 = -0.0 - +HEAPF32[i27 >> 2];
24060 HEAPF32[i24 >> 2] = -0.0 - +HEAPF32[i20 >> 2];
24061 HEAPF32[i25 >> 2] = d42;
24062 HEAPF32[i26 >> 2] = d31;
24063 HEAPF32[i22 >> 2] = 0.0;
24064 i36 = i19 + 32 | 0;
24065 HEAPF32[i19 + 16 + (HEAP32[i36 >> 2] << 2) >> 2] = 0.0;
24066 i29 = (HEAP32[i28 >> 2] | 0) - 1 | 0;
24067 HEAP32[i28 >> 2] = i29;
24068 HEAP32[i19 + (HEAP32[i36 >> 2] << 2) >> 2] = HEAP32[i1 + 348 + (i29 << 2) >> 2];
24069 i29 = HEAP32[i36 >> 2] | 0;
24070 HEAP32[i36 >> 2] = i29 + 1;
24071 __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i4, HEAP32[i19 + (i29 << 2) >> 2] | 0);
24072 if (__ZN12gjkepa2_impl3GJK13EncloseOriginEv(i1) | 0) {
24073 i39 = 1;
24074 i40 = 150;
24075 break;
24076 }
24077 i29 = HEAP32[i10 >> 2] | 0;
24078 i19 = i29 + 32 | 0;
24079 i36 = (HEAP32[i19 >> 2] | 0) - 1 | 0;
24080 HEAP32[i19 >> 2] = i36;
24081 i19 = HEAP32[i29 + (i36 << 2) >> 2] | 0;
24082 i36 = HEAP32[i28 >> 2] | 0;
24083 HEAP32[i28 >> 2] = i36 + 1;
24084 HEAP32[i1 + 348 + (i36 << 2) >> 2] = i19;
24085 i19 = i23 + 1 | 0;
24086 if (i19 >>> 0 >= 3) {
24087 break L165;
24088 }
24089 i36 = HEAP32[i10 >> 2] | 0;
24090 i23 = i19;
24091 i15 = i36;
24092 i14 = HEAP32[i36 + 32 >> 2] | 0;
24093 }
24094 if ((i40 | 0) == 149) {
24095 STACKTOP = i2;
24096 return i39 | 0;
24097 } else if ((i40 | 0) == 150) {
24098 STACKTOP = i2;
24099 return i39 | 0;
24100 }
24101 }
24102 } while (0);
24103 i39 = 0;
24104 STACKTOP = i2;
24105 return i39 | 0;
24106 }
24107 function __ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i1, i2, i3) {
24108 i1 = i1 | 0;
24109 i2 = i2 | 0;
24110 i3 = i3 | 0;
24111 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, i47 = 0, i48 = 0, i49 = 0, i50 = 0;
24112 i4 = STACKTOP;
24113 STACKTOP = STACKTOP + 224 | 0;
24114 i5 = i4 + 64 | 0;
24115 i6 = i4 + 128 | 0;
24116 i7 = i4 + 144 | 0;
24117 i8 = i4 + 160 | 0;
24118 i9 = i4 + 176 | 0;
24119 i10 = i4 + 192 | 0;
24120 i11 = i4 + 208 | 0;
24121 i12 = i1 + 4 | 0;
24122 i13 = HEAP32[i12 >> 2] | 0;
24123 i14 = HEAP32[i13 + 192 >> 2] | 0;
24124 d15 = +HEAPF32[i13 + 4 >> 2];
24125 d16 = +HEAPF32[i13 + 8 >> 2];
24126 d17 = +HEAPF32[i13 + 12 >> 2];
24127 d18 = +HEAPF32[i13 + 16 >> 2];
24128 d19 = +HEAPF32[i13 + 20 >> 2];
24129 d20 = +HEAPF32[i13 + 24 >> 2];
24130 d21 = +HEAPF32[i13 + 28 >> 2];
24131 d22 = +HEAPF32[i13 + 32 >> 2];
24132 d23 = +HEAPF32[i13 + 36 >> 2];
24133 d24 = +HEAPF32[i13 + 40 >> 2];
24134 d25 = +HEAPF32[i13 + 44 >> 2];
24135 d26 = +HEAPF32[i13 + 48 >> 2];
24136 d27 = +HEAPF32[i13 + 52 >> 2];
24137 d28 = +HEAPF32[i13 + 56 >> 2];
24138 d29 = +HEAPF32[i13 + 60 >> 2];
24139 d30 = +HEAPF32[i13 + 64 >> 2];
24140 i31 = i13 + 68 | 0;
24141 i32 = i4 | 0;
24142 HEAP32[i32 >> 2] = HEAP32[i31 >> 2];
24143 HEAP32[i32 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
24144 HEAP32[i32 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
24145 HEAP32[i32 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
24146 i31 = i13 + 84 | 0;
24147 i33 = i4 + 16 | 0;
24148 HEAP32[i33 >> 2] = HEAP32[i31 >> 2];
24149 HEAP32[i33 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
24150 HEAP32[i33 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
24151 HEAP32[i33 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
24152 i31 = i13 + 100 | 0;
24153 i34 = i4 + 32 | 0;
24154 HEAP32[i34 >> 2] = HEAP32[i31 >> 2];
24155 HEAP32[i34 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
24156 HEAP32[i34 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
24157 HEAP32[i34 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
24158 i31 = i13 + 116 | 0;
24159 i13 = i4 + 48 | 0;
24160 HEAP32[i13 >> 2] = HEAP32[i31 >> 2];
24161 HEAP32[i13 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
24162 HEAP32[i13 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
24163 HEAP32[i13 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
24164 i31 = HEAP32[i14 + 24 >> 2] | 0;
24165 d35 = +HEAPF32[i31 + (i3 * 80 | 0) >> 2];
24166 d36 = +HEAPF32[i31 + (i3 * 80 | 0) + 16 >> 2];
24167 d37 = +HEAPF32[i31 + (i3 * 80 | 0) + 32 >> 2];
24168 d38 = +HEAPF32[i31 + (i3 * 80 | 0) + 4 >> 2];
24169 d39 = +HEAPF32[i31 + (i3 * 80 | 0) + 20 >> 2];
24170 d40 = +HEAPF32[i31 + (i3 * 80 | 0) + 36 >> 2];
24171 d41 = +HEAPF32[i31 + (i3 * 80 | 0) + 8 >> 2];
24172 d42 = +HEAPF32[i31 + (i3 * 80 | 0) + 24 >> 2];
24173 d43 = +HEAPF32[i31 + (i3 * 80 | 0) + 40 >> 2];
24174 d44 = +HEAPF32[i31 + (i3 * 80 | 0) + 48 >> 2];
24175 d45 = +HEAPF32[i31 + (i3 * 80 | 0) + 52 >> 2];
24176 d46 = +HEAPF32[i31 + (i3 * 80 | 0) + 56 >> 2];
24177 HEAPF32[i5 >> 2] = d15 * d35 + d16 * d36 + d17 * d37;
24178 HEAPF32[i5 + 4 >> 2] = d15 * d38 + d16 * d39 + d17 * d40;
24179 HEAPF32[i5 + 8 >> 2] = d15 * d41 + d16 * d42 + d17 * d43;
24180 HEAPF32[i5 + 12 >> 2] = 0.0;
24181 HEAPF32[i5 + 16 >> 2] = d19 * d35 + d20 * d36 + d21 * d37;
24182 HEAPF32[i5 + 20 >> 2] = d19 * d38 + d20 * d39 + d21 * d40;
24183 HEAPF32[i5 + 24 >> 2] = d19 * d41 + d20 * d42 + d21 * d43;
24184 HEAPF32[i5 + 28 >> 2] = 0.0;
24185 HEAPF32[i5 + 32 >> 2] = d23 * d35 + d24 * d36 + d25 * d37;
24186 HEAPF32[i5 + 36 >> 2] = d23 * d38 + d24 * d39 + d25 * d40;
24187 HEAPF32[i5 + 40 >> 2] = d23 * d41 + d24 * d42 + d25 * d43;
24188 HEAPF32[i5 + 44 >> 2] = 0.0;
24189 HEAPF32[i5 + 48 >> 2] = d27 + (d15 * d44 + d16 * d45 + d17 * d46);
24190 HEAPF32[i5 + 52 >> 2] = d28 + (d19 * d44 + d20 * d45 + d21 * d46);
24191 HEAPF32[i5 + 56 >> 2] = d29 + (d23 * d44 + d24 * d45 + d25 * d46);
24192 HEAPF32[i5 + 60 >> 2] = 0.0;
24193 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 8 >> 2] & 127](i2, i5, i6, i7);
24194 i31 = i1 + 8 | 0;
24195 i14 = HEAP32[i31 >> 2] | 0;
24196 i47 = HEAP32[i14 + 192 >> 2] | 0;
24197 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i47 >> 2] | 0) + 8 >> 2] & 127](i47, i14 + 4 | 0, i8, i9);
24198 do {
24199 if (+HEAPF32[i6 >> 2] > +HEAPF32[i9 >> 2]) {
24200 i48 = 0;
24201 } else {
24202 if (+HEAPF32[i7 >> 2] < +HEAPF32[i8 >> 2]) {
24203 i48 = 0;
24204 break;
24205 }
24206 i48 = 1;
24207 }
24208 } while (0);
24209 do {
24210 if (+HEAPF32[i6 + 8 >> 2] > +HEAPF32[i9 + 8 >> 2]) {
24211 i49 = 0;
24212 } else {
24213 if (+HEAPF32[i7 + 8 >> 2] < +HEAPF32[i8 + 8 >> 2]) {
24214 i49 = 0;
24215 break;
24216 }
24217 i49 = i48;
24218 }
24219 } while (0);
24220 if (+HEAPF32[i6 + 4 >> 2] > +HEAPF32[i9 + 4 >> 2]) {
24221 STACKTOP = i4;
24222 return;
24223 }
24224 if (+HEAPF32[i7 + 4 >> 2] < +HEAPF32[i8 + 4 >> 2] | i49 ^ 1) {
24225 STACKTOP = i4;
24226 return;
24227 }
24228 i49 = HEAP32[i12 >> 2] | 0;
24229 i48 = i49 + 4 | 0;
24230 i14 = i5;
24231 HEAP32[i48 >> 2] = HEAP32[i14 >> 2];
24232 HEAP32[i48 + 4 >> 2] = HEAP32[i14 + 4 >> 2];
24233 HEAP32[i48 + 8 >> 2] = HEAP32[i14 + 8 >> 2];
24234 HEAP32[i48 + 12 >> 2] = HEAP32[i14 + 12 >> 2];
24235 i48 = i49 + 20 | 0;
24236 i47 = i5 + 16 | 0;
24237 HEAP32[i48 >> 2] = HEAP32[i47 >> 2];
24238 HEAP32[i48 + 4 >> 2] = HEAP32[i47 + 4 >> 2];
24239 HEAP32[i48 + 8 >> 2] = HEAP32[i47 + 8 >> 2];
24240 HEAP32[i48 + 12 >> 2] = HEAP32[i47 + 12 >> 2];
24241 i48 = i49 + 36 | 0;
24242 i50 = i5 + 32 | 0;
24243 HEAP32[i48 >> 2] = HEAP32[i50 >> 2];
24244 HEAP32[i48 + 4 >> 2] = HEAP32[i50 + 4 >> 2];
24245 HEAP32[i48 + 8 >> 2] = HEAP32[i50 + 8 >> 2];
24246 HEAP32[i48 + 12 >> 2] = HEAP32[i50 + 12 >> 2];
24247 i48 = i49 + 52 | 0;
24248 i49 = i5 + 48 | 0;
24249 HEAP32[i48 >> 2] = HEAP32[i49 >> 2];
24250 HEAP32[i48 + 4 >> 2] = HEAP32[i49 + 4 >> 2];
24251 HEAP32[i48 + 8 >> 2] = HEAP32[i49 + 8 >> 2];
24252 HEAP32[i48 + 12 >> 2] = HEAP32[i49 + 12 >> 2];
24253 i48 = HEAP32[i12 >> 2] | 0;
24254 i5 = i48 + 68 | 0;
24255 HEAP32[i5 >> 2] = HEAP32[i14 >> 2];
24256 HEAP32[i5 + 4 >> 2] = HEAP32[i14 + 4 >> 2];
24257 HEAP32[i5 + 8 >> 2] = HEAP32[i14 + 8 >> 2];
24258 HEAP32[i5 + 12 >> 2] = HEAP32[i14 + 12 >> 2];
24259 i14 = i48 + 84 | 0;
24260 HEAP32[i14 >> 2] = HEAP32[i47 >> 2];
24261 HEAP32[i14 + 4 >> 2] = HEAP32[i47 + 4 >> 2];
24262 HEAP32[i14 + 8 >> 2] = HEAP32[i47 + 8 >> 2];
24263 HEAP32[i14 + 12 >> 2] = HEAP32[i47 + 12 >> 2];
24264 i47 = i48 + 100 | 0;
24265 HEAP32[i47 >> 2] = HEAP32[i50 >> 2];
24266 HEAP32[i47 + 4 >> 2] = HEAP32[i50 + 4 >> 2];
24267 HEAP32[i47 + 8 >> 2] = HEAP32[i50 + 8 >> 2];
24268 HEAP32[i47 + 12 >> 2] = HEAP32[i50 + 12 >> 2];
24269 i50 = i48 + 116 | 0;
24270 HEAP32[i50 >> 2] = HEAP32[i49 >> 2];
24271 HEAP32[i50 + 4 >> 2] = HEAP32[i49 + 4 >> 2];
24272 HEAP32[i50 + 8 >> 2] = HEAP32[i49 + 8 >> 2];
24273 HEAP32[i50 + 12 >> 2] = HEAP32[i49 + 12 >> 2];
24274 i49 = (HEAP32[i12 >> 2] | 0) + 192 | 0;
24275 i50 = HEAP32[i49 >> 2] | 0;
24276 HEAP32[i49 >> 2] = i2;
24277 i2 = i1 + 24 | 0;
24278 if ((HEAP32[(HEAP32[i2 >> 2] | 0) + (i3 << 2) >> 2] | 0) == 0) {
24279 i49 = HEAP32[i1 + 12 >> 2] | 0;
24280 i48 = FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[i49 >> 2] | 0) + 8 >> 2] & 31](i49, HEAP32[i12 >> 2] | 0, HEAP32[i31 >> 2] | 0, HEAP32[i1 + 28 >> 2] | 0) | 0;
24281 HEAP32[(HEAP32[i2 >> 2] | 0) + (i3 << 2) >> 2] = i48;
24282 }
24283 i48 = i1 + 20 | 0;
24284 i49 = HEAP32[i48 >> 2] | 0;
24285 i47 = HEAP32[i49 >> 2] | 0;
24286 if ((HEAP32[i49 + 136 >> 2] | 0) == (HEAP32[i12 >> 2] | 0)) {
24287 FUNCTION_TABLE_viii[HEAP32[i47 + 8 >> 2] & 127](i49, -1, i3);
24288 } else {
24289 FUNCTION_TABLE_viii[HEAP32[i47 + 12 >> 2] & 127](i49, -1, i3);
24290 }
24291 i49 = HEAP32[(HEAP32[i2 >> 2] | 0) + (i3 << 2) >> 2] | 0;
24292 i3 = i1 + 16 | 0;
24293 FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i49 >> 2] | 0) + 8 >> 2] & 63](i49, HEAP32[i12 >> 2] | 0, HEAP32[i31 >> 2] | 0, HEAP32[i3 >> 2] | 0, HEAP32[i48 >> 2] | 0);
24294 i48 = HEAP32[(HEAP32[i3 >> 2] | 0) + 20 >> 2] | 0;
24295 do {
24296 if ((i48 | 0) != 0) {
24297 if (((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i48 >> 2] | 0) + 48 >> 2] & 127](i48) | 0) & 2 | 0) == 0) {
24298 break;
24299 }
24300 i31 = HEAP32[(HEAP32[i3 >> 2] | 0) + 20 >> 2] | 0;
24301 i49 = HEAP32[(HEAP32[i31 >> 2] | 0) + 52 >> 2] | 0;
24302 HEAPF32[i10 >> 2] = 1.0;
24303 HEAPF32[i10 + 4 >> 2] = 1.0;
24304 HEAPF32[i10 + 8 >> 2] = 1.0;
24305 HEAPF32[i10 + 12 >> 2] = 0.0;
24306 FUNCTION_TABLE_viiii[i49 & 127](i31, i6, i7, i10);
24307 i31 = HEAP32[(HEAP32[i3 >> 2] | 0) + 20 >> 2] | 0;
24308 i49 = HEAP32[(HEAP32[i31 >> 2] | 0) + 52 >> 2] | 0;
24309 HEAPF32[i11 >> 2] = 1.0;
24310 HEAPF32[i11 + 4 >> 2] = 1.0;
24311 HEAPF32[i11 + 8 >> 2] = 1.0;
24312 HEAPF32[i11 + 12 >> 2] = 0.0;
24313 FUNCTION_TABLE_viiii[i49 & 127](i31, i8, i9, i11);
24314 }
24315 } while (0);
24316 HEAP32[(HEAP32[i12 >> 2] | 0) + 192 >> 2] = i50;
24317 i50 = HEAP32[i12 >> 2] | 0;
24318 HEAPF32[i50 + 4 >> 2] = d15;
24319 HEAPF32[i50 + 8 >> 2] = d16;
24320 HEAPF32[i50 + 12 >> 2] = d17;
24321 HEAPF32[i50 + 16 >> 2] = d18;
24322 HEAPF32[i50 + 20 >> 2] = d19;
24323 HEAPF32[i50 + 24 >> 2] = d20;
24324 HEAPF32[i50 + 28 >> 2] = d21;
24325 HEAPF32[i50 + 32 >> 2] = d22;
24326 HEAPF32[i50 + 36 >> 2] = d23;
24327 HEAPF32[i50 + 40 >> 2] = d24;
24328 HEAPF32[i50 + 44 >> 2] = d25;
24329 HEAPF32[i50 + 48 >> 2] = d26;
24330 HEAPF32[i50 + 52 >> 2] = d27;
24331 HEAPF32[i50 + 56 >> 2] = d28;
24332 HEAPF32[i50 + 60 >> 2] = d29;
24333 HEAPF32[i50 + 64 >> 2] = d30;
24334 i50 = HEAP32[i12 >> 2] | 0;
24335 i12 = i50 + 68 | 0;
24336 HEAP32[i12 >> 2] = HEAP32[i32 >> 2];
24337 HEAP32[i12 + 4 >> 2] = HEAP32[i32 + 4 >> 2];
24338 HEAP32[i12 + 8 >> 2] = HEAP32[i32 + 8 >> 2];
24339 HEAP32[i12 + 12 >> 2] = HEAP32[i32 + 12 >> 2];
24340 i32 = i50 + 84 | 0;
24341 HEAP32[i32 >> 2] = HEAP32[i33 >> 2];
24342 HEAP32[i32 + 4 >> 2] = HEAP32[i33 + 4 >> 2];
24343 HEAP32[i32 + 8 >> 2] = HEAP32[i33 + 8 >> 2];
24344 HEAP32[i32 + 12 >> 2] = HEAP32[i33 + 12 >> 2];
24345 i33 = i50 + 100 | 0;
24346 HEAP32[i33 >> 2] = HEAP32[i34 >> 2];
24347 HEAP32[i33 + 4 >> 2] = HEAP32[i34 + 4 >> 2];
24348 HEAP32[i33 + 8 >> 2] = HEAP32[i34 + 8 >> 2];
24349 HEAP32[i33 + 12 >> 2] = HEAP32[i34 + 12 >> 2];
24350 i34 = i50 + 116 | 0;
24351 HEAP32[i34 >> 2] = HEAP32[i13 >> 2];
24352 HEAP32[i34 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
24353 HEAP32[i34 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
24354 HEAP32[i34 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
24355 STACKTOP = i4;
24356 return;
24357 }
24358 function __ZN27btPolyhedralContactClipping8clipFaceERK20btAlignedObjectArrayI9btVector3ERS2_RKS1_f(i1, i2, i3, d4) {
24359 i1 = i1 | 0;
24360 i2 = i2 | 0;
24361 i3 = i3 | 0;
24362 d4 = +d4;
24363 var i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, i11 = 0, i12 = 0, d13 = 0.0, d14 = 0.0, d15 = 0.0, i16 = 0, i17 = 0, i18 = 0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, i23 = 0, d24 = 0.0, d25 = 0.0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, d44 = 0.0, d45 = 0.0, d46 = 0.0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0;
24364 i5 = HEAP32[i1 + 4 >> 2] | 0;
24365 if ((i5 | 0) < 2) {
24366 return;
24367 }
24368 i6 = i5 - 1 | 0;
24369 i7 = i1 + 12 | 0;
24370 i1 = HEAP32[i7 >> 2] | 0;
24371 d8 = +HEAPF32[i1 + (i6 << 4) >> 2];
24372 d9 = +HEAPF32[i1 + (i6 << 4) + 4 >> 2];
24373 d10 = +HEAPF32[i1 + (i6 << 4) + 8 >> 2];
24374 i6 = i3 | 0;
24375 i11 = i3 + 4 | 0;
24376 i12 = i3 + 8 | 0;
24377 d13 = +HEAPF32[i11 >> 2];
24378 d14 = +HEAPF32[i6 >> 2];
24379 d15 = +HEAPF32[i12 >> 2];
24380 i3 = i2 + 4 | 0;
24381 i16 = i2 + 8 | 0;
24382 i17 = i2 + 12 | 0;
24383 i18 = i2 + 16 | 0;
24384 d19 = d10;
24385 d20 = d9;
24386 d21 = d8;
24387 d22 = d9 * d13 + d8 * d14 + d10 * d15 + d4;
24388 i2 = 0;
24389 i23 = i1;
24390 d10 = d14;
24391 d14 = d13;
24392 d13 = d15;
24393 while (1) {
24394 d15 = +HEAPF32[i23 + (i2 << 4) >> 2];
24395 d8 = +HEAPF32[i23 + (i2 << 4) + 4 >> 2];
24396 d9 = +HEAPF32[i23 + (i2 << 4) + 8 >> 2];
24397 d24 = +HEAPF32[i23 + (i2 << 4) + 12 >> 2];
24398 d25 = d10 * d15 + d14 * d8 + d13 * d9 + d4;
24399 i1 = d25 < 0.0;
24400 do {
24401 if (d22 < 0.0) {
24402 if (i1) {
24403 i26 = HEAP32[i3 >> 2] | 0;
24404 do {
24405 if ((i26 | 0) == (HEAP32[i16 >> 2] | 0)) {
24406 i27 = (i26 | 0) == 0 ? 1 : i26 << 1;
24407 if ((i26 | 0) >= (i27 | 0)) {
24408 i28 = i26;
24409 break;
24410 }
24411 if ((i27 | 0) == 0) {
24412 i29 = 0;
24413 i30 = i26;
24414 } else {
24415 i31 = __Z22btAlignedAllocInternalji(i27 << 4, 16) | 0;
24416 i29 = i31;
24417 i30 = HEAP32[i3 >> 2] | 0;
24418 }
24419 if ((i30 | 0) > 0) {
24420 i31 = 0;
24421 do {
24422 i32 = i29 + (i31 << 4) | 0;
24423 if ((i32 | 0) != 0) {
24424 i33 = i32;
24425 i32 = (HEAP32[i17 >> 2] | 0) + (i31 << 4) | 0;
24426 HEAP32[i33 >> 2] = HEAP32[i32 >> 2];
24427 HEAP32[i33 + 4 >> 2] = HEAP32[i32 + 4 >> 2];
24428 HEAP32[i33 + 8 >> 2] = HEAP32[i32 + 8 >> 2];
24429 HEAP32[i33 + 12 >> 2] = HEAP32[i32 + 12 >> 2];
24430 }
24431 i31 = i31 + 1 | 0;
24432 } while ((i31 | 0) < (i30 | 0));
24433 }
24434 i31 = HEAP32[i17 >> 2] | 0;
24435 if ((i31 | 0) != 0) {
24436 if ((HEAP8[i18] | 0) != 0) {
24437 __Z21btAlignedFreeInternalPv(i31);
24438 }
24439 HEAP32[i17 >> 2] = 0;
24440 }
24441 HEAP8[i18] = 1;
24442 HEAP32[i17 >> 2] = i29;
24443 HEAP32[i16 >> 2] = i27;
24444 i28 = HEAP32[i3 >> 2] | 0;
24445 } else {
24446 i28 = i26;
24447 }
24448 } while (0);
24449 i26 = HEAP32[i17 >> 2] | 0;
24450 i31 = i26 + (i28 << 4) | 0;
24451 if ((i31 | 0) == 0) {
24452 i34 = i28;
24453 } else {
24454 HEAPF32[i31 >> 2] = d15;
24455 HEAPF32[i26 + (i28 << 4) + 4 >> 2] = d8;
24456 HEAPF32[i26 + (i28 << 4) + 8 >> 2] = d9;
24457 HEAPF32[i26 + (i28 << 4) + 12 >> 2] = d24;
24458 i34 = HEAP32[i3 >> 2] | 0;
24459 }
24460 HEAP32[i3 >> 2] = i34 + 1;
24461 break;
24462 } else {
24463 d35 = d22 / (d22 - d25);
24464 d36 = d21 + (d15 - d21) * d35;
24465 d37 = d20 + (d8 - d20) * d35;
24466 d38 = d19 + (d9 - d19) * d35;
24467 i26 = HEAP32[i3 >> 2] | 0;
24468 do {
24469 if ((i26 | 0) == (HEAP32[i16 >> 2] | 0)) {
24470 i31 = (i26 | 0) == 0 ? 1 : i26 << 1;
24471 if ((i26 | 0) >= (i31 | 0)) {
24472 i39 = i26;
24473 break;
24474 }
24475 if ((i31 | 0) == 0) {
24476 i40 = 0;
24477 i41 = i26;
24478 } else {
24479 i32 = __Z22btAlignedAllocInternalji(i31 << 4, 16) | 0;
24480 i40 = i32;
24481 i41 = HEAP32[i3 >> 2] | 0;
24482 }
24483 if ((i41 | 0) > 0) {
24484 i32 = 0;
24485 do {
24486 i33 = i40 + (i32 << 4) | 0;
24487 if ((i33 | 0) != 0) {
24488 i42 = i33;
24489 i33 = (HEAP32[i17 >> 2] | 0) + (i32 << 4) | 0;
24490 HEAP32[i42 >> 2] = HEAP32[i33 >> 2];
24491 HEAP32[i42 + 4 >> 2] = HEAP32[i33 + 4 >> 2];
24492 HEAP32[i42 + 8 >> 2] = HEAP32[i33 + 8 >> 2];
24493 HEAP32[i42 + 12 >> 2] = HEAP32[i33 + 12 >> 2];
24494 }
24495 i32 = i32 + 1 | 0;
24496 } while ((i32 | 0) < (i41 | 0));
24497 }
24498 i32 = HEAP32[i17 >> 2] | 0;
24499 if ((i32 | 0) != 0) {
24500 if ((HEAP8[i18] | 0) != 0) {
24501 __Z21btAlignedFreeInternalPv(i32);
24502 }
24503 HEAP32[i17 >> 2] = 0;
24504 }
24505 HEAP8[i18] = 1;
24506 HEAP32[i17 >> 2] = i40;
24507 HEAP32[i16 >> 2] = i31;
24508 i39 = HEAP32[i3 >> 2] | 0;
24509 } else {
24510 i39 = i26;
24511 }
24512 } while (0);
24513 i26 = HEAP32[i17 >> 2] | 0;
24514 i32 = i26 + (i39 << 4) | 0;
24515 if ((i32 | 0) == 0) {
24516 i43 = i39;
24517 } else {
24518 HEAPF32[i32 >> 2] = d36;
24519 HEAPF32[i26 + (i39 << 4) + 4 >> 2] = d37;
24520 HEAPF32[i26 + (i39 << 4) + 8 >> 2] = d38;
24521 HEAPF32[i26 + (i39 << 4) + 12 >> 2] = 0.0;
24522 i43 = HEAP32[i3 >> 2] | 0;
24523 }
24524 HEAP32[i3 >> 2] = i43 + 1;
24525 break;
24526 }
24527 } else {
24528 if (!i1) {
24529 break;
24530 }
24531 d35 = d22 / (d22 - d25);
24532 d44 = d21 + (d15 - d21) * d35;
24533 d45 = d20 + (d8 - d20) * d35;
24534 d46 = d19 + (d9 - d19) * d35;
24535 i26 = HEAP32[i3 >> 2] | 0;
24536 i32 = HEAP32[i16 >> 2] | 0;
24537 do {
24538 if ((i26 | 0) == (i32 | 0)) {
24539 i27 = (i26 | 0) == 0 ? 1 : i26 << 1;
24540 if ((i26 | 0) >= (i27 | 0)) {
24541 i47 = i26;
24542 i48 = i26;
24543 break;
24544 }
24545 if ((i27 | 0) == 0) {
24546 i49 = 0;
24547 i50 = i26;
24548 } else {
24549 i33 = __Z22btAlignedAllocInternalji(i27 << 4, 16) | 0;
24550 i49 = i33;
24551 i50 = HEAP32[i3 >> 2] | 0;
24552 }
24553 if ((i50 | 0) > 0) {
24554 i33 = 0;
24555 do {
24556 i42 = i49 + (i33 << 4) | 0;
24557 if ((i42 | 0) != 0) {
24558 i51 = i42;
24559 i42 = (HEAP32[i17 >> 2] | 0) + (i33 << 4) | 0;
24560 HEAP32[i51 >> 2] = HEAP32[i42 >> 2];
24561 HEAP32[i51 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
24562 HEAP32[i51 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
24563 HEAP32[i51 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
24564 }
24565 i33 = i33 + 1 | 0;
24566 } while ((i33 | 0) < (i50 | 0));
24567 }
24568 i33 = HEAP32[i17 >> 2] | 0;
24569 if ((i33 | 0) != 0) {
24570 if ((HEAP8[i18] | 0) != 0) {
24571 __Z21btAlignedFreeInternalPv(i33);
24572 }
24573 HEAP32[i17 >> 2] = 0;
24574 }
24575 HEAP8[i18] = 1;
24576 HEAP32[i17 >> 2] = i49;
24577 HEAP32[i16 >> 2] = i27;
24578 i47 = HEAP32[i3 >> 2] | 0;
24579 i48 = i27;
24580 } else {
24581 i47 = i26;
24582 i48 = i32;
24583 }
24584 } while (0);
24585 i32 = HEAP32[i17 >> 2] | 0;
24586 i26 = i32 + (i47 << 4) | 0;
24587 if ((i26 | 0) == 0) {
24588 i52 = i47;
24589 i53 = i48;
24590 } else {
24591 HEAPF32[i26 >> 2] = d44;
24592 HEAPF32[i32 + (i47 << 4) + 4 >> 2] = d45;
24593 HEAPF32[i32 + (i47 << 4) + 8 >> 2] = d46;
24594 HEAPF32[i32 + (i47 << 4) + 12 >> 2] = 0.0;
24595 i52 = HEAP32[i3 >> 2] | 0;
24596 i53 = HEAP32[i16 >> 2] | 0;
24597 }
24598 i32 = i52 + 1 | 0;
24599 HEAP32[i3 >> 2] = i32;
24600 do {
24601 if ((i32 | 0) == (i53 | 0)) {
24602 i26 = (i53 | 0) == 0 ? 1 : i53 << 1;
24603 if ((i53 | 0) >= (i26 | 0)) {
24604 i54 = i53;
24605 break;
24606 }
24607 if ((i26 | 0) == 0) {
24608 i55 = 0;
24609 i56 = i53;
24610 } else {
24611 i33 = __Z22btAlignedAllocInternalji(i26 << 4, 16) | 0;
24612 i55 = i33;
24613 i56 = HEAP32[i3 >> 2] | 0;
24614 }
24615 if ((i56 | 0) > 0) {
24616 i33 = 0;
24617 do {
24618 i31 = i55 + (i33 << 4) | 0;
24619 if ((i31 | 0) != 0) {
24620 i42 = i31;
24621 i31 = (HEAP32[i17 >> 2] | 0) + (i33 << 4) | 0;
24622 HEAP32[i42 >> 2] = HEAP32[i31 >> 2];
24623 HEAP32[i42 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
24624 HEAP32[i42 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
24625 HEAP32[i42 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
24626 }
24627 i33 = i33 + 1 | 0;
24628 } while ((i33 | 0) < (i56 | 0));
24629 }
24630 i33 = HEAP32[i17 >> 2] | 0;
24631 if ((i33 | 0) != 0) {
24632 if ((HEAP8[i18] | 0) != 0) {
24633 __Z21btAlignedFreeInternalPv(i33);
24634 }
24635 HEAP32[i17 >> 2] = 0;
24636 }
24637 HEAP8[i18] = 1;
24638 HEAP32[i17 >> 2] = i55;
24639 HEAP32[i16 >> 2] = i26;
24640 i54 = HEAP32[i3 >> 2] | 0;
24641 } else {
24642 i54 = i32;
24643 }
24644 } while (0);
24645 i32 = HEAP32[i17 >> 2] | 0;
24646 i33 = i32 + (i54 << 4) | 0;
24647 if ((i33 | 0) == 0) {
24648 i57 = i54;
24649 } else {
24650 HEAPF32[i33 >> 2] = d15;
24651 HEAPF32[i32 + (i54 << 4) + 4 >> 2] = d8;
24652 HEAPF32[i32 + (i54 << 4) + 8 >> 2] = d9;
24653 HEAPF32[i32 + (i54 << 4) + 12 >> 2] = d24;
24654 i57 = HEAP32[i3 >> 2] | 0;
24655 }
24656 HEAP32[i3 >> 2] = i57 + 1;
24657 }
24658 } while (0);
24659 i1 = i2 + 1 | 0;
24660 if ((i1 | 0) >= (i5 | 0)) {
24661 break;
24662 }
24663 d19 = d9;
24664 d20 = d8;
24665 d21 = d15;
24666 d22 = d25;
24667 i2 = i1;
24668 i23 = HEAP32[i7 >> 2] | 0;
24669 d10 = +HEAPF32[i6 >> 2];
24670 d14 = +HEAPF32[i11 >> 2];
24671 d13 = +HEAPF32[i12 >> 2];
24672 }
24673 return;
24674 }
24675 function __ZN23btDiscreteDynamicsWorld22addSpeculativeContactsEf(i1, d2) {
24676 i1 = i1 | 0;
24677 d2 = +d2;
24678 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, d71 = 0.0, i72 = 0, d73 = 0.0, i74 = 0, d75 = 0.0, d76 = 0.0, d77 = 0.0, i78 = 0, i79 = 0, i80 = 0, d81 = 0.0;
24679 i3 = STACKTOP;
24680 STACKTOP = STACKTOP + 496 | 0;
24681 i4 = i3 | 0;
24682 i5 = i3 + 64 | 0;
24683 i6 = i3 + 160 | 0;
24684 i7 = i3 + 216 | 0;
24685 i8 = i3 + 280 | 0;
24686 i9 = i3 + 304 | 0;
24687 i10 = i3 + 464 | 0;
24688 i11 = i3 + 480 | 0;
24689 __ZN15CProfileManager13Start_ProfileEPKc(1088);
24690 i12 = i1 + 204 | 0;
24691 if ((HEAP32[i12 >> 2] | 0) <= 0) {
24692 __ZN15CProfileManager12Stop_ProfileEv();
24693 STACKTOP = i3;
24694 return;
24695 }
24696 i13 = i1 + 212 | 0;
24697 i14 = i4 + 48 | 0;
24698 i15 = i14 | 0;
24699 i16 = i4 + 52 | 0;
24700 i17 = i4 + 56 | 0;
24701 i18 = i1 | 0;
24702 i19 = i1 + 76 | 0;
24703 i20 = i1 + 24 | 0;
24704 i1 = i5 | 0;
24705 i21 = i5 + 4 | 0;
24706 i22 = i5 + 8 | 0;
24707 i23 = i5 + 10 | 0;
24708 i24 = i5 + 12 | 0;
24709 i25 = i5 + 28 | 0;
24710 i26 = i14;
24711 i14 = i5 + 76 | 0;
24712 i27 = i5 + 80 | 0;
24713 i28 = i5 + 84 | 0;
24714 i29 = i5 + 88 | 0;
24715 i30 = i5 + 92 | 0;
24716 i31 = i6 | 0;
24717 i32 = i6 | 0;
24718 i33 = i6 + 4 | 0;
24719 i34 = i6 + 28 | 0;
24720 i35 = i6 + 44 | 0;
24721 i36 = i5 | 0;
24722 i37 = i7;
24723 i38 = i4;
24724 i39 = i7 + 16 | 0;
24725 i40 = i4 + 16 | 0;
24726 i41 = i7 + 32 | 0;
24727 i42 = i4 + 32 | 0;
24728 i43 = i7 + 48 | 0;
24729 i44 = i43;
24730 i45 = i6 | 0;
24731 i6 = i8 + 16 | 0;
24732 i46 = i8 + 12 | 0;
24733 i47 = i8 + 4 | 0;
24734 i48 = i8 + 8 | 0;
24735 i49 = i9 + 4 | 0;
24736 i50 = i43 | 0;
24737 i43 = i7 + 52 | 0;
24738 i51 = i7 + 56 | 0;
24739 i52 = i10;
24740 i53 = i5 + 60 | 0;
24741 i54 = i10 | 0;
24742 i55 = i10 + 4 | 0;
24743 i56 = i10 + 8 | 0;
24744 i57 = i5 + 44 | 0;
24745 i58 = i57 | 0;
24746 i59 = i5 + 48 | 0;
24747 i60 = i5 + 52 | 0;
24748 i5 = i11 | 0;
24749 i61 = i11 + 4 | 0;
24750 i62 = i11 + 8 | 0;
24751 i63 = i11 + 12 | 0;
24752 i64 = 0;
24753 do {
24754 i65 = HEAP32[(HEAP32[i13 >> 2] | 0) + (i64 << 2) >> 2] | 0;
24755 i66 = i65 | 0;
24756 HEAPF32[i65 + 240 >> 2] = 1.0;
24757 i67 = HEAP32[i65 + 216 >> 2] | 0;
24758 do {
24759 if (!((i67 | 0) == 5 | (i67 | 0) == 2)) {
24760 if ((HEAP32[i65 + 204 >> 2] & 3 | 0) != 0) {
24761 break;
24762 }
24763 __ZN11btRigidBody26predictIntegratedTransformEfR11btTransform(i65, d2, i4);
24764 i68 = i65 + 4 | 0;
24765 i69 = i65 + 52 | 0;
24766 i70 = i69 | 0;
24767 d71 = +HEAPF32[i15 >> 2] - +HEAPF32[i70 >> 2];
24768 i72 = i65 + 56 | 0;
24769 d73 = +HEAPF32[i16 >> 2] - +HEAPF32[i72 >> 2];
24770 i74 = i65 + 60 | 0;
24771 d75 = +HEAPF32[i17 >> 2] - +HEAPF32[i74 >> 2];
24772 d76 = +HEAPF32[i65 + 248 >> 2];
24773 d77 = d76 * d76;
24774 if (!(d77 != 0.0 & d77 < d71 * d71 + d73 * d73 + d75 * d75)) {
24775 break;
24776 }
24777 __ZN15CProfileManager13Start_ProfileEPKc(1032);
24778 if ((HEAP32[(HEAP32[i65 + 192 >> 2] | 0) + 4 >> 2] | 0) < 20) {
24779 HEAP32[2996] = (HEAP32[2996] | 0) + 1;
24780 i78 = HEAP32[i19 >> 2] | 0;
24781 i79 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i78 >> 2] | 0) + 36 >> 2] & 127](i78) | 0;
24782 i78 = HEAP32[i20 >> 2] | 0;
24783 HEAPF32[i21 >> 2] = 1.0;
24784 HEAP16[i22 >> 1] = 1;
24785 HEAP16[i23 >> 1] = -1;
24786 HEAP32[i1 >> 2] = 2248;
24787 i80 = i69;
24788 HEAP32[i24 >> 2] = HEAP32[i80 >> 2];
24789 HEAP32[i24 + 4 >> 2] = HEAP32[i80 + 4 >> 2];
24790 HEAP32[i24 + 8 >> 2] = HEAP32[i80 + 8 >> 2];
24791 HEAP32[i24 + 12 >> 2] = HEAP32[i80 + 12 >> 2];
24792 HEAP32[i25 >> 2] = HEAP32[i26 >> 2];
24793 HEAP32[i25 + 4 >> 2] = HEAP32[i26 + 4 >> 2];
24794 HEAP32[i25 + 8 >> 2] = HEAP32[i26 + 8 >> 2];
24795 HEAP32[i25 + 12 >> 2] = HEAP32[i26 + 12 >> 2];
24796 HEAP32[i14 >> 2] = 0;
24797 HEAP32[i1 >> 2] = 2464;
24798 HEAP32[i27 >> 2] = i66;
24799 HEAPF32[i28 >> 2] = 0.0;
24800 HEAP32[i29 >> 2] = i79;
24801 HEAP32[i30 >> 2] = i78;
24802 d75 = +HEAPF32[i65 + 244 >> 2];
24803 __ZN21btConvexInternalShapeC2Ev(i31);
24804 HEAP32[i32 >> 2] = 4728;
24805 HEAP32[i33 >> 2] = 8;
24806 HEAPF32[i34 >> 2] = d75;
24807 HEAPF32[i35 >> 2] = d75;
24808 i78 = i65 + 188 | 0;
24809 i79 = HEAP32[i78 >> 2] | 0;
24810 HEAP16[i22 >> 1] = HEAP16[i79 + 4 >> 1] | 0;
24811 HEAP16[i23 >> 1] = HEAP16[i79 + 6 >> 1] | 0;
24812 HEAP32[i37 >> 2] = HEAP32[i38 >> 2];
24813 HEAP32[i37 + 4 >> 2] = HEAP32[i38 + 4 >> 2];
24814 HEAP32[i37 + 8 >> 2] = HEAP32[i38 + 8 >> 2];
24815 HEAP32[i37 + 12 >> 2] = HEAP32[i38 + 12 >> 2];
24816 HEAP32[i39 >> 2] = HEAP32[i40 >> 2];
24817 HEAP32[i39 + 4 >> 2] = HEAP32[i40 + 4 >> 2];
24818 HEAP32[i39 + 8 >> 2] = HEAP32[i40 + 8 >> 2];
24819 HEAP32[i39 + 12 >> 2] = HEAP32[i40 + 12 >> 2];
24820 HEAP32[i41 >> 2] = HEAP32[i42 >> 2];
24821 HEAP32[i41 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
24822 HEAP32[i41 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
24823 HEAP32[i41 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
24824 HEAP32[i44 >> 2] = HEAP32[i26 >> 2];
24825 HEAP32[i44 + 4 >> 2] = HEAP32[i26 + 4 >> 2];
24826 HEAP32[i44 + 8 >> 2] = HEAP32[i26 + 8 >> 2];
24827 HEAP32[i44 + 12 >> 2] = HEAP32[i26 + 12 >> 2];
24828 i79 = i68;
24829 HEAP32[i37 >> 2] = HEAP32[i79 >> 2];
24830 HEAP32[i37 + 4 >> 2] = HEAP32[i79 + 4 >> 2];
24831 HEAP32[i37 + 8 >> 2] = HEAP32[i79 + 8 >> 2];
24832 HEAP32[i37 + 12 >> 2] = HEAP32[i79 + 12 >> 2];
24833 i79 = i65 + 20 | 0;
24834 HEAP32[i39 >> 2] = HEAP32[i79 >> 2];
24835 HEAP32[i39 + 4 >> 2] = HEAP32[i79 + 4 >> 2];
24836 HEAP32[i39 + 8 >> 2] = HEAP32[i79 + 8 >> 2];
24837 HEAP32[i39 + 12 >> 2] = HEAP32[i79 + 12 >> 2];
24838 i79 = i65 + 36 | 0;
24839 HEAP32[i41 >> 2] = HEAP32[i79 >> 2];
24840 HEAP32[i41 + 4 >> 2] = HEAP32[i79 + 4 >> 2];
24841 HEAP32[i41 + 8 >> 2] = HEAP32[i79 + 8 >> 2];
24842 HEAP32[i41 + 12 >> 2] = HEAP32[i79 + 12 >> 2];
24843 __ZNK16btCollisionWorld15convexSweepTestEPK13btConvexShapeRK11btTransformS5_RNS_20ConvexResultCallbackEf(i18, i45, i68, i7, i36, 0.0);
24844 do {
24845 if (+HEAPF32[i21 >> 2] < 1.0) {
24846 i68 = HEAP32[i29 >> 2] | 0;
24847 i79 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i68 >> 2] | 0) + 52 >> 2] & 31](i68, HEAP32[i78 >> 2] | 0, HEAP32[(HEAP32[i14 >> 2] | 0) + 188 >> 2] | 0) | 0;
24848 if ((i79 | 0) == 0) {
24849 break;
24850 }
24851 i68 = i79 + 8 | 0;
24852 if ((HEAP32[i68 >> 2] | 0) == 0) {
24853 break;
24854 }
24855 HEAP8[i6] = 1;
24856 HEAP32[i46 >> 2] = 0;
24857 HEAP32[i47 >> 2] = 0;
24858 HEAP32[i48 >> 2] = 0;
24859 i79 = HEAP32[i68 >> 2] | 0;
24860 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i79 >> 2] | 0) + 16 >> 2] & 127](i79, i8);
24861 do {
24862 if ((HEAP32[i47 >> 2] | 0) != 0) {
24863 __ZN16btManifoldResultC2EP17btCollisionObjectS1_(i9, i66, HEAP32[i14 >> 2] | 0);
24864 i79 = HEAP32[i46 >> 2] | 0;
24865 HEAP32[i49 >> 2] = HEAP32[i79 >> 2];
24866 d75 = +HEAPF32[i21 >> 2];
24867 d73 = (+HEAPF32[i50 >> 2] - +HEAPF32[i70 >> 2]) * d75;
24868 d71 = (+HEAPF32[i43 >> 2] - +HEAPF32[i72 >> 2]) * d75;
24869 d77 = d75 * (+HEAPF32[i51 >> 2] - +HEAPF32[i74 >> 2]);
24870 d75 = d77 * d77 + (d73 * d73 + d71 * d71);
24871 HEAP32[i52 >> 2] = HEAP32[i53 >> 2];
24872 HEAP32[i52 + 4 >> 2] = HEAP32[i53 + 4 >> 2];
24873 HEAP32[i52 + 8 >> 2] = HEAP32[i53 + 8 >> 2];
24874 HEAP32[i52 + 12 >> 2] = HEAP32[i53 + 12 >> 2];
24875 if (d75 > 1.1920928955078125e-7) {
24876 d76 = +Math_sqrt(+d75);
24877 HEAPF32[i54 >> 2] = +HEAPF32[i54 >> 2] - d73;
24878 HEAPF32[i55 >> 2] = +HEAPF32[i55 >> 2] - d71;
24879 HEAPF32[i56 >> 2] = +HEAPF32[i56 >> 2] - d77;
24880 d81 = d76;
24881 } else {
24882 d81 = 0.0;
24883 }
24884 if ((HEAP32[(HEAP32[i79 >> 2] | 0) + 1108 >> 2] | 0) == (i65 | 0)) {
24885 __ZN16btManifoldResult15addContactPointERK9btVector3S2_f(i9, i57, i10, d81);
24886 break;
24887 } else {
24888 d76 = -0.0 - +HEAPF32[i59 >> 2];
24889 d77 = -0.0 - +HEAPF32[i60 >> 2];
24890 HEAPF32[i5 >> 2] = -0.0 - +HEAPF32[i58 >> 2];
24891 HEAPF32[i61 >> 2] = d76;
24892 HEAPF32[i62 >> 2] = d77;
24893 HEAPF32[i63 >> 2] = 0.0;
24894 __ZN16btManifoldResult15addContactPointERK9btVector3S2_f(i9, i11, i10, d81);
24895 break;
24896 }
24897 }
24898 } while (0);
24899 i79 = HEAP32[i46 >> 2] | 0;
24900 if ((i79 | 0) != 0) {
24901 if ((HEAP8[i6] | 0) != 0) {
24902 __Z21btAlignedFreeInternalPv(i79);
24903 }
24904 HEAP32[i46 >> 2] = 0;
24905 }
24906 HEAP8[i6] = 1;
24907 HEAP32[i46 >> 2] = 0;
24908 HEAP32[i47 >> 2] = 0;
24909 HEAP32[i48 >> 2] = 0;
24910 }
24911 } while (0);
24912 __ZN13btConvexShapeD2Ev(i45);
24913 }
24914 __ZN15CProfileManager12Stop_ProfileEv();
24915 }
24916 } while (0);
24917 i64 = i64 + 1 | 0;
24918 } while ((i64 | 0) < (HEAP32[i12 >> 2] | 0));
24919 __ZN15CProfileManager12Stop_ProfileEv();
24920 STACKTOP = i3;
24921 return;
24922 }
24923 function __ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i1) {
24924 i1 = i1 | 0;
24925 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0, d15 = 0.0, d16 = 0.0, i17 = 0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, i25 = 0, d26 = 0.0, i27 = 0, i28 = 0;
24926 i2 = STACKTOP;
24927 STACKTOP = STACKTOP + 32 | 0;
24928 i3 = i2 | 0;
24929 i4 = i2 + 16 | 0;
24930 i5 = i1 + 356 | 0;
24931 if ((HEAP8[i5] | 0) == 0) {
24932 i6 = HEAP8[i1 + 312 | 0] | 0;
24933 i7 = i6 << 24 >> 24 != 0;
24934 STACKTOP = i2;
24935 return i7 | 0;
24936 }
24937 i8 = i1 + 316 | 0;
24938 i9 = i1 + 336 | 0;
24939 i10 = i1 + 332 | 0;
24940 i11 = i10;
24941 i12 = i9;
24942 _memset(i12 | 0, 0, 17);
24943 i13 = HEAP16[i11 >> 1] & -16;
24944 HEAP16[i11 >> 1] = i13;
24945 HEAP8[i5] = 0;
24946 switch (HEAP32[i1 >> 2] | 0) {
24947 case 4:
24948 {
24949 _memset(i4 | 0, 0, 16);
24950 if (!(__ZN22btVoronoiSimplexSolver25closestPtPointTetrahedronERK9btVector3S2_S2_S2_S2_R25btSubSimplexClosestResult(0, i4, i1 + 4 | 0, i1 + 20 | 0, i1 + 36 | 0, i1 + 52 | 0, i8) | 0)) {
24951 i4 = i1 + 312 | 0;
24952 if ((HEAP8[i1 + 352 | 0] | 0) == 0) {
24953 HEAP8[i4] = 1;
24954 _memset(i1 + 276 | 0, 0, 16);
24955 i6 = 1;
24956 i7 = i6 << 24 >> 24 != 0;
24957 STACKTOP = i2;
24958 return i7 | 0;
24959 } else {
24960 HEAP8[i4] = 0;
24961 i6 = 0;
24962 i7 = i6 << 24 >> 24 != 0;
24963 STACKTOP = i2;
24964 return i7 | 0;
24965 }
24966 }
24967 d14 = +HEAPF32[i9 >> 2];
24968 i4 = i1 + 340 | 0;
24969 d15 = +HEAPF32[i4 >> 2];
24970 i5 = i1 + 344 | 0;
24971 d16 = +HEAPF32[i5 >> 2];
24972 i17 = i1 + 348 | 0;
24973 d18 = +HEAPF32[i17 >> 2];
24974 d19 = +HEAPF32[i1 + 84 >> 2] * d14 + +HEAPF32[i1 + 100 >> 2] * d15 + +HEAPF32[i1 + 116 >> 2] * d16 + +HEAPF32[i1 + 132 >> 2] * d18;
24975 d20 = d14 * +HEAPF32[i1 + 88 >> 2] + d15 * +HEAPF32[i1 + 104 >> 2] + d16 * +HEAPF32[i1 + 120 >> 2] + d18 * +HEAPF32[i1 + 136 >> 2];
24976 d21 = d14 * +HEAPF32[i1 + 92 >> 2] + d15 * +HEAPF32[i1 + 108 >> 2] + d16 * +HEAPF32[i1 + 124 >> 2] + d18 * +HEAPF32[i1 + 140 >> 2];
24977 HEAPF32[i1 + 244 >> 2] = d19;
24978 HEAPF32[i1 + 248 >> 2] = d20;
24979 HEAPF32[i1 + 252 >> 2] = d21;
24980 HEAPF32[i1 + 256 >> 2] = 0.0;
24981 d22 = d14 * +HEAPF32[i1 + 164 >> 2] + d15 * +HEAPF32[i1 + 180 >> 2] + d16 * +HEAPF32[i1 + 196 >> 2] + d18 * +HEAPF32[i1 + 212 >> 2];
24982 d23 = d14 * +HEAPF32[i1 + 168 >> 2] + d15 * +HEAPF32[i1 + 184 >> 2] + d16 * +HEAPF32[i1 + 200 >> 2] + d18 * +HEAPF32[i1 + 216 >> 2];
24983 d24 = d14 * +HEAPF32[i1 + 172 >> 2] + d15 * +HEAPF32[i1 + 188 >> 2] + d16 * +HEAPF32[i1 + 204 >> 2] + d18 * +HEAPF32[i1 + 220 >> 2];
24984 HEAPF32[i1 + 260 >> 2] = d22;
24985 HEAPF32[i1 + 264 >> 2] = d23;
24986 HEAPF32[i1 + 268 >> 2] = d24;
24987 HEAPF32[i1 + 272 >> 2] = 0.0;
24988 HEAPF32[i1 + 276 >> 2] = d19 - d22;
24989 HEAPF32[i1 + 280 >> 2] = d20 - d23;
24990 HEAPF32[i1 + 284 >> 2] = d21 - d24;
24991 HEAPF32[i1 + 288 >> 2] = 0.0;
24992 __ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(i1, i10);
24993 do {
24994 if (+HEAPF32[i9 >> 2] < 0.0) {
24995 i25 = 0;
24996 } else {
24997 if (+HEAPF32[i4 >> 2] < 0.0) {
24998 i25 = 0;
24999 break;
25000 }
25001 if (+HEAPF32[i5 >> 2] < 0.0) {
25002 i25 = 0;
25003 break;
25004 }
25005 i25 = +HEAPF32[i17 >> 2] >= 0.0 | 0;
25006 }
25007 } while (0);
25008 HEAP8[i1 + 312 | 0] = i25;
25009 i6 = i25;
25010 i7 = i6 << 24 >> 24 != 0;
25011 STACKTOP = i2;
25012 return i7 | 0;
25013 }
25014 case 0:
25015 {
25016 HEAP8[i1 + 312 | 0] = 0;
25017 i6 = 0;
25018 i7 = i6 << 24 >> 24 != 0;
25019 STACKTOP = i2;
25020 return i7 | 0;
25021 }
25022 case 1:
25023 {
25024 i25 = i1 + 244 | 0;
25025 i17 = i25;
25026 i5 = i1 + 84 | 0;
25027 HEAP32[i17 >> 2] = HEAP32[i5 >> 2];
25028 HEAP32[i17 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
25029 HEAP32[i17 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
25030 HEAP32[i17 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
25031 i5 = i1 + 260 | 0;
25032 i17 = i5;
25033 i4 = i1 + 164 | 0;
25034 HEAP32[i17 >> 2] = HEAP32[i4 >> 2];
25035 HEAP32[i17 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
25036 HEAP32[i17 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
25037 HEAP32[i17 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
25038 d24 = +HEAPF32[i1 + 248 >> 2] - +HEAPF32[i1 + 264 >> 2];
25039 d21 = +HEAPF32[i1 + 252 >> 2] - +HEAPF32[i1 + 268 >> 2];
25040 HEAPF32[i1 + 276 >> 2] = +HEAPF32[i25 >> 2] - +HEAPF32[i5 >> 2];
25041 HEAPF32[i1 + 280 >> 2] = d24;
25042 HEAPF32[i1 + 284 >> 2] = d21;
25043 HEAPF32[i1 + 288 >> 2] = 0.0;
25044 _memset(i12 | 0, 0, 17);
25045 HEAP16[i11 >> 1] = i13;
25046 HEAPF32[i9 >> 2] = 1.0;
25047 HEAPF32[i1 + 340 >> 2] = 0.0;
25048 HEAPF32[i1 + 344 >> 2] = 0.0;
25049 HEAPF32[i1 + 348 >> 2] = 0.0;
25050 HEAP8[i1 + 312 | 0] = 1;
25051 i6 = 1;
25052 i7 = i6 << 24 >> 24 != 0;
25053 STACKTOP = i2;
25054 return i7 | 0;
25055 }
25056 case 2:
25057 {
25058 d21 = +HEAPF32[i1 + 4 >> 2];
25059 d24 = +HEAPF32[i1 + 8 >> 2];
25060 d23 = +HEAPF32[i1 + 12 >> 2];
25061 d20 = +HEAPF32[i1 + 20 >> 2] - d21;
25062 d22 = +HEAPF32[i1 + 24 >> 2] - d24;
25063 d19 = +HEAPF32[i1 + 28 >> 2] - d23;
25064 d18 = (0.0 - d21) * d20 + (0.0 - d24) * d22 + (0.0 - d23) * d19;
25065 do {
25066 if (d18 > 0.0) {
25067 d23 = d20 * d20 + d22 * d22 + d19 * d19;
25068 if (d18 < d23) {
25069 HEAP16[i11 >> 1] = i13 | 3;
25070 d26 = d18 / d23;
25071 break;
25072 } else {
25073 HEAP16[i11 >> 1] = i13 | 2;
25074 d26 = 1.0;
25075 break;
25076 }
25077 } else {
25078 HEAP16[i11 >> 1] = i13 | 1;
25079 d26 = 0.0;
25080 }
25081 } while (0);
25082 HEAPF32[i9 >> 2] = 1.0 - d26;
25083 i13 = i1 + 340 | 0;
25084 HEAPF32[i13 >> 2] = d26;
25085 i11 = i1 + 344 | 0;
25086 HEAPF32[i11 >> 2] = 0.0;
25087 i12 = i1 + 348 | 0;
25088 HEAPF32[i12 >> 2] = 0.0;
25089 d18 = +HEAPF32[i1 + 84 >> 2];
25090 d19 = +HEAPF32[i1 + 88 >> 2];
25091 d22 = +HEAPF32[i1 + 92 >> 2];
25092 d20 = d18 + d26 * (+HEAPF32[i1 + 100 >> 2] - d18);
25093 d18 = d19 + d26 * (+HEAPF32[i1 + 104 >> 2] - d19);
25094 d19 = d22 + d26 * (+HEAPF32[i1 + 108 >> 2] - d22);
25095 HEAPF32[i1 + 244 >> 2] = d20;
25096 HEAPF32[i1 + 248 >> 2] = d18;
25097 HEAPF32[i1 + 252 >> 2] = d19;
25098 HEAPF32[i1 + 256 >> 2] = 0.0;
25099 d22 = +HEAPF32[i1 + 164 >> 2];
25100 d23 = +HEAPF32[i1 + 168 >> 2];
25101 d24 = +HEAPF32[i1 + 172 >> 2];
25102 d21 = d22 + d26 * (+HEAPF32[i1 + 180 >> 2] - d22);
25103 d22 = d23 + d26 * (+HEAPF32[i1 + 184 >> 2] - d23);
25104 d23 = d24 + d26 * (+HEAPF32[i1 + 188 >> 2] - d24);
25105 HEAPF32[i1 + 260 >> 2] = d21;
25106 HEAPF32[i1 + 264 >> 2] = d22;
25107 HEAPF32[i1 + 268 >> 2] = d23;
25108 HEAPF32[i1 + 272 >> 2] = 0.0;
25109 HEAPF32[i1 + 276 >> 2] = d20 - d21;
25110 HEAPF32[i1 + 280 >> 2] = d18 - d22;
25111 HEAPF32[i1 + 284 >> 2] = d19 - d23;
25112 HEAPF32[i1 + 288 >> 2] = 0.0;
25113 __ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(i1, i10);
25114 do {
25115 if (+HEAPF32[i9 >> 2] < 0.0) {
25116 i27 = 0;
25117 } else {
25118 if (+HEAPF32[i13 >> 2] < 0.0) {
25119 i27 = 0;
25120 break;
25121 }
25122 if (+HEAPF32[i11 >> 2] < 0.0) {
25123 i27 = 0;
25124 break;
25125 }
25126 i27 = +HEAPF32[i12 >> 2] >= 0.0 | 0;
25127 }
25128 } while (0);
25129 HEAP8[i1 + 312 | 0] = i27;
25130 i6 = i27;
25131 i7 = i6 << 24 >> 24 != 0;
25132 STACKTOP = i2;
25133 return i7 | 0;
25134 }
25135 case 3:
25136 {
25137 _memset(i3 | 0, 0, 16);
25138 __ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(0, i3, i1 + 4 | 0, i1 + 20 | 0, i1 + 36 | 0, i8) | 0;
25139 d23 = +HEAPF32[i9 >> 2];
25140 i8 = i1 + 340 | 0;
25141 d19 = +HEAPF32[i8 >> 2];
25142 i3 = i1 + 344 | 0;
25143 d22 = +HEAPF32[i3 >> 2];
25144 d18 = +HEAPF32[i1 + 84 >> 2] * d23 + +HEAPF32[i1 + 100 >> 2] * d19 + +HEAPF32[i1 + 116 >> 2] * d22;
25145 d21 = d23 * +HEAPF32[i1 + 88 >> 2] + d19 * +HEAPF32[i1 + 104 >> 2] + d22 * +HEAPF32[i1 + 120 >> 2];
25146 d20 = d23 * +HEAPF32[i1 + 92 >> 2] + d19 * +HEAPF32[i1 + 108 >> 2] + d22 * +HEAPF32[i1 + 124 >> 2];
25147 HEAPF32[i1 + 244 >> 2] = d18;
25148 HEAPF32[i1 + 248 >> 2] = d21;
25149 HEAPF32[i1 + 252 >> 2] = d20;
25150 HEAPF32[i1 + 256 >> 2] = 0.0;
25151 d24 = d23 * +HEAPF32[i1 + 164 >> 2] + d19 * +HEAPF32[i1 + 180 >> 2] + d22 * +HEAPF32[i1 + 196 >> 2];
25152 d26 = d23 * +HEAPF32[i1 + 168 >> 2] + d19 * +HEAPF32[i1 + 184 >> 2] + d22 * +HEAPF32[i1 + 200 >> 2];
25153 d16 = d23 * +HEAPF32[i1 + 172 >> 2] + d19 * +HEAPF32[i1 + 188 >> 2] + d22 * +HEAPF32[i1 + 204 >> 2];
25154 HEAPF32[i1 + 260 >> 2] = d24;
25155 HEAPF32[i1 + 264 >> 2] = d26;
25156 HEAPF32[i1 + 268 >> 2] = d16;
25157 HEAPF32[i1 + 272 >> 2] = 0.0;
25158 HEAPF32[i1 + 276 >> 2] = d18 - d24;
25159 HEAPF32[i1 + 280 >> 2] = d21 - d26;
25160 HEAPF32[i1 + 284 >> 2] = d20 - d16;
25161 HEAPF32[i1 + 288 >> 2] = 0.0;
25162 __ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(i1, i10);
25163 do {
25164 if (+HEAPF32[i9 >> 2] < 0.0) {
25165 i28 = 0;
25166 } else {
25167 if (+HEAPF32[i8 >> 2] < 0.0) {
25168 i28 = 0;
25169 break;
25170 }
25171 if (+HEAPF32[i3 >> 2] < 0.0) {
25172 i28 = 0;
25173 break;
25174 }
25175 i28 = +HEAPF32[i1 + 348 >> 2] >= 0.0 | 0;
25176 }
25177 } while (0);
25178 HEAP8[i1 + 312 | 0] = i28;
25179 i6 = i28;
25180 i7 = i6 << 24 >> 24 != 0;
25181 STACKTOP = i2;
25182 return i7 | 0;
25183 }
25184 default:
25185 {
25186 HEAP8[i1 + 312 | 0] = 0;
25187 i6 = 0;
25188 i7 = i6 << 24 >> 24 != 0;
25189 STACKTOP = i2;
25190 return i7 | 0;
25191 }
25192 }
25193 return 0;
25194 }
25195 function __ZN15btGjkEpaSolver28DistanceEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsE(i1, i2, i3, i4, i5, i6) {
25196 i1 = i1 | 0;
25197 i2 = i2 | 0;
25198 i3 = i3 | 0;
25199 i4 = i4 | 0;
25200 i5 = i5 | 0;
25201 i6 = i6 | 0;
25202 var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, d16 = 0.0, d17 = 0.0, d18 = 0.0, i19 = 0, d20 = 0.0, d21 = 0.0, i22 = 0, d23 = 0.0, d24 = 0.0, i25 = 0, d26 = 0.0, i27 = 0, d28 = 0.0, i29 = 0, d30 = 0.0, d31 = 0.0, i32 = 0, d33 = 0.0, i34 = 0, d35 = 0.0, i36 = 0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, d71 = 0.0, d72 = 0.0, d73 = 0.0, d74 = 0.0, d75 = 0.0, d76 = 0.0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0, i87 = 0, i88 = 0;
25203 i7 = STACKTOP;
25204 STACKTOP = STACKTOP + 560 | 0;
25205 i8 = i7 | 0;
25206 i9 = i7 + 16 | 0;
25207 i10 = i7 + 32 | 0;
25208 i11 = i7 + 160 | 0;
25209 i12 = i7 + 544 | 0;
25210 i13 = i6 + 20 | 0;
25211 i14 = i6 + 20 | 0;
25212 i15 = i6 + 4 | 0;
25213 _memset(i14 | 0, 0, 16);
25214 HEAP32[i15 >> 2] = HEAP32[i13 >> 2];
25215 HEAP32[i15 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
25216 HEAP32[i15 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
25217 HEAP32[i15 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
25218 i13 = i6 | 0;
25219 HEAP32[i13 >> 2] = 0;
25220 i15 = i10 | 0;
25221 HEAP32[i15 >> 2] = i1;
25222 i1 = i10 + 4 | 0;
25223 HEAP32[i1 >> 2] = i3;
25224 d16 = +HEAPF32[i4 >> 2];
25225 i3 = i2 | 0;
25226 d17 = +HEAPF32[i3 >> 2];
25227 d18 = +HEAPF32[i4 + 16 >> 2];
25228 i19 = i2 + 16 | 0;
25229 d20 = +HEAPF32[i19 >> 2];
25230 d21 = +HEAPF32[i4 + 32 >> 2];
25231 i22 = i2 + 32 | 0;
25232 d23 = +HEAPF32[i22 >> 2];
25233 d24 = d16 * d17 + d18 * d20 + d21 * d23;
25234 i25 = i2 + 4 | 0;
25235 d26 = +HEAPF32[i25 >> 2];
25236 i27 = i2 + 20 | 0;
25237 d28 = +HEAPF32[i27 >> 2];
25238 i29 = i2 + 36 | 0;
25239 d30 = +HEAPF32[i29 >> 2];
25240 d31 = d16 * d26 + d18 * d28 + d21 * d30;
25241 i32 = i2 + 8 | 0;
25242 d33 = +HEAPF32[i32 >> 2];
25243 i34 = i2 + 24 | 0;
25244 d35 = +HEAPF32[i34 >> 2];
25245 i36 = i2 + 40 | 0;
25246 d37 = +HEAPF32[i36 >> 2];
25247 d38 = d16 * d33 + d18 * d35 + d21 * d37;
25248 d21 = +HEAPF32[i4 + 4 >> 2];
25249 d18 = +HEAPF32[i4 + 20 >> 2];
25250 d16 = +HEAPF32[i4 + 36 >> 2];
25251 d39 = d17 * d21 + d20 * d18 + d23 * d16;
25252 d40 = d26 * d21 + d28 * d18 + d30 * d16;
25253 d41 = d33 * d21 + d35 * d18 + d37 * d16;
25254 d16 = +HEAPF32[i4 + 8 >> 2];
25255 d18 = +HEAPF32[i4 + 24 >> 2];
25256 d21 = +HEAPF32[i4 + 40 >> 2];
25257 d42 = d17 * d16 + d20 * d18 + d23 * d21;
25258 d43 = d26 * d16 + d28 * d18 + d30 * d21;
25259 d44 = d33 * d16 + d35 * d18 + d37 * d21;
25260 i45 = i10 + 8 | 0;
25261 HEAPF32[i45 >> 2] = d24;
25262 i46 = i10 + 12 | 0;
25263 HEAPF32[i46 >> 2] = d31;
25264 i47 = i10 + 16 | 0;
25265 HEAPF32[i47 >> 2] = d38;
25266 HEAPF32[i10 + 20 >> 2] = 0.0;
25267 i48 = i10 + 24 | 0;
25268 HEAPF32[i48 >> 2] = d39;
25269 i49 = i10 + 28 | 0;
25270 HEAPF32[i49 >> 2] = d40;
25271 i50 = i10 + 32 | 0;
25272 HEAPF32[i50 >> 2] = d41;
25273 HEAPF32[i10 + 36 >> 2] = 0.0;
25274 i51 = i10 + 40 | 0;
25275 HEAPF32[i51 >> 2] = d42;
25276 i52 = i10 + 44 | 0;
25277 HEAPF32[i52 >> 2] = d43;
25278 i53 = i10 + 48 | 0;
25279 HEAPF32[i53 >> 2] = d44;
25280 HEAPF32[i10 + 52 >> 2] = 0.0;
25281 i54 = i2 + 48 | 0;
25282 d21 = +HEAPF32[i4 + 48 >> 2] - +HEAPF32[i54 >> 2];
25283 i55 = i2 + 52 | 0;
25284 d18 = +HEAPF32[i4 + 52 >> 2] - +HEAPF32[i55 >> 2];
25285 i56 = i2 + 56 | 0;
25286 d16 = +HEAPF32[i4 + 56 >> 2] - +HEAPF32[i56 >> 2];
25287 i4 = i10 + 56 | 0;
25288 HEAPF32[i4 >> 2] = d24;
25289 i2 = i10 + 60 | 0;
25290 HEAPF32[i2 >> 2] = d39;
25291 i57 = i10 + 64 | 0;
25292 HEAPF32[i57 >> 2] = d42;
25293 HEAPF32[i10 + 68 >> 2] = 0.0;
25294 i58 = i10 + 72 | 0;
25295 HEAPF32[i58 >> 2] = d31;
25296 i59 = i10 + 76 | 0;
25297 HEAPF32[i59 >> 2] = d40;
25298 i60 = i10 + 80 | 0;
25299 HEAPF32[i60 >> 2] = d43;
25300 HEAPF32[i10 + 84 >> 2] = 0.0;
25301 i61 = i10 + 88 | 0;
25302 HEAPF32[i61 >> 2] = d38;
25303 i62 = i10 + 92 | 0;
25304 HEAPF32[i62 >> 2] = d41;
25305 i63 = i10 + 96 | 0;
25306 HEAPF32[i63 >> 2] = d44;
25307 HEAPF32[i10 + 100 >> 2] = 0.0;
25308 i64 = i10 + 104 | 0;
25309 HEAPF32[i64 >> 2] = d17 * d21 + d20 * d18 + d23 * d16;
25310 i65 = i10 + 108 | 0;
25311 HEAPF32[i65 >> 2] = d26 * d21 + d28 * d18 + d30 * d16;
25312 i66 = i10 + 112 | 0;
25313 HEAPF32[i66 >> 2] = d33 * d21 + d35 * d18 + d37 * d16;
25314 HEAPF32[i10 + 116 >> 2] = 0.0;
25315 i67 = i10 + 120 | 0;
25316 HEAP32[i67 >> 2] = 82;
25317 i68 = i10 + 124 | 0;
25318 HEAP32[i68 >> 2] = 0;
25319 HEAP32[i11 + 364 >> 2] = 0;
25320 _memset(i11 + 128 | 0, 0, 16);
25321 HEAP32[i11 + 376 >> 2] = 2;
25322 HEAP32[i11 + 368 >> 2] = 0;
25323 HEAPF32[i11 + 144 >> 2] = 0.0;
25324 i69 = __ZN12gjkepa2_impl3GJK8EvaluateERKNS_13MinkowskiDiffERK9btVector3(i11, i10, i5) | 0;
25325 if ((i69 | 0) != 0) {
25326 HEAP32[i13 >> 2] = (i69 | 0) == 1 ? 1 : 2;
25327 i70 = 0;
25328 STACKTOP = i7;
25329 return i70 | 0;
25330 }
25331 i69 = i11 + 372 | 0;
25332 i11 = HEAP32[i69 >> 2] | 0;
25333 if ((HEAP32[i11 + 32 >> 2] | 0) == 0) {
25334 d71 = 0.0;
25335 d72 = 0.0;
25336 d73 = 0.0;
25337 d74 = 0.0;
25338 d75 = 0.0;
25339 d76 = 0.0;
25340 } else {
25341 i13 = i12 | 0;
25342 i5 = i12 + 4 | 0;
25343 i10 = i12 + 8 | 0;
25344 i77 = i9 | 0;
25345 i78 = i9 + 4 | 0;
25346 i79 = i9 + 8 | 0;
25347 i80 = i9 + 12 | 0;
25348 i81 = i8 | 0;
25349 i82 = i8 + 4 | 0;
25350 i83 = i8 + 8 | 0;
25351 d16 = 0.0;
25352 d37 = 0.0;
25353 d18 = 0.0;
25354 d35 = 0.0;
25355 d21 = 0.0;
25356 d33 = 0.0;
25357 i84 = 0;
25358 i85 = i11;
25359 while (1) {
25360 d30 = +HEAPF32[i85 + 16 + (i84 << 2) >> 2];
25361 i11 = HEAP32[i67 >> 2] | 0;
25362 i86 = (HEAP32[i15 >> 2] | 0) + (HEAP32[i68 >> 2] | 0) | 0;
25363 if ((i11 & 1 | 0) == 0) {
25364 i87 = i11;
25365 } else {
25366 i87 = HEAP32[(HEAP32[i86 >> 2] | 0) + (i11 - 1) >> 2] | 0;
25367 }
25368 FUNCTION_TABLE_viii[i87 & 127](i12, i86, HEAP32[i85 + (i84 << 2) >> 2] | 0);
25369 d28 = d18 + d30 * +HEAPF32[i13 >> 2];
25370 d26 = d37 + d30 * +HEAPF32[i5 >> 2];
25371 d23 = d16 + d30 * +HEAPF32[i10 >> 2];
25372 i86 = HEAP32[(HEAP32[i69 >> 2] | 0) + (i84 << 2) >> 2] | 0;
25373 d20 = -0.0 - +HEAPF32[i86 >> 2];
25374 d17 = -0.0 - +HEAPF32[i86 + 4 >> 2];
25375 d44 = -0.0 - +HEAPF32[i86 + 8 >> 2];
25376 i86 = HEAP32[i67 >> 2] | 0;
25377 i11 = (HEAP32[i1 >> 2] | 0) + (HEAP32[i68 >> 2] | 0) | 0;
25378 if ((i86 & 1 | 0) == 0) {
25379 i88 = i86;
25380 } else {
25381 i88 = HEAP32[(HEAP32[i11 >> 2] | 0) + (i86 - 1) >> 2] | 0;
25382 }
25383 d41 = +HEAPF32[i48 >> 2] * d20 + +HEAPF32[i49 >> 2] * d17 + +HEAPF32[i50 >> 2] * d44;
25384 d38 = +HEAPF32[i51 >> 2] * d20 + +HEAPF32[i52 >> 2] * d17 + +HEAPF32[i53 >> 2] * d44;
25385 HEAPF32[i77 >> 2] = +HEAPF32[i45 >> 2] * d20 + +HEAPF32[i46 >> 2] * d17 + +HEAPF32[i47 >> 2] * d44;
25386 HEAPF32[i78 >> 2] = d41;
25387 HEAPF32[i79 >> 2] = d38;
25388 HEAPF32[i80 >> 2] = 0.0;
25389 FUNCTION_TABLE_viii[i88 & 127](i8, i11, i9);
25390 d38 = +HEAPF32[i81 >> 2];
25391 d41 = +HEAPF32[i82 >> 2];
25392 d44 = +HEAPF32[i83 >> 2];
25393 d17 = d33 + d30 * (+HEAPF32[i64 >> 2] + (+HEAPF32[i4 >> 2] * d38 + +HEAPF32[i2 >> 2] * d41 + +HEAPF32[i57 >> 2] * d44));
25394 d20 = d21 + d30 * (+HEAPF32[i65 >> 2] + (d38 * +HEAPF32[i58 >> 2] + d41 * +HEAPF32[i59 >> 2] + d44 * +HEAPF32[i60 >> 2]));
25395 d43 = d35 + d30 * (+HEAPF32[i66 >> 2] + (d38 * +HEAPF32[i61 >> 2] + d41 * +HEAPF32[i62 >> 2] + d44 * +HEAPF32[i63 >> 2]));
25396 i11 = i84 + 1 | 0;
25397 i86 = HEAP32[i69 >> 2] | 0;
25398 if (i11 >>> 0 < (HEAP32[i86 + 32 >> 2] | 0) >>> 0) {
25399 d16 = d23;
25400 d37 = d26;
25401 d18 = d28;
25402 d35 = d43;
25403 d21 = d20;
25404 d33 = d17;
25405 i84 = i11;
25406 i85 = i86;
25407 } else {
25408 d71 = d23;
25409 d72 = d26;
25410 d73 = d28;
25411 d74 = d43;
25412 d75 = d20;
25413 d76 = d17;
25414 break;
25415 }
25416 }
25417 }
25418 d33 = +HEAPF32[i55 >> 2] + (d73 * +HEAPF32[i19 >> 2] + d72 * +HEAPF32[i27 >> 2] + d71 * +HEAPF32[i34 >> 2]);
25419 d21 = +HEAPF32[i56 >> 2] + (d73 * +HEAPF32[i22 >> 2] + d72 * +HEAPF32[i29 >> 2] + d71 * +HEAPF32[i36 >> 2]);
25420 HEAPF32[i6 + 4 >> 2] = +HEAPF32[i54 >> 2] + (d73 * +HEAPF32[i3 >> 2] + d72 * +HEAPF32[i25 >> 2] + d71 * +HEAPF32[i32 >> 2]);
25421 HEAPF32[i6 + 8 >> 2] = d33;
25422 HEAPF32[i6 + 12 >> 2] = d21;
25423 HEAPF32[i6 + 16 >> 2] = 0.0;
25424 d21 = +HEAPF32[i55 >> 2] + (d76 * +HEAPF32[i19 >> 2] + d75 * +HEAPF32[i27 >> 2] + d74 * +HEAPF32[i34 >> 2]);
25425 d33 = +HEAPF32[i56 >> 2] + (d76 * +HEAPF32[i22 >> 2] + d75 * +HEAPF32[i29 >> 2] + d74 * +HEAPF32[i36 >> 2]);
25426 HEAPF32[i14 >> 2] = +HEAPF32[i54 >> 2] + (d76 * +HEAPF32[i3 >> 2] + d75 * +HEAPF32[i25 >> 2] + d74 * +HEAPF32[i32 >> 2]);
25427 HEAPF32[i6 + 24 >> 2] = d21;
25428 HEAPF32[i6 + 28 >> 2] = d33;
25429 HEAPF32[i6 + 32 >> 2] = 0.0;
25430 d33 = d73 - d76;
25431 d76 = d72 - d75;
25432 d75 = d71 - d74;
25433 HEAPF32[i6 + 48 >> 2] = 0.0;
25434 d74 = +Math_sqrt(+(d33 * d33 + d76 * d76 + d75 * d75));
25435 HEAPF32[i6 + 52 >> 2] = d74;
25436 d71 = 1.0 / (d74 > 9999999747378752.0e-20 ? d74 : 1.0);
25437 HEAPF32[i6 + 36 >> 2] = d33 * d71;
25438 HEAPF32[i6 + 40 >> 2] = d76 * d71;
25439 HEAPF32[i6 + 44 >> 2] = d75 * d71;
25440 i70 = 1;
25441 STACKTOP = i7;
25442 return i70 | 0;
25443 }
25444 function __ZN27btPolyhedralContactClipping18findSeparatingAxisERK18btConvexPolyhedronS2_RK11btTransformS5_R9btVector3(i1, i2, i3, i4, i5) {
25445 i1 = i1 | 0;
25446 i2 = i2 | 0;
25447 i3 = i3 | 0;
25448 i4 = i4 | 0;
25449 i5 = i5 | 0;
25450 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, d30 = 0.0, i31 = 0, i32 = 0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, i38 = 0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, d54 = 0.0, d55 = 0.0, i56 = 0, d57 = 0.0, i58 = 0, d59 = 0.0, i60 = 0, i61 = 0;
25451 i6 = STACKTOP;
25452 STACKTOP = STACKTOP + 72 | 0;
25453 i7 = i6 | 0;
25454 i8 = i6 + 16 | 0;
25455 i9 = i6 + 24 | 0;
25456 i10 = i6 + 40 | 0;
25457 i11 = i6 + 48 | 0;
25458 i12 = i6 + 64 | 0;
25459 HEAP32[3576] = (HEAP32[3576] | 0) + 1;
25460 i13 = HEAP32[i1 + 28 >> 2] | 0;
25461 L433 : do {
25462 if ((i13 | 0) > 0) {
25463 i14 = i1 + 36 | 0;
25464 i15 = i3 | 0;
25465 i16 = i3 + 4 | 0;
25466 i17 = i3 + 8 | 0;
25467 i18 = i3 + 16 | 0;
25468 i19 = i3 + 20 | 0;
25469 i20 = i3 + 24 | 0;
25470 i21 = i3 + 32 | 0;
25471 i22 = i3 + 36 | 0;
25472 i23 = i3 + 40 | 0;
25473 i24 = i7 | 0;
25474 i25 = i7 + 4 | 0;
25475 i26 = i7 + 8 | 0;
25476 i27 = i7 + 12 | 0;
25477 i28 = i5;
25478 i29 = i7;
25479 d30 = 3.4028234663852886e+38;
25480 i31 = 0;
25481 while (1) {
25482 i32 = HEAP32[i14 >> 2] | 0;
25483 d33 = +HEAPF32[i32 + (i31 * 56 | 0) + 40 >> 2];
25484 d34 = +HEAPF32[i32 + (i31 * 56 | 0) + 44 >> 2];
25485 d35 = +HEAPF32[i32 + (i31 * 56 | 0) + 48 >> 2];
25486 d36 = d33 * +HEAPF32[i18 >> 2] + d34 * +HEAPF32[i19 >> 2] + d35 * +HEAPF32[i20 >> 2];
25487 d37 = d33 * +HEAPF32[i21 >> 2] + d34 * +HEAPF32[i22 >> 2] + d35 * +HEAPF32[i23 >> 2];
25488 HEAPF32[i24 >> 2] = d33 * +HEAPF32[i15 >> 2] + d34 * +HEAPF32[i16 >> 2] + d35 * +HEAPF32[i17 >> 2];
25489 HEAPF32[i25 >> 2] = d36;
25490 HEAPF32[i26 >> 2] = d37;
25491 HEAPF32[i27 >> 2] = 0.0;
25492 if (!(__ZL11TestSepAxisRK18btConvexPolyhedronS1_RK11btTransformS4_RK9btVector3Rf(i1, i2, i3, i4, i7, i8) | 0)) {
25493 i38 = 0;
25494 break;
25495 }
25496 d37 = +HEAPF32[i8 >> 2];
25497 if (d37 < d30) {
25498 HEAP32[i28 >> 2] = HEAP32[i29 >> 2];
25499 HEAP32[i28 + 4 >> 2] = HEAP32[i29 + 4 >> 2];
25500 HEAP32[i28 + 8 >> 2] = HEAP32[i29 + 8 >> 2];
25501 HEAP32[i28 + 12 >> 2] = HEAP32[i29 + 12 >> 2];
25502 d39 = d37;
25503 } else {
25504 d39 = d30;
25505 }
25506 i32 = i31 + 1 | 0;
25507 if ((i32 | 0) < (i13 | 0)) {
25508 d30 = d39;
25509 i31 = i32;
25510 } else {
25511 d40 = d39;
25512 break L433;
25513 }
25514 }
25515 STACKTOP = i6;
25516 return i38 | 0;
25517 } else {
25518 d40 = 3.4028234663852886e+38;
25519 }
25520 } while (0);
25521 i13 = HEAP32[i2 + 28 >> 2] | 0;
25522 L443 : do {
25523 if ((i13 | 0) > 0) {
25524 i8 = i2 + 36 | 0;
25525 i7 = i4 | 0;
25526 i31 = i4 + 4 | 0;
25527 i29 = i4 + 8 | 0;
25528 i28 = i4 + 16 | 0;
25529 i27 = i4 + 20 | 0;
25530 i26 = i4 + 24 | 0;
25531 i25 = i4 + 32 | 0;
25532 i17 = i4 + 36 | 0;
25533 i16 = i4 + 40 | 0;
25534 i15 = i9 | 0;
25535 i24 = i9 + 4 | 0;
25536 i23 = i9 + 8 | 0;
25537 i22 = i9 + 12 | 0;
25538 i21 = i5;
25539 i20 = i9;
25540 d39 = d40;
25541 i19 = 0;
25542 while (1) {
25543 i18 = HEAP32[i8 >> 2] | 0;
25544 d30 = +HEAPF32[i18 + (i19 * 56 | 0) + 40 >> 2];
25545 d37 = +HEAPF32[i18 + (i19 * 56 | 0) + 44 >> 2];
25546 d36 = +HEAPF32[i18 + (i19 * 56 | 0) + 48 >> 2];
25547 d35 = d30 * +HEAPF32[i28 >> 2] + d37 * +HEAPF32[i27 >> 2] + d36 * +HEAPF32[i26 >> 2];
25548 d34 = d30 * +HEAPF32[i25 >> 2] + d37 * +HEAPF32[i17 >> 2] + d36 * +HEAPF32[i16 >> 2];
25549 HEAPF32[i15 >> 2] = d30 * +HEAPF32[i7 >> 2] + d37 * +HEAPF32[i31 >> 2] + d36 * +HEAPF32[i29 >> 2];
25550 HEAPF32[i24 >> 2] = d35;
25551 HEAPF32[i23 >> 2] = d34;
25552 HEAPF32[i22 >> 2] = 0.0;
25553 if (!(__ZL11TestSepAxisRK18btConvexPolyhedronS1_RK11btTransformS4_RK9btVector3Rf(i1, i2, i3, i4, i9, i10) | 0)) {
25554 i38 = 0;
25555 break;
25556 }
25557 d34 = +HEAPF32[i10 >> 2];
25558 if (d34 < d39) {
25559 HEAP32[i21 >> 2] = HEAP32[i20 >> 2];
25560 HEAP32[i21 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
25561 HEAP32[i21 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
25562 HEAP32[i21 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
25563 d41 = d34;
25564 } else {
25565 d41 = d39;
25566 }
25567 i18 = i19 + 1 | 0;
25568 if ((i18 | 0) < (i13 | 0)) {
25569 d39 = d41;
25570 i19 = i18;
25571 } else {
25572 d42 = d41;
25573 break L443;
25574 }
25575 }
25576 STACKTOP = i6;
25577 return i38 | 0;
25578 } else {
25579 d42 = d40;
25580 }
25581 } while (0);
25582 i13 = i1 + 48 | 0;
25583 i10 = HEAP32[i13 >> 2] | 0;
25584 L453 : do {
25585 if ((i10 | 0) > 0) {
25586 i9 = i1 + 56 | 0;
25587 i19 = i3 | 0;
25588 i20 = i3 + 4 | 0;
25589 i21 = i3 + 8 | 0;
25590 i22 = i3 + 16 | 0;
25591 i23 = i3 + 20 | 0;
25592 i24 = i3 + 24 | 0;
25593 i29 = i3 + 32 | 0;
25594 i31 = i3 + 36 | 0;
25595 i7 = i3 + 40 | 0;
25596 i15 = i2 + 48 | 0;
25597 i16 = i2 + 56 | 0;
25598 i17 = i4 | 0;
25599 i25 = i4 + 4 | 0;
25600 i26 = i4 + 8 | 0;
25601 i27 = i4 + 16 | 0;
25602 i28 = i4 + 20 | 0;
25603 i8 = i4 + 24 | 0;
25604 i18 = i4 + 32 | 0;
25605 i14 = i4 + 36 | 0;
25606 i32 = i4 + 40 | 0;
25607 i43 = i11 | 0;
25608 i44 = i11 + 4 | 0;
25609 i45 = i11 + 8 | 0;
25610 i46 = i11 + 12 | 0;
25611 i47 = i11;
25612 i48 = i5;
25613 d40 = d42;
25614 i49 = 0;
25615 i50 = HEAP32[i15 >> 2] | 0;
25616 i51 = i10;
25617 L455 : while (1) {
25618 i52 = HEAP32[i9 >> 2] | 0;
25619 d41 = +HEAPF32[i52 + (i49 << 4) >> 2];
25620 d39 = +HEAPF32[i52 + (i49 << 4) + 4 >> 2];
25621 d34 = +HEAPF32[i52 + (i49 << 4) + 8 >> 2];
25622 d35 = d41 * +HEAPF32[i19 >> 2] + d39 * +HEAPF32[i20 >> 2] + d34 * +HEAPF32[i21 >> 2];
25623 d36 = d41 * +HEAPF32[i22 >> 2] + d39 * +HEAPF32[i23 >> 2] + d34 * +HEAPF32[i24 >> 2];
25624 d37 = d41 * +HEAPF32[i29 >> 2] + d39 * +HEAPF32[i31 >> 2] + d34 * +HEAPF32[i7 >> 2];
25625 if ((i50 | 0) > 0) {
25626 d34 = d40;
25627 i52 = 0;
25628 while (1) {
25629 i53 = HEAP32[i16 >> 2] | 0;
25630 d39 = +HEAPF32[i53 + (i52 << 4) >> 2];
25631 d41 = +HEAPF32[i53 + (i52 << 4) + 4 >> 2];
25632 d30 = +HEAPF32[i53 + (i52 << 4) + 8 >> 2];
25633 d33 = d39 * +HEAPF32[i17 >> 2] + d41 * +HEAPF32[i25 >> 2] + d30 * +HEAPF32[i26 >> 2];
25634 d54 = d39 * +HEAPF32[i27 >> 2] + d41 * +HEAPF32[i28 >> 2] + d30 * +HEAPF32[i8 >> 2];
25635 d55 = d39 * +HEAPF32[i18 >> 2] + d41 * +HEAPF32[i14 >> 2] + d30 * +HEAPF32[i32 >> 2];
25636 d30 = d36 * d55 - d37 * d54;
25637 d41 = d37 * d33 - d35 * d55;
25638 d55 = d35 * d54 - d36 * d33;
25639 HEAPF32[i43 >> 2] = d30;
25640 HEAPF32[i44 >> 2] = d41;
25641 HEAPF32[i45 >> 2] = d55;
25642 HEAPF32[i46 >> 2] = 0.0;
25643 do {
25644 if (+Math_abs(+d30) > 1.0e-6) {
25645 i56 = 339;
25646 } else {
25647 if (+Math_abs(+d41) > 1.0e-6) {
25648 i56 = 339;
25649 break;
25650 }
25651 if (+Math_abs(+d55) > 1.0e-6) {
25652 i56 = 339;
25653 } else {
25654 d57 = d34;
25655 }
25656 }
25657 } while (0);
25658 do {
25659 if ((i56 | 0) == 339) {
25660 i56 = 0;
25661 d33 = 1.0 / +Math_sqrt(+(d55 * d55 + (d30 * d30 + d41 * d41)));
25662 HEAPF32[i43 >> 2] = d30 * d33;
25663 HEAPF32[i44 >> 2] = d41 * d33;
25664 HEAPF32[i45 >> 2] = d55 * d33;
25665 if (!(__ZL11TestSepAxisRK18btConvexPolyhedronS1_RK11btTransformS4_RK9btVector3Rf(i1, i2, i3, i4, i11, i12) | 0)) {
25666 i38 = 0;
25667 break L455;
25668 }
25669 d33 = +HEAPF32[i12 >> 2];
25670 if (d33 >= d34) {
25671 d57 = d34;
25672 break;
25673 }
25674 HEAP32[i48 >> 2] = HEAP32[i47 >> 2];
25675 HEAP32[i48 + 4 >> 2] = HEAP32[i47 + 4 >> 2];
25676 HEAP32[i48 + 8 >> 2] = HEAP32[i47 + 8 >> 2];
25677 HEAP32[i48 + 12 >> 2] = HEAP32[i47 + 12 >> 2];
25678 d57 = d33;
25679 }
25680 } while (0);
25681 i53 = i52 + 1 | 0;
25682 i58 = HEAP32[i15 >> 2] | 0;
25683 if ((i53 | 0) < (i58 | 0)) {
25684 d34 = d57;
25685 i52 = i53;
25686 } else {
25687 break;
25688 }
25689 }
25690 d59 = d57;
25691 i60 = i58;
25692 i61 = HEAP32[i13 >> 2] | 0;
25693 } else {
25694 d59 = d40;
25695 i60 = i50;
25696 i61 = i51;
25697 }
25698 i52 = i49 + 1 | 0;
25699 if ((i52 | 0) < (i61 | 0)) {
25700 d40 = d59;
25701 i49 = i52;
25702 i50 = i60;
25703 i51 = i61;
25704 } else {
25705 break L453;
25706 }
25707 }
25708 STACKTOP = i6;
25709 return i38 | 0;
25710 }
25711 } while (0);
25712 i61 = i5 | 0;
25713 d59 = +HEAPF32[i61 >> 2];
25714 i60 = i5 + 4 | 0;
25715 d57 = +HEAPF32[i60 >> 2];
25716 i13 = i5 + 8 | 0;
25717 d42 = +HEAPF32[i13 >> 2];
25718 if ((+HEAPF32[i4 + 48 >> 2] - +HEAPF32[i3 + 48 >> 2]) * d59 + (+HEAPF32[i4 + 52 >> 2] - +HEAPF32[i3 + 52 >> 2]) * d57 + (+HEAPF32[i4 + 56 >> 2] - +HEAPF32[i3 + 56 >> 2]) * d42 <= 0.0) {
25719 i38 = 1;
25720 STACKTOP = i6;
25721 return i38 | 0;
25722 }
25723 HEAPF32[i61 >> 2] = -0.0 - d59;
25724 HEAPF32[i60 >> 2] = -0.0 - d57;
25725 HEAPF32[i13 >> 2] = -0.0 - d42;
25726 HEAPF32[i5 + 12 >> 2] = 0.0;
25727 i38 = 1;
25728 STACKTOP = i6;
25729 return i38 | 0;
25730 }
25731 function runPostSets() {
25732 HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE + 8 >> 2] = 6;
25733 HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE + 12 >> 2] = 192;
25734 HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE + 16 >> 2] = 74;
25735 HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE + 20 >> 2] = 214;
25736 HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE + 24 >> 2] = 4;
25737 HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE + 28 >> 2] = 4;
25738 HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE + 32 >> 2] = 10;
25739 HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE + 36 >> 2] = 22;
25740 HEAP32[__ZTVN10__cxxabiv117__class_type_infoE + 8 >> 2] = 6;
25741 HEAP32[__ZTVN10__cxxabiv117__class_type_infoE + 12 >> 2] = 348;
25742 HEAP32[__ZTVN10__cxxabiv117__class_type_infoE + 16 >> 2] = 74;
25743 HEAP32[__ZTVN10__cxxabiv117__class_type_infoE + 20 >> 2] = 214;
25744 HEAP32[__ZTVN10__cxxabiv117__class_type_infoE + 24 >> 2] = 4;
25745 HEAP32[__ZTVN10__cxxabiv117__class_type_infoE + 28 >> 2] = 10;
25746 HEAP32[__ZTVN10__cxxabiv117__class_type_infoE + 32 >> 2] = 8;
25747 HEAP32[__ZTVN10__cxxabiv117__class_type_infoE + 36 >> 2] = 42;
25748 HEAP32[2584] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25749 HEAP32[2588] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25750 HEAP32[2592] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25751 HEAP32[2596] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25752 HEAP32[2600] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25753 HEAP32[2604] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25754 HEAP32[2608] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25755 HEAP32[2612] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25756 HEAP32[2616] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25757 HEAP32[2620] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25758 HEAP32[2624] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25759 HEAP32[2628] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25760 HEAP32[2632] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25761 HEAP32[2636] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25762 HEAP32[2640] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25763 HEAP32[2644] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25764 HEAP32[2646] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25765 HEAP32[2648] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25766 HEAP32[2652] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25767 HEAP32[2654] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25768 HEAP32[2656] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25769 HEAP32[2660] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25770 HEAP32[2664] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25771 HEAP32[2668] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25772 HEAP32[2672] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25773 HEAP32[2676] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25774 HEAP32[2680] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25775 HEAP32[2684] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25776 HEAP32[2688] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25777 HEAP32[2690] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25778 HEAP32[2694] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25779 HEAP32[2698] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25780 HEAP32[2702] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25781 HEAP32[2704] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25782 HEAP32[2706] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25783 HEAP32[2708] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25784 HEAP32[2712] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25785 HEAP32[2716] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25786 HEAP32[2720] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25787 HEAP32[2724] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25788 HEAP32[2726] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25789 HEAP32[2730] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25790 HEAP32[2734] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25791 HEAP32[2738] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25792 HEAP32[2742] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25793 HEAP32[2746] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25794 HEAP32[2750] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25795 HEAP32[2752] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25796 HEAP32[2756] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25797 HEAP32[2760] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25798 HEAP32[2764] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25799 HEAP32[2766] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25800 HEAP32[2768] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25801 HEAP32[2772] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25802 HEAP32[2776] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25803 HEAP32[2780] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25804 HEAP32[2784] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25805 HEAP32[2788] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25806 HEAP32[2792] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25807 HEAP32[2796] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25808 HEAP32[2798] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25809 HEAP32[2800] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25810 HEAP32[2804] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25811 HEAP32[2808] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25812 HEAP32[2810] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25813 HEAP32[2812] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25814 HEAP32[2816] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25815 HEAP32[2820] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25816 HEAP32[2824] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25817 HEAP32[2828] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25818 HEAP32[2832] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25819 HEAP32[2836] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25820 HEAP32[2840] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25821 HEAP32[2844] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25822 HEAP32[2848] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25823 HEAP32[2852] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25824 HEAP32[2854] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25825 HEAP32[2858] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25826 HEAP32[2862] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25827 HEAP32[2864] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25828 HEAP32[2868] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25829 HEAP32[2870] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25830 HEAP32[2874] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25831 HEAP32[2878] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25832 HEAP32[2882] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25833 HEAP32[2884] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25834 HEAP32[2888] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25835 HEAP32[2890] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25836 HEAP32[2892] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25837 HEAP32[2894] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25838 HEAP32[2898] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25839 HEAP32[2908] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25840 HEAP32[2912] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25841 HEAP32[2916] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25842 HEAP32[2920] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25843 HEAP32[2924] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25844 HEAP32[2926] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25845 HEAP32[2928] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25846 HEAP32[2932] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25847 HEAP32[2936] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25848 HEAP32[2940] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25849 HEAP32[2944] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25850 HEAP32[2948] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25851 HEAP32[2950] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25852 HEAP32[2954] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25853 HEAP32[2956] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
25854 HEAP32[2958] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25855 HEAP32[2962] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
25856 }
25857 function __ZN27btPolyhedralContactClipping19clipFaceAgainstHullERK9btVector3RK18btConvexPolyhedronRK11btTransformR20btAlignedObjectArrayIS0_EffRN36btDiscreteCollisionDetectorInterface6ResultE(i1, i2, i3, i4, d5, d6, i7) {
25858 i1 = i1 | 0;
25859 i2 = i2 | 0;
25860 i3 = i3 | 0;
25861 i4 = i4 | 0;
25862 d5 = +d5;
25863 d6 = +d6;
25864 i7 = i7 | 0;
25865 var i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, d20 = 0.0, i21 = 0, d22 = 0.0, i23 = 0, d24 = 0.0, i25 = 0, d26 = 0.0, i27 = 0, d28 = 0.0, i29 = 0, d30 = 0.0, i31 = 0, d32 = 0.0, i33 = 0, d34 = 0.0, i35 = 0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, i40 = 0, d41 = 0.0, i42 = 0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, d61 = 0.0, i62 = 0, d63 = 0.0, d64 = 0.0, d65 = 0.0, d66 = 0.0, d67 = 0.0, d68 = 0.0, d69 = 0.0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, d80 = 0.0, d81 = 0.0, d82 = 0.0, d83 = 0.0, d84 = 0.0, d85 = 0.0, d86 = 0.0, d87 = 0.0, d88 = 0.0, i89 = 0;
25866 i8 = STACKTOP;
25867 STACKTOP = STACKTOP + 72 | 0;
25868 i9 = i8 | 0;
25869 i10 = i8 + 24 | 0;
25870 i11 = i8 + 40 | 0;
25871 i12 = i8 + 56 | 0;
25872 i13 = i9 + 16 | 0;
25873 HEAP8[i13] = 1;
25874 i14 = i9 + 12 | 0;
25875 HEAP32[i14 >> 2] = 0;
25876 HEAP32[i9 + 4 >> 2] = 0;
25877 i15 = i9 + 8 | 0;
25878 HEAP32[i15 >> 2] = 0;
25879 i16 = HEAP32[i4 + 4 >> 2] | 0;
25880 if ((i16 | 0) > 0) {
25881 i17 = __Z22btAlignedAllocInternalji(i16 << 4, 16) | 0;
25882 HEAP8[i13] = 1;
25883 HEAP32[i14 >> 2] = i17;
25884 HEAP32[i15 >> 2] = i16;
25885 i18 = i17;
25886 } else {
25887 i18 = 0;
25888 }
25889 i17 = HEAP32[i2 + 28 >> 2] | 0;
25890 do {
25891 if ((i17 | 0) > 0) {
25892 i16 = i2 + 36 | 0;
25893 i15 = HEAP32[i16 >> 2] | 0;
25894 i19 = i3 | 0;
25895 d20 = +HEAPF32[i19 >> 2];
25896 i21 = i3 + 4 | 0;
25897 d22 = +HEAPF32[i21 >> 2];
25898 i23 = i3 + 8 | 0;
25899 d24 = +HEAPF32[i23 >> 2];
25900 i25 = i3 + 16 | 0;
25901 d26 = +HEAPF32[i25 >> 2];
25902 i27 = i3 + 20 | 0;
25903 d28 = +HEAPF32[i27 >> 2];
25904 i29 = i3 + 24 | 0;
25905 d30 = +HEAPF32[i29 >> 2];
25906 i31 = i3 + 32 | 0;
25907 d32 = +HEAPF32[i31 >> 2];
25908 i33 = i3 + 36 | 0;
25909 d34 = +HEAPF32[i33 >> 2];
25910 i35 = i3 + 40 | 0;
25911 d36 = +HEAPF32[i35 >> 2];
25912 d37 = +HEAPF32[i1 >> 2];
25913 d38 = +HEAPF32[i1 + 4 >> 2];
25914 d39 = +HEAPF32[i1 + 8 >> 2];
25915 i40 = 0;
25916 d41 = 3.4028234663852886e+38;
25917 i42 = -1;
25918 while (1) {
25919 d43 = +HEAPF32[i15 + (i40 * 56 | 0) + 40 >> 2];
25920 d44 = +HEAPF32[i15 + (i40 * 56 | 0) + 44 >> 2];
25921 d45 = +HEAPF32[i15 + (i40 * 56 | 0) + 48 >> 2];
25922 d46 = d39 * (d32 * d43 + d34 * d44 + d36 * d45) + (d37 * (d20 * d43 + d22 * d44 + d24 * d45) + d38 * (d26 * d43 + d28 * d44 + d30 * d45));
25923 i47 = d46 < d41;
25924 i48 = i47 ? i40 : i42;
25925 i49 = i40 + 1 | 0;
25926 if ((i49 | 0) < (i17 | 0)) {
25927 i40 = i49;
25928 d41 = i47 ? d46 : d41;
25929 i42 = i48;
25930 } else {
25931 break;
25932 }
25933 }
25934 if ((i48 | 0) < 0) {
25935 i50 = i18;
25936 break;
25937 }
25938 i42 = HEAP32[i15 + (i48 * 56 | 0) + 4 >> 2] | 0;
25939 if ((i42 | 0) > 0) {
25940 i40 = i15 + (i48 * 56 | 0) + 32 | 0;
25941 i47 = i10 | 0;
25942 i49 = i10 + 4 | 0;
25943 i51 = i10 + 8 | 0;
25944 i52 = i10 + 12 | 0;
25945 i53 = i3 + 48 | 0;
25946 i54 = i3 + 52 | 0;
25947 i55 = i3 + 56 | 0;
25948 i56 = i11;
25949 i57 = i4;
25950 i58 = i9;
25951 i59 = 0;
25952 i60 = i15;
25953 d41 = d20;
25954 d38 = d22;
25955 d37 = d24;
25956 d39 = d26;
25957 d46 = d28;
25958 d45 = d30;
25959 d44 = d32;
25960 d43 = d34;
25961 d61 = d36;
25962 while (1) {
25963 i62 = HEAP32[(HEAP32[i40 >> 2] | 0) + (i59 << 2) >> 2] | 0;
25964 d63 = +HEAPF32[i60 + (i62 * 56 | 0) + 40 >> 2];
25965 d64 = +HEAPF32[i60 + (i62 * 56 | 0) + 44 >> 2];
25966 d65 = +HEAPF32[i60 + (i62 * 56 | 0) + 48 >> 2];
25967 d66 = +HEAPF32[i60 + (i62 * 56 | 0) + 52 >> 2];
25968 d67 = d63 * d41 + d64 * d38 + d65 * d37;
25969 d68 = d63 * d39 + d64 * d46 + d65 * d45;
25970 d69 = d63 * d44 + d64 * d43 + d65 * d61;
25971 HEAPF32[i47 >> 2] = d67;
25972 HEAPF32[i49 >> 2] = d68;
25973 HEAPF32[i51 >> 2] = d69;
25974 HEAPF32[i52 >> 2] = 0.0;
25975 __ZN27btPolyhedralContactClipping8clipFaceERK20btAlignedObjectArrayI9btVector3ERS2_RKS1_f(i57, i58, i10, d66 - (d67 * +HEAPF32[i53 >> 2] + d68 * +HEAPF32[i54 >> 2] + d69 * +HEAPF32[i55 >> 2]));
25976 i62 = i57 + 4 | 0;
25977 i70 = HEAP32[i62 >> 2] | 0;
25978 if ((i70 | 0) < 0) {
25979 i71 = i57 + 8 | 0;
25980 i72 = i57 + 12 | 0;
25981 if ((HEAP32[i71 >> 2] | 0) < 0) {
25982 i73 = HEAP32[i72 >> 2] | 0;
25983 i74 = i57 + 16 | 0;
25984 if ((i73 | 0) != 0) {
25985 if ((HEAP8[i74] | 0) != 0) {
25986 __Z21btAlignedFreeInternalPv(i73);
25987 }
25988 HEAP32[i72 >> 2] = 0;
25989 }
25990 HEAP8[i74] = 1;
25991 HEAP32[i72 >> 2] = 0;
25992 HEAP32[i71 >> 2] = 0;
25993 i75 = i70;
25994 } else {
25995 i75 = i70;
25996 }
25997 do {
25998 i70 = (HEAP32[i72 >> 2] | 0) + (i75 << 4) | 0;
25999 if ((i70 | 0) != 0) {
26000 i71 = i70;
26001 HEAP32[i71 >> 2] = HEAP32[i56 >> 2];
26002 HEAP32[i71 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
26003 HEAP32[i71 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
26004 HEAP32[i71 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
26005 }
26006 i75 = i75 + 1 | 0;
26007 } while ((i75 | 0) < 0);
26008 }
26009 HEAP32[i62 >> 2] = 0;
26010 i72 = i59 + 1 | 0;
26011 if ((i72 | 0) >= (i42 | 0)) {
26012 break;
26013 }
26014 i71 = i57;
26015 i57 = i58;
26016 i59 = i72;
26017 i60 = HEAP32[i16 >> 2] | 0;
26018 d41 = +HEAPF32[i19 >> 2];
26019 d38 = +HEAPF32[i21 >> 2];
26020 d37 = +HEAPF32[i23 >> 2];
26021 d39 = +HEAPF32[i25 >> 2];
26022 d46 = +HEAPF32[i27 >> 2];
26023 d45 = +HEAPF32[i29 >> 2];
26024 d44 = +HEAPF32[i31 >> 2];
26025 d43 = +HEAPF32[i33 >> 2];
26026 d61 = +HEAPF32[i35 >> 2];
26027 i58 = i71;
26028 }
26029 i76 = i58;
26030 i77 = i53;
26031 i78 = i54;
26032 i79 = i55;
26033 d80 = +HEAPF32[i19 >> 2];
26034 d81 = +HEAPF32[i21 >> 2];
26035 d82 = +HEAPF32[i23 >> 2];
26036 d83 = +HEAPF32[i25 >> 2];
26037 d84 = +HEAPF32[i27 >> 2];
26038 d85 = +HEAPF32[i29 >> 2];
26039 d86 = +HEAPF32[i31 >> 2];
26040 d87 = +HEAPF32[i33 >> 2];
26041 d88 = +HEAPF32[i35 >> 2];
26042 } else {
26043 i76 = i4;
26044 i77 = i3 + 48 | 0;
26045 i78 = i3 + 52 | 0;
26046 i79 = i3 + 56 | 0;
26047 d80 = d20;
26048 d81 = d22;
26049 d82 = d24;
26050 d83 = d26;
26051 d84 = d28;
26052 d85 = d30;
26053 d86 = d32;
26054 d87 = d34;
26055 d88 = d36;
26056 }
26057 d61 = +HEAPF32[i15 + (i48 * 56 | 0) + 40 >> 2];
26058 d43 = +HEAPF32[i15 + (i48 * 56 | 0) + 44 >> 2];
26059 d44 = +HEAPF32[i15 + (i48 * 56 | 0) + 48 >> 2];
26060 d45 = d61 * d80 + d43 * d81 + d44 * d82;
26061 d46 = d61 * d83 + d43 * d84 + d44 * d85;
26062 d39 = d61 * d86 + d43 * d87 + d44 * d88;
26063 d44 = +HEAPF32[i15 + (i48 * 56 | 0) + 52 >> 2] - (d45 * +HEAPF32[i77 >> 2] + d46 * +HEAPF32[i78 >> 2] + d39 * +HEAPF32[i79 >> 2]);
26064 i16 = i76 + 4 | 0;
26065 i60 = HEAP32[i16 >> 2] | 0;
26066 if ((i60 | 0) > 0) {
26067 i59 = i76 + 12 | 0;
26068 i57 = i12;
26069 i42 = i7;
26070 i56 = 0;
26071 i52 = i60;
26072 while (1) {
26073 i60 = HEAP32[i59 >> 2] | 0;
26074 i51 = i60 + (i56 << 4) | 0;
26075 d43 = d44 + (d45 * +HEAPF32[i51 >> 2] + d46 * +HEAPF32[i60 + (i56 << 4) + 4 >> 2] + d39 * +HEAPF32[i60 + (i56 << 4) + 8 >> 2]);
26076 if (d43 > d6 | d43 < d5) {
26077 i89 = i52;
26078 } else {
26079 i60 = i51;
26080 HEAP32[i57 >> 2] = HEAP32[i60 >> 2];
26081 HEAP32[i57 + 4 >> 2] = HEAP32[i60 + 4 >> 2];
26082 HEAP32[i57 + 8 >> 2] = HEAP32[i60 + 8 >> 2];
26083 HEAP32[i57 + 12 >> 2] = HEAP32[i60 + 12 >> 2];
26084 FUNCTION_TABLE_viiif[HEAP32[(HEAP32[i42 >> 2] | 0) + 16 >> 2] & 15](i7, i1, i12, d43);
26085 i89 = HEAP32[i16 >> 2] | 0;
26086 }
26087 i60 = i56 + 1 | 0;
26088 if ((i60 | 0) < (i89 | 0)) {
26089 i56 = i60;
26090 i52 = i89;
26091 } else {
26092 break;
26093 }
26094 }
26095 }
26096 i50 = HEAP32[i14 >> 2] | 0;
26097 } else {
26098 i50 = i18;
26099 }
26100 } while (0);
26101 if ((i50 | 0) == 0) {
26102 STACKTOP = i8;
26103 return;
26104 }
26105 if ((HEAP8[i13] | 0) != 0) {
26106 __Z21btAlignedFreeInternalPv(i50);
26107 }
26108 HEAP32[i14 >> 2] = 0;
26109 STACKTOP = i8;
26110 return;
26111 }
26112 function __ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i1, i2, i3) {
26113 i1 = i1 | 0;
26114 i2 = i2 | 0;
26115 i3 = i3 | 0;
26116 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, i15 = 0, d16 = 0.0, d17 = 0.0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, d22 = 0.0, d23 = 0.0, d24 = 0.0, i25 = 0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, i35 = 0;
26117 i4 = STACKTOP;
26118 STACKTOP = STACKTOP + 80 | 0;
26119 i5 = i4 | 0;
26120 i6 = i4 + 16 | 0;
26121 i7 = i4 + 32 | 0;
26122 i8 = i4 + 48 | 0;
26123 i9 = i4 + 64 | 0;
26124 switch (HEAP32[i2 + 4 >> 2] | 0) {
26125 case 8:
26126 {
26127 _memset(i1 | 0, 0, 16);
26128 STACKTOP = i4;
26129 return;
26130 }
26131 case 0:
26132 {
26133 i10 = i2 + 28 | 0;
26134 d11 = +HEAPF32[i10 >> 2];
26135 d12 = +HEAPF32[i10 + 4 >> 2];
26136 d13 = +HEAPF32[i3 + 4 >> 2] >= 0.0 ? d12 : -0.0 - d12;
26137 d12 = +HEAPF32[i10 + 8 >> 2];
26138 d14 = +HEAPF32[i3 + 8 >> 2] >= 0.0 ? d12 : -0.0 - d12;
26139 HEAPF32[i1 >> 2] = +HEAPF32[i3 >> 2] >= 0.0 ? d11 : -0.0 - d11;
26140 HEAPF32[i1 + 4 >> 2] = d13;
26141 HEAPF32[i1 + 8 >> 2] = d14;
26142 HEAPF32[i1 + 12 >> 2] = 0.0;
26143 STACKTOP = i4;
26144 return;
26145 }
26146 case 1:
26147 {
26148 d14 = +HEAPF32[i3 >> 2];
26149 d13 = +HEAPF32[i3 + 4 >> 2];
26150 d11 = +HEAPF32[i3 + 8 >> 2];
26151 i10 = i2 + 56 | 0;
26152 i15 = i10;
26153 d12 = d14 * +HEAPF32[i10 >> 2] + d13 * +HEAPF32[i10 + 4 >> 2] + d11 * +HEAPF32[i10 + 8 >> 2];
26154 d16 = d14 * +HEAPF32[i10 + 16 >> 2] + d13 * +HEAPF32[i10 + 20 >> 2] + d11 * +HEAPF32[i10 + 24 >> 2];
26155 d17 = d14 * +HEAPF32[i10 + 32 >> 2] + d13 * +HEAPF32[i10 + 36 >> 2] + d11 * +HEAPF32[i10 + 40 >> 2];
26156 if (d12 < d16) {
26157 i18 = d16 < d17 ? 2 : 1;
26158 } else {
26159 i18 = d12 < d17 ? 2 : 0;
26160 }
26161 d17 = +HEAPF32[i15 + (i18 << 4) + 4 >> 2];
26162 d12 = +HEAPF32[i15 + (i18 << 4) + 8 >> 2];
26163 HEAPF32[i1 >> 2] = +HEAPF32[i15 + (i18 << 4) >> 2];
26164 HEAPF32[i1 + 4 >> 2] = d17;
26165 HEAPF32[i1 + 8 >> 2] = d12;
26166 HEAPF32[i1 + 12 >> 2] = 0.0;
26167 STACKTOP = i4;
26168 return;
26169 }
26170 case 13:
26171 {
26172 i18 = i5;
26173 i15 = i2 + 28 | 0;
26174 HEAP32[i18 >> 2] = HEAP32[i15 >> 2];
26175 HEAP32[i18 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
26176 HEAP32[i18 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
26177 HEAP32[i18 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
26178 HEAPF32[i6 >> 2] = +HEAPF32[i3 >> 2];
26179 d12 = +HEAPF32[i3 + 4 >> 2];
26180 HEAPF32[i6 + 4 >> 2] = d12;
26181 d17 = +HEAPF32[i3 + 8 >> 2];
26182 HEAPF32[i6 + 8 >> 2] = d17;
26183 HEAPF32[i6 + 12 >> 2] = 0.0;
26184 i15 = HEAP32[i2 + 52 >> 2] | 0;
26185 if ((i15 | 0) == 1) {
26186 i19 = 0;
26187 i20 = i15;
26188 i21 = 2;
26189 d22 = d17;
26190 } else if ((i15 | 0) == 2) {
26191 i19 = 0;
26192 i20 = i15;
26193 i21 = 1;
26194 d22 = d12;
26195 } else {
26196 i19 = 1;
26197 i20 = 0;
26198 i21 = 2;
26199 d22 = d17;
26200 }
26201 d17 = +HEAPF32[i5 + (i19 << 2) >> 2];
26202 d12 = +HEAPF32[i5 + (i15 << 2) >> 2];
26203 d16 = +HEAPF32[i6 + (i19 << 2) >> 2];
26204 d11 = +Math_sqrt(+(d22 * d22 + d16 * d16));
26205 if (d11 != 0.0) {
26206 d13 = d17 / d11;
26207 HEAPF32[i7 + (i19 << 2) >> 2] = d16 * d13;
26208 if (+HEAPF32[i6 + (i20 << 2) >> 2] < 0.0) {
26209 d23 = -0.0 - d12;
26210 } else {
26211 d23 = d12;
26212 }
26213 HEAPF32[i7 + (i20 << 2) >> 2] = d23;
26214 HEAPF32[i7 + (i21 << 2) >> 2] = d22 * d13;
26215 HEAPF32[i1 >> 2] = +HEAPF32[i7 >> 2];
26216 HEAPF32[i1 + 4 >> 2] = +HEAPF32[i7 + 4 >> 2];
26217 HEAPF32[i1 + 8 >> 2] = +HEAPF32[i7 + 8 >> 2];
26218 HEAPF32[i1 + 12 >> 2] = 0.0;
26219 STACKTOP = i4;
26220 return;
26221 } else {
26222 HEAPF32[i7 + (i19 << 2) >> 2] = d17;
26223 if (+HEAPF32[i6 + (i20 << 2) >> 2] < 0.0) {
26224 d24 = -0.0 - d12;
26225 } else {
26226 d24 = d12;
26227 }
26228 HEAPF32[i7 + (i20 << 2) >> 2] = d24;
26229 HEAPF32[i7 + (i21 << 2) >> 2] = 0.0;
26230 HEAPF32[i1 >> 2] = +HEAPF32[i7 >> 2];
26231 HEAPF32[i1 + 4 >> 2] = +HEAPF32[i7 + 4 >> 2];
26232 HEAPF32[i1 + 8 >> 2] = +HEAPF32[i7 + 8 >> 2];
26233 HEAPF32[i1 + 12 >> 2] = 0.0;
26234 STACKTOP = i4;
26235 return;
26236 }
26237 break;
26238 }
26239 case 5:
26240 {
26241 i7 = HEAP32[i2 + 92 >> 2] | 0;
26242 i21 = HEAP32[i2 + 96 >> 2] | 0;
26243 d24 = +HEAPF32[i2 + 12 >> 2];
26244 d12 = +HEAPF32[i3 >> 2] * d24;
26245 d17 = +HEAPF32[i2 + 16 >> 2];
26246 d13 = +HEAPF32[i3 + 4 >> 2] * d17;
26247 d22 = +HEAPF32[i2 + 20 >> 2];
26248 d23 = +HEAPF32[i3 + 8 >> 2] * d22;
26249 if ((i21 | 0) > 0) {
26250 d16 = -999999984306749400.0;
26251 i20 = -1;
26252 i6 = 0;
26253 while (1) {
26254 d11 = d12 * +HEAPF32[i7 + (i6 << 4) >> 2] + d13 * +HEAPF32[i7 + (i6 << 4) + 4 >> 2] + d23 * +HEAPF32[i7 + (i6 << 4) + 8 >> 2];
26255 i19 = d11 > d16;
26256 i15 = i19 ? i6 : i20;
26257 i5 = i6 + 1 | 0;
26258 if ((i5 | 0) < (i21 | 0)) {
26259 d16 = i19 ? d11 : d16;
26260 i20 = i15;
26261 i6 = i5;
26262 } else {
26263 i25 = i15;
26264 break;
26265 }
26266 }
26267 } else {
26268 i25 = -1;
26269 }
26270 d16 = d17 * +HEAPF32[i7 + (i25 << 4) + 4 >> 2];
26271 d17 = d22 * +HEAPF32[i7 + (i25 << 4) + 8 >> 2];
26272 HEAPF32[i1 >> 2] = d24 * +HEAPF32[i7 + (i25 << 4) >> 2];
26273 HEAPF32[i1 + 4 >> 2] = d16;
26274 HEAPF32[i1 + 8 >> 2] = d17;
26275 HEAPF32[i1 + 12 >> 2] = 0.0;
26276 STACKTOP = i4;
26277 return;
26278 }
26279 case 10:
26280 {
26281 d17 = +HEAPF32[i3 >> 2];
26282 d16 = +HEAPF32[i3 + 4 >> 2];
26283 d24 = +HEAPF32[i3 + 8 >> 2];
26284 i25 = i2;
26285 i7 = HEAP32[i2 + 52 >> 2] | 0;
26286 d22 = +HEAPF32[i25 + 28 + (i7 << 2) >> 2];
26287 d23 = +HEAPF32[i25 + 28 + (((i7 + 2 | 0) % 3 | 0) << 2) >> 2];
26288 d13 = d17 * d17 + d16 * d16 + d24 * d24;
26289 if (d13 < 9999999747378752.0e-20) {
26290 d26 = 1.0;
26291 d27 = 0.0;
26292 d28 = 0.0;
26293 } else {
26294 d12 = 1.0 / +Math_sqrt(+d13);
26295 d26 = d17 * d12;
26296 d27 = d16 * d12;
26297 d28 = d24 * d12;
26298 }
26299 _memset(i8 | 0, 0, 16);
26300 HEAPF32[i8 + (i7 << 2) >> 2] = d22;
26301 d12 = d23 * d26 * +HEAPF32[i2 + 12 >> 2];
26302 d24 = d23 * d27 * +HEAPF32[i2 + 16 >> 2];
26303 d16 = d23 * d28 * +HEAPF32[i2 + 20 >> 2];
26304 d23 = +HEAPF32[i2 + 44 >> 2];
26305 d17 = d26 * d23;
26306 d13 = d27 * d23;
26307 d11 = d28 * d23;
26308 d23 = d12 + +HEAPF32[i8 >> 2] - d17;
26309 d14 = d24 + +HEAPF32[i8 + 4 >> 2] - d13;
26310 d29 = d16 + +HEAPF32[i8 + 8 >> 2] - d11;
26311 d30 = d28 * d29 + (d26 * d23 + d27 * d14);
26312 if (d30 > -999999984306749400.0) {
26313 d31 = d30;
26314 d32 = d23;
26315 d33 = d14;
26316 d34 = d29;
26317 } else {
26318 d31 = -999999984306749400.0;
26319 d32 = 0.0;
26320 d33 = 0.0;
26321 d34 = 0.0;
26322 }
26323 _memset(i9 | 0, 0, 16);
26324 HEAPF32[i9 + (i7 << 2) >> 2] = -0.0 - d22;
26325 d22 = d12 + +HEAPF32[i9 >> 2] - d17;
26326 d17 = d24 + +HEAPF32[i9 + 4 >> 2] - d13;
26327 d13 = d16 + +HEAPF32[i9 + 8 >> 2] - d11;
26328 i9 = d28 * d13 + (d26 * d22 + d27 * d17) > d31;
26329 HEAPF32[i1 >> 2] = i9 ? d22 : d32;
26330 HEAPF32[i1 + 4 >> 2] = i9 ? d17 : d33;
26331 HEAPF32[i1 + 8 >> 2] = i9 ? d13 : d34;
26332 HEAPF32[i1 + 12 >> 2] = 0.0;
26333 STACKTOP = i4;
26334 return;
26335 }
26336 case 4:
26337 {
26338 i9 = HEAP32[i2 + 104 >> 2] | 0;
26339 i7 = HEAP32[i2 + 96 >> 2] | 0;
26340 d34 = +HEAPF32[i2 + 12 >> 2];
26341 d13 = +HEAPF32[i3 >> 2] * d34;
26342 d33 = +HEAPF32[i2 + 16 >> 2];
26343 d17 = +HEAPF32[i3 + 4 >> 2] * d33;
26344 d32 = +HEAPF32[i2 + 20 >> 2];
26345 d22 = +HEAPF32[i3 + 8 >> 2] * d32;
26346 if ((i7 | 0) > 0) {
26347 d31 = -999999984306749400.0;
26348 i8 = -1;
26349 i25 = 0;
26350 while (1) {
26351 d27 = d13 * +HEAPF32[i9 + (i25 << 4) >> 2] + d17 * +HEAPF32[i9 + (i25 << 4) + 4 >> 2] + d22 * +HEAPF32[i9 + (i25 << 4) + 8 >> 2];
26352 i6 = d27 > d31;
26353 i20 = i6 ? i25 : i8;
26354 i21 = i25 + 1 | 0;
26355 if ((i21 | 0) < (i7 | 0)) {
26356 d31 = i6 ? d27 : d31;
26357 i8 = i20;
26358 i25 = i21;
26359 } else {
26360 i35 = i20;
26361 break;
26362 }
26363 }
26364 } else {
26365 i35 = -1;
26366 }
26367 d31 = d33 * +HEAPF32[i9 + (i35 << 4) + 4 >> 2];
26368 d33 = d32 * +HEAPF32[i9 + (i35 << 4) + 8 >> 2];
26369 HEAPF32[i1 >> 2] = d34 * +HEAPF32[i9 + (i35 << 4) >> 2];
26370 HEAPF32[i1 + 4 >> 2] = d31;
26371 HEAPF32[i1 + 8 >> 2] = d33;
26372 HEAPF32[i1 + 12 >> 2] = 0.0;
26373 STACKTOP = i4;
26374 return;
26375 }
26376 default:
26377 {
26378 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i2 >> 2] | 0) + 64 >> 2] & 127](i1, i2, i3);
26379 STACKTOP = i4;
26380 return;
26381 }
26382 }
26383 }
26384 function __ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i1, i2, i3, i4, i5, i6) {
26385 i1 = i1 | 0;
26386 i2 = i2 | 0;
26387 i3 = i3 | 0;
26388 i4 = i4 | 0;
26389 i5 = i5 | 0;
26390 i6 = i6 | 0;
26391 var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, d24 = 0.0, d25 = 0.0, d26 = 0.0, i27 = 0, i28 = 0, i29 = 0, d30 = 0.0, d31 = 0.0, i32 = 0, d33 = 0.0, i34 = 0, d35 = 0.0, i36 = 0, d37 = 0.0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, i48 = 0, d49 = 0.0, i50 = 0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0;
26392 i7 = STACKTOP;
26393 STACKTOP = STACKTOP + 280 | 0;
26394 i8 = i7 + 16 | 0;
26395 i9 = i7 + 64 | 0;
26396 i10 = i7 + 144 | 0;
26397 i11 = i1 + 4 | 0;
26398 __ZN22btVoronoiSimplexSolver5resetEv(HEAP32[i11 >> 2] | 0);
26399 i12 = i2 + 48 | 0;
26400 i13 = i3 + 48 | 0;
26401 i14 = i12 | 0;
26402 i15 = i3 + 52 | 0;
26403 i16 = i2 + 52 | 0;
26404 i17 = i3 + 56 | 0;
26405 i3 = i2 + 56 | 0;
26406 i18 = i4 + 48 | 0;
26407 i19 = i5 + 48 | 0;
26408 i20 = i18 | 0;
26409 i21 = i5 + 52 | 0;
26410 i22 = i4 + 52 | 0;
26411 i23 = i5 + 56 | 0;
26412 i5 = i4 + 56 | 0;
26413 d24 = +HEAPF32[i13 >> 2] - +HEAPF32[i14 >> 2] - (+HEAPF32[i19 >> 2] - +HEAPF32[i20 >> 2]);
26414 d25 = +HEAPF32[i15 >> 2] - +HEAPF32[i16 >> 2] - (+HEAPF32[i21 >> 2] - +HEAPF32[i22 >> 2]);
26415 d26 = +HEAPF32[i17 >> 2] - +HEAPF32[i3 >> 2] - (+HEAPF32[i23 >> 2] - +HEAPF32[i5 >> 2]);
26416 HEAP32[i8 >> 2] = 4272;
26417 i27 = i8 + 36 | 0;
26418 HEAPF32[i27 >> 2] = 999999984306749400.0;
26419 i28 = i8 + 40 | 0;
26420 HEAP8[i28] = 0;
26421 __ZN17btGjkPairDetectorC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i9, HEAP32[i1 + 8 >> 2] | 0, HEAP32[i1 + 12 >> 2] | 0, HEAP32[i11 >> 2] | 0, 0);
26422 HEAPF32[i10 + 128 >> 2] = 999999984306749400.0;
26423 HEAP32[i10 + 132 >> 2] = 0;
26424 i11 = i10;
26425 i1 = i2;
26426 HEAP32[i11 >> 2] = HEAP32[i1 >> 2];
26427 HEAP32[i11 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
26428 HEAP32[i11 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
26429 HEAP32[i11 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
26430 i1 = i10 + 16 | 0;
26431 i11 = i2 + 16 | 0;
26432 HEAP32[i1 >> 2] = HEAP32[i11 >> 2];
26433 HEAP32[i1 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
26434 HEAP32[i1 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
26435 HEAP32[i1 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
26436 i11 = i10 + 32 | 0;
26437 i1 = i2 + 32 | 0;
26438 HEAP32[i11 >> 2] = HEAP32[i1 >> 2];
26439 HEAP32[i11 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
26440 HEAP32[i11 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
26441 HEAP32[i11 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
26442 i1 = i10 + 48 | 0;
26443 i11 = i1;
26444 i2 = i12;
26445 HEAP32[i11 >> 2] = HEAP32[i2 >> 2];
26446 HEAP32[i11 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
26447 HEAP32[i11 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
26448 HEAP32[i11 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
26449 i2 = i10 + 64 | 0;
26450 i11 = i4;
26451 HEAP32[i2 >> 2] = HEAP32[i11 >> 2];
26452 HEAP32[i2 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
26453 HEAP32[i2 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
26454 HEAP32[i2 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
26455 i11 = i10 + 80 | 0;
26456 i2 = i4 + 16 | 0;
26457 HEAP32[i11 >> 2] = HEAP32[i2 >> 2];
26458 HEAP32[i11 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
26459 HEAP32[i11 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
26460 HEAP32[i11 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
26461 i2 = i10 + 96 | 0;
26462 i11 = i4 + 32 | 0;
26463 HEAP32[i2 >> 2] = HEAP32[i11 >> 2];
26464 HEAP32[i2 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
26465 HEAP32[i2 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
26466 HEAP32[i2 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
26467 i11 = i10 + 112 | 0;
26468 i2 = i11;
26469 i4 = i18;
26470 HEAP32[i2 >> 2] = HEAP32[i4 >> 2];
26471 HEAP32[i2 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
26472 HEAP32[i2 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
26473 HEAP32[i2 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
26474 i4 = i8 | 0;
26475 __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i9, i10, i4, 0, 0);
26476 i2 = (HEAP8[i28] | 0) == 0;
26477 i18 = i8 + 20 | 0;
26478 i12 = i7 | 0;
26479 HEAP32[i12 >> 2] = HEAP32[i18 >> 2];
26480 HEAP32[i12 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
26481 HEAP32[i12 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
26482 HEAP32[i12 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
26483 if (i2) {
26484 i29 = 0;
26485 STACKTOP = i7;
26486 return i29 | 0;
26487 }
26488 d30 = +HEAPF32[i27 >> 2];
26489 i2 = i8 + 4 | 0;
26490 d31 = +HEAPF32[i2 >> 2];
26491 i32 = i8 + 8 | 0;
26492 d33 = +HEAPF32[i32 >> 2];
26493 i34 = i8 + 12 | 0;
26494 d35 = +HEAPF32[i34 >> 2];
26495 i36 = i8 + 16 | 0;
26496 d37 = +HEAPF32[i36 >> 2];
26497 do {
26498 if (d30 > .0010000000474974513) {
26499 i8 = i6;
26500 i38 = i1 | 0;
26501 i39 = i10 + 52 | 0;
26502 i40 = i10 + 56 | 0;
26503 i41 = i11 | 0;
26504 i42 = i10 + 116 | 0;
26505 i43 = i10 + 120 | 0;
26506 d44 = d35;
26507 d45 = d33;
26508 d46 = d31;
26509 d47 = 0.0;
26510 i48 = 1;
26511 d49 = d30;
26512 while (1) {
26513 if ((i48 | 0) > 32) {
26514 i29 = 0;
26515 i50 = 2068;
26516 break;
26517 }
26518 d51 = d47 - d49 / (d26 * d44 + (d24 * d46 + d25 * d45));
26519 if (!(d51 >= 0.0 & d51 <= 1.0 & d51 > d47)) {
26520 i29 = 0;
26521 i50 = 2067;
26522 break;
26523 }
26524 FUNCTION_TABLE_vif[HEAP32[HEAP32[i8 >> 2] >> 2] & 31](i6, d51);
26525 d52 = 1.0 - d51;
26526 HEAPF32[i38 >> 2] = d52 * +HEAPF32[i14 >> 2] + d51 * +HEAPF32[i13 >> 2];
26527 HEAPF32[i39 >> 2] = d52 * +HEAPF32[i16 >> 2] + d51 * +HEAPF32[i15 >> 2];
26528 HEAPF32[i40 >> 2] = d52 * +HEAPF32[i3 >> 2] + d51 * +HEAPF32[i17 >> 2];
26529 HEAPF32[i41 >> 2] = d52 * +HEAPF32[i20 >> 2] + d51 * +HEAPF32[i19 >> 2];
26530 HEAPF32[i42 >> 2] = d52 * +HEAPF32[i22 >> 2] + d51 * +HEAPF32[i21 >> 2];
26531 HEAPF32[i43 >> 2] = d52 * +HEAPF32[i5 >> 2] + d51 * +HEAPF32[i23 >> 2];
26532 __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i9, i10, i4, 0, 0);
26533 if ((HEAP8[i28] | 0) == 0) {
26534 i29 = 0;
26535 i50 = 2070;
26536 break;
26537 }
26538 d52 = +HEAPF32[i27 >> 2];
26539 if (d52 < 0.0) {
26540 i50 = 2059;
26541 break;
26542 }
26543 HEAP32[i12 >> 2] = HEAP32[i18 >> 2];
26544 HEAP32[i12 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
26545 HEAP32[i12 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
26546 HEAP32[i12 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
26547 d53 = +HEAPF32[i2 >> 2];
26548 d54 = +HEAPF32[i32 >> 2];
26549 d55 = +HEAPF32[i34 >> 2];
26550 if (d52 > .0010000000474974513) {
26551 d44 = d55;
26552 d45 = d54;
26553 d46 = d53;
26554 d47 = d51;
26555 i48 = i48 + 1 | 0;
26556 d49 = d52;
26557 } else {
26558 i50 = 2061;
26559 break;
26560 }
26561 }
26562 if ((i50 | 0) == 2059) {
26563 HEAPF32[i6 + 164 >> 2] = d51;
26564 d49 = +HEAPF32[i32 >> 2];
26565 d47 = +HEAPF32[i34 >> 2];
26566 d46 = +HEAPF32[i36 >> 2];
26567 HEAPF32[i6 + 132 >> 2] = +HEAPF32[i2 >> 2];
26568 HEAPF32[i6 + 136 >> 2] = d49;
26569 HEAPF32[i6 + 140 >> 2] = d47;
26570 HEAPF32[i6 + 144 >> 2] = d46;
26571 i48 = i6 + 148 | 0;
26572 HEAP32[i48 >> 2] = HEAP32[i18 >> 2];
26573 HEAP32[i48 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
26574 HEAP32[i48 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
26575 HEAP32[i48 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
26576 i29 = 1;
26577 STACKTOP = i7;
26578 return i29 | 0;
26579 } else if ((i50 | 0) == 2068) {
26580 STACKTOP = i7;
26581 return i29 | 0;
26582 } else if ((i50 | 0) == 2061) {
26583 d56 = +HEAPF32[i36 >> 2];
26584 d57 = d55;
26585 d58 = d54;
26586 d59 = d53;
26587 d60 = d51;
26588 break;
26589 } else if ((i50 | 0) == 2067) {
26590 STACKTOP = i7;
26591 return i29 | 0;
26592 } else if ((i50 | 0) == 2070) {
26593 STACKTOP = i7;
26594 return i29 | 0;
26595 }
26596 } else {
26597 d56 = d37;
26598 d57 = d35;
26599 d58 = d33;
26600 d59 = d31;
26601 d60 = 0.0;
26602 }
26603 } while (0);
26604 if (d26 * d57 + (d24 * d59 + d25 * d58) >= -0.0 - +HEAPF32[i6 + 172 >> 2]) {
26605 i29 = 0;
26606 STACKTOP = i7;
26607 return i29 | 0;
26608 }
26609 HEAPF32[i6 + 164 >> 2] = d60;
26610 HEAPF32[i6 + 132 >> 2] = d59;
26611 HEAPF32[i6 + 136 >> 2] = d58;
26612 HEAPF32[i6 + 140 >> 2] = d57;
26613 HEAPF32[i6 + 144 >> 2] = d56;
26614 i50 = i6 + 148 | 0;
26615 HEAP32[i50 >> 2] = HEAP32[i12 >> 2];
26616 HEAP32[i50 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
26617 HEAP32[i50 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
26618 HEAP32[i50 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
26619 i29 = 1;
26620 STACKTOP = i7;
26621 return i29 | 0;
26622 }
26623 function __ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback13ProcessIslandEPP17btCollisionObjectiPP20btPersistentManifoldii(i1, i2, i3, i4, i5, i6) {
26624 i1 = i1 | 0;
26625 i2 = i2 | 0;
26626 i3 = i3 | 0;
26627 i4 = i4 | 0;
26628 i5 = i5 | 0;
26629 i6 = i6 | 0;
26630 var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0;
26631 i7 = HEAP32[i1 + 16 >> 2] | 0;
26632 if ((i6 | 0) < 0) {
26633 if ((i7 | 0) == (-i5 | 0)) {
26634 return;
26635 }
26636 i8 = HEAP32[i1 + 8 >> 2] | 0;
26637 i9 = HEAP32[(HEAP32[i8 >> 2] | 0) + 12 >> 2] | 0;
26638 i10 = HEAP32[i1 + 12 >> 2] | 0;
26639 i11 = HEAP32[i1 + 4 >> 2] | 0;
26640 i12 = HEAP32[i1 + 20 >> 2] | 0;
26641 i13 = HEAP32[i1 + 24 >> 2] | 0;
26642 i14 = HEAP32[i1 + 28 >> 2] | 0;
26643 +FUNCTION_TABLE_fiiiiiiiiiii[i9 & 3](i8, i2, i3, i4, i5, i10, i7, i11, i12, i13, i14);
26644 return;
26645 }
26646 i14 = i1 + 12 | 0;
26647 i13 = 0;
26648 while (1) {
26649 if ((i13 | 0) >= (i7 | 0)) {
26650 i15 = 0;
26651 i16 = 0;
26652 break;
26653 }
26654 i17 = HEAP32[i14 >> 2] | 0;
26655 i18 = i17 + (i13 << 2) | 0;
26656 i12 = HEAP32[i18 >> 2] | 0;
26657 i11 = HEAP32[(HEAP32[i12 + 24 >> 2] | 0) + 208 >> 2] | 0;
26658 if ((i11 | 0) > -1) {
26659 i19 = i11;
26660 } else {
26661 i19 = HEAP32[(HEAP32[i12 + 28 >> 2] | 0) + 208 >> 2] | 0;
26662 }
26663 if ((i19 | 0) == (i6 | 0)) {
26664 i20 = 0;
26665 i21 = i13;
26666 i22 = 889;
26667 break;
26668 } else {
26669 i13 = i13 + 1 | 0;
26670 }
26671 }
26672 if ((i22 | 0) == 889) {
26673 while (1) {
26674 i22 = 0;
26675 i13 = HEAP32[i17 + (i21 << 2) >> 2] | 0;
26676 i19 = HEAP32[(HEAP32[i13 + 24 >> 2] | 0) + 208 >> 2] | 0;
26677 if ((i19 | 0) > -1) {
26678 i23 = i19;
26679 } else {
26680 i23 = HEAP32[(HEAP32[i13 + 28 >> 2] | 0) + 208 >> 2] | 0;
26681 }
26682 i13 = ((i23 | 0) == (i6 | 0)) + i20 | 0;
26683 i19 = i21 + 1 | 0;
26684 if ((i19 | 0) < (i7 | 0)) {
26685 i20 = i13;
26686 i21 = i19;
26687 i22 = 889;
26688 } else {
26689 i15 = i13;
26690 i16 = i18;
26691 break;
26692 }
26693 }
26694 }
26695 i18 = i1 + 4 | 0;
26696 i22 = HEAP32[i18 >> 2] | 0;
26697 if ((HEAP32[i22 + 68 >> 2] | 0) < 2) {
26698 if ((i15 | 0) == (-i5 | 0)) {
26699 return;
26700 }
26701 i21 = HEAP32[i1 + 8 >> 2] | 0;
26702 i20 = HEAP32[(HEAP32[i21 >> 2] | 0) + 12 >> 2] | 0;
26703 i7 = HEAP32[i1 + 20 >> 2] | 0;
26704 i6 = HEAP32[i1 + 24 >> 2] | 0;
26705 i23 = HEAP32[i1 + 28 >> 2] | 0;
26706 +FUNCTION_TABLE_fiiiiiiiiiii[i20 & 3](i21, i2, i3, i4, i5, i16, i15, i22, i7, i6, i23);
26707 return;
26708 }
26709 if ((i3 | 0) > 0) {
26710 i23 = i1 + 36 | 0;
26711 i6 = i1 + 40 | 0;
26712 i7 = i1 + 44 | 0;
26713 i22 = i1 + 48 | 0;
26714 i21 = 0;
26715 i20 = HEAP32[i23 >> 2] | 0;
26716 i17 = HEAP32[i6 >> 2] | 0;
26717 while (1) {
26718 i13 = i2 + (i21 << 2) | 0;
26719 do {
26720 if ((i20 | 0) == (i17 | 0)) {
26721 i19 = (i17 | 0) == 0 ? 1 : i17 << 1;
26722 if ((i17 | 0) >= (i19 | 0)) {
26723 i24 = i17;
26724 i25 = i17;
26725 break;
26726 }
26727 if ((i19 | 0) == 0) {
26728 i26 = 0;
26729 i27 = i17;
26730 } else {
26731 i14 = __Z22btAlignedAllocInternalji(i19 << 2, 16) | 0;
26732 i26 = i14;
26733 i27 = HEAP32[i23 >> 2] | 0;
26734 }
26735 if ((i27 | 0) > 0) {
26736 i14 = 0;
26737 do {
26738 i12 = i26 + (i14 << 2) | 0;
26739 if ((i12 | 0) != 0) {
26740 HEAP32[i12 >> 2] = HEAP32[(HEAP32[i7 >> 2] | 0) + (i14 << 2) >> 2];
26741 }
26742 i14 = i14 + 1 | 0;
26743 } while ((i14 | 0) < (i27 | 0));
26744 }
26745 i14 = HEAP32[i7 >> 2] | 0;
26746 if ((i14 | 0) == 0) {
26747 i28 = i27;
26748 } else {
26749 if ((HEAP8[i22] | 0) == 0) {
26750 i29 = i27;
26751 } else {
26752 __Z21btAlignedFreeInternalPv(i14);
26753 i29 = HEAP32[i23 >> 2] | 0;
26754 }
26755 HEAP32[i7 >> 2] = 0;
26756 i28 = i29;
26757 }
26758 HEAP8[i22] = 1;
26759 HEAP32[i7 >> 2] = i26;
26760 HEAP32[i6 >> 2] = i19;
26761 i24 = i28;
26762 i25 = i19;
26763 } else {
26764 i24 = i20;
26765 i25 = i17;
26766 }
26767 } while (0);
26768 i14 = (HEAP32[i7 >> 2] | 0) + (i24 << 2) | 0;
26769 if ((i14 | 0) != 0) {
26770 HEAP32[i14 >> 2] = HEAP32[i13 >> 2];
26771 }
26772 i14 = i24 + 1 | 0;
26773 HEAP32[i23 >> 2] = i14;
26774 i12 = i21 + 1 | 0;
26775 if ((i12 | 0) < (i3 | 0)) {
26776 i21 = i12;
26777 i20 = i14;
26778 i17 = i25;
26779 } else {
26780 break;
26781 }
26782 }
26783 }
26784 if ((i5 | 0) > 0) {
26785 i25 = i1 + 56 | 0;
26786 i17 = i1 + 60 | 0;
26787 i20 = i1 + 64 | 0;
26788 i21 = i1 + 68 | 0;
26789 i3 = 0;
26790 i23 = HEAP32[i25 >> 2] | 0;
26791 i24 = HEAP32[i17 >> 2] | 0;
26792 while (1) {
26793 i7 = i4 + (i3 << 2) | 0;
26794 do {
26795 if ((i23 | 0) == (i24 | 0)) {
26796 i28 = (i24 | 0) == 0 ? 1 : i24 << 1;
26797 if ((i24 | 0) >= (i28 | 0)) {
26798 i30 = i24;
26799 i31 = i24;
26800 break;
26801 }
26802 if ((i28 | 0) == 0) {
26803 i32 = 0;
26804 i33 = i24;
26805 } else {
26806 i6 = __Z22btAlignedAllocInternalji(i28 << 2, 16) | 0;
26807 i32 = i6;
26808 i33 = HEAP32[i25 >> 2] | 0;
26809 }
26810 if ((i33 | 0) > 0) {
26811 i6 = 0;
26812 do {
26813 i26 = i32 + (i6 << 2) | 0;
26814 if ((i26 | 0) != 0) {
26815 HEAP32[i26 >> 2] = HEAP32[(HEAP32[i20 >> 2] | 0) + (i6 << 2) >> 2];
26816 }
26817 i6 = i6 + 1 | 0;
26818 } while ((i6 | 0) < (i33 | 0));
26819 }
26820 i6 = HEAP32[i20 >> 2] | 0;
26821 if ((i6 | 0) == 0) {
26822 i34 = i33;
26823 } else {
26824 if ((HEAP8[i21] | 0) == 0) {
26825 i35 = i33;
26826 } else {
26827 __Z21btAlignedFreeInternalPv(i6);
26828 i35 = HEAP32[i25 >> 2] | 0;
26829 }
26830 HEAP32[i20 >> 2] = 0;
26831 i34 = i35;
26832 }
26833 HEAP8[i21] = 1;
26834 HEAP32[i20 >> 2] = i32;
26835 HEAP32[i17 >> 2] = i28;
26836 i30 = i34;
26837 i31 = i28;
26838 } else {
26839 i30 = i23;
26840 i31 = i24;
26841 }
26842 } while (0);
26843 i13 = (HEAP32[i20 >> 2] | 0) + (i30 << 2) | 0;
26844 if ((i13 | 0) != 0) {
26845 HEAP32[i13 >> 2] = HEAP32[i7 >> 2];
26846 }
26847 i13 = i30 + 1 | 0;
26848 HEAP32[i25 >> 2] = i13;
26849 i6 = i3 + 1 | 0;
26850 if ((i6 | 0) < (i5 | 0)) {
26851 i3 = i6;
26852 i23 = i13;
26853 i24 = i31;
26854 } else {
26855 break;
26856 }
26857 }
26858 }
26859 i31 = i1 + 76 | 0;
26860 if ((i15 | 0) > 0) {
26861 i24 = i1 + 80 | 0;
26862 i23 = i1 + 84 | 0;
26863 i3 = i1 + 88 | 0;
26864 i5 = 0;
26865 i25 = HEAP32[i31 >> 2] | 0;
26866 i30 = HEAP32[i24 >> 2] | 0;
26867 while (1) {
26868 i20 = i16 + (i5 << 2) | 0;
26869 do {
26870 if ((i25 | 0) == (i30 | 0)) {
26871 i34 = (i30 | 0) == 0 ? 1 : i30 << 1;
26872 if ((i30 | 0) >= (i34 | 0)) {
26873 i36 = i30;
26874 i37 = i30;
26875 break;
26876 }
26877 if ((i34 | 0) == 0) {
26878 i38 = 0;
26879 i39 = i30;
26880 } else {
26881 i17 = __Z22btAlignedAllocInternalji(i34 << 2, 16) | 0;
26882 i38 = i17;
26883 i39 = HEAP32[i31 >> 2] | 0;
26884 }
26885 if ((i39 | 0) > 0) {
26886 i17 = 0;
26887 do {
26888 i32 = i38 + (i17 << 2) | 0;
26889 if ((i32 | 0) != 0) {
26890 HEAP32[i32 >> 2] = HEAP32[(HEAP32[i23 >> 2] | 0) + (i17 << 2) >> 2];
26891 }
26892 i17 = i17 + 1 | 0;
26893 } while ((i17 | 0) < (i39 | 0));
26894 }
26895 i17 = HEAP32[i23 >> 2] | 0;
26896 if ((i17 | 0) == 0) {
26897 i40 = i39;
26898 } else {
26899 if ((HEAP8[i3] | 0) == 0) {
26900 i41 = i39;
26901 } else {
26902 __Z21btAlignedFreeInternalPv(i17);
26903 i41 = HEAP32[i31 >> 2] | 0;
26904 }
26905 HEAP32[i23 >> 2] = 0;
26906 i40 = i41;
26907 }
26908 HEAP8[i3] = 1;
26909 HEAP32[i23 >> 2] = i38;
26910 HEAP32[i24 >> 2] = i34;
26911 i36 = i40;
26912 i37 = i34;
26913 } else {
26914 i36 = i25;
26915 i37 = i30;
26916 }
26917 } while (0);
26918 i7 = (HEAP32[i23 >> 2] | 0) + (i36 << 2) | 0;
26919 if ((i7 | 0) != 0) {
26920 HEAP32[i7 >> 2] = HEAP32[i20 >> 2];
26921 }
26922 i7 = i36 + 1 | 0;
26923 HEAP32[i31 >> 2] = i7;
26924 i17 = i5 + 1 | 0;
26925 if ((i17 | 0) < (i15 | 0)) {
26926 i5 = i17;
26927 i25 = i7;
26928 i30 = i37;
26929 } else {
26930 i42 = i7;
26931 break;
26932 }
26933 }
26934 } else {
26935 i42 = HEAP32[i31 >> 2] | 0;
26936 }
26937 if (((HEAP32[i1 + 56 >> 2] | 0) + i42 | 0) <= (HEAP32[(HEAP32[i18 >> 2] | 0) + 68 >> 2] | 0)) {
26938 return;
26939 }
26940 __ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback18processConstraintsEv(i1);
26941 return;
26942 }
26943 function __ZN15btGjkEpaSolver211PenetrationEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsEb(i1, i2, i3, i4, i5, i6, i7) {
26944 i1 = i1 | 0;
26945 i2 = i2 | 0;
26946 i3 = i3 | 0;
26947 i4 = i4 | 0;
26948 i5 = i5 | 0;
26949 i6 = i6 | 0;
26950 i7 = i7 | 0;
26951 var i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, i23 = 0, d24 = 0.0, d25 = 0.0, i26 = 0, d27 = 0.0, i28 = 0, d29 = 0.0, i30 = 0, d31 = 0.0, d32 = 0.0, i33 = 0, d34 = 0.0, i35 = 0, d36 = 0.0, i37 = 0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, d55 = 0.0, d56 = 0.0, d57 = 0.0, i58 = 0;
26952 i8 = STACKTOP;
26953 STACKTOP = STACKTOP + 10368 | 0;
26954 i9 = i8 | 0;
26955 i10 = i8 + 128 | 0;
26956 i11 = i8 + 512 | 0;
26957 i12 = i8 + 528 | 0;
26958 i13 = i8 + 10336 | 0;
26959 i14 = i8 + 10352 | 0;
26960 i15 = i6 + 20 | 0;
26961 i16 = i6 + 20 | 0;
26962 i17 = i6 + 4 | 0;
26963 _memset(i16 | 0, 0, 16);
26964 HEAP32[i17 >> 2] = HEAP32[i15 >> 2];
26965 HEAP32[i17 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
26966 HEAP32[i17 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
26967 HEAP32[i17 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
26968 i15 = i6 | 0;
26969 HEAP32[i15 >> 2] = 0;
26970 i17 = i9 | 0;
26971 HEAP32[i17 >> 2] = i1;
26972 HEAP32[i9 + 4 >> 2] = i3;
26973 d18 = +HEAPF32[i4 >> 2];
26974 i3 = i2 | 0;
26975 d19 = +HEAPF32[i3 >> 2];
26976 d20 = +HEAPF32[i4 + 16 >> 2];
26977 i1 = i2 + 16 | 0;
26978 d21 = +HEAPF32[i1 >> 2];
26979 d22 = +HEAPF32[i4 + 32 >> 2];
26980 i23 = i2 + 32 | 0;
26981 d24 = +HEAPF32[i23 >> 2];
26982 d25 = d18 * d19 + d20 * d21 + d22 * d24;
26983 i26 = i2 + 4 | 0;
26984 d27 = +HEAPF32[i26 >> 2];
26985 i28 = i2 + 20 | 0;
26986 d29 = +HEAPF32[i28 >> 2];
26987 i30 = i2 + 36 | 0;
26988 d31 = +HEAPF32[i30 >> 2];
26989 d32 = d18 * d27 + d20 * d29 + d22 * d31;
26990 i33 = i2 + 8 | 0;
26991 d34 = +HEAPF32[i33 >> 2];
26992 i35 = i2 + 24 | 0;
26993 d36 = +HEAPF32[i35 >> 2];
26994 i37 = i2 + 40 | 0;
26995 d38 = +HEAPF32[i37 >> 2];
26996 d39 = d18 * d34 + d20 * d36 + d22 * d38;
26997 d22 = +HEAPF32[i4 + 4 >> 2];
26998 d20 = +HEAPF32[i4 + 20 >> 2];
26999 d18 = +HEAPF32[i4 + 36 >> 2];
27000 d40 = d19 * d22 + d21 * d20 + d24 * d18;
27001 d41 = d27 * d22 + d29 * d20 + d31 * d18;
27002 d42 = d34 * d22 + d36 * d20 + d38 * d18;
27003 d18 = +HEAPF32[i4 + 8 >> 2];
27004 d20 = +HEAPF32[i4 + 24 >> 2];
27005 d22 = +HEAPF32[i4 + 40 >> 2];
27006 d43 = d19 * d18 + d21 * d20 + d24 * d22;
27007 d44 = d27 * d18 + d29 * d20 + d31 * d22;
27008 d45 = d34 * d18 + d36 * d20 + d38 * d22;
27009 HEAPF32[i9 + 8 >> 2] = d25;
27010 HEAPF32[i9 + 12 >> 2] = d32;
27011 HEAPF32[i9 + 16 >> 2] = d39;
27012 HEAPF32[i9 + 20 >> 2] = 0.0;
27013 HEAPF32[i9 + 24 >> 2] = d40;
27014 HEAPF32[i9 + 28 >> 2] = d41;
27015 HEAPF32[i9 + 32 >> 2] = d42;
27016 HEAPF32[i9 + 36 >> 2] = 0.0;
27017 HEAPF32[i9 + 40 >> 2] = d43;
27018 HEAPF32[i9 + 44 >> 2] = d44;
27019 HEAPF32[i9 + 48 >> 2] = d45;
27020 HEAPF32[i9 + 52 >> 2] = 0.0;
27021 i46 = i2 + 48 | 0;
27022 d22 = +HEAPF32[i4 + 48 >> 2] - +HEAPF32[i46 >> 2];
27023 i47 = i2 + 52 | 0;
27024 d20 = +HEAPF32[i4 + 52 >> 2] - +HEAPF32[i47 >> 2];
27025 i48 = i2 + 56 | 0;
27026 d18 = +HEAPF32[i4 + 56 >> 2] - +HEAPF32[i48 >> 2];
27027 HEAPF32[i9 + 56 >> 2] = d25;
27028 HEAPF32[i9 + 60 >> 2] = d40;
27029 HEAPF32[i9 + 64 >> 2] = d43;
27030 HEAPF32[i9 + 68 >> 2] = 0.0;
27031 HEAPF32[i9 + 72 >> 2] = d32;
27032 HEAPF32[i9 + 76 >> 2] = d41;
27033 HEAPF32[i9 + 80 >> 2] = d44;
27034 HEAPF32[i9 + 84 >> 2] = 0.0;
27035 HEAPF32[i9 + 88 >> 2] = d39;
27036 HEAPF32[i9 + 92 >> 2] = d42;
27037 HEAPF32[i9 + 96 >> 2] = d45;
27038 HEAPF32[i9 + 100 >> 2] = 0.0;
27039 HEAPF32[i9 + 104 >> 2] = d19 * d22 + d21 * d20 + d24 * d18;
27040 HEAPF32[i9 + 108 >> 2] = d27 * d22 + d29 * d20 + d31 * d18;
27041 HEAPF32[i9 + 112 >> 2] = d34 * d22 + d36 * d20 + d38 * d18;
27042 HEAPF32[i9 + 116 >> 2] = 0.0;
27043 i4 = i9 + 120 | 0;
27044 HEAP32[i4 >> 2] = i7 ? 36 : 82;
27045 i2 = i9 + 124 | 0;
27046 HEAP32[i2 >> 2] = i7 ? 0 : 0;
27047 HEAP32[i10 + 364 >> 2] = 0;
27048 _memset(i10 + 128 | 0, 0, 16);
27049 HEAP32[i10 + 376 >> 2] = 2;
27050 HEAP32[i10 + 368 >> 2] = 0;
27051 HEAPF32[i10 + 144 >> 2] = 0.0;
27052 i7 = i5 | 0;
27053 i49 = i5 + 4 | 0;
27054 d18 = -0.0 - +HEAPF32[i49 >> 2];
27055 i50 = i5 + 8 | 0;
27056 d38 = -0.0 - +HEAPF32[i50 >> 2];
27057 HEAPF32[i11 >> 2] = -0.0 - +HEAPF32[i7 >> 2];
27058 HEAPF32[i11 + 4 >> 2] = d18;
27059 HEAPF32[i11 + 8 >> 2] = d38;
27060 HEAPF32[i11 + 12 >> 2] = 0.0;
27061 i5 = __ZN12gjkepa2_impl3GJK8EvaluateERKNS_13MinkowskiDiffERK9btVector3(i10, i9, i11) | 0;
27062 if ((i5 | 0) == 2) {
27063 HEAP32[i15 >> 2] = 2;
27064 i51 = 0;
27065 STACKTOP = i8;
27066 return i51 | 0;
27067 } else if ((i5 | 0) == 1) {
27068 i5 = i12 + 9800 | 0;
27069 i11 = i12 + 9804 | 0;
27070 _memset(i12 + 9792 | 0, 0, 16);
27071 HEAP32[i12 >> 2] = 9;
27072 i9 = i12 + 40 | 0;
27073 HEAP32[i12 + 9788 >> 2] = 0;
27074 _memset(i9 | 0, 0, 20);
27075 i52 = 0;
27076 do {
27077 i53 = 128 - i52 - 1 | 0;
27078 i54 = i12 + 2108 + (i53 * 60 | 0) | 0;
27079 HEAP32[i12 + 2108 + (i53 * 60 | 0) + 48 >> 2] = 0;
27080 HEAP32[i12 + 2108 + (i53 * 60 | 0) + 52 >> 2] = HEAP32[i5 >> 2];
27081 i53 = HEAP32[i5 >> 2] | 0;
27082 if ((i53 | 0) != 0) {
27083 HEAP32[i53 + 48 >> 2] = i54;
27084 }
27085 HEAP32[i5 >> 2] = i54;
27086 HEAP32[i11 >> 2] = (HEAP32[i11 >> 2] | 0) + 1;
27087 i52 = i52 + 1 | 0;
27088 } while (i52 >>> 0 < 128);
27089 d38 = -0.0 - +HEAPF32[i49 >> 2];
27090 d18 = -0.0 - +HEAPF32[i50 >> 2];
27091 HEAPF32[i13 >> 2] = -0.0 - +HEAPF32[i7 >> 2];
27092 HEAPF32[i13 + 4 >> 2] = d38;
27093 HEAPF32[i13 + 8 >> 2] = d18;
27094 HEAPF32[i13 + 12 >> 2] = 0.0;
27095 if ((__ZN12gjkepa2_impl3EPA8EvaluateERNS_3GJKERK9btVector3(i12, i10, i13) | 0) == 9) {
27096 HEAP32[i15 >> 2] = 3;
27097 i51 = 0;
27098 STACKTOP = i8;
27099 return i51 | 0;
27100 }
27101 i13 = i12 + 36 | 0;
27102 if ((HEAP32[i13 >> 2] | 0) == 0) {
27103 d55 = 0.0;
27104 d56 = 0.0;
27105 d57 = 0.0;
27106 } else {
27107 i10 = i14 | 0;
27108 i7 = i14 + 4 | 0;
27109 i50 = i14 + 8 | 0;
27110 d18 = 0.0;
27111 d38 = 0.0;
27112 d20 = 0.0;
27113 i49 = 0;
27114 while (1) {
27115 i52 = HEAP32[i4 >> 2] | 0;
27116 i11 = (HEAP32[i17 >> 2] | 0) + (HEAP32[i2 >> 2] | 0) | 0;
27117 if ((i52 & 1 | 0) == 0) {
27118 i58 = i52;
27119 } else {
27120 i58 = HEAP32[(HEAP32[i11 >> 2] | 0) + (i52 - 1) >> 2] | 0;
27121 }
27122 FUNCTION_TABLE_viii[i58 & 127](i14, i11, HEAP32[i12 + 4 + (i49 << 2) >> 2] | 0);
27123 d36 = +HEAPF32[i12 + 20 + (i49 << 2) >> 2];
27124 d22 = d20 + +HEAPF32[i10 >> 2] * d36;
27125 d34 = d38 + d36 * +HEAPF32[i7 >> 2];
27126 d31 = d18 + d36 * +HEAPF32[i50 >> 2];
27127 i11 = i49 + 1 | 0;
27128 if (i11 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0) {
27129 d18 = d31;
27130 d38 = d34;
27131 d20 = d22;
27132 i49 = i11;
27133 } else {
27134 d55 = d31;
27135 d56 = d34;
27136 d57 = d22;
27137 break;
27138 }
27139 }
27140 }
27141 HEAP32[i15 >> 2] = 1;
27142 d20 = +HEAPF32[i47 >> 2] + (d57 * +HEAPF32[i1 >> 2] + d56 * +HEAPF32[i28 >> 2] + d55 * +HEAPF32[i35 >> 2]);
27143 d38 = +HEAPF32[i48 >> 2] + (d57 * +HEAPF32[i23 >> 2] + d56 * +HEAPF32[i30 >> 2] + d55 * +HEAPF32[i37 >> 2]);
27144 HEAPF32[i6 + 4 >> 2] = +HEAPF32[i46 >> 2] + (d57 * +HEAPF32[i3 >> 2] + d56 * +HEAPF32[i26 >> 2] + d55 * +HEAPF32[i33 >> 2]);
27145 HEAPF32[i6 + 8 >> 2] = d20;
27146 HEAPF32[i6 + 12 >> 2] = d38;
27147 HEAPF32[i6 + 16 >> 2] = 0.0;
27148 d38 = +HEAPF32[i9 >> 2];
27149 d20 = +HEAPF32[i12 + 56 >> 2];
27150 d18 = +HEAPF32[i12 + 44 >> 2];
27151 d22 = +HEAPF32[i12 + 48 >> 2];
27152 d34 = d57 - d38 * d20;
27153 d57 = d56 - d20 * d18;
27154 d56 = d55 - d20 * d22;
27155 d55 = +HEAPF32[i47 >> 2] + (d34 * +HEAPF32[i1 >> 2] + d57 * +HEAPF32[i28 >> 2] + d56 * +HEAPF32[i35 >> 2]);
27156 d31 = +HEAPF32[i48 >> 2] + (d34 * +HEAPF32[i23 >> 2] + d57 * +HEAPF32[i30 >> 2] + d56 * +HEAPF32[i37 >> 2]);
27157 HEAPF32[i16 >> 2] = +HEAPF32[i46 >> 2] + (d34 * +HEAPF32[i3 >> 2] + d57 * +HEAPF32[i26 >> 2] + d56 * +HEAPF32[i33 >> 2]);
27158 HEAPF32[i6 + 24 >> 2] = d55;
27159 HEAPF32[i6 + 28 >> 2] = d31;
27160 HEAPF32[i6 + 32 >> 2] = 0.0;
27161 HEAPF32[i6 + 36 >> 2] = -0.0 - d38;
27162 HEAPF32[i6 + 40 >> 2] = -0.0 - d18;
27163 HEAPF32[i6 + 44 >> 2] = -0.0 - d22;
27164 HEAPF32[i6 + 48 >> 2] = 0.0;
27165 HEAPF32[i6 + 52 >> 2] = -0.0 - d20;
27166 i51 = 1;
27167 STACKTOP = i8;
27168 return i51 | 0;
27169 } else {
27170 i51 = 0;
27171 STACKTOP = i8;
27172 return i51 | 0;
27173 }
27174 return 0;
27175 }
27176 function __ZN22btVoronoiSimplexSolver25closestPtPointTetrahedronERK9btVector3S2_S2_S2_S2_R25btSubSimplexClosestResult(i1, i2, i3, i4, i5, i6, i7) {
27177 i1 = i1 | 0;
27178 i2 = i2 | 0;
27179 i3 = i3 | 0;
27180 i4 = i4 | 0;
27181 i5 = i5 | 0;
27182 i6 = i6 | 0;
27183 i7 = i7 | 0;
27184 var i8 = 0, i9 = 0, i10 = 0, i11 = 0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, d42 = 0.0, d43 = 0.0, d44 = 0.0;
27185 i1 = STACKTOP;
27186 STACKTOP = STACKTOP + 40 | 0;
27187 i8 = i1 | 0;
27188 i9 = i8 + 16 | 0;
27189 HEAP16[i9 >> 1] = 0;
27190 i10 = i7;
27191 i11 = i2;
27192 HEAP32[i10 >> 2] = HEAP32[i11 >> 2];
27193 HEAP32[i10 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
27194 HEAP32[i10 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
27195 HEAP32[i10 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
27196 i11 = i7 + 16 | 0;
27197 HEAP16[i11 >> 1] = HEAP16[i11 >> 1] | 15;
27198 d12 = +HEAPF32[i4 >> 2];
27199 d13 = +HEAPF32[i3 >> 2];
27200 d14 = d12 - d13;
27201 d15 = +HEAPF32[i4 + 4 >> 2];
27202 d16 = +HEAPF32[i3 + 4 >> 2];
27203 d17 = d15 - d16;
27204 d18 = +HEAPF32[i4 + 8 >> 2];
27205 d19 = +HEAPF32[i3 + 8 >> 2];
27206 d20 = d18 - d19;
27207 d21 = +HEAPF32[i5 >> 2];
27208 d22 = d21 - d13;
27209 d23 = +HEAPF32[i5 + 4 >> 2];
27210 d24 = d23 - d16;
27211 d25 = +HEAPF32[i5 + 8 >> 2];
27212 d26 = d25 - d19;
27213 d27 = d17 * d26 - d20 * d24;
27214 d28 = d20 * d22 - d14 * d26;
27215 d29 = d14 * d24 - d17 * d22;
27216 d30 = +HEAPF32[i6 >> 2];
27217 d31 = d30 - d13;
27218 d32 = +HEAPF32[i6 + 4 >> 2];
27219 d33 = d32 - d16;
27220 d34 = +HEAPF32[i6 + 8 >> 2];
27221 d35 = d34 - d19;
27222 d36 = d31 * d27 + d33 * d28 + d29 * d35;
27223 if (d36 * d36 < 9.99999905104687e-9) {
27224 i37 = -1;
27225 } else {
27226 i37 = d36 * (d28 * (+HEAPF32[i2 + 4 >> 2] - d16) + d27 * (+HEAPF32[i2 >> 2] - d13) + d29 * (+HEAPF32[i2 + 8 >> 2] - d19)) < 0.0 | 0;
27227 }
27228 d29 = d24 * d35 - d26 * d33;
27229 d27 = d26 * d31 - d22 * d35;
27230 d28 = d22 * d33 - d24 * d31;
27231 d36 = d14 * d29 + d17 * d27 + d28 * d20;
27232 if (d36 * d36 < 9.99999905104687e-9) {
27233 i38 = -1;
27234 } else {
27235 i38 = d36 * (d27 * (+HEAPF32[i2 + 4 >> 2] - d16) + d29 * (+HEAPF32[i2 >> 2] - d13) + d28 * (+HEAPF32[i2 + 8 >> 2] - d19)) < 0.0 | 0;
27236 }
27237 d28 = d33 * d20 - d35 * d17;
27238 d29 = d35 * d14 - d31 * d20;
27239 d20 = d31 * d17 - d33 * d14;
27240 d14 = d22 * d28 + d24 * d29 + d20 * d26;
27241 if (d14 * d14 < 9.99999905104687e-9) {
27242 i39 = -1;
27243 } else {
27244 i39 = d14 * (d29 * (+HEAPF32[i2 + 4 >> 2] - d16) + d28 * (+HEAPF32[i2 >> 2] - d13) + d20 * (+HEAPF32[i2 + 8 >> 2] - d19)) < 0.0 | 0;
27245 }
27246 d20 = d30 - d12;
27247 d30 = d32 - d15;
27248 d32 = d34 - d18;
27249 d34 = d21 - d12;
27250 d21 = d23 - d15;
27251 d23 = d25 - d18;
27252 d25 = d30 * d23 - d32 * d21;
27253 d28 = d32 * d34 - d20 * d23;
27254 d23 = d20 * d21 - d30 * d34;
27255 d34 = (d13 - d12) * d25 + (d16 - d15) * d28 + d23 * (d19 - d18);
27256 if (d34 * d34 < 9.99999905104687e-9) {
27257 i40 = -1;
27258 } else {
27259 i40 = d34 * (d28 * (+HEAPF32[i2 + 4 >> 2] - d15) + d25 * (+HEAPF32[i2 >> 2] - d12) + d23 * (+HEAPF32[i2 + 8 >> 2] - d18)) < 0.0 | 0;
27260 }
27261 if ((i38 | i37 | i39 | i40 | 0) < 0) {
27262 HEAP8[i7 + 36 | 0] = 1;
27263 i41 = 0;
27264 STACKTOP = i1;
27265 return i41 | 0;
27266 }
27267 i10 = (i37 | 0) != 0;
27268 i37 = (i38 | 0) == 0;
27269 i38 = (i39 | 0) == 0;
27270 i39 = (i40 | 0) == 0;
27271 if (i37 & (i10 ^ 1) & i38 & i39) {
27272 i41 = 0;
27273 STACKTOP = i1;
27274 return i41 | 0;
27275 }
27276 do {
27277 if (i10) {
27278 __ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(0, i2, i3, i4, i5, i8) | 0;
27279 d18 = +HEAPF32[i8 >> 2];
27280 d23 = +HEAPF32[i8 + 4 >> 2];
27281 d12 = +HEAPF32[i8 + 8 >> 2];
27282 d25 = d18 - +HEAPF32[i2 >> 2];
27283 d15 = d23 - +HEAPF32[i2 + 4 >> 2];
27284 d28 = d12 - +HEAPF32[i2 + 8 >> 2];
27285 d34 = d25 * d25 + d15 * d15 + d28 * d28;
27286 if (d34 >= 3.4028234663852886e+38) {
27287 d42 = 3.4028234663852886e+38;
27288 break;
27289 }
27290 d28 = +HEAPF32[i8 + 12 >> 2];
27291 HEAPF32[i7 >> 2] = d18;
27292 HEAPF32[i7 + 4 >> 2] = d23;
27293 HEAPF32[i7 + 8 >> 2] = d12;
27294 HEAPF32[i7 + 12 >> 2] = d28;
27295 i40 = HEAP16[i9 >> 1] | 0;
27296 HEAP16[i11 >> 1] = i40 & 1 | HEAP16[i11 >> 1] & -16 | i40 & 2 | i40 & 4;
27297 d28 = +HEAPF32[i8 + 24 >> 2];
27298 d12 = +HEAPF32[i8 + 28 >> 2];
27299 HEAPF32[i7 + 20 >> 2] = +HEAPF32[i8 + 20 >> 2];
27300 HEAPF32[i7 + 24 >> 2] = d28;
27301 HEAPF32[i7 + 28 >> 2] = d12;
27302 HEAPF32[i7 + 32 >> 2] = 0.0;
27303 d42 = d34;
27304 } else {
27305 d42 = 3.4028234663852886e+38;
27306 }
27307 } while (0);
27308 do {
27309 if (i37) {
27310 d43 = d42;
27311 } else {
27312 __ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(0, i2, i3, i5, i6, i8) | 0;
27313 d34 = +HEAPF32[i8 >> 2];
27314 d12 = +HEAPF32[i8 + 4 >> 2];
27315 d28 = +HEAPF32[i8 + 8 >> 2];
27316 d23 = d34 - +HEAPF32[i2 >> 2];
27317 d18 = d12 - +HEAPF32[i2 + 4 >> 2];
27318 d15 = d28 - +HEAPF32[i2 + 8 >> 2];
27319 d25 = d23 * d23 + d18 * d18 + d15 * d15;
27320 if (d25 >= d42) {
27321 d43 = d42;
27322 break;
27323 }
27324 d15 = +HEAPF32[i8 + 12 >> 2];
27325 HEAPF32[i7 >> 2] = d34;
27326 HEAPF32[i7 + 4 >> 2] = d12;
27327 HEAPF32[i7 + 8 >> 2] = d28;
27328 HEAPF32[i7 + 12 >> 2] = d15;
27329 i10 = HEAP16[i9 >> 1] | 0;
27330 HEAP16[i11 >> 1] = i10 & 1 | HEAP16[i11 >> 1] & -16 | (i10 & 65535) >>> 1 << 2 & 4 | (i10 & 65535) >>> 2 << 3 & 8;
27331 d15 = +HEAPF32[i8 + 24 >> 2];
27332 d28 = +HEAPF32[i8 + 28 >> 2];
27333 HEAPF32[i7 + 20 >> 2] = +HEAPF32[i8 + 20 >> 2];
27334 HEAPF32[i7 + 24 >> 2] = 0.0;
27335 HEAPF32[i7 + 28 >> 2] = d15;
27336 HEAPF32[i7 + 32 >> 2] = d28;
27337 d43 = d25;
27338 }
27339 } while (0);
27340 do {
27341 if (i38) {
27342 d44 = d43;
27343 } else {
27344 __ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(0, i2, i3, i6, i4, i8) | 0;
27345 d42 = +HEAPF32[i8 >> 2];
27346 d25 = +HEAPF32[i8 + 4 >> 2];
27347 d28 = +HEAPF32[i8 + 8 >> 2];
27348 d15 = d42 - +HEAPF32[i2 >> 2];
27349 d12 = d25 - +HEAPF32[i2 + 4 >> 2];
27350 d34 = d28 - +HEAPF32[i2 + 8 >> 2];
27351 d18 = d15 * d15 + d12 * d12 + d34 * d34;
27352 if (d18 >= d43) {
27353 d44 = d43;
27354 break;
27355 }
27356 d34 = +HEAPF32[i8 + 12 >> 2];
27357 HEAPF32[i7 >> 2] = d42;
27358 HEAPF32[i7 + 4 >> 2] = d25;
27359 HEAPF32[i7 + 8 >> 2] = d28;
27360 HEAPF32[i7 + 12 >> 2] = d34;
27361 i37 = HEAP16[i9 >> 1] | 0;
27362 HEAP16[i11 >> 1] = i37 & 1 | HEAP16[i11 >> 1] & -16 | (i37 & 65535) >>> 2 << 1 & 2 | (i37 & 65535) >>> 1 << 3 & 8;
27363 d34 = +HEAPF32[i8 + 28 >> 2];
27364 d28 = +HEAPF32[i8 + 24 >> 2];
27365 HEAPF32[i7 + 20 >> 2] = +HEAPF32[i8 + 20 >> 2];
27366 HEAPF32[i7 + 24 >> 2] = d34;
27367 HEAPF32[i7 + 28 >> 2] = 0.0;
27368 HEAPF32[i7 + 32 >> 2] = d28;
27369 d44 = d18;
27370 }
27371 } while (0);
27372 if (i39) {
27373 i41 = 1;
27374 STACKTOP = i1;
27375 return i41 | 0;
27376 }
27377 __ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(0, i2, i4, i6, i5, i8) | 0;
27378 d43 = +HEAPF32[i8 >> 2];
27379 d18 = +HEAPF32[i8 + 4 >> 2];
27380 d28 = +HEAPF32[i8 + 8 >> 2];
27381 d34 = d43 - +HEAPF32[i2 >> 2];
27382 d25 = d18 - +HEAPF32[i2 + 4 >> 2];
27383 d42 = d28 - +HEAPF32[i2 + 8 >> 2];
27384 if (d34 * d34 + d25 * d25 + d42 * d42 >= d44) {
27385 i41 = 1;
27386 STACKTOP = i1;
27387 return i41 | 0;
27388 }
27389 d44 = +HEAPF32[i8 + 12 >> 2];
27390 HEAPF32[i7 >> 2] = d43;
27391 HEAPF32[i7 + 4 >> 2] = d18;
27392 HEAPF32[i7 + 8 >> 2] = d28;
27393 HEAPF32[i7 + 12 >> 2] = d44;
27394 i2 = HEAP16[i9 >> 1] | 0;
27395 HEAP16[i11 >> 1] = i2 & 4 | HEAP16[i11 >> 1] & -16 | i2 << 1 & 2 | (i2 & 65535) >>> 1 << 3 & 8;
27396 d44 = +HEAPF32[i8 + 20 >> 2];
27397 d28 = +HEAPF32[i8 + 28 >> 2];
27398 d18 = +HEAPF32[i8 + 24 >> 2];
27399 HEAPF32[i7 + 20 >> 2] = 0.0;
27400 HEAPF32[i7 + 24 >> 2] = d44;
27401 HEAPF32[i7 + 28 >> 2] = d28;
27402 HEAPF32[i7 + 32 >> 2] = d18;
27403 i41 = 1;
27404 STACKTOP = i1;
27405 return i41 | 0;
27406 }
27407 function __ZN35btSequentialImpulseConstraintSolver20solveSingleIterationEiPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
27408 i1 = i1 | 0;
27409 i2 = i2 | 0;
27410 i3 = i3 | 0;
27411 i4 = i4 | 0;
27412 i5 = i5 | 0;
27413 i6 = i6 | 0;
27414 i7 = i7 | 0;
27415 i8 = i8 | 0;
27416 i9 = i9 | 0;
27417 i10 = i10 | 0;
27418 i11 = i11 | 0;
27419 var i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, d27 = 0.0, d28 = 0.0;
27420 i11 = i1 + 8 | 0;
27421 i10 = HEAP32[i11 >> 2] | 0;
27422 i6 = i1 + 48 | 0;
27423 i5 = HEAP32[i6 >> 2] | 0;
27424 i4 = i9 + 60 | 0;
27425 i3 = HEAP32[i4 >> 2] | 0;
27426 do {
27427 if ((i3 & 1 | 0) == 0) {
27428 i12 = i3;
27429 } else {
27430 if ((i2 & 7 | 0) != 0) {
27431 i12 = i3;
27432 break;
27433 }
27434 if ((i10 | 0) > 0) {
27435 i13 = HEAP32[i1 + 76 >> 2] | 0;
27436 i14 = i1 + 124 | 0;
27437 i15 = 0;
27438 i16 = HEAP32[i14 >> 2] | 0;
27439 do {
27440 i17 = i13 + (i15 << 2) | 0;
27441 i18 = HEAP32[i17 >> 2] | 0;
27442 i15 = i15 + 1 | 0;
27443 i16 = (Math_imul(i16, 1664525) | 0) + 1013904223 | 0;
27444 do {
27445 if (i15 >>> 0 < 65537) {
27446 i19 = i16 >>> 16 ^ i16;
27447 if (i15 >>> 0 >= 257) {
27448 i20 = i19;
27449 break;
27450 }
27451 i21 = i19 >>> 8 ^ i19;
27452 if (i15 >>> 0 >= 17) {
27453 i20 = i21;
27454 break;
27455 }
27456 i19 = i21 >>> 4 ^ i21;
27457 if (i15 >>> 0 >= 5) {
27458 i20 = i19;
27459 break;
27460 }
27461 i21 = i19 >>> 2 ^ i19;
27462 if (i15 >>> 0 >= 3) {
27463 i20 = i21;
27464 break;
27465 }
27466 i20 = i21 >>> 1 ^ i21;
27467 } else {
27468 i20 = i16;
27469 }
27470 } while (0);
27471 i21 = i13 + (((i20 >>> 0) % (i15 >>> 0) | 0) << 2) | 0;
27472 HEAP32[i17 >> 2] = HEAP32[i21 >> 2];
27473 HEAP32[i21 >> 2] = i18;
27474 } while ((i15 | 0) < (i10 | 0));
27475 HEAP32[i14 >> 2] = i16;
27476 }
27477 if ((i5 | 0) > 0) {
27478 i15 = HEAP32[i1 + 96 >> 2] | 0;
27479 i13 = i1 + 124 | 0;
27480 i21 = 0;
27481 i19 = HEAP32[i13 >> 2] | 0;
27482 do {
27483 i22 = i15 + (i21 << 2) | 0;
27484 i23 = HEAP32[i22 >> 2] | 0;
27485 i21 = i21 + 1 | 0;
27486 i19 = (Math_imul(i19, 1664525) | 0) + 1013904223 | 0;
27487 do {
27488 if (i21 >>> 0 < 65537) {
27489 i24 = i19 >>> 16 ^ i19;
27490 if (i21 >>> 0 >= 257) {
27491 i25 = i24;
27492 break;
27493 }
27494 i26 = i24 >>> 8 ^ i24;
27495 if (i21 >>> 0 >= 17) {
27496 i25 = i26;
27497 break;
27498 }
27499 i24 = i26 >>> 4 ^ i26;
27500 if (i21 >>> 0 >= 5) {
27501 i25 = i24;
27502 break;
27503 }
27504 i26 = i24 >>> 2 ^ i24;
27505 if (i21 >>> 0 >= 3) {
27506 i25 = i26;
27507 break;
27508 }
27509 i25 = i26 >>> 1 ^ i26;
27510 } else {
27511 i25 = i19;
27512 }
27513 } while (0);
27514 i18 = i15 + (((i25 >>> 0) % (i21 >>> 0) | 0) << 2) | 0;
27515 HEAP32[i22 >> 2] = HEAP32[i18 >> 2];
27516 HEAP32[i18 >> 2] = i23;
27517 } while ((i21 | 0) < (i5 | 0));
27518 HEAP32[i13 >> 2] = i19;
27519 }
27520 i12 = HEAP32[i4 >> 2] | 0;
27521 }
27522 } while (0);
27523 i4 = i1 + 28 | 0;
27524 i5 = (HEAP32[i4 >> 2] | 0) > 0;
27525 if ((i12 & 256 | 0) == 0) {
27526 if (i5) {
27527 i12 = i1 + 36 | 0;
27528 i25 = 0;
27529 do {
27530 i10 = HEAP32[i12 >> 2] | 0;
27531 __ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(0, HEAP32[i10 + (i25 * 136 | 0) + 104 >> 2] | 0, HEAP32[i10 + (i25 * 136 | 0) + 108 >> 2] | 0, i10 + (i25 * 136 | 0) | 0);
27532 i25 = i25 + 1 | 0;
27533 } while ((i25 | 0) < (HEAP32[i4 >> 2] | 0));
27534 }
27535 if ((i8 | 0) > 0) {
27536 i25 = i9 + 12 | 0;
27537 i12 = 0;
27538 do {
27539 i10 = HEAP32[i7 + (i12 << 2) >> 2] | 0;
27540 FUNCTION_TABLE_viiif[HEAP32[(HEAP32[i10 >> 2] | 0) + 24 >> 2] & 15](i10, HEAP32[i10 + 24 >> 2] | 0, HEAP32[i10 + 28 >> 2] | 0, +HEAPF32[i25 >> 2]);
27541 i12 = i12 + 1 | 0;
27542 } while ((i12 | 0) < (i8 | 0));
27543 }
27544 i12 = HEAP32[i11 >> 2] | 0;
27545 if ((i12 | 0) > 0) {
27546 i25 = i1 + 76 | 0;
27547 i10 = i1 + 16 | 0;
27548 i20 = 0;
27549 do {
27550 i3 = HEAP32[(HEAP32[i25 >> 2] | 0) + (i20 << 2) >> 2] | 0;
27551 i2 = HEAP32[i10 >> 2] | 0;
27552 __ZN35btSequentialImpulseConstraintSolver36resolveSingleConstraintRowLowerLimitER11btRigidBodyS1_RK18btSolverConstraint(0, HEAP32[i2 + (i3 * 136 | 0) + 104 >> 2] | 0, HEAP32[i2 + (i3 * 136 | 0) + 108 >> 2] | 0, i2 + (i3 * 136 | 0) | 0);
27553 i20 = i20 + 1 | 0;
27554 } while ((i20 | 0) < (i12 | 0));
27555 }
27556 i12 = HEAP32[i6 >> 2] | 0;
27557 if ((i12 | 0) <= 0) {
27558 return +0.0;
27559 }
27560 i20 = i1 + 96 | 0;
27561 i10 = i1 + 56 | 0;
27562 i25 = i1 + 16 | 0;
27563 i3 = 0;
27564 do {
27565 i2 = HEAP32[(HEAP32[i20 >> 2] | 0) + (i3 << 2) >> 2] | 0;
27566 i21 = HEAP32[i10 >> 2] | 0;
27567 d27 = +HEAPF32[(HEAP32[i25 >> 2] | 0) + ((HEAP32[i21 + (i2 * 136 | 0) + 100 >> 2] | 0) * 136 | 0) + 84 >> 2];
27568 if (d27 > 0.0) {
27569 d28 = d27 * +HEAPF32[i21 + (i2 * 136 | 0) + 88 >> 2];
27570 HEAPF32[i21 + (i2 * 136 | 0) + 124 >> 2] = -0.0 - d28;
27571 HEAPF32[i21 + (i2 * 136 | 0) + 128 >> 2] = d28;
27572 __ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(0, HEAP32[i21 + (i2 * 136 | 0) + 104 >> 2] | 0, HEAP32[i21 + (i2 * 136 | 0) + 108 >> 2] | 0, i21 + (i2 * 136 | 0) | 0);
27573 }
27574 i3 = i3 + 1 | 0;
27575 } while ((i3 | 0) < (i12 | 0));
27576 return +0.0;
27577 } else {
27578 if (i5) {
27579 i5 = i1 + 36 | 0;
27580 i12 = 0;
27581 do {
27582 i3 = HEAP32[i5 >> 2] | 0;
27583 __ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(0, HEAP32[i3 + (i12 * 136 | 0) + 104 >> 2] | 0, HEAP32[i3 + (i12 * 136 | 0) + 108 >> 2] | 0, i3 + (i12 * 136 | 0) | 0);
27584 i12 = i12 + 1 | 0;
27585 } while ((i12 | 0) < (HEAP32[i4 >> 2] | 0));
27586 }
27587 if ((i8 | 0) > 0) {
27588 i4 = i9 + 12 | 0;
27589 i9 = 0;
27590 do {
27591 i12 = HEAP32[i7 + (i9 << 2) >> 2] | 0;
27592 FUNCTION_TABLE_viiif[HEAP32[(HEAP32[i12 >> 2] | 0) + 24 >> 2] & 15](i12, HEAP32[i12 + 24 >> 2] | 0, HEAP32[i12 + 28 >> 2] | 0, +HEAPF32[i4 >> 2]);
27593 i9 = i9 + 1 | 0;
27594 } while ((i9 | 0) < (i8 | 0));
27595 }
27596 i8 = HEAP32[i11 >> 2] | 0;
27597 if ((i8 | 0) > 0) {
27598 i11 = i1 + 76 | 0;
27599 i9 = i1 + 16 | 0;
27600 i4 = 0;
27601 do {
27602 i7 = HEAP32[(HEAP32[i11 >> 2] | 0) + (i4 << 2) >> 2] | 0;
27603 i12 = HEAP32[i9 >> 2] | 0;
27604 __ZN35btSequentialImpulseConstraintSolver36resolveSingleConstraintRowLowerLimitER11btRigidBodyS1_RK18btSolverConstraint(0, HEAP32[i12 + (i7 * 136 | 0) + 104 >> 2] | 0, HEAP32[i12 + (i7 * 136 | 0) + 108 >> 2] | 0, i12 + (i7 * 136 | 0) | 0);
27605 i4 = i4 + 1 | 0;
27606 } while ((i4 | 0) < (i8 | 0));
27607 }
27608 i8 = HEAP32[i6 >> 2] | 0;
27609 if ((i8 | 0) <= 0) {
27610 return +0.0;
27611 }
27612 i6 = i1 + 96 | 0;
27613 i4 = i1 + 56 | 0;
27614 i9 = i1 + 16 | 0;
27615 i1 = 0;
27616 do {
27617 i11 = HEAP32[(HEAP32[i6 >> 2] | 0) + (i1 << 2) >> 2] | 0;
27618 i7 = HEAP32[i4 >> 2] | 0;
27619 d28 = +HEAPF32[(HEAP32[i9 >> 2] | 0) + ((HEAP32[i7 + (i11 * 136 | 0) + 100 >> 2] | 0) * 136 | 0) + 84 >> 2];
27620 if (d28 > 0.0) {
27621 d27 = d28 * +HEAPF32[i7 + (i11 * 136 | 0) + 88 >> 2];
27622 HEAPF32[i7 + (i11 * 136 | 0) + 124 >> 2] = -0.0 - d27;
27623 HEAPF32[i7 + (i11 * 136 | 0) + 128 >> 2] = d27;
27624 __ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(0, HEAP32[i7 + (i11 * 136 | 0) + 104 >> 2] | 0, HEAP32[i7 + (i11 * 136 | 0) + 108 >> 2] | 0, i7 + (i11 * 136 | 0) | 0);
27625 }
27626 i1 = i1 + 1 | 0;
27627 } while ((i1 | 0) < (i8 | 0));
27628 return +0.0;
27629 }
27630 return 0.0;
27631 }
27632 function __ZN27btContinuousConvexCollision20computeClosestPointsERK11btTransformS2_R16btPointCollector(i1, i2, i3, i4) {
27633 i1 = i1 | 0;
27634 i2 = i2 | 0;
27635 i3 = i3 | 0;
27636 i4 = i4 | 0;
27637 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, i45 = 0, d46 = 0.0, i47 = 0, d48 = 0.0, i49 = 0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, i58 = 0, i59 = 0, i60 = 0, i61 = 0;
27638 i5 = STACKTOP;
27639 STACKTOP = STACKTOP + 280 | 0;
27640 i6 = i5 | 0;
27641 i7 = i5 + 80 | 0;
27642 i8 = i5 + 216 | 0;
27643 i9 = i5 + 232 | 0;
27644 i10 = i5 + 248 | 0;
27645 i11 = i5 + 264 | 0;
27646 i12 = i1 + 16 | 0;
27647 if ((HEAP32[i12 >> 2] | 0) == 0) {
27648 i13 = HEAP32[i1 + 12 >> 2] | 0;
27649 i14 = HEAP32[i1 + 20 >> 2] | 0;
27650 d15 = +HEAPF32[i2 >> 2];
27651 d16 = +HEAPF32[i2 + 4 >> 2];
27652 d17 = +HEAPF32[i2 + 8 >> 2];
27653 d18 = +HEAPF32[i2 + 16 >> 2];
27654 d19 = +HEAPF32[i2 + 20 >> 2];
27655 d20 = +HEAPF32[i2 + 24 >> 2];
27656 d21 = +HEAPF32[i2 + 32 >> 2];
27657 d22 = +HEAPF32[i2 + 36 >> 2];
27658 d23 = +HEAPF32[i2 + 40 >> 2];
27659 d24 = +HEAPF32[i2 + 48 >> 2];
27660 d25 = +HEAPF32[i2 + 52 >> 2];
27661 d26 = +HEAPF32[i2 + 56 >> 2];
27662 i27 = i3 | 0;
27663 i28 = i3 + 16 | 0;
27664 i29 = i3 + 32 | 0;
27665 i30 = i3 + 4 | 0;
27666 i31 = i3 + 20 | 0;
27667 i32 = i3 + 36 | 0;
27668 i33 = i3 + 8 | 0;
27669 i34 = i3 + 24 | 0;
27670 i35 = i3 + 40 | 0;
27671 d36 = +HEAPF32[i27 >> 2];
27672 d37 = +HEAPF32[i28 >> 2];
27673 d38 = +HEAPF32[i29 >> 2];
27674 d39 = +HEAPF32[i30 >> 2];
27675 d40 = +HEAPF32[i31 >> 2];
27676 d41 = +HEAPF32[i32 >> 2];
27677 d42 = +HEAPF32[i33 >> 2];
27678 d43 = +HEAPF32[i34 >> 2];
27679 d44 = +HEAPF32[i35 >> 2];
27680 i45 = i3 + 48 | 0;
27681 d46 = -0.0 - +HEAPF32[i45 >> 2];
27682 i47 = i3 + 52 | 0;
27683 d48 = -0.0 - +HEAPF32[i47 >> 2];
27684 i49 = i3 + 56 | 0;
27685 d50 = -0.0 - +HEAPF32[i49 >> 2];
27686 d51 = d15 * d36 + d18 * d37 + d21 * d38;
27687 d52 = d16 * d36 + d19 * d37 + d22 * d38;
27688 d53 = d17 * d36 + d20 * d37 + d23 * d38;
27689 d54 = d15 * d39 + d18 * d40 + d21 * d41;
27690 d55 = d16 * d39 + d19 * d40 + d22 * d41;
27691 d56 = d17 * d39 + d20 * d40 + d23 * d41;
27692 d57 = d15 * d42 + d18 * d43 + d21 * d44;
27693 d21 = d16 * d42 + d19 * d43 + d22 * d44;
27694 d22 = d17 * d42 + d20 * d43 + d23 * d44;
27695 i58 = HEAP32[(HEAP32[i13 >> 2] | 0) + 60 >> 2] | 0;
27696 i59 = i14 + 48 | 0;
27697 d23 = -0.0 - +HEAPF32[i59 >> 2];
27698 i60 = i14 + 52 | 0;
27699 d20 = -0.0 - +HEAPF32[i60 >> 2];
27700 i61 = i14 + 56 | 0;
27701 d17 = -0.0 - +HEAPF32[i61 >> 2];
27702 HEAPF32[i9 >> 2] = d51 * d23 + d54 * d20 + d57 * d17;
27703 HEAPF32[i9 + 4 >> 2] = d52 * d23 + d55 * d20 + d21 * d17;
27704 HEAPF32[i9 + 8 >> 2] = d53 * d23 + d56 * d20 + d22 * d17;
27705 HEAPF32[i9 + 12 >> 2] = 0.0;
27706 FUNCTION_TABLE_viii[i58 & 127](i8, i13, i9);
27707 d17 = +HEAPF32[i8 >> 2];
27708 d20 = +HEAPF32[i8 + 4 >> 2];
27709 d23 = +HEAPF32[i8 + 8 >> 2];
27710 d19 = d24 * d36 + d25 * d37 + d26 * d38 + (d36 * d46 + d37 * d48 + d38 * d50) + (d51 * d17 + d52 * d20 + d53 * d23);
27711 d53 = d24 * d39 + d25 * d40 + d26 * d41 + (d39 * d46 + d40 * d48 + d41 * d50) + (d54 * d17 + d55 * d20 + d56 * d23);
27712 d56 = d24 * d42 + d25 * d43 + d26 * d44 + (d42 * d46 + d43 * d48 + d44 * d50) + (d57 * d17 + d21 * d20 + d22 * d23);
27713 d23 = +HEAPF32[i59 >> 2];
27714 d22 = +HEAPF32[i60 >> 2];
27715 d20 = +HEAPF32[i61 >> 2];
27716 d21 = d20 * d56 + (d23 * d19 + d22 * d53) - +HEAPF32[i14 + 64 >> 2];
27717 d17 = d19 - d23 * d21;
27718 d23 = d53 - d22 * d21;
27719 d22 = d56 - d20 * d21;
27720 d20 = +HEAPF32[i27 >> 2];
27721 d56 = +HEAPF32[i30 >> 2];
27722 d53 = +HEAPF32[i33 >> 2];
27723 d19 = +HEAPF32[i28 >> 2];
27724 d57 = +HEAPF32[i31 >> 2];
27725 d50 = +HEAPF32[i34 >> 2];
27726 d44 = +HEAPF32[i47 >> 2] + (d17 * d19 + d23 * d57 + d22 * d50);
27727 d48 = +HEAPF32[i29 >> 2];
27728 d43 = +HEAPF32[i32 >> 2];
27729 d46 = +HEAPF32[i35 >> 2];
27730 d42 = +HEAPF32[i49 >> 2] + (d17 * d48 + d23 * d43 + d22 * d46);
27731 HEAPF32[i10 >> 2] = +HEAPF32[i45 >> 2] + (d53 * d22 + (d20 * d17 + d56 * d23));
27732 HEAPF32[i10 + 4 >> 2] = d44;
27733 HEAPF32[i10 + 8 >> 2] = d42;
27734 HEAPF32[i10 + 12 >> 2] = 0.0;
27735 d42 = +HEAPF32[i59 >> 2];
27736 d44 = +HEAPF32[i60 >> 2];
27737 d23 = +HEAPF32[i61 >> 2];
27738 HEAPF32[i11 >> 2] = d20 * d42 + d56 * d44 + d53 * d23;
27739 HEAPF32[i11 + 4 >> 2] = d19 * d42 + d57 * d44 + d50 * d23;
27740 HEAPF32[i11 + 8 >> 2] = d48 * d42 + d43 * d44 + d46 * d23;
27741 HEAPF32[i11 + 12 >> 2] = 0.0;
27742 FUNCTION_TABLE_viiif[HEAP32[(HEAP32[i4 >> 2] | 0) + 16 >> 2] & 15](i4, i11, i10, d21);
27743 STACKTOP = i5;
27744 return;
27745 } else {
27746 i10 = i1 + 4 | 0;
27747 __ZN22btVoronoiSimplexSolver5resetEv(HEAP32[i10 >> 2] | 0);
27748 i11 = HEAP32[i1 + 12 >> 2] | 0;
27749 i61 = HEAP32[i12 >> 2] | 0;
27750 i60 = HEAP32[i11 + 4 >> 2] | 0;
27751 i59 = HEAP32[i61 + 4 >> 2] | 0;
27752 d21 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i11 >> 2] | 0) + 44 >> 2] & 7](i11);
27753 i45 = HEAP32[i12 >> 2] | 0;
27754 d23 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i45 >> 2] | 0) + 44 >> 2] & 7](i45);
27755 __ZN17btGjkPairDetectorC2EPK13btConvexShapeS2_iiffP22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i6, i11, i61, i60, i59, d21, d23, HEAP32[i10 >> 2] | 0, HEAP32[i1 + 8 >> 2] | 0);
27756 HEAPF32[i7 + 128 >> 2] = 999999984306749400.0;
27757 HEAP32[i7 + 132 >> 2] = 0;
27758 i1 = i7;
27759 i10 = i2;
27760 HEAP32[i1 >> 2] = HEAP32[i10 >> 2];
27761 HEAP32[i1 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
27762 HEAP32[i1 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
27763 HEAP32[i1 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
27764 i10 = i7 + 16 | 0;
27765 i1 = i2 + 16 | 0;
27766 HEAP32[i10 >> 2] = HEAP32[i1 >> 2];
27767 HEAP32[i10 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
27768 HEAP32[i10 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
27769 HEAP32[i10 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
27770 i1 = i7 + 32 | 0;
27771 i10 = i2 + 32 | 0;
27772 HEAP32[i1 >> 2] = HEAP32[i10 >> 2];
27773 HEAP32[i1 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
27774 HEAP32[i1 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
27775 HEAP32[i1 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
27776 i10 = i7 + 48 | 0;
27777 i1 = i2 + 48 | 0;
27778 HEAP32[i10 >> 2] = HEAP32[i1 >> 2];
27779 HEAP32[i10 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
27780 HEAP32[i10 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
27781 HEAP32[i10 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
27782 i1 = i7 + 64 | 0;
27783 i10 = i3;
27784 HEAP32[i1 >> 2] = HEAP32[i10 >> 2];
27785 HEAP32[i1 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
27786 HEAP32[i1 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
27787 HEAP32[i1 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
27788 i10 = i7 + 80 | 0;
27789 i1 = i3 + 16 | 0;
27790 HEAP32[i10 >> 2] = HEAP32[i1 >> 2];
27791 HEAP32[i10 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
27792 HEAP32[i10 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
27793 HEAP32[i10 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
27794 i1 = i7 + 96 | 0;
27795 i10 = i3 + 32 | 0;
27796 HEAP32[i1 >> 2] = HEAP32[i10 >> 2];
27797 HEAP32[i1 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
27798 HEAP32[i1 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
27799 HEAP32[i1 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
27800 i10 = i7 + 112 | 0;
27801 i1 = i3 + 48 | 0;
27802 HEAP32[i10 >> 2] = HEAP32[i1 >> 2];
27803 HEAP32[i10 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
27804 HEAP32[i10 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
27805 HEAP32[i10 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
27806 __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i6, i7, i4 | 0, 0, 0);
27807 STACKTOP = i5;
27808 return;
27809 }
27810 }
27811 function __ZN16btCollisionWorld14debugDrawWorldEv(i1) {
27812 i1 = i1 | 0;
27813 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, d48 = 0.0;
27814 i2 = STACKTOP;
27815 STACKTOP = STACKTOP + 112 | 0;
27816 i3 = i2 | 0;
27817 i4 = i2 + 16 | 0;
27818 i5 = i2 + 32 | 0;
27819 i6 = i2 + 48 | 0;
27820 i7 = i2 + 64 | 0;
27821 i8 = i2 + 80 | 0;
27822 i9 = i2 + 96 | 0;
27823 i10 = i1;
27824 do {
27825 if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] & 127](i1) | 0) != 0) {
27826 i11 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
27827 if (((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i11 >> 2] | 0) + 48 >> 2] & 127](i11) | 0) & 8 | 0) == 0) {
27828 break;
27829 }
27830 i11 = i1 + 24 | 0;
27831 i12 = HEAP32[i11 >> 2] | 0;
27832 i13 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i12 >> 2] | 0) + 36 >> 2] & 127](i12) | 0;
27833 _memset(i3 | 0, 0, 16);
27834 if ((i13 | 0) > 0) {
27835 i14 = 0;
27836 } else {
27837 break;
27838 }
27839 do {
27840 i12 = HEAP32[i11 >> 2] | 0;
27841 i15 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i12 >> 2] | 0) + 40 >> 2] & 63](i12, i14) | 0;
27842 i12 = HEAP32[i15 + 1116 >> 2] | 0;
27843 if ((i12 | 0) > 0) {
27844 i16 = 0;
27845 do {
27846 i17 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
27847 FUNCTION_TABLE_viiifii[HEAP32[(HEAP32[i17 >> 2] | 0) + 32 >> 2] & 1](i17, i15 + 4 + (i16 * 276 | 0) + 32 | 0, i15 + 4 + (i16 * 276 | 0) + 64 | 0, +HEAPF32[i15 + 4 + (i16 * 276 | 0) + 80 >> 2], HEAP32[i15 + 4 + (i16 * 276 | 0) + 144 >> 2] | 0, i3);
27848 i16 = i16 + 1 | 0;
27849 } while ((i16 | 0) < (i12 | 0));
27850 }
27851 i14 = i14 + 1 | 0;
27852 } while ((i14 | 0) < (i13 | 0));
27853 }
27854 } while (0);
27855 if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] & 127](i1) | 0) == 0) {
27856 STACKTOP = i2;
27857 return;
27858 }
27859 i14 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
27860 if (((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i14 >> 2] | 0) + 48 >> 2] & 127](i14) | 0) & 3 | 0) == 0) {
27861 STACKTOP = i2;
27862 return;
27863 }
27864 i14 = i1 + 8 | 0;
27865 if ((HEAP32[i14 >> 2] | 0) <= 0) {
27866 STACKTOP = i2;
27867 return;
27868 }
27869 i3 = i1 + 16 | 0;
27870 i13 = i1 + 80 | 0;
27871 i11 = i7 | 0;
27872 i12 = i7 + 4 | 0;
27873 i16 = i7 + 8 | 0;
27874 i15 = i7 + 12 | 0;
27875 i17 = i5 | 0;
27876 i18 = i5 + 4 | 0;
27877 i19 = i5 + 8 | 0;
27878 i20 = i6 | 0;
27879 i21 = i6 + 4 | 0;
27880 i22 = i6 + 8 | 0;
27881 i23 = i8 | 0;
27882 i24 = i8 + 4 | 0;
27883 i25 = i8 + 8 | 0;
27884 i26 = i9 | 0;
27885 i27 = i9 + 4 | 0;
27886 i28 = i9 + 8 | 0;
27887 i29 = i5 + 12 | 0;
27888 i30 = i8 + 12 | 0;
27889 i31 = i6 + 12 | 0;
27890 i32 = i9 + 12 | 0;
27891 i33 = i4 | 0;
27892 i34 = i4 + 4 | 0;
27893 i35 = i4 + 8 | 0;
27894 i36 = i4 + 12 | 0;
27895 i37 = i1;
27896 i38 = 0;
27897 do {
27898 i39 = HEAP32[(HEAP32[i3 >> 2] | 0) + (i38 << 2) >> 2] | 0;
27899 do {
27900 if ((HEAP32[i39 + 204 >> 2] & 32 | 0) == 0) {
27901 do {
27902 if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] & 127](i1) | 0) != 0) {
27903 i40 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
27904 if (((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i40 >> 2] | 0) + 48 >> 2] & 127](i40) | 0) & 1 | 0) == 0) {
27905 break;
27906 }
27907 HEAPF32[i33 >> 2] = 1.0;
27908 HEAPF32[i34 >> 2] = 1.0;
27909 HEAPF32[i35 >> 2] = 1.0;
27910 HEAPF32[i36 >> 2] = 0.0;
27911 switch (HEAP32[i39 + 216 >> 2] | 0) {
27912 case 5:
27913 {
27914 HEAPF32[i33 >> 2] = 1.0;
27915 HEAPF32[i34 >> 2] = 1.0;
27916 HEAPF32[i35 >> 2] = 0.0;
27917 HEAPF32[i36 >> 2] = 0.0;
27918 break;
27919 }
27920 case 1:
27921 {
27922 HEAPF32[i33 >> 2] = 1.0;
27923 HEAPF32[i34 >> 2] = 1.0;
27924 HEAPF32[i35 >> 2] = 1.0;
27925 HEAPF32[i36 >> 2] = 0.0;
27926 break;
27927 }
27928 case 2:
27929 {
27930 HEAPF32[i33 >> 2] = 0.0;
27931 HEAPF32[i34 >> 2] = 1.0;
27932 HEAPF32[i35 >> 2] = 0.0;
27933 HEAPF32[i36 >> 2] = 0.0;
27934 break;
27935 }
27936 case 3:
27937 {
27938 HEAPF32[i33 >> 2] = 0.0;
27939 HEAPF32[i34 >> 2] = 1.0;
27940 HEAPF32[i35 >> 2] = 1.0;
27941 HEAPF32[i36 >> 2] = 0.0;
27942 break;
27943 }
27944 case 4:
27945 {
27946 HEAPF32[i33 >> 2] = 1.0;
27947 HEAPF32[i34 >> 2] = 0.0;
27948 HEAPF32[i35 >> 2] = 0.0;
27949 HEAPF32[i36 >> 2] = 0.0;
27950 break;
27951 }
27952 default:
27953 {
27954 HEAPF32[i33 >> 2] = 1.0;
27955 HEAPF32[i34 >> 2] = 0.0;
27956 HEAPF32[i35 >> 2] = 0.0;
27957 HEAPF32[i36 >> 2] = 0.0;
27958 }
27959 }
27960 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i37 >> 2] | 0) + 24 >> 2] & 127](i1, i39 + 4 | 0, HEAP32[i39 + 192 >> 2] | 0, i4);
27961 }
27962 } while (0);
27963 i40 = HEAP32[i13 >> 2] | 0;
27964 if ((i40 | 0) == 0) {
27965 break;
27966 }
27967 if (((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i40 >> 2] | 0) + 48 >> 2] & 127](i40) | 0) & 2 | 0) == 0) {
27968 break;
27969 }
27970 HEAPF32[i11 >> 2] = 1.0;
27971 HEAPF32[i12 >> 2] = 0.0;
27972 HEAPF32[i16 >> 2] = 0.0;
27973 HEAPF32[i15 >> 2] = 0.0;
27974 i40 = i39 + 192 | 0;
27975 i41 = HEAP32[i40 >> 2] | 0;
27976 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i41 >> 2] | 0) + 8 >> 2] & 127](i41, i39 + 4 | 0, i5, i6);
27977 d42 = +HEAPF32[4];
27978 HEAPF32[i17 >> 2] = +HEAPF32[i17 >> 2] - d42;
27979 HEAPF32[i18 >> 2] = +HEAPF32[i18 >> 2] - d42;
27980 HEAPF32[i19 >> 2] = +HEAPF32[i19 >> 2] - d42;
27981 HEAPF32[i20 >> 2] = d42 + +HEAPF32[i20 >> 2];
27982 HEAPF32[i21 >> 2] = d42 + +HEAPF32[i21 >> 2];
27983 HEAPF32[i22 >> 2] = d42 + +HEAPF32[i22 >> 2];
27984 do {
27985 if ((HEAP32[i39 + 232 >> 2] | 0) == 2) {
27986 i41 = HEAP32[i40 >> 2] | 0;
27987 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i41 >> 2] | 0) + 8 >> 2] & 127](i41, i39 + 68 | 0, i8, i9);
27988 d43 = +HEAPF32[i23 >> 2] - d42;
27989 HEAPF32[i23 >> 2] = d43;
27990 d44 = +HEAPF32[i24 >> 2] - d42;
27991 HEAPF32[i24 >> 2] = d44;
27992 d45 = +HEAPF32[i25 >> 2] - d42;
27993 HEAPF32[i25 >> 2] = d45;
27994 d46 = d42 + +HEAPF32[i26 >> 2];
27995 HEAPF32[i26 >> 2] = d46;
27996 d47 = d42 + +HEAPF32[i27 >> 2];
27997 HEAPF32[i27 >> 2] = d47;
27998 d48 = d42 + +HEAPF32[i28 >> 2];
27999 HEAPF32[i28 >> 2] = d48;
28000 if (d43 < +HEAPF32[i17 >> 2]) {
28001 HEAPF32[i17 >> 2] = d43;
28002 }
28003 if (d44 < +HEAPF32[i18 >> 2]) {
28004 HEAPF32[i18 >> 2] = d44;
28005 }
28006 if (d45 < +HEAPF32[i19 >> 2]) {
28007 HEAPF32[i19 >> 2] = d45;
28008 }
28009 d45 = +HEAPF32[i30 >> 2];
28010 if (d45 < +HEAPF32[i29 >> 2]) {
28011 HEAPF32[i29 >> 2] = d45;
28012 }
28013 if (+HEAPF32[i20 >> 2] < d46) {
28014 HEAPF32[i20 >> 2] = d46;
28015 }
28016 if (+HEAPF32[i21 >> 2] < d47) {
28017 HEAPF32[i21 >> 2] = d47;
28018 }
28019 if (+HEAPF32[i22 >> 2] < d48) {
28020 HEAPF32[i22 >> 2] = d48;
28021 }
28022 d48 = +HEAPF32[i32 >> 2];
28023 if (+HEAPF32[i31 >> 2] >= d48) {
28024 break;
28025 }
28026 HEAPF32[i31 >> 2] = d48;
28027 }
28028 } while (0);
28029 i40 = HEAP32[i13 >> 2] | 0;
28030 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i40 >> 2] | 0) + 52 >> 2] & 127](i40, i5, i6, i7);
28031 }
28032 } while (0);
28033 i38 = i38 + 1 | 0;
28034 } while ((i38 | 0) < (HEAP32[i14 >> 2] | 0));
28035 STACKTOP = i2;
28036 return;
28037 }
28038 function __ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i1, i2, i3, i4, i5, i6) {
28039 i1 = i1 | 0;
28040 i2 = i2 | 0;
28041 i3 = i3 | 0;
28042 i4 = i4 | 0;
28043 i5 = i5 | 0;
28044 i6 = i6 | 0;
28045 var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0;
28046 i7 = STACKTOP;
28047 STACKTOP = STACKTOP + 384 | 0;
28048 i8 = i7 | 0;
28049 i9 = i7 + 16 | 0;
28050 i10 = i7 + 24 | 0;
28051 i11 = i7 + 40 | 0;
28052 i12 = i7 + 48 | 0;
28053 i13 = i7 + 64 | 0;
28054 i14 = i7 + 80 | 0;
28055 i15 = i7 + 96 | 0;
28056 i16 = i7 + 112 | 0;
28057 i17 = i7 + 128 | 0;
28058 i18 = i7 + 176 | 0;
28059 i19 = i7 + 192 | 0;
28060 i20 = i7 + 256 | 0;
28061 i21 = i7 + 320 | 0;
28062 i22 = i7 + 336 | 0;
28063 d23 = +HEAPF32[i3 + 48 >> 2] - +HEAPF32[i2 + 48 >> 2];
28064 d24 = +HEAPF32[i3 + 52 >> 2] - +HEAPF32[i2 + 52 >> 2];
28065 d25 = +HEAPF32[i3 + 56 >> 2] - +HEAPF32[i2 + 56 >> 2];
28066 HEAPF32[i12 >> 2] = d23;
28067 HEAPF32[i12 + 4 >> 2] = d24;
28068 HEAPF32[i12 + 8 >> 2] = d25;
28069 HEAPF32[i12 + 12 >> 2] = 0.0;
28070 __ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i2, i3, i10, i11);
28071 d26 = +HEAPF32[i11 >> 2];
28072 d27 = +HEAPF32[i10 >> 2] * d26;
28073 d28 = d26 * +HEAPF32[i10 + 4 >> 2];
28074 d29 = d26 * +HEAPF32[i10 + 8 >> 2];
28075 HEAPF32[i13 >> 2] = d27;
28076 HEAPF32[i13 + 4 >> 2] = d28;
28077 HEAPF32[i13 + 8 >> 2] = d29;
28078 HEAPF32[i13 + 12 >> 2] = 0.0;
28079 d26 = +HEAPF32[i5 + 48 >> 2] - +HEAPF32[i4 + 48 >> 2];
28080 d30 = +HEAPF32[i5 + 52 >> 2] - +HEAPF32[i4 + 52 >> 2];
28081 d31 = +HEAPF32[i5 + 56 >> 2] - +HEAPF32[i4 + 56 >> 2];
28082 HEAPF32[i14 >> 2] = d26;
28083 HEAPF32[i14 + 4 >> 2] = d30;
28084 HEAPF32[i14 + 8 >> 2] = d31;
28085 HEAPF32[i14 + 12 >> 2] = 0.0;
28086 __ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i4, i5, i8, i9);
28087 d32 = +HEAPF32[i9 >> 2];
28088 d33 = +HEAPF32[i8 >> 2] * d32;
28089 d34 = d32 * +HEAPF32[i8 + 4 >> 2];
28090 d35 = d32 * +HEAPF32[i8 + 8 >> 2];
28091 HEAPF32[i15 >> 2] = d33;
28092 HEAPF32[i15 + 4 >> 2] = d34;
28093 HEAPF32[i15 + 8 >> 2] = d35;
28094 HEAPF32[i15 + 12 >> 2] = 0.0;
28095 i8 = HEAP32[i1 + 12 >> 2] | 0;
28096 d32 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 16 >> 2] & 7](i8 | 0);
28097 i8 = HEAP32[i1 + 16 >> 2] | 0;
28098 if ((i8 | 0) == 0) {
28099 d36 = 0.0;
28100 } else {
28101 d36 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 16 >> 2] & 7](i8 | 0);
28102 }
28103 d37 = d32 * +Math_sqrt(+(d27 * d27 + d28 * d28 + d29 * d29));
28104 d29 = d37 + d36 * +Math_sqrt(+(d33 * d33 + d34 * d34 + d35 * d35));
28105 d35 = d26 - d23;
28106 d23 = d30 - d24;
28107 d24 = d31 - d25;
28108 if (+Math_sqrt(+(d35 * d35 + d23 * d23 + d24 * d24)) + d29 == 0.0) {
28109 i38 = 0;
28110 STACKTOP = i7;
28111 return i38 | 0;
28112 }
28113 HEAP32[i17 >> 2] = 4272;
28114 i8 = i17 + 36 | 0;
28115 HEAPF32[i8 >> 2] = 999999984306749400.0;
28116 i9 = i17 + 40 | 0;
28117 HEAP8[i9] = 0;
28118 __ZN27btContinuousConvexCollision20computeClosestPointsERK11btTransformS2_R16btPointCollector(i1, i2, i4, i17);
28119 i5 = (HEAP8[i9] | 0) == 0;
28120 i9 = i16;
28121 i10 = i17 + 20 | 0;
28122 HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
28123 HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
28124 HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
28125 HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
28126 if (i5) {
28127 i38 = 0;
28128 STACKTOP = i7;
28129 return i38 | 0;
28130 }
28131 i5 = i6 + 172 | 0;
28132 d25 = +HEAPF32[i17 + 4 >> 2];
28133 d31 = +HEAPF32[i17 + 8 >> 2];
28134 d30 = +HEAPF32[i17 + 12 >> 2];
28135 if (d29 + (d35 * d25 + d23 * d31 + d24 * d30) <= 1.1920928955078125e-7) {
28136 i38 = 0;
28137 STACKTOP = i7;
28138 return i38 | 0;
28139 }
28140 i10 = i6 + 168 | 0;
28141 i11 = i6;
28142 i3 = i22 | 0;
28143 i39 = i22 + 36 | 0;
28144 i40 = i22 + 40 | 0;
28145 i41 = i22 + 20 | 0;
28146 i42 = i22 + 4 | 0;
28147 i43 = i22 + 8 | 0;
28148 i44 = i22 + 12 | 0;
28149 i45 = i22 + 16 | 0;
28150 i46 = i19 + 48 | 0;
28151 i47 = i21 | 0;
28152 i48 = i21 + 4 | 0;
28153 i49 = i21 + 8 | 0;
28154 i50 = i21 + 12 | 0;
28155 i51 = i18 | 0;
28156 i52 = i18 + 4 | 0;
28157 i53 = i18 + 8 | 0;
28158 i54 = i18 + 12 | 0;
28159 d26 = +HEAPF32[i5 >> 2] + +HEAPF32[i8 >> 2];
28160 i8 = 0;
28161 d34 = 0.0;
28162 d33 = d25;
28163 d25 = d31;
28164 d31 = d30;
28165 d30 = +HEAPF32[i17 + 16 >> 2];
28166 while (1) {
28167 if (d26 <= .0010000000474974513) {
28168 i55 = 593;
28169 break;
28170 }
28171 i17 = HEAP32[i10 >> 2] | 0;
28172 if ((i17 | 0) != 0) {
28173 i56 = HEAP32[(HEAP32[i17 >> 2] | 0) + 20 >> 2] | 0;
28174 HEAPF32[i51 >> 2] = 1.0;
28175 HEAPF32[i52 >> 2] = 1.0;
28176 HEAPF32[i53 >> 2] = 1.0;
28177 HEAPF32[i54 >> 2] = 0.0;
28178 FUNCTION_TABLE_viifi[i56 & 1](i17, i16, .20000000298023224, i18);
28179 }
28180 d36 = d29 + (d24 * d31 + (d23 * d25 + d35 * d33));
28181 if (d36 <= 1.1920928955078125e-7) {
28182 i38 = 0;
28183 i55 = 598;
28184 break;
28185 }
28186 d37 = d34 + d26 / d36;
28187 if (!(d37 >= 0.0 & d37 <= 1.0 & d37 > d34)) {
28188 i38 = 0;
28189 i55 = 599;
28190 break;
28191 }
28192 __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i2, i12, i13, d37, i19);
28193 __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i4, i14, i15, d37, i20);
28194 i17 = HEAP32[i10 >> 2] | 0;
28195 if ((i17 | 0) != 0) {
28196 i56 = HEAP32[(HEAP32[i17 >> 2] | 0) + 20 >> 2] | 0;
28197 HEAPF32[i47 >> 2] = 1.0;
28198 HEAPF32[i48 >> 2] = 0.0;
28199 HEAPF32[i49 >> 2] = 0.0;
28200 HEAPF32[i50 >> 2] = 0.0;
28201 FUNCTION_TABLE_viifi[i56 & 1](i17, i46, .20000000298023224, i21);
28202 }
28203 FUNCTION_TABLE_vif[HEAP32[HEAP32[i11 >> 2] >> 2] & 31](i6, d37);
28204 HEAP32[i3 >> 2] = 4272;
28205 HEAPF32[i39 >> 2] = 999999984306749400.0;
28206 HEAP8[i40] = 0;
28207 __ZN27btContinuousConvexCollision20computeClosestPointsERK11btTransformS2_R16btPointCollector(i1, i19, i20, i22);
28208 if ((HEAP8[i40] | 0) == 0) {
28209 i55 = 591;
28210 break;
28211 }
28212 d36 = +HEAPF32[i39 >> 2] + +HEAPF32[i5 >> 2];
28213 HEAP32[i9 >> 2] = HEAP32[i41 >> 2];
28214 HEAP32[i9 + 4 >> 2] = HEAP32[i41 + 4 >> 2];
28215 HEAP32[i9 + 8 >> 2] = HEAP32[i41 + 8 >> 2];
28216 HEAP32[i9 + 12 >> 2] = HEAP32[i41 + 12 >> 2];
28217 i57 = i8 + 1 | 0;
28218 if ((i57 | 0) > 64) {
28219 i55 = 592;
28220 break;
28221 } else {
28222 d26 = d36;
28223 i8 = i57;
28224 d34 = d37;
28225 d33 = +HEAPF32[i42 >> 2];
28226 d25 = +HEAPF32[i43 >> 2];
28227 d31 = +HEAPF32[i44 >> 2];
28228 d30 = +HEAPF32[i45 >> 2];
28229 }
28230 }
28231 if ((i55 | 0) == 598) {
28232 STACKTOP = i7;
28233 return i38 | 0;
28234 } else if ((i55 | 0) == 599) {
28235 STACKTOP = i7;
28236 return i38 | 0;
28237 } else if ((i55 | 0) == 591) {
28238 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] & 127](i6, -1, i8);
28239 i38 = 0;
28240 STACKTOP = i7;
28241 return i38 | 0;
28242 } else if ((i55 | 0) == 592) {
28243 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] & 127](i6, -2, i57);
28244 i38 = 0;
28245 STACKTOP = i7;
28246 return i38 | 0;
28247 } else if ((i55 | 0) == 593) {
28248 HEAPF32[i6 + 164 >> 2] = d34;
28249 HEAPF32[i6 + 132 >> 2] = d33;
28250 HEAPF32[i6 + 136 >> 2] = d25;
28251 HEAPF32[i6 + 140 >> 2] = d31;
28252 HEAPF32[i6 + 144 >> 2] = d30;
28253 i55 = i6 + 148 | 0;
28254 HEAP32[i55 >> 2] = HEAP32[i9 >> 2];
28255 HEAP32[i55 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
28256 HEAP32[i55 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
28257 HEAP32[i55 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
28258 i38 = 1;
28259 STACKTOP = i7;
28260 return i38 | 0;
28261 }
28262 return 0;
28263 }
28264 function __ZNK16btCollisionWorld15convexSweepTestEPK13btConvexShapeRK11btTransformS5_RNS_20ConvexResultCallbackEf(i1, i2, i3, i4, i5, d6) {
28265 i1 = i1 | 0;
28266 i2 = i2 | 0;
28267 i3 = i3 | 0;
28268 i4 = i4 | 0;
28269 i5 = i5 | 0;
28270 d6 = +d6;
28271 var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0;
28272 i7 = STACKTOP;
28273 STACKTOP = STACKTOP + 496 | 0;
28274 i8 = i7 | 0;
28275 i9 = i7 + 16 | 0;
28276 i10 = i7 + 24 | 0;
28277 i11 = i7 + 88 | 0;
28278 i12 = i7 + 152 | 0;
28279 i13 = i7 + 168 | 0;
28280 i14 = i7 + 184 | 0;
28281 i15 = i7 + 200 | 0;
28282 i16 = i7 + 216 | 0;
28283 i17 = i7 + 280 | 0;
28284 i18 = i7 + 296 | 0;
28285 __ZN15CProfileManager13Start_ProfileEPKc(56);
28286 i19 = i10;
28287 i20 = i3;
28288 HEAP32[i19 >> 2] = HEAP32[i20 >> 2];
28289 HEAP32[i19 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
28290 HEAP32[i19 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
28291 HEAP32[i19 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
28292 i19 = i10 + 16 | 0;
28293 i21 = i3 + 16 | 0;
28294 HEAP32[i19 >> 2] = HEAP32[i21 >> 2];
28295 HEAP32[i19 + 4 >> 2] = HEAP32[i21 + 4 >> 2];
28296 HEAP32[i19 + 8 >> 2] = HEAP32[i21 + 8 >> 2];
28297 HEAP32[i19 + 12 >> 2] = HEAP32[i21 + 12 >> 2];
28298 i19 = i10 + 32 | 0;
28299 i22 = i3 + 32 | 0;
28300 HEAP32[i19 >> 2] = HEAP32[i22 >> 2];
28301 HEAP32[i19 + 4 >> 2] = HEAP32[i22 + 4 >> 2];
28302 HEAP32[i19 + 8 >> 2] = HEAP32[i22 + 8 >> 2];
28303 HEAP32[i19 + 12 >> 2] = HEAP32[i22 + 12 >> 2];
28304 i19 = i10 + 48 | 0;
28305 i23 = i19;
28306 i24 = i3 + 48 | 0;
28307 HEAP32[i23 >> 2] = HEAP32[i24 >> 2];
28308 HEAP32[i23 + 4 >> 2] = HEAP32[i24 + 4 >> 2];
28309 HEAP32[i23 + 8 >> 2] = HEAP32[i24 + 8 >> 2];
28310 HEAP32[i23 + 12 >> 2] = HEAP32[i24 + 12 >> 2];
28311 i23 = i11;
28312 i3 = i4;
28313 HEAP32[i23 >> 2] = HEAP32[i3 >> 2];
28314 HEAP32[i23 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
28315 HEAP32[i23 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
28316 HEAP32[i23 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
28317 i23 = i11 + 16 | 0;
28318 i25 = i4 + 16 | 0;
28319 HEAP32[i23 >> 2] = HEAP32[i25 >> 2];
28320 HEAP32[i23 + 4 >> 2] = HEAP32[i25 + 4 >> 2];
28321 HEAP32[i23 + 8 >> 2] = HEAP32[i25 + 8 >> 2];
28322 HEAP32[i23 + 12 >> 2] = HEAP32[i25 + 12 >> 2];
28323 i23 = i11 + 32 | 0;
28324 i26 = i4 + 32 | 0;
28325 HEAP32[i23 >> 2] = HEAP32[i26 >> 2];
28326 HEAP32[i23 + 4 >> 2] = HEAP32[i26 + 4 >> 2];
28327 HEAP32[i23 + 8 >> 2] = HEAP32[i26 + 8 >> 2];
28328 HEAP32[i23 + 12 >> 2] = HEAP32[i26 + 12 >> 2];
28329 i23 = i11 + 48 | 0;
28330 i27 = i23;
28331 i28 = i4 + 48 | 0;
28332 HEAP32[i27 >> 2] = HEAP32[i28 >> 2];
28333 HEAP32[i27 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
28334 HEAP32[i27 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
28335 HEAP32[i27 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
28336 __ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i10, i11, i8, i9);
28337 d29 = +HEAPF32[i9 >> 2];
28338 d30 = d29 * +HEAPF32[i8 + 4 >> 2];
28339 d31 = d29 * +HEAPF32[i8 + 8 >> 2];
28340 HEAPF32[i14 >> 2] = +HEAPF32[i8 >> 2] * d29;
28341 HEAPF32[i14 + 4 >> 2] = d30;
28342 HEAPF32[i14 + 8 >> 2] = d31;
28343 HEAPF32[i14 + 12 >> 2] = 0.0;
28344 _memset(i15 | 0, 0, 16);
28345 i8 = i16 + 4 | 0;
28346 i9 = i8;
28347 HEAP32[i9 >> 2] = 0;
28348 HEAP32[i9 + 4 >> 2] = 0;
28349 i9 = i16 + 24 | 0;
28350 i11 = i9;
28351 HEAP32[i11 >> 2] = 0;
28352 HEAP32[i11 + 4 >> 2] = 0;
28353 i11 = i16 + 44 | 0;
28354 _memset(i11 | 0, 0, 20);
28355 __ZNK11btMatrix3x311getRotationER12btQuaternion(i10 | 0, i17);
28356 d31 = +HEAPF32[i17 >> 2];
28357 d30 = +HEAPF32[i17 + 4 >> 2];
28358 d29 = +HEAPF32[i17 + 8 >> 2];
28359 d32 = +HEAPF32[i17 + 12 >> 2];
28360 d33 = 2.0 / (d31 * d31 + d30 * d30 + d29 * d29 + d32 * d32);
28361 d34 = d31 * d33;
28362 d35 = d30 * d33;
28363 d36 = d29 * d33;
28364 d33 = d32 * d34;
28365 d37 = d32 * d35;
28366 d38 = d32 * d36;
28367 d32 = d31 * d34;
28368 d34 = d31 * d35;
28369 d39 = d31 * d36;
28370 d31 = d30 * d35;
28371 d35 = d30 * d36;
28372 d30 = d29 * d36;
28373 HEAPF32[i16 >> 2] = 1.0 - (d31 + d30);
28374 HEAPF32[i8 >> 2] = d34 - d38;
28375 HEAPF32[i16 + 8 >> 2] = d39 + d37;
28376 HEAPF32[i16 + 12 >> 2] = 0.0;
28377 HEAPF32[i16 + 16 >> 2] = d34 + d38;
28378 HEAPF32[i16 + 20 >> 2] = 1.0 - (d32 + d30);
28379 HEAPF32[i9 >> 2] = d35 - d33;
28380 HEAPF32[i16 + 28 >> 2] = 0.0;
28381 HEAPF32[i16 + 32 >> 2] = d39 - d37;
28382 HEAPF32[i16 + 36 >> 2] = d35 + d33;
28383 HEAPF32[i16 + 40 >> 2] = 1.0 - (d32 + d31);
28384 HEAPF32[i11 >> 2] = 0.0;
28385 __ZNK16btCollisionShape21calculateTemporalAabbERK11btTransformRK9btVector3S5_fRS3_S6_(i2 | 0, i16, i15, i14, 1.0, i12, i13);
28386 HEAP32[i18 >> 2] = 3648;
28387 i14 = i18 + 36 | 0;
28388 HEAP32[i14 >> 2] = HEAP32[i20 >> 2];
28389 HEAP32[i14 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
28390 HEAP32[i14 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
28391 HEAP32[i14 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
28392 i20 = i18 + 52 | 0;
28393 HEAP32[i20 >> 2] = HEAP32[i21 >> 2];
28394 HEAP32[i20 + 4 >> 2] = HEAP32[i21 + 4 >> 2];
28395 HEAP32[i20 + 8 >> 2] = HEAP32[i21 + 8 >> 2];
28396 HEAP32[i20 + 12 >> 2] = HEAP32[i21 + 12 >> 2];
28397 i21 = i18 + 68 | 0;
28398 HEAP32[i21 >> 2] = HEAP32[i22 >> 2];
28399 HEAP32[i21 + 4 >> 2] = HEAP32[i22 + 4 >> 2];
28400 HEAP32[i21 + 8 >> 2] = HEAP32[i22 + 8 >> 2];
28401 HEAP32[i21 + 12 >> 2] = HEAP32[i22 + 12 >> 2];
28402 i22 = i18 + 84 | 0;
28403 i21 = i22;
28404 HEAP32[i21 >> 2] = HEAP32[i24 >> 2];
28405 HEAP32[i21 + 4 >> 2] = HEAP32[i24 + 4 >> 2];
28406 HEAP32[i21 + 8 >> 2] = HEAP32[i24 + 8 >> 2];
28407 HEAP32[i21 + 12 >> 2] = HEAP32[i24 + 12 >> 2];
28408 i24 = i18 + 100 | 0;
28409 HEAP32[i24 >> 2] = HEAP32[i3 >> 2];
28410 HEAP32[i24 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
28411 HEAP32[i24 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
28412 HEAP32[i24 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
28413 i3 = i18 + 116 | 0;
28414 HEAP32[i3 >> 2] = HEAP32[i25 >> 2];
28415 HEAP32[i3 + 4 >> 2] = HEAP32[i25 + 4 >> 2];
28416 HEAP32[i3 + 8 >> 2] = HEAP32[i25 + 8 >> 2];
28417 HEAP32[i3 + 12 >> 2] = HEAP32[i25 + 12 >> 2];
28418 i25 = i18 + 132 | 0;
28419 HEAP32[i25 >> 2] = HEAP32[i26 >> 2];
28420 HEAP32[i25 + 4 >> 2] = HEAP32[i26 + 4 >> 2];
28421 HEAP32[i25 + 8 >> 2] = HEAP32[i26 + 8 >> 2];
28422 HEAP32[i25 + 12 >> 2] = HEAP32[i26 + 12 >> 2];
28423 i26 = i18 + 148 | 0;
28424 i25 = i26;
28425 HEAP32[i25 >> 2] = HEAP32[i28 >> 2];
28426 HEAP32[i25 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
28427 HEAP32[i25 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
28428 HEAP32[i25 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
28429 HEAP32[i18 + 180 >> 2] = i1;
28430 HEAP32[i18 + 184 >> 2] = i5;
28431 HEAPF32[i18 + 188 >> 2] = d6;
28432 HEAP32[i18 + 192 >> 2] = i2;
28433 d6 = +HEAPF32[i26 >> 2] - +HEAPF32[i22 >> 2];
28434 d31 = +HEAPF32[i18 + 152 >> 2] - +HEAPF32[i18 + 88 >> 2];
28435 d32 = +HEAPF32[i18 + 156 >> 2] - +HEAPF32[i18 + 92 >> 2];
28436 d33 = 1.0 / +Math_sqrt(+(d6 * d6 + d31 * d31 + d32 * d32));
28437 d35 = d6 * d33;
28438 d37 = d31 * d33;
28439 d39 = d32 * d33;
28440 if (d35 == 0.0) {
28441 d40 = 999999984306749400.0;
28442 } else {
28443 d40 = 1.0 / d35;
28444 }
28445 HEAPF32[i18 + 4 >> 2] = d40;
28446 if (d37 == 0.0) {
28447 d41 = 999999984306749400.0;
28448 } else {
28449 d41 = 1.0 / d37;
28450 }
28451 HEAPF32[i18 + 8 >> 2] = d41;
28452 if (d39 == 0.0) {
28453 d42 = 999999984306749400.0;
28454 } else {
28455 d42 = 1.0 / d39;
28456 }
28457 HEAPF32[i18 + 12 >> 2] = d42;
28458 HEAP32[i18 + 20 >> 2] = d40 < 0.0;
28459 HEAP32[i18 + 24 >> 2] = d41 < 0.0;
28460 HEAP32[i18 + 28 >> 2] = d42 < 0.0;
28461 HEAPF32[i18 + 32 >> 2] = d32 * d39 + (d6 * d35 + d31 * d37);
28462 i22 = HEAP32[i1 + 76 >> 2] | 0;
28463 FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i22 >> 2] | 0) + 24 >> 2] & 15](i22, i19, i23, i18 | 0, i12, i13);
28464 __ZN15CProfileManager12Stop_ProfileEv();
28465 STACKTOP = i7;
28466 return;
28467 }
28468 function __ZN35btSequentialImpulseConstraintSolver23setupFrictionConstraintER18btSolverConstraintRK9btVector3P11btRigidBodyS6_R15btManifoldPointS4_S4_P17btCollisionObjectSA_fff(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, d11, d12, d13) {
28469 i1 = i1 | 0;
28470 i2 = i2 | 0;
28471 i3 = i3 | 0;
28472 i4 = i4 | 0;
28473 i5 = i5 | 0;
28474 i6 = i6 | 0;
28475 i7 = i7 | 0;
28476 i8 = i8 | 0;
28477 i9 = i9 | 0;
28478 i10 = i10 | 0;
28479 d11 = +d11;
28480 d12 = +d12;
28481 d13 = +d13;
28482 var i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, d48 = 0.0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0, i61 = 0, i62 = 0, i63 = 0, i64 = 0;
28483 i5 = STACKTOP;
28484 STACKTOP = STACKTOP + 64 | 0;
28485 i4 = i5 | 0;
28486 i1 = i5 + 16 | 0;
28487 i14 = i5 + 32 | 0;
28488 i15 = i5 + 48 | 0;
28489 if ((HEAP32[i9 + 232 >> 2] & 2 | 0) == 0) {
28490 i16 = 0;
28491 } else {
28492 i16 = i9;
28493 }
28494 if ((HEAP32[i10 + 232 >> 2] & 2 | 0) == 0) {
28495 i17 = 0;
28496 } else {
28497 i17 = i10;
28498 }
28499 i10 = i2 + 16 | 0;
28500 i9 = i10;
28501 i18 = i3;
28502 HEAP32[i9 >> 2] = HEAP32[i18 >> 2];
28503 HEAP32[i9 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
28504 HEAP32[i9 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
28505 HEAP32[i9 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
28506 i18 = (i16 | 0) != 0;
28507 if (i18) {
28508 i19 = i16;
28509 } else {
28510 i9 = i14;
28511 i20 = i15;
28512 do {
28513 if ((HEAP8[14328] | 0) == 0) {
28514 if ((___cxa_guard_acquire(14328) | 0) == 0) {
28515 break;
28516 }
28517 _memset(i9 | 0, 0, 16);
28518 __ZN11btRigidBodyC2EfP13btMotionStateP16btCollisionShapeRK9btVector3(12536, 0.0, 0, 0, i14);
28519 _atexit(268, 12536, ___dso_handle | 0) | 0;
28520 }
28521 } while (0);
28522 _memset(i20 | 0, 0, 16);
28523 __ZN11btRigidBody12setMassPropsEfRK9btVector3(12536, 0.0, i15);
28524 i19 = 12536;
28525 }
28526 HEAP32[i2 + 104 >> 2] = i19;
28527 i19 = (i17 | 0) != 0;
28528 if (i19) {
28529 i21 = i17;
28530 } else {
28531 i15 = i4;
28532 i20 = i1;
28533 do {
28534 if ((HEAP8[14328] | 0) == 0) {
28535 if ((___cxa_guard_acquire(14328) | 0) == 0) {
28536 break;
28537 }
28538 _memset(i15 | 0, 0, 16);
28539 __ZN11btRigidBodyC2EfP13btMotionStateP16btCollisionShapeRK9btVector3(12536, 0.0, 0, 0, i4);
28540 _atexit(268, 12536, ___dso_handle | 0) | 0;
28541 }
28542 } while (0);
28543 _memset(i20 | 0, 0, 16);
28544 __ZN11btRigidBody12setMassPropsEfRK9btVector3(12536, 0.0, i1);
28545 i21 = 12536;
28546 }
28547 HEAP32[i2 + 108 >> 2] = i21;
28548 HEAPF32[i2 + 88 >> 2] = +HEAPF32[i6 + 84 >> 2];
28549 HEAP32[i2 + 112 >> 2] = 0;
28550 HEAPF32[i2 + 84 >> 2] = 0.0;
28551 HEAPF32[i2 + 80 >> 2] = 0.0;
28552 i6 = i7 + 4 | 0;
28553 d22 = +HEAPF32[i6 >> 2];
28554 d23 = +HEAPF32[i2 + 24 >> 2];
28555 i21 = i7 + 8 | 0;
28556 d24 = +HEAPF32[i21 >> 2];
28557 d25 = +HEAPF32[i2 + 20 >> 2];
28558 d26 = d22 * d23 - d24 * d25;
28559 d27 = +HEAPF32[i10 >> 2];
28560 i10 = i7 | 0;
28561 d28 = +HEAPF32[i10 >> 2];
28562 d29 = d24 * d27 - d23 * d28;
28563 d24 = d25 * d28 - d22 * d27;
28564 HEAPF32[i2 >> 2] = d26;
28565 HEAPF32[i2 + 4 >> 2] = d29;
28566 HEAPF32[i2 + 8 >> 2] = d24;
28567 HEAPF32[i2 + 12 >> 2] = 0.0;
28568 if (i18) {
28569 d30 = (d26 * +HEAPF32[i16 + 256 >> 2] + d29 * +HEAPF32[i16 + 260 >> 2] + d24 * +HEAPF32[i16 + 264 >> 2]) * +HEAPF32[i16 + 536 >> 2];
28570 d31 = (d26 * +HEAPF32[i16 + 272 >> 2] + d29 * +HEAPF32[i16 + 276 >> 2] + d24 * +HEAPF32[i16 + 280 >> 2]) * +HEAPF32[i16 + 540 >> 2];
28571 d32 = (d26 * +HEAPF32[i16 + 288 >> 2] + d29 * +HEAPF32[i16 + 292 >> 2] + d24 * +HEAPF32[i16 + 296 >> 2]) * +HEAPF32[i16 + 544 >> 2];
28572 } else {
28573 d30 = 0.0;
28574 d31 = 0.0;
28575 d32 = 0.0;
28576 }
28577 HEAPF32[i2 + 48 >> 2] = d30;
28578 HEAPF32[i2 + 52 >> 2] = d31;
28579 HEAPF32[i2 + 56 >> 2] = d32;
28580 HEAPF32[i2 + 60 >> 2] = 0.0;
28581 d22 = -0.0 - d27;
28582 d28 = -0.0 - d25;
28583 d33 = -0.0 - d23;
28584 i7 = i8 + 4 | 0;
28585 d34 = +HEAPF32[i7 >> 2];
28586 i1 = i8 + 8 | 0;
28587 d35 = +HEAPF32[i1 >> 2];
28588 d36 = d34 * d33 - d35 * d28;
28589 i20 = i8 | 0;
28590 d37 = +HEAPF32[i20 >> 2];
28591 d38 = d35 * d22 - d37 * d33;
28592 d33 = d37 * d28 - d34 * d22;
28593 HEAPF32[i2 + 32 >> 2] = d36;
28594 HEAPF32[i2 + 36 >> 2] = d38;
28595 HEAPF32[i2 + 40 >> 2] = d33;
28596 HEAPF32[i2 + 44 >> 2] = 0.0;
28597 if (i19) {
28598 d39 = (d36 * +HEAPF32[i17 + 256 >> 2] + d38 * +HEAPF32[i17 + 260 >> 2] + d33 * +HEAPF32[i17 + 264 >> 2]) * +HEAPF32[i17 + 536 >> 2];
28599 d40 = (d36 * +HEAPF32[i17 + 272 >> 2] + d38 * +HEAPF32[i17 + 276 >> 2] + d33 * +HEAPF32[i17 + 280 >> 2]) * +HEAPF32[i17 + 540 >> 2];
28600 d41 = (d36 * +HEAPF32[i17 + 288 >> 2] + d38 * +HEAPF32[i17 + 292 >> 2] + d33 * +HEAPF32[i17 + 296 >> 2]) * +HEAPF32[i17 + 544 >> 2];
28601 } else {
28602 d39 = 0.0;
28603 d40 = 0.0;
28604 d41 = 0.0;
28605 }
28606 HEAPF32[i2 + 64 >> 2] = d39;
28607 HEAPF32[i2 + 68 >> 2] = d40;
28608 HEAPF32[i2 + 72 >> 2] = d41;
28609 HEAPF32[i2 + 76 >> 2] = 0.0;
28610 if (i18) {
28611 d22 = +HEAPF32[i21 >> 2];
28612 d34 = +HEAPF32[i6 >> 2];
28613 d28 = +HEAPF32[i10 >> 2];
28614 d42 = +HEAPF32[i16 + 336 >> 2] + ((d31 * d22 - d32 * d34) * +HEAPF32[i3 >> 2] + (d32 * d28 - d30 * d22) * +HEAPF32[i3 + 4 >> 2] + (d30 * d34 - d31 * d28) * +HEAPF32[i3 + 8 >> 2]);
28615 } else {
28616 d42 = 0.0;
28617 }
28618 if (i19) {
28619 d28 = -0.0 - d39;
28620 d39 = -0.0 - d40;
28621 d40 = -0.0 - d41;
28622 d41 = +HEAPF32[i1 >> 2];
28623 d31 = +HEAPF32[i7 >> 2];
28624 d34 = +HEAPF32[i20 >> 2];
28625 d43 = +HEAPF32[i17 + 336 >> 2] + ((d41 * d39 - d31 * d40) * +HEAPF32[i3 >> 2] + (d34 * d40 - d41 * d28) * +HEAPF32[i3 + 4 >> 2] + (d31 * d28 - d34 * d39) * +HEAPF32[i3 + 8 >> 2]);
28626 } else {
28627 d43 = 0.0;
28628 }
28629 d39 = d11 / (d42 + d43);
28630 HEAPF32[i2 + 92 >> 2] = d39;
28631 if (i18) {
28632 d44 = +HEAPF32[i16 + 320 >> 2];
28633 d45 = +HEAPF32[i16 + 324 >> 2];
28634 d46 = +HEAPF32[i16 + 328 >> 2];
28635 d47 = d27 * +HEAPF32[i16 + 304 >> 2] + d25 * +HEAPF32[i16 + 308 >> 2] + d23 * +HEAPF32[i16 + 312 >> 2];
28636 } else {
28637 d44 = 0.0;
28638 d45 = 0.0;
28639 d46 = 0.0;
28640 d47 = d23 * 0.0 + (d25 * 0.0 + d27 * 0.0);
28641 }
28642 d43 = d47 + (d24 * d46 + (d29 * d45 + d26 * d44));
28643 if (i19) {
28644 d48 = +HEAPF32[i17 + 320 >> 2];
28645 d49 = +HEAPF32[i17 + 324 >> 2];
28646 d50 = +HEAPF32[i17 + 328 >> 2];
28647 d51 = d27 * +HEAPF32[i17 + 304 >> 2] + d25 * +HEAPF32[i17 + 308 >> 2] + d23 * +HEAPF32[i17 + 312 >> 2];
28648 d52 = d36 * d48;
28649 d53 = d38 * d49;
28650 d54 = d53 + d52;
28651 d55 = d33 * d50;
28652 d56 = d55 + d54;
28653 d57 = d56 - d51;
28654 d58 = d43 + d57;
28655 d59 = d12 - d58;
28656 d60 = d39 * d59;
28657 i61 = i2 + 116 | 0;
28658 HEAPF32[i61 >> 2] = d60;
28659 i62 = i2 + 120 | 0;
28660 HEAPF32[i62 >> 2] = d13;
28661 i63 = i2 + 124 | 0;
28662 HEAPF32[i63 >> 2] = 0.0;
28663 i64 = i2 + 128 | 0;
28664 HEAPF32[i64 >> 2] = 1.0e10;
28665 STACKTOP = i5;
28666 return;
28667 } else {
28668 d48 = 0.0;
28669 d49 = 0.0;
28670 d50 = 0.0;
28671 d51 = d23 * 0.0 + (d25 * 0.0 + d27 * 0.0);
28672 d52 = d36 * d48;
28673 d53 = d38 * d49;
28674 d54 = d53 + d52;
28675 d55 = d33 * d50;
28676 d56 = d55 + d54;
28677 d57 = d56 - d51;
28678 d58 = d43 + d57;
28679 d59 = d12 - d58;
28680 d60 = d39 * d59;
28681 i61 = i2 + 116 | 0;
28682 HEAPF32[i61 >> 2] = d60;
28683 i62 = i2 + 120 | 0;
28684 HEAPF32[i62 >> 2] = d13;
28685 i63 = i2 + 124 | 0;
28686 HEAPF32[i63 >> 2] = 0.0;
28687 i64 = i2 + 128 | 0;
28688 HEAPF32[i64 >> 2] = 1.0e10;
28689 STACKTOP = i5;
28690 return;
28691 }
28692 }
28693 function __ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib(i1, i2, i3, i4, i5) {
28694 i1 = i1 | 0;
28695 i2 = i2 | 0;
28696 i3 = i3 | 0;
28697 i4 = i4 | 0;
28698 i5 = i5 | 0;
28699 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0;
28700 i6 = i1 | 0;
28701 if ((i6 | 0) == (HEAP32[i2 + 8 >> 2] | 0)) {
28702 if ((HEAP32[i2 + 4 >> 2] | 0) != (i3 | 0)) {
28703 return;
28704 }
28705 i7 = i2 + 28 | 0;
28706 if ((HEAP32[i7 >> 2] | 0) == 1) {
28707 return;
28708 }
28709 HEAP32[i7 >> 2] = i4;
28710 return;
28711 }
28712 if ((i6 | 0) == (HEAP32[i2 >> 2] | 0)) {
28713 do {
28714 if ((HEAP32[i2 + 16 >> 2] | 0) != (i3 | 0)) {
28715 i6 = i2 + 20 | 0;
28716 if ((HEAP32[i6 >> 2] | 0) == (i3 | 0)) {
28717 break;
28718 }
28719 HEAP32[i2 + 32 >> 2] = i4;
28720 i7 = i2 + 44 | 0;
28721 if ((HEAP32[i7 >> 2] | 0) == 4) {
28722 return;
28723 }
28724 i8 = HEAP32[i1 + 12 >> 2] | 0;
28725 i9 = i1 + 16 + (i8 << 3) | 0;
28726 L2740 : do {
28727 if ((i8 | 0) > 0) {
28728 i10 = i2 + 52 | 0;
28729 i11 = i2 + 53 | 0;
28730 i12 = i2 + 54 | 0;
28731 i13 = i1 + 8 | 0;
28732 i14 = i2 + 24 | 0;
28733 i15 = i3;
28734 i16 = 0;
28735 i17 = i1 + 16 | 0;
28736 i18 = 0;
28737 L2742 : while (1) {
28738 HEAP8[i10] = 0;
28739 HEAP8[i11] = 0;
28740 i19 = HEAP32[i17 + 4 >> 2] | 0;
28741 i20 = i19 >> 8;
28742 if ((i19 & 1 | 0) == 0) {
28743 i21 = i20;
28744 } else {
28745 i21 = HEAP32[(HEAP32[i15 >> 2] | 0) + i20 >> 2] | 0;
28746 }
28747 i20 = HEAP32[i17 >> 2] | 0;
28748 FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i20 >> 2] | 0) + 20 >> 2] & 15](i20, i2, i3, i3 + i21 | 0, 2 - (i19 >>> 1 & 1) | 0, i5);
28749 if ((HEAP8[i12] & 1) != 0) {
28750 i22 = i18;
28751 i23 = i16;
28752 break;
28753 }
28754 do {
28755 if ((HEAP8[i11] & 1) == 0) {
28756 i24 = i18;
28757 i25 = i16;
28758 } else {
28759 if ((HEAP8[i10] & 1) == 0) {
28760 if ((HEAP32[i13 >> 2] & 1 | 0) == 0) {
28761 i22 = 1;
28762 i23 = i16;
28763 break L2742;
28764 } else {
28765 i24 = 1;
28766 i25 = i16;
28767 break;
28768 }
28769 }
28770 if ((HEAP32[i14 >> 2] | 0) == 1) {
28771 i26 = 2075;
28772 break L2740;
28773 }
28774 if ((HEAP32[i13 >> 2] & 2 | 0) == 0) {
28775 i26 = 2075;
28776 break L2740;
28777 } else {
28778 i24 = 1;
28779 i25 = 1;
28780 }
28781 }
28782 } while (0);
28783 i19 = i17 + 8 | 0;
28784 if (i19 >>> 0 < i9 >>> 0) {
28785 i16 = i25;
28786 i17 = i19;
28787 i18 = i24;
28788 } else {
28789 i22 = i24;
28790 i23 = i25;
28791 break;
28792 }
28793 }
28794 if (i23) {
28795 i27 = i22;
28796 i26 = 2074;
28797 } else {
28798 i28 = i22;
28799 i26 = 2071;
28800 }
28801 } else {
28802 i28 = 0;
28803 i26 = 2071;
28804 }
28805 } while (0);
28806 do {
28807 if ((i26 | 0) == 2071) {
28808 HEAP32[i6 >> 2] = i3;
28809 i9 = i2 + 40 | 0;
28810 HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + 1;
28811 if ((HEAP32[i2 + 36 >> 2] | 0) != 1) {
28812 i27 = i28;
28813 i26 = 2074;
28814 break;
28815 }
28816 if ((HEAP32[i2 + 24 >> 2] | 0) != 2) {
28817 i27 = i28;
28818 i26 = 2074;
28819 break;
28820 }
28821 HEAP8[i2 + 54 | 0] = 1;
28822 if (i28) {
28823 i26 = 2075;
28824 } else {
28825 i26 = 2076;
28826 }
28827 }
28828 } while (0);
28829 if ((i26 | 0) == 2074) {
28830 if (i27) {
28831 i26 = 2075;
28832 } else {
28833 i26 = 2076;
28834 }
28835 }
28836 if ((i26 | 0) == 2075) {
28837 HEAP32[i7 >> 2] = 3;
28838 return;
28839 } else if ((i26 | 0) == 2076) {
28840 HEAP32[i7 >> 2] = 4;
28841 return;
28842 }
28843 }
28844 } while (0);
28845 if ((i4 | 0) != 1) {
28846 return;
28847 }
28848 HEAP32[i2 + 32 >> 2] = 1;
28849 return;
28850 }
28851 i27 = HEAP32[i1 + 12 >> 2] | 0;
28852 i28 = i1 + 16 + (i27 << 3) | 0;
28853 i22 = HEAP32[i1 + 20 >> 2] | 0;
28854 i23 = i22 >> 8;
28855 if ((i22 & 1 | 0) == 0) {
28856 i29 = i23;
28857 } else {
28858 i29 = HEAP32[(HEAP32[i3 >> 2] | 0) + i23 >> 2] | 0;
28859 }
28860 i23 = HEAP32[i1 + 16 >> 2] | 0;
28861 FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i23 >> 2] | 0) + 24 >> 2] & 63](i23, i2, i3 + i29 | 0, (i22 & 2 | 0) != 0 ? i4 : 2, i5);
28862 i22 = i1 + 24 | 0;
28863 if ((i27 | 0) <= 1) {
28864 return;
28865 }
28866 i27 = HEAP32[i1 + 8 >> 2] | 0;
28867 do {
28868 if ((i27 & 2 | 0) == 0) {
28869 i1 = i2 + 36 | 0;
28870 if ((HEAP32[i1 >> 2] | 0) == 1) {
28871 break;
28872 }
28873 if ((i27 & 1 | 0) == 0) {
28874 i29 = i2 + 54 | 0;
28875 i23 = i3;
28876 i25 = i22;
28877 while (1) {
28878 if ((HEAP8[i29] & 1) != 0) {
28879 i26 = 2116;
28880 break;
28881 }
28882 if ((HEAP32[i1 >> 2] | 0) == 1) {
28883 i26 = 2117;
28884 break;
28885 }
28886 i24 = HEAP32[i25 + 4 >> 2] | 0;
28887 i21 = i24 >> 8;
28888 if ((i24 & 1 | 0) == 0) {
28889 i30 = i21;
28890 } else {
28891 i30 = HEAP32[(HEAP32[i23 >> 2] | 0) + i21 >> 2] | 0;
28892 }
28893 i21 = HEAP32[i25 >> 2] | 0;
28894 FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i21 >> 2] | 0) + 24 >> 2] & 63](i21, i2, i3 + i30 | 0, (i24 & 2 | 0) != 0 ? i4 : 2, i5);
28895 i24 = i25 + 8 | 0;
28896 if (i24 >>> 0 < i28 >>> 0) {
28897 i25 = i24;
28898 } else {
28899 i26 = 2118;
28900 break;
28901 }
28902 }
28903 if ((i26 | 0) == 2116) {
28904 return;
28905 } else if ((i26 | 0) == 2117) {
28906 return;
28907 } else if ((i26 | 0) == 2118) {
28908 return;
28909 }
28910 }
28911 i25 = i2 + 24 | 0;
28912 i23 = i2 + 54 | 0;
28913 i29 = i3;
28914 i7 = i22;
28915 while (1) {
28916 if ((HEAP8[i23] & 1) != 0) {
28917 i26 = 2113;
28918 break;
28919 }
28920 if ((HEAP32[i1 >> 2] | 0) == 1) {
28921 if ((HEAP32[i25 >> 2] | 0) == 1) {
28922 i26 = 2114;
28923 break;
28924 }
28925 }
28926 i24 = HEAP32[i7 + 4 >> 2] | 0;
28927 i21 = i24 >> 8;
28928 if ((i24 & 1 | 0) == 0) {
28929 i31 = i21;
28930 } else {
28931 i31 = HEAP32[(HEAP32[i29 >> 2] | 0) + i21 >> 2] | 0;
28932 }
28933 i21 = HEAP32[i7 >> 2] | 0;
28934 FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i21 >> 2] | 0) + 24 >> 2] & 63](i21, i2, i3 + i31 | 0, (i24 & 2 | 0) != 0 ? i4 : 2, i5);
28935 i24 = i7 + 8 | 0;
28936 if (i24 >>> 0 < i28 >>> 0) {
28937 i7 = i24;
28938 } else {
28939 i26 = 2115;
28940 break;
28941 }
28942 }
28943 if ((i26 | 0) == 2113) {
28944 return;
28945 } else if ((i26 | 0) == 2114) {
28946 return;
28947 } else if ((i26 | 0) == 2115) {
28948 return;
28949 }
28950 }
28951 } while (0);
28952 i31 = i2 + 54 | 0;
28953 i30 = i3;
28954 i27 = i22;
28955 while (1) {
28956 if ((HEAP8[i31] & 1) != 0) {
28957 i26 = 2111;
28958 break;
28959 }
28960 i22 = HEAP32[i27 + 4 >> 2] | 0;
28961 i7 = i22 >> 8;
28962 if ((i22 & 1 | 0) == 0) {
28963 i32 = i7;
28964 } else {
28965 i32 = HEAP32[(HEAP32[i30 >> 2] | 0) + i7 >> 2] | 0;
28966 }
28967 i7 = HEAP32[i27 >> 2] | 0;
28968 FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 24 >> 2] & 63](i7, i2, i3 + i32 | 0, (i22 & 2 | 0) != 0 ? i4 : 2, i5);
28969 i22 = i27 + 8 | 0;
28970 if (i22 >>> 0 < i28 >>> 0) {
28971 i27 = i22;
28972 } else {
28973 i26 = 2112;
28974 break;
28975 }
28976 }
28977 if ((i26 | 0) == 2111) {
28978 return;
28979 } else if ((i26 | 0) == 2112) {
28980 return;
28981 }
28982 }
28983 function __ZN23btDiscreteDynamicsWorld19integrateTransformsEf(i1, d2) {
28984 i1 = i1 | 0;
28985 d2 = +d2;
28986 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0;
28987 i3 = STACKTOP;
28988 STACKTOP = STACKTOP + 280 | 0;
28989 i4 = i3 | 0;
28990 i5 = i3 + 64 | 0;
28991 i6 = i3 + 160 | 0;
28992 i7 = i3 + 216 | 0;
28993 __ZN15CProfileManager13Start_ProfileEPKc(120);
28994 i8 = i1 + 204 | 0;
28995 if ((HEAP32[i8 >> 2] | 0) <= 0) {
28996 __ZN15CProfileManager12Stop_ProfileEv();
28997 STACKTOP = i3;
28998 return;
28999 }
29000 i9 = i1 + 212 | 0;
29001 i10 = i4 + 48 | 0;
29002 i11 = i10 | 0;
29003 i12 = i4 + 52 | 0;
29004 i13 = i4 + 56 | 0;
29005 i14 = i1 | 0;
29006 i15 = i1 + 44 | 0;
29007 i16 = i1 + 76 | 0;
29008 i17 = i1 + 24 | 0;
29009 i18 = i5 | 0;
29010 i19 = i5 + 4 | 0;
29011 i20 = i5 + 8 | 0;
29012 i21 = i5 + 10 | 0;
29013 i22 = i5 + 12 | 0;
29014 i23 = i5 + 28 | 0;
29015 i24 = i10;
29016 i10 = i5 + 76 | 0;
29017 i25 = i5 + 80 | 0;
29018 i26 = i5 + 84 | 0;
29019 i27 = i5 + 88 | 0;
29020 i28 = i5 + 92 | 0;
29021 i29 = i6 | 0;
29022 i30 = i6 | 0;
29023 i31 = i6 + 4 | 0;
29024 i32 = i6 + 28 | 0;
29025 i33 = i6 + 44 | 0;
29026 i34 = i1 + 56 | 0;
29027 i35 = i5 | 0;
29028 i36 = i7;
29029 i37 = i4;
29030 i38 = i7 + 16 | 0;
29031 i39 = i4 + 16 | 0;
29032 i40 = i7 + 32 | 0;
29033 i41 = i4 + 32 | 0;
29034 i42 = i7 + 48 | 0;
29035 i43 = i6 | 0;
29036 i6 = i5 + 60 | 0;
29037 i44 = i5 + 44 | 0;
29038 i5 = i1 + 100 | 0;
29039 i1 = 0;
29040 do {
29041 i45 = HEAP32[(HEAP32[i9 >> 2] | 0) + (i1 << 2) >> 2] | 0;
29042 i46 = i45 | 0;
29043 i47 = i45 + 240 | 0;
29044 HEAPF32[i47 >> 2] = 1.0;
29045 i48 = HEAP32[i45 + 216 >> 2] | 0;
29046 L734 : do {
29047 if (!((i48 | 0) == 5 | (i48 | 0) == 2)) {
29048 if ((HEAP32[i45 + 204 >> 2] & 3 | 0) != 0) {
29049 break;
29050 }
29051 __ZN11btRigidBody26predictIntegratedTransformEfR11btTransform(i45, d2, i4);
29052 i49 = i45 + 4 | 0;
29053 i50 = i45 + 52 | 0;
29054 d51 = +HEAPF32[i11 >> 2] - +HEAPF32[i50 >> 2];
29055 d52 = +HEAPF32[i12 >> 2] - +HEAPF32[i45 + 56 >> 2];
29056 d53 = +HEAPF32[i13 >> 2] - +HEAPF32[i45 + 60 >> 2];
29057 do {
29058 if ((HEAP8[i15] | 0) != 0) {
29059 d54 = +HEAPF32[i45 + 248 >> 2];
29060 d55 = d54 * d54;
29061 if (!(d55 != 0.0 & d55 < d51 * d51 + d52 * d52 + d53 * d53)) {
29062 break;
29063 }
29064 __ZN15CProfileManager13Start_ProfileEPKc(72);
29065 if ((HEAP32[(HEAP32[i45 + 192 >> 2] | 0) + 4 >> 2] | 0) < 20) {
29066 HEAP32[2996] = (HEAP32[2996] | 0) + 1;
29067 i56 = HEAP32[i16 >> 2] | 0;
29068 i57 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i56 >> 2] | 0) + 36 >> 2] & 127](i56) | 0;
29069 i56 = HEAP32[i17 >> 2] | 0;
29070 HEAPF32[i19 >> 2] = 1.0;
29071 HEAP16[i20 >> 1] = 1;
29072 HEAP16[i21 >> 1] = -1;
29073 HEAP32[i18 >> 2] = 2248;
29074 i58 = i50;
29075 HEAP32[i22 >> 2] = HEAP32[i58 >> 2];
29076 HEAP32[i22 + 4 >> 2] = HEAP32[i58 + 4 >> 2];
29077 HEAP32[i22 + 8 >> 2] = HEAP32[i58 + 8 >> 2];
29078 HEAP32[i22 + 12 >> 2] = HEAP32[i58 + 12 >> 2];
29079 HEAP32[i23 >> 2] = HEAP32[i24 >> 2];
29080 HEAP32[i23 + 4 >> 2] = HEAP32[i24 + 4 >> 2];
29081 HEAP32[i23 + 8 >> 2] = HEAP32[i24 + 8 >> 2];
29082 HEAP32[i23 + 12 >> 2] = HEAP32[i24 + 12 >> 2];
29083 HEAP32[i10 >> 2] = 0;
29084 HEAP32[i18 >> 2] = 2464;
29085 HEAP32[i25 >> 2] = i46;
29086 HEAPF32[i26 >> 2] = 0.0;
29087 HEAP32[i27 >> 2] = i57;
29088 HEAP32[i28 >> 2] = i56;
29089 d55 = +HEAPF32[i45 + 244 >> 2];
29090 __ZN21btConvexInternalShapeC2Ev(i29);
29091 HEAP32[i30 >> 2] = 4728;
29092 HEAP32[i31 >> 2] = 8;
29093 HEAPF32[i32 >> 2] = d55;
29094 HEAPF32[i33 >> 2] = d55;
29095 HEAPF32[i26 >> 2] = +HEAPF32[i34 >> 2];
29096 i56 = HEAP32[i45 + 188 >> 2] | 0;
29097 HEAP16[i20 >> 1] = HEAP16[i56 + 4 >> 1] | 0;
29098 HEAP16[i21 >> 1] = HEAP16[i56 + 6 >> 1] | 0;
29099 HEAP32[i36 >> 2] = HEAP32[i37 >> 2];
29100 HEAP32[i36 + 4 >> 2] = HEAP32[i37 + 4 >> 2];
29101 HEAP32[i36 + 8 >> 2] = HEAP32[i37 + 8 >> 2];
29102 HEAP32[i36 + 12 >> 2] = HEAP32[i37 + 12 >> 2];
29103 HEAP32[i38 >> 2] = HEAP32[i39 >> 2];
29104 HEAP32[i38 + 4 >> 2] = HEAP32[i39 + 4 >> 2];
29105 HEAP32[i38 + 8 >> 2] = HEAP32[i39 + 8 >> 2];
29106 HEAP32[i38 + 12 >> 2] = HEAP32[i39 + 12 >> 2];
29107 HEAP32[i40 >> 2] = HEAP32[i41 >> 2];
29108 HEAP32[i40 + 4 >> 2] = HEAP32[i41 + 4 >> 2];
29109 HEAP32[i40 + 8 >> 2] = HEAP32[i41 + 8 >> 2];
29110 HEAP32[i40 + 12 >> 2] = HEAP32[i41 + 12 >> 2];
29111 HEAP32[i42 >> 2] = HEAP32[i24 >> 2];
29112 HEAP32[i42 + 4 >> 2] = HEAP32[i24 + 4 >> 2];
29113 HEAP32[i42 + 8 >> 2] = HEAP32[i24 + 8 >> 2];
29114 HEAP32[i42 + 12 >> 2] = HEAP32[i24 + 12 >> 2];
29115 i56 = i49;
29116 HEAP32[i36 >> 2] = HEAP32[i56 >> 2];
29117 HEAP32[i36 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
29118 HEAP32[i36 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
29119 HEAP32[i36 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
29120 i56 = i45 + 20 | 0;
29121 HEAP32[i38 >> 2] = HEAP32[i56 >> 2];
29122 HEAP32[i38 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
29123 HEAP32[i38 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
29124 HEAP32[i38 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
29125 i56 = i45 + 36 | 0;
29126 HEAP32[i40 >> 2] = HEAP32[i56 >> 2];
29127 HEAP32[i40 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
29128 HEAP32[i40 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
29129 HEAP32[i40 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
29130 __ZNK16btCollisionWorld15convexSweepTestEPK13btConvexShapeRK11btTransformS5_RNS_20ConvexResultCallbackEf(i14, i43, i49, i7, i35, 0.0);
29131 d55 = +HEAPF32[i19 >> 2];
29132 if (d55 < 1.0) {
29133 HEAPF32[i47 >> 2] = d55;
29134 __ZN11btRigidBody26predictIntegratedTransformEfR11btTransform(i45, d55 * d2, i4);
29135 HEAPF32[i47 >> 2] = 0.0;
29136 __ZN11btRigidBody18proceedToTransformERK11btTransform(i45, i4);
29137 i56 = HEAP32[i10 >> 2] | 0;
29138 +__Z22resolveSingleCollisionP11btRigidBodyP17btCollisionObjectRK9btVector3S5_RK19btContactSolverInfof(i45, i56, i6, i44, i5, 0.0);
29139 i59 = 4;
29140 } else {
29141 i59 = 0;
29142 }
29143 __ZN13btConvexShapeD2Ev(i43);
29144 if ((i59 | 0) == 0) {
29145 i60 = 684;
29146 } else {
29147 i61 = i59;
29148 }
29149 } else {
29150 i60 = 684;
29151 }
29152 if ((i60 | 0) == 684) {
29153 i60 = 0;
29154 i61 = 0;
29155 }
29156 __ZN15CProfileManager12Stop_ProfileEv();
29157 if ((i61 | 0) == 4) {
29158 break L734;
29159 }
29160 }
29161 } while (0);
29162 __ZN11btRigidBody18proceedToTransformERK11btTransform(i45, i4);
29163 }
29164 } while (0);
29165 i1 = i1 + 1 | 0;
29166 } while ((i1 | 0) < (HEAP32[i8 >> 2] | 0));
29167 __ZN15CProfileManager12Stop_ProfileEv();
29168 STACKTOP = i3;
29169 return;
29170 }
29171 function __ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i1, i2, i3, i4, i5, i6, i7, i8) {
29172 i1 = i1 | 0;
29173 i2 = i2 | 0;
29174 i3 = i3 | 0;
29175 i4 = i4 | 0;
29176 i5 = i5 | 0;
29177 i6 = i6 | 0;
29178 i7 = i7 | 0;
29179 i8 = i8 | 0;
29180 var i9 = 0, i10 = 0, i11 = 0, d12 = 0.0, i13 = 0, d14 = 0.0, d15 = 0.0, d16 = 0.0, i17 = 0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, d40 = 0.0, i41 = 0, d42 = 0.0, i43 = 0, d44 = 0.0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0;
29181 i9 = STACKTOP;
29182 STACKTOP = STACKTOP + 32 | 0;
29183 i10 = i9 | 0;
29184 i11 = (HEAP32[i1 + 136 >> 2] | 0) + (i7 << 4) | 0;
29185 d12 = +HEAPF32[i4 >> 2];
29186 i13 = i3 | 0;
29187 d14 = +HEAPF32[i13 >> 2];
29188 d15 = d12 - d14;
29189 d16 = +HEAPF32[i4 + 4 >> 2];
29190 i17 = i3 + 4 | 0;
29191 d18 = +HEAPF32[i17 >> 2];
29192 d19 = d16 - d18;
29193 d20 = +HEAPF32[i4 + 8 >> 2];
29194 i4 = i3 + 8 | 0;
29195 d21 = +HEAPF32[i4 >> 2];
29196 d22 = d20 - d21;
29197 d23 = 1.0 / +Math_sqrt(+(d15 * d15 + d19 * d19 + d22 * d22));
29198 d24 = d15 * d23;
29199 d25 = d19 * d23;
29200 d26 = d22 * d23;
29201 d23 = d22 * d26 + (d15 * d24 + d19 * d25);
29202 if (d24 == 0.0) {
29203 d27 = 999999984306749400.0;
29204 } else {
29205 d27 = 1.0 / d24;
29206 }
29207 if (d25 == 0.0) {
29208 d28 = 999999984306749400.0;
29209 } else {
29210 d28 = 1.0 / d25;
29211 }
29212 if (d26 == 0.0) {
29213 d29 = 999999984306749400.0;
29214 } else {
29215 d29 = 1.0 / d26;
29216 }
29217 i3 = d27 < 0.0 | 0;
29218 i30 = d28 < 0.0 | 0;
29219 i31 = d29 < 0.0 | 0;
29220 i32 = i5 | 0;
29221 d26 = (d12 < d14 ? d12 : d14) + +HEAPF32[i32 >> 2];
29222 i33 = i5 + 4 | 0;
29223 d25 = (d16 < d18 ? d16 : d18) + +HEAPF32[i33 >> 2];
29224 i34 = i5 + 8 | 0;
29225 d24 = (d20 < d21 ? d20 : d21) + +HEAPF32[i34 >> 2];
29226 i5 = i6 | 0;
29227 d19 = (d14 < d12 ? d12 : d14) + +HEAPF32[i5 >> 2];
29228 i35 = i6 + 4 | 0;
29229 d14 = (d18 < d16 ? d16 : d18) + +HEAPF32[i35 >> 2];
29230 i36 = i6 + 8 | 0;
29231 d18 = (d21 < d20 ? d20 : d21) + +HEAPF32[i36 >> 2];
29232 i6 = i1 + 4 | 0;
29233 d21 = +HEAPF32[i6 >> 2];
29234 d20 = d26 < d21 ? d21 : d26;
29235 i37 = i1 + 8 | 0;
29236 d26 = +HEAPF32[i37 >> 2];
29237 d16 = d25 < d26 ? d26 : d25;
29238 i38 = i1 + 12 | 0;
29239 d25 = +HEAPF32[i38 >> 2];
29240 d12 = d24 < d25 ? d25 : d24;
29241 d24 = +HEAPF32[i1 + 20 >> 2];
29242 d15 = +HEAPF32[i1 + 24 >> 2];
29243 d22 = +HEAPF32[i1 + 28 >> 2];
29244 i39 = i1 + 36 | 0;
29245 d40 = +HEAPF32[i39 >> 2];
29246 i41 = i1 + 40 | 0;
29247 d42 = +HEAPF32[i41 >> 2];
29248 i43 = i1 + 44 | 0;
29249 d44 = +HEAPF32[i43 >> 2];
29250 i1 = ~~(((d24 < d20 ? d24 : d20) - d21) * d40) & -2;
29251 i45 = ~~(((d15 < d16 ? d15 : d16) - d26) * d42) & -2;
29252 i46 = ~~(((d22 < d12 ? d22 : d12) - d25) * d44) & -2;
29253 d12 = d19 < d21 ? d21 : d19;
29254 d19 = d14 < d26 ? d26 : d14;
29255 d14 = d18 < d25 ? d25 : d18;
29256 i47 = ~~(((d24 < d12 ? d24 : d12) - d21) * d40 + 1.0) | 1;
29257 i48 = ~~(((d15 < d19 ? d15 : d19) - d26) * d42 + 1.0) | 1;
29258 i49 = ~~(((d22 < d14 ? d22 : d14) - d25) * d44 + 1.0) | 1;
29259 if ((i7 | 0) < (i8 | 0)) {
29260 i50 = i10 | 0;
29261 i51 = i10 + 4 | 0;
29262 i52 = i10 + 8 | 0;
29263 i53 = i10 + 12 | 0;
29264 i54 = i10 + 16 | 0;
29265 i55 = i10 + 20 | 0;
29266 i56 = i10 + 24 | 0;
29267 i57 = i10 + 28 | 0;
29268 i58 = i10 + (i3 << 4) | 0;
29269 i59 = i10 + ((i3 ^ 1) << 4) | 0;
29270 i3 = i10 + (i30 << 4) + 4 | 0;
29271 i60 = i10 + ((i30 ^ 1) << 4) + 4 | 0;
29272 i30 = i2;
29273 i61 = i10 + (i31 << 4) + 8 | 0;
29274 i62 = i10 + ((i31 ^ 1) << 4) + 8 | 0;
29275 i31 = i11;
29276 i11 = 0;
29277 i10 = i7;
29278 while (1) {
29279 i7 = i11 + 1 | 0;
29280 i63 = i31 + 6 | 0;
29281 i64 = HEAP16[i31 >> 1] | 0;
29282 i65 = i31 + 10 | 0;
29283 i66 = HEAP16[i31 + 4 >> 1] | 0;
29284 i67 = i31 + 8 | 0;
29285 i68 = HEAP16[i31 + 2 >> 1] | 0;
29286 i69 = i31 + 12 | 0;
29287 i70 = (HEAP32[i69 >> 2] | 0) > -1;
29288 do {
29289 if ((-((i1 & 65535) <= (HEAPU16[i63 >> 1] | 0) & (i47 & 65535) >= (i64 & 65535) & (i46 & 65535) <= (HEAPU16[i65 >> 1] | 0) & (i49 & 65535) >= (i66 & 65535) & (i45 & 65535) <= (HEAPU16[i67 >> 1] | 0) & (i48 & 65535) >= (i68 & 65535) & 1) & 1 | 0) == 0) {
29290 i71 = 1;
29291 i72 = 498;
29292 } else {
29293 d44 = +HEAPF32[i39 >> 2];
29294 d25 = +HEAPF32[i41 >> 2];
29295 d14 = +HEAPF32[i43 >> 2];
29296 d22 = +HEAPF32[i6 >> 2];
29297 d42 = +HEAPF32[i37 >> 2];
29298 d26 = +HEAPF32[i38 >> 2];
29299 HEAPF32[i53 >> 2] = 0.0;
29300 d19 = d22 + +((HEAPU16[i63 >> 1] | 0) >>> 0) / d44;
29301 d15 = d42 + +((HEAPU16[i67 >> 1] | 0) >>> 0) / d25;
29302 d40 = d26 + +((HEAPU16[i65 >> 1] | 0) >>> 0) / d14;
29303 HEAPF32[i57 >> 2] = 0.0;
29304 HEAPF32[i50 >> 2] = +((i64 & 65535) >>> 0) / d44 + d22 - +HEAPF32[i5 >> 2];
29305 HEAPF32[i51 >> 2] = +((i68 & 65535) >>> 0) / d25 + d42 - +HEAPF32[i35 >> 2];
29306 HEAPF32[i52 >> 2] = +((i66 & 65535) >>> 0) / d14 + d26 - +HEAPF32[i36 >> 2];
29307 HEAPF32[i54 >> 2] = d19 - +HEAPF32[i32 >> 2];
29308 HEAPF32[i55 >> 2] = d15 - +HEAPF32[i33 >> 2];
29309 HEAPF32[i56 >> 2] = d40 - +HEAPF32[i34 >> 2];
29310 d40 = +HEAPF32[i13 >> 2];
29311 d15 = d27 * (+HEAPF32[i58 >> 2] - d40);
29312 d19 = d27 * (+HEAPF32[i59 >> 2] - d40);
29313 d40 = +HEAPF32[i17 >> 2];
29314 d26 = d28 * (+HEAPF32[i3 >> 2] - d40);
29315 d14 = d28 * (+HEAPF32[i60 >> 2] - d40);
29316 if (d15 > d14 | d26 > d19) {
29317 i71 = 1;
29318 i72 = 498;
29319 break;
29320 }
29321 d40 = d26 > d15 ? d26 : d15;
29322 d15 = d14 < d19 ? d14 : d19;
29323 d19 = +HEAPF32[i4 >> 2];
29324 d14 = d29 * (+HEAPF32[i61 >> 2] - d19);
29325 d26 = d29 * (+HEAPF32[i62 >> 2] - d19);
29326 if (d40 > d26 | d14 > d15) {
29327 i71 = 1;
29328 i72 = 498;
29329 break;
29330 }
29331 if ((d14 > d40 ? d14 : d40) >= d23) {
29332 i71 = 1;
29333 i72 = 498;
29334 break;
29335 }
29336 i73 = (d26 < d15 ? d26 : d15) <= 0.0;
29337 if (i73 | i70 ^ 1) {
29338 i71 = i73;
29339 i72 = 498;
29340 break;
29341 }
29342 i73 = HEAP32[i69 >> 2] | 0;
29343 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i30 >> 2] | 0) + 8 >> 2] & 127](i2, i73 >> 21, i73 & 2097151);
29344 i72 = 499;
29345 }
29346 } while (0);
29347 do {
29348 if ((i72 | 0) == 498) {
29349 i72 = 0;
29350 if (i70 | i71 ^ 1) {
29351 i72 = 499;
29352 break;
29353 }
29354 i66 = HEAP32[i69 >> 2] | 0;
29355 i74 = i10 - i66 | 0;
29356 i75 = i31 + (-i66 << 4) | 0;
29357 }
29358 } while (0);
29359 if ((i72 | 0) == 499) {
29360 i72 = 0;
29361 i74 = i10 + 1 | 0;
29362 i75 = i31 + 16 | 0;
29363 }
29364 if ((i74 | 0) < (i8 | 0)) {
29365 i31 = i75;
29366 i11 = i7;
29367 i10 = i74;
29368 } else {
29369 i76 = i7;
29370 break;
29371 }
29372 }
29373 } else {
29374 i76 = 0;
29375 }
29376 if ((HEAP32[2982] | 0) >= (i76 | 0)) {
29377 STACKTOP = i9;
29378 return;
29379 }
29380 HEAP32[2982] = i76;
29381 STACKTOP = i9;
29382 return;
29383 }
29384 function __ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i1, i2, i3, i4, i5, i6, i7, i8) {
29385 i1 = i1 | 0;
29386 i2 = i2 | 0;
29387 i3 = i3 | 0;
29388 i4 = i4 | 0;
29389 i5 = i5 | 0;
29390 i6 = i6 | 0;
29391 i7 = i7 | 0;
29392 i8 = i8 | 0;
29393 var i9 = 0, i10 = 0, d11 = 0.0, i12 = 0, d13 = 0.0, i14 = 0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, i23 = 0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, i28 = 0, d29 = 0.0, d30 = 0.0, i31 = 0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, d65 = 0.0, d66 = 0.0, d67 = 0.0, d68 = 0.0, d69 = 0.0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0;
29394 i8 = STACKTOP;
29395 STACKTOP = STACKTOP + 32 | 0;
29396 i7 = i8 | 0;
29397 i9 = HEAP32[i1 + 96 >> 2] | 0;
29398 i10 = i3 | 0;
29399 d11 = +HEAPF32[i10 >> 2];
29400 i12 = i3 + 4 | 0;
29401 d13 = +HEAPF32[i12 >> 2];
29402 i14 = i3 + 8 | 0;
29403 d15 = +HEAPF32[i14 >> 2];
29404 d16 = +HEAPF32[i4 >> 2];
29405 d17 = +HEAPF32[i4 + 4 >> 2];
29406 d18 = +HEAPF32[i4 + 8 >> 2];
29407 i4 = i5 | 0;
29408 d19 = +HEAPF32[i4 >> 2];
29409 d20 = (d16 < d11 ? d16 : d11) + d19;
29410 i3 = i5 + 4 | 0;
29411 d21 = +HEAPF32[i3 >> 2];
29412 d22 = (d17 < d13 ? d17 : d13) + d21;
29413 i23 = i5 + 8 | 0;
29414 d24 = +HEAPF32[i23 >> 2];
29415 d25 = (d18 < d15 ? d18 : d15) + d24;
29416 i5 = i6 | 0;
29417 d26 = +HEAPF32[i5 >> 2];
29418 d27 = (d11 < d16 ? d16 : d11) + d26;
29419 i28 = i6 + 4 | 0;
29420 d29 = +HEAPF32[i28 >> 2];
29421 d30 = (d13 < d17 ? d17 : d13) + d29;
29422 i31 = i6 + 8 | 0;
29423 d32 = +HEAPF32[i31 >> 2];
29424 d33 = (d15 < d18 ? d18 : d15) + d32;
29425 d34 = d16 - d11;
29426 d11 = d17 - d13;
29427 d13 = d18 - d15;
29428 d15 = 1.0 / +Math_sqrt(+(d34 * d34 + d11 * d11 + d13 * d13));
29429 d18 = d34 * d15;
29430 d17 = d11 * d15;
29431 d16 = d13 * d15;
29432 d15 = d13 * d16 + (d34 * d18 + d11 * d17);
29433 if (d18 == 0.0) {
29434 d35 = 999999984306749400.0;
29435 } else {
29436 d35 = 1.0 / d18;
29437 }
29438 if (d17 == 0.0) {
29439 d36 = 999999984306749400.0;
29440 } else {
29441 d36 = 1.0 / d17;
29442 }
29443 if (d16 == 0.0) {
29444 d37 = 999999984306749400.0;
29445 } else {
29446 d37 = 1.0 / d16;
29447 }
29448 i6 = d35 < 0.0 | 0;
29449 i38 = d36 < 0.0 | 0;
29450 i39 = d37 < 0.0 | 0;
29451 i40 = i1 + 56 | 0;
29452 i1 = HEAP32[i40 >> 2] | 0;
29453 L599 : do {
29454 if ((i1 | 0) > 0) {
29455 i41 = i7;
29456 i42 = i7 + 16 | 0;
29457 i43 = i42;
29458 i44 = i7 | 0;
29459 i45 = i7 + 4 | 0;
29460 i46 = i7 + 8 | 0;
29461 i47 = i42 | 0;
29462 i42 = i7 + 20 | 0;
29463 i48 = i7 + 24 | 0;
29464 i49 = i7 + (i6 << 4) | 0;
29465 i50 = i7 + ((i6 ^ 1) << 4) | 0;
29466 i51 = i7 + (i38 << 4) + 4 | 0;
29467 i52 = i7 + ((i38 ^ 1) << 4) + 4 | 0;
29468 i53 = i7 + (i39 << 4) + 8 | 0;
29469 i54 = i7 + ((i39 ^ 1) << 4) + 8 | 0;
29470 i55 = i2;
29471 i56 = 0;
29472 i57 = 1;
29473 i58 = i9;
29474 d16 = d26;
29475 d17 = d29;
29476 d18 = d32;
29477 d11 = d19;
29478 d34 = d21;
29479 d13 = d24;
29480 i59 = i1;
29481 while (1) {
29482 i60 = i58;
29483 HEAP32[i41 >> 2] = HEAP32[i60 >> 2];
29484 HEAP32[i41 + 4 >> 2] = HEAP32[i60 + 4 >> 2];
29485 HEAP32[i41 + 8 >> 2] = HEAP32[i60 + 8 >> 2];
29486 HEAP32[i41 + 12 >> 2] = HEAP32[i60 + 12 >> 2];
29487 i60 = i58 + 16 | 0;
29488 i61 = i60;
29489 HEAP32[i43 >> 2] = HEAP32[i61 >> 2];
29490 HEAP32[i43 + 4 >> 2] = HEAP32[i61 + 4 >> 2];
29491 HEAP32[i43 + 8 >> 2] = HEAP32[i61 + 8 >> 2];
29492 HEAP32[i43 + 12 >> 2] = HEAP32[i61 + 12 >> 2];
29493 HEAPF32[i44 >> 2] = +HEAPF32[i44 >> 2] - d16;
29494 HEAPF32[i45 >> 2] = +HEAPF32[i45 >> 2] - d17;
29495 HEAPF32[i46 >> 2] = +HEAPF32[i46 >> 2] - d18;
29496 HEAPF32[i47 >> 2] = +HEAPF32[i47 >> 2] - d11;
29497 HEAPF32[i42 >> 2] = +HEAPF32[i42 >> 2] - d34;
29498 HEAPF32[i48 >> 2] = +HEAPF32[i48 >> 2] - d13;
29499 do {
29500 if (d20 > +HEAPF32[i60 >> 2]) {
29501 i62 = 0;
29502 } else {
29503 if (d27 < +HEAPF32[i58 >> 2]) {
29504 i62 = 0;
29505 break;
29506 }
29507 i62 = 1;
29508 }
29509 } while (0);
29510 do {
29511 if (d25 > +HEAPF32[i58 + 24 >> 2]) {
29512 i63 = 0;
29513 } else {
29514 if (d33 < +HEAPF32[i58 + 8 >> 2]) {
29515 i63 = 0;
29516 break;
29517 }
29518 i63 = i62;
29519 }
29520 } while (0);
29521 do {
29522 if (d22 > +HEAPF32[i58 + 20 >> 2]) {
29523 i64 = 471;
29524 } else {
29525 if (d30 < +HEAPF32[i58 + 4 >> 2] | i63 ^ 1) {
29526 i64 = 471;
29527 break;
29528 }
29529 d65 = +HEAPF32[i10 >> 2];
29530 d66 = d35 * (+HEAPF32[i49 >> 2] - d65);
29531 d67 = d35 * (+HEAPF32[i50 >> 2] - d65);
29532 d65 = +HEAPF32[i12 >> 2];
29533 d68 = d36 * (+HEAPF32[i51 >> 2] - d65);
29534 d69 = d36 * (+HEAPF32[i52 >> 2] - d65);
29535 if (d66 > d69 | d68 > d67) {
29536 i64 = 471;
29537 break;
29538 }
29539 d65 = d68 > d66 ? d68 : d66;
29540 d66 = d69 < d67 ? d69 : d67;
29541 d67 = +HEAPF32[i14 >> 2];
29542 d69 = d37 * (+HEAPF32[i53 >> 2] - d67);
29543 d68 = d37 * (+HEAPF32[i54 >> 2] - d67);
29544 if (d65 > d68 | d69 > d66) {
29545 i64 = 471;
29546 break;
29547 }
29548 if ((d69 > d65 ? d69 : d65) >= d15) {
29549 i64 = 471;
29550 break;
29551 }
29552 i60 = (d68 < d66 ? d68 : d66) > 0.0;
29553 i61 = HEAP32[i58 + 32 >> 2] | 0;
29554 i70 = (i61 | 0) == -1;
29555 if (!(i70 & i60)) {
29556 i71 = i60;
29557 i72 = i70;
29558 i73 = i61;
29559 i64 = 474;
29560 break;
29561 }
29562 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i55 >> 2] | 0) + 8 >> 2] & 127](i2, HEAP32[i58 + 36 >> 2] | 0, HEAP32[i58 + 40 >> 2] | 0);
29563 i74 = HEAP32[i40 >> 2] | 0;
29564 i64 = 475;
29565 }
29566 } while (0);
29567 if ((i64 | 0) == 471) {
29568 i64 = 0;
29569 i61 = HEAP32[i58 + 32 >> 2] | 0;
29570 i71 = 0;
29571 i72 = (i61 | 0) == -1;
29572 i73 = i61;
29573 i64 = 474;
29574 }
29575 do {
29576 if ((i64 | 0) == 474) {
29577 i64 = 0;
29578 if (i71 | i72) {
29579 i74 = i59;
29580 i64 = 475;
29581 break;
29582 }
29583 i75 = i58 + (i73 << 6) | 0;
29584 i76 = i73 + i56 | 0;
29585 i77 = i59;
29586 }
29587 } while (0);
29588 if ((i64 | 0) == 475) {
29589 i64 = 0;
29590 i75 = i58 + 64 | 0;
29591 i76 = i56 + 1 | 0;
29592 i77 = i74;
29593 }
29594 if ((i76 | 0) >= (i77 | 0)) {
29595 i78 = i57;
29596 break L599;
29597 }
29598 i56 = i76;
29599 i57 = i57 + 1 | 0;
29600 i58 = i75;
29601 d16 = +HEAPF32[i5 >> 2];
29602 d17 = +HEAPF32[i28 >> 2];
29603 d18 = +HEAPF32[i31 >> 2];
29604 d11 = +HEAPF32[i4 >> 2];
29605 d34 = +HEAPF32[i3 >> 2];
29606 d13 = +HEAPF32[i23 >> 2];
29607 i59 = i77;
29608 }
29609 } else {
29610 i78 = 0;
29611 }
29612 } while (0);
29613 if ((HEAP32[2982] | 0) >= (i78 | 0)) {
29614 STACKTOP = i8;
29615 return;
29616 }
29617 HEAP32[2982] = i78;
29618 STACKTOP = i8;
29619 return;
29620 }
29621 function __ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i1, i2, i3, i4) {
29622 i1 = i1 | 0;
29623 i2 = i2 | 0;
29624 i3 = i3 | 0;
29625 i4 = i4 | 0;
29626 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0;
29627 i5 = STACKTOP;
29628 STACKTOP = STACKTOP + 16 | 0;
29629 i6 = i2;
29630 i2 = STACKTOP;
29631 STACKTOP = STACKTOP + 1 | 0;
29632 STACKTOP = STACKTOP + 7 >> 3 << 3;
29633 HEAP8[i2] = HEAP8[i6] | 0;
29634 i6 = i5 | 0;
29635 i2 = i5 + 8 | 0;
29636 i7 = (i4 + i3 | 0) / 2 | 0;
29637 i8 = i1 + 12 | 0;
29638 i9 = HEAP32[i8 >> 2] | 0;
29639 i10 = HEAP32[i9 + (i7 << 4) >> 2] | 0;
29640 i11 = HEAP32[i9 + (i7 << 4) + 4 >> 2] | 0;
29641 i12 = HEAP32[i9 + (i7 << 4) + 8 >> 2] | 0;
29642 i7 = (i10 | 0) == 0;
29643 i13 = (i11 | 0) == 0;
29644 i14 = i11 + 12 | 0;
29645 i15 = i10 + 12 | 0;
29646 i16 = i4;
29647 i17 = i3;
29648 i18 = i9;
29649 while (1) {
29650 L1160 : do {
29651 if (i7) {
29652 i9 = i17;
29653 while (1) {
29654 i19 = HEAP32[i18 + (i9 << 4) >> 2] | 0;
29655 i20 = (i19 | 0) == 0;
29656 if (i20) {
29657 i21 = -1;
29658 } else {
29659 i21 = HEAP32[i19 + 12 >> 2] | 0;
29660 }
29661 i22 = HEAP32[i18 + (i9 << 4) + 4 >> 2] | 0;
29662 if ((i22 | 0) == 0) {
29663 i23 = -1;
29664 } else {
29665 i23 = HEAP32[i22 + 12 >> 2] | 0;
29666 }
29667 if (i13) {
29668 i24 = -1;
29669 } else {
29670 i24 = HEAP32[i14 >> 2] | 0;
29671 }
29672 do {
29673 if ((i21 | 0) <= -1) {
29674 i25 = i20 & (i23 | 0) > (i24 | 0);
29675 if (i25 | i20 ^ 1) {
29676 if (i25) {
29677 break;
29678 } else {
29679 i26 = i9;
29680 i27 = i19;
29681 i28 = i22;
29682 break L1160;
29683 }
29684 }
29685 if ((i22 | 0) != (i11 | 0)) {
29686 i26 = i9;
29687 i27 = i19;
29688 i28 = i22;
29689 break L1160;
29690 }
29691 if ((HEAP32[i18 + (i9 << 4) + 8 >> 2] | 0) >>> 0 <= i12 >>> 0) {
29692 i26 = i9;
29693 i27 = i19;
29694 i28 = i22;
29695 break L1160;
29696 }
29697 }
29698 } while (0);
29699 i9 = i9 + 1 | 0;
29700 }
29701 } else {
29702 if (i13) {
29703 i9 = i17;
29704 while (1) {
29705 i22 = HEAP32[i18 + (i9 << 4) >> 2] | 0;
29706 if ((i22 | 0) == 0) {
29707 i29 = -1;
29708 } else {
29709 i29 = HEAP32[i22 + 12 >> 2] | 0;
29710 }
29711 i19 = HEAP32[i18 + (i9 << 4) + 4 >> 2] | 0;
29712 i20 = (i19 | 0) == 0;
29713 if (i20) {
29714 i30 = -1;
29715 } else {
29716 i30 = HEAP32[i19 + 12 >> 2] | 0;
29717 }
29718 do {
29719 if ((i29 | 0) <= (HEAP32[i15 >> 2] | 0)) {
29720 i25 = (i22 | 0) == (i10 | 0);
29721 i31 = i25 & (i30 | 0) > -1;
29722 if (i31 | i25 ^ 1) {
29723 if (i31) {
29724 break;
29725 } else {
29726 i26 = i9;
29727 i27 = i22;
29728 i28 = i19;
29729 break L1160;
29730 }
29731 }
29732 if (!i20) {
29733 i26 = i9;
29734 i27 = i22;
29735 i28 = i19;
29736 break L1160;
29737 }
29738 if ((HEAP32[i18 + (i9 << 4) + 8 >> 2] | 0) >>> 0 <= i12 >>> 0) {
29739 i26 = i9;
29740 i27 = i22;
29741 i28 = 0;
29742 break L1160;
29743 }
29744 }
29745 } while (0);
29746 i9 = i9 + 1 | 0;
29747 }
29748 } else {
29749 i9 = i17;
29750 while (1) {
29751 i22 = HEAP32[i18 + (i9 << 4) >> 2] | 0;
29752 if ((i22 | 0) == 0) {
29753 i32 = -1;
29754 } else {
29755 i32 = HEAP32[i22 + 12 >> 2] | 0;
29756 }
29757 i19 = HEAP32[i18 + (i9 << 4) + 4 >> 2] | 0;
29758 if ((i19 | 0) == 0) {
29759 i33 = -1;
29760 } else {
29761 i33 = HEAP32[i19 + 12 >> 2] | 0;
29762 }
29763 do {
29764 if ((i32 | 0) <= (HEAP32[i15 >> 2] | 0)) {
29765 i20 = (i22 | 0) == (i10 | 0);
29766 i31 = i20 & (i33 | 0) > (HEAP32[i14 >> 2] | 0);
29767 if (i31 | i20 ^ 1) {
29768 if (i31) {
29769 break;
29770 } else {
29771 i26 = i9;
29772 i27 = i22;
29773 i28 = i19;
29774 break L1160;
29775 }
29776 }
29777 if ((i19 | 0) != (i11 | 0)) {
29778 i26 = i9;
29779 i27 = i22;
29780 i28 = i19;
29781 break L1160;
29782 }
29783 if ((HEAP32[i18 + (i9 << 4) + 8 >> 2] | 0) >>> 0 <= i12 >>> 0) {
29784 i26 = i9;
29785 i27 = i22;
29786 i28 = i19;
29787 break L1160;
29788 }
29789 }
29790 } while (0);
29791 i9 = i9 + 1 | 0;
29792 }
29793 }
29794 }
29795 } while (0);
29796 i9 = i16;
29797 L1212 : while (1) {
29798 if (i7) {
29799 i34 = -1;
29800 } else {
29801 i34 = HEAP32[i15 >> 2] | 0;
29802 }
29803 i19 = HEAP32[i18 + (i9 << 4) >> 2] | 0;
29804 if ((i19 | 0) == 0) {
29805 i35 = -1;
29806 } else {
29807 i35 = HEAP32[i19 + 12 >> 2] | 0;
29808 }
29809 if (i13) {
29810 i36 = -1;
29811 } else {
29812 i36 = HEAP32[i14 >> 2] | 0;
29813 }
29814 i22 = HEAP32[i18 + (i9 << 4) + 4 >> 2] | 0;
29815 if ((i22 | 0) == 0) {
29816 i37 = -1;
29817 } else {
29818 i37 = HEAP32[i22 + 12 >> 2] | 0;
29819 }
29820 do {
29821 if ((i34 | 0) <= (i35 | 0)) {
29822 i31 = (i10 | 0) == (i19 | 0);
29823 i20 = i31 & (i36 | 0) > (i37 | 0);
29824 if (i20 | i31 ^ 1) {
29825 if (i20) {
29826 break;
29827 } else {
29828 break L1212;
29829 }
29830 }
29831 if ((i11 | 0) != (i22 | 0)) {
29832 break L1212;
29833 }
29834 if (i12 >>> 0 <= (HEAP32[i18 + (i9 << 4) + 8 >> 2] | 0) >>> 0) {
29835 break L1212;
29836 }
29837 }
29838 } while (0);
29839 i9 = i9 - 1 | 0;
29840 }
29841 if ((i26 | 0) > (i9 | 0)) {
29842 i38 = i9;
29843 i39 = i26;
29844 } else {
29845 i22 = HEAP32[i18 + (i26 << 4) + 8 >> 2] | 0;
29846 i19 = HEAP32[i18 + (i26 << 4) + 12 >> 2] | 0;
29847 i20 = i18 + (i26 << 4) | 0;
29848 i31 = i18 + (i9 << 4) | 0;
29849 HEAP32[i20 >> 2] = HEAP32[i31 >> 2];
29850 HEAP32[i20 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
29851 HEAP32[i20 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
29852 HEAP32[i20 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
29853 i31 = HEAP32[i8 >> 2] | 0;
29854 HEAP32[i31 + (i9 << 4) >> 2] = i27;
29855 HEAP32[i31 + (i9 << 4) + 4 >> 2] = i28;
29856 HEAP32[i31 + (i9 << 4) + 8 >> 2] = i22;
29857 HEAP32[i31 + (i9 << 4) + 12 >> 2] = i19;
29858 i38 = i9 - 1 | 0;
29859 i39 = i26 + 1 | 0;
29860 }
29861 if ((i39 | 0) > (i38 | 0)) {
29862 break;
29863 }
29864 i16 = i38;
29865 i17 = i39;
29866 i18 = HEAP32[i8 >> 2] | 0;
29867 }
29868 if ((i38 | 0) > (i3 | 0)) {
29869 __ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i1, i6, i3, i38);
29870 }
29871 if ((i39 | 0) >= (i4 | 0)) {
29872 STACKTOP = i5;
29873 return;
29874 }
29875 __ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i1, i2, i39, i4);
29876 STACKTOP = i5;
29877 return;
29878 }
29879 function __ZN31btDefaultCollisionConfigurationC2ERK34btDefaultCollisionConstructionInfo(i1, i2) {
29880 i1 = i1 | 0;
29881 i2 = i2 | 0;
29882 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0;
29883 HEAP32[i1 >> 2] = 2608;
29884 i3 = __Z22btAlignedAllocInternalji(360, 16) | 0;
29885 if ((i3 | 0) == 0) {
29886 i4 = 0;
29887 } else {
29888 HEAPF32[i3 + 308 >> 2] = 9999999747378752.0e-20;
29889 i5 = i3 + 332 | 0;
29890 HEAP16[i5 >> 1] = HEAP16[i5 >> 1] & -16;
29891 i4 = i3;
29892 }
29893 i3 = i1 + 32 | 0;
29894 HEAP32[i3 >> 2] = i4;
29895 i4 = (HEAP32[i2 + 28 >> 2] | 0) == 0;
29896 i5 = __Z22btAlignedAllocInternalji(4, 16) | 0;
29897 i6 = (i5 | 0) == 0;
29898 if (i4) {
29899 if (i6) {
29900 i7 = 0;
29901 } else {
29902 HEAP32[i5 >> 2] = 2496;
29903 i7 = i5;
29904 }
29905 HEAP32[i1 + 36 >> 2] = i7;
29906 } else {
29907 if (i6) {
29908 i8 = 0;
29909 } else {
29910 HEAP32[i5 >> 2] = 2696;
29911 i8 = i5;
29912 }
29913 HEAP32[i1 + 36 >> 2] = i8;
29914 }
29915 i8 = __Z22btAlignedAllocInternalji(24, 16) | 0;
29916 if ((i8 | 0) == 0) {
29917 i9 = 0;
29918 } else {
29919 i5 = i8;
29920 __ZN23btConvexConvexAlgorithm10CreateFuncC2EP22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i5, HEAP32[i3 >> 2] | 0, HEAP32[i1 + 36 >> 2] | 0);
29921 i9 = i5;
29922 }
29923 HEAP32[i1 + 40 >> 2] = i9;
29924 i9 = __Z22btAlignedAllocInternalji(8, 16) | 0;
29925 if ((i9 | 0) == 0) {
29926 i10 = 0;
29927 } else {
29928 HEAP8[i9 + 4 | 0] = 0;
29929 HEAP32[i9 >> 2] = 1992;
29930 i10 = i9;
29931 }
29932 HEAP32[i1 + 44 >> 2] = i10;
29933 i10 = __Z22btAlignedAllocInternalji(8, 16) | 0;
29934 if ((i10 | 0) == 0) {
29935 i11 = 0;
29936 } else {
29937 HEAP8[i10 + 4 | 0] = 0;
29938 HEAP32[i10 >> 2] = 1960;
29939 i11 = i10;
29940 }
29941 HEAP32[i1 + 48 >> 2] = i11;
29942 i11 = __Z22btAlignedAllocInternalji(8, 16) | 0;
29943 if ((i11 | 0) == 0) {
29944 i12 = 0;
29945 } else {
29946 HEAP8[i11 + 4 | 0] = 0;
29947 HEAP32[i11 >> 2] = 2120;
29948 i12 = i11;
29949 }
29950 HEAP32[i1 + 52 >> 2] = i12;
29951 i12 = __Z22btAlignedAllocInternalji(8, 16) | 0;
29952 if ((i12 | 0) == 0) {
29953 i13 = 0;
29954 } else {
29955 HEAP8[i12 + 4 | 0] = 0;
29956 HEAP32[i12 >> 2] = 2088;
29957 i13 = i12;
29958 }
29959 HEAP32[i1 + 56 >> 2] = i13;
29960 i13 = __Z22btAlignedAllocInternalji(8, 16) | 0;
29961 if ((i13 | 0) == 0) {
29962 i14 = 0;
29963 } else {
29964 HEAP8[i13 + 4 | 0] = 0;
29965 HEAP32[i13 >> 2] = 2216;
29966 i14 = i13;
29967 }
29968 HEAP32[i1 + 60 >> 2] = i14;
29969 i14 = __Z22btAlignedAllocInternalji(8, 16) | 0;
29970 if ((i14 | 0) == 0) {
29971 i15 = 0;
29972 } else {
29973 HEAP8[i14 + 4 | 0] = 0;
29974 HEAP32[i14 >> 2] = 2024;
29975 i15 = i14;
29976 }
29977 HEAP32[i1 + 64 >> 2] = i15;
29978 i15 = __Z22btAlignedAllocInternalji(8, 16) | 0;
29979 if ((i15 | 0) == 0) {
29980 i16 = 0;
29981 } else {
29982 HEAP8[i15 + 4 | 0] = 0;
29983 HEAP32[i15 >> 2] = 1928;
29984 i16 = i15;
29985 }
29986 HEAP32[i1 + 72 >> 2] = i16;
29987 i16 = __Z22btAlignedAllocInternalji(8, 16) | 0;
29988 if ((i16 | 0) == 0) {
29989 i17 = 0;
29990 } else {
29991 HEAP8[i16 + 4 | 0] = 0;
29992 HEAP32[i16 >> 2] = 1928;
29993 i17 = i16;
29994 }
29995 HEAP32[i1 + 76 >> 2] = i17;
29996 HEAP8[i17 + 4 | 0] = 1;
29997 i17 = __Z22btAlignedAllocInternalji(8, 16) | 0;
29998 if ((i17 | 0) == 0) {
29999 i18 = 0;
30000 } else {
30001 HEAP8[i17 + 4 | 0] = 0;
30002 HEAP32[i17 >> 2] = 2152;
30003 i18 = i17;
30004 }
30005 HEAP32[i1 + 68 >> 2] = i18;
30006 i18 = __Z22btAlignedAllocInternalji(16, 16) | 0;
30007 if ((i18 | 0) == 0) {
30008 i19 = 0;
30009 } else {
30010 HEAP8[i18 + 4 | 0] = 0;
30011 HEAP32[i18 >> 2] = 2056;
30012 HEAP32[i18 + 8 >> 2] = 1;
30013 HEAP32[i18 + 12 >> 2] = 1;
30014 i19 = i18;
30015 }
30016 HEAP32[i1 + 84 >> 2] = i19;
30017 i19 = __Z22btAlignedAllocInternalji(16, 16) | 0;
30018 if ((i19 | 0) == 0) {
30019 i20 = 0;
30020 } else {
30021 HEAP8[i19 + 4 | 0] = 0;
30022 HEAP32[i19 >> 2] = 2056;
30023 HEAP32[i19 + 8 >> 2] = 1;
30024 HEAP32[i19 + 12 >> 2] = 1;
30025 i20 = i19;
30026 }
30027 HEAP32[i1 + 80 >> 2] = i20;
30028 HEAP8[i20 + 4 | 0] = 1;
30029 i20 = HEAP32[i2 + 20 >> 2] | 0;
30030 i19 = (i20 | 0) < 36 ? 36 : i20;
30031 i20 = (i19 | 0) > 80 ? i19 : 80;
30032 i19 = (i20 | 0) > 44 ? i20 : 44;
30033 i20 = HEAP32[i2 >> 2] | 0;
30034 i18 = i1 + 12 | 0;
30035 if ((i20 | 0) == 0) {
30036 HEAP8[i18] = 1;
30037 i17 = __Z22btAlignedAllocInternalji(20, 16) | 0;
30038 if ((i17 | 0) == 0) {
30039 i21 = 0;
30040 } else {
30041 i16 = HEAP32[i2 + 24 >> 2] | 0;
30042 _memset(i17 | 0, 0, 17);
30043 i15 = i17;
30044 HEAP32[i15 >> 2] = 0;
30045 HEAP32[i17 + 8 >> 2] = 0;
30046 HEAP32[i15 >> 2] = __Z22btAlignedAllocInternalji(i16, 16) | 0;
30047 HEAP32[i17 + 4 >> 2] = i16;
30048 i21 = i17;
30049 }
30050 HEAP32[i1 + 8 >> 2] = i21;
30051 } else {
30052 HEAP8[i18] = 0;
30053 HEAP32[i1 + 8 >> 2] = i20;
30054 }
30055 i20 = HEAP32[i2 + 4 >> 2] | 0;
30056 i18 = i1 + 20 | 0;
30057 if ((i20 | 0) == 0) {
30058 HEAP8[i18] = 1;
30059 i21 = __Z22btAlignedAllocInternalji(20, 16) | 0;
30060 if ((i21 | 0) == 0) {
30061 i22 = 0;
30062 } else {
30063 i17 = i21;
30064 i16 = HEAP32[i2 + 12 >> 2] | 0;
30065 i15 = i21;
30066 HEAP32[i15 >> 2] = 1140;
30067 i14 = i21 + 4 | 0;
30068 HEAP32[i14 >> 2] = i16;
30069 i13 = __Z22btAlignedAllocInternalji(i16 * 1140 | 0, 16) | 0;
30070 HEAP32[i21 + 16 >> 2] = i13;
30071 HEAP32[i21 + 12 >> 2] = i13;
30072 i16 = HEAP32[i14 >> 2] | 0;
30073 HEAP32[i21 + 8 >> 2] = i16;
30074 i21 = i16 - 1 | 0;
30075 if ((i21 | 0) == 0) {
30076 i23 = i13;
30077 } else {
30078 i16 = HEAP32[i15 >> 2] | 0;
30079 i15 = i13;
30080 i14 = i21;
30081 while (1) {
30082 i12 = i15 + i16 | 0;
30083 HEAP32[i15 >> 2] = i12;
30084 i11 = i14 - 1 | 0;
30085 if ((i11 | 0) == 0) {
30086 break;
30087 } else {
30088 i15 = i12;
30089 i14 = i11;
30090 }
30091 }
30092 i23 = i13 + (Math_imul(i16, i21) | 0) | 0;
30093 }
30094 HEAP32[i23 >> 2] = 0;
30095 i22 = i17;
30096 }
30097 HEAP32[i1 + 16 >> 2] = i22;
30098 } else {
30099 HEAP8[i18] = 0;
30100 HEAP32[i1 + 16 >> 2] = i20;
30101 }
30102 i20 = HEAP32[i2 + 8 >> 2] | 0;
30103 i18 = i1 + 28 | 0;
30104 if ((i20 | 0) != 0) {
30105 HEAP8[i18] = 0;
30106 HEAP32[i1 + 24 >> 2] = i20;
30107 return;
30108 }
30109 HEAP8[i18] = 1;
30110 i18 = __Z22btAlignedAllocInternalji(20, 16) | 0;
30111 if ((i18 | 0) == 0) {
30112 i24 = 0;
30113 } else {
30114 i20 = i18;
30115 i22 = HEAP32[i2 + 16 >> 2] | 0;
30116 i2 = i18;
30117 HEAP32[i2 >> 2] = i19;
30118 i17 = i18 + 4 | 0;
30119 HEAP32[i17 >> 2] = i22;
30120 i23 = __Z22btAlignedAllocInternalji(Math_imul(i22, i19) | 0, 16) | 0;
30121 HEAP32[i18 + 16 >> 2] = i23;
30122 HEAP32[i18 + 12 >> 2] = i23;
30123 i19 = HEAP32[i17 >> 2] | 0;
30124 HEAP32[i18 + 8 >> 2] = i19;
30125 i18 = i19 - 1 | 0;
30126 if ((i18 | 0) == 0) {
30127 i25 = i23;
30128 } else {
30129 i19 = HEAP32[i2 >> 2] | 0;
30130 i2 = i23;
30131 i17 = i18;
30132 while (1) {
30133 i22 = i2 + i19 | 0;
30134 HEAP32[i2 >> 2] = i22;
30135 i21 = i17 - 1 | 0;
30136 if ((i21 | 0) == 0) {
30137 break;
30138 } else {
30139 i2 = i22;
30140 i17 = i21;
30141 }
30142 }
30143 i25 = i23 + (Math_imul(i19, i18) | 0) | 0;
30144 }
30145 HEAP32[i25 >> 2] = 0;
30146 i24 = i20;
30147 }
30148 HEAP32[i1 + 24 >> 2] = i24;
30149 return;
30150 }
30151 function __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i2, i3) {
30152 i1 = i1 | 0;
30153 i2 = i2 | 0;
30154 i3 = i3 | 0;
30155 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, i38 = 0, i39 = 0;
30156 i4 = i1 + 1116 | 0;
30157 i5 = HEAP32[i4 >> 2] | 0;
30158 if ((i5 | 0) <= 0) {
30159 return;
30160 }
30161 i6 = i2 | 0;
30162 i7 = i2 + 4 | 0;
30163 i8 = i2 + 8 | 0;
30164 i9 = i2 + 48 | 0;
30165 i10 = i2 + 16 | 0;
30166 i11 = i2 + 20 | 0;
30167 i12 = i2 + 24 | 0;
30168 i13 = i2 + 52 | 0;
30169 i14 = i2 + 32 | 0;
30170 i15 = i2 + 36 | 0;
30171 i16 = i2 + 40 | 0;
30172 i17 = i2 + 56 | 0;
30173 i2 = i3 | 0;
30174 i18 = i3 + 4 | 0;
30175 i19 = i3 + 8 | 0;
30176 i20 = i3 + 48 | 0;
30177 i21 = i3 + 16 | 0;
30178 i22 = i3 + 20 | 0;
30179 i23 = i3 + 24 | 0;
30180 i24 = i3 + 52 | 0;
30181 i25 = i3 + 32 | 0;
30182 i26 = i3 + 36 | 0;
30183 i27 = i3 + 40 | 0;
30184 i28 = i3 + 56 | 0;
30185 i3 = i5;
30186 do {
30187 i3 = i3 - 1 | 0;
30188 d29 = +HEAPF32[i1 + 4 + (i3 * 276 | 0) >> 2];
30189 d30 = +HEAPF32[i1 + 4 + (i3 * 276 | 0) + 4 >> 2];
30190 d31 = +HEAPF32[i1 + 4 + (i3 * 276 | 0) + 8 >> 2];
30191 d32 = +HEAPF32[i9 >> 2] + (+HEAPF32[i6 >> 2] * d29 + +HEAPF32[i7 >> 2] * d30 + +HEAPF32[i8 >> 2] * d31);
30192 d33 = +HEAPF32[i13 >> 2] + (d29 * +HEAPF32[i10 >> 2] + d30 * +HEAPF32[i11 >> 2] + d31 * +HEAPF32[i12 >> 2]);
30193 d34 = +HEAPF32[i17 >> 2] + (d29 * +HEAPF32[i14 >> 2] + d30 * +HEAPF32[i15 >> 2] + d31 * +HEAPF32[i16 >> 2]);
30194 HEAPF32[i1 + 4 + (i3 * 276 | 0) + 48 >> 2] = d32;
30195 HEAPF32[i1 + 4 + (i3 * 276 | 0) + 52 >> 2] = d33;
30196 HEAPF32[i1 + 4 + (i3 * 276 | 0) + 56 >> 2] = d34;
30197 HEAPF32[i1 + 4 + (i3 * 276 | 0) + 60 >> 2] = 0.0;
30198 d31 = +HEAPF32[i1 + 4 + (i3 * 276 | 0) + 16 >> 2];
30199 d30 = +HEAPF32[i1 + 4 + (i3 * 276 | 0) + 20 >> 2];
30200 d29 = +HEAPF32[i1 + 4 + (i3 * 276 | 0) + 24 >> 2];
30201 d35 = +HEAPF32[i20 >> 2] + (+HEAPF32[i2 >> 2] * d31 + +HEAPF32[i18 >> 2] * d30 + +HEAPF32[i19 >> 2] * d29);
30202 d36 = +HEAPF32[i24 >> 2] + (d31 * +HEAPF32[i21 >> 2] + d30 * +HEAPF32[i22 >> 2] + d29 * +HEAPF32[i23 >> 2]);
30203 d37 = +HEAPF32[i28 >> 2] + (d31 * +HEAPF32[i25 >> 2] + d30 * +HEAPF32[i26 >> 2] + d29 * +HEAPF32[i27 >> 2]);
30204 HEAPF32[i1 + 4 + (i3 * 276 | 0) + 32 >> 2] = d35;
30205 HEAPF32[i1 + 4 + (i3 * 276 | 0) + 36 >> 2] = d36;
30206 HEAPF32[i1 + 4 + (i3 * 276 | 0) + 40 >> 2] = d37;
30207 HEAPF32[i1 + 4 + (i3 * 276 | 0) + 44 >> 2] = 0.0;
30208 HEAPF32[i1 + 4 + (i3 * 276 | 0) + 80 >> 2] = (d32 - d35) * +HEAPF32[i1 + 4 + (i3 * 276 | 0) + 64 >> 2] + (d33 - d36) * +HEAPF32[i1 + 4 + (i3 * 276 | 0) + 68 >> 2] + (d34 - d37) * +HEAPF32[i1 + 4 + (i3 * 276 | 0) + 72 >> 2];
30209 i5 = i1 + 4 + (i3 * 276 | 0) + 144 | 0;
30210 HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 1;
30211 } while ((i3 | 0) > 0);
30212 i3 = HEAP32[i4 >> 2] | 0;
30213 if ((i3 | 0) <= 0) {
30214 return;
30215 }
30216 i27 = i1 + 1120 | 0;
30217 i26 = i1 + 1124 | 0;
30218 i25 = i1 + 1108 | 0;
30219 i28 = i1 + 1112 | 0;
30220 i23 = i3;
30221 do {
30222 i23 = i23 - 1 | 0;
30223 i3 = i1 + 4 + (i23 * 276 | 0) | 0;
30224 d37 = +HEAPF32[i1 + 4 + (i23 * 276 | 0) + 80 >> 2];
30225 do {
30226 if (d37 > +HEAPF32[((HEAP32[i1 + 4 + (i23 * 276 | 0) + 144 >> 2] | 0) > 1 ? i27 : i26) >> 2]) {
30227 i22 = i1 + 4 + (i23 * 276 | 0) + 108 | 0;
30228 i21 = HEAP32[i22 >> 2] | 0;
30229 do {
30230 if ((i21 | 0) != 0) {
30231 i24 = HEAP32[3008] | 0;
30232 if ((i24 | 0) == 0) {
30233 break;
30234 }
30235 FUNCTION_TABLE_ii[i24 & 127](i21) | 0;
30236 HEAP32[i22 >> 2] = 0;
30237 }
30238 } while (0);
30239 i22 = HEAP32[i4 >> 2] | 0;
30240 i21 = i22 - 1 | 0;
30241 if ((i21 | 0) == (i23 | 0)) {
30242 i38 = i22;
30243 } else {
30244 i22 = i3;
30245 i24 = i1 + 4 + (i21 * 276 | 0) | 0;
30246 _memcpy(i22 | 0, i24 | 0, 276) | 0;
30247 HEAP32[i1 + 4 + (i21 * 276 | 0) + 108 >> 2] = 0;
30248 HEAPF32[i1 + 4 + (i21 * 276 | 0) + 208 >> 2] = 0.0;
30249 HEAPF32[i1 + 4 + (i21 * 276 | 0) + 240 >> 2] = 0.0;
30250 HEAPF32[i1 + 4 + (i21 * 276 | 0) + 272 >> 2] = 0.0;
30251 HEAPF32[i1 + 4 + (i21 * 276 | 0) + 112 >> 2] = 0.0;
30252 HEAP8[i1 + 4 + (i21 * 276 | 0) + 116 | 0] = 0;
30253 HEAPF32[i1 + 4 + (i21 * 276 | 0) + 120 >> 2] = 0.0;
30254 HEAPF32[i1 + 4 + (i21 * 276 | 0) + 124 >> 2] = 0.0;
30255 HEAP32[i1 + 4 + (i21 * 276 | 0) + 144 >> 2] = 0;
30256 i38 = HEAP32[i4 >> 2] | 0;
30257 }
30258 HEAP32[i4 >> 2] = i38 - 1;
30259 } else {
30260 d34 = +HEAPF32[i1 + 4 + (i23 * 276 | 0) + 32 >> 2] - (+HEAPF32[i1 + 4 + (i23 * 276 | 0) + 48 >> 2] - d37 * +HEAPF32[i1 + 4 + (i23 * 276 | 0) + 64 >> 2]);
30261 d36 = +HEAPF32[i1 + 4 + (i23 * 276 | 0) + 36 >> 2] - (+HEAPF32[i1 + 4 + (i23 * 276 | 0) + 52 >> 2] - d37 * +HEAPF32[i1 + 4 + (i23 * 276 | 0) + 68 >> 2]);
30262 d33 = +HEAPF32[i1 + 4 + (i23 * 276 | 0) + 40 >> 2] - (+HEAPF32[i1 + 4 + (i23 * 276 | 0) + 56 >> 2] - d37 * +HEAPF32[i1 + 4 + (i23 * 276 | 0) + 72 >> 2]);
30263 d35 = +HEAPF32[i27 >> 2];
30264 if (d34 * d34 + d36 * d36 + d33 * d33 <= d35 * d35) {
30265 i21 = HEAP32[3006] | 0;
30266 if ((i21 | 0) == 0) {
30267 break;
30268 }
30269 i24 = HEAP32[i25 >> 2] | 0;
30270 i22 = HEAP32[i28 >> 2] | 0;
30271 FUNCTION_TABLE_iiii[i21 & 31](i3, i24, i22) | 0;
30272 break;
30273 }
30274 i22 = i1 + 4 + (i23 * 276 | 0) + 108 | 0;
30275 i24 = HEAP32[i22 >> 2] | 0;
30276 do {
30277 if ((i24 | 0) != 0) {
30278 i21 = HEAP32[3008] | 0;
30279 if ((i21 | 0) == 0) {
30280 break;
30281 }
30282 FUNCTION_TABLE_ii[i21 & 127](i24) | 0;
30283 HEAP32[i22 >> 2] = 0;
30284 }
30285 } while (0);
30286 i22 = HEAP32[i4 >> 2] | 0;
30287 i24 = i22 - 1 | 0;
30288 if ((i24 | 0) == (i23 | 0)) {
30289 i39 = i22;
30290 } else {
30291 i22 = i3;
30292 i21 = i1 + 4 + (i24 * 276 | 0) | 0;
30293 _memcpy(i22 | 0, i21 | 0, 276) | 0;
30294 HEAP32[i1 + 4 + (i24 * 276 | 0) + 108 >> 2] = 0;
30295 HEAPF32[i1 + 4 + (i24 * 276 | 0) + 208 >> 2] = 0.0;
30296 HEAPF32[i1 + 4 + (i24 * 276 | 0) + 240 >> 2] = 0.0;
30297 HEAPF32[i1 + 4 + (i24 * 276 | 0) + 272 >> 2] = 0.0;
30298 HEAPF32[i1 + 4 + (i24 * 276 | 0) + 112 >> 2] = 0.0;
30299 HEAP8[i1 + 4 + (i24 * 276 | 0) + 116 | 0] = 0;
30300 HEAPF32[i1 + 4 + (i24 * 276 | 0) + 120 >> 2] = 0.0;
30301 HEAPF32[i1 + 4 + (i24 * 276 | 0) + 124 >> 2] = 0.0;
30302 HEAP32[i1 + 4 + (i24 * 276 | 0) + 144 >> 2] = 0;
30303 i39 = HEAP32[i4 >> 2] | 0;
30304 }
30305 HEAP32[i4 >> 2] = i39 - 1;
30306 }
30307 } while (0);
30308 } while ((i23 | 0) > 0);
30309 return;
30310 }
30311 function __ZN31btConvexPlaneCollisionAlgorithm20collideSingleContactERK12btQuaternionP17btCollisionObjectS4_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5, i6) {
30312 i1 = i1 | 0;
30313 i2 = i2 | 0;
30314 i3 = i3 | 0;
30315 i4 = i4 | 0;
30316 i5 = i5 | 0;
30317 i6 = i6 | 0;
30318 var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, i42 = 0, d43 = 0.0, i44 = 0, d45 = 0.0, i46 = 0, d47 = 0.0, d48 = 0.0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0, d61 = 0.0, d62 = 0.0, d63 = 0.0, i64 = 0, i65 = 0;
30319 i5 = STACKTOP;
30320 STACKTOP = STACKTOP + 64 | 0;
30321 i7 = i5 | 0;
30322 i8 = i5 + 16 | 0;
30323 i9 = i5 + 32 | 0;
30324 i10 = i5 + 48 | 0;
30325 i11 = (HEAP8[i1 + 16 | 0] | 0) != 0;
30326 i12 = i11 ? i4 : i3;
30327 i13 = i11 ? i3 : i4;
30328 i4 = HEAP32[i12 + 192 >> 2] | 0;
30329 i3 = HEAP32[i13 + 192 >> 2] | 0;
30330 d14 = +HEAPF32[i12 + 4 >> 2];
30331 d15 = +HEAPF32[i12 + 8 >> 2];
30332 d16 = +HEAPF32[i12 + 12 >> 2];
30333 d17 = +HEAPF32[i12 + 20 >> 2];
30334 d18 = +HEAPF32[i12 + 24 >> 2];
30335 d19 = +HEAPF32[i12 + 28 >> 2];
30336 d20 = +HEAPF32[i12 + 36 >> 2];
30337 d21 = +HEAPF32[i12 + 40 >> 2];
30338 d22 = +HEAPF32[i12 + 44 >> 2];
30339 d23 = +HEAPF32[i12 + 52 >> 2];
30340 d24 = +HEAPF32[i12 + 56 >> 2];
30341 d25 = +HEAPF32[i12 + 60 >> 2];
30342 i12 = i13 + 4 | 0;
30343 i11 = i13 + 20 | 0;
30344 i26 = i13 + 36 | 0;
30345 i27 = i13 + 8 | 0;
30346 i28 = i13 + 24 | 0;
30347 i29 = i13 + 40 | 0;
30348 i30 = i13 + 12 | 0;
30349 i31 = i13 + 28 | 0;
30350 i32 = i13 + 44 | 0;
30351 d33 = +HEAPF32[i12 >> 2];
30352 d34 = +HEAPF32[i11 >> 2];
30353 d35 = +HEAPF32[i26 >> 2];
30354 d36 = +HEAPF32[i27 >> 2];
30355 d37 = +HEAPF32[i28 >> 2];
30356 d38 = +HEAPF32[i29 >> 2];
30357 d39 = +HEAPF32[i30 >> 2];
30358 d40 = +HEAPF32[i31 >> 2];
30359 d41 = +HEAPF32[i32 >> 2];
30360 i42 = i13 + 52 | 0;
30361 d43 = -0.0 - +HEAPF32[i42 >> 2];
30362 i44 = i13 + 56 | 0;
30363 d45 = -0.0 - +HEAPF32[i44 >> 2];
30364 i46 = i13 + 60 | 0;
30365 d47 = -0.0 - +HEAPF32[i46 >> 2];
30366 d48 = +HEAPF32[i2 >> 2];
30367 d49 = +HEAPF32[i2 + 4 >> 2];
30368 d50 = +HEAPF32[i2 + 8 >> 2];
30369 d51 = +HEAPF32[i2 + 12 >> 2];
30370 d52 = 2.0 / (d48 * d48 + d49 * d49 + d50 * d50 + d51 * d51);
30371 d53 = d48 * d52;
30372 d54 = d49 * d52;
30373 d55 = d50 * d52;
30374 d52 = d51 * d53;
30375 d56 = d51 * d54;
30376 d57 = d51 * d55;
30377 d51 = d48 * d53;
30378 d53 = d48 * d54;
30379 d58 = d48 * d55;
30380 d48 = d49 * d54;
30381 d54 = d49 * d55;
30382 d49 = d50 * d55;
30383 d55 = 1.0 - (d48 + d49);
30384 d50 = d53 - d57;
30385 d59 = d58 + d56;
30386 d60 = d53 + d57;
30387 d57 = 1.0 - (d51 + d49);
30388 d49 = d54 - d52;
30389 d53 = d58 - d56;
30390 d56 = d54 + d52;
30391 d52 = 1.0 - (d51 + d48);
30392 d48 = d16 * d53 + (d15 * d60 + d14 * d55);
30393 d51 = d16 * d56 + (d14 * d50 + d15 * d57);
30394 d54 = d14 * d59 + d15 * d49 + d16 * d52;
30395 d58 = d19 * d53 + (d18 * d60 + d17 * d55);
30396 d61 = d19 * d56 + (d17 * d50 + d18 * d57);
30397 d62 = d17 * d59 + d18 * d49 + d19 * d52;
30398 d63 = d22 * d53 + (d21 * d60 + d20 * d55);
30399 d55 = d22 * d56 + (d20 * d50 + d21 * d57);
30400 d57 = d20 * d59 + d21 * d49 + d22 * d52;
30401 i2 = HEAP32[(HEAP32[i4 >> 2] | 0) + 60 >> 2] | 0;
30402 i13 = i3 + 48 | 0;
30403 d52 = -0.0 - +HEAPF32[i13 >> 2];
30404 i64 = i3 + 52 | 0;
30405 d49 = -0.0 - +HEAPF32[i64 >> 2];
30406 i65 = i3 + 56 | 0;
30407 d59 = -0.0 - +HEAPF32[i65 >> 2];
30408 HEAPF32[i8 >> 2] = (d41 * d63 + (d39 * d48 + d40 * d58)) * d59 + ((d35 * d63 + (d33 * d48 + d34 * d58)) * d52 + (d38 * d63 + (d36 * d48 + d37 * d58)) * d49);
30409 HEAPF32[i8 + 4 >> 2] = (d41 * d55 + (d39 * d51 + d40 * d61)) * d59 + ((d35 * d55 + (d33 * d51 + d34 * d61)) * d52 + (d38 * d55 + (d36 * d51 + d37 * d61)) * d49);
30410 HEAPF32[i8 + 8 >> 2] = (d41 * d57 + (d39 * d54 + d40 * d62)) * d59 + ((d35 * d57 + (d33 * d54 + d34 * d62)) * d52 + (d38 * d57 + (d36 * d54 + d37 * d62)) * d49);
30411 HEAPF32[i8 + 12 >> 2] = 0.0;
30412 FUNCTION_TABLE_viii[i2 & 127](i7, i4, i8);
30413 d49 = +HEAPF32[i7 >> 2];
30414 d62 = +HEAPF32[i7 + 4 >> 2];
30415 d54 = +HEAPF32[i7 + 8 >> 2];
30416 d57 = d23 * d33 + d24 * d34 + d25 * d35 + (d33 * d43 + d34 * d45 + d35 * d47) + ((d14 * d33 + d17 * d34 + d20 * d35) * d49 + (d15 * d33 + d18 * d34 + d21 * d35) * d62 + (d16 * d33 + d19 * d34 + d22 * d35) * d54);
30417 d35 = d23 * d36 + d24 * d37 + d25 * d38 + (d36 * d43 + d37 * d45 + d38 * d47) + ((d14 * d36 + d17 * d37 + d20 * d38) * d49 + (d15 * d36 + d18 * d37 + d21 * d38) * d62 + (d16 * d36 + d19 * d37 + d22 * d38) * d54);
30418 d38 = d23 * d39 + d24 * d40 + d25 * d41 + (d39 * d43 + d40 * d45 + d41 * d47) + ((d14 * d39 + d17 * d40 + d20 * d41) * d49 + (d15 * d39 + d18 * d40 + d21 * d41) * d62 + (d16 * d39 + d19 * d40 + d22 * d41) * d54);
30419 d54 = +HEAPF32[i13 >> 2];
30420 d41 = +HEAPF32[i64 >> 2];
30421 d22 = +HEAPF32[i65 >> 2];
30422 d40 = d22 * d38 + (d54 * d57 + d41 * d35) - +HEAPF32[i3 + 64 >> 2];
30423 d19 = d57 - d54 * d40;
30424 d54 = d35 - d41 * d40;
30425 d41 = d38 - d22 * d40;
30426 d22 = +HEAPF32[i12 >> 2];
30427 d38 = +HEAPF32[i27 >> 2];
30428 d35 = +HEAPF32[i30 >> 2];
30429 d57 = +HEAPF32[i42 >> 2];
30430 d39 = +HEAPF32[i11 >> 2];
30431 d16 = +HEAPF32[i28 >> 2];
30432 d62 = +HEAPF32[i31 >> 2];
30433 d21 = +HEAPF32[i44 >> 2];
30434 d18 = +HEAPF32[i26 >> 2];
30435 d15 = +HEAPF32[i29 >> 2];
30436 d49 = +HEAPF32[i32 >> 2];
30437 d20 = +HEAPF32[i46 >> 2];
30438 i46 = i1 + 12 | 0;
30439 i1 = d40 < +__ZNK20btPersistentManifold27getContactBreakingThresholdEv(HEAP32[i46 >> 2] | 0);
30440 HEAP32[i6 + 4 >> 2] = HEAP32[i46 >> 2];
30441 if (!i1) {
30442 STACKTOP = i5;
30443 return;
30444 }
30445 d17 = +HEAPF32[i13 >> 2];
30446 d14 = +HEAPF32[i64 >> 2];
30447 d47 = +HEAPF32[i65 >> 2];
30448 d45 = d17 * +HEAPF32[i11 >> 2] + d14 * +HEAPF32[i28 >> 2] + d47 * +HEAPF32[i31 >> 2];
30449 d43 = d17 * +HEAPF32[i26 >> 2] + d14 * +HEAPF32[i29 >> 2] + d47 * +HEAPF32[i32 >> 2];
30450 HEAPF32[i9 >> 2] = +HEAPF32[i12 >> 2] * d17 + +HEAPF32[i27 >> 2] * d14 + +HEAPF32[i30 >> 2] * d47;
30451 HEAPF32[i9 + 4 >> 2] = d45;
30452 HEAPF32[i9 + 8 >> 2] = d43;
30453 HEAPF32[i9 + 12 >> 2] = 0.0;
30454 HEAPF32[i10 >> 2] = d57 + (d35 * d41 + (d22 * d19 + d38 * d54));
30455 HEAPF32[i10 + 4 >> 2] = d21 + (d19 * d39 + d54 * d16 + d41 * d62);
30456 HEAPF32[i10 + 8 >> 2] = d20 + (d19 * d18 + d54 * d15 + d41 * d49);
30457 HEAPF32[i10 + 12 >> 2] = 0.0;
30458 FUNCTION_TABLE_viiif[HEAP32[(HEAP32[i6 >> 2] | 0) + 16 >> 2] & 15](i6, i9, i10, d40);
30459 STACKTOP = i5;
30460 return;
30461 }
30462 function __ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i1, i2) {
30463 i1 = i1 | 0;
30464 i2 = i2 | 0;
30465 var i3 = 0, i4 = 0, i5 = 0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0;
30466 HEAP32[i1 + 232 >> 2] = 2;
30467 _memset(i1 + 304 | 0, 0, 32);
30468 HEAPF32[i1 + 536 >> 2] = 1.0;
30469 HEAPF32[i1 + 540 >> 2] = 1.0;
30470 HEAPF32[i1 + 544 >> 2] = 1.0;
30471 HEAPF32[i1 + 548 >> 2] = 0.0;
30472 i3 = i1 + 340 | 0;
30473 HEAPF32[i3 >> 2] = 1.0;
30474 i4 = i1 + 344 | 0;
30475 HEAPF32[i4 >> 2] = 1.0;
30476 i5 = i1 + 348 | 0;
30477 HEAPF32[i5 >> 2] = 1.0;
30478 _memset(i1 + 352 | 0, 0, 36);
30479 _memset(i1 + 404 | 0, 0, 32);
30480 d6 = +HEAPF32[i2 + 92 >> 2];
30481 d7 = +HEAPF32[i2 + 96 >> 2];
30482 if (d6 < 0.0) {
30483 d8 = 0.0;
30484 } else {
30485 d8 = d6 > 1.0 ? 1.0 : d6;
30486 }
30487 HEAPF32[i1 + 436 >> 2] = d8;
30488 if (d7 < 0.0) {
30489 d9 = 0.0;
30490 } else {
30491 d9 = d7 > 1.0 ? 1.0 : d7;
30492 }
30493 HEAPF32[i1 + 440 >> 2] = d9;
30494 HEAPF32[i1 + 464 >> 2] = +HEAPF32[i2 + 108 >> 2];
30495 HEAPF32[i1 + 468 >> 2] = +HEAPF32[i2 + 112 >> 2];
30496 i10 = HEAP32[i2 + 4 >> 2] | 0;
30497 HEAP32[i1 + 472 >> 2] = i10;
30498 HEAP32[i1 + 600 >> 2] = 0;
30499 HEAP32[i1 + 604 >> 2] = 0;
30500 HEAP8[i1 + 444 | 0] = HEAP8[i2 + 116 | 0] | 0;
30501 HEAPF32[i1 + 448 >> 2] = +HEAPF32[i2 + 120 >> 2];
30502 HEAPF32[i1 + 452 >> 2] = +HEAPF32[i2 + 124 >> 2];
30503 HEAPF32[i1 + 456 >> 2] = +HEAPF32[i2 + 128 >> 2];
30504 HEAPF32[i1 + 460 >> 2] = +HEAPF32[i2 + 132 >> 2];
30505 if ((i10 | 0) == 0) {
30506 i11 = i1 + 4 | 0;
30507 i12 = i2 + 8 | 0;
30508 HEAP32[i11 >> 2] = HEAP32[i12 >> 2];
30509 HEAP32[i11 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
30510 HEAP32[i11 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
30511 HEAP32[i11 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
30512 i12 = i1 + 20 | 0;
30513 i13 = i2 + 24 | 0;
30514 HEAP32[i12 >> 2] = HEAP32[i13 >> 2];
30515 HEAP32[i12 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
30516 HEAP32[i12 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
30517 HEAP32[i12 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
30518 i13 = i1 + 36 | 0;
30519 i14 = i2 + 40 | 0;
30520 HEAP32[i13 >> 2] = HEAP32[i14 >> 2];
30521 HEAP32[i13 + 4 >> 2] = HEAP32[i14 + 4 >> 2];
30522 HEAP32[i13 + 8 >> 2] = HEAP32[i14 + 8 >> 2];
30523 HEAP32[i13 + 12 >> 2] = HEAP32[i14 + 12 >> 2];
30524 i14 = i1 + 52 | 0;
30525 i15 = i2 + 56 | 0;
30526 HEAP32[i14 >> 2] = HEAP32[i15 >> 2];
30527 HEAP32[i14 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
30528 HEAP32[i14 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
30529 HEAP32[i14 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
30530 i16 = i11;
30531 i17 = i12;
30532 i18 = i13;
30533 i19 = i14;
30534 } else {
30535 i14 = i1 + 4 | 0;
30536 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i10 >> 2] | 0) + 8 >> 2] & 127](i10, i14);
30537 i16 = i14;
30538 i17 = i1 + 20 | 0;
30539 i18 = i1 + 36 | 0;
30540 i19 = i1 + 52 | 0;
30541 }
30542 i14 = i1 + 68 | 0;
30543 HEAP32[i14 >> 2] = HEAP32[i16 >> 2];
30544 HEAP32[i14 + 4 >> 2] = HEAP32[i16 + 4 >> 2];
30545 HEAP32[i14 + 8 >> 2] = HEAP32[i16 + 8 >> 2];
30546 HEAP32[i14 + 12 >> 2] = HEAP32[i16 + 12 >> 2];
30547 i16 = i1 + 84 | 0;
30548 HEAP32[i16 >> 2] = HEAP32[i17 >> 2];
30549 HEAP32[i16 + 4 >> 2] = HEAP32[i17 + 4 >> 2];
30550 HEAP32[i16 + 8 >> 2] = HEAP32[i17 + 8 >> 2];
30551 HEAP32[i16 + 12 >> 2] = HEAP32[i17 + 12 >> 2];
30552 i17 = i1 + 100 | 0;
30553 HEAP32[i17 >> 2] = HEAP32[i18 >> 2];
30554 HEAP32[i17 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
30555 HEAP32[i17 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
30556 HEAP32[i17 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
30557 i18 = i1 + 116 | 0;
30558 HEAP32[i18 >> 2] = HEAP32[i19 >> 2];
30559 HEAP32[i18 + 4 >> 2] = HEAP32[i19 + 4 >> 2];
30560 HEAP32[i18 + 8 >> 2] = HEAP32[i19 + 8 >> 2];
30561 HEAP32[i18 + 12 >> 2] = HEAP32[i19 + 12 >> 2];
30562 _memset(i1 + 132 | 0, 0, 32);
30563 HEAPF32[i1 + 224 >> 2] = +HEAPF32[i2 + 100 >> 2];
30564 HEAPF32[i1 + 228 >> 2] = +HEAPF32[i2 + 104 >> 2];
30565 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] & 127](i1 | 0, HEAP32[i2 + 72 >> 2] | 0);
30566 i19 = HEAP32[3574] | 0;
30567 HEAP32[3574] = i19 + 1;
30568 HEAP32[i1 + 500 >> 2] = i19;
30569 d9 = +HEAPF32[i2 >> 2];
30570 i19 = i1 + 204 | 0;
30571 i18 = HEAP32[i19 >> 2] | 0;
30572 if (d9 == 0.0) {
30573 HEAP32[i19 >> 2] = i18 | 1;
30574 HEAPF32[i1 + 336 >> 2] = 0.0;
30575 d20 = 0.0;
30576 } else {
30577 HEAP32[i19 >> 2] = i18 & -2;
30578 d7 = 1.0 / d9;
30579 HEAPF32[i1 + 336 >> 2] = d7;
30580 d20 = d7;
30581 }
30582 d7 = d9 * +HEAPF32[i1 + 376 >> 2];
30583 d8 = d9 * +HEAPF32[i1 + 380 >> 2];
30584 HEAPF32[i1 + 356 >> 2] = d9 * +HEAPF32[i1 + 372 >> 2];
30585 HEAPF32[i1 + 360 >> 2] = d7;
30586 HEAPF32[i1 + 364 >> 2] = d8;
30587 HEAPF32[i1 + 368 >> 2] = 0.0;
30588 d8 = +HEAPF32[i2 + 76 >> 2];
30589 if (d8 != 0.0) {
30590 d21 = 1.0 / d8;
30591 } else {
30592 d21 = 0.0;
30593 }
30594 d8 = +HEAPF32[i2 + 80 >> 2];
30595 if (d8 != 0.0) {
30596 d22 = 1.0 / d8;
30597 } else {
30598 d22 = 0.0;
30599 }
30600 d8 = +HEAPF32[i2 + 84 >> 2];
30601 if (d8 != 0.0) {
30602 d23 = 1.0 / d8;
30603 } else {
30604 d23 = 0.0;
30605 }
30606 HEAPF32[i1 + 388 >> 2] = d21;
30607 HEAPF32[i1 + 392 >> 2] = d22;
30608 HEAPF32[i1 + 396 >> 2] = d23;
30609 HEAPF32[i1 + 400 >> 2] = 0.0;
30610 d8 = d20 * +HEAPF32[i3 >> 2];
30611 d7 = d20 * +HEAPF32[i4 >> 2];
30612 d9 = d20 * +HEAPF32[i5 >> 2];
30613 d20 = +HEAPF32[i1 + 4 >> 2];
30614 d6 = d20 * d21;
30615 d24 = +HEAPF32[i1 + 8 >> 2];
30616 d25 = d24 * d22;
30617 d26 = +HEAPF32[i1 + 12 >> 2];
30618 d27 = d26 * d23;
30619 d28 = +HEAPF32[i1 + 20 >> 2];
30620 d29 = d21 * d28;
30621 d30 = +HEAPF32[i1 + 24 >> 2];
30622 d31 = d22 * d30;
30623 d32 = +HEAPF32[i1 + 28 >> 2];
30624 d33 = d23 * d32;
30625 d34 = +HEAPF32[i1 + 36 >> 2];
30626 d35 = d21 * d34;
30627 d21 = +HEAPF32[i1 + 40 >> 2];
30628 d36 = d22 * d21;
30629 d22 = +HEAPF32[i1 + 44 >> 2];
30630 d37 = d23 * d22;
30631 HEAPF32[i1 + 256 >> 2] = d20 * d6 + d24 * d25 + d26 * d27;
30632 HEAPF32[i1 + 260 >> 2] = d6 * d28 + d25 * d30 + d27 * d32;
30633 HEAPF32[i1 + 264 >> 2] = d6 * d34 + d25 * d21 + d27 * d22;
30634 HEAPF32[i1 + 268 >> 2] = 0.0;
30635 HEAPF32[i1 + 272 >> 2] = d20 * d29 + d24 * d31 + d26 * d33;
30636 HEAPF32[i1 + 276 >> 2] = d28 * d29 + d30 * d31 + d32 * d33;
30637 HEAPF32[i1 + 280 >> 2] = d29 * d34 + d31 * d21 + d33 * d22;
30638 HEAPF32[i1 + 284 >> 2] = 0.0;
30639 HEAPF32[i1 + 288 >> 2] = d20 * d35 + d24 * d36 + d26 * d37;
30640 HEAPF32[i1 + 292 >> 2] = d28 * d35 + d30 * d36 + d32 * d37;
30641 HEAPF32[i1 + 296 >> 2] = d34 * d35 + d21 * d36 + d22 * d37;
30642 HEAPF32[i1 + 300 >> 2] = 0.0;
30643 HEAP32[i1 + 496 >> 2] = 0;
30644 _memset(i1 + 504 | 0, 0, 32);
30645 HEAPF32[i1 + 552 >> 2] = d8;
30646 HEAPF32[i1 + 556 >> 2] = d7;
30647 HEAPF32[i1 + 560 >> 2] = d9;
30648 _memset(i1 + 564 | 0, 0, 36);
30649 return;
30650 }
30651 function __ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
30652 i1 = i1 | 0;
30653 i2 = i2 | 0;
30654 i3 = i3 | 0;
30655 i4 = i4 | 0;
30656 i5 = i5 | 0;
30657 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, d48 = 0.0, d49 = 0.0, d50 = 0.0, i51 = 0, i52 = 0, i53 = 0, d54 = 0.0, d55 = 0.0, d56 = 0.0, i57 = 0;
30658 i5 = STACKTOP;
30659 STACKTOP = STACKTOP + 240 | 0;
30660 i4 = i5 | 0;
30661 i6 = i5 + 16 | 0;
30662 i7 = i5 + 32 | 0;
30663 i8 = (HEAP8[i1 + 8 | 0] | 0) != 0;
30664 i1 = i8 ? i3 : i2;
30665 i9 = i8 ? i2 : i3;
30666 d10 = +HEAPF32[i1 + 116 >> 2];
30667 d11 = +HEAPF32[i1 + 52 >> 2];
30668 d12 = d10 - d11;
30669 d13 = +HEAPF32[i1 + 120 >> 2];
30670 d14 = +HEAPF32[i1 + 56 >> 2];
30671 d15 = d13 - d14;
30672 d16 = +HEAPF32[i1 + 124 >> 2];
30673 d17 = +HEAPF32[i1 + 60 >> 2];
30674 d18 = d16 - d17;
30675 d19 = +HEAPF32[i1 + 248 >> 2];
30676 if (d12 * d12 + d15 * d15 + d18 * d18 < d19 * d19) {
30677 d20 = 1.0;
30678 STACKTOP = i5;
30679 return +d20;
30680 }
30681 d19 = +HEAPF32[i9 + 4 >> 2];
30682 d18 = +HEAPF32[i9 + 20 >> 2];
30683 d15 = +HEAPF32[i9 + 36 >> 2];
30684 d12 = +HEAPF32[i9 + 8 >> 2];
30685 d21 = +HEAPF32[i9 + 24 >> 2];
30686 d22 = +HEAPF32[i9 + 40 >> 2];
30687 d23 = +HEAPF32[i9 + 12 >> 2];
30688 d24 = +HEAPF32[i9 + 28 >> 2];
30689 d25 = +HEAPF32[i9 + 44 >> 2];
30690 d26 = -0.0 - +HEAPF32[i9 + 52 >> 2];
30691 d27 = -0.0 - +HEAPF32[i9 + 56 >> 2];
30692 d28 = -0.0 - +HEAPF32[i9 + 60 >> 2];
30693 d29 = d19 * d26 + d18 * d27 + d15 * d28;
30694 d30 = d12 * d26 + d21 * d27 + d22 * d28;
30695 d31 = d23 * d26 + d24 * d27 + d25 * d28;
30696 d28 = +HEAPF32[i1 + 4 >> 2];
30697 d27 = +HEAPF32[i1 + 20 >> 2];
30698 d26 = +HEAPF32[i1 + 36 >> 2];
30699 d32 = +HEAPF32[i1 + 8 >> 2];
30700 d33 = +HEAPF32[i1 + 24 >> 2];
30701 d34 = +HEAPF32[i1 + 40 >> 2];
30702 d35 = +HEAPF32[i1 + 12 >> 2];
30703 d36 = +HEAPF32[i1 + 28 >> 2];
30704 d37 = +HEAPF32[i1 + 44 >> 2];
30705 d38 = d11 * d19 + d14 * d18 + d17 * d15 + d29;
30706 d39 = d11 * d12 + d14 * d21 + d17 * d22 + d30;
30707 d40 = d11 * d23 + d14 * d24 + d17 * d25 + d31;
30708 d17 = +HEAPF32[i1 + 68 >> 2];
30709 d14 = +HEAPF32[i1 + 84 >> 2];
30710 d11 = +HEAPF32[i1 + 100 >> 2];
30711 d41 = +HEAPF32[i1 + 72 >> 2];
30712 d42 = +HEAPF32[i1 + 88 >> 2];
30713 d43 = +HEAPF32[i1 + 104 >> 2];
30714 d44 = +HEAPF32[i1 + 76 >> 2];
30715 d45 = +HEAPF32[i1 + 92 >> 2];
30716 d46 = +HEAPF32[i1 + 108 >> 2];
30717 d47 = d10 * d19 + d13 * d18 + d16 * d15 + d29;
30718 d29 = d10 * d12 + d13 * d21 + d16 * d22 + d30;
30719 d30 = d10 * d23 + d13 * d24 + d16 * d25 + d31;
30720 i3 = HEAP32[i9 + 192 >> 2] | 0;
30721 if (((HEAP32[i3 + 4 >> 2] | 0) - 21 | 0) >>> 0 >= 9) {
30722 d20 = 1.0;
30723 STACKTOP = i5;
30724 return +d20;
30725 }
30726 i9 = i4 | 0;
30727 HEAPF32[i9 >> 2] = d38;
30728 i2 = i4 + 4 | 0;
30729 HEAPF32[i2 >> 2] = d39;
30730 i8 = i4 + 8 | 0;
30731 HEAPF32[i8 >> 2] = d40;
30732 HEAPF32[i4 + 12 >> 2] = 0.0;
30733 if (d47 < d38) {
30734 HEAPF32[i9 >> 2] = d47;
30735 d48 = d47;
30736 } else {
30737 d48 = d38;
30738 }
30739 if (d29 < d39) {
30740 HEAPF32[i2 >> 2] = d29;
30741 d49 = d29;
30742 } else {
30743 d49 = d39;
30744 }
30745 if (d30 < d40) {
30746 HEAPF32[i8 >> 2] = d30;
30747 d50 = d30;
30748 } else {
30749 d50 = d40;
30750 }
30751 i51 = i6 | 0;
30752 HEAPF32[i51 >> 2] = d38;
30753 i52 = i6 + 4 | 0;
30754 HEAPF32[i52 >> 2] = d39;
30755 i53 = i6 + 8 | 0;
30756 HEAPF32[i53 >> 2] = d40;
30757 HEAPF32[i6 + 12 >> 2] = 0.0;
30758 if (d38 < d47) {
30759 HEAPF32[i51 >> 2] = d47;
30760 d54 = d47;
30761 } else {
30762 d54 = d38;
30763 }
30764 if (d39 < d29) {
30765 HEAPF32[i52 >> 2] = d29;
30766 d55 = d29;
30767 } else {
30768 d55 = d39;
30769 }
30770 if (d40 < d30) {
30771 HEAPF32[i53 >> 2] = d30;
30772 d56 = d30;
30773 } else {
30774 d56 = d40;
30775 }
30776 d31 = +HEAPF32[i1 + 244 >> 2];
30777 HEAPF32[i9 >> 2] = d48 - d31;
30778 HEAPF32[i2 >> 2] = d49 - d31;
30779 HEAPF32[i8 >> 2] = d50 - d31;
30780 HEAPF32[i51 >> 2] = d54 + d31;
30781 HEAPF32[i52 >> 2] = d55 + d31;
30782 HEAPF32[i53 >> 2] = d56 + d31;
30783 HEAP32[i7 >> 2] = 1424;
30784 HEAPF32[i7 + 4 >> 2] = d19 * d28 + d18 * d27 + d15 * d26;
30785 HEAPF32[i7 + 8 >> 2] = d19 * d32 + d18 * d33 + d15 * d34;
30786 HEAPF32[i7 + 12 >> 2] = d19 * d35 + d18 * d36 + d15 * d37;
30787 HEAPF32[i7 + 16 >> 2] = 0.0;
30788 HEAPF32[i7 + 20 >> 2] = d12 * d28 + d21 * d27 + d22 * d26;
30789 HEAPF32[i7 + 24 >> 2] = d12 * d32 + d21 * d33 + d22 * d34;
30790 HEAPF32[i7 + 28 >> 2] = d12 * d35 + d21 * d36 + d22 * d37;
30791 HEAPF32[i7 + 32 >> 2] = 0.0;
30792 HEAPF32[i7 + 36 >> 2] = d23 * d28 + d24 * d27 + d25 * d26;
30793 HEAPF32[i7 + 40 >> 2] = d23 * d32 + d24 * d33 + d25 * d34;
30794 HEAPF32[i7 + 44 >> 2] = d23 * d35 + d24 * d36 + d25 * d37;
30795 HEAPF32[i7 + 48 >> 2] = 0.0;
30796 HEAPF32[i7 + 52 >> 2] = d38;
30797 HEAPF32[i7 + 56 >> 2] = d39;
30798 HEAPF32[i7 + 60 >> 2] = d40;
30799 HEAPF32[i7 + 64 >> 2] = 0.0;
30800 HEAPF32[i7 + 68 >> 2] = d19 * d17 + d18 * d14 + d15 * d11;
30801 HEAPF32[i7 + 72 >> 2] = d19 * d41 + d18 * d42 + d15 * d43;
30802 HEAPF32[i7 + 76 >> 2] = d19 * d44 + d18 * d45 + d15 * d46;
30803 HEAPF32[i7 + 80 >> 2] = 0.0;
30804 HEAPF32[i7 + 84 >> 2] = d12 * d17 + d21 * d14 + d22 * d11;
30805 HEAPF32[i7 + 88 >> 2] = d12 * d41 + d21 * d42 + d22 * d43;
30806 HEAPF32[i7 + 92 >> 2] = d12 * d44 + d21 * d45 + d22 * d46;
30807 HEAPF32[i7 + 96 >> 2] = 0.0;
30808 HEAPF32[i7 + 100 >> 2] = d23 * d17 + d24 * d14 + d25 * d11;
30809 HEAPF32[i7 + 104 >> 2] = d23 * d41 + d24 * d42 + d25 * d43;
30810 HEAPF32[i7 + 108 >> 2] = d23 * d44 + d24 * d45 + d25 * d46;
30811 HEAPF32[i7 + 112 >> 2] = 0.0;
30812 HEAPF32[i7 + 116 >> 2] = d47;
30813 HEAPF32[i7 + 120 >> 2] = d29;
30814 HEAPF32[i7 + 124 >> 2] = d30;
30815 HEAPF32[i7 + 128 >> 2] = 0.0;
30816 HEAPF32[i7 + 196 >> 2] = d31;
30817 i53 = i7 + 200 | 0;
30818 i52 = i1 + 240 | 0;
30819 HEAPF32[i53 >> 2] = +HEAPF32[i52 >> 2];
30820 do {
30821 if ((i3 | 0) == 0) {
30822 i57 = i7 | 0;
30823 } else {
30824 i1 = i7 | 0;
30825 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i3 >> 2] | 0) + 60 >> 2] & 127](i3, i1, i4, i6);
30826 d31 = +HEAPF32[i53 >> 2];
30827 if (d31 >= +HEAPF32[i52 >> 2]) {
30828 i57 = i1;
30829 break;
30830 }
30831 HEAPF32[i52 >> 2] = d31;
30832 __ZN18btTriangleCallbackD2Ev(i1);
30833 d20 = d31;
30834 STACKTOP = i5;
30835 return +d20;
30836 }
30837 } while (0);
30838 __ZN18btTriangleCallbackD2Ev(i57);
30839 d20 = 1.0;
30840 STACKTOP = i5;
30841 return +d20;
30842 }
30843 function __ZN25btSimulationIslandManager12buildIslandsEP12btDispatcherP16btCollisionWorld(i1, i2, i3) {
30844 i1 = i1 | 0;
30845 i2 = i2 | 0;
30846 i3 = i3 | 0;
30847 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0;
30848 __ZN15CProfileManager13Start_ProfileEPKc(504);
30849 i4 = i1 + 28 | 0;
30850 i5 = HEAP32[i4 >> 2] | 0;
30851 if ((i5 | 0) < 0) {
30852 i6 = i1 + 32 | 0;
30853 i7 = i1 + 36 | 0;
30854 if ((HEAP32[i6 >> 2] | 0) < 0) {
30855 i8 = HEAP32[i7 >> 2] | 0;
30856 i9 = i1 + 40 | 0;
30857 if ((i8 | 0) != 0) {
30858 if ((HEAP8[i9] | 0) != 0) {
30859 __Z21btAlignedFreeInternalPv(i8);
30860 }
30861 HEAP32[i7 >> 2] = 0;
30862 }
30863 HEAP8[i9] = 1;
30864 HEAP32[i7 >> 2] = 0;
30865 HEAP32[i6 >> 2] = 0;
30866 i10 = i5;
30867 } else {
30868 i10 = i5;
30869 }
30870 do {
30871 i5 = (HEAP32[i7 >> 2] | 0) + (i10 << 2) | 0;
30872 if ((i5 | 0) != 0) {
30873 HEAP32[i5 >> 2] = 0;
30874 }
30875 i10 = i10 + 1 | 0;
30876 } while ((i10 | 0) < 0);
30877 }
30878 HEAP32[i4 >> 2] = 0;
30879 __ZN11btUnionFind11sortIslandsEv(i1 + 4 | 0);
30880 i10 = HEAP32[i1 + 8 >> 2] | 0;
30881 if ((i10 | 0) > 0) {
30882 i7 = i1 + 16 | 0;
30883 i5 = i3 + 16 | 0;
30884 i3 = 0;
30885 while (1) {
30886 i6 = HEAP32[i7 >> 2] | 0;
30887 i9 = HEAP32[i6 + (i3 << 3) >> 2] | 0;
30888 i8 = i3;
30889 while (1) {
30890 i11 = i8 + 1 | 0;
30891 if ((i11 | 0) >= (i10 | 0)) {
30892 i12 = 0;
30893 break;
30894 }
30895 if ((HEAP32[i6 + (i11 << 3) >> 2] | 0) == (i9 | 0)) {
30896 i8 = i11;
30897 } else {
30898 i12 = 1;
30899 break;
30900 }
30901 }
30902 L212 : do {
30903 if ((i3 | 0) < (i11 | 0)) {
30904 i8 = HEAP32[i5 >> 2] | 0;
30905 i13 = i3;
30906 i14 = 1;
30907 while (1) {
30908 i15 = HEAP32[i8 + (HEAP32[i6 + (i13 << 3) + 4 >> 2] << 2) >> 2] | 0;
30909 if ((HEAP32[i15 + 208 >> 2] | 0) == (i9 | 0)) {
30910 i16 = HEAP32[i15 + 216 >> 2] | 0;
30911 i17 = i14 & (i16 | 0) != 1 & (i16 | 0) != 4;
30912 } else {
30913 i17 = i14;
30914 }
30915 i16 = i13 + 1 | 0;
30916 if ((i16 | 0) < (i11 | 0)) {
30917 i13 = i16;
30918 i14 = i17;
30919 } else {
30920 break;
30921 }
30922 }
30923 if (i17) {
30924 i14 = i3;
30925 i13 = i6;
30926 i16 = i8;
30927 while (1) {
30928 i15 = HEAP32[i16 + (HEAP32[i13 + (i14 << 3) + 4 >> 2] << 2) >> 2] | 0;
30929 if ((HEAP32[i15 + 208 >> 2] | 0) == (i9 | 0)) {
30930 __ZN17btCollisionObject18setActivationStateEi(i15, 2);
30931 }
30932 i15 = i14 + 1 | 0;
30933 if ((i15 | 0) >= (i11 | 0)) {
30934 break L212;
30935 }
30936 i14 = i15;
30937 i13 = HEAP32[i7 >> 2] | 0;
30938 i16 = HEAP32[i5 >> 2] | 0;
30939 }
30940 } else {
30941 i18 = i3;
30942 i19 = i6;
30943 i20 = i8;
30944 }
30945 while (1) {
30946 i16 = HEAP32[i20 + (HEAP32[i19 + (i18 << 3) + 4 >> 2] << 2) >> 2] | 0;
30947 do {
30948 if ((HEAP32[i16 + 208 >> 2] | 0) == (i9 | 0)) {
30949 if ((HEAP32[i16 + 216 >> 2] | 0) != 2) {
30950 break;
30951 }
30952 __ZN17btCollisionObject18setActivationStateEi(i16, 3);
30953 HEAPF32[i16 + 220 >> 2] = 0.0;
30954 }
30955 } while (0);
30956 i16 = i18 + 1 | 0;
30957 if ((i16 | 0) >= (i11 | 0)) {
30958 break L212;
30959 }
30960 i18 = i16;
30961 i19 = HEAP32[i7 >> 2] | 0;
30962 i20 = HEAP32[i5 >> 2] | 0;
30963 }
30964 }
30965 } while (0);
30966 if (i12) {
30967 i3 = i11;
30968 } else {
30969 break;
30970 }
30971 }
30972 }
30973 i11 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i2 >> 2] | 0) + 36 >> 2] & 127](i2) | 0;
30974 if ((i11 | 0) <= 0) {
30975 __ZN15CProfileManager12Stop_ProfileEv();
30976 return;
30977 }
30978 i3 = i2;
30979 i12 = i1 + 64 | 0;
30980 i5 = i2;
30981 i20 = i1 + 32 | 0;
30982 i7 = i1 + 36 | 0;
30983 i19 = i1 + 40 | 0;
30984 i1 = 0;
30985 do {
30986 i18 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i3 >> 2] | 0) + 40 >> 2] & 63](i2, i1) | 0;
30987 i17 = HEAP32[i18 + 1108 >> 2] | 0;
30988 i10 = i17;
30989 i9 = HEAP32[i18 + 1112 >> 2] | 0;
30990 i6 = i9;
30991 if ((i17 | 0) == 0) {
30992 i21 = 230;
30993 } else {
30994 if ((HEAP32[i17 + 216 >> 2] | 0) == 2) {
30995 i21 = 230;
30996 } else {
30997 i21 = 232;
30998 }
30999 }
31000 do {
31001 if ((i21 | 0) == 230) {
31002 i21 = 0;
31003 if ((i9 | 0) == 0) {
31004 break;
31005 }
31006 if ((HEAP32[i9 + 216 >> 2] | 0) != 2) {
31007 i21 = 232;
31008 }
31009 }
31010 } while (0);
31011 do {
31012 if ((i21 | 0) == 232) {
31013 i21 = 0;
31014 do {
31015 if ((HEAP32[i17 + 204 >> 2] & 2 | 0) != 0) {
31016 if ((HEAP32[i17 + 216 >> 2] | 0) == 2) {
31017 break;
31018 }
31019 __ZN17btCollisionObject8activateEb(i6, 0);
31020 }
31021 } while (0);
31022 do {
31023 if ((HEAP32[i9 + 204 >> 2] & 2 | 0) != 0) {
31024 if ((HEAP32[i9 + 216 >> 2] | 0) == 2) {
31025 break;
31026 }
31027 __ZN17btCollisionObject8activateEb(i10, 0);
31028 }
31029 } while (0);
31030 if ((HEAP8[i12] | 0) == 0) {
31031 break;
31032 }
31033 if (!(FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i5 >> 2] | 0) + 28 >> 2] & 31](i2, i10, i6) | 0)) {
31034 break;
31035 }
31036 i8 = HEAP32[i4 >> 2] | 0;
31037 do {
31038 if ((i8 | 0) == (HEAP32[i20 >> 2] | 0)) {
31039 i16 = (i8 | 0) == 0 ? 1 : i8 << 1;
31040 if ((i8 | 0) >= (i16 | 0)) {
31041 i22 = i8;
31042 break;
31043 }
31044 if ((i16 | 0) == 0) {
31045 i23 = 0;
31046 i24 = i8;
31047 } else {
31048 i13 = __Z22btAlignedAllocInternalji(i16 << 2, 16) | 0;
31049 i23 = i13;
31050 i24 = HEAP32[i4 >> 2] | 0;
31051 }
31052 if ((i24 | 0) > 0) {
31053 i13 = 0;
31054 do {
31055 i14 = i23 + (i13 << 2) | 0;
31056 if ((i14 | 0) != 0) {
31057 HEAP32[i14 >> 2] = HEAP32[(HEAP32[i7 >> 2] | 0) + (i13 << 2) >> 2];
31058 }
31059 i13 = i13 + 1 | 0;
31060 } while ((i13 | 0) < (i24 | 0));
31061 }
31062 i13 = HEAP32[i7 >> 2] | 0;
31063 if ((i13 | 0) == 0) {
31064 i25 = i24;
31065 } else {
31066 if ((HEAP8[i19] | 0) == 0) {
31067 i26 = i24;
31068 } else {
31069 __Z21btAlignedFreeInternalPv(i13);
31070 i26 = HEAP32[i4 >> 2] | 0;
31071 }
31072 HEAP32[i7 >> 2] = 0;
31073 i25 = i26;
31074 }
31075 HEAP8[i19] = 1;
31076 HEAP32[i7 >> 2] = i23;
31077 HEAP32[i20 >> 2] = i16;
31078 i22 = i25;
31079 } else {
31080 i22 = i8;
31081 }
31082 } while (0);
31083 i8 = (HEAP32[i7 >> 2] | 0) + (i22 << 2) | 0;
31084 if ((i8 | 0) != 0) {
31085 HEAP32[i8 >> 2] = i18;
31086 }
31087 HEAP32[i4 >> 2] = i22 + 1;
31088 }
31089 } while (0);
31090 i1 = i1 + 1 | 0;
31091 } while ((i1 | 0) < (i11 | 0));
31092 __ZN15CProfileManager12Stop_ProfileEv();
31093 return;
31094 }
31095 function __ZN16btManifoldResult15addContactPointERK9btVector3S2_f(i1, i2, i3, d4) {
31096 i1 = i1 | 0;
31097 i2 = i2 | 0;
31098 i3 = i3 | 0;
31099 d4 = +d4;
31100 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0;
31101 i5 = STACKTOP;
31102 STACKTOP = STACKTOP + 280 | 0;
31103 i6 = i5 | 0;
31104 i7 = i1 + 4 | 0;
31105 i8 = HEAP32[i7 >> 2] | 0;
31106 if (+HEAPF32[i8 + 1124 >> 2] < d4) {
31107 STACKTOP = i5;
31108 return;
31109 }
31110 i9 = i1 + 136 | 0;
31111 i10 = (HEAP32[i8 + 1108 >> 2] | 0) != (HEAP32[i9 >> 2] | 0);
31112 d11 = +HEAPF32[i3 >> 2];
31113 d12 = +HEAPF32[i2 >> 2] * d4 + d11;
31114 d13 = +HEAPF32[i3 + 4 >> 2];
31115 d14 = +HEAPF32[i2 + 4 >> 2] * d4 + d13;
31116 d15 = +HEAPF32[i3 + 8 >> 2];
31117 d16 = +HEAPF32[i2 + 8 >> 2] * d4 + d15;
31118 if (i10) {
31119 d17 = d12 - +HEAPF32[i1 + 120 >> 2];
31120 d18 = d14 - +HEAPF32[i1 + 124 >> 2];
31121 d19 = d16 - +HEAPF32[i1 + 128 >> 2];
31122 d20 = d11 - +HEAPF32[i1 + 56 >> 2];
31123 d21 = d13 - +HEAPF32[i1 + 60 >> 2];
31124 d22 = d15 - +HEAPF32[i1 + 64 >> 2];
31125 d23 = d20 * +HEAPF32[i1 + 8 >> 2] + d21 * +HEAPF32[i1 + 24 >> 2] + d22 * +HEAPF32[i1 + 40 >> 2];
31126 d24 = d20 * +HEAPF32[i1 + 12 >> 2] + d21 * +HEAPF32[i1 + 28 >> 2] + d22 * +HEAPF32[i1 + 44 >> 2];
31127 d25 = d20 * +HEAPF32[i1 + 16 >> 2] + d21 * +HEAPF32[i1 + 32 >> 2] + d22 * +HEAPF32[i1 + 48 >> 2];
31128 d26 = d17 * +HEAPF32[i1 + 72 >> 2] + d18 * +HEAPF32[i1 + 88 >> 2] + d19 * +HEAPF32[i1 + 104 >> 2];
31129 d27 = d17 * +HEAPF32[i1 + 76 >> 2] + d18 * +HEAPF32[i1 + 92 >> 2] + d19 * +HEAPF32[i1 + 108 >> 2];
31130 d28 = d17 * +HEAPF32[i1 + 80 >> 2] + d18 * +HEAPF32[i1 + 96 >> 2] + d19 * +HEAPF32[i1 + 112 >> 2];
31131 } else {
31132 d19 = d12 - +HEAPF32[i1 + 56 >> 2];
31133 d18 = d14 - +HEAPF32[i1 + 60 >> 2];
31134 d17 = d16 - +HEAPF32[i1 + 64 >> 2];
31135 d22 = d11 - +HEAPF32[i1 + 120 >> 2];
31136 d11 = d13 - +HEAPF32[i1 + 124 >> 2];
31137 d13 = d15 - +HEAPF32[i1 + 128 >> 2];
31138 d23 = d22 * +HEAPF32[i1 + 72 >> 2] + d11 * +HEAPF32[i1 + 88 >> 2] + d13 * +HEAPF32[i1 + 104 >> 2];
31139 d24 = d22 * +HEAPF32[i1 + 76 >> 2] + d11 * +HEAPF32[i1 + 92 >> 2] + d13 * +HEAPF32[i1 + 108 >> 2];
31140 d25 = d22 * +HEAPF32[i1 + 80 >> 2] + d11 * +HEAPF32[i1 + 96 >> 2] + d13 * +HEAPF32[i1 + 112 >> 2];
31141 d26 = d19 * +HEAPF32[i1 + 8 >> 2] + d18 * +HEAPF32[i1 + 24 >> 2] + d17 * +HEAPF32[i1 + 40 >> 2];
31142 d27 = d19 * +HEAPF32[i1 + 12 >> 2] + d18 * +HEAPF32[i1 + 28 >> 2] + d17 * +HEAPF32[i1 + 44 >> 2];
31143 d28 = d19 * +HEAPF32[i1 + 16 >> 2] + d18 * +HEAPF32[i1 + 32 >> 2] + d17 * +HEAPF32[i1 + 48 >> 2];
31144 }
31145 HEAPF32[i6 >> 2] = d26;
31146 HEAPF32[i6 + 4 >> 2] = d27;
31147 HEAPF32[i6 + 8 >> 2] = d28;
31148 HEAPF32[i6 + 12 >> 2] = 0.0;
31149 HEAPF32[i6 + 16 >> 2] = d23;
31150 HEAPF32[i6 + 20 >> 2] = d24;
31151 HEAPF32[i6 + 24 >> 2] = d25;
31152 HEAPF32[i6 + 28 >> 2] = 0.0;
31153 i29 = i6 + 64 | 0;
31154 i30 = i2;
31155 HEAP32[i29 >> 2] = HEAP32[i30 >> 2];
31156 HEAP32[i29 + 4 >> 2] = HEAP32[i30 + 4 >> 2];
31157 HEAP32[i29 + 8 >> 2] = HEAP32[i30 + 8 >> 2];
31158 HEAP32[i29 + 12 >> 2] = HEAP32[i30 + 12 >> 2];
31159 HEAPF32[i6 + 80 >> 2] = d4;
31160 i30 = i6 + 84 | 0;
31161 HEAPF32[i30 >> 2] = 0.0;
31162 i29 = i6 + 88 | 0;
31163 HEAPF32[i29 >> 2] = 0.0;
31164 HEAP32[i6 + 108 >> 2] = 0;
31165 HEAPF32[i6 + 112 >> 2] = 0.0;
31166 HEAP8[i6 + 116 | 0] = 0;
31167 HEAPF32[i6 + 208 >> 2] = 0.0;
31168 HEAPF32[i6 + 240 >> 2] = 0.0;
31169 HEAPF32[i6 + 272 >> 2] = 0.0;
31170 _memset(i6 + 120 | 0, 0, 28);
31171 HEAPF32[i6 + 48 >> 2] = d12;
31172 HEAPF32[i6 + 52 >> 2] = d14;
31173 HEAPF32[i6 + 56 >> 2] = d16;
31174 HEAPF32[i6 + 60 >> 2] = 0.0;
31175 i2 = i6 + 32 | 0;
31176 i31 = i3;
31177 HEAP32[i2 >> 2] = HEAP32[i31 >> 2];
31178 HEAP32[i2 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
31179 HEAP32[i2 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
31180 HEAP32[i2 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
31181 i31 = __ZNK20btPersistentManifold13getCacheEntryERK15btManifoldPoint(i8, i6) | 0;
31182 i8 = HEAP32[i9 >> 2] | 0;
31183 i2 = i1 + 140 | 0;
31184 i3 = HEAP32[i2 >> 2] | 0;
31185 d16 = +HEAPF32[i8 + 224 >> 2] * +HEAPF32[i3 + 224 >> 2];
31186 d14 = d16 < -10.0 ? -10.0 : d16;
31187 HEAPF32[i30 >> 2] = d14 > 10.0 ? 10.0 : d14;
31188 HEAPF32[i29 >> 2] = +HEAPF32[i8 + 228 >> 2] * +HEAPF32[i3 + 228 >> 2];
31189 if (i10) {
31190 HEAP32[i6 + 92 >> 2] = HEAP32[i1 + 148 >> 2];
31191 HEAP32[i6 + 96 >> 2] = HEAP32[i1 + 144 >> 2];
31192 HEAP32[i6 + 100 >> 2] = HEAP32[i1 + 156 >> 2];
31193 HEAP32[i6 + 104 >> 2] = HEAP32[i1 + 152 >> 2];
31194 } else {
31195 HEAP32[i6 + 92 >> 2] = HEAP32[i1 + 144 >> 2];
31196 HEAP32[i6 + 96 >> 2] = HEAP32[i1 + 148 >> 2];
31197 HEAP32[i6 + 100 >> 2] = HEAP32[i1 + 152 >> 2];
31198 HEAP32[i6 + 104 >> 2] = HEAP32[i1 + 156 >> 2];
31199 }
31200 i1 = HEAP32[i7 >> 2] | 0;
31201 if ((i31 | 0) > -1) {
31202 i3 = i1 + 4 + (i31 * 276 | 0) + 144 | 0;
31203 i8 = HEAP32[i3 >> 2] | 0;
31204 i29 = i1 + 4 + (i31 * 276 | 0) + 208 | 0;
31205 d14 = +HEAPF32[i29 >> 2];
31206 i30 = i1 + 4 + (i31 * 276 | 0) + 240 | 0;
31207 d16 = +HEAPF32[i30 >> 2];
31208 i32 = i1 + 4 + (i31 * 276 | 0) + 272 | 0;
31209 d12 = +HEAPF32[i32 >> 2];
31210 i33 = i1 + 4 + (i31 * 276 | 0) + 108 | 0;
31211 i34 = HEAP32[i33 >> 2] | 0;
31212 i35 = i1 + 4 + (i31 * 276 | 0) | 0;
31213 i36 = i6;
31214 _memcpy(i35 | 0, i36 | 0, 276) | 0;
31215 HEAP32[i33 >> 2] = i34;
31216 HEAPF32[i1 + 4 + (i31 * 276 | 0) + 112 >> 2] = d14;
31217 HEAPF32[i1 + 4 + (i31 * 276 | 0) + 120 >> 2] = d16;
31218 HEAPF32[i1 + 4 + (i31 * 276 | 0) + 124 >> 2] = d12;
31219 HEAPF32[i29 >> 2] = d14;
31220 HEAPF32[i30 >> 2] = d16;
31221 HEAPF32[i32 >> 2] = d12;
31222 HEAP32[i3 >> 2] = i8;
31223 i37 = i31;
31224 } else {
31225 i37 = __ZN20btPersistentManifold16addManifoldPointERK15btManifoldPoint(i1, i6) | 0;
31226 }
31227 i1 = HEAP32[3010] | 0;
31228 if ((i1 | 0) == 0) {
31229 STACKTOP = i5;
31230 return;
31231 }
31232 do {
31233 if ((HEAP32[(HEAP32[i9 >> 2] | 0) + 204 >> 2] & 8 | 0) == 0) {
31234 if ((HEAP32[(HEAP32[i2 >> 2] | 0) + 204 >> 2] & 8 | 0) != 0) {
31235 break;
31236 }
31237 STACKTOP = i5;
31238 return;
31239 }
31240 } while (0);
31241 FUNCTION_TABLE_iiiiiiii[i1 & 1]((HEAP32[i7 >> 2] | 0) + 4 + (i37 * 276 | 0) | 0, HEAP32[(i10 ? i2 : i9) >> 2] | 0, HEAP32[i6 + 92 >> 2] | 0, HEAP32[i6 + 100 >> 2] | 0, HEAP32[(i10 ? i9 : i2) >> 2] | 0, HEAP32[i6 + 96 >> 2] | 0, HEAP32[i6 + 104 >> 2] | 0) | 0;
31242 STACKTOP = i5;
31243 return;
31244 }
31245 function __ZN16btDbvtBroadphase7collideEP12btDispatcher(i1, i2) {
31246 i1 = i1 | 0;
31247 i2 = i2 | 0;
31248 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0;
31249 i3 = STACKTOP;
31250 STACKTOP = STACKTOP + 48 | 0;
31251 i4 = i3 | 0;
31252 i5 = i3 + 32 | 0;
31253 i6 = i1 + 4 | 0;
31254 i7 = i6 | 0;
31255 __ZN6btDbvt19optimizeIncrementalEi(i7, ((Math_imul(HEAP32[i1 + 112 >> 2] | 0, HEAP32[i1 + 16 >> 2] | 0) | 0) / 100 | 0) + 1 | 0);
31256 i8 = i1 + 124 | 0;
31257 if ((HEAP32[i8 >> 2] | 0) != 0) {
31258 i9 = ((Math_imul(HEAP32[i1 + 108 >> 2] | 0, HEAP32[i1 + 56 >> 2] | 0) | 0) / 100 | 0) + 1 | 0;
31259 __ZN6btDbvt19optimizeIncrementalEi(i1 + 44 | 0, i9);
31260 i10 = (HEAP32[i8 >> 2] | 0) - i9 | 0;
31261 HEAP32[i8 >> 2] = (i10 | 0) < 0 ? 0 : i10;
31262 }
31263 i10 = i1 + 104 | 0;
31264 i9 = ((HEAP32[i10 >> 2] | 0) + 1 | 0) % 2 | 0;
31265 HEAP32[i10 >> 2] = i9;
31266 i10 = HEAP32[i1 + 84 + (i9 << 2) >> 2] | 0;
31267 if ((i10 | 0) != 0) {
31268 i9 = i1 + 92 | 0;
31269 i11 = i4;
31270 i12 = i4 + 16 | 0;
31271 i13 = i1 + 44 | 0;
31272 i14 = i10;
31273 while (1) {
31274 i10 = i14 + 56 | 0;
31275 i15 = HEAP32[i10 >> 2] | 0;
31276 i16 = i14 + 60 | 0;
31277 i17 = i14 + 52 | 0;
31278 i18 = HEAP32[i17 >> 2] | 0;
31279 if ((i18 | 0) == 0) {
31280 HEAP32[i1 + 84 + (HEAP32[i16 >> 2] << 2) >> 2] = i15;
31281 } else {
31282 HEAP32[i18 + 56 >> 2] = i15;
31283 }
31284 i18 = HEAP32[i10 >> 2] | 0;
31285 if ((i18 | 0) != 0) {
31286 HEAP32[i18 + 52 >> 2] = HEAP32[i17 >> 2];
31287 }
31288 HEAP32[i17 >> 2] = 0;
31289 HEAP32[i10 >> 2] = HEAP32[i9 >> 2];
31290 i10 = HEAP32[i9 >> 2] | 0;
31291 if ((i10 | 0) != 0) {
31292 HEAP32[i10 + 52 >> 2] = i14;
31293 }
31294 HEAP32[i9 >> 2] = i14;
31295 i10 = i14 + 48 | 0;
31296 __ZN6btDbvt6removeEP10btDbvtNode(i7, HEAP32[i10 >> 2] | 0);
31297 i17 = i14 + 16 | 0;
31298 HEAP32[i11 >> 2] = HEAP32[i17 >> 2];
31299 HEAP32[i11 + 4 >> 2] = HEAP32[i17 + 4 >> 2];
31300 HEAP32[i11 + 8 >> 2] = HEAP32[i17 + 8 >> 2];
31301 HEAP32[i11 + 12 >> 2] = HEAP32[i17 + 12 >> 2];
31302 i17 = i14 + 32 | 0;
31303 HEAP32[i12 >> 2] = HEAP32[i17 >> 2];
31304 HEAP32[i12 + 4 >> 2] = HEAP32[i17 + 4 >> 2];
31305 HEAP32[i12 + 8 >> 2] = HEAP32[i17 + 8 >> 2];
31306 HEAP32[i12 + 12 >> 2] = HEAP32[i17 + 12 >> 2];
31307 HEAP32[i10 >> 2] = __ZN6btDbvt6insertERK12btDbvtAabbMmPv(i13, i4, i14) | 0;
31308 HEAP32[i16 >> 2] = 2;
31309 if ((i15 | 0) == 0) {
31310 break;
31311 } else {
31312 i14 = i15;
31313 }
31314 }
31315 HEAP32[i8 >> 2] = HEAP32[i1 + 56 >> 2];
31316 HEAP8[i1 + 154 | 0] = 1;
31317 }
31318 HEAP32[i5 >> 2] = 4064;
31319 HEAP32[i5 + 4 >> 2] = i1;
31320 i8 = i1 + 153 | 0;
31321 do {
31322 if ((HEAP8[i8] | 0) != 0) {
31323 i14 = i6 | 0;
31324 i4 = i5 | 0;
31325 __ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7, HEAP32[i14 >> 2] | 0, HEAP32[i1 + 44 >> 2] | 0, i4);
31326 if ((HEAP8[i8] | 0) == 0) {
31327 break;
31328 }
31329 i13 = HEAP32[i14 >> 2] | 0;
31330 __ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7, i13, i13, i4);
31331 }
31332 } while (0);
31333 i7 = i1 + 154 | 0;
31334 L1067 : do {
31335 if ((HEAP8[i7] | 0) != 0) {
31336 i8 = i1 + 96 | 0;
31337 i5 = HEAP32[i8 >> 2] | 0;
31338 i6 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i5 >> 2] | 0) + 28 >> 2] & 127](i5) | 0;
31339 i5 = i6 + 4 | 0;
31340 i4 = HEAP32[i5 >> 2] | 0;
31341 if ((i4 | 0) <= 0) {
31342 break;
31343 }
31344 i13 = (Math_imul(HEAP32[i1 + 116 >> 2] | 0, i4) | 0) / 100 | 0;
31345 i14 = HEAP32[i1 + 120 >> 2] | 0;
31346 i12 = (i14 | 0) > (i13 | 0) ? i14 : i13;
31347 i13 = (i4 | 0) < (i12 | 0) ? i4 : i12;
31348 i12 = i1 + 144 | 0;
31349 do {
31350 if ((i13 | 0) > 0) {
31351 i14 = i6 + 12 | 0;
31352 i11 = i13;
31353 i9 = 0;
31354 i15 = i4;
31355 while (1) {
31356 i16 = ((HEAP32[i12 >> 2] | 0) + i9 | 0) % (i15 | 0) | 0;
31357 i10 = HEAP32[i14 >> 2] | 0;
31358 i17 = HEAP32[i10 + (i16 << 4) >> 2] | 0;
31359 i18 = HEAP32[i10 + (i16 << 4) + 4 >> 2] | 0;
31360 i16 = HEAP32[i17 + 48 >> 2] | 0;
31361 i10 = HEAP32[i18 + 48 >> 2] | 0;
31362 do {
31363 if (+HEAPF32[i16 >> 2] > +HEAPF32[i10 + 16 >> 2]) {
31364 i19 = 976;
31365 } else {
31366 if (+HEAPF32[i16 + 16 >> 2] < +HEAPF32[i10 >> 2]) {
31367 i19 = 976;
31368 break;
31369 }
31370 if (+HEAPF32[i16 + 4 >> 2] > +HEAPF32[i10 + 20 >> 2]) {
31371 i19 = 976;
31372 break;
31373 }
31374 if (+HEAPF32[i16 + 20 >> 2] < +HEAPF32[i10 + 4 >> 2]) {
31375 i19 = 976;
31376 break;
31377 }
31378 if (+HEAPF32[i16 + 8 >> 2] > +HEAPF32[i10 + 24 >> 2]) {
31379 i19 = 976;
31380 break;
31381 }
31382 if (+HEAPF32[i16 + 24 >> 2] < +HEAPF32[i10 + 8 >> 2]) {
31383 i19 = 976;
31384 } else {
31385 i20 = i9;
31386 i21 = i11;
31387 i22 = i15;
31388 }
31389 }
31390 } while (0);
31391 if ((i19 | 0) == 976) {
31392 i19 = 0;
31393 i10 = HEAP32[i8 >> 2] | 0;
31394 i16 = i10 | 0;
31395 i23 = HEAP32[(HEAP32[i10 >> 2] | 0) + 12 >> 2] | 0;
31396 FUNCTION_TABLE_iiiii[i23 & 31](i16, i17, i18, i2) | 0;
31397 i20 = i9 - 1 | 0;
31398 i21 = i11 - 1 | 0;
31399 i22 = HEAP32[i5 >> 2] | 0;
31400 }
31401 i16 = i20 + 1 | 0;
31402 if ((i16 | 0) < (i21 | 0)) {
31403 i11 = i21;
31404 i9 = i16;
31405 i15 = i22;
31406 } else {
31407 break;
31408 }
31409 }
31410 if ((i22 | 0) > 0) {
31411 i24 = i22;
31412 i25 = i21;
31413 break;
31414 }
31415 HEAP32[i12 >> 2] = 0;
31416 break L1067;
31417 } else {
31418 i24 = i4;
31419 i25 = i13;
31420 }
31421 } while (0);
31422 HEAP32[i12 >> 2] = ((HEAP32[i12 >> 2] | 0) + i25 | 0) % (i24 | 0) | 0;
31423 }
31424 } while (0);
31425 i24 = i1 + 140 | 0;
31426 HEAP32[i24 >> 2] = (HEAP32[i24 >> 2] | 0) + 1;
31427 HEAP32[i1 + 120 >> 2] = 1;
31428 HEAP8[i7] = 0;
31429 i7 = i1 + 128 | 0;
31430 i24 = HEAP32[i7 >> 2] | 0;
31431 if ((i24 | 0) == 0) {
31432 HEAPF32[i1 + 136 >> 2] = 0.0;
31433 i26 = HEAP32[i1 + 132 >> 2] | 0;
31434 i27 = i1 + 132 | 0;
31435 i28 = i26 >>> 1;
31436 HEAP32[i27 >> 2] = i28;
31437 i29 = i24 >>> 1;
31438 HEAP32[i7 >> 2] = i29;
31439 STACKTOP = i3;
31440 return;
31441 } else {
31442 i25 = HEAP32[i1 + 132 >> 2] | 0;
31443 HEAPF32[i1 + 136 >> 2] = +(i25 >>> 0 >>> 0) / +(i24 >>> 0 >>> 0);
31444 i26 = i25;
31445 i27 = i1 + 132 | 0;
31446 i28 = i26 >>> 1;
31447 HEAP32[i27 >> 2] = i28;
31448 i29 = i24 >>> 1;
31449 HEAP32[i7 >> 2] = i29;
31450 STACKTOP = i3;
31451 return;
31452 }
31453 }
31454 function __ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i1, i2, i3, i4) {
31455 i1 = i1 | 0;
31456 i2 = i2 | 0;
31457 i3 = i3 | 0;
31458 i4 = i4 | 0;
31459 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0;
31460 if ((i2 | 0) == 0 | (i3 | 0) == 0) {
31461 return;
31462 }
31463 i5 = i1 + 24 | 0;
31464 i6 = i1 + 28 | 0;
31465 do {
31466 if ((HEAP32[i5 >> 2] | 0) < 128) {
31467 if ((HEAP32[i6 >> 2] | 0) >= 128) {
31468 break;
31469 }
31470 i7 = __Z22btAlignedAllocInternalji(1024, 16) | 0;
31471 i8 = HEAP32[i5 >> 2] | 0;
31472 i9 = i1 + 32 | 0;
31473 if ((i8 | 0) > 0) {
31474 i10 = 0;
31475 do {
31476 i11 = i7 + (i10 << 3) | 0;
31477 if ((i11 | 0) != 0) {
31478 i12 = (HEAP32[i9 >> 2] | 0) + (i10 << 3) | 0;
31479 i13 = i11;
31480 i11 = HEAP32[i12 + 4 >> 2] | 0;
31481 HEAP32[i13 >> 2] = HEAP32[i12 >> 2];
31482 HEAP32[i13 + 4 >> 2] = i11;
31483 }
31484 i10 = i10 + 1 | 0;
31485 } while ((i10 | 0) < (i8 | 0));
31486 }
31487 i8 = HEAP32[i9 >> 2] | 0;
31488 i10 = i1 + 36 | 0;
31489 if ((i8 | 0) != 0) {
31490 if ((HEAP8[i10] | 0) != 0) {
31491 __Z21btAlignedFreeInternalPv(i8);
31492 }
31493 HEAP32[i9 >> 2] = 0;
31494 }
31495 HEAP8[i10] = 1;
31496 HEAP32[i9 >> 2] = i7;
31497 HEAP32[i6 >> 2] = 128;
31498 }
31499 } while (0);
31500 HEAP32[i5 >> 2] = 128;
31501 i10 = i1 + 32 | 0;
31502 i8 = HEAP32[i10 >> 2] | 0;
31503 HEAP32[i8 >> 2] = i2;
31504 HEAP32[i8 + 4 >> 2] = i3;
31505 i3 = i1 + 36 | 0;
31506 i1 = i4;
31507 i8 = 1;
31508 i2 = 124;
31509 while (1) {
31510 i11 = i8 - 1 | 0;
31511 i13 = HEAP32[i10 >> 2] | 0;
31512 i12 = HEAP32[i13 + (i11 << 3) >> 2] | 0;
31513 i14 = HEAP32[i13 + (i11 << 3) + 4 >> 2] | 0;
31514 if ((i11 | 0) > (i2 | 0)) {
31515 i15 = HEAP32[i5 >> 2] | 0;
31516 i16 = i15 << 1;
31517 do {
31518 if ((i15 | 0) < (i16 | 0)) {
31519 if ((HEAP32[i6 >> 2] | 0) >= (i16 | 0)) {
31520 i17 = i13;
31521 break;
31522 }
31523 if ((i16 | 0) == 0) {
31524 i18 = 0;
31525 i19 = i15;
31526 } else {
31527 i20 = __Z22btAlignedAllocInternalji(i15 << 4, 16) | 0;
31528 i18 = i20;
31529 i19 = HEAP32[i5 >> 2] | 0;
31530 }
31531 if ((i19 | 0) > 0) {
31532 i20 = 0;
31533 do {
31534 i21 = i18 + (i20 << 3) | 0;
31535 if ((i21 | 0) != 0) {
31536 i22 = (HEAP32[i10 >> 2] | 0) + (i20 << 3) | 0;
31537 i23 = i21;
31538 i21 = HEAP32[i22 + 4 >> 2] | 0;
31539 HEAP32[i23 >> 2] = HEAP32[i22 >> 2];
31540 HEAP32[i23 + 4 >> 2] = i21;
31541 }
31542 i20 = i20 + 1 | 0;
31543 } while ((i20 | 0) < (i19 | 0));
31544 }
31545 i20 = HEAP32[i10 >> 2] | 0;
31546 if ((i20 | 0) != 0) {
31547 if ((HEAP8[i3] | 0) != 0) {
31548 __Z21btAlignedFreeInternalPv(i20);
31549 }
31550 HEAP32[i10 >> 2] = 0;
31551 }
31552 HEAP8[i3] = 1;
31553 HEAP32[i10 >> 2] = i18;
31554 HEAP32[i6 >> 2] = i16;
31555 i17 = i18;
31556 } else {
31557 i17 = i13;
31558 }
31559 } while (0);
31560 HEAP32[i5 >> 2] = i16;
31561 i24 = i16 - 4 | 0;
31562 i25 = i17;
31563 } else {
31564 i24 = i2;
31565 i25 = i13;
31566 }
31567 do {
31568 if ((i12 | 0) == (i14 | 0)) {
31569 i15 = i12 + 40 | 0;
31570 if ((HEAP32[i15 >> 2] | 0) == 0) {
31571 i26 = i11;
31572 break;
31573 }
31574 i7 = i12 + 36 | 0;
31575 i9 = i25 + (i11 << 3) | 0;
31576 i20 = HEAP32[i7 >> 2] | 0;
31577 HEAP32[i9 >> 2] = i20;
31578 HEAP32[i9 + 4 >> 2] = i20;
31579 i20 = (HEAP32[i10 >> 2] | 0) + (i8 << 3) | 0;
31580 i9 = HEAP32[i15 >> 2] | 0;
31581 HEAP32[i20 >> 2] = i9;
31582 HEAP32[i20 + 4 >> 2] = i9;
31583 i9 = (HEAP32[i10 >> 2] | 0) + (i8 + 1 << 3) | 0;
31584 i20 = HEAP32[i15 >> 2] | 0;
31585 HEAP32[i9 >> 2] = HEAP32[i7 >> 2];
31586 HEAP32[i9 + 4 >> 2] = i20;
31587 i26 = i8 + 2 | 0;
31588 } else {
31589 if (+HEAPF32[i12 >> 2] > +HEAPF32[i14 + 16 >> 2]) {
31590 i26 = i11;
31591 break;
31592 }
31593 if (+HEAPF32[i12 + 16 >> 2] < +HEAPF32[i14 >> 2]) {
31594 i26 = i11;
31595 break;
31596 }
31597 if (+HEAPF32[i12 + 4 >> 2] > +HEAPF32[i14 + 20 >> 2]) {
31598 i26 = i11;
31599 break;
31600 }
31601 if (+HEAPF32[i12 + 20 >> 2] < +HEAPF32[i14 + 4 >> 2]) {
31602 i26 = i11;
31603 break;
31604 }
31605 if (+HEAPF32[i12 + 8 >> 2] > +HEAPF32[i14 + 24 >> 2]) {
31606 i26 = i11;
31607 break;
31608 }
31609 if (+HEAPF32[i12 + 24 >> 2] < +HEAPF32[i14 + 8 >> 2]) {
31610 i26 = i11;
31611 break;
31612 }
31613 i20 = i12 + 40 | 0;
31614 i9 = i14 + 40 | 0;
31615 i7 = (HEAP32[i9 >> 2] | 0) != 0;
31616 if ((HEAP32[i20 >> 2] | 0) == 0) {
31617 if (i7) {
31618 i15 = i25 + (i11 << 3) | 0;
31619 i21 = i12;
31620 i23 = 0;
31621 i22 = HEAP32[i14 + 36 >> 2] | i23;
31622 HEAP32[i15 >> 2] = i21;
31623 HEAP32[i15 + 4 >> 2] = i22;
31624 i22 = (HEAP32[i10 >> 2] | 0) + (i8 << 3) | 0;
31625 i15 = HEAP32[i9 >> 2] | i23;
31626 HEAP32[i22 >> 2] = i21;
31627 HEAP32[i22 + 4 >> 2] = i15;
31628 i26 = i8 + 1 | 0;
31629 break;
31630 } else {
31631 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i4, i12, i14);
31632 i26 = i11;
31633 break;
31634 }
31635 } else {
31636 i15 = i25 + (i11 << 3) | 0;
31637 i22 = i12 + 36 | 0;
31638 i21 = HEAP32[i22 >> 2] | 0;
31639 if (i7) {
31640 i7 = i14 + 36 | 0;
31641 i23 = i15;
31642 i27 = HEAP32[i7 >> 2] | 0;
31643 HEAP32[i23 >> 2] = i21;
31644 HEAP32[i23 + 4 >> 2] = i27;
31645 i27 = (HEAP32[i10 >> 2] | 0) + (i8 << 3) | 0;
31646 i23 = HEAP32[i7 >> 2] | 0;
31647 HEAP32[i27 >> 2] = HEAP32[i20 >> 2];
31648 HEAP32[i27 + 4 >> 2] = i23;
31649 i23 = (HEAP32[i10 >> 2] | 0) + (i8 + 1 << 3) | 0;
31650 i27 = HEAP32[i9 >> 2] | 0;
31651 HEAP32[i23 >> 2] = HEAP32[i22 >> 2];
31652 HEAP32[i23 + 4 >> 2] = i27;
31653 i27 = (HEAP32[i10 >> 2] | 0) + (i8 + 2 << 3) | 0;
31654 i23 = HEAP32[i9 >> 2] | 0;
31655 HEAP32[i27 >> 2] = HEAP32[i20 >> 2];
31656 HEAP32[i27 + 4 >> 2] = i23;
31657 i26 = i8 + 3 | 0;
31658 break;
31659 } else {
31660 i23 = i15;
31661 i15 = 0;
31662 i27 = i14;
31663 HEAP32[i23 >> 2] = i21 | i15;
31664 HEAP32[i23 + 4 >> 2] = i27;
31665 i23 = (HEAP32[i10 >> 2] | 0) + (i8 << 3) | 0;
31666 HEAP32[i23 >> 2] = HEAP32[i20 >> 2] | i15;
31667 HEAP32[i23 + 4 >> 2] = i27;
31668 i26 = i8 + 1 | 0;
31669 break;
31670 }
31671 }
31672 }
31673 } while (0);
31674 if ((i26 | 0) == 0) {
31675 break;
31676 } else {
31677 i8 = i26;
31678 i2 = i24;
31679 }
31680 }
31681 return;
31682 }
31683 function __ZN25btSimulationIslandManager22buildAndProcessIslandsEP12btDispatcherP16btCollisionWorldPNS_14IslandCallbackE(i1, i2, i3, i4) {
31684 i1 = i1 | 0;
31685 i2 = i2 | 0;
31686 i3 = i3 | 0;
31687 i4 = i4 | 0;
31688 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0;
31689 i5 = STACKTOP;
31690 STACKTOP = STACKTOP + 8 | 0;
31691 __ZN25btSimulationIslandManager12buildIslandsEP12btDispatcherP16btCollisionWorld(i1, i2, i3);
31692 i6 = HEAP32[i1 + 8 >> 2] | 0;
31693 __ZN15CProfileManager13Start_ProfileEPKc(784);
31694 if ((HEAP8[i1 + 64 | 0] | 0) == 0) {
31695 i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i2 >> 2] | 0) + 44 >> 2] & 127](i2) | 0;
31696 i8 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i2 >> 2] | 0) + 36 >> 2] & 127](i2) | 0;
31697 FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] & 15](i4, HEAP32[i3 + 16 >> 2] | 0, HEAP32[i3 + 8 >> 2] | 0, i7, i8, -1);
31698 __ZN15CProfileManager12Stop_ProfileEv();
31699 STACKTOP = i5;
31700 return;
31701 }
31702 i8 = HEAP32[i1 + 28 >> 2] | 0;
31703 if ((i8 | 0) > 1) {
31704 __ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(i1 + 24 | 0, i5 | 0, 0, i8 - 1 | 0);
31705 }
31706 if ((i6 | 0) <= 0) {
31707 __ZN15CProfileManager12Stop_ProfileEv();
31708 STACKTOP = i5;
31709 return;
31710 }
31711 i7 = i1 + 16 | 0;
31712 i2 = i1 + 36 | 0;
31713 i9 = i1 + 48 | 0;
31714 i10 = i1 + 52 | 0;
31715 i11 = i1 + 56 | 0;
31716 i12 = i1 + 60 | 0;
31717 i1 = i4;
31718 i13 = i3 + 16 | 0;
31719 i3 = 1;
31720 i14 = 0;
31721 i15 = 0;
31722 while (1) {
31723 i16 = HEAP32[i7 >> 2] | 0;
31724 i17 = HEAP32[i16 + (i15 << 3) >> 2] | 0;
31725 L304 : do {
31726 if ((i15 | 0) < (i6 | 0)) {
31727 i18 = i16;
31728 i19 = i15;
31729 i20 = 1;
31730 i21 = HEAP32[i9 >> 2] | 0;
31731 i22 = HEAP32[i10 >> 2] | 0;
31732 while (1) {
31733 i23 = HEAP32[(HEAP32[i13 >> 2] | 0) + (HEAP32[i18 + (i19 << 3) + 4 >> 2] << 2) >> 2] | 0;
31734 do {
31735 if ((i21 | 0) == (i22 | 0)) {
31736 i24 = (i22 | 0) == 0 ? 1 : i22 << 1;
31737 if ((i22 | 0) >= (i24 | 0)) {
31738 i25 = i22;
31739 i26 = i22;
31740 break;
31741 }
31742 if ((i24 | 0) == 0) {
31743 i27 = 0;
31744 i28 = i22;
31745 } else {
31746 i29 = __Z22btAlignedAllocInternalji(i24 << 2, 16) | 0;
31747 i27 = i29;
31748 i28 = HEAP32[i9 >> 2] | 0;
31749 }
31750 if ((i28 | 0) > 0) {
31751 i29 = 0;
31752 do {
31753 i30 = i27 + (i29 << 2) | 0;
31754 if ((i30 | 0) != 0) {
31755 HEAP32[i30 >> 2] = HEAP32[(HEAP32[i11 >> 2] | 0) + (i29 << 2) >> 2];
31756 }
31757 i29 = i29 + 1 | 0;
31758 } while ((i29 | 0) < (i28 | 0));
31759 }
31760 i29 = HEAP32[i11 >> 2] | 0;
31761 if ((i29 | 0) == 0) {
31762 i31 = i28;
31763 } else {
31764 if ((HEAP8[i12] | 0) == 0) {
31765 i32 = i28;
31766 } else {
31767 __Z21btAlignedFreeInternalPv(i29);
31768 i32 = HEAP32[i9 >> 2] | 0;
31769 }
31770 HEAP32[i11 >> 2] = 0;
31771 i31 = i32;
31772 }
31773 HEAP8[i12] = 1;
31774 HEAP32[i11 >> 2] = i27;
31775 HEAP32[i10 >> 2] = i24;
31776 i25 = i31;
31777 i26 = i24;
31778 } else {
31779 i25 = i21;
31780 i26 = i22;
31781 }
31782 } while (0);
31783 i29 = (HEAP32[i11 >> 2] | 0) + (i25 << 2) | 0;
31784 if ((i29 | 0) != 0) {
31785 HEAP32[i29 >> 2] = i23;
31786 }
31787 i29 = i25 + 1 | 0;
31788 HEAP32[i9 >> 2] = i29;
31789 i30 = HEAP32[i23 + 216 >> 2] | 0;
31790 i33 = i20 & ((i30 | 0) == 2 | (i30 | 0) == 5);
31791 i30 = i19 + 1 | 0;
31792 if ((i30 | 0) >= (i6 | 0)) {
31793 i34 = i33;
31794 i35 = i30;
31795 break L304;
31796 }
31797 i36 = HEAP32[i7 >> 2] | 0;
31798 if ((HEAP32[i36 + (i30 << 3) >> 2] | 0) == (i17 | 0)) {
31799 i18 = i36;
31800 i19 = i30;
31801 i20 = i33;
31802 i21 = i29;
31803 i22 = i26;
31804 } else {
31805 i34 = i33;
31806 i35 = i30;
31807 break;
31808 }
31809 }
31810 } else {
31811 i34 = 1;
31812 i35 = i15;
31813 }
31814 } while (0);
31815 do {
31816 if ((i14 | 0) < (i8 | 0)) {
31817 i16 = HEAP32[i2 >> 2] | 0;
31818 i22 = i16 + (i14 << 2) | 0;
31819 i21 = HEAP32[i22 >> 2] | 0;
31820 i20 = HEAP32[(HEAP32[i21 + 1108 >> 2] | 0) + 208 >> 2] | 0;
31821 if ((i20 | 0) > -1) {
31822 i37 = i20;
31823 } else {
31824 i37 = HEAP32[(HEAP32[i21 + 1112 >> 2] | 0) + 208 >> 2] | 0;
31825 }
31826 if ((i37 | 0) == (i17 | 0)) {
31827 i38 = i14;
31828 } else {
31829 i39 = 0;
31830 i40 = 0;
31831 i41 = i3;
31832 break;
31833 }
31834 do {
31835 i38 = i38 + 1 | 0;
31836 if ((i38 | 0) >= (i8 | 0)) {
31837 break;
31838 }
31839 i21 = HEAP32[i16 + (i38 << 2) >> 2] | 0;
31840 i20 = HEAP32[(HEAP32[i21 + 1108 >> 2] | 0) + 208 >> 2] | 0;
31841 if ((i20 | 0) > -1) {
31842 i42 = i20;
31843 } else {
31844 i42 = HEAP32[(HEAP32[i21 + 1112 >> 2] | 0) + 208 >> 2] | 0;
31845 }
31846 } while ((i17 | 0) == (i42 | 0));
31847 i39 = i22;
31848 i40 = i38 - i14 | 0;
31849 i41 = i38;
31850 } else {
31851 i39 = 0;
31852 i40 = 0;
31853 i41 = i3;
31854 }
31855 } while (0);
31856 if (!i34) {
31857 FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 15](i4, HEAP32[i11 >> 2] | 0, HEAP32[i9 >> 2] | 0, i39, i40, i17);
31858 }
31859 i16 = (i40 | 0) == 0 ? i14 : i41;
31860 i21 = HEAP32[i9 >> 2] | 0;
31861 if ((i21 | 0) < 0) {
31862 if ((HEAP32[i10 >> 2] | 0) < 0) {
31863 i20 = HEAP32[i11 >> 2] | 0;
31864 if ((i20 | 0) != 0) {
31865 if ((HEAP8[i12] | 0) != 0) {
31866 __Z21btAlignedFreeInternalPv(i20);
31867 }
31868 HEAP32[i11 >> 2] = 0;
31869 }
31870 HEAP8[i12] = 1;
31871 HEAP32[i11 >> 2] = 0;
31872 HEAP32[i10 >> 2] = 0;
31873 i43 = i21;
31874 } else {
31875 i43 = i21;
31876 }
31877 do {
31878 i21 = (HEAP32[i11 >> 2] | 0) + (i43 << 2) | 0;
31879 if ((i21 | 0) != 0) {
31880 HEAP32[i21 >> 2] = 0;
31881 }
31882 i43 = i43 + 1 | 0;
31883 } while ((i43 | 0) < 0);
31884 }
31885 HEAP32[i9 >> 2] = 0;
31886 if ((i35 | 0) < (i6 | 0)) {
31887 i3 = i41;
31888 i14 = i16;
31889 i15 = i35;
31890 } else {
31891 break;
31892 }
31893 }
31894 __ZN15CProfileManager12Stop_ProfileEv();
31895 STACKTOP = i5;
31896 return;
31897 }
31898 function __ZN20btConvexHullInternal4DMulINS_6Int128EyE3mulES1_S1_RS1_S3_(i1, i2, i3, i4) {
31899 i1 = i1 | 0;
31900 i2 = i2 | 0;
31901 i3 = i3 | 0;
31902 i4 = i4 | 0;
31903 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0;
31904 i5 = STACKTOP;
31905 i6 = i1;
31906 i1 = STACKTOP;
31907 STACKTOP = STACKTOP + 16 | 0;
31908 HEAP32[i1 >> 2] = HEAP32[i6 >> 2];
31909 HEAP32[i1 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
31910 HEAP32[i1 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
31911 HEAP32[i1 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
31912 i6 = i2;
31913 i2 = STACKTOP;
31914 STACKTOP = STACKTOP + 16 | 0;
31915 HEAP32[i2 >> 2] = HEAP32[i6 >> 2];
31916 HEAP32[i2 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
31917 HEAP32[i2 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
31918 HEAP32[i2 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
31919 i6 = i1 | 0;
31920 i7 = HEAP32[i6 + 4 >> 2] | 0;
31921 i8 = i1 + 8 | 0;
31922 i1 = i2 | 0;
31923 i9 = HEAP32[i1 + 4 >> 2] | 0;
31924 i10 = i2 + 8 | 0;
31925 i2 = HEAP32[i6 >> 2] | 0;
31926 i6 = i7 & 0;
31927 i11 = HEAP32[i1 >> 2] | 0;
31928 i1 = i9 & 0;
31929 i12 = ___muldi3(i11, i1, i2, i6) | 0;
31930 i13 = tempRet0;
31931 i14 = i9;
31932 i9 = 0;
31933 i15 = ___muldi3(i14, i9, i2, i6) | 0;
31934 i16 = tempRet0;
31935 i17 = i7;
31936 i7 = 0;
31937 i18 = ___muldi3(i11, i1, i17, i7) | 0;
31938 i19 = tempRet0;
31939 i20 = ___muldi3(i14, i9, i17, i7) | 0;
31940 i21 = tempRet0;
31941 i22 = _i64Add(i15 | 0, i16 & 0, i18 | 0, i19 & 0) | 0;
31942 i18 = tempRet0;
31943 i15 = _i64Add(i16, 0, i20, i21) | 0;
31944 i21 = _i64Add(i15, tempRet0, i19, 0) | 0;
31945 i19 = tempRet0;
31946 i15 = _llvm_uadd_with_overflow_i64(i12 | 0, i13 | 0, 0, i22 | 0) | 0;
31947 i22 = i15;
31948 i15 = tempRet0;
31949 i13 = _i64Add(i21, i19, tempRet1 & 1, 0) | 0;
31950 i19 = _i64Add(i13, tempRet0, i18, 0) | 0;
31951 i18 = tempRet0;
31952 i13 = HEAP32[i10 + 4 >> 2] | 0;
31953 i21 = HEAP32[i10 >> 2] | 0;
31954 i10 = i13 & 0;
31955 i12 = ___muldi3(i21, i10, i2, i6) | 0;
31956 i20 = tempRet0;
31957 i16 = i13;
31958 i13 = 0;
31959 i23 = ___muldi3(i16, i13, i2, i6) | 0;
31960 i6 = tempRet0;
31961 i2 = ___muldi3(i21, i10, i17, i7) | 0;
31962 i24 = tempRet0;
31963 i25 = ___muldi3(i16, i13, i17, i7) | 0;
31964 i7 = tempRet0;
31965 i17 = _i64Add(i23 | 0, i6 & 0, i2 | 0, i24 & 0) | 0;
31966 i2 = tempRet0;
31967 i23 = _i64Add(i6, 0, i25, i7) | 0;
31968 i7 = _i64Add(i23, tempRet0, i24, 0) | 0;
31969 i24 = tempRet0;
31970 i23 = _llvm_uadd_with_overflow_i64(i12 | 0, i20 | 0, 0, i17 | 0) | 0;
31971 i17 = tempRet0;
31972 i20 = _i64Add(i7, i24, tempRet1 & 1, 0) | 0;
31973 i24 = _i64Add(i20, tempRet0, i2, 0) | 0;
31974 i2 = tempRet0;
31975 i20 = HEAP32[i8 + 4 >> 2] | 0;
31976 i7 = HEAP32[i8 >> 2] | 0;
31977 i8 = i20 & 0;
31978 i12 = ___muldi3(i7, i8, i11, i1) | 0;
31979 i25 = tempRet0;
31980 i6 = ___muldi3(i7, i8, i14, i9) | 0;
31981 i26 = tempRet0;
31982 i27 = i20;
31983 i20 = 0;
31984 i28 = ___muldi3(i27, i20, i11, i1) | 0;
31985 i1 = tempRet0;
31986 i11 = ___muldi3(i27, i20, i14, i9) | 0;
31987 i9 = tempRet0;
31988 i14 = _i64Add(i6 | 0, i26 & 0, i28 | 0, i1 & 0) | 0;
31989 i28 = tempRet0;
31990 i6 = _i64Add(i26, 0, i11, i9) | 0;
31991 i9 = _i64Add(i6, tempRet0, i1, 0) | 0;
31992 i1 = tempRet0;
31993 i6 = _llvm_uadd_with_overflow_i64(i12 | 0, i25 | 0, 0, i14 | 0) | 0;
31994 i14 = tempRet0;
31995 i25 = _i64Add(i9, i1, tempRet1 & 1, 0) | 0;
31996 i1 = _i64Add(i25, tempRet0, i28, 0) | 0;
31997 i28 = tempRet0;
31998 i25 = ___muldi3(i7, i8, i21, i10) | 0;
31999 i9 = tempRet0;
32000 i12 = ___muldi3(i7, i8, i16, i13) | 0;
32001 i8 = tempRet0;
32002 i7 = ___muldi3(i27, i20, i21, i10) | 0;
32003 i10 = tempRet0;
32004 i21 = ___muldi3(i27, i20, i16, i13) | 0;
32005 i13 = tempRet0;
32006 i16 = _i64Add(i12 | 0, i8 & 0, i7 | 0, i10 & 0) | 0;
32007 i7 = tempRet0;
32008 i12 = _i64Add(i8, 0, i21, i13) | 0;
32009 i13 = _i64Add(i12, tempRet0, i10, 0) | 0;
32010 i10 = tempRet0;
32011 i12 = _llvm_uadd_with_overflow_i64(i25 | 0, i9 | 0, 0, i16 | 0) | 0;
32012 i16 = tempRet0;
32013 i9 = tempRet1 & 1;
32014 i25 = _llvm_uadd_with_overflow_i64(i23 | 0, i17 | 0, i6 | 0, i14 | 0) | 0;
32015 i14 = tempRet0;
32016 i6 = tempRet1 & 1;
32017 i17 = _llvm_uadd_with_overflow_i64(i12 | 0, i16 | 0, i24 | 0, i2 | 0) | 0;
32018 i2 = tempRet1 & 1;
32019 i24 = _llvm_uadd_with_overflow_i64(i17 | 0, tempRet0 | 0, i1 | 0, i28 | 0) | 0;
32020 i28 = tempRet1 & 1;
32021 i1 = _llvm_uadd_with_overflow_i64(i24 | 0, tempRet0 | 0, i6 | 0, 0) | 0;
32022 i6 = i1;
32023 i1 = tempRet0;
32024 i24 = tempRet1 & 1;
32025 i17 = _i64Add(i13, i10, i9, 0) | 0;
32026 i9 = _i64Add(i17, tempRet0, i7, 0) | 0;
32027 i7 = _i64Add(i9, tempRet0, i2, 0) | 0;
32028 i2 = _i64Add(i7, tempRet0, i28, 0) | 0;
32029 i28 = _i64Add(i2, tempRet0, i24, 0) | 0;
32030 i24 = tempRet0;
32031 i2 = _llvm_uadd_with_overflow_i64(i19 | 0, i18 | 0, i25 | 0, i14 | 0) | 0;
32032 i14 = i2;
32033 i2 = tempRet0;
32034 if (!tempRet1) {
32035 i29 = i1;
32036 i30 = i6;
32037 i31 = i24;
32038 i32 = i28;
32039 i33 = i3 | 0;
32040 i34 = i33 | 0;
32041 HEAP32[i34 >> 2] = i22;
32042 i35 = i33 + 4 | 0;
32043 HEAP32[i35 >> 2] = i15;
32044 i36 = i3 + 8 | 0;
32045 i37 = i36 | 0;
32046 HEAP32[i37 >> 2] = i14;
32047 i38 = i36 + 4 | 0;
32048 HEAP32[i38 >> 2] = i2;
32049 i39 = i4 | 0;
32050 i40 = i39 | 0;
32051 HEAP32[i40 >> 2] = i30;
32052 i41 = i39 + 4 | 0;
32053 HEAP32[i41 >> 2] = i29;
32054 i42 = i4 + 8 | 0;
32055 i43 = i42 | 0;
32056 HEAP32[i43 >> 2] = i32;
32057 i44 = i42 + 4 | 0;
32058 HEAP32[i44 >> 2] = i31;
32059 STACKTOP = i5;
32060 return;
32061 }
32062 i25 = _i64Add(i6, i1, 1, 0) | 0;
32063 i1 = tempRet0;
32064 i6 = _i64Add(i28, i24, (i25 | 0) == 0 & (i1 | 0) == 0 & 1, 0) | 0;
32065 i29 = i1;
32066 i30 = i25;
32067 i31 = tempRet0;
32068 i32 = i6;
32069 i33 = i3 | 0;
32070 i34 = i33 | 0;
32071 HEAP32[i34 >> 2] = i22;
32072 i35 = i33 + 4 | 0;
32073 HEAP32[i35 >> 2] = i15;
32074 i36 = i3 + 8 | 0;
32075 i37 = i36 | 0;
32076 HEAP32[i37 >> 2] = i14;
32077 i38 = i36 + 4 | 0;
32078 HEAP32[i38 >> 2] = i2;
32079 i39 = i4 | 0;
32080 i40 = i39 | 0;
32081 HEAP32[i40 >> 2] = i30;
32082 i41 = i39 + 4 | 0;
32083 HEAP32[i41 >> 2] = i29;
32084 i42 = i4 + 8 | 0;
32085 i43 = i42 | 0;
32086 HEAP32[i43 >> 2] = i32;
32087 i44 = i42 + 4 | 0;
32088 HEAP32[i44 >> 2] = i31;
32089 STACKTOP = i5;
32090 return;
32091 }
32092 function __ZN22SphereTriangleDetector7collideERK9btVector3RS0_S3_RfS4_f(i1, i2, i3, i4, i5, i6, d7) {
32093 i1 = i1 | 0;
32094 i2 = i2 | 0;
32095 i3 = i3 | 0;
32096 i4 = i4 | 0;
32097 i5 = i5 | 0;
32098 i6 = i6 | 0;
32099 d7 = +d7;
32100 var i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, i28 = 0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, i33 = 0, i34 = 0, i35 = 0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0, i61 = 0, d62 = 0.0, d63 = 0.0, d64 = 0.0, i65 = 0, d66 = 0.0;
32101 i6 = STACKTOP;
32102 STACKTOP = STACKTOP + 64 | 0;
32103 i8 = i6 | 0;
32104 i9 = i6 + 16 | 0;
32105 i10 = i6 + 32 | 0;
32106 i11 = i6 + 48 | 0;
32107 i12 = i1 + 8 | 0;
32108 i13 = HEAP32[i12 >> 2] | 0;
32109 i14 = i13 + 56 | 0;
32110 i15 = HEAP32[i1 + 4 >> 2] | 0;
32111 d16 = +HEAPF32[i15 + 28 >> 2] * +HEAPF32[i15 + 12 >> 2];
32112 d17 = d16 + d7;
32113 d7 = +HEAPF32[i14 >> 2];
32114 d18 = +HEAPF32[i13 + 72 >> 2] - d7;
32115 d19 = +HEAPF32[i13 + 60 >> 2];
32116 d20 = +HEAPF32[i13 + 76 >> 2] - d19;
32117 d21 = +HEAPF32[i13 + 64 >> 2];
32118 d22 = +HEAPF32[i13 + 80 >> 2] - d21;
32119 d23 = +HEAPF32[i13 + 88 >> 2] - d7;
32120 d24 = +HEAPF32[i13 + 92 >> 2] - d19;
32121 d25 = +HEAPF32[i13 + 96 >> 2] - d21;
32122 d26 = d20 * d25 - d22 * d24;
32123 d27 = d22 * d23 - d18 * d25;
32124 d25 = d18 * d24 - d20 * d23;
32125 d23 = 1.0 / +Math_sqrt(+(d25 * d25 + (d26 * d26 + d27 * d27)));
32126 d20 = d23 * d26;
32127 d26 = d23 * d27;
32128 d27 = d23 * d25;
32129 i15 = i2 | 0;
32130 d25 = +HEAPF32[i15 >> 2];
32131 i1 = i2 + 4 | 0;
32132 d23 = +HEAPF32[i1 >> 2];
32133 i28 = i2 + 8 | 0;
32134 d24 = +HEAPF32[i28 >> 2];
32135 d18 = (d25 - d7) * d20 + d26 * (d23 - d19) + d27 * (d24 - d21);
32136 if (d18 < 0.0) {
32137 d29 = d18 * -1.0;
32138 d30 = d20 * -1.0;
32139 d31 = d26 * -1.0;
32140 d32 = d27 * -1.0;
32141 } else {
32142 d29 = d18;
32143 d30 = d20;
32144 d31 = d26;
32145 d32 = d27;
32146 }
32147 if (d29 >= d17) {
32148 i33 = 0;
32149 STACKTOP = i6;
32150 return i33 | 0;
32151 }
32152 i34 = i8;
32153 i35 = i2;
32154 HEAP32[i34 >> 2] = HEAP32[i35 >> 2];
32155 HEAP32[i34 + 4 >> 2] = HEAP32[i35 + 4 >> 2];
32156 HEAP32[i34 + 8 >> 2] = HEAP32[i35 + 8 >> 2];
32157 HEAP32[i34 + 12 >> 2] = HEAP32[i35 + 12 >> 2];
32158 HEAPF32[i9 >> 2] = d30;
32159 HEAPF32[i9 + 4 >> 2] = d31;
32160 HEAPF32[i9 + 8 >> 2] = d32;
32161 HEAPF32[i9 + 12 >> 2] = 0.0;
32162 do {
32163 if (__ZN22SphereTriangleDetector15pointInTriangleEPK9btVector3RS1_PS0_(0, i14, i9, i8) | 0) {
32164 d36 = d25 - d30 * d29;
32165 d37 = d23 - d31 * d29;
32166 d38 = d24 - d32 * d29;
32167 d39 = d25;
32168 d40 = d23;
32169 d41 = d24;
32170 d42 = d17 * d17;
32171 } else {
32172 d27 = d17 * d17;
32173 if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i13 >> 2] | 0) + 92 >> 2] & 127](i13) | 0) <= 0) {
32174 i33 = 0;
32175 STACKTOP = i6;
32176 return i33 | 0;
32177 }
32178 i35 = i10 | 0;
32179 i34 = i10 + 4 | 0;
32180 i2 = i10 + 8 | 0;
32181 i43 = i11 | 0;
32182 i44 = i11 + 4 | 0;
32183 i45 = i11 + 8 | 0;
32184 d26 = 0.0;
32185 d20 = 0.0;
32186 d18 = 0.0;
32187 i46 = 0;
32188 i47 = 0;
32189 while (1) {
32190 i48 = HEAP32[i12 >> 2] | 0;
32191 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i48 >> 2] | 0) + 96 >> 2] & 127](i48, i46, i10, i11);
32192 d21 = +HEAPF32[i35 >> 2];
32193 d19 = +HEAPF32[i15 >> 2] - d21;
32194 d7 = +HEAPF32[i34 >> 2];
32195 d22 = +HEAPF32[i1 >> 2] - d7;
32196 d49 = +HEAPF32[i2 >> 2];
32197 d50 = +HEAPF32[i28 >> 2] - d49;
32198 d51 = +HEAPF32[i43 >> 2] - d21;
32199 d52 = +HEAPF32[i44 >> 2] - d7;
32200 d53 = +HEAPF32[i45 >> 2] - d49;
32201 d54 = d19 * d51 + d22 * d52 + d50 * d53;
32202 do {
32203 if (d54 > 0.0) {
32204 d55 = d51 * d51 + d52 * d52 + d53 * d53;
32205 if (d54 < d55) {
32206 d56 = d54 / d55;
32207 d57 = d56;
32208 d58 = d19 - d51 * d56;
32209 d59 = d22 - d52 * d56;
32210 d60 = d50 - d53 * d56;
32211 break;
32212 } else {
32213 d57 = 1.0;
32214 d58 = d19 - d51;
32215 d59 = d22 - d52;
32216 d60 = d50 - d53;
32217 break;
32218 }
32219 } else {
32220 d57 = 0.0;
32221 d58 = d19;
32222 d59 = d22;
32223 d60 = d50;
32224 }
32225 } while (0);
32226 if (d60 * d60 + (d59 * d59 + d58 * d58) < d27) {
32227 i61 = 1;
32228 d62 = d21 + d51 * d57;
32229 d63 = d7 + d52 * d57;
32230 d64 = d49 + d53 * d57;
32231 } else {
32232 i61 = i47;
32233 d62 = d18;
32234 d63 = d20;
32235 d64 = d26;
32236 }
32237 i48 = i46 + 1 | 0;
32238 i65 = HEAP32[i12 >> 2] | 0;
32239 if ((i48 | 0) < (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i65 >> 2] | 0) + 92 >> 2] & 127](i65) | 0)) {
32240 d26 = d64;
32241 d20 = d63;
32242 d18 = d62;
32243 i46 = i48;
32244 i47 = i61;
32245 } else {
32246 break;
32247 }
32248 }
32249 if ((i61 & 1) == 0) {
32250 i33 = 0;
32251 STACKTOP = i6;
32252 return i33 | 0;
32253 } else {
32254 d36 = d62;
32255 d37 = d63;
32256 d38 = d64;
32257 d39 = +HEAPF32[i15 >> 2];
32258 d40 = +HEAPF32[i1 >> 2];
32259 d41 = +HEAPF32[i28 >> 2];
32260 d42 = d27;
32261 break;
32262 }
32263 }
32264 } while (0);
32265 d64 = d39 - d36;
32266 d39 = d40 - d37;
32267 d40 = d41 - d38;
32268 d41 = d40 * d40 + (d39 * d39 + d64 * d64);
32269 if (d41 >= d42) {
32270 i33 = 0;
32271 STACKTOP = i6;
32272 return i33 | 0;
32273 }
32274 if (d41 > 1.1920928955078125e-7) {
32275 d42 = +Math_sqrt(+d41);
32276 HEAPF32[i4 + 12 >> 2] = 0.0;
32277 d41 = 1.0 / d42;
32278 HEAPF32[i4 >> 2] = d64 * d41;
32279 HEAPF32[i4 + 4 >> 2] = d39 * d41;
32280 HEAPF32[i4 + 8 >> 2] = d40 * d41;
32281 HEAPF32[i3 >> 2] = d36;
32282 HEAPF32[i3 + 4 >> 2] = d37;
32283 HEAPF32[i3 + 8 >> 2] = d38;
32284 HEAPF32[i3 + 12 >> 2] = 0.0;
32285 d66 = d16 - d42;
32286 } else {
32287 HEAPF32[i4 >> 2] = d30;
32288 HEAPF32[i4 + 4 >> 2] = d31;
32289 HEAPF32[i4 + 8 >> 2] = d32;
32290 HEAPF32[i4 + 12 >> 2] = 0.0;
32291 HEAPF32[i3 >> 2] = d36;
32292 HEAPF32[i3 + 4 >> 2] = d37;
32293 HEAPF32[i3 + 8 >> 2] = d38;
32294 HEAPF32[i3 + 12 >> 2] = 0.0;
32295 d66 = d16;
32296 }
32297 HEAPF32[i5 >> 2] = -0.0 - d66;
32298 i33 = 1;
32299 STACKTOP = i6;
32300 return i33 | 0;
32301 }
32302 function __ZN20btPersistentManifold16sortCachedPointsERK15btManifoldPoint(i1, i2) {
32303 i1 = i1 | 0;
32304 i2 = i2 | 0;
32305 var d3 = 0.0, d4 = 0.0, i5 = 0, d6 = 0.0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, i23 = 0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, d48 = 0.0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0, d61 = 0.0, d62 = 0.0, d63 = 0.0, d64 = 0.0, d65 = 0.0, d66 = 0.0, d67 = 0.0, d68 = 0.0, d69 = 0.0, d70 = 0.0, d71 = 0.0, d72 = 0.0, d73 = 0.0, d74 = 0.0, d75 = 0.0, d76 = 0.0, d77 = 0.0, d78 = 0.0, i79 = 0, i80 = 0, i81 = 0, d82 = 0.0, i83 = 0, i84 = 0, d85 = 0.0, i86 = 0, i87 = 0, d88 = 0.0, i89 = 0, i90 = 0;
32306 d3 = +HEAPF32[i2 + 80 >> 2];
32307 d4 = +HEAPF32[i1 + 84 >> 2];
32308 i5 = d4 < d3;
32309 d6 = i5 ? d4 : d3;
32310 d3 = +HEAPF32[i1 + 360 >> 2];
32311 i7 = d3 < d6;
32312 d4 = i7 ? d3 : d6;
32313 d6 = +HEAPF32[i1 + 636 >> 2];
32314 i8 = d6 < d4;
32315 i9 = +HEAPF32[i1 + 912 >> 2] < (i8 ? d6 : d4);
32316 i10 = i9 ? 3 : i8 ? 2 : i7 ? 1 : (i5 ^ 1) << 31 >> 31;
32317 d4 = +HEAPF32[i2 >> 2];
32318 do {
32319 if ((i10 | 0) == 0) {
32320 d11 = 0.0;
32321 d12 = +HEAPF32[i2 + 4 >> 2];
32322 d13 = +HEAPF32[i2 + 8 >> 2];
32323 d14 = +HEAPF32[i1 + 832 >> 2];
32324 d15 = +HEAPF32[i1 + 556 >> 2];
32325 d16 = +HEAPF32[i1 + 836 >> 2];
32326 d17 = +HEAPF32[i1 + 560 >> 2];
32327 d18 = +HEAPF32[i1 + 840 >> 2];
32328 d19 = +HEAPF32[i1 + 564 >> 2];
32329 d20 = +HEAPF32[i1 + 280 >> 2];
32330 d21 = +HEAPF32[i1 + 284 >> 2];
32331 d22 = +HEAPF32[i1 + 288 >> 2];
32332 i23 = 1719;
32333 } else {
32334 d6 = +HEAPF32[i1 + 280 >> 2];
32335 d3 = d4 - d6;
32336 d24 = +HEAPF32[i2 + 4 >> 2];
32337 d25 = +HEAPF32[i1 + 284 >> 2];
32338 d26 = d24 - d25;
32339 d27 = +HEAPF32[i2 + 8 >> 2];
32340 d28 = +HEAPF32[i1 + 288 >> 2];
32341 d29 = d27 - d28;
32342 d30 = +HEAPF32[i1 + 832 >> 2];
32343 d31 = +HEAPF32[i1 + 556 >> 2];
32344 d32 = d30 - d31;
32345 d33 = +HEAPF32[i1 + 836 >> 2];
32346 d34 = +HEAPF32[i1 + 560 >> 2];
32347 d35 = d33 - d34;
32348 d36 = +HEAPF32[i1 + 840 >> 2];
32349 d37 = +HEAPF32[i1 + 564 >> 2];
32350 d38 = d36 - d37;
32351 d39 = d26 * d38 - d29 * d35;
32352 d40 = d29 * d32 - d3 * d38;
32353 d38 = d3 * d35 - d26 * d32;
32354 d32 = d38 * d38 + (d39 * d39 + d40 * d40);
32355 if ((i10 | 0) != 1) {
32356 d11 = d32;
32357 d12 = d24;
32358 d13 = d27;
32359 d14 = d30;
32360 d15 = d31;
32361 d16 = d33;
32362 d17 = d34;
32363 d18 = d36;
32364 d19 = d37;
32365 d20 = d6;
32366 d21 = d25;
32367 d22 = d28;
32368 i23 = 1719;
32369 break;
32370 }
32371 d41 = 0.0;
32372 d42 = d32;
32373 d43 = d31;
32374 d44 = d34;
32375 d45 = d37;
32376 d46 = d24;
32377 d47 = d27;
32378 d48 = d30;
32379 d49 = d33;
32380 d50 = d36;
32381 d51 = +HEAPF32[i1 + 4 >> 2];
32382 d52 = +HEAPF32[i1 + 8 >> 2];
32383 d53 = +HEAPF32[i1 + 12 >> 2];
32384 d54 = d6;
32385 d55 = d25;
32386 d56 = d28;
32387 i23 = 1720;
32388 }
32389 } while (0);
32390 if ((i23 | 0) == 1719) {
32391 d28 = +HEAPF32[i1 + 4 >> 2];
32392 d25 = d4 - d28;
32393 d6 = +HEAPF32[i1 + 8 >> 2];
32394 d36 = d12 - d6;
32395 d33 = +HEAPF32[i1 + 12 >> 2];
32396 d30 = d13 - d33;
32397 d27 = d14 - d15;
32398 d24 = d16 - d17;
32399 d37 = d18 - d19;
32400 d34 = d37 * d36 - d24 * d30;
32401 d31 = d27 * d30 - d37 * d25;
32402 d37 = d24 * d25 - d27 * d36;
32403 d36 = d37 * d37 + (d34 * d34 + d31 * d31);
32404 if ((i10 | 0) == 2) {
32405 d57 = 0.0;
32406 d58 = d36;
32407 d59 = d11;
32408 d60 = d28;
32409 d61 = d12;
32410 d62 = d6;
32411 d63 = d13;
32412 d64 = d33;
32413 d65 = d15;
32414 d66 = d17;
32415 d67 = d19;
32416 d68 = d20;
32417 d69 = d21;
32418 d70 = d22;
32419 } else {
32420 d41 = d36;
32421 d42 = d11;
32422 d43 = d15;
32423 d44 = d17;
32424 d45 = d19;
32425 d46 = d12;
32426 d47 = d13;
32427 d48 = d14;
32428 d49 = d16;
32429 d50 = d18;
32430 d51 = d28;
32431 d52 = d6;
32432 d53 = d33;
32433 d54 = d20;
32434 d55 = d21;
32435 d56 = d22;
32436 i23 = 1720;
32437 }
32438 }
32439 do {
32440 if ((i23 | 0) == 1720) {
32441 d22 = d4 - d51;
32442 d21 = d46 - d52;
32443 d20 = d47 - d53;
32444 d33 = d48 - d54;
32445 d6 = d49 - d55;
32446 d28 = d50 - d56;
32447 d18 = d28 * d21 - d6 * d20;
32448 d16 = d33 * d20 - d22 * d28;
32449 d28 = d22 * d6 - d33 * d21;
32450 d21 = d28 * d28 + (d16 * d16 + d18 * d18);
32451 if (i9) {
32452 d71 = 0.0;
32453 d72 = d21;
32454 d73 = d41;
32455 d74 = d42;
32456 } else {
32457 d57 = d21;
32458 d58 = d41;
32459 d59 = d42;
32460 d60 = d51;
32461 d61 = d46;
32462 d62 = d52;
32463 d63 = d47;
32464 d64 = d53;
32465 d65 = d43;
32466 d66 = d44;
32467 d67 = d45;
32468 d68 = d54;
32469 d69 = d55;
32470 d70 = d56;
32471 break;
32472 }
32473 d75 = +Math_abs(+d74);
32474 d76 = +Math_abs(+d73);
32475 d77 = +Math_abs(+d72);
32476 d78 = +Math_abs(+d71);
32477 i79 = d75 > -999999984306749400.0;
32478 i80 = i79 ^ 1;
32479 i81 = i80 << 31 >> 31;
32480 d82 = i79 ? d75 : -999999984306749400.0;
32481 i83 = d76 > d82;
32482 i84 = i83 ? 1 : i81;
32483 d85 = i83 ? d76 : d82;
32484 i86 = d77 > d85;
32485 i87 = i86 ? 2 : i84;
32486 d88 = i86 ? d77 : d85;
32487 i89 = d78 > d88;
32488 i90 = i89 ? 3 : i87;
32489 return i90 | 0;
32490 }
32491 } while (0);
32492 d56 = d4 - d60;
32493 d60 = d61 - d62;
32494 d62 = d63 - d64;
32495 d64 = d65 - d68;
32496 d68 = d66 - d69;
32497 d69 = d67 - d70;
32498 d70 = d69 * d60 - d68 * d62;
32499 d67 = d64 * d62 - d69 * d56;
32500 d69 = d68 * d56 - d64 * d60;
32501 d71 = d69 * d69 + (d70 * d70 + d67 * d67);
32502 d72 = d57;
32503 d73 = d58;
32504 d74 = d59;
32505 d75 = +Math_abs(+d74);
32506 d76 = +Math_abs(+d73);
32507 d77 = +Math_abs(+d72);
32508 d78 = +Math_abs(+d71);
32509 i79 = d75 > -999999984306749400.0;
32510 i80 = i79 ^ 1;
32511 i81 = i80 << 31 >> 31;
32512 d82 = i79 ? d75 : -999999984306749400.0;
32513 i83 = d76 > d82;
32514 i84 = i83 ? 1 : i81;
32515 d85 = i83 ? d76 : d82;
32516 i86 = d77 > d85;
32517 i87 = i86 ? 2 : i84;
32518 d88 = i86 ? d77 : d85;
32519 i89 = d78 > d88;
32520 i90 = i89 ? 3 : i87;
32521 return i90 | 0;
32522 }
32523 function __ZN27btPolyhedralContactClipping19clipHullAgainstHullERK9btVector3RK18btConvexPolyhedronS5_RK11btTransformS8_ffRN36btDiscreteCollisionDetectorInterface6ResultE(i1, i2, i3, i4, i5, d6, d7, i8) {
32524 i1 = i1 | 0;
32525 i2 = i2 | 0;
32526 i3 = i3 | 0;
32527 i4 = i4 | 0;
32528 i5 = i5 | 0;
32529 d6 = +d6;
32530 d7 = +d7;
32531 i8 = i8 | 0;
32532 var i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0, i15 = 0, d16 = 0.0, i17 = 0, d18 = 0.0, i19 = 0, d20 = 0.0, i21 = 0, d22 = 0.0, i23 = 0, d24 = 0.0, i25 = 0, d26 = 0.0, i27 = 0, d28 = 0.0, i29 = 0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, i34 = 0, d35 = 0.0, i36 = 0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, d52 = 0.0, i53 = 0, i54 = 0, i55 = 0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0, d61 = 0.0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0;
32533 i9 = STACKTOP;
32534 STACKTOP = STACKTOP + 24 | 0;
32535 i10 = i9 | 0;
32536 i11 = HEAP32[i3 + 28 >> 2] | 0;
32537 if ((i11 | 0) <= 0) {
32538 STACKTOP = i9;
32539 return;
32540 }
32541 i12 = HEAP32[i3 + 36 >> 2] | 0;
32542 i13 = i5 | 0;
32543 d14 = +HEAPF32[i13 >> 2];
32544 i15 = i5 + 4 | 0;
32545 d16 = +HEAPF32[i15 >> 2];
32546 i17 = i5 + 8 | 0;
32547 d18 = +HEAPF32[i17 >> 2];
32548 i19 = i5 + 16 | 0;
32549 d20 = +HEAPF32[i19 >> 2];
32550 i21 = i5 + 20 | 0;
32551 d22 = +HEAPF32[i21 >> 2];
32552 i23 = i5 + 24 | 0;
32553 d24 = +HEAPF32[i23 >> 2];
32554 i25 = i5 + 32 | 0;
32555 d26 = +HEAPF32[i25 >> 2];
32556 i27 = i5 + 36 | 0;
32557 d28 = +HEAPF32[i27 >> 2];
32558 i29 = i5 + 40 | 0;
32559 d30 = +HEAPF32[i29 >> 2];
32560 d31 = +HEAPF32[i1 >> 2];
32561 d32 = +HEAPF32[i1 + 4 >> 2];
32562 d33 = +HEAPF32[i1 + 8 >> 2];
32563 i34 = 0;
32564 d35 = -3.4028234663852886e+38;
32565 i36 = -1;
32566 while (1) {
32567 d37 = +HEAPF32[i12 + (i34 * 56 | 0) + 40 >> 2];
32568 d38 = +HEAPF32[i12 + (i34 * 56 | 0) + 44 >> 2];
32569 d39 = +HEAPF32[i12 + (i34 * 56 | 0) + 48 >> 2];
32570 d40 = d33 * (d26 * d37 + d28 * d38 + d30 * d39) + (d31 * (d14 * d37 + d16 * d38 + d18 * d39) + d32 * (d20 * d37 + d22 * d38 + d24 * d39));
32571 i41 = d40 > d35;
32572 i42 = i41 ? i34 : i36;
32573 i43 = i34 + 1 | 0;
32574 if ((i43 | 0) < (i11 | 0)) {
32575 i34 = i43;
32576 d35 = i41 ? d40 : d35;
32577 i36 = i42;
32578 } else {
32579 break;
32580 }
32581 }
32582 if ((i42 | 0) < 0) {
32583 STACKTOP = i9;
32584 return;
32585 }
32586 i36 = i10 + 16 | 0;
32587 HEAP8[i36] = 1;
32588 i34 = i10 + 12 | 0;
32589 HEAP32[i34 >> 2] = 0;
32590 i11 = i10 + 4 | 0;
32591 HEAP32[i11 >> 2] = 0;
32592 i41 = i10 + 8 | 0;
32593 HEAP32[i41 >> 2] = 0;
32594 i43 = HEAP32[i12 + (i42 * 56 | 0) + 4 >> 2] | 0;
32595 L553 : do {
32596 if ((i43 | 0) > 0) {
32597 i44 = i12 + (i42 * 56 | 0) + 12 | 0;
32598 i45 = i3 + 16 | 0;
32599 i46 = i5 + 48 | 0;
32600 i47 = i5 + 52 | 0;
32601 i48 = i5 + 56 | 0;
32602 i49 = 0;
32603 i50 = 0;
32604 i51 = 0;
32605 d35 = d14;
32606 d32 = d16;
32607 d31 = d18;
32608 d33 = d20;
32609 d40 = d22;
32610 d39 = d24;
32611 d38 = d26;
32612 d37 = d28;
32613 d52 = d30;
32614 i53 = 0;
32615 while (1) {
32616 i54 = HEAP32[(HEAP32[i44 >> 2] | 0) + (i49 << 2) >> 2] | 0;
32617 i55 = HEAP32[i45 >> 2] | 0;
32618 d56 = +HEAPF32[i55 + (i54 << 4) >> 2];
32619 d57 = +HEAPF32[i55 + (i54 << 4) + 4 >> 2];
32620 d58 = +HEAPF32[i55 + (i54 << 4) + 8 >> 2];
32621 d59 = +HEAPF32[i46 >> 2] + (d35 * d56 + d32 * d57 + d31 * d58);
32622 d60 = +HEAPF32[i47 >> 2] + (d56 * d33 + d57 * d40 + d58 * d39);
32623 d61 = +HEAPF32[i48 >> 2] + (d56 * d38 + d57 * d37 + d58 * d52);
32624 do {
32625 if ((i50 | 0) == (i51 | 0)) {
32626 i54 = (i51 | 0) == 0 ? 1 : i51 << 1;
32627 if ((i51 | 0) >= (i54 | 0)) {
32628 i62 = i51;
32629 i63 = i53;
32630 break;
32631 }
32632 if ((i54 | 0) == 0) {
32633 i64 = 0;
32634 } else {
32635 i64 = __Z22btAlignedAllocInternalji(i54 << 4, 16) | 0;
32636 }
32637 if ((i51 | 0) > 0) {
32638 i55 = 0;
32639 do {
32640 i65 = i64 + (i55 << 4) | 0;
32641 if ((i65 | 0) != 0) {
32642 i66 = i65;
32643 i65 = i53 + (i55 << 4) | 0;
32644 HEAP32[i66 >> 2] = HEAP32[i65 >> 2];
32645 HEAP32[i66 + 4 >> 2] = HEAP32[i65 + 4 >> 2];
32646 HEAP32[i66 + 8 >> 2] = HEAP32[i65 + 8 >> 2];
32647 HEAP32[i66 + 12 >> 2] = HEAP32[i65 + 12 >> 2];
32648 }
32649 i55 = i55 + 1 | 0;
32650 } while ((i55 | 0) < (i51 | 0));
32651 }
32652 if ((i53 | 0) != 0) {
32653 __Z21btAlignedFreeInternalPv(i53);
32654 HEAP32[i34 >> 2] = 0;
32655 }
32656 HEAP8[i36] = 1;
32657 HEAP32[i34 >> 2] = i64;
32658 HEAP32[i41 >> 2] = i54;
32659 i62 = i51;
32660 i63 = i64;
32661 } else {
32662 i62 = i50;
32663 i63 = i53;
32664 }
32665 } while (0);
32666 i55 = i63 + (i62 << 4) | 0;
32667 if ((i55 | 0) == 0) {
32668 i67 = i62;
32669 } else {
32670 HEAPF32[i55 >> 2] = d59;
32671 HEAPF32[i63 + (i62 << 4) + 4 >> 2] = d60;
32672 HEAPF32[i63 + (i62 << 4) + 8 >> 2] = d61;
32673 HEAPF32[i63 + (i62 << 4) + 12 >> 2] = 0.0;
32674 i67 = HEAP32[i11 >> 2] | 0;
32675 }
32676 i55 = i67 + 1 | 0;
32677 HEAP32[i11 >> 2] = i55;
32678 i65 = i49 + 1 | 0;
32679 if ((i65 | 0) >= (i43 | 0)) {
32680 break L553;
32681 }
32682 i49 = i65;
32683 i50 = i55;
32684 i51 = HEAP32[i41 >> 2] | 0;
32685 d35 = +HEAPF32[i13 >> 2];
32686 d32 = +HEAPF32[i15 >> 2];
32687 d31 = +HEAPF32[i17 >> 2];
32688 d33 = +HEAPF32[i19 >> 2];
32689 d40 = +HEAPF32[i21 >> 2];
32690 d39 = +HEAPF32[i23 >> 2];
32691 d38 = +HEAPF32[i25 >> 2];
32692 d37 = +HEAPF32[i27 >> 2];
32693 d52 = +HEAPF32[i29 >> 2];
32694 i53 = i63;
32695 }
32696 }
32697 } while (0);
32698 __ZN27btPolyhedralContactClipping19clipFaceAgainstHullERK9btVector3RK18btConvexPolyhedronRK11btTransformR20btAlignedObjectArrayIS0_EffRN36btDiscreteCollisionDetectorInterface6ResultE(i1, i2, i4, i10, d6, d7, i8);
32699 i8 = HEAP32[i34 >> 2] | 0;
32700 if ((i8 | 0) != 0) {
32701 if ((HEAP8[i36] | 0) != 0) {
32702 __Z21btAlignedFreeInternalPv(i8);
32703 }
32704 HEAP32[i34 >> 2] = 0;
32705 }
32706 HEAP8[i36] = 1;
32707 HEAP32[i34 >> 2] = 0;
32708 HEAP32[i11 >> 2] = 0;
32709 HEAP32[i41 >> 2] = 0;
32710 STACKTOP = i9;
32711 return;
32712 }
32713 function __ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(i1, i2, i3, i4, i5, i6, d7, i8, i9, i10) {
32714 i1 = i1 | 0;
32715 i2 = i2 | 0;
32716 i3 = i3 | 0;
32717 i4 = i4 | 0;
32718 i5 = i5 | 0;
32719 i6 = i6 | 0;
32720 d7 = +d7;
32721 i8 = i8 | 0;
32722 i9 = i9 | 0;
32723 i10 = i10 | 0;
32724 var i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, d36 = 0.0, d37 = 0.0, i38 = 0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, d48 = 0.0, d49 = 0.0, d50 = 0.0, d51 = 0.0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0;
32725 i4 = STACKTOP;
32726 STACKTOP = STACKTOP + 32 | 0;
32727 i1 = i4 | 0;
32728 if ((i2 | 0) == 0) {
32729 STACKTOP = i4;
32730 return;
32731 }
32732 i11 = __Z22btAlignedAllocInternalji(512, 16) | 0;
32733 i12 = 0;
32734 do {
32735 i13 = i11 + (i12 << 2) | 0;
32736 if ((i13 | 0) != 0) {
32737 HEAP32[i13 >> 2] = 0;
32738 }
32739 i12 = i12 + 1 | 0;
32740 } while ((i12 | 0) < 128);
32741 HEAP32[i11 >> 2] = i2;
32742 i2 = i9 | 0;
32743 i12 = i9 + 4 | 0;
32744 i13 = i9 + 8 | 0;
32745 i9 = i1 | 0;
32746 i14 = i1 + 4 | 0;
32747 i15 = i1 + 8 | 0;
32748 i16 = i1 + 12 | 0;
32749 i17 = i8 | 0;
32750 i18 = i8 + 4 | 0;
32751 i19 = i8 + 8 | 0;
32752 i8 = i1 + 16 | 0;
32753 i20 = i1 + 20 | 0;
32754 i21 = i1 + 24 | 0;
32755 i22 = i1 + 28 | 0;
32756 i23 = i3 | 0;
32757 i24 = i5 | 0;
32758 i25 = i6 + 4 | 0;
32759 i26 = i3 + 4 | 0;
32760 i27 = i5 + 4 | 0;
32761 i28 = i6 + 8 | 0;
32762 i29 = i3 + 8 | 0;
32763 i3 = i5 + 8 | 0;
32764 i5 = i10;
32765 i30 = 1;
32766 i31 = 126;
32767 i32 = 128;
32768 i33 = 128;
32769 i34 = i11;
32770 while (1) {
32771 i11 = i30 - 1 | 0;
32772 i35 = HEAP32[i34 + (i11 << 2) >> 2] | 0;
32773 d36 = +HEAPF32[i35 + 4 >> 2] - +HEAPF32[i12 >> 2];
32774 d37 = +HEAPF32[i35 + 8 >> 2] - +HEAPF32[i13 >> 2];
32775 HEAPF32[i9 >> 2] = +HEAPF32[i35 >> 2] - +HEAPF32[i2 >> 2];
32776 HEAPF32[i14 >> 2] = d36;
32777 HEAPF32[i15 >> 2] = d37;
32778 HEAPF32[i16 >> 2] = 0.0;
32779 d37 = +HEAPF32[i35 + 20 >> 2] - +HEAPF32[i18 >> 2];
32780 d36 = +HEAPF32[i35 + 24 >> 2] - +HEAPF32[i19 >> 2];
32781 HEAPF32[i8 >> 2] = +HEAPF32[i35 + 16 >> 2] - +HEAPF32[i17 >> 2];
32782 HEAPF32[i20 >> 2] = d37;
32783 HEAPF32[i21 >> 2] = d36;
32784 HEAPF32[i22 >> 2] = 0.0;
32785 i38 = HEAP32[i6 >> 2] | 0;
32786 d36 = +HEAPF32[i23 >> 2];
32787 d37 = +HEAPF32[i24 >> 2];
32788 d39 = (+HEAPF32[i1 + (i38 << 4) >> 2] - d36) * d37;
32789 d40 = d37 * (+HEAPF32[i1 + (1 - i38 << 4) >> 2] - d36);
32790 i38 = HEAP32[i25 >> 2] | 0;
32791 d36 = +HEAPF32[i26 >> 2];
32792 d37 = +HEAPF32[i27 >> 2];
32793 d41 = (+HEAPF32[i1 + (i38 << 4) + 4 >> 2] - d36) * d37;
32794 d42 = d37 * (+HEAPF32[i1 + (1 - i38 << 4) + 4 >> 2] - d36);
32795 do {
32796 if (d39 > d42 | d41 > d40) {
32797 i43 = i11;
32798 i44 = i31;
32799 i45 = i32;
32800 i46 = i33;
32801 i47 = i34;
32802 } else {
32803 d36 = d41 > d39 ? d41 : d39;
32804 d37 = d42 < d40 ? d42 : d40;
32805 i38 = HEAP32[i28 >> 2] | 0;
32806 d48 = +HEAPF32[i29 >> 2];
32807 d49 = +HEAPF32[i3 >> 2];
32808 d50 = (+HEAPF32[i1 + (i38 << 4) + 8 >> 2] - d48) * d49;
32809 d51 = d49 * (+HEAPF32[i1 + (1 - i38 << 4) + 8 >> 2] - d48);
32810 if (d36 > d51 | d50 > d37) {
32811 i43 = i11;
32812 i44 = i31;
32813 i45 = i32;
32814 i46 = i33;
32815 i47 = i34;
32816 break;
32817 }
32818 if ((d50 > d36 ? d50 : d36) >= d7) {
32819 i43 = i11;
32820 i44 = i31;
32821 i45 = i32;
32822 i46 = i33;
32823 i47 = i34;
32824 break;
32825 }
32826 if ((d51 < d37 ? d51 : d37) <= 0.0) {
32827 i43 = i11;
32828 i44 = i31;
32829 i45 = i32;
32830 i46 = i33;
32831 i47 = i34;
32832 break;
32833 }
32834 i38 = i35 + 40 | 0;
32835 if ((HEAP32[i38 >> 2] | 0) == 0) {
32836 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i5 >> 2] | 0) + 12 >> 2] & 127](i10, i35);
32837 i43 = i11;
32838 i44 = i31;
32839 i45 = i32;
32840 i46 = i33;
32841 i47 = i34;
32842 break;
32843 }
32844 if ((i11 | 0) > (i31 | 0)) {
32845 i52 = i32 << 1;
32846 if ((i32 | 0) < (i52 | 0)) {
32847 do {
32848 if ((i33 | 0) < (i52 | 0)) {
32849 if ((i52 | 0) == 0) {
32850 i53 = 0;
32851 } else {
32852 i53 = __Z22btAlignedAllocInternalji(i32 << 3, 16) | 0;
32853 }
32854 if ((i32 | 0) > 0) {
32855 i54 = 0;
32856 do {
32857 i55 = i53 + (i54 << 2) | 0;
32858 if ((i55 | 0) != 0) {
32859 HEAP32[i55 >> 2] = HEAP32[i34 + (i54 << 2) >> 2];
32860 }
32861 i54 = i54 + 1 | 0;
32862 } while ((i54 | 0) < (i32 | 0));
32863 }
32864 if ((i34 | 0) == 0) {
32865 i56 = i52;
32866 i57 = i53;
32867 break;
32868 }
32869 __Z21btAlignedFreeInternalPv(i34);
32870 i56 = i52;
32871 i57 = i53;
32872 } else {
32873 i56 = i33;
32874 i57 = i34;
32875 }
32876 } while (0);
32877 i54 = i32;
32878 while (1) {
32879 i55 = i57 + (i54 << 2) | 0;
32880 if ((i55 | 0) != 0) {
32881 HEAP32[i55 >> 2] = 0;
32882 }
32883 i55 = i54 + 1 | 0;
32884 if ((i55 | 0) < (i52 | 0)) {
32885 i54 = i55;
32886 } else {
32887 i58 = i56;
32888 i59 = i57;
32889 break;
32890 }
32891 }
32892 } else {
32893 i58 = i33;
32894 i59 = i34;
32895 }
32896 i60 = i52 - 2 | 0;
32897 i61 = i52;
32898 i62 = i58;
32899 i63 = i59;
32900 } else {
32901 i60 = i31;
32902 i61 = i32;
32903 i62 = i33;
32904 i63 = i34;
32905 }
32906 HEAP32[i63 + (i11 << 2) >> 2] = HEAP32[i35 + 36 >> 2];
32907 HEAP32[i63 + (i30 << 2) >> 2] = HEAP32[i38 >> 2];
32908 i43 = i30 + 1 | 0;
32909 i44 = i60;
32910 i45 = i61;
32911 i46 = i62;
32912 i47 = i63;
32913 }
32914 } while (0);
32915 if ((i43 | 0) == 0) {
32916 break;
32917 } else {
32918 i30 = i43;
32919 i31 = i44;
32920 i32 = i45;
32921 i33 = i46;
32922 i34 = i47;
32923 }
32924 }
32925 if ((i47 | 0) == 0) {
32926 STACKTOP = i4;
32927 return;
32928 }
32929 __Z21btAlignedFreeInternalPv(i47);
32930 STACKTOP = i4;
32931 return;
32932 }
32933 function __ZN33btMinkowskiPenetrationDepthSolver24getPenetrationDirectionsEv() {
32934 if ((HEAP8[14336] | 0) != 0) {
32935 return 13144;
32936 }
32937 if ((___cxa_guard_acquire(14336) | 0) == 0) {
32938 return 13144;
32939 }
32940 HEAPF32[3286] = 0.0;
32941 HEAPF32[3287] = -0.0;
32942 HEAPF32[3288] = -1.0;
32943 HEAPF32[3289] = 0.0;
32944 HEAPF32[3290] = .7236080169677734;
32945 HEAPF32[3291] = -.5257250070571899;
32946 HEAPF32[3292] = -.44721901416778564;
32947 HEAPF32[3293] = 0.0;
32948 HEAPF32[3294] = -.2763879895210266;
32949 HEAPF32[3295] = -.8506489992141724;
32950 HEAPF32[3296] = -.44721901416778564;
32951 HEAPF32[3297] = 0.0;
32952 HEAPF32[3298] = -.8944259881973267;
32953 HEAPF32[3299] = -0.0;
32954 HEAPF32[3300] = -.4472160041332245;
32955 HEAPF32[3301] = 0.0;
32956 HEAPF32[3302] = -.2763879895210266;
32957 HEAPF32[3303] = .8506489992141724;
32958 HEAPF32[3304] = -.44721999764442444;
32959 HEAPF32[3305] = 0.0;
32960 HEAPF32[3306] = .7236080169677734;
32961 HEAPF32[3307] = .5257250070571899;
32962 HEAPF32[3308] = -.44721901416778564;
32963 HEAPF32[3309] = 0.0;
32964 HEAPF32[3310] = .2763879895210266;
32965 HEAPF32[3311] = -.8506489992141724;
32966 HEAPF32[3312] = .44721999764442444;
32967 HEAPF32[3313] = 0.0;
32968 HEAPF32[3314] = -.7236080169677734;
32969 HEAPF32[3315] = -.5257250070571899;
32970 HEAPF32[3316] = .44721901416778564;
32971 HEAPF32[3317] = 0.0;
32972 HEAPF32[3318] = -.7236080169677734;
32973 HEAPF32[3319] = .5257250070571899;
32974 HEAPF32[3320] = .44721901416778564;
32975 HEAPF32[3321] = 0.0;
32976 HEAPF32[3322] = .2763879895210266;
32977 HEAPF32[3323] = .8506489992141724;
32978 HEAPF32[3324] = .44721901416778564;
32979 HEAPF32[3325] = 0.0;
32980 HEAPF32[3326] = .8944259881973267;
32981 HEAPF32[3327] = 0.0;
32982 HEAPF32[3328] = .4472160041332245;
32983 HEAPF32[3329] = 0.0;
32984 HEAPF32[3330] = -0.0;
32985 HEAPF32[3331] = 0.0;
32986 HEAPF32[3332] = 1.0;
32987 HEAPF32[3333] = 0.0;
32988 HEAPF32[3334] = .4253230094909668;
32989 HEAPF32[3335] = -.3090110123157501;
32990 HEAPF32[3336] = -.8506540060043335;
32991 HEAPF32[3337] = 0.0;
32992 HEAPF32[3338] = -.16245600581169128;
32993 HEAPF32[3339] = -.49999499320983887;
32994 HEAPF32[3340] = -.8506540060043335;
32995 HEAPF32[3341] = 0.0;
32996 HEAPF32[3342] = .2628690004348755;
32997 HEAPF32[3343] = -.8090119957923889;
32998 HEAPF32[3344] = -.525738000869751;
32999 HEAPF32[3345] = 0.0;
33000 HEAPF32[3346] = .4253230094909668;
33001 HEAPF32[3347] = .3090110123157501;
33002 HEAPF32[3348] = -.8506540060043335;
33003 HEAPF32[3349] = 0.0;
33004 HEAPF32[3350] = .8506479859352112;
33005 HEAPF32[3351] = -0.0;
33006 HEAPF32[3352] = -.5257359743118286;
33007 HEAPF32[3353] = 0.0;
33008 HEAPF32[3354] = -.5257300138473511;
33009 HEAPF32[3355] = -0.0;
33010 HEAPF32[3356] = -.8506519794464111;
33011 HEAPF32[3357] = 0.0;
33012 HEAPF32[3358] = -.6881899833679199;
33013 HEAPF32[3359] = -.49999698996543884;
33014 HEAPF32[3360] = -.5257359743118286;
33015 HEAPF32[3361] = 0.0;
33016 HEAPF32[3362] = -.16245600581169128;
33017 HEAPF32[3363] = .49999499320983887;
33018 HEAPF32[3364] = -.8506540060043335;
33019 HEAPF32[3365] = 0.0;
33020 HEAPF32[3366] = -.6881899833679199;
33021 HEAPF32[3367] = .49999698996543884;
33022 HEAPF32[3368] = -.5257359743118286;
33023 HEAPF32[3369] = 0.0;
33024 HEAPF32[3370] = .2628690004348755;
33025 HEAPF32[3371] = .8090119957923889;
33026 HEAPF32[3372] = -.525738000869751;
33027 HEAPF32[3373] = 0.0;
33028 HEAPF32[3374] = .9510579705238342;
33029 HEAPF32[3375] = .3090130090713501;
33030 HEAPF32[3376] = 0.0;
33031 HEAPF32[3377] = 0.0;
33032 HEAPF32[3378] = .9510579705238342;
33033 HEAPF32[3379] = -.3090130090713501;
33034 HEAPF32[3380] = 0.0;
33035 HEAPF32[3381] = 0.0;
33036 HEAPF32[3382] = .5877860188484192;
33037 HEAPF32[3383] = -.80901700258255;
33038 HEAPF32[3384] = 0.0;
33039 HEAPF32[3385] = 0.0;
33040 HEAPF32[3386] = 0.0;
33041 HEAPF32[3387] = -1.0;
33042 HEAPF32[3388] = 0.0;
33043 HEAPF32[3389] = 0.0;
33044 HEAPF32[3390] = -.5877860188484192;
33045 HEAPF32[3391] = -.80901700258255;
33046 HEAPF32[3392] = 0.0;
33047 HEAPF32[3393] = 0.0;
33048 HEAPF32[3394] = -.9510579705238342;
33049 HEAPF32[3395] = -.3090130090713501;
33050 HEAPF32[3396] = -0.0;
33051 HEAPF32[3397] = 0.0;
33052 HEAPF32[3398] = -.9510579705238342;
33053 HEAPF32[3399] = .3090130090713501;
33054 HEAPF32[3400] = -0.0;
33055 HEAPF32[3401] = 0.0;
33056 HEAPF32[3402] = -.5877860188484192;
33057 HEAPF32[3403] = .80901700258255;
33058 HEAPF32[3404] = -0.0;
33059 HEAPF32[3405] = 0.0;
33060 HEAPF32[3406] = -0.0;
33061 HEAPF32[3407] = 1.0;
33062 HEAPF32[3408] = -0.0;
33063 HEAPF32[3409] = 0.0;
33064 HEAPF32[3410] = .5877860188484192;
33065 HEAPF32[3411] = .80901700258255;
33066 HEAPF32[3412] = -0.0;
33067 HEAPF32[3413] = 0.0;
33068 HEAPF32[3414] = .6881899833679199;
33069 HEAPF32[3415] = -.49999698996543884;
33070 HEAPF32[3416] = .5257359743118286;
33071 HEAPF32[3417] = 0.0;
33072 HEAPF32[3418] = -.2628690004348755;
33073 HEAPF32[3419] = -.8090119957923889;
33074 HEAPF32[3420] = .525738000869751;
33075 HEAPF32[3421] = 0.0;
33076 HEAPF32[3422] = -.8506479859352112;
33077 HEAPF32[3423] = 0.0;
33078 HEAPF32[3424] = .5257359743118286;
33079 HEAPF32[3425] = 0.0;
33080 HEAPF32[3426] = -.2628690004348755;
33081 HEAPF32[3427] = .8090119957923889;
33082 HEAPF32[3428] = .525738000869751;
33083 HEAPF32[3429] = 0.0;
33084 HEAPF32[3430] = .6881899833679199;
33085 HEAPF32[3431] = .49999698996543884;
33086 HEAPF32[3432] = .5257359743118286;
33087 HEAPF32[3433] = 0.0;
33088 HEAPF32[3434] = .5257300138473511;
33089 HEAPF32[3435] = 0.0;
33090 HEAPF32[3436] = .8506519794464111;
33091 HEAPF32[3437] = 0.0;
33092 HEAPF32[3438] = .16245600581169128;
33093 HEAPF32[3439] = -.49999499320983887;
33094 HEAPF32[3440] = .8506540060043335;
33095 HEAPF32[3441] = 0.0;
33096 HEAPF32[3442] = -.4253230094909668;
33097 HEAPF32[3443] = -.3090110123157501;
33098 HEAPF32[3444] = .8506540060043335;
33099 HEAPF32[3445] = 0.0;
33100 HEAPF32[3446] = -.4253230094909668;
33101 HEAPF32[3447] = .3090110123157501;
33102 HEAPF32[3448] = .8506540060043335;
33103 HEAPF32[3449] = 0.0;
33104 HEAPF32[3450] = .16245600581169128;
33105 HEAPF32[3451] = .49999499320983887;
33106 HEAPF32[3452] = .8506540060043335;
33107 HEAPF32[3453] = 0.0;
33108 return 13144;
33109 }
33110 function __ZN6btDbvt7rayTestEPK10btDbvtNodeRK9btVector3S5_RNS_8ICollideE(i1, i2, i3, i4) {
33111 i1 = i1 | 0;
33112 i2 = i2 | 0;
33113 i3 = i3 | 0;
33114 i4 = i4 | 0;
33115 var i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, i9 = 0, d10 = 0.0, i11 = 0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, d38 = 0.0, d39 = 0.0, d40 = 0.0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0;
33116 i5 = STACKTOP;
33117 STACKTOP = STACKTOP + 32 | 0;
33118 i6 = i5 | 0;
33119 if ((i1 | 0) == 0) {
33120 STACKTOP = i5;
33121 return;
33122 }
33123 i7 = i2 | 0;
33124 d8 = +HEAPF32[i3 >> 2] - +HEAPF32[i7 >> 2];
33125 i9 = i2 + 4 | 0;
33126 d10 = +HEAPF32[i3 + 4 >> 2] - +HEAPF32[i9 >> 2];
33127 i11 = i2 + 8 | 0;
33128 d12 = +HEAPF32[i3 + 8 >> 2] - +HEAPF32[i11 >> 2];
33129 d13 = 1.0 / +Math_sqrt(+(d8 * d8 + d10 * d10 + d12 * d12));
33130 d14 = d8 * d13;
33131 d15 = d10 * d13;
33132 d16 = d12 * d13;
33133 if (d14 == 0.0) {
33134 d17 = 999999984306749400.0;
33135 } else {
33136 d17 = 1.0 / d14;
33137 }
33138 if (d15 == 0.0) {
33139 d18 = 999999984306749400.0;
33140 } else {
33141 d18 = 1.0 / d15;
33142 }
33143 if (d16 == 0.0) {
33144 d19 = 999999984306749400.0;
33145 } else {
33146 d19 = 1.0 / d16;
33147 }
33148 i3 = d17 < 0.0 | 0;
33149 i2 = d18 < 0.0 | 0;
33150 i20 = d19 < 0.0 | 0;
33151 d13 = d12 * d16 + (d8 * d14 + d10 * d15);
33152 i21 = __Z22btAlignedAllocInternalji(512, 16) | 0;
33153 i22 = 0;
33154 do {
33155 i23 = i21 + (i22 << 2) | 0;
33156 if ((i23 | 0) != 0) {
33157 HEAP32[i23 >> 2] = 0;
33158 }
33159 i22 = i22 + 1 | 0;
33160 } while ((i22 | 0) < 128);
33161 HEAP32[i21 >> 2] = i1;
33162 i1 = i6;
33163 i22 = i6 + 16 | 0;
33164 i23 = i6 + (i3 << 4) | 0;
33165 i24 = i6 + ((i3 ^ 1) << 4) | 0;
33166 i3 = i6 + (i2 << 4) + 4 | 0;
33167 i25 = i6 + ((i2 ^ 1) << 4) + 4 | 0;
33168 i2 = i6 + (i20 << 4) + 8 | 0;
33169 i26 = i6 + ((i20 ^ 1) << 4) + 8 | 0;
33170 i20 = i4;
33171 i6 = 1;
33172 i27 = 126;
33173 i28 = 128;
33174 i29 = 128;
33175 i30 = i21;
33176 while (1) {
33177 i21 = i6 - 1 | 0;
33178 i31 = HEAP32[i30 + (i21 << 2) >> 2] | 0;
33179 i32 = i31;
33180 HEAP32[i1 >> 2] = HEAP32[i32 >> 2];
33181 HEAP32[i1 + 4 >> 2] = HEAP32[i32 + 4 >> 2];
33182 HEAP32[i1 + 8 >> 2] = HEAP32[i32 + 8 >> 2];
33183 HEAP32[i1 + 12 >> 2] = HEAP32[i32 + 12 >> 2];
33184 i32 = i31 + 16 | 0;
33185 HEAP32[i22 >> 2] = HEAP32[i32 >> 2];
33186 HEAP32[i22 + 4 >> 2] = HEAP32[i32 + 4 >> 2];
33187 HEAP32[i22 + 8 >> 2] = HEAP32[i32 + 8 >> 2];
33188 HEAP32[i22 + 12 >> 2] = HEAP32[i32 + 12 >> 2];
33189 d15 = +HEAPF32[i7 >> 2];
33190 d10 = d17 * (+HEAPF32[i23 >> 2] - d15);
33191 d14 = d17 * (+HEAPF32[i24 >> 2] - d15);
33192 d15 = +HEAPF32[i9 >> 2];
33193 d8 = d18 * (+HEAPF32[i3 >> 2] - d15);
33194 d16 = d18 * (+HEAPF32[i25 >> 2] - d15);
33195 do {
33196 if (d10 > d16 | d8 > d14) {
33197 i33 = i21;
33198 i34 = i27;
33199 i35 = i28;
33200 i36 = i29;
33201 i37 = i30;
33202 } else {
33203 d15 = d8 > d10 ? d8 : d10;
33204 d12 = d16 < d14 ? d16 : d14;
33205 d38 = +HEAPF32[i11 >> 2];
33206 d39 = d19 * (+HEAPF32[i2 >> 2] - d38);
33207 d40 = d19 * (+HEAPF32[i26 >> 2] - d38);
33208 if (d15 > d40 | d39 > d12) {
33209 i33 = i21;
33210 i34 = i27;
33211 i35 = i28;
33212 i36 = i29;
33213 i37 = i30;
33214 break;
33215 }
33216 if ((d39 > d15 ? d39 : d15) >= d13) {
33217 i33 = i21;
33218 i34 = i27;
33219 i35 = i28;
33220 i36 = i29;
33221 i37 = i30;
33222 break;
33223 }
33224 if ((d40 < d12 ? d40 : d12) <= 0.0) {
33225 i33 = i21;
33226 i34 = i27;
33227 i35 = i28;
33228 i36 = i29;
33229 i37 = i30;
33230 break;
33231 }
33232 i32 = i31 + 40 | 0;
33233 if ((HEAP32[i32 >> 2] | 0) == 0) {
33234 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i20 >> 2] | 0) + 12 >> 2] & 127](i4, i31);
33235 i33 = i21;
33236 i34 = i27;
33237 i35 = i28;
33238 i36 = i29;
33239 i37 = i30;
33240 break;
33241 }
33242 if ((i21 | 0) > (i27 | 0)) {
33243 i41 = i28 << 1;
33244 if ((i28 | 0) < (i41 | 0)) {
33245 do {
33246 if ((i29 | 0) < (i41 | 0)) {
33247 if ((i41 | 0) == 0) {
33248 i42 = 0;
33249 } else {
33250 i42 = __Z22btAlignedAllocInternalji(i28 << 3, 16) | 0;
33251 }
33252 if ((i28 | 0) > 0) {
33253 i43 = 0;
33254 do {
33255 i44 = i42 + (i43 << 2) | 0;
33256 if ((i44 | 0) != 0) {
33257 HEAP32[i44 >> 2] = HEAP32[i30 + (i43 << 2) >> 2];
33258 }
33259 i43 = i43 + 1 | 0;
33260 } while ((i43 | 0) < (i28 | 0));
33261 }
33262 if ((i30 | 0) == 0) {
33263 i45 = i41;
33264 i46 = i42;
33265 break;
33266 }
33267 __Z21btAlignedFreeInternalPv(i30);
33268 i45 = i41;
33269 i46 = i42;
33270 } else {
33271 i45 = i29;
33272 i46 = i30;
33273 }
33274 } while (0);
33275 i43 = i28;
33276 while (1) {
33277 i44 = i46 + (i43 << 2) | 0;
33278 if ((i44 | 0) != 0) {
33279 HEAP32[i44 >> 2] = 0;
33280 }
33281 i44 = i43 + 1 | 0;
33282 if ((i44 | 0) < (i41 | 0)) {
33283 i43 = i44;
33284 } else {
33285 i47 = i45;
33286 i48 = i46;
33287 break;
33288 }
33289 }
33290 } else {
33291 i47 = i29;
33292 i48 = i30;
33293 }
33294 i49 = i41 - 2 | 0;
33295 i50 = i41;
33296 i51 = i47;
33297 i52 = i48;
33298 } else {
33299 i49 = i27;
33300 i50 = i28;
33301 i51 = i29;
33302 i52 = i30;
33303 }
33304 HEAP32[i52 + (i21 << 2) >> 2] = HEAP32[i31 + 36 >> 2];
33305 HEAP32[i52 + (i6 << 2) >> 2] = HEAP32[i32 >> 2];
33306 i33 = i6 + 1 | 0;
33307 i34 = i49;
33308 i35 = i50;
33309 i36 = i51;
33310 i37 = i52;
33311 }
33312 } while (0);
33313 if ((i33 | 0) == 0) {
33314 break;
33315 } else {
33316 i6 = i33;
33317 i27 = i34;
33318 i28 = i35;
33319 i29 = i36;
33320 i30 = i37;
33321 }
33322 }
33323 if ((i37 | 0) == 0) {
33324 STACKTOP = i5;
33325 return;
33326 }
33327 __Z21btAlignedFreeInternalPv(i37);
33328 STACKTOP = i5;
33329 return;
33330 }
33331 function __ZN35btSequentialImpulseConstraintSolver29solveGroupCacheFriendlyFinishEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10) {
33332 i1 = i1 | 0;
33333 i2 = i2 | 0;
33334 i3 = i3 | 0;
33335 i4 = i4 | 0;
33336 i5 = i5 | 0;
33337 i6 = i6 | 0;
33338 i7 = i7 | 0;
33339 i8 = i8 | 0;
33340 i9 = i9 | 0;
33341 i10 = i10 | 0;
33342 var i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, d18 = 0.0, d19 = 0.0, i20 = 0, i21 = 0, i22 = 0;
33343 i10 = STACKTOP;
33344 STACKTOP = STACKTOP + 408 | 0;
33345 i9 = i10 | 0;
33346 i7 = i10 + 136 | 0;
33347 i6 = i10 + 272 | 0;
33348 i5 = i1 + 8 | 0;
33349 i4 = HEAP32[i5 >> 2] | 0;
33350 if ((i4 | 0) > 0) {
33351 i11 = HEAP32[i1 + 16 >> 2] | 0;
33352 i12 = i1 + 56 | 0;
33353 if ((HEAP32[i8 + 60 >> 2] & 8 | 0) == 0) {
33354 i13 = 0;
33355 do {
33356 HEAPF32[(HEAP32[i11 + (i13 * 136 | 0) + 112 >> 2] | 0) + 112 >> 2] = +HEAPF32[i11 + (i13 * 136 | 0) + 84 >> 2];
33357 i13 = i13 + 1 | 0;
33358 } while ((i13 | 0) < (i4 | 0));
33359 } else {
33360 i13 = 0;
33361 do {
33362 i14 = HEAP32[i11 + (i13 * 136 | 0) + 112 >> 2] | 0;
33363 HEAPF32[i14 + 112 >> 2] = +HEAPF32[i11 + (i13 * 136 | 0) + 84 >> 2];
33364 i15 = HEAP32[i11 + (i13 * 136 | 0) + 100 >> 2] | 0;
33365 i16 = HEAP32[i12 >> 2] | 0;
33366 HEAPF32[i14 + 120 >> 2] = +HEAPF32[i16 + (i15 * 136 | 0) + 84 >> 2];
33367 HEAPF32[i14 + 124 >> 2] = +HEAPF32[i16 + ((i15 + 1 | 0) * 136 | 0) + 84 >> 2];
33368 i13 = i13 + 1 | 0;
33369 } while ((i13 | 0) < (i4 | 0));
33370 }
33371 }
33372 i4 = i1 + 28 | 0;
33373 i13 = HEAP32[i4 >> 2] | 0;
33374 if ((i13 | 0) > 0) {
33375 i12 = HEAP32[i1 + 36 >> 2] | 0;
33376 i11 = 0;
33377 do {
33378 i15 = HEAP32[i12 + (i11 * 136 | 0) + 112 >> 2] | 0;
33379 i16 = i12 + (i11 * 136 | 0) + 84 | 0;
33380 HEAPF32[i15 + 32 >> 2] = +HEAPF32[i16 >> 2];
33381 if (+HEAPF32[i16 >> 2] > +HEAPF32[i15 + 16 >> 2]) {
33382 HEAP8[i15 + 20 | 0] = 0;
33383 }
33384 i11 = i11 + 1 | 0;
33385 } while ((i11 | 0) < (i13 | 0));
33386 }
33387 i13 = (i3 | 0) > 0;
33388 do {
33389 if ((HEAP32[i8 + 44 >> 2] | 0) == 0) {
33390 if (i13) {
33391 i17 = 0;
33392 } else {
33393 break;
33394 }
33395 do {
33396 i11 = HEAP32[i2 + (i17 << 2) >> 2] | 0;
33397 do {
33398 if (!((HEAP32[i11 + 232 >> 2] & 2 | 0) == 0 | (i11 | 0) == 0)) {
33399 if (+HEAPF32[i11 + 336 >> 2] == 0.0) {
33400 break;
33401 }
33402 i12 = i11 + 304 | 0;
33403 i15 = i11 + 308 | 0;
33404 d18 = +HEAPF32[i15 >> 2] + +HEAPF32[i11 + 508 >> 2];
33405 i16 = i11 + 312 | 0;
33406 d19 = +HEAPF32[i16 >> 2] + +HEAPF32[i11 + 512 >> 2];
33407 HEAPF32[i12 >> 2] = +HEAPF32[i12 >> 2] + +HEAPF32[i11 + 504 >> 2];
33408 HEAPF32[i15 >> 2] = d18;
33409 HEAPF32[i16 >> 2] = d19;
33410 HEAPF32[i11 + 316 >> 2] = 0.0;
33411 i16 = i11 + 320 | 0;
33412 i15 = i11 + 324 | 0;
33413 d19 = +HEAPF32[i15 >> 2] + +HEAPF32[i11 + 524 >> 2];
33414 i12 = i11 + 328 | 0;
33415 d18 = +HEAPF32[i12 >> 2] + +HEAPF32[i11 + 528 >> 2];
33416 HEAPF32[i16 >> 2] = +HEAPF32[i16 >> 2] + +HEAPF32[i11 + 520 >> 2];
33417 HEAPF32[i15 >> 2] = d19;
33418 HEAPF32[i12 >> 2] = d18;
33419 HEAPF32[i11 + 332 >> 2] = 0.0;
33420 }
33421 } while (0);
33422 i17 = i17 + 1 | 0;
33423 } while ((i17 | 0) < (i3 | 0));
33424 } else {
33425 if (!i13) {
33426 break;
33427 }
33428 i11 = i8 + 12 | 0;
33429 i12 = 0;
33430 do {
33431 i15 = HEAP32[i2 + (i12 << 2) >> 2] | 0;
33432 if (!((HEAP32[i15 + 232 >> 2] & 2 | 0) == 0 | (i15 | 0) == 0)) {
33433 __ZN11btRigidBody25internalWritebackVelocityEf(i15, +HEAPF32[i11 >> 2]);
33434 }
33435 i12 = i12 + 1 | 0;
33436 } while ((i12 | 0) < (i3 | 0));
33437 }
33438 } while (0);
33439 i3 = i9;
33440 _memset(i3 | 0, 0, 136);
33441 i9 = HEAP32[i5 >> 2] | 0;
33442 if ((i9 | 0) < 0) {
33443 i2 = i1 + 12 | 0;
33444 i8 = i1 + 16 | 0;
33445 if ((HEAP32[i2 >> 2] | 0) < 0) {
33446 i13 = HEAP32[i8 >> 2] | 0;
33447 i17 = i1 + 20 | 0;
33448 if ((i13 | 0) != 0) {
33449 if ((HEAP8[i17] | 0) != 0) {
33450 __Z21btAlignedFreeInternalPv(i13);
33451 }
33452 HEAP32[i8 >> 2] = 0;
33453 }
33454 HEAP8[i17] = 1;
33455 HEAP32[i8 >> 2] = 0;
33456 HEAP32[i2 >> 2] = 0;
33457 i20 = i9;
33458 } else {
33459 i20 = i9;
33460 }
33461 do {
33462 i9 = (HEAP32[i8 >> 2] | 0) + (i20 * 136 | 0) | 0;
33463 _memcpy(i9 | 0, i3 | 0, 136) | 0;
33464 i20 = i20 + 1 | 0;
33465 } while ((i20 | 0) < 0);
33466 }
33467 HEAP32[i5 >> 2] = 0;
33468 i5 = i7;
33469 _memset(i5 | 0, 0, 136);
33470 i7 = HEAP32[i4 >> 2] | 0;
33471 if ((i7 | 0) < 0) {
33472 i20 = i1 + 32 | 0;
33473 i3 = i1 + 36 | 0;
33474 if ((HEAP32[i20 >> 2] | 0) < 0) {
33475 i8 = HEAP32[i3 >> 2] | 0;
33476 i9 = i1 + 40 | 0;
33477 if ((i8 | 0) != 0) {
33478 if ((HEAP8[i9] | 0) != 0) {
33479 __Z21btAlignedFreeInternalPv(i8);
33480 }
33481 HEAP32[i3 >> 2] = 0;
33482 }
33483 HEAP8[i9] = 1;
33484 HEAP32[i3 >> 2] = 0;
33485 HEAP32[i20 >> 2] = 0;
33486 i21 = i7;
33487 } else {
33488 i21 = i7;
33489 }
33490 do {
33491 i7 = (HEAP32[i3 >> 2] | 0) + (i21 * 136 | 0) | 0;
33492 _memcpy(i7 | 0, i5 | 0, 136) | 0;
33493 i21 = i21 + 1 | 0;
33494 } while ((i21 | 0) < 0);
33495 }
33496 HEAP32[i4 >> 2] = 0;
33497 i4 = i6;
33498 _memset(i4 | 0, 0, 136);
33499 i6 = i1 + 48 | 0;
33500 i21 = HEAP32[i6 >> 2] | 0;
33501 if ((i21 | 0) >= 0) {
33502 HEAP32[i6 >> 2] = 0;
33503 STACKTOP = i10;
33504 return +0.0;
33505 }
33506 i5 = i1 + 52 | 0;
33507 i3 = i1 + 56 | 0;
33508 if ((HEAP32[i5 >> 2] | 0) < 0) {
33509 i7 = HEAP32[i3 >> 2] | 0;
33510 i20 = i1 + 60 | 0;
33511 if ((i7 | 0) != 0) {
33512 if ((HEAP8[i20] | 0) != 0) {
33513 __Z21btAlignedFreeInternalPv(i7);
33514 }
33515 HEAP32[i3 >> 2] = 0;
33516 }
33517 HEAP8[i20] = 1;
33518 HEAP32[i3 >> 2] = 0;
33519 HEAP32[i5 >> 2] = 0;
33520 i22 = i21;
33521 } else {
33522 i22 = i21;
33523 }
33524 do {
33525 i21 = (HEAP32[i3 >> 2] | 0) + (i22 * 136 | 0) | 0;
33526 _memcpy(i21 | 0, i4 | 0, 136) | 0;
33527 i22 = i22 + 1 | 0;
33528 } while ((i22 | 0) < 0);
33529 HEAP32[i6 >> 2] = 0;
33530 STACKTOP = i10;
33531 return +0.0;
33532 }
33533 function __ZN35btSequentialImpulseConstraintSolver28setFrictionConstraintImpulseER18btSolverConstraintP11btRigidBodyS3_R15btManifoldPointRK19btContactSolverInfo(i1, i2, i3, i4, i5, i6) {
33534 i1 = i1 | 0;
33535 i2 = i2 | 0;
33536 i3 = i3 | 0;
33537 i4 = i4 | 0;
33538 i5 = i5 | 0;
33539 i6 = i6 | 0;
33540 var i7 = 0, i8 = 0, d9 = 0.0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, i14 = 0, d15 = 0.0, d16 = 0.0, d17 = 0.0;
33541 i7 = HEAP32[i6 + 60 >> 2] | 0;
33542 i8 = HEAP32[i2 + 100 >> 2] | 0;
33543 i2 = HEAP32[i1 + 56 >> 2] | 0;
33544 if ((i7 & 8 | 0) == 0) {
33545 HEAPF32[i2 + (i8 * 136 | 0) + 84 >> 2] = 0.0;
33546 if ((i7 & 16 | 0) == 0) {
33547 return;
33548 }
33549 HEAPF32[i2 + ((i8 + 1 | 0) * 136 | 0) + 84 >> 2] = 0.0;
33550 return;
33551 }
33552 i1 = (i7 & 4 | 0) == 0;
33553 do {
33554 if (i1) {
33555 HEAPF32[i2 + (i8 * 136 | 0) + 84 >> 2] = 0.0;
33556 } else {
33557 d9 = +HEAPF32[i5 + 120 >> 2] * +HEAPF32[i6 + 56 >> 2];
33558 i10 = i2 + (i8 * 136 | 0) + 84 | 0;
33559 HEAPF32[i10 >> 2] = d9;
33560 do {
33561 if ((i3 | 0) != 0) {
33562 d11 = +HEAPF32[i3 + 336 >> 2];
33563 if (d11 == 0.0) {
33564 break;
33565 }
33566 d12 = d9 * d11 * +HEAPF32[i2 + (i8 * 136 | 0) + 20 >> 2] * +HEAPF32[i3 + 344 >> 2];
33567 d13 = d9 * d11 * +HEAPF32[i2 + (i8 * 136 | 0) + 24 >> 2] * +HEAPF32[i3 + 348 >> 2];
33568 i14 = i3 + 504 | 0;
33569 HEAPF32[i14 >> 2] = +HEAPF32[i14 >> 2] + d9 * d11 * +HEAPF32[i2 + (i8 * 136 | 0) + 16 >> 2] * +HEAPF32[i3 + 340 >> 2];
33570 i14 = i3 + 508 | 0;
33571 HEAPF32[i14 >> 2] = d12 + +HEAPF32[i14 >> 2];
33572 i14 = i3 + 512 | 0;
33573 HEAPF32[i14 >> 2] = d13 + +HEAPF32[i14 >> 2];
33574 d13 = d9 * +HEAPF32[i3 + 540 >> 2] * +HEAPF32[i2 + (i8 * 136 | 0) + 52 >> 2];
33575 d12 = d9 * +HEAPF32[i3 + 544 >> 2] * +HEAPF32[i2 + (i8 * 136 | 0) + 56 >> 2];
33576 i14 = i3 + 520 | 0;
33577 HEAPF32[i14 >> 2] = d9 * +HEAPF32[i3 + 536 >> 2] * +HEAPF32[i2 + (i8 * 136 | 0) + 48 >> 2] + +HEAPF32[i14 >> 2];
33578 i14 = i3 + 524 | 0;
33579 HEAPF32[i14 >> 2] = d13 + +HEAPF32[i14 >> 2];
33580 i14 = i3 + 528 | 0;
33581 HEAPF32[i14 >> 2] = d12 + +HEAPF32[i14 >> 2];
33582 }
33583 } while (0);
33584 if ((i4 | 0) == 0) {
33585 break;
33586 }
33587 d9 = +HEAPF32[i4 + 336 >> 2];
33588 d12 = -0.0 - +HEAPF32[i10 >> 2];
33589 if (d9 == 0.0) {
33590 break;
33591 }
33592 d13 = -0.0 - +HEAPF32[i2 + (i8 * 136 | 0) + 72 >> 2];
33593 d11 = -0.0 - +HEAPF32[i2 + (i8 * 136 | 0) + 68 >> 2];
33594 d15 = -0.0 - +HEAPF32[i2 + (i8 * 136 | 0) + 64 >> 2];
33595 d16 = d9 * +HEAPF32[i2 + (i8 * 136 | 0) + 20 >> 2] * +HEAPF32[i4 + 344 >> 2] * d12;
33596 d17 = d9 * +HEAPF32[i2 + (i8 * 136 | 0) + 24 >> 2] * +HEAPF32[i4 + 348 >> 2] * d12;
33597 i14 = i4 + 504 | 0;
33598 HEAPF32[i14 >> 2] = +HEAPF32[i14 >> 2] + d9 * +HEAPF32[i2 + (i8 * 136 | 0) + 16 >> 2] * +HEAPF32[i4 + 340 >> 2] * d12;
33599 i14 = i4 + 508 | 0;
33600 HEAPF32[i14 >> 2] = d16 + +HEAPF32[i14 >> 2];
33601 i14 = i4 + 512 | 0;
33602 HEAPF32[i14 >> 2] = d17 + +HEAPF32[i14 >> 2];
33603 d17 = +HEAPF32[i4 + 540 >> 2] * d12 * d11;
33604 d11 = +HEAPF32[i4 + 544 >> 2] * d12 * d13;
33605 i14 = i4 + 520 | 0;
33606 HEAPF32[i14 >> 2] = +HEAPF32[i4 + 536 >> 2] * d12 * d15 + +HEAPF32[i14 >> 2];
33607 i14 = i4 + 524 | 0;
33608 HEAPF32[i14 >> 2] = d17 + +HEAPF32[i14 >> 2];
33609 i14 = i4 + 528 | 0;
33610 HEAPF32[i14 >> 2] = d11 + +HEAPF32[i14 >> 2];
33611 }
33612 } while (0);
33613 if ((i7 & 16 | 0) == 0) {
33614 return;
33615 }
33616 i7 = i8 + 1 | 0;
33617 if (i1) {
33618 HEAPF32[i2 + (i7 * 136 | 0) + 84 >> 2] = 0.0;
33619 return;
33620 }
33621 d11 = +HEAPF32[i5 + 124 >> 2] * +HEAPF32[i6 + 56 >> 2];
33622 i6 = i2 + (i7 * 136 | 0) + 84 | 0;
33623 HEAPF32[i6 >> 2] = d11;
33624 do {
33625 if ((i3 | 0) != 0) {
33626 d17 = +HEAPF32[i3 + 336 >> 2];
33627 if (d17 == 0.0) {
33628 break;
33629 }
33630 d15 = d11 * d17 * +HEAPF32[i2 + (i7 * 136 | 0) + 20 >> 2];
33631 d12 = d11 * d17 * +HEAPF32[i2 + (i7 * 136 | 0) + 24 >> 2];
33632 i5 = i3 + 504 | 0;
33633 HEAPF32[i5 >> 2] = +HEAPF32[i5 >> 2] + d11 * d17 * +HEAPF32[i2 + (i7 * 136 | 0) + 16 >> 2];
33634 i5 = i3 + 508 | 0;
33635 HEAPF32[i5 >> 2] = d15 + +HEAPF32[i5 >> 2];
33636 i5 = i3 + 512 | 0;
33637 HEAPF32[i5 >> 2] = d12 + +HEAPF32[i5 >> 2];
33638 d12 = d11 * +HEAPF32[i3 + 540 >> 2] * +HEAPF32[i2 + (i7 * 136 | 0) + 52 >> 2];
33639 d15 = d11 * +HEAPF32[i3 + 544 >> 2] * +HEAPF32[i2 + (i7 * 136 | 0) + 56 >> 2];
33640 i5 = i3 + 520 | 0;
33641 HEAPF32[i5 >> 2] = d11 * +HEAPF32[i3 + 536 >> 2] * +HEAPF32[i2 + (i7 * 136 | 0) + 48 >> 2] + +HEAPF32[i5 >> 2];
33642 i5 = i3 + 524 | 0;
33643 HEAPF32[i5 >> 2] = d12 + +HEAPF32[i5 >> 2];
33644 i5 = i3 + 528 | 0;
33645 HEAPF32[i5 >> 2] = d15 + +HEAPF32[i5 >> 2];
33646 }
33647 } while (0);
33648 if ((i4 | 0) == 0) {
33649 return;
33650 }
33651 d11 = +HEAPF32[i4 + 336 >> 2];
33652 d15 = -0.0 - +HEAPF32[i6 >> 2];
33653 if (d11 == 0.0) {
33654 return;
33655 }
33656 d12 = -0.0 - +HEAPF32[i2 + (i7 * 136 | 0) + 72 >> 2];
33657 d17 = -0.0 - +HEAPF32[i2 + (i7 * 136 | 0) + 68 >> 2];
33658 d13 = -0.0 - +HEAPF32[i2 + (i7 * 136 | 0) + 64 >> 2];
33659 d16 = d11 * +HEAPF32[i2 + (i7 * 136 | 0) + 20 >> 2] * d15;
33660 d9 = d11 * +HEAPF32[i2 + (i7 * 136 | 0) + 24 >> 2] * d15;
33661 i6 = i4 + 504 | 0;
33662 HEAPF32[i6 >> 2] = +HEAPF32[i6 >> 2] + d11 * +HEAPF32[i2 + (i7 * 136 | 0) + 16 >> 2] * d15;
33663 i7 = i4 + 508 | 0;
33664 HEAPF32[i7 >> 2] = d16 + +HEAPF32[i7 >> 2];
33665 i7 = i4 + 512 | 0;
33666 HEAPF32[i7 >> 2] = d9 + +HEAPF32[i7 >> 2];
33667 d9 = +HEAPF32[i4 + 540 >> 2] * d15 * d17;
33668 d17 = +HEAPF32[i4 + 544 >> 2] * d15 * d12;
33669 i7 = i4 + 520 | 0;
33670 HEAPF32[i7 >> 2] = +HEAPF32[i4 + 536 >> 2] * d15 * d13 + +HEAPF32[i7 >> 2];
33671 i7 = i4 + 524 | 0;
33672 HEAPF32[i7 >> 2] = d9 + +HEAPF32[i7 >> 2];
33673 i7 = i4 + 528 | 0;
33674 HEAPF32[i7 >> 2] = d17 + +HEAPF32[i7 >> 2];
33675 return;
33676 }
33677 function __ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_S3_PfRj(i1, i2, i3, i4, i5, i6) {
33678 i1 = i1 | 0;
33679 i2 = i2 | 0;
33680 i3 = i3 | 0;
33681 i4 = i4 | 0;
33682 i5 = i5 | 0;
33683 i6 = i6 | 0;
33684 var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, d13 = 0.0, i14 = 0, d15 = 0.0, d16 = 0.0, i17 = 0, d18 = 0.0, i19 = 0, d20 = 0.0, d21 = 0.0, i22 = 0, d23 = 0.0, d24 = 0.0, d25 = 0.0, i26 = 0, d27 = 0.0, d28 = 0.0, i29 = 0, d30 = 0.0, d31 = 0.0, i32 = 0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, i37 = 0, d38 = 0.0, d39 = 0.0, i40 = 0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, d49 = 0.0, i50 = 0;
33685 i7 = STACKTOP;
33686 STACKTOP = STACKTOP + 88 | 0;
33687 i8 = i7 | 0;
33688 i9 = i7 + 16 | 0;
33689 i10 = i7 + 64 | 0;
33690 i11 = i7 + 80 | 0;
33691 HEAP32[i8 >> 2] = i1;
33692 HEAP32[i8 + 4 >> 2] = i2;
33693 HEAP32[i8 + 8 >> 2] = i3;
33694 HEAP32[i8 + 12 >> 2] = i4;
33695 i12 = i1 | 0;
33696 d13 = +HEAPF32[i12 >> 2];
33697 i14 = i4 | 0;
33698 d15 = +HEAPF32[i14 >> 2];
33699 d16 = d13 - d15;
33700 i17 = i1 + 4 | 0;
33701 d18 = +HEAPF32[i17 >> 2];
33702 i19 = i4 + 4 | 0;
33703 d20 = +HEAPF32[i19 >> 2];
33704 d21 = d18 - d20;
33705 i22 = i1 + 8 | 0;
33706 d23 = +HEAPF32[i22 >> 2];
33707 i1 = i4 + 8 | 0;
33708 d24 = +HEAPF32[i1 >> 2];
33709 d25 = d23 - d24;
33710 HEAPF32[i9 >> 2] = d16;
33711 HEAPF32[i9 + 4 >> 2] = d21;
33712 HEAPF32[i9 + 8 >> 2] = d25;
33713 HEAPF32[i9 + 12 >> 2] = 0.0;
33714 i26 = i2 | 0;
33715 d27 = +HEAPF32[i26 >> 2];
33716 d28 = d27 - d15;
33717 i29 = i2 + 4 | 0;
33718 d30 = +HEAPF32[i29 >> 2];
33719 d31 = d30 - d20;
33720 i32 = i2 + 8 | 0;
33721 d33 = +HEAPF32[i32 >> 2];
33722 d34 = d33 - d24;
33723 HEAPF32[i9 + 16 >> 2] = d28;
33724 HEAPF32[i9 + 20 >> 2] = d31;
33725 HEAPF32[i9 + 24 >> 2] = d34;
33726 HEAPF32[i9 + 28 >> 2] = 0.0;
33727 i2 = i3 | 0;
33728 d35 = +HEAPF32[i2 >> 2];
33729 d36 = d35 - d15;
33730 i37 = i3 + 4 | 0;
33731 d38 = +HEAPF32[i37 >> 2];
33732 d39 = d38 - d20;
33733 i40 = i3 + 8 | 0;
33734 d41 = +HEAPF32[i40 >> 2];
33735 d42 = d41 - d24;
33736 HEAPF32[i9 + 32 >> 2] = d36;
33737 HEAPF32[i9 + 36 >> 2] = d39;
33738 HEAPF32[i9 + 40 >> 2] = d42;
33739 HEAPF32[i9 + 44 >> 2] = 0.0;
33740 d43 = d16 * d31 * d42 + (d21 * d34 * d36 + d25 * d28 * d39 - d16 * d34 * d39 - d21 * d28 * d42) - d25 * d31 * d36;
33741 d36 = d27 - d35;
33742 d35 = d30 - d38;
33743 d38 = d33 - d41;
33744 d41 = d13 - d27;
33745 d27 = d18 - d30;
33746 d30 = d23 - d33;
33747 if (d43 * (d23 * (d27 * d36 - d41 * d35) + (d13 * (d30 * d35 - d27 * d38) + d18 * (d41 * d38 - d30 * d36))) > 0.0 | d43 == 0.0) {
33748 d44 = -1.0;
33749 STACKTOP = i7;
33750 return +d44;
33751 }
33752 _memset(i10 | 0, 0, 12);
33753 HEAP32[i11 >> 2] = 0;
33754 i3 = i10 | 0;
33755 i45 = i10 + 4 | 0;
33756 i46 = i10 + 8 | 0;
33757 i10 = i5 + 12 | 0;
33758 i47 = 0;
33759 d36 = -1.0;
33760 d30 = d21;
33761 d21 = d25;
33762 d25 = d16;
33763 d16 = d15;
33764 d15 = d20;
33765 d20 = d24;
33766 while (1) {
33767 i48 = HEAP32[1312 + (i47 << 2) >> 2] | 0;
33768 d24 = +HEAPF32[i9 + (i48 << 4) + 8 >> 2];
33769 d38 = +HEAPF32[i9 + (i48 << 4) + 4 >> 2];
33770 d41 = +HEAPF32[i9 + (i48 << 4) >> 2];
33771 do {
33772 if (d43 * (d20 * (d25 * d38 - d30 * d41) + (d16 * (d30 * d24 - d21 * d38) + d15 * (d21 * d41 - d25 * d24))) > 0.0) {
33773 d18 = +__ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRj(HEAP32[i8 + (i47 << 2) >> 2] | 0, HEAP32[i8 + (i48 << 2) >> 2] | 0, i4, i3, i11);
33774 if (!(d36 < 0.0 | d18 < d36)) {
33775 d49 = d36;
33776 break;
33777 }
33778 i50 = HEAP32[i11 >> 2] | 0;
33779 HEAP32[i6 >> 2] = ((i50 & 2 | 0) == 0 ? 0 : 1 << i48) + (i50 << 1 & 8) + ((i50 & 1 | 0) == 0 ? 0 : 1 << i47);
33780 HEAPF32[i5 + (i47 << 2) >> 2] = +HEAPF32[i3 >> 2];
33781 HEAPF32[i5 + (i48 << 2) >> 2] = +HEAPF32[i45 >> 2];
33782 HEAPF32[i5 + (HEAP32[1312 + (i48 << 2) >> 2] << 2) >> 2] = 0.0;
33783 HEAPF32[i10 >> 2] = +HEAPF32[i46 >> 2];
33784 d49 = d18;
33785 } else {
33786 d49 = d36;
33787 }
33788 } while (0);
33789 i48 = i47 + 1 | 0;
33790 if (i48 >>> 0 >= 3) {
33791 break;
33792 }
33793 i47 = i48;
33794 d36 = d49;
33795 d30 = +HEAPF32[i9 + (i48 << 4) + 4 >> 2];
33796 d21 = +HEAPF32[i9 + (i48 << 4) + 8 >> 2];
33797 d25 = +HEAPF32[i9 + (i48 << 4) >> 2];
33798 d16 = +HEAPF32[i14 >> 2];
33799 d15 = +HEAPF32[i19 >> 2];
33800 d20 = +HEAPF32[i1 >> 2];
33801 }
33802 if (d49 >= 0.0) {
33803 d44 = d49;
33804 STACKTOP = i7;
33805 return +d44;
33806 }
33807 HEAP32[i6 >> 2] = 15;
33808 d49 = +HEAPF32[i37 >> 2];
33809 d20 = +HEAPF32[i32 >> 2];
33810 d15 = +HEAPF32[i14 >> 2];
33811 d16 = +HEAPF32[i40 >> 2];
33812 d25 = +HEAPF32[i26 >> 2];
33813 d21 = +HEAPF32[i19 >> 2];
33814 d30 = +HEAPF32[i2 >> 2];
33815 d36 = +HEAPF32[i1 >> 2];
33816 d24 = +HEAPF32[i29 >> 2];
33817 d41 = (d49 * d20 * d15 + d16 * d25 * d21 - d21 * d20 * d30 - d49 * d25 * d36 + d36 * d30 * d24 - d15 * d16 * d24) / d43;
33818 HEAPF32[i5 >> 2] = d41;
33819 d24 = +HEAPF32[i17 >> 2];
33820 d16 = +HEAPF32[i40 >> 2];
33821 d15 = +HEAPF32[i14 >> 2];
33822 d30 = +HEAPF32[i22 >> 2];
33823 d36 = +HEAPF32[i2 >> 2];
33824 d25 = +HEAPF32[i19 >> 2];
33825 d49 = +HEAPF32[i12 >> 2];
33826 d20 = +HEAPF32[i1 >> 2];
33827 d21 = +HEAPF32[i37 >> 2];
33828 d38 = (d24 * d16 * d15 + d30 * d36 * d25 - d25 * d16 * d49 - d24 * d36 * d20 + d20 * d49 * d21 - d15 * d30 * d21) / d43;
33829 HEAPF32[i5 + 4 >> 2] = d38;
33830 d21 = +HEAPF32[i29 >> 2];
33831 d30 = +HEAPF32[i22 >> 2];
33832 d15 = +HEAPF32[i14 >> 2];
33833 d49 = +HEAPF32[i32 >> 2];
33834 d20 = +HEAPF32[i12 >> 2];
33835 d36 = +HEAPF32[i19 >> 2];
33836 d24 = +HEAPF32[i26 >> 2];
33837 d16 = +HEAPF32[i1 >> 2];
33838 d25 = +HEAPF32[i17 >> 2];
33839 d18 = (d21 * d30 * d15 + d49 * d20 * d36 - d36 * d30 * d24 - d21 * d20 * d16 + d16 * d24 * d25 - d15 * d49 * d25) / d43;
33840 HEAPF32[i5 + 8 >> 2] = d18;
33841 HEAPF32[i10 >> 2] = 1.0 - (d41 + d38 + d18);
33842 d44 = 0.0;
33843 STACKTOP = i7;
33844 return +d44;
33845 }
33846 function __ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i1, i2, i3, i4, i5) {
33847 i1 = i1 | 0;
33848 i2 = i2 | 0;
33849 i3 = i3 | 0;
33850 i4 = i4 | 0;
33851 i5 = i5 | 0;
33852 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, d15 = 0.0, i16 = 0, d17 = 0.0, i18 = 0, d19 = 0.0, i20 = 0, d21 = 0.0, d22 = 0.0, i23 = 0, d24 = 0.0, d25 = 0.0, i26 = 0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, i35 = 0, d36 = 0.0, i37 = 0, d38 = 0.0, i39 = 0, d40 = 0.0, i41 = 0, d42 = 0.0, i43 = 0, d44 = 0.0, i45 = 0, d46 = 0.0;
33853 i4 = STACKTOP;
33854 STACKTOP = STACKTOP + 168 | 0;
33855 i6 = i4 | 0;
33856 i7 = i4 + 16 | 0;
33857 i8 = i4 + 32 | 0;
33858 i9 = i4 + 40 | 0;
33859 i10 = i4 + 104 | 0;
33860 i11 = i4 + 120 | 0;
33861 i12 = i4 + 136 | 0;
33862 i13 = i4 + 152 | 0;
33863 HEAPF32[i8 >> 2] = 0.0;
33864 i14 = i2 + 112 | 0;
33865 d15 = +HEAPF32[i2 + 48 >> 2] - +HEAPF32[i14 >> 2];
33866 i16 = i2 + 116 | 0;
33867 d17 = +HEAPF32[i2 + 52 >> 2] - +HEAPF32[i16 >> 2];
33868 i18 = i2 + 120 | 0;
33869 d19 = +HEAPF32[i2 + 56 >> 2] - +HEAPF32[i18 >> 2];
33870 i20 = i2 + 64 | 0;
33871 d21 = +HEAPF32[i20 >> 2];
33872 d22 = +HEAPF32[i2 >> 2];
33873 i23 = i2 + 80 | 0;
33874 d24 = +HEAPF32[i23 >> 2];
33875 d25 = +HEAPF32[i2 + 16 >> 2];
33876 i26 = i2 + 96 | 0;
33877 d27 = +HEAPF32[i26 >> 2];
33878 d28 = +HEAPF32[i2 + 32 >> 2];
33879 d29 = +HEAPF32[i2 + 4 >> 2];
33880 d30 = +HEAPF32[i2 + 20 >> 2];
33881 d31 = +HEAPF32[i2 + 36 >> 2];
33882 d32 = +HEAPF32[i2 + 8 >> 2];
33883 d33 = +HEAPF32[i2 + 24 >> 2];
33884 d34 = +HEAPF32[i2 + 40 >> 2];
33885 i35 = i2 + 68 | 0;
33886 d36 = +HEAPF32[i35 >> 2];
33887 i37 = i2 + 84 | 0;
33888 d38 = +HEAPF32[i37 >> 2];
33889 i39 = i2 + 100 | 0;
33890 d40 = +HEAPF32[i39 >> 2];
33891 i41 = i2 + 72 | 0;
33892 d42 = +HEAPF32[i41 >> 2];
33893 i43 = i2 + 88 | 0;
33894 d44 = +HEAPF32[i43 >> 2];
33895 i45 = i2 + 104 | 0;
33896 d46 = +HEAPF32[i45 >> 2];
33897 HEAPF32[i9 >> 2] = d21 * d22 + d24 * d25 + d27 * d28;
33898 HEAPF32[i9 + 4 >> 2] = d21 * d29 + d24 * d30 + d27 * d31;
33899 HEAPF32[i9 + 8 >> 2] = d21 * d32 + d24 * d33 + d27 * d34;
33900 HEAPF32[i9 + 12 >> 2] = 0.0;
33901 HEAPF32[i9 + 16 >> 2] = d22 * d36 + d25 * d38 + d28 * d40;
33902 HEAPF32[i9 + 20 >> 2] = d29 * d36 + d30 * d38 + d31 * d40;
33903 HEAPF32[i9 + 24 >> 2] = d32 * d36 + d33 * d38 + d34 * d40;
33904 HEAPF32[i9 + 28 >> 2] = 0.0;
33905 HEAPF32[i9 + 32 >> 2] = d22 * d42 + d25 * d44 + d28 * d46;
33906 HEAPF32[i9 + 36 >> 2] = d29 * d42 + d30 * d44 + d31 * d46;
33907 HEAPF32[i9 + 40 >> 2] = d32 * d42 + d33 * d44 + d34 * d46;
33908 HEAPF32[i9 + 44 >> 2] = 0.0;
33909 HEAPF32[i9 + 48 >> 2] = d15 * d21 + d17 * d24 + d19 * d27;
33910 HEAPF32[i9 + 52 >> 2] = d15 * d36 + d17 * d38 + d19 * d40;
33911 HEAPF32[i9 + 56 >> 2] = d15 * d42 + d17 * d44 + d19 * d46;
33912 HEAPF32[i9 + 60 >> 2] = 0.0;
33913 if (!(__ZN22SphereTriangleDetector7collideERK9btVector3RS0_S3_RfS4_f(i1, i9 + 48 | 0, i6, i7, i8, 0, +HEAPF32[i1 + 12 >> 2]) | 0)) {
33914 STACKTOP = i4;
33915 return;
33916 }
33917 if (i5) {
33918 d46 = +HEAPF32[i20 >> 2];
33919 d19 = +HEAPF32[i7 >> 2];
33920 d44 = +HEAPF32[i35 >> 2];
33921 d17 = +HEAPF32[i7 + 4 >> 2];
33922 d42 = +HEAPF32[i41 >> 2];
33923 d15 = +HEAPF32[i7 + 8 >> 2];
33924 d40 = d46 * d19 + d44 * d17 + d42 * d15;
33925 d38 = +HEAPF32[i23 >> 2];
33926 d36 = +HEAPF32[i37 >> 2];
33927 d27 = +HEAPF32[i43 >> 2];
33928 d24 = d19 * d38 + d17 * d36 + d15 * d27;
33929 d21 = +HEAPF32[i26 >> 2];
33930 d34 = +HEAPF32[i39 >> 2];
33931 d33 = +HEAPF32[i45 >> 2];
33932 d32 = d19 * d21 + d17 * d34 + d15 * d33;
33933 HEAPF32[i10 >> 2] = -0.0 - d40;
33934 HEAPF32[i10 + 4 >> 2] = -0.0 - d24;
33935 HEAPF32[i10 + 8 >> 2] = -0.0 - d32;
33936 HEAPF32[i10 + 12 >> 2] = 0.0;
33937 d15 = +HEAPF32[i6 >> 2];
33938 d17 = +HEAPF32[i6 + 4 >> 2];
33939 d19 = +HEAPF32[i6 + 8 >> 2];
33940 d31 = +HEAPF32[i8 >> 2];
33941 d30 = +HEAPF32[i16 >> 2] + (d38 * d15 + d36 * d17 + d27 * d19) + d24 * d31;
33942 d24 = d21 * d15 + d34 * d17 + d33 * d19 + +HEAPF32[i18 >> 2] + d32 * d31;
33943 HEAPF32[i11 >> 2] = +HEAPF32[i14 >> 2] + (d46 * d15 + d44 * d17 + d42 * d19) + d40 * d31;
33944 HEAPF32[i11 + 4 >> 2] = d30;
33945 HEAPF32[i11 + 8 >> 2] = d24;
33946 HEAPF32[i11 + 12 >> 2] = 0.0;
33947 FUNCTION_TABLE_viiif[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 15](i3, i10, i11, d31);
33948 STACKTOP = i4;
33949 return;
33950 } else {
33951 i11 = HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] | 0;
33952 d31 = +HEAPF32[i20 >> 2];
33953 d24 = +HEAPF32[i7 >> 2];
33954 d30 = +HEAPF32[i35 >> 2];
33955 d40 = +HEAPF32[i7 + 4 >> 2];
33956 d19 = +HEAPF32[i41 >> 2];
33957 d42 = +HEAPF32[i7 + 8 >> 2];
33958 d17 = +HEAPF32[i23 >> 2];
33959 d44 = +HEAPF32[i37 >> 2];
33960 d15 = +HEAPF32[i43 >> 2];
33961 d46 = +HEAPF32[i26 >> 2];
33962 d32 = +HEAPF32[i39 >> 2];
33963 d33 = +HEAPF32[i45 >> 2];
33964 HEAPF32[i12 >> 2] = d31 * d24 + d30 * d40 + d19 * d42;
33965 HEAPF32[i12 + 4 >> 2] = d24 * d17 + d40 * d44 + d42 * d15;
33966 HEAPF32[i12 + 8 >> 2] = d24 * d46 + d40 * d32 + d42 * d33;
33967 HEAPF32[i12 + 12 >> 2] = 0.0;
33968 d42 = +HEAPF32[i6 >> 2];
33969 d40 = +HEAPF32[i6 + 4 >> 2];
33970 d24 = +HEAPF32[i6 + 8 >> 2];
33971 d34 = +HEAPF32[i16 >> 2] + (d17 * d42 + d44 * d40 + d15 * d24);
33972 d15 = d46 * d42 + d32 * d40 + d33 * d24 + +HEAPF32[i18 >> 2];
33973 HEAPF32[i13 >> 2] = +HEAPF32[i14 >> 2] + (d31 * d42 + d30 * d40 + d19 * d24);
33974 HEAPF32[i13 + 4 >> 2] = d34;
33975 HEAPF32[i13 + 8 >> 2] = d15;
33976 HEAPF32[i13 + 12 >> 2] = 0.0;
33977 FUNCTION_TABLE_viiif[i11 & 15](i3, i12, i13, +HEAPF32[i8 >> 2]);
33978 STACKTOP = i4;
33979 return;
33980 }
33981 }
33982 function __ZN20btConvexHullInternal12findMaxAngleEbPKNS_6VertexERKNS_7Point32ERKNS_7Point64ES8_RNS_10Rational64E(i1, i2, i3, i4, i5, i6, i7) {
33983 i1 = i1 | 0;
33984 i2 = i2 | 0;
33985 i3 = i3 | 0;
33986 i4 = i4 | 0;
33987 i5 = i5 | 0;
33988 i6 = i6 | 0;
33989 i7 = i7 | 0;
33990 var i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0;
33991 i8 = STACKTOP;
33992 STACKTOP = STACKTOP + 40 | 0;
33993 i9 = i8 | 0;
33994 i10 = i8 + 16 | 0;
33995 i11 = i3 + 8 | 0;
33996 i12 = HEAP32[i11 >> 2] | 0;
33997 if ((i12 | 0) == 0) {
33998 i13 = 0;
33999 STACKTOP = i8;
34000 return i13 | 0;
34001 }
34002 i14 = i1 + 100 | 0;
34003 i1 = i3 + 88 | 0;
34004 i15 = i3 + 92 | 0;
34005 i16 = i3 + 96 | 0;
34006 i3 = i9 | 0;
34007 i17 = i9 + 4 | 0;
34008 i18 = i9 + 8 | 0;
34009 i19 = i9 + 12 | 0;
34010 i20 = i6 | 0;
34011 i21 = i6 + 8 | 0;
34012 i22 = i6 + 16 | 0;
34013 i6 = i5 | 0;
34014 i23 = i5 + 8 | 0;
34015 i24 = i5 + 16 | 0;
34016 i5 = i10 + 16 | 0;
34017 i25 = i10 | 0;
34018 i26 = i10 + 8 | 0;
34019 i27 = i7;
34020 i28 = i10;
34021 i29 = 0;
34022 i30 = i12;
34023 while (1) {
34024 do {
34025 if ((HEAP32[i30 + 20 >> 2] | 0) > (HEAP32[i14 >> 2] | 0)) {
34026 i12 = HEAP32[i30 + 12 >> 2] | 0;
34027 i31 = (HEAP32[i12 + 88 >> 2] | 0) - (HEAP32[i1 >> 2] | 0) | 0;
34028 i32 = (HEAP32[i12 + 92 >> 2] | 0) - (HEAP32[i15 >> 2] | 0) | 0;
34029 i33 = (HEAP32[i12 + 96 >> 2] | 0) - (HEAP32[i16 >> 2] | 0) | 0;
34030 HEAP32[i3 >> 2] = i31;
34031 HEAP32[i17 >> 2] = i32;
34032 HEAP32[i18 >> 2] = i33;
34033 HEAP32[i19 >> 2] = -1;
34034 i12 = i31;
34035 i34 = (i31 | 0) < 0 ? -1 : 0;
34036 i31 = ___muldi3(HEAP32[i20 >> 2] | 0, HEAP32[i20 + 4 >> 2] | 0, i12, i34) | 0;
34037 i35 = tempRet0;
34038 i36 = i32;
34039 i37 = (i32 | 0) < 0 ? -1 : 0;
34040 i32 = ___muldi3(HEAP32[i21 >> 2] | 0, HEAP32[i21 + 4 >> 2] | 0, i36, i37) | 0;
34041 i38 = _i64Add(i32, tempRet0, i31, i35) | 0;
34042 i35 = tempRet0;
34043 i31 = i33;
34044 i32 = (i33 | 0) < 0 ? -1 : 0;
34045 i33 = ___muldi3(HEAP32[i22 >> 2] | 0, HEAP32[i22 + 4 >> 2] | 0, i31, i32) | 0;
34046 i39 = _i64Add(i38, i35, i33, tempRet0) | 0;
34047 i33 = tempRet0;
34048 i35 = ___muldi3(HEAP32[i6 >> 2] | 0, HEAP32[i6 + 4 >> 2] | 0, i12, i34) | 0;
34049 i34 = tempRet0;
34050 i12 = ___muldi3(HEAP32[i23 >> 2] | 0, HEAP32[i23 + 4 >> 2] | 0, i36, i37) | 0;
34051 i37 = _i64Add(i12, tempRet0, i35, i34) | 0;
34052 i34 = tempRet0;
34053 i35 = ___muldi3(HEAP32[i24 >> 2] | 0, HEAP32[i24 + 4 >> 2] | 0, i31, i32) | 0;
34054 i32 = _i64Add(i37, i34, i35, tempRet0) | 0;
34055 i35 = tempRet0;
34056 i34 = 0;
34057 do {
34058 if ((i33 | 0) > (i34 | 0) | (i33 | 0) == (i34 | 0) & i39 >>> 0 > 0 >>> 0) {
34059 HEAP32[i5 >> 2] = 1;
34060 HEAP32[i25 >> 2] = i39;
34061 HEAP32[i25 + 4 >> 2] = i33;
34062 i40 = 1;
34063 } else {
34064 i37 = 0;
34065 if ((i33 | 0) < (i37 | 0) | (i33 | 0) == (i37 | 0) & i39 >>> 0 < 0 >>> 0) {
34066 HEAP32[i5 >> 2] = -1;
34067 i37 = _i64Subtract(0, 0, i39, i33) | 0;
34068 HEAP32[i25 >> 2] = i37;
34069 HEAP32[i25 + 4 >> 2] = tempRet0;
34070 i40 = -1;
34071 break;
34072 } else {
34073 HEAP32[i5 >> 2] = 0;
34074 HEAP32[i25 >> 2] = 0;
34075 HEAP32[i25 + 4 >> 2] = 0;
34076 i40 = 0;
34077 break;
34078 }
34079 }
34080 } while (0);
34081 i33 = 0;
34082 if ((i35 | 0) > (i33 | 0) | (i35 | 0) == (i33 | 0) & i32 >>> 0 > 0 >>> 0) {
34083 HEAP32[i26 >> 2] = i32;
34084 HEAP32[i26 + 4 >> 2] = i35;
34085 } else {
34086 i33 = 0;
34087 if ((i35 | 0) < (i33 | 0) | (i35 | 0) == (i33 | 0) & i32 >>> 0 < 0 >>> 0) {
34088 i33 = -i40 | 0;
34089 HEAP32[i5 >> 2] = i33;
34090 i39 = _i64Subtract(0, 0, i32, i35) | 0;
34091 i41 = i33;
34092 i42 = 0;
34093 i43 = tempRet0;
34094 i44 = i39;
34095 } else {
34096 i41 = i40;
34097 i42 = 1;
34098 i43 = 0;
34099 i44 = 0;
34100 }
34101 HEAP32[i26 >> 2] = i44;
34102 HEAP32[i26 + 4 >> 2] = i43;
34103 if ((i41 | 0) == 0 & i42) {
34104 i45 = i29;
34105 break;
34106 }
34107 }
34108 if ((i29 | 0) == 0) {
34109 HEAP32[i27 >> 2] = HEAP32[i28 >> 2];
34110 HEAP32[i27 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
34111 HEAP32[i27 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
34112 HEAP32[i27 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
34113 HEAP32[i27 + 16 >> 2] = HEAP32[i28 + 16 >> 2];
34114 i45 = i30;
34115 break;
34116 }
34117 i39 = __ZNK20btConvexHullInternal10Rational647compareERKS0_(i10, i7) | 0;
34118 if ((i39 | 0) < 0) {
34119 HEAP32[i27 >> 2] = HEAP32[i28 >> 2];
34120 HEAP32[i27 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
34121 HEAP32[i27 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
34122 HEAP32[i27 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
34123 HEAP32[i27 + 16 >> 2] = HEAP32[i28 + 16 >> 2];
34124 i45 = i30;
34125 break;
34126 }
34127 if ((i39 | 0) != 0) {
34128 i45 = i29;
34129 break;
34130 }
34131 i45 = (__ZN20btConvexHullInternal14getOrientationEPKNS_4EdgeES2_RKNS_7Point32ES5_(i29, i30, i4, i9) | 0) == 2 ^ i2 ? i29 : i30;
34132 } else {
34133 i45 = i29;
34134 }
34135 } while (0);
34136 i39 = HEAP32[i30 >> 2] | 0;
34137 if ((i39 | 0) == (HEAP32[i11 >> 2] | 0)) {
34138 i13 = i45;
34139 break;
34140 } else {
34141 i29 = i45;
34142 i30 = i39;
34143 }
34144 }
34145 STACKTOP = i8;
34146 return i13 | 0;
34147 }
34148 function ___udivmoddi4(i1, i2, i3, i4, i5) {
34149 i1 = i1 | 0;
34150 i2 = i2 | 0;
34151 i3 = i3 | 0;
34152 i4 = i4 | 0;
34153 i5 = i5 | 0;
34154 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0;
34155 i6 = i1;
34156 i7 = i2;
34157 i8 = i7;
34158 i9 = i3;
34159 i10 = i4;
34160 i11 = i10;
34161 if ((i8 | 0) == 0) {
34162 i12 = (i5 | 0) != 0;
34163 if ((i11 | 0) == 0) {
34164 if (i12) {
34165 HEAP32[i5 >> 2] = (i6 >>> 0) % (i9 >>> 0);
34166 HEAP32[i5 + 4 >> 2] = 0;
34167 }
34168 i13 = 0;
34169 i14 = (i6 >>> 0) / (i9 >>> 0) >>> 0;
34170 return (tempRet0 = i13, i14) | 0;
34171 } else {
34172 if (!i12) {
34173 i13 = 0;
34174 i14 = 0;
34175 return (tempRet0 = i13, i14) | 0;
34176 }
34177 HEAP32[i5 >> 2] = i1 | 0;
34178 HEAP32[i5 + 4 >> 2] = i2 & 0;
34179 i13 = 0;
34180 i14 = 0;
34181 return (tempRet0 = i13, i14) | 0;
34182 }
34183 }
34184 i12 = (i11 | 0) == 0;
34185 do {
34186 if ((i9 | 0) == 0) {
34187 if (i12) {
34188 if ((i5 | 0) != 0) {
34189 HEAP32[i5 >> 2] = (i8 >>> 0) % (i9 >>> 0);
34190 HEAP32[i5 + 4 >> 2] = 0;
34191 }
34192 i13 = 0;
34193 i14 = (i8 >>> 0) / (i9 >>> 0) >>> 0;
34194 return (tempRet0 = i13, i14) | 0;
34195 }
34196 if ((i6 | 0) == 0) {
34197 if ((i5 | 0) != 0) {
34198 HEAP32[i5 >> 2] = 0;
34199 HEAP32[i5 + 4 >> 2] = (i8 >>> 0) % (i11 >>> 0);
34200 }
34201 i13 = 0;
34202 i14 = (i8 >>> 0) / (i11 >>> 0) >>> 0;
34203 return (tempRet0 = i13, i14) | 0;
34204 }
34205 i15 = i11 - 1 | 0;
34206 if ((i15 & i11 | 0) == 0) {
34207 if ((i5 | 0) != 0) {
34208 HEAP32[i5 >> 2] = i1 | 0;
34209 HEAP32[i5 + 4 >> 2] = i15 & i8 | i2 & 0;
34210 }
34211 i13 = 0;
34212 i14 = i8 >>> ((_llvm_cttz_i32(i11 | 0) | 0) >>> 0);
34213 return (tempRet0 = i13, i14) | 0;
34214 }
34215 i15 = (_llvm_ctlz_i32(i11 | 0) | 0) - (_llvm_ctlz_i32(i8 | 0) | 0) | 0;
34216 if (i15 >>> 0 <= 30) {
34217 i16 = i15 + 1 | 0;
34218 i17 = 31 - i15 | 0;
34219 i18 = i16;
34220 i19 = i8 << i17 | i6 >>> (i16 >>> 0);
34221 i20 = i8 >>> (i16 >>> 0);
34222 i21 = 0;
34223 i22 = i6 << i17;
34224 break;
34225 }
34226 if ((i5 | 0) == 0) {
34227 i13 = 0;
34228 i14 = 0;
34229 return (tempRet0 = i13, i14) | 0;
34230 }
34231 HEAP32[i5 >> 2] = i1 | 0;
34232 HEAP32[i5 + 4 >> 2] = i7 | i2 & 0;
34233 i13 = 0;
34234 i14 = 0;
34235 return (tempRet0 = i13, i14) | 0;
34236 } else {
34237 if (!i12) {
34238 i17 = (_llvm_ctlz_i32(i11 | 0) | 0) - (_llvm_ctlz_i32(i8 | 0) | 0) | 0;
34239 if (i17 >>> 0 <= 31) {
34240 i16 = i17 + 1 | 0;
34241 i15 = 31 - i17 | 0;
34242 i23 = i17 - 31 >> 31;
34243 i18 = i16;
34244 i19 = i6 >>> (i16 >>> 0) & i23 | i8 << i15;
34245 i20 = i8 >>> (i16 >>> 0) & i23;
34246 i21 = 0;
34247 i22 = i6 << i15;
34248 break;
34249 }
34250 if ((i5 | 0) == 0) {
34251 i13 = 0;
34252 i14 = 0;
34253 return (tempRet0 = i13, i14) | 0;
34254 }
34255 HEAP32[i5 >> 2] = i1 | 0;
34256 HEAP32[i5 + 4 >> 2] = i7 | i2 & 0;
34257 i13 = 0;
34258 i14 = 0;
34259 return (tempRet0 = i13, i14) | 0;
34260 }
34261 i15 = i9 - 1 | 0;
34262 if ((i15 & i9 | 0) != 0) {
34263 i23 = (_llvm_ctlz_i32(i9 | 0) | 0) + 33 - (_llvm_ctlz_i32(i8 | 0) | 0) | 0;
34264 i16 = 64 - i23 | 0;
34265 i17 = 32 - i23 | 0;
34266 i24 = i17 >> 31;
34267 i25 = i23 - 32 | 0;
34268 i26 = i25 >> 31;
34269 i18 = i23;
34270 i19 = i17 - 1 >> 31 & i8 >>> (i25 >>> 0) | (i8 << i17 | i6 >>> (i23 >>> 0)) & i26;
34271 i20 = i26 & i8 >>> (i23 >>> 0);
34272 i21 = i6 << i16 & i24;
34273 i22 = (i8 << i16 | i6 >>> (i25 >>> 0)) & i24 | i6 << i17 & i23 - 33 >> 31;
34274 break;
34275 }
34276 if ((i5 | 0) != 0) {
34277 HEAP32[i5 >> 2] = i15 & i6;
34278 HEAP32[i5 + 4 >> 2] = 0;
34279 }
34280 if ((i9 | 0) == 1) {
34281 i13 = i7 | i2 & 0;
34282 i14 = i1 | 0 | 0;
34283 return (tempRet0 = i13, i14) | 0;
34284 } else {
34285 i15 = _llvm_cttz_i32(i9 | 0) | 0;
34286 i13 = i8 >>> (i15 >>> 0) | 0;
34287 i14 = i8 << 32 - i15 | i6 >>> (i15 >>> 0) | 0;
34288 return (tempRet0 = i13, i14) | 0;
34289 }
34290 }
34291 } while (0);
34292 if ((i18 | 0) == 0) {
34293 i27 = i22;
34294 i28 = i21;
34295 i29 = i20;
34296 i30 = i19;
34297 i31 = 0;
34298 i32 = 0;
34299 } else {
34300 i6 = i3 | 0 | 0;
34301 i3 = i10 | i4 & 0;
34302 i4 = _i64Add(i6, i3, -1, -1) | 0;
34303 i10 = tempRet0;
34304 i8 = i22;
34305 i22 = i21;
34306 i21 = i20;
34307 i20 = i19;
34308 i19 = i18;
34309 i18 = 0;
34310 while (1) {
34311 i33 = i22 >>> 31 | i8 << 1;
34312 i34 = i18 | i22 << 1;
34313 i9 = i20 << 1 | i8 >>> 31 | 0;
34314 i1 = i20 >>> 31 | i21 << 1 | 0;
34315 _i64Subtract(i4, i10, i9, i1) | 0;
34316 i2 = tempRet0;
34317 i7 = i2 >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1;
34318 i35 = i7 & 1;
34319 i36 = _i64Subtract(i9, i1, i7 & i6, (((i2 | 0) < 0 ? -1 : 0) >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1) & i3) | 0;
34320 i37 = tempRet0;
34321 i2 = i19 - 1 | 0;
34322 if ((i2 | 0) == 0) {
34323 break;
34324 } else {
34325 i8 = i33;
34326 i22 = i34;
34327 i21 = i37;
34328 i20 = i36;
34329 i19 = i2;
34330 i18 = i35;
34331 }
34332 }
34333 i27 = i33;
34334 i28 = i34;
34335 i29 = i37;
34336 i30 = i36;
34337 i31 = 0;
34338 i32 = i35;
34339 }
34340 i35 = i28;
34341 i28 = 0;
34342 if ((i5 | 0) != 0) {
34343 HEAP32[i5 >> 2] = i30;
34344 HEAP32[i5 + 4 >> 2] = i29;
34345 }
34346 i13 = (i35 | 0) >>> 31 | (i27 | i28) << 1 | (i28 << 1 | i35 >>> 31) & 0 | i31;
34347 i14 = (i35 << 1 | 0 >>> 31) & -2 | i32;
34348 return (tempRet0 = i13, i14) | 0;
34349 }
34350 function __ZN11btRigidBody18proceedToTransformERK11btTransform(i1, i2) {
34351 i1 = i1 | 0;
34352 i2 = i2 | 0;
34353 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0;
34354 i3 = i1 + 68 | 0;
34355 if ((HEAP32[i1 + 204 >> 2] & 3 | 0) == 0) {
34356 i4 = i3;
34357 i5 = i2;
34358 HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
34359 HEAP32[i4 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
34360 HEAP32[i4 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
34361 HEAP32[i4 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
34362 i4 = i1 + 84 | 0;
34363 i6 = i2 + 16 | 0;
34364 HEAP32[i4 >> 2] = HEAP32[i6 >> 2];
34365 HEAP32[i4 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
34366 HEAP32[i4 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
34367 HEAP32[i4 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
34368 i4 = i1 + 100 | 0;
34369 i7 = i2 + 32 | 0;
34370 HEAP32[i4 >> 2] = HEAP32[i7 >> 2];
34371 HEAP32[i4 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
34372 HEAP32[i4 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
34373 HEAP32[i4 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
34374 i4 = i1 + 116 | 0;
34375 i8 = i2 + 48 | 0;
34376 HEAP32[i4 >> 2] = HEAP32[i8 >> 2];
34377 HEAP32[i4 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
34378 HEAP32[i4 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
34379 HEAP32[i4 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
34380 i9 = i1 + 4 | 0;
34381 i10 = i5;
34382 i11 = i1 + 20 | 0;
34383 i12 = i6;
34384 i13 = i1 + 36 | 0;
34385 i14 = i7;
34386 i15 = i1 + 52 | 0;
34387 i16 = i8;
34388 } else {
34389 i8 = i3;
34390 i3 = i1 + 4 | 0;
34391 HEAP32[i8 >> 2] = HEAP32[i3 >> 2];
34392 HEAP32[i8 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
34393 HEAP32[i8 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
34394 HEAP32[i8 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
34395 i8 = i1 + 84 | 0;
34396 i7 = i1 + 20 | 0;
34397 HEAP32[i8 >> 2] = HEAP32[i7 >> 2];
34398 HEAP32[i8 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
34399 HEAP32[i8 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
34400 HEAP32[i8 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
34401 i8 = i1 + 100 | 0;
34402 i6 = i1 + 36 | 0;
34403 HEAP32[i8 >> 2] = HEAP32[i6 >> 2];
34404 HEAP32[i8 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
34405 HEAP32[i8 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
34406 HEAP32[i8 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
34407 i8 = i1 + 116 | 0;
34408 i5 = i1 + 52 | 0;
34409 HEAP32[i8 >> 2] = HEAP32[i5 >> 2];
34410 HEAP32[i8 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
34411 HEAP32[i8 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
34412 HEAP32[i8 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
34413 i9 = i3;
34414 i10 = i2;
34415 i11 = i7;
34416 i12 = i2 + 16 | 0;
34417 i13 = i6;
34418 i14 = i2 + 32 | 0;
34419 i15 = i5;
34420 i16 = i2 + 48 | 0;
34421 }
34422 i2 = i1 + 132 | 0;
34423 i5 = i1 + 304 | 0;
34424 HEAP32[i2 >> 2] = HEAP32[i5 >> 2];
34425 HEAP32[i2 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
34426 HEAP32[i2 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
34427 HEAP32[i2 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
34428 i5 = i1 + 148 | 0;
34429 i2 = i1 + 320 | 0;
34430 HEAP32[i5 >> 2] = HEAP32[i2 >> 2];
34431 HEAP32[i5 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
34432 HEAP32[i5 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
34433 HEAP32[i5 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
34434 HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
34435 HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
34436 HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
34437 HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
34438 HEAP32[i11 >> 2] = HEAP32[i12 >> 2];
34439 HEAP32[i11 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
34440 HEAP32[i11 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
34441 HEAP32[i11 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
34442 HEAP32[i13 >> 2] = HEAP32[i14 >> 2];
34443 HEAP32[i13 + 4 >> 2] = HEAP32[i14 + 4 >> 2];
34444 HEAP32[i13 + 8 >> 2] = HEAP32[i14 + 8 >> 2];
34445 HEAP32[i13 + 12 >> 2] = HEAP32[i14 + 12 >> 2];
34446 HEAP32[i15 >> 2] = HEAP32[i16 >> 2];
34447 HEAP32[i15 + 4 >> 2] = HEAP32[i16 + 4 >> 2];
34448 HEAP32[i15 + 8 >> 2] = HEAP32[i16 + 8 >> 2];
34449 HEAP32[i15 + 12 >> 2] = HEAP32[i16 + 12 >> 2];
34450 d17 = +HEAPF32[i1 + 4 >> 2];
34451 d18 = +HEAPF32[i1 + 388 >> 2];
34452 d19 = d17 * d18;
34453 d20 = +HEAPF32[i1 + 8 >> 2];
34454 d21 = +HEAPF32[i1 + 392 >> 2];
34455 d22 = d20 * d21;
34456 d23 = +HEAPF32[i1 + 12 >> 2];
34457 d24 = +HEAPF32[i1 + 396 >> 2];
34458 d25 = d23 * d24;
34459 d26 = +HEAPF32[i1 + 20 >> 2];
34460 d27 = d18 * d26;
34461 d28 = +HEAPF32[i1 + 24 >> 2];
34462 d29 = d21 * d28;
34463 d30 = +HEAPF32[i1 + 28 >> 2];
34464 d31 = d24 * d30;
34465 d32 = +HEAPF32[i1 + 36 >> 2];
34466 d33 = d18 * d32;
34467 d18 = +HEAPF32[i1 + 40 >> 2];
34468 d34 = d21 * d18;
34469 d21 = +HEAPF32[i1 + 44 >> 2];
34470 d35 = d24 * d21;
34471 HEAPF32[i1 + 256 >> 2] = d17 * d19 + d20 * d22 + d23 * d25;
34472 HEAPF32[i1 + 260 >> 2] = d19 * d26 + d22 * d28 + d25 * d30;
34473 HEAPF32[i1 + 264 >> 2] = d19 * d32 + d22 * d18 + d25 * d21;
34474 HEAPF32[i1 + 268 >> 2] = 0.0;
34475 HEAPF32[i1 + 272 >> 2] = d17 * d27 + d20 * d29 + d23 * d31;
34476 HEAPF32[i1 + 276 >> 2] = d26 * d27 + d28 * d29 + d30 * d31;
34477 HEAPF32[i1 + 280 >> 2] = d27 * d32 + d29 * d18 + d31 * d21;
34478 HEAPF32[i1 + 284 >> 2] = 0.0;
34479 HEAPF32[i1 + 288 >> 2] = d17 * d33 + d20 * d34 + d23 * d35;
34480 HEAPF32[i1 + 292 >> 2] = d26 * d33 + d28 * d34 + d30 * d35;
34481 HEAPF32[i1 + 296 >> 2] = d32 * d33 + d18 * d34 + d21 * d35;
34482 HEAPF32[i1 + 300 >> 2] = 0.0;
34483 return;
34484 }
34485 function __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeE6insertERKS0_RKS1_(i1, i2, i3) {
34486 i1 = i1 | 0;
34487 i2 = i2 | 0;
34488 i3 = i3 | 0;
34489 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0;
34490 i4 = i2 | 0;
34491 i5 = HEAP16[i4 >> 1] | 0;
34492 i6 = i2 + 2 | 0;
34493 i7 = HEAP16[i6 >> 1] | 0;
34494 i8 = i1 + 48 | 0;
34495 i9 = HEAP32[i8 >> 2] | 0;
34496 i10 = ((i7 & 65535) << 16) + (i5 << 16 >> 16) & i9 - 1;
34497 L2113 : do {
34498 if (i10 >>> 0 < (HEAP32[i1 + 4 >> 2] | 0) >>> 0) {
34499 i11 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i10 << 2) >> 2] | 0;
34500 if ((i11 | 0) == -1) {
34501 break;
34502 }
34503 i12 = HEAP32[i1 + 72 >> 2] | 0;
34504 i13 = i1 + 32 | 0;
34505 i14 = i11;
34506 while (1) {
34507 if (i5 << 16 >> 16 == (HEAP16[i12 + (i14 << 2) >> 1] | 0)) {
34508 if (i7 << 16 >> 16 == (HEAP16[i12 + (i14 << 2) + 2 >> 1] | 0)) {
34509 break;
34510 }
34511 }
34512 i11 = HEAP32[(HEAP32[i13 >> 2] | 0) + (i14 << 2) >> 2] | 0;
34513 if ((i11 | 0) == -1) {
34514 break L2113;
34515 } else {
34516 i14 = i11;
34517 }
34518 }
34519 if ((i14 | 0) == -1) {
34520 break;
34521 }
34522 i13 = i3;
34523 i12 = (HEAP32[i1 + 52 >> 2] | 0) + (i14 << 2) | 0;
34524 tempBigInt = HEAPU16[i13 >> 1] | HEAPU16[i13 + 2 >> 1] << 16;
34525 HEAP16[i12 >> 1] = tempBigInt & 65535;
34526 HEAP16[i12 + 2 >> 1] = tempBigInt >> 16;
34527 return;
34528 }
34529 } while (0);
34530 i7 = i1 + 44 | 0;
34531 i5 = HEAP32[i7 >> 2] | 0;
34532 do {
34533 if ((i5 | 0) == (i9 | 0)) {
34534 i12 = (i9 | 0) == 0 ? 1 : i9 << 1;
34535 if ((i9 | 0) >= (i12 | 0)) {
34536 i15 = i9;
34537 break;
34538 }
34539 if ((i12 | 0) == 0) {
34540 i16 = 0;
34541 i17 = i9;
34542 } else {
34543 i13 = __Z22btAlignedAllocInternalji(i12 << 2, 16) | 0;
34544 i16 = i13;
34545 i17 = HEAP32[i7 >> 2] | 0;
34546 }
34547 i13 = i1 + 52 | 0;
34548 if ((i17 | 0) > 0) {
34549 i11 = 0;
34550 do {
34551 i18 = i16 + (i11 << 2) | 0;
34552 if ((i18 | 0) != 0) {
34553 i19 = (HEAP32[i13 >> 2] | 0) + (i11 << 2) | 0;
34554 i20 = i18;
34555 tempBigInt = HEAPU16[i19 >> 1] | HEAPU16[i19 + 2 >> 1] << 16;
34556 HEAP16[i20 >> 1] = tempBigInt & 65535;
34557 HEAP16[i20 + 2 >> 1] = tempBigInt >> 16;
34558 }
34559 i11 = i11 + 1 | 0;
34560 } while ((i11 | 0) < (i17 | 0));
34561 }
34562 i11 = HEAP32[i13 >> 2] | 0;
34563 i14 = i1 + 56 | 0;
34564 if ((i11 | 0) != 0) {
34565 if ((HEAP8[i14] | 0) != 0) {
34566 __Z21btAlignedFreeInternalPv(i11);
34567 }
34568 HEAP32[i13 >> 2] = 0;
34569 }
34570 HEAP8[i14] = 1;
34571 HEAP32[i13 >> 2] = i16;
34572 HEAP32[i8 >> 2] = i12;
34573 i15 = HEAP32[i7 >> 2] | 0;
34574 } else {
34575 i15 = i5;
34576 }
34577 } while (0);
34578 i16 = (HEAP32[i1 + 52 >> 2] | 0) + (i15 << 2) | 0;
34579 if ((i16 | 0) == 0) {
34580 i21 = i15;
34581 } else {
34582 i15 = i3;
34583 i3 = i16;
34584 tempBigInt = HEAPU16[i15 >> 1] | HEAPU16[i15 + 2 >> 1] << 16;
34585 HEAP16[i3 >> 1] = tempBigInt & 65535;
34586 HEAP16[i3 + 2 >> 1] = tempBigInt >> 16;
34587 i21 = HEAP32[i7 >> 2] | 0;
34588 }
34589 HEAP32[i7 >> 2] = i21 + 1;
34590 i21 = i1 + 64 | 0;
34591 i7 = HEAP32[i21 >> 2] | 0;
34592 i3 = i1 + 68 | 0;
34593 do {
34594 if ((i7 | 0) == (HEAP32[i3 >> 2] | 0)) {
34595 i15 = (i7 | 0) == 0 ? 1 : i7 << 1;
34596 if ((i7 | 0) >= (i15 | 0)) {
34597 i22 = i7;
34598 break;
34599 }
34600 if ((i15 | 0) == 0) {
34601 i23 = 0;
34602 i24 = i7;
34603 } else {
34604 i16 = __Z22btAlignedAllocInternalji(i15 << 2, 16) | 0;
34605 i23 = i16;
34606 i24 = HEAP32[i21 >> 2] | 0;
34607 }
34608 i16 = i1 + 72 | 0;
34609 if ((i24 | 0) > 0) {
34610 i17 = 0;
34611 do {
34612 i14 = i23 + (i17 << 2) | 0;
34613 if ((i14 | 0) != 0) {
34614 i11 = (HEAP32[i16 >> 2] | 0) + (i17 << 2) | 0;
34615 i20 = i14;
34616 tempBigInt = HEAPU16[i11 >> 1] | HEAPU16[i11 + 2 >> 1] << 16;
34617 HEAP16[i20 >> 1] = tempBigInt & 65535;
34618 HEAP16[i20 + 2 >> 1] = tempBigInt >> 16;
34619 }
34620 i17 = i17 + 1 | 0;
34621 } while ((i17 | 0) < (i24 | 0));
34622 }
34623 i17 = HEAP32[i16 >> 2] | 0;
34624 i12 = i1 + 76 | 0;
34625 if ((i17 | 0) != 0) {
34626 if ((HEAP8[i12] | 0) != 0) {
34627 __Z21btAlignedFreeInternalPv(i17);
34628 }
34629 HEAP32[i16 >> 2] = 0;
34630 }
34631 HEAP8[i12] = 1;
34632 HEAP32[i16 >> 2] = i23;
34633 HEAP32[i3 >> 2] = i15;
34634 i22 = HEAP32[i21 >> 2] | 0;
34635 } else {
34636 i22 = i7;
34637 }
34638 } while (0);
34639 i7 = (HEAP32[i1 + 72 >> 2] | 0) + (i22 << 2) | 0;
34640 if ((i7 | 0) == 0) {
34641 i25 = i22;
34642 } else {
34643 i22 = i2;
34644 i2 = i7;
34645 tempBigInt = HEAPU16[i22 >> 1] | HEAPU16[i22 + 2 >> 1] << 16;
34646 HEAP16[i2 >> 1] = tempBigInt & 65535;
34647 HEAP16[i2 + 2 >> 1] = tempBigInt >> 16;
34648 i25 = HEAP32[i21 >> 2] | 0;
34649 }
34650 HEAP32[i21 >> 2] = i25 + 1;
34651 if ((i9 | 0) < (HEAP32[i8 >> 2] | 0)) {
34652 __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeE10growTablesERKS0_(i1, 0);
34653 i26 = (HEAPU16[i6 >> 1] << 16) + (HEAP16[i4 >> 1] | 0) & (HEAP32[i8 >> 2] | 0) - 1;
34654 } else {
34655 i26 = i10;
34656 }
34657 i10 = (HEAP32[i1 + 12 >> 2] | 0) + (i26 << 2) | 0;
34658 HEAP32[(HEAP32[i1 + 32 >> 2] | 0) + (i5 << 2) >> 2] = HEAP32[i10 >> 2];
34659 HEAP32[i10 >> 2] = i5;
34660 return;
34661 }
34662 function __ZN24btPerturbedContactResult15addContactPointERK9btVector3S2_f(i1, i2, i3, d4) {
34663 i1 = i1 | 0;
34664 i2 = i2 | 0;
34665 i3 = i3 | 0;
34666 d4 = +d4;
34667 var i5 = 0, i6 = 0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0;
34668 i5 = STACKTOP;
34669 STACKTOP = STACKTOP + 16 | 0;
34670 i6 = i5 | 0;
34671 d7 = +HEAPF32[i2 >> 2];
34672 d8 = +HEAPF32[i2 + 4 >> 2];
34673 d9 = +HEAPF32[i2 + 8 >> 2];
34674 d10 = +HEAPF32[i3 >> 2];
34675 d11 = d7 * d4 + d10;
34676 d12 = +HEAPF32[i3 + 4 >> 2];
34677 d13 = d8 * d4 + d12;
34678 d14 = +HEAPF32[i3 + 8 >> 2];
34679 d15 = d9 * d4 + d14;
34680 i3 = i1 + 292 | 0;
34681 if ((HEAP8[i1 + 356 | 0] | 0) == 0) {
34682 d4 = +HEAPF32[i1 + 228 >> 2];
34683 d16 = +HEAPF32[i1 + 244 >> 2];
34684 d17 = +HEAPF32[i1 + 260 >> 2];
34685 d18 = +HEAPF32[i1 + 232 >> 2];
34686 d19 = +HEAPF32[i1 + 248 >> 2];
34687 d20 = +HEAPF32[i1 + 264 >> 2];
34688 d21 = +HEAPF32[i1 + 236 >> 2];
34689 d22 = +HEAPF32[i1 + 252 >> 2];
34690 d23 = +HEAPF32[i1 + 268 >> 2];
34691 d24 = -0.0 - +HEAPF32[i1 + 276 >> 2];
34692 d25 = -0.0 - +HEAPF32[i1 + 280 >> 2];
34693 d26 = -0.0 - +HEAPF32[i1 + 284 >> 2];
34694 d27 = d4 * d24 + d16 * d25 + d17 * d26;
34695 d28 = d18 * d24 + d19 * d25 + d20 * d26;
34696 d29 = d21 * d24 + d22 * d25 + d23 * d26;
34697 d26 = +HEAPF32[i3 >> 2];
34698 d25 = +HEAPF32[i1 + 296 >> 2];
34699 d24 = +HEAPF32[i1 + 300 >> 2];
34700 d30 = +HEAPF32[i1 + 308 >> 2];
34701 d31 = +HEAPF32[i1 + 312 >> 2];
34702 d32 = +HEAPF32[i1 + 316 >> 2];
34703 d33 = +HEAPF32[i1 + 324 >> 2];
34704 d34 = +HEAPF32[i1 + 328 >> 2];
34705 d35 = +HEAPF32[i1 + 332 >> 2];
34706 d36 = d14 * (d17 * d26 + d20 * d25 + d23 * d24) + (d10 * (d4 * d26 + d18 * d25 + d21 * d24) + d12 * (d16 * d26 + d19 * d25 + d22 * d24)) + (d24 * d29 + (d26 * d27 + d25 * d28) + +HEAPF32[i1 + 340 >> 2]);
34707 d25 = d14 * (d17 * d30 + d20 * d31 + d23 * d32) + (d10 * (d4 * d30 + d18 * d31 + d21 * d32) + d12 * (d16 * d30 + d19 * d31 + d22 * d32)) + (d27 * d30 + d28 * d31 + d29 * d32 + +HEAPF32[i1 + 344 >> 2]);
34708 d32 = d27 * d33 + d28 * d34 + d29 * d35 + +HEAPF32[i1 + 348 >> 2] + (d14 * (d17 * d33 + d20 * d34 + d23 * d35) + (d10 * (d4 * d33 + d18 * d34 + d21 * d35) + d12 * (d16 * d33 + d19 * d34 + d22 * d35)));
34709 HEAPF32[i6 >> 2] = d36;
34710 HEAPF32[i6 + 4 >> 2] = d25;
34711 HEAPF32[i6 + 8 >> 2] = d32;
34712 HEAPF32[i6 + 12 >> 2] = 0.0;
34713 d37 = d7 * (d11 - d36) + d8 * (d13 - d25) + d9 * (d15 - d32);
34714 i38 = i1 + 160 | 0;
34715 i39 = HEAP32[i38 >> 2] | 0;
34716 i40 = i39;
34717 i41 = HEAP32[i40 >> 2] | 0;
34718 i42 = i41 + 16 | 0;
34719 i43 = HEAP32[i42 >> 2] | 0;
34720 FUNCTION_TABLE_viiif[i43 & 15](i39, i2, i6, d37);
34721 STACKTOP = i5;
34722 return;
34723 } else {
34724 d32 = +HEAPF32[i1 + 164 >> 2];
34725 d25 = +HEAPF32[i1 + 180 >> 2];
34726 d36 = +HEAPF32[i1 + 196 >> 2];
34727 d35 = +HEAPF32[i1 + 168 >> 2];
34728 d22 = +HEAPF32[i1 + 184 >> 2];
34729 d34 = +HEAPF32[i1 + 200 >> 2];
34730 d19 = +HEAPF32[i1 + 172 >> 2];
34731 d33 = +HEAPF32[i1 + 188 >> 2];
34732 d16 = +HEAPF32[i1 + 204 >> 2];
34733 d21 = -0.0 - +HEAPF32[i1 + 212 >> 2];
34734 d18 = -0.0 - +HEAPF32[i1 + 216 >> 2];
34735 d4 = -0.0 - +HEAPF32[i1 + 220 >> 2];
34736 d23 = d32 * d21 + d25 * d18 + d36 * d4;
34737 d20 = d35 * d21 + d22 * d18 + d34 * d4;
34738 d17 = d19 * d21 + d33 * d18 + d16 * d4;
34739 d4 = +HEAPF32[i3 >> 2];
34740 d18 = +HEAPF32[i1 + 296 >> 2];
34741 d21 = +HEAPF32[i1 + 300 >> 2];
34742 d29 = +HEAPF32[i1 + 308 >> 2];
34743 d28 = +HEAPF32[i1 + 312 >> 2];
34744 d27 = +HEAPF32[i1 + 316 >> 2];
34745 d31 = +HEAPF32[i1 + 324 >> 2];
34746 d30 = +HEAPF32[i1 + 328 >> 2];
34747 d26 = +HEAPF32[i1 + 332 >> 2];
34748 d24 = d15 * (d36 * d4 + d34 * d18 + d16 * d21) + (d11 * (d32 * d4 + d35 * d18 + d19 * d21) + d13 * (d25 * d4 + d22 * d18 + d33 * d21)) + (d21 * d17 + (d4 * d23 + d18 * d20) + +HEAPF32[i1 + 340 >> 2]);
34749 d18 = d15 * (d36 * d29 + d34 * d28 + d16 * d27) + (d11 * (d32 * d29 + d35 * d28 + d19 * d27) + d13 * (d25 * d29 + d22 * d28 + d33 * d27)) + (d23 * d29 + d20 * d28 + d17 * d27 + +HEAPF32[i1 + 344 >> 2]);
34750 d27 = d23 * d31 + d20 * d30 + d17 * d26 + +HEAPF32[i1 + 348 >> 2] + (d15 * (d36 * d31 + d34 * d30 + d16 * d26) + (d11 * (d32 * d31 + d35 * d30 + d19 * d26) + d13 * (d25 * d31 + d22 * d30 + d33 * d26)));
34751 d26 = d7 * (d24 - d10) + d8 * (d18 - d12) + d9 * (d27 - d14);
34752 HEAPF32[i6 >> 2] = d24 + d7 * d26;
34753 HEAPF32[i6 + 4 >> 2] = d18 + d8 * d26;
34754 HEAPF32[i6 + 8 >> 2] = d27 + d9 * d26;
34755 HEAPF32[i6 + 12 >> 2] = 0.0;
34756 d37 = d26;
34757 i38 = i1 + 160 | 0;
34758 i39 = HEAP32[i38 >> 2] | 0;
34759 i40 = i39;
34760 i41 = HEAP32[i40 >> 2] | 0;
34761 i42 = i41 + 16 | 0;
34762 i43 = HEAP32[i42 >> 2] | 0;
34763 FUNCTION_TABLE_viiif[i43 & 15](i39, i2, i6, d37);
34764 STACKTOP = i5;
34765 return;
34766 }
34767 }
34768 function __ZN16btDbvtBroadphase22performDeferredRemovalEP12btDispatcher(i1, i2) {
34769 i1 = i1 | 0;
34770 i2 = i2 | 0;
34771 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0;
34772 i3 = STACKTOP;
34773 STACKTOP = STACKTOP + 16 | 0;
34774 i4 = i3 | 0;
34775 i5 = i1 + 96 | 0;
34776 i1 = HEAP32[i5 >> 2] | 0;
34777 if (!(FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 56 >> 2] & 127](i1) | 0)) {
34778 STACKTOP = i3;
34779 return;
34780 }
34781 i1 = HEAP32[i5 >> 2] | 0;
34782 i6 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 28 >> 2] & 127](i1) | 0;
34783 i1 = i6 + 4 | 0;
34784 i7 = HEAP32[i1 >> 2] | 0;
34785 if ((i7 | 0) > 1) {
34786 __ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i6, i3 + 8 | 0, 0, i7 - 1 | 0);
34787 i8 = HEAP32[i1 >> 2] | 0;
34788 } else {
34789 i8 = i7;
34790 }
34791 do {
34792 if ((i8 | 0) > 0) {
34793 i7 = i6 + 12 | 0;
34794 i9 = 0;
34795 i10 = 0;
34796 i11 = 0;
34797 i12 = 0;
34798 i13 = i8;
34799 while (1) {
34800 i14 = HEAP32[i7 >> 2] | 0;
34801 i15 = i14 + (i11 << 4) | 0;
34802 i16 = i15 | 0;
34803 i17 = HEAP32[i16 >> 2] | 0;
34804 i18 = i14 + (i11 << 4) + 4 | 0;
34805 i14 = HEAP32[i18 >> 2] | 0;
34806 if ((i17 | 0) == (i10 | 0)) {
34807 if ((i14 | 0) == (i9 | 0)) {
34808 i19 = i10;
34809 i20 = i9;
34810 i21 = 1012;
34811 } else {
34812 i22 = i10;
34813 i21 = 1006;
34814 }
34815 } else {
34816 i22 = i17;
34817 i21 = 1006;
34818 }
34819 do {
34820 if ((i21 | 0) == 1006) {
34821 i21 = 0;
34822 i17 = HEAP32[i22 + 48 >> 2] | 0;
34823 i23 = HEAP32[i14 + 48 >> 2] | 0;
34824 if (+HEAPF32[i17 >> 2] > +HEAPF32[i23 + 16 >> 2]) {
34825 i19 = i22;
34826 i20 = i14;
34827 i21 = 1012;
34828 break;
34829 }
34830 if (+HEAPF32[i17 + 16 >> 2] < +HEAPF32[i23 >> 2]) {
34831 i19 = i22;
34832 i20 = i14;
34833 i21 = 1012;
34834 break;
34835 }
34836 if (+HEAPF32[i17 + 4 >> 2] > +HEAPF32[i23 + 20 >> 2]) {
34837 i19 = i22;
34838 i20 = i14;
34839 i21 = 1012;
34840 break;
34841 }
34842 if (+HEAPF32[i17 + 20 >> 2] < +HEAPF32[i23 + 4 >> 2]) {
34843 i19 = i22;
34844 i20 = i14;
34845 i21 = 1012;
34846 break;
34847 }
34848 if (+HEAPF32[i17 + 8 >> 2] > +HEAPF32[i23 + 24 >> 2]) {
34849 i19 = i22;
34850 i20 = i14;
34851 i21 = 1012;
34852 break;
34853 }
34854 if (+HEAPF32[i17 + 24 >> 2] < +HEAPF32[i23 + 8 >> 2]) {
34855 i19 = i22;
34856 i20 = i14;
34857 i21 = 1012;
34858 } else {
34859 i24 = i12;
34860 i25 = i22;
34861 i26 = i14;
34862 i27 = i13;
34863 }
34864 }
34865 } while (0);
34866 if ((i21 | 0) == 1012) {
34867 i21 = 0;
34868 i14 = HEAP32[i5 >> 2] | 0;
34869 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i14 >> 2] | 0) + 32 >> 2] & 127](i14, i15, i2);
34870 HEAP32[i16 >> 2] = 0;
34871 HEAP32[i18 >> 2] = 0;
34872 i24 = i12 + 1 | 0;
34873 i25 = i19;
34874 i26 = i20;
34875 i27 = HEAP32[i1 >> 2] | 0;
34876 }
34877 i14 = i11 + 1 | 0;
34878 if ((i14 | 0) < (i27 | 0)) {
34879 i9 = i26;
34880 i10 = i25;
34881 i11 = i14;
34882 i12 = i24;
34883 i13 = i27;
34884 } else {
34885 break;
34886 }
34887 }
34888 if ((i27 | 0) > 1) {
34889 __ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i6, i4, 0, i27 - 1 | 0);
34890 i28 = HEAP32[i1 >> 2] | 0;
34891 } else {
34892 i28 = i27;
34893 }
34894 i13 = i28 - i24 | 0;
34895 if ((i24 | 0) >= 0) {
34896 i29 = i13;
34897 break;
34898 }
34899 i12 = i6 + 8 | 0;
34900 if ((HEAP32[i12 >> 2] | 0) < (i13 | 0)) {
34901 if ((i28 | 0) == (i24 | 0)) {
34902 i30 = 0;
34903 i31 = i24;
34904 } else {
34905 i11 = __Z22btAlignedAllocInternalji(i13 << 4, 16) | 0;
34906 i30 = i11;
34907 i31 = HEAP32[i1 >> 2] | 0;
34908 }
34909 if ((i31 | 0) > 0) {
34910 i11 = 0;
34911 do {
34912 i10 = HEAP32[i7 >> 2] | 0;
34913 HEAP32[i30 + (i11 << 4) >> 2] = HEAP32[i10 + (i11 << 4) >> 2];
34914 HEAP32[i30 + (i11 << 4) + 4 >> 2] = HEAP32[i10 + (i11 << 4) + 4 >> 2];
34915 HEAP32[i30 + (i11 << 4) + 8 >> 2] = HEAP32[i10 + (i11 << 4) + 8 >> 2];
34916 HEAP32[i30 + (i11 << 4) + 12 >> 2] = HEAP32[i10 + (i11 << 4) + 12 >> 2];
34917 i11 = i11 + 1 | 0;
34918 } while ((i11 | 0) < (i31 | 0));
34919 }
34920 i11 = HEAP32[i7 >> 2] | 0;
34921 i10 = i6 + 16 | 0;
34922 if ((i11 | 0) != 0) {
34923 if ((HEAP8[i10] | 0) != 0) {
34924 __Z21btAlignedFreeInternalPv(i11);
34925 }
34926 HEAP32[i7 >> 2] = 0;
34927 }
34928 HEAP8[i10] = 1;
34929 HEAP32[i7 >> 2] = i30;
34930 HEAP32[i12 >> 2] = i13;
34931 i32 = i28;
34932 } else {
34933 i32 = i28;
34934 }
34935 while (1) {
34936 i10 = i32 + 1 | 0;
34937 _memset((HEAP32[i7 >> 2] | 0) + (i32 << 4) | 0, 0, 16);
34938 if ((i10 | 0) < (i13 | 0)) {
34939 i32 = i10;
34940 } else {
34941 i29 = i13;
34942 break;
34943 }
34944 }
34945 } else {
34946 i29 = i8;
34947 }
34948 } while (0);
34949 HEAP32[i1 >> 2] = i29;
34950 STACKTOP = i3;
34951 return;
34952 }
34953 function __ZN20btConvexHullInternal15computeInternalEiiRNS_16IntermediateHullE(i1, i2, i3, i4) {
34954 i1 = i1 | 0;
34955 i2 = i2 | 0;
34956 i3 = i3 | 0;
34957 i4 = i4 | 0;
34958 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0;
34959 i5 = STACKTOP;
34960 STACKTOP = STACKTOP + 16 | 0;
34961 i6 = i5 | 0;
34962 i7 = i3 - i2 | 0;
34963 L889 : do {
34964 if ((i7 | 0) == 1) {
34965 i8 = HEAP32[(HEAP32[i1 + 92 >> 2] | 0) + (i2 << 2) >> 2] | 0;
34966 } else if ((i7 | 0) == 2) {
34967 i9 = HEAP32[(HEAP32[i1 + 92 >> 2] | 0) + (i2 << 2) >> 2] | 0;
34968 i10 = i9 + 112 | 0;
34969 i11 = HEAP32[i9 + 88 >> 2] | 0;
34970 i12 = HEAP32[i9 + 200 >> 2] | 0;
34971 i13 = (i11 | 0) == (i12 | 0);
34972 i14 = HEAP32[i9 + 92 >> 2] | 0;
34973 i15 = HEAP32[i9 + 204 >> 2] | 0;
34974 i16 = (i14 | 0) == (i15 | 0);
34975 do {
34976 if (i13) {
34977 if (i16) {
34978 if ((HEAP32[i9 + 96 >> 2] | 0) == (HEAP32[i9 + 208 >> 2] | 0)) {
34979 i8 = i9;
34980 break L889;
34981 } else {
34982 i17 = i14;
34983 }
34984 } else {
34985 i17 = i15;
34986 }
34987 if ((i14 | 0) != (i17 | 0)) {
34988 i18 = i17;
34989 i19 = 0;
34990 i20 = 696;
34991 break;
34992 }
34993 i21 = (HEAP32[i9 + 96 >> 2] | 0) > (HEAP32[i9 + 208 >> 2] | 0);
34994 i22 = i21 ? i10 : i9;
34995 HEAP32[i22 >> 2] = i22;
34996 HEAP32[i22 + 4 >> 2] = i22;
34997 HEAP32[i4 >> 2] = i22;
34998 HEAP32[i4 + 4 >> 2] = i22;
34999 HEAP32[i4 + 8 >> 2] = i22;
35000 HEAP32[i4 + 12 >> 2] = i22;
35001 i23 = i22;
35002 i24 = i21 ? i9 : i10;
35003 } else {
35004 i18 = i15;
35005 i19 = i16;
35006 i20 = 696;
35007 }
35008 } while (0);
35009 do {
35010 if ((i20 | 0) == 696) {
35011 i16 = i14 - i18 | 0;
35012 HEAP32[i9 >> 2] = i10;
35013 HEAP32[i9 + 4 >> 2] = i10;
35014 HEAP32[i10 >> 2] = i9;
35015 HEAP32[i9 + 116 >> 2] = i9;
35016 i15 = (i11 - i12 | 0) < 0;
35017 do {
35018 if (i15) {
35019 i20 = 698;
35020 } else {
35021 if (i13 & (i16 | 0) < 0) {
35022 i20 = 698;
35023 break;
35024 }
35025 HEAP32[i4 >> 2] = i10;
35026 HEAP32[i4 + 4 >> 2] = i9;
35027 }
35028 } while (0);
35029 if ((i20 | 0) == 698) {
35030 HEAP32[i4 >> 2] = i9;
35031 HEAP32[i4 + 4 >> 2] = i10;
35032 }
35033 i21 = i4 + 8 | 0;
35034 if ((i16 | 0) < 0 | i19 & i15) {
35035 HEAP32[i21 >> 2] = i9;
35036 HEAP32[i4 + 12 >> 2] = i10;
35037 i23 = i9;
35038 i24 = i10;
35039 break;
35040 } else {
35041 HEAP32[i21 >> 2] = i10;
35042 HEAP32[i4 + 12 >> 2] = i9;
35043 i23 = i9;
35044 i24 = i10;
35045 break;
35046 }
35047 }
35048 } while (0);
35049 i10 = i1 + 48 | 0;
35050 i9 = __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i10) | 0;
35051 i13 = __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i10) | 0;
35052 i10 = i9 + 8 | 0;
35053 HEAP32[i10 >> 2] = i13;
35054 HEAP32[i13 + 8 >> 2] = i9;
35055 i12 = i1 + 100 | 0;
35056 HEAP32[i9 + 20 >> 2] = HEAP32[i12 >> 2];
35057 HEAP32[i13 + 20 >> 2] = HEAP32[i12 >> 2];
35058 HEAP32[i9 + 12 >> 2] = i24;
35059 HEAP32[i13 + 12 >> 2] = i23;
35060 HEAP32[i9 + 16 >> 2] = 0;
35061 HEAP32[i13 + 16 >> 2] = 0;
35062 i13 = i1 + 116 | 0;
35063 i12 = (HEAP32[i13 >> 2] | 0) + 1 | 0;
35064 HEAP32[i13 >> 2] = i12;
35065 i13 = i1 + 120 | 0;
35066 if ((i12 | 0) > (HEAP32[i13 >> 2] | 0)) {
35067 HEAP32[i13 >> 2] = i12;
35068 }
35069 HEAP32[i9 >> 2] = i9;
35070 HEAP32[i9 + 4 >> 2] = i9;
35071 HEAP32[i23 + 8 >> 2] = i9;
35072 i9 = HEAP32[i10 >> 2] | 0;
35073 HEAP32[i9 >> 2] = i9;
35074 HEAP32[i9 + 4 >> 2] = i9;
35075 HEAP32[i24 + 8 >> 2] = i9;
35076 STACKTOP = i5;
35077 return;
35078 } else if ((i7 | 0) == 0) {
35079 _memset(i4 | 0, 0, 16);
35080 STACKTOP = i5;
35081 return;
35082 } else {
35083 i9 = ((i7 | 0) / 2 | 0) + i2 | 0;
35084 i10 = HEAP32[i1 + 92 >> 2] | 0;
35085 i12 = HEAP32[i10 + (i9 - 1 << 2) >> 2] | 0;
35086 i13 = HEAP32[i12 + 88 >> 2] | 0;
35087 i11 = HEAP32[i12 + 92 >> 2] | 0;
35088 i14 = HEAP32[i12 + 96 >> 2] | 0;
35089 i12 = i9;
35090 while (1) {
35091 if ((i12 | 0) >= (i3 | 0)) {
35092 break;
35093 }
35094 i21 = HEAP32[i10 + (i12 << 2) >> 2] | 0;
35095 if ((HEAP32[i21 + 88 >> 2] | 0) != (i13 | 0)) {
35096 break;
35097 }
35098 if ((HEAP32[i21 + 92 >> 2] | 0) != (i11 | 0)) {
35099 break;
35100 }
35101 if ((HEAP32[i21 + 96 >> 2] | 0) == (i14 | 0)) {
35102 i12 = i12 + 1 | 0;
35103 } else {
35104 break;
35105 }
35106 }
35107 __ZN20btConvexHullInternal15computeInternalEiiRNS_16IntermediateHullE(i1, i2, i9, i4);
35108 _memset(i6 | 0, 0, 16);
35109 __ZN20btConvexHullInternal15computeInternalEiiRNS_16IntermediateHullE(i1, i12, i3, i6);
35110 __ZN20btConvexHullInternal5mergeERNS_16IntermediateHullES1_(i1, i4, i6);
35111 STACKTOP = i5;
35112 return;
35113 }
35114 } while (0);
35115 HEAP32[i8 + 8 >> 2] = 0;
35116 HEAP32[i8 >> 2] = i8;
35117 HEAP32[i8 + 4 >> 2] = i8;
35118 HEAP32[i4 >> 2] = i8;
35119 HEAP32[i4 + 4 >> 2] = i8;
35120 HEAP32[i4 + 8 >> 2] = i8;
35121 HEAP32[i4 + 12 >> 2] = i8;
35122 STACKTOP = i5;
35123 return;
35124 }
35125 function __ZNK17btCollisionObject9serializeEPvP12btSerializer(i1, i2, i3) {
35126 i1 = i1 | 0;
35127 i2 = i2 | 0;
35128 i3 = i3 | 0;
35129 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, i9 = 0, i10 = 0, i11 = 0, d12 = 0.0, i13 = 0, i14 = 0, i15 = 0, d16 = 0.0, i17 = 0, i18 = 0, d19 = 0.0, i20 = 0, i21 = 0, i22 = 0, i23 = 0;
35130 HEAPF32[i2 + 16 >> 2] = +HEAPF32[i1 + 4 >> 2];
35131 HEAPF32[i2 + 20 >> 2] = +HEAPF32[i1 + 8 >> 2];
35132 HEAPF32[i2 + 24 >> 2] = +HEAPF32[i1 + 12 >> 2];
35133 HEAPF32[i2 + 28 >> 2] = +HEAPF32[i1 + 16 >> 2];
35134 HEAPF32[i2 + 32 >> 2] = +HEAPF32[i1 + 20 >> 2];
35135 HEAPF32[i2 + 36 >> 2] = +HEAPF32[i1 + 24 >> 2];
35136 HEAPF32[i2 + 40 >> 2] = +HEAPF32[i1 + 28 >> 2];
35137 HEAPF32[i2 + 44 >> 2] = +HEAPF32[i1 + 32 >> 2];
35138 HEAPF32[i2 + 48 >> 2] = +HEAPF32[i1 + 36 >> 2];
35139 HEAPF32[i2 + 52 >> 2] = +HEAPF32[i1 + 40 >> 2];
35140 HEAPF32[i2 + 56 >> 2] = +HEAPF32[i1 + 44 >> 2];
35141 HEAPF32[i2 + 60 >> 2] = +HEAPF32[i1 + 48 >> 2];
35142 HEAPF32[i2 + 64 >> 2] = +HEAPF32[i1 + 52 >> 2];
35143 HEAPF32[i2 + 68 >> 2] = +HEAPF32[i1 + 56 >> 2];
35144 HEAPF32[i2 + 72 >> 2] = +HEAPF32[i1 + 60 >> 2];
35145 HEAPF32[i2 + 76 >> 2] = +HEAPF32[i1 + 64 >> 2];
35146 HEAPF32[i2 + 80 >> 2] = +HEAPF32[i1 + 68 >> 2];
35147 HEAPF32[i2 + 84 >> 2] = +HEAPF32[i1 + 72 >> 2];
35148 HEAPF32[i2 + 88 >> 2] = +HEAPF32[i1 + 76 >> 2];
35149 HEAPF32[i2 + 92 >> 2] = +HEAPF32[i1 + 80 >> 2];
35150 HEAPF32[i2 + 96 >> 2] = +HEAPF32[i1 + 84 >> 2];
35151 HEAPF32[i2 + 100 >> 2] = +HEAPF32[i1 + 88 >> 2];
35152 HEAPF32[i2 + 104 >> 2] = +HEAPF32[i1 + 92 >> 2];
35153 HEAPF32[i2 + 108 >> 2] = +HEAPF32[i1 + 96 >> 2];
35154 HEAPF32[i2 + 112 >> 2] = +HEAPF32[i1 + 100 >> 2];
35155 HEAPF32[i2 + 116 >> 2] = +HEAPF32[i1 + 104 >> 2];
35156 HEAPF32[i2 + 120 >> 2] = +HEAPF32[i1 + 108 >> 2];
35157 HEAPF32[i2 + 124 >> 2] = +HEAPF32[i1 + 112 >> 2];
35158 HEAPF32[i2 + 128 >> 2] = +HEAPF32[i1 + 116 >> 2];
35159 HEAPF32[i2 + 132 >> 2] = +HEAPF32[i1 + 120 >> 2];
35160 HEAPF32[i2 + 136 >> 2] = +HEAPF32[i1 + 124 >> 2];
35161 HEAPF32[i2 + 140 >> 2] = +HEAPF32[i1 + 128 >> 2];
35162 HEAPF32[i2 + 144 >> 2] = +HEAPF32[i1 + 132 >> 2];
35163 HEAPF32[i2 + 148 >> 2] = +HEAPF32[i1 + 136 >> 2];
35164 HEAPF32[i2 + 152 >> 2] = +HEAPF32[i1 + 140 >> 2];
35165 HEAPF32[i2 + 156 >> 2] = +HEAPF32[i1 + 144 >> 2];
35166 HEAPF32[i2 + 160 >> 2] = +HEAPF32[i1 + 148 >> 2];
35167 HEAPF32[i2 + 164 >> 2] = +HEAPF32[i1 + 152 >> 2];
35168 HEAPF32[i2 + 168 >> 2] = +HEAPF32[i1 + 156 >> 2];
35169 HEAPF32[i2 + 172 >> 2] = +HEAPF32[i1 + 160 >> 2];
35170 HEAPF32[i2 + 176 >> 2] = +HEAPF32[i1 + 164 >> 2];
35171 HEAPF32[i2 + 180 >> 2] = +HEAPF32[i1 + 168 >> 2];
35172 HEAPF32[i2 + 184 >> 2] = +HEAPF32[i1 + 172 >> 2];
35173 HEAPF32[i2 + 188 >> 2] = +HEAPF32[i1 + 176 >> 2];
35174 HEAP32[i2 + 220 >> 2] = HEAP32[i1 + 180 >> 2];
35175 HEAPF32[i2 + 192 >> 2] = +HEAPF32[i1 + 184 >> 2];
35176 HEAP32[i2 >> 2] = 0;
35177 i4 = i3;
35178 HEAP32[i2 + 4 >> 2] = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 28 >> 2] & 63](i3, HEAP32[i1 + 192 >> 2] | 0) | 0;
35179 HEAP32[i2 + 8 >> 2] = 0;
35180 HEAP32[i2 + 224 >> 2] = HEAP32[i1 + 204 >> 2];
35181 HEAP32[i2 + 228 >> 2] = HEAP32[i1 + 208 >> 2];
35182 HEAP32[i2 + 232 >> 2] = HEAP32[i1 + 212 >> 2];
35183 i5 = i1 + 216 | 0;
35184 i6 = i2 + 236 | 0;
35185 HEAP32[i6 >> 2] = HEAP32[i5 >> 2];
35186 HEAP32[i6 >> 2] = HEAP32[i5 >> 2];
35187 HEAPF32[i2 + 196 >> 2] = +HEAPF32[i1 + 220 >> 2];
35188 HEAPF32[i2 + 200 >> 2] = +HEAPF32[i1 + 224 >> 2];
35189 HEAPF32[i2 + 204 >> 2] = +HEAPF32[i1 + 228 >> 2];
35190 HEAP32[i2 + 240 >> 2] = HEAP32[i1 + 232 >> 2];
35191 i5 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 40 >> 2] & 63](i3, i1) | 0;
35192 i6 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 28 >> 2] & 63](i3, i5) | 0;
35193 HEAP32[i2 + 12 >> 2] = i6;
35194 if ((i6 | 0) == 0) {
35195 i7 = i1 + 240 | 0;
35196 d8 = +HEAPF32[i7 >> 2];
35197 i9 = i2 + 208 | 0;
35198 i10 = i9;
35199 HEAPF32[i10 >> 2] = d8;
35200 i11 = i1 + 244 | 0;
35201 d12 = +HEAPF32[i11 >> 2];
35202 i13 = i2 + 212 | 0;
35203 i14 = i13;
35204 HEAPF32[i14 >> 2] = d12;
35205 i15 = i1 + 248 | 0;
35206 d16 = +HEAPF32[i15 >> 2];
35207 i17 = i2 + 216 | 0;
35208 i18 = i17;
35209 HEAPF32[i18 >> 2] = d16;
35210 d19 = +HEAPF32[i15 >> 2];
35211 HEAPF32[i18 >> 2] = d19;
35212 i20 = i1 + 252 | 0;
35213 i21 = HEAP32[i20 >> 2] | 0;
35214 i22 = i2 + 244 | 0;
35215 i23 = i22;
35216 HEAP32[i23 >> 2] = i21;
35217 return 24;
35218 }
35219 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 48 >> 2] & 127](i3, i5);
35220 i7 = i1 + 240 | 0;
35221 d8 = +HEAPF32[i7 >> 2];
35222 i9 = i2 + 208 | 0;
35223 i10 = i9;
35224 HEAPF32[i10 >> 2] = d8;
35225 i11 = i1 + 244 | 0;
35226 d12 = +HEAPF32[i11 >> 2];
35227 i13 = i2 + 212 | 0;
35228 i14 = i13;
35229 HEAPF32[i14 >> 2] = d12;
35230 i15 = i1 + 248 | 0;
35231 d16 = +HEAPF32[i15 >> 2];
35232 i17 = i2 + 216 | 0;
35233 i18 = i17;
35234 HEAPF32[i18 >> 2] = d16;
35235 d19 = +HEAPF32[i15 >> 2];
35236 HEAPF32[i18 >> 2] = d19;
35237 i20 = i1 + 252 | 0;
35238 i21 = HEAP32[i20 >> 2] | 0;
35239 i22 = i2 + 244 | 0;
35240 i23 = i22;
35241 HEAP32[i23 >> 2] = i21;
35242 return 24;
35243 }
35244 function __ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i1, i2, i3) {
35245 i1 = i1 | 0;
35246 i2 = i2 | 0;
35247 i3 = i3 | 0;
35248 var i4 = 0, i5 = 0, i6 = 0, d7 = 0.0, d8 = 0.0, d9 = 0.0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, i16 = 0, i17 = 0, i18 = 0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0;
35249 i4 = i1 | 0;
35250 if ((HEAP32[i4 >> 2] | 0) == 0) {
35251 HEAP32[i4 >> 2] = i3;
35252 HEAP32[i3 + 32 >> 2] = 0;
35253 return;
35254 }
35255 i5 = HEAP32[i2 + 40 >> 2] | 0;
35256 if ((i5 | 0) == 0) {
35257 i6 = i2;
35258 } else {
35259 d7 = +HEAPF32[i3 >> 2] + +HEAPF32[i3 + 16 >> 2];
35260 d8 = +HEAPF32[i3 + 4 >> 2] + +HEAPF32[i3 + 20 >> 2];
35261 d9 = +HEAPF32[i3 + 8 >> 2] + +HEAPF32[i3 + 24 >> 2];
35262 i10 = i2;
35263 i2 = i5;
35264 while (1) {
35265 i5 = HEAP32[i10 + 36 >> 2] | 0;
35266 d11 = d8 - (+HEAPF32[i5 + 4 >> 2] + +HEAPF32[i5 + 20 >> 2]);
35267 d12 = d9 - (+HEAPF32[i5 + 8 >> 2] + +HEAPF32[i5 + 24 >> 2]);
35268 d13 = +Math_abs(+(d7 - (+HEAPF32[i5 >> 2] + +HEAPF32[i5 + 16 >> 2])));
35269 d14 = d13 + +Math_abs(+d11);
35270 d11 = d14 + +Math_abs(+d12);
35271 d12 = d8 - (+HEAPF32[i2 + 4 >> 2] + +HEAPF32[i2 + 20 >> 2]);
35272 d14 = d9 - (+HEAPF32[i2 + 8 >> 2] + +HEAPF32[i2 + 24 >> 2]);
35273 d13 = +Math_abs(+(d7 - (+HEAPF32[i2 >> 2] + +HEAPF32[i2 + 16 >> 2])));
35274 d15 = d13 + +Math_abs(+d12);
35275 i5 = HEAP32[i10 + 36 + ((d11 >= d15 + +Math_abs(+d14)) << 2) >> 2] | 0;
35276 i16 = HEAP32[i5 + 40 >> 2] | 0;
35277 if ((i16 | 0) == 0) {
35278 i6 = i5;
35279 break;
35280 } else {
35281 i10 = i5;
35282 i2 = i16;
35283 }
35284 }
35285 }
35286 i2 = i6 + 32 | 0;
35287 i10 = HEAP32[i2 >> 2] | 0;
35288 i16 = i1 + 4 | 0;
35289 i1 = HEAP32[i16 >> 2] | 0;
35290 do {
35291 if ((i1 | 0) == 0) {
35292 i5 = __Z22btAlignedAllocInternalji(44, 16) | 0;
35293 if ((i5 | 0) == 0) {
35294 i17 = 0;
35295 break;
35296 }
35297 _memset(i5 | 0, 0, 44);
35298 i17 = i5;
35299 } else {
35300 HEAP32[i16 >> 2] = 0;
35301 i17 = i1;
35302 }
35303 } while (0);
35304 HEAP32[i17 + 32 >> 2] = i10;
35305 i1 = i17 + 36 | 0;
35306 HEAP32[i1 >> 2] = 0;
35307 i16 = i17 + 40 | 0;
35308 HEAP32[i16 >> 2] = 0;
35309 d7 = +HEAPF32[i3 >> 2];
35310 d9 = +HEAPF32[i6 >> 2];
35311 d8 = d7 < d9 ? d7 : d9;
35312 HEAPF32[i17 >> 2] = d8;
35313 d9 = +HEAPF32[i3 + 16 >> 2];
35314 d7 = +HEAPF32[i6 + 16 >> 2];
35315 d14 = d9 > d7 ? d9 : d7;
35316 HEAPF32[i17 + 16 >> 2] = d14;
35317 d7 = +HEAPF32[i3 + 4 >> 2];
35318 d9 = +HEAPF32[i6 + 4 >> 2];
35319 d15 = d7 < d9 ? d7 : d9;
35320 HEAPF32[i17 + 4 >> 2] = d15;
35321 d9 = +HEAPF32[i3 + 20 >> 2];
35322 d7 = +HEAPF32[i6 + 20 >> 2];
35323 d11 = d9 > d7 ? d9 : d7;
35324 HEAPF32[i17 + 20 >> 2] = d11;
35325 d7 = +HEAPF32[i3 + 8 >> 2];
35326 d9 = +HEAPF32[i6 + 8 >> 2];
35327 d12 = d7 < d9 ? d7 : d9;
35328 HEAPF32[i17 + 8 >> 2] = d12;
35329 d9 = +HEAPF32[i3 + 24 >> 2];
35330 d7 = +HEAPF32[i6 + 24 >> 2];
35331 d13 = d9 > d7 ? d9 : d7;
35332 HEAPF32[i17 + 24 >> 2] = d13;
35333 if ((i10 | 0) == 0) {
35334 HEAP32[i1 >> 2] = i6;
35335 HEAP32[i2 >> 2] = i17;
35336 HEAP32[i16 >> 2] = i3;
35337 HEAP32[i3 + 32 >> 2] = i17;
35338 HEAP32[i4 >> 2] = i17;
35339 return;
35340 }
35341 HEAP32[i10 + 36 + (((HEAP32[(HEAP32[i2 >> 2] | 0) + 40 >> 2] | 0) == (i6 | 0)) << 2) >> 2] = i17;
35342 HEAP32[i1 >> 2] = i6;
35343 HEAP32[i2 >> 2] = i17;
35344 HEAP32[i16 >> 2] = i3;
35345 HEAP32[i3 + 32 >> 2] = i17;
35346 i17 = i10;
35347 d7 = d8;
35348 d8 = d15;
35349 d15 = d12;
35350 d12 = d14;
35351 d14 = d11;
35352 d11 = d13;
35353 L2338 : while (1) {
35354 i10 = i17 | 0;
35355 i3 = i17 + 4 | 0;
35356 do {
35357 if (+HEAPF32[i10 >> 2] <= d7) {
35358 if (+HEAPF32[i3 >> 2] > d8) {
35359 break;
35360 }
35361 if (+HEAPF32[i17 + 8 >> 2] > d15) {
35362 break;
35363 }
35364 if (+HEAPF32[i17 + 16 >> 2] < d12) {
35365 break;
35366 }
35367 if (+HEAPF32[i17 + 20 >> 2] < d14) {
35368 break;
35369 }
35370 if (+HEAPF32[i17 + 24 >> 2] >= d11) {
35371 i18 = 1980;
35372 break L2338;
35373 }
35374 }
35375 } while (0);
35376 i16 = HEAP32[i17 + 36 >> 2] | 0;
35377 i2 = HEAP32[i17 + 40 >> 2] | 0;
35378 d13 = +HEAPF32[i16 >> 2];
35379 d9 = +HEAPF32[i2 >> 2];
35380 d19 = d13 < d9 ? d13 : d9;
35381 HEAPF32[i10 >> 2] = d19;
35382 d9 = +HEAPF32[i16 + 16 >> 2];
35383 d13 = +HEAPF32[i2 + 16 >> 2];
35384 d20 = d9 > d13 ? d9 : d13;
35385 HEAPF32[i17 + 16 >> 2] = d20;
35386 d13 = +HEAPF32[i16 + 4 >> 2];
35387 d9 = +HEAPF32[i2 + 4 >> 2];
35388 d21 = d13 < d9 ? d13 : d9;
35389 HEAPF32[i3 >> 2] = d21;
35390 d9 = +HEAPF32[i16 + 20 >> 2];
35391 d13 = +HEAPF32[i2 + 20 >> 2];
35392 d22 = d9 > d13 ? d9 : d13;
35393 HEAPF32[i17 + 20 >> 2] = d22;
35394 d13 = +HEAPF32[i16 + 8 >> 2];
35395 d9 = +HEAPF32[i2 + 8 >> 2];
35396 d23 = d13 < d9 ? d13 : d9;
35397 HEAPF32[i17 + 8 >> 2] = d23;
35398 d9 = +HEAPF32[i16 + 24 >> 2];
35399 d13 = +HEAPF32[i2 + 24 >> 2];
35400 d24 = d9 > d13 ? d9 : d13;
35401 HEAPF32[i17 + 24 >> 2] = d24;
35402 i2 = HEAP32[i17 + 32 >> 2] | 0;
35403 if ((i2 | 0) == 0) {
35404 i18 = 1981;
35405 break;
35406 } else {
35407 i17 = i2;
35408 d7 = d19;
35409 d8 = d21;
35410 d15 = d23;
35411 d12 = d20;
35412 d14 = d22;
35413 d11 = d24;
35414 }
35415 }
35416 if ((i18 | 0) == 1980) {
35417 return;
35418 } else if ((i18 | 0) == 1981) {
35419 return;
35420 }
35421 }
35422 function __ZN16btDbvtBroadphase7setAabbEP17btBroadphaseProxyRK9btVector3S4_P12btDispatcher(i1, i2, i3, i4, i5) {
35423 i1 = i1 | 0;
35424 i2 = i2 | 0;
35425 i3 = i3 | 0;
35426 i4 = i4 | 0;
35427 i5 = i5 | 0;
35428 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, i22 = 0, i23 = 0, i24 = 0;
35429 i5 = STACKTOP;
35430 STACKTOP = STACKTOP + 64 | 0;
35431 i6 = i5 | 0;
35432 i7 = i5 + 32 | 0;
35433 i8 = i5 + 48 | 0;
35434 i9 = i2;
35435 i10 = i6;
35436 i11 = i3;
35437 HEAP32[i10 >> 2] = HEAP32[i11 >> 2];
35438 HEAP32[i10 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
35439 HEAP32[i10 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
35440 HEAP32[i10 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
35441 i10 = i6 + 16 | 0;
35442 i12 = i4;
35443 HEAP32[i10 >> 2] = HEAP32[i12 >> 2];
35444 HEAP32[i10 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
35445 HEAP32[i10 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
35446 HEAP32[i10 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
35447 i10 = i2 + 60 | 0;
35448 L880 : do {
35449 if ((HEAP32[i10 >> 2] | 0) == 2) {
35450 i4 = i2 + 48 | 0;
35451 __ZN6btDbvt6removeEP10btDbvtNode(i1 + 44 | 0, HEAP32[i4 >> 2] | 0);
35452 HEAP32[i4 >> 2] = __ZN6btDbvt6insertERK12btDbvtAabbMmPv(i1 + 4 | 0, i6, i2) | 0;
35453 i13 = 1;
35454 } else {
35455 i4 = i1 + 128 | 0;
35456 HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + 1;
35457 i4 = HEAP32[i2 + 48 >> 2] | 0;
35458 do {
35459 if (+HEAPF32[i4 >> 2] <= +HEAPF32[i6 + 16 >> 2]) {
35460 if (+HEAPF32[i4 + 16 >> 2] < +HEAPF32[i6 >> 2]) {
35461 break;
35462 }
35463 if (+HEAPF32[i4 + 4 >> 2] > +HEAPF32[i6 + 20 >> 2]) {
35464 break;
35465 }
35466 if (+HEAPF32[i4 + 20 >> 2] < +HEAPF32[i6 + 4 >> 2]) {
35467 break;
35468 }
35469 if (+HEAPF32[i4 + 8 >> 2] > +HEAPF32[i6 + 24 >> 2]) {
35470 break;
35471 }
35472 if (+HEAPF32[i4 + 24 >> 2] < +HEAPF32[i6 + 8 >> 2]) {
35473 break;
35474 }
35475 d14 = +HEAPF32[i2 + 16 >> 2];
35476 d15 = +HEAPF32[i3 >> 2] - d14;
35477 d16 = +HEAPF32[i2 + 20 >> 2];
35478 d17 = +HEAPF32[i3 + 4 >> 2] - d16;
35479 d18 = +HEAPF32[i2 + 24 >> 2];
35480 d19 = +HEAPF32[i3 + 8 >> 2] - d18;
35481 d20 = +HEAPF32[i1 + 100 >> 2];
35482 d21 = (+HEAPF32[i2 + 32 >> 2] - d14) * .5 * d20;
35483 d14 = d20 * (+HEAPF32[i2 + 36 >> 2] - d16) * .5;
35484 d16 = d20 * (+HEAPF32[i2 + 40 >> 2] - d18) * .5;
35485 i22 = i7 | 0;
35486 HEAPF32[i22 >> 2] = d21;
35487 i23 = i7 + 4 | 0;
35488 HEAPF32[i23 >> 2] = d14;
35489 i24 = i7 + 8 | 0;
35490 HEAPF32[i24 >> 2] = d16;
35491 HEAPF32[i7 + 12 >> 2] = 0.0;
35492 if (d15 < 0.0) {
35493 HEAPF32[i22 >> 2] = -0.0 - d21;
35494 }
35495 if (d17 < 0.0) {
35496 HEAPF32[i23 >> 2] = -0.0 - d14;
35497 }
35498 if (d19 < 0.0) {
35499 HEAPF32[i24 >> 2] = -0.0 - d16;
35500 }
35501 if (!(__ZN6btDbvt6updateEP10btDbvtNodeR12btDbvtAabbMmRK9btVector3f(i1 + 4 | 0, i4, i6, i7, .05000000074505806) | 0)) {
35502 i13 = 0;
35503 break L880;
35504 }
35505 i24 = i1 + 132 | 0;
35506 HEAP32[i24 >> 2] = (HEAP32[i24 >> 2] | 0) + 1;
35507 i13 = 1;
35508 break L880;
35509 }
35510 } while (0);
35511 __ZN6btDbvt6updateEP10btDbvtNodeR12btDbvtAabbMm(i1 + 4 | 0, i4, i6);
35512 i24 = i1 + 132 | 0;
35513 HEAP32[i24 >> 2] = (HEAP32[i24 >> 2] | 0) + 1;
35514 i13 = 1;
35515 }
35516 } while (0);
35517 i6 = i2 + 52 | 0;
35518 i7 = HEAP32[i6 >> 2] | 0;
35519 i3 = i2 + 56 | 0;
35520 i24 = HEAP32[i3 >> 2] | 0;
35521 if ((i7 | 0) == 0) {
35522 HEAP32[i1 + 84 + (HEAP32[i10 >> 2] << 2) >> 2] = i24;
35523 } else {
35524 HEAP32[i7 + 56 >> 2] = i24;
35525 }
35526 i24 = HEAP32[i3 >> 2] | 0;
35527 if ((i24 | 0) != 0) {
35528 HEAP32[i24 + 52 >> 2] = HEAP32[i6 >> 2];
35529 }
35530 i24 = i2 + 16 | 0;
35531 HEAP32[i24 >> 2] = HEAP32[i11 >> 2];
35532 HEAP32[i24 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
35533 HEAP32[i24 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
35534 HEAP32[i24 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
35535 i11 = i2 + 32 | 0;
35536 HEAP32[i11 >> 2] = HEAP32[i12 >> 2];
35537 HEAP32[i11 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
35538 HEAP32[i11 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
35539 HEAP32[i11 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
35540 i12 = i1 + 104 | 0;
35541 HEAP32[i10 >> 2] = HEAP32[i12 >> 2];
35542 i10 = i1 + 84 + (HEAP32[i12 >> 2] << 2) | 0;
35543 HEAP32[i6 >> 2] = 0;
35544 HEAP32[i3 >> 2] = HEAP32[i10 >> 2];
35545 i3 = HEAP32[i10 >> 2] | 0;
35546 if ((i3 | 0) != 0) {
35547 HEAP32[i3 + 52 >> 2] = i9;
35548 }
35549 HEAP32[i10 >> 2] = i9;
35550 if (!i13) {
35551 STACKTOP = i5;
35552 return;
35553 }
35554 HEAP8[i1 + 154 | 0] = 1;
35555 if ((HEAP8[i1 + 153 | 0] | 0) != 0) {
35556 STACKTOP = i5;
35557 return;
35558 }
35559 HEAP32[i8 >> 2] = 4064;
35560 HEAP32[i8 + 4 >> 2] = i1;
35561 i13 = i1 + 44 | 0;
35562 i9 = i2 + 48 | 0;
35563 i2 = i8 | 0;
35564 __ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i13, HEAP32[i13 >> 2] | 0, HEAP32[i9 >> 2] | 0, i2);
35565 i13 = i1 + 4 | 0;
35566 __ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i13, HEAP32[i13 >> 2] | 0, HEAP32[i9 >> 2] | 0, i2);
35567 STACKTOP = i5;
35568 return;
35569 }
35570 function __ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(i1, i2, i3, i4, i5, i6) {
35571 i1 = i1 | 0;
35572 i2 = i2 | 0;
35573 i3 = i3 | 0;
35574 i4 = i4 | 0;
35575 i5 = i5 | 0;
35576 i6 = i6 | 0;
35577 var i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, i31 = 0, d32 = 0.0, d33 = 0.0;
35578 i1 = i6 + 16 | 0;
35579 i7 = HEAP16[i1 >> 1] & -16;
35580 HEAP16[i1 >> 1] = i7;
35581 d8 = +HEAPF32[i4 >> 2];
35582 d9 = +HEAPF32[i3 >> 2];
35583 d10 = d8 - d9;
35584 d11 = +HEAPF32[i4 + 4 >> 2];
35585 d12 = +HEAPF32[i3 + 4 >> 2];
35586 d13 = d11 - d12;
35587 d14 = +HEAPF32[i4 + 8 >> 2];
35588 d15 = +HEAPF32[i3 + 8 >> 2];
35589 d16 = d14 - d15;
35590 d17 = +HEAPF32[i5 >> 2];
35591 d18 = d17 - d9;
35592 d19 = +HEAPF32[i5 + 4 >> 2];
35593 d20 = d19 - d12;
35594 d21 = +HEAPF32[i5 + 8 >> 2];
35595 d22 = d21 - d15;
35596 d23 = +HEAPF32[i2 >> 2];
35597 d24 = d23 - d9;
35598 d25 = +HEAPF32[i2 + 4 >> 2];
35599 d26 = d25 - d12;
35600 d27 = +HEAPF32[i2 + 8 >> 2];
35601 d28 = d27 - d15;
35602 d29 = d10 * d24 + d13 * d26 + d16 * d28;
35603 d30 = d18 * d24 + d20 * d26 + d22 * d28;
35604 if (!(d29 > 0.0 | d30 > 0.0)) {
35605 i2 = i6;
35606 i31 = i3;
35607 HEAP32[i2 >> 2] = HEAP32[i31 >> 2];
35608 HEAP32[i2 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
35609 HEAP32[i2 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
35610 HEAP32[i2 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
35611 HEAP16[i1 >> 1] = i7 | 1;
35612 HEAPF32[i6 + 20 >> 2] = 1.0;
35613 HEAPF32[i6 + 24 >> 2] = 0.0;
35614 HEAPF32[i6 + 28 >> 2] = 0.0;
35615 HEAPF32[i6 + 32 >> 2] = 0.0;
35616 return 1;
35617 }
35618 d28 = d23 - d8;
35619 d26 = d25 - d11;
35620 d24 = d27 - d14;
35621 d32 = d10 * d28 + d13 * d26 + d16 * d24;
35622 d33 = d18 * d28 + d20 * d26 + d22 * d24;
35623 if (!(d32 < 0.0 | d33 > d32)) {
35624 i31 = i6;
35625 i2 = i4;
35626 HEAP32[i31 >> 2] = HEAP32[i2 >> 2];
35627 HEAP32[i31 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
35628 HEAP32[i31 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
35629 HEAP32[i31 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
35630 HEAP16[i1 >> 1] = i7 | 2;
35631 HEAPF32[i6 + 20 >> 2] = 0.0;
35632 HEAPF32[i6 + 24 >> 2] = 1.0;
35633 HEAPF32[i6 + 28 >> 2] = 0.0;
35634 HEAPF32[i6 + 32 >> 2] = 0.0;
35635 return 1;
35636 }
35637 d24 = d29 * d33 - d32 * d30;
35638 if (!(d24 > 0.0 | d29 < 0.0 | d32 > 0.0)) {
35639 d26 = d29 / (d29 - d32);
35640 HEAPF32[i6 >> 2] = d9 + d10 * d26;
35641 HEAPF32[i6 + 4 >> 2] = d12 + d13 * d26;
35642 HEAPF32[i6 + 8 >> 2] = d15 + d16 * d26;
35643 HEAPF32[i6 + 12 >> 2] = 0.0;
35644 HEAP16[i1 >> 1] = i7 | 3;
35645 HEAPF32[i6 + 20 >> 2] = 1.0 - d26;
35646 HEAPF32[i6 + 24 >> 2] = d26;
35647 HEAPF32[i6 + 28 >> 2] = 0.0;
35648 HEAPF32[i6 + 32 >> 2] = 0.0;
35649 return 1;
35650 }
35651 d26 = d23 - d17;
35652 d23 = d25 - d19;
35653 d25 = d27 - d21;
35654 d27 = d10 * d26 + d13 * d23 + d16 * d25;
35655 d28 = d18 * d26 + d20 * d23 + d22 * d25;
35656 if (!(d28 < 0.0 | d27 > d28)) {
35657 i2 = i6;
35658 i31 = i5;
35659 HEAP32[i2 >> 2] = HEAP32[i31 >> 2];
35660 HEAP32[i2 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
35661 HEAP32[i2 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
35662 HEAP32[i2 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
35663 HEAP16[i1 >> 1] = i7 | 4;
35664 HEAPF32[i6 + 20 >> 2] = 0.0;
35665 HEAPF32[i6 + 24 >> 2] = 0.0;
35666 HEAPF32[i6 + 28 >> 2] = 1.0;
35667 HEAPF32[i6 + 32 >> 2] = 0.0;
35668 return 1;
35669 }
35670 d25 = d27 * d30 - d29 * d28;
35671 if (!(d25 > 0.0 | d30 < 0.0 | d28 > 0.0)) {
35672 d29 = d30 / (d30 - d28);
35673 HEAPF32[i6 >> 2] = d9 + d18 * d29;
35674 HEAPF32[i6 + 4 >> 2] = d12 + d20 * d29;
35675 HEAPF32[i6 + 8 >> 2] = d15 + d22 * d29;
35676 HEAPF32[i6 + 12 >> 2] = 0.0;
35677 HEAP16[i1 >> 1] = i7 | 5;
35678 HEAPF32[i6 + 20 >> 2] = 1.0 - d29;
35679 HEAPF32[i6 + 24 >> 2] = 0.0;
35680 HEAPF32[i6 + 28 >> 2] = d29;
35681 HEAPF32[i6 + 32 >> 2] = 0.0;
35682 return 1;
35683 }
35684 d29 = d32 * d28 - d27 * d33;
35685 do {
35686 if (d29 <= 0.0) {
35687 d30 = d33 - d32;
35688 if (d30 < 0.0) {
35689 break;
35690 }
35691 d23 = d27 - d28;
35692 if (d23 < 0.0) {
35693 break;
35694 }
35695 d26 = d30 / (d30 + d23);
35696 HEAPF32[i6 >> 2] = d8 + (d17 - d8) * d26;
35697 HEAPF32[i6 + 4 >> 2] = d11 + (d19 - d11) * d26;
35698 HEAPF32[i6 + 8 >> 2] = d14 + (d21 - d14) * d26;
35699 HEAPF32[i6 + 12 >> 2] = 0.0;
35700 HEAP16[i1 >> 1] = i7 | 6;
35701 HEAPF32[i6 + 20 >> 2] = 0.0;
35702 HEAPF32[i6 + 24 >> 2] = 1.0 - d26;
35703 HEAPF32[i6 + 28 >> 2] = d26;
35704 HEAPF32[i6 + 32 >> 2] = 0.0;
35705 return 1;
35706 }
35707 } while (0);
35708 d14 = 1.0 / (d24 + (d29 + d25));
35709 d29 = d25 * d14;
35710 d25 = d24 * d14;
35711 HEAPF32[i6 >> 2] = d18 * d25 + (d9 + d10 * d29);
35712 HEAPF32[i6 + 4 >> 2] = d20 * d25 + (d12 + d13 * d29);
35713 HEAPF32[i6 + 8 >> 2] = d22 * d25 + (d15 + d16 * d29);
35714 HEAPF32[i6 + 12 >> 2] = 0.0;
35715 HEAP16[i1 >> 1] = i7 | 7;
35716 HEAPF32[i6 + 20 >> 2] = 1.0 - d29 - d25;
35717 HEAPF32[i6 + 24 >> 2] = d29;
35718 HEAPF32[i6 + 28 >> 2] = d25;
35719 HEAPF32[i6 + 32 >> 2] = 0.0;
35720 return 1;
35721 }
35722 function __ZN16btCollisionWorld16updateSingleAabbEP17btCollisionObject(i1, i2) {
35723 i1 = i1 | 0;
35724 i2 = i2 | 0;
35725 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, d10 = 0.0, d11 = 0.0, i12 = 0, d13 = 0.0, i14 = 0, d15 = 0.0, i16 = 0, d17 = 0.0, i18 = 0, d19 = 0.0, i20 = 0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, i28 = 0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0;
35726 i3 = STACKTOP;
35727 STACKTOP = STACKTOP + 64 | 0;
35728 i4 = i3 | 0;
35729 i5 = i3 + 16 | 0;
35730 i6 = i3 + 32 | 0;
35731 i7 = i3 + 48 | 0;
35732 i8 = i2 + 192 | 0;
35733 i9 = HEAP32[i8 >> 2] | 0;
35734 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i9 >> 2] | 0) + 8 >> 2] & 127](i9, i2 + 4 | 0, i4, i5);
35735 d10 = +HEAPF32[4];
35736 i9 = i4 | 0;
35737 d11 = +HEAPF32[i9 >> 2] - d10;
35738 HEAPF32[i9 >> 2] = d11;
35739 i12 = i4 + 4 | 0;
35740 d13 = +HEAPF32[i12 >> 2] - d10;
35741 HEAPF32[i12 >> 2] = d13;
35742 i14 = i4 + 8 | 0;
35743 d15 = +HEAPF32[i14 >> 2] - d10;
35744 HEAPF32[i14 >> 2] = d15;
35745 i16 = i5 | 0;
35746 d17 = d10 + +HEAPF32[i16 >> 2];
35747 HEAPF32[i16 >> 2] = d17;
35748 i18 = i5 + 4 | 0;
35749 d19 = d10 + +HEAPF32[i18 >> 2];
35750 HEAPF32[i18 >> 2] = d19;
35751 i20 = i5 + 8 | 0;
35752 d21 = d10 + +HEAPF32[i20 >> 2];
35753 HEAPF32[i20 >> 2] = d21;
35754 do {
35755 if ((HEAP8[i1 + 44 | 0] | 0) == 0) {
35756 d22 = d17;
35757 d23 = d11;
35758 d24 = d19;
35759 d25 = d13;
35760 d26 = d21;
35761 d27 = d15;
35762 } else {
35763 if ((HEAP32[i2 + 232 >> 2] | 0) != 2) {
35764 d22 = d17;
35765 d23 = d11;
35766 d24 = d19;
35767 d25 = d13;
35768 d26 = d21;
35769 d27 = d15;
35770 break;
35771 }
35772 i28 = HEAP32[i8 >> 2] | 0;
35773 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i28 >> 2] | 0) + 8 >> 2] & 127](i28, i2 + 68 | 0, i6, i7);
35774 i28 = i6 | 0;
35775 d29 = +HEAPF32[i28 >> 2] - d10;
35776 HEAPF32[i28 >> 2] = d29;
35777 i28 = i6 + 4 | 0;
35778 d30 = +HEAPF32[i28 >> 2] - d10;
35779 HEAPF32[i28 >> 2] = d30;
35780 i28 = i6 + 8 | 0;
35781 d31 = +HEAPF32[i28 >> 2] - d10;
35782 HEAPF32[i28 >> 2] = d31;
35783 i28 = i7 | 0;
35784 d32 = d10 + +HEAPF32[i28 >> 2];
35785 HEAPF32[i28 >> 2] = d32;
35786 i28 = i7 + 4 | 0;
35787 d33 = d10 + +HEAPF32[i28 >> 2];
35788 HEAPF32[i28 >> 2] = d33;
35789 i28 = i7 + 8 | 0;
35790 d34 = d10 + +HEAPF32[i28 >> 2];
35791 HEAPF32[i28 >> 2] = d34;
35792 d35 = +HEAPF32[i9 >> 2];
35793 if (d29 < d35) {
35794 HEAPF32[i9 >> 2] = d29;
35795 d36 = d29;
35796 } else {
35797 d36 = d35;
35798 }
35799 d35 = +HEAPF32[i12 >> 2];
35800 if (d30 < d35) {
35801 HEAPF32[i12 >> 2] = d30;
35802 d37 = d30;
35803 } else {
35804 d37 = d35;
35805 }
35806 d35 = +HEAPF32[i14 >> 2];
35807 if (d31 < d35) {
35808 HEAPF32[i14 >> 2] = d31;
35809 d38 = d31;
35810 } else {
35811 d38 = d35;
35812 }
35813 i28 = i4 + 12 | 0;
35814 d35 = +HEAPF32[i6 + 12 >> 2];
35815 if (d35 < +HEAPF32[i28 >> 2]) {
35816 HEAPF32[i28 >> 2] = d35;
35817 }
35818 d35 = +HEAPF32[i16 >> 2];
35819 if (d35 < d32) {
35820 HEAPF32[i16 >> 2] = d32;
35821 d39 = d32;
35822 } else {
35823 d39 = d35;
35824 }
35825 d35 = +HEAPF32[i18 >> 2];
35826 if (d35 < d33) {
35827 HEAPF32[i18 >> 2] = d33;
35828 d40 = d33;
35829 } else {
35830 d40 = d35;
35831 }
35832 d35 = +HEAPF32[i20 >> 2];
35833 if (d35 < d34) {
35834 HEAPF32[i20 >> 2] = d34;
35835 d41 = d34;
35836 } else {
35837 d41 = d35;
35838 }
35839 i28 = i5 + 12 | 0;
35840 d35 = +HEAPF32[i7 + 12 >> 2];
35841 if (+HEAPF32[i28 >> 2] >= d35) {
35842 d22 = d39;
35843 d23 = d36;
35844 d24 = d40;
35845 d25 = d37;
35846 d26 = d41;
35847 d27 = d38;
35848 break;
35849 }
35850 HEAPF32[i28 >> 2] = d35;
35851 d22 = d39;
35852 d23 = d36;
35853 d24 = d40;
35854 d25 = d37;
35855 d26 = d41;
35856 d27 = d38;
35857 }
35858 } while (0);
35859 i7 = HEAP32[i1 + 76 >> 2] | 0;
35860 do {
35861 if ((HEAP32[i2 + 204 >> 2] & 1 | 0) == 0) {
35862 d38 = d22 - d23;
35863 d41 = d24 - d25;
35864 d37 = d26 - d27;
35865 if (d37 * d37 + (d41 * d41 + d38 * d38) < 999999995904.0) {
35866 break;
35867 }
35868 __ZN17btCollisionObject18setActivationStateEi(i2, 5);
35869 if (HEAP8[1304] | 0) {
35870 STACKTOP = i3;
35871 return;
35872 }
35873 i20 = i1 + 80 | 0;
35874 i18 = HEAP32[i20 >> 2] | 0;
35875 if ((i18 | 0) == 0) {
35876 STACKTOP = i3;
35877 return;
35878 }
35879 HEAP8[1304] = 1;
35880 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i18 >> 2] | 0) + 36 >> 2] & 127](i18, 880);
35881 i18 = HEAP32[i20 >> 2] | 0;
35882 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i18 >> 2] | 0) + 36 >> 2] & 127](i18, 960);
35883 i18 = HEAP32[i20 >> 2] | 0;
35884 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i18 >> 2] | 0) + 36 >> 2] & 127](i18, 624);
35885 i18 = HEAP32[i20 >> 2] | 0;
35886 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i18 >> 2] | 0) + 36 >> 2] & 127](i18, 488);
35887 STACKTOP = i3;
35888 return;
35889 }
35890 } while (0);
35891 FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 16 >> 2] & 63](i7, HEAP32[i2 + 188 >> 2] | 0, i4, i5, HEAP32[i1 + 24 >> 2] | 0);
35892 STACKTOP = i3;
35893 return;
35894 }
35895 function __ZN9btHashMapI9btHashPtrP16btCollisionShapeE6insertERKS0_RKS2_(i1, i2, i3) {
35896 i1 = i1 | 0;
35897 i2 = i2 | 0;
35898 i3 = i3 | 0;
35899 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0;
35900 i4 = i2 | 0;
35901 i5 = HEAP32[i4 >> 2] | 0;
35902 i6 = i5 + ~(i5 << 15) | 0;
35903 i7 = (i6 >> 10 ^ i6) * 9 | 0;
35904 i6 = i7 >> 6 ^ i7;
35905 i7 = i6 + ~(i6 << 11) | 0;
35906 i6 = i1 + 48 | 0;
35907 i8 = HEAP32[i6 >> 2] | 0;
35908 i9 = (i7 >> 16 ^ i7) & i8 - 1;
35909 i7 = i5;
35910 L333 : do {
35911 if (i9 >>> 0 < (HEAP32[i1 + 4 >> 2] | 0) >>> 0) {
35912 i5 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i9 << 2) >> 2] | 0;
35913 if ((i5 | 0) == -1) {
35914 break;
35915 }
35916 i10 = HEAP32[i1 + 72 >> 2] | 0;
35917 i11 = i1 + 32 | 0;
35918 i12 = i5;
35919 while (1) {
35920 if ((i7 | 0) == (HEAP32[i10 + (i12 << 3) >> 2] | 0)) {
35921 break;
35922 }
35923 i5 = HEAP32[(HEAP32[i11 >> 2] | 0) + (i12 << 2) >> 2] | 0;
35924 if ((i5 | 0) == -1) {
35925 break L333;
35926 } else {
35927 i12 = i5;
35928 }
35929 }
35930 if ((i12 | 0) == -1) {
35931 break;
35932 }
35933 HEAP32[(HEAP32[i1 + 52 >> 2] | 0) + (i12 << 2) >> 2] = HEAP32[i3 >> 2];
35934 return;
35935 }
35936 } while (0);
35937 i7 = i1 + 44 | 0;
35938 i11 = HEAP32[i7 >> 2] | 0;
35939 do {
35940 if ((i11 | 0) == (i8 | 0)) {
35941 i10 = (i8 | 0) == 0 ? 1 : i8 << 1;
35942 if ((i8 | 0) >= (i10 | 0)) {
35943 i13 = i8;
35944 break;
35945 }
35946 if ((i10 | 0) == 0) {
35947 i14 = 0;
35948 i15 = i8;
35949 } else {
35950 i5 = __Z22btAlignedAllocInternalji(i10 << 2, 16) | 0;
35951 i14 = i5;
35952 i15 = HEAP32[i7 >> 2] | 0;
35953 }
35954 i5 = i1 + 52 | 0;
35955 if ((i15 | 0) > 0) {
35956 i16 = 0;
35957 do {
35958 i17 = i14 + (i16 << 2) | 0;
35959 if ((i17 | 0) != 0) {
35960 HEAP32[i17 >> 2] = HEAP32[(HEAP32[i5 >> 2] | 0) + (i16 << 2) >> 2];
35961 }
35962 i16 = i16 + 1 | 0;
35963 } while ((i16 | 0) < (i15 | 0));
35964 }
35965 i16 = HEAP32[i5 >> 2] | 0;
35966 i12 = i1 + 56 | 0;
35967 if ((i16 | 0) == 0) {
35968 i18 = i15;
35969 } else {
35970 if ((HEAP8[i12] | 0) == 0) {
35971 i19 = i15;
35972 } else {
35973 __Z21btAlignedFreeInternalPv(i16);
35974 i19 = HEAP32[i7 >> 2] | 0;
35975 }
35976 HEAP32[i5 >> 2] = 0;
35977 i18 = i19;
35978 }
35979 HEAP8[i12] = 1;
35980 HEAP32[i5 >> 2] = i14;
35981 HEAP32[i6 >> 2] = i10;
35982 i13 = i18;
35983 } else {
35984 i13 = i11;
35985 }
35986 } while (0);
35987 i18 = (HEAP32[i1 + 52 >> 2] | 0) + (i13 << 2) | 0;
35988 if ((i18 | 0) != 0) {
35989 HEAP32[i18 >> 2] = HEAP32[i3 >> 2];
35990 }
35991 HEAP32[i7 >> 2] = i13 + 1;
35992 i13 = i1 + 64 | 0;
35993 i7 = HEAP32[i13 >> 2] | 0;
35994 i3 = i1 + 68 | 0;
35995 do {
35996 if ((i7 | 0) == (HEAP32[i3 >> 2] | 0)) {
35997 i18 = (i7 | 0) == 0 ? 1 : i7 << 1;
35998 if ((i7 | 0) >= (i18 | 0)) {
35999 i20 = i7;
36000 break;
36001 }
36002 if ((i18 | 0) == 0) {
36003 i21 = 0;
36004 i22 = i7;
36005 } else {
36006 i14 = __Z22btAlignedAllocInternalji(i18 << 3, 16) | 0;
36007 i21 = i14;
36008 i22 = HEAP32[i13 >> 2] | 0;
36009 }
36010 i14 = i1 + 72 | 0;
36011 if ((i22 | 0) > 0) {
36012 i19 = 0;
36013 do {
36014 i15 = i21 + (i19 << 3) | 0;
36015 if ((i15 | 0) != 0) {
36016 i12 = (HEAP32[i14 >> 2] | 0) + (i19 << 3) | 0;
36017 i16 = i15;
36018 i15 = HEAP32[i12 + 4 >> 2] | 0;
36019 HEAP32[i16 >> 2] = HEAP32[i12 >> 2];
36020 HEAP32[i16 + 4 >> 2] = i15;
36021 }
36022 i19 = i19 + 1 | 0;
36023 } while ((i19 | 0) < (i22 | 0));
36024 }
36025 i19 = HEAP32[i14 >> 2] | 0;
36026 i10 = i1 + 76 | 0;
36027 if ((i19 | 0) != 0) {
36028 if ((HEAP8[i10] | 0) != 0) {
36029 __Z21btAlignedFreeInternalPv(i19);
36030 }
36031 HEAP32[i14 >> 2] = 0;
36032 }
36033 HEAP8[i10] = 1;
36034 HEAP32[i14 >> 2] = i21;
36035 HEAP32[i3 >> 2] = i18;
36036 i20 = HEAP32[i13 >> 2] | 0;
36037 } else {
36038 i20 = i7;
36039 }
36040 } while (0);
36041 i7 = (HEAP32[i1 + 72 >> 2] | 0) + (i20 << 3) | 0;
36042 if ((i7 | 0) == 0) {
36043 i23 = i20;
36044 } else {
36045 i20 = i2;
36046 i2 = i7;
36047 i7 = HEAP32[i20 + 4 >> 2] | 0;
36048 HEAP32[i2 >> 2] = HEAP32[i20 >> 2];
36049 HEAP32[i2 + 4 >> 2] = i7;
36050 i23 = HEAP32[i13 >> 2] | 0;
36051 }
36052 HEAP32[i13 >> 2] = i23 + 1;
36053 if ((i8 | 0) < (HEAP32[i6 >> 2] | 0)) {
36054 __ZN9btHashMapI9btHashPtrP16btCollisionShapeE10growTablesERKS0_(i1, 0);
36055 i8 = HEAP32[i4 >> 2] | 0;
36056 i4 = i8 + ~(i8 << 15) | 0;
36057 i8 = (i4 >> 10 ^ i4) * 9 | 0;
36058 i4 = i8 >> 6 ^ i8;
36059 i8 = i4 + ~(i4 << 11) | 0;
36060 i24 = (i8 >> 16 ^ i8) & (HEAP32[i6 >> 2] | 0) - 1;
36061 } else {
36062 i24 = i9;
36063 }
36064 i9 = (HEAP32[i1 + 12 >> 2] | 0) + (i24 << 2) | 0;
36065 HEAP32[(HEAP32[i1 + 32 >> 2] | 0) + (i11 << 2) >> 2] = HEAP32[i9 >> 2];
36066 HEAP32[i9 >> 2] = i11;
36067 return;
36068 }
36069 function __ZN28btHashedOverlappingPairCache20sortOverlappingPairsEP12btDispatcher(i1, i2) {
36070 i1 = i1 | 0;
36071 i2 = i2 | 0;
36072 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0;
36073 i3 = STACKTOP;
36074 STACKTOP = STACKTOP + 32 | 0;
36075 i4 = i3 | 0;
36076 i5 = i3 + 8 | 0;
36077 i6 = i5 + 16 | 0;
36078 HEAP8[i6] = 1;
36079 i7 = i5 + 12 | 0;
36080 HEAP32[i7 >> 2] = 0;
36081 i8 = i5 + 4 | 0;
36082 HEAP32[i8 >> 2] = 0;
36083 i9 = i5 + 8 | 0;
36084 HEAP32[i9 >> 2] = 0;
36085 i10 = i1 + 8 | 0;
36086 i11 = HEAP32[i10 >> 2] | 0;
36087 do {
36088 if ((i11 | 0) > 0) {
36089 i12 = i1 + 16 | 0;
36090 i13 = 0;
36091 i14 = 0;
36092 i15 = 0;
36093 i16 = i11;
36094 while (1) {
36095 i17 = HEAP32[i12 >> 2] | 0;
36096 do {
36097 if ((i14 | 0) == (i15 | 0)) {
36098 i18 = (i15 | 0) == 0 ? 1 : i15 << 1;
36099 if ((i15 | 0) >= (i18 | 0)) {
36100 i19 = i15;
36101 i20 = i15;
36102 i21 = i16;
36103 break;
36104 }
36105 if ((i18 | 0) == 0) {
36106 i22 = 0;
36107 i23 = i15;
36108 } else {
36109 i24 = __Z22btAlignedAllocInternalji(i18 << 4, 16) | 0;
36110 i22 = i24;
36111 i23 = HEAP32[i8 >> 2] | 0;
36112 }
36113 if ((i23 | 0) > 0) {
36114 i24 = 0;
36115 do {
36116 i25 = HEAP32[i7 >> 2] | 0;
36117 HEAP32[i22 + (i24 << 4) >> 2] = HEAP32[i25 + (i24 << 4) >> 2];
36118 HEAP32[i22 + (i24 << 4) + 4 >> 2] = HEAP32[i25 + (i24 << 4) + 4 >> 2];
36119 HEAP32[i22 + (i24 << 4) + 8 >> 2] = HEAP32[i25 + (i24 << 4) + 8 >> 2];
36120 HEAP32[i22 + (i24 << 4) + 12 >> 2] = HEAP32[i25 + (i24 << 4) + 12 >> 2];
36121 i24 = i24 + 1 | 0;
36122 } while ((i24 | 0) < (i23 | 0));
36123 }
36124 i24 = HEAP32[i7 >> 2] | 0;
36125 if ((i24 | 0) == 0) {
36126 i26 = i23;
36127 } else {
36128 if ((HEAP8[i6] | 0) == 0) {
36129 i27 = i23;
36130 } else {
36131 __Z21btAlignedFreeInternalPv(i24);
36132 i27 = HEAP32[i8 >> 2] | 0;
36133 }
36134 HEAP32[i7 >> 2] = 0;
36135 i26 = i27;
36136 }
36137 HEAP8[i6] = 1;
36138 HEAP32[i7 >> 2] = i22;
36139 HEAP32[i9 >> 2] = i18;
36140 i19 = i26;
36141 i20 = i18;
36142 i21 = HEAP32[i10 >> 2] | 0;
36143 } else {
36144 i19 = i14;
36145 i20 = i15;
36146 i21 = i16;
36147 }
36148 } while (0);
36149 i24 = HEAP32[i7 >> 2] | 0;
36150 HEAP32[i24 + (i19 << 4) >> 2] = HEAP32[i17 + (i13 << 4) >> 2];
36151 HEAP32[i24 + (i19 << 4) + 4 >> 2] = HEAP32[i17 + (i13 << 4) + 4 >> 2];
36152 HEAP32[i24 + (i19 << 4) + 8 >> 2] = HEAP32[i17 + (i13 << 4) + 8 >> 2];
36153 HEAP32[i24 + (i19 << 4) + 12 >> 2] = HEAP32[i17 + (i13 << 4) + 12 >> 2];
36154 i28 = i19 + 1 | 0;
36155 HEAP32[i8 >> 2] = i28;
36156 i24 = i13 + 1 | 0;
36157 if ((i24 | 0) < (i21 | 0)) {
36158 i13 = i24;
36159 i14 = i28;
36160 i15 = i20;
36161 i16 = i21;
36162 } else {
36163 break;
36164 }
36165 }
36166 if ((i28 | 0) <= 0) {
36167 i29 = i28;
36168 break;
36169 }
36170 i16 = i1;
36171 i15 = 0;
36172 while (1) {
36173 i14 = HEAP32[i7 >> 2] | 0;
36174 FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[i16 >> 2] | 0) + 12 >> 2] & 31](i1, HEAP32[i14 + (i15 << 4) >> 2] | 0, HEAP32[i14 + (i15 << 4) + 4 >> 2] | 0, i2) | 0;
36175 i14 = i15 + 1 | 0;
36176 i13 = HEAP32[i8 >> 2] | 0;
36177 if ((i14 | 0) < (i13 | 0)) {
36178 i15 = i14;
36179 } else {
36180 i29 = i13;
36181 break;
36182 }
36183 }
36184 } else {
36185 i29 = 0;
36186 }
36187 } while (0);
36188 i2 = i1 + 56 | 0;
36189 if ((HEAP32[i2 >> 2] | 0) > 0) {
36190 i28 = HEAP32[i1 + 64 >> 2] | 0;
36191 i21 = 0;
36192 do {
36193 HEAP32[i28 + (i21 << 2) >> 2] = -1;
36194 i21 = i21 + 1 | 0;
36195 } while ((i21 | 0) < (HEAP32[i2 >> 2] | 0));
36196 i30 = HEAP32[i8 >> 2] | 0;
36197 } else {
36198 i30 = i29;
36199 }
36200 if ((i30 | 0) > 1) {
36201 __ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i5, i4, 0, i30 - 1 | 0);
36202 i31 = HEAP32[i8 >> 2] | 0;
36203 } else {
36204 i31 = i30;
36205 }
36206 if ((i31 | 0) > 0) {
36207 i31 = i1;
36208 i30 = 0;
36209 do {
36210 i4 = HEAP32[i7 >> 2] | 0;
36211 FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i31 >> 2] | 0) + 8 >> 2] & 31](i1, HEAP32[i4 + (i30 << 4) >> 2] | 0, HEAP32[i4 + (i30 << 4) + 4 >> 2] | 0) | 0;
36212 i30 = i30 + 1 | 0;
36213 } while ((i30 | 0) < (HEAP32[i8 >> 2] | 0));
36214 }
36215 i8 = HEAP32[i7 >> 2] | 0;
36216 if ((i8 | 0) == 0) {
36217 STACKTOP = i3;
36218 return;
36219 }
36220 if ((HEAP8[i6] | 0) != 0) {
36221 __Z21btAlignedFreeInternalPv(i8);
36222 }
36223 HEAP32[i7 >> 2] = 0;
36224 STACKTOP = i3;
36225 return;
36226 }
36227 function __ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(i1, i2) {
36228 i1 = i1 | 0;
36229 i2 = i2 | 0;
36230 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
36231 i3 = i1 | 0;
36232 i4 = HEAP32[i3 >> 2] | 0;
36233 do {
36234 if ((i4 | 0) > 3) {
36235 i5 = HEAP16[i2 >> 1] | 0;
36236 if ((i5 & 8) != 0) {
36237 i6 = i4;
36238 i7 = i5;
36239 i8 = 588;
36240 break;
36241 }
36242 i5 = i4 - 1 | 0;
36243 HEAP32[i3 >> 2] = i5;
36244 i9 = i1 + 52 | 0;
36245 i10 = i1 + 4 + (i5 << 4) | 0;
36246 HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
36247 HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
36248 HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
36249 HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
36250 i10 = i1 + 132 | 0;
36251 i9 = i1 + 84 + (i5 << 4) | 0;
36252 HEAP32[i10 >> 2] = HEAP32[i9 >> 2];
36253 HEAP32[i10 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
36254 HEAP32[i10 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
36255 HEAP32[i10 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
36256 i9 = i1 + 212 | 0;
36257 i10 = i1 + 164 + (i5 << 4) | 0;
36258 HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
36259 HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
36260 HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
36261 HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
36262 i11 = i5;
36263 i8 = 586;
36264 } else {
36265 i11 = i4;
36266 i8 = 586;
36267 }
36268 } while (0);
36269 do {
36270 if ((i8 | 0) == 586) {
36271 if ((i11 | 0) <= 2) {
36272 i12 = i11;
36273 break;
36274 }
36275 i6 = i11;
36276 i7 = HEAP16[i2 >> 1] | 0;
36277 i8 = 588;
36278 }
36279 } while (0);
36280 do {
36281 if ((i8 | 0) == 588) {
36282 if ((i7 & 4) != 0) {
36283 i12 = i6;
36284 break;
36285 }
36286 i11 = i6 - 1 | 0;
36287 HEAP32[i3 >> 2] = i11;
36288 i4 = i1 + 36 | 0;
36289 i5 = i1 + 4 + (i11 << 4) | 0;
36290 HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
36291 HEAP32[i4 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
36292 HEAP32[i4 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
36293 HEAP32[i4 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
36294 i5 = i1 + 116 | 0;
36295 i4 = i1 + 84 + (i11 << 4) | 0;
36296 HEAP32[i5 >> 2] = HEAP32[i4 >> 2];
36297 HEAP32[i5 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
36298 HEAP32[i5 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
36299 HEAP32[i5 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
36300 i4 = i1 + 196 | 0;
36301 i5 = i1 + 164 + (i11 << 4) | 0;
36302 HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
36303 HEAP32[i4 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
36304 HEAP32[i4 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
36305 HEAP32[i4 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
36306 i12 = i11;
36307 }
36308 } while (0);
36309 do {
36310 if ((i12 | 0) > 1) {
36311 i6 = HEAP16[i2 >> 1] | 0;
36312 if ((i6 & 2) != 0) {
36313 i13 = i12;
36314 i14 = i6;
36315 break;
36316 }
36317 i6 = i12 - 1 | 0;
36318 HEAP32[i3 >> 2] = i6;
36319 i7 = i1 + 20 | 0;
36320 i11 = i1 + 4 + (i6 << 4) | 0;
36321 HEAP32[i7 >> 2] = HEAP32[i11 >> 2];
36322 HEAP32[i7 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
36323 HEAP32[i7 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
36324 HEAP32[i7 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
36325 i11 = i1 + 100 | 0;
36326 i7 = i1 + 84 + (i6 << 4) | 0;
36327 HEAP32[i11 >> 2] = HEAP32[i7 >> 2];
36328 HEAP32[i11 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
36329 HEAP32[i11 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
36330 HEAP32[i11 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
36331 i7 = i1 + 180 | 0;
36332 i11 = i1 + 164 + (i6 << 4) | 0;
36333 HEAP32[i7 >> 2] = HEAP32[i11 >> 2];
36334 HEAP32[i7 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
36335 HEAP32[i7 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
36336 HEAP32[i7 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
36337 i15 = i6;
36338 i8 = 593;
36339 } else {
36340 i15 = i12;
36341 i8 = 593;
36342 }
36343 } while (0);
36344 do {
36345 if ((i8 | 0) == 593) {
36346 if ((i15 | 0) > 0) {
36347 i13 = i15;
36348 i14 = HEAP16[i2 >> 1] | 0;
36349 break;
36350 } else {
36351 return;
36352 }
36353 }
36354 } while (0);
36355 if ((i14 & 1) != 0) {
36356 return;
36357 }
36358 i14 = i13 - 1 | 0;
36359 HEAP32[i3 >> 2] = i14;
36360 i3 = i1 + 4 | 0;
36361 i13 = i1 + 4 + (i14 << 4) | 0;
36362 HEAP32[i3 >> 2] = HEAP32[i13 >> 2];
36363 HEAP32[i3 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
36364 HEAP32[i3 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
36365 HEAP32[i3 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
36366 i13 = i1 + 84 | 0;
36367 i3 = i1 + 84 + (i14 << 4) | 0;
36368 HEAP32[i13 >> 2] = HEAP32[i3 >> 2];
36369 HEAP32[i13 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
36370 HEAP32[i13 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
36371 HEAP32[i13 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
36372 i3 = i1 + 164 | 0;
36373 i13 = i1 + 164 + (i14 << 4) | 0;
36374 HEAP32[i3 >> 2] = HEAP32[i13 >> 2];
36375 HEAP32[i3 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
36376 HEAP32[i3 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
36377 HEAP32[i3 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
36378 return;
36379 }
36380 function __ZN31btConvexPlaneCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
36381 i1 = i1 | 0;
36382 i2 = i2 | 0;
36383 i3 = i3 | 0;
36384 i4 = i4 | 0;
36385 i5 = i5 | 0;
36386 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0;
36387 i4 = STACKTOP;
36388 STACKTOP = STACKTOP + 32 | 0;
36389 i6 = i4 | 0;
36390 i7 = i4 + 16 | 0;
36391 i8 = i1 + 12 | 0;
36392 if ((HEAP32[i8 >> 2] | 0) == 0) {
36393 STACKTOP = i4;
36394 return;
36395 }
36396 i9 = (HEAP8[i1 + 16 | 0] | 0) != 0;
36397 i10 = HEAP32[(i9 ? i3 : i2) + 192 >> 2] | 0;
36398 i11 = HEAP32[(i9 ? i2 : i3) + 192 >> 2] | 0;
36399 HEAPF32[i6 >> 2] = 0.0;
36400 HEAPF32[i6 + 4 >> 2] = 0.0;
36401 HEAPF32[i6 + 8 >> 2] = 0.0;
36402 HEAPF32[i6 + 12 >> 2] = 1.0;
36403 __ZN31btConvexPlaneCollisionAlgorithm20collideSingleContactERK12btQuaternionP17btCollisionObjectS4_RK16btDispatcherInfoP16btManifoldResult(i1, i6, i2, i3, 0, i5);
36404 i6 = i5 + 4 | 0;
36405 do {
36406 if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 1116 >> 2] | 0) < (HEAP32[i1 + 24 >> 2] | 0)) {
36407 i9 = i11 + 48 | 0;
36408 i12 = i11 + 56 | 0;
36409 d13 = +HEAPF32[i12 >> 2];
36410 if (+Math_abs(+d13) > .7071067690849304) {
36411 d14 = +HEAPF32[i11 + 52 >> 2];
36412 d15 = 1.0 / +Math_sqrt(+(d13 * d13 + d14 * d14));
36413 d16 = 0.0;
36414 d17 = d15 * (-0.0 - d13);
36415 d18 = d14 * d15;
36416 } else {
36417 d15 = +HEAPF32[i9 >> 2];
36418 d14 = +HEAPF32[i11 + 52 >> 2];
36419 d13 = 1.0 / +Math_sqrt(+(d15 * d15 + d14 * d14));
36420 d16 = d13 * (-0.0 - d14);
36421 d17 = d15 * d13;
36422 d18 = 0.0;
36423 }
36424 d13 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] & 7](i10);
36425 d15 = +HEAPF32[4] / d13;
36426 d13 = +Math_sqrt(+(d18 * d18 + (d17 * d17 + d16 * d16)));
36427 d14 = d15 > .39269909262657166 ? .19634954631328583 : d15 * .5;
36428 d15 = +Math_sin(+d14) / d13;
36429 d13 = d16 * d15;
36430 d19 = d17 * d15;
36431 d20 = d18 * d15;
36432 d15 = +Math_cos(+d14);
36433 i21 = i1 + 20 | 0;
36434 i22 = HEAP32[i21 >> 2] | 0;
36435 if ((i22 | 0) <= 0) {
36436 break;
36437 }
36438 i23 = i11 + 52 | 0;
36439 i24 = i7 | 0;
36440 i25 = i7 + 4 | 0;
36441 i26 = i7 + 8 | 0;
36442 i27 = i7 + 12 | 0;
36443 i28 = 0;
36444 i29 = i22;
36445 do {
36446 d14 = +HEAPF32[i9 >> 2];
36447 d30 = +HEAPF32[i23 >> 2];
36448 d31 = +HEAPF32[i12 >> 2];
36449 d32 = +Math_sqrt(+(d14 * d14 + d30 * d30 + d31 * d31));
36450 d33 = +(i28 | 0) * (6.2831854820251465 / +(i29 | 0)) * .5;
36451 d34 = +Math_sin(+d33) / d32;
36452 d32 = d14 * d34;
36453 d14 = d30 * d34;
36454 d30 = d31 * d34;
36455 d34 = +Math_cos(+d33);
36456 d33 = -0.0 - d32;
36457 d31 = -0.0 - d14;
36458 d35 = -0.0 - d30;
36459 d36 = d20 * d31 + (d13 * d34 + d15 * d33) - d19 * d35;
36460 d37 = d13 * d35 + (d19 * d34 + d15 * d31) - d20 * d33;
36461 d38 = d19 * d33 + (d20 * d34 + d15 * d35) - d13 * d31;
36462 d39 = d15 * d34 - d13 * d33 - d19 * d31 - d20 * d35;
36463 HEAPF32[i24 >> 2] = d30 * d37 + (d32 * d39 + d34 * d36) - d14 * d38;
36464 HEAPF32[i25 >> 2] = d32 * d38 + (d34 * d37 + d14 * d39) - d30 * d36;
36465 HEAPF32[i26 >> 2] = d14 * d36 + (d30 * d39 + d34 * d38) - d32 * d37;
36466 HEAPF32[i27 >> 2] = d34 * d39 - d32 * d36 - d14 * d37 - d30 * d38;
36467 __ZN31btConvexPlaneCollisionAlgorithm20collideSingleContactERK12btQuaternionP17btCollisionObjectS4_RK16btDispatcherInfoP16btManifoldResult(i1, i7, i2, i3, 0, i5);
36468 i28 = i28 + 1 | 0;
36469 i29 = HEAP32[i21 >> 2] | 0;
36470 } while ((i28 | 0) < (i29 | 0));
36471 }
36472 } while (0);
36473 if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
36474 STACKTOP = i4;
36475 return;
36476 }
36477 if ((HEAP32[(HEAP32[i8 >> 2] | 0) + 1116 >> 2] | 0) == 0) {
36478 STACKTOP = i4;
36479 return;
36480 }
36481 i8 = HEAP32[i6 >> 2] | 0;
36482 if ((HEAP32[i8 + 1116 >> 2] | 0) == 0) {
36483 STACKTOP = i4;
36484 return;
36485 }
36486 if ((HEAP32[i8 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
36487 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i8, i5 + 8 | 0, i5 + 72 | 0);
36488 STACKTOP = i4;
36489 return;
36490 } else {
36491 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i8, i5 + 72 | 0, i5 + 8 | 0);
36492 STACKTOP = i4;
36493 return;
36494 }
36495 }
36496 function __ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfo(i1, i2) {
36497 i1 = i1 | 0;
36498 i2 = i2 | 0;
36499 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0;
36500 i3 = STACKTOP;
36501 STACKTOP = STACKTOP + 128 | 0;
36502 i4 = i3 | 0;
36503 i5 = i3 + 8 | 0;
36504 i6 = i3 + 32 | 0;
36505 __ZN15CProfileManager13Start_ProfileEPKc(240);
36506 i7 = i5 + 16 | 0;
36507 HEAP8[i7] = 1;
36508 i8 = i5 + 12 | 0;
36509 HEAP32[i8 >> 2] = 0;
36510 i9 = i5 + 4 | 0;
36511 HEAP32[i9 >> 2] = 0;
36512 i10 = i5 + 8 | 0;
36513 HEAP32[i10 >> 2] = 0;
36514 i11 = HEAP32[i1 + 184 >> 2] | 0;
36515 L632 : do {
36516 if ((i11 | 0) > 0) {
36517 i12 = __Z22btAlignedAllocInternalji(i11 << 2, 16) | 0;
36518 i13 = HEAP32[i9 >> 2] | 0;
36519 if ((i13 | 0) > 0) {
36520 i14 = 0;
36521 do {
36522 i15 = i12 + (i14 << 2) | 0;
36523 if ((i15 | 0) != 0) {
36524 HEAP32[i15 >> 2] = HEAP32[(HEAP32[i8 >> 2] | 0) + (i14 << 2) >> 2];
36525 }
36526 i14 = i14 + 1 | 0;
36527 } while ((i14 | 0) < (i13 | 0));
36528 }
36529 i13 = HEAP32[i8 >> 2] | 0;
36530 if ((i13 | 0) != 0) {
36531 if ((HEAP8[i7] | 0) != 0) {
36532 __Z21btAlignedFreeInternalPv(i13);
36533 }
36534 HEAP32[i8 >> 2] = 0;
36535 }
36536 HEAP8[i7] = 1;
36537 HEAP32[i8 >> 2] = i12;
36538 HEAP32[i10 >> 2] = i11;
36539 i13 = 0;
36540 i14 = i12;
36541 while (1) {
36542 i15 = i14 + (i13 << 2) | 0;
36543 if ((i15 | 0) != 0) {
36544 HEAP32[i15 >> 2] = 0;
36545 }
36546 i15 = i13 + 1 | 0;
36547 if ((i15 | 0) >= (i11 | 0)) {
36548 break L632;
36549 }
36550 i13 = i15;
36551 i14 = HEAP32[i8 >> 2] | 0;
36552 }
36553 }
36554 } while (0);
36555 HEAP32[i9 >> 2] = i11;
36556 i14 = i1;
36557 i13 = i1 + 192 | 0;
36558 i12 = 0;
36559 while (1) {
36560 if ((i12 | 0) >= (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i14 >> 2] | 0) + 100 >> 2] & 127](i1) | 0)) {
36561 break;
36562 }
36563 HEAP32[(HEAP32[i8 >> 2] | 0) + (i12 << 2) >> 2] = HEAP32[(HEAP32[i13 >> 2] | 0) + (i12 << 2) >> 2];
36564 i12 = i12 + 1 | 0;
36565 }
36566 if ((i11 | 0) > 1) {
36567 __ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(i5, i4, 0, i11 - 1 | 0);
36568 }
36569 i11 = (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i14 >> 2] | 0) + 100 >> 2] & 127](i1) | 0) == 0;
36570 i14 = i11 ? 0 : HEAP32[i8 >> 2] | 0;
36571 i11 = i1 + 172 | 0;
36572 i4 = HEAP32[i11 >> 2] | 0;
36573 i5 = HEAP32[i9 >> 2] | 0;
36574 i12 = i1 + 80 | 0;
36575 i13 = HEAP32[i12 >> 2] | 0;
36576 i15 = i1 + 72 | 0;
36577 i16 = HEAP32[i15 >> 2] | 0;
36578 i17 = i1 + 24 | 0;
36579 i18 = HEAP32[i17 >> 2] | 0;
36580 HEAP32[i6 >> 2] = 1520;
36581 HEAP32[i6 + 4 >> 2] = i2;
36582 HEAP32[i6 + 8 >> 2] = i4;
36583 HEAP32[i6 + 12 >> 2] = i14;
36584 HEAP32[i6 + 16 >> 2] = i5;
36585 HEAP32[i6 + 20 >> 2] = i13;
36586 HEAP32[i6 + 24 >> 2] = i16;
36587 HEAP32[i6 + 28 >> 2] = i18;
36588 HEAP8[i6 + 48 | 0] = 1;
36589 HEAP32[i6 + 44 >> 2] = 0;
36590 HEAP32[i6 + 36 >> 2] = 0;
36591 HEAP32[i6 + 40 >> 2] = 0;
36592 HEAP8[i6 + 68 | 0] = 1;
36593 HEAP32[i6 + 64 >> 2] = 0;
36594 HEAP32[i6 + 56 >> 2] = 0;
36595 HEAP32[i6 + 60 >> 2] = 0;
36596 HEAP8[i6 + 88 | 0] = 1;
36597 HEAP32[i6 + 84 >> 2] = 0;
36598 HEAP32[i6 + 76 >> 2] = 0;
36599 HEAP32[i6 + 80 >> 2] = 0;
36600 i16 = HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] | 0;
36601 i13 = HEAP32[i1 + 8 >> 2] | 0;
36602 i5 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i18 >> 2] | 0) + 36 >> 2] & 127](i18) | 0;
36603 FUNCTION_TABLE_viii[i16 & 127](i4, i13, i5);
36604 __ZN25btSimulationIslandManager22buildAndProcessIslandsEP12btDispatcherP16btCollisionWorldPNS_14IslandCallbackE(HEAP32[i1 + 176 >> 2] | 0, HEAP32[i17 >> 2] | 0, i1 | 0, i6 | 0);
36605 __ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback18processConstraintsEv(i6);
36606 i1 = HEAP32[i11 >> 2] | 0;
36607 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 16 >> 2] & 127](i1, i2, HEAP32[i12 >> 2] | 0, HEAP32[i15 >> 2] | 0);
36608 __ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD2Ev(i6);
36609 i6 = HEAP32[i8 >> 2] | 0;
36610 if ((i6 | 0) == 0) {
36611 HEAP8[i7] = 1;
36612 HEAP32[i8 >> 2] = 0;
36613 HEAP32[i9 >> 2] = 0;
36614 HEAP32[i10 >> 2] = 0;
36615 __ZN15CProfileManager12Stop_ProfileEv();
36616 STACKTOP = i3;
36617 return;
36618 }
36619 if ((HEAP8[i7] | 0) != 0) {
36620 __Z21btAlignedFreeInternalPv(i6);
36621 }
36622 HEAP32[i8 >> 2] = 0;
36623 HEAP8[i7] = 1;
36624 HEAP32[i8 >> 2] = 0;
36625 HEAP32[i9 >> 2] = 0;
36626 HEAP32[i10 >> 2] = 0;
36627 __ZN15CProfileManager12Stop_ProfileEv();
36628 STACKTOP = i3;
36629 return;
36630 }
36631 function __Z22resolveSingleCollisionP11btRigidBodyP17btCollisionObjectRK9btVector3S5_RK19btContactSolverInfof(i1, i2, i3, i4, i5, d6) {
36632 i1 = i1 | 0;
36633 i2 = i2 | 0;
36634 i3 = i3 | 0;
36635 i4 = i4 | 0;
36636 i5 = i5 | 0;
36637 d6 = +d6;
36638 var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, i31 = 0, i32 = 0, i33 = 0, d34 = 0.0, d35 = 0.0, i36 = 0;
36639 i7 = STACKTOP;
36640 STACKTOP = STACKTOP + 64 | 0;
36641 i8 = i7 | 0;
36642 i9 = i7 + 16 | 0;
36643 i10 = i7 + 32 | 0;
36644 i11 = i7 + 48 | 0;
36645 if ((HEAP32[i2 + 232 >> 2] & 2 | 0) == 0) {
36646 i12 = 0;
36647 } else {
36648 i12 = i2;
36649 }
36650 d13 = +HEAPF32[i3 >> 2];
36651 d14 = d13 - +HEAPF32[i1 + 52 >> 2];
36652 d15 = +HEAPF32[i3 + 4 >> 2];
36653 d16 = d15 - +HEAPF32[i1 + 56 >> 2];
36654 d17 = +HEAPF32[i3 + 8 >> 2];
36655 d18 = d17 - +HEAPF32[i1 + 60 >> 2];
36656 HEAPF32[i8 >> 2] = d14;
36657 HEAPF32[i8 + 4 >> 2] = d16;
36658 HEAPF32[i8 + 8 >> 2] = d18;
36659 HEAPF32[i8 + 12 >> 2] = 0.0;
36660 d19 = d13 - +HEAPF32[i2 + 52 >> 2];
36661 d20 = d15 - +HEAPF32[i2 + 56 >> 2];
36662 d21 = d17 - +HEAPF32[i2 + 60 >> 2];
36663 HEAPF32[i9 >> 2] = d19;
36664 HEAPF32[i9 + 4 >> 2] = d20;
36665 HEAPF32[i9 + 8 >> 2] = d21;
36666 HEAPF32[i9 + 12 >> 2] = 0.0;
36667 d22 = +HEAPF32[i1 + 324 >> 2];
36668 d23 = +HEAPF32[i1 + 328 >> 2];
36669 d24 = +HEAPF32[i1 + 320 >> 2];
36670 i3 = (i12 | 0) != 0;
36671 if (i3) {
36672 d25 = +HEAPF32[i12 + 324 >> 2];
36673 d26 = +HEAPF32[i12 + 328 >> 2];
36674 d27 = +HEAPF32[i12 + 320 >> 2];
36675 d28 = d21 * d25 - d20 * d26 + +HEAPF32[i12 + 304 >> 2];
36676 d29 = +HEAPF32[i12 + 308 >> 2] + (d19 * d26 - d21 * d27);
36677 d30 = d20 * d27 - d19 * d25 + +HEAPF32[i12 + 312 >> 2];
36678 } else {
36679 d28 = 0.0;
36680 d29 = 0.0;
36681 d30 = 0.0;
36682 }
36683 i31 = i4 | 0;
36684 d25 = +HEAPF32[i31 >> 2];
36685 i32 = i4 + 4 | 0;
36686 d19 = +HEAPF32[i32 >> 2];
36687 i33 = i4 + 8 | 0;
36688 d27 = +HEAPF32[i33 >> 2];
36689 d20 = d25 * (d18 * d22 - d16 * d23 + +HEAPF32[i1 + 304 >> 2] - d28) + (+HEAPF32[i1 + 308 >> 2] + (d14 * d23 - d18 * d24) - d29) * d19 + (d16 * d24 - d14 * d22 + +HEAPF32[i1 + 312 >> 2] - d30) * d27;
36690 d30 = d16 * d27 - d18 * d19;
36691 d22 = d18 * d25 - d14 * d27;
36692 d24 = d14 * d19 - d16 * d25;
36693 d29 = d24 * +HEAPF32[i1 + 288 >> 2] + (d30 * +HEAPF32[i1 + 256 >> 2] + d22 * +HEAPF32[i1 + 272 >> 2]);
36694 d23 = d30 * +HEAPF32[i1 + 260 >> 2] + d22 * +HEAPF32[i1 + 276 >> 2] + d24 * +HEAPF32[i1 + 292 >> 2];
36695 d28 = d30 * +HEAPF32[i1 + 264 >> 2] + d22 * +HEAPF32[i1 + 280 >> 2] + d24 * +HEAPF32[i1 + 296 >> 2];
36696 if (i3) {
36697 d24 = d13 - +HEAPF32[i12 + 52 >> 2];
36698 d13 = d15 - +HEAPF32[i12 + 56 >> 2];
36699 d15 = d17 - +HEAPF32[i12 + 60 >> 2];
36700 d17 = d27 * d13 - d19 * d15;
36701 d22 = d25 * d15 - d27 * d24;
36702 d30 = d19 * d24 - d25 * d13;
36703 d21 = d30 * +HEAPF32[i12 + 288 >> 2] + (+HEAPF32[i12 + 256 >> 2] * d17 + +HEAPF32[i12 + 272 >> 2] * d22);
36704 d26 = d17 * +HEAPF32[i12 + 260 >> 2] + d22 * +HEAPF32[i12 + 276 >> 2] + d30 * +HEAPF32[i12 + 292 >> 2];
36705 d34 = d17 * +HEAPF32[i12 + 264 >> 2] + d22 * +HEAPF32[i12 + 280 >> 2] + d30 * +HEAPF32[i12 + 296 >> 2];
36706 d35 = +HEAPF32[i12 + 336 >> 2] + (d27 * (d13 * d21 - d24 * d26) + (d25 * (d15 * d26 - d13 * d34) + d19 * (d24 * d34 - d15 * d21)));
36707 i36 = 1;
36708 } else {
36709 d35 = 0.0;
36710 i36 = 0;
36711 }
36712 d21 = 1.0 / (+HEAPF32[i1 + 336 >> 2] + (d27 * (d16 * d29 - d14 * d23) + (d25 * (d18 * d23 - d16 * d28) + d19 * (d14 * d28 - d18 * d29))) + d35);
36713 d35 = +HEAPF32[i5 + 32 >> 2] * (-0.0 - d6) / +HEAPF32[i5 + 12 >> 2] * d21 + d20 * (-0.0 - (+HEAPF32[i1 + 228 >> 2] * +HEAPF32[i2 + 228 >> 2] * (-0.0 - d20) + 1.0)) * d21;
36714 d21 = d35 < 0.0 ? 0.0 : d35;
36715 HEAPF32[i10 >> 2] = d25 * d21;
36716 HEAPF32[i10 + 4 >> 2] = d19 * d21;
36717 HEAPF32[i10 + 8 >> 2] = d27 * d21;
36718 HEAPF32[i10 + 12 >> 2] = 0.0;
36719 __ZN11btRigidBody12applyImpulseERK9btVector3S2_(i1, i10, i8);
36720 if (!i36) {
36721 STACKTOP = i7;
36722 return +d21;
36723 }
36724 d27 = d21 * (-0.0 - +HEAPF32[i32 >> 2]);
36725 d19 = d21 * (-0.0 - +HEAPF32[i33 >> 2]);
36726 HEAPF32[i11 >> 2] = d21 * (-0.0 - +HEAPF32[i31 >> 2]);
36727 HEAPF32[i11 + 4 >> 2] = d27;
36728 HEAPF32[i11 + 8 >> 2] = d19;
36729 HEAPF32[i11 + 12 >> 2] = 0.0;
36730 __ZN11btRigidBody12applyImpulseERK9btVector3S2_(i12, i11, i9);
36731 STACKTOP = i7;
36732 return +d21;
36733 }
36734 function __ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRj(i1, i2, i3, i4, i5) {
36735 i1 = i1 | 0;
36736 i2 = i2 | 0;
36737 i3 = i3 | 0;
36738 i4 = i4 | 0;
36739 i5 = i5 | 0;
36740 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, d12 = 0.0, i13 = 0, d14 = 0.0, d15 = 0.0, i16 = 0, d17 = 0.0, i18 = 0, d19 = 0.0, d20 = 0.0, i21 = 0, d22 = 0.0, i23 = 0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, i28 = 0, d29 = 0.0, i30 = 0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, i36 = 0, d37 = 0.0, i38 = 0, d39 = 0.0, d40 = 0.0, i41 = 0;
36741 i6 = STACKTOP;
36742 STACKTOP = STACKTOP + 80 | 0;
36743 i7 = i6 | 0;
36744 i8 = i6 + 16 | 0;
36745 i9 = i6 + 64 | 0;
36746 i10 = i6 + 72 | 0;
36747 HEAP32[i7 >> 2] = i1;
36748 HEAP32[i7 + 4 >> 2] = i2;
36749 HEAP32[i7 + 8 >> 2] = i3;
36750 i11 = i1 | 0;
36751 d12 = +HEAPF32[i11 >> 2];
36752 i13 = i2 | 0;
36753 d14 = +HEAPF32[i13 >> 2];
36754 d15 = d12 - d14;
36755 i16 = i1 + 4 | 0;
36756 d17 = +HEAPF32[i16 >> 2];
36757 i18 = i2 + 4 | 0;
36758 d19 = +HEAPF32[i18 >> 2];
36759 d20 = d17 - d19;
36760 i21 = i1 + 8 | 0;
36761 d22 = +HEAPF32[i21 >> 2];
36762 i23 = i2 + 8 | 0;
36763 d24 = +HEAPF32[i23 >> 2];
36764 d25 = d22 - d24;
36765 HEAPF32[i8 >> 2] = d15;
36766 HEAPF32[i8 + 4 >> 2] = d20;
36767 HEAPF32[i8 + 8 >> 2] = d25;
36768 HEAPF32[i8 + 12 >> 2] = 0.0;
36769 i2 = i3 | 0;
36770 d26 = +HEAPF32[i2 >> 2];
36771 d27 = d14 - d26;
36772 i28 = i3 + 4 | 0;
36773 d14 = +HEAPF32[i28 >> 2];
36774 d29 = d19 - d14;
36775 i30 = i3 + 8 | 0;
36776 d19 = +HEAPF32[i30 >> 2];
36777 d31 = d24 - d19;
36778 HEAPF32[i8 + 16 >> 2] = d27;
36779 HEAPF32[i8 + 20 >> 2] = d29;
36780 HEAPF32[i8 + 24 >> 2] = d31;
36781 HEAPF32[i8 + 28 >> 2] = 0.0;
36782 d24 = d26 - d12;
36783 d26 = d14 - d17;
36784 d14 = d19 - d22;
36785 HEAPF32[i8 + 32 >> 2] = d24;
36786 HEAPF32[i8 + 36 >> 2] = d26;
36787 HEAPF32[i8 + 40 >> 2] = d14;
36788 HEAPF32[i8 + 44 >> 2] = 0.0;
36789 d19 = d20 * d31 - d25 * d29;
36790 d32 = d25 * d27 - d15 * d31;
36791 d33 = d15 * d29 - d20 * d27;
36792 d34 = d33 * d33 + (d19 * d19 + d32 * d32);
36793 if (d34 <= 0.0) {
36794 d35 = -1.0;
36795 STACKTOP = i6;
36796 return +d35;
36797 }
36798 HEAP32[i9 >> 2] = 0;
36799 HEAP32[i9 + 4 >> 2] = 0;
36800 HEAP32[i10 >> 2] = 0;
36801 i3 = i9;
36802 i36 = i9 + 4 | 0;
36803 i9 = 0;
36804 d37 = -1.0;
36805 i38 = i1;
36806 d39 = d20;
36807 d20 = d25;
36808 d25 = d15;
36809 d15 = d12;
36810 d12 = d17;
36811 d17 = d22;
36812 while (1) {
36813 do {
36814 if (d17 * (d32 * d25 - d19 * d39) + (d12 * (d19 * d20 - d33 * d25) + d15 * (d33 * d39 - d32 * d20)) > 0.0) {
36815 i1 = HEAP32[1328 + (i9 << 2) >> 2] | 0;
36816 d22 = +__ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_PfRj(i38, HEAP32[i7 + (i1 << 2) >> 2] | 0, i3, i10);
36817 if (!(d37 < 0.0 | d22 < d37)) {
36818 d40 = d37;
36819 break;
36820 }
36821 i41 = HEAP32[i10 >> 2] | 0;
36822 HEAP32[i5 >> 2] = ((i41 & 1 | 0) == 0 ? 0 : 1 << i9) + ((i41 & 2 | 0) == 0 ? 0 : 1 << i1);
36823 HEAPF32[i4 + (i9 << 2) >> 2] = +HEAPF32[i3 >> 2];
36824 HEAPF32[i4 + (i1 << 2) >> 2] = +HEAPF32[i36 >> 2];
36825 HEAPF32[i4 + (HEAP32[1328 + (i1 << 2) >> 2] << 2) >> 2] = 0.0;
36826 d40 = d22;
36827 } else {
36828 d40 = d37;
36829 }
36830 } while (0);
36831 i1 = i9 + 1 | 0;
36832 if (i1 >>> 0 >= 3) {
36833 break;
36834 }
36835 i41 = HEAP32[i7 + (i1 << 2) >> 2] | 0;
36836 i9 = i1;
36837 d37 = d40;
36838 i38 = i41;
36839 d39 = +HEAPF32[i8 + (i1 << 4) + 4 >> 2];
36840 d20 = +HEAPF32[i8 + (i1 << 4) + 8 >> 2];
36841 d25 = +HEAPF32[i8 + (i1 << 4) >> 2];
36842 d15 = +HEAPF32[i41 >> 2];
36843 d12 = +HEAPF32[i41 + 4 >> 2];
36844 d17 = +HEAPF32[i41 + 8 >> 2];
36845 }
36846 if (d40 >= 0.0) {
36847 d35 = d40;
36848 STACKTOP = i6;
36849 return +d35;
36850 }
36851 d40 = d19 * +HEAPF32[i11 >> 2] + d32 * +HEAPF32[i16 >> 2] + d33 * +HEAPF32[i21 >> 2];
36852 d17 = +Math_sqrt(+d34);
36853 d12 = d40 / d34;
36854 d34 = d19 * d12;
36855 d19 = d32 * d12;
36856 d32 = d33 * d12;
36857 HEAP32[i5 >> 2] = 7;
36858 d12 = +HEAPF32[i13 >> 2] - d34;
36859 d33 = +HEAPF32[i18 >> 2] - d19;
36860 d40 = +HEAPF32[i23 >> 2] - d32;
36861 d15 = d29 * d40 - d31 * d33;
36862 d25 = d31 * d12 - d27 * d40;
36863 d40 = d27 * d33 - d29 * d12;
36864 d12 = +Math_sqrt(+(d40 * d40 + (d15 * d15 + d25 * d25))) / d17;
36865 HEAPF32[i4 >> 2] = d12;
36866 d25 = +HEAPF32[i2 >> 2] - d34;
36867 d15 = +HEAPF32[i28 >> 2] - d19;
36868 d40 = +HEAPF32[i30 >> 2] - d32;
36869 d29 = d26 * d40 - d14 * d15;
36870 d33 = d14 * d25 - d24 * d40;
36871 d40 = d24 * d15 - d26 * d25;
36872 d25 = +Math_sqrt(+(d40 * d40 + (d29 * d29 + d33 * d33))) / d17;
36873 HEAPF32[i4 + 4 >> 2] = d25;
36874 HEAPF32[i4 + 8 >> 2] = 1.0 - (d12 + d25);
36875 d35 = d32 * d32 + (d34 * d34 + d19 * d19);
36876 STACKTOP = i6;
36877 return +d35;
36878 }
36879 function __ZN28btCompoundCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
36880 i1 = i1 | 0;
36881 i2 = i2 | 0;
36882 i3 = i3 | 0;
36883 i4 = i4 | 0;
36884 i5 = i5 | 0;
36885 var i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, i45 = 0, i46 = 0, d47 = 0.0, d48 = 0.0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0;
36886 i6 = (HEAP8[i1 + 28 | 0] | 0) != 0;
36887 i7 = i6 ? i3 : i2;
36888 i8 = i6 ? i2 : i3;
36889 i3 = i7 + 192 | 0;
36890 i2 = HEAP32[i1 + 12 >> 2] | 0;
36891 if ((i2 | 0) <= 0) {
36892 d9 = 1.0;
36893 return +d9;
36894 }
36895 i6 = HEAP32[i3 >> 2] | 0;
36896 i10 = i6 + 24 | 0;
36897 i11 = i7 + 4 | 0;
36898 i12 = i7 + 8 | 0;
36899 i13 = i7 + 12 | 0;
36900 i14 = i7 + 16 | 0;
36901 i15 = i7 + 20 | 0;
36902 i16 = i7 + 24 | 0;
36903 i17 = i7 + 28 | 0;
36904 i18 = i7 + 32 | 0;
36905 i19 = i7 + 36 | 0;
36906 i20 = i7 + 40 | 0;
36907 i21 = i7 + 44 | 0;
36908 i22 = i7 + 48 | 0;
36909 i23 = i7 + 52 | 0;
36910 i24 = i7 + 56 | 0;
36911 i25 = i7 + 60 | 0;
36912 i26 = i7 + 64 | 0;
36913 i27 = i1 + 20 | 0;
36914 d28 = +HEAPF32[i11 >> 2];
36915 d29 = +HEAPF32[i12 >> 2];
36916 d30 = +HEAPF32[i13 >> 2];
36917 d31 = +HEAPF32[i14 >> 2];
36918 d32 = +HEAPF32[i15 >> 2];
36919 d33 = +HEAPF32[i16 >> 2];
36920 d34 = +HEAPF32[i17 >> 2];
36921 d35 = +HEAPF32[i18 >> 2];
36922 d36 = +HEAPF32[i19 >> 2];
36923 d37 = +HEAPF32[i20 >> 2];
36924 d38 = +HEAPF32[i21 >> 2];
36925 d39 = +HEAPF32[i22 >> 2];
36926 d40 = +HEAPF32[i23 >> 2];
36927 d41 = +HEAPF32[i24 >> 2];
36928 d42 = +HEAPF32[i25 >> 2];
36929 d43 = +HEAPF32[i26 >> 2];
36930 i1 = 0;
36931 d44 = 1.0;
36932 while (1) {
36933 i45 = HEAP32[i10 >> 2] | 0;
36934 i46 = HEAP32[i45 + (i1 * 80 | 0) + 64 >> 2] | 0;
36935 d47 = +HEAPF32[i45 + (i1 * 80 | 0) >> 2];
36936 d48 = +HEAPF32[i45 + (i1 * 80 | 0) + 16 >> 2];
36937 d49 = +HEAPF32[i45 + (i1 * 80 | 0) + 32 >> 2];
36938 d50 = +HEAPF32[i45 + (i1 * 80 | 0) + 4 >> 2];
36939 d51 = +HEAPF32[i45 + (i1 * 80 | 0) + 20 >> 2];
36940 d52 = +HEAPF32[i45 + (i1 * 80 | 0) + 36 >> 2];
36941 d53 = +HEAPF32[i45 + (i1 * 80 | 0) + 8 >> 2];
36942 d54 = +HEAPF32[i45 + (i1 * 80 | 0) + 24 >> 2];
36943 d55 = +HEAPF32[i45 + (i1 * 80 | 0) + 40 >> 2];
36944 d56 = +HEAPF32[i45 + (i1 * 80 | 0) + 48 >> 2];
36945 d57 = +HEAPF32[i45 + (i1 * 80 | 0) + 52 >> 2];
36946 d58 = +HEAPF32[i45 + (i1 * 80 | 0) + 56 >> 2];
36947 HEAPF32[i11 >> 2] = d28 * d47 + d29 * d48 + d30 * d49;
36948 HEAPF32[i12 >> 2] = d28 * d50 + d29 * d51 + d30 * d52;
36949 HEAPF32[i13 >> 2] = d28 * d53 + d29 * d54 + d30 * d55;
36950 HEAPF32[i14 >> 2] = 0.0;
36951 HEAPF32[i15 >> 2] = d32 * d47 + d33 * d48 + d34 * d49;
36952 HEAPF32[i16 >> 2] = d32 * d50 + d33 * d51 + d34 * d52;
36953 HEAPF32[i17 >> 2] = d32 * d53 + d33 * d54 + d34 * d55;
36954 HEAPF32[i18 >> 2] = 0.0;
36955 HEAPF32[i19 >> 2] = d36 * d47 + d37 * d48 + d38 * d49;
36956 HEAPF32[i20 >> 2] = d36 * d50 + d37 * d51 + d38 * d52;
36957 HEAPF32[i21 >> 2] = d36 * d53 + d37 * d54 + d38 * d55;
36958 HEAPF32[i22 >> 2] = 0.0;
36959 HEAPF32[i23 >> 2] = d40 + (d28 * d56 + d29 * d57 + d30 * d58);
36960 HEAPF32[i24 >> 2] = d41 + (d32 * d56 + d33 * d57 + d34 * d58);
36961 HEAPF32[i25 >> 2] = d42 + (d36 * d56 + d37 * d57 + d38 * d58);
36962 HEAPF32[i26 >> 2] = 0.0;
36963 HEAP32[i3 >> 2] = i46;
36964 i46 = HEAP32[(HEAP32[i27 >> 2] | 0) + (i1 << 2) >> 2] | 0;
36965 d58 = +FUNCTION_TABLE_fiiiii[HEAP32[(HEAP32[i46 >> 2] | 0) + 12 >> 2] & 31](i46, i7, i8, i4, i5);
36966 d57 = d58 < d44 ? d58 : d44;
36967 HEAP32[i3 >> 2] = i6;
36968 HEAPF32[i11 >> 2] = d28;
36969 HEAPF32[i12 >> 2] = d29;
36970 HEAPF32[i13 >> 2] = d30;
36971 HEAPF32[i14 >> 2] = d31;
36972 HEAPF32[i15 >> 2] = d32;
36973 HEAPF32[i16 >> 2] = d33;
36974 HEAPF32[i17 >> 2] = d34;
36975 HEAPF32[i18 >> 2] = d35;
36976 HEAPF32[i19 >> 2] = d36;
36977 HEAPF32[i20 >> 2] = d37;
36978 HEAPF32[i21 >> 2] = d38;
36979 HEAPF32[i22 >> 2] = d39;
36980 HEAPF32[i23 >> 2] = d40;
36981 HEAPF32[i24 >> 2] = d41;
36982 HEAPF32[i25 >> 2] = d42;
36983 HEAPF32[i26 >> 2] = d43;
36984 i46 = i1 + 1 | 0;
36985 if ((i46 | 0) < (i2 | 0)) {
36986 i1 = i46;
36987 d44 = d57;
36988 } else {
36989 d9 = d57;
36990 break;
36991 }
36992 }
36993 return +d9;
36994 }
36995 function __ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i1, i2, i3, i4, i5) {
36996 i1 = i1 | 0;
36997 i2 = i2 | 0;
36998 i3 = i3 | 0;
36999 i4 = i4 | 0;
37000 i5 = i5 | 0;
37001 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, d16 = 0.0, d17 = 0.0, i18 = 0, i19 = 0, d20 = 0.0, d21 = 0.0, i22 = 0, d23 = 0.0, d24 = 0.0, d25 = 0.0, i26 = 0, i27 = 0, d28 = 0.0, i29 = 0, i30 = 0, i31 = 0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0;
37002 i6 = i1 + 9800 | 0;
37003 i7 = HEAP32[i6 >> 2] | 0;
37004 if ((i7 | 0) == 0) {
37005 HEAP32[i1 >> 2] = 5;
37006 i8 = 0;
37007 return i8 | 0;
37008 }
37009 i9 = i7 + 52 | 0;
37010 i10 = HEAP32[i9 >> 2] | 0;
37011 i11 = i7 + 48 | 0;
37012 if ((i10 | 0) != 0) {
37013 HEAP32[i10 + 48 >> 2] = HEAP32[i11 >> 2];
37014 }
37015 i10 = HEAP32[i11 >> 2] | 0;
37016 if ((i10 | 0) != 0) {
37017 HEAP32[i10 + 52 >> 2] = HEAP32[i9 >> 2];
37018 }
37019 if ((HEAP32[i6 >> 2] | 0) == (i7 | 0)) {
37020 HEAP32[i6 >> 2] = HEAP32[i9 >> 2];
37021 }
37022 i10 = i1 + 9804 | 0;
37023 HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) - 1;
37024 HEAP32[i11 >> 2] = 0;
37025 i12 = i1 + 9792 | 0;
37026 HEAP32[i9 >> 2] = HEAP32[i12 >> 2];
37027 i13 = HEAP32[i12 >> 2] | 0;
37028 if ((i13 | 0) != 0) {
37029 HEAP32[i13 + 48 >> 2] = i7;
37030 }
37031 HEAP32[i12 >> 2] = i7;
37032 i13 = i1 + 9796 | 0;
37033 HEAP32[i13 >> 2] = (HEAP32[i13 >> 2] | 0) + 1;
37034 HEAP8[i7 + 59 | 0] = 0;
37035 HEAP32[i7 + 24 >> 2] = i2;
37036 HEAP32[i7 + 28 >> 2] = i3;
37037 HEAP32[i7 + 32 >> 2] = i4;
37038 i14 = i3 + 16 | 0;
37039 i15 = i2 + 16 | 0;
37040 d16 = +HEAPF32[i15 >> 2];
37041 d17 = +HEAPF32[i14 >> 2] - d16;
37042 i18 = i3 + 20 | 0;
37043 i19 = i2 + 20 | 0;
37044 d20 = +HEAPF32[i19 >> 2];
37045 d21 = +HEAPF32[i18 >> 2] - d20;
37046 i22 = i3 + 24 | 0;
37047 i3 = i2 + 24 | 0;
37048 d23 = +HEAPF32[i3 >> 2];
37049 d24 = +HEAPF32[i22 >> 2] - d23;
37050 i2 = i4 + 16 | 0;
37051 d25 = +HEAPF32[i2 >> 2] - d16;
37052 i26 = i4 + 20 | 0;
37053 d16 = +HEAPF32[i26 >> 2] - d20;
37054 i27 = i4 + 24 | 0;
37055 d20 = +HEAPF32[i27 >> 2] - d23;
37056 d23 = d21 * d20 - d24 * d16;
37057 d28 = d24 * d25 - d17 * d20;
37058 d20 = d17 * d16 - d21 * d25;
37059 i4 = i7 | 0;
37060 HEAPF32[i4 >> 2] = d23;
37061 i29 = i7 + 4 | 0;
37062 HEAPF32[i29 >> 2] = d28;
37063 i30 = i7 + 8 | 0;
37064 HEAPF32[i30 >> 2] = d20;
37065 HEAPF32[i7 + 12 >> 2] = 0.0;
37066 d25 = +Math_sqrt(+(d20 * d20 + (d23 * d23 + d28 * d28)));
37067 i31 = d25 > 9999999747378752.0e-20;
37068 d21 = +HEAPF32[i15 >> 2];
37069 d16 = +HEAPF32[i14 >> 2];
37070 d17 = d21 - d16;
37071 d24 = +HEAPF32[i19 >> 2];
37072 d32 = +HEAPF32[i18 >> 2];
37073 d33 = d24 - d32;
37074 d34 = +HEAPF32[i3 >> 2];
37075 d35 = +HEAPF32[i22 >> 2];
37076 d36 = d34 - d35;
37077 d37 = d34 * (d23 * d33 - d28 * d17) + (d21 * (d28 * d36 - d20 * d33) + d24 * (d20 * d17 - d23 * d36));
37078 d36 = +HEAPF32[i2 >> 2];
37079 d17 = d16 - d36;
37080 d33 = +HEAPF32[i26 >> 2];
37081 d38 = d32 - d33;
37082 d39 = +HEAPF32[i27 >> 2];
37083 d40 = d35 - d39;
37084 d41 = d35 * (d23 * d38 - d28 * d17) + (d16 * (d28 * d40 - d20 * d38) + d32 * (d20 * d17 - d23 * d40));
37085 d40 = d36 - d21;
37086 d21 = d33 - d24;
37087 d24 = d39 - d34;
37088 d34 = d39 * (d23 * d21 - d28 * d40) + (d36 * (d28 * d24 - d20 * d21) + d33 * (d20 * d40 - d23 * d24));
37089 d24 = d37 < d41 ? d37 : d41;
37090 d41 = (d24 < d34 ? d24 : d34) / (i31 ? d25 : 1.0);
37091 HEAPF32[i7 + 20 >> 2] = d41 < -.009999999776482582 ? d41 : 0.0;
37092 do {
37093 if (i31) {
37094 d41 = (d23 * +HEAPF32[i15 >> 2] + d28 * +HEAPF32[i19 >> 2] + d20 * +HEAPF32[i3 >> 2]) / d25;
37095 HEAPF32[i7 + 16 >> 2] = d41;
37096 d34 = 1.0 / d25;
37097 HEAPF32[i4 >> 2] = d23 * d34;
37098 HEAPF32[i29 >> 2] = d28 * d34;
37099 HEAPF32[i30 >> 2] = d20 * d34;
37100 if (d41 < -9999999747378752.0e-21 & (i5 ^ 1)) {
37101 HEAP32[i1 >> 2] = 3;
37102 break;
37103 } else {
37104 i8 = i7;
37105 return i8 | 0;
37106 }
37107 } else {
37108 HEAP32[i1 >> 2] = 2;
37109 }
37110 } while (0);
37111 i1 = HEAP32[i9 >> 2] | 0;
37112 if ((i1 | 0) != 0) {
37113 HEAP32[i1 + 48 >> 2] = HEAP32[i11 >> 2];
37114 }
37115 i1 = HEAP32[i11 >> 2] | 0;
37116 if ((i1 | 0) != 0) {
37117 HEAP32[i1 + 52 >> 2] = HEAP32[i9 >> 2];
37118 }
37119 if ((HEAP32[i12 >> 2] | 0) == (i7 | 0)) {
37120 HEAP32[i12 >> 2] = HEAP32[i9 >> 2];
37121 }
37122 HEAP32[i13 >> 2] = (HEAP32[i13 >> 2] | 0) - 1;
37123 HEAP32[i11 >> 2] = 0;
37124 HEAP32[i9 >> 2] = HEAP32[i6 >> 2];
37125 i9 = HEAP32[i6 >> 2] | 0;
37126 if ((i9 | 0) != 0) {
37127 HEAP32[i9 + 48 >> 2] = i7;
37128 }
37129 HEAP32[i6 >> 2] = i7;
37130 HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + 1;
37131 i8 = 0;
37132 return i8 | 0;
37133 }
37134 function __ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4_(i1, i2, i3, i4) {
37135 i1 = i1 | 0;
37136 i2 = i2 | 0;
37137 i3 = i3 | 0;
37138 i4 = i4 | 0;
37139 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, d12 = 0.0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0;
37140 i5 = STACKTOP;
37141 STACKTOP = STACKTOP + 96 | 0;
37142 i6 = i5 | 0;
37143 i7 = i5 + 16 | 0;
37144 i8 = i5 + 32 | 0;
37145 i9 = i5 + 48 | 0;
37146 i10 = i5 + 64 | 0;
37147 i11 = i5 + 80 | 0;
37148 d12 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i1 >> 2] | 0) + 44 >> 2] & 7](i1);
37149 i13 = i6 | 0;
37150 i14 = i6 + 4 | 0;
37151 i15 = i6 + 8 | 0;
37152 i16 = i1;
37153 i17 = i2 | 0;
37154 i18 = i2 + 16 | 0;
37155 i19 = i2 + 32 | 0;
37156 i20 = i2 + 4 | 0;
37157 i21 = i2 + 20 | 0;
37158 i22 = i2 + 36 | 0;
37159 i23 = i2 + 8 | 0;
37160 i24 = i2 + 24 | 0;
37161 i25 = i2 + 40 | 0;
37162 i26 = i8 | 0;
37163 i27 = i8 + 4 | 0;
37164 i28 = i8 + 8 | 0;
37165 i29 = i8 + 12 | 0;
37166 i30 = i7 | 0;
37167 i31 = i7 + 4 | 0;
37168 i32 = i7 + 8 | 0;
37169 i33 = i2 + 48 | 0;
37170 i34 = i2 + 52 | 0;
37171 i35 = i2 + 56 | 0;
37172 i2 = i9 | 0;
37173 i36 = i9 + 4 | 0;
37174 i37 = i9 + 8 | 0;
37175 i38 = i9 + 12 | 0;
37176 i39 = i11 | 0;
37177 i40 = i11 + 4 | 0;
37178 i41 = i11 + 8 | 0;
37179 i42 = i11 + 12 | 0;
37180 i43 = i10 | 0;
37181 i44 = i10 + 4 | 0;
37182 i45 = i10 + 8 | 0;
37183 i46 = i6;
37184 i47 = 0;
37185 do {
37186 i48 = i6 + (i47 << 2) | 0;
37187 _memset(i46 | 0, 0, 16);
37188 HEAPF32[i48 >> 2] = 1.0;
37189 i49 = HEAP32[(HEAP32[i16 >> 2] | 0) + 60 >> 2] | 0;
37190 d50 = +HEAPF32[i13 >> 2];
37191 d51 = +HEAPF32[i14 >> 2];
37192 d52 = +HEAPF32[i15 >> 2];
37193 d53 = d50 * +HEAPF32[i20 >> 2] + d51 * +HEAPF32[i21 >> 2] + d52 * +HEAPF32[i22 >> 2];
37194 d54 = d50 * +HEAPF32[i23 >> 2] + d51 * +HEAPF32[i24 >> 2] + d52 * +HEAPF32[i25 >> 2];
37195 HEAPF32[i26 >> 2] = +HEAPF32[i17 >> 2] * d50 + +HEAPF32[i18 >> 2] * d51 + +HEAPF32[i19 >> 2] * d52;
37196 HEAPF32[i27 >> 2] = d53;
37197 HEAPF32[i28 >> 2] = d54;
37198 HEAPF32[i29 >> 2] = 0.0;
37199 FUNCTION_TABLE_viii[i49 & 127](i7, i1, i8);
37200 d54 = +HEAPF32[i30 >> 2];
37201 d53 = +HEAPF32[i31 >> 2];
37202 d52 = +HEAPF32[i32 >> 2];
37203 d51 = +HEAPF32[i34 >> 2] + (d54 * +HEAPF32[i18 >> 2] + d53 * +HEAPF32[i21 >> 2] + d52 * +HEAPF32[i24 >> 2]);
37204 d50 = +HEAPF32[i35 >> 2] + (d54 * +HEAPF32[i19 >> 2] + d53 * +HEAPF32[i22 >> 2] + d52 * +HEAPF32[i25 >> 2]);
37205 HEAPF32[i2 >> 2] = +HEAPF32[i33 >> 2] + (+HEAPF32[i17 >> 2] * d54 + +HEAPF32[i20 >> 2] * d53 + +HEAPF32[i23 >> 2] * d52);
37206 HEAPF32[i36 >> 2] = d51;
37207 HEAPF32[i37 >> 2] = d50;
37208 HEAPF32[i38 >> 2] = 0.0;
37209 i49 = i9 + (i47 << 2) | 0;
37210 HEAPF32[i4 + (i47 << 2) >> 2] = d12 + +HEAPF32[i49 >> 2];
37211 HEAPF32[i48 >> 2] = -1.0;
37212 i48 = HEAP32[(HEAP32[i16 >> 2] | 0) + 60 >> 2] | 0;
37213 d50 = +HEAPF32[i13 >> 2];
37214 d51 = +HEAPF32[i14 >> 2];
37215 d52 = +HEAPF32[i15 >> 2];
37216 d53 = d50 * +HEAPF32[i20 >> 2] + d51 * +HEAPF32[i21 >> 2] + d52 * +HEAPF32[i22 >> 2];
37217 d54 = d50 * +HEAPF32[i23 >> 2] + d51 * +HEAPF32[i24 >> 2] + d52 * +HEAPF32[i25 >> 2];
37218 HEAPF32[i39 >> 2] = +HEAPF32[i17 >> 2] * d50 + +HEAPF32[i18 >> 2] * d51 + +HEAPF32[i19 >> 2] * d52;
37219 HEAPF32[i40 >> 2] = d53;
37220 HEAPF32[i41 >> 2] = d54;
37221 HEAPF32[i42 >> 2] = 0.0;
37222 FUNCTION_TABLE_viii[i48 & 127](i10, i1, i11);
37223 d54 = +HEAPF32[i43 >> 2];
37224 d53 = +HEAPF32[i44 >> 2];
37225 d52 = +HEAPF32[i45 >> 2];
37226 d51 = +HEAPF32[i34 >> 2] + (d54 * +HEAPF32[i18 >> 2] + d53 * +HEAPF32[i21 >> 2] + d52 * +HEAPF32[i24 >> 2]);
37227 d50 = +HEAPF32[i35 >> 2] + (d54 * +HEAPF32[i19 >> 2] + d53 * +HEAPF32[i22 >> 2] + d52 * +HEAPF32[i25 >> 2]);
37228 HEAPF32[i2 >> 2] = +HEAPF32[i33 >> 2] + (+HEAPF32[i17 >> 2] * d54 + +HEAPF32[i20 >> 2] * d53 + +HEAPF32[i23 >> 2] * d52);
37229 HEAPF32[i36 >> 2] = d51;
37230 HEAPF32[i37 >> 2] = d50;
37231 HEAPF32[i38 >> 2] = 0.0;
37232 HEAPF32[i3 + (i47 << 2) >> 2] = +HEAPF32[i49 >> 2] - d12;
37233 i47 = i47 + 1 | 0;
37234 } while ((i47 | 0) < 3);
37235 STACKTOP = i5;
37236 return;
37237 }
37238 function __ZN28btHashedOverlappingPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher(i1, i2, i3, i4) {
37239 i1 = i1 | 0;
37240 i2 = i2 | 0;
37241 i3 = i3 | 0;
37242 i4 = i4 | 0;
37243 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0;
37244 HEAP32[2984] = (HEAP32[2984] | 0) + 1;
37245 i5 = (HEAP32[i2 + 12 >> 2] | 0) > (HEAP32[i3 + 12 >> 2] | 0);
37246 i6 = i5 ? i3 : i2;
37247 i7 = i5 ? i2 : i3;
37248 i3 = HEAP32[i6 + 12 >> 2] | 0;
37249 i2 = HEAP32[i7 + 12 >> 2] | 0;
37250 i5 = i2 << 16 | i3;
37251 i8 = i5 + ~(i5 << 15) | 0;
37252 i5 = (i8 >> 10 ^ i8) * 9 | 0;
37253 i8 = i5 >> 6 ^ i5;
37254 i5 = i8 + ~(i8 << 11) | 0;
37255 i8 = i1 + 12 | 0;
37256 i9 = (i5 >> 16 ^ i5) & (HEAP32[i8 >> 2] | 0) - 1;
37257 i5 = i1 + 44 | 0;
37258 i10 = HEAP32[(HEAP32[i5 >> 2] | 0) + (i9 << 2) >> 2] | 0;
37259 if ((i10 | 0) == -1) {
37260 i11 = 0;
37261 return i11 | 0;
37262 }
37263 i12 = i1 + 16 | 0;
37264 i13 = HEAP32[i12 >> 2] | 0;
37265 i14 = i1 + 64 | 0;
37266 i15 = i10;
37267 while (1) {
37268 if ((HEAP32[(HEAP32[i13 + (i15 << 4) >> 2] | 0) + 12 >> 2] | 0) == (i3 | 0)) {
37269 if ((HEAP32[(HEAP32[i13 + (i15 << 4) + 4 >> 2] | 0) + 12 >> 2] | 0) == (i2 | 0)) {
37270 break;
37271 }
37272 }
37273 i10 = HEAP32[(HEAP32[i14 >> 2] | 0) + (i15 << 2) >> 2] | 0;
37274 if ((i10 | 0) == -1) {
37275 i11 = 0;
37276 i16 = 1623;
37277 break;
37278 } else {
37279 i15 = i10;
37280 }
37281 }
37282 if ((i16 | 0) == 1623) {
37283 return i11 | 0;
37284 }
37285 i2 = i13 + (i15 << 4) | 0;
37286 if ((i2 | 0) == 0) {
37287 i11 = 0;
37288 return i11 | 0;
37289 }
37290 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i1 >> 2] | 0) + 32 >> 2] & 127](i1, i2, i4);
37291 i3 = HEAP32[i13 + (i15 << 4) + 12 >> 2] | 0;
37292 i15 = i2 - (HEAP32[i12 >> 2] | 0) >> 4;
37293 i2 = (HEAP32[i5 >> 2] | 0) + (i9 << 2) | 0;
37294 i9 = HEAP32[i2 >> 2] | 0;
37295 i13 = HEAP32[i14 >> 2] | 0;
37296 do {
37297 if ((i9 | 0) == (i15 | 0)) {
37298 i17 = HEAP32[i13 + (i15 << 2) >> 2] | 0;
37299 i16 = 1609;
37300 } else {
37301 i10 = i9;
37302 while (1) {
37303 i18 = i13 + (i10 << 2) | 0;
37304 i19 = HEAP32[i18 >> 2] | 0;
37305 if ((i19 | 0) == (i15 | 0)) {
37306 break;
37307 } else {
37308 i10 = i19;
37309 }
37310 }
37311 i19 = HEAP32[i13 + (i15 << 2) >> 2] | 0;
37312 if ((i10 | 0) == -1) {
37313 i17 = i19;
37314 i16 = 1609;
37315 break;
37316 }
37317 HEAP32[i18 >> 2] = i19;
37318 }
37319 } while (0);
37320 if ((i16 | 0) == 1609) {
37321 HEAP32[i2 >> 2] = i17;
37322 }
37323 i17 = i1 + 8 | 0;
37324 i2 = (HEAP32[i17 >> 2] | 0) - 1 | 0;
37325 i18 = HEAP32[i1 + 72 >> 2] | 0;
37326 if ((i18 | 0) != 0) {
37327 i1 = HEAP32[(HEAP32[i18 >> 2] | 0) + 12 >> 2] | 0;
37328 FUNCTION_TABLE_iiiii[i1 & 31](i18, i6, i7, i4) | 0;
37329 }
37330 if ((i2 | 0) == (i15 | 0)) {
37331 HEAP32[i17 >> 2] = (HEAP32[i17 >> 2] | 0) - 1;
37332 i11 = i3;
37333 return i11 | 0;
37334 }
37335 i4 = HEAP32[i12 >> 2] | 0;
37336 i12 = HEAP32[(HEAP32[i4 + (i2 << 4) + 4 >> 2] | 0) + 12 >> 2] << 16 | HEAP32[(HEAP32[i4 + (i2 << 4) >> 2] | 0) + 12 >> 2];
37337 i7 = i12 + ~(i12 << 15) | 0;
37338 i12 = (i7 >> 10 ^ i7) * 9 | 0;
37339 i7 = i12 >> 6 ^ i12;
37340 i12 = i7 + ~(i7 << 11) | 0;
37341 i7 = (i12 >> 16 ^ i12) & (HEAP32[i8 >> 2] | 0) - 1;
37342 i8 = (HEAP32[i5 >> 2] | 0) + (i7 << 2) | 0;
37343 i12 = HEAP32[i8 >> 2] | 0;
37344 i6 = HEAP32[i14 >> 2] | 0;
37345 do {
37346 if ((i12 | 0) == (i2 | 0)) {
37347 i20 = HEAP32[i6 + (i2 << 2) >> 2] | 0;
37348 i16 = 1619;
37349 } else {
37350 i18 = i12;
37351 while (1) {
37352 i21 = i6 + (i18 << 2) | 0;
37353 i1 = HEAP32[i21 >> 2] | 0;
37354 if ((i1 | 0) == (i2 | 0)) {
37355 break;
37356 } else {
37357 i18 = i1;
37358 }
37359 }
37360 i10 = HEAP32[i6 + (i2 << 2) >> 2] | 0;
37361 if ((i18 | 0) == -1) {
37362 i20 = i10;
37363 i16 = 1619;
37364 break;
37365 }
37366 HEAP32[i21 >> 2] = i10;
37367 }
37368 } while (0);
37369 if ((i16 | 0) == 1619) {
37370 HEAP32[i8 >> 2] = i20;
37371 }
37372 i20 = i4 + (i15 << 4) | 0;
37373 i8 = i4 + (i2 << 4) | 0;
37374 HEAP32[i20 >> 2] = HEAP32[i8 >> 2];
37375 HEAP32[i20 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
37376 HEAP32[i20 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
37377 HEAP32[i20 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
37378 i8 = (HEAP32[i5 >> 2] | 0) + (i7 << 2) | 0;
37379 HEAP32[(HEAP32[i14 >> 2] | 0) + (i15 << 2) >> 2] = HEAP32[i8 >> 2];
37380 HEAP32[i8 >> 2] = i15;
37381 HEAP32[i17 >> 2] = (HEAP32[i17 >> 2] | 0) - 1;
37382 i11 = i3;
37383 return i11 | 0;
37384 }
37385 function __Z11cullPoints2iPfiiPi(i1, i2, i3, i4, i5) {
37386 i1 = i1 | 0;
37387 i2 = i2 | 0;
37388 i3 = i3 | 0;
37389 i4 = i4 | 0;
37390 i5 = i5 | 0;
37391 var i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0, d15 = 0.0, d16 = 0.0, i17 = 0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, d33 = 0.0, d34 = 0.0, i35 = 0, d36 = 0.0;
37392 i6 = STACKTOP;
37393 STACKTOP = STACKTOP + 64 | 0;
37394 i7 = i6 | 0;
37395 i8 = i6 + 32 | 0;
37396 if ((i1 | 0) == 1) {
37397 d9 = +HEAPF32[i2 >> 2];
37398 d10 = +HEAPF32[i2 + 4 >> 2];
37399 i11 = 825;
37400 } else if ((i1 | 0) == 2) {
37401 d9 = (+HEAPF32[i2 >> 2] + +HEAPF32[i2 + 8 >> 2]) * .5;
37402 d10 = (+HEAPF32[i2 + 4 >> 2] + +HEAPF32[i2 + 12 >> 2]) * .5;
37403 i11 = 825;
37404 } else {
37405 i12 = i1 - 1 | 0;
37406 if ((i12 | 0) > 0) {
37407 i13 = 0;
37408 d14 = 0.0;
37409 d15 = 0.0;
37410 d16 = 0.0;
37411 while (1) {
37412 i17 = i13 << 1;
37413 d18 = +HEAPF32[i2 + (i17 << 2) >> 2];
37414 d19 = +HEAPF32[i2 + (i17 + 3 << 2) >> 2];
37415 d20 = +HEAPF32[i2 + (i17 + 2 << 2) >> 2];
37416 d21 = +HEAPF32[i2 + ((i17 | 1) << 2) >> 2];
37417 d22 = d18 * d19 - d20 * d21;
37418 d23 = d14 + d22;
37419 d24 = d15 + (d18 + d20) * d22;
37420 d20 = d16 + (d19 + d21) * d22;
37421 i17 = i13 + 1 | 0;
37422 if ((i17 | 0) < (i12 | 0)) {
37423 i13 = i17;
37424 d14 = d23;
37425 d15 = d24;
37426 d16 = d20;
37427 } else {
37428 d25 = d23;
37429 d26 = d24;
37430 d27 = d20;
37431 break;
37432 }
37433 }
37434 } else {
37435 d25 = 0.0;
37436 d26 = 0.0;
37437 d27 = 0.0;
37438 }
37439 i13 = i1 << 1;
37440 d16 = +HEAPF32[i2 + (i13 - 2 << 2) >> 2];
37441 d15 = +HEAPF32[i2 + 4 >> 2];
37442 d14 = +HEAPF32[i2 >> 2];
37443 d20 = +HEAPF32[i2 + (i13 - 1 << 2) >> 2];
37444 d24 = d16 * d15 - d14 * d20;
37445 d23 = d25 + d24;
37446 if (+Math_abs(+d23) > 1.1920928955078125e-7) {
37447 d28 = 1.0 / (d23 * 3.0);
37448 } else {
37449 d28 = 999999984306749400.0;
37450 }
37451 if ((i1 | 0) > 0) {
37452 d9 = (d26 + (d16 + d14) * d24) * d28;
37453 d10 = (d27 + (d15 + d20) * d24) * d28;
37454 i11 = 825;
37455 } else {
37456 i29 = 0;
37457 }
37458 }
37459 if ((i11 | 0) == 825) {
37460 i11 = 0;
37461 while (1) {
37462 i13 = i11 << 1;
37463 HEAPF32[i7 + (i11 << 2) >> 2] = +Math_atan2(+(+HEAPF32[i2 + ((i13 | 1) << 2) >> 2] - d10), +(+HEAPF32[i2 + (i13 << 2) >> 2] - d9));
37464 i13 = i11 + 1 | 0;
37465 if ((i13 | 0) < (i1 | 0)) {
37466 i11 = i13;
37467 } else {
37468 i30 = 0;
37469 break;
37470 }
37471 }
37472 while (1) {
37473 HEAP32[i8 + (i30 << 2) >> 2] = 1;
37474 i11 = i30 + 1 | 0;
37475 if ((i11 | 0) < (i1 | 0)) {
37476 i30 = i11;
37477 } else {
37478 i29 = 1;
37479 break;
37480 }
37481 }
37482 }
37483 i30 = i8 + (i4 << 2) | 0;
37484 HEAP32[i30 >> 2] = 0;
37485 HEAP32[i5 >> 2] = i4;
37486 if ((i3 | 0) <= 1) {
37487 STACKTOP = i6;
37488 return;
37489 }
37490 d9 = 6.2831854820251465 / +(i3 | 0);
37491 d10 = +HEAPF32[i7 + (i4 << 2) >> 2];
37492 if (i29) {
37493 i31 = 1;
37494 i32 = i5;
37495 } else {
37496 i29 = 1;
37497 i11 = i5;
37498 do {
37499 i11 = i11 + 4 | 0;
37500 HEAP32[i11 >> 2] = i4;
37501 HEAP32[i30 >> 2] = 0;
37502 i29 = i29 + 1 | 0;
37503 } while ((i29 | 0) < (i3 | 0));
37504 STACKTOP = i6;
37505 return;
37506 }
37507 do {
37508 i32 = i32 + 4 | 0;
37509 d28 = d10 + d9 * +(i31 | 0);
37510 if (d28 > 3.1415927410125732) {
37511 d33 = d28 - 6.2831854820251465;
37512 } else {
37513 d33 = d28;
37514 }
37515 HEAP32[i32 >> 2] = i4;
37516 i29 = 0;
37517 d28 = 1.0e9;
37518 i30 = i4;
37519 while (1) {
37520 do {
37521 if ((HEAP32[i8 + (i29 << 2) >> 2] | 0) == 0) {
37522 d34 = d28;
37523 i35 = i30;
37524 } else {
37525 d24 = +Math_abs(+(+HEAPF32[i7 + (i29 << 2) >> 2] - d33));
37526 if (d24 > 3.1415927410125732) {
37527 d36 = 6.2831854820251465 - d24;
37528 } else {
37529 d36 = d24;
37530 }
37531 if (d36 >= d28) {
37532 d34 = d28;
37533 i35 = i30;
37534 break;
37535 }
37536 HEAP32[i32 >> 2] = i29;
37537 d34 = d36;
37538 i35 = i29;
37539 }
37540 } while (0);
37541 i11 = i29 + 1 | 0;
37542 if ((i11 | 0) < (i1 | 0)) {
37543 i29 = i11;
37544 d28 = d34;
37545 i30 = i35;
37546 } else {
37547 break;
37548 }
37549 }
37550 HEAP32[i8 + (i35 << 2) >> 2] = 0;
37551 i31 = i31 + 1 | 0;
37552 } while ((i31 | 0) < (i3 | 0));
37553 STACKTOP = i6;
37554 return;
37555 }
37556 function __ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i1, i2, i3, i4) {
37557 i1 = i1 | 0;
37558 i2 = i2 | 0;
37559 i3 = i3 | 0;
37560 i4 = i4 | 0;
37561 var d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0;
37562 if ((i2 | 0) == 0) {
37563 return;
37564 }
37565 d5 = +HEAPF32[i3 >> 2];
37566 d6 = +HEAPF32[i3 + 4 >> 2];
37567 d7 = +HEAPF32[i3 + 8 >> 2];
37568 d8 = +HEAPF32[i3 + 16 >> 2];
37569 d9 = +HEAPF32[i3 + 20 >> 2];
37570 d10 = +HEAPF32[i3 + 24 >> 2];
37571 i3 = __Z22btAlignedAllocInternalji(256, 16) | 0;
37572 i1 = i3;
37573 if ((i3 | 0) != 0) {
37574 HEAP32[i1 >> 2] = i2;
37575 }
37576 i2 = i4;
37577 i3 = 1;
37578 i11 = 64;
37579 i12 = i1;
37580 while (1) {
37581 i1 = i3 - 1 | 0;
37582 i13 = HEAP32[i12 + (i1 << 2) >> 2] | 0;
37583 do {
37584 if (+HEAPF32[i13 >> 2] > d8) {
37585 i14 = i1;
37586 i15 = i11;
37587 i16 = i12;
37588 } else {
37589 if (+HEAPF32[i13 + 16 >> 2] < d5) {
37590 i14 = i1;
37591 i15 = i11;
37592 i16 = i12;
37593 break;
37594 }
37595 if (+HEAPF32[i13 + 4 >> 2] > d9) {
37596 i14 = i1;
37597 i15 = i11;
37598 i16 = i12;
37599 break;
37600 }
37601 if (+HEAPF32[i13 + 20 >> 2] < d6) {
37602 i14 = i1;
37603 i15 = i11;
37604 i16 = i12;
37605 break;
37606 }
37607 if (+HEAPF32[i13 + 8 >> 2] > d10) {
37608 i14 = i1;
37609 i15 = i11;
37610 i16 = i12;
37611 break;
37612 }
37613 if (+HEAPF32[i13 + 24 >> 2] < d7) {
37614 i14 = i1;
37615 i15 = i11;
37616 i16 = i12;
37617 break;
37618 }
37619 i17 = i13 + 40 | 0;
37620 if ((HEAP32[i17 >> 2] | 0) == 0) {
37621 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] & 127](i4, i13);
37622 i14 = i1;
37623 i15 = i11;
37624 i16 = i12;
37625 break;
37626 }
37627 i18 = HEAP32[i13 + 36 >> 2] | 0;
37628 do {
37629 if ((i1 | 0) == (i11 | 0)) {
37630 i19 = (i11 | 0) == 0 ? 1 : i11 << 1;
37631 if ((i11 | 0) >= (i19 | 0)) {
37632 i20 = i11;
37633 i21 = i12;
37634 break;
37635 }
37636 if ((i19 | 0) == 0) {
37637 i22 = 0;
37638 } else {
37639 i22 = __Z22btAlignedAllocInternalji(i19 << 2, 16) | 0;
37640 }
37641 if ((i11 | 0) > 0) {
37642 i23 = 0;
37643 do {
37644 i24 = i22 + (i23 << 2) | 0;
37645 if ((i24 | 0) != 0) {
37646 HEAP32[i24 >> 2] = HEAP32[i12 + (i23 << 2) >> 2];
37647 }
37648 i23 = i23 + 1 | 0;
37649 } while ((i23 | 0) < (i11 | 0));
37650 }
37651 if ((i12 | 0) == 0) {
37652 i20 = i19;
37653 i21 = i22;
37654 break;
37655 }
37656 __Z21btAlignedFreeInternalPv(i12);
37657 i20 = i19;
37658 i21 = i22;
37659 } else {
37660 i20 = i11;
37661 i21 = i12;
37662 }
37663 } while (0);
37664 i23 = i21 + (i1 << 2) | 0;
37665 if ((i23 | 0) != 0) {
37666 HEAP32[i23 >> 2] = i18;
37667 }
37668 i23 = HEAP32[i17 >> 2] | 0;
37669 do {
37670 if ((i3 | 0) == (i20 | 0)) {
37671 i24 = (i3 | 0) == 0 ? 1 : i3 << 1;
37672 if ((i3 | 0) >= (i24 | 0)) {
37673 i25 = i3;
37674 i26 = i21;
37675 break;
37676 }
37677 if ((i24 | 0) == 0) {
37678 i27 = 0;
37679 } else {
37680 i27 = __Z22btAlignedAllocInternalji(i24 << 2, 16) | 0;
37681 }
37682 if ((i3 | 0) > 0) {
37683 i28 = 0;
37684 do {
37685 i29 = i27 + (i28 << 2) | 0;
37686 if ((i29 | 0) != 0) {
37687 HEAP32[i29 >> 2] = HEAP32[i21 + (i28 << 2) >> 2];
37688 }
37689 i28 = i28 + 1 | 0;
37690 } while ((i28 | 0) < (i3 | 0));
37691 }
37692 if ((i21 | 0) == 0) {
37693 i25 = i24;
37694 i26 = i27;
37695 break;
37696 }
37697 __Z21btAlignedFreeInternalPv(i21);
37698 i25 = i24;
37699 i26 = i27;
37700 } else {
37701 i25 = i20;
37702 i26 = i21;
37703 }
37704 } while (0);
37705 i17 = i26 + (i3 << 2) | 0;
37706 if ((i17 | 0) != 0) {
37707 HEAP32[i17 >> 2] = i23;
37708 }
37709 i14 = i3 + 1 | 0;
37710 i15 = i25;
37711 i16 = i26;
37712 }
37713 } while (0);
37714 if ((i14 | 0) > 0) {
37715 i3 = i14;
37716 i11 = i15;
37717 i12 = i16;
37718 } else {
37719 break;
37720 }
37721 }
37722 if ((i16 | 0) == 0) {
37723 return;
37724 }
37725 __Z21btAlignedFreeInternalPv(i16);
37726 return;
37727 }
37728 function __ZNK20btConvexHullInternal11Rational1287compareERKS0_(i1, i2) {
37729 i1 = i1 | 0;
37730 i2 = i2 | 0;
37731 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0;
37732 i3 = STACKTOP;
37733 STACKTOP = STACKTOP + 128 | 0;
37734 i4 = i3 | 0;
37735 i5 = i3 + 16 | 0;
37736 i6 = i3 + 32 | 0;
37737 i7 = i3 + 48 | 0;
37738 i8 = i3 + 64 | 0;
37739 i9 = i3 + 80 | 0;
37740 i10 = i3 + 96 | 0;
37741 i11 = i3 + 112 | 0;
37742 i12 = i1 + 32 | 0;
37743 i13 = HEAP32[i12 >> 2] | 0;
37744 i14 = HEAP32[i2 + 32 >> 2] | 0;
37745 if ((i13 | 0) != (i14 | 0)) {
37746 i15 = i13 - i14 | 0;
37747 STACKTOP = i3;
37748 return i15 | 0;
37749 }
37750 if ((i13 | 0) == 0) {
37751 i15 = 0;
37752 STACKTOP = i3;
37753 return i15 | 0;
37754 }
37755 if ((HEAP8[i1 + 36 | 0] | 0) != 0) {
37756 i14 = i1 | 0;
37757 i16 = ___muldi3(HEAP32[i14 >> 2] | 0, HEAP32[i14 + 4 >> 2] | 0, i13, (i13 | 0) < 0 ? -1 : 0) | 0;
37758 i15 = -(__ZNK20btConvexHullInternal11Rational1287compareEx(i2, i16, tempRet0) | 0) | 0;
37759 STACKTOP = i3;
37760 return i15 | 0;
37761 }
37762 i16 = i8;
37763 i13 = i1;
37764 HEAP32[i16 >> 2] = HEAP32[i13 >> 2];
37765 HEAP32[i16 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
37766 HEAP32[i16 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
37767 HEAP32[i16 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
37768 i13 = i9;
37769 i16 = i2 + 16 | 0;
37770 HEAP32[i13 >> 2] = HEAP32[i16 >> 2];
37771 HEAP32[i13 + 4 >> 2] = HEAP32[i16 + 4 >> 2];
37772 HEAP32[i13 + 8 >> 2] = HEAP32[i16 + 8 >> 2];
37773 HEAP32[i13 + 12 >> 2] = HEAP32[i16 + 12 >> 2];
37774 __ZN20btConvexHullInternal4DMulINS_6Int128EyE3mulES1_S1_RS1_S3_(i8, i9, i4, i5);
37775 i9 = i10;
37776 i8 = i1 + 16 | 0;
37777 HEAP32[i9 >> 2] = HEAP32[i8 >> 2];
37778 HEAP32[i9 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
37779 HEAP32[i9 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
37780 HEAP32[i9 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
37781 i8 = i11;
37782 i9 = i2;
37783 HEAP32[i8 >> 2] = HEAP32[i9 >> 2];
37784 HEAP32[i8 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
37785 HEAP32[i8 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
37786 HEAP32[i8 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
37787 __ZN20btConvexHullInternal4DMulINS_6Int128EyE3mulES1_S1_RS1_S3_(i10, i11, i6, i7);
37788 i11 = i5 + 8 | 0;
37789 i10 = HEAP32[i11 >> 2] | 0;
37790 i9 = HEAP32[i11 + 4 >> 2] | 0;
37791 i11 = i7 + 8 | 0;
37792 i8 = HEAP32[i11 >> 2] | 0;
37793 i2 = HEAP32[i11 + 4 >> 2] | 0;
37794 do {
37795 if (i9 >>> 0 < i2 >>> 0 | i9 >>> 0 == i2 >>> 0 & i10 >>> 0 < i8 >>> 0) {
37796 i17 = -1;
37797 } else {
37798 if (i9 >>> 0 > i2 >>> 0 | i9 >>> 0 == i2 >>> 0 & i10 >>> 0 > i8 >>> 0) {
37799 i17 = 1;
37800 break;
37801 }
37802 i11 = i5 | 0;
37803 i1 = HEAP32[i11 >> 2] | 0;
37804 i16 = HEAP32[i11 + 4 >> 2] | 0;
37805 i11 = i7 | 0;
37806 i13 = HEAP32[i11 >> 2] | 0;
37807 i14 = HEAP32[i11 + 4 >> 2] | 0;
37808 if (i16 >>> 0 < i14 >>> 0 | i16 >>> 0 == i14 >>> 0 & i1 >>> 0 < i13 >>> 0) {
37809 i17 = -1;
37810 break;
37811 }
37812 i11 = i16 >>> 0 > i14 >>> 0 | i16 >>> 0 == i14 >>> 0 & i1 >>> 0 > i13 >>> 0;
37813 if (i11) {
37814 i17 = i11 & 1;
37815 break;
37816 }
37817 i11 = i4 + 8 | 0;
37818 i13 = HEAP32[i11 >> 2] | 0;
37819 i1 = HEAP32[i11 + 4 >> 2] | 0;
37820 i11 = i6 + 8 | 0;
37821 i14 = HEAP32[i11 >> 2] | 0;
37822 i16 = HEAP32[i11 + 4 >> 2] | 0;
37823 do {
37824 if (i1 >>> 0 < i16 >>> 0 | i1 >>> 0 == i16 >>> 0 & i13 >>> 0 < i14 >>> 0) {
37825 i18 = -1;
37826 } else {
37827 if (i1 >>> 0 > i16 >>> 0 | i1 >>> 0 == i16 >>> 0 & i13 >>> 0 > i14 >>> 0) {
37828 i18 = 1;
37829 break;
37830 }
37831 i11 = i4 | 0;
37832 i19 = HEAP32[i11 >> 2] | 0;
37833 i20 = HEAP32[i11 + 4 >> 2] | 0;
37834 i11 = i6 | 0;
37835 i21 = HEAP32[i11 >> 2] | 0;
37836 i22 = HEAP32[i11 + 4 >> 2] | 0;
37837 if (i20 >>> 0 < i22 >>> 0 | i20 >>> 0 == i22 >>> 0 & i19 >>> 0 < i21 >>> 0) {
37838 i18 = -1;
37839 break;
37840 }
37841 i18 = (i20 >>> 0 > i22 >>> 0 | i20 >>> 0 == i22 >>> 0 & i19 >>> 0 > i21 >>> 0) & 1;
37842 }
37843 } while (0);
37844 i15 = Math_imul(HEAP32[i12 >> 2] | 0, i18) | 0;
37845 STACKTOP = i3;
37846 return i15 | 0;
37847 }
37848 } while (0);
37849 i15 = Math_imul(HEAP32[i12 >> 2] | 0, i17) | 0;
37850 STACKTOP = i3;
37851 return i15 | 0;
37852 }
37853 function __ZN23btConvexConvexAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
37854 i1 = i1 | 0;
37855 i2 = i2 | 0;
37856 i3 = i3 | 0;
37857 i4 = i4 | 0;
37858 i5 = i5 | 0;
37859 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0, d15 = 0.0, d16 = 0.0, i17 = 0, i18 = 0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, i25 = 0, i26 = 0, i27 = 0, d28 = 0.0, d29 = 0.0;
37860 i5 = STACKTOP;
37861 STACKTOP = STACKTOP + 1216 | 0;
37862 i4 = i5 | 0;
37863 i1 = i5 + 56 | 0;
37864 i6 = i5 + 232 | 0;
37865 i7 = i5 + 592 | 0;
37866 i8 = i5 + 608 | 0;
37867 i9 = i5 + 664 | 0;
37868 i10 = i5 + 840 | 0;
37869 i11 = i5 + 1200 | 0;
37870 i12 = i2 + 68 | 0;
37871 i13 = i2 + 4 | 0;
37872 d14 = +HEAPF32[i2 + 116 >> 2] - +HEAPF32[i2 + 52 >> 2];
37873 d15 = +HEAPF32[i2 + 120 >> 2] - +HEAPF32[i2 + 56 >> 2];
37874 d16 = +HEAPF32[i2 + 124 >> 2] - +HEAPF32[i2 + 60 >> 2];
37875 i17 = i3 + 68 | 0;
37876 i18 = i3 + 4 | 0;
37877 d19 = +HEAPF32[i3 + 116 >> 2] - +HEAPF32[i3 + 52 >> 2];
37878 d20 = +HEAPF32[i3 + 120 >> 2] - +HEAPF32[i3 + 56 >> 2];
37879 d21 = +HEAPF32[i3 + 124 >> 2] - +HEAPF32[i3 + 60 >> 2];
37880 d22 = +HEAPF32[i2 + 248 >> 2];
37881 do {
37882 if (d14 * d14 + d15 * d15 + d16 * d16 < d22 * d22) {
37883 d23 = +HEAPF32[i3 + 248 >> 2];
37884 if (d19 * d19 + d20 * d20 + d21 * d21 >= d23 * d23 & (HEAP8[12056] | 0) == 0) {
37885 break;
37886 } else {
37887 d24 = 1.0;
37888 }
37889 STACKTOP = i5;
37890 return +d24;
37891 } else {
37892 if ((HEAP8[12056] | 0) == 0) {
37893 break;
37894 } else {
37895 d24 = 1.0;
37896 }
37897 STACKTOP = i5;
37898 return +d24;
37899 }
37900 } while (0);
37901 i25 = HEAP32[i2 + 192 >> 2] | 0;
37902 d21 = +HEAPF32[i3 + 244 >> 2];
37903 __ZN21btConvexInternalShapeC2Ev(i4 | 0);
37904 HEAP32[i4 >> 2] = 4728;
37905 HEAP32[i4 + 4 >> 2] = 8;
37906 HEAPF32[i4 + 28 >> 2] = d21;
37907 HEAPF32[i4 + 44 >> 2] = d21;
37908 HEAP32[i1 >> 2] = 2280;
37909 i26 = i1 + 164 | 0;
37910 HEAPF32[i26 >> 2] = 999999984306749400.0;
37911 HEAP32[i1 + 168 >> 2] = 0;
37912 HEAPF32[i1 + 172 >> 2] = 0.0;
37913 HEAPF32[i6 + 308 >> 2] = 9999999747378752.0e-20;
37914 HEAP16[i6 + 332 >> 1] = 0;
37915 i27 = i4 | 0;
37916 __ZN15btGjkConvexCastC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolver(i7, i25, i27, i6);
37917 do {
37918 if (__ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7, i13, i12, i18, i17, i1) | 0) {
37919 i6 = i2 + 240 | 0;
37920 d21 = +HEAPF32[i26 >> 2];
37921 if (+HEAPF32[i6 >> 2] > d21) {
37922 HEAPF32[i6 >> 2] = d21;
37923 }
37924 i6 = i3 + 240 | 0;
37925 if (+HEAPF32[i6 >> 2] > d21) {
37926 HEAPF32[i6 >> 2] = d21;
37927 }
37928 if (d21 >= 1.0) {
37929 d28 = 1.0;
37930 break;
37931 }
37932 d28 = d21;
37933 } else {
37934 d28 = 1.0;
37935 }
37936 } while (0);
37937 __ZN12btConvexCastD2Ev(i7 | 0);
37938 __ZN13btConvexShapeD2Ev(i27);
37939 i27 = HEAP32[i3 + 192 >> 2] | 0;
37940 d21 = +HEAPF32[i2 + 244 >> 2];
37941 __ZN21btConvexInternalShapeC2Ev(i8 | 0);
37942 HEAP32[i8 >> 2] = 4728;
37943 HEAP32[i8 + 4 >> 2] = 8;
37944 HEAPF32[i8 + 28 >> 2] = d21;
37945 HEAPF32[i8 + 44 >> 2] = d21;
37946 HEAP32[i9 >> 2] = 2280;
37947 i7 = i9 + 164 | 0;
37948 HEAPF32[i7 >> 2] = 999999984306749400.0;
37949 HEAP32[i9 + 168 >> 2] = 0;
37950 HEAPF32[i9 + 172 >> 2] = 0.0;
37951 HEAPF32[i10 + 308 >> 2] = 9999999747378752.0e-20;
37952 HEAP16[i10 + 332 >> 1] = 0;
37953 i26 = i8 | 0;
37954 __ZN15btGjkConvexCastC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolver(i11, i26, i27, i10);
37955 do {
37956 if (__ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i11, i13, i12, i18, i17, i9) | 0) {
37957 i10 = i2 + 240 | 0;
37958 d21 = +HEAPF32[i7 >> 2];
37959 if (+HEAPF32[i10 >> 2] > d21) {
37960 HEAPF32[i10 >> 2] = d21;
37961 }
37962 i10 = i3 + 240 | 0;
37963 if (+HEAPF32[i10 >> 2] > d21) {
37964 HEAPF32[i10 >> 2] = d21;
37965 }
37966 if (d28 <= d21) {
37967 d29 = d28;
37968 break;
37969 }
37970 d29 = d21;
37971 } else {
37972 d29 = d28;
37973 }
37974 } while (0);
37975 __ZN12btConvexCastD2Ev(i11 | 0);
37976 __ZN13btConvexShapeD2Ev(i26);
37977 d24 = d29;
37978 STACKTOP = i5;
37979 return +d24;
37980 }
37981 function __ZNK20btConvexHullInternal11Rational1287compareEx(i1, i2, i3) {
37982 i1 = i1 | 0;
37983 i2 = i2 | 0;
37984 i3 = i3 | 0;
37985 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0;
37986 if ((HEAP8[i1 + 36 | 0] | 0) != 0) {
37987 i4 = HEAP32[i1 + 32 >> 2] | 0;
37988 i5 = i1 | 0;
37989 i6 = ___muldi3(i4, (i4 | 0) < 0 ? -1 : 0, HEAP32[i5 >> 2] | 0, HEAP32[i5 + 4 >> 2] | 0) | 0;
37990 i5 = tempRet0;
37991 if ((i5 | 0) > (i3 | 0) | (i5 | 0) == (i3 | 0) & i6 >>> 0 > i2 >>> 0) {
37992 i7 = 1;
37993 return i7 | 0;
37994 }
37995 i7 = ((i5 | 0) < (i3 | 0) | (i5 | 0) == (i3 | 0) & i6 >>> 0 < i2 >>> 0) << 31 >> 31;
37996 return i7 | 0;
37997 }
37998 i6 = 0;
37999 do {
38000 if ((i3 | 0) > (i6 | 0) | (i3 | 0) == (i6 | 0) & i2 >>> 0 > 0 >>> 0) {
38001 i5 = HEAP32[i1 + 32 >> 2] | 0;
38002 if ((i5 | 0) < 1) {
38003 i7 = -1;
38004 } else {
38005 i8 = i3;
38006 i9 = i2;
38007 i10 = i5;
38008 break;
38009 }
38010 return i7 | 0;
38011 } else {
38012 i5 = 0;
38013 i4 = HEAP32[i1 + 32 >> 2] | 0;
38014 if (!((i3 | 0) < (i5 | 0) | (i3 | 0) == (i5 | 0) & i2 >>> 0 < 0 >>> 0)) {
38015 i7 = i4;
38016 return i7 | 0;
38017 }
38018 if ((i4 | 0) > -1) {
38019 i7 = 1;
38020 return i7 | 0;
38021 } else {
38022 i5 = _i64Subtract(0, 0, i2, i3) | 0;
38023 i8 = tempRet0;
38024 i9 = i5;
38025 i10 = i4;
38026 break;
38027 }
38028 }
38029 } while (0);
38030 i3 = i1 + 24 | 0;
38031 i2 = HEAP32[i3 >> 2] | 0;
38032 i6 = HEAP32[i3 + 4 >> 2] | 0;
38033 i3 = 0;
38034 i4 = (i6 | 0) < (i3 | 0) | (i6 | 0) == (i3 | 0) & i2 >>> 0 < 0 >>> 0;
38035 i3 = i1 + 16 | 0;
38036 i5 = HEAP32[i3 >> 2] | 0;
38037 i11 = HEAP32[i3 + 4 >> 2] | 0;
38038 if (i4) {
38039 i3 = _i64Subtract(0, 0, i5, i11) | 0;
38040 i12 = tempRet0;
38041 i13 = _i64Add((i5 | 0) == 0 & (i11 | 0) == 0 & 1, 0, ~i2, ~i6) | 0;
38042 i14 = i12;
38043 i15 = i3;
38044 i16 = tempRet0;
38045 i17 = i13;
38046 } else {
38047 i14 = i11;
38048 i15 = i5;
38049 i16 = i6;
38050 i17 = i2;
38051 }
38052 i2 = 0;
38053 if ((i8 | 0) < (i2 | 0) | (i8 | 0) == (i2 | 0) & i9 >>> 0 < 0 >>> 0) {
38054 i2 = _i64Subtract(0, 0, i9, i8) | 0;
38055 i18 = i4 ^ 1;
38056 i19 = tempRet0;
38057 i20 = i2;
38058 } else {
38059 i18 = i4;
38060 i19 = i8;
38061 i20 = i9;
38062 }
38063 i9 = i15 | 0;
38064 i15 = i14 & 0;
38065 i8 = i20 | 0;
38066 i4 = i19 & 0;
38067 i2 = ___muldi3(i8, i4, i9, i15) | 0;
38068 i6 = tempRet0;
38069 i5 = i19;
38070 i11 = 0;
38071 i13 = ___muldi3(i5, i11, i9, i15) | 0;
38072 i15 = tempRet0;
38073 i9 = i14;
38074 i14 = 0;
38075 i3 = ___muldi3(i8, i4, i9, i14) | 0;
38076 i4 = tempRet0;
38077 i8 = ___muldi3(i5, i11, i9, i14) | 0;
38078 i14 = tempRet0;
38079 i9 = _i64Add(i13 | 0, i15 & 0, i3 | 0, i4 & 0) | 0;
38080 i3 = tempRet0;
38081 i13 = _llvm_uadd_with_overflow_i64(i2 | 0, i6 | 0, 0, i9 | 0) | 0;
38082 i9 = i13;
38083 i13 = tempRet0;
38084 i6 = tempRet1 & 1;
38085 i2 = ___muldi3(i20, i19, i17, i16) | 0;
38086 i16 = _i64Add(i8, i14, i2, tempRet0) | 0;
38087 i2 = _i64Add(i16, tempRet0, i15, 0) | 0;
38088 i15 = _i64Add(i2, tempRet0, i4, 0) | 0;
38089 i4 = _i64Add(i15, tempRet0, i6, 0) | 0;
38090 i6 = _i64Add(i4, tempRet0, i3, 0) | 0;
38091 i3 = tempRet0;
38092 if (i18) {
38093 i18 = _i64Subtract(0, 0, i9, i13) | 0;
38094 i4 = tempRet0;
38095 i15 = _i64Add((i9 | 0) == 0 & (i13 | 0) == 0 & 1, 0, ~i6, ~i3) | 0;
38096 i21 = i4;
38097 i22 = i18;
38098 i23 = tempRet0;
38099 i24 = i15;
38100 } else {
38101 i21 = i13;
38102 i22 = i9;
38103 i23 = i3;
38104 i24 = i6;
38105 }
38106 i6 = i1 + 8 | 0;
38107 i3 = HEAP32[i6 >> 2] | 0;
38108 i9 = HEAP32[i6 + 4 >> 2] | 0;
38109 do {
38110 if (i9 >>> 0 < i23 >>> 0 | i9 >>> 0 == i23 >>> 0 & i3 >>> 0 < i24 >>> 0) {
38111 i25 = -1;
38112 } else {
38113 if (i9 >>> 0 > i23 >>> 0 | i9 >>> 0 == i23 >>> 0 & i3 >>> 0 > i24 >>> 0) {
38114 i25 = 1;
38115 break;
38116 }
38117 i6 = i1 | 0;
38118 i13 = HEAP32[i6 >> 2] | 0;
38119 i15 = HEAP32[i6 + 4 >> 2] | 0;
38120 if (i15 >>> 0 < i21 >>> 0 | i15 >>> 0 == i21 >>> 0 & i13 >>> 0 < i22 >>> 0) {
38121 i25 = -1;
38122 break;
38123 }
38124 i25 = (i15 >>> 0 > i21 >>> 0 | i15 >>> 0 == i21 >>> 0 & i13 >>> 0 > i22 >>> 0) & 1;
38125 }
38126 } while (0);
38127 i7 = Math_imul(i10, i25) | 0;
38128 return i7 | 0;
38129 }
38130 function __ZN31btDefaultCollisionConfigurationD2Ev(i1) {
38131 i1 = i1 | 0;
38132 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
38133 HEAP32[i1 >> 2] = 2608;
38134 if ((HEAP8[i1 + 12 | 0] | 0) != 0) {
38135 i2 = i1 + 8 | 0;
38136 i3 = HEAP32[i2 >> 2] | 0;
38137 i4 = i3 + 8 | 0;
38138 do {
38139 if ((HEAP32[i4 >> 2] | 0) == 0) {
38140 i5 = i3 | 0;
38141 do {
38142 if ((HEAP8[i3 + 16 | 0] | 0) == 0) {
38143 i6 = HEAP32[i5 >> 2] | 0;
38144 if ((i6 | 0) == 0) {
38145 break;
38146 }
38147 __Z21btAlignedFreeInternalPv(i6);
38148 }
38149 } while (0);
38150 HEAP32[i5 >> 2] = 0;
38151 HEAP32[i4 >> 2] = 0;
38152 i6 = HEAP32[i2 >> 2] | 0;
38153 i7 = i6 + 8 | 0;
38154 if ((HEAP32[i7 >> 2] | 0) != 0) {
38155 i8 = i6;
38156 break;
38157 }
38158 i9 = i6 | 0;
38159 do {
38160 if ((HEAP8[i6 + 16 | 0] | 0) == 0) {
38161 i10 = HEAP32[i9 >> 2] | 0;
38162 if ((i10 | 0) == 0) {
38163 break;
38164 }
38165 __Z21btAlignedFreeInternalPv(i10);
38166 }
38167 } while (0);
38168 HEAP32[i9 >> 2] = 0;
38169 HEAP32[i7 >> 2] = 0;
38170 i8 = HEAP32[i2 >> 2] | 0;
38171 } else {
38172 i8 = i3;
38173 }
38174 } while (0);
38175 __Z21btAlignedFreeInternalPv(i8);
38176 }
38177 if ((HEAP8[i1 + 28 | 0] | 0) != 0) {
38178 i8 = i1 + 24 | 0;
38179 __Z21btAlignedFreeInternalPv(HEAP32[(HEAP32[i8 >> 2] | 0) + 16 >> 2] | 0);
38180 __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
38181 }
38182 if ((HEAP8[i1 + 20 | 0] | 0) != 0) {
38183 i8 = i1 + 16 | 0;
38184 __Z21btAlignedFreeInternalPv(HEAP32[(HEAP32[i8 >> 2] | 0) + 16 >> 2] | 0);
38185 __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
38186 }
38187 i8 = i1 + 40 | 0;
38188 i3 = HEAP32[i8 >> 2] | 0;
38189 FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
38190 __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
38191 i8 = i1 + 44 | 0;
38192 i3 = HEAP32[i8 >> 2] | 0;
38193 FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
38194 __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
38195 i8 = i1 + 48 | 0;
38196 i3 = HEAP32[i8 >> 2] | 0;
38197 FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
38198 __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
38199 i8 = i1 + 52 | 0;
38200 i3 = HEAP32[i8 >> 2] | 0;
38201 FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
38202 __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
38203 i8 = i1 + 56 | 0;
38204 i3 = HEAP32[i8 >> 2] | 0;
38205 FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
38206 __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
38207 i8 = i1 + 60 | 0;
38208 i3 = HEAP32[i8 >> 2] | 0;
38209 FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
38210 __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
38211 i8 = i1 + 64 | 0;
38212 i3 = HEAP32[i8 >> 2] | 0;
38213 FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
38214 __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
38215 i8 = i1 + 72 | 0;
38216 i3 = HEAP32[i8 >> 2] | 0;
38217 FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
38218 __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
38219 i8 = i1 + 76 | 0;
38220 i3 = HEAP32[i8 >> 2] | 0;
38221 FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
38222 __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
38223 i8 = i1 + 68 | 0;
38224 i3 = HEAP32[i8 >> 2] | 0;
38225 FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
38226 __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
38227 i8 = i1 + 84 | 0;
38228 i3 = HEAP32[i8 >> 2] | 0;
38229 FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
38230 __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
38231 i8 = i1 + 80 | 0;
38232 i3 = HEAP32[i8 >> 2] | 0;
38233 FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
38234 __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
38235 __Z21btAlignedFreeInternalPv(HEAP32[i1 + 32 >> 2] | 0);
38236 i8 = i1 + 36 | 0;
38237 i1 = HEAP32[i8 >> 2] | 0;
38238 FUNCTION_TABLE_vi[HEAP32[HEAP32[i1 >> 2] >> 2] & 511](i1);
38239 __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
38240 return;
38241 }
38242 function __ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(i1, i2, i3, i4) {
38243 i1 = i1 | 0;
38244 i2 = i2 | 0;
38245 i3 = i3 | 0;
38246 i4 = i4 | 0;
38247 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0;
38248 i5 = STACKTOP;
38249 STACKTOP = STACKTOP + 16 | 0;
38250 i6 = i2;
38251 i2 = STACKTOP;
38252 STACKTOP = STACKTOP + 1 | 0;
38253 STACKTOP = STACKTOP + 7 >> 3 << 3;
38254 HEAP8[i2] = HEAP8[i6] | 0;
38255 i6 = i5 | 0;
38256 i2 = i5 + 8 | 0;
38257 i7 = i1 + 12 | 0;
38258 i8 = HEAP32[i7 >> 2] | 0;
38259 i9 = HEAP32[i8 + (((i4 + i3 | 0) / 2 | 0) << 2) >> 2] | 0;
38260 i10 = i9 + 1108 | 0;
38261 i11 = i9 + 1112 | 0;
38262 i9 = i3;
38263 i12 = i4;
38264 i13 = i8;
38265 while (1) {
38266 i8 = HEAP32[(HEAP32[i10 >> 2] | 0) + 208 >> 2] | 0;
38267 i14 = (i8 | 0) > -1;
38268 if (i14) {
38269 i15 = i9;
38270 while (1) {
38271 i16 = i13 + (i15 << 2) | 0;
38272 i17 = HEAP32[i16 >> 2] | 0;
38273 i18 = HEAP32[(HEAP32[i17 + 1108 >> 2] | 0) + 208 >> 2] | 0;
38274 if ((i18 | 0) > -1) {
38275 i19 = i18;
38276 } else {
38277 i19 = HEAP32[(HEAP32[i17 + 1112 >> 2] | 0) + 208 >> 2] | 0;
38278 }
38279 i18 = i15 + 1 | 0;
38280 if ((i19 | 0) < (i8 | 0)) {
38281 i15 = i18;
38282 } else {
38283 i20 = i15;
38284 i21 = i16;
38285 i22 = i17;
38286 i23 = i18;
38287 break;
38288 }
38289 }
38290 } else {
38291 i15 = i9;
38292 while (1) {
38293 i18 = i13 + (i15 << 2) | 0;
38294 i17 = HEAP32[i18 >> 2] | 0;
38295 i16 = HEAP32[(HEAP32[i17 + 1108 >> 2] | 0) + 208 >> 2] | 0;
38296 if ((i16 | 0) > -1) {
38297 i24 = i16;
38298 } else {
38299 i24 = HEAP32[(HEAP32[i17 + 1112 >> 2] | 0) + 208 >> 2] | 0;
38300 }
38301 i16 = i15 + 1 | 0;
38302 if ((i24 | 0) < (HEAP32[(HEAP32[i11 >> 2] | 0) + 208 >> 2] | 0)) {
38303 i15 = i16;
38304 } else {
38305 i20 = i15;
38306 i21 = i18;
38307 i22 = i17;
38308 i23 = i16;
38309 break;
38310 }
38311 }
38312 }
38313 if (i14) {
38314 i15 = i12;
38315 while (1) {
38316 i16 = HEAP32[i13 + (i15 << 2) >> 2] | 0;
38317 i17 = HEAP32[(HEAP32[i16 + 1108 >> 2] | 0) + 208 >> 2] | 0;
38318 if ((i17 | 0) > -1) {
38319 i25 = i17;
38320 } else {
38321 i25 = HEAP32[(HEAP32[i16 + 1112 >> 2] | 0) + 208 >> 2] | 0;
38322 }
38323 i17 = i15 - 1 | 0;
38324 if ((i8 | 0) < (i25 | 0)) {
38325 i15 = i17;
38326 } else {
38327 i26 = i15;
38328 i27 = i16;
38329 i28 = i17;
38330 break;
38331 }
38332 }
38333 } else {
38334 i15 = i12;
38335 while (1) {
38336 i8 = HEAP32[i13 + (i15 << 2) >> 2] | 0;
38337 i14 = HEAP32[(HEAP32[i8 + 1108 >> 2] | 0) + 208 >> 2] | 0;
38338 if ((i14 | 0) > -1) {
38339 i29 = i14;
38340 } else {
38341 i29 = HEAP32[(HEAP32[i8 + 1112 >> 2] | 0) + 208 >> 2] | 0;
38342 }
38343 i14 = i15 - 1 | 0;
38344 if ((HEAP32[(HEAP32[i11 >> 2] | 0) + 208 >> 2] | 0) < (i29 | 0)) {
38345 i15 = i14;
38346 } else {
38347 i26 = i15;
38348 i27 = i8;
38349 i28 = i14;
38350 break;
38351 }
38352 }
38353 }
38354 if ((i20 | 0) > (i26 | 0)) {
38355 i30 = i20;
38356 i31 = i26;
38357 } else {
38358 HEAP32[i21 >> 2] = i27;
38359 HEAP32[(HEAP32[i7 >> 2] | 0) + (i26 << 2) >> 2] = i22;
38360 i30 = i23;
38361 i31 = i28;
38362 }
38363 if ((i30 | 0) > (i31 | 0)) {
38364 break;
38365 }
38366 i9 = i30;
38367 i12 = i31;
38368 i13 = HEAP32[i7 >> 2] | 0;
38369 }
38370 if ((i31 | 0) > (i3 | 0)) {
38371 __ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(i1, i6, i3, i31);
38372 }
38373 if ((i30 | 0) >= (i4 | 0)) {
38374 STACKTOP = i5;
38375 return;
38376 }
38377 __ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(i1, i2, i30, i4);
38378 STACKTOP = i5;
38379 return;
38380 }
38381 function __ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(i1, i2, i3, i4) {
38382 i1 = i1 | 0;
38383 i2 = i2 | 0;
38384 i3 = i3 | 0;
38385 i4 = i4 | 0;
38386 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0;
38387 i5 = STACKTOP;
38388 STACKTOP = STACKTOP + 16 | 0;
38389 i6 = i2;
38390 i2 = STACKTOP;
38391 STACKTOP = STACKTOP + 1 | 0;
38392 STACKTOP = STACKTOP + 7 >> 3 << 3;
38393 HEAP8[i2] = HEAP8[i6] | 0;
38394 i6 = i5 | 0;
38395 i2 = i5 + 8 | 0;
38396 i7 = i1 + 12 | 0;
38397 i8 = HEAP32[i7 >> 2] | 0;
38398 i9 = HEAP32[i8 + (((i4 + i3 | 0) / 2 | 0) << 2) >> 2] | 0;
38399 i10 = i9 + 24 | 0;
38400 i11 = i9 + 28 | 0;
38401 i9 = i3;
38402 i12 = i4;
38403 i13 = i8;
38404 while (1) {
38405 i8 = HEAP32[(HEAP32[i10 >> 2] | 0) + 208 >> 2] | 0;
38406 i14 = (i8 | 0) > -1;
38407 if (i14) {
38408 i15 = i9;
38409 while (1) {
38410 i16 = i13 + (i15 << 2) | 0;
38411 i17 = HEAP32[i16 >> 2] | 0;
38412 i18 = HEAP32[(HEAP32[i17 + 24 >> 2] | 0) + 208 >> 2] | 0;
38413 if ((i18 | 0) > -1) {
38414 i19 = i18;
38415 } else {
38416 i19 = HEAP32[(HEAP32[i17 + 28 >> 2] | 0) + 208 >> 2] | 0;
38417 }
38418 i18 = i15 + 1 | 0;
38419 if ((i19 | 0) < (i8 | 0)) {
38420 i15 = i18;
38421 } else {
38422 i20 = i15;
38423 i21 = i16;
38424 i22 = i17;
38425 i23 = i18;
38426 break;
38427 }
38428 }
38429 } else {
38430 i15 = i9;
38431 while (1) {
38432 i18 = i13 + (i15 << 2) | 0;
38433 i17 = HEAP32[i18 >> 2] | 0;
38434 i16 = HEAP32[(HEAP32[i17 + 24 >> 2] | 0) + 208 >> 2] | 0;
38435 if ((i16 | 0) > -1) {
38436 i24 = i16;
38437 } else {
38438 i24 = HEAP32[(HEAP32[i17 + 28 >> 2] | 0) + 208 >> 2] | 0;
38439 }
38440 i16 = i15 + 1 | 0;
38441 if ((i24 | 0) < (HEAP32[(HEAP32[i11 >> 2] | 0) + 208 >> 2] | 0)) {
38442 i15 = i16;
38443 } else {
38444 i20 = i15;
38445 i21 = i18;
38446 i22 = i17;
38447 i23 = i16;
38448 break;
38449 }
38450 }
38451 }
38452 if (i14) {
38453 i15 = i12;
38454 while (1) {
38455 i16 = HEAP32[i13 + (i15 << 2) >> 2] | 0;
38456 i17 = HEAP32[(HEAP32[i16 + 24 >> 2] | 0) + 208 >> 2] | 0;
38457 if ((i17 | 0) > -1) {
38458 i25 = i17;
38459 } else {
38460 i25 = HEAP32[(HEAP32[i16 + 28 >> 2] | 0) + 208 >> 2] | 0;
38461 }
38462 i17 = i15 - 1 | 0;
38463 if ((i8 | 0) < (i25 | 0)) {
38464 i15 = i17;
38465 } else {
38466 i26 = i15;
38467 i27 = i16;
38468 i28 = i17;
38469 break;
38470 }
38471 }
38472 } else {
38473 i15 = i12;
38474 while (1) {
38475 i8 = HEAP32[i13 + (i15 << 2) >> 2] | 0;
38476 i14 = HEAP32[(HEAP32[i8 + 24 >> 2] | 0) + 208 >> 2] | 0;
38477 if ((i14 | 0) > -1) {
38478 i29 = i14;
38479 } else {
38480 i29 = HEAP32[(HEAP32[i8 + 28 >> 2] | 0) + 208 >> 2] | 0;
38481 }
38482 i14 = i15 - 1 | 0;
38483 if ((HEAP32[(HEAP32[i11 >> 2] | 0) + 208 >> 2] | 0) < (i29 | 0)) {
38484 i15 = i14;
38485 } else {
38486 i26 = i15;
38487 i27 = i8;
38488 i28 = i14;
38489 break;
38490 }
38491 }
38492 }
38493 if ((i20 | 0) > (i26 | 0)) {
38494 i30 = i20;
38495 i31 = i26;
38496 } else {
38497 HEAP32[i21 >> 2] = i27;
38498 HEAP32[(HEAP32[i7 >> 2] | 0) + (i26 << 2) >> 2] = i22;
38499 i30 = i23;
38500 i31 = i28;
38501 }
38502 if ((i30 | 0) > (i31 | 0)) {
38503 break;
38504 }
38505 i9 = i30;
38506 i12 = i31;
38507 i13 = HEAP32[i7 >> 2] | 0;
38508 }
38509 if ((i31 | 0) > (i3 | 0)) {
38510 __ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(i1, i6, i3, i31);
38511 }
38512 if ((i30 | 0) >= (i4 | 0)) {
38513 STACKTOP = i5;
38514 return;
38515 }
38516 __ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(i1, i2, i30, i4);
38517 STACKTOP = i5;
38518 return;
38519 }
38520 function __ZN21btCollisionDispatcher14getNewManifoldEPvS0_(i1, i2, i3) {
38521 i1 = i1 | 0;
38522 i2 = i2 | 0;
38523 i3 = i3 | 0;
38524 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0;
38525 i4 = STACKTOP;
38526 STACKTOP = STACKTOP + 16 | 0;
38527 i5 = i4 | 0;
38528 i6 = i4 + 8 | 0;
38529 HEAP32[2990] = (HEAP32[2990] | 0) + 1;
38530 i7 = i1 + 4 | 0;
38531 if ((HEAP32[i7 >> 2] & 2 | 0) == 0) {
38532 i8 = 16;
38533 } else {
38534 i9 = HEAP32[i2 + 192 >> 2] | 0;
38535 d10 = +FUNCTION_TABLE_fif[HEAP32[(HEAP32[i9 >> 2] | 0) + 20 >> 2] & 3](i9, +HEAPF32[4]);
38536 HEAPF32[i5 >> 2] = d10;
38537 i9 = HEAP32[i3 + 192 >> 2] | 0;
38538 d11 = +FUNCTION_TABLE_fif[HEAP32[(HEAP32[i9 >> 2] | 0) + 20 >> 2] & 3](i9, +HEAPF32[4]);
38539 HEAPF32[i6 >> 2] = d11;
38540 i8 = d10 < d11 ? i5 : i6;
38541 }
38542 d11 = +HEAPF32[i8 >> 2];
38543 d10 = +HEAPF32[i2 + 184 >> 2];
38544 d12 = +HEAPF32[i3 + 184 >> 2];
38545 d13 = d10 < d12 ? d10 : d12;
38546 i8 = HEAP32[i1 + 196 >> 2] | 0;
38547 i6 = i8 + 8 | 0;
38548 i5 = HEAP32[i6 >> 2] | 0;
38549 do {
38550 if ((i5 | 0) == 0) {
38551 if ((HEAP32[i7 >> 2] & 4 | 0) == 0) {
38552 i14 = __Z22btAlignedAllocInternalji(1140, 16) | 0;
38553 break;
38554 } else {
38555 i15 = 0;
38556 STACKTOP = i4;
38557 return i15 | 0;
38558 }
38559 } else {
38560 i9 = i8 + 12 | 0;
38561 i16 = HEAP32[i9 >> 2] | 0;
38562 HEAP32[i9 >> 2] = HEAP32[i16 >> 2];
38563 HEAP32[i6 >> 2] = i5 - 1;
38564 i14 = i16;
38565 }
38566 } while (0);
38567 i5 = i14;
38568 HEAP32[i14 >> 2] = 1025;
38569 HEAP32[i14 + 112 >> 2] = 0;
38570 HEAPF32[i14 + 116 >> 2] = 0.0;
38571 HEAP8[i14 + 120 | 0] = 0;
38572 _memset(i14 + 124 | 0, 0, 28);
38573 HEAP32[i14 + 388 >> 2] = 0;
38574 HEAPF32[i14 + 392 >> 2] = 0.0;
38575 HEAP8[i14 + 396 | 0] = 0;
38576 _memset(i14 + 400 | 0, 0, 28);
38577 HEAP32[i14 + 664 >> 2] = 0;
38578 HEAPF32[i14 + 668 >> 2] = 0.0;
38579 HEAP8[i14 + 672 | 0] = 0;
38580 _memset(i14 + 676 | 0, 0, 28);
38581 HEAP32[i14 + 940 >> 2] = 0;
38582 HEAPF32[i14 + 944 >> 2] = 0.0;
38583 HEAP8[i14 + 948 | 0] = 0;
38584 _memset(i14 + 952 | 0, 0, 28);
38585 HEAP32[i14 + 1108 >> 2] = i2;
38586 HEAP32[i14 + 1112 >> 2] = i3;
38587 HEAP32[i14 + 1116 >> 2] = 0;
38588 HEAPF32[i14 + 1120 >> 2] = d11;
38589 HEAPF32[i14 + 1124 >> 2] = d13;
38590 i3 = i1 + 12 | 0;
38591 HEAP32[i14 + 1136 >> 2] = HEAP32[i3 >> 2];
38592 i14 = HEAP32[i3 >> 2] | 0;
38593 i2 = i1 + 16 | 0;
38594 do {
38595 if ((i14 | 0) == (HEAP32[i2 >> 2] | 0)) {
38596 i6 = (i14 | 0) == 0 ? 1 : i14 << 1;
38597 if ((i14 | 0) >= (i6 | 0)) {
38598 i17 = i14;
38599 break;
38600 }
38601 if ((i6 | 0) == 0) {
38602 i18 = 0;
38603 i19 = i14;
38604 } else {
38605 i8 = __Z22btAlignedAllocInternalji(i6 << 2, 16) | 0;
38606 i18 = i8;
38607 i19 = HEAP32[i3 >> 2] | 0;
38608 }
38609 i8 = i1 + 20 | 0;
38610 if ((i19 | 0) > 0) {
38611 i7 = 0;
38612 do {
38613 i16 = i18 + (i7 << 2) | 0;
38614 if ((i16 | 0) != 0) {
38615 HEAP32[i16 >> 2] = HEAP32[(HEAP32[i8 >> 2] | 0) + (i7 << 2) >> 2];
38616 }
38617 i7 = i7 + 1 | 0;
38618 } while ((i7 | 0) < (i19 | 0));
38619 }
38620 i7 = HEAP32[i8 >> 2] | 0;
38621 i16 = i1 + 24 | 0;
38622 if ((i7 | 0) == 0) {
38623 i20 = i19;
38624 } else {
38625 if ((HEAP8[i16] | 0) == 0) {
38626 i21 = i19;
38627 } else {
38628 __Z21btAlignedFreeInternalPv(i7);
38629 i21 = HEAP32[i3 >> 2] | 0;
38630 }
38631 HEAP32[i8 >> 2] = 0;
38632 i20 = i21;
38633 }
38634 HEAP8[i16] = 1;
38635 HEAP32[i8 >> 2] = i18;
38636 HEAP32[i2 >> 2] = i6;
38637 i17 = i20;
38638 } else {
38639 i17 = i14;
38640 }
38641 } while (0);
38642 i14 = (HEAP32[i1 + 20 >> 2] | 0) + (i17 << 2) | 0;
38643 if ((i14 | 0) != 0) {
38644 HEAP32[i14 >> 2] = i5;
38645 }
38646 HEAP32[i3 >> 2] = i17 + 1;
38647 i15 = i5;
38648 STACKTOP = i4;
38649 return i15 | 0;
38650 }
38651 function __ZN17DebugDrawcallback15processTriangleEP9btVector3ii(i1, i2, i3, i4) {
38652 i1 = i1 | 0;
38653 i2 = i2 | 0;
38654 i3 = i3 | 0;
38655 i4 = i4 | 0;
38656 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, i32 = 0, i33 = 0;
38657 i4 = STACKTOP;
38658 STACKTOP = STACKTOP + 96 | 0;
38659 i3 = i4 | 0;
38660 i5 = i4 + 16 | 0;
38661 i6 = i4 + 32 | 0;
38662 i7 = i4 + 48 | 0;
38663 i8 = i4 + 64 | 0;
38664 i9 = i4 + 80 | 0;
38665 d10 = +HEAPF32[i1 + 28 >> 2];
38666 d11 = +HEAPF32[i2 >> 2];
38667 d12 = +HEAPF32[i1 + 32 >> 2];
38668 d13 = +HEAPF32[i2 + 4 >> 2];
38669 d14 = +HEAPF32[i1 + 36 >> 2];
38670 d15 = +HEAPF32[i2 + 8 >> 2];
38671 d16 = +HEAPF32[i1 + 76 >> 2];
38672 d17 = d16 + (d10 * d11 + d12 * d13 + d14 * d15);
38673 d18 = +HEAPF32[i1 + 44 >> 2];
38674 d19 = +HEAPF32[i1 + 48 >> 2];
38675 d20 = +HEAPF32[i1 + 52 >> 2];
38676 d21 = +HEAPF32[i1 + 80 >> 2];
38677 d22 = d21 + (d11 * d18 + d13 * d19 + d15 * d20);
38678 d23 = +HEAPF32[i1 + 60 >> 2];
38679 d24 = +HEAPF32[i1 + 64 >> 2];
38680 d25 = +HEAPF32[i1 + 68 >> 2];
38681 d26 = +HEAPF32[i1 + 84 >> 2];
38682 d27 = d26 + (d11 * d23 + d13 * d24 + d15 * d25);
38683 HEAPF32[i3 >> 2] = d17;
38684 HEAPF32[i3 + 4 >> 2] = d22;
38685 HEAPF32[i3 + 8 >> 2] = d27;
38686 HEAPF32[i3 + 12 >> 2] = 0.0;
38687 d15 = +HEAPF32[i2 + 16 >> 2];
38688 d13 = +HEAPF32[i2 + 20 >> 2];
38689 d11 = +HEAPF32[i2 + 24 >> 2];
38690 d28 = d16 + (d10 * d15 + d12 * d13 + d14 * d11);
38691 d29 = d21 + (d18 * d15 + d19 * d13 + d20 * d11);
38692 d30 = d26 + (d23 * d15 + d24 * d13 + d25 * d11);
38693 HEAPF32[i5 >> 2] = d28;
38694 HEAPF32[i5 + 4 >> 2] = d29;
38695 HEAPF32[i5 + 8 >> 2] = d30;
38696 HEAPF32[i5 + 12 >> 2] = 0.0;
38697 d11 = +HEAPF32[i2 + 32 >> 2];
38698 d13 = +HEAPF32[i2 + 36 >> 2];
38699 d15 = +HEAPF32[i2 + 40 >> 2];
38700 d31 = d16 + (d10 * d11 + d12 * d13 + d14 * d15);
38701 d14 = d21 + (d18 * d11 + d19 * d13 + d20 * d15);
38702 d20 = d26 + (d23 * d11 + d24 * d13 + d25 * d15);
38703 HEAPF32[i6 >> 2] = d31;
38704 HEAPF32[i6 + 4 >> 2] = d14;
38705 HEAPF32[i6 + 8 >> 2] = d20;
38706 HEAPF32[i6 + 12 >> 2] = 0.0;
38707 d15 = (d17 + d28 + d31) * .3333333432674408;
38708 d25 = (d22 + d29 + d14) * .3333333432674408;
38709 d13 = (d27 + d30 + d20) * .3333333432674408;
38710 HEAPF32[i7 >> 2] = d15;
38711 HEAPF32[i7 + 4 >> 2] = d25;
38712 HEAPF32[i7 + 8 >> 2] = d13;
38713 HEAPF32[i7 + 12 >> 2] = 0.0;
38714 d24 = d28 - d17;
38715 d28 = d29 - d22;
38716 d29 = d30 - d27;
38717 d30 = d31 - d17;
38718 d17 = d14 - d22;
38719 d22 = d20 - d27;
38720 d27 = d28 * d22 - d29 * d17;
38721 d20 = d29 * d30 - d24 * d22;
38722 d22 = d24 * d17 - d28 * d30;
38723 d30 = 1.0 / +Math_sqrt(+(d22 * d22 + (d27 * d27 + d20 * d20)));
38724 HEAPF32[i8 >> 2] = 1.0;
38725 HEAPF32[i8 + 4 >> 2] = 1.0;
38726 HEAPF32[i8 + 8 >> 2] = 0.0;
38727 HEAPF32[i8 + 12 >> 2] = 0.0;
38728 i2 = i1 + 8 | 0;
38729 i32 = HEAP32[i2 >> 2] | 0;
38730 i33 = HEAP32[(HEAP32[i32 >> 2] | 0) + 8 >> 2] | 0;
38731 HEAPF32[i9 >> 2] = d15 + d30 * d27;
38732 HEAPF32[i9 + 4 >> 2] = d25 + d30 * d20;
38733 HEAPF32[i9 + 8 >> 2] = d13 + d30 * d22;
38734 HEAPF32[i9 + 12 >> 2] = 0.0;
38735 FUNCTION_TABLE_viiii[i33 & 127](i32, i7, i9, i8);
38736 i8 = HEAP32[i2 >> 2] | 0;
38737 i9 = i1 + 12 | 0;
38738 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i8 >> 2] | 0) + 8 >> 2] & 127](i8, i3, i5, i9);
38739 i8 = HEAP32[i2 >> 2] | 0;
38740 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i8 >> 2] | 0) + 8 >> 2] & 127](i8, i5, i6, i9);
38741 i5 = HEAP32[i2 >> 2] | 0;
38742 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] & 127](i5, i6, i3, i9);
38743 STACKTOP = i4;
38744 return;
38745 }
38746 function __ZN34btSphereTriangleCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
38747 i1 = i1 | 0;
38748 i2 = i2 | 0;
38749 i3 = i3 | 0;
38750 i4 = i4 | 0;
38751 i5 = i5 | 0;
38752 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
38753 i6 = STACKTOP;
38754 STACKTOP = STACKTOP + 152 | 0;
38755 i7 = i6 | 0;
38756 i8 = i6 + 16 | 0;
38757 i9 = i1 + 12 | 0;
38758 i10 = HEAP32[i9 >> 2] | 0;
38759 if ((i10 | 0) == 0) {
38760 STACKTOP = i6;
38761 return;
38762 }
38763 i11 = i1 + 16 | 0;
38764 i12 = (HEAP8[i11] | 0) != 0;
38765 i13 = i12 ? i3 : i2;
38766 i14 = i12 ? i2 : i3;
38767 i3 = HEAP32[i13 + 192 >> 2] | 0;
38768 i2 = HEAP32[i14 + 192 >> 2] | 0;
38769 i12 = i5 + 4 | 0;
38770 HEAP32[i12 >> 2] = i10;
38771 __ZN22SphereTriangleDetectorC2EP13btSphereShapeP15btTriangleShapef(i7, i3, i2, +__ZNK20btPersistentManifold27getContactBreakingThresholdEv(HEAP32[i9 >> 2] | 0));
38772 HEAP32[i8 + 132 >> 2] = 0;
38773 HEAPF32[i8 + 128 >> 2] = 999999984306749400.0;
38774 i9 = i8;
38775 i2 = i13 + 4 | 0;
38776 HEAP32[i9 >> 2] = HEAP32[i2 >> 2];
38777 HEAP32[i9 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
38778 HEAP32[i9 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
38779 HEAP32[i9 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
38780 i2 = i8 + 16 | 0;
38781 i9 = i13 + 20 | 0;
38782 HEAP32[i2 >> 2] = HEAP32[i9 >> 2];
38783 HEAP32[i2 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
38784 HEAP32[i2 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
38785 HEAP32[i2 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
38786 i9 = i8 + 32 | 0;
38787 i2 = i13 + 36 | 0;
38788 HEAP32[i9 >> 2] = HEAP32[i2 >> 2];
38789 HEAP32[i9 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
38790 HEAP32[i9 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
38791 HEAP32[i9 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
38792 i2 = i8 + 48 | 0;
38793 i9 = i13 + 52 | 0;
38794 HEAP32[i2 >> 2] = HEAP32[i9 >> 2];
38795 HEAP32[i2 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
38796 HEAP32[i2 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
38797 HEAP32[i2 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
38798 i9 = i8 + 64 | 0;
38799 i2 = i14 + 4 | 0;
38800 HEAP32[i9 >> 2] = HEAP32[i2 >> 2];
38801 HEAP32[i9 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
38802 HEAP32[i9 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
38803 HEAP32[i9 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
38804 i2 = i8 + 80 | 0;
38805 i9 = i14 + 20 | 0;
38806 HEAP32[i2 >> 2] = HEAP32[i9 >> 2];
38807 HEAP32[i2 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
38808 HEAP32[i2 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
38809 HEAP32[i2 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
38810 i9 = i8 + 96 | 0;
38811 i2 = i14 + 36 | 0;
38812 HEAP32[i9 >> 2] = HEAP32[i2 >> 2];
38813 HEAP32[i9 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
38814 HEAP32[i9 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
38815 HEAP32[i9 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
38816 i2 = i8 + 112 | 0;
38817 i9 = i14 + 52 | 0;
38818 HEAP32[i2 >> 2] = HEAP32[i9 >> 2];
38819 HEAP32[i2 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
38820 HEAP32[i2 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
38821 HEAP32[i2 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
38822 __ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7, i8, i5 | 0, HEAP32[i4 + 20 >> 2] | 0, (HEAP8[i11] | 0) != 0);
38823 if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
38824 STACKTOP = i6;
38825 return;
38826 }
38827 i1 = HEAP32[i12 >> 2] | 0;
38828 if ((HEAP32[i1 + 1116 >> 2] | 0) == 0) {
38829 STACKTOP = i6;
38830 return;
38831 }
38832 if ((HEAP32[i1 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
38833 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i5 + 8 | 0, i5 + 72 | 0);
38834 STACKTOP = i6;
38835 return;
38836 } else {
38837 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i5 + 72 | 0, i5 + 8 | 0);
38838 STACKTOP = i6;
38839 return;
38840 }
38841 }
38842 function __ZN16btCollisionWorld25serializeCollisionObjectsEP12btSerializer(i1, i2) {
38843 i1 = i1 | 0;
38844 i2 = i2 | 0;
38845 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0;
38846 i3 = STACKTOP;
38847 STACKTOP = STACKTOP + 96 | 0;
38848 i4 = i3 | 0;
38849 i5 = i3 + 80 | 0;
38850 i6 = i3 + 88 | 0;
38851 i7 = i1 + 8 | 0;
38852 i8 = HEAP32[i7 >> 2] | 0;
38853 if ((i8 | 0) > 0) {
38854 i9 = i1 + 16 | 0;
38855 i10 = 0;
38856 i11 = i8;
38857 while (1) {
38858 i12 = HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 << 2) >> 2] | 0;
38859 if ((HEAP32[i12 + 232 >> 2] | 0) == 1) {
38860 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i12 >> 2] | 0) + 24 >> 2] & 127](i12, i2);
38861 i13 = HEAP32[i7 >> 2] | 0;
38862 } else {
38863 i13 = i11;
38864 }
38865 i12 = i10 + 1 | 0;
38866 if ((i12 | 0) < (i13 | 0)) {
38867 i10 = i12;
38868 i11 = i13;
38869 } else {
38870 i14 = i13;
38871 break;
38872 }
38873 }
38874 } else {
38875 i14 = i8;
38876 }
38877 HEAP8[i4 + 16 | 0] = 1;
38878 i8 = i4 + 12 | 0;
38879 HEAP32[i8 >> 2] = 0;
38880 i13 = i4 + 4 | 0;
38881 HEAP32[i13 >> 2] = 0;
38882 HEAP32[i4 + 8 >> 2] = 0;
38883 HEAP8[i4 + 36 | 0] = 1;
38884 i11 = i4 + 32 | 0;
38885 HEAP32[i11 >> 2] = 0;
38886 HEAP32[i4 + 24 >> 2] = 0;
38887 HEAP32[i4 + 28 >> 2] = 0;
38888 HEAP8[i4 + 56 | 0] = 1;
38889 i10 = i4 + 52 | 0;
38890 HEAP32[i10 >> 2] = 0;
38891 HEAP32[i4 + 44 >> 2] = 0;
38892 i9 = i4 + 48 | 0;
38893 HEAP32[i9 >> 2] = 0;
38894 HEAP8[i4 + 76 | 0] = 1;
38895 i12 = i4 + 72 | 0;
38896 HEAP32[i12 >> 2] = 0;
38897 HEAP32[i4 + 64 >> 2] = 0;
38898 HEAP32[i4 + 68 >> 2] = 0;
38899 if ((i14 | 0) <= 0) {
38900 __ZN9btHashMapI9btHashPtrP16btCollisionShapeED2Ev(i4);
38901 STACKTOP = i3;
38902 return;
38903 }
38904 i15 = i1 + 16 | 0;
38905 i1 = i6 | 0;
38906 i16 = 0;
38907 i17 = -1;
38908 i18 = 0;
38909 i19 = i14;
38910 while (1) {
38911 i14 = HEAP32[(HEAP32[(HEAP32[i15 >> 2] | 0) + (i16 << 2) >> 2] | 0) + 192 >> 2] | 0;
38912 HEAP32[i5 >> 2] = i14;
38913 i20 = i14;
38914 i21 = i20 + ~(i20 << 15) | 0;
38915 i22 = (i21 >> 10 ^ i21) * 9 | 0;
38916 i21 = i22 >> 6 ^ i22;
38917 i22 = i21 + ~(i21 << 11) | 0;
38918 i21 = (i22 >> 16 ^ i22) & i17;
38919 i22 = i14;
38920 L410 : do {
38921 if (i21 >>> 0 < i18 >>> 0) {
38922 i14 = HEAP32[(HEAP32[i8 >> 2] | 0) + (i21 << 2) >> 2] | 0;
38923 if ((i14 | 0) == -1) {
38924 i23 = 364;
38925 break;
38926 }
38927 i24 = HEAP32[i12 >> 2] | 0;
38928 i25 = HEAP32[i11 >> 2] | 0;
38929 i26 = i14;
38930 while (1) {
38931 if ((i22 | 0) == (HEAP32[i24 + (i26 << 3) >> 2] | 0)) {
38932 break;
38933 }
38934 i14 = HEAP32[i25 + (i26 << 2) >> 2] | 0;
38935 if ((i14 | 0) == -1) {
38936 i23 = 364;
38937 break L410;
38938 } else {
38939 i26 = i14;
38940 }
38941 }
38942 if ((i26 | 0) == -1) {
38943 i23 = 364;
38944 break;
38945 }
38946 if (((HEAP32[i10 >> 2] | 0) + (i26 << 2) | 0) == 0) {
38947 i23 = 364;
38948 } else {
38949 i27 = i19;
38950 }
38951 } else {
38952 i23 = 364;
38953 }
38954 } while (0);
38955 if ((i23 | 0) == 364) {
38956 i23 = 0;
38957 HEAP32[i1 >> 2] = i20;
38958 __ZN9btHashMapI9btHashPtrP16btCollisionShapeE6insertERKS0_RKS2_(i4, i6, i5);
38959 i22 = HEAP32[i5 >> 2] | 0;
38960 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i22 >> 2] | 0) + 56 >> 2] & 127](i22, i2);
38961 i27 = HEAP32[i7 >> 2] | 0;
38962 }
38963 i22 = i16 + 1 | 0;
38964 if ((i22 | 0) >= (i27 | 0)) {
38965 break;
38966 }
38967 i16 = i22;
38968 i17 = (HEAP32[i9 >> 2] | 0) - 1 | 0;
38969 i18 = HEAP32[i13 >> 2] | 0;
38970 i19 = i27;
38971 }
38972 __ZN9btHashMapI9btHashPtrP16btCollisionShapeED2Ev(i4);
38973 STACKTOP = i3;
38974 return;
38975 }
38976 function __ZN28btHashedOverlappingPairCache10growTablesEv(i1) {
38977 i1 = i1 | 0;
38978 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
38979 i2 = i1 + 12 | 0;
38980 i3 = HEAP32[i2 >> 2] | 0;
38981 i4 = i1 + 36 | 0;
38982 i5 = HEAP32[i4 >> 2] | 0;
38983 if ((i5 | 0) >= (i3 | 0)) {
38984 return;
38985 }
38986 if ((i5 | 0) <= (i3 | 0)) {
38987 i6 = i1 + 40 | 0;
38988 if ((HEAP32[i6 >> 2] | 0) < (i3 | 0)) {
38989 if ((i3 | 0) == 0) {
38990 i7 = 0;
38991 i8 = i5;
38992 } else {
38993 i9 = __Z22btAlignedAllocInternalji(i3 << 2, 16) | 0;
38994 i7 = i9;
38995 i8 = HEAP32[i4 >> 2] | 0;
38996 }
38997 i9 = i1 + 44 | 0;
38998 if ((i8 | 0) > 0) {
38999 i10 = 0;
39000 do {
39001 i11 = i7 + (i10 << 2) | 0;
39002 if ((i11 | 0) != 0) {
39003 HEAP32[i11 >> 2] = HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 << 2) >> 2];
39004 }
39005 i10 = i10 + 1 | 0;
39006 } while ((i10 | 0) < (i8 | 0));
39007 }
39008 i8 = HEAP32[i9 >> 2] | 0;
39009 i10 = i1 + 48 | 0;
39010 if ((i8 | 0) != 0) {
39011 if ((HEAP8[i10] | 0) != 0) {
39012 __Z21btAlignedFreeInternalPv(i8);
39013 }
39014 HEAP32[i9 >> 2] = 0;
39015 }
39016 HEAP8[i10] = 1;
39017 HEAP32[i9 >> 2] = i7;
39018 HEAP32[i6 >> 2] = i3;
39019 i12 = i7;
39020 } else {
39021 i12 = HEAP32[i1 + 44 >> 2] | 0;
39022 }
39023 i7 = i5;
39024 do {
39025 i6 = i12 + (i7 << 2) | 0;
39026 if ((i6 | 0) != 0) {
39027 HEAP32[i6 >> 2] = 0;
39028 }
39029 i7 = i7 + 1 | 0;
39030 } while ((i7 | 0) < (i3 | 0));
39031 }
39032 HEAP32[i4 >> 2] = i3;
39033 i4 = i1 + 56 | 0;
39034 i7 = HEAP32[i4 >> 2] | 0;
39035 if ((i7 | 0) < (i3 | 0)) {
39036 i12 = i1 + 60 | 0;
39037 if ((HEAP32[i12 >> 2] | 0) < (i3 | 0)) {
39038 if ((i3 | 0) == 0) {
39039 i13 = 0;
39040 i14 = i7;
39041 } else {
39042 i6 = __Z22btAlignedAllocInternalji(i3 << 2, 16) | 0;
39043 i13 = i6;
39044 i14 = HEAP32[i4 >> 2] | 0;
39045 }
39046 i6 = i1 + 64 | 0;
39047 if ((i14 | 0) > 0) {
39048 i9 = 0;
39049 do {
39050 i10 = i13 + (i9 << 2) | 0;
39051 if ((i10 | 0) != 0) {
39052 HEAP32[i10 >> 2] = HEAP32[(HEAP32[i6 >> 2] | 0) + (i9 << 2) >> 2];
39053 }
39054 i9 = i9 + 1 | 0;
39055 } while ((i9 | 0) < (i14 | 0));
39056 }
39057 i14 = HEAP32[i6 >> 2] | 0;
39058 i9 = i1 + 68 | 0;
39059 if ((i14 | 0) != 0) {
39060 if ((HEAP8[i9] | 0) != 0) {
39061 __Z21btAlignedFreeInternalPv(i14);
39062 }
39063 HEAP32[i6 >> 2] = 0;
39064 }
39065 HEAP8[i9] = 1;
39066 HEAP32[i6 >> 2] = i13;
39067 HEAP32[i12 >> 2] = i3;
39068 i15 = i13;
39069 } else {
39070 i15 = HEAP32[i1 + 64 >> 2] | 0;
39071 }
39072 i13 = i7;
39073 do {
39074 i7 = i15 + (i13 << 2) | 0;
39075 if ((i7 | 0) != 0) {
39076 HEAP32[i7 >> 2] = 0;
39077 }
39078 i13 = i13 + 1 | 0;
39079 } while ((i13 | 0) < (i3 | 0));
39080 }
39081 HEAP32[i4 >> 2] = i3;
39082 if ((i3 | 0) > 0) {
39083 i4 = i3 << 2;
39084 _memset(HEAP32[i1 + 44 >> 2] | 0, -1 | 0, i4 | 0);
39085 _memset(HEAP32[i1 + 64 >> 2] | 0, -1 | 0, i4 | 0);
39086 }
39087 if ((i5 | 0) <= 0) {
39088 return;
39089 }
39090 i4 = HEAP32[i1 + 16 >> 2] | 0;
39091 i3 = HEAP32[i1 + 44 >> 2] | 0;
39092 i13 = HEAP32[i1 + 64 >> 2] | 0;
39093 i1 = 0;
39094 do {
39095 i15 = HEAP32[(HEAP32[i4 + (i1 << 4) + 4 >> 2] | 0) + 12 >> 2] << 16 | HEAP32[(HEAP32[i4 + (i1 << 4) >> 2] | 0) + 12 >> 2];
39096 i7 = i15 + ~(i15 << 15) | 0;
39097 i15 = (i7 >> 10 ^ i7) * 9 | 0;
39098 i7 = i15 >> 6 ^ i15;
39099 i15 = i7 + ~(i7 << 11) | 0;
39100 i7 = i3 + (((i15 >> 16 ^ i15) & (HEAP32[i2 >> 2] | 0) - 1) << 2) | 0;
39101 HEAP32[i13 + (i1 << 2) >> 2] = HEAP32[i7 >> 2];
39102 HEAP32[i7 >> 2] = i1;
39103 i1 = i1 + 1 | 0;
39104 } while ((i1 | 0) < (i5 | 0));
39105 return;
39106 }
39107 function __ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i1, i2, i3, i4) {
39108 i1 = i1 | 0;
39109 i2 = i2 | 0;
39110 i3 = i3 | 0;
39111 i4 = i4 | 0;
39112 var i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, i26 = 0;
39113 i5 = STACKTOP;
39114 STACKTOP = STACKTOP + 64 | 0;
39115 i6 = i5 | 0;
39116 i7 = i5 + 48 | 0;
39117 d8 = +HEAPF32[i1 + 20 >> 2];
39118 d9 = +HEAPF32[i1 + 40 >> 2];
39119 d10 = +HEAPF32[i1 + 24 >> 2];
39120 d11 = +HEAPF32[i1 + 36 >> 2];
39121 d12 = d8 * d9 - d10 * d11;
39122 d13 = +HEAPF32[i1 + 32 >> 2];
39123 d14 = +HEAPF32[i1 + 16 >> 2];
39124 d15 = d10 * d13 - d9 * d14;
39125 d16 = d11 * d14 - d8 * d13;
39126 d17 = +HEAPF32[i1 >> 2];
39127 d18 = +HEAPF32[i1 + 4 >> 2];
39128 d19 = +HEAPF32[i1 + 8 >> 2];
39129 d20 = 1.0 / (d12 * d17 + d18 * d15 + d16 * d19);
39130 d21 = d12 * d20;
39131 d12 = d20 * (d11 * d19 - d9 * d18);
39132 d22 = d20 * (d10 * d18 - d8 * d19);
39133 d23 = d15 * d20;
39134 d15 = d20 * (d9 * d17 - d13 * d19);
39135 d9 = d20 * (d14 * d19 - d10 * d17);
39136 d10 = d16 * d20;
39137 d16 = d20 * (d13 * d18 - d11 * d17);
39138 d11 = d20 * (d8 * d17 - d14 * d18);
39139 d18 = +HEAPF32[i2 >> 2];
39140 d14 = +HEAPF32[i2 + 4 >> 2];
39141 d17 = +HEAPF32[i2 + 8 >> 2];
39142 d8 = +HEAPF32[i2 + 16 >> 2];
39143 d20 = +HEAPF32[i2 + 20 >> 2];
39144 d13 = +HEAPF32[i2 + 24 >> 2];
39145 d19 = +HEAPF32[i2 + 32 >> 2];
39146 d24 = +HEAPF32[i2 + 36 >> 2];
39147 d25 = +HEAPF32[i2 + 40 >> 2];
39148 HEAPF32[i6 >> 2] = d21 * d18 + d23 * d14 + d10 * d17;
39149 HEAPF32[i6 + 4 >> 2] = d18 * d12 + d14 * d15 + d16 * d17;
39150 HEAPF32[i6 + 8 >> 2] = d18 * d22 + d14 * d9 + d11 * d17;
39151 HEAPF32[i6 + 12 >> 2] = 0.0;
39152 HEAPF32[i6 + 16 >> 2] = d21 * d8 + d23 * d20 + d10 * d13;
39153 HEAPF32[i6 + 20 >> 2] = d12 * d8 + d15 * d20 + d16 * d13;
39154 HEAPF32[i6 + 24 >> 2] = d22 * d8 + d9 * d20 + d11 * d13;
39155 HEAPF32[i6 + 28 >> 2] = 0.0;
39156 HEAPF32[i6 + 32 >> 2] = d21 * d19 + d23 * d24 + d10 * d25;
39157 HEAPF32[i6 + 36 >> 2] = d12 * d19 + d15 * d24 + d16 * d25;
39158 HEAPF32[i6 + 40 >> 2] = d22 * d19 + d9 * d24 + d11 * d25;
39159 HEAPF32[i6 + 44 >> 2] = 0.0;
39160 __ZNK11btMatrix3x311getRotationER12btQuaternion(i6, i7);
39161 i6 = i7 | 0;
39162 d25 = +HEAPF32[i6 >> 2];
39163 i2 = i7 + 4 | 0;
39164 d11 = +HEAPF32[i2 >> 2];
39165 i1 = i7 + 8 | 0;
39166 d24 = +HEAPF32[i1 >> 2];
39167 i26 = i7 + 12 | 0;
39168 d9 = +HEAPF32[i26 >> 2];
39169 d19 = 1.0 / +Math_sqrt(+(d25 * d25 + d11 * d11 + d24 * d24 + d9 * d9));
39170 d22 = d25 * d19;
39171 HEAPF32[i6 >> 2] = d22;
39172 d25 = d11 * d19;
39173 HEAPF32[i2 >> 2] = d25;
39174 d11 = d24 * d19;
39175 HEAPF32[i1 >> 2] = d11;
39176 d24 = d9 * d19;
39177 HEAPF32[i26 >> 2] = d24;
39178 d19 = d24 < -1.0 ? -1.0 : d24;
39179 HEAPF32[i4 >> 2] = +Math_acos(+(d19 > 1.0 ? 1.0 : d19)) * 2.0;
39180 i4 = i3 | 0;
39181 HEAPF32[i4 >> 2] = d22;
39182 i26 = i3 + 4 | 0;
39183 HEAPF32[i26 >> 2] = d25;
39184 i1 = i3 + 8 | 0;
39185 HEAPF32[i1 >> 2] = d11;
39186 i2 = i3 + 12 | 0;
39187 HEAPF32[i2 >> 2] = 0.0;
39188 d19 = d11 * d11 + (d22 * d22 + d25 * d25);
39189 if (d19 < 1.4210854715202004e-14) {
39190 HEAPF32[i4 >> 2] = 1.0;
39191 HEAPF32[i26 >> 2] = 0.0;
39192 HEAPF32[i1 >> 2] = 0.0;
39193 HEAPF32[i2 >> 2] = 0.0;
39194 STACKTOP = i5;
39195 return;
39196 } else {
39197 d24 = 1.0 / +Math_sqrt(+d19);
39198 HEAPF32[i4 >> 2] = d22 * d24;
39199 HEAPF32[i26 >> 2] = d25 * d24;
39200 HEAPF32[i1 >> 2] = d11 * d24;
39201 STACKTOP = i5;
39202 return;
39203 }
39204 }
39205 function __ZNK11btRigidBody9serializeEPvP12btSerializer(i1, i2, i3) {
39206 i1 = i1 | 0;
39207 i2 = i2 | 0;
39208 i3 = i3 | 0;
39209 __ZNK17btCollisionObject9serializeEPvP12btSerializer(i1 | 0, i2, i3) | 0;
39210 HEAPF32[i2 + 248 >> 2] = +HEAPF32[i1 + 256 >> 2];
39211 HEAPF32[i2 + 252 >> 2] = +HEAPF32[i1 + 260 >> 2];
39212 HEAPF32[i2 + 256 >> 2] = +HEAPF32[i1 + 264 >> 2];
39213 HEAPF32[i2 + 260 >> 2] = +HEAPF32[i1 + 268 >> 2];
39214 HEAPF32[i2 + 264 >> 2] = +HEAPF32[i1 + 272 >> 2];
39215 HEAPF32[i2 + 268 >> 2] = +HEAPF32[i1 + 276 >> 2];
39216 HEAPF32[i2 + 272 >> 2] = +HEAPF32[i1 + 280 >> 2];
39217 HEAPF32[i2 + 276 >> 2] = +HEAPF32[i1 + 284 >> 2];
39218 HEAPF32[i2 + 280 >> 2] = +HEAPF32[i1 + 288 >> 2];
39219 HEAPF32[i2 + 284 >> 2] = +HEAPF32[i1 + 292 >> 2];
39220 HEAPF32[i2 + 288 >> 2] = +HEAPF32[i1 + 296 >> 2];
39221 HEAPF32[i2 + 292 >> 2] = +HEAPF32[i1 + 300 >> 2];
39222 HEAPF32[i2 + 296 >> 2] = +HEAPF32[i1 + 304 >> 2];
39223 HEAPF32[i2 + 300 >> 2] = +HEAPF32[i1 + 308 >> 2];
39224 HEAPF32[i2 + 304 >> 2] = +HEAPF32[i1 + 312 >> 2];
39225 HEAPF32[i2 + 308 >> 2] = +HEAPF32[i1 + 316 >> 2];
39226 HEAPF32[i2 + 312 >> 2] = +HEAPF32[i1 + 320 >> 2];
39227 HEAPF32[i2 + 316 >> 2] = +HEAPF32[i1 + 324 >> 2];
39228 HEAPF32[i2 + 320 >> 2] = +HEAPF32[i1 + 328 >> 2];
39229 HEAPF32[i2 + 324 >> 2] = +HEAPF32[i1 + 332 >> 2];
39230 HEAPF32[i2 + 440 >> 2] = +HEAPF32[i1 + 336 >> 2];
39231 HEAPF32[i2 + 328 >> 2] = +HEAPF32[i1 + 536 >> 2];
39232 HEAPF32[i2 + 332 >> 2] = +HEAPF32[i1 + 540 >> 2];
39233 HEAPF32[i2 + 336 >> 2] = +HEAPF32[i1 + 544 >> 2];
39234 HEAPF32[i2 + 340 >> 2] = +HEAPF32[i1 + 548 >> 2];
39235 HEAPF32[i2 + 344 >> 2] = +HEAPF32[i1 + 340 >> 2];
39236 HEAPF32[i2 + 348 >> 2] = +HEAPF32[i1 + 344 >> 2];
39237 HEAPF32[i2 + 352 >> 2] = +HEAPF32[i1 + 348 >> 2];
39238 HEAPF32[i2 + 356 >> 2] = +HEAPF32[i1 + 352 >> 2];
39239 HEAPF32[i2 + 360 >> 2] = +HEAPF32[i1 + 356 >> 2];
39240 HEAPF32[i2 + 364 >> 2] = +HEAPF32[i1 + 360 >> 2];
39241 HEAPF32[i2 + 368 >> 2] = +HEAPF32[i1 + 364 >> 2];
39242 HEAPF32[i2 + 372 >> 2] = +HEAPF32[i1 + 368 >> 2];
39243 HEAPF32[i2 + 376 >> 2] = +HEAPF32[i1 + 372 >> 2];
39244 HEAPF32[i2 + 380 >> 2] = +HEAPF32[i1 + 376 >> 2];
39245 HEAPF32[i2 + 384 >> 2] = +HEAPF32[i1 + 380 >> 2];
39246 HEAPF32[i2 + 388 >> 2] = +HEAPF32[i1 + 384 >> 2];
39247 HEAPF32[i2 + 392 >> 2] = +HEAPF32[i1 + 388 >> 2];
39248 HEAPF32[i2 + 396 >> 2] = +HEAPF32[i1 + 392 >> 2];
39249 HEAPF32[i2 + 400 >> 2] = +HEAPF32[i1 + 396 >> 2];
39250 HEAPF32[i2 + 404 >> 2] = +HEAPF32[i1 + 400 >> 2];
39251 HEAPF32[i2 + 408 >> 2] = +HEAPF32[i1 + 404 >> 2];
39252 HEAPF32[i2 + 412 >> 2] = +HEAPF32[i1 + 408 >> 2];
39253 HEAPF32[i2 + 416 >> 2] = +HEAPF32[i1 + 412 >> 2];
39254 HEAPF32[i2 + 420 >> 2] = +HEAPF32[i1 + 416 >> 2];
39255 HEAPF32[i2 + 424 >> 2] = +HEAPF32[i1 + 420 >> 2];
39256 HEAPF32[i2 + 428 >> 2] = +HEAPF32[i1 + 424 >> 2];
39257 HEAPF32[i2 + 432 >> 2] = +HEAPF32[i1 + 428 >> 2];
39258 HEAPF32[i2 + 436 >> 2] = +HEAPF32[i1 + 432 >> 2];
39259 HEAPF32[i2 + 444 >> 2] = +HEAPF32[i1 + 436 >> 2];
39260 HEAPF32[i2 + 448 >> 2] = +HEAPF32[i1 + 440 >> 2];
39261 HEAP32[i2 + 476 >> 2] = HEAPU8[i1 + 444 | 0] | 0;
39262 HEAPF32[i2 + 452 >> 2] = +HEAPF32[i1 + 448 >> 2];
39263 HEAPF32[i2 + 456 >> 2] = +HEAPF32[i1 + 452 >> 2];
39264 HEAPF32[i2 + 460 >> 2] = +HEAPF32[i1 + 456 >> 2];
39265 HEAPF32[i2 + 464 >> 2] = +HEAPF32[i1 + 460 >> 2];
39266 HEAPF32[i2 + 468 >> 2] = +HEAPF32[i1 + 464 >> 2];
39267 HEAPF32[i2 + 472 >> 2] = +HEAPF32[i1 + 468 >> 2];
39268 return 600;
39269 }
39270 function __ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii(i1, i2, i3, i4) {
39271 i1 = i1 | 0;
39272 i2 = i2 | 0;
39273 i3 = i3 | 0;
39274 i4 = i4 | 0;
39275 var i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, i25 = 0, i26 = 0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, i31 = 0, i32 = 0, d33 = 0.0, d34 = 0.0, d35 = 0.0;
39276 i5 = STACKTOP;
39277 STACKTOP = STACKTOP + 32 | 0;
39278 i6 = i5 | 0;
39279 i7 = i5 + 16 | 0;
39280 d8 = +HEAPF32[i2 + 16 >> 2];
39281 d9 = +HEAPF32[i2 >> 2];
39282 d10 = d8 - d9;
39283 d11 = +HEAPF32[i2 + 20 >> 2];
39284 d12 = +HEAPF32[i2 + 4 >> 2];
39285 d13 = d11 - d12;
39286 d14 = +HEAPF32[i2 + 24 >> 2];
39287 d15 = +HEAPF32[i2 + 8 >> 2];
39288 d16 = d14 - d15;
39289 d17 = +HEAPF32[i2 + 32 >> 2];
39290 d18 = d17 - d9;
39291 d19 = +HEAPF32[i2 + 36 >> 2];
39292 d20 = d19 - d12;
39293 d21 = +HEAPF32[i2 + 40 >> 2];
39294 d22 = d21 - d15;
39295 d23 = d13 * d22 - d16 * d20;
39296 d24 = d16 * d18 - d10 * d22;
39297 d22 = d10 * d20 - d13 * d18;
39298 i2 = i6 | 0;
39299 HEAPF32[i2 >> 2] = d23;
39300 i25 = i6 + 4 | 0;
39301 HEAPF32[i25 >> 2] = d24;
39302 i26 = i6 + 8 | 0;
39303 HEAPF32[i26 >> 2] = d22;
39304 HEAPF32[i6 + 12 >> 2] = 0.0;
39305 d18 = d15 * d22 + (d9 * d23 + d12 * d24);
39306 d13 = +HEAPF32[i1 + 4 >> 2];
39307 d20 = +HEAPF32[i1 + 8 >> 2];
39308 d10 = +HEAPF32[i1 + 12 >> 2];
39309 d16 = d22 * d10 + (d13 * d23 + d20 * d24) - d18;
39310 d27 = +HEAPF32[i1 + 20 >> 2];
39311 d28 = +HEAPF32[i1 + 24 >> 2];
39312 d29 = +HEAPF32[i1 + 28 >> 2];
39313 d30 = d23 * d27 + d24 * d28 + d22 * d29 - d18;
39314 if (d16 * d30 >= 0.0) {
39315 STACKTOP = i5;
39316 return;
39317 }
39318 i31 = HEAP32[i1 + 36 >> 2] | 0;
39319 if ((i31 & 1 | 0) != 0 & d16 > 0.0) {
39320 STACKTOP = i5;
39321 return;
39322 }
39323 d18 = d16 / (d16 - d30);
39324 i32 = i1 + 40 | 0;
39325 if (d18 >= +HEAPF32[i32 >> 2]) {
39326 STACKTOP = i5;
39327 return;
39328 }
39329 d30 = d22 * d22 + (d23 * d23 + d24 * d24);
39330 d33 = d30 * -9999999747378752.0e-20;
39331 d34 = 1.0 - d18;
39332 d35 = d27 * d18 + d13 * d34;
39333 d13 = d28 * d18 + d20 * d34;
39334 d20 = d29 * d18 + d10 * d34;
39335 d34 = d9 - d35;
39336 d9 = d12 - d13;
39337 d12 = d15 - d20;
39338 d15 = d8 - d35;
39339 d8 = d11 - d13;
39340 d11 = d14 - d20;
39341 if (d22 * (d34 * d8 - d9 * d15) + (d23 * (d9 * d11 - d12 * d8) + d24 * (d12 * d15 - d34 * d11)) < d33) {
39342 STACKTOP = i5;
39343 return;
39344 }
39345 d14 = d17 - d35;
39346 d35 = d19 - d13;
39347 d13 = d21 - d20;
39348 if (d22 * (d15 * d35 - d8 * d14) + (d23 * (d8 * d13 - d11 * d35) + d24 * (d11 * d14 - d15 * d13)) < d33) {
39349 STACKTOP = i5;
39350 return;
39351 }
39352 if (d22 * (d9 * d14 - d34 * d35) + (d23 * (d12 * d35 - d9 * d13) + d24 * (d34 * d13 - d12 * d14)) < d33) {
39353 STACKTOP = i5;
39354 return;
39355 }
39356 d33 = 1.0 / +Math_sqrt(+d30);
39357 d30 = d23 * d33;
39358 HEAPF32[i2 >> 2] = d30;
39359 d23 = d24 * d33;
39360 HEAPF32[i25 >> 2] = d23;
39361 d24 = d22 * d33;
39362 HEAPF32[i26 >> 2] = d24;
39363 i26 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
39364 if ((i31 & 2 | 0) == 0 & d16 > 0.0) {
39365 HEAPF32[i32 >> 2] = +FUNCTION_TABLE_fiifii[i26 & 7](i1, i6, d18, i3, i4);
39366 STACKTOP = i5;
39367 return;
39368 } else {
39369 HEAPF32[i7 >> 2] = -0.0 - d30;
39370 HEAPF32[i7 + 4 >> 2] = -0.0 - d23;
39371 HEAPF32[i7 + 8 >> 2] = -0.0 - d24;
39372 HEAPF32[i7 + 12 >> 2] = 0.0;
39373 HEAPF32[i32 >> 2] = +FUNCTION_TABLE_fiifii[i26 & 7](i1, i7, d18, i3, i4);
39374 STACKTOP = i5;
39375 return;
39376 }
39377 }
39378 function __ZN9btHashMapI9btHashPtrP16btCollisionShapeE10growTablesERKS0_(i1, i2) {
39379 i1 = i1 | 0;
39380 i2 = i2 | 0;
39381 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
39382 i2 = i1 + 48 | 0;
39383 i3 = HEAP32[i2 >> 2] | 0;
39384 i4 = i1 + 4 | 0;
39385 i5 = HEAP32[i4 >> 2] | 0;
39386 if ((i5 | 0) >= (i3 | 0)) {
39387 return;
39388 }
39389 if ((i5 | 0) <= (i3 | 0)) {
39390 i6 = i1 + 8 | 0;
39391 if ((HEAP32[i6 >> 2] | 0) < (i3 | 0)) {
39392 if ((i3 | 0) == 0) {
39393 i7 = 0;
39394 i8 = i5;
39395 } else {
39396 i9 = __Z22btAlignedAllocInternalji(i3 << 2, 16) | 0;
39397 i7 = i9;
39398 i8 = HEAP32[i4 >> 2] | 0;
39399 }
39400 i9 = i1 + 12 | 0;
39401 if ((i8 | 0) > 0) {
39402 i10 = 0;
39403 do {
39404 i11 = i7 + (i10 << 2) | 0;
39405 if ((i11 | 0) != 0) {
39406 HEAP32[i11 >> 2] = HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 << 2) >> 2];
39407 }
39408 i10 = i10 + 1 | 0;
39409 } while ((i10 | 0) < (i8 | 0));
39410 }
39411 i8 = HEAP32[i9 >> 2] | 0;
39412 i10 = i1 + 16 | 0;
39413 if ((i8 | 0) != 0) {
39414 if ((HEAP8[i10] | 0) != 0) {
39415 __Z21btAlignedFreeInternalPv(i8);
39416 }
39417 HEAP32[i9 >> 2] = 0;
39418 }
39419 HEAP8[i10] = 1;
39420 HEAP32[i9 >> 2] = i7;
39421 HEAP32[i6 >> 2] = i3;
39422 i12 = i7;
39423 } else {
39424 i12 = HEAP32[i1 + 12 >> 2] | 0;
39425 }
39426 i7 = i5;
39427 do {
39428 i6 = i12 + (i7 << 2) | 0;
39429 if ((i6 | 0) != 0) {
39430 HEAP32[i6 >> 2] = 0;
39431 }
39432 i7 = i7 + 1 | 0;
39433 } while ((i7 | 0) < (i3 | 0));
39434 }
39435 HEAP32[i4 >> 2] = i3;
39436 i4 = i1 + 24 | 0;
39437 i7 = HEAP32[i4 >> 2] | 0;
39438 if ((i7 | 0) < (i3 | 0)) {
39439 i12 = i1 + 28 | 0;
39440 if ((HEAP32[i12 >> 2] | 0) < (i3 | 0)) {
39441 if ((i3 | 0) == 0) {
39442 i13 = 0;
39443 i14 = i7;
39444 } else {
39445 i6 = __Z22btAlignedAllocInternalji(i3 << 2, 16) | 0;
39446 i13 = i6;
39447 i14 = HEAP32[i4 >> 2] | 0;
39448 }
39449 i6 = i1 + 32 | 0;
39450 if ((i14 | 0) > 0) {
39451 i9 = 0;
39452 do {
39453 i10 = i13 + (i9 << 2) | 0;
39454 if ((i10 | 0) != 0) {
39455 HEAP32[i10 >> 2] = HEAP32[(HEAP32[i6 >> 2] | 0) + (i9 << 2) >> 2];
39456 }
39457 i9 = i9 + 1 | 0;
39458 } while ((i9 | 0) < (i14 | 0));
39459 }
39460 i14 = HEAP32[i6 >> 2] | 0;
39461 i9 = i1 + 36 | 0;
39462 if ((i14 | 0) != 0) {
39463 if ((HEAP8[i9] | 0) != 0) {
39464 __Z21btAlignedFreeInternalPv(i14);
39465 }
39466 HEAP32[i6 >> 2] = 0;
39467 }
39468 HEAP8[i9] = 1;
39469 HEAP32[i6 >> 2] = i13;
39470 HEAP32[i12 >> 2] = i3;
39471 i15 = i13;
39472 } else {
39473 i15 = HEAP32[i1 + 32 >> 2] | 0;
39474 }
39475 i13 = i7;
39476 do {
39477 i7 = i15 + (i13 << 2) | 0;
39478 if ((i7 | 0) != 0) {
39479 HEAP32[i7 >> 2] = 0;
39480 }
39481 i13 = i13 + 1 | 0;
39482 } while ((i13 | 0) < (i3 | 0));
39483 }
39484 HEAP32[i4 >> 2] = i3;
39485 if ((i3 | 0) > 0) {
39486 i4 = i3 << 2;
39487 _memset(HEAP32[i1 + 12 >> 2] | 0, -1 | 0, i4 | 0);
39488 _memset(HEAP32[i1 + 32 >> 2] | 0, -1 | 0, i4 | 0);
39489 }
39490 if ((i5 | 0) <= 0) {
39491 return;
39492 }
39493 i4 = HEAP32[i1 + 72 >> 2] | 0;
39494 i3 = HEAP32[i1 + 12 >> 2] | 0;
39495 i13 = HEAP32[i1 + 32 >> 2] | 0;
39496 i1 = 0;
39497 do {
39498 i15 = HEAP32[i4 + (i1 << 3) >> 2] | 0;
39499 i7 = i15 + ~(i15 << 15) | 0;
39500 i15 = (i7 >> 10 ^ i7) * 9 | 0;
39501 i7 = i15 >> 6 ^ i15;
39502 i15 = i7 + ~(i7 << 11) | 0;
39503 i7 = i3 + (((i15 >> 16 ^ i15) & (HEAP32[i2 >> 2] | 0) - 1) << 2) | 0;
39504 HEAP32[i13 + (i1 << 2) >> 2] = HEAP32[i7 >> 2];
39505 HEAP32[i7 >> 2] = i1;
39506 i1 = i1 + 1 | 0;
39507 } while ((i1 | 0) < (i5 | 0));
39508 return;
39509 }
39510 function __ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(i1, i2, i3, i4) {
39511 i1 = i1 | 0;
39512 i2 = i2 | 0;
39513 i3 = i3 | 0;
39514 i4 = i4 | 0;
39515 var d5 = 0.0, i6 = 0, d7 = 0.0, i8 = 0, i9 = 0, d10 = 0.0, i11 = 0, i12 = 0, d13 = 0.0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0;
39516 i1 = i4 + 84 | 0;
39517 d5 = +HEAPF32[i1 >> 2];
39518 i6 = i4 + 16 | 0;
39519 d7 = +HEAPF32[i6 >> 2];
39520 i8 = i2 + 504 | 0;
39521 i9 = i4 + 20 | 0;
39522 d10 = +HEAPF32[i9 >> 2];
39523 i11 = i2 + 508 | 0;
39524 i12 = i4 + 24 | 0;
39525 d13 = +HEAPF32[i12 >> 2];
39526 i14 = i2 + 512 | 0;
39527 i15 = i2 + 520 | 0;
39528 i16 = i2 + 524 | 0;
39529 i17 = i2 + 528 | 0;
39530 i18 = i3 + 504 | 0;
39531 i19 = i3 + 508 | 0;
39532 i20 = i3 + 512 | 0;
39533 i21 = i3 + 520 | 0;
39534 i22 = i3 + 524 | 0;
39535 i23 = i3 + 528 | 0;
39536 d24 = +HEAPF32[i4 + 92 >> 2];
39537 d25 = +HEAPF32[i4 + 116 >> 2] - d5 * +HEAPF32[i4 + 120 >> 2] - (d7 * +HEAPF32[i8 >> 2] + d10 * +HEAPF32[i11 >> 2] + d13 * +HEAPF32[i14 >> 2] + (+HEAPF32[i4 >> 2] * +HEAPF32[i15 >> 2] + +HEAPF32[i4 + 4 >> 2] * +HEAPF32[i16 >> 2] + +HEAPF32[i4 + 8 >> 2] * +HEAPF32[i17 >> 2])) * d24 - d24 * (+HEAPF32[i4 + 32 >> 2] * +HEAPF32[i21 >> 2] + +HEAPF32[i4 + 36 >> 2] * +HEAPF32[i22 >> 2] + +HEAPF32[i4 + 40 >> 2] * +HEAPF32[i23 >> 2] - (d7 * +HEAPF32[i18 >> 2] + d10 * +HEAPF32[i19 >> 2] + d13 * +HEAPF32[i20 >> 2]));
39538 d24 = d5 + d25;
39539 d26 = +HEAPF32[i4 + 124 >> 2];
39540 do {
39541 if (d24 < d26) {
39542 HEAPF32[i1 >> 2] = d26;
39543 d27 = d26 - d5;
39544 } else {
39545 d28 = +HEAPF32[i4 + 128 >> 2];
39546 if (d24 > d28) {
39547 HEAPF32[i1 >> 2] = d28;
39548 d27 = d28 - d5;
39549 break;
39550 } else {
39551 HEAPF32[i1 >> 2] = d24;
39552 d27 = d25;
39553 break;
39554 }
39555 }
39556 } while (0);
39557 if (+HEAPF32[i2 + 336 >> 2] != 0.0) {
39558 d25 = d27 * d10 * +HEAPF32[i2 + 556 >> 2];
39559 d10 = d27 * d13 * +HEAPF32[i2 + 560 >> 2];
39560 HEAPF32[i8 >> 2] = +HEAPF32[i8 >> 2] + d27 * d7 * +HEAPF32[i2 + 552 >> 2];
39561 HEAPF32[i11 >> 2] = d25 + +HEAPF32[i11 >> 2];
39562 HEAPF32[i14 >> 2] = d10 + +HEAPF32[i14 >> 2];
39563 d10 = d27 * +HEAPF32[i2 + 540 >> 2] * +HEAPF32[i4 + 52 >> 2];
39564 d25 = d27 * +HEAPF32[i2 + 544 >> 2] * +HEAPF32[i4 + 56 >> 2];
39565 HEAPF32[i15 >> 2] = d27 * +HEAPF32[i2 + 536 >> 2] * +HEAPF32[i4 + 48 >> 2] + +HEAPF32[i15 >> 2];
39566 HEAPF32[i16 >> 2] = d10 + +HEAPF32[i16 >> 2];
39567 HEAPF32[i17 >> 2] = d25 + +HEAPF32[i17 >> 2];
39568 }
39569 if (+HEAPF32[i3 + 336 >> 2] == 0.0) {
39570 return;
39571 }
39572 d25 = d27 * +HEAPF32[i3 + 556 >> 2] * (-0.0 - +HEAPF32[i9 >> 2]);
39573 d10 = d27 * +HEAPF32[i3 + 560 >> 2] * (-0.0 - +HEAPF32[i12 >> 2]);
39574 HEAPF32[i18 >> 2] = +HEAPF32[i18 >> 2] + d27 * +HEAPF32[i3 + 552 >> 2] * (-0.0 - +HEAPF32[i6 >> 2]);
39575 HEAPF32[i19 >> 2] = d25 + +HEAPF32[i19 >> 2];
39576 HEAPF32[i20 >> 2] = d10 + +HEAPF32[i20 >> 2];
39577 d10 = d27 * +HEAPF32[i3 + 540 >> 2] * +HEAPF32[i4 + 68 >> 2];
39578 d25 = d27 * +HEAPF32[i3 + 544 >> 2] * +HEAPF32[i4 + 72 >> 2];
39579 HEAPF32[i21 >> 2] = d27 * +HEAPF32[i3 + 536 >> 2] * +HEAPF32[i4 + 64 >> 2] + +HEAPF32[i21 >> 2];
39580 HEAPF32[i22 >> 2] = d10 + +HEAPF32[i22 >> 2];
39581 HEAPF32[i23 >> 2] = d25 + +HEAPF32[i23 >> 2];
39582 return;
39583 }
39584 function __ZN26btBoxBoxCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
39585 i1 = i1 | 0;
39586 i2 = i2 | 0;
39587 i3 = i3 | 0;
39588 i4 = i4 | 0;
39589 i5 = i5 | 0;
39590 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
39591 i6 = STACKTOP;
39592 STACKTOP = STACKTOP + 152 | 0;
39593 i7 = i6 | 0;
39594 i8 = i6 + 136 | 0;
39595 i9 = HEAP32[i1 + 12 >> 2] | 0;
39596 if ((i9 | 0) == 0) {
39597 STACKTOP = i6;
39598 return;
39599 }
39600 i10 = HEAP32[i2 + 192 >> 2] | 0;
39601 i11 = HEAP32[i3 + 192 >> 2] | 0;
39602 i12 = i5 + 4 | 0;
39603 HEAP32[i12 >> 2] = i9;
39604 HEAP32[i7 + 132 >> 2] = 0;
39605 HEAPF32[i7 + 128 >> 2] = 999999984306749400.0;
39606 i9 = i7;
39607 i13 = i2 + 4 | 0;
39608 HEAP32[i9 >> 2] = HEAP32[i13 >> 2];
39609 HEAP32[i9 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
39610 HEAP32[i9 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
39611 HEAP32[i9 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
39612 i13 = i7 + 16 | 0;
39613 i9 = i2 + 20 | 0;
39614 HEAP32[i13 >> 2] = HEAP32[i9 >> 2];
39615 HEAP32[i13 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
39616 HEAP32[i13 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
39617 HEAP32[i13 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
39618 i9 = i7 + 32 | 0;
39619 i13 = i2 + 36 | 0;
39620 HEAP32[i9 >> 2] = HEAP32[i13 >> 2];
39621 HEAP32[i9 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
39622 HEAP32[i9 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
39623 HEAP32[i9 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
39624 i13 = i7 + 48 | 0;
39625 i9 = i2 + 52 | 0;
39626 HEAP32[i13 >> 2] = HEAP32[i9 >> 2];
39627 HEAP32[i13 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
39628 HEAP32[i13 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
39629 HEAP32[i13 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
39630 i9 = i7 + 64 | 0;
39631 i13 = i3 + 4 | 0;
39632 HEAP32[i9 >> 2] = HEAP32[i13 >> 2];
39633 HEAP32[i9 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
39634 HEAP32[i9 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
39635 HEAP32[i9 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
39636 i13 = i7 + 80 | 0;
39637 i9 = i3 + 20 | 0;
39638 HEAP32[i13 >> 2] = HEAP32[i9 >> 2];
39639 HEAP32[i13 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
39640 HEAP32[i13 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
39641 HEAP32[i13 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
39642 i9 = i7 + 96 | 0;
39643 i13 = i3 + 36 | 0;
39644 HEAP32[i9 >> 2] = HEAP32[i13 >> 2];
39645 HEAP32[i9 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
39646 HEAP32[i9 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
39647 HEAP32[i9 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
39648 i13 = i7 + 112 | 0;
39649 i9 = i3 + 52 | 0;
39650 HEAP32[i13 >> 2] = HEAP32[i9 >> 2];
39651 HEAP32[i13 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
39652 HEAP32[i13 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
39653 HEAP32[i13 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
39654 __ZN16btBoxBoxDetectorC2EP10btBoxShapeS1_(i8, i10, i11);
39655 __ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i8, i7, i5 | 0, HEAP32[i4 + 20 >> 2] | 0, 0);
39656 if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
39657 STACKTOP = i6;
39658 return;
39659 }
39660 i1 = HEAP32[i12 >> 2] | 0;
39661 if ((HEAP32[i1 + 1116 >> 2] | 0) == 0) {
39662 STACKTOP = i6;
39663 return;
39664 }
39665 if ((HEAP32[i1 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
39666 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i5 + 8 | 0, i5 + 72 | 0);
39667 STACKTOP = i6;
39668 return;
39669 } else {
39670 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i5 + 72 | 0, i5 + 8 | 0);
39671 STACKTOP = i6;
39672 return;
39673 }
39674 }
39675 function __ZN22btCompoundLeafCallback7ProcessEPK10btDbvtNode(i1, i2) {
39676 i1 = i1 | 0;
39677 i2 = i2 | 0;
39678 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0;
39679 i3 = STACKTOP;
39680 STACKTOP = STACKTOP + 48 | 0;
39681 i4 = i3 | 0;
39682 i5 = i3 + 16 | 0;
39683 i6 = i3 + 32 | 0;
39684 i7 = HEAP32[i2 + 36 >> 2] | 0;
39685 i8 = i1 + 4 | 0;
39686 i9 = HEAP32[(HEAP32[(HEAP32[(HEAP32[i8 >> 2] | 0) + 192 >> 2] | 0) + 24 >> 2] | 0) + (i7 * 80 | 0) + 64 >> 2] | 0;
39687 i10 = i1 + 16 | 0;
39688 i11 = HEAP32[(HEAP32[i10 >> 2] | 0) + 20 >> 2] | 0;
39689 if ((i11 | 0) == 0) {
39690 __ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i1, i9, i7);
39691 STACKTOP = i3;
39692 return;
39693 }
39694 if (((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i11 >> 2] | 0) + 48 >> 2] & 127](i11) | 0) & 2 | 0) == 0) {
39695 __ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i1, i9, i7);
39696 STACKTOP = i3;
39697 return;
39698 }
39699 i11 = HEAP32[i8 >> 2] | 0;
39700 d12 = +HEAPF32[i11 + 4 >> 2];
39701 d13 = +HEAPF32[i11 + 8 >> 2];
39702 d14 = +HEAPF32[i11 + 12 >> 2];
39703 d15 = +HEAPF32[i11 + 20 >> 2];
39704 d16 = +HEAPF32[i11 + 24 >> 2];
39705 d17 = +HEAPF32[i11 + 28 >> 2];
39706 d18 = +HEAPF32[i11 + 36 >> 2];
39707 d19 = +HEAPF32[i11 + 40 >> 2];
39708 d20 = +HEAPF32[i11 + 44 >> 2];
39709 d21 = +HEAPF32[i11 + 52 >> 2];
39710 d22 = +HEAPF32[i11 + 56 >> 2];
39711 d23 = +HEAPF32[i11 + 60 >> 2];
39712 d24 = +HEAPF32[i2 + 16 >> 2];
39713 d25 = +HEAPF32[i2 >> 2];
39714 d26 = +HEAPF32[i2 + 20 >> 2];
39715 d27 = +HEAPF32[i2 + 4 >> 2];
39716 d28 = +HEAPF32[i2 + 24 >> 2];
39717 d29 = +HEAPF32[i2 + 8 >> 2];
39718 d30 = (d24 - d25) * .5 + 0.0;
39719 d31 = (d26 - d27) * .5 + 0.0;
39720 d32 = (d28 - d29) * .5 + 0.0;
39721 d33 = (d24 + d25) * .5;
39722 d25 = (d26 + d27) * .5;
39723 d27 = (d28 + d29) * .5;
39724 d29 = +Math_abs(+d12);
39725 d28 = +Math_abs(+d13);
39726 d26 = +Math_abs(+d14);
39727 d24 = +Math_abs(+d15);
39728 d34 = +Math_abs(+d16);
39729 d35 = +Math_abs(+d17);
39730 d36 = +Math_abs(+d18);
39731 d37 = +Math_abs(+d19);
39732 d38 = d21 + (d12 * d33 + d13 * d25 + d14 * d27);
39733 d14 = d22 + (d15 * d33 + d16 * d25 + d17 * d27);
39734 d17 = d23 + (d18 * d33 + d19 * d25 + d20 * d27);
39735 d27 = d30 * d29 + d31 * d28 + d32 * d26;
39736 d26 = d30 * d24 + d31 * d34 + d32 * d35;
39737 d35 = d30 * d36 + d31 * d37 + d32 * +Math_abs(+d20);
39738 HEAPF32[i4 >> 2] = d38 - d27;
39739 HEAPF32[i4 + 4 >> 2] = d14 - d26;
39740 HEAPF32[i4 + 8 >> 2] = d17 - d35;
39741 HEAPF32[i4 + 12 >> 2] = 0.0;
39742 HEAPF32[i5 >> 2] = d27 + d38;
39743 HEAPF32[i5 + 4 >> 2] = d14 + d26;
39744 HEAPF32[i5 + 8 >> 2] = d17 + d35;
39745 HEAPF32[i5 + 12 >> 2] = 0.0;
39746 i2 = HEAP32[(HEAP32[i10 >> 2] | 0) + 20 >> 2] | 0;
39747 i10 = HEAP32[(HEAP32[i2 >> 2] | 0) + 52 >> 2] | 0;
39748 HEAPF32[i6 >> 2] = 1.0;
39749 HEAPF32[i6 + 4 >> 2] = 0.0;
39750 HEAPF32[i6 + 8 >> 2] = 0.0;
39751 HEAPF32[i6 + 12 >> 2] = 0.0;
39752 FUNCTION_TABLE_viiii[i10 & 127](i2, i4, i5, i6);
39753 __ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i1, i9, i7);
39754 STACKTOP = i3;
39755 return;
39756 }
39757 function __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeE10growTablesERKS0_(i1, i2) {
39758 i1 = i1 | 0;
39759 i2 = i2 | 0;
39760 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
39761 i2 = i1 + 48 | 0;
39762 i3 = HEAP32[i2 >> 2] | 0;
39763 i4 = i1 + 4 | 0;
39764 i5 = HEAP32[i4 >> 2] | 0;
39765 if ((i5 | 0) >= (i3 | 0)) {
39766 return;
39767 }
39768 if ((i5 | 0) <= (i3 | 0)) {
39769 i6 = i1 + 8 | 0;
39770 if ((HEAP32[i6 >> 2] | 0) < (i3 | 0)) {
39771 if ((i3 | 0) == 0) {
39772 i7 = 0;
39773 i8 = i5;
39774 } else {
39775 i9 = __Z22btAlignedAllocInternalji(i3 << 2, 16) | 0;
39776 i7 = i9;
39777 i8 = HEAP32[i4 >> 2] | 0;
39778 }
39779 i9 = i1 + 12 | 0;
39780 if ((i8 | 0) > 0) {
39781 i10 = 0;
39782 do {
39783 i11 = i7 + (i10 << 2) | 0;
39784 if ((i11 | 0) != 0) {
39785 HEAP32[i11 >> 2] = HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 << 2) >> 2];
39786 }
39787 i10 = i10 + 1 | 0;
39788 } while ((i10 | 0) < (i8 | 0));
39789 }
39790 i8 = HEAP32[i9 >> 2] | 0;
39791 i10 = i1 + 16 | 0;
39792 if ((i8 | 0) != 0) {
39793 if ((HEAP8[i10] | 0) != 0) {
39794 __Z21btAlignedFreeInternalPv(i8);
39795 }
39796 HEAP32[i9 >> 2] = 0;
39797 }
39798 HEAP8[i10] = 1;
39799 HEAP32[i9 >> 2] = i7;
39800 HEAP32[i6 >> 2] = i3;
39801 i12 = i7;
39802 } else {
39803 i12 = HEAP32[i1 + 12 >> 2] | 0;
39804 }
39805 i7 = i5;
39806 do {
39807 i6 = i12 + (i7 << 2) | 0;
39808 if ((i6 | 0) != 0) {
39809 HEAP32[i6 >> 2] = 0;
39810 }
39811 i7 = i7 + 1 | 0;
39812 } while ((i7 | 0) < (i3 | 0));
39813 }
39814 HEAP32[i4 >> 2] = i3;
39815 i4 = i1 + 24 | 0;
39816 i7 = HEAP32[i4 >> 2] | 0;
39817 if ((i7 | 0) < (i3 | 0)) {
39818 i12 = i1 + 28 | 0;
39819 if ((HEAP32[i12 >> 2] | 0) < (i3 | 0)) {
39820 if ((i3 | 0) == 0) {
39821 i13 = 0;
39822 i14 = i7;
39823 } else {
39824 i6 = __Z22btAlignedAllocInternalji(i3 << 2, 16) | 0;
39825 i13 = i6;
39826 i14 = HEAP32[i4 >> 2] | 0;
39827 }
39828 i6 = i1 + 32 | 0;
39829 if ((i14 | 0) > 0) {
39830 i9 = 0;
39831 do {
39832 i10 = i13 + (i9 << 2) | 0;
39833 if ((i10 | 0) != 0) {
39834 HEAP32[i10 >> 2] = HEAP32[(HEAP32[i6 >> 2] | 0) + (i9 << 2) >> 2];
39835 }
39836 i9 = i9 + 1 | 0;
39837 } while ((i9 | 0) < (i14 | 0));
39838 }
39839 i14 = HEAP32[i6 >> 2] | 0;
39840 i9 = i1 + 36 | 0;
39841 if ((i14 | 0) != 0) {
39842 if ((HEAP8[i9] | 0) != 0) {
39843 __Z21btAlignedFreeInternalPv(i14);
39844 }
39845 HEAP32[i6 >> 2] = 0;
39846 }
39847 HEAP8[i9] = 1;
39848 HEAP32[i6 >> 2] = i13;
39849 HEAP32[i12 >> 2] = i3;
39850 i15 = i13;
39851 } else {
39852 i15 = HEAP32[i1 + 32 >> 2] | 0;
39853 }
39854 i13 = i7;
39855 do {
39856 i7 = i15 + (i13 << 2) | 0;
39857 if ((i7 | 0) != 0) {
39858 HEAP32[i7 >> 2] = 0;
39859 }
39860 i13 = i13 + 1 | 0;
39861 } while ((i13 | 0) < (i3 | 0));
39862 }
39863 HEAP32[i4 >> 2] = i3;
39864 if ((i3 | 0) > 0) {
39865 i4 = i3 << 2;
39866 _memset(HEAP32[i1 + 12 >> 2] | 0, -1 | 0, i4 | 0);
39867 _memset(HEAP32[i1 + 32 >> 2] | 0, -1 | 0, i4 | 0);
39868 }
39869 if ((i5 | 0) <= 0) {
39870 return;
39871 }
39872 i4 = HEAP32[i1 + 72 >> 2] | 0;
39873 i3 = HEAP32[i1 + 12 >> 2] | 0;
39874 i13 = HEAP32[i1 + 32 >> 2] | 0;
39875 i1 = 0;
39876 do {
39877 i15 = i3 + (((HEAPU16[i4 + (i1 << 2) + 2 >> 1] << 16) + (HEAP16[i4 + (i1 << 2) >> 1] | 0) & (HEAP32[i2 >> 2] | 0) - 1) << 2) | 0;
39878 HEAP32[i13 + (i1 << 2) >> 2] = HEAP32[i15 >> 2];
39879 HEAP32[i15 >> 2] = i1;
39880 i1 = i1 + 1 | 0;
39881 } while ((i1 | 0) < (i5 | 0));
39882 return;
39883 }
39884 function __ZN35btSequentialImpulseConstraintSolver43resolveSplitPenetrationImpulseCacheFriendlyER11btRigidBodyS1_RK18btSolverConstraint(i1, i2, i3, i4) {
39885 i1 = i1 | 0;
39886 i2 = i2 | 0;
39887 i3 = i3 | 0;
39888 i4 = i4 | 0;
39889 var d5 = 0.0, d6 = 0.0, i7 = 0, d8 = 0.0, i9 = 0, i10 = 0, d11 = 0.0, i12 = 0, i13 = 0, d14 = 0.0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0;
39890 d5 = +HEAPF32[i4 + 132 >> 2];
39891 if (d5 == 0.0) {
39892 return;
39893 }
39894 HEAP32[2988] = (HEAP32[2988] | 0) + 1;
39895 i1 = i4 + 80 | 0;
39896 d6 = +HEAPF32[i1 >> 2];
39897 i7 = i4 + 16 | 0;
39898 d8 = +HEAPF32[i7 >> 2];
39899 i9 = i2 + 568 | 0;
39900 i10 = i4 + 20 | 0;
39901 d11 = +HEAPF32[i10 >> 2];
39902 i12 = i2 + 572 | 0;
39903 i13 = i4 + 24 | 0;
39904 d14 = +HEAPF32[i13 >> 2];
39905 i15 = i2 + 576 | 0;
39906 i16 = i2 + 584 | 0;
39907 i17 = i2 + 588 | 0;
39908 i18 = i2 + 592 | 0;
39909 i19 = i3 + 568 | 0;
39910 i20 = i3 + 572 | 0;
39911 i21 = i3 + 576 | 0;
39912 i22 = i3 + 584 | 0;
39913 i23 = i3 + 588 | 0;
39914 i24 = i3 + 592 | 0;
39915 d25 = +HEAPF32[i4 + 92 >> 2];
39916 d26 = d5 - d6 * +HEAPF32[i4 + 120 >> 2] - (d8 * +HEAPF32[i9 >> 2] + d11 * +HEAPF32[i12 >> 2] + d14 * +HEAPF32[i15 >> 2] + (+HEAPF32[i4 >> 2] * +HEAPF32[i16 >> 2] + +HEAPF32[i4 + 4 >> 2] * +HEAPF32[i17 >> 2] + +HEAPF32[i4 + 8 >> 2] * +HEAPF32[i18 >> 2])) * d25 - d25 * (+HEAPF32[i4 + 32 >> 2] * +HEAPF32[i22 >> 2] + +HEAPF32[i4 + 36 >> 2] * +HEAPF32[i23 >> 2] + +HEAPF32[i4 + 40 >> 2] * +HEAPF32[i24 >> 2] - (d8 * +HEAPF32[i19 >> 2] + d11 * +HEAPF32[i20 >> 2] + d14 * +HEAPF32[i21 >> 2]));
39917 d25 = d6 + d26;
39918 d5 = +HEAPF32[i4 + 124 >> 2];
39919 if (d25 < d5) {
39920 d27 = d5 - d6;
39921 d28 = d5;
39922 } else {
39923 d27 = d26;
39924 d28 = d25;
39925 }
39926 HEAPF32[i1 >> 2] = d28;
39927 if (+HEAPF32[i2 + 336 >> 2] != 0.0) {
39928 d28 = d27 * d11 * +HEAPF32[i2 + 556 >> 2];
39929 d11 = d27 * d14 * +HEAPF32[i2 + 560 >> 2];
39930 HEAPF32[i9 >> 2] = +HEAPF32[i9 >> 2] + d27 * d8 * +HEAPF32[i2 + 552 >> 2];
39931 HEAPF32[i12 >> 2] = d28 + +HEAPF32[i12 >> 2];
39932 HEAPF32[i15 >> 2] = d11 + +HEAPF32[i15 >> 2];
39933 d11 = d27 * +HEAPF32[i2 + 540 >> 2] * +HEAPF32[i4 + 52 >> 2];
39934 d28 = d27 * +HEAPF32[i2 + 544 >> 2] * +HEAPF32[i4 + 56 >> 2];
39935 HEAPF32[i16 >> 2] = d27 * +HEAPF32[i2 + 536 >> 2] * +HEAPF32[i4 + 48 >> 2] + +HEAPF32[i16 >> 2];
39936 HEAPF32[i17 >> 2] = d11 + +HEAPF32[i17 >> 2];
39937 HEAPF32[i18 >> 2] = d28 + +HEAPF32[i18 >> 2];
39938 }
39939 if (+HEAPF32[i3 + 336 >> 2] == 0.0) {
39940 return;
39941 }
39942 d28 = d27 * +HEAPF32[i3 + 556 >> 2] * (-0.0 - +HEAPF32[i10 >> 2]);
39943 d11 = d27 * +HEAPF32[i3 + 560 >> 2] * (-0.0 - +HEAPF32[i13 >> 2]);
39944 HEAPF32[i19 >> 2] = +HEAPF32[i19 >> 2] + d27 * +HEAPF32[i3 + 552 >> 2] * (-0.0 - +HEAPF32[i7 >> 2]);
39945 HEAPF32[i20 >> 2] = d28 + +HEAPF32[i20 >> 2];
39946 HEAPF32[i21 >> 2] = d11 + +HEAPF32[i21 >> 2];
39947 d11 = d27 * +HEAPF32[i3 + 540 >> 2] * +HEAPF32[i4 + 68 >> 2];
39948 d28 = d27 * +HEAPF32[i3 + 544 >> 2] * +HEAPF32[i4 + 72 >> 2];
39949 HEAPF32[i22 >> 2] = d27 * +HEAPF32[i3 + 536 >> 2] * +HEAPF32[i4 + 64 >> 2] + +HEAPF32[i22 >> 2];
39950 HEAPF32[i23 >> 2] = d11 + +HEAPF32[i23 >> 2];
39951 HEAPF32[i24 >> 2] = d28 + +HEAPF32[i24 >> 2];
39952 return;
39953 }
39954 function __ZN24btConvexTriangleCallback22setTimeStepAndCountersEfRK16btDispatcherInfoP16btManifoldResult(i1, d2, i3, i4) {
39955 i1 = i1 | 0;
39956 d2 = +d2;
39957 i3 = i3 | 0;
39958 i4 = i4 | 0;
39959 var i5 = 0, i6 = 0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, i31 = 0;
39960 i5 = STACKTOP;
39961 STACKTOP = STACKTOP + 64 | 0;
39962 i6 = i5 | 0;
39963 HEAP32[i1 + 52 >> 2] = i3;
39964 HEAPF32[i1 + 56 >> 2] = d2;
39965 HEAP32[i1 + 44 >> 2] = i4;
39966 i4 = HEAP32[i1 + 8 >> 2] | 0;
39967 d7 = +HEAPF32[i4 + 4 >> 2];
39968 d8 = +HEAPF32[i4 + 20 >> 2];
39969 d9 = +HEAPF32[i4 + 36 >> 2];
39970 d10 = +HEAPF32[i4 + 8 >> 2];
39971 d11 = +HEAPF32[i4 + 24 >> 2];
39972 d12 = +HEAPF32[i4 + 40 >> 2];
39973 d13 = +HEAPF32[i4 + 12 >> 2];
39974 d14 = +HEAPF32[i4 + 28 >> 2];
39975 d15 = +HEAPF32[i4 + 44 >> 2];
39976 d16 = -0.0 - +HEAPF32[i4 + 52 >> 2];
39977 d17 = -0.0 - +HEAPF32[i4 + 56 >> 2];
39978 d18 = -0.0 - +HEAPF32[i4 + 60 >> 2];
39979 i4 = HEAP32[i1 + 4 >> 2] | 0;
39980 d19 = +HEAPF32[i4 + 4 >> 2];
39981 d20 = +HEAPF32[i4 + 20 >> 2];
39982 d21 = +HEAPF32[i4 + 36 >> 2];
39983 d22 = +HEAPF32[i4 + 8 >> 2];
39984 d23 = +HEAPF32[i4 + 24 >> 2];
39985 d24 = +HEAPF32[i4 + 40 >> 2];
39986 d25 = +HEAPF32[i4 + 12 >> 2];
39987 d26 = +HEAPF32[i4 + 28 >> 2];
39988 d27 = +HEAPF32[i4 + 44 >> 2];
39989 d28 = +HEAPF32[i4 + 52 >> 2];
39990 d29 = +HEAPF32[i4 + 56 >> 2];
39991 d30 = +HEAPF32[i4 + 60 >> 2];
39992 HEAPF32[i6 >> 2] = d7 * d19 + d8 * d20 + d9 * d21;
39993 HEAPF32[i6 + 4 >> 2] = d7 * d22 + d8 * d23 + d9 * d24;
39994 HEAPF32[i6 + 8 >> 2] = d7 * d25 + d8 * d26 + d9 * d27;
39995 HEAPF32[i6 + 12 >> 2] = 0.0;
39996 HEAPF32[i6 + 16 >> 2] = d10 * d19 + d11 * d20 + d12 * d21;
39997 HEAPF32[i6 + 20 >> 2] = d10 * d22 + d11 * d23 + d12 * d24;
39998 HEAPF32[i6 + 24 >> 2] = d10 * d25 + d11 * d26 + d12 * d27;
39999 HEAPF32[i6 + 28 >> 2] = 0.0;
40000 HEAPF32[i6 + 32 >> 2] = d13 * d19 + d14 * d20 + d15 * d21;
40001 HEAPF32[i6 + 36 >> 2] = d13 * d22 + d14 * d23 + d15 * d24;
40002 HEAPF32[i6 + 40 >> 2] = d13 * d25 + d14 * d26 + d15 * d27;
40003 HEAPF32[i6 + 44 >> 2] = 0.0;
40004 HEAPF32[i6 + 48 >> 2] = d7 * d16 + d8 * d17 + d9 * d18 + (d7 * d28 + d8 * d29 + d9 * d30);
40005 HEAPF32[i6 + 52 >> 2] = d10 * d16 + d11 * d17 + d12 * d18 + (d10 * d28 + d11 * d29 + d12 * d30);
40006 HEAPF32[i6 + 56 >> 2] = d13 * d16 + d14 * d17 + d15 * d18 + (d13 * d28 + d14 * d29 + d15 * d30);
40007 HEAPF32[i6 + 60 >> 2] = 0.0;
40008 i3 = HEAP32[i4 + 192 >> 2] | 0;
40009 i4 = i1 + 12 | 0;
40010 i31 = i1 + 28 | 0;
40011 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i3 >> 2] | 0) + 8 >> 2] & 127](i3, i6, i4, i31);
40012 i6 = i31 | 0;
40013 HEAPF32[i6 >> 2] = +HEAPF32[i6 >> 2] + d2;
40014 i6 = i1 + 32 | 0;
40015 HEAPF32[i6 >> 2] = +HEAPF32[i6 >> 2] + d2;
40016 i6 = i1 + 36 | 0;
40017 HEAPF32[i6 >> 2] = +HEAPF32[i6 >> 2] + d2;
40018 i6 = i4 | 0;
40019 HEAPF32[i6 >> 2] = +HEAPF32[i6 >> 2] - d2;
40020 i6 = i1 + 16 | 0;
40021 HEAPF32[i6 >> 2] = +HEAPF32[i6 >> 2] - d2;
40022 i6 = i1 + 20 | 0;
40023 HEAPF32[i6 >> 2] = +HEAPF32[i6 >> 2] - d2;
40024 STACKTOP = i5;
40025 return;
40026 }
40027 function __ZN35btSequentialImpulseConstraintSolver36resolveSingleConstraintRowLowerLimitER11btRigidBodyS1_RK18btSolverConstraint(i1, i2, i3, i4) {
40028 i1 = i1 | 0;
40029 i2 = i2 | 0;
40030 i3 = i3 | 0;
40031 i4 = i4 | 0;
40032 var d5 = 0.0, i6 = 0, d7 = 0.0, i8 = 0, i9 = 0, d10 = 0.0, i11 = 0, i12 = 0, d13 = 0.0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0;
40033 i1 = i4 + 84 | 0;
40034 d5 = +HEAPF32[i1 >> 2];
40035 i6 = i4 + 16 | 0;
40036 d7 = +HEAPF32[i6 >> 2];
40037 i8 = i2 + 504 | 0;
40038 i9 = i4 + 20 | 0;
40039 d10 = +HEAPF32[i9 >> 2];
40040 i11 = i2 + 508 | 0;
40041 i12 = i4 + 24 | 0;
40042 d13 = +HEAPF32[i12 >> 2];
40043 i14 = i2 + 512 | 0;
40044 i15 = i2 + 520 | 0;
40045 i16 = i2 + 524 | 0;
40046 i17 = i2 + 528 | 0;
40047 i18 = i3 + 504 | 0;
40048 i19 = i3 + 508 | 0;
40049 i20 = i3 + 512 | 0;
40050 i21 = i3 + 520 | 0;
40051 i22 = i3 + 524 | 0;
40052 i23 = i3 + 528 | 0;
40053 d24 = +HEAPF32[i4 + 92 >> 2];
40054 d25 = +HEAPF32[i4 + 116 >> 2] - d5 * +HEAPF32[i4 + 120 >> 2] - (d7 * +HEAPF32[i8 >> 2] + d10 * +HEAPF32[i11 >> 2] + d13 * +HEAPF32[i14 >> 2] + (+HEAPF32[i4 >> 2] * +HEAPF32[i15 >> 2] + +HEAPF32[i4 + 4 >> 2] * +HEAPF32[i16 >> 2] + +HEAPF32[i4 + 8 >> 2] * +HEAPF32[i17 >> 2])) * d24 - d24 * (+HEAPF32[i4 + 32 >> 2] * +HEAPF32[i21 >> 2] + +HEAPF32[i4 + 36 >> 2] * +HEAPF32[i22 >> 2] + +HEAPF32[i4 + 40 >> 2] * +HEAPF32[i23 >> 2] - (d7 * +HEAPF32[i18 >> 2] + d10 * +HEAPF32[i19 >> 2] + d13 * +HEAPF32[i20 >> 2]));
40055 d24 = d5 + d25;
40056 d26 = +HEAPF32[i4 + 124 >> 2];
40057 if (d24 < d26) {
40058 d27 = d26 - d5;
40059 d28 = d26;
40060 } else {
40061 d27 = d25;
40062 d28 = d24;
40063 }
40064 HEAPF32[i1 >> 2] = d28;
40065 if (+HEAPF32[i2 + 336 >> 2] != 0.0) {
40066 d28 = d27 * d10 * +HEAPF32[i2 + 556 >> 2];
40067 d10 = d27 * d13 * +HEAPF32[i2 + 560 >> 2];
40068 HEAPF32[i8 >> 2] = +HEAPF32[i8 >> 2] + d27 * d7 * +HEAPF32[i2 + 552 >> 2];
40069 HEAPF32[i11 >> 2] = d28 + +HEAPF32[i11 >> 2];
40070 HEAPF32[i14 >> 2] = d10 + +HEAPF32[i14 >> 2];
40071 d10 = d27 * +HEAPF32[i2 + 540 >> 2] * +HEAPF32[i4 + 52 >> 2];
40072 d28 = d27 * +HEAPF32[i2 + 544 >> 2] * +HEAPF32[i4 + 56 >> 2];
40073 HEAPF32[i15 >> 2] = d27 * +HEAPF32[i2 + 536 >> 2] * +HEAPF32[i4 + 48 >> 2] + +HEAPF32[i15 >> 2];
40074 HEAPF32[i16 >> 2] = d10 + +HEAPF32[i16 >> 2];
40075 HEAPF32[i17 >> 2] = d28 + +HEAPF32[i17 >> 2];
40076 }
40077 if (+HEAPF32[i3 + 336 >> 2] == 0.0) {
40078 return;
40079 }
40080 d28 = d27 * +HEAPF32[i3 + 556 >> 2] * (-0.0 - +HEAPF32[i9 >> 2]);
40081 d10 = d27 * +HEAPF32[i3 + 560 >> 2] * (-0.0 - +HEAPF32[i12 >> 2]);
40082 HEAPF32[i18 >> 2] = +HEAPF32[i18 >> 2] + d27 * +HEAPF32[i3 + 552 >> 2] * (-0.0 - +HEAPF32[i6 >> 2]);
40083 HEAPF32[i19 >> 2] = d28 + +HEAPF32[i19 >> 2];
40084 HEAPF32[i20 >> 2] = d10 + +HEAPF32[i20 >> 2];
40085 d10 = d27 * +HEAPF32[i3 + 540 >> 2] * +HEAPF32[i4 + 68 >> 2];
40086 d28 = d27 * +HEAPF32[i3 + 544 >> 2] * +HEAPF32[i4 + 72 >> 2];
40087 HEAPF32[i21 >> 2] = d27 * +HEAPF32[i3 + 536 >> 2] * +HEAPF32[i4 + 64 >> 2] + +HEAPF32[i21 >> 2];
40088 HEAPF32[i22 >> 2] = d10 + +HEAPF32[i22 >> 2];
40089 HEAPF32[i23 >> 2] = d28 + +HEAPF32[i23 >> 2];
40090 return;
40091 }
40092 function __ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss(i1, i2, i3, i4) {
40093 i1 = i1 | 0;
40094 i2 = i2 | 0;
40095 i3 = i3 | 0;
40096 i4 = i4 | 0;
40097 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0;
40098 i5 = STACKTOP;
40099 STACKTOP = STACKTOP + 96 | 0;
40100 i6 = i5 | 0;
40101 i7 = i5 + 64 | 0;
40102 i8 = i5 + 80 | 0;
40103 i9 = i1 + 8 | 0;
40104 i10 = HEAP32[i9 >> 2] | 0;
40105 i11 = i1 + 12 | 0;
40106 do {
40107 if ((i10 | 0) == (HEAP32[i11 >> 2] | 0)) {
40108 i12 = (i10 | 0) == 0 ? 1 : i10 << 1;
40109 if ((i10 | 0) >= (i12 | 0)) {
40110 i13 = i10;
40111 break;
40112 }
40113 if ((i12 | 0) == 0) {
40114 i14 = 0;
40115 i15 = i10;
40116 } else {
40117 i16 = __Z22btAlignedAllocInternalji(i12 << 2, 16) | 0;
40118 i14 = i16;
40119 i15 = HEAP32[i9 >> 2] | 0;
40120 }
40121 i16 = i1 + 16 | 0;
40122 if ((i15 | 0) > 0) {
40123 i17 = 0;
40124 do {
40125 i18 = i14 + (i17 << 2) | 0;
40126 if ((i18 | 0) != 0) {
40127 HEAP32[i18 >> 2] = HEAP32[(HEAP32[i16 >> 2] | 0) + (i17 << 2) >> 2];
40128 }
40129 i17 = i17 + 1 | 0;
40130 } while ((i17 | 0) < (i15 | 0));
40131 }
40132 i17 = HEAP32[i16 >> 2] | 0;
40133 i18 = i1 + 20 | 0;
40134 if ((i17 | 0) == 0) {
40135 i19 = i15;
40136 } else {
40137 if ((HEAP8[i18] | 0) == 0) {
40138 i20 = i15;
40139 } else {
40140 __Z21btAlignedFreeInternalPv(i17);
40141 i20 = HEAP32[i9 >> 2] | 0;
40142 }
40143 HEAP32[i16 >> 2] = 0;
40144 i19 = i20;
40145 }
40146 HEAP8[i18] = 1;
40147 HEAP32[i16 >> 2] = i14;
40148 HEAP32[i11 >> 2] = i12;
40149 i13 = i19;
40150 } else {
40151 i13 = i10;
40152 }
40153 } while (0);
40154 i10 = (HEAP32[i1 + 16 >> 2] | 0) + (i13 << 2) | 0;
40155 if ((i10 | 0) != 0) {
40156 HEAP32[i10 >> 2] = i2;
40157 }
40158 HEAP32[i9 >> 2] = i13 + 1;
40159 i13 = i6;
40160 i9 = i2 + 4 | 0;
40161 HEAP32[i13 >> 2] = HEAP32[i9 >> 2];
40162 HEAP32[i13 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
40163 HEAP32[i13 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
40164 HEAP32[i13 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
40165 i9 = i6 + 16 | 0;
40166 i13 = i2 + 20 | 0;
40167 HEAP32[i9 >> 2] = HEAP32[i13 >> 2];
40168 HEAP32[i9 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
40169 HEAP32[i9 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
40170 HEAP32[i9 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
40171 i13 = i6 + 32 | 0;
40172 i9 = i2 + 36 | 0;
40173 HEAP32[i13 >> 2] = HEAP32[i9 >> 2];
40174 HEAP32[i13 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
40175 HEAP32[i13 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
40176 HEAP32[i13 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
40177 i9 = i6 + 48 | 0;
40178 i13 = i2 + 52 | 0;
40179 HEAP32[i9 >> 2] = HEAP32[i13 >> 2];
40180 HEAP32[i9 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
40181 HEAP32[i9 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
40182 HEAP32[i9 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
40183 i13 = i2 + 192 | 0;
40184 i9 = HEAP32[i13 >> 2] | 0;
40185 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i9 >> 2] | 0) + 8 >> 2] & 127](i9, i6, i7, i8);
40186 i6 = HEAP32[i1 + 76 >> 2] | 0;
40187 HEAP32[i2 + 188 >> 2] = FUNCTION_TABLE_iiiiiiiiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] & 3](i6, i7, i8, HEAP32[(HEAP32[i13 >> 2] | 0) + 4 >> 2] | 0, i2, i3, i4, HEAP32[i1 + 24 >> 2] | 0, 0) | 0;
40188 STACKTOP = i5;
40189 return;
40190 }
40191 function __ZN28btTriangleConvexcastCallbackC2EPK13btConvexShapeRK11btTransformS5_S5_f(i1, i2, i3, i4, i5, d6) {
40192 i1 = i1 | 0;
40193 i2 = i2 | 0;
40194 i3 = i3 | 0;
40195 i4 = i4 | 0;
40196 i5 = i5 | 0;
40197 d6 = +d6;
40198 var i7 = 0;
40199 HEAP32[i1 >> 2] = 2768;
40200 HEAP32[i1 + 4 >> 2] = i2;
40201 i2 = i1 + 8 | 0;
40202 i7 = i3;
40203 HEAP32[i2 >> 2] = HEAP32[i7 >> 2];
40204 HEAP32[i2 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
40205 HEAP32[i2 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
40206 HEAP32[i2 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
40207 i7 = i1 + 24 | 0;
40208 i2 = i3 + 16 | 0;
40209 HEAP32[i7 >> 2] = HEAP32[i2 >> 2];
40210 HEAP32[i7 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
40211 HEAP32[i7 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
40212 HEAP32[i7 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
40213 i2 = i1 + 40 | 0;
40214 i7 = i3 + 32 | 0;
40215 HEAP32[i2 >> 2] = HEAP32[i7 >> 2];
40216 HEAP32[i2 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
40217 HEAP32[i2 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
40218 HEAP32[i2 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
40219 i7 = i1 + 56 | 0;
40220 i2 = i3 + 48 | 0;
40221 HEAP32[i7 >> 2] = HEAP32[i2 >> 2];
40222 HEAP32[i7 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
40223 HEAP32[i7 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
40224 HEAP32[i7 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
40225 i2 = i1 + 72 | 0;
40226 i7 = i4;
40227 HEAP32[i2 >> 2] = HEAP32[i7 >> 2];
40228 HEAP32[i2 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
40229 HEAP32[i2 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
40230 HEAP32[i2 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
40231 i7 = i1 + 88 | 0;
40232 i2 = i4 + 16 | 0;
40233 HEAP32[i7 >> 2] = HEAP32[i2 >> 2];
40234 HEAP32[i7 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
40235 HEAP32[i7 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
40236 HEAP32[i7 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
40237 i2 = i1 + 104 | 0;
40238 i7 = i4 + 32 | 0;
40239 HEAP32[i2 >> 2] = HEAP32[i7 >> 2];
40240 HEAP32[i2 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
40241 HEAP32[i2 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
40242 HEAP32[i2 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
40243 i7 = i1 + 120 | 0;
40244 i2 = i4 + 48 | 0;
40245 HEAP32[i7 >> 2] = HEAP32[i2 >> 2];
40246 HEAP32[i7 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
40247 HEAP32[i7 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
40248 HEAP32[i7 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
40249 i2 = i1 + 136 | 0;
40250 i7 = i5;
40251 HEAP32[i2 >> 2] = HEAP32[i7 >> 2];
40252 HEAP32[i2 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
40253 HEAP32[i2 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
40254 HEAP32[i2 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
40255 i7 = i1 + 152 | 0;
40256 i2 = i5 + 16 | 0;
40257 HEAP32[i7 >> 2] = HEAP32[i2 >> 2];
40258 HEAP32[i7 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
40259 HEAP32[i7 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
40260 HEAP32[i7 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
40261 i2 = i1 + 168 | 0;
40262 i7 = i5 + 32 | 0;
40263 HEAP32[i2 >> 2] = HEAP32[i7 >> 2];
40264 HEAP32[i2 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
40265 HEAP32[i2 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
40266 HEAP32[i2 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
40267 i7 = i1 + 184 | 0;
40268 i2 = i5 + 48 | 0;
40269 HEAP32[i7 >> 2] = HEAP32[i2 >> 2];
40270 HEAP32[i7 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
40271 HEAP32[i7 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
40272 HEAP32[i7 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
40273 HEAPF32[i1 + 200 >> 2] = 1.0;
40274 HEAPF32[i1 + 204 >> 2] = d6;
40275 HEAPF32[i1 + 208 >> 2] = 0.0;
40276 return;
40277 }
40278 function __ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback18processConstraintsEv(i1) {
40279 i1 = i1 | 0;
40280 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0;
40281 i2 = i1 + 56 | 0;
40282 i3 = HEAP32[i2 >> 2] | 0;
40283 i4 = i1 + 76 | 0;
40284 i5 = HEAP32[i4 >> 2] | 0;
40285 if ((i5 + i3 | 0) > 0) {
40286 i6 = HEAP32[i1 + 8 >> 2] | 0;
40287 i7 = HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0;
40288 i8 = HEAP32[i1 + 44 >> 2] | 0;
40289 i9 = i1 + 36 | 0;
40290 i10 = HEAP32[i9 >> 2] | 0;
40291 i11 = HEAP32[i1 + 64 >> 2] | 0;
40292 i12 = HEAP32[i1 + 84 >> 2] | 0;
40293 i13 = HEAP32[i1 + 4 >> 2] | 0;
40294 i14 = HEAP32[i1 + 20 >> 2] | 0;
40295 i15 = HEAP32[i1 + 24 >> 2] | 0;
40296 i16 = HEAP32[i1 + 28 >> 2] | 0;
40297 +FUNCTION_TABLE_fiiiiiiiiiii[i7 & 3](i6, i8, i10, i11, i3, i12, i5, i13, i14, i15, i16);
40298 i17 = i9;
40299 } else {
40300 i17 = i1 + 36 | 0;
40301 }
40302 i9 = HEAP32[i17 >> 2] | 0;
40303 if ((i9 | 0) < 0) {
40304 i16 = i1 + 40 | 0;
40305 i15 = i1 + 44 | 0;
40306 if ((HEAP32[i16 >> 2] | 0) < 0) {
40307 i14 = HEAP32[i15 >> 2] | 0;
40308 i13 = i1 + 48 | 0;
40309 if ((i14 | 0) != 0) {
40310 if ((HEAP8[i13] | 0) != 0) {
40311 __Z21btAlignedFreeInternalPv(i14);
40312 }
40313 HEAP32[i15 >> 2] = 0;
40314 }
40315 HEAP8[i13] = 1;
40316 HEAP32[i15 >> 2] = 0;
40317 HEAP32[i16 >> 2] = 0;
40318 i18 = i9;
40319 } else {
40320 i18 = i9;
40321 }
40322 do {
40323 i9 = (HEAP32[i15 >> 2] | 0) + (i18 << 2) | 0;
40324 if ((i9 | 0) != 0) {
40325 HEAP32[i9 >> 2] = 0;
40326 }
40327 i18 = i18 + 1 | 0;
40328 } while ((i18 | 0) < 0);
40329 }
40330 HEAP32[i17 >> 2] = 0;
40331 i17 = HEAP32[i2 >> 2] | 0;
40332 if ((i17 | 0) < 0) {
40333 i18 = i1 + 60 | 0;
40334 i15 = i1 + 64 | 0;
40335 if ((HEAP32[i18 >> 2] | 0) < 0) {
40336 i9 = HEAP32[i15 >> 2] | 0;
40337 i16 = i1 + 68 | 0;
40338 if ((i9 | 0) != 0) {
40339 if ((HEAP8[i16] | 0) != 0) {
40340 __Z21btAlignedFreeInternalPv(i9);
40341 }
40342 HEAP32[i15 >> 2] = 0;
40343 }
40344 HEAP8[i16] = 1;
40345 HEAP32[i15 >> 2] = 0;
40346 HEAP32[i18 >> 2] = 0;
40347 i19 = i17;
40348 } else {
40349 i19 = i17;
40350 }
40351 do {
40352 i17 = (HEAP32[i15 >> 2] | 0) + (i19 << 2) | 0;
40353 if ((i17 | 0) != 0) {
40354 HEAP32[i17 >> 2] = 0;
40355 }
40356 i19 = i19 + 1 | 0;
40357 } while ((i19 | 0) < 0);
40358 }
40359 HEAP32[i2 >> 2] = 0;
40360 i2 = HEAP32[i4 >> 2] | 0;
40361 if ((i2 | 0) >= 0) {
40362 HEAP32[i4 >> 2] = 0;
40363 return;
40364 }
40365 i19 = i1 + 80 | 0;
40366 i15 = i1 + 84 | 0;
40367 if ((HEAP32[i19 >> 2] | 0) < 0) {
40368 i17 = HEAP32[i15 >> 2] | 0;
40369 i18 = i1 + 88 | 0;
40370 if ((i17 | 0) != 0) {
40371 if ((HEAP8[i18] | 0) != 0) {
40372 __Z21btAlignedFreeInternalPv(i17);
40373 }
40374 HEAP32[i15 >> 2] = 0;
40375 }
40376 HEAP8[i18] = 1;
40377 HEAP32[i15 >> 2] = 0;
40378 HEAP32[i19 >> 2] = 0;
40379 i20 = i2;
40380 } else {
40381 i20 = i2;
40382 }
40383 do {
40384 i2 = (HEAP32[i15 >> 2] | 0) + (i20 << 2) | 0;
40385 if ((i2 | 0) != 0) {
40386 HEAP32[i2 >> 2] = 0;
40387 }
40388 i20 = i20 + 1 | 0;
40389 } while ((i20 | 0) < 0);
40390 HEAP32[i4 >> 2] = 0;
40391 return;
40392 }
40393 function __ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib(i1, i2, i3, i4, i5, i6) {
40394 i1 = i1 | 0;
40395 i2 = i2 | 0;
40396 i3 = i3 | 0;
40397 i4 = i4 | 0;
40398 i5 = i5 | 0;
40399 i6 = i6 | 0;
40400 var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0;
40401 if ((i1 | 0) != (HEAP32[i2 + 8 >> 2] | 0)) {
40402 i7 = i2 + 52 | 0;
40403 i8 = HEAP8[i7] & 1;
40404 i9 = i2 + 53 | 0;
40405 i10 = HEAP8[i9] & 1;
40406 i11 = HEAP32[i1 + 12 >> 2] | 0;
40407 i12 = i1 + 16 + (i11 << 3) | 0;
40408 HEAP8[i7] = 0;
40409 HEAP8[i9] = 0;
40410 i13 = HEAP32[i1 + 20 >> 2] | 0;
40411 i14 = i13 >> 8;
40412 if ((i13 & 1 | 0) == 0) {
40413 i15 = i14;
40414 } else {
40415 i15 = HEAP32[(HEAP32[i4 >> 2] | 0) + i14 >> 2] | 0;
40416 }
40417 i14 = HEAP32[i1 + 16 >> 2] | 0;
40418 FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i14 >> 2] | 0) + 20 >> 2] & 15](i14, i2, i3, i4 + i15 | 0, (i13 & 2 | 0) != 0 ? i5 : 2, i6);
40419 L2889 : do {
40420 if ((i11 | 0) > 1) {
40421 i13 = i2 + 24 | 0;
40422 i15 = i1 + 8 | 0;
40423 i14 = i2 + 54 | 0;
40424 i16 = i4;
40425 i17 = i1 + 24 | 0;
40426 do {
40427 if ((HEAP8[i14] & 1) != 0) {
40428 break L2889;
40429 }
40430 do {
40431 if ((HEAP8[i7] & 1) == 0) {
40432 if ((HEAP8[i9] & 1) == 0) {
40433 break;
40434 }
40435 if ((HEAP32[i15 >> 2] & 1 | 0) == 0) {
40436 break L2889;
40437 }
40438 } else {
40439 if ((HEAP32[i13 >> 2] | 0) == 1) {
40440 break L2889;
40441 }
40442 if ((HEAP32[i15 >> 2] & 2 | 0) == 0) {
40443 break L2889;
40444 }
40445 }
40446 } while (0);
40447 HEAP8[i7] = 0;
40448 HEAP8[i9] = 0;
40449 i18 = HEAP32[i17 + 4 >> 2] | 0;
40450 i19 = i18 >> 8;
40451 if ((i18 & 1 | 0) == 0) {
40452 i20 = i19;
40453 } else {
40454 i20 = HEAP32[(HEAP32[i16 >> 2] | 0) + i19 >> 2] | 0;
40455 }
40456 i19 = HEAP32[i17 >> 2] | 0;
40457 FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i19 >> 2] | 0) + 20 >> 2] & 15](i19, i2, i3, i4 + i20 | 0, (i18 & 2 | 0) != 0 ? i5 : 2, i6);
40458 i17 = i17 + 8 | 0;
40459 } while (i17 >>> 0 < i12 >>> 0);
40460 }
40461 } while (0);
40462 HEAP8[i7] = i8;
40463 HEAP8[i9] = i10;
40464 return;
40465 }
40466 HEAP8[i2 + 53 | 0] = 1;
40467 if ((HEAP32[i2 + 4 >> 2] | 0) != (i4 | 0)) {
40468 return;
40469 }
40470 HEAP8[i2 + 52 | 0] = 1;
40471 i4 = i2 + 16 | 0;
40472 i10 = HEAP32[i4 >> 2] | 0;
40473 if ((i10 | 0) == 0) {
40474 HEAP32[i4 >> 2] = i3;
40475 HEAP32[i2 + 24 >> 2] = i5;
40476 HEAP32[i2 + 36 >> 2] = 1;
40477 if (!((HEAP32[i2 + 48 >> 2] | 0) == 1 & (i5 | 0) == 1)) {
40478 return;
40479 }
40480 HEAP8[i2 + 54 | 0] = 1;
40481 return;
40482 }
40483 if ((i10 | 0) != (i3 | 0)) {
40484 i3 = i2 + 36 | 0;
40485 HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 1;
40486 HEAP8[i2 + 54 | 0] = 1;
40487 return;
40488 }
40489 i3 = i2 + 24 | 0;
40490 i10 = HEAP32[i3 >> 2] | 0;
40491 if ((i10 | 0) == 2) {
40492 HEAP32[i3 >> 2] = i5;
40493 i21 = i5;
40494 } else {
40495 i21 = i10;
40496 }
40497 if (!((HEAP32[i2 + 48 >> 2] | 0) == 1 & (i21 | 0) == 1)) {
40498 return;
40499 }
40500 HEAP8[i2 + 54 | 0] = 1;
40501 return;
40502 }
40503 function __ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i1, i2, i3, i4, i5) {
40504 i1 = i1 | 0;
40505 i2 = i2 | 0;
40506 i3 = i3 | 0;
40507 i4 = i4 | 0;
40508 i5 = i5 | 0;
40509 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, i14 = 0, d15 = 0.0, d16 = 0.0, d17 = 0.0;
40510 i5 = STACKTOP;
40511 STACKTOP = STACKTOP + 160 | 0;
40512 i4 = i5 | 0;
40513 i6 = i5 + 48 | 0;
40514 i7 = i5 + 128 | 0;
40515 i8 = i5 + 144 | 0;
40516 i9 = i4 | 0;
40517 HEAPF32[i9 >> 2] = +HEAPF32[i2 >> 2];
40518 i10 = i6 | 0;
40519 HEAPF32[i10 >> 2] = +HEAPF32[i2 + 64 >> 2];
40520 HEAPF32[i4 + 4 >> 2] = +HEAPF32[i2 + 4 >> 2];
40521 HEAPF32[i6 + 4 >> 2] = +HEAPF32[i2 + 68 >> 2];
40522 HEAPF32[i4 + 8 >> 2] = +HEAPF32[i2 + 8 >> 2];
40523 HEAPF32[i6 + 8 >> 2] = +HEAPF32[i2 + 72 >> 2];
40524 HEAPF32[i4 + 16 >> 2] = +HEAPF32[i2 + 16 >> 2];
40525 HEAPF32[i6 + 16 >> 2] = +HEAPF32[i2 + 80 >> 2];
40526 HEAPF32[i4 + 20 >> 2] = +HEAPF32[i2 + 20 >> 2];
40527 HEAPF32[i6 + 20 >> 2] = +HEAPF32[i2 + 84 >> 2];
40528 HEAPF32[i4 + 24 >> 2] = +HEAPF32[i2 + 24 >> 2];
40529 HEAPF32[i6 + 24 >> 2] = +HEAPF32[i2 + 88 >> 2];
40530 HEAPF32[i4 + 32 >> 2] = +HEAPF32[i2 + 32 >> 2];
40531 HEAPF32[i6 + 32 >> 2] = +HEAPF32[i2 + 96 >> 2];
40532 HEAPF32[i4 + 36 >> 2] = +HEAPF32[i2 + 36 >> 2];
40533 HEAPF32[i6 + 36 >> 2] = +HEAPF32[i2 + 100 >> 2];
40534 HEAPF32[i4 + 40 >> 2] = +HEAPF32[i2 + 40 >> 2];
40535 HEAPF32[i6 + 40 >> 2] = +HEAPF32[i2 + 104 >> 2];
40536 i6 = HEAP32[i1 + 4 >> 2] | 0;
40537 d11 = +HEAPF32[i6 + 28 >> 2];
40538 d12 = +HEAPF32[i6 + 32 >> 2];
40539 d13 = +HEAPF32[i6 + 36 >> 2];
40540 i4 = i6 | 0;
40541 i14 = i6;
40542 d15 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i14 >> 2] | 0) + 44 >> 2] & 7](i4);
40543 d16 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i14 >> 2] | 0) + 44 >> 2] & 7](i4);
40544 d17 = (d13 + +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i14 >> 2] | 0) + 44 >> 2] & 7](i4)) * 2.0;
40545 HEAPF32[i7 >> 2] = (d11 + d15) * 2.0;
40546 HEAPF32[i7 + 4 >> 2] = (d12 + d16) * 2.0;
40547 HEAPF32[i7 + 8 >> 2] = d17;
40548 HEAPF32[i7 + 12 >> 2] = 0.0;
40549 i4 = HEAP32[i1 + 8 >> 2] | 0;
40550 d17 = +HEAPF32[i4 + 28 >> 2];
40551 d16 = +HEAPF32[i4 + 32 >> 2];
40552 d12 = +HEAPF32[i4 + 36 >> 2];
40553 i1 = i4 | 0;
40554 i14 = i4;
40555 d15 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i14 >> 2] | 0) + 44 >> 2] & 7](i1);
40556 d11 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i14 >> 2] | 0) + 44 >> 2] & 7](i1);
40557 d13 = (d12 + +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i14 >> 2] | 0) + 44 >> 2] & 7](i1)) * 2.0;
40558 HEAPF32[i8 >> 2] = (d17 + d15) * 2.0;
40559 HEAPF32[i8 + 4 >> 2] = (d16 + d11) * 2.0;
40560 HEAPF32[i8 + 8 >> 2] = d13;
40561 HEAPF32[i8 + 12 >> 2] = 0.0;
40562 __Z8dBoxBox2RK9btVector3PKfS1_S1_S3_S1_RS_PfPiiP12dContactGeomiRN36btDiscreteCollisionDetectorInterface6ResultE(i2 + 48 | 0, i9, i7, i2 + 112 | 0, i10, i8, i5 + 96 | 0, i5 + 112 | 0, i5 + 120 | 0, 4, 0, 0, i3) | 0;
40563 STACKTOP = i5;
40564 return;
40565 }
40566 function __ZN32btSphereSphereCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
40567 i1 = i1 | 0;
40568 i2 = i2 | 0;
40569 i3 = i3 | 0;
40570 i4 = i4 | 0;
40571 i5 = i5 | 0;
40572 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0;
40573 i4 = STACKTOP;
40574 STACKTOP = STACKTOP + 32 | 0;
40575 i6 = i4 | 0;
40576 i7 = i4 + 16 | 0;
40577 i8 = HEAP32[i1 + 12 >> 2] | 0;
40578 if ((i8 | 0) == 0) {
40579 STACKTOP = i4;
40580 return;
40581 }
40582 i1 = i5 + 4 | 0;
40583 HEAP32[i1 >> 2] = i8;
40584 i9 = HEAP32[i2 + 192 >> 2] | 0;
40585 i10 = HEAP32[i3 + 192 >> 2] | 0;
40586 d11 = +HEAPF32[i3 + 52 >> 2];
40587 d12 = +HEAPF32[i2 + 52 >> 2] - d11;
40588 d13 = +HEAPF32[i3 + 56 >> 2];
40589 d14 = +HEAPF32[i2 + 56 >> 2] - d13;
40590 d15 = +HEAPF32[i3 + 60 >> 2];
40591 d16 = +HEAPF32[i2 + 60 >> 2] - d15;
40592 d17 = +Math_sqrt(+(d12 * d12 + d14 * d14 + d16 * d16));
40593 d18 = +HEAPF32[i10 + 28 >> 2] * +HEAPF32[i10 + 12 >> 2];
40594 d19 = +HEAPF32[i9 + 28 >> 2] * +HEAPF32[i9 + 12 >> 2] + d18;
40595 if (d17 > d19) {
40596 if ((HEAP32[i8 + 1116 >> 2] | 0) == 0) {
40597 STACKTOP = i4;
40598 return;
40599 }
40600 if ((HEAP32[i8 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
40601 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i8, i5 + 8 | 0, i5 + 72 | 0);
40602 STACKTOP = i4;
40603 return;
40604 } else {
40605 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i8, i5 + 72 | 0, i5 + 8 | 0);
40606 STACKTOP = i4;
40607 return;
40608 }
40609 }
40610 i8 = i6 | 0;
40611 HEAPF32[i8 >> 2] = 1.0;
40612 i9 = i6 + 4 | 0;
40613 HEAPF32[i9 >> 2] = 0.0;
40614 i10 = i6 + 8 | 0;
40615 HEAPF32[i10 >> 2] = 0.0;
40616 i2 = i6 + 12 | 0;
40617 HEAPF32[i2 >> 2] = 0.0;
40618 if (d17 > 1.1920928955078125e-7) {
40619 d20 = 1.0 / d17;
40620 d21 = d12 * d20;
40621 d12 = d14 * d20;
40622 d14 = d16 * d20;
40623 HEAPF32[i8 >> 2] = d21;
40624 HEAPF32[i9 >> 2] = d12;
40625 HEAPF32[i10 >> 2] = d14;
40626 HEAPF32[i2 >> 2] = 0.0;
40627 d22 = d21;
40628 d23 = d12;
40629 d24 = d14;
40630 } else {
40631 d22 = 1.0;
40632 d23 = 0.0;
40633 d24 = 0.0;
40634 }
40635 HEAPF32[i7 >> 2] = d11 + d18 * d22;
40636 HEAPF32[i7 + 4 >> 2] = d13 + d18 * d23;
40637 HEAPF32[i7 + 8 >> 2] = d15 + d18 * d24;
40638 HEAPF32[i7 + 12 >> 2] = 0.0;
40639 FUNCTION_TABLE_viiif[HEAP32[(HEAP32[i5 >> 2] | 0) + 16 >> 2] & 15](i5, i6, i7, d17 - d19);
40640 i7 = HEAP32[i1 >> 2] | 0;
40641 if ((HEAP32[i7 + 1116 >> 2] | 0) == 0) {
40642 STACKTOP = i4;
40643 return;
40644 }
40645 if ((HEAP32[i7 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
40646 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7, i5 + 8 | 0, i5 + 72 | 0);
40647 STACKTOP = i4;
40648 return;
40649 } else {
40650 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7, i5 + 72 | 0, i5 + 8 | 0);
40651 STACKTOP = i4;
40652 return;
40653 }
40654 }
40655 function __ZN23btDiscreteDynamicsWorld26calculateSimulationIslandsEv(i1) {
40656 i1 = i1 | 0;
40657 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0;
40658 __ZN15CProfileManager13Start_ProfileEPKc(176);
40659 i2 = i1 + 176 | 0;
40660 i3 = HEAP32[i2 >> 2] | 0;
40661 i4 = i1 | 0;
40662 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i3 >> 2] | 0) + 8 >> 2] & 127](i3, i4, HEAP32[i1 + 24 >> 2] | 0);
40663 i3 = HEAP32[i1 + 184 >> 2] | 0;
40664 if ((i3 | 0) > 0) {
40665 i5 = HEAP32[i1 + 192 >> 2] | 0;
40666 i1 = 0;
40667 do {
40668 i6 = HEAP32[i5 + (i1 << 2) >> 2] | 0;
40669 i7 = HEAP32[i6 + 24 >> 2] | 0;
40670 i8 = HEAP32[i6 + 28 >> 2] | 0;
40671 do {
40672 if ((i7 | 0) != 0) {
40673 if ((HEAP32[i7 + 204 >> 2] & 3 | 0) != 0 | (i8 | 0) == 0) {
40674 break;
40675 }
40676 if ((HEAP32[i8 + 204 >> 2] & 3 | 0) != 0) {
40677 break;
40678 }
40679 i6 = HEAP32[i7 + 216 >> 2] | 0;
40680 if ((i6 | 0) == 5 | (i6 | 0) == 2) {
40681 i6 = HEAP32[i8 + 216 >> 2] | 0;
40682 if ((i6 | 0) == 5 | (i6 | 0) == 2) {
40683 break;
40684 }
40685 }
40686 i6 = HEAP32[i7 + 208 >> 2] | 0;
40687 i9 = HEAP32[i8 + 208 >> 2] | 0;
40688 i10 = HEAP32[(HEAP32[i2 >> 2] | 0) + 16 >> 2] | 0;
40689 i11 = i10 + (i6 << 3) | 0;
40690 i12 = HEAP32[i11 >> 2] | 0;
40691 if ((i12 | 0) == (i6 | 0)) {
40692 i13 = i6;
40693 } else {
40694 i6 = i11;
40695 i11 = i12;
40696 while (1) {
40697 i12 = i10 + (i11 << 3) | 0;
40698 HEAP32[i6 >> 2] = HEAP32[i12 >> 2];
40699 i14 = HEAP32[i12 >> 2] | 0;
40700 i12 = i10 + (i14 << 3) | 0;
40701 i15 = HEAP32[i12 >> 2] | 0;
40702 if ((i14 | 0) == (i15 | 0)) {
40703 i13 = i14;
40704 break;
40705 } else {
40706 i6 = i12;
40707 i11 = i15;
40708 }
40709 }
40710 }
40711 i11 = i10 + (i9 << 3) | 0;
40712 i6 = HEAP32[i11 >> 2] | 0;
40713 if ((i6 | 0) == (i9 | 0)) {
40714 i16 = i9;
40715 } else {
40716 i15 = i11;
40717 i11 = i6;
40718 while (1) {
40719 i6 = i10 + (i11 << 3) | 0;
40720 HEAP32[i15 >> 2] = HEAP32[i6 >> 2];
40721 i12 = HEAP32[i6 >> 2] | 0;
40722 i6 = i10 + (i12 << 3) | 0;
40723 i14 = HEAP32[i6 >> 2] | 0;
40724 if ((i12 | 0) == (i14 | 0)) {
40725 i16 = i12;
40726 break;
40727 } else {
40728 i15 = i6;
40729 i11 = i14;
40730 }
40731 }
40732 }
40733 if ((i13 | 0) == (i16 | 0)) {
40734 break;
40735 }
40736 HEAP32[i10 + (i13 << 3) >> 2] = i16;
40737 i11 = i10 + (i16 << 3) + 4 | 0;
40738 HEAP32[i11 >> 2] = (HEAP32[i11 >> 2] | 0) + (HEAP32[i10 + (i13 << 3) + 4 >> 2] | 0);
40739 }
40740 } while (0);
40741 i1 = i1 + 1 | 0;
40742 } while ((i1 | 0) < (i3 | 0));
40743 }
40744 i3 = HEAP32[i2 >> 2] | 0;
40745 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] & 127](i3, i4);
40746 __ZN15CProfileManager12Stop_ProfileEv();
40747 return;
40748 }
40749 function __ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv(i1) {
40750 i1 = i1 | 0;
40751 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
40752 i2 = STACKTOP;
40753 STACKTOP = STACKTOP + 128 | 0;
40754 i3 = i2 | 0;
40755 i4 = i2 + 64 | 0;
40756 __ZN15CProfileManager13Start_ProfileEPKc(936);
40757 if ((HEAP8[i1 + 242 | 0] | 0) == 0) {
40758 i5 = i1 + 204 | 0;
40759 i6 = HEAP32[i5 >> 2] | 0;
40760 if ((i6 | 0) <= 0) {
40761 __ZN15CProfileManager12Stop_ProfileEv();
40762 STACKTOP = i2;
40763 return;
40764 }
40765 i7 = i1 + 212 | 0;
40766 i8 = i1 + 236 | 0;
40767 i9 = 0;
40768 i10 = i6;
40769 while (1) {
40770 i6 = HEAP32[(HEAP32[i7 >> 2] | 0) + (i9 << 2) >> 2] | 0;
40771 i11 = HEAP32[i6 + 216 >> 2] | 0;
40772 do {
40773 if ((i11 | 0) == 5 | (i11 | 0) == 2) {
40774 i12 = i10;
40775 } else {
40776 i13 = i6 + 472 | 0;
40777 if ((HEAP32[i13 >> 2] | 0) == 0) {
40778 i12 = i10;
40779 break;
40780 }
40781 if ((HEAP32[i6 + 204 >> 2] & 3 | 0) != 0) {
40782 i12 = i10;
40783 break;
40784 }
40785 __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i6 + 68 | 0, i6 + 132 | 0, i6 + 148 | 0, +HEAPF32[i8 >> 2] * +HEAPF32[i6 + 240 >> 2], i4);
40786 i14 = HEAP32[i13 >> 2] | 0;
40787 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i14 >> 2] | 0) + 12 >> 2] & 127](i14, i4);
40788 i12 = HEAP32[i5 >> 2] | 0;
40789 }
40790 } while (0);
40791 i6 = i9 + 1 | 0;
40792 if ((i6 | 0) < (i12 | 0)) {
40793 i9 = i6;
40794 i10 = i12;
40795 } else {
40796 break;
40797 }
40798 }
40799 __ZN15CProfileManager12Stop_ProfileEv();
40800 STACKTOP = i2;
40801 return;
40802 } else {
40803 i12 = i1 + 8 | 0;
40804 i10 = HEAP32[i12 >> 2] | 0;
40805 if ((i10 | 0) <= 0) {
40806 __ZN15CProfileManager12Stop_ProfileEv();
40807 STACKTOP = i2;
40808 return;
40809 }
40810 i9 = i1 + 16 | 0;
40811 i5 = i1 + 236 | 0;
40812 i1 = 0;
40813 i4 = i10;
40814 while (1) {
40815 i10 = HEAP32[(HEAP32[i9 >> 2] | 0) + (i1 << 2) >> 2] | 0;
40816 do {
40817 if ((HEAP32[i10 + 232 >> 2] & 2 | 0) == 0 | (i10 | 0) == 0) {
40818 i15 = i4;
40819 } else {
40820 i8 = i10 + 472 | 0;
40821 if ((HEAP32[i8 >> 2] | 0) == 0) {
40822 i15 = i4;
40823 break;
40824 }
40825 if ((HEAP32[i10 + 204 >> 2] & 3 | 0) != 0) {
40826 i15 = i4;
40827 break;
40828 }
40829 __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i10 + 68 | 0, i10 + 132 | 0, i10 + 148 | 0, +HEAPF32[i5 >> 2] * +HEAPF32[i10 + 240 >> 2], i3);
40830 i7 = HEAP32[i8 >> 2] | 0;
40831 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] & 127](i7, i3);
40832 i15 = HEAP32[i12 >> 2] | 0;
40833 }
40834 } while (0);
40835 i10 = i1 + 1 | 0;
40836 if ((i10 | 0) < (i15 | 0)) {
40837 i1 = i10;
40838 i4 = i15;
40839 } else {
40840 break;
40841 }
40842 }
40843 __ZN15CProfileManager12Stop_ProfileEv();
40844 STACKTOP = i2;
40845 return;
40846 }
40847 }
40848 function __ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii(i1, i2, i3, i4) {
40849 i1 = i1 | 0;
40850 i2 = i2 | 0;
40851 i3 = i3 | 0;
40852 i4 = i4 | 0;
40853 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0;
40854 i5 = STACKTOP;
40855 STACKTOP = STACKTOP + 672 | 0;
40856 i6 = i5 | 0;
40857 i7 = i5 + 104 | 0;
40858 i8 = i5 + 464 | 0;
40859 i9 = i5 + 472 | 0;
40860 i10 = i5 + 496 | 0;
40861 i11 = i6 | 0;
40862 __ZN23btPolyhedralConvexShapeC2Ev(i11);
40863 HEAP32[i6 >> 2] = 4560;
40864 HEAP32[i6 + 4 >> 2] = 1;
40865 i12 = i6 + 56 | 0;
40866 i13 = i2;
40867 HEAP32[i12 >> 2] = HEAP32[i13 >> 2];
40868 HEAP32[i12 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
40869 HEAP32[i12 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
40870 HEAP32[i12 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
40871 i13 = i6 + 72 | 0;
40872 i12 = i2 + 16 | 0;
40873 HEAP32[i13 >> 2] = HEAP32[i12 >> 2];
40874 HEAP32[i13 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
40875 HEAP32[i13 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
40876 HEAP32[i13 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
40877 i12 = i6 + 88 | 0;
40878 i13 = i2 + 32 | 0;
40879 HEAP32[i12 >> 2] = HEAP32[i13 >> 2];
40880 HEAP32[i12 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
40881 HEAP32[i12 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
40882 HEAP32[i12 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
40883 HEAPF32[i6 + 44 >> 2] = +HEAPF32[i1 + 204 >> 2];
40884 HEAPF32[i7 + 308 >> 2] = 9999999747378752.0e-20;
40885 HEAP16[i7 + 332 >> 1] = 0;
40886 HEAP32[i8 >> 2] = 2696;
40887 __ZN27btContinuousConvexCollisionC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i9, HEAP32[i1 + 4 >> 2] | 0, i6 | 0, i7, i8 | 0);
40888 HEAP32[i10 >> 2] = 2280;
40889 i8 = i10 + 164 | 0;
40890 HEAP32[i10 + 168 >> 2] = 0;
40891 HEAPF32[i8 >> 2] = 1.0;
40892 HEAPF32[i10 + 172 >> 2] = +HEAPF32[i1 + 208 >> 2];
40893 i7 = i1 + 136 | 0;
40894 do {
40895 if (__ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i9, i1 + 8 | 0, i1 + 72 | 0, i7, i7, i10) | 0) {
40896 i6 = i10 + 132 | 0;
40897 i13 = i6 | 0;
40898 d14 = +HEAPF32[i13 >> 2];
40899 i12 = i10 + 136 | 0;
40900 d15 = +HEAPF32[i12 >> 2];
40901 i2 = i10 + 140 | 0;
40902 d16 = +HEAPF32[i2 >> 2];
40903 d17 = d14 * d14 + d15 * d15 + d16 * d16;
40904 if (d17 <= 9999999747378752.0e-20) {
40905 break;
40906 }
40907 d18 = +HEAPF32[i8 >> 2];
40908 if (d18 >= +HEAPF32[i1 + 200 >> 2]) {
40909 break;
40910 }
40911 d19 = 1.0 / +Math_sqrt(+d17);
40912 HEAPF32[i13 >> 2] = d14 * d19;
40913 HEAPF32[i12 >> 2] = d15 * d19;
40914 HEAPF32[i2 >> 2] = d16 * d19;
40915 i2 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
40916 i12 = i10 + 148 | 0;
40917 +FUNCTION_TABLE_fiiifii[i2 & 7](i1, i6, i12, d18, i3, i4);
40918 }
40919 } while (0);
40920 __ZN12btConvexCastD2Ev(i9 | 0);
40921 __ZN23btPolyhedralConvexShapeD2Ev(i11);
40922 STACKTOP = i5;
40923 return;
40924 }
40925 function __ZN11btRigidBody12applyDampingEf(i1, d2) {
40926 i1 = i1 | 0;
40927 d2 = +d2;
40928 var d3 = 0.0, d4 = 0.0, i5 = 0, d6 = 0.0, i7 = 0, d8 = 0.0, i9 = 0, d10 = 0.0, d11 = 0.0, i12 = 0, i13 = 0, d14 = 0.0, i15 = 0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0;
40929 d3 = +HEAPF32[i1 + 436 >> 2];
40930 d4 = +Math_pow(+(1.0 - d3), +d2);
40931 i5 = i1 + 304 | 0;
40932 d6 = d4 * +HEAPF32[i5 >> 2];
40933 HEAPF32[i5 >> 2] = d6;
40934 i7 = i1 + 308 | 0;
40935 d8 = d4 * +HEAPF32[i7 >> 2];
40936 HEAPF32[i7 >> 2] = d8;
40937 i9 = i1 + 312 | 0;
40938 d10 = d4 * +HEAPF32[i9 >> 2];
40939 HEAPF32[i9 >> 2] = d10;
40940 d4 = +HEAPF32[i1 + 440 >> 2];
40941 d11 = +Math_pow(+(1.0 - d4), +d2);
40942 i12 = i1 + 320 | 0;
40943 d2 = d11 * +HEAPF32[i12 >> 2];
40944 HEAPF32[i12 >> 2] = d2;
40945 i13 = i1 + 324 | 0;
40946 d14 = d11 * +HEAPF32[i13 >> 2];
40947 HEAPF32[i13 >> 2] = d14;
40948 i15 = i1 + 328 | 0;
40949 d16 = d11 * +HEAPF32[i15 >> 2];
40950 HEAPF32[i15 >> 2] = d16;
40951 if ((HEAP8[i1 + 444 | 0] | 0) == 0) {
40952 return;
40953 }
40954 do {
40955 if (d16 * d16 + (d2 * d2 + d14 * d14) < +HEAPF32[i1 + 456 >> 2]) {
40956 if (d6 * d6 + d8 * d8 + d10 * d10 >= +HEAPF32[i1 + 452 >> 2]) {
40957 d17 = d6;
40958 d18 = d8;
40959 d19 = d10;
40960 d20 = d2;
40961 d21 = d14;
40962 d22 = d16;
40963 break;
40964 }
40965 d11 = +HEAPF32[i1 + 448 >> 2];
40966 d23 = d2 * d11;
40967 HEAPF32[i12 >> 2] = d23;
40968 d24 = d14 * d11;
40969 HEAPF32[i13 >> 2] = d24;
40970 d25 = d16 * d11;
40971 HEAPF32[i15 >> 2] = d25;
40972 d26 = d6 * d11;
40973 HEAPF32[i5 >> 2] = d26;
40974 d27 = d8 * d11;
40975 HEAPF32[i7 >> 2] = d27;
40976 d28 = d10 * d11;
40977 HEAPF32[i9 >> 2] = d28;
40978 d17 = d26;
40979 d18 = d27;
40980 d19 = d28;
40981 d20 = d23;
40982 d21 = d24;
40983 d22 = d25;
40984 } else {
40985 d17 = d6;
40986 d18 = d8;
40987 d19 = d10;
40988 d20 = d2;
40989 d21 = d14;
40990 d22 = d16;
40991 }
40992 } while (0);
40993 d16 = +Math_sqrt(+(d19 * d19 + (d18 * d18 + d17 * d17)));
40994 do {
40995 if (d16 < d3) {
40996 if (d16 > .004999999888241291) {
40997 d14 = 1.0 / d16;
40998 HEAPF32[i5 >> 2] = d17 - d17 * d14 * .004999999888241291;
40999 HEAPF32[i7 >> 2] = d18 - d18 * d14 * .004999999888241291;
41000 HEAPF32[i9 >> 2] = d19 - d19 * d14 * .004999999888241291;
41001 break;
41002 } else {
41003 _memset(i5 | 0, 0, 16);
41004 break;
41005 }
41006 }
41007 } while (0);
41008 d19 = +Math_sqrt(+(d22 * d22 + (d21 * d21 + d20 * d20)));
41009 if (d19 >= d4) {
41010 return;
41011 }
41012 if (d19 > .004999999888241291) {
41013 d4 = 1.0 / d19;
41014 HEAPF32[i12 >> 2] = d20 - d20 * d4 * .004999999888241291;
41015 HEAPF32[i13 >> 2] = d21 - d21 * d4 * .004999999888241291;
41016 HEAPF32[i15 >> 2] = d22 - d22 * d4 * .004999999888241291;
41017 return;
41018 } else {
41019 _memset(i12 | 0, 0, 16);
41020 return;
41021 }
41022 }
41023 function __ZNK20btConvexHullInternal10Rational647compareERKS0_(i1, i2) {
41024 i1 = i1 | 0;
41025 i2 = i2 | 0;
41026 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0;
41027 i3 = HEAP32[i1 + 16 >> 2] | 0;
41028 i4 = HEAP32[i2 + 16 >> 2] | 0;
41029 if ((i3 | 0) != (i4 | 0)) {
41030 i5 = i3 - i4 | 0;
41031 return i5 | 0;
41032 }
41033 if ((i3 | 0) == 0) {
41034 i5 = 0;
41035 return i5 | 0;
41036 }
41037 i4 = i1 | 0;
41038 i6 = HEAP32[i4 + 4 >> 2] | 0;
41039 i7 = i2 + 8 | 0;
41040 i8 = HEAP32[i7 + 4 >> 2] | 0;
41041 i9 = HEAP32[i4 >> 2] | 0;
41042 i4 = i6 & 0;
41043 i10 = HEAP32[i7 >> 2] | 0;
41044 i7 = i8 & 0;
41045 i11 = ___muldi3(i10, i7, i9, i4) | 0;
41046 i12 = tempRet0;
41047 i13 = i8;
41048 i8 = 0;
41049 i14 = ___muldi3(i13, i8, i9, i4) | 0;
41050 i4 = tempRet0;
41051 i9 = i6;
41052 i6 = 0;
41053 i15 = ___muldi3(i10, i7, i9, i6) | 0;
41054 i7 = tempRet0;
41055 i10 = ___muldi3(i13, i8, i9, i6) | 0;
41056 i6 = tempRet0;
41057 i9 = _i64Add(i14 | 0, i4 & 0, i15 | 0, i7 & 0) | 0;
41058 i15 = tempRet0;
41059 i14 = _i64Add(i4, 0, i10, i6) | 0;
41060 i6 = _i64Add(i14, tempRet0, i7, 0) | 0;
41061 i7 = tempRet0;
41062 i14 = _llvm_uadd_with_overflow_i64(i11 | 0, i12 | 0, 0, i9 | 0) | 0;
41063 i9 = i14;
41064 i14 = tempRet0;
41065 i12 = _i64Add(i6, i7, tempRet1 & 1, 0) | 0;
41066 i7 = _i64Add(i12, tempRet0, i15, 0) | 0;
41067 i15 = tempRet0;
41068 i12 = i1 + 8 | 0;
41069 i1 = HEAP32[i12 + 4 >> 2] | 0;
41070 i6 = i2 | 0;
41071 i2 = HEAP32[i6 + 4 >> 2] | 0;
41072 i11 = HEAP32[i12 >> 2] | 0;
41073 i12 = i1 & 0;
41074 i10 = HEAP32[i6 >> 2] | 0;
41075 i6 = i2 & 0;
41076 i4 = ___muldi3(i10, i6, i11, i12) | 0;
41077 i8 = tempRet0;
41078 i13 = i2;
41079 i2 = 0;
41080 i16 = ___muldi3(i13, i2, i11, i12) | 0;
41081 i12 = tempRet0;
41082 i11 = i1;
41083 i1 = 0;
41084 i17 = ___muldi3(i10, i6, i11, i1) | 0;
41085 i6 = tempRet0;
41086 i10 = ___muldi3(i13, i2, i11, i1) | 0;
41087 i1 = tempRet0;
41088 i11 = _i64Add(i16 | 0, i12 & 0, i17 | 0, i6 & 0) | 0;
41089 i17 = tempRet0;
41090 i16 = _i64Add(i12, 0, i10, i1) | 0;
41091 i1 = _i64Add(i16, tempRet0, i6, 0) | 0;
41092 i6 = tempRet0;
41093 i16 = _llvm_uadd_with_overflow_i64(i4 | 0, i8 | 0, 0, i11 | 0) | 0;
41094 i11 = i16;
41095 i16 = tempRet0;
41096 i8 = _i64Add(i1, i6, tempRet1 & 1, 0) | 0;
41097 i6 = _i64Add(i8, tempRet0, i17, 0) | 0;
41098 i17 = tempRet0;
41099 do {
41100 if (i15 >>> 0 < i17 >>> 0 | i15 >>> 0 == i17 >>> 0 & i7 >>> 0 < i6 >>> 0) {
41101 i18 = -1;
41102 } else {
41103 if (i15 >>> 0 > i17 >>> 0 | i15 >>> 0 == i17 >>> 0 & i7 >>> 0 > i6 >>> 0) {
41104 i18 = 1;
41105 break;
41106 }
41107 if (i14 >>> 0 < i16 >>> 0 | i14 >>> 0 == i16 >>> 0 & i9 >>> 0 < i11 >>> 0) {
41108 i18 = -1;
41109 break;
41110 }
41111 i18 = (i14 >>> 0 > i16 >>> 0 | i14 >>> 0 == i16 >>> 0 & i9 >>> 0 > i11 >>> 0) & 1;
41112 }
41113 } while (0);
41114 i5 = Math_imul(i18, i3) | 0;
41115 return i5 | 0;
41116 }
41117 function __ZN19btSingleRayCallbackC2ERK9btVector3S2_PK16btCollisionWorldRNS3_17RayResultCallbackE(i1, i2, i3, i4, i5) {
41118 i1 = i1 | 0;
41119 i2 = i2 | 0;
41120 i3 = i3 | 0;
41121 i4 = i4 | 0;
41122 i5 = i5 | 0;
41123 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0;
41124 HEAP32[i1 >> 2] = 3984;
41125 i6 = i1 + 36 | 0;
41126 i7 = i6;
41127 i8 = i2;
41128 HEAP32[i7 >> 2] = HEAP32[i8 >> 2];
41129 HEAP32[i7 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
41130 HEAP32[i7 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
41131 HEAP32[i7 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
41132 i8 = i1 + 52 | 0;
41133 i9 = i8;
41134 i10 = i3;
41135 HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
41136 HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
41137 HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
41138 HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
41139 HEAP32[i1 + 212 >> 2] = i4;
41140 HEAP32[i1 + 216 >> 2] = i5;
41141 HEAPF32[i1 + 68 >> 2] = 1.0;
41142 _memset(i1 + 72 | 0, 0, 16);
41143 HEAPF32[i1 + 88 >> 2] = 1.0;
41144 _memset(i1 + 92 | 0, 0, 16);
41145 HEAPF32[i1 + 108 >> 2] = 1.0;
41146 HEAP32[i1 + 112 >> 2] = 0;
41147 i5 = i1 + 116 | 0;
41148 HEAP32[i5 >> 2] = HEAP32[i7 >> 2];
41149 HEAP32[i5 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
41150 HEAP32[i5 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
41151 HEAP32[i5 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
41152 HEAPF32[i1 + 132 >> 2] = 1.0;
41153 _memset(i1 + 136 | 0, 0, 16);
41154 HEAPF32[i1 + 152 >> 2] = 1.0;
41155 _memset(i1 + 156 | 0, 0, 16);
41156 HEAPF32[i1 + 172 >> 2] = 1.0;
41157 HEAP32[i1 + 176 >> 2] = 0;
41158 i7 = i1 + 180 | 0;
41159 HEAP32[i7 >> 2] = HEAP32[i9 >> 2];
41160 HEAP32[i7 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
41161 HEAP32[i7 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
41162 HEAP32[i7 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
41163 d11 = +HEAPF32[i3 >> 2] - +HEAPF32[i2 >> 2];
41164 d12 = +HEAPF32[i3 + 4 >> 2] - +HEAPF32[i2 + 4 >> 2];
41165 d13 = +HEAPF32[i3 + 8 >> 2] - +HEAPF32[i2 + 8 >> 2];
41166 d14 = 1.0 / +Math_sqrt(+(d11 * d11 + d12 * d12 + d13 * d13));
41167 d15 = d11 * d14;
41168 d11 = d12 * d14;
41169 d12 = d13 * d14;
41170 if (d15 == 0.0) {
41171 d16 = 999999984306749400.0;
41172 } else {
41173 d16 = 1.0 / d15;
41174 }
41175 HEAPF32[i1 + 4 >> 2] = d16;
41176 if (d11 == 0.0) {
41177 d17 = 999999984306749400.0;
41178 } else {
41179 d17 = 1.0 / d11;
41180 }
41181 HEAPF32[i1 + 8 >> 2] = d17;
41182 if (d12 == 0.0) {
41183 d18 = 999999984306749400.0;
41184 } else {
41185 d18 = 1.0 / d12;
41186 }
41187 HEAPF32[i1 + 12 >> 2] = d18;
41188 HEAP32[i1 + 20 >> 2] = d16 < 0.0;
41189 HEAP32[i1 + 24 >> 2] = d17 < 0.0;
41190 HEAP32[i1 + 28 >> 2] = d18 < 0.0;
41191 HEAPF32[i1 + 32 >> 2] = d15 * (+HEAPF32[i8 >> 2] - +HEAPF32[i6 >> 2]) + d11 * (+HEAPF32[i1 + 56 >> 2] - +HEAPF32[i1 + 40 >> 2]) + d12 * (+HEAPF32[i1 + 60 >> 2] - +HEAPF32[i1 + 44 >> 2]);
41192 return;
41193 }
41194 function __ZN6btDbvt19optimizeIncrementalEi(i1, i2) {
41195 i1 = i1 | 0;
41196 i2 = i2 | 0;
41197 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0;
41198 i3 = STACKTOP;
41199 STACKTOP = STACKTOP + 32 | 0;
41200 if ((i2 | 0) < 0) {
41201 i4 = HEAP32[i1 + 12 >> 2] | 0;
41202 } else {
41203 i4 = i2;
41204 }
41205 i2 = i1 | 0;
41206 i5 = HEAP32[i2 >> 2] | 0;
41207 if (!((i5 | 0) != 0 & (i4 | 0) > 0)) {
41208 STACKTOP = i3;
41209 return;
41210 }
41211 i6 = i1 + 16 | 0;
41212 i7 = i3 | 0;
41213 i8 = i4;
41214 i4 = i5;
41215 while (1) {
41216 i5 = i4 + 40 | 0;
41217 L2296 : do {
41218 if ((HEAP32[i5 >> 2] | 0) == 0) {
41219 i9 = i4;
41220 } else {
41221 i10 = 0;
41222 i11 = i4;
41223 i12 = i5;
41224 while (1) {
41225 i13 = (HEAP32[i6 >> 2] | 0) >>> (i10 >>> 0) & 1;
41226 i14 = i11 + 32 | 0;
41227 i15 = HEAP32[i14 >> 2] | 0;
41228 if (i15 >>> 0 > i11 >>> 0) {
41229 i16 = i15 + 40 | 0;
41230 i17 = (HEAP32[i16 >> 2] | 0) == (i11 | 0) | 0;
41231 i18 = i17 ^ 1;
41232 i19 = HEAP32[i15 + 36 + (i18 << 2) >> 2] | 0;
41233 i20 = i15 + 32 | 0;
41234 i21 = HEAP32[i20 >> 2] | 0;
41235 if ((i21 | 0) == 0) {
41236 HEAP32[i2 >> 2] = i11;
41237 } else {
41238 HEAP32[i21 + 36 + (((HEAP32[i21 + 40 >> 2] | 0) == (i15 | 0)) << 2) >> 2] = i11;
41239 }
41240 HEAP32[i19 + 32 >> 2] = i11;
41241 HEAP32[i20 >> 2] = i11;
41242 HEAP32[i14 >> 2] = i21;
41243 i21 = i11 + 36 | 0;
41244 HEAP32[i15 + 36 >> 2] = HEAP32[i21 >> 2];
41245 HEAP32[i16 >> 2] = HEAP32[i12 >> 2];
41246 HEAP32[(HEAP32[i21 >> 2] | 0) + 32 >> 2] = i15;
41247 HEAP32[(HEAP32[i12 >> 2] | 0) + 32 >> 2] = i15;
41248 HEAP32[i11 + 36 + (i17 << 2) >> 2] = i15;
41249 HEAP32[i11 + 36 + (i18 << 2) >> 2] = i19;
41250 i19 = i15;
41251 _memcpy(i7 | 0, i19 | 0, 32) | 0;
41252 i18 = i11;
41253 _memcpy(i19 | 0, i18 | 0, 32) | 0;
41254 _memcpy(i18 | 0, i7 | 0, 32) | 0;
41255 i22 = i15;
41256 } else {
41257 i22 = i11;
41258 }
41259 i15 = HEAP32[i22 + 36 + (i13 << 2) >> 2] | 0;
41260 i13 = i15 + 40 | 0;
41261 if ((HEAP32[i13 >> 2] | 0) == 0) {
41262 i9 = i15;
41263 break L2296;
41264 }
41265 i10 = i10 + 1 & 31;
41266 i11 = i15;
41267 i12 = i13;
41268 }
41269 }
41270 } while (0);
41271 if ((__ZL10removeleafP6btDbvtP10btDbvtNode(i1, i9) | 0) == 0) {
41272 i23 = 0;
41273 } else {
41274 i23 = HEAP32[i2 >> 2] | 0;
41275 }
41276 __ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i1, i23, i9);
41277 HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 1;
41278 i5 = i8 - 1 | 0;
41279 if ((i5 | 0) == 0) {
41280 break;
41281 }
41282 i8 = i5;
41283 i4 = HEAP32[i2 >> 2] | 0;
41284 }
41285 STACKTOP = i3;
41286 return;
41287 }
41288 function __ZN11btRigidBody18saveKinematicStateEf(i1, d2) {
41289 i1 = i1 | 0;
41290 d2 = +d2;
41291 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0;
41292 i3 = STACKTOP;
41293 STACKTOP = STACKTOP + 24 | 0;
41294 i4 = i3 | 0;
41295 i5 = i3 + 16 | 0;
41296 if (d2 == 0.0) {
41297 STACKTOP = i3;
41298 return;
41299 }
41300 i6 = HEAP32[i1 + 472 >> 2] | 0;
41301 if ((i6 | 0) == 0) {
41302 i7 = i1 + 4 | 0;
41303 } else {
41304 i8 = i1 + 4 | 0;
41305 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] & 127](i6, i8);
41306 i7 = i8;
41307 }
41308 i8 = i1 + 68 | 0;
41309 i6 = i1 + 304 | 0;
41310 i9 = i1 + 320 | 0;
41311 d10 = 1.0 / d2;
41312 d2 = (+HEAPF32[i1 + 56 >> 2] - +HEAPF32[i1 + 120 >> 2]) * d10;
41313 d11 = d10 * (+HEAPF32[i1 + 60 >> 2] - +HEAPF32[i1 + 124 >> 2]);
41314 HEAPF32[i6 >> 2] = (+HEAPF32[i1 + 52 >> 2] - +HEAPF32[i1 + 116 >> 2]) * d10;
41315 HEAPF32[i1 + 308 >> 2] = d2;
41316 HEAPF32[i1 + 312 >> 2] = d11;
41317 HEAPF32[i1 + 316 >> 2] = 0.0;
41318 __ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i8, i7, i4, i5);
41319 d11 = +HEAPF32[i5 >> 2];
41320 d2 = d10 * d11 * +HEAPF32[i4 + 4 >> 2];
41321 d12 = d10 * d11 * +HEAPF32[i4 + 8 >> 2];
41322 HEAPF32[i9 >> 2] = d10 * +HEAPF32[i4 >> 2] * d11;
41323 HEAPF32[i1 + 324 >> 2] = d2;
41324 HEAPF32[i1 + 328 >> 2] = d12;
41325 HEAPF32[i1 + 332 >> 2] = 0.0;
41326 i4 = i1 + 132 | 0;
41327 i5 = i6;
41328 HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
41329 HEAP32[i4 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
41330 HEAP32[i4 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
41331 HEAP32[i4 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
41332 i5 = i1 + 148 | 0;
41333 i4 = i9;
41334 HEAP32[i5 >> 2] = HEAP32[i4 >> 2];
41335 HEAP32[i5 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
41336 HEAP32[i5 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
41337 HEAP32[i5 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
41338 i4 = i8;
41339 i8 = i7;
41340 HEAP32[i4 >> 2] = HEAP32[i8 >> 2];
41341 HEAP32[i4 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
41342 HEAP32[i4 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
41343 HEAP32[i4 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
41344 i8 = i1 + 84 | 0;
41345 i4 = i1 + 20 | 0;
41346 HEAP32[i8 >> 2] = HEAP32[i4 >> 2];
41347 HEAP32[i8 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
41348 HEAP32[i8 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
41349 HEAP32[i8 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
41350 i4 = i1 + 100 | 0;
41351 i8 = i1 + 36 | 0;
41352 HEAP32[i4 >> 2] = HEAP32[i8 >> 2];
41353 HEAP32[i4 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
41354 HEAP32[i4 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
41355 HEAP32[i4 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
41356 i8 = i1 + 116 | 0;
41357 i4 = i1 + 52 | 0;
41358 HEAP32[i8 >> 2] = HEAP32[i4 >> 2];
41359 HEAP32[i8 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
41360 HEAP32[i8 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
41361 HEAP32[i8 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
41362 STACKTOP = i3;
41363 return;
41364 }
41365 function __ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(i1, i2, i3, i4, i5, i6) {
41366 i1 = i1 | 0;
41367 i2 = i2 | 0;
41368 i3 = i3 | 0;
41369 i4 = i4 | 0;
41370 i5 = i5 | 0;
41371 i6 = i6 | 0;
41372 var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
41373 i7 = i4 + 59 | 0;
41374 if ((HEAPU8[i7] | 0 | 0) == (i2 | 0)) {
41375 i8 = 0;
41376 return i8 | 0;
41377 }
41378 i9 = HEAP32[1360 + (i5 << 2) >> 2] | 0;
41379 if (+HEAPF32[i4 >> 2] * +HEAPF32[i3 + 16 >> 2] + +HEAPF32[i4 + 4 >> 2] * +HEAPF32[i3 + 20 >> 2] + +HEAPF32[i4 + 8 >> 2] * +HEAPF32[i3 + 24 >> 2] - +HEAPF32[i4 + 16 >> 2] < -9999999747378752.0e-21) {
41380 i10 = __ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i1, HEAP32[i4 + 24 + (i9 << 2) >> 2] | 0, HEAP32[i4 + 24 + (i5 << 2) >> 2] | 0, i3, 0) | 0;
41381 if ((i10 | 0) == 0) {
41382 i8 = 0;
41383 return i8 | 0;
41384 }
41385 HEAP8[i10 + 56 | 0] = i5 & 255;
41386 HEAP32[i10 + 36 >> 2] = i4;
41387 HEAP8[i4 + 56 + i5 | 0] = 0;
41388 HEAP32[i4 + 36 + (i5 << 2) >> 2] = i10;
41389 i11 = i6 | 0;
41390 i12 = HEAP32[i11 >> 2] | 0;
41391 if ((i12 | 0) == 0) {
41392 HEAP32[i6 + 4 >> 2] = i10;
41393 } else {
41394 HEAP8[i12 + 57 | 0] = 2;
41395 HEAP32[i12 + 40 >> 2] = i10;
41396 HEAP8[i10 + 58 | 0] = 1;
41397 HEAP32[i10 + 44 >> 2] = i12;
41398 }
41399 HEAP32[i11 >> 2] = i10;
41400 i10 = i6 + 8 | 0;
41401 HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + 1;
41402 i8 = 1;
41403 return i8 | 0;
41404 }
41405 i10 = HEAP32[1344 + (i5 << 2) >> 2] | 0;
41406 HEAP8[i7] = i2 & 255;
41407 if (!(__ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(i1, i2, i3, HEAP32[i4 + 36 + (i9 << 2) >> 2] | 0, HEAPU8[i4 + 56 + i9 | 0] | 0, i6) | 0)) {
41408 i8 = 0;
41409 return i8 | 0;
41410 }
41411 if (!(__ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(i1, i2, i3, HEAP32[i4 + 36 + (i10 << 2) >> 2] | 0, HEAPU8[i4 + 56 + i10 | 0] | 0, i6) | 0)) {
41412 i8 = 0;
41413 return i8 | 0;
41414 }
41415 i6 = i4 + 52 | 0;
41416 i10 = HEAP32[i6 >> 2] | 0;
41417 i3 = i4 + 48 | 0;
41418 if ((i10 | 0) != 0) {
41419 HEAP32[i10 + 48 >> 2] = HEAP32[i3 >> 2];
41420 }
41421 i10 = HEAP32[i3 >> 2] | 0;
41422 if ((i10 | 0) != 0) {
41423 HEAP32[i10 + 52 >> 2] = HEAP32[i6 >> 2];
41424 }
41425 i10 = i1 + 9792 | 0;
41426 if ((HEAP32[i10 >> 2] | 0) == (i4 | 0)) {
41427 HEAP32[i10 >> 2] = HEAP32[i6 >> 2];
41428 }
41429 i10 = i1 + 9796 | 0;
41430 HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) - 1;
41431 HEAP32[i3 >> 2] = 0;
41432 i3 = i1 + 9800 | 0;
41433 HEAP32[i6 >> 2] = HEAP32[i3 >> 2];
41434 i6 = HEAP32[i3 >> 2] | 0;
41435 if ((i6 | 0) != 0) {
41436 HEAP32[i6 + 48 >> 2] = i4;
41437 }
41438 HEAP32[i3 >> 2] = i4;
41439 i4 = i1 + 9804 | 0;
41440 HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + 1;
41441 i8 = 1;
41442 return i8 | 0;
41443 }
41444 function __ZN30btGjkEpaPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
41445 i1 = i1 | 0;
41446 i2 = i2 | 0;
41447 i3 = i3 | 0;
41448 i4 = i4 | 0;
41449 i5 = i5 | 0;
41450 i6 = i6 | 0;
41451 i7 = i7 | 0;
41452 i8 = i8 | 0;
41453 i9 = i9 | 0;
41454 i10 = i10 | 0;
41455 i11 = i11 | 0;
41456 var d12 = 0.0, d13 = 0.0, i14 = 0, i15 = 0;
41457 i11 = STACKTOP;
41458 STACKTOP = STACKTOP + 72 | 0;
41459 i10 = i11 | 0;
41460 i2 = i11 + 16 | 0;
41461 d12 = +HEAPF32[i5 + 52 >> 2] - +HEAPF32[i6 + 52 >> 2];
41462 d13 = +HEAPF32[i5 + 56 >> 2] - +HEAPF32[i6 + 56 >> 2];
41463 HEAPF32[i10 >> 2] = +HEAPF32[i5 + 48 >> 2] - +HEAPF32[i6 + 48 >> 2];
41464 HEAPF32[i10 + 4 >> 2] = d12;
41465 HEAPF32[i10 + 8 >> 2] = d13;
41466 HEAPF32[i10 + 12 >> 2] = 0.0;
41467 if (__ZN15btGjkEpaSolver211PenetrationEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsEb(i3, i5, i4, i6, i10, i2, 1) | 0) {
41468 i1 = i8;
41469 i14 = i2 + 4 | 0;
41470 HEAP32[i1 >> 2] = HEAP32[i14 >> 2];
41471 HEAP32[i1 + 4 >> 2] = HEAP32[i14 + 4 >> 2];
41472 HEAP32[i1 + 8 >> 2] = HEAP32[i14 + 8 >> 2];
41473 HEAP32[i1 + 12 >> 2] = HEAP32[i14 + 12 >> 2];
41474 i14 = i9;
41475 i1 = i2 + 20 | 0;
41476 HEAP32[i14 >> 2] = HEAP32[i1 >> 2];
41477 HEAP32[i14 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
41478 HEAP32[i14 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
41479 HEAP32[i14 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
41480 i1 = i7;
41481 i14 = i2 + 36 | 0;
41482 HEAP32[i1 >> 2] = HEAP32[i14 >> 2];
41483 HEAP32[i1 + 4 >> 2] = HEAP32[i14 + 4 >> 2];
41484 HEAP32[i1 + 8 >> 2] = HEAP32[i14 + 8 >> 2];
41485 HEAP32[i1 + 12 >> 2] = HEAP32[i14 + 12 >> 2];
41486 i15 = 1;
41487 STACKTOP = i11;
41488 return i15 | 0;
41489 }
41490 if (!(__ZN15btGjkEpaSolver28DistanceEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsE(i3, i5, i4, i6, i10, i2) | 0)) {
41491 i15 = 0;
41492 STACKTOP = i11;
41493 return i15 | 0;
41494 }
41495 i10 = i8;
41496 i8 = i2 + 4 | 0;
41497 HEAP32[i10 >> 2] = HEAP32[i8 >> 2];
41498 HEAP32[i10 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
41499 HEAP32[i10 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
41500 HEAP32[i10 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
41501 i8 = i9;
41502 i9 = i2 + 20 | 0;
41503 HEAP32[i8 >> 2] = HEAP32[i9 >> 2];
41504 HEAP32[i8 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
41505 HEAP32[i8 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
41506 HEAP32[i8 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
41507 i9 = i7;
41508 i7 = i2 + 36 | 0;
41509 HEAP32[i9 >> 2] = HEAP32[i7 >> 2];
41510 HEAP32[i9 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
41511 HEAP32[i9 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
41512 HEAP32[i9 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
41513 i15 = 0;
41514 STACKTOP = i11;
41515 return i15 | 0;
41516 }
41517 function __ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallback15processTriangleEP9btVector3ii(i1, i2, i3, i4) {
41518 i1 = i1 | 0;
41519 i2 = i2 | 0;
41520 i3 = i3 | 0;
41521 i4 = i4 | 0;
41522 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, d12 = 0.0, i13 = 0, i14 = 0, i15 = 0;
41523 i4 = STACKTOP;
41524 STACKTOP = STACKTOP + 776 | 0;
41525 i3 = i4 | 0;
41526 i5 = i4 + 64 | 0;
41527 i6 = i4 + 240 | 0;
41528 i7 = i4 + 296 | 0;
41529 i8 = i4 + 400 | 0;
41530 i9 = i4 + 760 | 0;
41531 HEAPF32[i3 >> 2] = 1.0;
41532 _memset(i3 + 4 | 0, 0, 16);
41533 HEAPF32[i3 + 20 >> 2] = 1.0;
41534 _memset(i3 + 24 | 0, 0, 16);
41535 HEAPF32[i3 + 40 >> 2] = 1.0;
41536 _memset(i3 + 44 | 0, 0, 20);
41537 HEAP32[i5 >> 2] = 2280;
41538 i10 = i5 + 164 | 0;
41539 HEAP32[i5 + 168 >> 2] = 0;
41540 HEAPF32[i5 + 172 >> 2] = 0.0;
41541 i11 = i1 + 200 | 0;
41542 HEAPF32[i10 >> 2] = +HEAPF32[i11 >> 2];
41543 d12 = +HEAPF32[i1 + 196 >> 2];
41544 __ZN21btConvexInternalShapeC2Ev(i6 | 0);
41545 HEAP32[i6 >> 2] = 4728;
41546 HEAP32[i6 + 4 >> 2] = 8;
41547 HEAPF32[i6 + 28 >> 2] = d12;
41548 HEAPF32[i6 + 44 >> 2] = d12;
41549 i13 = i7 | 0;
41550 __ZN23btPolyhedralConvexShapeC2Ev(i13);
41551 HEAP32[i7 >> 2] = 4560;
41552 HEAP32[i7 + 4 >> 2] = 1;
41553 i14 = i7 + 56 | 0;
41554 i15 = i2;
41555 HEAP32[i14 >> 2] = HEAP32[i15 >> 2];
41556 HEAP32[i14 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
41557 HEAP32[i14 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
41558 HEAP32[i14 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
41559 i15 = i7 + 72 | 0;
41560 i14 = i2 + 16 | 0;
41561 HEAP32[i15 >> 2] = HEAP32[i14 >> 2];
41562 HEAP32[i15 + 4 >> 2] = HEAP32[i14 + 4 >> 2];
41563 HEAP32[i15 + 8 >> 2] = HEAP32[i14 + 8 >> 2];
41564 HEAP32[i15 + 12 >> 2] = HEAP32[i14 + 12 >> 2];
41565 i14 = i7 + 88 | 0;
41566 i15 = i2 + 32 | 0;
41567 HEAP32[i14 >> 2] = HEAP32[i15 >> 2];
41568 HEAP32[i14 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
41569 HEAP32[i14 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
41570 HEAP32[i14 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
41571 HEAPF32[i8 + 308 >> 2] = 9999999747378752.0e-20;
41572 HEAP16[i8 + 332 >> 1] = 0;
41573 i15 = i6 | 0;
41574 __ZN22btSubsimplexConvexCastC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolver(i9, i15, i7 | 0, i8);
41575 do {
41576 if (__ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i9, i1 + 4 | 0, i1 + 68 | 0, i3, i3, i5) | 0) {
41577 d12 = +HEAPF32[i10 >> 2];
41578 if (+HEAPF32[i11 >> 2] <= d12) {
41579 break;
41580 }
41581 HEAPF32[i11 >> 2] = d12;
41582 }
41583 } while (0);
41584 __ZN12btConvexCastD2Ev(i9 | 0);
41585 __ZN23btPolyhedralConvexShapeD2Ev(i13);
41586 __ZN13btConvexShapeD2Ev(i15);
41587 STACKTOP = i4;
41588 return;
41589 }
41590 function __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i1, i2, i3, d4, i5) {
41591 i1 = i1 | 0;
41592 i2 = i2 | 0;
41593 i3 = i3 | 0;
41594 d4 = +d4;
41595 i5 = i5 | 0;
41596 var i6 = 0, i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0;
41597 i6 = STACKTOP;
41598 STACKTOP = STACKTOP + 16 | 0;
41599 i7 = i6 | 0;
41600 d8 = +HEAPF32[i2 + 4 >> 2] * d4 + +HEAPF32[i1 + 52 >> 2];
41601 d9 = +HEAPF32[i2 + 8 >> 2] * d4 + +HEAPF32[i1 + 56 >> 2];
41602 HEAPF32[i5 + 48 >> 2] = +HEAPF32[i2 >> 2] * d4 + +HEAPF32[i1 + 48 >> 2];
41603 HEAPF32[i5 + 52 >> 2] = d8;
41604 HEAPF32[i5 + 56 >> 2] = d9;
41605 HEAPF32[i5 + 60 >> 2] = 0.0;
41606 d9 = +HEAPF32[i3 >> 2];
41607 d8 = +HEAPF32[i3 + 4 >> 2];
41608 d10 = +HEAPF32[i3 + 8 >> 2];
41609 d11 = +Math_sqrt(+(d9 * d9 + d8 * d8 + d10 * d10));
41610 if (d11 * d4 > .7853981852531433) {
41611 d12 = .7853981852531433 / d4;
41612 } else {
41613 d12 = d11;
41614 }
41615 if (d12 < .0010000000474974513) {
41616 d13 = d4 * .5 - d12 * d4 * d4 * d4 * .02083333395421505 * d12;
41617 } else {
41618 d13 = +Math_sin(+(d12 * .5 * d4)) / d12;
41619 }
41620 d11 = d9 * d13;
41621 d9 = d8 * d13;
41622 d8 = d10 * d13;
41623 d13 = +Math_cos(+(d12 * d4 * .5));
41624 __ZNK11btMatrix3x311getRotationER12btQuaternion(i1 | 0, i7);
41625 d4 = +HEAPF32[i7 >> 2];
41626 d12 = +HEAPF32[i7 + 12 >> 2];
41627 d10 = +HEAPF32[i7 + 8 >> 2];
41628 d14 = +HEAPF32[i7 + 4 >> 2];
41629 d15 = d13 * d4 + d11 * d12 + d9 * d10 - d8 * d14;
41630 d16 = d8 * d4 + (d9 * d12 + d13 * d14) - d11 * d10;
41631 d17 = d8 * d12 + d13 * d10 + d11 * d14 - d9 * d4;
41632 d18 = d13 * d12 - d11 * d4 - d9 * d14 - d8 * d10;
41633 d10 = 1.0 / +Math_sqrt(+(d18 * d18 + (d17 * d17 + (d15 * d15 + d16 * d16))));
41634 d8 = d15 * d10;
41635 d15 = d10 * d16;
41636 d16 = d10 * d17;
41637 d17 = d10 * d18;
41638 d18 = 2.0 / (d17 * d17 + (d16 * d16 + (d8 * d8 + d15 * d15)));
41639 d10 = d8 * d18;
41640 d14 = d18 * d15;
41641 d9 = d18 * d16;
41642 d18 = d17 * d10;
41643 d4 = d17 * d14;
41644 d11 = d17 * d9;
41645 d17 = d8 * d10;
41646 d10 = d8 * d14;
41647 d12 = d8 * d9;
41648 d8 = d15 * d14;
41649 d14 = d15 * d9;
41650 d15 = d16 * d9;
41651 HEAPF32[i5 >> 2] = 1.0 - (d15 + d8);
41652 HEAPF32[i5 + 4 >> 2] = d10 - d11;
41653 HEAPF32[i5 + 8 >> 2] = d12 + d4;
41654 HEAPF32[i5 + 12 >> 2] = 0.0;
41655 HEAPF32[i5 + 16 >> 2] = d11 + d10;
41656 HEAPF32[i5 + 20 >> 2] = 1.0 - (d17 + d15);
41657 HEAPF32[i5 + 24 >> 2] = d14 - d18;
41658 HEAPF32[i5 + 28 >> 2] = 0.0;
41659 HEAPF32[i5 + 32 >> 2] = d12 - d4;
41660 HEAPF32[i5 + 36 >> 2] = d18 + d14;
41661 HEAPF32[i5 + 40 >> 2] = 1.0 - (d17 + d8);
41662 HEAPF32[i5 + 44 >> 2] = 0.0;
41663 STACKTOP = i6;
41664 return;
41665 }
41666 function __ZL10removeleafP6btDbvtP10btDbvtNode(i1, i2) {
41667 i1 = i1 | 0;
41668 i2 = i2 | 0;
41669 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, i12 = 0, d13 = 0.0, i14 = 0, d15 = 0.0, i16 = 0, i17 = 0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, i26 = 0;
41670 i3 = i1 | 0;
41671 if ((HEAP32[i3 >> 2] | 0) == (i2 | 0)) {
41672 HEAP32[i3 >> 2] = 0;
41673 i4 = 0;
41674 return i4 | 0;
41675 }
41676 i5 = HEAP32[i2 + 32 >> 2] | 0;
41677 i6 = HEAP32[i5 + 32 >> 2] | 0;
41678 i7 = HEAP32[i5 + 36 + (((HEAP32[i5 + 40 >> 2] | 0) != (i2 | 0)) << 2) >> 2] | 0;
41679 if ((i6 | 0) == 0) {
41680 HEAP32[i3 >> 2] = i7;
41681 HEAP32[i7 + 32 >> 2] = 0;
41682 i2 = i1 + 4 | 0;
41683 __Z21btAlignedFreeInternalPv(HEAP32[i2 >> 2] | 0);
41684 HEAP32[i2 >> 2] = i5;
41685 i4 = HEAP32[i3 >> 2] | 0;
41686 return i4 | 0;
41687 }
41688 HEAP32[i6 + 36 + (((HEAP32[i6 + 40 >> 2] | 0) == (i5 | 0)) << 2) >> 2] = i7;
41689 HEAP32[i7 + 32 >> 2] = i6;
41690 i7 = i1 + 4 | 0;
41691 __Z21btAlignedFreeInternalPv(HEAP32[i7 >> 2] | 0);
41692 HEAP32[i7 >> 2] = i5;
41693 i5 = i6;
41694 do {
41695 i6 = i5 | 0;
41696 d8 = +HEAPF32[i6 >> 2];
41697 i7 = i5 + 4 | 0;
41698 d9 = +HEAPF32[i7 >> 2];
41699 i1 = i5 + 8 | 0;
41700 d10 = +HEAPF32[i1 >> 2];
41701 i2 = i5 + 16 | 0;
41702 d11 = +HEAPF32[i2 >> 2];
41703 i12 = i5 + 20 | 0;
41704 d13 = +HEAPF32[i12 >> 2];
41705 i14 = i5 + 24 | 0;
41706 d15 = +HEAPF32[i14 >> 2];
41707 i16 = HEAP32[i5 + 36 >> 2] | 0;
41708 i17 = HEAP32[i5 + 40 >> 2] | 0;
41709 d18 = +HEAPF32[i16 >> 2];
41710 d19 = +HEAPF32[i17 >> 2];
41711 d20 = d18 < d19 ? d18 : d19;
41712 HEAPF32[i6 >> 2] = d20;
41713 d19 = +HEAPF32[i16 + 16 >> 2];
41714 d18 = +HEAPF32[i17 + 16 >> 2];
41715 d21 = d19 > d18 ? d19 : d18;
41716 HEAPF32[i2 >> 2] = d21;
41717 d18 = +HEAPF32[i16 + 4 >> 2];
41718 d19 = +HEAPF32[i17 + 4 >> 2];
41719 d22 = d18 < d19 ? d18 : d19;
41720 HEAPF32[i7 >> 2] = d22;
41721 d19 = +HEAPF32[i16 + 20 >> 2];
41722 d18 = +HEAPF32[i17 + 20 >> 2];
41723 d23 = d19 > d18 ? d19 : d18;
41724 HEAPF32[i12 >> 2] = d23;
41725 d18 = +HEAPF32[i16 + 8 >> 2];
41726 d19 = +HEAPF32[i17 + 8 >> 2];
41727 d24 = d18 < d19 ? d18 : d19;
41728 HEAPF32[i1 >> 2] = d24;
41729 d19 = +HEAPF32[i16 + 24 >> 2];
41730 d18 = +HEAPF32[i17 + 24 >> 2];
41731 d25 = d19 > d18 ? d19 : d18;
41732 HEAPF32[i14 >> 2] = d25;
41733 if (!(d8 != d20 | d9 != d22 | d10 != d24 | d11 != d21)) {
41734 if (!(d13 != d23 | d15 != d25)) {
41735 i4 = i5;
41736 i26 = 1994;
41737 break;
41738 }
41739 }
41740 i5 = HEAP32[i5 + 32 >> 2] | 0;
41741 } while ((i5 | 0) != 0);
41742 if ((i26 | 0) == 1994) {
41743 return i4 | 0;
41744 }
41745 i4 = HEAP32[i3 >> 2] | 0;
41746 return i4 | 0;
41747 }
41748 function __ZN6btDbvt6updateEP10btDbvtNodeR12btDbvtAabbMmRK9btVector3f(i1, i2, i3, i4, d5) {
41749 i1 = i1 | 0;
41750 i2 = i2 | 0;
41751 i3 = i3 | 0;
41752 i4 = i4 | 0;
41753 d5 = +d5;
41754 var i6 = 0, d7 = 0.0, d8 = 0.0, d9 = 0.0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0, i15 = 0, d16 = 0.0, i17 = 0, d18 = 0.0, i19 = 0, i20 = 0, i21 = 0;
41755 i6 = i3 | 0;
41756 d7 = +HEAPF32[i6 >> 2];
41757 do {
41758 if (+HEAPF32[i2 >> 2] > d7) {
41759 d8 = +HEAPF32[i3 + 4 >> 2];
41760 } else {
41761 d9 = +HEAPF32[i3 + 4 >> 2];
41762 if (+HEAPF32[i2 + 4 >> 2] > d9) {
41763 d8 = d9;
41764 break;
41765 }
41766 if (+HEAPF32[i2 + 8 >> 2] > +HEAPF32[i3 + 8 >> 2]) {
41767 d8 = d9;
41768 break;
41769 }
41770 if (+HEAPF32[i2 + 16 >> 2] < +HEAPF32[i3 + 16 >> 2]) {
41771 d8 = d9;
41772 break;
41773 }
41774 if (+HEAPF32[i2 + 20 >> 2] < +HEAPF32[i3 + 20 >> 2]) {
41775 d8 = d9;
41776 break;
41777 }
41778 if (+HEAPF32[i2 + 24 >> 2] < +HEAPF32[i3 + 24 >> 2]) {
41779 d8 = d9;
41780 break;
41781 } else {
41782 i10 = 0;
41783 }
41784 return i10 | 0;
41785 }
41786 } while (0);
41787 d9 = d7 - d5;
41788 HEAPF32[i6 >> 2] = d9;
41789 i11 = i3 + 4 | 0;
41790 d7 = d8 - d5;
41791 HEAPF32[i11 >> 2] = d7;
41792 i12 = i3 + 8 | 0;
41793 d8 = +HEAPF32[i12 >> 2] - d5;
41794 HEAPF32[i12 >> 2] = d8;
41795 i13 = i3 + 16 | 0;
41796 d14 = +HEAPF32[i13 >> 2] + d5;
41797 HEAPF32[i13 >> 2] = d14;
41798 i15 = i3 + 20 | 0;
41799 d16 = +HEAPF32[i15 >> 2] + d5;
41800 HEAPF32[i15 >> 2] = d16;
41801 i17 = i3 + 24 | 0;
41802 d18 = +HEAPF32[i17 >> 2] + d5;
41803 HEAPF32[i17 >> 2] = d18;
41804 d5 = +HEAPF32[i4 >> 2];
41805 if (d5 > 0.0) {
41806 HEAPF32[i13 >> 2] = d14 + d5;
41807 } else {
41808 HEAPF32[i6 >> 2] = d9 + d5;
41809 }
41810 d5 = +HEAPF32[i4 + 4 >> 2];
41811 if (d5 > 0.0) {
41812 HEAPF32[i15 >> 2] = d16 + d5;
41813 } else {
41814 HEAPF32[i11 >> 2] = d7 + d5;
41815 }
41816 d5 = +HEAPF32[i4 + 8 >> 2];
41817 if (d5 > 0.0) {
41818 HEAPF32[i17 >> 2] = d18 + d5;
41819 } else {
41820 HEAPF32[i12 >> 2] = d8 + d5;
41821 }
41822 i12 = __ZL10removeleafP6btDbvtP10btDbvtNode(i1, i2) | 0;
41823 L2399 : do {
41824 if ((i12 | 0) == 0) {
41825 i19 = 0;
41826 } else {
41827 i17 = HEAP32[i1 + 8 >> 2] | 0;
41828 if ((i17 | 0) > -1) {
41829 i20 = 0;
41830 i21 = i12;
41831 } else {
41832 i19 = HEAP32[i1 >> 2] | 0;
41833 break;
41834 }
41835 while (1) {
41836 if ((i20 | 0) >= (i17 | 0)) {
41837 i19 = i21;
41838 break L2399;
41839 }
41840 i4 = HEAP32[i21 + 32 >> 2] | 0;
41841 if ((i4 | 0) == 0) {
41842 i19 = i21;
41843 break;
41844 } else {
41845 i20 = i20 + 1 | 0;
41846 i21 = i4;
41847 }
41848 }
41849 }
41850 } while (0);
41851 i21 = i2;
41852 i20 = i3;
41853 _memcpy(i21 | 0, i20 | 0, 32) | 0;
41854 __ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i1, i19, i2);
41855 i10 = 1;
41856 return i10 | 0;
41857 }
41858 function __ZN23btDiscreteDynamicsWorld21updateActivationStateEf(i1, d2) {
41859 i1 = i1 | 0;
41860 d2 = +d2;
41861 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, i18 = 0, i19 = 0;
41862 __ZN15CProfileManager13Start_ProfileEPKc(312);
41863 i3 = i1 + 204 | 0;
41864 if ((HEAP32[i3 >> 2] | 0) <= 0) {
41865 __ZN15CProfileManager12Stop_ProfileEv();
41866 return;
41867 }
41868 i4 = i1 + 212 | 0;
41869 i1 = 0;
41870 do {
41871 i5 = HEAP32[(HEAP32[i4 >> 2] | 0) + (i1 << 2) >> 2] | 0;
41872 L390 : do {
41873 if ((i5 | 0) != 0) {
41874 i6 = i5 | 0;
41875 i7 = i5 + 216 | 0;
41876 i8 = HEAP32[i7 >> 2] | 0;
41877 L392 : do {
41878 if ((i8 | 0) == 2 | (i8 | 0) == 4) {
41879 i9 = i8;
41880 } else {
41881 d10 = +HEAPF32[i5 + 304 >> 2];
41882 d11 = +HEAPF32[i5 + 308 >> 2];
41883 d12 = +HEAPF32[i5 + 312 >> 2];
41884 d13 = +HEAPF32[i5 + 464 >> 2];
41885 do {
41886 if (d10 * d10 + d11 * d11 + d12 * d12 < d13 * d13) {
41887 d14 = +HEAPF32[i5 + 320 >> 2];
41888 d15 = +HEAPF32[i5 + 324 >> 2];
41889 d16 = +HEAPF32[i5 + 328 >> 2];
41890 d17 = +HEAPF32[i5 + 468 >> 2];
41891 if (d14 * d14 + d15 * d15 + d16 * d16 >= d17 * d17) {
41892 break;
41893 }
41894 i18 = i5 + 220 | 0;
41895 HEAPF32[i18 >> 2] = +HEAPF32[i18 >> 2] + d2;
41896 i9 = i8;
41897 break L392;
41898 }
41899 } while (0);
41900 HEAPF32[i5 + 220 >> 2] = 0.0;
41901 __ZN17btCollisionObject18setActivationStateEi(i6, 0);
41902 i9 = HEAP32[i7 >> 2] | 0;
41903 }
41904 } while (0);
41905 if ((i9 | 0) == 4) {
41906 break;
41907 }
41908 d13 = +HEAPF32[2];
41909 do {
41910 if (!((HEAP8[12016] | 0) != 0 | d13 == 0.0)) {
41911 if ((i9 - 2 | 0) >>> 0 >= 2) {
41912 if (+HEAPF32[i5 + 220 >> 2] <= d13) {
41913 break;
41914 }
41915 }
41916 if ((HEAP32[i5 + 204 >> 2] & 3 | 0) != 0) {
41917 __ZN17btCollisionObject18setActivationStateEi(i6, 2);
41918 break L390;
41919 }
41920 if ((i9 | 0) == 1) {
41921 __ZN17btCollisionObject18setActivationStateEi(i6, 3);
41922 i19 = HEAP32[i7 >> 2] | 0;
41923 } else {
41924 i19 = i9;
41925 }
41926 if ((i19 | 0) != 2) {
41927 break L390;
41928 }
41929 _memset(i5 + 304 | 0, 0, 32);
41930 break L390;
41931 }
41932 } while (0);
41933 __ZN17btCollisionObject18setActivationStateEi(i6, 1);
41934 }
41935 } while (0);
41936 i1 = i1 + 1 | 0;
41937 } while ((i1 | 0) < (HEAP32[i3 >> 2] | 0));
41938 __ZN15CProfileManager12Stop_ProfileEv();
41939 return;
41940 }
41941 function __ZN20btAlignedObjectArrayIN20btConvexHullInternal7Point32EE17quickSortInternalIPFbRKS1_S5_EEEvT_ii(i1, i2, i3, i4) {
41942 i1 = i1 | 0;
41943 i2 = i2 | 0;
41944 i3 = i3 | 0;
41945 i4 = i4 | 0;
41946 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0;
41947 i5 = STACKTOP;
41948 STACKTOP = STACKTOP + 32 | 0;
41949 i6 = i5 + 16 | 0;
41950 i7 = i1 + 12 | 0;
41951 i8 = i6;
41952 i9 = (HEAP32[i7 >> 2] | 0) + (((i4 + i3 | 0) / 2 | 0) << 4) | 0;
41953 HEAP32[i8 >> 2] = HEAP32[i9 >> 2];
41954 HEAP32[i8 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
41955 HEAP32[i8 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
41956 HEAP32[i8 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
41957 i9 = i5 | 0;
41958 i8 = i4;
41959 i10 = i3;
41960 while (1) {
41961 i11 = i10;
41962 while (1) {
41963 i12 = i11 + 1 | 0;
41964 if (FUNCTION_TABLE_iii[i2 & 63]((HEAP32[i7 >> 2] | 0) + (i11 << 4) | 0, i6) | 0) {
41965 i11 = i12;
41966 } else {
41967 i13 = i8;
41968 break;
41969 }
41970 }
41971 while (1) {
41972 i14 = i13 - 1 | 0;
41973 if (FUNCTION_TABLE_iii[i2 & 63](i6, (HEAP32[i7 >> 2] | 0) + (i13 << 4) | 0) | 0) {
41974 i13 = i14;
41975 } else {
41976 break;
41977 }
41978 }
41979 if ((i11 | 0) > (i13 | 0)) {
41980 i15 = i13;
41981 i16 = i11;
41982 } else {
41983 i17 = HEAP32[i7 >> 2] | 0;
41984 i18 = i17 + (i11 << 4) | 0;
41985 HEAP32[i9 >> 2] = HEAP32[i18 >> 2];
41986 HEAP32[i9 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
41987 HEAP32[i9 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
41988 HEAP32[i9 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
41989 i19 = i17 + (i13 << 4) | 0;
41990 HEAP32[i18 >> 2] = HEAP32[i19 >> 2];
41991 HEAP32[i18 + 4 >> 2] = HEAP32[i19 + 4 >> 2];
41992 HEAP32[i18 + 8 >> 2] = HEAP32[i19 + 8 >> 2];
41993 HEAP32[i18 + 12 >> 2] = HEAP32[i19 + 12 >> 2];
41994 i19 = (HEAP32[i7 >> 2] | 0) + (i13 << 4) | 0;
41995 HEAP32[i19 >> 2] = HEAP32[i9 >> 2];
41996 HEAP32[i19 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
41997 HEAP32[i19 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
41998 HEAP32[i19 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
41999 i15 = i14;
42000 i16 = i12;
42001 }
42002 if ((i16 | 0) > (i15 | 0)) {
42003 break;
42004 } else {
42005 i8 = i15;
42006 i10 = i16;
42007 }
42008 }
42009 if ((i15 | 0) > (i3 | 0)) {
42010 __ZN20btAlignedObjectArrayIN20btConvexHullInternal7Point32EE17quickSortInternalIPFbRKS1_S5_EEEvT_ii(i1, i2, i3, i15);
42011 }
42012 if ((i16 | 0) >= (i4 | 0)) {
42013 STACKTOP = i5;
42014 return;
42015 }
42016 __ZN20btAlignedObjectArrayIN20btConvexHullInternal7Point32EE17quickSortInternalIPFbRKS1_S5_EEEvT_ii(i1, i2, i16, i4);
42017 STACKTOP = i5;
42018 return;
42019 }
42020 function __ZN23btDiscreteDynamicsWorldC2EP12btDispatcherP21btBroadphaseInterfaceP18btConstraintSolverP24btCollisionConfiguration(i1, i2, i3, i4, i5) {
42021 i1 = i1 | 0;
42022 i2 = i2 | 0;
42023 i3 = i3 | 0;
42024 i4 = i4 | 0;
42025 i5 = i5 | 0;
42026 var i6 = 0, i7 = 0, i8 = 0, i9 = 0;
42027 __ZN16btCollisionWorldC2EP12btDispatcherP21btBroadphaseInterfaceP24btCollisionConfiguration(i1 | 0, i2, i3, i5);
42028 HEAP32[i1 + 88 >> 2] = 0;
42029 HEAP32[i1 + 92 >> 2] = 0;
42030 HEAP32[i1 + 96 >> 2] = 0;
42031 HEAPF32[i1 + 100 >> 2] = .6000000238418579;
42032 HEAPF32[i1 + 104 >> 2] = 1.0;
42033 HEAPF32[i1 + 108 >> 2] = .30000001192092896;
42034 HEAPF32[i1 + 116 >> 2] = 0.0;
42035 HEAPF32[i1 + 124 >> 2] = 20.0;
42036 HEAP32[i1 + 120 >> 2] = 10;
42037 HEAPF32[i1 + 132 >> 2] = .20000000298023224;
42038 HEAPF32[i1 + 136 >> 2] = .10000000149011612;
42039 HEAPF32[i1 + 140 >> 2] = 0.0;
42040 HEAPF32[i1 + 128 >> 2] = 1.0;
42041 HEAP32[i1 + 144 >> 2] = 0;
42042 HEAPF32[i1 + 148 >> 2] = -.019999999552965164;
42043 HEAPF32[i1 + 152 >> 2] = 0.0;
42044 HEAPF32[i1 + 156 >> 2] = .8500000238418579;
42045 HEAP32[i1 + 160 >> 2] = 260;
42046 HEAP32[i1 + 164 >> 2] = 2;
42047 HEAP32[i1 + 168 >> 2] = 128;
42048 HEAP32[i1 >> 2] = 3272;
42049 i5 = i1 + 172 | 0;
42050 HEAP32[i5 >> 2] = i4;
42051 HEAP8[i1 + 196 | 0] = 1;
42052 HEAP32[i1 + 192 >> 2] = 0;
42053 HEAP32[i1 + 184 >> 2] = 0;
42054 HEAP32[i1 + 188 >> 2] = 0;
42055 HEAP8[i1 + 216 | 0] = 1;
42056 HEAP32[i1 + 212 >> 2] = 0;
42057 HEAP32[i1 + 204 >> 2] = 0;
42058 HEAP32[i1 + 208 >> 2] = 0;
42059 HEAPF32[i1 + 220 >> 2] = 0.0;
42060 HEAPF32[i1 + 224 >> 2] = -10.0;
42061 HEAPF32[i1 + 228 >> 2] = 0.0;
42062 HEAPF32[i1 + 232 >> 2] = 0.0;
42063 HEAPF32[i1 + 236 >> 2] = 0.0;
42064 HEAP8[i1 + 242 | 0] = 0;
42065 HEAP8[i1 + 260 | 0] = 1;
42066 HEAP32[i1 + 256 >> 2] = 0;
42067 HEAP32[i1 + 248 >> 2] = 0;
42068 HEAP32[i1 + 252 >> 2] = 0;
42069 HEAP32[i1 + 264 >> 2] = 0;
42070 if ((i4 | 0) == 0) {
42071 i4 = __Z22btAlignedAllocInternalji(128, 16) | 0;
42072 if ((i4 | 0) == 0) {
42073 i6 = 0;
42074 } else {
42075 i3 = i4;
42076 __ZN35btSequentialImpulseConstraintSolverC2Ev(i3);
42077 i6 = i3;
42078 }
42079 HEAP32[i5 >> 2] = i6;
42080 HEAP8[i1 + 241 | 0] = 1;
42081 } else {
42082 HEAP8[i1 + 241 | 0] = 0;
42083 }
42084 i6 = __Z22btAlignedAllocInternalji(68, 16) | 0;
42085 if ((i6 | 0) == 0) {
42086 i7 = 0;
42087 i8 = i1 + 176 | 0;
42088 HEAP32[i8 >> 2] = i7;
42089 i9 = i1 + 240 | 0;
42090 HEAP8[i9] = 1;
42091 return;
42092 }
42093 i5 = i6;
42094 __ZN25btSimulationIslandManagerC2Ev(i5);
42095 i7 = i5;
42096 i8 = i1 + 176 | 0;
42097 HEAP32[i8 >> 2] = i7;
42098 i9 = i1 + 240 | 0;
42099 HEAP8[i9] = 1;
42100 return;
42101 }
42102 function __ZN16btDbvtBroadphase11createProxyERK9btVector3S2_iPvssP12btDispatcherS3_(i1, i2, i3, i4, i5, i6, i7, i8, i9) {
42103 i1 = i1 | 0;
42104 i2 = i2 | 0;
42105 i3 = i3 | 0;
42106 i4 = i4 | 0;
42107 i5 = i5 | 0;
42108 i6 = i6 | 0;
42109 i7 = i7 | 0;
42110 i8 = i8 | 0;
42111 i9 = i9 | 0;
42112 var i10 = 0, i11 = 0;
42113 i9 = STACKTOP;
42114 STACKTOP = STACKTOP + 48 | 0;
42115 i8 = i9 | 0;
42116 i4 = i9 + 32 | 0;
42117 i10 = __Z22btAlignedAllocInternalji(64, 16) | 0;
42118 i11 = i10;
42119 HEAP32[i10 >> 2] = i5;
42120 HEAP16[i10 + 4 >> 1] = i6;
42121 HEAP16[i10 + 6 >> 1] = i7;
42122 i7 = i10 + 16 | 0;
42123 i6 = i2;
42124 HEAP32[i7 >> 2] = HEAP32[i6 >> 2];
42125 HEAP32[i7 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
42126 HEAP32[i7 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
42127 HEAP32[i7 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
42128 i7 = i10 + 32 | 0;
42129 i2 = i3;
42130 HEAP32[i7 >> 2] = HEAP32[i2 >> 2];
42131 HEAP32[i7 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
42132 HEAP32[i7 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
42133 HEAP32[i7 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
42134 HEAP32[i10 + 8 >> 2] = 0;
42135 i7 = i10 + 56 | 0;
42136 HEAP32[i7 >> 2] = 0;
42137 i3 = i10 + 52 | 0;
42138 HEAP32[i3 >> 2] = 0;
42139 i5 = i8;
42140 HEAP32[i5 >> 2] = HEAP32[i6 >> 2];
42141 HEAP32[i5 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
42142 HEAP32[i5 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
42143 HEAP32[i5 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
42144 i6 = i8 + 16 | 0;
42145 HEAP32[i6 >> 2] = HEAP32[i2 >> 2];
42146 HEAP32[i6 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
42147 HEAP32[i6 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
42148 HEAP32[i6 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
42149 i2 = i1 + 104 | 0;
42150 HEAP32[i10 + 60 >> 2] = HEAP32[i2 >> 2];
42151 i6 = i1 + 148 | 0;
42152 i5 = (HEAP32[i6 >> 2] | 0) + 1 | 0;
42153 HEAP32[i6 >> 2] = i5;
42154 i6 = i10;
42155 HEAP32[i10 + 12 >> 2] = i5;
42156 i5 = i1 + 4 | 0;
42157 HEAP32[i10 + 48 >> 2] = __ZN6btDbvt6insertERK12btDbvtAabbMmPv(i5 | 0, i8, i10) | 0;
42158 i10 = i1 + 84 + (HEAP32[i2 >> 2] << 2) | 0;
42159 HEAP32[i3 >> 2] = 0;
42160 HEAP32[i7 >> 2] = HEAP32[i10 >> 2];
42161 i7 = HEAP32[i10 >> 2] | 0;
42162 if ((i7 | 0) != 0) {
42163 HEAP32[i7 + 52 >> 2] = i11;
42164 }
42165 HEAP32[i10 >> 2] = i11;
42166 if ((HEAP8[i1 + 153 | 0] | 0) != 0) {
42167 STACKTOP = i9;
42168 return i6 | 0;
42169 }
42170 HEAP32[i4 >> 2] = 4064;
42171 HEAP32[i4 + 4 >> 2] = i1;
42172 HEAP32[i4 + 8 >> 2] = i11;
42173 i11 = i4 | 0;
42174 __ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(0, HEAP32[i5 >> 2] | 0, i8, i11);
42175 __ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(0, HEAP32[i1 + 44 >> 2] | 0, i8, i11);
42176 STACKTOP = i9;
42177 return i6 | 0;
42178 }
42179 function __ZN28btHashedOverlappingPairCache15internalAddPairEP17btBroadphaseProxyS1_(i1, i2, i3) {
42180 i1 = i1 | 0;
42181 i2 = i2 | 0;
42182 i3 = i3 | 0;
42183 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0;
42184 i4 = (HEAP32[i2 + 12 >> 2] | 0) > (HEAP32[i3 + 12 >> 2] | 0);
42185 i5 = i4 ? i3 : i2;
42186 i6 = i4 ? i2 : i3;
42187 i3 = i5 + 12 | 0;
42188 i2 = HEAP32[i3 >> 2] | 0;
42189 i4 = i6 + 12 | 0;
42190 i7 = HEAP32[i4 >> 2] | 0;
42191 i8 = i7 << 16 | i2;
42192 i9 = i8 + ~(i8 << 15) | 0;
42193 i8 = (i9 >> 10 ^ i9) * 9 | 0;
42194 i9 = i8 >> 6 ^ i8;
42195 i8 = i9 + ~(i9 << 11) | 0;
42196 i9 = i8 >> 16 ^ i8;
42197 i8 = i1 + 4 | 0;
42198 i10 = i1 + 12 | 0;
42199 i11 = HEAP32[i10 >> 2] | 0;
42200 i12 = i9 & i11 - 1;
42201 i13 = i1 + 44 | 0;
42202 i14 = HEAP32[(HEAP32[i13 >> 2] | 0) + (i12 << 2) >> 2] | 0;
42203 L1755 : do {
42204 if ((i14 | 0) != -1) {
42205 i15 = HEAP32[i1 + 16 >> 2] | 0;
42206 i16 = i1 + 64 | 0;
42207 i17 = i14;
42208 while (1) {
42209 if ((HEAP32[(HEAP32[i15 + (i17 << 4) >> 2] | 0) + 12 >> 2] | 0) == (i2 | 0)) {
42210 if ((HEAP32[(HEAP32[i15 + (i17 << 4) + 4 >> 2] | 0) + 12 >> 2] | 0) == (i7 | 0)) {
42211 break;
42212 }
42213 }
42214 i18 = HEAP32[(HEAP32[i16 >> 2] | 0) + (i17 << 2) >> 2] | 0;
42215 if ((i18 | 0) == -1) {
42216 break L1755;
42217 } else {
42218 i17 = i18;
42219 }
42220 }
42221 i16 = i15 + (i17 << 4) | 0;
42222 if ((i16 | 0) == 0) {
42223 break;
42224 } else {
42225 i19 = i16;
42226 }
42227 return i19 | 0;
42228 }
42229 } while (0);
42230 i7 = HEAP32[i1 + 8 >> 2] | 0;
42231 i2 = __ZN20btAlignedObjectArrayI16btBroadphasePairE21expandNonInitializingEv(i8) | 0;
42232 i8 = HEAP32[i1 + 72 >> 2] | 0;
42233 if ((i8 | 0) != 0) {
42234 i14 = HEAP32[(HEAP32[i8 >> 2] | 0) + 8 >> 2] | 0;
42235 FUNCTION_TABLE_iiii[i14 & 31](i8, i5, i6) | 0;
42236 }
42237 if ((i11 | 0) < (HEAP32[i10 >> 2] | 0)) {
42238 __ZN28btHashedOverlappingPairCache10growTablesEv(i1);
42239 i20 = (HEAP32[i10 >> 2] | 0) - 1 & i9;
42240 } else {
42241 i20 = i12;
42242 }
42243 i12 = i2 | 0;
42244 if ((HEAP32[i3 >> 2] | 0) < (HEAP32[i4 >> 2] | 0)) {
42245 HEAP32[i12 >> 2] = i5;
42246 HEAP32[i2 + 4 >> 2] = i6;
42247 } else {
42248 HEAP32[i12 >> 2] = i6;
42249 HEAP32[i2 + 4 >> 2] = i5;
42250 }
42251 i5 = i2 + 8 | 0;
42252 HEAP32[i5 >> 2] = 0;
42253 HEAP32[i5 + 4 >> 2] = 0;
42254 i5 = (HEAP32[i13 >> 2] | 0) + (i20 << 2) | 0;
42255 HEAP32[(HEAP32[i1 + 64 >> 2] | 0) + (i7 << 2) >> 2] = HEAP32[i5 >> 2];
42256 HEAP32[i5 >> 2] = i7;
42257 i19 = i2;
42258 return i19 | 0;
42259 }
42260 function __ZNK15btTriangleShape8isInsideERK9btVector3f(i1, i2, d3) {
42261 i1 = i1 | 0;
42262 i2 = i2 | 0;
42263 d3 = +d3;
42264 var i4 = 0, i5 = 0, i6 = 0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0;
42265 i4 = STACKTOP;
42266 STACKTOP = STACKTOP + 32 | 0;
42267 i5 = i4 | 0;
42268 i6 = i4 + 16 | 0;
42269 d7 = +HEAPF32[i1 + 56 >> 2];
42270 d8 = +HEAPF32[i1 + 72 >> 2] - d7;
42271 d9 = +HEAPF32[i1 + 60 >> 2];
42272 d10 = +HEAPF32[i1 + 76 >> 2] - d9;
42273 d11 = +HEAPF32[i1 + 64 >> 2];
42274 d12 = +HEAPF32[i1 + 80 >> 2] - d11;
42275 d13 = +HEAPF32[i1 + 88 >> 2] - d7;
42276 d14 = +HEAPF32[i1 + 92 >> 2] - d9;
42277 d15 = +HEAPF32[i1 + 96 >> 2] - d11;
42278 d16 = d10 * d15 - d12 * d14;
42279 d17 = d12 * d13 - d8 * d15;
42280 d15 = d8 * d14 - d10 * d13;
42281 d13 = 1.0 / +Math_sqrt(+(d15 * d15 + (d16 * d16 + d17 * d17)));
42282 d10 = d13 * d16;
42283 d16 = d13 * d17;
42284 d17 = d15 * d13;
42285 i18 = i2 | 0;
42286 i19 = i2 + 4 | 0;
42287 i20 = i2 + 8 | 0;
42288 d13 = +HEAPF32[i18 >> 2] * d10 + +HEAPF32[i19 >> 2] * d16 + d17 * +HEAPF32[i20 >> 2] - (d11 * d17 + (d7 * d10 + d9 * d16));
42289 d9 = -0.0 - d3;
42290 if (d13 < d9 | d13 > d3) {
42291 i21 = 0;
42292 STACKTOP = i4;
42293 return i21 | 0;
42294 }
42295 i2 = i1;
42296 i22 = i6 | 0;
42297 i23 = i5 | 0;
42298 i24 = i6 + 4 | 0;
42299 i25 = i5 + 4 | 0;
42300 i26 = i6 + 8 | 0;
42301 i27 = i5 + 8 | 0;
42302 i28 = 0;
42303 while (1) {
42304 if ((i28 | 0) >= 3) {
42305 i21 = 1;
42306 i29 = 139;
42307 break;
42308 }
42309 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 96 >> 2] & 127](i1, i28, i5, i6);
42310 d3 = +HEAPF32[i23 >> 2];
42311 d13 = +HEAPF32[i22 >> 2] - d3;
42312 d7 = +HEAPF32[i25 >> 2];
42313 d11 = +HEAPF32[i24 >> 2] - d7;
42314 d15 = +HEAPF32[i27 >> 2];
42315 d14 = +HEAPF32[i26 >> 2] - d15;
42316 d8 = d17 * d11 - d16 * d14;
42317 d12 = d10 * d14 - d17 * d13;
42318 d14 = d16 * d13 - d10 * d11;
42319 d11 = 1.0 / +Math_sqrt(+(d14 * d14 + (d8 * d8 + d12 * d12)));
42320 d13 = d11 * d8;
42321 d8 = d11 * d12;
42322 d12 = d14 * d11;
42323 if (+HEAPF32[i18 >> 2] * d13 + +HEAPF32[i19 >> 2] * d8 + d12 * +HEAPF32[i20 >> 2] - (d15 * d12 + (d3 * d13 + d7 * d8)) < d9) {
42324 i21 = 0;
42325 i29 = 140;
42326 break;
42327 } else {
42328 i28 = i28 + 1 | 0;
42329 }
42330 }
42331 if ((i29 | 0) == 139) {
42332 STACKTOP = i4;
42333 return i21 | 0;
42334 } else if ((i29 | 0) == 140) {
42335 STACKTOP = i4;
42336 return i21 | 0;
42337 }
42338 return 0;
42339 }
42340 function __ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallback11processNodeEii(i1, i2, i3) {
42341 i1 = i1 | 0;
42342 i2 = i2 | 0;
42343 i3 = i3 | 0;
42344 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, d20 = 0.0, d21 = 0.0;
42345 i4 = STACKTOP;
42346 STACKTOP = STACKTOP + 112 | 0;
42347 i5 = i4 | 0;
42348 i6 = i4 + 48 | 0;
42349 i7 = i4 + 64 | 0;
42350 i8 = i4 + 72 | 0;
42351 i9 = i4 + 80 | 0;
42352 i10 = i4 + 88 | 0;
42353 i11 = i4 + 104 | 0;
42354 i12 = i1 + 4 | 0;
42355 i13 = HEAP32[i12 >> 2] | 0;
42356 FUNCTION_TABLE_viiiiiiiiii[HEAP32[(HEAP32[i13 >> 2] | 0) + 16 >> 2] & 3](i13, i6, i4 + 56 | 0, i7, i8, i9, i10, i4 + 96 | 0, i11, i2);
42357 i13 = HEAP32[i9 >> 2] | 0;
42358 i9 = i13 + (Math_imul(HEAP32[i10 >> 2] | 0, i3) | 0) | 0;
42359 i10 = i9;
42360 i13 = HEAP32[i12 >> 2] | 0;
42361 i14 = (HEAP32[i11 >> 2] | 0) == 3;
42362 i11 = i9;
42363 i9 = (HEAP32[i7 >> 2] | 0) == 0;
42364 i7 = HEAP32[i6 >> 2] | 0;
42365 i6 = i13 + 4 | 0;
42366 i15 = i13 + 8 | 0;
42367 i16 = i13 + 12 | 0;
42368 i13 = 2;
42369 while (1) {
42370 if (i14) {
42371 i17 = HEAPU16[i11 + (i13 << 1) >> 1] | 0;
42372 } else {
42373 i17 = HEAP32[i10 + (i13 << 2) >> 2] | 0;
42374 }
42375 i18 = Math_imul(HEAP32[i8 >> 2] | 0, i17) | 0;
42376 i19 = i7 + i18 | 0;
42377 if (i9) {
42378 d20 = +HEAPF32[i7 + (i18 + 4) >> 2] * +HEAPF32[i15 >> 2];
42379 d21 = +HEAPF32[i7 + (i18 + 8) >> 2] * +HEAPF32[i16 >> 2];
42380 HEAPF32[i5 + (i13 << 4) >> 2] = +HEAPF32[i19 >> 2] * +HEAPF32[i6 >> 2];
42381 HEAPF32[i5 + (i13 << 4) + 4 >> 2] = d20;
42382 HEAPF32[i5 + (i13 << 4) + 8 >> 2] = d21;
42383 HEAPF32[i5 + (i13 << 4) + 12 >> 2] = 0.0;
42384 } else {
42385 d21 = +HEAPF64[i7 + (i18 + 8) >> 3] * +HEAPF32[i15 >> 2];
42386 d20 = +HEAPF64[i7 + (i18 + 16) >> 3] * +HEAPF32[i16 >> 2];
42387 HEAPF32[i5 + (i13 << 4) >> 2] = +HEAPF64[i19 >> 3] * +HEAPF32[i6 >> 2];
42388 HEAPF32[i5 + (i13 << 4) + 4 >> 2] = d21;
42389 HEAPF32[i5 + (i13 << 4) + 8 >> 2] = d20;
42390 HEAPF32[i5 + (i13 << 4) + 12 >> 2] = 0.0;
42391 }
42392 if ((i13 | 0) > 0) {
42393 i13 = i13 - 1 | 0;
42394 } else {
42395 break;
42396 }
42397 }
42398 i13 = HEAP32[i1 + 8 >> 2] | 0;
42399 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i13 >> 2] | 0) + 8 >> 2] & 127](i13, i5 | 0, i2, i3);
42400 i3 = HEAP32[i12 >> 2] | 0;
42401 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 24 >> 2] & 127](i3, i2);
42402 STACKTOP = i4;
42403 return;
42404 }
42405 function __ZN25btSimulationIslandManager10findUnionsEP12btDispatcherP16btCollisionWorld(i1, i2, i3) {
42406 i1 = i1 | 0;
42407 i2 = i2 | 0;
42408 i3 = i3 | 0;
42409 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
42410 i2 = HEAP32[i3 + 76 >> 2] | 0;
42411 i3 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i2 >> 2] | 0) + 36 >> 2] & 127](i2) | 0;
42412 i2 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0;
42413 i4 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 20 >> 2] & 127](i3) | 0;
42414 if ((i2 | 0) <= 0) {
42415 return;
42416 }
42417 i3 = i1 + 16 | 0;
42418 i1 = 0;
42419 do {
42420 i5 = HEAP32[HEAP32[i4 + (i1 << 4) >> 2] >> 2] | 0;
42421 i6 = HEAP32[HEAP32[i4 + (i1 << 4) + 4 >> 2] >> 2] | 0;
42422 do {
42423 if ((i5 | 0) != 0) {
42424 if ((HEAP32[i5 + 204 >> 2] & 7 | 0) != 0 | (i6 | 0) == 0) {
42425 break;
42426 }
42427 if ((HEAP32[i6 + 204 >> 2] & 7 | 0) != 0) {
42428 break;
42429 }
42430 i7 = HEAP32[i5 + 208 >> 2] | 0;
42431 i8 = HEAP32[i6 + 208 >> 2] | 0;
42432 i9 = HEAP32[i3 >> 2] | 0;
42433 i10 = i9 + (i7 << 3) | 0;
42434 i11 = HEAP32[i10 >> 2] | 0;
42435 if ((i11 | 0) == (i7 | 0)) {
42436 i12 = i7;
42437 } else {
42438 i7 = i10;
42439 i10 = i11;
42440 while (1) {
42441 i11 = i9 + (i10 << 3) | 0;
42442 HEAP32[i7 >> 2] = HEAP32[i11 >> 2];
42443 i13 = HEAP32[i11 >> 2] | 0;
42444 i11 = i9 + (i13 << 3) | 0;
42445 i14 = HEAP32[i11 >> 2] | 0;
42446 if ((i13 | 0) == (i14 | 0)) {
42447 i12 = i13;
42448 break;
42449 } else {
42450 i7 = i11;
42451 i10 = i14;
42452 }
42453 }
42454 }
42455 i10 = i9 + (i8 << 3) | 0;
42456 i7 = HEAP32[i10 >> 2] | 0;
42457 if ((i7 | 0) == (i8 | 0)) {
42458 i15 = i8;
42459 } else {
42460 i14 = i10;
42461 i10 = i7;
42462 while (1) {
42463 i7 = i9 + (i10 << 3) | 0;
42464 HEAP32[i14 >> 2] = HEAP32[i7 >> 2];
42465 i11 = HEAP32[i7 >> 2] | 0;
42466 i7 = i9 + (i11 << 3) | 0;
42467 i13 = HEAP32[i7 >> 2] | 0;
42468 if ((i11 | 0) == (i13 | 0)) {
42469 i15 = i11;
42470 break;
42471 } else {
42472 i14 = i7;
42473 i10 = i13;
42474 }
42475 }
42476 }
42477 if ((i12 | 0) == (i15 | 0)) {
42478 break;
42479 }
42480 HEAP32[i9 + (i12 << 3) >> 2] = i15;
42481 i10 = i9 + (i15 << 3) + 4 | 0;
42482 HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + (HEAP32[i9 + (i12 << 3) + 4 >> 2] | 0);
42483 }
42484 } while (0);
42485 i1 = i1 + 1 | 0;
42486 } while ((i1 | 0) < (i2 | 0));
42487 return;
42488 }
42489 function __ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii(i1, i2, i3) {
42490 i1 = i1 | 0;
42491 i2 = i2 | 0;
42492 i3 = i3 | 0;
42493 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, d20 = 0.0, d21 = 0.0;
42494 i4 = STACKTOP;
42495 STACKTOP = STACKTOP + 112 | 0;
42496 i5 = i4 | 0;
42497 i6 = i4 + 48 | 0;
42498 i7 = i4 + 64 | 0;
42499 i8 = i4 + 72 | 0;
42500 i9 = i4 + 80 | 0;
42501 i10 = i4 + 88 | 0;
42502 i11 = i4 + 104 | 0;
42503 i12 = i1 + 4 | 0;
42504 i13 = HEAP32[i12 >> 2] | 0;
42505 FUNCTION_TABLE_viiiiiiiiii[HEAP32[(HEAP32[i13 >> 2] | 0) + 16 >> 2] & 3](i13, i6, i4 + 56 | 0, i7, i8, i9, i10, i4 + 96 | 0, i11, i2);
42506 i13 = HEAP32[i9 >> 2] | 0;
42507 i9 = i13 + (Math_imul(HEAP32[i10 >> 2] | 0, i3) | 0) | 0;
42508 i10 = i9;
42509 i13 = HEAP32[i12 >> 2] | 0;
42510 i14 = (HEAP32[i11 >> 2] | 0) == 3;
42511 i11 = i9;
42512 i9 = (HEAP32[i7 >> 2] | 0) == 0;
42513 i7 = HEAP32[i6 >> 2] | 0;
42514 i6 = i13 + 4 | 0;
42515 i15 = i13 + 8 | 0;
42516 i16 = i13 + 12 | 0;
42517 i13 = 2;
42518 while (1) {
42519 if (i14) {
42520 i17 = HEAPU16[i11 + (i13 << 1) >> 1] | 0;
42521 } else {
42522 i17 = HEAP32[i10 + (i13 << 2) >> 2] | 0;
42523 }
42524 i18 = Math_imul(HEAP32[i8 >> 2] | 0, i17) | 0;
42525 i19 = i7 + i18 | 0;
42526 if (i9) {
42527 d20 = +HEAPF32[i7 + (i18 + 4) >> 2] * +HEAPF32[i15 >> 2];
42528 d21 = +HEAPF32[i7 + (i18 + 8) >> 2] * +HEAPF32[i16 >> 2];
42529 HEAPF32[i5 + (i13 << 4) >> 2] = +HEAPF32[i19 >> 2] * +HEAPF32[i6 >> 2];
42530 HEAPF32[i5 + (i13 << 4) + 4 >> 2] = d20;
42531 HEAPF32[i5 + (i13 << 4) + 8 >> 2] = d21;
42532 HEAPF32[i5 + (i13 << 4) + 12 >> 2] = 0.0;
42533 } else {
42534 d21 = +HEAPF64[i7 + (i18 + 8) >> 3] * +HEAPF32[i15 >> 2];
42535 d20 = +HEAPF64[i7 + (i18 + 16) >> 3] * +HEAPF32[i16 >> 2];
42536 HEAPF32[i5 + (i13 << 4) >> 2] = +HEAPF64[i19 >> 3] * +HEAPF32[i6 >> 2];
42537 HEAPF32[i5 + (i13 << 4) + 4 >> 2] = d21;
42538 HEAPF32[i5 + (i13 << 4) + 8 >> 2] = d20;
42539 HEAPF32[i5 + (i13 << 4) + 12 >> 2] = 0.0;
42540 }
42541 if ((i13 | 0) > 0) {
42542 i13 = i13 - 1 | 0;
42543 } else {
42544 break;
42545 }
42546 }
42547 i13 = HEAP32[i1 + 8 >> 2] | 0;
42548 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i13 >> 2] | 0) + 8 >> 2] & 127](i13, i5 | 0, i2, i3);
42549 i3 = HEAP32[i12 >> 2] | 0;
42550 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 24 >> 2] & 127](i3, i2);
42551 STACKTOP = i4;
42552 return;
42553 }
42554 function __ZNK11btMatrix3x311getRotationER12btQuaternion(i1, i2) {
42555 i1 = i1 | 0;
42556 i2 = i2 | 0;
42557 var i3 = 0, i4 = 0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0;
42558 i3 = STACKTOP;
42559 STACKTOP = STACKTOP + 16 | 0;
42560 i4 = i3 | 0;
42561 d5 = +HEAPF32[i1 >> 2];
42562 d6 = +HEAPF32[i1 + 20 >> 2];
42563 d7 = +HEAPF32[i1 + 40 >> 2];
42564 d8 = d5 + d6 + d7;
42565 if (d8 > 0.0) {
42566 d9 = +Math_sqrt(+(d8 + 1.0));
42567 d8 = d9 * .5;
42568 HEAPF32[i4 + 12 >> 2] = d8;
42569 d10 = .5 / d9;
42570 d9 = d10 * (+HEAPF32[i1 + 36 >> 2] - +HEAPF32[i1 + 24 >> 2]);
42571 HEAPF32[i4 >> 2] = d9;
42572 d11 = d10 * (+HEAPF32[i1 + 8 >> 2] - +HEAPF32[i1 + 32 >> 2]);
42573 HEAPF32[i4 + 4 >> 2] = d11;
42574 d12 = d10 * (+HEAPF32[i1 + 16 >> 2] - +HEAPF32[i1 + 4 >> 2]);
42575 HEAPF32[i4 + 8 >> 2] = d12;
42576 d13 = d9;
42577 d14 = d11;
42578 d15 = d12;
42579 d16 = d8;
42580 i17 = i2 | 0;
42581 HEAPF32[i17 >> 2] = d13;
42582 i18 = i2 + 4 | 0;
42583 HEAPF32[i18 >> 2] = d14;
42584 i19 = i2 + 8 | 0;
42585 HEAPF32[i19 >> 2] = d15;
42586 i20 = i2 + 12 | 0;
42587 HEAPF32[i20 >> 2] = d16;
42588 STACKTOP = i3;
42589 return;
42590 }
42591 if (d5 < d6) {
42592 i21 = d6 < d7 ? 2 : 1;
42593 } else {
42594 i21 = d5 < d7 ? 2 : 0;
42595 }
42596 i22 = ((i21 + 1 | 0) >>> 0) % 3 | 0;
42597 i23 = ((i21 + 2 | 0) >>> 0) % 3 | 0;
42598 d7 = +Math_sqrt(+(+HEAPF32[i1 + (i21 << 4) + (i21 << 2) >> 2] - +HEAPF32[i1 + (i22 << 4) + (i22 << 2) >> 2] - +HEAPF32[i1 + (i23 << 4) + (i23 << 2) >> 2] + 1.0));
42599 HEAPF32[i4 + (i21 << 2) >> 2] = d7 * .5;
42600 d5 = .5 / d7;
42601 i24 = i4 + 12 | 0;
42602 HEAPF32[i24 >> 2] = d5 * (+HEAPF32[i1 + (i23 << 4) + (i22 << 2) >> 2] - +HEAPF32[i1 + (i22 << 4) + (i23 << 2) >> 2]);
42603 HEAPF32[i4 + (i22 << 2) >> 2] = d5 * (+HEAPF32[i1 + (i22 << 4) + (i21 << 2) >> 2] + +HEAPF32[i1 + (i21 << 4) + (i22 << 2) >> 2]);
42604 HEAPF32[i4 + (i23 << 2) >> 2] = d5 * (+HEAPF32[i1 + (i23 << 4) + (i21 << 2) >> 2] + +HEAPF32[i1 + (i21 << 4) + (i23 << 2) >> 2]);
42605 d13 = +HEAPF32[i4 >> 2];
42606 d14 = +HEAPF32[i4 + 4 >> 2];
42607 d15 = +HEAPF32[i4 + 8 >> 2];
42608 d16 = +HEAPF32[i24 >> 2];
42609 i17 = i2 | 0;
42610 HEAPF32[i17 >> 2] = d13;
42611 i18 = i2 + 4 | 0;
42612 HEAPF32[i18 >> 2] = d14;
42613 i19 = i2 + 8 | 0;
42614 HEAPF32[i19 >> 2] = d15;
42615 i20 = i2 + 12 | 0;
42616 HEAPF32[i20 >> 2] = d16;
42617 STACKTOP = i3;
42618 return;
42619 }
42620 function __ZN24btConvexTriangleCallback15processTriangleEP9btVector3ii(i1, i2, i3, i4) {
42621 i1 = i1 | 0;
42622 i2 = i2 | 0;
42623 i3 = i3 | 0;
42624 i4 = i4 | 0;
42625 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
42626 i5 = STACKTOP;
42627 STACKTOP = STACKTOP + 104 | 0;
42628 i6 = i5 | 0;
42629 i7 = HEAP32[i1 + 48 >> 2] | 0;
42630 i8 = i1 + 8 | 0;
42631 i9 = i1 + 4 | 0;
42632 if ((HEAP32[(HEAP32[(HEAP32[i9 >> 2] | 0) + 192 >> 2] | 0) + 4 >> 2] | 0) >= 20) {
42633 STACKTOP = i5;
42634 return;
42635 }
42636 i10 = HEAP32[i8 >> 2] | 0;
42637 i11 = i6 | 0;
42638 __ZN23btPolyhedralConvexShapeC2Ev(i11);
42639 HEAP32[i6 >> 2] = 4560;
42640 HEAP32[i6 + 4 >> 2] = 1;
42641 i12 = i6 + 56 | 0;
42642 i13 = i2;
42643 HEAP32[i12 >> 2] = HEAP32[i13 >> 2];
42644 HEAP32[i12 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
42645 HEAP32[i12 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
42646 HEAP32[i12 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
42647 i13 = i6 + 72 | 0;
42648 i12 = i2 + 16 | 0;
42649 HEAP32[i13 >> 2] = HEAP32[i12 >> 2];
42650 HEAP32[i13 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
42651 HEAP32[i13 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
42652 HEAP32[i13 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
42653 i12 = i6 + 88 | 0;
42654 i13 = i2 + 32 | 0;
42655 HEAP32[i12 >> 2] = HEAP32[i13 >> 2];
42656 HEAP32[i12 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
42657 HEAP32[i12 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
42658 HEAP32[i12 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
42659 HEAPF32[i6 + 44 >> 2] = +HEAPF32[i1 + 56 >> 2];
42660 i13 = i10 + 192 | 0;
42661 i10 = HEAP32[i13 >> 2] | 0;
42662 HEAP32[i13 >> 2] = i6;
42663 i6 = FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 8 >> 2] & 31](i7, HEAP32[i9 >> 2] | 0, HEAP32[i8 >> 2] | 0, HEAP32[i1 + 64 >> 2] | 0) | 0;
42664 i12 = i1 + 44 | 0;
42665 i2 = HEAP32[i12 >> 2] | 0;
42666 i14 = HEAP32[i2 >> 2] | 0;
42667 if ((HEAP32[i2 + 136 >> 2] | 0) == (HEAP32[i8 >> 2] | 0)) {
42668 FUNCTION_TABLE_viii[HEAP32[i14 + 8 >> 2] & 127](i2, i3, i4);
42669 } else {
42670 FUNCTION_TABLE_viii[HEAP32[i14 + 12 >> 2] & 127](i2, i3, i4);
42671 }
42672 FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] & 63](i6, HEAP32[i9 >> 2] | 0, HEAP32[i8 >> 2] | 0, HEAP32[i1 + 52 >> 2] | 0, HEAP32[i12 >> 2] | 0);
42673 FUNCTION_TABLE_vi[HEAP32[HEAP32[i6 >> 2] >> 2] & 511](i6);
42674 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i7 >> 2] | 0) + 60 >> 2] & 127](i7, i6);
42675 HEAP32[i13 >> 2] = i10;
42676 __ZN23btPolyhedralConvexShapeD2Ev(i11);
42677 STACKTOP = i5;
42678 return;
42679 }
42680 function __ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(i1, i2, i3) {
42681 i1 = i1 | 0;
42682 i2 = i2 | 0;
42683 i3 = i3 | 0;
42684 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
42685 i4 = (HEAP8[i1 + 28 | 0] | 0) != 0;
42686 i5 = i4 ? i3 : i2;
42687 i6 = i4 ? i2 : i3;
42688 i3 = i5 + 192 | 0;
42689 i2 = HEAP32[i3 >> 2] | 0;
42690 i4 = HEAP32[i2 + 16 >> 2] | 0;
42691 i7 = i1 + 12 | 0;
42692 i8 = HEAP32[i7 >> 2] | 0;
42693 if ((i8 | 0) < (i4 | 0)) {
42694 i9 = i1 + 16 | 0;
42695 if ((HEAP32[i9 >> 2] | 0) < (i4 | 0)) {
42696 if ((i4 | 0) == 0) {
42697 i10 = 0;
42698 i11 = i8;
42699 } else {
42700 i12 = __Z22btAlignedAllocInternalji(i4 << 2, 16) | 0;
42701 i10 = i12;
42702 i11 = HEAP32[i7 >> 2] | 0;
42703 }
42704 i12 = i1 + 20 | 0;
42705 if ((i11 | 0) > 0) {
42706 i13 = 0;
42707 do {
42708 i14 = i10 + (i13 << 2) | 0;
42709 if ((i14 | 0) != 0) {
42710 HEAP32[i14 >> 2] = HEAP32[(HEAP32[i12 >> 2] | 0) + (i13 << 2) >> 2];
42711 }
42712 i13 = i13 + 1 | 0;
42713 } while ((i13 | 0) < (i11 | 0));
42714 }
42715 i11 = HEAP32[i12 >> 2] | 0;
42716 i13 = i1 + 24 | 0;
42717 if ((i11 | 0) != 0) {
42718 if ((HEAP8[i13] | 0) != 0) {
42719 __Z21btAlignedFreeInternalPv(i11);
42720 }
42721 HEAP32[i12 >> 2] = 0;
42722 }
42723 HEAP8[i13] = 1;
42724 HEAP32[i12 >> 2] = i10;
42725 HEAP32[i9 >> 2] = i4;
42726 i15 = i12;
42727 } else {
42728 i15 = i1 + 20 | 0;
42729 }
42730 i12 = i8;
42731 do {
42732 i8 = (HEAP32[i15 >> 2] | 0) + (i12 << 2) | 0;
42733 if ((i8 | 0) != 0) {
42734 HEAP32[i8 >> 2] = 0;
42735 }
42736 i12 = i12 + 1 | 0;
42737 } while ((i12 | 0) < (i4 | 0));
42738 }
42739 HEAP32[i7 >> 2] = i4;
42740 if ((i4 | 0) <= 0) {
42741 return;
42742 }
42743 i7 = i2 + 64 | 0;
42744 i12 = i2 + 24 | 0;
42745 i2 = i1 + 4 | 0;
42746 i15 = i1 + 32 | 0;
42747 i8 = i1 + 20 | 0;
42748 i1 = 0;
42749 do {
42750 if ((HEAP32[i7 >> 2] | 0) == 0) {
42751 i9 = HEAP32[i3 >> 2] | 0;
42752 HEAP32[i3 >> 2] = HEAP32[(HEAP32[i12 >> 2] | 0) + (i1 * 80 | 0) + 64 >> 2];
42753 i10 = HEAP32[i2 >> 2] | 0;
42754 i13 = FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[i10 >> 2] | 0) + 8 >> 2] & 31](i10, i5, i6, HEAP32[i15 >> 2] | 0) | 0;
42755 HEAP32[(HEAP32[i8 >> 2] | 0) + (i1 << 2) >> 2] = i13;
42756 HEAP32[i3 >> 2] = i9;
42757 } else {
42758 HEAP32[(HEAP32[i8 >> 2] | 0) + (i1 << 2) >> 2] = 0;
42759 }
42760 i1 = i1 + 1 | 0;
42761 } while ((i1 | 0) < (i4 | 0));
42762 return;
42763 }
42764 function __ZN35btSequentialImpulseConstraintSolver45solveGroupCacheFriendlySplitImpulseIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10) {
42765 i1 = i1 | 0;
42766 i2 = i2 | 0;
42767 i3 = i3 | 0;
42768 i4 = i4 | 0;
42769 i5 = i5 | 0;
42770 i6 = i6 | 0;
42771 i7 = i7 | 0;
42772 i8 = i8 | 0;
42773 i9 = i9 | 0;
42774 i10 = i10 | 0;
42775 var i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
42776 if ((HEAP32[i8 + 44 >> 2] | 0) == 0) {
42777 return;
42778 }
42779 i10 = i8 + 20 | 0;
42780 i9 = HEAP32[i10 >> 2] | 0;
42781 i7 = (i9 | 0) > 0;
42782 if ((HEAP32[i8 + 60 >> 2] & 256 | 0) == 0) {
42783 if (!i7) {
42784 return;
42785 }
42786 i8 = i1 + 8 | 0;
42787 i6 = i1 + 76 | 0;
42788 i5 = i1 + 16 | 0;
42789 i4 = 1;
42790 i3 = i9;
42791 while (1) {
42792 i2 = HEAP32[i8 >> 2] | 0;
42793 if ((i2 | 0) > 0) {
42794 i11 = 0;
42795 do {
42796 i12 = HEAP32[(HEAP32[i6 >> 2] | 0) + (i11 << 2) >> 2] | 0;
42797 i13 = HEAP32[i5 >> 2] | 0;
42798 __ZN35btSequentialImpulseConstraintSolver43resolveSplitPenetrationImpulseCacheFriendlyER11btRigidBodyS1_RK18btSolverConstraint(0, HEAP32[i13 + (i12 * 136 | 0) + 104 >> 2] | 0, HEAP32[i13 + (i12 * 136 | 0) + 108 >> 2] | 0, i13 + (i12 * 136 | 0) | 0);
42799 i11 = i11 + 1 | 0;
42800 } while ((i11 | 0) < (i2 | 0));
42801 i14 = HEAP32[i10 >> 2] | 0;
42802 } else {
42803 i14 = i3;
42804 }
42805 if ((i4 | 0) >= (i14 | 0)) {
42806 break;
42807 }
42808 i4 = i4 + 1 | 0;
42809 i3 = i14;
42810 }
42811 return;
42812 } else {
42813 if (!i7) {
42814 return;
42815 }
42816 i7 = i1 + 8 | 0;
42817 i14 = i1 + 76 | 0;
42818 i3 = i1 + 16 | 0;
42819 i1 = 1;
42820 i4 = i9;
42821 while (1) {
42822 i9 = HEAP32[i7 >> 2] | 0;
42823 if ((i9 | 0) > 0) {
42824 i5 = 0;
42825 do {
42826 i6 = HEAP32[(HEAP32[i14 >> 2] | 0) + (i5 << 2) >> 2] | 0;
42827 i8 = HEAP32[i3 >> 2] | 0;
42828 __ZN35btSequentialImpulseConstraintSolver43resolveSplitPenetrationImpulseCacheFriendlyER11btRigidBodyS1_RK18btSolverConstraint(0, HEAP32[i8 + (i6 * 136 | 0) + 104 >> 2] | 0, HEAP32[i8 + (i6 * 136 | 0) + 108 >> 2] | 0, i8 + (i6 * 136 | 0) | 0);
42829 i5 = i5 + 1 | 0;
42830 } while ((i5 | 0) < (i9 | 0));
42831 i15 = HEAP32[i10 >> 2] | 0;
42832 } else {
42833 i15 = i4;
42834 }
42835 if ((i1 | 0) >= (i15 | 0)) {
42836 break;
42837 }
42838 i1 = i1 + 1 | 0;
42839 i4 = i15;
42840 }
42841 return;
42842 }
42843 }
42844 function __ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody(i1, i2) {
42845 i1 = i1 | 0;
42846 i2 = i2 | 0;
42847 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
42848 i3 = i2 | 0;
42849 i4 = i2 + 204 | 0;
42850 do {
42851 if ((HEAP32[i4 >> 2] & 3 | 0) == 0) {
42852 if ((HEAP32[i2 + 496 >> 2] & 1 | 0) != 0) {
42853 break;
42854 }
42855 __ZN11btRigidBody10setGravityERK9btVector3(i2, i1 + 220 | 0);
42856 }
42857 } while (0);
42858 if ((HEAP32[i2 + 192 >> 2] | 0) == 0) {
42859 return;
42860 }
42861 if ((HEAP32[i4 >> 2] & 1 | 0) == 0) {
42862 i5 = i1 + 204 | 0;
42863 i6 = HEAP32[i5 >> 2] | 0;
42864 i7 = i1 + 208 | 0;
42865 do {
42866 if ((i6 | 0) == (HEAP32[i7 >> 2] | 0)) {
42867 i8 = (i6 | 0) == 0 ? 1 : i6 << 1;
42868 if ((i6 | 0) >= (i8 | 0)) {
42869 i9 = i6;
42870 break;
42871 }
42872 if ((i8 | 0) == 0) {
42873 i10 = 0;
42874 i11 = i6;
42875 } else {
42876 i12 = __Z22btAlignedAllocInternalji(i8 << 2, 16) | 0;
42877 i10 = i12;
42878 i11 = HEAP32[i5 >> 2] | 0;
42879 }
42880 i12 = i1 + 212 | 0;
42881 if ((i11 | 0) > 0) {
42882 i13 = 0;
42883 do {
42884 i14 = i10 + (i13 << 2) | 0;
42885 if ((i14 | 0) != 0) {
42886 HEAP32[i14 >> 2] = HEAP32[(HEAP32[i12 >> 2] | 0) + (i13 << 2) >> 2];
42887 }
42888 i13 = i13 + 1 | 0;
42889 } while ((i13 | 0) < (i11 | 0));
42890 }
42891 i13 = HEAP32[i12 >> 2] | 0;
42892 i14 = i1 + 216 | 0;
42893 if ((i13 | 0) == 0) {
42894 i15 = i11;
42895 } else {
42896 if ((HEAP8[i14] | 0) == 0) {
42897 i16 = i11;
42898 } else {
42899 __Z21btAlignedFreeInternalPv(i13);
42900 i16 = HEAP32[i5 >> 2] | 0;
42901 }
42902 HEAP32[i12 >> 2] = 0;
42903 i15 = i16;
42904 }
42905 HEAP8[i14] = 1;
42906 HEAP32[i12 >> 2] = i10;
42907 HEAP32[i7 >> 2] = i8;
42908 i9 = i15;
42909 } else {
42910 i9 = i6;
42911 }
42912 } while (0);
42913 i6 = (HEAP32[i1 + 212 >> 2] | 0) + (i9 << 2) | 0;
42914 if ((i6 | 0) != 0) {
42915 HEAP32[i6 >> 2] = i2;
42916 }
42917 HEAP32[i5 >> 2] = i9 + 1;
42918 } else {
42919 __ZN17btCollisionObject18setActivationStateEi(i3, 2);
42920 }
42921 i9 = HEAP32[i4 >> 2] | 0;
42922 if ((i9 & 1 | 0) == 0) {
42923 i17 = (i9 & 2 | 0) == 0;
42924 } else {
42925 i17 = 0;
42926 }
42927 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 32 >> 2] & 127](i1, i3, i17 ? 1 : 2, i17 ? -1 : -3);
42928 return;
42929 }
42930 function __ZN23btDiscreteDynamicsWorld14debugDrawWorldEv(i1) {
42931 i1 = i1 | 0;
42932 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
42933 __ZN15CProfileManager13Start_ProfileEPKc(1112);
42934 i2 = i1 | 0;
42935 __ZN16btCollisionWorld14debugDrawWorldEv(i2);
42936 i3 = i1;
42937 L167 : do {
42938 if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i2) | 0) != 0) {
42939 i4 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i2) | 0;
42940 if (((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i4 >> 2] | 0) + 48 >> 2] & 127](i4) | 0) & 6144 | 0) == 0) {
42941 break;
42942 }
42943 i4 = i1;
42944 i5 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 100 >> 2] & 127](i1) | 0;
42945 while (1) {
42946 i6 = i5 - 1 | 0;
42947 if ((i5 | 0) <= 0) {
42948 break L167;
42949 }
42950 __ZN23btDiscreteDynamicsWorld19debugDrawConstraintEP17btTypedConstraint(i1, FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 104 >> 2] & 63](i1, i6) | 0);
42951 i5 = i6;
42952 }
42953 }
42954 } while (0);
42955 if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i2) | 0) == 0) {
42956 __ZN15CProfileManager12Stop_ProfileEv();
42957 return;
42958 }
42959 i5 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i2) | 0;
42960 if (((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i5 >> 2] | 0) + 48 >> 2] & 127](i5) | 0) & 3 | 0) == 0) {
42961 __ZN15CProfileManager12Stop_ProfileEv();
42962 return;
42963 }
42964 if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i2) | 0) == 0) {
42965 __ZN15CProfileManager12Stop_ProfileEv();
42966 return;
42967 }
42968 i5 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i2) | 0;
42969 if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i5 >> 2] | 0) + 48 >> 2] & 127](i5) | 0) == 0) {
42970 __ZN15CProfileManager12Stop_ProfileEv();
42971 return;
42972 }
42973 i5 = i1 + 248 | 0;
42974 if ((HEAP32[i5 >> 2] | 0) <= 0) {
42975 __ZN15CProfileManager12Stop_ProfileEv();
42976 return;
42977 }
42978 i2 = i1 + 256 | 0;
42979 i3 = i1 + 80 | 0;
42980 i1 = 0;
42981 do {
42982 i4 = HEAP32[(HEAP32[i2 >> 2] | 0) + (i1 << 2) >> 2] | 0;
42983 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] & 127](i4, HEAP32[i3 >> 2] | 0);
42984 i1 = i1 + 1 | 0;
42985 } while ((i1 | 0) < (HEAP32[i5 >> 2] | 0));
42986 __ZN15CProfileManager12Stop_ProfileEv();
42987 return;
42988 }
42989 function __ZNK20btDefaultMotionState17getWorldTransformER11btTransform(i1, i2) {
42990 i1 = i1 | 0;
42991 i2 = i2 | 0;
42992 var d3 = 0.0, d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0;
42993 d3 = +HEAPF32[i1 + 68 >> 2];
42994 d4 = +HEAPF32[i1 + 84 >> 2];
42995 d5 = +HEAPF32[i1 + 100 >> 2];
42996 d6 = +HEAPF32[i1 + 72 >> 2];
42997 d7 = +HEAPF32[i1 + 88 >> 2];
42998 d8 = +HEAPF32[i1 + 104 >> 2];
42999 d9 = +HEAPF32[i1 + 76 >> 2];
43000 d10 = +HEAPF32[i1 + 92 >> 2];
43001 d11 = +HEAPF32[i1 + 108 >> 2];
43002 d12 = -0.0 - +HEAPF32[i1 + 116 >> 2];
43003 d13 = -0.0 - +HEAPF32[i1 + 120 >> 2];
43004 d14 = -0.0 - +HEAPF32[i1 + 124 >> 2];
43005 d15 = +HEAPF32[i1 + 4 >> 2];
43006 d16 = +HEAPF32[i1 + 20 >> 2];
43007 d17 = +HEAPF32[i1 + 36 >> 2];
43008 d18 = +HEAPF32[i1 + 8 >> 2];
43009 d19 = +HEAPF32[i1 + 24 >> 2];
43010 d20 = +HEAPF32[i1 + 40 >> 2];
43011 d21 = +HEAPF32[i1 + 12 >> 2];
43012 d22 = +HEAPF32[i1 + 28 >> 2];
43013 d23 = +HEAPF32[i1 + 44 >> 2];
43014 d24 = +HEAPF32[i1 + 52 >> 2];
43015 d25 = +HEAPF32[i1 + 56 >> 2];
43016 d26 = +HEAPF32[i1 + 60 >> 2];
43017 HEAPF32[i2 >> 2] = d3 * d15 + d4 * d16 + d5 * d17;
43018 HEAPF32[i2 + 4 >> 2] = d3 * d18 + d4 * d19 + d5 * d20;
43019 HEAPF32[i2 + 8 >> 2] = d3 * d21 + d4 * d22 + d5 * d23;
43020 HEAPF32[i2 + 12 >> 2] = 0.0;
43021 HEAPF32[i2 + 16 >> 2] = d6 * d15 + d7 * d16 + d8 * d17;
43022 HEAPF32[i2 + 20 >> 2] = d6 * d18 + d7 * d19 + d8 * d20;
43023 HEAPF32[i2 + 24 >> 2] = d6 * d21 + d7 * d22 + d8 * d23;
43024 HEAPF32[i2 + 28 >> 2] = 0.0;
43025 HEAPF32[i2 + 32 >> 2] = d9 * d15 + d10 * d16 + d11 * d17;
43026 HEAPF32[i2 + 36 >> 2] = d9 * d18 + d10 * d19 + d11 * d20;
43027 HEAPF32[i2 + 40 >> 2] = d9 * d21 + d10 * d22 + d11 * d23;
43028 HEAPF32[i2 + 44 >> 2] = 0.0;
43029 HEAPF32[i2 + 48 >> 2] = d3 * d12 + d4 * d13 + d5 * d14 + (d3 * d24 + d4 * d25 + d5 * d26);
43030 HEAPF32[i2 + 52 >> 2] = d6 * d12 + d7 * d13 + d8 * d14 + (d6 * d24 + d7 * d25 + d8 * d26);
43031 HEAPF32[i2 + 56 >> 2] = d9 * d12 + d10 * d13 + d11 * d14 + (d9 * d24 + d10 * d25 + d11 * d26);
43032 HEAPF32[i2 + 60 >> 2] = 0.0;
43033 return;
43034 }
43035 function __ZNK16btDbvtBroadphase17getBroadphaseAabbER9btVector3S1_(i1, i2, i3) {
43036 i1 = i1 | 0;
43037 i2 = i2 | 0;
43038 i3 = i3 | 0;
43039 var i4 = 0, i5 = 0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0;
43040 i4 = HEAP32[i1 + 4 >> 2] | 0;
43041 i5 = HEAP32[i1 + 44 >> 2] | 0;
43042 i1 = (i5 | 0) == 0;
43043 do {
43044 if ((i4 | 0) == 0) {
43045 if (i1) {
43046 d6 = 0.0;
43047 d7 = 0.0;
43048 d8 = 0.0;
43049 d9 = 0.0;
43050 d10 = 0.0;
43051 d11 = 0.0;
43052 d12 = 0.0;
43053 d13 = 0.0;
43054 break;
43055 }
43056 d6 = +HEAPF32[i5 >> 2];
43057 d7 = +HEAPF32[i5 + 4 >> 2];
43058 d8 = +HEAPF32[i5 + 8 >> 2];
43059 d9 = +HEAPF32[i5 + 12 >> 2];
43060 d10 = +HEAPF32[i5 + 16 >> 2];
43061 d11 = +HEAPF32[i5 + 20 >> 2];
43062 d12 = +HEAPF32[i5 + 24 >> 2];
43063 d13 = +HEAPF32[i5 + 28 >> 2];
43064 } else {
43065 d14 = +HEAPF32[i4 >> 2];
43066 if (i1) {
43067 d6 = d14;
43068 d7 = +HEAPF32[i4 + 4 >> 2];
43069 d8 = +HEAPF32[i4 + 8 >> 2];
43070 d9 = +HEAPF32[i4 + 12 >> 2];
43071 d10 = +HEAPF32[i4 + 16 >> 2];
43072 d11 = +HEAPF32[i4 + 20 >> 2];
43073 d12 = +HEAPF32[i4 + 24 >> 2];
43074 d13 = +HEAPF32[i4 + 28 >> 2];
43075 break;
43076 } else {
43077 d15 = +HEAPF32[i5 >> 2];
43078 d16 = +HEAPF32[i4 + 16 >> 2];
43079 d17 = +HEAPF32[i5 + 16 >> 2];
43080 d18 = +HEAPF32[i4 + 4 >> 2];
43081 d19 = +HEAPF32[i5 + 4 >> 2];
43082 d20 = +HEAPF32[i4 + 20 >> 2];
43083 d21 = +HEAPF32[i5 + 20 >> 2];
43084 d22 = +HEAPF32[i4 + 8 >> 2];
43085 d23 = +HEAPF32[i5 + 8 >> 2];
43086 d24 = +HEAPF32[i4 + 24 >> 2];
43087 d25 = +HEAPF32[i5 + 24 >> 2];
43088 d6 = d14 < d15 ? d14 : d15;
43089 d7 = d18 < d19 ? d18 : d19;
43090 d8 = d22 < d23 ? d22 : d23;
43091 d9 = 0.0;
43092 d10 = d16 > d17 ? d16 : d17;
43093 d11 = d20 > d21 ? d20 : d21;
43094 d12 = d24 > d25 ? d24 : d25;
43095 d13 = 0.0;
43096 break;
43097 }
43098 }
43099 } while (0);
43100 HEAPF32[i2 >> 2] = d6;
43101 HEAPF32[i2 + 4 >> 2] = d7;
43102 HEAPF32[i2 + 8 >> 2] = d8;
43103 HEAPF32[i2 + 12 >> 2] = d9;
43104 HEAPF32[i3 >> 2] = d10;
43105 HEAPF32[i3 + 4 >> 2] = d11;
43106 HEAPF32[i3 + 8 >> 2] = d12;
43107 HEAPF32[i3 + 12 >> 2] = d13;
43108 return;
43109 }
43110 function __ZN35btSequentialImpulseConstraintSolverD2Ev(i1) {
43111 i1 = i1 | 0;
43112 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
43113 HEAP32[i1 >> 2] = 2368;
43114 i2 = i1 + 108 | 0;
43115 i3 = i1 + 116 | 0;
43116 i4 = HEAP32[i3 >> 2] | 0;
43117 i5 = i1 + 120 | 0;
43118 if ((i4 | 0) != 0) {
43119 if ((HEAP8[i5] | 0) != 0) {
43120 __Z21btAlignedFreeInternalPv(i4);
43121 }
43122 HEAP32[i3 >> 2] = 0;
43123 }
43124 HEAP8[i5] = 1;
43125 HEAP32[i3 >> 2] = 0;
43126 HEAP32[i2 >> 2] = 0;
43127 HEAP32[i1 + 112 >> 2] = 0;
43128 i2 = i1 + 88 | 0;
43129 i3 = i1 + 96 | 0;
43130 i5 = HEAP32[i3 >> 2] | 0;
43131 i4 = i1 + 100 | 0;
43132 if ((i5 | 0) != 0) {
43133 if ((HEAP8[i4] | 0) != 0) {
43134 __Z21btAlignedFreeInternalPv(i5);
43135 }
43136 HEAP32[i3 >> 2] = 0;
43137 }
43138 HEAP8[i4] = 1;
43139 HEAP32[i3 >> 2] = 0;
43140 HEAP32[i2 >> 2] = 0;
43141 HEAP32[i1 + 92 >> 2] = 0;
43142 i2 = i1 + 68 | 0;
43143 i3 = i1 + 76 | 0;
43144 i4 = HEAP32[i3 >> 2] | 0;
43145 i5 = i1 + 80 | 0;
43146 if ((i4 | 0) != 0) {
43147 if ((HEAP8[i5] | 0) != 0) {
43148 __Z21btAlignedFreeInternalPv(i4);
43149 }
43150 HEAP32[i3 >> 2] = 0;
43151 }
43152 HEAP8[i5] = 1;
43153 HEAP32[i3 >> 2] = 0;
43154 HEAP32[i2 >> 2] = 0;
43155 HEAP32[i1 + 72 >> 2] = 0;
43156 i2 = i1 + 48 | 0;
43157 i3 = i1 + 56 | 0;
43158 i5 = HEAP32[i3 >> 2] | 0;
43159 i4 = i1 + 60 | 0;
43160 if ((i5 | 0) != 0) {
43161 if ((HEAP8[i4] | 0) != 0) {
43162 __Z21btAlignedFreeInternalPv(i5);
43163 }
43164 HEAP32[i3 >> 2] = 0;
43165 }
43166 HEAP8[i4] = 1;
43167 HEAP32[i3 >> 2] = 0;
43168 HEAP32[i2 >> 2] = 0;
43169 HEAP32[i1 + 52 >> 2] = 0;
43170 i2 = i1 + 28 | 0;
43171 i3 = i1 + 36 | 0;
43172 i4 = HEAP32[i3 >> 2] | 0;
43173 i5 = i1 + 40 | 0;
43174 if ((i4 | 0) != 0) {
43175 if ((HEAP8[i5] | 0) != 0) {
43176 __Z21btAlignedFreeInternalPv(i4);
43177 }
43178 HEAP32[i3 >> 2] = 0;
43179 }
43180 HEAP8[i5] = 1;
43181 HEAP32[i3 >> 2] = 0;
43182 HEAP32[i2 >> 2] = 0;
43183 HEAP32[i1 + 32 >> 2] = 0;
43184 i2 = i1 + 8 | 0;
43185 i3 = i1 + 16 | 0;
43186 i5 = HEAP32[i3 >> 2] | 0;
43187 i4 = i1 + 20 | 0;
43188 if ((i5 | 0) == 0) {
43189 HEAP8[i4] = 1;
43190 HEAP32[i3 >> 2] = 0;
43191 HEAP32[i2 >> 2] = 0;
43192 i6 = i1 + 12 | 0;
43193 HEAP32[i6 >> 2] = 0;
43194 return;
43195 }
43196 if ((HEAP8[i4] | 0) != 0) {
43197 __Z21btAlignedFreeInternalPv(i5);
43198 }
43199 HEAP32[i3 >> 2] = 0;
43200 HEAP8[i4] = 1;
43201 HEAP32[i3 >> 2] = 0;
43202 HEAP32[i2 >> 2] = 0;
43203 i6 = i1 + 12 | 0;
43204 HEAP32[i6 >> 2] = 0;
43205 return;
43206 }
43207 function __ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBodyss(i1, i2, i3, i4) {
43208 i1 = i1 | 0;
43209 i2 = i2 | 0;
43210 i3 = i3 | 0;
43211 i4 = i4 | 0;
43212 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
43213 i5 = i2 | 0;
43214 i6 = i2 + 204 | 0;
43215 do {
43216 if ((HEAP32[i6 >> 2] & 3 | 0) == 0) {
43217 if ((HEAP32[i2 + 496 >> 2] & 1 | 0) != 0) {
43218 break;
43219 }
43220 __ZN11btRigidBody10setGravityERK9btVector3(i2, i1 + 220 | 0);
43221 }
43222 } while (0);
43223 if ((HEAP32[i2 + 192 >> 2] | 0) == 0) {
43224 return;
43225 }
43226 if ((HEAP32[i6 >> 2] & 1 | 0) == 0) {
43227 i6 = i1 + 204 | 0;
43228 i7 = HEAP32[i6 >> 2] | 0;
43229 i8 = i1 + 208 | 0;
43230 do {
43231 if ((i7 | 0) == (HEAP32[i8 >> 2] | 0)) {
43232 i9 = (i7 | 0) == 0 ? 1 : i7 << 1;
43233 if ((i7 | 0) >= (i9 | 0)) {
43234 i10 = i7;
43235 break;
43236 }
43237 if ((i9 | 0) == 0) {
43238 i11 = 0;
43239 i12 = i7;
43240 } else {
43241 i13 = __Z22btAlignedAllocInternalji(i9 << 2, 16) | 0;
43242 i11 = i13;
43243 i12 = HEAP32[i6 >> 2] | 0;
43244 }
43245 i13 = i1 + 212 | 0;
43246 if ((i12 | 0) > 0) {
43247 i14 = 0;
43248 do {
43249 i15 = i11 + (i14 << 2) | 0;
43250 if ((i15 | 0) != 0) {
43251 HEAP32[i15 >> 2] = HEAP32[(HEAP32[i13 >> 2] | 0) + (i14 << 2) >> 2];
43252 }
43253 i14 = i14 + 1 | 0;
43254 } while ((i14 | 0) < (i12 | 0));
43255 }
43256 i14 = HEAP32[i13 >> 2] | 0;
43257 i15 = i1 + 216 | 0;
43258 if ((i14 | 0) == 0) {
43259 i16 = i12;
43260 } else {
43261 if ((HEAP8[i15] | 0) == 0) {
43262 i17 = i12;
43263 } else {
43264 __Z21btAlignedFreeInternalPv(i14);
43265 i17 = HEAP32[i6 >> 2] | 0;
43266 }
43267 HEAP32[i13 >> 2] = 0;
43268 i16 = i17;
43269 }
43270 HEAP8[i15] = 1;
43271 HEAP32[i13 >> 2] = i11;
43272 HEAP32[i8 >> 2] = i9;
43273 i10 = i16;
43274 } else {
43275 i10 = i7;
43276 }
43277 } while (0);
43278 i7 = (HEAP32[i1 + 212 >> 2] | 0) + (i10 << 2) | 0;
43279 if ((i7 | 0) != 0) {
43280 HEAP32[i7 >> 2] = i2;
43281 }
43282 HEAP32[i6 >> 2] = i10 + 1;
43283 } else {
43284 __ZN17btCollisionObject18setActivationStateEi(i5, 2);
43285 }
43286 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 32 >> 2] & 127](i1, i5, i3, i4);
43287 return;
43288 }
43289 function __ZNK13btConvexShape31localGetSupportVertexNonVirtualERK9btVector3(i1, i2, i3) {
43290 i1 = i1 | 0;
43291 i2 = i2 | 0;
43292 i3 = i3 | 0;
43293 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0;
43294 i4 = STACKTOP;
43295 STACKTOP = STACKTOP + 32 | 0;
43296 i5 = i4 | 0;
43297 i6 = i4 + 16 | 0;
43298 i7 = i5;
43299 i8 = i3;
43300 HEAP32[i7 >> 2] = HEAP32[i8 >> 2];
43301 HEAP32[i7 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
43302 HEAP32[i7 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
43303 HEAP32[i7 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
43304 i8 = i5 | 0;
43305 d9 = +HEAPF32[i8 >> 2];
43306 i7 = i5 + 4 | 0;
43307 d10 = +HEAPF32[i7 >> 2];
43308 i3 = i5 + 8 | 0;
43309 d11 = +HEAPF32[i3 >> 2];
43310 if (d9 * d9 + d10 * d10 + d11 * d11 < 1.4210854715202004e-14) {
43311 HEAPF32[i8 >> 2] = -1.0;
43312 HEAPF32[i7 >> 2] = -1.0;
43313 HEAPF32[i3 >> 2] = -1.0;
43314 HEAPF32[i5 + 12 >> 2] = 0.0;
43315 d12 = -1.0;
43316 d13 = -1.0;
43317 d14 = -1.0;
43318 } else {
43319 d12 = d9;
43320 d13 = d10;
43321 d14 = d11;
43322 }
43323 d11 = 1.0 / +Math_sqrt(+(d14 * d14 + (d13 * d13 + d12 * d12)));
43324 HEAPF32[i8 >> 2] = d12 * d11;
43325 HEAPF32[i7 >> 2] = d13 * d11;
43326 HEAPF32[i3 >> 2] = d14 * d11;
43327 __ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i6, i2, i5);
43328 switch (HEAP32[i2 + 4 >> 2] | 0) {
43329 case 0:
43330 {
43331 d15 = +HEAPF32[i2 + 44 >> 2];
43332 break;
43333 }
43334 case 1:
43335 {
43336 d15 = +HEAPF32[i2 + 44 >> 2];
43337 break;
43338 }
43339 case 13:
43340 {
43341 d15 = +HEAPF32[i2 + 44 >> 2];
43342 break;
43343 }
43344 case 10:
43345 {
43346 d15 = +HEAPF32[i2 + 44 >> 2];
43347 break;
43348 }
43349 case 5:
43350 case 4:
43351 {
43352 d15 = +HEAPF32[i2 + 44 >> 2];
43353 break;
43354 }
43355 case 8:
43356 {
43357 d15 = +HEAPF32[i2 + 28 >> 2] * +HEAPF32[i2 + 12 >> 2];
43358 break;
43359 }
43360 default:
43361 {
43362 d15 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i2 >> 2] | 0) + 44 >> 2] & 7](i2);
43363 }
43364 }
43365 d11 = d15 * +HEAPF32[i7 >> 2] + +HEAPF32[i6 + 4 >> 2];
43366 d14 = d15 * +HEAPF32[i3 >> 2] + +HEAPF32[i6 + 8 >> 2];
43367 HEAPF32[i1 >> 2] = d15 * +HEAPF32[i8 >> 2] + +HEAPF32[i6 >> 2];
43368 HEAPF32[i1 + 4 >> 2] = d11;
43369 HEAPF32[i1 + 8 >> 2] = d14;
43370 HEAPF32[i1 + 12 >> 2] = 0.0;
43371 STACKTOP = i4;
43372 return;
43373 }
43374 function __ZN16btManifoldResultC2EP17btCollisionObjectS1_(i1, i2, i3) {
43375 i1 = i1 | 0;
43376 i2 = i2 | 0;
43377 i3 = i3 | 0;
43378 var i4 = 0, i5 = 0;
43379 HEAP32[i1 >> 2] = 4312;
43380 HEAP32[i1 + 4 >> 2] = 0;
43381 HEAP32[i1 + 136 >> 2] = i2;
43382 HEAP32[i1 + 140 >> 2] = i3;
43383 i4 = i1 + 8 | 0;
43384 i5 = i2 + 4 | 0;
43385 _memset(i1 + 144 | 0, -1 | 0, 16);
43386 HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
43387 HEAP32[i4 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
43388 HEAP32[i4 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
43389 HEAP32[i4 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
43390 i5 = i1 + 24 | 0;
43391 i4 = i2 + 20 | 0;
43392 HEAP32[i5 >> 2] = HEAP32[i4 >> 2];
43393 HEAP32[i5 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
43394 HEAP32[i5 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
43395 HEAP32[i5 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
43396 i4 = i1 + 40 | 0;
43397 i5 = i2 + 36 | 0;
43398 HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
43399 HEAP32[i4 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
43400 HEAP32[i4 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
43401 HEAP32[i4 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
43402 i5 = i1 + 56 | 0;
43403 i4 = i2 + 52 | 0;
43404 HEAP32[i5 >> 2] = HEAP32[i4 >> 2];
43405 HEAP32[i5 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
43406 HEAP32[i5 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
43407 HEAP32[i5 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
43408 i4 = i1 + 72 | 0;
43409 i5 = i3 + 4 | 0;
43410 HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
43411 HEAP32[i4 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
43412 HEAP32[i4 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
43413 HEAP32[i4 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
43414 i5 = i1 + 88 | 0;
43415 i4 = i3 + 20 | 0;
43416 HEAP32[i5 >> 2] = HEAP32[i4 >> 2];
43417 HEAP32[i5 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
43418 HEAP32[i5 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
43419 HEAP32[i5 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
43420 i4 = i1 + 104 | 0;
43421 i5 = i3 + 36 | 0;
43422 HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
43423 HEAP32[i4 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
43424 HEAP32[i4 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
43425 HEAP32[i4 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
43426 i5 = i1 + 120 | 0;
43427 i1 = i3 + 52 | 0;
43428 HEAP32[i5 >> 2] = HEAP32[i1 >> 2];
43429 HEAP32[i5 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
43430 HEAP32[i5 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
43431 HEAP32[i5 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
43432 return;
43433 }
43434 function __ZNK18btConvexPolyhedron7projectERK11btTransformRK9btVector3RfS6_(i1, i2, i3, i4, i5) {
43435 i1 = i1 | 0;
43436 i2 = i2 | 0;
43437 i3 = i3 | 0;
43438 i4 = i4 | 0;
43439 i5 = i5 | 0;
43440 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, i28 = 0, d29 = 0.0;
43441 HEAPF32[i4 >> 2] = 3.4028234663852886e+38;
43442 HEAPF32[i5 >> 2] = -3.4028234663852886e+38;
43443 i6 = HEAP32[i1 + 8 >> 2] | 0;
43444 if ((i6 | 0) > 0) {
43445 i7 = HEAP32[i1 + 16 >> 2] | 0;
43446 i1 = i2 | 0;
43447 i8 = i2 + 4 | 0;
43448 i9 = i2 + 8 | 0;
43449 i10 = i2 + 48 | 0;
43450 i11 = i2 + 16 | 0;
43451 i12 = i2 + 20 | 0;
43452 i13 = i2 + 24 | 0;
43453 i14 = i2 + 52 | 0;
43454 i15 = i2 + 32 | 0;
43455 i16 = i2 + 36 | 0;
43456 i17 = i2 + 40 | 0;
43457 i18 = i2 + 56 | 0;
43458 i2 = i3 | 0;
43459 i19 = i3 + 4 | 0;
43460 i20 = i3 + 8 | 0;
43461 i3 = 0;
43462 d21 = -3.4028234663852886e+38;
43463 while (1) {
43464 d22 = +HEAPF32[i7 + (i3 << 4) >> 2];
43465 d23 = +HEAPF32[i7 + (i3 << 4) + 4 >> 2];
43466 d24 = +HEAPF32[i7 + (i3 << 4) + 8 >> 2];
43467 d25 = (+HEAPF32[i10 >> 2] + (+HEAPF32[i1 >> 2] * d22 + +HEAPF32[i8 >> 2] * d23 + +HEAPF32[i9 >> 2] * d24)) * +HEAPF32[i2 >> 2] + (+HEAPF32[i14 >> 2] + (d22 * +HEAPF32[i11 >> 2] + d23 * +HEAPF32[i12 >> 2] + d24 * +HEAPF32[i13 >> 2])) * +HEAPF32[i19 >> 2] + (+HEAPF32[i18 >> 2] + (d22 * +HEAPF32[i15 >> 2] + d23 * +HEAPF32[i16 >> 2] + d24 * +HEAPF32[i17 >> 2])) * +HEAPF32[i20 >> 2];
43468 if (d25 < +HEAPF32[i4 >> 2]) {
43469 HEAPF32[i4 >> 2] = d25;
43470 d26 = +HEAPF32[i5 >> 2];
43471 } else {
43472 d26 = d21;
43473 }
43474 if (d25 > d26) {
43475 HEAPF32[i5 >> 2] = d25;
43476 d27 = d25;
43477 } else {
43478 d27 = d26;
43479 }
43480 i28 = i3 + 1 | 0;
43481 if ((i28 | 0) < (i6 | 0)) {
43482 i3 = i28;
43483 d21 = d27;
43484 } else {
43485 d29 = d27;
43486 break;
43487 }
43488 }
43489 } else {
43490 d29 = -3.4028234663852886e+38;
43491 }
43492 d27 = +HEAPF32[i4 >> 2];
43493 if (d27 <= d29) {
43494 return;
43495 }
43496 HEAPF32[i4 >> 2] = d29;
43497 HEAPF32[i5 >> 2] = d27;
43498 return;
43499 }
43500 function __ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib(i1, i2, i3, i4, i5) {
43501 i1 = i1 | 0;
43502 i2 = i2 | 0;
43503 i3 = i3 | 0;
43504 i4 = i4 | 0;
43505 i5 = i5 | 0;
43506 var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
43507 i6 = i1 | 0;
43508 if ((i6 | 0) == (HEAP32[i2 + 8 >> 2] | 0)) {
43509 if ((HEAP32[i2 + 4 >> 2] | 0) != (i3 | 0)) {
43510 return;
43511 }
43512 i7 = i2 + 28 | 0;
43513 if ((HEAP32[i7 >> 2] | 0) == 1) {
43514 return;
43515 }
43516 HEAP32[i7 >> 2] = i4;
43517 return;
43518 }
43519 if ((i6 | 0) != (HEAP32[i2 >> 2] | 0)) {
43520 i6 = HEAP32[i1 + 8 >> 2] | 0;
43521 FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 24 >> 2] & 63](i6, i2, i3, i4, i5);
43522 return;
43523 }
43524 do {
43525 if ((HEAP32[i2 + 16 >> 2] | 0) != (i3 | 0)) {
43526 i6 = i2 + 20 | 0;
43527 if ((HEAP32[i6 >> 2] | 0) == (i3 | 0)) {
43528 break;
43529 }
43530 HEAP32[i2 + 32 >> 2] = i4;
43531 i7 = i2 + 44 | 0;
43532 if ((HEAP32[i7 >> 2] | 0) == 4) {
43533 return;
43534 }
43535 i8 = i2 + 52 | 0;
43536 HEAP8[i8] = 0;
43537 i9 = i2 + 53 | 0;
43538 HEAP8[i9] = 0;
43539 i10 = HEAP32[i1 + 8 >> 2] | 0;
43540 FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i10 >> 2] | 0) + 20 >> 2] & 15](i10, i2, i3, i3, 1, i5);
43541 if ((HEAP8[i9] & 1) == 0) {
43542 i11 = 0;
43543 i12 = 2131;
43544 } else {
43545 if ((HEAP8[i8] & 1) == 0) {
43546 i11 = 1;
43547 i12 = 2131;
43548 }
43549 }
43550 L2842 : do {
43551 if ((i12 | 0) == 2131) {
43552 HEAP32[i6 >> 2] = i3;
43553 i8 = i2 + 40 | 0;
43554 HEAP32[i8 >> 2] = (HEAP32[i8 >> 2] | 0) + 1;
43555 do {
43556 if ((HEAP32[i2 + 36 >> 2] | 0) == 1) {
43557 if ((HEAP32[i2 + 24 >> 2] | 0) != 2) {
43558 i12 = 2134;
43559 break;
43560 }
43561 HEAP8[i2 + 54 | 0] = 1;
43562 if (i11) {
43563 break L2842;
43564 }
43565 } else {
43566 i12 = 2134;
43567 }
43568 } while (0);
43569 if ((i12 | 0) == 2134) {
43570 if (i11) {
43571 break;
43572 }
43573 }
43574 HEAP32[i7 >> 2] = 4;
43575 return;
43576 }
43577 } while (0);
43578 HEAP32[i7 >> 2] = 3;
43579 return;
43580 }
43581 } while (0);
43582 if ((i4 | 0) != 1) {
43583 return;
43584 }
43585 HEAP32[i2 + 32 >> 2] = 1;
43586 return;
43587 }
43588 function __ZN20btConvexHullInternal14getOrientationEPKNS_4EdgeES2_RKNS_7Point32ES5_(i1, i2, i3, i4) {
43589 i1 = i1 | 0;
43590 i2 = i2 | 0;
43591 i3 = i3 | 0;
43592 i4 = i4 | 0;
43593 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
43594 i5 = (HEAP32[i1 + 4 >> 2] | 0) == (i2 | 0);
43595 if ((HEAP32[i1 >> 2] | 0) != (i2 | 0)) {
43596 i6 = i5 & 1;
43597 return i6 | 0;
43598 }
43599 if (!i5) {
43600 i6 = 2;
43601 return i6 | 0;
43602 }
43603 i5 = HEAP32[i4 + 4 >> 2] | 0;
43604 i7 = HEAP32[i3 + 8 >> 2] | 0;
43605 i8 = Math_imul(i7, i5) | 0;
43606 i9 = HEAP32[i4 + 8 >> 2] | 0;
43607 i10 = HEAP32[i3 + 4 >> 2] | 0;
43608 i11 = i8 - (Math_imul(i10, i9) | 0) | 0;
43609 i8 = HEAP32[i3 >> 2] | 0;
43610 i3 = Math_imul(i8, i9) | 0;
43611 i9 = HEAP32[i4 >> 2] | 0;
43612 i4 = i3 - (Math_imul(i9, i7) | 0) | 0;
43613 i7 = Math_imul(i9, i10) | 0;
43614 i10 = i7 - (Math_imul(i8, i5) | 0) | 0;
43615 i5 = HEAP32[i1 + 12 >> 2] | 0;
43616 i1 = HEAP32[(HEAP32[i2 + 8 >> 2] | 0) + 12 >> 2] | 0;
43617 i8 = HEAP32[i1 + 88 >> 2] | 0;
43618 i7 = (HEAP32[i5 + 88 >> 2] | 0) - i8 | 0;
43619 i9 = HEAP32[i1 + 92 >> 2] | 0;
43620 i3 = (HEAP32[i5 + 92 >> 2] | 0) - i9 | 0;
43621 i12 = HEAP32[i1 + 96 >> 2] | 0;
43622 i1 = (HEAP32[i5 + 96 >> 2] | 0) - i12 | 0;
43623 i5 = HEAP32[i2 + 12 >> 2] | 0;
43624 i2 = (HEAP32[i5 + 88 >> 2] | 0) - i8 | 0;
43625 i8 = (HEAP32[i5 + 92 >> 2] | 0) - i9 | 0;
43626 i9 = (HEAP32[i5 + 96 >> 2] | 0) - i12 | 0;
43627 i12 = Math_imul(i9, i3) | 0;
43628 i5 = i12 - (Math_imul(i8, i1) | 0) | 0;
43629 i12 = Math_imul(i2, i1) | 0;
43630 i1 = i12 - (Math_imul(i9, i7) | 0) | 0;
43631 i9 = Math_imul(i8, i7) | 0;
43632 i7 = i9 - (Math_imul(i2, i3) | 0) | 0;
43633 i3 = ___muldi3(i5, (i5 | 0) < 0 ? -1 : 0, i11, (i11 | 0) < 0 ? -1 : 0) | 0;
43634 i11 = tempRet0;
43635 i5 = ___muldi3(i1, (i1 | 0) < 0 ? -1 : 0, i4, (i4 | 0) < 0 ? -1 : 0) | 0;
43636 i4 = tempRet0;
43637 i1 = ___muldi3(i7, (i7 | 0) < 0 ? -1 : 0, i10, (i10 | 0) < 0 ? -1 : 0) | 0;
43638 i10 = _i64Add(i3, i11, i1, tempRet0) | 0;
43639 i1 = _i64Add(i10, tempRet0, i5, i4) | 0;
43640 i4 = tempRet0;
43641 i5 = 0;
43642 i6 = (i4 | 0) > (i5 | 0) | (i4 | 0) == (i5 | 0) & i1 >>> 0 > 0 >>> 0 ? 2 : 1;
43643 return i6 | 0;
43644 }
43645 function __ZNK11btTransformmlERKS_(i1, i2, i3) {
43646 i1 = i1 | 0;
43647 i2 = i2 | 0;
43648 i3 = i3 | 0;
43649 var d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0;
43650 d4 = +HEAPF32[i3 >> 2];
43651 d5 = +HEAPF32[i2 >> 2];
43652 d6 = +HEAPF32[i3 + 16 >> 2];
43653 d7 = +HEAPF32[i2 + 4 >> 2];
43654 d8 = +HEAPF32[i3 + 32 >> 2];
43655 d9 = +HEAPF32[i2 + 8 >> 2];
43656 d10 = +HEAPF32[i3 + 4 >> 2];
43657 d11 = +HEAPF32[i3 + 20 >> 2];
43658 d12 = +HEAPF32[i3 + 36 >> 2];
43659 d13 = +HEAPF32[i3 + 8 >> 2];
43660 d14 = +HEAPF32[i3 + 24 >> 2];
43661 d15 = +HEAPF32[i3 + 40 >> 2];
43662 d16 = +HEAPF32[i2 + 16 >> 2];
43663 d17 = +HEAPF32[i2 + 20 >> 2];
43664 d18 = +HEAPF32[i2 + 24 >> 2];
43665 d19 = +HEAPF32[i2 + 32 >> 2];
43666 d20 = +HEAPF32[i2 + 36 >> 2];
43667 d21 = +HEAPF32[i2 + 40 >> 2];
43668 d22 = +HEAPF32[i3 + 48 >> 2];
43669 d23 = +HEAPF32[i3 + 52 >> 2];
43670 d24 = +HEAPF32[i3 + 56 >> 2];
43671 d25 = +HEAPF32[i2 + 48 >> 2] + (d5 * d22 + d7 * d23 + d9 * d24);
43672 d26 = +HEAPF32[i2 + 52 >> 2] + (d22 * d16 + d23 * d17 + d24 * d18);
43673 d27 = +HEAPF32[i2 + 56 >> 2] + (d22 * d19 + d23 * d20 + d24 * d21);
43674 HEAPF32[i1 >> 2] = d4 * d5 + d6 * d7 + d8 * d9;
43675 HEAPF32[i1 + 4 >> 2] = d5 * d10 + d7 * d11 + d9 * d12;
43676 HEAPF32[i1 + 8 >> 2] = d5 * d13 + d7 * d14 + d9 * d15;
43677 HEAPF32[i1 + 12 >> 2] = 0.0;
43678 HEAPF32[i1 + 16 >> 2] = d4 * d16 + d6 * d17 + d8 * d18;
43679 HEAPF32[i1 + 20 >> 2] = d10 * d16 + d11 * d17 + d12 * d18;
43680 HEAPF32[i1 + 24 >> 2] = d13 * d16 + d14 * d17 + d15 * d18;
43681 HEAPF32[i1 + 28 >> 2] = 0.0;
43682 HEAPF32[i1 + 32 >> 2] = d4 * d19 + d6 * d20 + d8 * d21;
43683 HEAPF32[i1 + 36 >> 2] = d10 * d19 + d11 * d20 + d12 * d21;
43684 HEAPF32[i1 + 40 >> 2] = d13 * d19 + d14 * d20 + d15 * d21;
43685 HEAPF32[i1 + 44 >> 2] = 0.0;
43686 HEAPF32[i1 + 48 >> 2] = d25;
43687 HEAPF32[i1 + 52 >> 2] = d26;
43688 HEAPF32[i1 + 56 >> 2] = d27;
43689 HEAPF32[i1 + 60 >> 2] = 0.0;
43690 return;
43691 }
43692 function __ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(i1, i2, i3, i4) {
43693 i1 = i1 | 0;
43694 i2 = i2 | 0;
43695 i3 = i3 | 0;
43696 i4 = i4 | 0;
43697 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0;
43698 i5 = STACKTOP;
43699 STACKTOP = STACKTOP + 16 | 0;
43700 i6 = i2;
43701 i2 = STACKTOP;
43702 STACKTOP = STACKTOP + 1 | 0;
43703 STACKTOP = STACKTOP + 7 >> 3 << 3;
43704 HEAP8[i2] = HEAP8[i6] | 0;
43705 i6 = i5 | 0;
43706 i2 = i5 + 8 | 0;
43707 i7 = i1 + 12 | 0;
43708 i8 = HEAP32[i7 >> 2] | 0;
43709 i9 = HEAP32[i8 + (((i4 + i3 | 0) / 2 | 0) << 3) >> 2] | 0;
43710 i10 = i4;
43711 i11 = i3;
43712 i12 = i8;
43713 while (1) {
43714 i8 = i11;
43715 while (1) {
43716 i13 = i8 + 1 | 0;
43717 if ((HEAP32[i12 + (i8 << 3) >> 2] | 0) < (i9 | 0)) {
43718 i8 = i13;
43719 } else {
43720 i14 = i10;
43721 break;
43722 }
43723 }
43724 while (1) {
43725 i15 = i12 + (i14 << 3) | 0;
43726 i16 = i14 - 1 | 0;
43727 if ((i9 | 0) < (HEAP32[i15 >> 2] | 0)) {
43728 i14 = i16;
43729 } else {
43730 break;
43731 }
43732 }
43733 if ((i8 | 0) > (i14 | 0)) {
43734 i17 = i14;
43735 i18 = i8;
43736 } else {
43737 i19 = i12 + (i8 << 3) | 0;
43738 i20 = HEAP32[i19 >> 2] | 0;
43739 i21 = HEAP32[i19 + 4 >> 2] | 0;
43740 i22 = i15;
43741 i23 = HEAP32[i22 + 4 >> 2] | 0;
43742 HEAP32[i19 >> 2] = HEAP32[i22 >> 2];
43743 HEAP32[i19 + 4 >> 2] = i23;
43744 i23 = (HEAP32[i7 >> 2] | 0) + (i14 << 3) | 0;
43745 HEAP32[i23 >> 2] = i20;
43746 HEAP32[i23 + 4 >> 2] = i21;
43747 i17 = i16;
43748 i18 = i13;
43749 }
43750 if ((i18 | 0) > (i17 | 0)) {
43751 break;
43752 }
43753 i10 = i17;
43754 i11 = i18;
43755 i12 = HEAP32[i7 >> 2] | 0;
43756 }
43757 if ((i17 | 0) > (i3 | 0)) {
43758 __ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(i1, i6, i3, i17);
43759 }
43760 if ((i18 | 0) >= (i4 | 0)) {
43761 STACKTOP = i5;
43762 return;
43763 }
43764 __ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(i1, i2, i18, i4);
43765 STACKTOP = i5;
43766 return;
43767 }
43768 function __ZN20btConvexHullInternal11getBtNormalEPNS_4FaceE(i1, i2, i3) {
43769 i1 = i1 | 0;
43770 i2 = i2 | 0;
43771 i3 = i3 | 0;
43772 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0;
43773 i4 = STACKTOP;
43774 STACKTOP = STACKTOP + 32 | 0;
43775 i5 = i4 | 0;
43776 i6 = i4 + 16 | 0;
43777 i7 = HEAP32[i2 + 108 >> 2] | 0;
43778 HEAPF32[i6 + (i7 << 2) >> 2] = +(HEAP32[i3 + 28 >> 2] | 0);
43779 i8 = HEAP32[i2 + 112 >> 2] | 0;
43780 HEAPF32[i6 + (i8 << 2) >> 2] = +(HEAP32[i3 + 32 >> 2] | 0);
43781 i9 = HEAP32[i2 + 104 >> 2] | 0;
43782 HEAPF32[i6 + (i9 << 2) >> 2] = +(HEAP32[i3 + 36 >> 2] | 0);
43783 d10 = +HEAPF32[i2 >> 2];
43784 d11 = +HEAPF32[i6 >> 2] * d10;
43785 d12 = +HEAPF32[i2 + 4 >> 2];
43786 d13 = +HEAPF32[i6 + 4 >> 2] * d12;
43787 d14 = +HEAPF32[i2 + 8 >> 2];
43788 d15 = +HEAPF32[i6 + 8 >> 2] * d14;
43789 HEAPF32[i5 + (i7 << 2) >> 2] = +(HEAP32[i3 + 44 >> 2] | 0);
43790 HEAPF32[i5 + (i8 << 2) >> 2] = +(HEAP32[i3 + 48 >> 2] | 0);
43791 HEAPF32[i5 + (i9 << 2) >> 2] = +(HEAP32[i3 + 52 >> 2] | 0);
43792 d16 = d10 * +HEAPF32[i5 >> 2];
43793 d10 = d12 * +HEAPF32[i5 + 4 >> 2];
43794 d12 = d14 * +HEAPF32[i5 + 8 >> 2];
43795 d14 = d13 * d12 - d15 * d10;
43796 d17 = d15 * d16 - d11 * d12;
43797 d12 = d11 * d10 - d13 * d16;
43798 i5 = i1 | 0;
43799 HEAPF32[i5 >> 2] = d14;
43800 i3 = i1 + 4 | 0;
43801 HEAPF32[i3 >> 2] = d17;
43802 i9 = i1 + 8 | 0;
43803 HEAPF32[i9 >> 2] = d12;
43804 HEAPF32[i1 + 12 >> 2] = 0.0;
43805 d16 = +Math_sqrt(+(d12 * d12 + (d14 * d14 + d17 * d17)));
43806 if ((i7 + 1 | 0) == (i8 | 0) | (i7 - 2 | 0) == (i8 | 0)) {
43807 d18 = d16;
43808 d19 = 1.0 / d18;
43809 d20 = d14 * d19;
43810 HEAPF32[i5 >> 2] = d20;
43811 d21 = d17 * d19;
43812 HEAPF32[i3 >> 2] = d21;
43813 d22 = d12 * d19;
43814 HEAPF32[i9 >> 2] = d22;
43815 STACKTOP = i4;
43816 return;
43817 }
43818 d18 = -0.0 - d16;
43819 d19 = 1.0 / d18;
43820 d20 = d14 * d19;
43821 HEAPF32[i5 >> 2] = d20;
43822 d21 = d17 * d19;
43823 HEAPF32[i3 >> 2] = d21;
43824 d22 = d12 * d19;
43825 HEAPF32[i9 >> 2] = d22;
43826 STACKTOP = i4;
43827 return;
43828 }
43829 function __ZNK16btCollisionShape21calculateTemporalAabbERK11btTransformRK9btVector3S5_fRS3_S6_(i1, i2, i3, i4, d5, i6, i7) {
43830 i1 = i1 | 0;
43831 i2 = i2 | 0;
43832 i3 = i3 | 0;
43833 i4 = i4 | 0;
43834 d5 = +d5;
43835 i6 = i6 | 0;
43836 i7 = i7 | 0;
43837 var d8 = 0.0, i9 = 0, d10 = 0.0, i11 = 0, d12 = 0.0, i13 = 0, d14 = 0.0, i15 = 0, d16 = 0.0, i17 = 0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0;
43838 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i1, i2, i6, i7);
43839 i2 = i7 | 0;
43840 d8 = +HEAPF32[i2 >> 2];
43841 i9 = i7 + 4 | 0;
43842 d10 = +HEAPF32[i9 >> 2];
43843 i11 = i7 + 8 | 0;
43844 d12 = +HEAPF32[i11 >> 2];
43845 i13 = i6 | 0;
43846 d14 = +HEAPF32[i13 >> 2];
43847 i15 = i6 + 4 | 0;
43848 d16 = +HEAPF32[i15 >> 2];
43849 i17 = i6 + 8 | 0;
43850 d18 = +HEAPF32[i17 >> 2];
43851 d19 = +HEAPF32[i3 >> 2] * d5;
43852 d20 = +HEAPF32[i3 + 4 >> 2] * d5;
43853 d21 = +HEAPF32[i3 + 8 >> 2] * d5;
43854 if (d19 > 0.0) {
43855 d22 = d14;
43856 d23 = d8 + d19;
43857 } else {
43858 d22 = d14 + d19;
43859 d23 = d8;
43860 }
43861 if (d20 > 0.0) {
43862 d24 = d16;
43863 d25 = d10 + d20;
43864 } else {
43865 d24 = d16 + d20;
43866 d25 = d10;
43867 }
43868 if (d21 > 0.0) {
43869 d26 = d18;
43870 d27 = d12 + d21;
43871 } else {
43872 d26 = d18 + d21;
43873 d27 = d12;
43874 }
43875 d12 = +HEAPF32[i4 >> 2];
43876 d21 = +HEAPF32[i4 + 4 >> 2];
43877 d18 = +HEAPF32[i4 + 8 >> 2];
43878 d10 = +Math_sqrt(+(d12 * d12 + d21 * d21 + d18 * d18));
43879 d18 = d10 * +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i1 >> 2] | 0) + 16 >> 2] & 7](i1) * d5;
43880 HEAPF32[i13 >> 2] = d22;
43881 HEAPF32[i15 >> 2] = d24;
43882 HEAPF32[i17 >> 2] = d26;
43883 HEAPF32[i6 + 12 >> 2] = 0.0;
43884 HEAPF32[i2 >> 2] = d23;
43885 HEAPF32[i9 >> 2] = d25;
43886 HEAPF32[i11 >> 2] = d27;
43887 HEAPF32[i7 + 12 >> 2] = 0.0;
43888 HEAPF32[i13 >> 2] = +HEAPF32[i13 >> 2] - d18;
43889 HEAPF32[i15 >> 2] = +HEAPF32[i15 >> 2] - d18;
43890 HEAPF32[i17 >> 2] = +HEAPF32[i17 >> 2] - d18;
43891 HEAPF32[i2 >> 2] = d18 + +HEAPF32[i2 >> 2];
43892 HEAPF32[i9 >> 2] = d18 + +HEAPF32[i9 >> 2];
43893 HEAPF32[i11 >> 2] = d18 + +HEAPF32[i11 >> 2];
43894 return;
43895 }
43896 function __ZN11btRigidBody25internalWritebackVelocityEf(i1, d2) {
43897 i1 = i1 | 0;
43898 d2 = +d2;
43899 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, d7 = 0.0, i8 = 0, d9 = 0.0;
43900 i3 = STACKTOP;
43901 STACKTOP = STACKTOP + 64 | 0;
43902 i4 = i3 | 0;
43903 if (+HEAPF32[i1 + 336 >> 2] == 0.0) {
43904 STACKTOP = i3;
43905 return;
43906 }
43907 i5 = i1 + 304 | 0;
43908 i6 = i1 + 308 | 0;
43909 d7 = +HEAPF32[i6 >> 2] + +HEAPF32[i1 + 508 >> 2];
43910 i8 = i1 + 312 | 0;
43911 d9 = +HEAPF32[i8 >> 2] + +HEAPF32[i1 + 512 >> 2];
43912 HEAPF32[i5 >> 2] = +HEAPF32[i5 >> 2] + +HEAPF32[i1 + 504 >> 2];
43913 HEAPF32[i6 >> 2] = d7;
43914 HEAPF32[i8 >> 2] = d9;
43915 HEAPF32[i1 + 316 >> 2] = 0.0;
43916 i8 = i1 + 320 | 0;
43917 i6 = i1 + 324 | 0;
43918 d9 = +HEAPF32[i6 >> 2] + +HEAPF32[i1 + 524 >> 2];
43919 i5 = i1 + 328 | 0;
43920 d7 = +HEAPF32[i5 >> 2] + +HEAPF32[i1 + 528 >> 2];
43921 HEAPF32[i8 >> 2] = +HEAPF32[i8 >> 2] + +HEAPF32[i1 + 520 >> 2];
43922 HEAPF32[i6 >> 2] = d9;
43923 HEAPF32[i5 >> 2] = d7;
43924 HEAPF32[i1 + 332 >> 2] = 0.0;
43925 i5 = i1 + 4 | 0;
43926 __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i5, i1 + 568 | 0, i1 + 584 | 0, d2, i4);
43927 i6 = i5;
43928 i5 = i4;
43929 HEAP32[i6 >> 2] = HEAP32[i5 >> 2];
43930 HEAP32[i6 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
43931 HEAP32[i6 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
43932 HEAP32[i6 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
43933 i5 = i1 + 20 | 0;
43934 i6 = i4 + 16 | 0;
43935 HEAP32[i5 >> 2] = HEAP32[i6 >> 2];
43936 HEAP32[i5 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
43937 HEAP32[i5 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
43938 HEAP32[i5 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
43939 i6 = i1 + 36 | 0;
43940 i5 = i4 + 32 | 0;
43941 HEAP32[i6 >> 2] = HEAP32[i5 >> 2];
43942 HEAP32[i6 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
43943 HEAP32[i6 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
43944 HEAP32[i6 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
43945 i5 = i1 + 52 | 0;
43946 i1 = i4 + 48 | 0;
43947 HEAP32[i5 >> 2] = HEAP32[i1 >> 2];
43948 HEAP32[i5 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
43949 HEAP32[i5 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
43950 HEAP32[i5 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
43951 STACKTOP = i3;
43952 return;
43953 }
43954 function __ZN34btClosestNotMeConvexResultCallback15addSingleResultERN16btCollisionWorld17LocalConvexResultEb(i1, i2, i3) {
43955 i1 = i1 | 0;
43956 i2 = i2 | 0;
43957 i3 = i3 | 0;
43958 var i4 = 0, d5 = 0.0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0;
43959 i4 = HEAP32[i2 >> 2] | 0;
43960 if ((i4 | 0) == (HEAP32[i1 + 80 >> 2] | 0)) {
43961 d5 = 1.0;
43962 return +d5;
43963 }
43964 if ((HEAP32[i4 + 204 >> 2] & 4 | 0) != 0) {
43965 d5 = 1.0;
43966 return +d5;
43967 }
43968 i6 = i2 + 8 | 0;
43969 i7 = i2 + 12 | 0;
43970 i8 = i2 + 16 | 0;
43971 if ((+HEAPF32[i1 + 28 >> 2] - +HEAPF32[i1 + 12 >> 2]) * +HEAPF32[i6 >> 2] + (+HEAPF32[i1 + 32 >> 2] - +HEAPF32[i1 + 16 >> 2]) * +HEAPF32[i7 >> 2] + (+HEAPF32[i1 + 36 >> 2] - +HEAPF32[i1 + 20 >> 2]) * +HEAPF32[i8 >> 2] >= -0.0 - +HEAPF32[i1 + 84 >> 2]) {
43972 d5 = 1.0;
43973 return +d5;
43974 }
43975 i9 = i2 + 40 | 0;
43976 HEAPF32[i1 + 4 >> 2] = +HEAPF32[i9 >> 2];
43977 HEAP32[i1 + 76 >> 2] = i4;
43978 if (i3) {
43979 i3 = i1 + 44 | 0;
43980 i10 = i6;
43981 HEAP32[i3 >> 2] = HEAP32[i10 >> 2];
43982 HEAP32[i3 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
43983 HEAP32[i3 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
43984 HEAP32[i3 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
43985 } else {
43986 d11 = +HEAPF32[i2 + 8 >> 2];
43987 d12 = +HEAPF32[i7 >> 2];
43988 d13 = +HEAPF32[i8 >> 2];
43989 d14 = d11 * +HEAPF32[i4 + 20 >> 2] + d12 * +HEAPF32[i4 + 24 >> 2] + d13 * +HEAPF32[i4 + 28 >> 2];
43990 d15 = d11 * +HEAPF32[i4 + 36 >> 2] + d12 * +HEAPF32[i4 + 40 >> 2] + d13 * +HEAPF32[i4 + 44 >> 2];
43991 HEAPF32[i1 + 44 >> 2] = +HEAPF32[i4 + 4 >> 2] * d11 + +HEAPF32[i4 + 8 >> 2] * d12 + +HEAPF32[i4 + 12 >> 2] * d13;
43992 HEAPF32[i1 + 48 >> 2] = d14;
43993 HEAPF32[i1 + 52 >> 2] = d15;
43994 HEAPF32[i1 + 56 >> 2] = 0.0;
43995 }
43996 i4 = i1 + 60 | 0;
43997 i1 = i2 + 24 | 0;
43998 HEAP32[i4 >> 2] = HEAP32[i1 >> 2];
43999 HEAP32[i4 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
44000 HEAP32[i4 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
44001 HEAP32[i4 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
44002 d5 = +HEAPF32[i9 >> 2];
44003 return +d5;
44004 }
44005 function __ZNK11btTransform12inverseTimesERKS_(i1, i2, i3) {
44006 i1 = i1 | 0;
44007 i2 = i2 | 0;
44008 i3 = i3 | 0;
44009 var d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0;
44010 d4 = +HEAPF32[i3 + 48 >> 2] - +HEAPF32[i2 + 48 >> 2];
44011 d5 = +HEAPF32[i3 + 52 >> 2] - +HEAPF32[i2 + 52 >> 2];
44012 d6 = +HEAPF32[i3 + 56 >> 2] - +HEAPF32[i2 + 56 >> 2];
44013 d7 = +HEAPF32[i2 >> 2];
44014 d8 = +HEAPF32[i3 >> 2];
44015 d9 = +HEAPF32[i2 + 16 >> 2];
44016 d10 = +HEAPF32[i3 + 16 >> 2];
44017 d11 = +HEAPF32[i2 + 32 >> 2];
44018 d12 = +HEAPF32[i3 + 32 >> 2];
44019 d13 = +HEAPF32[i3 + 4 >> 2];
44020 d14 = +HEAPF32[i3 + 20 >> 2];
44021 d15 = +HEAPF32[i3 + 36 >> 2];
44022 d16 = +HEAPF32[i3 + 8 >> 2];
44023 d17 = +HEAPF32[i3 + 24 >> 2];
44024 d18 = +HEAPF32[i3 + 40 >> 2];
44025 d19 = +HEAPF32[i2 + 4 >> 2];
44026 d20 = +HEAPF32[i2 + 20 >> 2];
44027 d21 = +HEAPF32[i2 + 36 >> 2];
44028 d22 = +HEAPF32[i2 + 8 >> 2];
44029 d23 = +HEAPF32[i2 + 24 >> 2];
44030 d24 = +HEAPF32[i2 + 40 >> 2];
44031 HEAPF32[i1 >> 2] = d7 * d8 + d9 * d10 + d11 * d12;
44032 HEAPF32[i1 + 4 >> 2] = d7 * d13 + d9 * d14 + d11 * d15;
44033 HEAPF32[i1 + 8 >> 2] = d7 * d16 + d9 * d17 + d11 * d18;
44034 HEAPF32[i1 + 12 >> 2] = 0.0;
44035 HEAPF32[i1 + 16 >> 2] = d8 * d19 + d10 * d20 + d12 * d21;
44036 HEAPF32[i1 + 20 >> 2] = d13 * d19 + d14 * d20 + d15 * d21;
44037 HEAPF32[i1 + 24 >> 2] = d16 * d19 + d17 * d20 + d18 * d21;
44038 HEAPF32[i1 + 28 >> 2] = 0.0;
44039 HEAPF32[i1 + 32 >> 2] = d8 * d22 + d10 * d23 + d12 * d24;
44040 HEAPF32[i1 + 36 >> 2] = d13 * d22 + d14 * d23 + d15 * d24;
44041 HEAPF32[i1 + 40 >> 2] = d16 * d22 + d17 * d23 + d18 * d24;
44042 HEAPF32[i1 + 44 >> 2] = 0.0;
44043 HEAPF32[i1 + 48 >> 2] = d4 * d7 + d5 * d9 + d6 * d11;
44044 HEAPF32[i1 + 52 >> 2] = d4 * d19 + d5 * d20 + d6 * d21;
44045 HEAPF32[i1 + 56 >> 2] = d4 * d22 + d5 * d23 + d6 * d24;
44046 HEAPF32[i1 + 60 >> 2] = 0.0;
44047 return;
44048 }
44049 function __ZN20btAlignedObjectArrayI6btFaceE6resizeEiRKS0_(i1, i2, i3) {
44050 i1 = i1 | 0;
44051 i2 = i2 | 0;
44052 i3 = i3 | 0;
44053 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
44054 i4 = i1 + 4 | 0;
44055 i5 = HEAP32[i4 >> 2] | 0;
44056 if ((i5 | 0) <= (i2 | 0)) {
44057 if ((i5 | 0) >= (i2 | 0)) {
44058 HEAP32[i4 >> 2] = i2;
44059 return;
44060 }
44061 __ZN20btAlignedObjectArrayI6btFaceE7reserveEi(i1, i2);
44062 i6 = i1 + 12 | 0;
44063 i7 = i3 | 0;
44064 i8 = i3 + 20 | 0;
44065 i9 = i3 + 40 | 0;
44066 i3 = i5;
44067 do {
44068 i10 = (HEAP32[i6 >> 2] | 0) + (i3 * 56 | 0) | 0;
44069 if ((i10 | 0) != 0) {
44070 __ZN20btAlignedObjectArrayIiEC2ERKS0_(i10, i7);
44071 __ZN20btAlignedObjectArrayIiEC2ERKS0_(i10 + 20 | 0, i8);
44072 i11 = i10 + 40 | 0;
44073 HEAP32[i11 >> 2] = HEAP32[i9 >> 2];
44074 HEAP32[i11 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
44075 HEAP32[i11 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
44076 HEAP32[i11 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
44077 }
44078 i3 = i3 + 1 | 0;
44079 } while ((i3 | 0) < (i2 | 0));
44080 HEAP32[i4 >> 2] = i2;
44081 return;
44082 }
44083 i3 = i1 + 12 | 0;
44084 i1 = i2;
44085 do {
44086 i9 = HEAP32[i3 >> 2] | 0;
44087 i8 = i9 + (i1 * 56 | 0) + 24 | 0;
44088 i7 = i9 + (i1 * 56 | 0) + 32 | 0;
44089 i6 = HEAP32[i7 >> 2] | 0;
44090 i11 = i9 + (i1 * 56 | 0) + 36 | 0;
44091 if ((i6 | 0) != 0) {
44092 if ((HEAP8[i11] | 0) != 0) {
44093 __Z21btAlignedFreeInternalPv(i6);
44094 }
44095 HEAP32[i7 >> 2] = 0;
44096 }
44097 HEAP8[i11] = 1;
44098 HEAP32[i7 >> 2] = 0;
44099 HEAP32[i8 >> 2] = 0;
44100 HEAP32[i9 + (i1 * 56 | 0) + 28 >> 2] = 0;
44101 i8 = i9 + (i1 * 56 | 0) + 4 | 0;
44102 i7 = i9 + (i1 * 56 | 0) + 12 | 0;
44103 i11 = HEAP32[i7 >> 2] | 0;
44104 i6 = i9 + (i1 * 56 | 0) + 16 | 0;
44105 if ((i11 | 0) != 0) {
44106 if ((HEAP8[i6] | 0) != 0) {
44107 __Z21btAlignedFreeInternalPv(i11);
44108 }
44109 HEAP32[i7 >> 2] = 0;
44110 }
44111 HEAP8[i6] = 1;
44112 HEAP32[i7 >> 2] = 0;
44113 HEAP32[i8 >> 2] = 0;
44114 HEAP32[i9 + (i1 * 56 | 0) + 8 >> 2] = 0;
44115 i1 = i1 + 1 | 0;
44116 } while ((i1 | 0) < (i5 | 0));
44117 HEAP32[i4 >> 2] = i2;
44118 return;
44119 }
44120 function __ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, d11, d12, d13) {
44121 i1 = i1 | 0;
44122 i2 = i2 | 0;
44123 i3 = i3 | 0;
44124 i4 = i4 | 0;
44125 i5 = i5 | 0;
44126 i6 = i6 | 0;
44127 i7 = i7 | 0;
44128 i8 = i8 | 0;
44129 i9 = i9 | 0;
44130 i10 = i10 | 0;
44131 d11 = +d11;
44132 d12 = +d12;
44133 d13 = +d13;
44134 var i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0;
44135 i4 = i1 + 48 | 0;
44136 i3 = HEAP32[i4 >> 2] | 0;
44137 i14 = i1 + 52 | 0;
44138 do {
44139 if ((i3 | 0) == (HEAP32[i14 >> 2] | 0)) {
44140 i15 = (i3 | 0) == 0 ? 1 : i3 << 1;
44141 if ((i3 | 0) >= (i15 | 0)) {
44142 i16 = i3;
44143 break;
44144 }
44145 if ((i15 | 0) == 0) {
44146 i17 = 0;
44147 i18 = i3;
44148 } else {
44149 i19 = __Z22btAlignedAllocInternalji(i15 * 136 | 0, 16) | 0;
44150 i17 = i19;
44151 i18 = HEAP32[i4 >> 2] | 0;
44152 }
44153 i19 = i1 + 56 | 0;
44154 if ((i18 | 0) > 0) {
44155 i20 = 0;
44156 do {
44157 i21 = i17 + (i20 * 136 | 0) | 0;
44158 i22 = (HEAP32[i19 >> 2] | 0) + (i20 * 136 | 0) | 0;
44159 _memcpy(i21 | 0, i22 | 0, 136) | 0;
44160 i20 = i20 + 1 | 0;
44161 } while ((i20 | 0) < (i18 | 0));
44162 }
44163 i20 = HEAP32[i19 >> 2] | 0;
44164 i22 = i1 + 60 | 0;
44165 if ((i20 | 0) != 0) {
44166 if ((HEAP8[i22] | 0) != 0) {
44167 __Z21btAlignedFreeInternalPv(i20);
44168 }
44169 HEAP32[i19 >> 2] = 0;
44170 }
44171 HEAP8[i22] = 1;
44172 HEAP32[i19 >> 2] = i17;
44173 HEAP32[i14 >> 2] = i15;
44174 i16 = HEAP32[i4 >> 2] | 0;
44175 } else {
44176 i16 = i3;
44177 }
44178 } while (0);
44179 HEAP32[i4 >> 2] = i16 + 1;
44180 i16 = HEAP32[i1 + 56 >> 2] | 0;
44181 i1 = i16 + (i3 * 136 | 0) | 0;
44182 HEAP32[i16 + (i3 * 136 | 0) + 100 >> 2] = i5;
44183 __ZN35btSequentialImpulseConstraintSolver23setupFrictionConstraintER18btSolverConstraintRK9btVector3P11btRigidBodyS6_R15btManifoldPointS4_S4_P17btCollisionObjectSA_fff(0, i1, i2, 0, 0, i6, i7, i8, i9, i10, d11, d12, d13);
44184 return i1 | 0;
44185 }
44186 function __ZN23btDiscreteDynamicsWorld14stepSimulationEfif(i1, d2, i3, d4) {
44187 i1 = i1 | 0;
44188 d2 = +d2;
44189 i3 = i3 | 0;
44190 d4 = +d4;
44191 var i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, i9 = 0, d10 = 0.0, i11 = 0;
44192 __ZN15CProfileManager5ResetEv();
44193 __ZN15CProfileManager13Start_ProfileEPKc(696);
44194 i5 = i1 + 236 | 0;
44195 do {
44196 if ((i3 | 0) == 0) {
44197 HEAPF32[i5 >> 2] = d2;
44198 i6 = +Math_abs(+d2) >= 1.1920928955078125e-7 | 0;
44199 i7 = i6;
44200 d8 = d2;
44201 i9 = i6;
44202 } else {
44203 d10 = +HEAPF32[i5 >> 2] + d2;
44204 HEAPF32[i5 >> 2] = d10;
44205 if (d10 < d4) {
44206 i7 = i3;
44207 d8 = d4;
44208 i9 = 0;
44209 break;
44210 }
44211 i6 = ~~(d10 / d4);
44212 HEAPF32[i5 >> 2] = d10 - +(i6 | 0) * d4;
44213 i7 = i3;
44214 d8 = d4;
44215 i9 = i6;
44216 }
44217 } while (0);
44218 i3 = i1 | 0;
44219 i5 = i1;
44220 if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i5 >> 2] | 0) + 16 >> 2] & 127](i3) | 0) != 0) {
44221 i6 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i5 >> 2] | 0) + 16 >> 2] & 127](i3) | 0;
44222 HEAP8[12016] = (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i6 >> 2] | 0) + 48 >> 2] & 127](i6) | 0) >>> 4 & 1;
44223 }
44224 do {
44225 if ((i9 | 0) == 0) {
44226 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i1 >> 2] | 0) + 76 >> 2] & 511](i1);
44227 } else {
44228 i6 = (i9 | 0) > (i7 | 0) ? i7 : i9;
44229 i3 = i1;
44230 FUNCTION_TABLE_vif[HEAP32[(HEAP32[i3 >> 2] | 0) + 160 >> 2] & 31](i1, d8 * +(i6 | 0));
44231 i5 = i1;
44232 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i5 >> 2] | 0) + 164 >> 2] & 511](i1);
44233 if ((i6 | 0) > 0) {
44234 i11 = 0;
44235 } else {
44236 break;
44237 }
44238 do {
44239 FUNCTION_TABLE_vif[HEAP32[(HEAP32[i3 >> 2] | 0) + 156 >> 2] & 31](i1, d8);
44240 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i5 >> 2] | 0) + 76 >> 2] & 511](i1);
44241 i11 = i11 + 1 | 0;
44242 } while ((i11 | 0) < (i6 | 0));
44243 }
44244 } while (0);
44245 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i1 >> 2] | 0) + 116 >> 2] & 511](i1);
44246 __ZN15CProfileManager23Increment_Frame_CounterEv();
44247 __ZN15CProfileManager12Stop_ProfileEv();
44248 return i9 | 0;
44249 }
44250 function __ZN11btRigidBody16addConstraintRefEP17btTypedConstraint(i1, i2) {
44251 i1 = i1 | 0;
44252 i2 = i2 | 0;
44253 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
44254 i3 = i1 + 480 | 0;
44255 i4 = HEAP32[i3 >> 2] | 0;
44256 i5 = i1 + 488 | 0;
44257 i6 = 0;
44258 while (1) {
44259 if ((i6 | 0) >= (i4 | 0)) {
44260 break;
44261 }
44262 if ((HEAP32[(HEAP32[i5 >> 2] | 0) + (i6 << 2) >> 2] | 0) == (i2 | 0)) {
44263 i7 = 1084;
44264 break;
44265 } else {
44266 i6 = i6 + 1 | 0;
44267 }
44268 }
44269 do {
44270 if ((i7 | 0) == 1084) {
44271 if ((i6 | 0) == (i4 | 0)) {
44272 break;
44273 }
44274 i8 = i1 + 252 | 0;
44275 HEAP32[i8 >> 2] = 1;
44276 return;
44277 }
44278 } while (0);
44279 i6 = i1 + 484 | 0;
44280 do {
44281 if ((i4 | 0) == (HEAP32[i6 >> 2] | 0)) {
44282 i7 = (i4 | 0) == 0 ? 1 : i4 << 1;
44283 if ((i4 | 0) >= (i7 | 0)) {
44284 i9 = i4;
44285 break;
44286 }
44287 if ((i7 | 0) == 0) {
44288 i10 = 0;
44289 i11 = i4;
44290 } else {
44291 i12 = __Z22btAlignedAllocInternalji(i7 << 2, 16) | 0;
44292 i10 = i12;
44293 i11 = HEAP32[i3 >> 2] | 0;
44294 }
44295 if ((i11 | 0) > 0) {
44296 i12 = 0;
44297 do {
44298 i13 = i10 + (i12 << 2) | 0;
44299 if ((i13 | 0) != 0) {
44300 HEAP32[i13 >> 2] = HEAP32[(HEAP32[i5 >> 2] | 0) + (i12 << 2) >> 2];
44301 }
44302 i12 = i12 + 1 | 0;
44303 } while ((i12 | 0) < (i11 | 0));
44304 }
44305 i12 = HEAP32[i5 >> 2] | 0;
44306 i13 = i1 + 492 | 0;
44307 if ((i12 | 0) == 0) {
44308 i14 = i11;
44309 } else {
44310 if ((HEAP8[i13] | 0) == 0) {
44311 i15 = i11;
44312 } else {
44313 __Z21btAlignedFreeInternalPv(i12);
44314 i15 = HEAP32[i3 >> 2] | 0;
44315 }
44316 HEAP32[i5 >> 2] = 0;
44317 i14 = i15;
44318 }
44319 HEAP8[i13] = 1;
44320 HEAP32[i5 >> 2] = i10;
44321 HEAP32[i6 >> 2] = i7;
44322 i9 = i14;
44323 } else {
44324 i9 = i4;
44325 }
44326 } while (0);
44327 i4 = (HEAP32[i5 >> 2] | 0) + (i9 << 2) | 0;
44328 if ((i4 | 0) != 0) {
44329 HEAP32[i4 >> 2] = i2;
44330 }
44331 HEAP32[i3 >> 2] = i9 + 1;
44332 i8 = i1 + 252 | 0;
44333 HEAP32[i8 >> 2] = 1;
44334 return;
44335 }
44336 function ___dynamic_cast(i1, i2, i3, i4) {
44337 i1 = i1 | 0;
44338 i2 = i2 | 0;
44339 i3 = i3 | 0;
44340 i4 = i4 | 0;
44341 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
44342 i5 = STACKTOP;
44343 STACKTOP = STACKTOP + 56 | 0;
44344 i6 = i5 | 0;
44345 i7 = HEAP32[i1 >> 2] | 0;
44346 i8 = i1 + (HEAP32[i7 - 8 >> 2] | 0) | 0;
44347 i9 = HEAP32[i7 - 4 >> 2] | 0;
44348 i7 = i9;
44349 HEAP32[i6 >> 2] = i3;
44350 HEAP32[i6 + 4 >> 2] = i1;
44351 HEAP32[i6 + 8 >> 2] = i2;
44352 HEAP32[i6 + 12 >> 2] = i4;
44353 i4 = i6 + 16 | 0;
44354 i2 = i6 + 20 | 0;
44355 i1 = i6 + 24 | 0;
44356 i10 = i6 + 28 | 0;
44357 i11 = i6 + 32 | 0;
44358 i12 = i6 + 40 | 0;
44359 _memset(i4 | 0, 0, 39);
44360 if ((i9 | 0) == (i3 | 0)) {
44361 HEAP32[i6 + 48 >> 2] = 1;
44362 FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i9 >> 2] | 0) + 20 >> 2] & 15](i7, i6, i8, i8, 1, 0);
44363 STACKTOP = i5;
44364 return ((HEAP32[i1 >> 2] | 0) == 1 ? i8 : 0) | 0;
44365 }
44366 FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i9 >> 2] | 0) + 24 >> 2] & 63](i7, i6, i8, 1, 0);
44367 i8 = HEAP32[i6 + 36 >> 2] | 0;
44368 if ((i8 | 0) == 1) {
44369 do {
44370 if ((HEAP32[i1 >> 2] | 0) != 1) {
44371 if ((HEAP32[i12 >> 2] | 0) != 0) {
44372 i13 = 0;
44373 STACKTOP = i5;
44374 return i13 | 0;
44375 }
44376 if ((HEAP32[i10 >> 2] | 0) != 1) {
44377 i13 = 0;
44378 STACKTOP = i5;
44379 return i13 | 0;
44380 }
44381 if ((HEAP32[i11 >> 2] | 0) == 1) {
44382 break;
44383 } else {
44384 i13 = 0;
44385 }
44386 STACKTOP = i5;
44387 return i13 | 0;
44388 }
44389 } while (0);
44390 i13 = HEAP32[i4 >> 2] | 0;
44391 STACKTOP = i5;
44392 return i13 | 0;
44393 } else if ((i8 | 0) == 0) {
44394 if ((HEAP32[i12 >> 2] | 0) != 1) {
44395 i13 = 0;
44396 STACKTOP = i5;
44397 return i13 | 0;
44398 }
44399 if ((HEAP32[i10 >> 2] | 0) != 1) {
44400 i13 = 0;
44401 STACKTOP = i5;
44402 return i13 | 0;
44403 }
44404 i13 = (HEAP32[i11 >> 2] | 0) == 1 ? HEAP32[i2 >> 2] | 0 : 0;
44405 STACKTOP = i5;
44406 return i13 | 0;
44407 } else {
44408 i13 = 0;
44409 STACKTOP = i5;
44410 return i13 | 0;
44411 }
44412 return 0;
44413 }
44414 function __ZN20btAlignedObjectArrayI16btBroadphasePairE21expandNonInitializingEv(i1) {
44415 i1 = i1 | 0;
44416 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
44417 i2 = i1 + 4 | 0;
44418 i3 = HEAP32[i2 >> 2] | 0;
44419 i4 = i1 + 8 | 0;
44420 if ((i3 | 0) != (HEAP32[i4 >> 2] | 0)) {
44421 i5 = i3;
44422 i6 = i5 + 1 | 0;
44423 HEAP32[i2 >> 2] = i6;
44424 i7 = i1 + 12 | 0;
44425 i8 = HEAP32[i7 >> 2] | 0;
44426 i9 = i8 + (i3 << 4) | 0;
44427 return i9 | 0;
44428 }
44429 i10 = (i3 | 0) == 0 ? 1 : i3 << 1;
44430 if ((i3 | 0) >= (i10 | 0)) {
44431 i5 = i3;
44432 i6 = i5 + 1 | 0;
44433 HEAP32[i2 >> 2] = i6;
44434 i7 = i1 + 12 | 0;
44435 i8 = HEAP32[i7 >> 2] | 0;
44436 i9 = i8 + (i3 << 4) | 0;
44437 return i9 | 0;
44438 }
44439 if ((i10 | 0) == 0) {
44440 i11 = 0;
44441 i12 = i3;
44442 } else {
44443 i13 = __Z22btAlignedAllocInternalji(i10 << 4, 16) | 0;
44444 i11 = i13;
44445 i12 = HEAP32[i2 >> 2] | 0;
44446 }
44447 i13 = i1 + 12 | 0;
44448 if ((i12 | 0) > 0) {
44449 i14 = 0;
44450 do {
44451 i15 = HEAP32[i13 >> 2] | 0;
44452 HEAP32[i11 + (i14 << 4) >> 2] = HEAP32[i15 + (i14 << 4) >> 2];
44453 HEAP32[i11 + (i14 << 4) + 4 >> 2] = HEAP32[i15 + (i14 << 4) + 4 >> 2];
44454 HEAP32[i11 + (i14 << 4) + 8 >> 2] = HEAP32[i15 + (i14 << 4) + 8 >> 2];
44455 HEAP32[i11 + (i14 << 4) + 12 >> 2] = HEAP32[i15 + (i14 << 4) + 12 >> 2];
44456 i14 = i14 + 1 | 0;
44457 } while ((i14 | 0) < (i12 | 0));
44458 }
44459 i14 = HEAP32[i13 >> 2] | 0;
44460 i15 = i1 + 16 | 0;
44461 if ((i14 | 0) == 0) {
44462 i16 = i12;
44463 } else {
44464 if ((HEAP8[i15] | 0) == 0) {
44465 i17 = i12;
44466 } else {
44467 __Z21btAlignedFreeInternalPv(i14);
44468 i17 = HEAP32[i2 >> 2] | 0;
44469 }
44470 HEAP32[i13 >> 2] = 0;
44471 i16 = i17;
44472 }
44473 HEAP8[i15] = 1;
44474 HEAP32[i13 >> 2] = i11;
44475 HEAP32[i4 >> 2] = i10;
44476 i5 = i16;
44477 i6 = i5 + 1 | 0;
44478 HEAP32[i2 >> 2] = i6;
44479 i7 = i1 + 12 | 0;
44480 i8 = HEAP32[i7 >> 2] | 0;
44481 i9 = i8 + (i3 << 4) | 0;
44482 return i9 | 0;
44483 }
44484 function __ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi(i1, i2, i3, i4) {
44485 i1 = i1 | 0;
44486 i2 = i2 | 0;
44487 i3 = i3 | 0;
44488 i4 = i4 | 0;
44489 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
44490 if ((i1 | 0) == (HEAP32[i2 + 8 >> 2] | 0)) {
44491 i5 = i2 + 16 | 0;
44492 i6 = HEAP32[i5 >> 2] | 0;
44493 if ((i6 | 0) == 0) {
44494 HEAP32[i5 >> 2] = i3;
44495 HEAP32[i2 + 24 >> 2] = i4;
44496 HEAP32[i2 + 36 >> 2] = 1;
44497 return;
44498 }
44499 if ((i6 | 0) != (i3 | 0)) {
44500 i6 = i2 + 36 | 0;
44501 HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 1;
44502 HEAP32[i2 + 24 >> 2] = 2;
44503 HEAP8[i2 + 54 | 0] = 1;
44504 return;
44505 }
44506 i6 = i2 + 24 | 0;
44507 if ((HEAP32[i6 >> 2] | 0) != 2) {
44508 return;
44509 }
44510 HEAP32[i6 >> 2] = i4;
44511 return;
44512 }
44513 i6 = HEAP32[i1 + 12 >> 2] | 0;
44514 i5 = i1 + 16 + (i6 << 3) | 0;
44515 i7 = HEAP32[i1 + 20 >> 2] | 0;
44516 i8 = i7 >> 8;
44517 if ((i7 & 1 | 0) == 0) {
44518 i9 = i8;
44519 } else {
44520 i9 = HEAP32[(HEAP32[i3 >> 2] | 0) + i8 >> 2] | 0;
44521 }
44522 i8 = HEAP32[i1 + 16 >> 2] | 0;
44523 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i8 >> 2] | 0) + 28 >> 2] & 127](i8, i2, i3 + i9 | 0, (i7 & 2 | 0) != 0 ? i4 : 2);
44524 if ((i6 | 0) <= 1) {
44525 return;
44526 }
44527 i6 = i2 + 54 | 0;
44528 i7 = i3;
44529 i9 = i1 + 24 | 0;
44530 while (1) {
44531 i1 = HEAP32[i9 + 4 >> 2] | 0;
44532 i8 = i1 >> 8;
44533 if ((i1 & 1 | 0) == 0) {
44534 i10 = i8;
44535 } else {
44536 i10 = HEAP32[(HEAP32[i7 >> 2] | 0) + i8 >> 2] | 0;
44537 }
44538 i8 = HEAP32[i9 >> 2] | 0;
44539 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i8 >> 2] | 0) + 28 >> 2] & 127](i8, i2, i3 + i10 | 0, (i1 & 2 | 0) != 0 ? i4 : 2);
44540 if ((HEAP8[i6] & 1) != 0) {
44541 i11 = 2027;
44542 break;
44543 }
44544 i1 = i9 + 8 | 0;
44545 if (i1 >>> 0 < i5 >>> 0) {
44546 i9 = i1;
44547 } else {
44548 i11 = 2028;
44549 break;
44550 }
44551 }
44552 if ((i11 | 0) == 2027) {
44553 return;
44554 } else if ((i11 | 0) == 2028) {
44555 return;
44556 }
44557 }
44558 function __ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb(i1, i2, i3) {
44559 i1 = i1 | 0;
44560 i2 = i2 | 0;
44561 i3 = i3 | 0;
44562 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0;
44563 i4 = i2 + 40 | 0;
44564 HEAPF32[i1 + 4 >> 2] = +HEAPF32[i4 >> 2];
44565 i5 = HEAP32[i2 >> 2] | 0;
44566 HEAP32[i1 + 76 >> 2] = i5;
44567 if (i3) {
44568 i3 = i1 + 44 | 0;
44569 i6 = i2 + 8 | 0;
44570 HEAP32[i3 >> 2] = HEAP32[i6 >> 2];
44571 HEAP32[i3 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
44572 HEAP32[i3 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
44573 HEAP32[i3 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
44574 i7 = i1 + 60 | 0;
44575 i8 = i2 + 24 | 0;
44576 i9 = i7;
44577 i10 = i8;
44578 HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
44579 HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
44580 HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
44581 HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
44582 d11 = +HEAPF32[i4 >> 2];
44583 return +d11;
44584 } else {
44585 d12 = +HEAPF32[i2 + 8 >> 2];
44586 d13 = +HEAPF32[i2 + 12 >> 2];
44587 d14 = +HEAPF32[i2 + 16 >> 2];
44588 d15 = d12 * +HEAPF32[i5 + 20 >> 2] + d13 * +HEAPF32[i5 + 24 >> 2] + d14 * +HEAPF32[i5 + 28 >> 2];
44589 d16 = d12 * +HEAPF32[i5 + 36 >> 2] + d13 * +HEAPF32[i5 + 40 >> 2] + d14 * +HEAPF32[i5 + 44 >> 2];
44590 HEAPF32[i1 + 44 >> 2] = +HEAPF32[i5 + 4 >> 2] * d12 + +HEAPF32[i5 + 8 >> 2] * d13 + +HEAPF32[i5 + 12 >> 2] * d14;
44591 HEAPF32[i1 + 48 >> 2] = d15;
44592 HEAPF32[i1 + 52 >> 2] = d16;
44593 HEAPF32[i1 + 56 >> 2] = 0.0;
44594 i7 = i1 + 60 | 0;
44595 i8 = i2 + 24 | 0;
44596 i9 = i7;
44597 i10 = i8;
44598 HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
44599 HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
44600 HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
44601 HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
44602 d11 = +HEAPF32[i4 >> 2];
44603 return +d11;
44604 }
44605 return 0.0;
44606 }
44607 function __ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf(i1, d2) {
44608 i1 = i1 | 0;
44609 d2 = +d2;
44610 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
44611 __ZN15CProfileManager13Start_ProfileEPKc(536);
44612 i3 = i1 | 0;
44613 i4 = HEAP32[i1 + 92 >> 2] | 0;
44614 if ((i4 | 0) != 0) {
44615 FUNCTION_TABLE_vif[i4 & 31](i3, d2);
44616 }
44617 i4 = i1;
44618 FUNCTION_TABLE_vif[HEAP32[(HEAP32[i4 >> 2] | 0) + 136 >> 2] & 31](i1, d2);
44619 i5 = i1 | 0;
44620 HEAPF32[i1 + 28 >> 2] = d2;
44621 HEAP32[i1 + 32 >> 2] = 0;
44622 HEAP32[i1 + 48 >> 2] = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 16 >> 2] & 127](i5) | 0;
44623 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i1 >> 2] | 0) + 40 >> 2] & 511](i5);
44624 if ((HEAP8[i1 + 44 | 0] | 0) != 0) {
44625 FUNCTION_TABLE_vif[HEAP32[(HEAP32[i4 >> 2] | 0) + 144 >> 2] & 31](i1, d2);
44626 }
44627 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i1 >> 2] | 0) + 148 >> 2] & 511](i1);
44628 HEAPF32[i1 + 112 >> 2] = d2;
44629 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 152 >> 2] & 127](i1, i1 + 100 | 0);
44630 FUNCTION_TABLE_vif[HEAP32[(HEAP32[i4 >> 2] | 0) + 140 >> 2] & 31](i1, d2);
44631 __ZN15CProfileManager13Start_ProfileEPKc(456);
44632 i4 = i1 + 248 | 0;
44633 if ((HEAP32[i4 >> 2] | 0) > 0) {
44634 i6 = i1 + 256 | 0;
44635 i7 = 0;
44636 do {
44637 i8 = HEAP32[(HEAP32[i6 >> 2] | 0) + (i7 << 2) >> 2] | 0;
44638 FUNCTION_TABLE_viif[HEAP32[(HEAP32[i8 >> 2] | 0) + 8 >> 2] & 3](i8, i5, d2);
44639 i7 = i7 + 1 | 0;
44640 } while ((i7 | 0) < (HEAP32[i4 >> 2] | 0));
44641 }
44642 __ZN15CProfileManager12Stop_ProfileEv();
44643 __ZN23btDiscreteDynamicsWorld21updateActivationStateEf(i1, d2);
44644 i4 = HEAP32[i1 + 88 >> 2] | 0;
44645 if ((i4 | 0) == 0) {
44646 __ZN15CProfileManager12Stop_ProfileEv();
44647 return;
44648 }
44649 FUNCTION_TABLE_vif[i4 & 31](i3, d2);
44650 __ZN15CProfileManager12Stop_ProfileEv();
44651 return;
44652 }
44653 function __ZN23btDiscreteDynamicsWorldD2Ev(i1) {
44654 i1 = i1 | 0;
44655 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
44656 HEAP32[i1 >> 2] = 3272;
44657 if ((HEAP8[i1 + 240 | 0] | 0) != 0) {
44658 i2 = i1 + 176 | 0;
44659 i3 = HEAP32[i2 >> 2] | 0;
44660 FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
44661 __Z21btAlignedFreeInternalPv(HEAP32[i2 >> 2] | 0);
44662 }
44663 if ((HEAP8[i1 + 241 | 0] | 0) != 0) {
44664 i2 = i1 + 172 | 0;
44665 i3 = HEAP32[i2 >> 2] | 0;
44666 FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
44667 __Z21btAlignedFreeInternalPv(HEAP32[i2 >> 2] | 0);
44668 }
44669 i2 = i1 + 248 | 0;
44670 i3 = i1 + 256 | 0;
44671 i4 = HEAP32[i3 >> 2] | 0;
44672 i5 = i1 + 260 | 0;
44673 if ((i4 | 0) != 0) {
44674 if ((HEAP8[i5] | 0) != 0) {
44675 __Z21btAlignedFreeInternalPv(i4);
44676 }
44677 HEAP32[i3 >> 2] = 0;
44678 }
44679 HEAP8[i5] = 1;
44680 HEAP32[i3 >> 2] = 0;
44681 HEAP32[i2 >> 2] = 0;
44682 HEAP32[i1 + 252 >> 2] = 0;
44683 i2 = i1 + 204 | 0;
44684 i3 = i1 + 212 | 0;
44685 i5 = HEAP32[i3 >> 2] | 0;
44686 i4 = i1 + 216 | 0;
44687 if ((i5 | 0) != 0) {
44688 if ((HEAP8[i4] | 0) != 0) {
44689 __Z21btAlignedFreeInternalPv(i5);
44690 }
44691 HEAP32[i3 >> 2] = 0;
44692 }
44693 HEAP8[i4] = 1;
44694 HEAP32[i3 >> 2] = 0;
44695 HEAP32[i2 >> 2] = 0;
44696 HEAP32[i1 + 208 >> 2] = 0;
44697 i2 = i1 + 184 | 0;
44698 i3 = i1 + 192 | 0;
44699 i4 = HEAP32[i3 >> 2] | 0;
44700 i5 = i1 + 196 | 0;
44701 if ((i4 | 0) == 0) {
44702 HEAP8[i5] = 1;
44703 HEAP32[i3 >> 2] = 0;
44704 HEAP32[i2 >> 2] = 0;
44705 i6 = i1 + 188 | 0;
44706 HEAP32[i6 >> 2] = 0;
44707 i7 = i1 | 0;
44708 __ZN16btCollisionWorldD2Ev(i7);
44709 return;
44710 }
44711 if ((HEAP8[i5] | 0) != 0) {
44712 __Z21btAlignedFreeInternalPv(i4);
44713 }
44714 HEAP32[i3 >> 2] = 0;
44715 HEAP8[i5] = 1;
44716 HEAP32[i3 >> 2] = 0;
44717 HEAP32[i2 >> 2] = 0;
44718 i6 = i1 + 188 | 0;
44719 HEAP32[i6 >> 2] = 0;
44720 i7 = i1 | 0;
44721 __ZN16btCollisionWorldD2Ev(i7);
44722 return;
44723 }
44724 function __ZNK12gjkepa2_impl13MinkowskiDiff8Support1ERK9btVector3(i1, i2, i3) {
44725 i1 = i1 | 0;
44726 i2 = i2 | 0;
44727 i3 = i3 | 0;
44728 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0;
44729 i4 = STACKTOP;
44730 STACKTOP = STACKTOP + 32 | 0;
44731 i5 = i4 | 0;
44732 i6 = i4 + 16 | 0;
44733 i7 = i2 + 120 | 0;
44734 i8 = (HEAP32[i2 + 4 >> 2] | 0) + (HEAP32[i7 + 4 >> 2] | 0) | 0;
44735 i9 = HEAP32[i7 >> 2] | 0;
44736 if ((i9 & 1 | 0) == 0) {
44737 i10 = i9;
44738 } else {
44739 i10 = HEAP32[(HEAP32[i8 >> 2] | 0) + (i9 - 1) >> 2] | 0;
44740 }
44741 d11 = +HEAPF32[i3 >> 2];
44742 d12 = +HEAPF32[i3 + 4 >> 2];
44743 d13 = +HEAPF32[i3 + 8 >> 2];
44744 d14 = d11 * +HEAPF32[i2 + 24 >> 2] + d12 * +HEAPF32[i2 + 28 >> 2] + d13 * +HEAPF32[i2 + 32 >> 2];
44745 d15 = d11 * +HEAPF32[i2 + 40 >> 2] + d12 * +HEAPF32[i2 + 44 >> 2] + d13 * +HEAPF32[i2 + 48 >> 2];
44746 HEAPF32[i6 >> 2] = +HEAPF32[i2 + 8 >> 2] * d11 + +HEAPF32[i2 + 12 >> 2] * d12 + +HEAPF32[i2 + 16 >> 2] * d13;
44747 HEAPF32[i6 + 4 >> 2] = d14;
44748 HEAPF32[i6 + 8 >> 2] = d15;
44749 HEAPF32[i6 + 12 >> 2] = 0.0;
44750 FUNCTION_TABLE_viii[i10 & 127](i5, i8, i6);
44751 d15 = +HEAPF32[i5 >> 2];
44752 d14 = +HEAPF32[i5 + 4 >> 2];
44753 d13 = +HEAPF32[i5 + 8 >> 2];
44754 d12 = +HEAPF32[i2 + 108 >> 2] + (d15 * +HEAPF32[i2 + 72 >> 2] + d14 * +HEAPF32[i2 + 76 >> 2] + d13 * +HEAPF32[i2 + 80 >> 2]);
44755 d11 = +HEAPF32[i2 + 112 >> 2] + (d15 * +HEAPF32[i2 + 88 >> 2] + d14 * +HEAPF32[i2 + 92 >> 2] + d13 * +HEAPF32[i2 + 96 >> 2]);
44756 HEAPF32[i1 >> 2] = +HEAPF32[i2 + 104 >> 2] + (+HEAPF32[i2 + 56 >> 2] * d15 + +HEAPF32[i2 + 60 >> 2] * d14 + +HEAPF32[i2 + 64 >> 2] * d13);
44757 HEAPF32[i1 + 4 >> 2] = d12;
44758 HEAPF32[i1 + 8 >> 2] = d11;
44759 HEAPF32[i1 + 12 >> 2] = 0.0;
44760 STACKTOP = i4;
44761 return;
44762 }
44763 function __ZN23btDiscreteDynamicsWorld20serializeRigidBodiesEP12btSerializer(i1, i2) {
44764 i1 = i1 | 0;
44765 i2 = i2 | 0;
44766 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
44767 i3 = i1 + 8 | 0;
44768 i4 = HEAP32[i3 >> 2] | 0;
44769 if ((i4 | 0) > 0) {
44770 i5 = i1 + 16 | 0;
44771 i6 = i2;
44772 i7 = i2;
44773 i8 = 0;
44774 i9 = i4;
44775 while (1) {
44776 i4 = HEAP32[(HEAP32[i5 >> 2] | 0) + (i8 << 2) >> 2] | 0;
44777 if ((HEAP32[i4 + 232 >> 2] & 2 | 0) == 0) {
44778 i10 = i9;
44779 } else {
44780 i11 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i4 >> 2] | 0) + 16 >> 2] & 127](i4) | 0;
44781 i12 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 16 >> 2] & 31](i2, i11, 1) | 0;
44782 i11 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i4 >> 2] | 0) + 20 >> 2] & 31](i4, HEAP32[i12 + 8 >> 2] | 0, i2) | 0;
44783 FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 20 >> 2] & 63](i2, i12, i11, 1497645650, i4);
44784 i10 = HEAP32[i3 >> 2] | 0;
44785 }
44786 i4 = i8 + 1 | 0;
44787 if ((i4 | 0) < (i10 | 0)) {
44788 i8 = i4;
44789 i9 = i10;
44790 } else {
44791 break;
44792 }
44793 }
44794 }
44795 i10 = i1 + 184 | 0;
44796 if ((HEAP32[i10 >> 2] | 0) <= 0) {
44797 return;
44798 }
44799 i9 = i1 + 192 | 0;
44800 i1 = i2;
44801 i8 = i2;
44802 i3 = 0;
44803 do {
44804 i7 = HEAP32[(HEAP32[i9 >> 2] | 0) + (i3 << 2) >> 2] | 0;
44805 i6 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i7 >> 2] | 0) + 36 >> 2] & 127](i7) | 0;
44806 i5 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 16 >> 2] & 31](i2, i6, 1) | 0;
44807 i6 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 40 >> 2] & 31](i7, HEAP32[i5 + 8 >> 2] | 0, i2) | 0;
44808 FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i8 >> 2] | 0) + 20 >> 2] & 63](i2, i5, i6, 1397641027, i7);
44809 i3 = i3 + 1 | 0;
44810 } while ((i3 | 0) < (HEAP32[i10 >> 2] | 0));
44811 return;
44812 }
44813 function __ZN23btDiscreteDynamicsWorld13addConstraintEP17btTypedConstraintb(i1, i2, i3) {
44814 i1 = i1 | 0;
44815 i2 = i2 | 0;
44816 i3 = i3 | 0;
44817 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
44818 i4 = i1 + 184 | 0;
44819 i5 = HEAP32[i4 >> 2] | 0;
44820 i6 = i1 + 188 | 0;
44821 do {
44822 if ((i5 | 0) == (HEAP32[i6 >> 2] | 0)) {
44823 i7 = (i5 | 0) == 0 ? 1 : i5 << 1;
44824 if ((i5 | 0) >= (i7 | 0)) {
44825 i8 = i5;
44826 break;
44827 }
44828 if ((i7 | 0) == 0) {
44829 i9 = 0;
44830 i10 = i5;
44831 } else {
44832 i11 = __Z22btAlignedAllocInternalji(i7 << 2, 16) | 0;
44833 i9 = i11;
44834 i10 = HEAP32[i4 >> 2] | 0;
44835 }
44836 i11 = i1 + 192 | 0;
44837 if ((i10 | 0) > 0) {
44838 i12 = 0;
44839 do {
44840 i13 = i9 + (i12 << 2) | 0;
44841 if ((i13 | 0) != 0) {
44842 HEAP32[i13 >> 2] = HEAP32[(HEAP32[i11 >> 2] | 0) + (i12 << 2) >> 2];
44843 }
44844 i12 = i12 + 1 | 0;
44845 } while ((i12 | 0) < (i10 | 0));
44846 }
44847 i12 = HEAP32[i11 >> 2] | 0;
44848 i13 = i1 + 196 | 0;
44849 if ((i12 | 0) == 0) {
44850 i14 = i10;
44851 } else {
44852 if ((HEAP8[i13] | 0) == 0) {
44853 i15 = i10;
44854 } else {
44855 __Z21btAlignedFreeInternalPv(i12);
44856 i15 = HEAP32[i4 >> 2] | 0;
44857 }
44858 HEAP32[i11 >> 2] = 0;
44859 i14 = i15;
44860 }
44861 HEAP8[i13] = 1;
44862 HEAP32[i11 >> 2] = i9;
44863 HEAP32[i6 >> 2] = i7;
44864 i8 = i14;
44865 } else {
44866 i8 = i5;
44867 }
44868 } while (0);
44869 i5 = (HEAP32[i1 + 192 >> 2] | 0) + (i8 << 2) | 0;
44870 if ((i5 | 0) != 0) {
44871 HEAP32[i5 >> 2] = i2;
44872 }
44873 HEAP32[i4 >> 2] = i8 + 1;
44874 if (!i3) {
44875 return;
44876 }
44877 __ZN11btRigidBody16addConstraintRefEP17btTypedConstraint(HEAP32[i2 + 24 >> 2] | 0, i2);
44878 __ZN11btRigidBody16addConstraintRefEP17btTypedConstraint(HEAP32[i2 + 28 >> 2] | 0, i2);
44879 return;
44880 }
44881 function __ZNK23btPolyhedralConvexShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(i1, i2, i3, i4) {
44882 i1 = i1 | 0;
44883 i2 = i2 | 0;
44884 i3 = i3 | 0;
44885 i4 = i4 | 0;
44886 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, d20 = 0.0;
44887 i5 = STACKTOP;
44888 STACKTOP = STACKTOP + 16 | 0;
44889 i6 = i5 | 0;
44890 if ((i4 | 0) > 0) {
44891 i7 = 0;
44892 } else {
44893 STACKTOP = i5;
44894 return;
44895 }
44896 do {
44897 HEAPF32[i3 + (i7 << 4) + 12 >> 2] = -999999984306749400.0;
44898 i7 = i7 + 1 | 0;
44899 } while ((i7 | 0) < (i4 | 0));
44900 i7 = i1;
44901 i8 = i1;
44902 i9 = i6 | 0;
44903 i10 = i6 + 4 | 0;
44904 i11 = i6 + 8 | 0;
44905 i12 = i6;
44906 i13 = 0;
44907 do {
44908 if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i7 >> 2] | 0) + 88 >> 2] & 127](i1) | 0) > 0) {
44909 i14 = i2 + (i13 << 4) | 0;
44910 i15 = i2 + (i13 << 4) + 4 | 0;
44911 i16 = i2 + (i13 << 4) + 8 | 0;
44912 i17 = i3 + (i13 << 4) + 12 | 0;
44913 i18 = i3 + (i13 << 4) | 0;
44914 i19 = 0;
44915 do {
44916 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i8 >> 2] | 0) + 100 >> 2] & 127](i1, i19, i6);
44917 d20 = +HEAPF32[i14 >> 2] * +HEAPF32[i9 >> 2] + +HEAPF32[i15 >> 2] * +HEAPF32[i10 >> 2] + +HEAPF32[i16 >> 2] * +HEAPF32[i11 >> 2];
44918 if (d20 > +HEAPF32[i17 >> 2]) {
44919 HEAP32[i18 >> 2] = HEAP32[i12 >> 2];
44920 HEAP32[i18 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
44921 HEAP32[i18 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
44922 HEAP32[i18 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
44923 HEAPF32[i17 >> 2] = d20;
44924 }
44925 i19 = i19 + 1 | 0;
44926 } while ((i19 | 0) < (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i7 >> 2] | 0) + 88 >> 2] & 127](i1) | 0));
44927 }
44928 i13 = i13 + 1 | 0;
44929 } while ((i13 | 0) < (i4 | 0));
44930 STACKTOP = i5;
44931 return;
44932 }
44933 function __ZN11btRigidBody12applyImpulseERK9btVector3S2_(i1, i2, i3) {
44934 i1 = i1 | 0;
44935 i2 = i2 | 0;
44936 i3 = i3 | 0;
44937 var d4 = 0.0, i5 = 0, d6 = 0.0, i7 = 0, d8 = 0.0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0;
44938 d4 = +HEAPF32[i1 + 336 >> 2];
44939 if (d4 == 0.0) {
44940 return;
44941 }
44942 i5 = i2 | 0;
44943 d6 = +HEAPF32[i1 + 340 >> 2];
44944 i7 = i2 + 4 | 0;
44945 d8 = +HEAPF32[i1 + 344 >> 2];
44946 i9 = i2 + 8 | 0;
44947 d10 = +HEAPF32[i1 + 348 >> 2];
44948 d11 = d4 * +HEAPF32[i7 >> 2] * d8;
44949 d12 = d4 * +HEAPF32[i9 >> 2] * d10;
44950 i2 = i1 + 304 | 0;
44951 HEAPF32[i2 >> 2] = d4 * +HEAPF32[i5 >> 2] * d6 + +HEAPF32[i2 >> 2];
44952 i2 = i1 + 308 | 0;
44953 HEAPF32[i2 >> 2] = d11 + +HEAPF32[i2 >> 2];
44954 i2 = i1 + 312 | 0;
44955 HEAPF32[i2 >> 2] = d12 + +HEAPF32[i2 >> 2];
44956 i2 = i1 + 536 | 0;
44957 if ((i2 | 0) == 0) {
44958 return;
44959 }
44960 d12 = d6 * +HEAPF32[i5 >> 2];
44961 d6 = d8 * +HEAPF32[i7 >> 2];
44962 d8 = d10 * +HEAPF32[i9 >> 2];
44963 d10 = +HEAPF32[i3 + 4 >> 2];
44964 d11 = +HEAPF32[i3 + 8 >> 2];
44965 d4 = d10 * d8 - d6 * d11;
44966 d13 = +HEAPF32[i3 >> 2];
44967 d14 = d12 * d11 - d8 * d13;
44968 d8 = d6 * d13 - d12 * d10;
44969 d10 = (d4 * +HEAPF32[i1 + 272 >> 2] + d14 * +HEAPF32[i1 + 276 >> 2] + d8 * +HEAPF32[i1 + 280 >> 2]) * +HEAPF32[i1 + 540 >> 2];
44970 d12 = (d4 * +HEAPF32[i1 + 288 >> 2] + d14 * +HEAPF32[i1 + 292 >> 2] + d8 * +HEAPF32[i1 + 296 >> 2]) * +HEAPF32[i1 + 544 >> 2];
44971 i3 = i1 + 320 | 0;
44972 HEAPF32[i3 >> 2] = (+HEAPF32[i1 + 256 >> 2] * d4 + +HEAPF32[i1 + 260 >> 2] * d14 + d8 * +HEAPF32[i1 + 264 >> 2]) * +HEAPF32[i2 >> 2] + +HEAPF32[i3 >> 2];
44973 i3 = i1 + 324 | 0;
44974 HEAPF32[i3 >> 2] = d10 + +HEAPF32[i3 >> 2];
44975 i3 = i1 + 328 | 0;
44976 HEAPF32[i3 >> 2] = d12 + +HEAPF32[i3 >> 2];
44977 return;
44978 }
44979 function __ZN34btSphereTriangleCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(i1, i2) {
44980 i1 = i1 | 0;
44981 i2 = i2 | 0;
44982 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
44983 i3 = i1 + 12 | 0;
44984 if ((HEAP32[i3 >> 2] | 0) == 0) {
44985 return;
44986 }
44987 if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
44988 return;
44989 }
44990 i1 = i2 + 4 | 0;
44991 i4 = HEAP32[i1 >> 2] | 0;
44992 i5 = i2 + 8 | 0;
44993 do {
44994 if ((i4 | 0) == (HEAP32[i5 >> 2] | 0)) {
44995 i6 = (i4 | 0) == 0 ? 1 : i4 << 1;
44996 if ((i4 | 0) >= (i6 | 0)) {
44997 i7 = i4;
44998 break;
44999 }
45000 if ((i6 | 0) == 0) {
45001 i8 = 0;
45002 i9 = i4;
45003 } else {
45004 i10 = __Z22btAlignedAllocInternalji(i6 << 2, 16) | 0;
45005 i8 = i10;
45006 i9 = HEAP32[i1 >> 2] | 0;
45007 }
45008 i10 = i2 + 12 | 0;
45009 if ((i9 | 0) > 0) {
45010 i11 = 0;
45011 do {
45012 i12 = i8 + (i11 << 2) | 0;
45013 if ((i12 | 0) != 0) {
45014 HEAP32[i12 >> 2] = HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 2) >> 2];
45015 }
45016 i11 = i11 + 1 | 0;
45017 } while ((i11 | 0) < (i9 | 0));
45018 }
45019 i11 = HEAP32[i10 >> 2] | 0;
45020 i12 = i2 + 16 | 0;
45021 if ((i11 | 0) == 0) {
45022 i13 = i9;
45023 } else {
45024 if ((HEAP8[i12] | 0) == 0) {
45025 i14 = i9;
45026 } else {
45027 __Z21btAlignedFreeInternalPv(i11);
45028 i14 = HEAP32[i1 >> 2] | 0;
45029 }
45030 HEAP32[i10 >> 2] = 0;
45031 i13 = i14;
45032 }
45033 HEAP8[i12] = 1;
45034 HEAP32[i10 >> 2] = i8;
45035 HEAP32[i5 >> 2] = i6;
45036 i7 = i13;
45037 } else {
45038 i7 = i4;
45039 }
45040 } while (0);
45041 i4 = (HEAP32[i2 + 12 >> 2] | 0) + (i7 << 2) | 0;
45042 if ((i4 | 0) != 0) {
45043 HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
45044 }
45045 HEAP32[i1 >> 2] = i7 + 1;
45046 return;
45047 }
45048 function __ZN32btSphereSphereCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(i1, i2) {
45049 i1 = i1 | 0;
45050 i2 = i2 | 0;
45051 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
45052 i3 = i1 + 12 | 0;
45053 if ((HEAP32[i3 >> 2] | 0) == 0) {
45054 return;
45055 }
45056 if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
45057 return;
45058 }
45059 i1 = i2 + 4 | 0;
45060 i4 = HEAP32[i1 >> 2] | 0;
45061 i5 = i2 + 8 | 0;
45062 do {
45063 if ((i4 | 0) == (HEAP32[i5 >> 2] | 0)) {
45064 i6 = (i4 | 0) == 0 ? 1 : i4 << 1;
45065 if ((i4 | 0) >= (i6 | 0)) {
45066 i7 = i4;
45067 break;
45068 }
45069 if ((i6 | 0) == 0) {
45070 i8 = 0;
45071 i9 = i4;
45072 } else {
45073 i10 = __Z22btAlignedAllocInternalji(i6 << 2, 16) | 0;
45074 i8 = i10;
45075 i9 = HEAP32[i1 >> 2] | 0;
45076 }
45077 i10 = i2 + 12 | 0;
45078 if ((i9 | 0) > 0) {
45079 i11 = 0;
45080 do {
45081 i12 = i8 + (i11 << 2) | 0;
45082 if ((i12 | 0) != 0) {
45083 HEAP32[i12 >> 2] = HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 2) >> 2];
45084 }
45085 i11 = i11 + 1 | 0;
45086 } while ((i11 | 0) < (i9 | 0));
45087 }
45088 i11 = HEAP32[i10 >> 2] | 0;
45089 i12 = i2 + 16 | 0;
45090 if ((i11 | 0) == 0) {
45091 i13 = i9;
45092 } else {
45093 if ((HEAP8[i12] | 0) == 0) {
45094 i14 = i9;
45095 } else {
45096 __Z21btAlignedFreeInternalPv(i11);
45097 i14 = HEAP32[i1 >> 2] | 0;
45098 }
45099 HEAP32[i10 >> 2] = 0;
45100 i13 = i14;
45101 }
45102 HEAP8[i12] = 1;
45103 HEAP32[i10 >> 2] = i8;
45104 HEAP32[i5 >> 2] = i6;
45105 i7 = i13;
45106 } else {
45107 i7 = i4;
45108 }
45109 } while (0);
45110 i4 = (HEAP32[i2 + 12 >> 2] | 0) + (i7 << 2) | 0;
45111 if ((i4 | 0) != 0) {
45112 HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
45113 }
45114 HEAP32[i1 >> 2] = i7 + 1;
45115 return;
45116 }
45117 function __ZN31btConvexPlaneCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(i1, i2) {
45118 i1 = i1 | 0;
45119 i2 = i2 | 0;
45120 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
45121 i3 = i1 + 12 | 0;
45122 if ((HEAP32[i3 >> 2] | 0) == 0) {
45123 return;
45124 }
45125 if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
45126 return;
45127 }
45128 i1 = i2 + 4 | 0;
45129 i4 = HEAP32[i1 >> 2] | 0;
45130 i5 = i2 + 8 | 0;
45131 do {
45132 if ((i4 | 0) == (HEAP32[i5 >> 2] | 0)) {
45133 i6 = (i4 | 0) == 0 ? 1 : i4 << 1;
45134 if ((i4 | 0) >= (i6 | 0)) {
45135 i7 = i4;
45136 break;
45137 }
45138 if ((i6 | 0) == 0) {
45139 i8 = 0;
45140 i9 = i4;
45141 } else {
45142 i10 = __Z22btAlignedAllocInternalji(i6 << 2, 16) | 0;
45143 i8 = i10;
45144 i9 = HEAP32[i1 >> 2] | 0;
45145 }
45146 i10 = i2 + 12 | 0;
45147 if ((i9 | 0) > 0) {
45148 i11 = 0;
45149 do {
45150 i12 = i8 + (i11 << 2) | 0;
45151 if ((i12 | 0) != 0) {
45152 HEAP32[i12 >> 2] = HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 2) >> 2];
45153 }
45154 i11 = i11 + 1 | 0;
45155 } while ((i11 | 0) < (i9 | 0));
45156 }
45157 i11 = HEAP32[i10 >> 2] | 0;
45158 i12 = i2 + 16 | 0;
45159 if ((i11 | 0) == 0) {
45160 i13 = i9;
45161 } else {
45162 if ((HEAP8[i12] | 0) == 0) {
45163 i14 = i9;
45164 } else {
45165 __Z21btAlignedFreeInternalPv(i11);
45166 i14 = HEAP32[i1 >> 2] | 0;
45167 }
45168 HEAP32[i10 >> 2] = 0;
45169 i13 = i14;
45170 }
45171 HEAP8[i12] = 1;
45172 HEAP32[i10 >> 2] = i8;
45173 HEAP32[i5 >> 2] = i6;
45174 i7 = i13;
45175 } else {
45176 i7 = i4;
45177 }
45178 } while (0);
45179 i4 = (HEAP32[i2 + 12 >> 2] | 0) + (i7 << 2) | 0;
45180 if ((i4 | 0) != 0) {
45181 HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
45182 }
45183 HEAP32[i1 >> 2] = i7 + 1;
45184 return;
45185 }
45186 function __ZN26btBoxBoxCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(i1, i2) {
45187 i1 = i1 | 0;
45188 i2 = i2 | 0;
45189 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
45190 i3 = i1 + 12 | 0;
45191 if ((HEAP32[i3 >> 2] | 0) == 0) {
45192 return;
45193 }
45194 if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
45195 return;
45196 }
45197 i1 = i2 + 4 | 0;
45198 i4 = HEAP32[i1 >> 2] | 0;
45199 i5 = i2 + 8 | 0;
45200 do {
45201 if ((i4 | 0) == (HEAP32[i5 >> 2] | 0)) {
45202 i6 = (i4 | 0) == 0 ? 1 : i4 << 1;
45203 if ((i4 | 0) >= (i6 | 0)) {
45204 i7 = i4;
45205 break;
45206 }
45207 if ((i6 | 0) == 0) {
45208 i8 = 0;
45209 i9 = i4;
45210 } else {
45211 i10 = __Z22btAlignedAllocInternalji(i6 << 2, 16) | 0;
45212 i8 = i10;
45213 i9 = HEAP32[i1 >> 2] | 0;
45214 }
45215 i10 = i2 + 12 | 0;
45216 if ((i9 | 0) > 0) {
45217 i11 = 0;
45218 do {
45219 i12 = i8 + (i11 << 2) | 0;
45220 if ((i12 | 0) != 0) {
45221 HEAP32[i12 >> 2] = HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 2) >> 2];
45222 }
45223 i11 = i11 + 1 | 0;
45224 } while ((i11 | 0) < (i9 | 0));
45225 }
45226 i11 = HEAP32[i10 >> 2] | 0;
45227 i12 = i2 + 16 | 0;
45228 if ((i11 | 0) == 0) {
45229 i13 = i9;
45230 } else {
45231 if ((HEAP8[i12] | 0) == 0) {
45232 i14 = i9;
45233 } else {
45234 __Z21btAlignedFreeInternalPv(i11);
45235 i14 = HEAP32[i1 >> 2] | 0;
45236 }
45237 HEAP32[i10 >> 2] = 0;
45238 i13 = i14;
45239 }
45240 HEAP8[i12] = 1;
45241 HEAP32[i10 >> 2] = i8;
45242 HEAP32[i5 >> 2] = i6;
45243 i7 = i13;
45244 } else {
45245 i7 = i4;
45246 }
45247 } while (0);
45248 i4 = (HEAP32[i2 + 12 >> 2] | 0) + (i7 << 2) | 0;
45249 if ((i4 | 0) != 0) {
45250 HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
45251 }
45252 HEAP32[i1 >> 2] = i7 + 1;
45253 return;
45254 }
45255 function __ZN23btConvexConvexAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(i1, i2) {
45256 i1 = i1 | 0;
45257 i2 = i2 | 0;
45258 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
45259 i3 = i1 + 20 | 0;
45260 if ((HEAP32[i3 >> 2] | 0) == 0) {
45261 return;
45262 }
45263 if ((HEAP8[i1 + 16 | 0] | 0) == 0) {
45264 return;
45265 }
45266 i1 = i2 + 4 | 0;
45267 i4 = HEAP32[i1 >> 2] | 0;
45268 i5 = i2 + 8 | 0;
45269 do {
45270 if ((i4 | 0) == (HEAP32[i5 >> 2] | 0)) {
45271 i6 = (i4 | 0) == 0 ? 1 : i4 << 1;
45272 if ((i4 | 0) >= (i6 | 0)) {
45273 i7 = i4;
45274 break;
45275 }
45276 if ((i6 | 0) == 0) {
45277 i8 = 0;
45278 i9 = i4;
45279 } else {
45280 i10 = __Z22btAlignedAllocInternalji(i6 << 2, 16) | 0;
45281 i8 = i10;
45282 i9 = HEAP32[i1 >> 2] | 0;
45283 }
45284 i10 = i2 + 12 | 0;
45285 if ((i9 | 0) > 0) {
45286 i11 = 0;
45287 do {
45288 i12 = i8 + (i11 << 2) | 0;
45289 if ((i12 | 0) != 0) {
45290 HEAP32[i12 >> 2] = HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 2) >> 2];
45291 }
45292 i11 = i11 + 1 | 0;
45293 } while ((i11 | 0) < (i9 | 0));
45294 }
45295 i11 = HEAP32[i10 >> 2] | 0;
45296 i12 = i2 + 16 | 0;
45297 if ((i11 | 0) == 0) {
45298 i13 = i9;
45299 } else {
45300 if ((HEAP8[i12] | 0) == 0) {
45301 i14 = i9;
45302 } else {
45303 __Z21btAlignedFreeInternalPv(i11);
45304 i14 = HEAP32[i1 >> 2] | 0;
45305 }
45306 HEAP32[i10 >> 2] = 0;
45307 i13 = i14;
45308 }
45309 HEAP8[i12] = 1;
45310 HEAP32[i10 >> 2] = i8;
45311 HEAP32[i5 >> 2] = i6;
45312 i7 = i13;
45313 } else {
45314 i7 = i4;
45315 }
45316 } while (0);
45317 i4 = (HEAP32[i2 + 12 >> 2] | 0) + (i7 << 2) | 0;
45318 if ((i4 | 0) != 0) {
45319 HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
45320 }
45321 HEAP32[i1 >> 2] = i7 + 1;
45322 return;
45323 }
45324 function __ZNK23btPolyhedralConvexShape37localGetSupportingVertexWithoutMarginERK9btVector3(i1, i2, i3) {
45325 i1 = i1 | 0;
45326 i2 = i2 | 0;
45327 i3 = i3 | 0;
45328 var i4 = 0, i5 = 0, i6 = 0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, d20 = 0.0, i21 = 0;
45329 i4 = STACKTOP;
45330 STACKTOP = STACKTOP + 16 | 0;
45331 i5 = i4 | 0;
45332 i6 = i1;
45333 _memset(i6 | 0, 0, 16);
45334 d7 = +HEAPF32[i3 >> 2];
45335 d8 = +HEAPF32[i3 + 4 >> 2];
45336 d9 = +HEAPF32[i3 + 8 >> 2];
45337 d10 = d7 * d7 + d8 * d8 + d9 * d9;
45338 if (d10 < 9999999747378752.0e-20) {
45339 d11 = 1.0;
45340 d12 = 0.0;
45341 d13 = 0.0;
45342 } else {
45343 d14 = 1.0 / +Math_sqrt(+d10);
45344 d11 = d7 * d14;
45345 d12 = d8 * d14;
45346 d13 = d9 * d14;
45347 }
45348 i3 = i2;
45349 if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 88 >> 2] & 127](i2) | 0) <= 0) {
45350 STACKTOP = i4;
45351 return;
45352 }
45353 i1 = i2;
45354 i15 = i5 | 0;
45355 i16 = i5 + 4 | 0;
45356 i17 = i5 + 8 | 0;
45357 i18 = i5;
45358 d14 = -999999984306749400.0;
45359 i19 = 0;
45360 while (1) {
45361 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i1 >> 2] | 0) + 100 >> 2] & 127](i2, i19, i5);
45362 d9 = d11 * +HEAPF32[i15 >> 2] + d12 * +HEAPF32[i16 >> 2] + d13 * +HEAPF32[i17 >> 2];
45363 if (d9 > d14) {
45364 HEAP32[i6 >> 2] = HEAP32[i18 >> 2];
45365 HEAP32[i6 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
45366 HEAP32[i6 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
45367 HEAP32[i6 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
45368 d20 = d9;
45369 } else {
45370 d20 = d14;
45371 }
45372 i21 = i19 + 1 | 0;
45373 if ((i21 | 0) < (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 88 >> 2] & 127](i2) | 0)) {
45374 d14 = d20;
45375 i19 = i21;
45376 } else {
45377 break;
45378 }
45379 }
45380 STACKTOP = i4;
45381 return;
45382 }
45383 function __ZN20btConvexHullInternal4PoolINS_4FaceEE9newObjectEv(i1) {
45384 i1 = i1 | 0;
45385 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
45386 i2 = i1 + 8 | 0;
45387 i3 = HEAP32[i2 >> 2] | 0;
45388 do {
45389 if ((i3 | 0) == 0) {
45390 i4 = i1 + 4 | 0;
45391 i5 = HEAP32[i4 >> 2] | 0;
45392 if ((i5 | 0) == 0) {
45393 i6 = __Z22btAlignedAllocInternalji(12, 16) | 0;
45394 if ((i6 | 0) == 0) {
45395 i7 = 0;
45396 } else {
45397 i8 = HEAP32[i1 + 12 >> 2] | 0;
45398 HEAP32[i6 + 4 >> 2] = i8;
45399 HEAP32[i6 + 8 >> 2] = 0;
45400 HEAP32[i6 >> 2] = __Z22btAlignedAllocInternalji(i8 * 60 | 0, 16) | 0;
45401 i7 = i6;
45402 }
45403 i6 = i1 | 0;
45404 HEAP32[i7 + 8 >> 2] = HEAP32[i6 >> 2];
45405 HEAP32[i6 >> 2] = i7;
45406 i9 = i7;
45407 } else {
45408 HEAP32[i4 >> 2] = HEAP32[i5 + 8 >> 2];
45409 i9 = i5;
45410 }
45411 i5 = i9 | 0;
45412 i4 = HEAP32[i9 + 4 >> 2] | 0;
45413 if ((i4 | 0) > 0) {
45414 i6 = HEAP32[i5 >> 2] | 0;
45415 i8 = 0;
45416 while (1) {
45417 i10 = i8 + 1 | 0;
45418 i11 = (i10 | 0) < (i4 | 0);
45419 i12 = i6 + 60 | 0;
45420 HEAP32[i6 >> 2] = i11 ? i12 : 0;
45421 if (i11) {
45422 i6 = i12;
45423 i8 = i10;
45424 } else {
45425 break;
45426 }
45427 }
45428 }
45429 i8 = HEAP32[i5 >> 2] | 0;
45430 i6 = i8 | 0;
45431 HEAP32[i2 >> 2] = HEAP32[i6 >> 2];
45432 if ((i8 | 0) == 0) {
45433 i13 = 0;
45434 } else {
45435 i14 = i8;
45436 i15 = i6;
45437 break;
45438 }
45439 return i13 | 0;
45440 } else {
45441 i6 = i3 | 0;
45442 HEAP32[i2 >> 2] = HEAP32[i6 >> 2];
45443 i14 = i3;
45444 i15 = i6;
45445 }
45446 } while (0);
45447 HEAP32[i15 >> 2] = 0;
45448 HEAP32[i14 + 4 >> 2] = 0;
45449 HEAP32[i14 + 8 >> 2] = 0;
45450 i13 = i14;
45451 return i13 | 0;
45452 }
45453 function __ZN16btCollisionWorldD2Ev(i1) {
45454 i1 = i1 | 0;
45455 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
45456 HEAP32[i1 >> 2] = 4464;
45457 i2 = i1 + 8 | 0;
45458 i3 = HEAP32[i2 >> 2] | 0;
45459 i4 = i1 + 16 | 0;
45460 i5 = HEAP32[i4 >> 2] | 0;
45461 if ((i3 | 0) > 0) {
45462 i6 = i1 + 76 | 0;
45463 i7 = i1 + 24 | 0;
45464 i8 = 0;
45465 i9 = i5;
45466 i10 = i3;
45467 while (1) {
45468 i3 = (HEAP32[i9 + (i8 << 2) >> 2] | 0) + 188 | 0;
45469 i11 = HEAP32[i3 >> 2] | 0;
45470 if ((i11 | 0) == 0) {
45471 i12 = i10;
45472 i13 = i9;
45473 } else {
45474 i14 = HEAP32[i6 >> 2] | 0;
45475 i15 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i14 >> 2] | 0) + 36 >> 2] & 127](i14) | 0;
45476 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i15 >> 2] | 0) + 40 >> 2] & 127](i15, i11, HEAP32[i7 >> 2] | 0);
45477 i15 = HEAP32[i6 >> 2] | 0;
45478 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i15 >> 2] | 0) + 12 >> 2] & 127](i15, i11, HEAP32[i7 >> 2] | 0);
45479 HEAP32[i3 >> 2] = 0;
45480 i12 = HEAP32[i2 >> 2] | 0;
45481 i13 = HEAP32[i4 >> 2] | 0;
45482 }
45483 i3 = i8 + 1 | 0;
45484 if ((i3 | 0) < (i12 | 0)) {
45485 i8 = i3;
45486 i9 = i13;
45487 i10 = i12;
45488 } else {
45489 i16 = i13;
45490 break;
45491 }
45492 }
45493 } else {
45494 i16 = i5;
45495 }
45496 i5 = i1 + 20 | 0;
45497 if ((i16 | 0) == 0) {
45498 HEAP8[i5] = 1;
45499 HEAP32[i4 >> 2] = 0;
45500 HEAP32[i2 >> 2] = 0;
45501 i17 = i1 + 12 | 0;
45502 HEAP32[i17 >> 2] = 0;
45503 return;
45504 }
45505 if ((HEAP8[i5] | 0) != 0) {
45506 __Z21btAlignedFreeInternalPv(i16);
45507 }
45508 HEAP32[i4 >> 2] = 0;
45509 HEAP8[i5] = 1;
45510 HEAP32[i4 >> 2] = 0;
45511 HEAP32[i2 >> 2] = 0;
45512 i17 = i1 + 12 | 0;
45513 HEAP32[i17 >> 2] = 0;
45514 return;
45515 }
45516 function __ZN33btConvexConcaveCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(i1, i2) {
45517 i1 = i1 | 0;
45518 i2 = i2 | 0;
45519 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
45520 i3 = i1 + 76 | 0;
45521 if ((HEAP32[i3 >> 2] | 0) == 0) {
45522 return;
45523 }
45524 i1 = i2 + 4 | 0;
45525 i4 = HEAP32[i1 >> 2] | 0;
45526 i5 = i2 + 8 | 0;
45527 do {
45528 if ((i4 | 0) == (HEAP32[i5 >> 2] | 0)) {
45529 i6 = (i4 | 0) == 0 ? 1 : i4 << 1;
45530 if ((i4 | 0) >= (i6 | 0)) {
45531 i7 = i4;
45532 break;
45533 }
45534 if ((i6 | 0) == 0) {
45535 i8 = 0;
45536 i9 = i4;
45537 } else {
45538 i10 = __Z22btAlignedAllocInternalji(i6 << 2, 16) | 0;
45539 i8 = i10;
45540 i9 = HEAP32[i1 >> 2] | 0;
45541 }
45542 i10 = i2 + 12 | 0;
45543 if ((i9 | 0) > 0) {
45544 i11 = 0;
45545 do {
45546 i12 = i8 + (i11 << 2) | 0;
45547 if ((i12 | 0) != 0) {
45548 HEAP32[i12 >> 2] = HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 2) >> 2];
45549 }
45550 i11 = i11 + 1 | 0;
45551 } while ((i11 | 0) < (i9 | 0));
45552 }
45553 i11 = HEAP32[i10 >> 2] | 0;
45554 i12 = i2 + 16 | 0;
45555 if ((i11 | 0) == 0) {
45556 i13 = i9;
45557 } else {
45558 if ((HEAP8[i12] | 0) == 0) {
45559 i14 = i9;
45560 } else {
45561 __Z21btAlignedFreeInternalPv(i11);
45562 i14 = HEAP32[i1 >> 2] | 0;
45563 }
45564 HEAP32[i10 >> 2] = 0;
45565 i13 = i14;
45566 }
45567 HEAP8[i12] = 1;
45568 HEAP32[i10 >> 2] = i8;
45569 HEAP32[i5 >> 2] = i6;
45570 i7 = i13;
45571 } else {
45572 i7 = i4;
45573 }
45574 } while (0);
45575 i4 = (HEAP32[i2 + 12 >> 2] | 0) + (i7 << 2) | 0;
45576 if ((i4 | 0) != 0) {
45577 HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
45578 }
45579 HEAP32[i1 >> 2] = i7 + 1;
45580 return;
45581 }
45582 function __ZN22SphereTriangleDetector15pointInTriangleEPK9btVector3RS1_PS0_(i1, i2, i3, i4) {
45583 i1 = i1 | 0;
45584 i2 = i2 | 0;
45585 i3 = i3 | 0;
45586 i4 = i4 | 0;
45587 var d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0;
45588 d5 = +HEAPF32[i2 + 16 >> 2];
45589 d6 = +HEAPF32[i2 >> 2];
45590 d7 = d5 - d6;
45591 d8 = +HEAPF32[i2 + 20 >> 2];
45592 d9 = +HEAPF32[i2 + 4 >> 2];
45593 d10 = d8 - d9;
45594 d11 = +HEAPF32[i2 + 24 >> 2];
45595 d12 = +HEAPF32[i2 + 8 >> 2];
45596 d13 = d11 - d12;
45597 d14 = +HEAPF32[i2 + 32 >> 2];
45598 d15 = d14 - d5;
45599 d16 = +HEAPF32[i2 + 36 >> 2];
45600 d17 = d16 - d8;
45601 d18 = +HEAPF32[i2 + 40 >> 2];
45602 d19 = d18 - d11;
45603 d20 = d6 - d14;
45604 d21 = d9 - d16;
45605 d22 = d12 - d18;
45606 d23 = +HEAPF32[i4 >> 2];
45607 d24 = +HEAPF32[i4 + 4 >> 2];
45608 d25 = +HEAPF32[i4 + 8 >> 2];
45609 d26 = +HEAPF32[i3 + 8 >> 2];
45610 d27 = +HEAPF32[i3 + 4 >> 2];
45611 d28 = +HEAPF32[i3 >> 2];
45612 d29 = (d25 - d12) * (d7 * d27 - d10 * d28) + ((d23 - d6) * (d10 * d26 - d13 * d27) + (d24 - d9) * (d13 * d28 - d7 * d26));
45613 d7 = (d25 - d11) * (d15 * d27 - d17 * d28) + ((d23 - d5) * (d17 * d26 - d19 * d27) + (d24 - d8) * (d19 * d28 - d15 * d26));
45614 d15 = (d25 - d18) * (d20 * d27 - d21 * d28) + ((d23 - d14) * (d21 * d26 - d22 * d27) + (d24 - d16) * (d22 * d28 - d20 * d26));
45615 if (d29 > 0.0 & d7 > 0.0 & d15 > 0.0) {
45616 return 1;
45617 } else {
45618 return (d29 > 0.0 | d7 > 0.0 | d15 > 0.0) ^ 1 | 0;
45619 }
45620 return 0;
45621 }
45622 function __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i2, i3) {
45623 i1 = i1 | 0;
45624 i2 = i2 | 0;
45625 i3 = i3 | 0;
45626 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
45627 i4 = STACKTOP;
45628 STACKTOP = STACKTOP + 48 | 0;
45629 i5 = i4 | 0;
45630 i6 = i4 + 16 | 0;
45631 i7 = i4 + 32 | 0;
45632 d8 = +HEAPF32[i2 >> 2];
45633 d9 = +HEAPF32[i2 + 4 >> 2];
45634 d10 = +HEAPF32[i2 + 8 >> 2];
45635 d11 = 1.0 / +Math_sqrt(+(d8 * d8 + d9 * d9 + d10 * d10));
45636 i2 = i3 | 0;
45637 HEAPF32[i2 >> 2] = d8 * d11;
45638 i12 = i3 + 4 | 0;
45639 HEAPF32[i12 >> 2] = d9 * d11;
45640 i13 = i3 + 8 | 0;
45641 HEAPF32[i13 >> 2] = d10 * d11;
45642 HEAPF32[i3 + 12 >> 2] = 0.0;
45643 i14 = i1 + 120 | 0;
45644 i15 = (HEAP32[i1 >> 2] | 0) + (HEAP32[i14 + 4 >> 2] | 0) | 0;
45645 i16 = HEAP32[i14 >> 2] | 0;
45646 if ((i16 & 1 | 0) == 0) {
45647 i17 = i16;
45648 } else {
45649 i17 = HEAP32[(HEAP32[i15 >> 2] | 0) + (i16 - 1) >> 2] | 0;
45650 }
45651 FUNCTION_TABLE_viii[i17 & 127](i5, i15, i3 | 0);
45652 d11 = -0.0 - +HEAPF32[i12 >> 2];
45653 d10 = -0.0 - +HEAPF32[i13 >> 2];
45654 HEAPF32[i7 >> 2] = -0.0 - +HEAPF32[i2 >> 2];
45655 HEAPF32[i7 + 4 >> 2] = d11;
45656 HEAPF32[i7 + 8 >> 2] = d10;
45657 HEAPF32[i7 + 12 >> 2] = 0.0;
45658 __ZNK12gjkepa2_impl13MinkowskiDiff8Support1ERK9btVector3(i6, i1 | 0, i7);
45659 d10 = +HEAPF32[i5 + 4 >> 2] - +HEAPF32[i6 + 4 >> 2];
45660 d11 = +HEAPF32[i5 + 8 >> 2] - +HEAPF32[i6 + 8 >> 2];
45661 HEAPF32[i3 + 16 >> 2] = +HEAPF32[i5 >> 2] - +HEAPF32[i6 >> 2];
45662 HEAPF32[i3 + 20 >> 2] = d10;
45663 HEAPF32[i3 + 24 >> 2] = d11;
45664 HEAPF32[i3 + 28 >> 2] = 0.0;
45665 STACKTOP = i4;
45666 return;
45667 }
45668 function __ZN23btDiscreteDynamicsWorld9addActionEP17btActionInterface(i1, i2) {
45669 i1 = i1 | 0;
45670 i2 = i2 | 0;
45671 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
45672 i3 = i1 + 248 | 0;
45673 i4 = HEAP32[i3 >> 2] | 0;
45674 i5 = i1 + 252 | 0;
45675 do {
45676 if ((i4 | 0) == (HEAP32[i5 >> 2] | 0)) {
45677 i6 = (i4 | 0) == 0 ? 1 : i4 << 1;
45678 if ((i4 | 0) >= (i6 | 0)) {
45679 i7 = i4;
45680 break;
45681 }
45682 if ((i6 | 0) == 0) {
45683 i8 = 0;
45684 i9 = i4;
45685 } else {
45686 i10 = __Z22btAlignedAllocInternalji(i6 << 2, 16) | 0;
45687 i8 = i10;
45688 i9 = HEAP32[i3 >> 2] | 0;
45689 }
45690 i10 = i1 + 256 | 0;
45691 if ((i9 | 0) > 0) {
45692 i11 = 0;
45693 do {
45694 i12 = i8 + (i11 << 2) | 0;
45695 if ((i12 | 0) != 0) {
45696 HEAP32[i12 >> 2] = HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 2) >> 2];
45697 }
45698 i11 = i11 + 1 | 0;
45699 } while ((i11 | 0) < (i9 | 0));
45700 }
45701 i11 = HEAP32[i10 >> 2] | 0;
45702 i12 = i1 + 260 | 0;
45703 if ((i11 | 0) == 0) {
45704 i13 = i9;
45705 } else {
45706 if ((HEAP8[i12] | 0) == 0) {
45707 i14 = i9;
45708 } else {
45709 __Z21btAlignedFreeInternalPv(i11);
45710 i14 = HEAP32[i3 >> 2] | 0;
45711 }
45712 HEAP32[i10 >> 2] = 0;
45713 i13 = i14;
45714 }
45715 HEAP8[i12] = 1;
45716 HEAP32[i10 >> 2] = i8;
45717 HEAP32[i5 >> 2] = i6;
45718 i7 = i13;
45719 } else {
45720 i7 = i4;
45721 }
45722 } while (0);
45723 i4 = (HEAP32[i1 + 256 >> 2] | 0) + (i7 << 2) | 0;
45724 if ((i4 | 0) == 0) {
45725 i15 = i7 + 1 | 0;
45726 HEAP32[i3 >> 2] = i15;
45727 return;
45728 }
45729 HEAP32[i4 >> 2] = i2;
45730 i15 = i7 + 1 | 0;
45731 HEAP32[i3 >> 2] = i15;
45732 return;
45733 }
45734 function __ZN20btConvexHullInternal4PoolINS_6VertexEE9newObjectEv(i1) {
45735 i1 = i1 | 0;
45736 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
45737 i2 = i1 + 8 | 0;
45738 i3 = HEAP32[i2 >> 2] | 0;
45739 do {
45740 if ((i3 | 0) == 0) {
45741 i4 = i1 + 4 | 0;
45742 i5 = HEAP32[i4 >> 2] | 0;
45743 if ((i5 | 0) == 0) {
45744 i6 = __Z22btAlignedAllocInternalji(12, 16) | 0;
45745 if ((i6 | 0) == 0) {
45746 i7 = 0;
45747 } else {
45748 i8 = HEAP32[i1 + 12 >> 2] | 0;
45749 HEAP32[i6 + 4 >> 2] = i8;
45750 HEAP32[i6 + 8 >> 2] = 0;
45751 HEAP32[i6 >> 2] = __Z22btAlignedAllocInternalji(i8 * 112 | 0, 16) | 0;
45752 i7 = i6;
45753 }
45754 i6 = i1 | 0;
45755 HEAP32[i7 + 8 >> 2] = HEAP32[i6 >> 2];
45756 HEAP32[i6 >> 2] = i7;
45757 i9 = i7;
45758 } else {
45759 HEAP32[i4 >> 2] = HEAP32[i5 + 8 >> 2];
45760 i9 = i5;
45761 }
45762 i5 = i9 | 0;
45763 i4 = HEAP32[i9 + 4 >> 2] | 0;
45764 if ((i4 | 0) > 0) {
45765 i6 = HEAP32[i5 >> 2] | 0;
45766 i8 = 0;
45767 while (1) {
45768 i10 = i8 + 1 | 0;
45769 i11 = (i10 | 0) < (i4 | 0);
45770 i12 = i6 + 112 | 0;
45771 HEAP32[i6 >> 2] = i11 ? i12 : 0;
45772 if (i11) {
45773 i6 = i12;
45774 i8 = i10;
45775 } else {
45776 break;
45777 }
45778 }
45779 }
45780 i8 = HEAP32[i5 >> 2] | 0;
45781 HEAP32[i2 >> 2] = HEAP32[i8 >> 2];
45782 if ((i8 | 0) == 0) {
45783 i13 = 0;
45784 } else {
45785 i14 = i8;
45786 break;
45787 }
45788 return i13 | 0;
45789 } else {
45790 HEAP32[i2 >> 2] = HEAP32[i3 >> 2];
45791 i14 = i3;
45792 }
45793 } while (0);
45794 _memset(i14 | 0, 0, 20);
45795 HEAP32[i14 + 104 >> 2] = -1;
45796 i13 = i14;
45797 return i13 | 0;
45798 }
45799 function __ZN20btConvexHullInternal14getCoordinatesEPKNS_6VertexE(i1, i2, i3) {
45800 i1 = i1 | 0;
45801 i2 = i2 | 0;
45802 i3 = i3 | 0;
45803 var i4 = 0, i5 = 0, d6 = 0.0, i7 = 0, d8 = 0.0, i9 = 0, d10 = 0.0;
45804 i4 = STACKTOP;
45805 STACKTOP = STACKTOP + 16 | 0;
45806 i5 = i4 | 0;
45807 if ((HEAP32[i3 + 100 >> 2] | 0) > -1) {
45808 HEAPF32[i5 + (HEAP32[i2 + 108 >> 2] << 2) >> 2] = +(HEAP32[i3 + 88 >> 2] | 0);
45809 HEAPF32[i5 + (HEAP32[i2 + 112 >> 2] << 2) >> 2] = +(HEAP32[i3 + 92 >> 2] | 0);
45810 d6 = +(HEAP32[i3 + 96 >> 2] | 0);
45811 i7 = i5 | 0;
45812 } else {
45813 d8 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i3 + 24 | 0);
45814 i9 = i3 + 72 | 0;
45815 d10 = d8 / +__ZNK20btConvexHullInternal6Int1288toScalarEv(i9);
45816 HEAPF32[i5 + (HEAP32[i2 + 108 >> 2] << 2) >> 2] = d10;
45817 d10 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i3 + 40 | 0);
45818 d8 = d10 / +__ZNK20btConvexHullInternal6Int1288toScalarEv(i9);
45819 HEAPF32[i5 + (HEAP32[i2 + 112 >> 2] << 2) >> 2] = d8;
45820 d8 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i3 + 56 | 0);
45821 d6 = d8 / +__ZNK20btConvexHullInternal6Int1288toScalarEv(i9);
45822 i7 = i5 | 0;
45823 }
45824 HEAPF32[i5 + (HEAP32[i2 + 104 >> 2] << 2) >> 2] = d6;
45825 d6 = +HEAPF32[i5 + 4 >> 2] * +HEAPF32[i2 + 4 >> 2] + +HEAPF32[i2 + 20 >> 2];
45826 d8 = +HEAPF32[i5 + 8 >> 2] * +HEAPF32[i2 + 8 >> 2] + +HEAPF32[i2 + 24 >> 2];
45827 HEAPF32[i1 >> 2] = +HEAPF32[i7 >> 2] * +HEAPF32[i2 >> 2] + +HEAPF32[i2 + 16 >> 2];
45828 HEAPF32[i1 + 4 >> 2] = d6;
45829 HEAPF32[i1 + 8 >> 2] = d8;
45830 HEAPF32[i1 + 12 >> 2] = 0.0;
45831 STACKTOP = i4;
45832 return;
45833 }
45834 function __ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_PfRj(i1, i2, i3, i4) {
45835 i1 = i1 | 0;
45836 i2 = i2 | 0;
45837 i3 = i3 | 0;
45838 i4 = i4 | 0;
45839 var i5 = 0, i6 = 0, d7 = 0.0, d8 = 0.0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, i13 = 0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0;
45840 i5 = i2 | 0;
45841 i6 = i1 | 0;
45842 d7 = +HEAPF32[i6 >> 2];
45843 d8 = +HEAPF32[i5 >> 2] - d7;
45844 i9 = i2 + 4 | 0;
45845 i10 = i1 + 4 | 0;
45846 d11 = +HEAPF32[i10 >> 2];
45847 d12 = +HEAPF32[i9 >> 2] - d11;
45848 i13 = i2 + 8 | 0;
45849 i2 = i1 + 8 | 0;
45850 d14 = +HEAPF32[i2 >> 2];
45851 d15 = +HEAPF32[i13 >> 2] - d14;
45852 d16 = d8 * d8 + d12 * d12 + d15 * d15;
45853 if (d16 <= 0.0) {
45854 d17 = -1.0;
45855 return +d17;
45856 }
45857 d18 = (-0.0 - (d7 * d8 + d11 * d12 + d14 * d15)) / d16;
45858 if (d18 >= 1.0) {
45859 HEAPF32[i3 >> 2] = 0.0;
45860 HEAPF32[i3 + 4 >> 2] = 1.0;
45861 HEAP32[i4 >> 2] = 2;
45862 d16 = +HEAPF32[i5 >> 2];
45863 d14 = +HEAPF32[i9 >> 2];
45864 d11 = +HEAPF32[i13 >> 2];
45865 d17 = d16 * d16 + d14 * d14 + d11 * d11;
45866 return +d17;
45867 }
45868 if (d18 > 0.0) {
45869 HEAPF32[i3 + 4 >> 2] = d18;
45870 HEAPF32[i3 >> 2] = 1.0 - d18;
45871 HEAP32[i4 >> 2] = 3;
45872 d11 = d8 * d18 + +HEAPF32[i6 >> 2];
45873 d8 = d12 * d18 + +HEAPF32[i10 >> 2];
45874 d12 = d15 * d18 + +HEAPF32[i2 >> 2];
45875 d17 = d11 * d11 + d8 * d8 + d12 * d12;
45876 return +d17;
45877 } else {
45878 HEAPF32[i3 >> 2] = 1.0;
45879 HEAPF32[i3 + 4 >> 2] = 0.0;
45880 HEAP32[i4 >> 2] = 1;
45881 d12 = +HEAPF32[i6 >> 2];
45882 d8 = +HEAPF32[i10 >> 2];
45883 d11 = +HEAPF32[i2 >> 2];
45884 d17 = d12 * d12 + d8 * d8 + d11 * d11;
45885 return +d17;
45886 }
45887 return 0.0;
45888 }
45889 function __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i1) {
45890 i1 = i1 | 0;
45891 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
45892 i2 = i1 + 8 | 0;
45893 i3 = HEAP32[i2 >> 2] | 0;
45894 do {
45895 if ((i3 | 0) == 0) {
45896 i4 = i1 + 4 | 0;
45897 i5 = HEAP32[i4 >> 2] | 0;
45898 if ((i5 | 0) == 0) {
45899 i6 = __Z22btAlignedAllocInternalji(12, 16) | 0;
45900 if ((i6 | 0) == 0) {
45901 i7 = 0;
45902 } else {
45903 i8 = HEAP32[i1 + 12 >> 2] | 0;
45904 HEAP32[i6 + 4 >> 2] = i8;
45905 HEAP32[i6 + 8 >> 2] = 0;
45906 HEAP32[i6 >> 2] = __Z22btAlignedAllocInternalji(i8 * 24 | 0, 16) | 0;
45907 i7 = i6;
45908 }
45909 i6 = i1 | 0;
45910 HEAP32[i7 + 8 >> 2] = HEAP32[i6 >> 2];
45911 HEAP32[i6 >> 2] = i7;
45912 i9 = i7;
45913 } else {
45914 HEAP32[i4 >> 2] = HEAP32[i5 + 8 >> 2];
45915 i9 = i5;
45916 }
45917 i5 = i9 | 0;
45918 i4 = HEAP32[i9 + 4 >> 2] | 0;
45919 if ((i4 | 0) > 0) {
45920 i6 = HEAP32[i5 >> 2] | 0;
45921 i8 = 0;
45922 while (1) {
45923 i10 = i8 + 1 | 0;
45924 i11 = (i10 | 0) < (i4 | 0);
45925 i12 = i6 + 24 | 0;
45926 HEAP32[i6 >> 2] = i11 ? i12 : 0;
45927 if (i11) {
45928 i6 = i12;
45929 i8 = i10;
45930 } else {
45931 break;
45932 }
45933 }
45934 }
45935 i8 = HEAP32[i5 >> 2] | 0;
45936 HEAP32[i2 >> 2] = HEAP32[i8 >> 2];
45937 if ((i8 | 0) == 0) {
45938 i13 = 0;
45939 } else {
45940 i14 = i8;
45941 break;
45942 }
45943 return i13 | 0;
45944 } else {
45945 HEAP32[i2 >> 2] = HEAP32[i3 >> 2];
45946 i14 = i3;
45947 }
45948 } while (0);
45949 _memset(i14 | 0, 0, 24);
45950 i13 = i14;
45951 return i13 | 0;
45952 }
45953 function __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeED2Ev(i1) {
45954 i1 = i1 | 0;
45955 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
45956 i2 = i1 + 64 | 0;
45957 i3 = i1 + 72 | 0;
45958 i4 = HEAP32[i3 >> 2] | 0;
45959 i5 = i1 + 76 | 0;
45960 if ((i4 | 0) != 0) {
45961 if ((HEAP8[i5] | 0) != 0) {
45962 __Z21btAlignedFreeInternalPv(i4);
45963 }
45964 HEAP32[i3 >> 2] = 0;
45965 }
45966 HEAP8[i5] = 1;
45967 HEAP32[i3 >> 2] = 0;
45968 HEAP32[i2 >> 2] = 0;
45969 HEAP32[i1 + 68 >> 2] = 0;
45970 i2 = i1 + 44 | 0;
45971 i3 = i1 + 52 | 0;
45972 i5 = HEAP32[i3 >> 2] | 0;
45973 i4 = i1 + 56 | 0;
45974 if ((i5 | 0) != 0) {
45975 if ((HEAP8[i4] | 0) != 0) {
45976 __Z21btAlignedFreeInternalPv(i5);
45977 }
45978 HEAP32[i3 >> 2] = 0;
45979 }
45980 HEAP8[i4] = 1;
45981 HEAP32[i3 >> 2] = 0;
45982 HEAP32[i2 >> 2] = 0;
45983 HEAP32[i1 + 48 >> 2] = 0;
45984 i2 = i1 + 24 | 0;
45985 i3 = i1 + 32 | 0;
45986 i4 = HEAP32[i3 >> 2] | 0;
45987 i5 = i1 + 36 | 0;
45988 if ((i4 | 0) != 0) {
45989 if ((HEAP8[i5] | 0) != 0) {
45990 __Z21btAlignedFreeInternalPv(i4);
45991 }
45992 HEAP32[i3 >> 2] = 0;
45993 }
45994 HEAP8[i5] = 1;
45995 HEAP32[i3 >> 2] = 0;
45996 HEAP32[i2 >> 2] = 0;
45997 HEAP32[i1 + 28 >> 2] = 0;
45998 i2 = i1 + 4 | 0;
45999 i3 = i1 + 12 | 0;
46000 i5 = HEAP32[i3 >> 2] | 0;
46001 i4 = i1 + 16 | 0;
46002 if ((i5 | 0) == 0) {
46003 HEAP8[i4] = 1;
46004 HEAP32[i3 >> 2] = 0;
46005 HEAP32[i2 >> 2] = 0;
46006 i6 = i1 + 8 | 0;
46007 HEAP32[i6 >> 2] = 0;
46008 return;
46009 }
46010 if ((HEAP8[i4] | 0) != 0) {
46011 __Z21btAlignedFreeInternalPv(i5);
46012 }
46013 HEAP32[i3 >> 2] = 0;
46014 HEAP8[i4] = 1;
46015 HEAP32[i3 >> 2] = 0;
46016 HEAP32[i2 >> 2] = 0;
46017 i6 = i1 + 8 | 0;
46018 HEAP32[i6 >> 2] = 0;
46019 return;
46020 }
46021 function __ZN11btRigidBody19integrateVelocitiesEf(i1, d2) {
46022 i1 = i1 | 0;
46023 d2 = +d2;
46024 var d3 = 0.0, d4 = 0.0, d5 = 0.0, i6 = 0, d7 = 0.0, d8 = 0.0, d9 = 0.0, i10 = 0, i11 = 0;
46025 if ((HEAP32[i1 + 204 >> 2] & 3 | 0) != 0) {
46026 return;
46027 }
46028 d3 = +HEAPF32[i1 + 336 >> 2] * d2;
46029 d4 = d3 * +HEAPF32[i1 + 408 >> 2];
46030 d5 = d3 * +HEAPF32[i1 + 412 >> 2];
46031 i6 = i1 + 304 | 0;
46032 HEAPF32[i6 >> 2] = +HEAPF32[i1 + 404 >> 2] * d3 + +HEAPF32[i6 >> 2];
46033 i6 = i1 + 308 | 0;
46034 HEAPF32[i6 >> 2] = d4 + +HEAPF32[i6 >> 2];
46035 i6 = i1 + 312 | 0;
46036 HEAPF32[i6 >> 2] = d5 + +HEAPF32[i6 >> 2];
46037 d5 = +HEAPF32[i1 + 420 >> 2];
46038 d4 = +HEAPF32[i1 + 424 >> 2];
46039 d3 = +HEAPF32[i1 + 428 >> 2];
46040 d7 = (d5 * +HEAPF32[i1 + 272 >> 2] + d4 * +HEAPF32[i1 + 276 >> 2] + d3 * +HEAPF32[i1 + 280 >> 2]) * d2;
46041 d8 = (d5 * +HEAPF32[i1 + 288 >> 2] + d4 * +HEAPF32[i1 + 292 >> 2] + d3 * +HEAPF32[i1 + 296 >> 2]) * d2;
46042 i6 = i1 + 320 | 0;
46043 d9 = (+HEAPF32[i1 + 256 >> 2] * d5 + +HEAPF32[i1 + 260 >> 2] * d4 + +HEAPF32[i1 + 264 >> 2] * d3) * d2 + +HEAPF32[i6 >> 2];
46044 HEAPF32[i6 >> 2] = d9;
46045 i10 = i1 + 324 | 0;
46046 d3 = d7 + +HEAPF32[i10 >> 2];
46047 HEAPF32[i10 >> 2] = d3;
46048 i11 = i1 + 328 | 0;
46049 d7 = d8 + +HEAPF32[i11 >> 2];
46050 HEAPF32[i11 >> 2] = d7;
46051 d8 = +Math_sqrt(+(d7 * d7 + (d9 * d9 + d3 * d3)));
46052 if (d8 * d2 <= 1.5707963705062866) {
46053 return;
46054 }
46055 d4 = 1.5707963705062866 / d2 / d8;
46056 HEAPF32[i6 >> 2] = d9 * d4;
46057 HEAPF32[i10 >> 2] = d3 * d4;
46058 HEAPF32[i11 >> 2] = d7 * d4;
46059 return;
46060 }
46061 function __ZN9btHashMapI9btHashPtrP16btCollisionShapeED2Ev(i1) {
46062 i1 = i1 | 0;
46063 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
46064 i2 = i1 + 64 | 0;
46065 i3 = i1 + 72 | 0;
46066 i4 = HEAP32[i3 >> 2] | 0;
46067 i5 = i1 + 76 | 0;
46068 if ((i4 | 0) != 0) {
46069 if ((HEAP8[i5] | 0) != 0) {
46070 __Z21btAlignedFreeInternalPv(i4);
46071 }
46072 HEAP32[i3 >> 2] = 0;
46073 }
46074 HEAP8[i5] = 1;
46075 HEAP32[i3 >> 2] = 0;
46076 HEAP32[i2 >> 2] = 0;
46077 HEAP32[i1 + 68 >> 2] = 0;
46078 i2 = i1 + 44 | 0;
46079 i3 = i1 + 52 | 0;
46080 i5 = HEAP32[i3 >> 2] | 0;
46081 i4 = i1 + 56 | 0;
46082 if ((i5 | 0) != 0) {
46083 if ((HEAP8[i4] | 0) != 0) {
46084 __Z21btAlignedFreeInternalPv(i5);
46085 }
46086 HEAP32[i3 >> 2] = 0;
46087 }
46088 HEAP8[i4] = 1;
46089 HEAP32[i3 >> 2] = 0;
46090 HEAP32[i2 >> 2] = 0;
46091 HEAP32[i1 + 48 >> 2] = 0;
46092 i2 = i1 + 24 | 0;
46093 i3 = i1 + 32 | 0;
46094 i4 = HEAP32[i3 >> 2] | 0;
46095 i5 = i1 + 36 | 0;
46096 if ((i4 | 0) != 0) {
46097 if ((HEAP8[i5] | 0) != 0) {
46098 __Z21btAlignedFreeInternalPv(i4);
46099 }
46100 HEAP32[i3 >> 2] = 0;
46101 }
46102 HEAP8[i5] = 1;
46103 HEAP32[i3 >> 2] = 0;
46104 HEAP32[i2 >> 2] = 0;
46105 HEAP32[i1 + 28 >> 2] = 0;
46106 i2 = i1 + 4 | 0;
46107 i3 = i1 + 12 | 0;
46108 i5 = HEAP32[i3 >> 2] | 0;
46109 i4 = i1 + 16 | 0;
46110 if ((i5 | 0) == 0) {
46111 HEAP8[i4] = 1;
46112 HEAP32[i3 >> 2] = 0;
46113 HEAP32[i2 >> 2] = 0;
46114 i6 = i1 + 8 | 0;
46115 HEAP32[i6 >> 2] = 0;
46116 return;
46117 }
46118 if ((HEAP8[i4] | 0) != 0) {
46119 __Z21btAlignedFreeInternalPv(i5);
46120 }
46121 HEAP32[i3 >> 2] = 0;
46122 HEAP8[i4] = 1;
46123 HEAP32[i3 >> 2] = 0;
46124 HEAP32[i2 >> 2] = 0;
46125 i6 = i1 + 8 | 0;
46126 HEAP32[i6 >> 2] = 0;
46127 return;
46128 }
46129 function __ZN33btConvexConcaveCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
46130 i1 = i1 | 0;
46131 i2 = i2 | 0;
46132 i3 = i3 | 0;
46133 i4 = i4 | 0;
46134 i5 = i5 | 0;
46135 var i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, i10 = 0, i11 = 0;
46136 i6 = (HEAP8[i1 + 8 | 0] | 0) != 0;
46137 i7 = i6 ? i3 : i2;
46138 i8 = i6 ? i2 : i3;
46139 i3 = HEAP32[i8 + 192 >> 2] | 0;
46140 if (((HEAP32[i3 + 4 >> 2] | 0) - 21 | 0) >>> 0 >= 9) {
46141 return;
46142 }
46143 i2 = i3;
46144 if ((HEAP32[(HEAP32[i7 + 192 >> 2] | 0) + 4 >> 2] | 0) >= 20) {
46145 return;
46146 }
46147 d9 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i3 >> 2] | 0) + 44 >> 2] & 7](i2);
46148 i6 = i1 + 12 | 0;
46149 i10 = i1 + 76 | 0;
46150 i11 = i5 + 4 | 0;
46151 HEAP32[i11 >> 2] = HEAP32[i10 >> 2];
46152 __ZN24btConvexTriangleCallback22setTimeStepAndCountersEfRK16btDispatcherInfoP16btManifoldResult(i6, d9, i4, i5);
46153 i4 = HEAP32[i10 >> 2] | 0;
46154 HEAP32[i4 + 1108 >> 2] = i7;
46155 HEAP32[i4 + 1112 >> 2] = i8;
46156 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i3 >> 2] | 0) + 60 >> 2] & 127](i2, i6 | 0, i1 + 24 | 0, i1 + 40 | 0);
46157 i1 = HEAP32[i11 >> 2] | 0;
46158 if ((HEAP32[i1 + 1116 >> 2] | 0) == 0) {
46159 return;
46160 }
46161 if ((HEAP32[i1 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
46162 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i5 + 8 | 0, i5 + 72 | 0);
46163 return;
46164 } else {
46165 __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i5 + 72 | 0, i5 + 8 | 0);
46166 return;
46167 }
46168 }
46169 function __ZN11btRigidBodyC2EfP13btMotionStateP16btCollisionShapeRK9btVector3(i1, d2, i3, i4, i5) {
46170 i1 = i1 | 0;
46171 d2 = +d2;
46172 i3 = i3 | 0;
46173 i4 = i4 | 0;
46174 i5 = i5 | 0;
46175 var i6 = 0, i7 = 0;
46176 i6 = STACKTOP;
46177 STACKTOP = STACKTOP + 136 | 0;
46178 i7 = i6 | 0;
46179 __ZN17btCollisionObjectC2Ev(i1 | 0);
46180 HEAP32[i1 >> 2] = 4936;
46181 HEAP8[i1 + 492 | 0] = 1;
46182 HEAP32[i1 + 488 >> 2] = 0;
46183 HEAP32[i1 + 480 >> 2] = 0;
46184 HEAP32[i1 + 484 >> 2] = 0;
46185 HEAPF32[i7 >> 2] = d2;
46186 HEAP32[i7 + 4 >> 2] = i3;
46187 HEAP32[i7 + 72 >> 2] = i4;
46188 i4 = i7 + 76 | 0;
46189 i3 = i5;
46190 HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
46191 HEAP32[i4 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
46192 HEAP32[i4 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
46193 HEAP32[i4 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
46194 HEAPF32[i7 + 92 >> 2] = 0.0;
46195 HEAPF32[i7 + 96 >> 2] = 0.0;
46196 HEAPF32[i7 + 100 >> 2] = .5;
46197 HEAPF32[i7 + 104 >> 2] = 0.0;
46198 HEAPF32[i7 + 108 >> 2] = .800000011920929;
46199 HEAPF32[i7 + 112 >> 2] = 1.0;
46200 HEAP8[i7 + 116 | 0] = 0;
46201 HEAPF32[i7 + 120 >> 2] = .004999999888241291;
46202 HEAPF32[i7 + 124 >> 2] = .009999999776482582;
46203 HEAPF32[i7 + 128 >> 2] = .009999999776482582;
46204 HEAPF32[i7 + 132 >> 2] = .009999999776482582;
46205 HEAPF32[i7 + 8 >> 2] = 1.0;
46206 _memset(i7 + 12 | 0, 0, 16);
46207 HEAPF32[i7 + 28 >> 2] = 1.0;
46208 _memset(i7 + 32 | 0, 0, 16);
46209 HEAPF32[i7 + 48 >> 2] = 1.0;
46210 _memset(i7 + 52 | 0, 0, 20);
46211 __ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i1, i7);
46212 STACKTOP = i6;
46213 return;
46214 }
46215 function __ZN11btUnionFind8allocateEi(i1, i2) {
46216 i1 = i1 | 0;
46217 i2 = i2 | 0;
46218 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
46219 i3 = i1 + 4 | 0;
46220 i4 = HEAP32[i3 >> 2] | 0;
46221 if ((i4 | 0) >= (i2 | 0)) {
46222 HEAP32[i3 >> 2] = i2;
46223 return;
46224 }
46225 i5 = i1 + 8 | 0;
46226 if ((HEAP32[i5 >> 2] | 0) < (i2 | 0)) {
46227 if ((i2 | 0) == 0) {
46228 i6 = 0;
46229 i7 = i4;
46230 } else {
46231 i8 = __Z22btAlignedAllocInternalji(i2 << 3, 16) | 0;
46232 i6 = i8;
46233 i7 = HEAP32[i3 >> 2] | 0;
46234 }
46235 i8 = i1 + 12 | 0;
46236 if ((i7 | 0) > 0) {
46237 i9 = 0;
46238 do {
46239 i10 = i6 + (i9 << 3) | 0;
46240 if ((i10 | 0) != 0) {
46241 i11 = (HEAP32[i8 >> 2] | 0) + (i9 << 3) | 0;
46242 i12 = i10;
46243 i10 = HEAP32[i11 + 4 >> 2] | 0;
46244 HEAP32[i12 >> 2] = HEAP32[i11 >> 2];
46245 HEAP32[i12 + 4 >> 2] = i10;
46246 }
46247 i9 = i9 + 1 | 0;
46248 } while ((i9 | 0) < (i7 | 0));
46249 }
46250 i7 = HEAP32[i8 >> 2] | 0;
46251 i9 = i1 + 16 | 0;
46252 if ((i7 | 0) != 0) {
46253 if ((HEAP8[i9] | 0) != 0) {
46254 __Z21btAlignedFreeInternalPv(i7);
46255 }
46256 HEAP32[i8 >> 2] = 0;
46257 }
46258 HEAP8[i9] = 1;
46259 HEAP32[i8 >> 2] = i6;
46260 HEAP32[i5 >> 2] = i2;
46261 i13 = i8;
46262 } else {
46263 i13 = i1 + 12 | 0;
46264 }
46265 i1 = i4;
46266 do {
46267 i4 = (HEAP32[i13 >> 2] | 0) + (i1 << 3) | 0;
46268 if ((i4 | 0) != 0) {
46269 i8 = i4;
46270 HEAP32[i8 >> 2] = 0;
46271 HEAP32[i8 + 4 >> 2] = 0;
46272 }
46273 i1 = i1 + 1 | 0;
46274 } while ((i1 | 0) < (i2 | 0));
46275 HEAP32[i3 >> 2] = i2;
46276 return;
46277 }
46278 function __ZNK10btBoxShape7getAabbERK11btTransformR9btVector3S4_(i1, i2, i3, i4) {
46279 i1 = i1 | 0;
46280 i2 = i2 | 0;
46281 i3 = i3 | 0;
46282 i4 = i4 | 0;
46283 var d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0;
46284 d5 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i1 >> 2] | 0) + 44 >> 2] & 7](i1 | 0);
46285 d6 = d5 + +HEAPF32[i1 + 28 >> 2];
46286 d7 = d5 + +HEAPF32[i1 + 32 >> 2];
46287 d8 = d5 + +HEAPF32[i1 + 36 >> 2];
46288 d5 = +Math_abs(+(+HEAPF32[i2 >> 2]));
46289 d9 = +Math_abs(+(+HEAPF32[i2 + 4 >> 2]));
46290 d10 = +Math_abs(+(+HEAPF32[i2 + 8 >> 2]));
46291 d11 = +Math_abs(+(+HEAPF32[i2 + 16 >> 2]));
46292 d12 = +Math_abs(+(+HEAPF32[i2 + 20 >> 2]));
46293 d13 = +Math_abs(+(+HEAPF32[i2 + 24 >> 2]));
46294 d14 = +Math_abs(+(+HEAPF32[i2 + 32 >> 2]));
46295 d15 = +Math_abs(+(+HEAPF32[i2 + 36 >> 2]));
46296 d16 = +Math_abs(+(+HEAPF32[i2 + 40 >> 2]));
46297 d17 = +HEAPF32[i2 + 48 >> 2];
46298 d18 = +HEAPF32[i2 + 52 >> 2];
46299 d19 = +HEAPF32[i2 + 56 >> 2];
46300 d20 = d6 * d5 + d7 * d9 + d8 * d10;
46301 d10 = d6 * d11 + d7 * d12 + d8 * d13;
46302 d13 = d6 * d14 + d7 * d15 + d8 * d16;
46303 HEAPF32[i3 >> 2] = d17 - d20;
46304 HEAPF32[i3 + 4 >> 2] = d18 - d10;
46305 HEAPF32[i3 + 8 >> 2] = d19 - d13;
46306 HEAPF32[i3 + 12 >> 2] = 0.0;
46307 HEAPF32[i4 >> 2] = d20 + d17;
46308 HEAPF32[i4 + 4 >> 2] = d10 + d18;
46309 HEAPF32[i4 + 8 >> 2] = d13 + d19;
46310 HEAPF32[i4 + 12 >> 2] = 0.0;
46311 return;
46312 }
46313 function __ZNK15btTriangleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(i1, i2, i3, i4) {
46314 i1 = i1 | 0;
46315 i2 = i2 | 0;
46316 i3 = i3 | 0;
46317 i4 = i4 | 0;
46318 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, i21 = 0, i22 = 0, i23 = 0;
46319 if ((i4 | 0) <= 0) {
46320 return;
46321 }
46322 i5 = i1 + 56 | 0;
46323 i6 = i1 + 60 | 0;
46324 i7 = i1 + 64 | 0;
46325 i8 = i1 + 72 | 0;
46326 i9 = i1 + 76 | 0;
46327 i10 = i1 + 80 | 0;
46328 i11 = i1 + 88 | 0;
46329 i12 = i1 + 92 | 0;
46330 i13 = i1 + 96 | 0;
46331 i14 = 0;
46332 do {
46333 d15 = +HEAPF32[i2 + (i14 << 4) >> 2];
46334 d16 = +HEAPF32[i2 + (i14 << 4) + 4 >> 2];
46335 d17 = +HEAPF32[i2 + (i14 << 4) + 8 >> 2];
46336 d18 = d15 * +HEAPF32[i5 >> 2] + d16 * +HEAPF32[i6 >> 2] + d17 * +HEAPF32[i7 >> 2];
46337 d19 = d15 * +HEAPF32[i8 >> 2] + d16 * +HEAPF32[i9 >> 2] + d17 * +HEAPF32[i10 >> 2];
46338 d20 = d15 * +HEAPF32[i11 >> 2] + d16 * +HEAPF32[i12 >> 2] + d17 * +HEAPF32[i13 >> 2];
46339 if (d18 < d19) {
46340 i21 = d19 < d20 ? 2 : 1;
46341 } else {
46342 i21 = d18 < d20 ? 2 : 0;
46343 }
46344 i22 = i3 + (i14 << 4) | 0;
46345 i23 = i1 + 56 + (i21 << 4) | 0;
46346 HEAP32[i22 >> 2] = HEAP32[i23 >> 2];
46347 HEAP32[i22 + 4 >> 2] = HEAP32[i23 + 4 >> 2];
46348 HEAP32[i22 + 8 >> 2] = HEAP32[i23 + 8 >> 2];
46349 HEAP32[i22 + 12 >> 2] = HEAP32[i23 + 12 >> 2];
46350 i14 = i14 + 1 | 0;
46351 } while ((i14 | 0) < (i4 | 0));
46352 return;
46353 }
46354 function __ZN20btAlignedObjectArrayI6btFaceE7reserveEi(i1, i2) {
46355 i1 = i1 | 0;
46356 i2 = i2 | 0;
46357 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
46358 i3 = i1 + 8 | 0;
46359 if ((HEAP32[i3 >> 2] | 0) >= (i2 | 0)) {
46360 return;
46361 }
46362 if ((i2 | 0) == 0) {
46363 i4 = 0;
46364 } else {
46365 i4 = __Z22btAlignedAllocInternalji(i2 * 56 | 0, 16) | 0;
46366 }
46367 i5 = i1 + 4 | 0;
46368 i6 = HEAP32[i5 >> 2] | 0;
46369 i7 = i1 + 12 | 0;
46370 if ((i6 | 0) > 0) {
46371 i8 = 0;
46372 do {
46373 i9 = i4 + (i8 * 56 | 0) | 0;
46374 if ((i9 | 0) != 0) {
46375 i10 = HEAP32[i7 >> 2] | 0;
46376 __ZN20btAlignedObjectArrayIiEC2ERKS0_(i9, i10 + (i8 * 56 | 0) | 0);
46377 __ZN20btAlignedObjectArrayIiEC2ERKS0_(i9 + 20 | 0, i10 + (i8 * 56 | 0) + 20 | 0);
46378 i11 = i9 + 40 | 0;
46379 i9 = i10 + (i8 * 56 | 0) + 40 | 0;
46380 HEAP32[i11 >> 2] = HEAP32[i9 >> 2];
46381 HEAP32[i11 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
46382 HEAP32[i11 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
46383 HEAP32[i11 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
46384 }
46385 i8 = i8 + 1 | 0;
46386 } while ((i8 | 0) < (i6 | 0));
46387 i12 = HEAP32[i5 >> 2] | 0;
46388 } else {
46389 i12 = i6;
46390 }
46391 __ZN20btAlignedObjectArrayI6btFaceE7destroyEii(i1, 0, i12);
46392 i12 = HEAP32[i7 >> 2] | 0;
46393 i6 = i1 + 16 | 0;
46394 if ((i12 | 0) != 0) {
46395 if ((HEAP8[i6] | 0) != 0) {
46396 __Z21btAlignedFreeInternalPv(i12 | 0);
46397 }
46398 HEAP32[i7 >> 2] = 0;
46399 }
46400 HEAP8[i6] = 1;
46401 HEAP32[i7 >> 2] = i4;
46402 HEAP32[i3 >> 2] = i2;
46403 return;
46404 }
46405 function __ZN28btHashedOverlappingPairCacheC2Ev(i1) {
46406 i1 = i1 | 0;
46407 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
46408 HEAP32[i1 >> 2] = 2800;
46409 i2 = i1 + 20 | 0;
46410 HEAP8[i2] = 1;
46411 i3 = i1 + 16 | 0;
46412 HEAP32[i3 >> 2] = 0;
46413 i4 = i1 + 8 | 0;
46414 HEAP32[i4 >> 2] = 0;
46415 i5 = i1 + 12 | 0;
46416 HEAP32[i5 >> 2] = 0;
46417 HEAP32[i1 + 24 >> 2] = 0;
46418 HEAP8[i1 + 28 | 0] = 0;
46419 HEAP8[i1 + 48 | 0] = 1;
46420 HEAP32[i1 + 44 >> 2] = 0;
46421 HEAP32[i1 + 36 >> 2] = 0;
46422 HEAP32[i1 + 40 >> 2] = 0;
46423 HEAP8[i1 + 68 | 0] = 1;
46424 HEAP32[i1 + 64 >> 2] = 0;
46425 HEAP32[i1 + 56 >> 2] = 0;
46426 HEAP32[i1 + 60 >> 2] = 0;
46427 HEAP32[i1 + 72 >> 2] = 0;
46428 i6 = __Z22btAlignedAllocInternalji(32, 16) | 0;
46429 i7 = HEAP32[i4 >> 2] | 0;
46430 if ((i7 | 0) > 0) {
46431 i4 = 0;
46432 do {
46433 i8 = HEAP32[i3 >> 2] | 0;
46434 HEAP32[i6 + (i4 << 4) >> 2] = HEAP32[i8 + (i4 << 4) >> 2];
46435 HEAP32[i6 + (i4 << 4) + 4 >> 2] = HEAP32[i8 + (i4 << 4) + 4 >> 2];
46436 HEAP32[i6 + (i4 << 4) + 8 >> 2] = HEAP32[i8 + (i4 << 4) + 8 >> 2];
46437 HEAP32[i6 + (i4 << 4) + 12 >> 2] = HEAP32[i8 + (i4 << 4) + 12 >> 2];
46438 i4 = i4 + 1 | 0;
46439 } while ((i4 | 0) < (i7 | 0));
46440 }
46441 i7 = HEAP32[i3 >> 2] | 0;
46442 if ((i7 | 0) != 0) {
46443 if ((HEAP8[i2] | 0) != 0) {
46444 __Z21btAlignedFreeInternalPv(i7);
46445 }
46446 HEAP32[i3 >> 2] = 0;
46447 }
46448 HEAP8[i2] = 1;
46449 HEAP32[i3 >> 2] = i6;
46450 HEAP32[i5 >> 2] = 2;
46451 __ZN28btHashedOverlappingPairCache10growTablesEv(i1);
46452 return;
46453 }
46454 function __ZN15CProfileManager13Start_ProfileEPKc(i1) {
46455 i1 = i1 | 0;
46456 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
46457 i2 = STACKTOP;
46458 STACKTOP = STACKTOP + 8 | 0;
46459 i3 = i2 | 0;
46460 i4 = HEAP32[2966] | 0;
46461 if ((HEAP32[i4 >> 2] | 0) == (i1 | 0)) {
46462 i5 = i4;
46463 } else {
46464 i6 = i4 + 24 | 0;
46465 i7 = i6;
46466 while (1) {
46467 i8 = HEAP32[i7 >> 2] | 0;
46468 if ((i8 | 0) == 0) {
46469 i9 = 1900;
46470 break;
46471 }
46472 if ((HEAP32[i8 >> 2] | 0) == (i1 | 0)) {
46473 i10 = i8;
46474 break;
46475 } else {
46476 i7 = i8 + 28 | 0;
46477 }
46478 }
46479 if ((i9 | 0) == 1900) {
46480 i9 = __Znwj(32) | 0;
46481 i7 = i9;
46482 HEAP32[i9 >> 2] = i1;
46483 _memset(i9 + 4 | 0, 0, 16);
46484 HEAP32[i9 + 20 >> 2] = i4;
46485 HEAP32[i9 + 24 >> 2] = 0;
46486 i4 = i9 + 28 | 0;
46487 HEAP32[i4 >> 2] = 0;
46488 __ZN12CProfileNode5ResetEv(i7);
46489 HEAP32[i4 >> 2] = HEAP32[i6 >> 2];
46490 HEAP32[i6 >> 2] = i7;
46491 i10 = i7;
46492 }
46493 HEAP32[2966] = i10;
46494 i5 = i10;
46495 }
46496 i10 = i5 + 4 | 0;
46497 HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + 1;
46498 i10 = i5 + 16 | 0;
46499 i7 = HEAP32[i10 >> 2] | 0;
46500 HEAP32[i10 >> 2] = i7 + 1;
46501 if ((i7 | 0) != 0) {
46502 STACKTOP = i2;
46503 return;
46504 }
46505 _gettimeofday(i3 | 0, 0) | 0;
46506 i7 = HEAP32[3578] | 0;
46507 HEAP32[i5 + 12 >> 2] = (HEAP32[i3 + 4 >> 2] | 0) - (HEAP32[i7 + 4 >> 2] | 0) + (((HEAP32[i3 >> 2] | 0) - (HEAP32[i7 >> 2] | 0) | 0) * 1e6 | 0);
46508 STACKTOP = i2;
46509 return;
46510 }
46511 function __ZN20btAlignedObjectArrayIiEC2ERKS0_(i1, i2) {
46512 i1 = i1 | 0;
46513 i2 = i2 | 0;
46514 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
46515 i3 = i1 + 16 | 0;
46516 HEAP8[i3] = 1;
46517 i4 = i1 + 12 | 0;
46518 HEAP32[i4 >> 2] = 0;
46519 i5 = i1 + 4 | 0;
46520 HEAP32[i5 >> 2] = 0;
46521 i6 = i1 + 8 | 0;
46522 HEAP32[i6 >> 2] = 0;
46523 i1 = HEAP32[i2 + 4 >> 2] | 0;
46524 if ((i1 | 0) <= 0) {
46525 HEAP32[i5 >> 2] = i1;
46526 return;
46527 }
46528 i7 = __Z22btAlignedAllocInternalji(i1 << 2, 16) | 0;
46529 i8 = HEAP32[i5 >> 2] | 0;
46530 if ((i8 | 0) > 0) {
46531 i9 = 0;
46532 do {
46533 i10 = i7 + (i9 << 2) | 0;
46534 if ((i10 | 0) != 0) {
46535 HEAP32[i10 >> 2] = HEAP32[(HEAP32[i4 >> 2] | 0) + (i9 << 2) >> 2];
46536 }
46537 i9 = i9 + 1 | 0;
46538 } while ((i9 | 0) < (i8 | 0));
46539 }
46540 i8 = HEAP32[i4 >> 2] | 0;
46541 if ((i8 | 0) != 0) {
46542 if ((HEAP8[i3] | 0) != 0) {
46543 __Z21btAlignedFreeInternalPv(i8);
46544 }
46545 HEAP32[i4 >> 2] = 0;
46546 }
46547 HEAP8[i3] = 1;
46548 HEAP32[i4 >> 2] = i7;
46549 HEAP32[i6 >> 2] = i1;
46550 i6 = 0;
46551 do {
46552 i4 = i7 + (i6 << 2) | 0;
46553 if ((i4 | 0) != 0) {
46554 HEAP32[i4 >> 2] = 0;
46555 }
46556 i6 = i6 + 1 | 0;
46557 } while ((i6 | 0) < (i1 | 0));
46558 HEAP32[i5 >> 2] = i1;
46559 i5 = i2 + 12 | 0;
46560 i2 = 0;
46561 do {
46562 i6 = i7 + (i2 << 2) | 0;
46563 if ((i6 | 0) != 0) {
46564 HEAP32[i6 >> 2] = HEAP32[(HEAP32[i5 >> 2] | 0) + (i2 << 2) >> 2];
46565 }
46566 i2 = i2 + 1 | 0;
46567 } while ((i2 | 0) < (i1 | 0));
46568 return;
46569 }
46570 function __ZN25btSimulationIslandManager26storeIslandActivationStateEP16btCollisionWorld(i1, i2) {
46571 i1 = i1 | 0;
46572 i2 = i2 | 0;
46573 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
46574 i3 = i2 + 8 | 0;
46575 if ((HEAP32[i3 >> 2] | 0) <= 0) {
46576 return;
46577 }
46578 i4 = HEAP32[i2 + 16 >> 2] | 0;
46579 i2 = i1 + 16 | 0;
46580 i1 = 0;
46581 i5 = 0;
46582 while (1) {
46583 i6 = HEAP32[i4 + (i1 << 2) >> 2] | 0;
46584 if ((HEAP32[i6 + 204 >> 2] & 3 | 0) == 0) {
46585 i7 = HEAP32[i2 >> 2] | 0;
46586 i8 = i7 + (i5 << 3) | 0;
46587 i9 = HEAP32[i8 >> 2] | 0;
46588 if ((i9 | 0) == (i5 | 0)) {
46589 i10 = i5;
46590 } else {
46591 i11 = i8;
46592 i8 = i9;
46593 while (1) {
46594 i9 = i7 + (i8 << 3) | 0;
46595 HEAP32[i11 >> 2] = HEAP32[i9 >> 2];
46596 i12 = HEAP32[i9 >> 2] | 0;
46597 i9 = i7 + (i12 << 3) | 0;
46598 i13 = HEAP32[i9 >> 2] | 0;
46599 if ((i12 | 0) == (i13 | 0)) {
46600 i10 = i12;
46601 break;
46602 } else {
46603 i11 = i9;
46604 i8 = i13;
46605 }
46606 }
46607 }
46608 HEAP32[i6 + 208 >> 2] = i10;
46609 HEAP32[i7 + (i5 << 3) + 4 >> 2] = i1;
46610 HEAP32[i6 + 212 >> 2] = -1;
46611 i14 = i5 + 1 | 0;
46612 } else {
46613 HEAP32[i6 + 208 >> 2] = -1;
46614 HEAP32[i6 + 212 >> 2] = -2;
46615 i14 = i5;
46616 }
46617 i8 = i1 + 1 | 0;
46618 if ((i8 | 0) < (HEAP32[i3 >> 2] | 0)) {
46619 i1 = i8;
46620 i5 = i14;
46621 } else {
46622 break;
46623 }
46624 }
46625 return;
46626 }
46627 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN9RayTester7ProcessE_1PK10btDbvtNode(i1, i2) {
46628 i1 = i1 | 0;
46629 i2 = i2 | 0;
46630 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
46631 i3 = STACKTOP;
46632 STACKTOP = STACKTOP + 96 | 0;
46633 i4 = i3 | 0;
46634 i5 = i3 + 64 | 0;
46635 i6 = HEAP32[i2 + 36 >> 2] | 0;
46636 i2 = HEAP32[(HEAP32[i1 + 8 >> 2] | 0) + 24 >> 2] | 0;
46637 i7 = HEAP32[i2 + (i6 * 80 | 0) + 64 >> 2] | 0;
46638 __ZNK11btTransformmlERKS_(i4, HEAP32[i1 + 12 >> 2] | 0, i2 + (i6 * 80 | 0) | 0);
46639 i2 = i1 + 4 | 0;
46640 i8 = (HEAP32[i2 >> 2] | 0) + 192 | 0;
46641 i9 = HEAP32[i8 >> 2] | 0;
46642 HEAP32[i8 >> 2] = i7;
46643 i8 = HEAP32[i1 + 24 >> 2] | 0;
46644 i10 = i5 + 4 | 0;
46645 HEAPF32[i10 >> 2] = 1.0;
46646 HEAP32[i5 + 8 >> 2] = 0;
46647 HEAP16[i5 + 12 >> 1] = 1;
46648 HEAP16[i5 + 14 >> 1] = -1;
46649 HEAP32[i5 + 16 >> 2] = 0;
46650 HEAP32[i5 >> 2] = 1864;
46651 HEAP32[i5 + 20 >> 2] = i8;
46652 HEAP32[i5 + 24 >> 2] = i6;
46653 HEAPF32[i10 >> 2] = +HEAPF32[i8 + 4 >> 2];
46654 __ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(HEAP32[i1 + 16 >> 2] | 0, HEAP32[i1 + 20 >> 2] | 0, HEAP32[i2 >> 2] | 0, i7, i4, i5 | 0);
46655 HEAP32[(HEAP32[i2 >> 2] | 0) + 192 >> 2] = i9;
46656 STACKTOP = i3;
46657 return;
46658 }
46659 function __ZN11btRigidBody12setMassPropsEfRK9btVector3(i1, d2, i3) {
46660 i1 = i1 | 0;
46661 d2 = +d2;
46662 i3 = i3 | 0;
46663 var i4 = 0, i5 = 0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0;
46664 i4 = i1 + 204 | 0;
46665 i5 = HEAP32[i4 >> 2] | 0;
46666 if (d2 == 0.0) {
46667 HEAP32[i4 >> 2] = i5 | 1;
46668 HEAPF32[i1 + 336 >> 2] = 0.0;
46669 d6 = 0.0;
46670 } else {
46671 HEAP32[i4 >> 2] = i5 & -2;
46672 d7 = 1.0 / d2;
46673 HEAPF32[i1 + 336 >> 2] = d7;
46674 d6 = d7;
46675 }
46676 d7 = +HEAPF32[i1 + 376 >> 2] * d2;
46677 d8 = +HEAPF32[i1 + 380 >> 2] * d2;
46678 HEAPF32[i1 + 356 >> 2] = +HEAPF32[i1 + 372 >> 2] * d2;
46679 HEAPF32[i1 + 360 >> 2] = d7;
46680 HEAPF32[i1 + 364 >> 2] = d8;
46681 HEAPF32[i1 + 368 >> 2] = 0.0;
46682 d8 = +HEAPF32[i3 >> 2];
46683 if (d8 != 0.0) {
46684 d9 = 1.0 / d8;
46685 } else {
46686 d9 = 0.0;
46687 }
46688 d8 = +HEAPF32[i3 + 4 >> 2];
46689 if (d8 != 0.0) {
46690 d10 = 1.0 / d8;
46691 } else {
46692 d10 = 0.0;
46693 }
46694 d8 = +HEAPF32[i3 + 8 >> 2];
46695 if (d8 != 0.0) {
46696 d11 = 1.0 / d8;
46697 } else {
46698 d11 = 0.0;
46699 }
46700 HEAPF32[i1 + 388 >> 2] = d9;
46701 HEAPF32[i1 + 392 >> 2] = d10;
46702 HEAPF32[i1 + 396 >> 2] = d11;
46703 HEAPF32[i1 + 400 >> 2] = 0.0;
46704 d11 = d6 * +HEAPF32[i1 + 344 >> 2];
46705 d10 = d6 * +HEAPF32[i1 + 348 >> 2];
46706 HEAPF32[i1 + 552 >> 2] = d6 * +HEAPF32[i1 + 340 >> 2];
46707 HEAPF32[i1 + 556 >> 2] = d11;
46708 HEAPF32[i1 + 560 >> 2] = d10;
46709 HEAPF32[i1 + 564 >> 2] = 0.0;
46710 return;
46711 }
46712 function __ZN20btConvexHullInternalD2Ev(i1) {
46713 i1 = i1 | 0;
46714 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
46715 i2 = i1 + 84 | 0;
46716 i3 = i1 + 92 | 0;
46717 i4 = HEAP32[i3 >> 2] | 0;
46718 i5 = i1 + 96 | 0;
46719 if ((i4 | 0) != 0) {
46720 if ((HEAP8[i5] | 0) != 0) {
46721 __Z21btAlignedFreeInternalPv(i4);
46722 }
46723 HEAP32[i3 >> 2] = 0;
46724 }
46725 HEAP8[i5] = 1;
46726 HEAP32[i3 >> 2] = 0;
46727 HEAP32[i2 >> 2] = 0;
46728 HEAP32[i1 + 88 >> 2] = 0;
46729 i2 = i1 + 64 | 0;
46730 i3 = HEAP32[i2 >> 2] | 0;
46731 if ((i3 | 0) != 0) {
46732 i5 = i3;
46733 do {
46734 HEAP32[i2 >> 2] = HEAP32[i5 + 8 >> 2];
46735 __Z21btAlignedFreeInternalPv(HEAP32[i5 >> 2] | 0);
46736 __Z21btAlignedFreeInternalPv(i5);
46737 i5 = HEAP32[i2 >> 2] | 0;
46738 } while ((i5 | 0) != 0);
46739 }
46740 i5 = i1 + 48 | 0;
46741 i2 = HEAP32[i5 >> 2] | 0;
46742 if ((i2 | 0) != 0) {
46743 i3 = i2;
46744 do {
46745 HEAP32[i5 >> 2] = HEAP32[i3 + 8 >> 2];
46746 __Z21btAlignedFreeInternalPv(HEAP32[i3 >> 2] | 0);
46747 __Z21btAlignedFreeInternalPv(i3);
46748 i3 = HEAP32[i5 >> 2] | 0;
46749 } while ((i3 | 0) != 0);
46750 }
46751 i3 = i1 + 32 | 0;
46752 i1 = HEAP32[i3 >> 2] | 0;
46753 if ((i1 | 0) == 0) {
46754 return;
46755 } else {
46756 i6 = i1;
46757 }
46758 do {
46759 HEAP32[i3 >> 2] = HEAP32[i6 + 8 >> 2];
46760 __Z21btAlignedFreeInternalPv(HEAP32[i6 >> 2] | 0);
46761 __Z21btAlignedFreeInternalPv(i6);
46762 i6 = HEAP32[i3 >> 2] | 0;
46763 } while ((i6 | 0) != 0);
46764 return;
46765 }
46766 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitE_0RK9btVector3fii(i1, i2, d3, i4, i5) {
46767 i1 = i1 | 0;
46768 i2 = i2 | 0;
46769 d3 = +d3;
46770 i4 = i4 | 0;
46771 i5 = i5 | 0;
46772 var i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0;
46773 i6 = STACKTOP;
46774 STACKTOP = STACKTOP + 40 | 0;
46775 i7 = i6 | 0;
46776 i8 = i6 + 8 | 0;
46777 HEAP32[i7 >> 2] = i4;
46778 HEAP32[i7 + 4 >> 2] = i5;
46779 d9 = +HEAPF32[i2 >> 2];
46780 d10 = +HEAPF32[i2 + 4 >> 2];
46781 d11 = +HEAPF32[i2 + 8 >> 2];
46782 d12 = +HEAPF32[i1 + 56 >> 2] * d9 + +HEAPF32[i1 + 60 >> 2] * d10 + +HEAPF32[i1 + 64 >> 2] * d11;
46783 d13 = d9 * +HEAPF32[i1 + 72 >> 2] + d10 * +HEAPF32[i1 + 76 >> 2] + d11 * +HEAPF32[i1 + 80 >> 2];
46784 d14 = d9 * +HEAPF32[i1 + 88 >> 2] + d10 * +HEAPF32[i1 + 92 >> 2] + d11 * +HEAPF32[i1 + 96 >> 2];
46785 HEAP32[i8 >> 2] = HEAP32[i1 + 48 >> 2];
46786 HEAP32[i8 + 4 >> 2] = i7;
46787 HEAPF32[i8 + 8 >> 2] = d12;
46788 HEAPF32[i8 + 12 >> 2] = d13;
46789 HEAPF32[i8 + 16 >> 2] = d14;
46790 HEAPF32[i8 + 20 >> 2] = 0.0;
46791 HEAPF32[i8 + 24 >> 2] = d3;
46792 i7 = HEAP32[i1 + 44 >> 2] | 0;
46793 d3 = +FUNCTION_TABLE_fiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] & 15](i7, i8, 1);
46794 STACKTOP = i6;
46795 return +d3;
46796 }
46797 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitERK9btVector3fii(i1, i2, d3, i4, i5) {
46798 i1 = i1 | 0;
46799 i2 = i2 | 0;
46800 d3 = +d3;
46801 i4 = i4 | 0;
46802 i5 = i5 | 0;
46803 var i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0;
46804 i6 = STACKTOP;
46805 STACKTOP = STACKTOP + 40 | 0;
46806 i7 = i6 | 0;
46807 i8 = i6 + 8 | 0;
46808 HEAP32[i7 >> 2] = i4;
46809 HEAP32[i7 + 4 >> 2] = i5;
46810 d9 = +HEAPF32[i2 >> 2];
46811 d10 = +HEAPF32[i2 + 4 >> 2];
46812 d11 = +HEAPF32[i2 + 8 >> 2];
46813 d12 = +HEAPF32[i1 + 56 >> 2] * d9 + +HEAPF32[i1 + 60 >> 2] * d10 + +HEAPF32[i1 + 64 >> 2] * d11;
46814 d13 = d9 * +HEAPF32[i1 + 72 >> 2] + d10 * +HEAPF32[i1 + 76 >> 2] + d11 * +HEAPF32[i1 + 80 >> 2];
46815 d14 = d9 * +HEAPF32[i1 + 88 >> 2] + d10 * +HEAPF32[i1 + 92 >> 2] + d11 * +HEAPF32[i1 + 96 >> 2];
46816 HEAP32[i8 >> 2] = HEAP32[i1 + 48 >> 2];
46817 HEAP32[i8 + 4 >> 2] = i7;
46818 HEAPF32[i8 + 8 >> 2] = d12;
46819 HEAPF32[i8 + 12 >> 2] = d13;
46820 HEAPF32[i8 + 16 >> 2] = d14;
46821 HEAPF32[i8 + 20 >> 2] = 0.0;
46822 HEAPF32[i8 + 24 >> 2] = d3;
46823 i7 = HEAP32[i1 + 44 >> 2] | 0;
46824 d3 = +FUNCTION_TABLE_fiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] & 15](i7, i8, 1);
46825 STACKTOP = i6;
46826 return +d3;
46827 }
46828 function __ZN31btDefaultCollisionConfiguration31getCollisionAlgorithmCreateFuncEii(i1, i2, i3) {
46829 i1 = i1 | 0;
46830 i2 = i2 | 0;
46831 i3 = i3 | 0;
46832 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
46833 i4 = (i2 | 0) == 8;
46834 i5 = (i3 | 0) == 8;
46835 L1262 : do {
46836 if (i4 & i5) {
46837 i6 = i1 + 64 | 0;
46838 } else {
46839 if (i4 & (i3 | 0) == 1) {
46840 i6 = i1 + 72 | 0;
46841 break;
46842 }
46843 if ((i2 | 0) == 1 & i5) {
46844 i6 = i1 + 76 | 0;
46845 break;
46846 }
46847 if ((i3 | i2 | 0) == 0) {
46848 i6 = i1 + 68 | 0;
46849 break;
46850 }
46851 i7 = (i2 | 0) < 20;
46852 if (i7 & (i3 | 0) == 28) {
46853 i6 = i1 + 84 | 0;
46854 break;
46855 }
46856 i8 = (i3 | 0) < 20;
46857 if (i8 & (i2 | 0) == 28) {
46858 i6 = i1 + 80 | 0;
46859 break;
46860 }
46861 do {
46862 if (i7) {
46863 if (i8) {
46864 i6 = i1 + 40 | 0;
46865 break L1262;
46866 }
46867 if ((i3 - 21 | 0) >>> 0 >= 9) {
46868 break;
46869 }
46870 i6 = i1 + 44 | 0;
46871 break L1262;
46872 } else {
46873 if (!i8) {
46874 break;
46875 }
46876 if ((i2 - 21 | 0) >>> 0 >= 9) {
46877 break;
46878 }
46879 i6 = i1 + 48 | 0;
46880 break L1262;
46881 }
46882 } while (0);
46883 if ((i2 | 0) == 31) {
46884 i6 = i1 + 52 | 0;
46885 break;
46886 }
46887 if ((i3 | 0) == 31) {
46888 i6 = i1 + 56 | 0;
46889 break;
46890 } else {
46891 i6 = i1 + 60 | 0;
46892 break;
46893 }
46894 }
46895 } while (0);
46896 return HEAP32[i6 >> 2] | 0;
46897 }
46898 function __ZN28btHashedOverlappingPairCache8findPairEP17btBroadphaseProxyS1_(i1, i2, i3) {
46899 i1 = i1 | 0;
46900 i2 = i2 | 0;
46901 i3 = i3 | 0;
46902 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
46903 HEAP32[3002] = (HEAP32[3002] | 0) + 1;
46904 i4 = (HEAP32[i2 + 12 >> 2] | 0) > (HEAP32[i3 + 12 >> 2] | 0);
46905 i5 = HEAP32[(i4 ? i3 : i2) + 12 >> 2] | 0;
46906 i6 = HEAP32[(i4 ? i2 : i3) + 12 >> 2] | 0;
46907 i3 = i6 << 16 | i5;
46908 i2 = i3 + ~(i3 << 15) | 0;
46909 i3 = (i2 >> 10 ^ i2) * 9 | 0;
46910 i2 = i3 >> 6 ^ i3;
46911 i3 = i2 + ~(i2 << 11) | 0;
46912 i2 = (i3 >> 16 ^ i3) & (HEAP32[i1 + 12 >> 2] | 0) - 1;
46913 if ((i2 | 0) >= (HEAP32[i1 + 36 >> 2] | 0)) {
46914 i7 = 0;
46915 return i7 | 0;
46916 }
46917 i3 = HEAP32[(HEAP32[i1 + 44 >> 2] | 0) + (i2 << 2) >> 2] | 0;
46918 if ((i3 | 0) == -1) {
46919 i7 = 0;
46920 return i7 | 0;
46921 }
46922 i2 = HEAP32[i1 + 16 >> 2] | 0;
46923 i4 = i1 + 64 | 0;
46924 i1 = i3;
46925 while (1) {
46926 if ((HEAP32[(HEAP32[i2 + (i1 << 4) >> 2] | 0) + 12 >> 2] | 0) == (i5 | 0)) {
46927 if ((HEAP32[(HEAP32[i2 + (i1 << 4) + 4 >> 2] | 0) + 12 >> 2] | 0) == (i6 | 0)) {
46928 break;
46929 }
46930 }
46931 i3 = HEAP32[(HEAP32[i4 >> 2] | 0) + (i1 << 2) >> 2] | 0;
46932 if ((i3 | 0) == -1) {
46933 i7 = 0;
46934 i8 = 1441;
46935 break;
46936 } else {
46937 i1 = i3;
46938 }
46939 }
46940 if ((i8 | 0) == 1441) {
46941 return i7 | 0;
46942 }
46943 i7 = i2 + (i1 << 4) | 0;
46944 return i7 | 0;
46945 }
46946 function __ZNK21btConeTwistConstraint16GetPointForAngleEff(i1, i2, d3, d4) {
46947 i1 = i1 | 0;
46948 i2 = i2 | 0;
46949 d3 = +d3;
46950 d4 = +d4;
46951 var d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0;
46952 d5 = +Math_cos(+d3);
46953 d6 = +Math_sin(+d3);
46954 d3 = +HEAPF32[i2 + 436 >> 2];
46955 if (+Math_abs(+d5) > 1.1920928955078125e-7) {
46956 d7 = d6 * d6;
46957 d8 = d5 * d5;
46958 d9 = d7 / d8;
46959 d10 = +HEAPF32[i2 + 440 >> 2];
46960 d11 = +Math_sqrt(+((d9 + 1.0) / (1.0 / (d10 * d10) + d9 / (d3 * d3))));
46961 d12 = d8;
46962 d13 = d7;
46963 } else {
46964 d11 = d3;
46965 d12 = d5 * d5;
46966 d13 = d6 * d6;
46967 }
46968 d3 = +Math_sqrt(+(d13 + (d12 + 0.0)));
46969 d12 = d11 * .5;
46970 d11 = +Math_sin(+d12) / d3;
46971 d3 = d11 * 0.0;
46972 d13 = d5 * d11;
46973 d5 = d11 * (-0.0 - d6);
46974 d6 = +Math_cos(+d12);
46975 d12 = d13 * 0.0;
46976 d11 = d5 * 0.0;
46977 d7 = d6 * d4 + d12 - d11;
46978 d8 = d6 * 0.0;
46979 d9 = d3 * 0.0;
46980 d10 = d5 * d4 + d8 - d9;
46981 d14 = d8 + d9 - d13 * d4;
46982 d9 = -0.0 - d3;
46983 d3 = d4 * d9 - d12 - d11;
46984 d11 = -0.0 - d13;
46985 d13 = -0.0 - d5;
46986 HEAPF32[i1 >> 2] = d10 * d13 + (d6 * d7 + d3 * d9) - d14 * d11;
46987 HEAPF32[i1 + 4 >> 2] = d14 * d9 + (d6 * d10 + d3 * d11) - d7 * d13;
46988 HEAPF32[i1 + 8 >> 2] = d7 * d11 + (d6 * d14 + d3 * d13) - d10 * d9;
46989 HEAPF32[i1 + 12 >> 2] = 0.0;
46990 return;
46991 }
46992 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitE_0RK9btVector3SG_fii(i1, i2, i3, d4, i5, i6) {
46993 i1 = i1 | 0;
46994 i2 = i2 | 0;
46995 i3 = i3 | 0;
46996 d4 = +d4;
46997 i5 = i5 | 0;
46998 i6 = i6 | 0;
46999 var i7 = 0, i8 = 0, i9 = 0, d10 = 0.0;
47000 i7 = STACKTOP;
47001 STACKTOP = STACKTOP + 56 | 0;
47002 i8 = i7 | 0;
47003 i9 = i7 + 8 | 0;
47004 HEAP32[i8 >> 2] = i5;
47005 HEAP32[i8 + 4 >> 2] = i6;
47006 i6 = HEAP32[i1 + 212 >> 2] | 0;
47007 if (+HEAPF32[i6 + 4 >> 2] < d4) {
47008 d10 = d4;
47009 STACKTOP = i7;
47010 return +d10;
47011 }
47012 HEAP32[i9 >> 2] = HEAP32[i1 + 216 >> 2];
47013 HEAP32[i9 + 4 >> 2] = i8;
47014 i8 = i9 + 8 | 0;
47015 i1 = i2;
47016 HEAP32[i8 >> 2] = HEAP32[i1 >> 2];
47017 HEAP32[i8 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
47018 HEAP32[i8 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
47019 HEAP32[i8 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
47020 i1 = i9 + 24 | 0;
47021 i8 = i3;
47022 HEAP32[i1 >> 2] = HEAP32[i8 >> 2];
47023 HEAP32[i1 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
47024 HEAP32[i1 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
47025 HEAP32[i1 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
47026 HEAPF32[i9 + 40 >> 2] = d4;
47027 d10 = +FUNCTION_TABLE_fiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] & 15](i6, i9, 0);
47028 STACKTOP = i7;
47029 return +d10;
47030 }
47031 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitERK9btVector3SG_fii(i1, i2, i3, d4, i5, i6) {
47032 i1 = i1 | 0;
47033 i2 = i2 | 0;
47034 i3 = i3 | 0;
47035 d4 = +d4;
47036 i5 = i5 | 0;
47037 i6 = i6 | 0;
47038 var i7 = 0, i8 = 0, i9 = 0, d10 = 0.0;
47039 i7 = STACKTOP;
47040 STACKTOP = STACKTOP + 56 | 0;
47041 i8 = i7 | 0;
47042 i9 = i7 + 8 | 0;
47043 HEAP32[i8 >> 2] = i5;
47044 HEAP32[i8 + 4 >> 2] = i6;
47045 i6 = HEAP32[i1 + 212 >> 2] | 0;
47046 if (+HEAPF32[i6 + 4 >> 2] < d4) {
47047 d10 = d4;
47048 STACKTOP = i7;
47049 return +d10;
47050 }
47051 HEAP32[i9 >> 2] = HEAP32[i1 + 216 >> 2];
47052 HEAP32[i9 + 4 >> 2] = i8;
47053 i8 = i9 + 8 | 0;
47054 i1 = i2;
47055 HEAP32[i8 >> 2] = HEAP32[i1 >> 2];
47056 HEAP32[i8 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
47057 HEAP32[i8 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
47058 HEAP32[i8 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
47059 i1 = i9 + 24 | 0;
47060 i8 = i3;
47061 HEAP32[i1 >> 2] = HEAP32[i8 >> 2];
47062 HEAP32[i1 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
47063 HEAP32[i1 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
47064 HEAP32[i1 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
47065 HEAPF32[i9 + 40 >> 2] = d4;
47066 d10 = +FUNCTION_TABLE_fiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] & 15](i6, i9, 1);
47067 STACKTOP = i7;
47068 return +d10;
47069 }
47070 function __ZNK10btBoxShape16getPlaneEquationER9btVector4i(i1, i2, i3) {
47071 i1 = i1 | 0;
47072 i2 = i2 | 0;
47073 i3 = i3 | 0;
47074 var d4 = 0.0, d5 = 0.0, d6 = 0.0;
47075 d4 = +HEAPF32[i1 + 28 >> 2];
47076 d5 = +HEAPF32[i1 + 32 >> 2];
47077 d6 = +HEAPF32[i1 + 36 >> 2];
47078 switch (i3 | 0) {
47079 case 5:
47080 {
47081 HEAPF32[i2 >> 2] = 0.0;
47082 HEAPF32[i2 + 4 >> 2] = 0.0;
47083 HEAPF32[i2 + 8 >> 2] = -1.0;
47084 HEAPF32[i2 + 12 >> 2] = -0.0 - d6;
47085 return;
47086 }
47087 case 3:
47088 {
47089 HEAPF32[i2 >> 2] = 0.0;
47090 HEAPF32[i2 + 4 >> 2] = -1.0;
47091 HEAPF32[i2 + 8 >> 2] = 0.0;
47092 HEAPF32[i2 + 12 >> 2] = -0.0 - d5;
47093 return;
47094 }
47095 case 0:
47096 {
47097 HEAPF32[i2 >> 2] = 1.0;
47098 HEAPF32[i2 + 4 >> 2] = 0.0;
47099 HEAPF32[i2 + 8 >> 2] = 0.0;
47100 HEAPF32[i2 + 12 >> 2] = -0.0 - d4;
47101 return;
47102 }
47103 case 1:
47104 {
47105 HEAPF32[i2 >> 2] = -1.0;
47106 HEAPF32[i2 + 4 >> 2] = 0.0;
47107 HEAPF32[i2 + 8 >> 2] = 0.0;
47108 HEAPF32[i2 + 12 >> 2] = -0.0 - d4;
47109 return;
47110 }
47111 case 2:
47112 {
47113 HEAPF32[i2 >> 2] = 0.0;
47114 HEAPF32[i2 + 4 >> 2] = 1.0;
47115 HEAPF32[i2 + 8 >> 2] = 0.0;
47116 HEAPF32[i2 + 12 >> 2] = -0.0 - d5;
47117 return;
47118 }
47119 case 4:
47120 {
47121 HEAPF32[i2 >> 2] = 0.0;
47122 HEAPF32[i2 + 4 >> 2] = 0.0;
47123 HEAPF32[i2 + 8 >> 2] = 1.0;
47124 HEAPF32[i2 + 12 >> 2] = -0.0 - d6;
47125 return;
47126 }
47127 default:
47128 {
47129 return;
47130 }
47131 }
47132 }
47133 function __ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo(i1, i2, i3) {
47134 i1 = i1 | 0;
47135 i2 = i2 | 0;
47136 i3 = i3 | 0;
47137 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, d9 = 0.0;
47138 i4 = STACKTOP;
47139 STACKTOP = STACKTOP + 160 | 0;
47140 i5 = i4 | 0;
47141 i6 = HEAP32[HEAP32[i1 >> 2] >> 2] | 0;
47142 i7 = HEAP32[HEAP32[i1 + 4 >> 2] >> 2] | 0;
47143 if (!(FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 24 >> 2] & 31](i2, i6, i7) | 0)) {
47144 STACKTOP = i4;
47145 return;
47146 }
47147 i8 = i1 + 8 | 0;
47148 do {
47149 if ((HEAP32[i8 >> 2] | 0) == 0) {
47150 i1 = FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 8 >> 2] & 31](i2, i6, i7, 0) | 0;
47151 HEAP32[i8 >> 2] = i1;
47152 if ((i1 | 0) != 0) {
47153 break;
47154 }
47155 STACKTOP = i4;
47156 return;
47157 }
47158 } while (0);
47159 __ZN16btManifoldResultC2EP17btCollisionObjectS1_(i5, i6, i7);
47160 i2 = HEAP32[i8 >> 2] | 0;
47161 if ((HEAP32[i3 + 8 >> 2] | 0) == 1) {
47162 FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 8 >> 2] & 63](i2, i6, i7, i3, i5);
47163 STACKTOP = i4;
47164 return;
47165 }
47166 d9 = +FUNCTION_TABLE_fiiiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] & 31](i2, i6, i7, i3, i5);
47167 i5 = i3 + 12 | 0;
47168 if (+HEAPF32[i5 >> 2] <= d9) {
47169 STACKTOP = i4;
47170 return;
47171 }
47172 HEAPF32[i5 >> 2] = d9;
47173 STACKTOP = i4;
47174 return;
47175 }
47176 function __ZN18btConvexPolyhedronD2Ev(i1) {
47177 i1 = i1 | 0;
47178 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
47179 HEAP32[i1 >> 2] = 4112;
47180 i2 = i1 + 48 | 0;
47181 i3 = i1 + 56 | 0;
47182 i4 = HEAP32[i3 >> 2] | 0;
47183 i5 = i1 + 60 | 0;
47184 if ((i4 | 0) != 0) {
47185 if ((HEAP8[i5] | 0) != 0) {
47186 __Z21btAlignedFreeInternalPv(i4);
47187 }
47188 HEAP32[i3 >> 2] = 0;
47189 }
47190 HEAP8[i5] = 1;
47191 HEAP32[i3 >> 2] = 0;
47192 HEAP32[i2 >> 2] = 0;
47193 HEAP32[i1 + 52 >> 2] = 0;
47194 i2 = i1 + 28 | 0;
47195 __ZN20btAlignedObjectArrayI6btFaceE7destroyEii(i1 + 24 | 0, 0, HEAP32[i2 >> 2] | 0);
47196 i3 = i1 + 36 | 0;
47197 i5 = HEAP32[i3 >> 2] | 0;
47198 i4 = i1 + 40 | 0;
47199 if ((i5 | 0) != 0) {
47200 if ((HEAP8[i4] | 0) != 0) {
47201 __Z21btAlignedFreeInternalPv(i5 | 0);
47202 }
47203 HEAP32[i3 >> 2] = 0;
47204 }
47205 HEAP8[i4] = 1;
47206 HEAP32[i3 >> 2] = 0;
47207 HEAP32[i2 >> 2] = 0;
47208 HEAP32[i1 + 32 >> 2] = 0;
47209 i2 = i1 + 8 | 0;
47210 i3 = i1 + 16 | 0;
47211 i4 = HEAP32[i3 >> 2] | 0;
47212 i5 = i1 + 20 | 0;
47213 if ((i4 | 0) == 0) {
47214 HEAP8[i5] = 1;
47215 HEAP32[i3 >> 2] = 0;
47216 HEAP32[i2 >> 2] = 0;
47217 i6 = i1 + 12 | 0;
47218 HEAP32[i6 >> 2] = 0;
47219 return;
47220 }
47221 if ((HEAP8[i5] | 0) != 0) {
47222 __Z21btAlignedFreeInternalPv(i4);
47223 }
47224 HEAP32[i3 >> 2] = 0;
47225 HEAP8[i5] = 1;
47226 HEAP32[i3 >> 2] = 0;
47227 HEAP32[i2 >> 2] = 0;
47228 i6 = i1 + 12 | 0;
47229 HEAP32[i6 >> 2] = 0;
47230 return;
47231 }
47232 function __ZN22btVoronoiSimplexSolver9inSimplexERK9btVector3(i1, i2) {
47233 i1 = i1 | 0;
47234 i2 = i2 | 0;
47235 var i3 = 0, d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0, i8 = 0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
47236 i3 = HEAP32[i1 >> 2] | 0;
47237 if ((i3 | 0) > 0) {
47238 d4 = +HEAPF32[i2 >> 2];
47239 d5 = +HEAPF32[i2 + 4 >> 2];
47240 d6 = +HEAPF32[i2 + 8 >> 2];
47241 d7 = +HEAPF32[i1 + 308 >> 2];
47242 i8 = 0;
47243 i9 = 0;
47244 while (1) {
47245 d10 = d4 - +HEAPF32[i1 + 4 + (i9 << 4) >> 2];
47246 d11 = d5 - +HEAPF32[i1 + 4 + (i9 << 4) + 4 >> 2];
47247 d12 = d6 - +HEAPF32[i1 + 4 + (i9 << 4) + 8 >> 2];
47248 i13 = i8 | d10 * d10 + d11 * d11 + d12 * d12 <= d7;
47249 i14 = i9 + 1 | 0;
47250 if ((i14 | 0) < (i3 | 0)) {
47251 i8 = i13;
47252 i9 = i14;
47253 } else {
47254 i15 = i13;
47255 break;
47256 }
47257 }
47258 } else {
47259 i15 = 0;
47260 }
47261 if (+HEAPF32[i2 + 12 >> 2] != +HEAPF32[i1 + 304 >> 2]) {
47262 i16 = 0;
47263 i17 = i16 | i15;
47264 return i17 | 0;
47265 }
47266 if (+HEAPF32[i2 + 8 >> 2] != +HEAPF32[i1 + 300 >> 2]) {
47267 i16 = 0;
47268 i17 = i16 | i15;
47269 return i17 | 0;
47270 }
47271 if (+HEAPF32[i2 + 4 >> 2] != +HEAPF32[i1 + 296 >> 2]) {
47272 i16 = 0;
47273 i17 = i16 | i15;
47274 return i17 | 0;
47275 }
47276 i16 = +HEAPF32[i2 >> 2] == +HEAPF32[i1 + 292 >> 2];
47277 i17 = i16 | i15;
47278 return i17 | 0;
47279 }
47280 function __ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD2Ev(i1) {
47281 i1 = i1 | 0;
47282 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
47283 HEAP32[i1 >> 2] = 1520;
47284 i2 = i1 + 76 | 0;
47285 i3 = i1 + 84 | 0;
47286 i4 = HEAP32[i3 >> 2] | 0;
47287 i5 = i1 + 88 | 0;
47288 if ((i4 | 0) != 0) {
47289 if ((HEAP8[i5] | 0) != 0) {
47290 __Z21btAlignedFreeInternalPv(i4);
47291 }
47292 HEAP32[i3 >> 2] = 0;
47293 }
47294 HEAP8[i5] = 1;
47295 HEAP32[i3 >> 2] = 0;
47296 HEAP32[i2 >> 2] = 0;
47297 HEAP32[i1 + 80 >> 2] = 0;
47298 i2 = i1 + 56 | 0;
47299 i3 = i1 + 64 | 0;
47300 i5 = HEAP32[i3 >> 2] | 0;
47301 i4 = i1 + 68 | 0;
47302 if ((i5 | 0) != 0) {
47303 if ((HEAP8[i4] | 0) != 0) {
47304 __Z21btAlignedFreeInternalPv(i5);
47305 }
47306 HEAP32[i3 >> 2] = 0;
47307 }
47308 HEAP8[i4] = 1;
47309 HEAP32[i3 >> 2] = 0;
47310 HEAP32[i2 >> 2] = 0;
47311 HEAP32[i1 + 60 >> 2] = 0;
47312 i2 = i1 + 36 | 0;
47313 i3 = i1 + 44 | 0;
47314 i4 = HEAP32[i3 >> 2] | 0;
47315 i5 = i1 + 48 | 0;
47316 if ((i4 | 0) == 0) {
47317 HEAP8[i5] = 1;
47318 HEAP32[i3 >> 2] = 0;
47319 HEAP32[i2 >> 2] = 0;
47320 i6 = i1 + 40 | 0;
47321 HEAP32[i6 >> 2] = 0;
47322 return;
47323 }
47324 if ((HEAP8[i5] | 0) != 0) {
47325 __Z21btAlignedFreeInternalPv(i4);
47326 }
47327 HEAP32[i3 >> 2] = 0;
47328 HEAP8[i5] = 1;
47329 HEAP32[i3 >> 2] = 0;
47330 HEAP32[i2 >> 2] = 0;
47331 i6 = i1 + 40 | 0;
47332 HEAP32[i6 >> 2] = 0;
47333 return;
47334 }
47335 function __ZN21btCollisionDispatcher15releaseManifoldEP20btPersistentManifold(i1, i2) {
47336 i1 = i1 | 0;
47337 i2 = i2 | 0;
47338 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
47339 HEAP32[2990] = (HEAP32[2990] | 0) - 1;
47340 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 20 >> 2] & 127](i1, i2);
47341 i3 = HEAP32[i2 + 1136 >> 2] | 0;
47342 i4 = i1 + 12 | 0;
47343 i5 = (HEAP32[i4 >> 2] | 0) - 1 | 0;
47344 i6 = i1 + 20 | 0;
47345 i7 = HEAP32[i6 >> 2] | 0;
47346 i8 = i7 + (i3 << 2) | 0;
47347 i9 = HEAP32[i8 >> 2] | 0;
47348 HEAP32[i8 >> 2] = HEAP32[i7 + (i5 << 2) >> 2];
47349 HEAP32[(HEAP32[i6 >> 2] | 0) + (i5 << 2) >> 2] = i9;
47350 HEAP32[(HEAP32[(HEAP32[i6 >> 2] | 0) + (i3 << 2) >> 2] | 0) + 1136 >> 2] = i3;
47351 HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) - 1;
47352 i4 = HEAP32[i1 + 196 >> 2] | 0;
47353 i1 = i2;
47354 do {
47355 if ((i2 | 0) != 0) {
47356 i3 = HEAP32[i4 + 16 >> 2] | 0;
47357 if (i3 >>> 0 > i1 >>> 0) {
47358 break;
47359 }
47360 if ((i3 + (Math_imul(HEAP32[i4 >> 2] | 0, HEAP32[i4 + 4 >> 2] | 0) | 0) | 0) >>> 0 <= i1 >>> 0) {
47361 break;
47362 }
47363 i3 = i4 + 12 | 0;
47364 HEAP32[i2 >> 2] = HEAP32[i3 >> 2];
47365 HEAP32[i3 >> 2] = i1;
47366 i3 = i4 + 8 | 0;
47367 HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 1;
47368 return;
47369 }
47370 } while (0);
47371 __Z21btAlignedFreeInternalPv(i1);
47372 return;
47373 }
47374 function __ZN11btUnionFind11sortIslandsEv(i1) {
47375 i1 = i1 | 0;
47376 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
47377 i2 = STACKTOP;
47378 STACKTOP = STACKTOP + 8 | 0;
47379 i3 = i2 | 0;
47380 i4 = i1 | 0;
47381 i5 = i1 + 4 | 0;
47382 i6 = HEAP32[i5 >> 2] | 0;
47383 if ((i6 | 0) <= 0) {
47384 i7 = i3 | 0;
47385 STACKTOP = i2;
47386 return;
47387 }
47388 i8 = HEAP32[i1 + 12 >> 2] | 0;
47389 i1 = 0;
47390 do {
47391 i9 = i8 + (i1 << 3) | 0;
47392 i10 = HEAP32[i9 >> 2] | 0;
47393 if ((i10 | 0) == (i1 | 0)) {
47394 i11 = i1;
47395 } else {
47396 i12 = i9;
47397 i13 = i10;
47398 while (1) {
47399 i10 = i8 + (i13 << 3) | 0;
47400 HEAP32[i12 >> 2] = HEAP32[i10 >> 2];
47401 i14 = HEAP32[i10 >> 2] | 0;
47402 i10 = i8 + (i14 << 3) | 0;
47403 i15 = HEAP32[i10 >> 2] | 0;
47404 if ((i14 | 0) == (i15 | 0)) {
47405 i11 = i14;
47406 break;
47407 } else {
47408 i12 = i10;
47409 i13 = i15;
47410 }
47411 }
47412 }
47413 HEAP32[i9 >> 2] = i11;
47414 i1 = i1 + 1 | 0;
47415 } while ((i1 | 0) < (i6 | 0));
47416 i6 = HEAP32[i5 >> 2] | 0;
47417 i5 = i3 | 0;
47418 if ((i6 | 0) <= 1) {
47419 i7 = i5;
47420 STACKTOP = i2;
47421 return;
47422 }
47423 __ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(i4, i3, 0, i6 - 1 | 0);
47424 i7 = i5;
47425 STACKTOP = i2;
47426 return;
47427 }
47428 function __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i1, i2) {
47429 i1 = i1 | 0;
47430 i2 = i2 | 0;
47431 var d3 = 0.0, i4 = 0, d5 = 0.0, d6 = 0.0, i7 = 0, d8 = 0.0, d9 = 0.0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0;
47432 if ((i1 | 0) == 0) {
47433 return;
47434 }
47435 if ((HEAP32[i1 + 180 >> 2] | 0) == 0) {
47436 return;
47437 }
47438 d3 = +HEAPF32[i1 + 4 >> 2];
47439 i4 = i2 | 0;
47440 d5 = +HEAPF32[i4 >> 2];
47441 d6 = +HEAPF32[i1 + 20 >> 2];
47442 i7 = i2 + 4 | 0;
47443 d8 = +HEAPF32[i7 >> 2];
47444 d9 = +HEAPF32[i1 + 36 >> 2];
47445 i10 = i2 + 8 | 0;
47446 d11 = +HEAPF32[i10 >> 2];
47447 d12 = +HEAPF32[i1 + 8 >> 2];
47448 d13 = +HEAPF32[i1 + 24 >> 2];
47449 d14 = +HEAPF32[i1 + 40 >> 2];
47450 d15 = +HEAPF32[i1 + 12 >> 2];
47451 d16 = +HEAPF32[i1 + 28 >> 2];
47452 d17 = +HEAPF32[i1 + 44 >> 2];
47453 d18 = (d3 * d5 + d6 * d8 + d9 * d11) * +HEAPF32[i1 + 164 >> 2];
47454 d19 = (d5 * d12 + d8 * d13 + d11 * d14) * +HEAPF32[i1 + 168 >> 2];
47455 d20 = (d5 * d15 + d8 * d16 + d11 * d17) * +HEAPF32[i1 + 172 >> 2];
47456 HEAPF32[i4 >> 2] = d3 * d18 + d12 * d19 + d15 * d20;
47457 HEAPF32[i7 >> 2] = d6 * d18 + d13 * d19 + d16 * d20;
47458 HEAPF32[i10 >> 2] = d9 * d18 + d14 * d19 + d17 * d20;
47459 HEAPF32[i2 + 12 >> 2] = 0.0;
47460 return;
47461 }
47462 function __ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib(i1, i2, i3, i4, i5, i6) {
47463 i1 = i1 | 0;
47464 i2 = i2 | 0;
47465 i3 = i3 | 0;
47466 i4 = i4 | 0;
47467 i5 = i5 | 0;
47468 i6 = i6 | 0;
47469 var i7 = 0, i8 = 0;
47470 if ((i1 | 0) != (HEAP32[i2 + 8 >> 2] | 0)) {
47471 i7 = HEAP32[i1 + 8 >> 2] | 0;
47472 FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 20 >> 2] & 15](i7, i2, i3, i4, i5, i6);
47473 return;
47474 }
47475 HEAP8[i2 + 53 | 0] = 1;
47476 if ((HEAP32[i2 + 4 >> 2] | 0) != (i4 | 0)) {
47477 return;
47478 }
47479 HEAP8[i2 + 52 | 0] = 1;
47480 i4 = i2 + 16 | 0;
47481 i6 = HEAP32[i4 >> 2] | 0;
47482 if ((i6 | 0) == 0) {
47483 HEAP32[i4 >> 2] = i3;
47484 HEAP32[i2 + 24 >> 2] = i5;
47485 HEAP32[i2 + 36 >> 2] = 1;
47486 if (!((HEAP32[i2 + 48 >> 2] | 0) == 1 & (i5 | 0) == 1)) {
47487 return;
47488 }
47489 HEAP8[i2 + 54 | 0] = 1;
47490 return;
47491 }
47492 if ((i6 | 0) != (i3 | 0)) {
47493 i3 = i2 + 36 | 0;
47494 HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 1;
47495 HEAP8[i2 + 54 | 0] = 1;
47496 return;
47497 }
47498 i3 = i2 + 24 | 0;
47499 i6 = HEAP32[i3 >> 2] | 0;
47500 if ((i6 | 0) == 2) {
47501 HEAP32[i3 >> 2] = i5;
47502 i8 = i5;
47503 } else {
47504 i8 = i6;
47505 }
47506 if (!((HEAP32[i2 + 48 >> 2] | 0) == 1 & (i8 | 0) == 1)) {
47507 return;
47508 }
47509 HEAP8[i2 + 54 | 0] = 1;
47510 return;
47511 }
47512 function __ZN28btCompoundCollisionAlgorithmD2Ev(i1) {
47513 i1 = i1 | 0;
47514 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
47515 HEAP32[i1 >> 2] = 2888;
47516 i2 = i1 + 12 | 0;
47517 i3 = HEAP32[i2 >> 2] | 0;
47518 i4 = i1 + 20 | 0;
47519 if ((i3 | 0) > 0) {
47520 i5 = i1 + 4 | 0;
47521 i6 = 0;
47522 do {
47523 i7 = HEAP32[(HEAP32[i4 >> 2] | 0) + (i6 << 2) >> 2] | 0;
47524 if ((i7 | 0) != 0) {
47525 FUNCTION_TABLE_vi[HEAP32[HEAP32[i7 >> 2] >> 2] & 511](i7);
47526 i7 = HEAP32[i5 >> 2] | 0;
47527 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i7 >> 2] | 0) + 60 >> 2] & 127](i7, HEAP32[(HEAP32[i4 >> 2] | 0) + (i6 << 2) >> 2] | 0);
47528 }
47529 i6 = i6 + 1 | 0;
47530 } while ((i6 | 0) < (i3 | 0));
47531 }
47532 i3 = HEAP32[i4 >> 2] | 0;
47533 i6 = i1 + 24 | 0;
47534 if ((i3 | 0) == 0) {
47535 HEAP8[i6] = 1;
47536 HEAP32[i4 >> 2] = 0;
47537 HEAP32[i2 >> 2] = 0;
47538 i8 = i1 + 16 | 0;
47539 HEAP32[i8 >> 2] = 0;
47540 i9 = i1 | 0;
47541 __ZN30btActivatingCollisionAlgorithmD2Ev(i9);
47542 return;
47543 }
47544 if ((HEAP8[i6] | 0) != 0) {
47545 __Z21btAlignedFreeInternalPv(i3);
47546 }
47547 HEAP32[i4 >> 2] = 0;
47548 HEAP8[i6] = 1;
47549 HEAP32[i4 >> 2] = 0;
47550 HEAP32[i2 >> 2] = 0;
47551 i8 = i1 + 16 | 0;
47552 HEAP32[i8 >> 2] = 0;
47553 i9 = i1 | 0;
47554 __ZN30btActivatingCollisionAlgorithmD2Ev(i9);
47555 return;
47556 }
47557 function __ZN28btHashedOverlappingPairCacheD2Ev(i1) {
47558 i1 = i1 | 0;
47559 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
47560 HEAP32[i1 >> 2] = 2800;
47561 i2 = i1 + 56 | 0;
47562 i3 = i1 + 64 | 0;
47563 i4 = HEAP32[i3 >> 2] | 0;
47564 i5 = i1 + 68 | 0;
47565 if ((i4 | 0) != 0) {
47566 if ((HEAP8[i5] | 0) != 0) {
47567 __Z21btAlignedFreeInternalPv(i4);
47568 }
47569 HEAP32[i3 >> 2] = 0;
47570 }
47571 HEAP8[i5] = 1;
47572 HEAP32[i3 >> 2] = 0;
47573 HEAP32[i2 >> 2] = 0;
47574 HEAP32[i1 + 60 >> 2] = 0;
47575 i2 = i1 + 36 | 0;
47576 i3 = i1 + 44 | 0;
47577 i5 = HEAP32[i3 >> 2] | 0;
47578 i4 = i1 + 48 | 0;
47579 if ((i5 | 0) != 0) {
47580 if ((HEAP8[i4] | 0) != 0) {
47581 __Z21btAlignedFreeInternalPv(i5);
47582 }
47583 HEAP32[i3 >> 2] = 0;
47584 }
47585 HEAP8[i4] = 1;
47586 HEAP32[i3 >> 2] = 0;
47587 HEAP32[i2 >> 2] = 0;
47588 HEAP32[i1 + 40 >> 2] = 0;
47589 i2 = i1 + 8 | 0;
47590 i3 = i1 + 16 | 0;
47591 i4 = HEAP32[i3 >> 2] | 0;
47592 i5 = i1 + 20 | 0;
47593 if ((i4 | 0) == 0) {
47594 HEAP8[i5] = 1;
47595 HEAP32[i3 >> 2] = 0;
47596 HEAP32[i2 >> 2] = 0;
47597 i6 = i1 + 12 | 0;
47598 HEAP32[i6 >> 2] = 0;
47599 return;
47600 }
47601 if ((HEAP8[i5] | 0) != 0) {
47602 __Z21btAlignedFreeInternalPv(i4);
47603 }
47604 HEAP32[i3 >> 2] = 0;
47605 HEAP8[i5] = 1;
47606 HEAP32[i3 >> 2] = 0;
47607 HEAP32[i2 >> 2] = 0;
47608 i6 = i1 + 12 | 0;
47609 HEAP32[i6 >> 2] = 0;
47610 return;
47611 }
47612 function __ZNK23btPolyhedralConvexShape21calculateLocalInertiaEfR9btVector3(i1, d2, i3) {
47613 i1 = i1 | 0;
47614 d2 = +d2;
47615 i3 = i3 | 0;
47616 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0;
47617 i4 = STACKTOP;
47618 STACKTOP = STACKTOP + 96 | 0;
47619 i5 = i4 | 0;
47620 i6 = i4 + 64 | 0;
47621 i7 = i4 + 80 | 0;
47622 i8 = i1 | 0;
47623 d9 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i1 >> 2] | 0) + 44 >> 2] & 7](i8);
47624 HEAPF32[i5 >> 2] = 1.0;
47625 _memset(i5 + 4 | 0, 0, 16);
47626 HEAPF32[i5 + 20 >> 2] = 1.0;
47627 _memset(i5 + 24 | 0, 0, 16);
47628 HEAPF32[i5 + 40 >> 2] = 1.0;
47629 _memset(i5 + 44 | 0, 0, 20);
47630 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i8, i5, i6, i7);
47631 d10 = (d9 + (+HEAPF32[i7 >> 2] - +HEAPF32[i6 >> 2]) * .5) * 2.0;
47632 d11 = (d9 + (+HEAPF32[i7 + 4 >> 2] - +HEAPF32[i6 + 4 >> 2]) * .5) * 2.0;
47633 d12 = (d9 + (+HEAPF32[i7 + 8 >> 2] - +HEAPF32[i6 + 8 >> 2]) * .5) * 2.0;
47634 d9 = d10 * d10;
47635 d10 = d11 * d11;
47636 d11 = d12 * d12;
47637 d12 = d2 * .0833333283662796;
47638 HEAPF32[i3 >> 2] = d12 * (d10 + d11);
47639 HEAPF32[i3 + 4 >> 2] = d12 * (d9 + d11);
47640 HEAPF32[i3 + 8 >> 2] = d12 * (d9 + d10);
47641 HEAPF32[i3 + 12 >> 2] = 0.0;
47642 STACKTOP = i4;
47643 return;
47644 }
47645 function __ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject(i1, i2) {
47646 i1 = i1 | 0;
47647 i2 = i2 | 0;
47648 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
47649 i3 = i2 + 188 | 0;
47650 i4 = HEAP32[i3 >> 2] | 0;
47651 if ((i4 | 0) != 0) {
47652 i5 = i1 + 76 | 0;
47653 i6 = HEAP32[i5 >> 2] | 0;
47654 i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i6 >> 2] | 0) + 36 >> 2] & 127](i6) | 0;
47655 i6 = i1 + 24 | 0;
47656 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i7 >> 2] | 0) + 40 >> 2] & 127](i7, i4, HEAP32[i6 >> 2] | 0);
47657 i7 = HEAP32[i5 >> 2] | 0;
47658 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] & 127](i7, i4, HEAP32[i6 >> 2] | 0);
47659 HEAP32[i3 >> 2] = 0;
47660 }
47661 i3 = i1 + 8 | 0;
47662 i6 = HEAP32[i3 >> 2] | 0;
47663 i4 = i1 + 16 | 0;
47664 i1 = 0;
47665 while (1) {
47666 if ((i1 | 0) >= (i6 | 0)) {
47667 i8 = 2093;
47668 break;
47669 }
47670 i9 = HEAP32[i4 >> 2] | 0;
47671 i10 = i9 + (i1 << 2) | 0;
47672 if ((HEAP32[i10 >> 2] | 0) == (i2 | 0)) {
47673 break;
47674 } else {
47675 i1 = i1 + 1 | 0;
47676 }
47677 }
47678 if ((i8 | 0) == 2093) {
47679 return;
47680 }
47681 i8 = i6 - 1 | 0;
47682 HEAP32[i10 >> 2] = HEAP32[i9 + (i8 << 2) >> 2];
47683 HEAP32[(HEAP32[i4 >> 2] | 0) + (i8 << 2) >> 2] = i2;
47684 HEAP32[i3 >> 2] = i8;
47685 return;
47686 }
47687 function __ZL11TestSepAxisRK18btConvexPolyhedronS1_RK11btTransformS4_RK9btVector3Rf(i1, i2, i3, i4, i5, i6) {
47688 i1 = i1 | 0;
47689 i2 = i2 | 0;
47690 i3 = i3 | 0;
47691 i4 = i4 | 0;
47692 i5 = i5 | 0;
47693 i6 = i6 | 0;
47694 var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, d12 = 0.0, d13 = 0.0, i14 = 0, d15 = 0.0, d16 = 0.0, d17 = 0.0;
47695 i7 = STACKTOP;
47696 STACKTOP = STACKTOP + 32 | 0;
47697 i8 = i7 | 0;
47698 i9 = i7 + 8 | 0;
47699 i10 = i7 + 16 | 0;
47700 i11 = i7 + 24 | 0;
47701 __ZNK18btConvexPolyhedron7projectERK11btTransformRK9btVector3RfS6_(i1, i3, i5, i8, i9);
47702 __ZNK18btConvexPolyhedron7projectERK11btTransformRK9btVector3RfS6_(i2, i4, i5, i10, i11);
47703 d12 = +HEAPF32[i9 >> 2];
47704 d13 = +HEAPF32[i10 >> 2];
47705 if (d12 < d13) {
47706 i14 = 0;
47707 STACKTOP = i7;
47708 return i14 | 0;
47709 }
47710 d15 = +HEAPF32[i11 >> 2];
47711 d16 = +HEAPF32[i8 >> 2];
47712 if (d15 < d16) {
47713 i14 = 0;
47714 STACKTOP = i7;
47715 return i14 | 0;
47716 }
47717 d17 = d12 - d13;
47718 if (d17 < 0.0) {
47719 ___assert_func(336 | 0, 89, 1160 | 0, 720 | 0);
47720 return 0;
47721 }
47722 d13 = d15 - d16;
47723 if (d13 < 0.0) {
47724 ___assert_func(336 | 0, 91, 1160 | 0, 568 | 0);
47725 return 0;
47726 }
47727 HEAPF32[i6 >> 2] = d17 < d13 ? d17 : d13;
47728 i14 = 1;
47729 STACKTOP = i7;
47730 return i14 | 0;
47731 }
47732 function __ZN22btVoronoiSimplexSolver9addVertexERK9btVector3S2_S2_(i1, i2, i3, i4) {
47733 i1 = i1 | 0;
47734 i2 = i2 | 0;
47735 i3 = i3 | 0;
47736 i4 = i4 | 0;
47737 var i5 = 0, i6 = 0;
47738 i5 = i1 + 292 | 0;
47739 i6 = i2;
47740 HEAP32[i5 >> 2] = HEAP32[i6 >> 2];
47741 HEAP32[i5 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
47742 HEAP32[i5 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
47743 HEAP32[i5 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
47744 HEAP8[i1 + 356 | 0] = 1;
47745 i5 = i1 | 0;
47746 i2 = i1 + 4 + (HEAP32[i5 >> 2] << 4) | 0;
47747 HEAP32[i2 >> 2] = HEAP32[i6 >> 2];
47748 HEAP32[i2 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
47749 HEAP32[i2 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
47750 HEAP32[i2 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
47751 i6 = i1 + 84 + (HEAP32[i5 >> 2] << 4) | 0;
47752 i2 = i3;
47753 HEAP32[i6 >> 2] = HEAP32[i2 >> 2];
47754 HEAP32[i6 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
47755 HEAP32[i6 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
47756 HEAP32[i6 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
47757 i2 = i1 + 164 + (HEAP32[i5 >> 2] << 4) | 0;
47758 i1 = i4;
47759 HEAP32[i2 >> 2] = HEAP32[i1 >> 2];
47760 HEAP32[i2 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
47761 HEAP32[i2 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
47762 HEAP32[i2 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
47763 HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 1;
47764 return;
47765 }
47766 function __ZN20btConvexHullComputerD2Ev(i1) {
47767 i1 = i1 | 0;
47768 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
47769 i2 = i1 + 44 | 0;
47770 i3 = i1 + 52 | 0;
47771 i4 = HEAP32[i3 >> 2] | 0;
47772 i5 = i1 + 56 | 0;
47773 if ((i4 | 0) != 0) {
47774 if ((HEAP8[i5] | 0) != 0) {
47775 __Z21btAlignedFreeInternalPv(i4);
47776 }
47777 HEAP32[i3 >> 2] = 0;
47778 }
47779 HEAP8[i5] = 1;
47780 HEAP32[i3 >> 2] = 0;
47781 HEAP32[i2 >> 2] = 0;
47782 HEAP32[i1 + 48 >> 2] = 0;
47783 i2 = i1 + 24 | 0;
47784 i3 = i1 + 32 | 0;
47785 i5 = HEAP32[i3 >> 2] | 0;
47786 i4 = i1 + 36 | 0;
47787 if ((i5 | 0) != 0) {
47788 if ((HEAP8[i4] | 0) != 0) {
47789 __Z21btAlignedFreeInternalPv(i5);
47790 }
47791 HEAP32[i3 >> 2] = 0;
47792 }
47793 HEAP8[i4] = 1;
47794 HEAP32[i3 >> 2] = 0;
47795 HEAP32[i2 >> 2] = 0;
47796 HEAP32[i1 + 28 >> 2] = 0;
47797 i2 = i1 + 4 | 0;
47798 i3 = i1 + 12 | 0;
47799 i4 = HEAP32[i3 >> 2] | 0;
47800 i5 = i1 + 16 | 0;
47801 if ((i4 | 0) == 0) {
47802 HEAP8[i5] = 1;
47803 HEAP32[i3 >> 2] = 0;
47804 HEAP32[i2 >> 2] = 0;
47805 i6 = i1 + 8 | 0;
47806 HEAP32[i6 >> 2] = 0;
47807 return;
47808 }
47809 if ((HEAP8[i5] | 0) != 0) {
47810 __Z21btAlignedFreeInternalPv(i4);
47811 }
47812 HEAP32[i3 >> 2] = 0;
47813 HEAP8[i5] = 1;
47814 HEAP32[i3 >> 2] = 0;
47815 HEAP32[i2 >> 2] = 0;
47816 i6 = i1 + 8 | 0;
47817 HEAP32[i6 >> 2] = 0;
47818 return;
47819 }
47820 function __ZN31btConvexPlaneCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
47821 i1 = i1 | 0;
47822 i2 = i2 | 0;
47823 i3 = i3 | 0;
47824 i4 = i4 | 0;
47825 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
47826 i5 = HEAP32[i2 >> 2] | 0;
47827 i6 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i5 >> 2] | 0) + 56 >> 2] & 63](i5, 28) | 0;
47828 i5 = (i6 | 0) == 0;
47829 if ((HEAP8[i1 + 4 | 0] | 0) == 0) {
47830 if (i5) {
47831 i7 = 0;
47832 i8 = i7 | 0;
47833 return i8 | 0;
47834 }
47835 i9 = i6;
47836 __ZN31btConvexPlaneCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_bii(i9, 0, i2, i3, i4, 0, HEAP32[i1 + 8 >> 2] | 0, HEAP32[i1 + 12 >> 2] | 0);
47837 i7 = i9;
47838 i8 = i7 | 0;
47839 return i8 | 0;
47840 } else {
47841 if (i5) {
47842 i7 = 0;
47843 i8 = i7 | 0;
47844 return i8 | 0;
47845 }
47846 i5 = i6;
47847 __ZN31btConvexPlaneCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_bii(i5, 0, i2, i3, i4, 1, HEAP32[i1 + 8 >> 2] | 0, HEAP32[i1 + 12 >> 2] | 0);
47848 i7 = i5;
47849 i8 = i7 | 0;
47850 return i8 | 0;
47851 }
47852 return 0;
47853 }
47854 function __ZN20btDefaultMotionState17setWorldTransformERK11btTransform(i1, i2) {
47855 i1 = i1 | 0;
47856 i2 = i2 | 0;
47857 var i3 = 0, i4 = 0, i5 = 0;
47858 i3 = STACKTOP;
47859 STACKTOP = STACKTOP + 64 | 0;
47860 i4 = i3 | 0;
47861 __ZNK11btTransformmlERKS_(i4, i2, i1 + 68 | 0);
47862 i2 = i1 + 4 | 0;
47863 i5 = i4;
47864 HEAP32[i2 >> 2] = HEAP32[i5 >> 2];
47865 HEAP32[i2 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
47866 HEAP32[i2 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
47867 HEAP32[i2 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
47868 i5 = i1 + 20 | 0;
47869 i2 = i4 + 16 | 0;
47870 HEAP32[i5 >> 2] = HEAP32[i2 >> 2];
47871 HEAP32[i5 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
47872 HEAP32[i5 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
47873 HEAP32[i5 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
47874 i2 = i1 + 36 | 0;
47875 i5 = i4 + 32 | 0;
47876 HEAP32[i2 >> 2] = HEAP32[i5 >> 2];
47877 HEAP32[i2 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
47878 HEAP32[i2 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
47879 HEAP32[i2 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
47880 i5 = i1 + 52 | 0;
47881 i1 = i4 + 48 | 0;
47882 HEAP32[i5 >> 2] = HEAP32[i1 >> 2];
47883 HEAP32[i5 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
47884 HEAP32[i5 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
47885 HEAP32[i5 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
47886 STACKTOP = i3;
47887 return;
47888 }
47889 function __ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf(i1, i2, i3) {
47890 i1 = i1 | 0;
47891 i2 = i2 | 0;
47892 i3 = i3 | 0;
47893 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0;
47894 i4 = STACKTOP;
47895 STACKTOP = STACKTOP + 96 | 0;
47896 i5 = i4 | 0;
47897 i6 = i4 + 64 | 0;
47898 i7 = i4 + 80 | 0;
47899 HEAPF32[i5 >> 2] = 1.0;
47900 _memset(i5 + 4 | 0, 0, 16);
47901 HEAPF32[i5 + 20 >> 2] = 1.0;
47902 _memset(i5 + 24 | 0, 0, 16);
47903 HEAPF32[i5 + 40 >> 2] = 1.0;
47904 _memset(i5 + 44 | 0, 0, 20);
47905 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i1, i5, i6, i7);
47906 d8 = +HEAPF32[i7 >> 2];
47907 d9 = +HEAPF32[i6 >> 2];
47908 d10 = d8 - d9;
47909 d11 = +HEAPF32[i7 + 4 >> 2];
47910 d12 = +HEAPF32[i6 + 4 >> 2];
47911 d13 = d11 - d12;
47912 d14 = +HEAPF32[i7 + 8 >> 2];
47913 d15 = +HEAPF32[i6 + 8 >> 2];
47914 d16 = d14 - d15;
47915 HEAPF32[i3 >> 2] = +Math_sqrt(+(d10 * d10 + d13 * d13 + d16 * d16)) * .5;
47916 HEAPF32[i2 >> 2] = (d8 + d9) * .5;
47917 HEAPF32[i2 + 4 >> 2] = (d11 + d12) * .5;
47918 HEAPF32[i2 + 8 >> 2] = (d14 + d15) * .5;
47919 HEAPF32[i2 + 12 >> 2] = 0.0;
47920 STACKTOP = i4;
47921 return;
47922 }
47923 function __ZNK10btBoxShape32getPreferredPenetrationDirectionEiR9btVector3(i1, i2, i3) {
47924 i1 = i1 | 0;
47925 i2 = i2 | 0;
47926 i3 = i3 | 0;
47927 switch (i2 | 0) {
47928 case 5:
47929 {
47930 HEAPF32[i3 >> 2] = 0.0;
47931 HEAPF32[i3 + 4 >> 2] = 0.0;
47932 HEAPF32[i3 + 8 >> 2] = -1.0;
47933 HEAPF32[i3 + 12 >> 2] = 0.0;
47934 return;
47935 }
47936 case 3:
47937 {
47938 HEAPF32[i3 >> 2] = 0.0;
47939 HEAPF32[i3 + 4 >> 2] = -1.0;
47940 HEAPF32[i3 + 8 >> 2] = 0.0;
47941 HEAPF32[i3 + 12 >> 2] = 0.0;
47942 return;
47943 }
47944 case 1:
47945 {
47946 HEAPF32[i3 >> 2] = -1.0;
47947 HEAPF32[i3 + 4 >> 2] = 0.0;
47948 HEAPF32[i3 + 8 >> 2] = 0.0;
47949 HEAPF32[i3 + 12 >> 2] = 0.0;
47950 return;
47951 }
47952 case 2:
47953 {
47954 HEAPF32[i3 >> 2] = 0.0;
47955 HEAPF32[i3 + 4 >> 2] = 1.0;
47956 HEAPF32[i3 + 8 >> 2] = 0.0;
47957 HEAPF32[i3 + 12 >> 2] = 0.0;
47958 return;
47959 }
47960 case 0:
47961 {
47962 HEAPF32[i3 >> 2] = 1.0;
47963 HEAPF32[i3 + 4 >> 2] = 0.0;
47964 HEAPF32[i3 + 8 >> 2] = 0.0;
47965 HEAPF32[i3 + 12 >> 2] = 0.0;
47966 return;
47967 }
47968 case 4:
47969 {
47970 HEAPF32[i3 >> 2] = 0.0;
47971 HEAPF32[i3 + 4 >> 2] = 0.0;
47972 HEAPF32[i3 + 8 >> 2] = 1.0;
47973 HEAPF32[i3 + 12 >> 2] = 0.0;
47974 return;
47975 }
47976 default:
47977 {
47978 return;
47979 }
47980 }
47981 }
47982 function __ZN35btSequentialImpulseConstraintSolver33solveGroupCacheFriendlyIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10) {
47983 i1 = i1 | 0;
47984 i2 = i2 | 0;
47985 i3 = i3 | 0;
47986 i4 = i4 | 0;
47987 i5 = i5 | 0;
47988 i6 = i6 | 0;
47989 i7 = i7 | 0;
47990 i8 = i8 | 0;
47991 i9 = i9 | 0;
47992 i10 = i10 | 0;
47993 var i11 = 0;
47994 __ZN15CProfileManager13Start_ProfileEPKc(736);
47995 FUNCTION_TABLE_viiiiiiiiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 24 >> 2] & 3](i1, i2, i3, i4, i5, i6, i7, i8, i9, i10);
47996 i10 = i8 + 20 | 0;
47997 if ((HEAP32[i10 >> 2] | 0) > 0) {
47998 i11 = 0;
47999 } else {
48000 __ZN15CProfileManager12Stop_ProfileEv();
48001 return +0.0;
48002 }
48003 do {
48004 +__ZN35btSequentialImpulseConstraintSolver20solveSingleIterationEiPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(i1, i11, 0, 0, 0, 0, i6, i7, i8, 0, 0);
48005 i11 = i11 + 1 | 0;
48006 } while ((i11 | 0) < (HEAP32[i10 >> 2] | 0));
48007 __ZN15CProfileManager12Stop_ProfileEv();
48008 return +0.0;
48009 }
48010 function __ZN20btAlignedObjectArrayI6btFaceE7destroyEii(i1, i2, i3) {
48011 i1 = i1 | 0;
48012 i2 = i2 | 0;
48013 i3 = i3 | 0;
48014 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
48015 if ((i2 | 0) >= (i3 | 0)) {
48016 return;
48017 }
48018 i4 = i1 + 12 | 0;
48019 i1 = i2;
48020 do {
48021 i2 = HEAP32[i4 >> 2] | 0;
48022 i5 = i2 + (i1 * 56 | 0) + 24 | 0;
48023 i6 = i2 + (i1 * 56 | 0) + 32 | 0;
48024 i7 = HEAP32[i6 >> 2] | 0;
48025 i8 = i2 + (i1 * 56 | 0) + 36 | 0;
48026 if ((i7 | 0) != 0) {
48027 if ((HEAP8[i8] | 0) != 0) {
48028 __Z21btAlignedFreeInternalPv(i7);
48029 }
48030 HEAP32[i6 >> 2] = 0;
48031 }
48032 HEAP8[i8] = 1;
48033 HEAP32[i6 >> 2] = 0;
48034 HEAP32[i5 >> 2] = 0;
48035 HEAP32[i2 + (i1 * 56 | 0) + 28 >> 2] = 0;
48036 i5 = i2 + (i1 * 56 | 0) + 4 | 0;
48037 i6 = i2 + (i1 * 56 | 0) + 12 | 0;
48038 i8 = HEAP32[i6 >> 2] | 0;
48039 i7 = i2 + (i1 * 56 | 0) + 16 | 0;
48040 if ((i8 | 0) != 0) {
48041 if ((HEAP8[i7] | 0) != 0) {
48042 __Z21btAlignedFreeInternalPv(i8);
48043 }
48044 HEAP32[i6 >> 2] = 0;
48045 }
48046 HEAP8[i7] = 1;
48047 HEAP32[i6 >> 2] = 0;
48048 HEAP32[i5 >> 2] = 0;
48049 HEAP32[i2 + (i1 * 56 | 0) + 8 >> 2] = 0;
48050 i1 = i1 + 1 | 0;
48051 } while ((i1 | 0) < (i3 | 0));
48052 return;
48053 }
48054 function __ZNK20btConvexHullInternal6Int1288toScalarEv(i1) {
48055 i1 = i1 | 0;
48056 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, d7 = 0.0, i8 = 0, i9 = 0, i10 = 0;
48057 i2 = STACKTOP;
48058 STACKTOP = STACKTOP + 16 | 0;
48059 i3 = i2 | 0;
48060 i4 = i1 + 8 | 0;
48061 i5 = HEAP32[i4 >> 2] | 0;
48062 i6 = HEAP32[i4 + 4 >> 2] | 0;
48063 i4 = -1;
48064 if ((i6 | 0) > (i4 | 0) | (i6 | 0) == (i4 | 0) & i5 >>> 0 > -1 >>> 0) {
48065 i4 = i1 | 0;
48066 d7 = (+(i5 >>> 0) + +(i6 >>> 0) * 4294967296.0) * 18446744073709552000.0 + (+((HEAP32[i4 >> 2] | 0) >>> 0) + +((HEAP32[i4 + 4 >> 2] | 0) >>> 0) * 4294967296.0);
48067 STACKTOP = i2;
48068 return +d7;
48069 } else {
48070 i4 = i1 | 0;
48071 i1 = HEAP32[i4 >> 2] | 0;
48072 i8 = HEAP32[i4 + 4 >> 2] | 0;
48073 i4 = _i64Subtract(0, 0, i1, i8) | 0;
48074 i9 = tempRet0;
48075 i10 = _i64Add((i1 | 0) == 0 & (i8 | 0) == 0 & 1, 0, ~i5, ~i6) | 0;
48076 i6 = i3 | 0;
48077 HEAP32[i6 >> 2] = i4;
48078 HEAP32[i6 + 4 >> 2] = i9;
48079 i9 = i3 + 8 | 0;
48080 HEAP32[i9 >> 2] = i10;
48081 HEAP32[i9 + 4 >> 2] = tempRet0;
48082 d7 = -0.0 - +__ZNK20btConvexHullInternal6Int1288toScalarEv(i3);
48083 STACKTOP = i2;
48084 return +d7;
48085 }
48086 return 0.0;
48087 }
48088 function __ZN10btBoxShape15setLocalScalingERK9btVector3(i1, i2) {
48089 i1 = i1 | 0;
48090 i2 = i2 | 0;
48091 var i3 = 0, i4 = 0, d5 = 0.0, d6 = 0.0, d7 = 0.0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, i12 = 0, d13 = 0.0, i14 = 0, d15 = 0.0, d16 = 0.0;
48092 i3 = i1 | 0;
48093 i4 = i1;
48094 d5 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
48095 d6 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
48096 d7 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
48097 i4 = i1 + 28 | 0;
48098 i8 = i1 + 32 | 0;
48099 i9 = i1 + 36 | 0;
48100 i10 = i1 + 12 | 0;
48101 d11 = (d5 + +HEAPF32[i4 >> 2]) / +HEAPF32[i10 >> 2];
48102 i12 = i1 + 16 | 0;
48103 d13 = (d6 + +HEAPF32[i8 >> 2]) / +HEAPF32[i12 >> 2];
48104 i14 = i1 + 20 | 0;
48105 d15 = (d7 + +HEAPF32[i9 >> 2]) / +HEAPF32[i14 >> 2];
48106 __ZN21btConvexInternalShape15setLocalScalingERK9btVector3(i3, i2);
48107 d16 = d13 * +HEAPF32[i12 >> 2] - d6;
48108 d6 = d15 * +HEAPF32[i14 >> 2] - d7;
48109 HEAPF32[i4 >> 2] = d11 * +HEAPF32[i10 >> 2] - d5;
48110 HEAPF32[i8 >> 2] = d16;
48111 HEAPF32[i9 >> 2] = d6;
48112 HEAPF32[i1 + 40 >> 2] = 0.0;
48113 return;
48114 }
48115 function __ZNK15btTriangleShape32getPreferredPenetrationDirectionEiR9btVector3(i1, i2, i3) {
48116 i1 = i1 | 0;
48117 i2 = i2 | 0;
48118 i3 = i3 | 0;
48119 var d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, i12 = 0, i13 = 0;
48120 d4 = +HEAPF32[i1 + 56 >> 2];
48121 d5 = +HEAPF32[i1 + 72 >> 2] - d4;
48122 d6 = +HEAPF32[i1 + 60 >> 2];
48123 d7 = +HEAPF32[i1 + 76 >> 2] - d6;
48124 d8 = +HEAPF32[i1 + 64 >> 2];
48125 d9 = +HEAPF32[i1 + 80 >> 2] - d8;
48126 d10 = +HEAPF32[i1 + 88 >> 2] - d4;
48127 d4 = +HEAPF32[i1 + 92 >> 2] - d6;
48128 d6 = +HEAPF32[i1 + 96 >> 2] - d8;
48129 d8 = d7 * d6 - d9 * d4;
48130 d11 = d9 * d10 - d5 * d6;
48131 d6 = d5 * d4 - d7 * d10;
48132 i1 = i3 | 0;
48133 i12 = i3 + 4 | 0;
48134 i13 = i3 + 8 | 0;
48135 HEAPF32[i3 + 12 >> 2] = 0.0;
48136 d10 = 1.0 / +Math_sqrt(+(d6 * d6 + (d8 * d8 + d11 * d11)));
48137 d7 = d10 * d8;
48138 HEAPF32[i1 >> 2] = d7;
48139 d8 = d10 * d11;
48140 HEAPF32[i12 >> 2] = d8;
48141 d11 = d6 * d10;
48142 HEAPF32[i13 >> 2] = d11;
48143 if ((i2 | 0) == 0) {
48144 return;
48145 }
48146 HEAPF32[i1 >> 2] = d7 * -1.0;
48147 HEAPF32[i12 >> 2] = d8 * -1.0;
48148 HEAPF32[i13 >> 2] = d11 * -1.0;
48149 return;
48150 }
48151 function __ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib(i1, i2, i3, i4, i5, i6) {
48152 i1 = i1 | 0;
48153 i2 = i2 | 0;
48154 i3 = i3 | 0;
48155 i4 = i4 | 0;
48156 i5 = i5 | 0;
48157 i6 = i6 | 0;
48158 var i7 = 0;
48159 if ((HEAP32[i2 + 8 >> 2] | 0) != (i1 | 0)) {
48160 return;
48161 }
48162 HEAP8[i2 + 53 | 0] = 1;
48163 if ((HEAP32[i2 + 4 >> 2] | 0) != (i4 | 0)) {
48164 return;
48165 }
48166 HEAP8[i2 + 52 | 0] = 1;
48167 i4 = i2 + 16 | 0;
48168 i1 = HEAP32[i4 >> 2] | 0;
48169 if ((i1 | 0) == 0) {
48170 HEAP32[i4 >> 2] = i3;
48171 HEAP32[i2 + 24 >> 2] = i5;
48172 HEAP32[i2 + 36 >> 2] = 1;
48173 if (!((HEAP32[i2 + 48 >> 2] | 0) == 1 & (i5 | 0) == 1)) {
48174 return;
48175 }
48176 HEAP8[i2 + 54 | 0] = 1;
48177 return;
48178 }
48179 if ((i1 | 0) != (i3 | 0)) {
48180 i3 = i2 + 36 | 0;
48181 HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 1;
48182 HEAP8[i2 + 54 | 0] = 1;
48183 return;
48184 }
48185 i3 = i2 + 24 | 0;
48186 i1 = HEAP32[i3 >> 2] | 0;
48187 if ((i1 | 0) == 2) {
48188 HEAP32[i3 >> 2] = i5;
48189 i7 = i5;
48190 } else {
48191 i7 = i1;
48192 }
48193 if (!((HEAP32[i2 + 48 >> 2] | 0) == 1 & (i7 | 0) == 1)) {
48194 return;
48195 }
48196 HEAP8[i2 + 54 | 0] = 1;
48197 return;
48198 }
48199 function __ZNK10btBoxShape8getPlaneER9btVector3S1_i(i1, i2, i3, i4) {
48200 i1 = i1 | 0;
48201 i2 = i2 | 0;
48202 i3 = i3 | 0;
48203 i4 = i4 | 0;
48204 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, d11 = 0.0;
48205 i5 = STACKTOP;
48206 STACKTOP = STACKTOP + 48 | 0;
48207 i6 = i5 | 0;
48208 i7 = i5 + 16 | 0;
48209 i8 = i5 + 32 | 0;
48210 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i1 >> 2] | 0) + 116 >> 2] & 127](i1, i6, i4);
48211 d9 = +HEAPF32[i6 >> 2];
48212 d10 = +HEAPF32[i6 + 4 >> 2];
48213 d11 = +HEAPF32[i6 + 8 >> 2];
48214 HEAPF32[i2 >> 2] = d9;
48215 HEAPF32[i2 + 4 >> 2] = d10;
48216 HEAPF32[i2 + 8 >> 2] = d11;
48217 HEAPF32[i2 + 12 >> 2] = 0.0;
48218 i2 = HEAP32[(HEAP32[i1 >> 2] | 0) + 60 >> 2] | 0;
48219 HEAPF32[i8 >> 2] = -0.0 - d9;
48220 HEAPF32[i8 + 4 >> 2] = -0.0 - d10;
48221 HEAPF32[i8 + 8 >> 2] = -0.0 - d11;
48222 HEAPF32[i8 + 12 >> 2] = 0.0;
48223 FUNCTION_TABLE_viii[i2 & 127](i7, i1, i8);
48224 i8 = i3;
48225 i3 = i7;
48226 HEAP32[i8 >> 2] = HEAP32[i3 >> 2];
48227 HEAP32[i8 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
48228 HEAP32[i8 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
48229 HEAP32[i8 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
48230 STACKTOP = i5;
48231 return;
48232 }
48233 function __ZN28btHashedOverlappingPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher(i1, i2, i3) {
48234 i1 = i1 | 0;
48235 i2 = i2 | 0;
48236 i3 = i3 | 0;
48237 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
48238 i4 = i1 + 8 | 0;
48239 if ((HEAP32[i4 >> 2] | 0) <= 0) {
48240 return;
48241 }
48242 i5 = i1 + 16 | 0;
48243 i6 = i2;
48244 i7 = i1;
48245 i8 = 0;
48246 L1889 : while (1) {
48247 while (1) {
48248 i9 = HEAP32[i5 >> 2] | 0;
48249 i10 = i9 + (i8 << 4) | 0;
48250 if (!(FUNCTION_TABLE_iii[HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] & 63](i2, i10) | 0)) {
48251 break;
48252 }
48253 FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] & 31](i1, HEAP32[i10 >> 2] | 0, HEAP32[i9 + (i8 << 4) + 4 >> 2] | 0, i3) | 0;
48254 HEAP32[2986] = (HEAP32[2986] | 0) - 1;
48255 if ((i8 | 0) >= (HEAP32[i4 >> 2] | 0)) {
48256 i11 = 1636;
48257 break L1889;
48258 }
48259 }
48260 i9 = i8 + 1 | 0;
48261 if ((i9 | 0) < (HEAP32[i4 >> 2] | 0)) {
48262 i8 = i9;
48263 } else {
48264 i11 = 1635;
48265 break;
48266 }
48267 }
48268 if ((i11 | 0) == 1635) {
48269 return;
48270 } else if ((i11 | 0) == 1636) {
48271 return;
48272 }
48273 }
48274 function __ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib(i1, i2, i3, i4, i5) {
48275 i1 = i1 | 0;
48276 i2 = i2 | 0;
48277 i3 = i3 | 0;
48278 i4 = i4 | 0;
48279 i5 = i5 | 0;
48280 if ((HEAP32[i2 + 8 >> 2] | 0) == (i1 | 0)) {
48281 if ((HEAP32[i2 + 4 >> 2] | 0) != (i3 | 0)) {
48282 return;
48283 }
48284 i5 = i2 + 28 | 0;
48285 if ((HEAP32[i5 >> 2] | 0) == 1) {
48286 return;
48287 }
48288 HEAP32[i5 >> 2] = i4;
48289 return;
48290 }
48291 if ((HEAP32[i2 >> 2] | 0) != (i1 | 0)) {
48292 return;
48293 }
48294 do {
48295 if ((HEAP32[i2 + 16 >> 2] | 0) != (i3 | 0)) {
48296 i1 = i2 + 20 | 0;
48297 if ((HEAP32[i1 >> 2] | 0) == (i3 | 0)) {
48298 break;
48299 }
48300 HEAP32[i2 + 32 >> 2] = i4;
48301 HEAP32[i1 >> 2] = i3;
48302 i1 = i2 + 40 | 0;
48303 HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + 1;
48304 do {
48305 if ((HEAP32[i2 + 36 >> 2] | 0) == 1) {
48306 if ((HEAP32[i2 + 24 >> 2] | 0) != 2) {
48307 break;
48308 }
48309 HEAP8[i2 + 54 | 0] = 1;
48310 }
48311 } while (0);
48312 HEAP32[i2 + 44 >> 2] = 4;
48313 return;
48314 }
48315 } while (0);
48316 if ((i4 | 0) != 1) {
48317 return;
48318 }
48319 HEAP32[i2 + 32 >> 2] = 1;
48320 return;
48321 }
48322 function __ZNK15btTriangleShape16getPlaneEquationEiR9btVector3S1_(i1, i2, i3, i4) {
48323 i1 = i1 | 0;
48324 i2 = i2 | 0;
48325 i3 = i3 | 0;
48326 i4 = i4 | 0;
48327 var d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0;
48328 d5 = +HEAPF32[i1 + 56 >> 2];
48329 d6 = +HEAPF32[i1 + 72 >> 2] - d5;
48330 d7 = +HEAPF32[i1 + 60 >> 2];
48331 d8 = +HEAPF32[i1 + 76 >> 2] - d7;
48332 d9 = +HEAPF32[i1 + 64 >> 2];
48333 d10 = +HEAPF32[i1 + 80 >> 2] - d9;
48334 d11 = +HEAPF32[i1 + 88 >> 2] - d5;
48335 d5 = +HEAPF32[i1 + 92 >> 2] - d7;
48336 d7 = +HEAPF32[i1 + 96 >> 2] - d9;
48337 d9 = d8 * d7 - d10 * d5;
48338 d12 = d10 * d11 - d6 * d7;
48339 d7 = d6 * d5 - d8 * d11;
48340 HEAPF32[i3 + 12 >> 2] = 0.0;
48341 d11 = 1.0 / +Math_sqrt(+(d7 * d7 + (d9 * d9 + d12 * d12)));
48342 HEAPF32[i3 >> 2] = d11 * d9;
48343 HEAPF32[i3 + 4 >> 2] = d11 * d12;
48344 HEAPF32[i3 + 8 >> 2] = d7 * d11;
48345 i3 = i4;
48346 i4 = i1 + 56 | 0;
48347 HEAP32[i3 >> 2] = HEAP32[i4 >> 2];
48348 HEAP32[i3 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
48349 HEAP32[i3 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
48350 HEAP32[i3 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
48351 return;
48352 }
48353 function __ZN23btConvexConvexAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
48354 i1 = i1 | 0;
48355 i2 = i2 | 0;
48356 i3 = i3 | 0;
48357 i4 = i4 | 0;
48358 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
48359 i5 = HEAP32[i2 >> 2] | 0;
48360 i6 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i5 >> 2] | 0) + 56 >> 2] & 63](i5, 36) | 0;
48361 if ((i6 | 0) == 0) {
48362 i7 = 0;
48363 i8 = i7 | 0;
48364 return i8 | 0;
48365 }
48366 i5 = HEAP32[i2 + 4 >> 2] | 0;
48367 i9 = HEAP32[i1 + 12 >> 2] | 0;
48368 i10 = HEAP32[i1 + 8 >> 2] | 0;
48369 i11 = HEAP32[i1 + 16 >> 2] | 0;
48370 i12 = HEAP32[i1 + 20 >> 2] | 0;
48371 __ZN30btActivatingCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i6, i2, i3, i4);
48372 HEAP32[i6 >> 2] = 3464;
48373 HEAP32[i6 + 8 >> 2] = i9;
48374 HEAP32[i6 + 12 >> 2] = i10;
48375 HEAP8[i6 + 16 | 0] = 0;
48376 HEAP32[i6 + 20 >> 2] = i5;
48377 HEAP8[i6 + 24 | 0] = 0;
48378 HEAP32[i6 + 28 >> 2] = i11;
48379 HEAP32[i6 + 32 >> 2] = i12;
48380 i7 = i6;
48381 i8 = i7 | 0;
48382 return i8 | 0;
48383 }
48384 function __ZNK10btBoxShape7getEdgeEiR9btVector3S1_(i1, i2, i3, i4) {
48385 i1 = i1 | 0;
48386 i2 = i2 | 0;
48387 i3 = i3 | 0;
48388 i4 = i4 | 0;
48389 var i5 = 0, i6 = 0;
48390 switch (i2 | 0) {
48391 case 0:
48392 {
48393 i5 = 1;
48394 i6 = 0;
48395 break;
48396 }
48397 case 11:
48398 {
48399 i5 = 7;
48400 i6 = 6;
48401 break;
48402 }
48403 case 2:
48404 {
48405 i5 = 3;
48406 i6 = 1;
48407 break;
48408 }
48409 case 5:
48410 {
48411 i5 = i2;
48412 i6 = 1;
48413 break;
48414 }
48415 case 4:
48416 {
48417 i5 = i2;
48418 i6 = 0;
48419 break;
48420 }
48421 case 3:
48422 {
48423 i5 = i2;
48424 i6 = 2;
48425 break;
48426 }
48427 case 6:
48428 {
48429 i5 = i2;
48430 i6 = 2;
48431 break;
48432 }
48433 case 7:
48434 {
48435 i5 = i2;
48436 i6 = 3;
48437 break;
48438 }
48439 case 1:
48440 {
48441 i5 = 2;
48442 i6 = 0;
48443 break;
48444 }
48445 case 8:
48446 {
48447 i5 = 5;
48448 i6 = 4;
48449 break;
48450 }
48451 case 9:
48452 {
48453 i5 = 6;
48454 i6 = 4;
48455 break;
48456 }
48457 case 10:
48458 {
48459 i5 = 7;
48460 i6 = 5;
48461 break;
48462 }
48463 default:
48464 {
48465 i5 = 0;
48466 i6 = 0;
48467 }
48468 }
48469 i2 = i1;
48470 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i2 >> 2] | 0) + 100 >> 2] & 127](i1, i6, i3);
48471 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i2 >> 2] | 0) + 100 >> 2] & 127](i1, i5, i4);
48472 return;
48473 }
48474 function __ZN16btDbvtBroadphaseC2EP22btOverlappingPairCache(i1, i2) {
48475 i1 = i1 | 0;
48476 i2 = i2 | 0;
48477 var i3 = 0, i4 = 0, i5 = 0;
48478 HEAP32[i1 >> 2] = 4392;
48479 __ZN6btDbvtC2Ev(i1 + 4 | 0);
48480 __ZN6btDbvtC2Ev(i1 + 44 | 0);
48481 HEAP8[i1 + 153 | 0] = 0;
48482 HEAP8[i1 + 154 | 0] = 1;
48483 i3 = (i2 | 0) != 0;
48484 HEAP8[i1 + 152 | 0] = i3 & 1 ^ 1;
48485 HEAPF32[i1 + 100 >> 2] = 0.0;
48486 HEAP32[i1 + 104 >> 2] = 0;
48487 HEAP32[i1 + 124 >> 2] = 0;
48488 HEAP32[i1 + 108 >> 2] = 1;
48489 HEAP32[i1 + 112 >> 2] = 0;
48490 HEAP32[i1 + 116 >> 2] = 10;
48491 HEAP32[i1 + 120 >> 2] = 1;
48492 HEAP32[i1 + 128 >> 2] = 0;
48493 HEAP32[i1 + 132 >> 2] = 0;
48494 HEAPF32[i1 + 136 >> 2] = 0.0;
48495 if (i3) {
48496 i4 = i2;
48497 } else {
48498 i2 = __Z22btAlignedAllocInternalji(76, 16) | 0;
48499 if ((i2 | 0) == 0) {
48500 i5 = 0;
48501 } else {
48502 i3 = i2;
48503 __ZN28btHashedOverlappingPairCacheC2Ev(i3);
48504 i5 = i3;
48505 }
48506 i4 = i5 | 0;
48507 }
48508 HEAP32[i1 + 96 >> 2] = i4;
48509 HEAP32[i1 + 148 >> 2] = 0;
48510 HEAP32[i1 + 140 >> 2] = 0;
48511 HEAP32[i1 + 144 >> 2] = 0;
48512 _memset(i1 + 84 | 0, 0, 12);
48513 return;
48514 }
48515 function __ZN16btDbvtBroadphase8aabbTestERK9btVector3S2_R24btBroadphaseAabbCallback(i1, i2, i3, i4) {
48516 i1 = i1 | 0;
48517 i2 = i2 | 0;
48518 i3 = i3 | 0;
48519 i4 = i4 | 0;
48520 var i5 = 0, i6 = 0, i7 = 0, i8 = 0;
48521 i5 = STACKTOP;
48522 STACKTOP = STACKTOP + 40 | 0;
48523 i6 = i5 | 0;
48524 i7 = i5 + 8 | 0;
48525 HEAP32[i6 >> 2] = 3936;
48526 HEAP32[i6 + 4 >> 2] = i4;
48527 i4 = i7;
48528 i8 = i2;
48529 HEAP32[i4 >> 2] = HEAP32[i8 >> 2];
48530 HEAP32[i4 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
48531 HEAP32[i4 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
48532 HEAP32[i4 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
48533 i8 = i7 + 16 | 0;
48534 i4 = i3;
48535 HEAP32[i8 >> 2] = HEAP32[i4 >> 2];
48536 HEAP32[i8 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
48537 HEAP32[i8 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
48538 HEAP32[i8 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
48539 i4 = i6 | 0;
48540 __ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(0, HEAP32[i1 + 4 >> 2] | 0, i7, i4);
48541 __ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(0, HEAP32[i1 + 44 >> 2] | 0, i7, i4);
48542 STACKTOP = i5;
48543 return;
48544 }
48545 function __ZN10btBoxShape9setMarginEf(i1, d2) {
48546 i1 = i1 | 0;
48547 d2 = +d2;
48548 var i3 = 0, i4 = 0, d5 = 0.0, d6 = 0.0, d7 = 0.0, i8 = 0, d9 = 0.0, i10 = 0, i11 = 0, d12 = 0.0;
48549 i3 = i1 | 0;
48550 i4 = i1;
48551 d5 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
48552 d6 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
48553 d7 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
48554 i8 = i1 + 28 | 0;
48555 d9 = d5 + +HEAPF32[i8 >> 2];
48556 i10 = i1 + 32 | 0;
48557 d5 = d6 + +HEAPF32[i10 >> 2];
48558 i11 = i1 + 36 | 0;
48559 d6 = d7 + +HEAPF32[i11 >> 2];
48560 HEAPF32[i1 + 44 >> 2] = d2;
48561 d2 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
48562 d7 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
48563 d12 = d6 - +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
48564 HEAPF32[i8 >> 2] = d9 - d2;
48565 HEAPF32[i10 >> 2] = d5 - d7;
48566 HEAPF32[i11 >> 2] = d12;
48567 HEAPF32[i1 + 40 >> 2] = 0.0;
48568 return;
48569 }
48570 function __ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3(i1, i2, i3) {
48571 i1 = i1 | 0;
48572 i2 = i2 | 0;
48573 i3 = i3 | 0;
48574 var i4 = 0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0;
48575 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i2 >> 2] | 0) + 64 >> 2] & 127](i1, i2 | 0, i3);
48576 i4 = i2;
48577 if (+FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i2) == 0.0) {
48578 return;
48579 }
48580 d5 = +HEAPF32[i3 >> 2];
48581 d6 = +HEAPF32[i3 + 4 >> 2];
48582 d7 = +HEAPF32[i3 + 8 >> 2];
48583 i3 = d5 * d5 + d6 * d6 + d7 * d7 < 1.4210854715202004e-14;
48584 d8 = i3 ? -1.0 : d7;
48585 d7 = i3 ? -1.0 : d6;
48586 d6 = i3 ? -1.0 : d5;
48587 d5 = 1.0 / +Math_sqrt(+(d8 * d8 + (d6 * d6 + d7 * d7)));
48588 d9 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i2);
48589 i2 = i1 | 0;
48590 HEAPF32[i2 >> 2] = d5 * d6 * d9 + +HEAPF32[i2 >> 2];
48591 i2 = i1 + 4 | 0;
48592 HEAPF32[i2 >> 2] = d9 * d5 * d7 + +HEAPF32[i2 >> 2];
48593 i2 = i1 + 8 | 0;
48594 HEAPF32[i2 >> 2] = d9 * d5 * d8 + +HEAPF32[i2 >> 2];
48595 return;
48596 }
48597 function __ZN31btConvexPlaneCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_bii(i1, i2, i3, i4, i5, i6, i7, i8) {
48598 i1 = i1 | 0;
48599 i2 = i2 | 0;
48600 i3 = i3 | 0;
48601 i4 = i4 | 0;
48602 i5 = i5 | 0;
48603 i6 = i6 | 0;
48604 i7 = i7 | 0;
48605 i8 = i8 | 0;
48606 var i9 = 0;
48607 __ZN20btCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfo(i1 | 0, i3);
48608 HEAP32[i1 >> 2] = 2656;
48609 i3 = i1 + 8 | 0;
48610 HEAP8[i3] = 0;
48611 i9 = i1 + 12 | 0;
48612 HEAP32[i9 >> 2] = i2;
48613 HEAP8[i1 + 16 | 0] = i6 & 1;
48614 HEAP32[i1 + 20 >> 2] = i7;
48615 HEAP32[i1 + 24 >> 2] = i8;
48616 i8 = i6 ? i5 : i4;
48617 i7 = i6 ? i4 : i5;
48618 if ((i2 | 0) != 0) {
48619 return;
48620 }
48621 i2 = i1 + 4 | 0;
48622 i1 = HEAP32[i2 >> 2] | 0;
48623 if (!(FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 24 >> 2] & 31](i1, i8, i7) | 0)) {
48624 return;
48625 }
48626 i1 = HEAP32[i2 >> 2] | 0;
48627 HEAP32[i9 >> 2] = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] & 31](i1, i8, i7) | 0;
48628 HEAP8[i3] = 1;
48629 return;
48630 }
48631 function __ZN23btDiscreteDynamicsWorld10setGravityERK9btVector3(i1, i2) {
48632 i1 = i1 | 0;
48633 i2 = i2 | 0;
48634 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
48635 i3 = i1 + 220 | 0;
48636 i4 = i2;
48637 HEAP32[i3 >> 2] = HEAP32[i4 >> 2];
48638 HEAP32[i3 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
48639 HEAP32[i3 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
48640 HEAP32[i3 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
48641 i4 = i1 + 204 | 0;
48642 i3 = HEAP32[i4 >> 2] | 0;
48643 if ((i3 | 0) <= 0) {
48644 return;
48645 }
48646 i5 = i1 + 212 | 0;
48647 i1 = 0;
48648 i6 = i3;
48649 while (1) {
48650 i3 = HEAP32[(HEAP32[i5 >> 2] | 0) + (i1 << 2) >> 2] | 0;
48651 i7 = HEAP32[i3 + 216 >> 2] | 0;
48652 do {
48653 if ((i7 | 0) == 5 | (i7 | 0) == 2) {
48654 i8 = i6;
48655 } else {
48656 if ((HEAP32[i3 + 496 >> 2] & 1 | 0) != 0) {
48657 i8 = i6;
48658 break;
48659 }
48660 __ZN11btRigidBody10setGravityERK9btVector3(i3, i2);
48661 i8 = HEAP32[i4 >> 2] | 0;
48662 }
48663 } while (0);
48664 i3 = i1 + 1 | 0;
48665 if ((i3 | 0) < (i8 | 0)) {
48666 i1 = i3;
48667 i6 = i8;
48668 } else {
48669 break;
48670 }
48671 }
48672 return;
48673 }
48674 function __ZN21btCollisionDispatcherC2EP24btCollisionConfiguration(i1, i2) {
48675 i1 = i1 | 0;
48676 i2 = i2 | 0;
48677 var i3 = 0, i4 = 0, i5 = 0;
48678 HEAP32[i1 >> 2] = 3784;
48679 HEAP32[i1 + 4 >> 2] = 2;
48680 HEAP8[i1 + 24 | 0] = 1;
48681 HEAP32[i1 + 20 >> 2] = 0;
48682 HEAP32[i1 + 12 >> 2] = 0;
48683 HEAP32[i1 + 16 >> 2] = 0;
48684 HEAP32[i1 + 28 >> 2] = 4312;
48685 _memset(i1 + 172 | 0, -1 | 0, 16);
48686 i3 = i1 + 5384 | 0;
48687 HEAP32[i3 >> 2] = i2;
48688 HEAP32[i1 + 188 >> 2] = 20;
48689 i4 = i2;
48690 HEAP32[i1 + 192 >> 2] = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] & 127](i2) | 0;
48691 HEAP32[i1 + 196 >> 2] = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] & 127](i2) | 0;
48692 i2 = 0;
48693 do {
48694 i4 = 0;
48695 do {
48696 i5 = HEAP32[i3 >> 2] | 0;
48697 HEAP32[i1 + 200 + (i2 * 144 | 0) + (i4 << 2) >> 2] = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i5 >> 2] | 0) + 20 >> 2] & 31](i5, i2, i4) | 0;
48698 i4 = i4 + 1 | 0;
48699 } while ((i4 | 0) < 36);
48700 i2 = i2 + 1 | 0;
48701 } while ((i2 | 0) < 36);
48702 return;
48703 }
48704 function __ZN16btCollisionWorldC2EP12btDispatcherP21btBroadphaseInterfaceP24btCollisionConfiguration(i1, i2, i3, i4) {
48705 i1 = i1 | 0;
48706 i2 = i2 | 0;
48707 i3 = i3 | 0;
48708 i4 = i4 | 0;
48709 HEAP32[i1 >> 2] = 4464;
48710 HEAP8[i1 + 20 | 0] = 1;
48711 HEAP32[i1 + 16 >> 2] = 0;
48712 HEAP32[i1 + 8 >> 2] = 0;
48713 HEAP32[i1 + 12 >> 2] = 0;
48714 HEAP32[i1 + 24 >> 2] = i2;
48715 HEAPF32[i1 + 28 >> 2] = 0.0;
48716 HEAP32[i1 + 32 >> 2] = 0;
48717 HEAP32[i1 + 36 >> 2] = 1;
48718 HEAPF32[i1 + 40 >> 2] = 1.0;
48719 HEAP8[i1 + 44 | 0] = 1;
48720 HEAP32[i1 + 48 >> 2] = 0;
48721 HEAP8[i1 + 52 | 0] = 0;
48722 HEAP8[i1 + 53 | 0] = 1;
48723 HEAP8[i1 + 54 | 0] = 1;
48724 HEAPF32[i1 + 56 >> 2] = .03999999910593033;
48725 HEAP8[i1 + 60 | 0] = 0;
48726 HEAPF32[i1 + 64 >> 2] = 0.0;
48727 i2 = i1 + 68 | 0;
48728 HEAP32[i2 >> 2] = 0;
48729 HEAP32[i1 + 76 >> 2] = i3;
48730 HEAP32[i1 + 80 >> 2] = 0;
48731 HEAP8[i1 + 84 | 0] = 1;
48732 i3 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i4 >> 2] | 0) + 16 >> 2] & 127](i4) | 0;
48733 HEAP32[i1 + 72 >> 2] = i3;
48734 HEAP32[i2 >> 2] = i3;
48735 return;
48736 }
48737 function __ZN16btCollisionWorld33performDiscreteCollisionDetectionEv(i1) {
48738 i1 = i1 | 0;
48739 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
48740 __ZN15CProfileManager13Start_ProfileEPKc(272);
48741 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 511](i1);
48742 __ZN15CProfileManager13Start_ProfileEPKc(208);
48743 i2 = i1 + 76 | 0;
48744 i3 = HEAP32[i2 >> 2] | 0;
48745 i4 = i1 + 24 | 0;
48746 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 32 >> 2] & 127](i3, HEAP32[i4 >> 2] | 0);
48747 __ZN15CProfileManager12Stop_ProfileEv();
48748 i3 = HEAP32[i4 >> 2] | 0;
48749 __ZN15CProfileManager13Start_ProfileEPKc(144);
48750 if ((i3 | 0) != 0) {
48751 i5 = HEAP32[(HEAP32[i3 >> 2] | 0) + 32 >> 2] | 0;
48752 i6 = HEAP32[i2 >> 2] | 0;
48753 i2 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i6 >> 2] | 0) + 36 >> 2] & 127](i6) | 0;
48754 FUNCTION_TABLE_viiii[i5 & 127](i3, i2, i1 + 28 | 0, HEAP32[i4 >> 2] | 0);
48755 }
48756 __ZN15CProfileManager12Stop_ProfileEv();
48757 __ZN15CProfileManager12Stop_ProfileEv();
48758 return;
48759 }
48760 function __ZN16btCollisionWorld11updateAabbsEv(i1) {
48761 i1 = i1 | 0;
48762 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
48763 __ZN15CProfileManager13Start_ProfileEPKc(440);
48764 i2 = i1 + 8 | 0;
48765 i3 = HEAP32[i2 >> 2] | 0;
48766 if ((i3 | 0) <= 0) {
48767 __ZN15CProfileManager12Stop_ProfileEv();
48768 return;
48769 }
48770 i4 = i1 + 16 | 0;
48771 i5 = i1 + 84 | 0;
48772 i6 = 0;
48773 i7 = i3;
48774 while (1) {
48775 i3 = HEAP32[(HEAP32[i4 >> 2] | 0) + (i6 << 2) >> 2] | 0;
48776 if ((HEAP8[i5] | 0) == 0) {
48777 i8 = HEAP32[i3 + 216 >> 2] | 0;
48778 if ((i8 | 0) == 5 | (i8 | 0) == 2) {
48779 i9 = i7;
48780 } else {
48781 i10 = 2061;
48782 }
48783 } else {
48784 i10 = 2061;
48785 }
48786 if ((i10 | 0) == 2061) {
48787 i10 = 0;
48788 __ZN16btCollisionWorld16updateSingleAabbEP17btCollisionObject(i1, i3);
48789 i9 = HEAP32[i2 >> 2] | 0;
48790 }
48791 i3 = i6 + 1 | 0;
48792 if ((i3 | 0) < (i9 | 0)) {
48793 i6 = i3;
48794 i7 = i9;
48795 } else {
48796 break;
48797 }
48798 }
48799 __ZN15CProfileManager12Stop_ProfileEv();
48800 return;
48801 }
48802 function __ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv(i1, i2, i3) {
48803 i1 = i1 | 0;
48804 i2 = i2 | 0;
48805 i3 = i3 | 0;
48806 var i4 = 0, i5 = 0, i6 = 0, i7 = 0;
48807 i4 = STACKTOP;
48808 STACKTOP = STACKTOP + 56 | 0;
48809 i5 = i4 | 0;
48810 if ((i1 | 0) == (i2 | 0)) {
48811 i6 = 1;
48812 STACKTOP = i4;
48813 return i6 | 0;
48814 }
48815 if ((i2 | 0) == 0) {
48816 i6 = 0;
48817 STACKTOP = i4;
48818 return i6 | 0;
48819 }
48820 i7 = ___dynamic_cast(i2, 10880, 10864, -1) | 0;
48821 i2 = i7;
48822 if ((i7 | 0) == 0) {
48823 i6 = 0;
48824 STACKTOP = i4;
48825 return i6 | 0;
48826 }
48827 _memset(i5 | 0, 0, 56);
48828 HEAP32[i5 >> 2] = i2;
48829 HEAP32[i5 + 8 >> 2] = i1;
48830 HEAP32[i5 + 12 >> 2] = -1;
48831 HEAP32[i5 + 48 >> 2] = 1;
48832 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 28 >> 2] & 127](i2, i5, HEAP32[i3 >> 2] | 0, 1);
48833 if ((HEAP32[i5 + 24 >> 2] | 0) != 1) {
48834 i6 = 0;
48835 STACKTOP = i4;
48836 return i6 | 0;
48837 }
48838 HEAP32[i3 >> 2] = HEAP32[i5 + 16 >> 2];
48839 i6 = 1;
48840 STACKTOP = i4;
48841 return i6 | 0;
48842 }
48843 function __ZNK20btPersistentManifold13getCacheEntryERK15btManifoldPoint(i1, i2) {
48844 i1 = i1 | 0;
48845 i2 = i2 | 0;
48846 var d3 = 0.0, i4 = 0, i5 = 0, d6 = 0.0, d7 = 0.0, d8 = 0.0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, i14 = 0, i15 = 0, i16 = 0;
48847 d3 = +HEAPF32[i1 + 1120 >> 2];
48848 i4 = HEAP32[i1 + 1116 >> 2] | 0;
48849 if ((i4 | 0) <= 0) {
48850 i5 = -1;
48851 return i5 | 0;
48852 }
48853 d6 = +HEAPF32[i2 >> 2];
48854 d7 = +HEAPF32[i2 + 4 >> 2];
48855 d8 = +HEAPF32[i2 + 8 >> 2];
48856 i2 = 0;
48857 i9 = -1;
48858 d10 = d3 * d3;
48859 while (1) {
48860 d3 = +HEAPF32[i1 + 4 + (i2 * 276 | 0) >> 2] - d6;
48861 d11 = +HEAPF32[i1 + 4 + (i2 * 276 | 0) + 4 >> 2] - d7;
48862 d12 = +HEAPF32[i1 + 4 + (i2 * 276 | 0) + 8 >> 2] - d8;
48863 d13 = d3 * d3 + d11 * d11 + d12 * d12;
48864 i14 = d13 < d10;
48865 i15 = i14 ? i2 : i9;
48866 i16 = i2 + 1 | 0;
48867 if ((i16 | 0) < (i4 | 0)) {
48868 i2 = i16;
48869 i9 = i15;
48870 d10 = i14 ? d13 : d10;
48871 } else {
48872 i5 = i15;
48873 break;
48874 }
48875 }
48876 return i5 | 0;
48877 }
48878 function __ZNK13btSphereShape7getAabbERK11btTransformR9btVector3S4_(i1, i2, i3, i4) {
48879 i1 = i1 | 0;
48880 i2 = i2 | 0;
48881 i3 = i3 | 0;
48882 i4 = i4 | 0;
48883 var i5 = 0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, i10 = 0, d11 = 0.0;
48884 i5 = i1;
48885 d6 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i5 >> 2] | 0) + 44 >> 2] & 7](i1);
48886 d7 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i5 >> 2] | 0) + 44 >> 2] & 7](i1);
48887 d8 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i5 >> 2] | 0) + 44 >> 2] & 7](i1);
48888 i1 = i2 + 48 | 0;
48889 i5 = i2 + 52 | 0;
48890 d9 = +HEAPF32[i5 >> 2] - d7;
48891 i10 = i2 + 56 | 0;
48892 d11 = +HEAPF32[i10 >> 2] - d8;
48893 HEAPF32[i3 >> 2] = +HEAPF32[i1 >> 2] - d6;
48894 HEAPF32[i3 + 4 >> 2] = d9;
48895 HEAPF32[i3 + 8 >> 2] = d11;
48896 HEAPF32[i3 + 12 >> 2] = 0.0;
48897 d11 = d7 + +HEAPF32[i5 >> 2];
48898 d7 = d8 + +HEAPF32[i10 >> 2];
48899 HEAPF32[i4 >> 2] = d6 + +HEAPF32[i1 >> 2];
48900 HEAPF32[i4 + 4 >> 2] = d11;
48901 HEAPF32[i4 + 8 >> 2] = d7;
48902 HEAPF32[i4 + 12 >> 2] = 0.0;
48903 return;
48904 }
48905 function __ZN15CProfileManager12Stop_ProfileEv() {
48906 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
48907 i1 = STACKTOP;
48908 STACKTOP = STACKTOP + 8 | 0;
48909 i2 = i1 | 0;
48910 i3 = HEAP32[2966] | 0;
48911 i4 = i3 + 16 | 0;
48912 i5 = (HEAP32[i4 >> 2] | 0) - 1 | 0;
48913 HEAP32[i4 >> 2] = i5;
48914 if ((i5 | 0) != 0) {
48915 STACKTOP = i1;
48916 return;
48917 }
48918 do {
48919 if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
48920 i6 = i3;
48921 } else {
48922 _gettimeofday(i2 | 0, 0) | 0;
48923 i5 = HEAP32[3578] | 0;
48924 i7 = i3 + 8 | 0;
48925 HEAPF32[i7 >> 2] = +(((HEAP32[i2 + 4 >> 2] | 0) - (HEAP32[i5 + 4 >> 2] | 0) + (((HEAP32[i2 >> 2] | 0) - (HEAP32[i5 >> 2] | 0) | 0) * 1e6 | 0) - (HEAP32[i3 + 12 >> 2] | 0) | 0) >>> 0 >>> 0) / 1.0e3 + +HEAPF32[i7 >> 2];
48926 if ((HEAP32[i4 >> 2] | 0) == 0) {
48927 i6 = HEAP32[2966] | 0;
48928 break;
48929 } else {
48930 STACKTOP = i1;
48931 return;
48932 }
48933 }
48934 } while (0);
48935 HEAP32[2966] = HEAP32[i6 + 20 >> 2];
48936 STACKTOP = i1;
48937 return;
48938 }
48939 function __ZN16btDbvtBroadphase12destroyProxyEP17btBroadphaseProxyP12btDispatcher(i1, i2, i3) {
48940 i1 = i1 | 0;
48941 i2 = i2 | 0;
48942 i3 = i3 | 0;
48943 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
48944 i4 = i2 + 60 | 0;
48945 if ((HEAP32[i4 >> 2] | 0) == 2) {
48946 __ZN6btDbvt6removeEP10btDbvtNode(i1 + 44 | 0, HEAP32[i2 + 48 >> 2] | 0);
48947 } else {
48948 __ZN6btDbvt6removeEP10btDbvtNode(i1 + 4 | 0, HEAP32[i2 + 48 >> 2] | 0);
48949 }
48950 i5 = i2 + 52 | 0;
48951 i6 = HEAP32[i5 >> 2] | 0;
48952 i7 = i2 + 56 | 0;
48953 i8 = HEAP32[i7 >> 2] | 0;
48954 if ((i6 | 0) == 0) {
48955 HEAP32[i1 + 84 + (HEAP32[i4 >> 2] << 2) >> 2] = i8;
48956 } else {
48957 HEAP32[i6 + 56 >> 2] = i8;
48958 }
48959 i8 = HEAP32[i7 >> 2] | 0;
48960 if ((i8 | 0) != 0) {
48961 HEAP32[i8 + 52 >> 2] = HEAP32[i5 >> 2];
48962 }
48963 i5 = HEAP32[i1 + 96 >> 2] | 0;
48964 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i5 >> 2] | 0) + 16 >> 2] & 127](i5 | 0, i2, i3);
48965 __Z21btAlignedFreeInternalPv(i2);
48966 HEAP8[i1 + 154 | 0] = 1;
48967 return;
48968 }
48969 function __ZN17btCollisionObjectC2Ev(i1) {
48970 i1 = i1 | 0;
48971 HEAP32[i1 >> 2] = 4168;
48972 HEAPF32[i1 + 164 >> 2] = 1.0;
48973 HEAPF32[i1 + 168 >> 2] = 1.0;
48974 HEAPF32[i1 + 172 >> 2] = 1.0;
48975 HEAPF32[i1 + 176 >> 2] = 0.0;
48976 HEAP32[i1 + 180 >> 2] = 0;
48977 HEAPF32[i1 + 184 >> 2] = 999999984306749400.0;
48978 _memset(i1 + 188 | 0, 0, 16);
48979 HEAP32[i1 + 204 >> 2] = 1;
48980 HEAP32[i1 + 208 >> 2] = -1;
48981 HEAP32[i1 + 212 >> 2] = -1;
48982 HEAP32[i1 + 216 >> 2] = 1;
48983 HEAPF32[i1 + 220 >> 2] = 0.0;
48984 HEAPF32[i1 + 224 >> 2] = .5;
48985 HEAPF32[i1 + 228 >> 2] = 0.0;
48986 HEAP32[i1 + 232 >> 2] = 1;
48987 HEAP32[i1 + 236 >> 2] = 0;
48988 HEAPF32[i1 + 240 >> 2] = 1.0;
48989 HEAPF32[i1 + 244 >> 2] = 0.0;
48990 HEAPF32[i1 + 248 >> 2] = 0.0;
48991 HEAP32[i1 + 252 >> 2] = 0;
48992 HEAPF32[i1 + 4 >> 2] = 1.0;
48993 _memset(i1 + 8 | 0, 0, 16);
48994 HEAPF32[i1 + 24 >> 2] = 1.0;
48995 _memset(i1 + 28 | 0, 0, 16);
48996 HEAPF32[i1 + 44 >> 2] = 1.0;
48997 _memset(i1 + 48 | 0, 0, 20);
48998 return;
48999 }
49000 function __ZNK15btTriangleShape37localGetSupportingVertexWithoutMarginERK9btVector3(i1, i2, i3) {
49001 i1 = i1 | 0;
49002 i2 = i2 | 0;
49003 i3 = i3 | 0;
49004 var d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, i10 = 0;
49005 d4 = +HEAPF32[i3 >> 2];
49006 d5 = +HEAPF32[i3 + 4 >> 2];
49007 d6 = +HEAPF32[i3 + 8 >> 2];
49008 d7 = d4 * +HEAPF32[i2 + 56 >> 2] + d5 * +HEAPF32[i2 + 60 >> 2] + d6 * +HEAPF32[i2 + 64 >> 2];
49009 d8 = d4 * +HEAPF32[i2 + 72 >> 2] + d5 * +HEAPF32[i2 + 76 >> 2] + d6 * +HEAPF32[i2 + 80 >> 2];
49010 d9 = d4 * +HEAPF32[i2 + 88 >> 2] + d5 * +HEAPF32[i2 + 92 >> 2] + d6 * +HEAPF32[i2 + 96 >> 2];
49011 if (d7 < d8) {
49012 i10 = d8 < d9 ? 2 : 1;
49013 } else {
49014 i10 = d7 < d9 ? 2 : 0;
49015 }
49016 i3 = i1;
49017 i1 = i2 + 56 + (i10 << 4) | 0;
49018 HEAP32[i3 >> 2] = HEAP32[i1 >> 2];
49019 HEAP32[i3 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
49020 HEAP32[i3 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
49021 HEAP32[i3 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
49022 return;
49023 }
49024 function __ZN11btRigidBody19removeConstraintRefEP17btTypedConstraint(i1, i2) {
49025 i1 = i1 | 0;
49026 i2 = i2 | 0;
49027 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
49028 i3 = i1 + 480 | 0;
49029 i4 = HEAP32[i3 >> 2] | 0;
49030 i5 = i1 + 488 | 0;
49031 i6 = 0;
49032 while (1) {
49033 if ((i6 | 0) >= (i4 | 0)) {
49034 i7 = i4;
49035 i8 = 1064;
49036 break;
49037 }
49038 i9 = HEAP32[i5 >> 2] | 0;
49039 i10 = i9 + (i6 << 2) | 0;
49040 if ((HEAP32[i10 >> 2] | 0) == (i2 | 0)) {
49041 break;
49042 } else {
49043 i6 = i6 + 1 | 0;
49044 }
49045 }
49046 if ((i8 | 0) == 1064) {
49047 i11 = (i7 | 0) > 0;
49048 i12 = i11 & 1;
49049 i13 = i1 + 252 | 0;
49050 HEAP32[i13 >> 2] = i12;
49051 return;
49052 }
49053 i8 = i4 - 1 | 0;
49054 HEAP32[i10 >> 2] = HEAP32[i9 + (i8 << 2) >> 2];
49055 HEAP32[(HEAP32[i5 >> 2] | 0) + (i8 << 2) >> 2] = i2;
49056 HEAP32[i3 >> 2] = i8;
49057 i7 = i8;
49058 i11 = (i7 | 0) > 0;
49059 i12 = i11 & 1;
49060 i13 = i1 + 252 | 0;
49061 HEAP32[i13 >> 2] = i12;
49062 return;
49063 }
49064 function __ZN35btSequentialImpulseConstraintSolver10solveGroupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAllocP12btDispatcher(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
49065 i1 = i1 | 0;
49066 i2 = i2 | 0;
49067 i3 = i3 | 0;
49068 i4 = i4 | 0;
49069 i5 = i5 | 0;
49070 i6 = i6 | 0;
49071 i7 = i7 | 0;
49072 i8 = i8 | 0;
49073 i9 = i9 | 0;
49074 i10 = i10 | 0;
49075 i11 = i11 | 0;
49076 __ZN15CProfileManager13Start_ProfileEPKc(584);
49077 i11 = i1;
49078 +FUNCTION_TABLE_fiiiiiiiiii[HEAP32[(HEAP32[i11 >> 2] | 0) + 32 >> 2] & 7](i1, i2, i3, i4, i5, i6, i7, i8, i9, i10);
49079 +FUNCTION_TABLE_fiiiiiiiiii[HEAP32[(HEAP32[i11 >> 2] | 0) + 36 >> 2] & 7](i1, i2, i3, i4, i5, i6, i7, i8, i9, i10);
49080 +FUNCTION_TABLE_fiiiiiiiiii[HEAP32[(HEAP32[i11 >> 2] | 0) + 28 >> 2] & 7](i1, i2, i3, i4, i5, i6, i7, i8, i9, i10);
49081 __ZN15CProfileManager12Stop_ProfileEv();
49082 return +0.0;
49083 }
49084 function __ZN23btDiscreteDynamicsWorld25predictUnconstraintMotionEf(i1, d2) {
49085 i1 = i1 | 0;
49086 d2 = +d2;
49087 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
49088 __ZN15CProfileManager13Start_ProfileEPKc(848);
49089 i3 = i1 + 204 | 0;
49090 i4 = HEAP32[i3 >> 2] | 0;
49091 if ((i4 | 0) <= 0) {
49092 __ZN15CProfileManager12Stop_ProfileEv();
49093 return;
49094 }
49095 i5 = i1 + 212 | 0;
49096 i1 = 0;
49097 i6 = i4;
49098 while (1) {
49099 i4 = HEAP32[(HEAP32[i5 >> 2] | 0) + (i1 << 2) >> 2] | 0;
49100 if ((HEAP32[i4 + 204 >> 2] & 3 | 0) == 0) {
49101 __ZN11btRigidBody19integrateVelocitiesEf(i4, d2);
49102 __ZN11btRigidBody12applyDampingEf(i4, d2);
49103 __ZN11btRigidBody26predictIntegratedTransformEfR11btTransform(i4, d2, i4 + 68 | 0);
49104 i7 = HEAP32[i3 >> 2] | 0;
49105 } else {
49106 i7 = i6;
49107 }
49108 i4 = i1 + 1 | 0;
49109 if ((i4 | 0) < (i7 | 0)) {
49110 i1 = i4;
49111 i6 = i7;
49112 } else {
49113 break;
49114 }
49115 }
49116 __ZN15CProfileManager12Stop_ProfileEv();
49117 return;
49118 }
49119 function __ZN33btConvexConcaveCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b(i1, i2, i3, i4, i5) {
49120 i1 = i1 | 0;
49121 i2 = i2 | 0;
49122 i3 = i3 | 0;
49123 i4 = i4 | 0;
49124 i5 = i5 | 0;
49125 var i6 = 0, i7 = 0, i8 = 0;
49126 __ZN30btActivatingCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1 | 0, i2, i3, i4);
49127 HEAP32[i1 >> 2] = 2528;
49128 HEAP8[i1 + 8 | 0] = i5 & 1;
49129 i6 = HEAP32[i2 >> 2] | 0;
49130 HEAP32[i1 + 12 >> 2] = 3104;
49131 i2 = i1 + 60 | 0;
49132 HEAP32[i2 >> 2] = i6;
49133 HEAP32[i1 + 64 >> 2] = 0;
49134 i7 = i5 ? i4 : i3;
49135 HEAP32[i1 + 16 >> 2] = i7;
49136 i8 = i5 ? i3 : i4;
49137 HEAP32[i1 + 20 >> 2] = i8;
49138 i4 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] & 31](i6, i7, i8) | 0;
49139 HEAP32[i1 + 76 >> 2] = i4;
49140 i1 = HEAP32[i2 >> 2] | 0;
49141 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 20 >> 2] & 127](i1, i4);
49142 return;
49143 }
49144 function __ZN25btSimulationIslandManager21updateActivationStateEP16btCollisionWorldP12btDispatcher(i1, i2, i3) {
49145 i1 = i1 | 0;
49146 i2 = i2 | 0;
49147 i3 = i3 | 0;
49148 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
49149 i3 = i2 + 8 | 0;
49150 if ((HEAP32[i3 >> 2] | 0) > 0) {
49151 i4 = HEAP32[i2 + 16 >> 2] | 0;
49152 i5 = 0;
49153 i6 = 0;
49154 while (1) {
49155 i7 = HEAP32[i4 + (i5 << 2) >> 2] | 0;
49156 if ((HEAP32[i7 + 204 >> 2] & 3 | 0) == 0) {
49157 HEAP32[i7 + 208 >> 2] = i6;
49158 i8 = i6 + 1 | 0;
49159 } else {
49160 i8 = i6;
49161 }
49162 HEAP32[i7 + 212 >> 2] = -1;
49163 HEAPF32[i7 + 240 >> 2] = 1.0;
49164 i7 = i5 + 1 | 0;
49165 if ((i7 | 0) < (HEAP32[i3 >> 2] | 0)) {
49166 i5 = i7;
49167 i6 = i8;
49168 } else {
49169 i9 = i8;
49170 break;
49171 }
49172 }
49173 } else {
49174 i9 = 0;
49175 }
49176 __ZN11btUnionFind5resetEi(i1 + 4 | 0, i9);
49177 __ZN25btSimulationIslandManager10findUnionsEP12btDispatcherP16btCollisionWorld(i1, 0, i2);
49178 return;
49179 }
49180 function __ZNK10btBoxShape24localGetSupportingVertexERK9btVector3(i1, i2, i3) {
49181 i1 = i1 | 0;
49182 i2 = i2 | 0;
49183 i3 = i3 | 0;
49184 var d4 = 0.0, d5 = 0.0, d6 = 0.0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, d11 = 0.0;
49185 d4 = +HEAPF32[i2 + 28 >> 2];
49186 d5 = +HEAPF32[i2 + 32 >> 2];
49187 d6 = +HEAPF32[i2 + 36 >> 2];
49188 i7 = i2 | 0;
49189 i8 = i2;
49190 d9 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7);
49191 d10 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7);
49192 d11 = d4 + d9;
49193 d9 = d5 + d10;
49194 d10 = d6 + +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7);
49195 d6 = +HEAPF32[i3 + 4 >> 2] >= 0.0 ? d9 : -0.0 - d9;
49196 d9 = +HEAPF32[i3 + 8 >> 2] >= 0.0 ? d10 : -0.0 - d10;
49197 HEAPF32[i1 >> 2] = +HEAPF32[i3 >> 2] >= 0.0 ? d11 : -0.0 - d11;
49198 HEAPF32[i1 + 4 >> 2] = d6;
49199 HEAPF32[i1 + 8 >> 2] = d9;
49200 HEAPF32[i1 + 12 >> 2] = 0.0;
49201 return;
49202 }
49203 function __ZNK10btBoxShape9getVertexEiR9btVector3(i1, i2, i3) {
49204 i1 = i1 | 0;
49205 i2 = i2 | 0;
49206 i3 = i3 | 0;
49207 var d4 = 0.0, d5 = 0.0, d6 = 0.0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, d11 = 0.0;
49208 d4 = +HEAPF32[i1 + 28 >> 2];
49209 d5 = +HEAPF32[i1 + 32 >> 2];
49210 d6 = +HEAPF32[i1 + 36 >> 2];
49211 i7 = i1 | 0;
49212 i8 = i1;
49213 d9 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7);
49214 d10 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7);
49215 d11 = d4 + d9;
49216 d9 = d5 + d10;
49217 d10 = d6 + +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7);
49218 i7 = i2 & 1;
49219 i8 = i2 >>> 1 & 1;
49220 i1 = i2 >>> 2 & 1;
49221 HEAPF32[i3 >> 2] = +(i7 ^ 1 | 0) * d11 - +(i7 | 0) * d11;
49222 HEAPF32[i3 + 4 >> 2] = +(i8 ^ 1 | 0) * d9 - +(i8 | 0) * d9;
49223 HEAPF32[i3 + 8 >> 2] = +(i1 ^ 1 | 0) * d10 - +(i1 | 0) * d10;
49224 HEAPF32[i3 + 12 >> 2] = 0.0;
49225 return;
49226 }
49227 function __ZNK10btBoxShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(i1, i2, i3, i4) {
49228 i1 = i1 | 0;
49229 i2 = i2 | 0;
49230 i3 = i3 | 0;
49231 i4 = i4 | 0;
49232 var i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0;
49233 if ((i4 | 0) <= 0) {
49234 return;
49235 }
49236 i5 = i1 + 28 | 0;
49237 i6 = i1 + 32 | 0;
49238 i7 = i1 + 36 | 0;
49239 i1 = 0;
49240 do {
49241 d8 = +HEAPF32[i5 >> 2];
49242 d9 = +HEAPF32[i6 >> 2];
49243 d10 = +HEAPF32[i2 + (i1 << 4) + 4 >> 2] >= 0.0 ? d9 : -0.0 - d9;
49244 d9 = +HEAPF32[i7 >> 2];
49245 d11 = +HEAPF32[i2 + (i1 << 4) + 8 >> 2] >= 0.0 ? d9 : -0.0 - d9;
49246 HEAPF32[i3 + (i1 << 4) >> 2] = +HEAPF32[i2 + (i1 << 4) >> 2] >= 0.0 ? d8 : -0.0 - d8;
49247 HEAPF32[i3 + (i1 << 4) + 4 >> 2] = d10;
49248 HEAPF32[i3 + (i1 << 4) + 8 >> 2] = d11;
49249 HEAPF32[i3 + (i1 << 4) + 12 >> 2] = 0.0;
49250 i1 = i1 + 1 | 0;
49251 } while ((i1 | 0) < (i4 | 0));
49252 return;
49253 }
49254 function __ZN23btDiscreteDynamicsWorld18saveKinematicStateEf(i1, d2) {
49255 i1 = i1 | 0;
49256 d2 = +d2;
49257 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
49258 i3 = i1 + 8 | 0;
49259 i4 = HEAP32[i3 >> 2] | 0;
49260 if ((i4 | 0) <= 0) {
49261 return;
49262 }
49263 i5 = i1 + 16 | 0;
49264 i1 = 0;
49265 i6 = i4;
49266 while (1) {
49267 i4 = HEAP32[(HEAP32[i5 >> 2] | 0) + (i1 << 2) >> 2] | 0;
49268 do {
49269 if ((HEAP32[i4 + 232 >> 2] & 2 | 0) == 0) {
49270 i7 = i6;
49271 } else {
49272 if ((i4 | 0) == 0) {
49273 i7 = i6;
49274 break;
49275 }
49276 if ((HEAP32[i4 + 216 >> 2] | 0) == 2) {
49277 i7 = i6;
49278 break;
49279 }
49280 if ((HEAP32[i4 + 204 >> 2] & 2 | 0) == 0) {
49281 i7 = i6;
49282 break;
49283 }
49284 __ZN11btRigidBody18saveKinematicStateEf(i4, d2);
49285 i7 = HEAP32[i3 >> 2] | 0;
49286 }
49287 } while (0);
49288 i4 = i1 + 1 | 0;
49289 if ((i4 | 0) < (i7 | 0)) {
49290 i1 = i4;
49291 i6 = i7;
49292 } else {
49293 break;
49294 }
49295 }
49296 return;
49297 }
49298 function __ZN23btDiscreteDynamicsWorld16removeConstraintEP17btTypedConstraint(i1, i2) {
49299 i1 = i1 | 0;
49300 i2 = i2 | 0;
49301 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
49302 i3 = i1 + 184 | 0;
49303 i4 = HEAP32[i3 >> 2] | 0;
49304 i5 = i1 + 192 | 0;
49305 i1 = 0;
49306 while (1) {
49307 if ((i1 | 0) >= (i4 | 0)) {
49308 break;
49309 }
49310 i6 = HEAP32[i5 >> 2] | 0;
49311 i7 = i6 + (i1 << 2) | 0;
49312 if ((HEAP32[i7 >> 2] | 0) == (i2 | 0)) {
49313 i8 = 512;
49314 break;
49315 } else {
49316 i1 = i1 + 1 | 0;
49317 }
49318 }
49319 if ((i8 | 0) == 512) {
49320 i8 = i4 - 1 | 0;
49321 HEAP32[i7 >> 2] = HEAP32[i6 + (i8 << 2) >> 2];
49322 HEAP32[(HEAP32[i5 >> 2] | 0) + (i8 << 2) >> 2] = i2;
49323 HEAP32[i3 >> 2] = i8;
49324 }
49325 __ZN11btRigidBody19removeConstraintRefEP17btTypedConstraint(HEAP32[i2 + 24 >> 2] | 0, i2);
49326 __ZN11btRigidBody19removeConstraintRefEP17btTypedConstraint(HEAP32[i2 + 28 >> 2] | 0, i2);
49327 return;
49328 }
49329 function __ZN17btGjkPairDetectorC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i1, i2, i3, i4, i5) {
49330 i1 = i1 | 0;
49331 i2 = i2 | 0;
49332 i3 = i3 | 0;
49333 i4 = i4 | 0;
49334 i5 = i5 | 0;
49335 HEAP32[i1 >> 2] = 4136;
49336 HEAPF32[i1 + 4 >> 2] = 0.0;
49337 HEAPF32[i1 + 8 >> 2] = 1.0;
49338 HEAPF32[i1 + 12 >> 2] = 0.0;
49339 HEAPF32[i1 + 16 >> 2] = 0.0;
49340 HEAP32[i1 + 20 >> 2] = i5;
49341 HEAP32[i1 + 24 >> 2] = i4;
49342 HEAP32[i1 + 28 >> 2] = i2;
49343 HEAP32[i1 + 32 >> 2] = i3;
49344 HEAP32[i1 + 36 >> 2] = HEAP32[i2 + 4 >> 2];
49345 HEAP32[i1 + 40 >> 2] = HEAP32[i3 + 4 >> 2];
49346 HEAPF32[i1 + 44 >> 2] = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i2 >> 2] | 0) + 44 >> 2] & 7](i2);
49347 HEAPF32[i1 + 48 >> 2] = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i3 >> 2] | 0) + 44 >> 2] & 7](i3);
49348 HEAP8[i1 + 52 | 0] = 0;
49349 HEAP32[i1 + 60 >> 2] = -1;
49350 HEAP32[i1 + 72 >> 2] = 1;
49351 return;
49352 }
49353 function __ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i1, d2, i3) {
49354 i1 = i1 | 0;
49355 d2 = +d2;
49356 i3 = i3 | 0;
49357 var d4 = 0.0, d5 = 0.0, d6 = 0.0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, d11 = 0.0;
49358 d4 = +HEAPF32[i1 + 28 >> 2];
49359 d5 = +HEAPF32[i1 + 32 >> 2];
49360 d6 = +HEAPF32[i1 + 36 >> 2];
49361 i7 = i1 | 0;
49362 i8 = i1;
49363 d9 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7);
49364 d10 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7);
49365 d11 = (d4 + d9) * 2.0;
49366 d9 = (d5 + d10) * 2.0;
49367 d10 = (d6 + +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7)) * 2.0;
49368 d6 = d2 / 12.0;
49369 d2 = d9 * d9;
49370 d9 = d10 * d10;
49371 d10 = d11 * d11;
49372 HEAPF32[i3 >> 2] = d6 * (d2 + d9);
49373 HEAPF32[i3 + 4 >> 2] = d6 * (d10 + d9);
49374 HEAPF32[i3 + 8 >> 2] = d6 * (d10 + d2);
49375 HEAPF32[i3 + 12 >> 2] = 0.0;
49376 return;
49377 }
49378 function __ZNK13btSphereShape24localGetSupportingVertexERK9btVector3(i1, i2, i3) {
49379 i1 = i1 | 0;
49380 i2 = i2 | 0;
49381 i3 = i3 | 0;
49382 var d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0;
49383 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i2 >> 2] | 0) + 64 >> 2] & 127](i1, i2, i3);
49384 d4 = +HEAPF32[i3 >> 2];
49385 d5 = +HEAPF32[i3 + 4 >> 2];
49386 d6 = +HEAPF32[i3 + 8 >> 2];
49387 i3 = d4 * d4 + d5 * d5 + d6 * d6 < 1.4210854715202004e-14;
49388 d7 = i3 ? -1.0 : d6;
49389 d6 = i3 ? -1.0 : d5;
49390 d5 = i3 ? -1.0 : d4;
49391 d4 = 1.0 / +Math_sqrt(+(d7 * d7 + (d5 * d5 + d6 * d6)));
49392 d8 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i2 >> 2] | 0) + 44 >> 2] & 7](i2);
49393 i2 = i1 | 0;
49394 HEAPF32[i2 >> 2] = d4 * d5 * d8 + +HEAPF32[i2 >> 2];
49395 i2 = i1 + 4 | 0;
49396 HEAPF32[i2 >> 2] = d8 * d4 * d6 + +HEAPF32[i2 >> 2];
49397 i2 = i1 + 8 | 0;
49398 HEAPF32[i2 >> 2] = d8 * d4 * d7 + +HEAPF32[i2 >> 2];
49399 return;
49400 }
49401 function __ZN20btPersistentManifold16addManifoldPointERK15btManifoldPoint(i1, i2) {
49402 i1 = i1 | 0;
49403 i2 = i2 | 0;
49404 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
49405 i3 = i1 + 1116 | 0;
49406 i4 = HEAP32[i3 >> 2] | 0;
49407 do {
49408 if ((i4 | 0) == 4) {
49409 i5 = __ZN20btPersistentManifold16sortCachedPointsERK15btManifoldPoint(i1, i2) | 0;
49410 i6 = i1 + 4 + (i5 * 276 | 0) + 108 | 0;
49411 i7 = HEAP32[i6 >> 2] | 0;
49412 if ((i7 | 0) == 0) {
49413 i8 = i5;
49414 break;
49415 }
49416 i9 = HEAP32[3008] | 0;
49417 if ((i9 | 0) == 0) {
49418 i8 = i5;
49419 break;
49420 }
49421 FUNCTION_TABLE_ii[i9 & 127](i7) | 0;
49422 HEAP32[i6 >> 2] = 0;
49423 i8 = i5;
49424 } else {
49425 HEAP32[i3 >> 2] = i4 + 1;
49426 i8 = i4;
49427 }
49428 } while (0);
49429 i4 = (i8 | 0) < 0 ? 0 : i8;
49430 i8 = i1 + 4 + (i4 * 276 | 0) | 0;
49431 i1 = i2;
49432 _memcpy(i8 | 0, i1 | 0, 276) | 0;
49433 return i4 | 0;
49434 }
49435 function __ZN11btRigidBody24checkCollideWithOverrideEP17btCollisionObject(i1, i2) {
49436 i1 = i1 | 0;
49437 i2 = i2 | 0;
49438 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
49439 if ((HEAP32[i2 + 232 >> 2] & 2 | 0) == 0) {
49440 i3 = 1;
49441 return i3 | 0;
49442 }
49443 i4 = i2;
49444 i2 = i1 + 488 | 0;
49445 i5 = HEAP32[i1 + 480 >> 2] | 0;
49446 i1 = 0;
49447 while (1) {
49448 if ((i1 | 0) >= (i5 | 0)) {
49449 i3 = 1;
49450 i6 = 1054;
49451 break;
49452 }
49453 i7 = HEAP32[(HEAP32[i2 >> 2] | 0) + (i1 << 2) >> 2] | 0;
49454 if ((HEAP32[i7 + 24 >> 2] | 0) == (i4 | 0)) {
49455 i3 = 0;
49456 i6 = 1055;
49457 break;
49458 }
49459 if ((HEAP32[i7 + 28 >> 2] | 0) == (i4 | 0)) {
49460 i3 = 0;
49461 i6 = 1057;
49462 break;
49463 } else {
49464 i1 = i1 + 1 | 0;
49465 }
49466 }
49467 if ((i6 | 0) == 1054) {
49468 return i3 | 0;
49469 } else if ((i6 | 0) == 1055) {
49470 return i3 | 0;
49471 } else if ((i6 | 0) == 1057) {
49472 return i3 | 0;
49473 }
49474 return 0;
49475 }
49476 function __ZN26btBoxBoxCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_(i1, i2, i3, i4, i5) {
49477 i1 = i1 | 0;
49478 i2 = i2 | 0;
49479 i3 = i3 | 0;
49480 i4 = i4 | 0;
49481 i5 = i5 | 0;
49482 var i6 = 0;
49483 __ZN30btActivatingCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1 | 0, i3, i4, i5);
49484 HEAP32[i1 >> 2] = 2960;
49485 i3 = i1 + 8 | 0;
49486 HEAP8[i3] = 0;
49487 i6 = i1 + 12 | 0;
49488 HEAP32[i6 >> 2] = i2;
49489 if ((i2 | 0) != 0) {
49490 return;
49491 }
49492 i2 = i1 + 4 | 0;
49493 i1 = HEAP32[i2 >> 2] | 0;
49494 if (!(FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 24 >> 2] & 31](i1, i4, i5) | 0)) {
49495 return;
49496 }
49497 i1 = HEAP32[i2 >> 2] | 0;
49498 HEAP32[i6 >> 2] = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] & 31](i1, i4, i5) | 0;
49499 HEAP8[i3] = 1;
49500 return;
49501 }
49502 function __ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi(i1, i2, i3, i4) {
49503 i1 = i1 | 0;
49504 i2 = i2 | 0;
49505 i3 = i3 | 0;
49506 i4 = i4 | 0;
49507 var i5 = 0;
49508 if ((i1 | 0) != (HEAP32[i2 + 8 >> 2] | 0)) {
49509 i5 = HEAP32[i1 + 8 >> 2] | 0;
49510 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i5 >> 2] | 0) + 28 >> 2] & 127](i5, i2, i3, i4);
49511 return;
49512 }
49513 i5 = i2 + 16 | 0;
49514 i1 = HEAP32[i5 >> 2] | 0;
49515 if ((i1 | 0) == 0) {
49516 HEAP32[i5 >> 2] = i3;
49517 HEAP32[i2 + 24 >> 2] = i4;
49518 HEAP32[i2 + 36 >> 2] = 1;
49519 return;
49520 }
49521 if ((i1 | 0) != (i3 | 0)) {
49522 i3 = i2 + 36 | 0;
49523 HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 1;
49524 HEAP32[i2 + 24 >> 2] = 2;
49525 HEAP8[i2 + 54 | 0] = 1;
49526 return;
49527 }
49528 i3 = i2 + 24 | 0;
49529 if ((HEAP32[i3 >> 2] | 0) != 2) {
49530 return;
49531 }
49532 HEAP32[i3 >> 2] = i4;
49533 return;
49534 }
49535 function __ZN28btHashedOverlappingPairCache18addOverlappingPairEP17btBroadphaseProxyS1_(i1, i2, i3) {
49536 i1 = i1 | 0;
49537 i2 = i2 | 0;
49538 i3 = i3 | 0;
49539 var i4 = 0, i5 = 0;
49540 HEAP32[3012] = (HEAP32[3012] | 0) + 1;
49541 i4 = HEAP32[i1 + 24 >> 2] | 0;
49542 do {
49543 if ((i4 | 0) == 0) {
49544 if ((HEAP16[i3 + 6 >> 1] & HEAP16[i2 + 4 >> 1]) << 16 >> 16 == 0) {
49545 i5 = 0;
49546 return i5 | 0;
49547 }
49548 if ((HEAP16[i2 + 6 >> 1] & HEAP16[i3 + 4 >> 1]) << 16 >> 16 == 0) {
49549 i5 = 0;
49550 } else {
49551 break;
49552 }
49553 return i5 | 0;
49554 } else {
49555 if (FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] & 31](i4, i2, i3) | 0) {
49556 break;
49557 } else {
49558 i5 = 0;
49559 }
49560 return i5 | 0;
49561 }
49562 } while (0);
49563 i5 = __ZN28btHashedOverlappingPairCache15internalAddPairEP17btBroadphaseProxyS1_(i1, i2, i3) | 0;
49564 return i5 | 0;
49565 }
49566 function __ZN6btDbvt6updateEP10btDbvtNodeR12btDbvtAabbMm(i1, i2, i3) {
49567 i1 = i1 | 0;
49568 i2 = i2 | 0;
49569 i3 = i3 | 0;
49570 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
49571 i4 = __ZL10removeleafP6btDbvtP10btDbvtNode(i1, i2) | 0;
49572 L2369 : do {
49573 if ((i4 | 0) == 0) {
49574 i5 = 0;
49575 } else {
49576 i6 = HEAP32[i1 + 8 >> 2] | 0;
49577 if ((i6 | 0) > -1) {
49578 i7 = 0;
49579 i8 = i4;
49580 } else {
49581 i5 = HEAP32[i1 >> 2] | 0;
49582 break;
49583 }
49584 while (1) {
49585 if ((i7 | 0) >= (i6 | 0)) {
49586 i5 = i8;
49587 break L2369;
49588 }
49589 i9 = HEAP32[i8 + 32 >> 2] | 0;
49590 if ((i9 | 0) == 0) {
49591 i5 = i8;
49592 break;
49593 } else {
49594 i7 = i7 + 1 | 0;
49595 i8 = i9;
49596 }
49597 }
49598 }
49599 } while (0);
49600 i8 = i2;
49601 i7 = i3;
49602 _memcpy(i8 | 0, i7 | 0, 32) | 0;
49603 __ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i1, i5, i2);
49604 return;
49605 }
49606 function __ZN15CProfileManager5ResetEv() {
49607 var i1 = 0, i2 = 0, i3 = 0, i4 = 0;
49608 i1 = STACKTOP;
49609 STACKTOP = STACKTOP + 16 | 0;
49610 i2 = i1 | 0;
49611 i3 = i1 + 8 | 0;
49612 _gettimeofday(HEAP32[3578] | 0, 0) | 0;
49613 __ZN12CProfileNode5ResetEv(14256);
49614 HEAP32[3565] = (HEAP32[3565] | 0) + 1;
49615 i4 = HEAP32[3568] | 0;
49616 HEAP32[3568] = i4 + 1;
49617 if ((i4 | 0) == 0) {
49618 _gettimeofday(i3 | 0, 0) | 0;
49619 i4 = HEAP32[3578] | 0;
49620 HEAP32[3567] = (HEAP32[i3 + 4 >> 2] | 0) - (HEAP32[i4 + 4 >> 2] | 0) + (((HEAP32[i3 >> 2] | 0) - (HEAP32[i4 >> 2] | 0) | 0) * 1e6 | 0);
49621 }
49622 HEAP32[3572] = 0;
49623 _gettimeofday(i2 | 0, 0) | 0;
49624 i4 = HEAP32[3578] | 0;
49625 HEAP32[3562] = (HEAP32[i2 + 4 >> 2] | 0) - (HEAP32[i4 + 4 >> 2] | 0) + (((HEAP32[i2 >> 2] | 0) - (HEAP32[i4 >> 2] | 0) | 0) * 1e6 | 0);
49626 STACKTOP = i1;
49627 return;
49628 }
49629 function __ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResult15addContactPointERKS8_SG_f(i1, i2, i3, d4) {
49630 i1 = i1 | 0;
49631 i2 = i2 | 0;
49632 i3 = i3 | 0;
49633 d4 = +d4;
49634 var i5 = 0, i6 = 0;
49635 i5 = i1 + 4 | 0;
49636 i6 = i2;
49637 HEAP32[i5 >> 2] = HEAP32[i6 >> 2];
49638 HEAP32[i5 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
49639 HEAP32[i5 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
49640 HEAP32[i5 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
49641 i6 = i1 + 20 | 0;
49642 i5 = i3;
49643 HEAP32[i6 >> 2] = HEAP32[i5 >> 2];
49644 HEAP32[i6 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
49645 HEAP32[i6 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
49646 HEAP32[i6 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
49647 HEAPF32[i1 + 36 >> 2] = d4;
49648 HEAP8[i1 + 40 | 0] = 1;
49649 return;
49650 }
49651 function __ZN35btSequentialImpulseConstraintSolverC2Ev(i1) {
49652 i1 = i1 | 0;
49653 HEAP32[i1 >> 2] = 2368;
49654 HEAP8[i1 + 20 | 0] = 1;
49655 HEAP32[i1 + 16 >> 2] = 0;
49656 HEAP32[i1 + 8 >> 2] = 0;
49657 HEAP32[i1 + 12 >> 2] = 0;
49658 HEAP8[i1 + 40 | 0] = 1;
49659 HEAP32[i1 + 36 >> 2] = 0;
49660 HEAP32[i1 + 28 >> 2] = 0;
49661 HEAP32[i1 + 32 >> 2] = 0;
49662 HEAP8[i1 + 60 | 0] = 1;
49663 HEAP32[i1 + 56 >> 2] = 0;
49664 HEAP32[i1 + 48 >> 2] = 0;
49665 HEAP32[i1 + 52 >> 2] = 0;
49666 HEAP8[i1 + 80 | 0] = 1;
49667 HEAP32[i1 + 76 >> 2] = 0;
49668 HEAP32[i1 + 68 >> 2] = 0;
49669 HEAP32[i1 + 72 >> 2] = 0;
49670 HEAP8[i1 + 100 | 0] = 1;
49671 HEAP32[i1 + 96 >> 2] = 0;
49672 HEAP32[i1 + 88 >> 2] = 0;
49673 HEAP32[i1 + 92 >> 2] = 0;
49674 HEAP8[i1 + 120 | 0] = 1;
49675 HEAP32[i1 + 116 >> 2] = 0;
49676 HEAP32[i1 + 108 >> 2] = 0;
49677 HEAP32[i1 + 112 >> 2] = 0;
49678 HEAP32[i1 + 124 >> 2] = 0;
49679 return;
49680 }
49681 function __ZN16btDbvtBroadphase7rayTestERK9btVector3S2_R23btBroadphaseRayCallbackS2_S2_(i1, i2, i3, i4, i5, i6) {
49682 i1 = i1 | 0;
49683 i2 = i2 | 0;
49684 i3 = i3 | 0;
49685 i4 = i4 | 0;
49686 i5 = i5 | 0;
49687 i6 = i6 | 0;
49688 var i7 = 0, i8 = 0, i9 = 0, i10 = 0;
49689 i3 = STACKTOP;
49690 STACKTOP = STACKTOP + 8 | 0;
49691 i7 = i3 | 0;
49692 HEAP32[i7 >> 2] = 4016;
49693 HEAP32[i7 + 4 >> 2] = i4;
49694 i8 = i4 + 4 | 0;
49695 i9 = i4 + 20 | 0;
49696 i10 = i4 + 32 | 0;
49697 i4 = i7 | 0;
49698 __ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(0, HEAP32[i1 + 4 >> 2] | 0, i2, 0, i8, i9, +HEAPF32[i10 >> 2], i5, i6, i4);
49699 __ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(0, HEAP32[i1 + 44 >> 2] | 0, i2, 0, i8, i9, +HEAPF32[i10 >> 2], i5, i6, i4);
49700 STACKTOP = i3;
49701 return;
49702 }
49703 function ___remdi3(i1, i2, i3, i4) {
49704 i1 = i1 | 0;
49705 i2 = i2 | 0;
49706 i3 = i3 | 0;
49707 i4 = i4 | 0;
49708 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
49709 i5 = STACKTOP;
49710 STACKTOP = STACKTOP + 8 | 0;
49711 i6 = i5 | 0;
49712 i7 = i2 >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1;
49713 i8 = ((i2 | 0) < 0 ? -1 : 0) >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1;
49714 i9 = i4 >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
49715 i10 = ((i4 | 0) < 0 ? -1 : 0) >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
49716 i11 = _i64Subtract(i7 ^ i1, i8 ^ i2, i7, i8) | 0;
49717 i2 = tempRet0;
49718 i1 = _i64Subtract(i9 ^ i3, i10 ^ i4, i9, i10) | 0;
49719 ___udivmoddi4(i11, i2, i1, tempRet0, i6) | 0;
49720 i1 = _i64Subtract(HEAP32[i6 >> 2] ^ i7, HEAP32[i6 + 4 >> 2] ^ i8, i7, i8) | 0;
49721 i8 = tempRet0;
49722 STACKTOP = i5;
49723 return (tempRet0 = i8, i1) | 0;
49724 }
49725 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdder15addSingleResultE_1RNS_17LocalConvexResultEb(i1, i2, i3) {
49726 i1 = i1 | 0;
49727 i2 = i2 | 0;
49728 i3 = i3 | 0;
49729 var i4 = 0, i5 = 0, i6 = 0, d7 = 0.0;
49730 i4 = STACKTOP;
49731 STACKTOP = STACKTOP + 8 | 0;
49732 i5 = i4 | 0;
49733 HEAP32[i5 >> 2] = -1;
49734 HEAP32[i5 + 4 >> 2] = HEAP32[i1 + 16 >> 2];
49735 i6 = i2 + 4 | 0;
49736 if ((HEAP32[i6 >> 2] | 0) == 0) {
49737 HEAP32[i6 >> 2] = i5;
49738 }
49739 i5 = i1 + 12 | 0;
49740 i6 = HEAP32[i5 >> 2] | 0;
49741 d7 = +FUNCTION_TABLE_fiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] & 15](i6, i2, i3);
49742 HEAPF32[i1 + 4 >> 2] = +HEAPF32[(HEAP32[i5 >> 2] | 0) + 4 >> 2];
49743 STACKTOP = i4;
49744 return +d7;
49745 }
49746 function __ZN28btCompoundCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b(i1, i2, i3, i4, i5) {
49747 i1 = i1 | 0;
49748 i2 = i2 | 0;
49749 i3 = i3 | 0;
49750 i4 = i4 | 0;
49751 i5 = i5 | 0;
49752 __ZN30btActivatingCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1 | 0, i2, i3, i4);
49753 HEAP32[i1 >> 2] = 2888;
49754 HEAP8[i1 + 24 | 0] = 1;
49755 HEAP32[i1 + 20 >> 2] = 0;
49756 HEAP32[i1 + 12 >> 2] = 0;
49757 HEAP32[i1 + 16 >> 2] = 0;
49758 HEAP8[i1 + 28 | 0] = i5 & 1;
49759 HEAP32[i1 + 32 >> 2] = HEAP32[i2 + 4 >> 2];
49760 HEAP8[i1 + 36 | 0] = 0;
49761 HEAP32[i1 + 40 >> 2] = HEAP32[(HEAP32[(i5 ? i4 : i3) + 192 >> 2] | 0) + 68 >> 2];
49762 __ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(i1, i3, i4);
49763 return;
49764 }
49765 function __ZN25btSimulationIslandManagerD2Ev(i1) {
49766 i1 = i1 | 0;
49767 var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
49768 HEAP32[i1 >> 2] = 3032;
49769 i2 = i1 + 48 | 0;
49770 i3 = i1 + 56 | 0;
49771 i4 = HEAP32[i3 >> 2] | 0;
49772 i5 = i1 + 60 | 0;
49773 if ((i4 | 0) != 0) {
49774 if ((HEAP8[i5] | 0) != 0) {
49775 __Z21btAlignedFreeInternalPv(i4);
49776 }
49777 HEAP32[i3 >> 2] = 0;
49778 }
49779 HEAP8[i5] = 1;
49780 HEAP32[i3 >> 2] = 0;
49781 HEAP32[i2 >> 2] = 0;
49782 HEAP32[i1 + 52 >> 2] = 0;
49783 i2 = i1 + 28 | 0;
49784 i3 = i1 + 36 | 0;
49785 i5 = HEAP32[i3 >> 2] | 0;
49786 i4 = i1 + 40 | 0;
49787 if ((i5 | 0) != 0) {
49788 if ((HEAP8[i4] | 0) != 0) {
49789 __Z21btAlignedFreeInternalPv(i5);
49790 }
49791 HEAP32[i3 >> 2] = 0;
49792 }
49793 HEAP8[i4] = 1;
49794 HEAP32[i3 >> 2] = 0;
49795 HEAP32[i2 >> 2] = 0;
49796 HEAP32[i1 + 32 >> 2] = 0;
49797 __ZN11btUnionFindD2Ev(i1 + 4 | 0);
49798 return;
49799 }
49800 function __ZN21btSingleSweepCallback7processEPK17btBroadphaseProxy(i1, i2) {
49801 i1 = i1 | 0;
49802 i2 = i2 | 0;
49803 var i3 = 0, i4 = 0, i5 = 0, i6 = 0;
49804 i3 = i1 + 184 | 0;
49805 i4 = HEAP32[i3 >> 2] | 0;
49806 if (+HEAPF32[i4 + 4 >> 2] == 0.0) {
49807 i5 = 0;
49808 return i5 | 0;
49809 }
49810 i6 = HEAP32[i2 >> 2] | 0;
49811 if (!(FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] & 63](i4, HEAP32[i6 + 188 >> 2] | 0) | 0)) {
49812 i5 = 1;
49813 return i5 | 0;
49814 }
49815 __ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(HEAP32[i1 + 192 >> 2] | 0, i1 + 36 | 0, i1 + 100 | 0, i6, HEAP32[i6 + 192 >> 2] | 0, i6 + 4 | 0, HEAP32[i3 >> 2] | 0, +HEAPF32[i1 + 188 >> 2]);
49816 i5 = 1;
49817 return i5 | 0;
49818 }
49819 function __ZN17btGjkPairDetectorC2EPK13btConvexShapeS2_iiffP22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i1, i2, i3, i4, i5, d6, d7, i8, i9) {
49820 i1 = i1 | 0;
49821 i2 = i2 | 0;
49822 i3 = i3 | 0;
49823 i4 = i4 | 0;
49824 i5 = i5 | 0;
49825 d6 = +d6;
49826 d7 = +d7;
49827 i8 = i8 | 0;
49828 i9 = i9 | 0;
49829 HEAP32[i1 >> 2] = 4136;
49830 HEAPF32[i1 + 4 >> 2] = 0.0;
49831 HEAPF32[i1 + 8 >> 2] = 1.0;
49832 HEAPF32[i1 + 12 >> 2] = 0.0;
49833 HEAPF32[i1 + 16 >> 2] = 0.0;
49834 HEAP32[i1 + 20 >> 2] = i9;
49835 HEAP32[i1 + 24 >> 2] = i8;
49836 HEAP32[i1 + 28 >> 2] = i2;
49837 HEAP32[i1 + 32 >> 2] = i3;
49838 HEAP32[i1 + 36 >> 2] = i4;
49839 HEAP32[i1 + 40 >> 2] = i5;
49840 HEAPF32[i1 + 44 >> 2] = d6;
49841 HEAPF32[i1 + 48 >> 2] = d7;
49842 HEAP8[i1 + 52 | 0] = 0;
49843 HEAP32[i1 + 60 >> 2] = -1;
49844 HEAP32[i1 + 72 >> 2] = 1;
49845 return;
49846 }
49847 function __ZNK14btQuantizedBvh25reportRayOverlappingNodexEP21btNodeOverlapCallbackRK9btVector3S4_(i1, i2, i3, i4) {
49848 i1 = i1 | 0;
49849 i2 = i2 | 0;
49850 i3 = i3 | 0;
49851 i4 = i4 | 0;
49852 var i5 = 0, i6 = 0, i7 = 0;
49853 i5 = STACKTOP;
49854 STACKTOP = STACKTOP + 32 | 0;
49855 i6 = i5 | 0;
49856 i7 = i5 + 16 | 0;
49857 _memset(i6 | 0, 0, 16);
49858 _memset(i7 | 0, 0, 16);
49859 if ((HEAP8[i1 + 60 | 0] | 0) == 0) {
49860 __ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i1, i2, i3, i4, i6, i7, 0, 0);
49861 STACKTOP = i5;
49862 return;
49863 } else {
49864 __ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i1, i2, i3, i4, i6, i7, 0, HEAP32[i1 + 56 >> 2] | 0);
49865 STACKTOP = i5;
49866 return;
49867 }
49868 }
49869 function __ZN23btDiscreteDynamicsWorld15removeRigidBodyEP11btRigidBody(i1, i2) {
49870 i1 = i1 | 0;
49871 i2 = i2 | 0;
49872 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
49873 i3 = i1 + 204 | 0;
49874 i4 = HEAP32[i3 >> 2] | 0;
49875 i5 = i1 + 212 | 0;
49876 i6 = 0;
49877 while (1) {
49878 if ((i6 | 0) >= (i4 | 0)) {
49879 break;
49880 }
49881 i7 = HEAP32[i5 >> 2] | 0;
49882 i8 = i7 + (i6 << 2) | 0;
49883 if ((HEAP32[i8 >> 2] | 0) == (i2 | 0)) {
49884 i9 = 433;
49885 break;
49886 } else {
49887 i6 = i6 + 1 | 0;
49888 }
49889 }
49890 if ((i9 | 0) == 433) {
49891 i9 = i4 - 1 | 0;
49892 HEAP32[i8 >> 2] = HEAP32[i7 + (i9 << 2) >> 2];
49893 HEAP32[(HEAP32[i5 >> 2] | 0) + (i9 << 2) >> 2] = i2;
49894 HEAP32[i3 >> 2] = i9;
49895 }
49896 __ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject(i1 | 0, i2 | 0);
49897 return;
49898 }
49899 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder215addSingleResultERNS_14LocalRayResultEb(i1, i2, i3) {
49900 i1 = i1 | 0;
49901 i2 = i2 | 0;
49902 i3 = i3 | 0;
49903 var i4 = 0, i5 = 0, i6 = 0, d7 = 0.0;
49904 i4 = STACKTOP;
49905 STACKTOP = STACKTOP + 8 | 0;
49906 i5 = i4 | 0;
49907 HEAP32[i5 >> 2] = -1;
49908 HEAP32[i5 + 4 >> 2] = HEAP32[i1 + 24 >> 2];
49909 i6 = i2 + 4 | 0;
49910 if ((HEAP32[i6 >> 2] | 0) == 0) {
49911 HEAP32[i6 >> 2] = i5;
49912 }
49913 i5 = i1 + 20 | 0;
49914 i6 = HEAP32[i5 >> 2] | 0;
49915 d7 = +FUNCTION_TABLE_fiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] & 15](i6, i2, i3);
49916 HEAPF32[i1 + 4 >> 2] = +HEAPF32[(HEAP32[i5 >> 2] | 0) + 4 >> 2];
49917 STACKTOP = i4;
49918 return +d7;
49919 }
49920 function __ZN34btSphereTriangleCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_b(i1, i2, i3, i4, i5, i6) {
49921 i1 = i1 | 0;
49922 i2 = i2 | 0;
49923 i3 = i3 | 0;
49924 i4 = i4 | 0;
49925 i5 = i5 | 0;
49926 i6 = i6 | 0;
49927 var i7 = 0;
49928 __ZN30btActivatingCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1 | 0, i3, i4, i5);
49929 HEAP32[i1 >> 2] = 2424;
49930 i3 = i1 + 8 | 0;
49931 HEAP8[i3] = 0;
49932 i7 = i1 + 12 | 0;
49933 HEAP32[i7 >> 2] = i2;
49934 HEAP8[i1 + 16 | 0] = i6 & 1;
49935 if ((i2 | 0) != 0) {
49936 return;
49937 }
49938 i2 = HEAP32[i1 + 4 >> 2] | 0;
49939 HEAP32[i7 >> 2] = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] & 31](i2, i4, i5) | 0;
49940 HEAP8[i3] = 1;
49941 return;
49942 }
49943 function __ZN6btDbvt6insertERK12btDbvtAabbMmPv(i1, i2, i3) {
49944 i1 = i1 | 0;
49945 i2 = i2 | 0;
49946 i3 = i3 | 0;
49947 var i4 = 0, i5 = 0, i6 = 0, i7 = 0;
49948 i4 = i1 + 4 | 0;
49949 i5 = HEAP32[i4 >> 2] | 0;
49950 do {
49951 if ((i5 | 0) == 0) {
49952 i6 = __Z22btAlignedAllocInternalji(44, 16) | 0;
49953 if ((i6 | 0) == 0) {
49954 i7 = 0;
49955 break;
49956 }
49957 _memset(i6 | 0, 0, 44);
49958 i7 = i6;
49959 } else {
49960 HEAP32[i4 >> 2] = 0;
49961 i7 = i5;
49962 }
49963 } while (0);
49964 HEAP32[i7 + 32 >> 2] = 0;
49965 HEAP32[i7 + 36 >> 2] = i3;
49966 HEAP32[i7 + 40 >> 2] = 0;
49967 i3 = i7;
49968 i5 = i2;
49969 _memcpy(i3 | 0, i5 | 0, 32) | 0;
49970 __ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i1, HEAP32[i1 >> 2] | 0, i7);
49971 i5 = i1 + 12 | 0;
49972 HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 1;
49973 return i7 | 0;
49974 }
49975 function __ZN34btSphereTriangleCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
49976 i1 = i1 | 0;
49977 i2 = i2 | 0;
49978 i3 = i3 | 0;
49979 i4 = i4 | 0;
49980 var i5 = 0, i6 = 0, i7 = 0, i8 = 0;
49981 i5 = HEAP32[i2 >> 2] | 0;
49982 i6 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i5 >> 2] | 0) + 56 >> 2] & 63](i5, 20) | 0;
49983 if ((i6 | 0) == 0) {
49984 i7 = 0;
49985 i8 = i7 | 0;
49986 return i8 | 0;
49987 }
49988 i5 = i6;
49989 __ZN34btSphereTriangleCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_b(i5, HEAP32[i2 + 4 >> 2] | 0, i2, i3, i4, (HEAP8[i1 + 4 | 0] | 0) != 0);
49990 i7 = i5;
49991 i8 = i7 | 0;
49992 return i8 | 0;
49993 }
49994 function __ZN16btPointCollector15addContactPointERK9btVector3S2_f(i1, i2, i3, d4) {
49995 i1 = i1 | 0;
49996 i2 = i2 | 0;
49997 i3 = i3 | 0;
49998 d4 = +d4;
49999 var i5 = 0, i6 = 0, i7 = 0;
50000 i5 = i1 + 36 | 0;
50001 if (+HEAPF32[i5 >> 2] <= d4) {
50002 return;
50003 }
50004 HEAP8[i1 + 40 | 0] = 1;
50005 i6 = i1 + 4 | 0;
50006 i7 = i2;
50007 HEAP32[i6 >> 2] = HEAP32[i7 >> 2];
50008 HEAP32[i6 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
50009 HEAP32[i6 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
50010 HEAP32[i6 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
50011 i7 = i1 + 20 | 0;
50012 i1 = i3;
50013 HEAP32[i7 >> 2] = HEAP32[i1 >> 2];
50014 HEAP32[i7 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
50015 HEAP32[i7 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
50016 HEAP32[i7 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
50017 HEAPF32[i5 >> 2] = d4;
50018 return;
50019 }
50020 function __ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi(i1, i2, i3, i4) {
50021 i1 = i1 | 0;
50022 i2 = i2 | 0;
50023 i3 = i3 | 0;
50024 i4 = i4 | 0;
50025 var i5 = 0;
50026 if ((HEAP32[i2 + 8 >> 2] | 0) != (i1 | 0)) {
50027 return;
50028 }
50029 i1 = i2 + 16 | 0;
50030 i5 = HEAP32[i1 >> 2] | 0;
50031 if ((i5 | 0) == 0) {
50032 HEAP32[i1 >> 2] = i3;
50033 HEAP32[i2 + 24 >> 2] = i4;
50034 HEAP32[i2 + 36 >> 2] = 1;
50035 return;
50036 }
50037 if ((i5 | 0) != (i3 | 0)) {
50038 i3 = i2 + 36 | 0;
50039 HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 1;
50040 HEAP32[i2 + 24 >> 2] = 2;
50041 HEAP8[i2 + 54 | 0] = 1;
50042 return;
50043 }
50044 i3 = i2 + 24 | 0;
50045 if ((HEAP32[i3 >> 2] | 0) != 2) {
50046 return;
50047 }
50048 HEAP32[i3 >> 2] = i4;
50049 return;
50050 }
50051 function __ZNK13btConvexShape19getMarginNonVirtualEv(i1) {
50052 i1 = i1 | 0;
50053 var d2 = 0.0;
50054 switch (HEAP32[i1 + 4 >> 2] | 0) {
50055 case 0:
50056 {
50057 d2 = +HEAPF32[i1 + 44 >> 2];
50058 return +d2;
50059 }
50060 case 13:
50061 {
50062 d2 = +HEAPF32[i1 + 44 >> 2];
50063 return +d2;
50064 }
50065 case 1:
50066 {
50067 d2 = +HEAPF32[i1 + 44 >> 2];
50068 return +d2;
50069 }
50070 case 5:
50071 case 4:
50072 {
50073 d2 = +HEAPF32[i1 + 44 >> 2];
50074 return +d2;
50075 }
50076 case 8:
50077 {
50078 d2 = +HEAPF32[i1 + 28 >> 2] * +HEAPF32[i1 + 12 >> 2];
50079 return +d2;
50080 }
50081 case 10:
50082 {
50083 d2 = +HEAPF32[i1 + 44 >> 2];
50084 return +d2;
50085 }
50086 default:
50087 {
50088 d2 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i1 >> 2] | 0) + 44 >> 2] & 7](i1);
50089 return +d2;
50090 }
50091 }
50092 return 0.0;
50093 }
50094 function __ZN19btSingleRayCallback7processEPK17btBroadphaseProxy(i1, i2) {
50095 i1 = i1 | 0;
50096 i2 = i2 | 0;
50097 var i3 = 0, i4 = 0, i5 = 0, i6 = 0;
50098 i3 = i1 + 216 | 0;
50099 i4 = HEAP32[i3 >> 2] | 0;
50100 if (+HEAPF32[i4 + 4 >> 2] == 0.0) {
50101 i5 = 0;
50102 return i5 | 0;
50103 }
50104 i6 = HEAP32[i2 >> 2] | 0;
50105 if (!(FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] & 63](i4, HEAP32[i6 + 188 >> 2] | 0) | 0)) {
50106 i5 = 1;
50107 return i5 | 0;
50108 }
50109 __ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(i1 + 68 | 0, i1 + 132 | 0, i6, HEAP32[i6 + 192 >> 2] | 0, i6 + 4 | 0, HEAP32[i3 >> 2] | 0);
50110 i5 = 1;
50111 return i5 | 0;
50112 }
50113 function __ZN32btSphereSphereCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_(i1, i2, i3, i4, i5) {
50114 i1 = i1 | 0;
50115 i2 = i2 | 0;
50116 i3 = i3 | 0;
50117 i4 = i4 | 0;
50118 i5 = i5 | 0;
50119 var i6 = 0;
50120 __ZN30btActivatingCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1 | 0, i3, i4, i5);
50121 HEAP32[i1 >> 2] = 2568;
50122 i3 = i1 + 8 | 0;
50123 HEAP8[i3] = 0;
50124 i6 = i1 + 12 | 0;
50125 HEAP32[i6 >> 2] = i2;
50126 if ((i2 | 0) != 0) {
50127 return;
50128 }
50129 i2 = HEAP32[i1 + 4 >> 2] | 0;
50130 HEAP32[i6 >> 2] = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] & 31](i2, i4, i5) | 0;
50131 HEAP8[i3] = 1;
50132 return;
50133 }
50134 function __ZN28btCompoundCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(i1, i2) {
50135 i1 = i1 | 0;
50136 i2 = i2 | 0;
50137 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
50138 i3 = i1 + 12 | 0;
50139 i4 = HEAP32[i3 >> 2] | 0;
50140 if ((i4 | 0) <= 0) {
50141 return;
50142 }
50143 i5 = i1 + 20 | 0;
50144 i1 = 0;
50145 i6 = i4;
50146 while (1) {
50147 i4 = HEAP32[(HEAP32[i5 >> 2] | 0) + (i1 << 2) >> 2] | 0;
50148 if ((i4 | 0) == 0) {
50149 i7 = i6;
50150 } else {
50151 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i4 >> 2] | 0) + 16 >> 2] & 127](i4, i2);
50152 i7 = HEAP32[i3 >> 2] | 0;
50153 }
50154 i4 = i1 + 1 | 0;
50155 if ((i4 | 0) < (i7 | 0)) {
50156 i1 = i4;
50157 i6 = i7;
50158 } else {
50159 break;
50160 }
50161 }
50162 return;
50163 }
50164 function __ZNK21btConvexInternalShape9serializeEPvP12btSerializer(i1, i2, i3) {
50165 i1 = i1 | 0;
50166 i2 = i2 | 0;
50167 i3 = i3 | 0;
50168 __ZNK16btCollisionShape9serializeEPvP12btSerializer(i1 | 0, i2, i3) | 0;
50169 HEAPF32[i2 + 28 >> 2] = +HEAPF32[i1 + 28 >> 2];
50170 HEAPF32[i2 + 32 >> 2] = +HEAPF32[i1 + 32 >> 2];
50171 HEAPF32[i2 + 36 >> 2] = +HEAPF32[i1 + 36 >> 2];
50172 HEAPF32[i2 + 40 >> 2] = +HEAPF32[i1 + 40 >> 2];
50173 HEAPF32[i2 + 12 >> 2] = +HEAPF32[i1 + 12 >> 2];
50174 HEAPF32[i2 + 16 >> 2] = +HEAPF32[i1 + 16 >> 2];
50175 HEAPF32[i2 + 20 >> 2] = +HEAPF32[i1 + 20 >> 2];
50176 HEAPF32[i2 + 24 >> 2] = +HEAPF32[i1 + 24 >> 2];
50177 HEAPF32[i2 + 44 >> 2] = +HEAPF32[i1 + 44 >> 2];
50178 return 800;
50179 }
50180 function __ZN23btDiscreteDynamicsWorld12removeActionEP17btActionInterface(i1, i2) {
50181 i1 = i1 | 0;
50182 i2 = i2 | 0;
50183 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
50184 i3 = i1 + 248 | 0;
50185 i4 = HEAP32[i3 >> 2] | 0;
50186 i5 = i1 + 256 | 0;
50187 i1 = 0;
50188 while (1) {
50189 if ((i1 | 0) >= (i4 | 0)) {
50190 i6 = 422;
50191 break;
50192 }
50193 i7 = HEAP32[i5 >> 2] | 0;
50194 i8 = i7 + (i1 << 2) | 0;
50195 if ((HEAP32[i8 >> 2] | 0) == (i2 | 0)) {
50196 break;
50197 } else {
50198 i1 = i1 + 1 | 0;
50199 }
50200 }
50201 if ((i6 | 0) == 422) {
50202 return;
50203 }
50204 i6 = i4 - 1 | 0;
50205 HEAP32[i8 >> 2] = HEAP32[i7 + (i6 << 2) >> 2];
50206 HEAP32[(HEAP32[i5 >> 2] | 0) + (i6 << 2) >> 2] = i2;
50207 HEAP32[i3 >> 2] = i6;
50208 return;
50209 }
50210 function __ZN25btTriangleRaycastCallbackC2ERK9btVector3S2_j(i1, i2, i3, i4) {
50211 i1 = i1 | 0;
50212 i2 = i2 | 0;
50213 i3 = i3 | 0;
50214 i4 = i4 | 0;
50215 var i5 = 0, i6 = 0;
50216 HEAP32[i1 >> 2] = 3e3;
50217 i5 = i1 + 4 | 0;
50218 i6 = i2;
50219 HEAP32[i5 >> 2] = HEAP32[i6 >> 2];
50220 HEAP32[i5 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
50221 HEAP32[i5 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
50222 HEAP32[i5 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
50223 i6 = i1 + 20 | 0;
50224 i5 = i3;
50225 HEAP32[i6 >> 2] = HEAP32[i5 >> 2];
50226 HEAP32[i6 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
50227 HEAP32[i6 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
50228 HEAP32[i6 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
50229 HEAP32[i1 + 36 >> 2] = i4;
50230 HEAPF32[i1 + 40 >> 2] = 1.0;
50231 return;
50232 }
50233 function __ZNK10btBoxShape8isInsideERK9btVector3f(i1, i2, d3) {
50234 i1 = i1 | 0;
50235 i2 = i2 | 0;
50236 d3 = +d3;
50237 var d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0, i8 = 0;
50238 d4 = +HEAPF32[i1 + 28 >> 2];
50239 d5 = +HEAPF32[i1 + 32 >> 2];
50240 d6 = +HEAPF32[i1 + 36 >> 2];
50241 d7 = +HEAPF32[i2 >> 2];
50242 if (d7 > d4 + d3) {
50243 i8 = 0;
50244 return i8 | 0;
50245 }
50246 if (d7 < -0.0 - d4 - d3) {
50247 i8 = 0;
50248 return i8 | 0;
50249 }
50250 d4 = +HEAPF32[i2 + 4 >> 2];
50251 if (d4 > d5 + d3) {
50252 i8 = 0;
50253 return i8 | 0;
50254 }
50255 if (d4 < -0.0 - d5 - d3) {
50256 i8 = 0;
50257 return i8 | 0;
50258 }
50259 d5 = +HEAPF32[i2 + 8 >> 2];
50260 if (d5 > d6 + d3) {
50261 i8 = 0;
50262 return i8 | 0;
50263 }
50264 i8 = d5 >= -0.0 - d6 - d3;
50265 return i8 | 0;
50266 }
50267 function ___divdi3(i1, i2, i3, i4) {
50268 i1 = i1 | 0;
50269 i2 = i2 | 0;
50270 i3 = i3 | 0;
50271 i4 = i4 | 0;
50272 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
50273 i5 = i2 >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1;
50274 i6 = ((i2 | 0) < 0 ? -1 : 0) >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1;
50275 i7 = i4 >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
50276 i8 = ((i4 | 0) < 0 ? -1 : 0) >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
50277 i9 = _i64Subtract(i5 ^ i1, i6 ^ i2, i5, i6) | 0;
50278 i2 = tempRet0;
50279 i1 = i7 ^ i5;
50280 i5 = i8 ^ i6;
50281 i6 = _i64Subtract((___udivmoddi4(i9, i2, _i64Subtract(i7 ^ i3, i8 ^ i4, i7, i8) | 0, tempRet0, 0) | 0) ^ i1, tempRet0 ^ i5, i1, i5) | 0;
50282 return (tempRet0 = tempRet0, i6) | 0;
50283 }
50284 function __ZN6btDbvt5clearEv(i1) {
50285 i1 = i1 | 0;
50286 var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
50287 i2 = HEAP32[i1 >> 2] | 0;
50288 if ((i2 | 0) != 0) {
50289 __ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i1, i2);
50290 }
50291 i2 = i1 + 4 | 0;
50292 __Z21btAlignedFreeInternalPv(HEAP32[i2 >> 2] | 0);
50293 HEAP32[i2 >> 2] = 0;
50294 HEAP32[i1 + 8 >> 2] = -1;
50295 i2 = i1 + 24 | 0;
50296 i3 = i1 + 32 | 0;
50297 i4 = HEAP32[i3 >> 2] | 0;
50298 i5 = i1 + 36 | 0;
50299 if ((i4 | 0) != 0) {
50300 if ((HEAP8[i5] | 0) != 0) {
50301 __Z21btAlignedFreeInternalPv(i4);
50302 }
50303 HEAP32[i3 >> 2] = 0;
50304 }
50305 HEAP8[i5] = 1;
50306 HEAP32[i3 >> 2] = 0;
50307 HEAP32[i2 >> 2] = 0;
50308 HEAP32[i1 + 28 >> 2] = 0;
50309 HEAP32[i1 + 16 >> 2] = 0;
50310 return;
50311 }
50312 function __ZN6btDbvtD2Ev(i1) {
50313 i1 = i1 | 0;
50314 var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
50315 i2 = HEAP32[i1 >> 2] | 0;
50316 if ((i2 | 0) != 0) {
50317 __ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i1, i2);
50318 }
50319 i2 = i1 + 4 | 0;
50320 __Z21btAlignedFreeInternalPv(HEAP32[i2 >> 2] | 0);
50321 HEAP32[i2 >> 2] = 0;
50322 HEAP32[i1 + 8 >> 2] = -1;
50323 i2 = i1 + 24 | 0;
50324 i3 = i1 + 32 | 0;
50325 i4 = HEAP32[i3 >> 2] | 0;
50326 i5 = i1 + 36 | 0;
50327 if ((i4 | 0) != 0) {
50328 if ((HEAP8[i5] | 0) != 0) {
50329 __Z21btAlignedFreeInternalPv(i4);
50330 }
50331 HEAP32[i3 >> 2] = 0;
50332 }
50333 HEAP32[i1 + 16 >> 2] = 0;
50334 HEAP8[i5] = 1;
50335 HEAP32[i3 >> 2] = 0;
50336 HEAP32[i2 >> 2] = 0;
50337 HEAP32[i1 + 28 >> 2] = 0;
50338 return;
50339 }
50340 function __ZN32btSphereSphereCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
50341 i1 = i1 | 0;
50342 i2 = i2 | 0;
50343 i3 = i3 | 0;
50344 i4 = i4 | 0;
50345 var i5 = 0, i6 = 0, i7 = 0;
50346 i1 = HEAP32[i2 >> 2] | 0;
50347 i5 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i1 >> 2] | 0) + 56 >> 2] & 63](i1, 16) | 0;
50348 if ((i5 | 0) == 0) {
50349 i6 = 0;
50350 i7 = i6 | 0;
50351 return i7 | 0;
50352 }
50353 i1 = i5;
50354 __ZN32btSphereSphereCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_(i1, 0, i2, i3, i4);
50355 i6 = i1;
50356 i7 = i6 | 0;
50357 return i7 | 0;
50358 }
50359 function __ZN11btRigidBody10setGravityERK9btVector3(i1, i2) {
50360 i1 = i1 | 0;
50361 i2 = i2 | 0;
50362 var d3 = 0.0, d4 = 0.0, d5 = 0.0, i6 = 0;
50363 d3 = +HEAPF32[i1 + 336 >> 2];
50364 if (d3 != 0.0) {
50365 d4 = 1.0 / d3;
50366 d3 = d4 * +HEAPF32[i2 + 4 >> 2];
50367 d5 = d4 * +HEAPF32[i2 + 8 >> 2];
50368 HEAPF32[i1 + 356 >> 2] = d4 * +HEAPF32[i2 >> 2];
50369 HEAPF32[i1 + 360 >> 2] = d3;
50370 HEAPF32[i1 + 364 >> 2] = d5;
50371 HEAPF32[i1 + 368 >> 2] = 0.0;
50372 }
50373 i6 = i1 + 372 | 0;
50374 i1 = i2;
50375 HEAP32[i6 >> 2] = HEAP32[i1 >> 2];
50376 HEAP32[i6 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
50377 HEAP32[i6 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
50378 HEAP32[i6 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
50379 return;
50380 }
50381 function __ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE(i1, i2, i3, i4) {
50382 i1 = i1 | 0;
50383 i2 = i2 | 0;
50384 i3 = i3 | 0;
50385 i4 = i4 | 0;
50386 var i5 = 0, i6 = 0, i7 = 0, i8 = 0;
50387 i5 = STACKTOP;
50388 STACKTOP = STACKTOP + 256 | 0;
50389 i6 = i5 | 0;
50390 i7 = i5 + 224 | 0;
50391 i8 = i5 + 240 | 0;
50392 __ZN19btSingleRayCallbackC2ERK9btVector3S2_PK16btCollisionWorldRNS3_17RayResultCallbackE(i6, i2, i3, i1, i4);
50393 i4 = HEAP32[i1 + 76 >> 2] | 0;
50394 i1 = HEAP32[(HEAP32[i4 >> 2] | 0) + 24 >> 2] | 0;
50395 _memset(i7 | 0, 0, 16);
50396 _memset(i8 | 0, 0, 16);
50397 FUNCTION_TABLE_viiiiii[i1 & 15](i4, i2, i3, i6 | 0, i7, i8);
50398 STACKTOP = i5;
50399 return;
50400 }
50401 function __ZN22btVoronoiSimplexSolver14compute_pointsER9btVector3S1_(i1, i2, i3) {
50402 i1 = i1 | 0;
50403 i2 = i2 | 0;
50404 i3 = i3 | 0;
50405 var i4 = 0;
50406 __ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i1) | 0;
50407 i4 = i2;
50408 i2 = i1 + 244 | 0;
50409 HEAP32[i4 >> 2] = HEAP32[i2 >> 2];
50410 HEAP32[i4 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
50411 HEAP32[i4 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
50412 HEAP32[i4 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
50413 i2 = i3;
50414 i3 = i1 + 260 | 0;
50415 HEAP32[i2 >> 2] = HEAP32[i3 >> 2];
50416 HEAP32[i2 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
50417 HEAP32[i2 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
50418 HEAP32[i2 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
50419 return;
50420 }
50421 function __ZN26btBoxBoxCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
50422 i1 = i1 | 0;
50423 i2 = i2 | 0;
50424 i3 = i3 | 0;
50425 i4 = i4 | 0;
50426 var i5 = 0, i6 = 0, i7 = 0;
50427 i1 = HEAP32[i2 >> 2] | 0;
50428 i5 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i1 >> 2] | 0) + 56 >> 2] & 63](i1, 16) | 0;
50429 if ((i5 | 0) == 0) {
50430 i6 = 0;
50431 i7 = i6 | 0;
50432 return i7 | 0;
50433 }
50434 i1 = i5;
50435 __ZN26btBoxBoxCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_(i1, 0, i2, i3, i4);
50436 i6 = i1;
50437 i7 = i6 | 0;
50438 return i7 | 0;
50439 }
50440 function __ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
50441 i1 = i1 | 0;
50442 i2 = i2 | 0;
50443 i3 = i3 | 0;
50444 i4 = i4 | 0;
50445 var i5 = 0, i6 = 0, i7 = 0;
50446 i1 = HEAP32[i2 >> 2] | 0;
50447 i5 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i1 >> 2] | 0) + 56 >> 2] & 63](i1, 80) | 0;
50448 if ((i5 | 0) == 0) {
50449 i6 = 0;
50450 i7 = i6 | 0;
50451 return i7 | 0;
50452 }
50453 i1 = i5;
50454 __ZN33btConvexConcaveCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b(i1, i2, i3, i4, 1);
50455 i6 = i1;
50456 i7 = i6 | 0;
50457 return i7 | 0;
50458 }
50459 function __ZNK34btClosestNotMeConvexResultCallback14needsCollisionEP17btBroadphaseProxy(i1, i2) {
50460 i1 = i1 | 0;
50461 i2 = i2 | 0;
50462 var i3 = 0, i4 = 0, i5 = 0;
50463 i3 = HEAP32[i2 >> 2] | 0;
50464 i4 = HEAP32[i1 + 80 >> 2] | 0;
50465 if ((i3 | 0) == (i4 | 0)) {
50466 i5 = 0;
50467 return i5 | 0;
50468 }
50469 if ((HEAP16[i1 + 10 >> 1] & HEAP16[i2 + 4 >> 1]) << 16 >> 16 == 0) {
50470 i5 = 0;
50471 return i5 | 0;
50472 }
50473 if ((HEAP16[i2 + 6 >> 1] & HEAP16[i1 + 8 >> 1]) << 16 >> 16 == 0) {
50474 i5 = 0;
50475 return i5 | 0;
50476 }
50477 i2 = HEAP32[i1 + 92 >> 2] | 0;
50478 i5 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 28 >> 2] & 31](i2, i4, i3) | 0;
50479 return i5 | 0;
50480 }
50481 function __ZN33btConvexConcaveCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
50482 i1 = i1 | 0;
50483 i2 = i2 | 0;
50484 i3 = i3 | 0;
50485 i4 = i4 | 0;
50486 var i5 = 0, i6 = 0, i7 = 0;
50487 i1 = HEAP32[i2 >> 2] | 0;
50488 i5 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i1 >> 2] | 0) + 56 >> 2] & 63](i1, 80) | 0;
50489 if ((i5 | 0) == 0) {
50490 i6 = 0;
50491 i7 = i6 | 0;
50492 return i7 | 0;
50493 }
50494 i1 = i5;
50495 __ZN33btConvexConcaveCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b(i1, i2, i3, i4, 0);
50496 i6 = i1;
50497 i7 = i6 | 0;
50498 return i7 | 0;
50499 }
50500 function __ZN28btCompoundCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
50501 i1 = i1 | 0;
50502 i2 = i2 | 0;
50503 i3 = i3 | 0;
50504 i4 = i4 | 0;
50505 var i5 = 0, i6 = 0, i7 = 0;
50506 i1 = HEAP32[i2 >> 2] | 0;
50507 i5 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i1 >> 2] | 0) + 56 >> 2] & 63](i1, 44) | 0;
50508 if ((i5 | 0) == 0) {
50509 i6 = 0;
50510 i7 = i6 | 0;
50511 return i7 | 0;
50512 }
50513 i1 = i5;
50514 __ZN28btCompoundCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b(i1, i2, i3, i4, 1);
50515 i6 = i1;
50516 i7 = i6 | 0;
50517 return i7 | 0;
50518 }
50519 function __ZN23btDiscreteDynamicsWorld12applyGravityEv(i1) {
50520 i1 = i1 | 0;
50521 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
50522 i2 = i1 + 204 | 0;
50523 i3 = HEAP32[i2 >> 2] | 0;
50524 if ((i3 | 0) <= 0) {
50525 return;
50526 }
50527 i4 = i1 + 212 | 0;
50528 i1 = 0;
50529 i5 = i3;
50530 while (1) {
50531 i3 = HEAP32[(HEAP32[i4 >> 2] | 0) + (i1 << 2) >> 2] | 0;
50532 i6 = HEAP32[i3 + 216 >> 2] | 0;
50533 if ((i6 | 0) == 5 | (i6 | 0) == 2) {
50534 i7 = i5;
50535 } else {
50536 __ZN11btRigidBody12applyGravityEv(i3);
50537 i7 = HEAP32[i2 >> 2] | 0;
50538 }
50539 i3 = i1 + 1 | 0;
50540 if ((i3 | 0) < (i7 | 0)) {
50541 i1 = i3;
50542 i5 = i7;
50543 } else {
50544 break;
50545 }
50546 }
50547 return;
50548 }
50549 function __ZN28btCompoundCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
50550 i1 = i1 | 0;
50551 i2 = i2 | 0;
50552 i3 = i3 | 0;
50553 i4 = i4 | 0;
50554 var i5 = 0, i6 = 0, i7 = 0;
50555 i1 = HEAP32[i2 >> 2] | 0;
50556 i5 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i1 >> 2] | 0) + 56 >> 2] & 63](i1, 44) | 0;
50557 if ((i5 | 0) == 0) {
50558 i6 = 0;
50559 i7 = i6 | 0;
50560 return i7 | 0;
50561 }
50562 i1 = i5;
50563 __ZN28btCompoundCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b(i1, i2, i3, i4, 0);
50564 i6 = i1;
50565 i7 = i6 | 0;
50566 return i7 | 0;
50567 }
50568 function __ZN21btCollisionDispatcher22freeCollisionAlgorithmEPv(i1, i2) {
50569 i1 = i1 | 0;
50570 i2 = i2 | 0;
50571 var i3 = 0;
50572 i3 = HEAP32[i1 + 192 >> 2] | 0;
50573 do {
50574 if ((i2 | 0) != 0) {
50575 i1 = HEAP32[i3 + 16 >> 2] | 0;
50576 if (i1 >>> 0 > i2 >>> 0) {
50577 break;
50578 }
50579 if ((i1 + (Math_imul(HEAP32[i3 >> 2] | 0, HEAP32[i3 + 4 >> 2] | 0) | 0) | 0) >>> 0 <= i2 >>> 0) {
50580 break;
50581 }
50582 i1 = i3 + 12 | 0;
50583 HEAP32[i2 >> 2] = HEAP32[i1 >> 2];
50584 HEAP32[i1 >> 2] = i2;
50585 i1 = i3 + 8 | 0;
50586 HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + 1;
50587 return;
50588 }
50589 } while (0);
50590 __Z21btAlignedFreeInternalPv(i2);
50591 return;
50592 }
50593 function __ZN23btDiscreteDynamicsWorld14updateVehiclesEf(i1, d2) {
50594 i1 = i1 | 0;
50595 d2 = +d2;
50596 var i3 = 0, i4 = 0, i5 = 0, i6 = 0;
50597 __ZN15CProfileManager13Start_ProfileEPKc(456);
50598 i3 = i1 + 248 | 0;
50599 if ((HEAP32[i3 >> 2] | 0) <= 0) {
50600 __ZN15CProfileManager12Stop_ProfileEv();
50601 return;
50602 }
50603 i4 = i1 + 256 | 0;
50604 i5 = i1 | 0;
50605 i1 = 0;
50606 do {
50607 i6 = HEAP32[(HEAP32[i4 >> 2] | 0) + (i1 << 2) >> 2] | 0;
50608 FUNCTION_TABLE_viif[HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] & 3](i6, i5, d2);
50609 i1 = i1 + 1 | 0;
50610 } while ((i1 | 0) < (HEAP32[i3 >> 2] | 0));
50611 __ZN15CProfileManager12Stop_ProfileEv();
50612 return;
50613 }
50614 function __ZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_(i1, i2, i3, i4, i5, i6) {
50615 i1 = i1 | 0;
50616 i2 = i2 | 0;
50617 i3 = i3 | 0;
50618 i4 = i4 | 0;
50619 i5 = i5 | 0;
50620 i6 = i6 | 0;
50621 var i7 = 0, i8 = 0, i9 = 0;
50622 i7 = STACKTOP;
50623 STACKTOP = STACKTOP + 16 | 0;
50624 i8 = i7 | 0;
50625 i9 = HEAP32[i1 + 48 >> 2] | 0;
50626 HEAP32[i8 >> 2] = 1592;
50627 HEAP32[i8 + 4 >> 2] = i9;
50628 HEAP32[i8 + 8 >> 2] = i2;
50629 __ZNK14btQuantizedBvh29reportBoxCastOverlappingNodexEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_(HEAP32[i1 + 52 >> 2] | 0, i8 | 0, i3, i4, i5, i6);
50630 STACKTOP = i7;
50631 return;
50632 }
50633 function __ZNK14btQuantizedBvh29reportBoxCastOverlappingNodexEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_(i1, i2, i3, i4, i5, i6) {
50634 i1 = i1 | 0;
50635 i2 = i2 | 0;
50636 i3 = i3 | 0;
50637 i4 = i4 | 0;
50638 i5 = i5 | 0;
50639 i6 = i6 | 0;
50640 if ((HEAP8[i1 + 60 | 0] | 0) == 0) {
50641 __ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i1, i2, i3, i4, i5, i6, 0, 0);
50642 return;
50643 } else {
50644 __ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i1, i2, i3, i4, i5, i6, 0, HEAP32[i1 + 56 >> 2] | 0);
50645 return;
50646 }
50647 }
50648 function __ZN21btCollisionDispatcher13findAlgorithmEP17btCollisionObjectS1_P20btPersistentManifold(i1, i2, i3, i4) {
50649 i1 = i1 | 0;
50650 i2 = i2 | 0;
50651 i3 = i3 | 0;
50652 i4 = i4 | 0;
50653 var i5 = 0, i6 = 0;
50654 i5 = STACKTOP;
50655 STACKTOP = STACKTOP + 8 | 0;
50656 i6 = i5 | 0;
50657 HEAP32[i6 >> 2] = i1;
50658 HEAP32[i6 + 4 >> 2] = i4;
50659 i4 = HEAP32[i1 + 200 + ((HEAP32[(HEAP32[i2 + 192 >> 2] | 0) + 4 >> 2] | 0) * 144 | 0) + (HEAP32[(HEAP32[i3 + 192 >> 2] | 0) + 4 >> 2] << 2) >> 2] | 0;
50660 i1 = FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] & 31](i4, i6, i2, i3) | 0;
50661 STACKTOP = i5;
50662 return i1 | 0;
50663 }
50664 function __ZN33btConvexConcaveCollisionAlgorithmD0Ev(i1) {
50665 i1 = i1 | 0;
50666 var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
50667 HEAP32[i1 >> 2] = 2528;
50668 i2 = i1 + 12 | 0;
50669 HEAP32[i2 >> 2] = 3104;
50670 i3 = i1 + 60 | 0;
50671 i4 = HEAP32[i3 >> 2] | 0;
50672 i5 = i1 + 76 | 0;
50673 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i4 >> 2] | 0) + 20 >> 2] & 127](i4, HEAP32[i5 >> 2] | 0);
50674 i4 = HEAP32[i3 >> 2] | 0;
50675 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i4 >> 2] | 0) + 16 >> 2] & 127](i4, HEAP32[i5 >> 2] | 0);
50676 __ZN18btTriangleCallbackD2Ev(i2 | 0);
50677 __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
50678 __ZdlPv(i1);
50679 return;
50680 }
50681 function __ZNK16btDbvtBroadphase7getAabbEP17btBroadphaseProxyR9btVector3S3_(i1, i2, i3, i4) {
50682 i1 = i1 | 0;
50683 i2 = i2 | 0;
50684 i3 = i3 | 0;
50685 i4 = i4 | 0;
50686 i1 = i3;
50687 i3 = i2 + 16 | 0;
50688 HEAP32[i1 >> 2] = HEAP32[i3 >> 2];
50689 HEAP32[i1 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
50690 HEAP32[i1 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
50691 HEAP32[i1 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
50692 i3 = i4;
50693 i4 = i2 + 32 | 0;
50694 HEAP32[i3 >> 2] = HEAP32[i4 >> 2];
50695 HEAP32[i3 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
50696 HEAP32[i3 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
50697 HEAP32[i3 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
50698 return;
50699 }
50700 function __ZN33btConvexConcaveCollisionAlgorithmD2Ev(i1) {
50701 i1 = i1 | 0;
50702 var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
50703 HEAP32[i1 >> 2] = 2528;
50704 i2 = i1 + 12 | 0;
50705 HEAP32[i2 >> 2] = 3104;
50706 i3 = i1 + 60 | 0;
50707 i4 = HEAP32[i3 >> 2] | 0;
50708 i5 = i1 + 76 | 0;
50709 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i4 >> 2] | 0) + 20 >> 2] & 127](i4, HEAP32[i5 >> 2] | 0);
50710 i4 = HEAP32[i3 >> 2] | 0;
50711 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i4 >> 2] | 0) + 16 >> 2] & 127](i4, HEAP32[i5 >> 2] | 0);
50712 __ZN18btTriangleCallbackD2Ev(i2 | 0);
50713 __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
50714 return;
50715 }
50716 function __ZL8pointCmpRKN20btConvexHullInternal7Point32ES2_(i1, i2) {
50717 i1 = i1 | 0;
50718 i2 = i2 | 0;
50719 var i3 = 0, i4 = 0, i5 = 0;
50720 i3 = HEAP32[i1 + 4 >> 2] | 0;
50721 i4 = HEAP32[i2 + 4 >> 2] | 0;
50722 if ((i3 | 0) < (i4 | 0)) {
50723 i5 = 1;
50724 return i5 | 0;
50725 }
50726 if ((i3 | 0) != (i4 | 0)) {
50727 i5 = 0;
50728 return i5 | 0;
50729 }
50730 i4 = HEAP32[i1 >> 2] | 0;
50731 i3 = HEAP32[i2 >> 2] | 0;
50732 if ((i4 | 0) < (i3 | 0)) {
50733 i5 = 1;
50734 return i5 | 0;
50735 }
50736 if ((i4 | 0) != (i3 | 0)) {
50737 i5 = 0;
50738 return i5 | 0;
50739 }
50740 i5 = (HEAP32[i1 + 8 >> 2] | 0) < (HEAP32[i2 + 8 >> 2] | 0);
50741 return i5 | 0;
50742 }
50743 function __ZN21btCollisionDispatcher14needsCollisionEP17btCollisionObjectS1_(i1, i2, i3) {
50744 i1 = i1 | 0;
50745 i2 = i2 | 0;
50746 i3 = i3 | 0;
50747 var i4 = 0, i5 = 0;
50748 i1 = HEAP32[i2 + 216 >> 2] | 0;
50749 do {
50750 if ((i1 | 0) == 5 | (i1 | 0) == 2) {
50751 i4 = HEAP32[i3 + 216 >> 2] | 0;
50752 if ((i4 | 0) == 5 | (i4 | 0) == 2) {
50753 i5 = 0;
50754 } else {
50755 break;
50756 }
50757 return i5 | 0;
50758 }
50759 } while (0);
50760 if ((HEAP32[i2 + 252 >> 2] | 0) == 0) {
50761 i5 = 1;
50762 return i5 | 0;
50763 }
50764 i5 = FUNCTION_TABLE_iii[HEAP32[HEAP32[i2 >> 2] >> 2] & 63](i2, i3) | 0;
50765 return i5 | 0;
50766 }
50767 function __ZN16btDbvtBroadphase9resetPoolEP12btDispatcher(i1, i2) {
50768 i1 = i1 | 0;
50769 i2 = i2 | 0;
50770 if ((HEAP32[i1 + 16 >> 2] | 0) != (-(HEAP32[i1 + 56 >> 2] | 0) | 0)) {
50771 return;
50772 }
50773 __ZN6btDbvt5clearEv(i1 + 4 | 0);
50774 __ZN6btDbvt5clearEv(i1 + 44 | 0);
50775 HEAP8[i1 + 153 | 0] = 0;
50776 HEAP8[i1 + 154 | 0] = 1;
50777 HEAP32[i1 + 104 >> 2] = 0;
50778 HEAP32[i1 + 124 >> 2] = 0;
50779 HEAP32[i1 + 108 >> 2] = 1;
50780 HEAP32[i1 + 112 >> 2] = 0;
50781 HEAP32[i1 + 116 >> 2] = 10;
50782 HEAP32[i1 + 120 >> 2] = 1;
50783 _memset(i1 + 84 | 0, 0, 12);
50784 _memset(i1 + 128 | 0, 0, 24);
50785 return;
50786 }
50787 function _memcpy(i1, i2, i3) {
50788 i1 = i1 | 0;
50789 i2 = i2 | 0;
50790 i3 = i3 | 0;
50791 var i4 = 0;
50792 i4 = i1 | 0;
50793 if ((i1 & 3) == (i2 & 3)) {
50794 while (i1 & 3) {
50795 if ((i3 | 0) == 0) return i4 | 0;
50796 HEAP8[i1] = HEAP8[i2] | 0;
50797 i1 = i1 + 1 | 0;
50798 i2 = i2 + 1 | 0;
50799 i3 = i3 - 1 | 0;
50800 }
50801 while ((i3 | 0) >= 4) {
50802 HEAP32[i1 >> 2] = HEAP32[i2 >> 2];
50803 i1 = i1 + 4 | 0;
50804 i2 = i2 + 4 | 0;
50805 i3 = i3 - 4 | 0;
50806 }
50807 }
50808 while ((i3 | 0) > 0) {
50809 HEAP8[i1] = HEAP8[i2] | 0;
50810 i1 = i1 + 1 | 0;
50811 i2 = i2 + 1 | 0;
50812 i3 = i3 - 1 | 0;
50813 }
50814 return i4 | 0;
50815 }
50816 function __ZNK10btBoxShape37localGetSupportingVertexWithoutMarginERK9btVector3(i1, i2, i3) {
50817 i1 = i1 | 0;
50818 i2 = i2 | 0;
50819 i3 = i3 | 0;
50820 var d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0;
50821 d4 = +HEAPF32[i2 + 28 >> 2];
50822 d5 = +HEAPF32[i2 + 32 >> 2];
50823 d6 = +HEAPF32[i3 + 4 >> 2] >= 0.0 ? d5 : -0.0 - d5;
50824 d5 = +HEAPF32[i2 + 36 >> 2];
50825 d7 = +HEAPF32[i3 + 8 >> 2] >= 0.0 ? d5 : -0.0 - d5;
50826 HEAPF32[i1 >> 2] = +HEAPF32[i3 >> 2] >= 0.0 ? d4 : -0.0 - d4;
50827 HEAPF32[i1 + 4 >> 2] = d6;
50828 HEAPF32[i1 + 8 >> 2] = d7;
50829 HEAPF32[i1 + 12 >> 2] = 0.0;
50830 return;
50831 }
50832 function __ZNK11btRigidBody21serializeSingleObjectEP12btSerializer(i1, i2) {
50833 i1 = i1 | 0;
50834 i2 = i2 | 0;
50835 var i3 = 0, i4 = 0, i5 = 0;
50836 i3 = HEAP32[(HEAP32[i2 >> 2] | 0) + 16 >> 2] | 0;
50837 i4 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
50838 i5 = FUNCTION_TABLE_iiii[i3 & 31](i2, i4, 1) | 0;
50839 i4 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 20 >> 2] & 31](i1, HEAP32[i5 + 8 >> 2] | 0, i2) | 0;
50840 FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 20 >> 2] & 63](i2, i5, i4, 1497645650, i1);
50841 return;
50842 }
50843 function __ZN16btEmptyAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
50844 i1 = i1 | 0;
50845 i2 = i2 | 0;
50846 i3 = i3 | 0;
50847 i4 = i4 | 0;
50848 var i5 = 0, i6 = 0;
50849 i4 = HEAP32[i2 >> 2] | 0;
50850 i3 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 56 >> 2] & 63](i4, 8) | 0;
50851 if ((i3 | 0) == 0) {
50852 i5 = 0;
50853 i6 = i5 | 0;
50854 return i6 | 0;
50855 }
50856 i4 = i3;
50857 __ZN16btEmptyAlgorithmC2ERK36btCollisionAlgorithmConstructionInfo(i4, i2);
50858 i5 = i4;
50859 i6 = i5 | 0;
50860 return i6 | 0;
50861 }
50862 function __ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallback14processOverlapER16btBroadphasePair(i1, i2) {
50863 i1 = i1 | 0;
50864 i2 = i2 | 0;
50865 var i3 = 0;
50866 i3 = HEAP32[i1 + 4 >> 2] | 0;
50867 do {
50868 if ((HEAP32[i2 >> 2] | 0) != (i3 | 0)) {
50869 if ((HEAP32[i2 + 4 >> 2] | 0) == (i3 | 0)) {
50870 break;
50871 }
50872 return 0;
50873 }
50874 } while (0);
50875 i3 = HEAP32[i1 + 8 >> 2] | 0;
50876 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i3 >> 2] | 0) + 32 >> 2] & 127](i3, i2, HEAP32[i1 + 12 >> 2] | 0);
50877 return 0;
50878 }
50879 function __ZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_(i1, i2, i3, i4) {
50880 i1 = i1 | 0;
50881 i2 = i2 | 0;
50882 i3 = i3 | 0;
50883 i4 = i4 | 0;
50884 var i5 = 0, i6 = 0, i7 = 0;
50885 i5 = STACKTOP;
50886 STACKTOP = STACKTOP + 16 | 0;
50887 i6 = i5 | 0;
50888 i7 = HEAP32[i1 + 48 >> 2] | 0;
50889 HEAP32[i6 >> 2] = 1624;
50890 HEAP32[i6 + 4 >> 2] = i7;
50891 HEAP32[i6 + 8 >> 2] = i2;
50892 __ZNK14btQuantizedBvh25reportRayOverlappingNodexEP21btNodeOverlapCallbackRK9btVector3S4_(HEAP32[i1 + 52 >> 2] | 0, i6 | 0, i3, i4);
50893 STACKTOP = i5;
50894 return;
50895 }
50896 function __ZNK17btCollisionObject21serializeSingleObjectEP12btSerializer(i1, i2) {
50897 i1 = i1 | 0;
50898 i2 = i2 | 0;
50899 var i3 = 0, i4 = 0;
50900 i3 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
50901 i4 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 16 >> 2] & 31](i2, i3, 1) | 0;
50902 i3 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 20 >> 2] & 31](i1, HEAP32[i4 + 8 >> 2] | 0, i2) | 0;
50903 FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 20 >> 2] & 63](i2, i4, i3, 1245859651, i1);
50904 return;
50905 }
50906 function __ZN11btRigidBody12applyGravityEv(i1) {
50907 i1 = i1 | 0;
50908 var d2 = 0.0, d3 = 0.0, i4 = 0;
50909 if ((HEAP32[i1 + 204 >> 2] & 3 | 0) != 0) {
50910 return;
50911 }
50912 d2 = +HEAPF32[i1 + 360 >> 2] * +HEAPF32[i1 + 344 >> 2];
50913 d3 = +HEAPF32[i1 + 364 >> 2] * +HEAPF32[i1 + 348 >> 2];
50914 i4 = i1 + 404 | 0;
50915 HEAPF32[i4 >> 2] = +HEAPF32[i1 + 356 >> 2] * +HEAPF32[i1 + 340 >> 2] + +HEAPF32[i4 >> 2];
50916 i4 = i1 + 408 | 0;
50917 HEAPF32[i4 >> 2] = d2 + +HEAPF32[i4 >> 2];
50918 i4 = i1 + 412 | 0;
50919 HEAPF32[i4 >> 2] = d3 + +HEAPF32[i4 >> 2];
50920 return;
50921 }
50922 function __ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer(i1, i2) {
50923 i1 = i1 | 0;
50924 i2 = i2 | 0;
50925 var i3 = 0, i4 = 0;
50926 i3 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 48 >> 2] & 127](i1) | 0;
50927 i4 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 16 >> 2] & 31](i2, i3, 1) | 0;
50928 i3 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 52 >> 2] & 31](i1, HEAP32[i4 + 8 >> 2] | 0, i2) | 0;
50929 FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 20 >> 2] & 63](i2, i4, i3, 1346455635, i1);
50930 return;
50931 }
50932 function _memset(i1, i2, i3) {
50933 i1 = i1 | 0;
50934 i2 = i2 | 0;
50935 i3 = i3 | 0;
50936 var i4 = 0, i5 = 0, i6 = 0;
50937 i4 = i1 + i3 | 0;
50938 if ((i3 | 0) >= 20) {
50939 i2 = i2 & 255;
50940 i3 = i1 & 3;
50941 i5 = i2 | i2 << 8 | i2 << 16 | i2 << 24;
50942 i6 = i4 & ~3;
50943 if (i3) {
50944 i3 = i1 + 4 - i3 | 0;
50945 while ((i1 | 0) < (i3 | 0)) {
50946 HEAP8[i1] = i2;
50947 i1 = i1 + 1 | 0;
50948 }
50949 }
50950 while ((i1 | 0) < (i6 | 0)) {
50951 HEAP32[i1 >> 2] = i5;
50952 i1 = i1 + 4 | 0;
50953 }
50954 }
50955 while ((i1 | 0) < (i4 | 0)) {
50956 HEAP8[i1] = i2;
50957 i1 = i1 + 1 | 0;
50958 }
50959 }
50960 function __ZNK16btCollisionShape9serializeEPvP12btSerializer(i1, i2, i3) {
50961 i1 = i1 | 0;
50962 i2 = i2 | 0;
50963 i3 = i3 | 0;
50964 var i4 = 0, i5 = 0, i6 = 0;
50965 i4 = i3;
50966 i5 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 40 >> 2] & 63](i3, i1) | 0;
50967 i6 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 28 >> 2] & 63](i3, i5) | 0;
50968 HEAP32[i2 >> 2] = i6;
50969 if ((i6 | 0) != 0) {
50970 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 48 >> 2] & 127](i3, i5);
50971 }
50972 HEAP32[i2 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
50973 return 1064;
50974 }
50975 function __ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i1, i2) {
50976 i1 = i1 | 0;
50977 i2 = i2 | 0;
50978 var i3 = 0;
50979 i3 = i2 + 40 | 0;
50980 if ((HEAP32[i3 >> 2] | 0) != 0) {
50981 __ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i1, HEAP32[i2 + 36 >> 2] | 0);
50982 __ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i1, HEAP32[i3 >> 2] | 0);
50983 }
50984 i3 = i1 | 0;
50985 if ((HEAP32[i3 >> 2] | 0) == (i2 | 0)) {
50986 HEAP32[i3 >> 2] = 0;
50987 }
50988 i3 = i1 + 4 | 0;
50989 __Z21btAlignedFreeInternalPv(HEAP32[i3 >> 2] | 0);
50990 HEAP32[i3 >> 2] = i2;
50991 return;
50992 }
50993 function __ZNK16btCollisionShape20getAngularMotionDiscEv(i1) {
50994 i1 = i1 | 0;
50995 var i2 = 0, i3 = 0, i4 = 0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0;
50996 i2 = STACKTOP;
50997 STACKTOP = STACKTOP + 24 | 0;
50998 i3 = i2 | 0;
50999 i4 = i2 + 16 | 0;
51000 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] & 127](i1, i3, i4);
51001 d5 = +HEAPF32[i3 >> 2];
51002 d6 = +HEAPF32[i3 + 4 >> 2];
51003 d7 = +HEAPF32[i3 + 8 >> 2];
51004 d8 = +Math_sqrt(+(d5 * d5 + d6 * d6 + d7 * d7));
51005 STACKTOP = i2;
51006 return +(d8 + +HEAPF32[i4 >> 2]);
51007 }
51008 function __ZN11btRigidBodyD0Ev(i1) {
51009 i1 = i1 | 0;
51010 var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
51011 HEAP32[i1 >> 2] = 4936;
51012 i2 = i1 + 480 | 0;
51013 i3 = i1 + 488 | 0;
51014 i4 = HEAP32[i3 >> 2] | 0;
51015 i5 = i1 + 492 | 0;
51016 if ((i4 | 0) != 0) {
51017 if ((HEAP8[i5] | 0) != 0) {
51018 __Z21btAlignedFreeInternalPv(i4);
51019 }
51020 HEAP32[i3 >> 2] = 0;
51021 }
51022 HEAP8[i5] = 1;
51023 HEAP32[i3 >> 2] = 0;
51024 HEAP32[i2 >> 2] = 0;
51025 HEAP32[i1 + 484 >> 2] = 0;
51026 __ZN17btCollisionObjectD2Ev(i1 | 0);
51027 __Z21btAlignedFreeInternalPv(i1);
51028 return;
51029 }
51030 function __Znwj(i1) {
51031 i1 = i1 | 0;
51032 var i2 = 0, i3 = 0, i4 = 0;
51033 i2 = (i1 | 0) == 0 ? 1 : i1;
51034 while (1) {
51035 i3 = _malloc(i2) | 0;
51036 if ((i3 | 0) != 0) {
51037 i4 = 566;
51038 break;
51039 }
51040 i1 = (tempValue = HEAP32[3580] | 0, HEAP32[3580] = tempValue + 0, tempValue);
51041 if ((i1 | 0) == 0) {
51042 break;
51043 }
51044 FUNCTION_TABLE_v[i1 & 3]();
51045 }
51046 if ((i4 | 0) == 566) {
51047 return i3 | 0;
51048 }
51049 i3 = ___cxa_allocate_exception(4) | 0;
51050 HEAP32[i3 >> 2] = 1896;
51051 ___cxa_throw(i3 | 0, 10592, 32);
51052 return 0;
51053 }
51054 function __ZN21btCollisionDispatcher25dispatchAllCollisionPairsEP22btOverlappingPairCacheRK16btDispatcherInfoP12btDispatcher(i1, i2, i3, i4) {
51055 i1 = i1 | 0;
51056 i2 = i2 | 0;
51057 i3 = i3 | 0;
51058 i4 = i4 | 0;
51059 var i5 = 0, i6 = 0;
51060 i5 = STACKTOP;
51061 STACKTOP = STACKTOP + 16 | 0;
51062 i6 = i5 | 0;
51063 HEAP32[i6 >> 2] = 3504;
51064 HEAP32[i6 + 4 >> 2] = i3;
51065 HEAP32[i6 + 8 >> 2] = i1;
51066 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i2 >> 2] | 0) + 48 >> 2] & 127](i2, i6 | 0, i4);
51067 STACKTOP = i5;
51068 return;
51069 }
51070 function __ZN21btCollisionDispatcherD0Ev(i1) {
51071 i1 = i1 | 0;
51072 var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
51073 HEAP32[i1 >> 2] = 3784;
51074 i2 = i1 + 12 | 0;
51075 i3 = i1 + 20 | 0;
51076 i4 = HEAP32[i3 >> 2] | 0;
51077 i5 = i1 + 24 | 0;
51078 if ((i4 | 0) != 0) {
51079 if ((HEAP8[i5] | 0) != 0) {
51080 __Z21btAlignedFreeInternalPv(i4);
51081 }
51082 HEAP32[i3 >> 2] = 0;
51083 }
51084 HEAP8[i5] = 1;
51085 HEAP32[i3 >> 2] = 0;
51086 HEAP32[i2 >> 2] = 0;
51087 HEAP32[i1 + 16 >> 2] = 0;
51088 __ZN12btDispatcherD2Ev(i1 | 0);
51089 __ZdlPv(i1);
51090 return;
51091 }
51092 function __ZN21btCollisionDispatcher26allocateCollisionAlgorithmEi(i1, i2) {
51093 i1 = i1 | 0;
51094 i2 = i2 | 0;
51095 var i3 = 0, i4 = 0, i5 = 0;
51096 i3 = HEAP32[i1 + 192 >> 2] | 0;
51097 i1 = i3 + 8 | 0;
51098 i4 = HEAP32[i1 >> 2] | 0;
51099 if ((i4 | 0) == 0) {
51100 i5 = __Z22btAlignedAllocInternalji(i2, 16) | 0;
51101 return i5 | 0;
51102 } else {
51103 i2 = i3 + 12 | 0;
51104 i3 = HEAP32[i2 >> 2] | 0;
51105 HEAP32[i2 >> 2] = HEAP32[i3 >> 2];
51106 HEAP32[i1 >> 2] = i4 - 1;
51107 i5 = i3;
51108 return i5 | 0;
51109 }
51110 return 0;
51111 }
51112 function __ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNodeS2_(i1, i2, i3) {
51113 i1 = i1 | 0;
51114 i2 = i2 | 0;
51115 i3 = i3 | 0;
51116 var i4 = 0;
51117 if ((i2 | 0) == (i3 | 0)) {
51118 return;
51119 }
51120 i4 = i1 + 4 | 0;
51121 i1 = HEAP32[(HEAP32[i4 >> 2] | 0) + 96 >> 2] | 0;
51122 FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 31](i1 | 0, HEAP32[i2 + 36 >> 2] | 0, HEAP32[i3 + 36 >> 2] | 0) | 0;
51123 i3 = (HEAP32[i4 >> 2] | 0) + 120 | 0;
51124 HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 1;
51125 return;
51126 }
51127 function __ZN12CProfileNodeD2Ev(i1) {
51128 i1 = i1 | 0;
51129 var i2 = 0;
51130 i2 = HEAP32[i1 + 24 >> 2] | 0;
51131 if ((i2 | 0) != 0) {
51132 __ZN12CProfileNodeD2Ev(i2);
51133 __ZdlPv(i2);
51134 }
51135 i2 = HEAP32[i1 + 28 >> 2] | 0;
51136 if ((i2 | 0) == 0) {
51137 return;
51138 }
51139 i1 = HEAP32[i2 + 24 >> 2] | 0;
51140 if ((i1 | 0) != 0) {
51141 __ZN12CProfileNodeD2Ev(i1);
51142 __ZdlPv(i1);
51143 }
51144 i1 = HEAP32[i2 + 28 >> 2] | 0;
51145 if ((i1 | 0) != 0) {
51146 __ZN12CProfileNodeD2Ev(i1);
51147 __ZdlPv(i1);
51148 }
51149 __ZdlPv(i2);
51150 return;
51151 }
51152 function __ZN24btConvexTriangleCallbackD0Ev(i1) {
51153 i1 = i1 | 0;
51154 var i2 = 0, i3 = 0, i4 = 0;
51155 HEAP32[i1 >> 2] = 3104;
51156 i2 = i1 + 48 | 0;
51157 i3 = HEAP32[i2 >> 2] | 0;
51158 i4 = i1 + 64 | 0;
51159 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 20 >> 2] & 127](i3, HEAP32[i4 >> 2] | 0);
51160 i3 = HEAP32[i2 >> 2] | 0;
51161 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, HEAP32[i4 >> 2] | 0);
51162 __ZN18btTriangleCallbackD2Ev(i1 | 0);
51163 __ZdlPv(i1);
51164 return;
51165 }
51166 function __ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher(i1, i2, i3) {
51167 i1 = i1 | 0;
51168 i2 = i2 | 0;
51169 i3 = i3 | 0;
51170 var i4 = 0, i5 = 0;
51171 i4 = STACKTOP;
51172 STACKTOP = STACKTOP + 16 | 0;
51173 i5 = i4 | 0;
51174 HEAP32[i5 >> 2] = 1488;
51175 HEAP32[i5 + 4 >> 2] = i2;
51176 HEAP32[i5 + 8 >> 2] = i1;
51177 HEAP32[i5 + 12 >> 2] = i3;
51178 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i1 >> 2] | 0) + 48 >> 2] & 127](i1, i5 | 0, i3);
51179 STACKTOP = i4;
51180 return;
51181 }
51182 function __ZN21btCollisionDispatcherD2Ev(i1) {
51183 i1 = i1 | 0;
51184 var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
51185 HEAP32[i1 >> 2] = 3784;
51186 i2 = i1 + 12 | 0;
51187 i3 = i1 + 20 | 0;
51188 i4 = HEAP32[i3 >> 2] | 0;
51189 i5 = i1 + 24 | 0;
51190 if ((i4 | 0) != 0) {
51191 if ((HEAP8[i5] | 0) != 0) {
51192 __Z21btAlignedFreeInternalPv(i4);
51193 }
51194 HEAP32[i3 >> 2] = 0;
51195 }
51196 HEAP8[i5] = 1;
51197 HEAP32[i3 >> 2] = 0;
51198 HEAP32[i2 >> 2] = 0;
51199 HEAP32[i1 + 16 >> 2] = 0;
51200 __ZN12btDispatcherD2Ev(i1 | 0);
51201 return;
51202 }
51203 function __ZN11btRigidBodyD1Ev(i1) {
51204 i1 = i1 | 0;
51205 var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
51206 HEAP32[i1 >> 2] = 4936;
51207 i2 = i1 + 480 | 0;
51208 i3 = i1 + 488 | 0;
51209 i4 = HEAP32[i3 >> 2] | 0;
51210 i5 = i1 + 492 | 0;
51211 if ((i4 | 0) != 0) {
51212 if ((HEAP8[i5] | 0) != 0) {
51213 __Z21btAlignedFreeInternalPv(i4);
51214 }
51215 HEAP32[i3 >> 2] = 0;
51216 }
51217 HEAP8[i5] = 1;
51218 HEAP32[i3 >> 2] = 0;
51219 HEAP32[i2 >> 2] = 0;
51220 HEAP32[i1 + 484 >> 2] = 0;
51221 __ZN17btCollisionObjectD2Ev(i1 | 0);
51222 return;
51223 }
51224 function __ZNK13btSphereShape21calculateLocalInertiaEfR9btVector3(i1, d2, i3) {
51225 i1 = i1 | 0;
51226 d2 = +d2;
51227 i3 = i3 | 0;
51228 var i4 = 0, d5 = 0.0;
51229 i4 = i1;
51230 d5 = d2 * .4000000059604645 * +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i1);
51231 d2 = d5 * +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i1);
51232 HEAPF32[i3 >> 2] = d2;
51233 HEAPF32[i3 + 4 >> 2] = d2;
51234 HEAPF32[i3 + 8 >> 2] = d2;
51235 HEAPF32[i3 + 12 >> 2] = 0.0;
51236 return;
51237 }
51238 function __ZN24btConvexTriangleCallbackD2Ev(i1) {
51239 i1 = i1 | 0;
51240 var i2 = 0, i3 = 0, i4 = 0;
51241 HEAP32[i1 >> 2] = 3104;
51242 i2 = i1 + 48 | 0;
51243 i3 = HEAP32[i2 >> 2] | 0;
51244 i4 = i1 + 64 | 0;
51245 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 20 >> 2] & 127](i3, HEAP32[i4 >> 2] | 0);
51246 i3 = HEAP32[i2 >> 2] | 0;
51247 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, HEAP32[i4 >> 2] | 0);
51248 __ZN18btTriangleCallbackD2Ev(i1 | 0);
51249 return;
51250 }
51251 function __ZN34btSphereTriangleCollisionAlgorithmD0Ev(i1) {
51252 i1 = i1 | 0;
51253 var i2 = 0, i3 = 0;
51254 HEAP32[i1 >> 2] = 2424;
51255 do {
51256 if ((HEAP8[i1 + 8 | 0] | 0) != 0) {
51257 i2 = HEAP32[i1 + 12 >> 2] | 0;
51258 if ((i2 | 0) == 0) {
51259 break;
51260 }
51261 i3 = HEAP32[i1 + 4 >> 2] | 0;
51262 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
51263 }
51264 } while (0);
51265 __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
51266 __ZdlPv(i1);
51267 return;
51268 }
51269 function __ZN21btCollisionDispatcher13needsResponseEP17btCollisionObjectS1_(i1, i2, i3) {
51270 i1 = i1 | 0;
51271 i2 = i2 | 0;
51272 i3 = i3 | 0;
51273 var i4 = 0;
51274 i1 = HEAP32[i2 + 204 >> 2] | 0;
51275 do {
51276 if ((i1 & 4 | 0) == 0) {
51277 i2 = HEAP32[i3 + 204 >> 2] | 0;
51278 if ((i2 & 4 | 0) != 0) {
51279 i4 = 0;
51280 break;
51281 }
51282 if ((i1 & 3 | 0) == 0) {
51283 i4 = 1;
51284 break;
51285 }
51286 i4 = (i2 & 3 | 0) == 0;
51287 } else {
51288 i4 = 0;
51289 }
51290 } while (0);
51291 return i4 | 0;
51292 }
51293 function __ZN32btSphereSphereCollisionAlgorithmD0Ev(i1) {
51294 i1 = i1 | 0;
51295 var i2 = 0, i3 = 0;
51296 HEAP32[i1 >> 2] = 2568;
51297 do {
51298 if ((HEAP8[i1 + 8 | 0] | 0) != 0) {
51299 i2 = HEAP32[i1 + 12 >> 2] | 0;
51300 if ((i2 | 0) == 0) {
51301 break;
51302 }
51303 i3 = HEAP32[i1 + 4 >> 2] | 0;
51304 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
51305 }
51306 } while (0);
51307 __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
51308 __ZdlPv(i1);
51309 return;
51310 }
51311 function __ZN21btCollisionDispatcher13clearManifoldEP20btPersistentManifold(i1, i2) {
51312 i1 = i1 | 0;
51313 i2 = i2 | 0;
51314 var i3 = 0;
51315 i1 = i2 + 1116 | 0;
51316 if ((HEAP32[i1 >> 2] | 0) > 0) {
51317 i3 = 0;
51318 } else {
51319 HEAP32[i1 >> 2] = 0;
51320 return;
51321 }
51322 do {
51323 __ZN20btPersistentManifold14clearUserCacheER15btManifoldPoint(i2, i2 + 4 + (i3 * 276 | 0) | 0);
51324 i3 = i3 + 1 | 0;
51325 } while ((i3 | 0) < (HEAP32[i1 >> 2] | 0));
51326 HEAP32[i1 >> 2] = 0;
51327 return;
51328 }
51329 function copyTempDouble(i1) {
51330 i1 = i1 | 0;
51331 HEAP8[tempDoublePtr] = HEAP8[i1];
51332 HEAP8[tempDoublePtr + 1 | 0] = HEAP8[i1 + 1 | 0];
51333 HEAP8[tempDoublePtr + 2 | 0] = HEAP8[i1 + 2 | 0];
51334 HEAP8[tempDoublePtr + 3 | 0] = HEAP8[i1 + 3 | 0];
51335 HEAP8[tempDoublePtr + 4 | 0] = HEAP8[i1 + 4 | 0];
51336 HEAP8[tempDoublePtr + 5 | 0] = HEAP8[i1 + 5 | 0];
51337 HEAP8[tempDoublePtr + 6 | 0] = HEAP8[i1 + 6 | 0];
51338 HEAP8[tempDoublePtr + 7 | 0] = HEAP8[i1 + 7 | 0];
51339 }
51340 function __ZN23btDiscreteDynamicsWorld9serializeEP12btSerializer(i1, i2) {
51341 i1 = i1 | 0;
51342 i2 = i2 | 0;
51343 var i3 = 0;
51344 i3 = i2;
51345 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i3 >> 2] | 0) + 32 >> 2] & 511](i2);
51346 __ZN23btDiscreteDynamicsWorld20serializeRigidBodiesEP12btSerializer(i1, i2);
51347 __ZN16btCollisionWorld25serializeCollisionObjectsEP12btSerializer(i1 | 0, i2);
51348 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i3 >> 2] | 0) + 36 >> 2] & 511](i2);
51349 return;
51350 }
51351 function __ZN31btConvexPlaneCollisionAlgorithmD0Ev(i1) {
51352 i1 = i1 | 0;
51353 var i2 = 0, i3 = 0, i4 = 0;
51354 HEAP32[i1 >> 2] = 2656;
51355 if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
51356 i2 = i1;
51357 __ZdlPv(i2);
51358 return;
51359 }
51360 i3 = HEAP32[i1 + 12 >> 2] | 0;
51361 if ((i3 | 0) == 0) {
51362 i2 = i1;
51363 __ZdlPv(i2);
51364 return;
51365 }
51366 i4 = HEAP32[i1 + 4 >> 2] | 0;
51367 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i4 >> 2] | 0) + 16 >> 2] & 127](i4, i3);
51368 i2 = i1;
51369 __ZdlPv(i2);
51370 return;
51371 }
51372 function __ZN26btBoxBoxCollisionAlgorithmD0Ev(i1) {
51373 i1 = i1 | 0;
51374 var i2 = 0, i3 = 0;
51375 HEAP32[i1 >> 2] = 2960;
51376 do {
51377 if ((HEAP8[i1 + 8 | 0] | 0) != 0) {
51378 i2 = HEAP32[i1 + 12 >> 2] | 0;
51379 if ((i2 | 0) == 0) {
51380 break;
51381 }
51382 i3 = HEAP32[i1 + 4 >> 2] | 0;
51383 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
51384 }
51385 } while (0);
51386 __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
51387 __ZdlPv(i1);
51388 return;
51389 }
51390 function __ZN23btConvexConvexAlgorithmD0Ev(i1) {
51391 i1 = i1 | 0;
51392 var i2 = 0, i3 = 0;
51393 HEAP32[i1 >> 2] = 3464;
51394 do {
51395 if ((HEAP8[i1 + 16 | 0] | 0) != 0) {
51396 i2 = HEAP32[i1 + 20 >> 2] | 0;
51397 if ((i2 | 0) == 0) {
51398 break;
51399 }
51400 i3 = HEAP32[i1 + 4 >> 2] | 0;
51401 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
51402 }
51403 } while (0);
51404 __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
51405 __ZdlPv(i1);
51406 return;
51407 }
51408 function __ZN22btVoronoiSimplexSolver5resetEv(i1) {
51409 i1 = i1 | 0;
51410 var i2 = 0;
51411 HEAP8[i1 + 312 | 0] = 0;
51412 HEAP32[i1 >> 2] = 0;
51413 HEAP8[i1 + 356 | 0] = 1;
51414 HEAPF32[i1 + 292 >> 2] = 999999984306749400.0;
51415 HEAPF32[i1 + 296 >> 2] = 999999984306749400.0;
51416 HEAPF32[i1 + 300 >> 2] = 999999984306749400.0;
51417 HEAPF32[i1 + 304 >> 2] = 0.0;
51418 i2 = i1 + 332 | 0;
51419 _memset(i1 + 336 | 0, 0, 17);
51420 HEAP16[i2 >> 1] = HEAP16[i2 >> 1] & -16;
51421 return;
51422 }
51423 function __ZN34btSphereTriangleCollisionAlgorithmD2Ev(i1) {
51424 i1 = i1 | 0;
51425 var i2 = 0, i3 = 0;
51426 HEAP32[i1 >> 2] = 2424;
51427 do {
51428 if ((HEAP8[i1 + 8 | 0] | 0) != 0) {
51429 i2 = HEAP32[i1 + 12 >> 2] | 0;
51430 if ((i2 | 0) == 0) {
51431 break;
51432 }
51433 i3 = HEAP32[i1 + 4 >> 2] | 0;
51434 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
51435 }
51436 } while (0);
51437 __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
51438 return;
51439 }
51440 function __ZN32btSphereSphereCollisionAlgorithmD2Ev(i1) {
51441 i1 = i1 | 0;
51442 var i2 = 0, i3 = 0;
51443 HEAP32[i1 >> 2] = 2568;
51444 do {
51445 if ((HEAP8[i1 + 8 | 0] | 0) != 0) {
51446 i2 = HEAP32[i1 + 12 >> 2] | 0;
51447 if ((i2 | 0) == 0) {
51448 break;
51449 }
51450 i3 = HEAP32[i1 + 4 >> 2] | 0;
51451 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
51452 }
51453 } while (0);
51454 __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
51455 return;
51456 }
51457 function __ZN28btHashedOverlappingPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher(i1, i2, i3) {
51458 i1 = i1 | 0;
51459 i2 = i2 | 0;
51460 i3 = i3 | 0;
51461 i1 = i2 + 8 | 0;
51462 i2 = HEAP32[i1 >> 2] | 0;
51463 if ((i2 | 0) == 0) {
51464 return;
51465 }
51466 FUNCTION_TABLE_vi[HEAP32[HEAP32[i2 >> 2] >> 2] & 511](i2);
51467 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 60 >> 2] & 127](i3, HEAP32[i1 >> 2] | 0);
51468 HEAP32[i1 >> 2] = 0;
51469 return;
51470 }
51471 function __ZN26btBoxBoxCollisionAlgorithmD2Ev(i1) {
51472 i1 = i1 | 0;
51473 var i2 = 0, i3 = 0;
51474 HEAP32[i1 >> 2] = 2960;
51475 do {
51476 if ((HEAP8[i1 + 8 | 0] | 0) != 0) {
51477 i2 = HEAP32[i1 + 12 >> 2] | 0;
51478 if ((i2 | 0) == 0) {
51479 break;
51480 }
51481 i3 = HEAP32[i1 + 4 >> 2] | 0;
51482 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
51483 }
51484 } while (0);
51485 __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
51486 return;
51487 }
51488 function __ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher(i1, i2, i3) {
51489 i1 = i1 | 0;
51490 i2 = i2 | 0;
51491 i3 = i3 | 0;
51492 var i4 = 0, i5 = 0;
51493 i4 = STACKTOP;
51494 STACKTOP = STACKTOP + 8 | 0;
51495 i5 = i4 | 0;
51496 HEAP32[i5 >> 2] = 1456;
51497 HEAP32[i5 + 4 >> 2] = i2;
51498 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i1 >> 2] | 0) + 48 >> 2] & 127](i1, i5 | 0, i3);
51499 STACKTOP = i4;
51500 return;
51501 }
51502 function __ZN23btConvexConvexAlgorithmD2Ev(i1) {
51503 i1 = i1 | 0;
51504 var i2 = 0, i3 = 0;
51505 HEAP32[i1 >> 2] = 3464;
51506 do {
51507 if ((HEAP8[i1 + 16 | 0] | 0) != 0) {
51508 i2 = HEAP32[i1 + 20 >> 2] | 0;
51509 if ((i2 | 0) == 0) {
51510 break;
51511 }
51512 i3 = HEAP32[i1 + 4 >> 2] | 0;
51513 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
51514 }
51515 } while (0);
51516 __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
51517 return;
51518 }
51519 function __ZN22btVoronoiSimplexSolver7closestER9btVector3(i1, i2) {
51520 i1 = i1 | 0;
51521 i2 = i2 | 0;
51522 var i3 = 0, i4 = 0;
51523 i3 = __ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i1) | 0;
51524 i4 = i2;
51525 i2 = i1 + 276 | 0;
51526 HEAP32[i4 >> 2] = HEAP32[i2 >> 2];
51527 HEAP32[i4 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
51528 HEAP32[i4 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
51529 HEAP32[i4 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
51530 return i3 | 0;
51531 }
51532 function __ZN18btConvexPolyhedronC2Ev(i1) {
51533 i1 = i1 | 0;
51534 HEAP32[i1 >> 2] = 4112;
51535 HEAP8[i1 + 20 | 0] = 1;
51536 HEAP32[i1 + 16 >> 2] = 0;
51537 HEAP32[i1 + 8 >> 2] = 0;
51538 HEAP32[i1 + 12 >> 2] = 0;
51539 HEAP8[i1 + 40 | 0] = 1;
51540 HEAP32[i1 + 36 >> 2] = 0;
51541 HEAP32[i1 + 28 >> 2] = 0;
51542 HEAP32[i1 + 32 >> 2] = 0;
51543 HEAP8[i1 + 60 | 0] = 1;
51544 HEAP32[i1 + 56 >> 2] = 0;
51545 HEAP32[i1 + 48 >> 2] = 0;
51546 HEAP32[i1 + 52 >> 2] = 0;
51547 return;
51548 }
51549 function ___muldsi3(i1, i2) {
51550 i1 = i1 | 0;
51551 i2 = i2 | 0;
51552 var i3 = 0, i4 = 0, i5 = 0, i6 = 0;
51553 i3 = i1 & 65535;
51554 i4 = i2 & 65535;
51555 i5 = Math_imul(i4, i3) | 0;
51556 i6 = i1 >>> 16;
51557 i1 = (i5 >>> 16) + (Math_imul(i4, i6) | 0) | 0;
51558 i4 = i2 >>> 16;
51559 i2 = Math_imul(i4, i3) | 0;
51560 return (tempRet0 = (i1 >>> 16) + (Math_imul(i4, i6) | 0) + (((i1 & 65535) + i2 | 0) >>> 16) | 0, i1 + i2 << 16 | i5 & 65535 | 0) | 0;
51561 }
51562 function __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i1, i2, i3, i4, i5) {
51563 i1 = i1 | 0;
51564 i2 = i2 | 0;
51565 i3 = i3 | 0;
51566 i4 = i4 | 0;
51567 i5 = i5 | 0;
51568 __ZN17btGjkPairDetector26getClosestPointsNonVirtualERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDraw(i1, i2, i3, i4);
51569 return;
51570 }
51571 function __ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallback14processOverlapER16btBroadphasePair(i1, i2) {
51572 i1 = i1 | 0;
51573 i2 = i2 | 0;
51574 var i3 = 0, i4 = 0;
51575 i3 = HEAP32[i1 + 4 >> 2] | 0;
51576 if ((HEAP32[i2 >> 2] | 0) == (i3 | 0)) {
51577 i4 = 1;
51578 return i4 | 0;
51579 }
51580 i4 = (HEAP32[i2 + 4 >> 2] | 0) == (i3 | 0);
51581 return i4 | 0;
51582 }
51583 function dynCall_iiiiiiiiiiii(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12) {
51584 i1 = i1 | 0;
51585 i2 = i2 | 0;
51586 i3 = i3 | 0;
51587 i4 = i4 | 0;
51588 i5 = i5 | 0;
51589 i6 = i6 | 0;
51590 i7 = i7 | 0;
51591 i8 = i8 | 0;
51592 i9 = i9 | 0;
51593 i10 = i10 | 0;
51594 i11 = i11 | 0;
51595 i12 = i12 | 0;
51596 return FUNCTION_TABLE_iiiiiiiiiiii[i1 & 7](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0, i8 | 0, i9 | 0, i10 | 0, i11 | 0, i12 | 0) | 0;
51597 }
51598 function dynCall_fiiiiiiiiiii(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12) {
51599 i1 = i1 | 0;
51600 i2 = i2 | 0;
51601 i3 = i3 | 0;
51602 i4 = i4 | 0;
51603 i5 = i5 | 0;
51604 i6 = i6 | 0;
51605 i7 = i7 | 0;
51606 i8 = i8 | 0;
51607 i9 = i9 | 0;
51608 i10 = i10 | 0;
51609 i11 = i11 | 0;
51610 i12 = i12 | 0;
51611 return +FUNCTION_TABLE_fiiiiiiiiiii[i1 & 3](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0, i8 | 0, i9 | 0, i10 | 0, i11 | 0, i12 | 0);
51612 }
51613 function __ZN21btConvexInternalShape15setLocalScalingERK9btVector3(i1, i2) {
51614 i1 = i1 | 0;
51615 i2 = i2 | 0;
51616 var d3 = 0.0, d4 = 0.0, d5 = 0.0;
51617 d3 = +Math_abs(+(+HEAPF32[i2 >> 2]));
51618 d4 = +Math_abs(+(+HEAPF32[i2 + 4 >> 2]));
51619 d5 = +Math_abs(+(+HEAPF32[i2 + 8 >> 2]));
51620 HEAPF32[i1 + 12 >> 2] = d3;
51621 HEAPF32[i1 + 16 >> 2] = d4;
51622 HEAPF32[i1 + 20 >> 2] = d5;
51623 HEAPF32[i1 + 24 >> 2] = 0.0;
51624 return;
51625 }
51626 function __ZN16btDbvtBroadphaseD0Ev(i1) {
51627 i1 = i1 | 0;
51628 var i2 = 0, i3 = 0;
51629 HEAP32[i1 >> 2] = 4392;
51630 if ((HEAP8[i1 + 152 | 0] | 0) != 0) {
51631 i2 = i1 + 96 | 0;
51632 i3 = HEAP32[i2 >> 2] | 0;
51633 FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
51634 __Z21btAlignedFreeInternalPv(HEAP32[i2 >> 2] | 0);
51635 }
51636 __ZN6btDbvtD2Ev(i1 + 44 | 0);
51637 __ZN6btDbvtD2Ev(i1 + 4 | 0);
51638 __ZdlPv(i1);
51639 return;
51640 }
51641 function __ZNK13btSphereShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(i1, i2, i3, i4) {
51642 i1 = i1 | 0;
51643 i2 = i2 | 0;
51644 i3 = i3 | 0;
51645 i4 = i4 | 0;
51646 var i5 = 0;
51647 if ((i4 | 0) > 0) {
51648 i5 = 0;
51649 } else {
51650 return;
51651 }
51652 while (1) {
51653 i2 = i5 + 1 | 0;
51654 _memset(i3 + (i5 << 4) | 0, 0, 16);
51655 if ((i2 | 0) < (i4 | 0)) {
51656 i5 = i2;
51657 } else {
51658 break;
51659 }
51660 }
51661 return;
51662 }
51663 function __ZN27btContinuousConvexCollisionC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i1, i2, i3, i4, i5) {
51664 i1 = i1 | 0;
51665 i2 = i2 | 0;
51666 i3 = i3 | 0;
51667 i4 = i4 | 0;
51668 i5 = i5 | 0;
51669 HEAP32[i1 >> 2] = 2928;
51670 HEAP32[i1 + 4 >> 2] = i4;
51671 HEAP32[i1 + 8 >> 2] = i5;
51672 HEAP32[i1 + 12 >> 2] = i2;
51673 HEAP32[i1 + 16 >> 2] = i3;
51674 HEAP32[i1 + 20 >> 2] = 0;
51675 return;
51676 }
51677 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfENK14LocalInfoAdder14needsCollisionE_1P17btBroadphaseProxy(i1, i2) {
51678 i1 = i1 | 0;
51679 i2 = i2 | 0;
51680 var i3 = 0;
51681 i3 = HEAP32[i1 + 12 >> 2] | 0;
51682 return FUNCTION_TABLE_iii[HEAP32[(HEAP32[i3 >> 2] | 0) + 8 >> 2] & 63](i3, i2) | 0;
51683 }
51684 function __ZN11btUnionFindD2Ev(i1) {
51685 i1 = i1 | 0;
51686 var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
51687 i2 = i1 + 4 | 0;
51688 i3 = i1 + 12 | 0;
51689 i4 = HEAP32[i3 >> 2] | 0;
51690 i5 = i1 + 16 | 0;
51691 if ((i4 | 0) != 0) {
51692 if ((HEAP8[i5] | 0) != 0) {
51693 __Z21btAlignedFreeInternalPv(i4);
51694 }
51695 HEAP32[i3 >> 2] = 0;
51696 }
51697 HEAP8[i5] = 1;
51698 HEAP32[i3 >> 2] = 0;
51699 HEAP32[i2 >> 2] = 0;
51700 HEAP32[i1 + 8 >> 2] = 0;
51701 return;
51702 }
51703 function __ZN16btDbvtBroadphaseD2Ev(i1) {
51704 i1 = i1 | 0;
51705 var i2 = 0, i3 = 0;
51706 HEAP32[i1 >> 2] = 4392;
51707 if ((HEAP8[i1 + 152 | 0] | 0) != 0) {
51708 i2 = i1 + 96 | 0;
51709 i3 = HEAP32[i2 >> 2] | 0;
51710 FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
51711 __Z21btAlignedFreeInternalPv(HEAP32[i2 >> 2] | 0);
51712 }
51713 __ZN6btDbvtD2Ev(i1 + 44 | 0);
51714 __ZN6btDbvtD2Ev(i1 + 4 | 0);
51715 return;
51716 }
51717 function __ZN23btDiscreteDynamicsWorld21removeCollisionObjectEP17btCollisionObject(i1, i2) {
51718 i1 = i1 | 0;
51719 i2 = i2 | 0;
51720 if ((HEAP32[i2 + 232 >> 2] & 2 | 0) == 0 | (i2 | 0) == 0) {
51721 __ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject(i1 | 0, i2);
51722 return;
51723 } else {
51724 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 88 >> 2] & 127](i1, i2);
51725 return;
51726 }
51727 }
51728 function __ZN25btSimulationIslandManagerC2Ev(i1) {
51729 i1 = i1 | 0;
51730 HEAP32[i1 >> 2] = 3032;
51731 __ZN11btUnionFindC2Ev(i1 + 4 | 0);
51732 HEAP8[i1 + 40 | 0] = 1;
51733 HEAP32[i1 + 36 >> 2] = 0;
51734 HEAP32[i1 + 28 >> 2] = 0;
51735 HEAP32[i1 + 32 >> 2] = 0;
51736 HEAP8[i1 + 60 | 0] = 1;
51737 HEAP32[i1 + 56 >> 2] = 0;
51738 HEAP32[i1 + 48 >> 2] = 0;
51739 HEAP32[i1 + 52 >> 2] = 0;
51740 HEAP8[i1 + 64 | 0] = 1;
51741 return;
51742 }
51743 function _llvm_cttz_i32(i1) {
51744 i1 = i1 | 0;
51745 var i2 = 0;
51746 i2 = HEAP8[cttz_i8 + (i1 & 255) | 0] | 0;
51747 if ((i2 | 0) < 8) return i2 | 0;
51748 i2 = HEAP8[cttz_i8 + (i1 >> 8 & 255) | 0] | 0;
51749 if ((i2 | 0) < 8) return i2 + 8 | 0;
51750 i2 = HEAP8[cttz_i8 + (i1 >> 16 & 255) | 0] | 0;
51751 if ((i2 | 0) < 8) return i2 + 16 | 0;
51752 return (HEAP8[cttz_i8 + (i1 >>> 24) | 0] | 0) + 24 | 0;
51753 }
51754 function _llvm_ctlz_i32(i1) {
51755 i1 = i1 | 0;
51756 var i2 = 0;
51757 i2 = HEAP8[ctlz_i8 + (i1 >>> 24) | 0] | 0;
51758 if ((i2 | 0) < 8) return i2 | 0;
51759 i2 = HEAP8[ctlz_i8 + (i1 >> 16 & 255) | 0] | 0;
51760 if ((i2 | 0) < 8) return i2 + 8 | 0;
51761 i2 = HEAP8[ctlz_i8 + (i1 >> 8 & 255) | 0] | 0;
51762 if ((i2 | 0) < 8) return i2 + 16 | 0;
51763 return (HEAP8[ctlz_i8 + (i1 & 255) | 0] | 0) + 24 | 0;
51764 }
51765 function __ZN11btRigidBodyC2ERKNS_27btRigidBodyConstructionInfoE(i1, i2) {
51766 i1 = i1 | 0;
51767 i2 = i2 | 0;
51768 __ZN17btCollisionObjectC2Ev(i1 | 0);
51769 HEAP32[i1 >> 2] = 4936;
51770 HEAP8[i1 + 492 | 0] = 1;
51771 HEAP32[i1 + 488 >> 2] = 0;
51772 HEAP32[i1 + 480 >> 2] = 0;
51773 HEAP32[i1 + 484 >> 2] = 0;
51774 __ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i1, i2);
51775 return;
51776 }
51777 function dynCall_fiiiiiiiiii(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
51778 i1 = i1 | 0;
51779 i2 = i2 | 0;
51780 i3 = i3 | 0;
51781 i4 = i4 | 0;
51782 i5 = i5 | 0;
51783 i6 = i6 | 0;
51784 i7 = i7 | 0;
51785 i8 = i8 | 0;
51786 i9 = i9 | 0;
51787 i10 = i10 | 0;
51788 i11 = i11 | 0;
51789 return +FUNCTION_TABLE_fiiiiiiiiii[i1 & 7](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0, i8 | 0, i9 | 0, i10 | 0, i11 | 0);
51790 }
51791 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEENK15LocalInfoAdder214needsCollisionEP17btBroadphaseProxy(i1, i2) {
51792 i1 = i1 | 0;
51793 i2 = i2 | 0;
51794 var i3 = 0;
51795 i3 = HEAP32[i1 + 20 >> 2] | 0;
51796 return FUNCTION_TABLE_iii[HEAP32[(HEAP32[i3 >> 2] | 0) + 8 >> 2] & 63](i3, i2) | 0;
51797 }
51798 function dynCall_viiiiffffiif(i1, i2, i3, i4, i5, d6, d7, d8, d9, i10, i11, d12) {
51799 i1 = i1 | 0;
51800 i2 = i2 | 0;
51801 i3 = i3 | 0;
51802 i4 = i4 | 0;
51803 i5 = i5 | 0;
51804 d6 = +d6;
51805 d7 = +d7;
51806 d8 = +d8;
51807 d9 = +d9;
51808 i10 = i10 | 0;
51809 i11 = i11 | 0;
51810 d12 = +d12;
51811 FUNCTION_TABLE_viiiiffffiif[i1 & 1](i2 | 0, i3 | 0, i4 | 0, i5 | 0, +d6, +d7, +d8, +d9, i10 | 0, i11 | 0, +d12);
51812 }
51813 function dynCall_viiiiiiiiii(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
51814 i1 = i1 | 0;
51815 i2 = i2 | 0;
51816 i3 = i3 | 0;
51817 i4 = i4 | 0;
51818 i5 = i5 | 0;
51819 i6 = i6 | 0;
51820 i7 = i7 | 0;
51821 i8 = i8 | 0;
51822 i9 = i9 | 0;
51823 i10 = i10 | 0;
51824 i11 = i11 | 0;
51825 FUNCTION_TABLE_viiiiiiiiii[i1 & 3](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0, i8 | 0, i9 | 0, i10 | 0, i11 | 0);
51826 }
51827 function __ZNK14btAngularLimit7getHighEv(i1) {
51828 i1 = i1 | 0;
51829 var d2 = 0.0, d3 = 0.0;
51830 d2 = +_fmod(+(+HEAPF32[i1 >> 2] + +HEAPF32[i1 + 4 >> 2]), 6.2831854820251465);
51831 if (d2 < -3.1415927410125732) {
51832 d3 = d2 + 6.2831854820251465;
51833 return +d3;
51834 }
51835 if (d2 <= 3.1415927410125732) {
51836 d3 = d2;
51837 return +d3;
51838 }
51839 d3 = d2 - 6.2831854820251465;
51840 return +d3;
51841 }
51842 function __ZN23btDiscreteDynamicsWorld11clearForcesEv(i1) {
51843 i1 = i1 | 0;
51844 var i2 = 0, i3 = 0;
51845 i2 = i1 + 204 | 0;
51846 if ((HEAP32[i2 >> 2] | 0) <= 0) {
51847 return;
51848 }
51849 i3 = i1 + 212 | 0;
51850 i1 = 0;
51851 do {
51852 _memset((HEAP32[(HEAP32[i3 >> 2] | 0) + (i1 << 2) >> 2] | 0) + 404 | 0, 0, 32);
51853 i1 = i1 + 1 | 0;
51854 } while ((i1 | 0) < (HEAP32[i2 >> 2] | 0));
51855 return;
51856 }
51857 function __ZNK14btAngularLimit6getLowEv(i1) {
51858 i1 = i1 | 0;
51859 var d2 = 0.0, d3 = 0.0;
51860 d2 = +_fmod(+(+HEAPF32[i1 >> 2] - +HEAPF32[i1 + 4 >> 2]), 6.2831854820251465);
51861 if (d2 < -3.1415927410125732) {
51862 d3 = d2 + 6.2831854820251465;
51863 return +d3;
51864 }
51865 if (d2 <= 3.1415927410125732) {
51866 d3 = d2;
51867 return +d3;
51868 }
51869 d3 = d2 - 6.2831854820251465;
51870 return +d3;
51871 }
51872 function dynCall_viiiifffffif(i1, i2, i3, i4, i5, d6, d7, d8, d9, d10, i11, d12) {
51873 i1 = i1 | 0;
51874 i2 = i2 | 0;
51875 i3 = i3 | 0;
51876 i4 = i4 | 0;
51877 i5 = i5 | 0;
51878 d6 = +d6;
51879 d7 = +d7;
51880 d8 = +d8;
51881 d9 = +d9;
51882 d10 = +d10;
51883 i11 = i11 | 0;
51884 d12 = +d12;
51885 FUNCTION_TABLE_viiiifffffif[i1 & 1](i2 | 0, i3 | 0, i4 | 0, i5 | 0, +d6, +d7, +d8, +d9, +d10, i11 | 0, +d12);
51886 }
51887 function __ZN31btConvexPlaneCollisionAlgorithmD2Ev(i1) {
51888 i1 = i1 | 0;
51889 var i2 = 0, i3 = 0;
51890 HEAP32[i1 >> 2] = 2656;
51891 if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
51892 return;
51893 }
51894 i2 = HEAP32[i1 + 12 >> 2] | 0;
51895 if ((i2 | 0) == 0) {
51896 return;
51897 }
51898 i3 = HEAP32[i1 + 4 >> 2] | 0;
51899 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
51900 return;
51901 }
51902 function __ZN16btCollisionWorld9serializeEP12btSerializer(i1, i2) {
51903 i1 = i1 | 0;
51904 i2 = i2 | 0;
51905 var i3 = 0;
51906 i3 = i2;
51907 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i3 >> 2] | 0) + 32 >> 2] & 511](i2);
51908 __ZN16btCollisionWorld25serializeCollisionObjectsEP12btSerializer(i1, i2);
51909 FUNCTION_TABLE_vi[HEAP32[(HEAP32[i3 >> 2] | 0) + 36 >> 2] & 511](i2);
51910 return;
51911 }
51912 function __ZNK15btTriangleShape9getVertexEiR9btVector3(i1, i2, i3) {
51913 i1 = i1 | 0;
51914 i2 = i2 | 0;
51915 i3 = i3 | 0;
51916 var i4 = 0;
51917 i4 = i3;
51918 i3 = i1 + 56 + (i2 << 4) | 0;
51919 HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
51920 HEAP32[i4 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
51921 HEAP32[i4 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
51922 HEAP32[i4 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
51923 return;
51924 }
51925 function __ZNK15btTriangleShape7getEdgeEiR9btVector3S1_(i1, i2, i3, i4) {
51926 i1 = i1 | 0;
51927 i2 = i2 | 0;
51928 i3 = i3 | 0;
51929 i4 = i4 | 0;
51930 var i5 = 0;
51931 i5 = i1;
51932 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i5 >> 2] | 0) + 100 >> 2] & 127](i1, i2, i3);
51933 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i5 >> 2] | 0) + 100 >> 2] & 127](i1, (i2 + 1 | 0) % 3 | 0, i4);
51934 return;
51935 }
51936 function __ZN11btUnionFind5resetEi(i1, i2) {
51937 i1 = i1 | 0;
51938 i2 = i2 | 0;
51939 var i3 = 0;
51940 __ZN11btUnionFind8allocateEi(i1, i2);
51941 if ((i2 | 0) <= 0) {
51942 return;
51943 }
51944 i3 = HEAP32[i1 + 12 >> 2] | 0;
51945 i1 = 0;
51946 do {
51947 HEAP32[i3 + (i1 << 3) >> 2] = i1;
51948 HEAP32[i3 + (i1 << 3) + 4 >> 2] = 1;
51949 i1 = i1 + 1 | 0;
51950 } while ((i1 | 0) < (i2 | 0));
51951 return;
51952 }
51953 function __ZL21btAlignedAllocDefaultji(i1, i2) {
51954 i1 = i1 | 0;
51955 i2 = i2 | 0;
51956 var i3 = 0, i4 = 0, i5 = 0;
51957 i3 = i2 - 1 | 0;
51958 i4 = FUNCTION_TABLE_ii[HEAP32[2974] & 127](i1 + 4 + i3 | 0) | 0;
51959 if ((i4 | 0) == 0) {
51960 i5 = 0;
51961 return i5 | 0;
51962 }
51963 i1 = i2 - (i4 + 4) & i3;
51964 HEAP32[i4 + i1 >> 2] = i4;
51965 i5 = i4 + (i1 + 4) | 0;
51966 return i5 | 0;
51967 }
51968 function __ZN23btConvexConvexAlgorithm10CreateFuncC2EP22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i1, i2, i3) {
51969 i1 = i1 | 0;
51970 i2 = i2 | 0;
51971 i3 = i3 | 0;
51972 HEAP8[i1 + 4 | 0] = 0;
51973 HEAP32[i1 >> 2] = 2184;
51974 HEAP32[i1 + 16 >> 2] = 0;
51975 HEAP32[i1 + 20 >> 2] = 3;
51976 HEAP32[i1 + 12 >> 2] = i2;
51977 HEAP32[i1 + 8 >> 2] = i3;
51978 return;
51979 }
51980 function dynCall_iiiiiiiiii(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10) {
51981 i1 = i1 | 0;
51982 i2 = i2 | 0;
51983 i3 = i3 | 0;
51984 i4 = i4 | 0;
51985 i5 = i5 | 0;
51986 i6 = i6 | 0;
51987 i7 = i7 | 0;
51988 i8 = i8 | 0;
51989 i9 = i9 | 0;
51990 i10 = i10 | 0;
51991 return FUNCTION_TABLE_iiiiiiiiii[i1 & 3](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0, i8 | 0, i9 | 0, i10 | 0) | 0;
51992 }
51993 function __ZN20btPersistentManifold14clearUserCacheER15btManifoldPoint(i1, i2) {
51994 i1 = i1 | 0;
51995 i2 = i2 | 0;
51996 var i3 = 0;
51997 i1 = i2 + 108 | 0;
51998 i2 = HEAP32[i1 >> 2] | 0;
51999 if ((i2 | 0) == 0) {
52000 return;
52001 }
52002 i3 = HEAP32[3008] | 0;
52003 if ((i3 | 0) == 0) {
52004 return;
52005 }
52006 FUNCTION_TABLE_ii[i3 & 127](i2) | 0;
52007 HEAP32[i1 >> 2] = 0;
52008 return;
52009 }
52010 function __ZN17btCollisionObject8activateEb(i1, i2) {
52011 i1 = i1 | 0;
52012 i2 = i2 | 0;
52013 do {
52014 if (!i2) {
52015 if ((HEAP32[i1 + 204 >> 2] & 3 | 0) == 0) {
52016 break;
52017 }
52018 return;
52019 }
52020 } while (0);
52021 i2 = i1 + 216 | 0;
52022 if (((HEAP32[i2 >> 2] | 0) - 4 | 0) >>> 0 >= 2) {
52023 HEAP32[i2 >> 2] = 1;
52024 }
52025 HEAPF32[i1 + 220 >> 2] = 0.0;
52026 return;
52027 }
52028 function __ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy(i1, i2) {
52029 i1 = i1 | 0;
52030 i2 = i2 | 0;
52031 var i3 = 0;
52032 if ((HEAP16[i1 + 10 >> 1] & HEAP16[i2 + 4 >> 1]) << 16 >> 16 == 0) {
52033 i3 = 0;
52034 return i3 | 0;
52035 }
52036 i3 = (HEAP16[i2 + 6 >> 1] & HEAP16[i1 + 8 >> 1]) << 16 >> 16 != 0;
52037 return i3 | 0;
52038 }
52039 function _llvm_uadd_with_overflow_i64(i1, i2, i3, i4) {
52040 i1 = i1 | 0;
52041 i2 = i2 | 0;
52042 i3 = i3 | 0;
52043 i4 = i4 | 0;
52044 var i5 = 0;
52045 i5 = i1 + i3 >>> 0;
52046 i3 = i2 + i4 >>> 0;
52047 i4 = i3 >>> 0 < i2 >>> 0 | 0;
52048 if (i5 >>> 0 < i1 >>> 0) {
52049 i3 = i3 + 1 >>> 0;
52050 i4 = i4 | !i3;
52051 }
52052 return (tempRet0 = i3, tempRet1 = i4, i5 | 0) | 0;
52053 }
52054 function __ZNK23btDiscreteDynamicsWorld10getGravityEv(i1, i2) {
52055 i1 = i1 | 0;
52056 i2 = i2 | 0;
52057 var i3 = 0;
52058 i3 = i1;
52059 i1 = i2 + 220 | 0;
52060 HEAP32[i3 >> 2] = HEAP32[i1 >> 2];
52061 HEAP32[i3 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
52062 HEAP32[i3 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
52063 HEAP32[i3 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
52064 return;
52065 }
52066 function __ZN23btDiscreteDynamicsWorld19setConstraintSolverEP18btConstraintSolver(i1, i2) {
52067 i1 = i1 | 0;
52068 i2 = i2 | 0;
52069 var i3 = 0, i4 = 0;
52070 i3 = i1 + 241 | 0;
52071 i4 = i1 + 172 | 0;
52072 if ((HEAP8[i3] | 0) != 0) {
52073 __Z21btAlignedFreeInternalPv(HEAP32[i4 >> 2] | 0);
52074 }
52075 HEAP8[i3] = 0;
52076 HEAP32[i4 >> 2] = i2;
52077 return;
52078 }
52079 function __ZN6btDbvt6removeEP10btDbvtNode(i1, i2) {
52080 i1 = i1 | 0;
52081 i2 = i2 | 0;
52082 var i3 = 0;
52083 __ZL10removeleafP6btDbvtP10btDbvtNode(i1, i2) | 0;
52084 i3 = i1 + 4 | 0;
52085 __Z21btAlignedFreeInternalPv(HEAP32[i3 >> 2] | 0);
52086 HEAP32[i3 >> 2] = i2;
52087 i2 = i1 + 12 | 0;
52088 HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) - 1;
52089 return;
52090 }
52091 function dynCall_viiiiiffii(i1, i2, i3, i4, i5, i6, d7, d8, i9, i10) {
52092 i1 = i1 | 0;
52093 i2 = i2 | 0;
52094 i3 = i3 | 0;
52095 i4 = i4 | 0;
52096 i5 = i5 | 0;
52097 i6 = i6 | 0;
52098 d7 = +d7;
52099 d8 = +d8;
52100 i9 = i9 | 0;
52101 i10 = i10 | 0;
52102 FUNCTION_TABLE_viiiiiffii[i1 & 3](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, +d7, +d8, i9 | 0, i10 | 0);
52103 }
52104 function __ZN27btContinuousConvexCollisionC2EPK13btConvexShapePK18btStaticPlaneShape(i1, i2, i3) {
52105 i1 = i1 | 0;
52106 i2 = i2 | 0;
52107 i3 = i3 | 0;
52108 HEAP32[i1 >> 2] = 2928;
52109 HEAP32[i1 + 4 >> 2] = 0;
52110 HEAP32[i1 + 8 >> 2] = 0;
52111 HEAP32[i1 + 12 >> 2] = i2;
52112 HEAP32[i1 + 16 >> 2] = 0;
52113 HEAP32[i1 + 20 >> 2] = i3;
52114 return;
52115 }
52116 function __ZN12CProfileNode5ResetEv(i1) {
52117 i1 = i1 | 0;
52118 var i2 = 0;
52119 i2 = i1;
52120 do {
52121 HEAP32[i2 + 4 >> 2] = 0;
52122 HEAPF32[i2 + 8 >> 2] = 0.0;
52123 i1 = HEAP32[i2 + 24 >> 2] | 0;
52124 if ((i1 | 0) != 0) {
52125 __ZN12CProfileNode5ResetEv(i1);
52126 }
52127 i2 = HEAP32[i2 + 28 >> 2] | 0;
52128 } while ((i2 | 0) != 0);
52129 return;
52130 }
52131 function __ZN30btActivatingCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
52132 i1 = i1 | 0;
52133 i2 = i2 | 0;
52134 i3 = i3 | 0;
52135 i4 = i4 | 0;
52136 __ZN20btCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfo(i1 | 0, i2);
52137 HEAP32[i1 >> 2] = 2728;
52138 return;
52139 }
52140 function ___uremdi3(i1, i2, i3, i4) {
52141 i1 = i1 | 0;
52142 i2 = i2 | 0;
52143 i3 = i3 | 0;
52144 i4 = i4 | 0;
52145 var i5 = 0, i6 = 0;
52146 i5 = STACKTOP;
52147 STACKTOP = STACKTOP + 8 | 0;
52148 i6 = i5 | 0;
52149 ___udivmoddi4(i1, i2, i3, i4, i6) | 0;
52150 STACKTOP = i5;
52151 return (tempRet0 = HEAP32[i6 + 4 >> 2] | 0, HEAP32[i6 >> 2] | 0) | 0;
52152 }
52153 function __ZN21btConvexInternalShapeC2Ev(i1) {
52154 i1 = i1 | 0;
52155 __ZN13btConvexShapeC2Ev(i1 | 0);
52156 HEAP32[i1 >> 2] = 3680;
52157 HEAPF32[i1 + 12 >> 2] = 1.0;
52158 HEAPF32[i1 + 16 >> 2] = 1.0;
52159 HEAPF32[i1 + 20 >> 2] = 1.0;
52160 HEAPF32[i1 + 24 >> 2] = 0.0;
52161 HEAPF32[i1 + 44 >> 2] = .03999999910593033;
52162 return;
52163 }
52164 function __GLOBAL__I_a() {
52165 var i1 = 0;
52166 i1 = __Znwj(8) | 0;
52167 HEAP32[3578] = i1;
52168 _gettimeofday(i1 | 0, 0) | 0;
52169 _atexit(336, 14312, ___dso_handle | 0) | 0;
52170 HEAP32[3564] = 264;
52171 _memset(14260, 0, 28);
52172 __ZN12CProfileNode5ResetEv(14256);
52173 _atexit(246, 14256, ___dso_handle | 0) | 0;
52174 return;
52175 }
52176 function dynCall_viiiiiiii(i1, i2, i3, i4, i5, i6, i7, i8, i9) {
52177 i1 = i1 | 0;
52178 i2 = i2 | 0;
52179 i3 = i3 | 0;
52180 i4 = i4 | 0;
52181 i5 = i5 | 0;
52182 i6 = i6 | 0;
52183 i7 = i7 | 0;
52184 i8 = i8 | 0;
52185 i9 = i9 | 0;
52186 FUNCTION_TABLE_viiiiiiii[i1 & 3](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0, i8 | 0, i9 | 0);
52187 }
52188 function __ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResult20setShapeIdentifiersBEii(i1, i2, i3) {
52189 i1 = i1 | 0;
52190 i2 = i2 | 0;
52191 i3 = i3 | 0;
52192 return;
52193 }
52194 function __ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResult20setShapeIdentifiersAEii(i1, i2, i3) {
52195 i1 = i1 | 0;
52196 i2 = i2 | 0;
52197 i3 = i3 | 0;
52198 return;
52199 }
52200 function __ZN6btDbvtC2Ev(i1) {
52201 i1 = i1 | 0;
52202 HEAP8[i1 + 36 | 0] = 1;
52203 HEAP32[i1 + 32 >> 2] = 0;
52204 HEAP32[i1 + 24 >> 2] = 0;
52205 HEAP32[i1 + 28 >> 2] = 0;
52206 HEAP32[i1 >> 2] = 0;
52207 HEAP32[i1 + 4 >> 2] = 0;
52208 HEAP32[i1 + 8 >> 2] = -1;
52209 HEAP32[i1 + 12 >> 2] = 0;
52210 HEAP32[i1 + 16 >> 2] = 0;
52211 return;
52212 }
52213 function __ZThn4_N17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii(i1, i2, i3, i4) {
52214 i1 = i1 | 0;
52215 i2 = i2 | 0;
52216 i3 = i3 | 0;
52217 i4 = i4 | 0;
52218 var i5 = 0;
52219 i5 = i1 - 92 + 88 | 0;
52220 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] & 127](i5, i2, i3, i4);
52221 return;
52222 }
52223 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0E_0v(i1) {
52224 i1 = i1 | 0;
52225 __ZN18btTriangleCallbackD2Ev(i1 | 0);
52226 __ZdlPv(i1);
52227 return;
52228 }
52229 function ___muldi3(i1, i2, i3, i4) {
52230 i1 = i1 | 0;
52231 i2 = i2 | 0;
52232 i3 = i3 | 0;
52233 i4 = i4 | 0;
52234 var i5 = 0, i6 = 0;
52235 i5 = i1;
52236 i1 = i3;
52237 i3 = ___muldsi3(i5, i1) | 0;
52238 i6 = tempRet0;
52239 return (tempRet0 = (Math_imul(i2, i1) | 0) + (Math_imul(i4, i5) | 0) + i6 | i6 & 0, i3 | 0 | 0) | 0;
52240 }
52241 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0Ev(i1) {
52242 i1 = i1 | 0;
52243 __ZN18btTriangleCallbackD2Ev(i1 | 0);
52244 __ZdlPv(i1);
52245 return;
52246 }
52247 function __ZN22btSubsimplexConvexCastC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolver(i1, i2, i3, i4) {
52248 i1 = i1 | 0;
52249 i2 = i2 | 0;
52250 i3 = i3 | 0;
52251 i4 = i4 | 0;
52252 HEAP32[i1 >> 2] = 3536;
52253 HEAP32[i1 + 4 >> 2] = i4;
52254 HEAP32[i1 + 8 >> 2] = i2;
52255 HEAP32[i1 + 12 >> 2] = i3;
52256 return;
52257 }
52258 function dynCall_iiiiiiii(i1, i2, i3, i4, i5, i6, i7, i8) {
52259 i1 = i1 | 0;
52260 i2 = i2 | 0;
52261 i3 = i3 | 0;
52262 i4 = i4 | 0;
52263 i5 = i5 | 0;
52264 i6 = i6 | 0;
52265 i7 = i7 | 0;
52266 i8 = i8 | 0;
52267 return FUNCTION_TABLE_iiiiiiii[i1 & 1](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0, i8 | 0) | 0;
52268 }
52269 function __ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD0Ev(i1) {
52270 i1 = i1 | 0;
52271 __ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD2Ev(i1);
52272 __ZdlPv(i1);
52273 return;
52274 }
52275 function __ZN23btPolyhedralConvexShapeD0Ev(i1) {
52276 i1 = i1 | 0;
52277 var i2 = 0;
52278 HEAP32[i1 >> 2] = 3136;
52279 i2 = HEAP32[i1 + 52 >> 2] | 0;
52280 if ((i2 | 0) != 0) {
52281 __Z21btAlignedFreeInternalPv(i2);
52282 }
52283 __ZN13btConvexShapeD2Ev(i1 | 0);
52284 __Z21btAlignedFreeInternalPv(i1);
52285 return;
52286 }
52287 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD2E_0v(i1) {
52288 i1 = i1 | 0;
52289 __ZN18btTriangleCallbackD2Ev(i1 | 0);
52290 return;
52291 }
52292 function __ZN15btGjkConvexCastC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolver(i1, i2, i3, i4) {
52293 i1 = i1 | 0;
52294 i2 = i2 | 0;
52295 i3 = i3 | 0;
52296 i4 = i4 | 0;
52297 HEAP32[i1 >> 2] = 4696;
52298 HEAP32[i1 + 4 >> 2] = i4;
52299 HEAP32[i1 + 8 >> 2] = i2;
52300 HEAP32[i1 + 12 >> 2] = i3;
52301 return;
52302 }
52303 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD2Ev(i1) {
52304 i1 = i1 | 0;
52305 __ZN18btTriangleCallbackD2Ev(i1 | 0);
52306 return;
52307 }
52308 function __ZN22SphereTriangleDetectorC2EP13btSphereShapeP15btTriangleShapef(i1, i2, i3, d4) {
52309 i1 = i1 | 0;
52310 i2 = i2 | 0;
52311 i3 = i3 | 0;
52312 d4 = +d4;
52313 HEAP32[i1 >> 2] = 3616;
52314 HEAP32[i1 + 4 >> 2] = i2;
52315 HEAP32[i1 + 8 >> 2] = i3;
52316 HEAPF32[i1 + 12 >> 2] = d4;
52317 return;
52318 }
52319 function __ZN11btRigidBody26predictIntegratedTransformEfR11btTransform(i1, d2, i3) {
52320 i1 = i1 | 0;
52321 d2 = +d2;
52322 i3 = i3 | 0;
52323 __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i1 + 4 | 0, i1 + 304 | 0, i1 + 320 | 0, d2, i3);
52324 return;
52325 }
52326 function __ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD0Ev(i1) {
52327 i1 = i1 | 0;
52328 __ZN18btTriangleCallbackD2Ev(i1 | 0);
52329 __ZdlPv(i1);
52330 return;
52331 }
52332 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0E_0v(i1) {
52333 i1 = i1 | 0;
52334 __ZN18btTriangleCallbackD2Ev(i1 | 0);
52335 __ZdlPv(i1);
52336 return;
52337 }
52338 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0Ev(i1) {
52339 i1 = i1 | 0;
52340 __ZN18btTriangleCallbackD2Ev(i1 | 0);
52341 __ZdlPv(i1);
52342 return;
52343 }
52344 function __ZN23btDiscreteDynamicsWorld18addCollisionObjectEP17btCollisionObjectss(i1, i2, i3, i4) {
52345 i1 = i1 | 0;
52346 i2 = i2 | 0;
52347 i3 = i3 | 0;
52348 i4 = i4 | 0;
52349 __ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss(i1 | 0, i2, i3, i4);
52350 return;
52351 }
52352 function __ZN19BroadphaseRayTester7ProcessEPK10btDbvtNode(i1, i2) {
52353 i1 = i1 | 0;
52354 i2 = i2 | 0;
52355 var i3 = 0;
52356 i3 = HEAP32[i1 + 4 >> 2] | 0;
52357 FUNCTION_TABLE_iii[HEAP32[(HEAP32[i3 >> 2] | 0) + 8 >> 2] & 63](i3 | 0, HEAP32[i2 + 36 >> 2] | 0) | 0;
52358 return;
52359 }
52360 function __ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResult15addContactPointERK9btVector3SA_f(i1, i2, i3, d4) {
52361 i1 = i1 | 0;
52362 i2 = i2 | 0;
52363 i3 = i3 | 0;
52364 d4 = +d4;
52365 return;
52366 }
52367 function __ZN23btCollisionPairCallback14processOverlapER16btBroadphasePair(i1, i2) {
52368 i1 = i1 | 0;
52369 i2 = i2 | 0;
52370 var i3 = 0;
52371 i3 = HEAP32[i1 + 8 >> 2] | 0;
52372 FUNCTION_TABLE_viii[HEAP32[i3 + 188 >> 2] & 127](i2, i3, HEAP32[i1 + 4 >> 2] | 0);
52373 return 0;
52374 }
52375 function __ZN16btDbvtBroadphase25calculateOverlappingPairsEP12btDispatcher(i1, i2) {
52376 i1 = i1 | 0;
52377 i2 = i2 | 0;
52378 __ZN16btDbvtBroadphase7collideEP12btDispatcher(i1, i2);
52379 __ZN16btDbvtBroadphase22performDeferredRemovalEP12btDispatcher(i1, i2);
52380 return;
52381 }
52382 function __ZN20BroadphaseAabbTester7ProcessEPK10btDbvtNode(i1, i2) {
52383 i1 = i1 | 0;
52384 i2 = i2 | 0;
52385 var i3 = 0;
52386 i3 = HEAP32[i1 + 4 >> 2] | 0;
52387 FUNCTION_TABLE_iii[HEAP32[(HEAP32[i3 >> 2] | 0) + 8 >> 2] & 63](i3, HEAP32[i2 + 36 >> 2] | 0) | 0;
52388 return;
52389 }
52390 function __ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResultD0Ev(i1) {
52391 i1 = i1 | 0;
52392 __ZdlPv(i1);
52393 return;
52394 }
52395 function dynCall_iiiiiii(i1, i2, i3, i4, i5, i6, i7) {
52396 i1 = i1 | 0;
52397 i2 = i2 | 0;
52398 i3 = i3 | 0;
52399 i4 = i4 | 0;
52400 i5 = i5 | 0;
52401 i6 = i6 | 0;
52402 i7 = i7 | 0;
52403 return FUNCTION_TABLE_iiiiiii[i1 & 7](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0) | 0;
52404 }
52405 function _bitshift64Ashr(i1, i2, i3) {
52406 i1 = i1 | 0;
52407 i2 = i2 | 0;
52408 i3 = i3 | 0;
52409 if ((i3 | 0) < 32) {
52410 tempRet0 = i2 >> i3;
52411 return i1 >>> i3 | (i2 & (1 << i3) - 1) << 32 - i3;
52412 }
52413 tempRet0 = (i2 | 0) < 0 ? -1 : 0;
52414 return i2 >> i3 - 32 | 0;
52415 }
52416 function __ZNK21btConvexInternalShape7getAabbERK11btTransformR9btVector3S4_(i1, i2, i3, i4) {
52417 i1 = i1 | 0;
52418 i2 = i2 | 0;
52419 i3 = i3 | 0;
52420 i4 = i4 | 0;
52421 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 72 >> 2] & 127](i1, i2, i3, i4);
52422 return;
52423 }
52424 function __ZN17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii(i1, i2, i3, i4) {
52425 i1 = i1 | 0;
52426 i2 = i2 | 0;
52427 i3 = i3 | 0;
52428 i4 = i4 | 0;
52429 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i1, i2, i3, i4);
52430 return;
52431 }
52432 function b12(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
52433 i1 = i1 | 0;
52434 i2 = i2 | 0;
52435 i3 = i3 | 0;
52436 i4 = i4 | 0;
52437 i5 = i5 | 0;
52438 i6 = i6 | 0;
52439 i7 = i7 | 0;
52440 i8 = i8 | 0;
52441 i9 = i9 | 0;
52442 i10 = i10 | 0;
52443 i11 = i11 | 0;
52444 abort(12);
52445 return 0.0;
52446 }
52447 function __ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD2Ev(i1) {
52448 i1 = i1 | 0;
52449 __ZN18btTriangleCallbackD2Ev(i1 | 0);
52450 return;
52451 }
52452 function __ZNK15btTriangleShape7getAabbERK11btTransformR9btVector3S4_(i1, i2, i3, i4) {
52453 i1 = i1 | 0;
52454 i2 = i2 | 0;
52455 i3 = i3 | 0;
52456 i4 = i4 | 0;
52457 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 72 >> 2] & 127](i1 | 0, i2, i3, i4);
52458 return;
52459 }
52460 function b25(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
52461 i1 = i1 | 0;
52462 i2 = i2 | 0;
52463 i3 = i3 | 0;
52464 i4 = i4 | 0;
52465 i5 = i5 | 0;
52466 i6 = i6 | 0;
52467 i7 = i7 | 0;
52468 i8 = i8 | 0;
52469 i9 = i9 | 0;
52470 i10 = i10 | 0;
52471 i11 = i11 | 0;
52472 abort(25);
52473 return 0;
52474 }
52475 function __ZN34btSphereTriangleCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
52476 i1 = i1 | 0;
52477 i2 = i2 | 0;
52478 i3 = i3 | 0;
52479 i4 = i4 | 0;
52480 i5 = i5 | 0;
52481 return +1.0;
52482 }
52483 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD2E_0v(i1) {
52484 i1 = i1 | 0;
52485 __ZN18btTriangleCallbackD2Ev(i1 | 0);
52486 return;
52487 }
52488 function __ZN32btSphereSphereCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
52489 i1 = i1 | 0;
52490 i2 = i2 | 0;
52491 i3 = i3 | 0;
52492 i4 = i4 | 0;
52493 i5 = i5 | 0;
52494 return +1.0;
52495 }
52496 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD2Ev(i1) {
52497 i1 = i1 | 0;
52498 __ZN18btTriangleCallbackD2Ev(i1 | 0);
52499 return;
52500 }
52501 function __ZN31btConvexPlaneCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
52502 i1 = i1 | 0;
52503 i2 = i2 | 0;
52504 i3 = i3 | 0;
52505 i4 = i4 | 0;
52506 i5 = i5 | 0;
52507 return +1.0;
52508 }
52509 function __ZN23btPolyhedralConvexShapeD2Ev(i1) {
52510 i1 = i1 | 0;
52511 var i2 = 0;
52512 HEAP32[i1 >> 2] = 3136;
52513 i2 = HEAP32[i1 + 52 >> 2] | 0;
52514 if ((i2 | 0) != 0) {
52515 __Z21btAlignedFreeInternalPv(i2);
52516 }
52517 __ZN13btConvexShapeD2Ev(i1 | 0);
52518 return;
52519 }
52520 function dynCall_fiiifii(i1, i2, i3, i4, d5, i6, i7) {
52521 i1 = i1 | 0;
52522 i2 = i2 | 0;
52523 i3 = i3 | 0;
52524 i4 = i4 | 0;
52525 d5 = +d5;
52526 i6 = i6 | 0;
52527 i7 = i7 | 0;
52528 return +FUNCTION_TABLE_fiiifii[i1 & 7](i2 | 0, i3 | 0, i4 | 0, +d5, i6 | 0, i7 | 0);
52529 }
52530 function dynCall_viiiiii(i1, i2, i3, i4, i5, i6, i7) {
52531 i1 = i1 | 0;
52532 i2 = i2 | 0;
52533 i3 = i3 | 0;
52534 i4 = i4 | 0;
52535 i5 = i5 | 0;
52536 i6 = i6 | 0;
52537 i7 = i7 | 0;
52538 FUNCTION_TABLE_viiiiii[i1 & 15](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0);
52539 }
52540 function __ZN26btBoxBoxCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
52541 i1 = i1 | 0;
52542 i2 = i2 | 0;
52543 i3 = i3 | 0;
52544 i4 = i4 | 0;
52545 i5 = i5 | 0;
52546 return +1.0;
52547 }
52548 function __ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResultD2Ev(i1) {
52549 i1 = i1 | 0;
52550 return;
52551 }
52552 function copyTempFloat(i1) {
52553 i1 = i1 | 0;
52554 HEAP8[tempDoublePtr] = HEAP8[i1];
52555 HEAP8[tempDoublePtr + 1 | 0] = HEAP8[i1 + 1 | 0];
52556 HEAP8[tempDoublePtr + 2 | 0] = HEAP8[i1 + 2 | 0];
52557 HEAP8[tempDoublePtr + 3 | 0] = HEAP8[i1 + 3 | 0];
52558 }
52559 function _bitshift64Shl(i1, i2, i3) {
52560 i1 = i1 | 0;
52561 i2 = i2 | 0;
52562 i3 = i3 | 0;
52563 if ((i3 | 0) < 32) {
52564 tempRet0 = i2 << i3 | (i1 & (1 << i3) - 1 << 32 - i3) >>> 32 - i3;
52565 return i1 << i3;
52566 }
52567 tempRet0 = i1 << i3 - 32;
52568 return 0;
52569 }
52570 function __ZN16btEmptyAlgorithmC2ERK36btCollisionAlgorithmConstructionInfo(i1, i2) {
52571 i1 = i1 | 0;
52572 i2 = i2 | 0;
52573 __ZN20btCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfo(i1 | 0, i2);
52574 HEAP32[i1 >> 2] = 4352;
52575 return;
52576 }
52577 function __ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNode(i1, i2) {
52578 i1 = i1 | 0;
52579 i2 = i2 | 0;
52580 FUNCTION_TABLE_viii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i1, i2, HEAP32[(HEAP32[i1 + 8 >> 2] | 0) + 48 >> 2] | 0);
52581 return;
52582 }
52583 function dynCall_viiifii(i1, i2, i3, i4, d5, i6, i7) {
52584 i1 = i1 | 0;
52585 i2 = i2 | 0;
52586 i3 = i3 | 0;
52587 i4 = i4 | 0;
52588 d5 = +d5;
52589 i6 = i6 | 0;
52590 i7 = i7 | 0;
52591 FUNCTION_TABLE_viiifii[i1 & 1](i2 | 0, i3 | 0, i4 | 0, +d5, i6 | 0, i7 | 0);
52592 }
52593 function __ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResult20setShapeIdentifiersBEii(i1, i2, i3) {
52594 i1 = i1 | 0;
52595 i2 = i2 | 0;
52596 i3 = i3 | 0;
52597 return;
52598 }
52599 function __ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResult20setShapeIdentifiersAEii(i1, i2, i3) {
52600 i1 = i1 | 0;
52601 i2 = i2 | 0;
52602 i3 = i3 | 0;
52603 return;
52604 }
52605 function _i64Subtract(i1, i2, i3, i4) {
52606 i1 = i1 | 0;
52607 i2 = i2 | 0;
52608 i3 = i3 | 0;
52609 i4 = i4 | 0;
52610 var i5 = 0;
52611 i5 = i2 - i4 >>> 0;
52612 i5 = i2 - i4 - (i3 >>> 0 > i1 >>> 0 | 0) >>> 0;
52613 return (tempRet0 = i5, i1 - i3 >>> 0 | 0) | 0;
52614 }
52615 function _bitshift64Lshr(i1, i2, i3) {
52616 i1 = i1 | 0;
52617 i2 = i2 | 0;
52618 i3 = i3 | 0;
52619 if ((i3 | 0) < 32) {
52620 tempRet0 = i2 >>> i3;
52621 return i1 >>> i3 | (i2 & (1 << i3) - 1) << 32 - i3;
52622 }
52623 tempRet0 = 0;
52624 return i2 >>> i3 - 32 | 0;
52625 }
52626 function __ZNK15btTriangleShape8getPlaneER9btVector3S1_i(i1, i2, i3, i4) {
52627 i1 = i1 | 0;
52628 i2 = i2 | 0;
52629 i3 = i3 | 0;
52630 i4 = i4 | 0;
52631 FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 116 >> 2] & 127](i1, i4, i2, i3);
52632 return;
52633 }
52634 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD0E_1v(i1) {
52635 i1 = i1 | 0;
52636 __ZdlPv(i1);
52637 return;
52638 }
52639 function __ZN16btEmptyAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
52640 i1 = i1 | 0;
52641 i2 = i2 | 0;
52642 i3 = i3 | 0;
52643 i4 = i4 | 0;
52644 i5 = i5 | 0;
52645 return +1.0;
52646 }
52647 function b23(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10) {
52648 i1 = i1 | 0;
52649 i2 = i2 | 0;
52650 i3 = i3 | 0;
52651 i4 = i4 | 0;
52652 i5 = i5 | 0;
52653 i6 = i6 | 0;
52654 i7 = i7 | 0;
52655 i8 = i8 | 0;
52656 i9 = i9 | 0;
52657 i10 = i10 | 0;
52658 abort(23);
52659 return 0.0;
52660 }
52661 function dynCall_viffiii(i1, i2, d3, d4, i5, i6, i7) {
52662 i1 = i1 | 0;
52663 i2 = i2 | 0;
52664 d3 = +d3;
52665 d4 = +d4;
52666 i5 = i5 | 0;
52667 i6 = i6 | 0;
52668 i7 = i7 | 0;
52669 FUNCTION_TABLE_viffiii[i1 & 1](i2 | 0, +d3, +d4, i5 | 0, i6 | 0, i7 | 0);
52670 }
52671 function __ZN17btCollisionObject18setActivationStateEi(i1, i2) {
52672 i1 = i1 | 0;
52673 i2 = i2 | 0;
52674 var i3 = 0;
52675 i3 = i1 + 216 | 0;
52676 if (((HEAP32[i3 >> 2] | 0) - 4 | 0) >>> 0 < 2) {
52677 return;
52678 }
52679 HEAP32[i3 >> 2] = i2;
52680 return;
52681 }
52682 function __ZThn4_N17DebugDrawcallbackD0Ev(i1) {
52683 i1 = i1 | 0;
52684 var i2 = 0;
52685 i2 = i1 - 92 + 88 | 0;
52686 __ZN31btInternalTriangleIndexCallbackD2Ev(i1 - 92 + 92 | 0);
52687 __ZN18btTriangleCallbackD2Ev(i2);
52688 __ZdlPv(i2);
52689 return;
52690 }
52691 function dynCall_fiiiii(i1, i2, i3, i4, i5, i6) {
52692 i1 = i1 | 0;
52693 i2 = i2 | 0;
52694 i3 = i3 | 0;
52695 i4 = i4 | 0;
52696 i5 = i5 | 0;
52697 i6 = i6 | 0;
52698 return +FUNCTION_TABLE_fiiiii[i1 & 31](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0);
52699 }
52700 function b9(i1, i2, i3, i4, d5, d6, d7, d8, i9, i10, d11) {
52701 i1 = i1 | 0;
52702 i2 = i2 | 0;
52703 i3 = i3 | 0;
52704 i4 = i4 | 0;
52705 d5 = +d5;
52706 d6 = +d6;
52707 d7 = +d7;
52708 d8 = +d8;
52709 i9 = i9 | 0;
52710 i10 = i10 | 0;
52711 d11 = +d11;
52712 abort(9);
52713 }
52714 function __ZN16btEmptyAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
52715 i1 = i1 | 0;
52716 i2 = i2 | 0;
52717 i3 = i3 | 0;
52718 i4 = i4 | 0;
52719 i5 = i5 | 0;
52720 return;
52721 }
52722 function b29(i1, i2, i3, i4, d5, d6, d7, d8, d9, i10, d11) {
52723 i1 = i1 | 0;
52724 i2 = i2 | 0;
52725 i3 = i3 | 0;
52726 i4 = i4 | 0;
52727 d5 = +d5;
52728 d6 = +d6;
52729 d7 = +d7;
52730 d8 = +d8;
52731 d9 = +d9;
52732 i10 = i10 | 0;
52733 d11 = +d11;
52734 abort(29);
52735 }
52736 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD2E_1v(i1) {
52737 i1 = i1 | 0;
52738 return;
52739 }
52740 function b28(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10) {
52741 i1 = i1 | 0;
52742 i2 = i2 | 0;
52743 i3 = i3 | 0;
52744 i4 = i4 | 0;
52745 i5 = i5 | 0;
52746 i6 = i6 | 0;
52747 i7 = i7 | 0;
52748 i8 = i8 | 0;
52749 i9 = i9 | 0;
52750 i10 = i10 | 0;
52751 abort(28);
52752 }
52753 function dynCall_fiifii(i1, i2, i3, d4, i5, i6) {
52754 i1 = i1 | 0;
52755 i2 = i2 | 0;
52756 i3 = i3 | 0;
52757 d4 = +d4;
52758 i5 = i5 | 0;
52759 i6 = i6 | 0;
52760 return +FUNCTION_TABLE_fiifii[i1 & 7](i2 | 0, i3 | 0, +d4, i5 | 0, i6 | 0);
52761 }
52762 function dynCall_viiiii(i1, i2, i3, i4, i5, i6) {
52763 i1 = i1 | 0;
52764 i2 = i2 | 0;
52765 i3 = i3 | 0;
52766 i4 = i4 | 0;
52767 i5 = i5 | 0;
52768 i6 = i6 | 0;
52769 FUNCTION_TABLE_viiiii[i1 & 63](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0);
52770 }
52771 function _i64Add(i1, i2, i3, i4) {
52772 i1 = i1 | 0;
52773 i2 = i2 | 0;
52774 i3 = i3 | 0;
52775 i4 = i4 | 0;
52776 var i5 = 0;
52777 i5 = i1 + i3 >>> 0;
52778 return (tempRet0 = i2 + i4 + (i5 >>> 0 < i1 >>> 0 | 0) >>> 0, i5 | 0) | 0;
52779 }
52780 function dynCall_viifii(i1, i2, i3, d4, i5, i6) {
52781 i1 = i1 | 0;
52782 i2 = i2 | 0;
52783 i3 = i3 | 0;
52784 d4 = +d4;
52785 i5 = i5 | 0;
52786 i6 = i6 | 0;
52787 FUNCTION_TABLE_viifii[i1 & 1](i2 | 0, i3 | 0, +d4, i5 | 0, i6 | 0);
52788 }
52789 function dynCall_vifiii(i1, i2, d3, i4, i5, i6) {
52790 i1 = i1 | 0;
52791 i2 = i2 | 0;
52792 d3 = +d3;
52793 i4 = i4 | 0;
52794 i5 = i5 | 0;
52795 i6 = i6 | 0;
52796 FUNCTION_TABLE_vifiii[i1 & 3](i2 | 0, +d3, i4 | 0, i5 | 0, i6 | 0);
52797 }
52798 function b20(i1, i2, i3, i4, i5, i6, i7, i8, i9) {
52799 i1 = i1 | 0;
52800 i2 = i2 | 0;
52801 i3 = i3 | 0;
52802 i4 = i4 | 0;
52803 i5 = i5 | 0;
52804 i6 = i6 | 0;
52805 i7 = i7 | 0;
52806 i8 = i8 | 0;
52807 i9 = i9 | 0;
52808 abort(20);
52809 return 0;
52810 }
52811 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D0Ev(i1) {
52812 i1 = i1 | 0;
52813 __ZdlPv(i1);
52814 return;
52815 }
52816 function __ZN23btDiscreteDynamicsWorld15removeCharacterEP17btActionInterface(i1, i2) {
52817 i1 = i1 | 0;
52818 i2 = i2 | 0;
52819 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 64 >> 2] & 127](i1, i2);
52820 return;
52821 }
52822 function __ZN23btDiscreteDynamicsWorld13removeVehicleEP17btActionInterface(i1, i2) {
52823 i1 = i1 | 0;
52824 i2 = i2 | 0;
52825 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 64 >> 2] & 127](i1, i2);
52826 return;
52827 }
52828 function __ZN23btDiscreteDynamicsWorld12addCharacterEP17btActionInterface(i1, i2) {
52829 i1 = i1 | 0;
52830 i2 = i2 | 0;
52831 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 60 >> 2] & 127](i1, i2);
52832 return;
52833 }
52834 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN9RayTesterD0E_1v(i1) {
52835 i1 = i1 | 0;
52836 __ZdlPv(i1);
52837 return;
52838 }
52839 function __ZN23btDiscreteDynamicsWorld10addVehicleEP17btActionInterface(i1, i2) {
52840 i1 = i1 | 0;
52841 i2 = i2 | 0;
52842 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 60 >> 2] & 127](i1, i2);
52843 return;
52844 }
52845 function __ZN16btBoxBoxDetectorC2EP10btBoxShapeS1_(i1, i2, i3) {
52846 i1 = i1 | 0;
52847 i2 = i2 | 0;
52848 i3 = i3 | 0;
52849 HEAP32[i1 >> 2] = 4528;
52850 HEAP32[i1 + 4 >> 2] = i2;
52851 HEAP32[i1 + 8 >> 2] = i3;
52852 return;
52853 }
52854 function __ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef(i1, i2, d3) {
52855 i1 = i1 | 0;
52856 i2 = i2 | 0;
52857 d3 = +d3;
52858 FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] & 127](i1, i2);
52859 return;
52860 }
52861 function __ZN20btCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfo(i1, i2) {
52862 i1 = i1 | 0;
52863 i2 = i2 | 0;
52864 HEAP32[i1 >> 2] = 3896;
52865 HEAP32[i1 + 4 >> 2] = HEAP32[i2 >> 2];
52866 return;
52867 }
52868 function dynCall_iiiii(i1, i2, i3, i4, i5) {
52869 i1 = i1 | 0;
52870 i2 = i2 | 0;
52871 i3 = i3 | 0;
52872 i4 = i4 | 0;
52873 i5 = i5 | 0;
52874 return FUNCTION_TABLE_iiiii[i1 & 31](i2 | 0, i3 | 0, i4 | 0, i5 | 0) | 0;
52875 }
52876 function ___udivdi3(i1, i2, i3, i4) {
52877 i1 = i1 | 0;
52878 i2 = i2 | 0;
52879 i3 = i3 | 0;
52880 i4 = i4 | 0;
52881 var i5 = 0;
52882 i5 = ___udivmoddi4(i1, i2, i3, i4, 0) | 0;
52883 return (tempRet0 = tempRet0, i5) | 0;
52884 }
52885 function __ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD0Ev(i1) {
52886 i1 = i1 | 0;
52887 __ZdlPv(i1);
52888 return;
52889 }
52890 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D2Ev(i1) {
52891 i1 = i1 | 0;
52892 return;
52893 }
52894 function __Z21btAlignedFreeInternalPv(i1) {
52895 i1 = i1 | 0;
52896 if ((i1 | 0) == 0) {
52897 return;
52898 }
52899 HEAP32[2998] = (HEAP32[2998] | 0) + 1;
52900 FUNCTION_TABLE_vi[HEAP32[2972] & 511](i1);
52901 return;
52902 }
52903 function __ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResultD0Ev(i1) {
52904 i1 = i1 | 0;
52905 __ZdlPv(i1);
52906 return;
52907 }
52908 function __ZNK16btCollisionShape27getContactBreakingThresholdEf(i1, d2) {
52909 i1 = i1 | 0;
52910 d2 = +d2;
52911 return +(+FUNCTION_TABLE_fi[HEAP32[(HEAP32[i1 >> 2] | 0) + 16 >> 2] & 7](i1) * d2);
52912 }
52913 function b30(i1, i2, i3, i4, i5, d6, d7, i8, i9) {
52914 i1 = i1 | 0;
52915 i2 = i2 | 0;
52916 i3 = i3 | 0;
52917 i4 = i4 | 0;
52918 i5 = i5 | 0;
52919 d6 = +d6;
52920 d7 = +d7;
52921 i8 = i8 | 0;
52922 i9 = i9 | 0;
52923 abort(30);
52924 }
52925 function __ZThn4_N17DebugDrawcallbackD1Ev(i1) {
52926 i1 = i1 | 0;
52927 __ZN31btInternalTriangleIndexCallbackD2Ev(i1 - 92 + 92 | 0);
52928 __ZN18btTriangleCallbackD2Ev(i1 - 92 + 88 | 0);
52929 return;
52930 }
52931 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN9RayTesterD2E_1v(i1) {
52932 i1 = i1 | 0;
52933 return;
52934 }
52935 function __ZN18btConstraintSolver9allSolvedERK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(i1, i2, i3, i4) {
52936 i1 = i1 | 0;
52937 i2 = i2 | 0;
52938 i3 = i3 | 0;
52939 i4 = i4 | 0;
52940 return;
52941 }
52942 function dynCall_viiii(i1, i2, i3, i4, i5) {
52943 i1 = i1 | 0;
52944 i2 = i2 | 0;
52945 i3 = i3 | 0;
52946 i4 = i4 | 0;
52947 i5 = i5 | 0;
52948 FUNCTION_TABLE_viiii[i1 & 127](i2 | 0, i3 | 0, i4 | 0, i5 | 0);
52949 }
52950 function __ZN16btManifoldResult20setShapeIdentifiersBEii(i1, i2, i3) {
52951 i1 = i1 | 0;
52952 i2 = i2 | 0;
52953 i3 = i3 | 0;
52954 HEAP32[i1 + 148 >> 2] = i2;
52955 HEAP32[i1 + 156 >> 2] = i3;
52956 return;
52957 }
52958 function __ZN16btManifoldResult20setShapeIdentifiersAEii(i1, i2, i3) {
52959 i1 = i1 | 0;
52960 i2 = i2 | 0;
52961 i3 = i3 | 0;
52962 HEAP32[i1 + 144 >> 2] = i2;
52963 HEAP32[i1 + 152 >> 2] = i3;
52964 return;
52965 }
52966 function __ZN28btHashedOverlappingPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback(i1, i2) {
52967 i1 = i1 | 0;
52968 i2 = i2 | 0;
52969 HEAP32[i1 + 72 >> 2] = i2;
52970 return;
52971 }
52972 function dynCall_iifif(i1, i2, d3, i4, d5) {
52973 i1 = i1 | 0;
52974 i2 = i2 | 0;
52975 d3 = +d3;
52976 i4 = i4 | 0;
52977 d5 = +d5;
52978 return FUNCTION_TABLE_iifif[i1 & 3](i2 | 0, +d3, i4 | 0, +d5) | 0;
52979 }
52980 function __ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape(i1, i2) {
52981 i1 = i1 | 0;
52982 i2 = i2 | 0;
52983 HEAP32[i1 + 192 >> 2] = i2;
52984 HEAP32[i1 + 200 >> 2] = i2;
52985 return;
52986 }
52987 function __ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD2Ev(i1) {
52988 i1 = i1 | 0;
52989 return;
52990 }
52991 function __ZN17DebugDrawcallbackD0Ev(i1) {
52992 i1 = i1 | 0;
52993 __ZN31btInternalTriangleIndexCallbackD2Ev(i1 + 4 | 0);
52994 __ZN18btTriangleCallbackD2Ev(i1 | 0);
52995 __ZdlPv(i1);
52996 return;
52997 }
52998 function __Z22btAlignedAllocInternalji(i1, i2) {
52999 i1 = i1 | 0;
53000 i2 = i2 | 0;
53001 HEAP32[3e3] = (HEAP32[3e3] | 0) + 1;
53002 return FUNCTION_TABLE_iii[HEAP32[2970] & 63](i1, i2) | 0;
53003 }
53004 function dynCall_viiif(i1, i2, i3, i4, d5) {
53005 i1 = i1 | 0;
53006 i2 = i2 | 0;
53007 i3 = i3 | 0;
53008 i4 = i4 | 0;
53009 d5 = +d5;
53010 FUNCTION_TABLE_viiif[i1 & 15](i2 | 0, i3 | 0, i4 | 0, +d5);
53011 }
53012 function __ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD0Ev(i1) {
53013 i1 = i1 | 0;
53014 __ZdlPv(i1);
53015 return;
53016 }
53017 function dynCall_viifi(i1, i2, i3, d4, i5) {
53018 i1 = i1 | 0;
53019 i2 = i2 | 0;
53020 i3 = i3 | 0;
53021 d4 = +d4;
53022 i5 = i5 | 0;
53023 FUNCTION_TABLE_viifi[i1 & 1](i2 | 0, i3 | 0, +d4, i5 | 0);
53024 }
53025 function dynCall_vifii(i1, i2, d3, i4, i5) {
53026 i1 = i1 | 0;
53027 i2 = i2 | 0;
53028 d3 = +d3;
53029 i4 = i4 | 0;
53030 i5 = i5 | 0;
53031 FUNCTION_TABLE_vifii[i1 & 1](i2 | 0, +d3, i4 | 0, i5 | 0);
53032 }
53033 function __ZNK13btSphereShape37localGetSupportingVertexWithoutMarginERK9btVector3(i1, i2, i3) {
53034 i1 = i1 | 0;
53035 i2 = i2 | 0;
53036 i3 = i3 | 0;
53037 _memset(i1 | 0, 0, 16);
53038 return;
53039 }
53040 function __ZN28btHashedOverlappingPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback(i1, i2) {
53041 i1 = i1 | 0;
53042 i2 = i2 | 0;
53043 HEAP32[i1 + 24 >> 2] = i2;
53044 return;
53045 }
53046 function b17(i1, i2, i3, i4, i5, i6, i7, i8) {
53047 i1 = i1 | 0;
53048 i2 = i2 | 0;
53049 i3 = i3 | 0;
53050 i4 = i4 | 0;
53051 i5 = i5 | 0;
53052 i6 = i6 | 0;
53053 i7 = i7 | 0;
53054 i8 = i8 | 0;
53055 abort(17);
53056 }
53057 function __ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResultD2Ev(i1) {
53058 i1 = i1 | 0;
53059 return;
53060 }
53061 function __ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD0Ev(i1) {
53062 i1 = i1 | 0;
53063 __ZdlPv(i1);
53064 return;
53065 }
53066 function __ZN21btCollisionDispatcher26getManifoldByIndexInternalEi(i1, i2) {
53067 i1 = i1 | 0;
53068 i2 = i2 | 0;
53069 return HEAP32[(HEAP32[i1 + 20 >> 2] | 0) + (i2 << 2) >> 2] | 0;
53070 }
53071 function __ZL20btAlignedFreeDefaultPv(i1) {
53072 i1 = i1 | 0;
53073 if ((i1 | 0) == 0) {
53074 return;
53075 }
53076 FUNCTION_TABLE_vi[HEAP32[2968] & 511](HEAP32[i1 - 4 >> 2] | 0);
53077 return;
53078 }
53079 function __ZN23btPolyhedralConvexShapeC2Ev(i1) {
53080 i1 = i1 | 0;
53081 __ZN21btConvexInternalShapeC2Ev(i1 | 0);
53082 HEAP32[i1 >> 2] = 3136;
53083 HEAP32[i1 + 52 >> 2] = 0;
53084 return;
53085 }
53086 function __ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev(i1) {
53087 i1 = i1 | 0;
53088 __ZdlPv(i1);
53089 return;
53090 }
53091 function __ZN11btUnionFindC2Ev(i1) {
53092 i1 = i1 | 0;
53093 HEAP8[i1 + 16 | 0] = 1;
53094 HEAP32[i1 + 12 >> 2] = 0;
53095 HEAP32[i1 + 4 >> 2] = 0;
53096 HEAP32[i1 + 8 >> 2] = 0;
53097 return;
53098 }
53099 function dynCall_iiii(i1, i2, i3, i4) {
53100 i1 = i1 | 0;
53101 i2 = i2 | 0;
53102 i3 = i3 | 0;
53103 i4 = i4 | 0;
53104 return FUNCTION_TABLE_iiii[i1 & 31](i2 | 0, i3 | 0, i4 | 0) | 0;
53105 }
53106 function b0(i1, i2, i3, i4, i5, i6, i7) {
53107 i1 = i1 | 0;
53108 i2 = i2 | 0;
53109 i3 = i3 | 0;
53110 i4 = i4 | 0;
53111 i5 = i5 | 0;
53112 i6 = i6 | 0;
53113 i7 = i7 | 0;
53114 abort(0);
53115 return 0;
53116 }
53117 function __ZNK23btDiscreteDynamicsWorld13getConstraintEi(i1, i2) {
53118 i1 = i1 | 0;
53119 i2 = i2 | 0;
53120 return HEAP32[(HEAP32[i1 + 192 >> 2] | 0) + (i2 << 2) >> 2] | 0;
53121 }
53122 function __ZN17DebugDrawcallbackD1Ev(i1) {
53123 i1 = i1 | 0;
53124 __ZN31btInternalTriangleIndexCallbackD2Ev(i1 + 4 | 0);
53125 __ZN18btTriangleCallbackD2Ev(i1 | 0);
53126 return;
53127 }
53128 function __ZN23btDiscreteDynamicsWorld13getConstraintEi(i1, i2) {
53129 i1 = i1 | 0;
53130 i2 = i2 | 0;
53131 return HEAP32[(HEAP32[i1 + 192 >> 2] | 0) + (i2 << 2) >> 2] | 0;
53132 }
53133 function dynCall_fiii(i1, i2, i3, i4) {
53134 i1 = i1 | 0;
53135 i2 = i2 | 0;
53136 i3 = i3 | 0;
53137 i4 = i4 | 0;
53138 return +FUNCTION_TABLE_fiii[i1 & 15](i2 | 0, i3 | 0, i4 | 0);
53139 }
53140 function __ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD2Ev(i1) {
53141 i1 = i1 | 0;
53142 return;
53143 }
53144 function __ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD2Ev(i1) {
53145 i1 = i1 | 0;
53146 return;
53147 }
53148 function dynCall_iiif(i1, i2, i3, d4) {
53149 i1 = i1 | 0;
53150 i2 = i2 | 0;
53151 i3 = i3 | 0;
53152 d4 = +d4;
53153 return FUNCTION_TABLE_iiif[i1 & 7](i2 | 0, i3 | 0, +d4) | 0;
53154 }
53155 function __ZNK15btTriangleShape21calculateLocalInertiaEfR9btVector3(i1, d2, i3) {
53156 i1 = i1 | 0;
53157 d2 = +d2;
53158 i3 = i3 | 0;
53159 _memset(i3 | 0, 0, 16);
53160 return;
53161 }
53162 function stackAlloc(i1) {
53163 i1 = i1 | 0;
53164 var i2 = 0;
53165 i2 = STACKTOP;
53166 STACKTOP = STACKTOP + i1 | 0;
53167 STACKTOP = STACKTOP + 7 >> 3 << 3;
53168 return i2 | 0;
53169 }
53170 function dynCall_viii(i1, i2, i3, i4) {
53171 i1 = i1 | 0;
53172 i2 = i2 | 0;
53173 i3 = i3 | 0;
53174 i4 = i4 | 0;
53175 FUNCTION_TABLE_viii[i1 & 127](i2 | 0, i3 | 0, i4 | 0);
53176 }
53177 function __ZN16btEmptyAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(i1, i2) {
53178 i1 = i1 | 0;
53179 i2 = i2 | 0;
53180 return;
53181 }
53182 function __ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD2Ev(i1) {
53183 i1 = i1 | 0;
53184 return;
53185 }
53186 function __ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3(i1, i2, i3) {
53187 i1 = i1 | 0;
53188 i2 = i2 | 0;
53189 i3 = i3 | 0;
53190 return;
53191 }
53192 function __ZN35btSequentialImpulseConstraintSolverD0Ev(i1) {
53193 i1 = i1 | 0;
53194 __ZN35btSequentialImpulseConstraintSolverD2Ev(i1);
53195 __ZdlPv(i1);
53196 return;
53197 }
53198 function b22(i1, i2, i3, i4, i5, i6) {
53199 i1 = i1 | 0;
53200 i2 = i2 | 0;
53201 i3 = i3 | 0;
53202 i4 = i4 | 0;
53203 i5 = i5 | 0;
53204 i6 = i6 | 0;
53205 abort(22);
53206 return 0;
53207 }
53208 function dynCall_vifi(i1, i2, d3, i4) {
53209 i1 = i1 | 0;
53210 i2 = i2 | 0;
53211 d3 = +d3;
53212 i4 = i4 | 0;
53213 FUNCTION_TABLE_vifi[i1 & 15](i2 | 0, +d3, i4 | 0);
53214 }
53215 function b38(i1, i2, i3, d4, i5, i6) {
53216 i1 = i1 | 0;
53217 i2 = i2 | 0;
53218 i3 = i3 | 0;
53219 d4 = +d4;
53220 i5 = i5 | 0;
53221 i6 = i6 | 0;
53222 abort(38);
53223 return 0.0;
53224 }
53225 function dynCall_viif(i1, i2, i3, d4) {
53226 i1 = i1 | 0;
53227 i2 = i2 | 0;
53228 i3 = i3 | 0;
53229 d4 = +d4;
53230 FUNCTION_TABLE_viif[i1 & 3](i2 | 0, i3 | 0, +d4);
53231 }
53232 function __ZN7btClockD2Ev(i1) {
53233 i1 = i1 | 0;
53234 var i2 = 0;
53235 i2 = HEAP32[i1 >> 2] | 0;
53236 if ((i2 | 0) == 0) {
53237 return;
53238 }
53239 __ZdlPv(i2);
53240 return;
53241 }
53242 function __ZN15btTriangleShapeD0Ev(i1) {
53243 i1 = i1 | 0;
53244 __ZN23btPolyhedralConvexShapeD2Ev(i1 | 0);
53245 __Z21btAlignedFreeInternalPv(i1);
53246 return;
53247 }
53248 function __ZN31btDefaultCollisionConfigurationD0Ev(i1) {
53249 i1 = i1 | 0;
53250 __ZN31btDefaultCollisionConfigurationD2Ev(i1);
53251 __ZdlPv(i1);
53252 return;
53253 }
53254 function __ZN13btConvexShapeC2Ev(i1) {
53255 i1 = i1 | 0;
53256 HEAP32[i1 + 4 >> 2] = 35;
53257 HEAP32[i1 + 8 >> 2] = 0;
53258 HEAP32[i1 >> 2] = 4832;
53259 return;
53260 }
53261 function __ZN21btConvexInternalShapeD0Ev(i1) {
53262 i1 = i1 | 0;
53263 __ZN13btConvexShapeD2Ev(i1 | 0);
53264 __Z21btAlignedFreeInternalPv(i1);
53265 return;
53266 }
53267 function __ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw(i1, i2) {
53268 i1 = i1 | 0;
53269 i2 = i2 | 0;
53270 HEAP32[i1 + 80 >> 2] = i2;
53271 return;
53272 }
53273 function __ZNK23btGeneric6DofConstraint8getAngleEi(i1, i2) {
53274 i1 = i1 | 0;
53275 i2 = i2 | 0;
53276 return +(+HEAPF32[i1 + 1184 + (i2 << 2) >> 2]);
53277 }
53278 function __ZN10btBoxShapeD0Ev(i1) {
53279 i1 = i1 | 0;
53280 __ZN23btPolyhedralConvexShapeD2Ev(i1 | 0);
53281 __Z21btAlignedFreeInternalPv(i1);
53282 return;
53283 }
53284 function __ZN28btHashedOverlappingPairCacheD0Ev(i1) {
53285 i1 = i1 | 0;
53286 __ZN28btHashedOverlappingPairCacheD2Ev(i1);
53287 __ZdlPv(i1);
53288 return;
53289 }
53290 function __ZN28btCompoundCollisionAlgorithmD0Ev(i1) {
53291 i1 = i1 | 0;
53292 __ZN28btCompoundCollisionAlgorithmD2Ev(i1);
53293 __ZdlPv(i1);
53294 return;
53295 }
53296 function b19(i1, i2, i3, i4, i5, i6) {
53297 i1 = i1 | 0;
53298 i2 = i2 | 0;
53299 i3 = i3 | 0;
53300 i4 = i4 | 0;
53301 i5 = i5 | 0;
53302 i6 = i6 | 0;
53303 abort(19);
53304 }
53305 function dynCall_iii(i1, i2, i3) {
53306 i1 = i1 | 0;
53307 i2 = i2 | 0;
53308 i3 = i3 | 0;
53309 return FUNCTION_TABLE_iii[i1 & 63](i2 | 0, i3 | 0) | 0;
53310 }
53311 function __ZN13btSphereShapeD0Ev(i1) {
53312 i1 = i1 | 0;
53313 __ZN13btConvexShapeD2Ev(i1 | 0);
53314 __Z21btAlignedFreeInternalPv(i1);
53315 return;
53316 }
53317 function b6(i1, i2, i3, d4, i5, i6) {
53318 i1 = i1 | 0;
53319 i2 = i2 | 0;
53320 i3 = i3 | 0;
53321 d4 = +d4;
53322 i5 = i5 | 0;
53323 i6 = i6 | 0;
53324 abort(6);
53325 }
53326 function b24(i1, i2, i3, i4, i5) {
53327 i1 = i1 | 0;
53328 i2 = i2 | 0;
53329 i3 = i3 | 0;
53330 i4 = i4 | 0;
53331 i5 = i5 | 0;
53332 abort(24);
53333 return 0.0;
53334 }
53335 function __ZN31btDefaultCollisionConfiguration25getPersistentManifoldPoolEv(i1) {
53336 i1 = i1 | 0;
53337 return HEAP32[i1 + 16 >> 2] | 0;
53338 }
53339 function __ZN31btDefaultCollisionConfiguration25getCollisionAlgorithmPoolEv(i1) {
53340 i1 = i1 | 0;
53341 return HEAP32[i1 + 24 >> 2] | 0;
53342 }
53343 function __ZN28btTriangleConvexcastCallbackD0Ev(i1) {
53344 i1 = i1 | 0;
53345 __ZN18btTriangleCallbackD2Ev(i1 | 0);
53346 __ZdlPv(i1);
53347 return;
53348 }
53349 function __ZN25btSimulationIslandManagerD0Ev(i1) {
53350 i1 = i1 | 0;
53351 __ZN25btSimulationIslandManagerD2Ev(i1);
53352 __ZdlPv(i1);
53353 return;
53354 }
53355 function b21(i1, d2, d3, i4, i5, i6) {
53356 i1 = i1 | 0;
53357 d2 = +d2;
53358 d3 = +d3;
53359 i4 = i4 | 0;
53360 i5 = i5 | 0;
53361 i6 = i6 | 0;
53362 abort(21);
53363 }
53364 function __ZNK28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv(i1) {
53365 i1 = i1 | 0;
53366 return HEAP32[i1 + 16 >> 2] | 0;
53367 }
53368 function _strlen(i1) {
53369 i1 = i1 | 0;
53370 var i2 = 0;
53371 i2 = i1;
53372 while (HEAP8[i2] | 0) {
53373 i2 = i2 + 1 | 0;
53374 }
53375 return i2 - i1 | 0;
53376 }
53377 function __ZN28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv(i1) {
53378 i1 = i1 | 0;
53379 return HEAP32[i1 + 16 >> 2] | 0;
53380 }
53381 function b13(i1, i2, d3, i4, i5) {
53382 i1 = i1 | 0;
53383 i2 = i2 | 0;
53384 d3 = +d3;
53385 i4 = i4 | 0;
53386 i5 = i5 | 0;
53387 abort(13);
53388 return 0.0;
53389 }
53390 function __ZN25btTriangleRaycastCallbackD0Ev(i1) {
53391 i1 = i1 | 0;
53392 __ZN18btTriangleCallbackD2Ev(i1 | 0);
53393 __ZdlPv(i1);
53394 return;
53395 }
53396 function __ZN10__cxxabiv121__vmi_class_type_infoD0Ev(i1) {
53397 i1 = i1 | 0;
53398 __ZNSt9type_infoD2Ev(i1 | 0);
53399 __ZdlPv(i1);
53400 return;
53401 }
53402 function __ZN23btDiscreteDynamicsWorldD0Ev(i1) {
53403 i1 = i1 | 0;
53404 __ZN23btDiscreteDynamicsWorldD2Ev(i1);
53405 __ZdlPv(i1);
53406 return;
53407 }
53408 function __ZN10__cxxabiv120__si_class_type_infoD0Ev(i1) {
53409 i1 = i1 | 0;
53410 __ZNSt9type_infoD2Ev(i1 | 0);
53411 __ZdlPv(i1);
53412 return;
53413 }
53414 function setThrew(i1, i2) {
53415 i1 = i1 | 0;
53416 i2 = i2 | 0;
53417 if ((__THREW__ | 0) == 0) {
53418 __THREW__ = i1;
53419 threwValue = i2;
53420 }
53421 }
53422 function __ZNK20btPersistentManifold27getContactBreakingThresholdEv(i1) {
53423 i1 = i1 | 0;
53424 return +(+HEAPF32[i1 + 1120 >> 2]);
53425 }
53426 function dynCall_vii(i1, i2, i3) {
53427 i1 = i1 | 0;
53428 i2 = i2 | 0;
53429 i3 = i3 | 0;
53430 FUNCTION_TABLE_vii[i1 & 127](i2 | 0, i3 | 0);
53431 }
53432 function dynCall_fif(i1, i2, d3) {
53433 i1 = i1 | 0;
53434 i2 = i2 | 0;
53435 d3 = +d3;
53436 return +FUNCTION_TABLE_fif[i1 & 3](i2 | 0, +d3);
53437 }
53438 function __ZNK28btHashedOverlappingPairCache22getNumOverlappingPairsEv(i1) {
53439 i1 = i1 | 0;
53440 return HEAP32[i1 + 8 >> 2] | 0;
53441 }
53442 function __ZN27btContinuousConvexCollisionD0Ev(i1) {
53443 i1 = i1 | 0;
53444 __ZN12btConvexCastD2Ev(i1 | 0);
53445 __ZdlPv(i1);
53446 return;
53447 }
53448 function __ZN12btConvexCast10CastResult13reportFailureEii(i1, i2, i3) {
53449 i1 = i1 | 0;
53450 i2 = i2 | 0;
53451 i3 = i3 | 0;
53452 return;
53453 }
53454 function __ZN10__cxxabiv117__class_type_infoD0Ev(i1) {
53455 i1 = i1 | 0;
53456 __ZNSt9type_infoD2Ev(i1 | 0);
53457 __ZdlPv(i1);
53458 return;
53459 }
53460 function __ZNK13btSphereShape9getMarginEv(i1) {
53461 i1 = i1 | 0;
53462 return +(+HEAPF32[i1 + 28 >> 2] * +HEAPF32[i1 + 12 >> 2]);
53463 }
53464 function __ZN21btConvexInternalShape9setMarginEf(i1, d2) {
53465 i1 = i1 | 0;
53466 d2 = +d2;
53467 HEAPF32[i1 + 44 >> 2] = d2;
53468 return;
53469 }
53470 function __ZN16btPointCollector20setShapeIdentifiersBEii(i1, i2, i3) {
53471 i1 = i1 | 0;
53472 i2 = i2 | 0;
53473 i3 = i3 | 0;
53474 return;
53475 }
53476 function __ZN16btPointCollector20setShapeIdentifiersAEii(i1, i2, i3) {
53477 i1 = i1 | 0;
53478 i2 = i2 | 0;
53479 i3 = i3 | 0;
53480 return;
53481 }
53482 function __ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3_(i1, i2, i3) {
53483 i1 = i1 | 0;
53484 i2 = i2 | 0;
53485 i3 = i3 | 0;
53486 return;
53487 }
53488 function __ZN31btDefaultCollisionConfiguration17getStackAllocatorEv(i1) {
53489 i1 = i1 | 0;
53490 return HEAP32[i1 + 8 >> 2] | 0;
53491 }
53492 function __ZN31btDefaultCollisionConfiguration16getSimplexSolverEv(i1) {
53493 i1 = i1 | 0;
53494 return HEAP32[i1 + 32 >> 2] | 0;
53495 }
53496 function __ZN21btCollisionDispatcher26getInternalManifoldPointerEv(i1) {
53497 i1 = i1 | 0;
53498 return HEAP32[i1 + 20 >> 2] | 0;
53499 }
53500 function __ZNK21btCollisionDispatcher23getInternalManifoldPoolEv(i1) {
53501 i1 = i1 | 0;
53502 return HEAP32[i1 + 196 >> 2] | 0;
53503 }
53504 function __ZN12btConvexCast10CastResult15drawCoordSystemERK11btTransform(i1, i2) {
53505 i1 = i1 | 0;
53506 i2 = i2 | 0;
53507 return;
53508 }
53509 function __ZN21btCollisionDispatcher23getInternalManifoldPoolEv(i1) {
53510 i1 = i1 | 0;
53511 return HEAP32[i1 + 196 >> 2] | 0;
53512 }
53513 function __ZN22btSubsimplexConvexCastD0Ev(i1) {
53514 i1 = i1 | 0;
53515 __ZN12btConvexCastD2Ev(i1 | 0);
53516 __ZdlPv(i1);
53517 return;
53518 }
53519 function dynCall_vif(i1, i2, d3) {
53520 i1 = i1 | 0;
53521 i2 = i2 | 0;
53522 d3 = +d3;
53523 FUNCTION_TABLE_vif[i1 & 31](i2 | 0, +d3);
53524 }
53525 function __ZN23btDiscreteDynamicsWorld19getConstraintSolverEv(i1) {
53526 i1 = i1 | 0;
53527 return HEAP32[i1 + 172 >> 2] | 0;
53528 }
53529 function __ZNK23btDiscreteDynamicsWorld17getNumConstraintsEv(i1) {
53530 i1 = i1 | 0;
53531 return HEAP32[i1 + 184 >> 2] | 0;
53532 }
53533 function __ZN35btSequentialImpulseConstraintSolver5resetEv(i1) {
53534 i1 = i1 | 0;
53535 HEAP32[i1 + 124 >> 2] = 0;
53536 return;
53537 }
53538 function __ZN28btTriangleConvexcastCallbackD1Ev(i1) {
53539 i1 = i1 | 0;
53540 __ZN18btTriangleCallbackD2Ev(i1 | 0);
53541 return;
53542 }
53543 function __ZN18btConvexPolyhedronD0Ev(i1) {
53544 i1 = i1 | 0;
53545 __ZN18btConvexPolyhedronD2Ev(i1);
53546 __ZdlPv(i1);
53547 return;
53548 }
53549 function __ZN18btConstraintSolver12prepareSolveEii(i1, i2, i3) {
53550 i1 = i1 | 0;
53551 i2 = i2 | 0;
53552 i3 = i3 | 0;
53553 return;
53554 }
53555 function b3(i1, i2, i3, i4, i5) {
53556 i1 = i1 | 0;
53557 i2 = i2 | 0;
53558 i3 = i3 | 0;
53559 i4 = i4 | 0;
53560 i5 = i5 | 0;
53561 abort(3);
53562 }
53563 function __ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD0Ev(i1) {
53564 i1 = i1 | 0;
53565 __ZdlPv(i1);
53566 return;
53567 }
53568 function __ZNK16btDbvtBroadphase23getOverlappingPairCacheEv(i1) {
53569 i1 = i1 | 0;
53570 return HEAP32[i1 + 96 >> 2] | 0;
53571 }
53572 function __ZN13btSphereShape9setMarginEf(i1, d2) {
53573 i1 = i1 | 0;
53574 d2 = +d2;
53575 HEAPF32[i1 + 44 >> 2] = d2;
53576 return;
53577 }
53578 function __ZN25btTriangleRaycastCallbackD1Ev(i1) {
53579 i1 = i1 | 0;
53580 __ZN18btTriangleCallbackD2Ev(i1 | 0);
53581 return;
53582 }
53583 function __ZN16btDbvtBroadphase23getOverlappingPairCacheEv(i1) {
53584 i1 = i1 | 0;
53585 return HEAP32[i1 + 96 >> 2] | 0;
53586 }
53587 function b7(i1, d2, i3, i4, i5) {
53588 i1 = i1 | 0;
53589 d2 = +d2;
53590 i3 = i3 | 0;
53591 i4 = i4 | 0;
53592 i5 = i5 | 0;
53593 abort(7);
53594 }
53595 function b2(i1, i2, d3, i4, i5) {
53596 i1 = i1 | 0;
53597 i2 = i2 | 0;
53598 d3 = +d3;
53599 i4 = i4 | 0;
53600 i5 = i5 | 0;
53601 abort(2);
53602 }
53603 function __ZN17btCollisionObject24checkCollideWithOverrideEPS_(i1, i2) {
53604 i1 = i1 | 0;
53605 i2 = i2 | 0;
53606 return 1;
53607 }
53608 function __ZN16btCollisionWorldD0Ev(i1) {
53609 i1 = i1 | 0;
53610 __ZN16btCollisionWorldD2Ev(i1);
53611 __ZdlPv(i1);
53612 return;
53613 }
53614 function __ZNK21btCollisionDispatcher15getNumManifoldsEv(i1) {
53615 i1 = i1 | 0;
53616 return HEAP32[i1 + 12 >> 2] | 0;
53617 }
53618 function __ZN28btHashedOverlappingPairCache23getOverlappingPairArrayEv(i1) {
53619 i1 = i1 | 0;
53620 return i1 + 4 | 0;
53621 }
53622 function __ZN15btGjkConvexCastD0Ev(i1) {
53623 i1 = i1 | 0;
53624 __ZN12btConvexCastD2Ev(i1 | 0);
53625 __ZdlPv(i1);
53626 return;
53627 }
53628 function __ZN15CProfileManager23Increment_Frame_CounterEv() {
53629 HEAP32[3572] = (HEAP32[3572] | 0) + 1;
53630 return;
53631 }
53632 function b32(i1, i2, i3, i4) {
53633 i1 = i1 | 0;
53634 i2 = i2 | 0;
53635 i3 = i3 | 0;
53636 i4 = i4 | 0;
53637 abort(32);
53638 return 0;
53639 }
53640 function __ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD0Ev(i1) {
53641 i1 = i1 | 0;
53642 __ZdlPv(i1);
53643 return;
53644 }
53645 function __ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv(i1) {
53646 i1 = i1 | 0;
53647 return 0;
53648 }
53649 function __ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD0Ev(i1) {
53650 i1 = i1 | 0;
53651 __ZdlPv(i1);
53652 return;
53653 }
53654 function __ZN27btContinuousConvexCollisionD1Ev(i1) {
53655 i1 = i1 | 0;
53656 __ZN12btConvexCastD2Ev(i1 | 0);
53657 return;
53658 }
53659 function __ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD0Ev(i1) {
53660 i1 = i1 | 0;
53661 __ZdlPv(i1);
53662 return;
53663 }
53664 function __ZN16btCollisionWorld27ClosestConvexResultCallbackD0Ev(i1) {
53665 i1 = i1 | 0;
53666 __ZdlPv(i1);
53667 return;
53668 }
53669 function __ZN15btTriangleShapeD1Ev(i1) {
53670 i1 = i1 | 0;
53671 __ZN23btPolyhedralConvexShapeD2Ev(i1 | 0);
53672 return;
53673 }
53674 function __ZN10__cxxabiv116__shim_type_infoD2Ev(i1) {
53675 i1 = i1 | 0;
53676 __ZNSt9type_infoD2Ev(i1 | 0);
53677 return;
53678 }
53679 function dynCall_ii(i1, i2) {
53680 i1 = i1 | 0;
53681 i2 = i2 | 0;
53682 return FUNCTION_TABLE_ii[i1 & 127](i2 | 0) | 0;
53683 }
53684 function __ZN32btSphereSphereCollisionAlgorithm10CreateFuncD0Ev(i1) {
53685 i1 = i1 | 0;
53686 __ZdlPv(i1);
53687 return;
53688 }
53689 function __ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD0Ev(i1) {
53690 i1 = i1 | 0;
53691 __ZdlPv(i1);
53692 return;
53693 }
53694 function __ZNK21btConvexInternalShape9getMarginEv(i1) {
53695 i1 = i1 | 0;
53696 return +(+HEAPF32[i1 + 44 >> 2]);
53697 }
53698 function b31(i1, d2, i3, d4) {
53699 i1 = i1 | 0;
53700 d2 = +d2;
53701 i3 = i3 | 0;
53702 d4 = +d4;
53703 abort(31);
53704 return 0;
53705 }
53706 function __ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode(i1, i2) {
53707 i1 = i1 | 0;
53708 i2 = i2 | 0;
53709 return 1;
53710 }
53711 function __ZN22btSubsimplexConvexCastD1Ev(i1) {
53712 i1 = i1 | 0;
53713 __ZN12btConvexCastD2Ev(i1 | 0);
53714 return;
53715 }
53716 function __ZN21btConvexInternalShapeD1Ev(i1) {
53717 i1 = i1 | 0;
53718 __ZN13btConvexShapeD2Ev(i1 | 0);
53719 return;
53720 }
53721 function __ZN16btCollisionWorld14getDebugDrawerEv(i1) {
53722 i1 = i1 | 0;
53723 return HEAP32[i1 + 80 >> 2] | 0;
53724 }
53725 function __ZNK15btTriangleShape36getNumPreferredPenetrationDirectionsEv(i1) {
53726 i1 = i1 | 0;
53727 return 2;
53728 }
53729 function __ZN28btCompoundCollisionAlgorithm10CreateFuncD0Ev(i1) {
53730 i1 = i1 | 0;
53731 __ZdlPv(i1);
53732 return;
53733 }
53734 function __ZN10btBoxShapeD1Ev(i1) {
53735 i1 = i1 | 0;
53736 __ZN23btPolyhedralConvexShapeD2Ev(i1 | 0);
53737 return;
53738 }
53739 function dynCall_fi(i1, i2) {
53740 i1 = i1 | 0;
53741 i2 = i2 | 0;
53742 return +FUNCTION_TABLE_fi[i1 & 7](i2 | 0);
53743 }
53744 function __ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv(i1) {
53745 i1 = i1 | 0;
53746 return 52;
53747 }
53748 function __ZN6btDbvt8ICollide7DescentEPK10btDbvtNode(i1, i2) {
53749 i1 = i1 | 0;
53750 i2 = i2 | 0;
53751 return 1;
53752 }
53753 function __ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD1Ev(i1) {
53754 i1 = i1 | 0;
53755 return;
53756 }
53757 function __ZN26btBoxBoxCollisionAlgorithm10CreateFuncD0Ev(i1) {
53758 i1 = i1 | 0;
53759 __ZdlPv(i1);
53760 return;
53761 }
53762 function __ZN23btDiscreteDynamicsWorld11setNumTasksEi(i1, i2) {
53763 i1 = i1 | 0;
53764 i2 = i2 | 0;
53765 return;
53766 }
53767 function __ZN17btCollisionObjectD0Ev(i1) {
53768 i1 = i1 | 0;
53769 __Z21btAlignedFreeInternalPv(i1);
53770 return;
53771 }
53772 function b39(i1, i2, i3, i4) {
53773 i1 = i1 | 0;
53774 i2 = i2 | 0;
53775 i3 = i3 | 0;
53776 i4 = i4 | 0;
53777 abort(39);
53778 }
53779 function __ZNK17btCollisionObject28calculateSerializeBufferSizeEv(i1) {
53780 i1 = i1 | 0;
53781 return 248;
53782 }
53783 function __ZNK21btConvexInternalShape15getLocalScalingEv(i1) {
53784 i1 = i1 | 0;
53785 return i1 + 12 | 0;
53786 }
53787 function __ZNK10btBoxShape36getNumPreferredPenetrationDirectionsEv(i1) {
53788 i1 = i1 | 0;
53789 return 6;
53790 }
53791 function __ZN23btConvexConvexAlgorithm10CreateFuncD0Ev(i1) {
53792 i1 = i1 | 0;
53793 __ZdlPv(i1);
53794 return;
53795 }
53796 function __ZNK16btCollisionShape28calculateSerializeBufferSizeEv(i1) {
53797 i1 = i1 | 0;
53798 return 12;
53799 }
53800 function __ZN34btClosestNotMeConvexResultCallbackD0Ev(i1) {
53801 i1 = i1 | 0;
53802 __ZdlPv(i1);
53803 return;
53804 }
53805 function __ZN28btHashedOverlappingPairCache18hasDeferredRemovalEv(i1) {
53806 i1 = i1 | 0;
53807 return 0;
53808 }
53809 function __ZN15btGjkConvexCastD1Ev(i1) {
53810 i1 = i1 | 0;
53811 __ZN12btConvexCastD2Ev(i1 | 0);
53812 return;
53813 }
53814 function __ZN13btConvexShapeD0Ev(i1) {
53815 i1 = i1 | 0;
53816 __Z21btAlignedFreeInternalPv(i1);
53817 return;
53818 }
53819 function dynCall_vi(i1, i2) {
53820 i1 = i1 | 0;
53821 i2 = i2 | 0;
53822 FUNCTION_TABLE_vi[i1 & 511](i2 | 0);
53823 }
53824 function b34(i1, i2, d3, i4) {
53825 i1 = i1 | 0;
53826 i2 = i2 | 0;
53827 d3 = +d3;
53828 i4 = i4 | 0;
53829 abort(34);
53830 }
53831 function b26(i1, d2, i3, i4) {
53832 i1 = i1 | 0;
53833 d2 = +d2;
53834 i3 = i3 | 0;
53835 i4 = i4 | 0;
53836 abort(26);
53837 }
53838 function b11(i1, i2, i3, d4) {
53839 i1 = i1 | 0;
53840 i2 = i2 | 0;
53841 i3 = i3 | 0;
53842 d4 = +d4;
53843 abort(11);
53844 }
53845 function __ZN33btMinkowskiPenetrationDepthSolverD0Ev(i1) {
53846 i1 = i1 | 0;
53847 __ZdlPv(i1);
53848 return;
53849 }
53850 function __ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD1Ev(i1) {
53851 i1 = i1 | 0;
53852 return;
53853 }
53854 function __ZN13btSphereShapeD1Ev(i1) {
53855 i1 = i1 | 0;
53856 __ZN13btConvexShapeD2Ev(i1 | 0);
53857 return;
53858 }
53859 function __ZN12btConvexCast10CastResult9DebugDrawEf(i1, d2) {
53860 i1 = i1 | 0;
53861 d2 = +d2;
53862 return;
53863 }
53864 function __ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD1Ev(i1) {
53865 i1 = i1 | 0;
53866 return;
53867 }
53868 function b10(i1, i2, i3) {
53869 i1 = i1 | 0;
53870 i2 = i2 | 0;
53871 i3 = i3 | 0;
53872 abort(10);
53873 return 0.0;
53874 }
53875 function __ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD1Ev(i1) {
53876 i1 = i1 | 0;
53877 return;
53878 }
53879 function __ZN16btCollisionWorld27ClosestConvexResultCallbackD1Ev(i1) {
53880 i1 = i1 | 0;
53881 return;
53882 }
53883 function __ZNK11btRigidBody28calculateSerializeBufferSizeEv(i1) {
53884 i1 = i1 | 0;
53885 return 480;
53886 }
53887 function __ZN32btSphereSphereCollisionAlgorithm10CreateFuncD1Ev(i1) {
53888 i1 = i1 | 0;
53889 return;
53890 }
53891 function __ZN30btGjkEpaPenetrationDepthSolverD0Ev(i1) {
53892 i1 = i1 | 0;
53893 __ZdlPv(i1);
53894 return;
53895 }
53896 function __ZN30btActivatingCollisionAlgorithmD0Ev(i1) {
53897 i1 = i1 | 0;
53898 __ZdlPv(i1);
53899 return;
53900 }
53901 function b15(i1, i2, i3) {
53902 i1 = i1 | 0;
53903 i2 = i2 | 0;
53904 i3 = i3 | 0;
53905 abort(15);
53906 return 0;
53907 }
53908 function __ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD1Ev(i1) {
53909 i1 = i1 | 0;
53910 return;
53911 }
53912 function __ZN16btEmptyAlgorithm10CreateFuncD0Ev(i1) {
53913 i1 = i1 | 0;
53914 __ZdlPv(i1);
53915 return;
53916 }
53917 function b37(i1, i2, d3) {
53918 i1 = i1 | 0;
53919 i2 = i2 | 0;
53920 d3 = +d3;
53921 abort(37);
53922 return 0;
53923 }
53924 function __ZN28btCompoundCollisionAlgorithm10CreateFuncD1Ev(i1) {
53925 i1 = i1 | 0;
53926 return;
53927 }
53928 function __ZNK23btDiscreteDynamicsWorld12getWorldTypeEv(i1) {
53929 i1 = i1 | 0;
53930 return 2;
53931 }
53932 function __ZN26btBoxBoxCollisionAlgorithm10CreateFuncD1Ev(i1) {
53933 i1 = i1 | 0;
53934 return;
53935 }
53936 function __ZN24btPerturbedContactResultD0Ev(i1) {
53937 i1 = i1 | 0;
53938 __ZdlPv(i1);
53939 return;
53940 }
53941 function __ZN12btConvexCast10CastResultD0Ev(i1) {
53942 i1 = i1 | 0;
53943 __ZdlPv(i1);
53944 return;
53945 }
53946 function __ZN23btCollisionPairCallbackD0Ev(i1) {
53947 i1 = i1 | 0;
53948 __ZdlPv(i1);
53949 return;
53950 }
53951 function __ZN22btCompoundLeafCallbackD0Ev(i1) {
53952 i1 = i1 | 0;
53953 __ZdlPv(i1);
53954 return;
53955 }
53956 function __ZN22SphereTriangleDetectorD0Ev(i1) {
53957 i1 = i1 | 0;
53958 __ZdlPv(i1);
53959 return;
53960 }
53961 function __ZdlPv(i1) {
53962 i1 = i1 | 0;
53963 if ((i1 | 0) != 0) {
53964 _free(i1);
53965 }
53966 return;
53967 }
53968 function __ZN23btConvexConvexAlgorithm10CreateFuncD2Ev(i1) {
53969 i1 = i1 | 0;
53970 return;
53971 }
53972 function __ZN21btSingleSweepCallbackD0Ev(i1) {
53973 i1 = i1 | 0;
53974 __ZdlPv(i1);
53975 return;
53976 }
53977 function __ZN34btClosestNotMeConvexResultCallbackD1Ev(i1) {
53978 i1 = i1 | 0;
53979 return;
53980 }
53981 function __ZN20btDefaultMotionStateD0Ev(i1) {
53982 i1 = i1 | 0;
53983 __ZdlPv(i1);
53984 return;
53985 }
53986 function __ZN20btCollisionAlgorithmD0Ev(i1) {
53987 i1 = i1 | 0;
53988 __ZdlPv(i1);
53989 return;
53990 }
53991 function __ZN20BroadphaseAabbTesterD0Ev(i1) {
53992 i1 = i1 | 0;
53993 __ZdlPv(i1);
53994 return;
53995 }
53996 function __ZNK10__cxxabiv116__shim_type_info5noop2Ev(i1) {
53997 i1 = i1 | 0;
53998 return;
53999 }
54000 function __ZNK10__cxxabiv116__shim_type_info5noop1Ev(i1) {
54001 i1 = i1 | 0;
54002 return;
54003 }
54004 function __ZN33btMinkowskiPenetrationDepthSolverD1Ev(i1) {
54005 i1 = i1 | 0;
54006 return;
54007 }
54008 function __ZN19btSingleRayCallbackD0Ev(i1) {
54009 i1 = i1 | 0;
54010 __ZdlPv(i1);
54011 return;
54012 }
54013 function __ZN19BroadphaseRayTesterD0Ev(i1) {
54014 i1 = i1 | 0;
54015 __ZdlPv(i1);
54016 return;
54017 }
54018 function b33(i1, i2, i3) {
54019 i1 = i1 | 0;
54020 i2 = i2 | 0;
54021 i3 = i3 | 0;
54022 abort(33);
54023 }
54024 function __ZNK15btTriangleShape14getNumVerticesEv(i1) {
54025 i1 = i1 | 0;
54026 return 3;
54027 }
54028 function __ZN18btDbvtTreeColliderD0Ev(i1) {
54029 i1 = i1 | 0;
54030 __ZdlPv(i1);
54031 return;
54032 }
54033 function __ZN31btInternalTriangleIndexCallbackD2Ev(i1) {
54034 i1 = i1 | 0;
54035 return;
54036 }
54037 function __ZN17btGjkPairDetectorD0Ev(i1) {
54038 i1 = i1 | 0;
54039 __ZdlPv(i1);
54040 return;
54041 }
54042 function __ZNK15btTriangleShape7getNameEv(i1) {
54043 i1 = i1 | 0;
54044 return 832 | 0;
54045 }
54046 function __ZNK15btTriangleShape12getNumPlanesEv(i1) {
54047 i1 = i1 | 0;
54048 return 1;
54049 }
54050 function __ZN30btGjkEpaPenetrationDepthSolverD1Ev(i1) {
54051 i1 = i1 | 0;
54052 return;
54053 }
54054 function __ZN30btActivatingCollisionAlgorithmD2Ev(i1) {
54055 i1 = i1 | 0;
54056 return;
54057 }
54058 function __ZN16btPointCollectorD0Ev(i1) {
54059 i1 = i1 | 0;
54060 __ZdlPv(i1);
54061 return;
54062 }
54063 function __ZN16btManifoldResultD0Ev(i1) {
54064 i1 = i1 | 0;
54065 __ZdlPv(i1);
54066 return;
54067 }
54068 function __ZN16btEmptyAlgorithmD0Ev(i1) {
54069 i1 = i1 | 0;
54070 __ZdlPv(i1);
54071 return;
54072 }
54073 function __ZN16btBoxBoxDetectorD0Ev(i1) {
54074 i1 = i1 | 0;
54075 __ZdlPv(i1);
54076 return;
54077 }
54078 function b36(i1, i2, d3) {
54079 i1 = i1 | 0;
54080 i2 = i2 | 0;
54081 d3 = +d3;
54082 abort(36);
54083 }
54084 function b18(i1, d2, i3) {
54085 i1 = i1 | 0;
54086 d2 = +d2;
54087 i3 = i3 | 0;
54088 abort(18);
54089 }
54090 function __ZNK15btTriangleShape11getNumEdgesEv(i1) {
54091 i1 = i1 | 0;
54092 return 3;
54093 }
54094 function __ZNK13btSphereShape7getNameEv(i1) {
54095 i1 = i1 | 0;
54096 return 776 | 0;
54097 }
54098 function __ZN16btEmptyAlgorithm10CreateFuncD1Ev(i1) {
54099 i1 = i1 | 0;
54100 return;
54101 }
54102 function __ZNK10btBoxShape14getNumVerticesEv(i1) {
54103 i1 = i1 | 0;
54104 return 8;
54105 }
54106 function __ZL14btAllocDefaultj(i1) {
54107 i1 = i1 | 0;
54108 return _malloc(i1) | 0;
54109 }
54110 function __ZN16btDbvtBroadphase10printStatsEv(i1) {
54111 i1 = i1 | 0;
54112 return;
54113 }
54114 function b14(i1, i2) {
54115 i1 = i1 | 0;
54116 i2 = i2 | 0;
54117 abort(14);
54118 return 0;
54119 }
54120 function __ZNK10btBoxShape7getNameEv(i1) {
54121 i1 = i1 | 0;
54122 return 712 | 0;
54123 }
54124 function __ZNK10btBoxShape12getNumPlanesEv(i1) {
54125 i1 = i1 | 0;
54126 return 6;
54127 }
54128 function __ZNK10btBoxShape11getNumEdgesEv(i1) {
54129 i1 = i1 | 0;
54130 return 12;
54131 }
54132 function b16(i1, d2) {
54133 i1 = i1 | 0;
54134 d2 = +d2;
54135 abort(16);
54136 return 0.0;
54137 }
54138 function __ZNSt9bad_allocD0Ev(i1) {
54139 i1 = i1 | 0;
54140 __ZdlPv(i1);
54141 return;
54142 }
54143 function __ZN24btPerturbedContactResultD1Ev(i1) {
54144 i1 = i1 | 0;
54145 return;
54146 }
54147 function __ZN12btConvexCast10CastResultD1Ev(i1) {
54148 i1 = i1 | 0;
54149 return;
54150 }
54151 function __ZN23btCollisionPairCallbackD1Ev(i1) {
54152 i1 = i1 | 0;
54153 return;
54154 }
54155 function __ZL13btFreeDefaultPv(i1) {
54156 i1 = i1 | 0;
54157 _free(i1);
54158 return;
54159 }
54160 function __ZNKSt9bad_alloc4whatEv(i1) {
54161 i1 = i1 | 0;
54162 return 472 | 0;
54163 }
54164 function __ZN22btCompoundLeafCallbackD1Ev(i1) {
54165 i1 = i1 | 0;
54166 return;
54167 }
54168 function __ZN22SphereTriangleDetectorD1Ev(i1) {
54169 i1 = i1 | 0;
54170 return;
54171 }
54172 function __ZN21btSingleSweepCallbackD1Ev(i1) {
54173 i1 = i1 | 0;
54174 return;
54175 }
54176 function __ZN20btDefaultMotionStateD1Ev(i1) {
54177 i1 = i1 | 0;
54178 return;
54179 }
54180 function __ZN20btCollisionAlgorithmD1Ev(i1) {
54181 i1 = i1 | 0;
54182 return;
54183 }
54184 function __ZN20BroadphaseAabbTesterD1Ev(i1) {
54185 i1 = i1 | 0;
54186 return;
54187 }
54188 function v____cxa_pure_virtual__wrapper() {
54189 ___cxa_pure_virtual();
54190 }
54191 function dynCall_v(i1) {
54192 i1 = i1 | 0;
54193 FUNCTION_TABLE_v[i1 & 3]();
54194 }
54195 function __ZN19btSingleRayCallbackD1Ev(i1) {
54196 i1 = i1 | 0;
54197 return;
54198 }
54199 function __ZN19BroadphaseRayTesterD1Ev(i1) {
54200 i1 = i1 | 0;
54201 return;
54202 }
54203 function __ZN18btTriangleCallbackD2Ev(i1) {
54204 i1 = i1 | 0;
54205 return;
54206 }
54207 function __ZN18btDbvtTreeColliderD1Ev(i1) {
54208 i1 = i1 | 0;
54209 return;
54210 }
54211 function __ZN17btGjkPairDetectorD1Ev(i1) {
54212 i1 = i1 | 0;
54213 return;
54214 }
54215 function __ZN17btCollisionObjectD2Ev(i1) {
54216 i1 = i1 | 0;
54217 return;
54218 }
54219 function __ZN16btPointCollectorD1Ev(i1) {
54220 i1 = i1 | 0;
54221 return;
54222 }
54223 function __ZN16btManifoldResultD1Ev(i1) {
54224 i1 = i1 | 0;
54225 return;
54226 }
54227 function __ZN16btEmptyAlgorithmD1Ev(i1) {
54228 i1 = i1 | 0;
54229 return;
54230 }
54231 function __ZN16btBoxBoxDetectorD1Ev(i1) {
54232 i1 = i1 | 0;
54233 return;
54234 }
54235 function __ZN13btConvexShapeD2Ev(i1) {
54236 i1 = i1 | 0;
54237 return;
54238 }
54239 function b5(i1, i2) {
54240 i1 = i1 | 0;
54241 i2 = i2 | 0;
54242 abort(5);
54243 }
54244 function __ZN12btDispatcherD2Ev(i1) {
54245 i1 = i1 | 0;
54246 return;
54247 }
54248 function __ZN12btConvexCastD2Ev(i1) {
54249 i1 = i1 | 0;
54250 return;
54251 }
54252 function __ZNSt9type_infoD2Ev(i1) {
54253 i1 = i1 | 0;
54254 return;
54255 }
54256 function __ZNSt9bad_allocD2Ev(i1) {
54257 i1 = i1 | 0;
54258 return;
54259 }
54260 function stackRestore(i1) {
54261 i1 = i1 | 0;
54262 STACKTOP = i1;
54263 }
54264 function b27(i1) {
54265 i1 = i1 | 0;
54266 abort(27);
54267 return 0.0;
54268 }
54269 function b1(i1, d2) {
54270 i1 = i1 | 0;
54271 d2 = +d2;
54272 abort(1);
54273 }
54274 function setTempRet9(i1) {
54275 i1 = i1 | 0;
54276 tempRet9 = i1;
54277 }
54278 function setTempRet8(i1) {
54279 i1 = i1 | 0;
54280 tempRet8 = i1;
54281 }
54282 function setTempRet7(i1) {
54283 i1 = i1 | 0;
54284 tempRet7 = i1;
54285 }
54286 function setTempRet6(i1) {
54287 i1 = i1 | 0;
54288 tempRet6 = i1;
54289 }
54290 function setTempRet5(i1) {
54291 i1 = i1 | 0;
54292 tempRet5 = i1;
54293 }
54294 function setTempRet4(i1) {
54295 i1 = i1 | 0;
54296 tempRet4 = i1;
54297 }
54298 function setTempRet3(i1) {
54299 i1 = i1 | 0;
54300 tempRet3 = i1;
54301 }
54302 function setTempRet2(i1) {
54303 i1 = i1 | 0;
54304 tempRet2 = i1;
54305 }
54306 function setTempRet1(i1) {
54307 i1 = i1 | 0;
54308 tempRet1 = i1;
54309 }
54310 function setTempRet0(i1) {
54311 i1 = i1 | 0;
54312 tempRet0 = i1;
54313 }
54314 function b8(i1) {
54315 i1 = i1 | 0;
54316 abort(8);
54317 return 0;
54318 }
54319 function stackSave() {
54320 return STACKTOP | 0;
54321 }
54322 function b4(i1) {
54323 i1 = i1 | 0;
54324 abort(4);
54325 }
54326 function b35() {
54327 abort(35);
54328 }
54329 // EMSCRIPTEN_END_FUNCS
54330 var FUNCTION_TABLE_iiiiiiii = [b0,b0];
54331 var FUNCTION_TABLE_vif = [b1,b1,__ZN10btBoxShape9setMarginEf,b1,__ZN21btConvexInternalShape9setMarginEf,b1,__ZN23btDiscreteDynamicsWorld14updateVehiclesEf,b1,__ZN23btDiscreteDynamicsWorld22addSpeculativeContactsEf,b1,__ZN23btDiscreteDynamicsWorld19integrateTransformsEf
54332 ,b1,__ZN13btSphereShape9setMarginEf,b1,__ZN23btDiscreteDynamicsWorld25predictUnconstraintMotionEf,b1,__ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf,b1,__ZN23btDiscreteDynamicsWorld18saveKinematicStateEf,b1,__ZN12btConvexCast10CastResult9DebugDrawEf,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1];
54333 var FUNCTION_TABLE_viifii = [b2,b2];
54334 var FUNCTION_TABLE_viiiii = [b3,b3,__ZN34btSphereTriangleCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b3,__ZN28btCompoundCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b3,__ZN27btContinuousConvexCollisionC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver,b3,__ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,b3,__ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib
54335 ,b3,__ZN16btDbvtBroadphase7setAabbEP17btBroadphaseProxyRK9btVector3S4_P12btDispatcher,b3,__ZN32btSphereSphereCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b3,__ZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b3,__ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb,b3,__ZN31btConvexPlaneCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult
54336 ,b3,__ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb,b3,__ZN28btCompoundCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b,b3,__ZN33btConvexConcaveCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b3,__ZN26btBoxBoxCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b3,__ZN32btSphereSphereCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_
54337 ,b3,__ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,b3,__ZN23btDiscreteDynamicsWorldC2EP12btDispatcherP21btBroadphaseInterfaceP18btConstraintSolverP24btCollisionConfiguration,b3,__ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb,b3,__ZN16btEmptyAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b3,__ZN26btBoxBoxCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_,b3,__ZN17btGjkPairDetectorC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver,b3,__ZN33btConvexConcaveCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3];
54338 var FUNCTION_TABLE_vi = [b4,b4,__ZN34btSphereTriangleCollisionAlgorithmD0Ev,b4,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD2E_0v,b4,__ZN10__cxxabiv116__shim_type_infoD2Ev,b4,__ZN26btBoxBoxCollisionAlgorithmD2Ev,b4,__ZN15btGjkConvexCastD0Ev
54339 ,b4,__ZN16btManifoldResultD1Ev,b4,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0E_0v,b4,__ZN16btPointCollectorD1Ev,b4,__ZN22btSubsimplexConvexCastD1Ev,b4,__ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD0Ev
54340 ,b4,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD2Ev,b4,__ZN20btCollisionAlgorithmD1Ev,b4,__ZN25btTriangleRaycastCallbackD0Ev,b4,__ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD1Ev,b4,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0Ev
54341 ,b4,__ZNSt9bad_allocD2Ev,b4,__ZN16btCollisionWorld27ClosestConvexResultCallbackD1Ev,b4,__ZN21btCollisionDispatcherD0Ev,b4,__ZN35btSequentialImpulseConstraintSolverD0Ev,b4,__ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD0Ev
54342 ,b4,__ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD0Ev,b4,__ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResultD0Ev,b4,__ZN13btSphereShapeD1Ev,b4,__ZN23btCollisionPairCallbackD1Ev,b4,__ZN15btTriangleShapeD0Ev
54343 ,b4,__ZN33btMinkowskiPenetrationDepthSolverD1Ev,b4,__ZN18btDbvtTreeColliderD1Ev,b4,__ZN11btUnionFindC2Ev,b4,__ZN18btConvexPolyhedronC2Ev,b4,__ZN32btSphereSphereCollisionAlgorithm10CreateFuncD0Ev
54344 ,b4,__ZN23btDiscreteDynamicsWorld12applyGravityEv,b4,__ZN25btSimulationIslandManagerC2Ev,b4,__ZN16btDbvtBroadphaseD2Ev,b4,__ZN28btHashedOverlappingPairCacheC2Ev,b4,__ZN18btConvexPolyhedronD2Ev
54345 ,b4,__ZN32btSphereSphereCollisionAlgorithm10CreateFuncD1Ev,b4,__ZNK10__cxxabiv116__shim_type_info5noop1Ev,b4,__ZN16btDbvtBroadphase10printStatsEv,b4,__ZN16btCollisionWorld14debugDrawWorldEv,b4,__ZN23btPolyhedralConvexShapeD2Ev
54346 ,b4,__ZN23btConvexConvexAlgorithmD0Ev,b4,__ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD2Ev,b4,__ZN10btBoxShapeD0Ev,b4,__ZN31btDefaultCollisionConfigurationD2Ev,b4,__ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD2Ev
54347 ,b4,__ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD0Ev,b4,__ZN23btDiscreteDynamicsWorld26calculateSimulationIslandsEv,b4,__ZN16btCollisionWorld11updateAabbsEv,b4,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD0E_1v,b4,__ZN12btConvexCast10CastResultD1Ev
54348 ,b4,__ZN28btCompoundCollisionAlgorithmD2Ev,b4,__ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD0Ev,b4,__ZN30btActivatingCollisionAlgorithmD2Ev,b4,__ZThn4_N17DebugDrawcallbackD0Ev,b4,__ZN22btCompoundLeafCallbackD0Ev
54349 ,b4,__ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD1Ev,b4,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN9RayTesterD2E_1v,b4,__ZN16btEmptyAlgorithmD1Ev,b4,__ZN17btCollisionObjectD2Ev,b4,__ZN15btGjkConvexCastD1Ev
54350 ,b4,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD2Ev,b4,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD2E_0v,b4,__ZN12btConvexCast10CastResultD0Ev,b4,__ZN16btCollisionWorldD2Ev,b4,__ZThn4_N17DebugDrawcallbackD1Ev
54351 ,b4,__ZN23btDiscreteDynamicsWorldD0Ev,b4,__ZN17DebugDrawcallbackD0Ev,b4,__ZN19btSingleRayCallbackD1Ev,b4,__ZN20BroadphaseAabbTesterD1Ev,b4,__ZN20btCollisionAlgorithmD0Ev
54352 ,b4,__ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD0Ev,b4,__ZN28btHashedOverlappingPairCacheD2Ev,b4,__ZN33btConvexConcaveCollisionAlgorithmD2Ev,b4,__ZN10btBoxShapeD1Ev,b4,__ZN28btCompoundCollisionAlgorithm10CreateFuncD1Ev
54353 ,b4,__ZN6btDbvtD2Ev,b4,__ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv,b4,__ZN34btSphereTriangleCollisionAlgorithmD2Ev,b4,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN9RayTesterD0E_1v,b4,__ZN16btEmptyAlgorithmD0Ev
54354 ,b4,__ZN35btSequentialImpulseConstraintSolver5resetEv,b4,__ZL20btAlignedFreeDefaultPv,b4,__ZN15btTriangleShapeD1Ev,b4,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0E_0v,b4,__ZN19btSingleRayCallbackD0Ev
54355 ,b4,__ZN22SphereTriangleDetectorD0Ev,b4,__ZN28btTriangleConvexcastCallbackD0Ev,b4,__ZN16btCollisionWorld33performDiscreteCollisionDetectionEv,b4,__ZN30btGjkEpaPenetrationDepthSolverD0Ev,b4,__ZNSt9bad_allocD0Ev
54356 ,b4,__ZN33btMinkowskiPenetrationDepthSolverD0Ev,b4,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0Ev,b4,__ZN21btConvexInternalShapeD1Ev,b4,__ZN16btDbvtBroadphaseD0Ev,b4,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D0Ev
54357 ,b4,__ZN10__cxxabiv120__si_class_type_infoD0Ev,b4,__ZN17DebugDrawcallbackD1Ev,b4,__ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD2Ev,b4,__ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD2Ev,b4,__ZN16btCollisionWorld27ClosestConvexResultCallbackD0Ev
54358 ,b4,__ZN26btBoxBoxCollisionAlgorithm10CreateFuncD0Ev,b4,__ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD0Ev,b4,__ZN13btConvexShapeD2Ev,b4,__ZN21btConvexInternalShapeD0Ev,b4,__ZN23btDiscreteDynamicsWorld11clearForcesEv
54359 ,b4,__ZN18btConvexPolyhedronD0Ev,b4,__ZNK10__cxxabiv116__shim_type_info5noop2Ev,b4,__ZN20btDefaultMotionStateD1Ev,b4,__ZN31btConvexPlaneCollisionAlgorithmD0Ev,b4,__ZN23btConvexConvexAlgorithm10CreateFuncD0Ev
54360 ,b4,__ZN16btPointCollectorD0Ev,b4,__ZN31btDefaultCollisionConfigurationD0Ev,b4,__ZN16btBoxBoxDetectorD1Ev,b4,__ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD1Ev,b4,__ZN19BroadphaseRayTesterD1Ev
54361 ,b4,__ZN23btCollisionPairCallbackD0Ev,b4,__ZN11btUnionFindD2Ev,b4,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD2E_1v,b4,__ZN24btPerturbedContactResultD0Ev,b4,__ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD0Ev
54362 ,b4,__ZN23btDiscreteDynamicsWorldD2Ev,b4,__ZN6btDbvtC2Ev,b4,__ZN12CProfileNodeD2Ev,b4,__ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD0Ev,b4,__ZN30btActivatingCollisionAlgorithmD0Ev
54363 ,b4,__ZN26btBoxBoxCollisionAlgorithmD0Ev,b4,__ZN21btSingleSweepCallbackD1Ev,b4,__ZN18btDbvtTreeColliderD0Ev,b4,__ZN20BroadphaseAabbTesterD0Ev,b4,__ZN22SphereTriangleDetectorD1Ev
54364 ,b4,__ZN32btSphereSphereCollisionAlgorithmD0Ev,b4,__ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD2Ev,b4,__ZN27btContinuousConvexCollisionD1Ev,b4,__ZN11btRigidBodyD1Ev,b4,__ZN10__cxxabiv121__vmi_class_type_infoD0Ev
54365 ,b4,__ZN21btSingleSweepCallbackD0Ev,b4,__ZN22btSubsimplexConvexCastD0Ev,b4,__ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResultD2Ev,b4,__ZN27btContinuousConvexCollisionD0Ev,b4,__ZN17btCollisionObjectD0Ev
54366 ,b4,__ZN23btPolyhedralConvexShapeD0Ev,b4,__ZN17btGjkPairDetectorD1Ev,b4,__ZN16btEmptyAlgorithm10CreateFuncD0Ev,b4,__ZN30btGjkEpaPenetrationDepthSolverD1Ev,b4,__ZN11btRigidBodyD0Ev
54367 ,b4,__ZN35btSequentialImpulseConstraintSolverC2Ev,b4,__ZN28btHashedOverlappingPairCacheD0Ev,b4,__ZN24btConvexTriangleCallbackD2Ev,b4,__ZN22btCompoundLeafCallbackD1Ev,b4,__ZL13btFreeDefaultPv
54368 ,b4,__ZN21btCollisionDispatcherD2Ev,b4,__ZN26btBoxBoxCollisionAlgorithm10CreateFuncD1Ev,b4,__ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResultD0Ev,b4,__ZN25btSimulationIslandManagerD2Ev,b4,__ZN34btClosestNotMeConvexResultCallbackD1Ev
54369 ,b4,__ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev,b4,__ZN25btTriangleRaycastCallbackD1Ev,b4,__ZN17btGjkPairDetectorD0Ev,b4,__ZN33btConvexConcaveCollisionAlgorithmD0Ev,b4,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D2Ev
54370 ,b4,__ZN23btConvexConvexAlgorithmD2Ev,b4,__ZN28btCompoundCollisionAlgorithmD0Ev,b4,__ZN34btClosestNotMeConvexResultCallbackD0Ev,b4,__ZN16btBoxBoxDetectorD0Ev,b4,__ZN24btConvexTriangleCallbackD0Ev
54371 ,b4,__ZN13btSphereShapeD0Ev,b4,__ZN13btConvexShapeD0Ev,b4,__ZN7btClockD2Ev,b4,__ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD1Ev,b4,__ZN24btPerturbedContactResultD1Ev
54372 ,b4,__ZN23btDiscreteDynamicsWorld14debugDrawWorldEv,b4,__ZN16btEmptyAlgorithm10CreateFuncD1Ev,b4,__ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD0Ev,b4,__ZN10__cxxabiv117__class_type_infoD0Ev,b4,__ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD1Ev
54373 ,b4,__ZN28btTriangleConvexcastCallbackD1Ev,b4,__ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResultD2Ev,b4,__ZN28btCompoundCollisionAlgorithm10CreateFuncD0Ev,b4,__ZN23btConvexConvexAlgorithm10CreateFuncD2Ev,b4,__ZN25btSimulationIslandManagerD0Ev
54374 ,b4,__ZN16btCollisionWorldD0Ev,b4,__ZN19BroadphaseRayTesterD0Ev,b4,__ZN16btManifoldResultD0Ev,b4,__ZN35btSequentialImpulseConstraintSolverD2Ev,b4,__ZN20btDefaultMotionStateD0Ev,b4,__ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD2Ev,b4,__ZN32btSphereSphereCollisionAlgorithmD2Ev,b4,__ZN31btConvexPlaneCollisionAlgorithmD2Ev,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4];
54375 var FUNCTION_TABLE_vii = [b5,b5,__ZN21btConvexInternalShape15setLocalScalingERK9btVector3,b5,__ZN28btCompoundCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE,b5,__ZN20BroadphaseAabbTester7ProcessEPK10btDbvtNode,b5,__ZN23btDiscreteDynamicsWorld13removeVehicleEP17btActionInterface,b5,__ZN23btDiscreteDynamicsWorld12removeActionEP17btActionInterface
54376 ,b5,__ZN21btCollisionDispatcher15releaseManifoldEP20btPersistentManifold,b5,__ZN23btConvexConvexAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE,b5,__ZN11btRigidBodyC2ERKNS_27btRigidBodyConstructionInfoE,b5,__ZN16btCollisionWorld9serializeEP12btSerializer,b5,__ZNK20btDefaultMotionState17getWorldTransformER11btTransform
54377 ,b5,__ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw,b5,__ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject,b5,__ZN23btDiscreteDynamicsWorld12addCharacterEP17btActionInterface,b5,__ZNK11btRigidBody21serializeSingleObjectEP12btSerializer,b5,__ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape
54378 ,b5,__ZN25btSimulationIslandManager26storeIslandActivationStateEP16btCollisionWorld,b5,__ZN12btConvexCast10CastResult15drawCoordSystemERK11btTransform,b5,__ZN28btHashedOverlappingPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback,b5,__ZN23btDiscreteDynamicsWorld10setGravityERK9btVector3,b5,__ZN23btDiscreteDynamicsWorld16removeConstraintEP17btTypedConstraint
54379 ,b5,__ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody,b5,__ZNK23btDiscreteDynamicsWorld10getGravityEv,b5,__ZN23btDiscreteDynamicsWorld15removeCharacterEP17btActionInterface,b5,__ZN16btDbvtBroadphase9resetPoolEP12btDispatcher,b5,__ZN23btDiscreteDynamicsWorld9serializeEP12btSerializer
54380 ,b5,__ZN22btCompoundLeafCallback7ProcessEPK10btDbvtNode,b5,__ZNK17btCollisionObject21serializeSingleObjectEP12btSerializer,b5,__ZN16btDbvtBroadphase25calculateOverlappingPairsEP12btDispatcher,b5,__ZN21btCollisionDispatcher22freeCollisionAlgorithmEPv,b5,__ZN26btBoxBoxCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE
54381 ,b5,__ZN34btSphereTriangleCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE,b5,__ZN10btBoxShape15setLocalScalingERK9btVector3,b5,__ZN23btDiscreteDynamicsWorld11setNumTasksEi,b5,__ZN28btHashedOverlappingPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback,b5,__ZN23btDiscreteDynamicsWorld19setConstraintSolverEP18btConstraintSolver
54382 ,b5,__ZN21btCollisionDispatcherC2EP24btCollisionConfiguration,b5,__ZN23btDiscreteDynamicsWorld10addVehicleEP17btActionInterface,b5,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN9RayTester7ProcessE_1PK10btDbvtNode,b5,__ZN23btDiscreteDynamicsWorld21removeCollisionObjectEP17btCollisionObject,b5,__ZN19BroadphaseRayTester7ProcessEPK10btDbvtNode
54383 ,b5,__ZN28btHashedOverlappingPairCache20sortOverlappingPairsEP12btDispatcher,b5,__ZN31btDefaultCollisionConfigurationC2ERK34btDefaultCollisionConstructionInfo,b5,__ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer,b5,__ZN16btEmptyAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE,b5,__ZN16btEmptyAlgorithmC2ERK36btCollisionAlgorithmConstructionInfo
54384 ,b5,__ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNode,b5,__ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfo,b5,__ZN20btDefaultMotionState17setWorldTransformERK11btTransform,b5,__ZN33btConvexConcaveCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE,b5,__ZN21btCollisionDispatcher13clearManifoldEP20btPersistentManifold
54385 ,b5,__ZN16btDbvtBroadphaseC2EP22btOverlappingPairCache,b5,__ZN23btDiscreteDynamicsWorld15removeRigidBodyEP11btRigidBody,b5,__ZN23btDiscreteDynamicsWorld9addActionEP17btActionInterface,b5,__ZN31btConvexPlaneCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE,b5,__ZN32btSphereSphereCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5];
54386 var FUNCTION_TABLE_viiifii = [b6,b6];
54387 var FUNCTION_TABLE_vifiii = [b7,b7,__ZN11btRigidBodyC2EfP13btMotionStateP16btCollisionShapeRK9btVector3,b7];
54388 var FUNCTION_TABLE_ii = [b8,b8,__ZN23btPolyhedralConvexShape28initializePolyhedralFeaturesEv,b8,__ZNK15btTriangleShape11getNumEdgesEv,b8,__ZN28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv,b8,__ZNK23btDiscreteDynamicsWorld17getNumConstraintsEv,b8,__ZNK16btCollisionShape28calculateSerializeBufferSizeEv
54389 ,b8,__ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv,b8,__ZNK28btHashedOverlappingPairCache22getNumOverlappingPairsEv,b8,__ZNK13btSphereShape7getNameEv,b8,__ZNK15btTriangleShape7getNameEv,b8,__ZNK11btRigidBody28calculateSerializeBufferSizeEv
54390 ,b8,__ZNK10btBoxShape14getNumVerticesEv,b8,__ZNK28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv,b8,__ZN21btCollisionDispatcher23getInternalManifoldPoolEv,b8,__ZNK15btTriangleShape12getNumPlanesEv,b8,__ZN16btCollisionWorld14getDebugDrawerEv
54391 ,b8,__ZN31btDefaultCollisionConfiguration25getPersistentManifoldPoolEv,b8,__ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv,b8,__ZN31btDefaultCollisionConfiguration25getCollisionAlgorithmPoolEv,b8,__ZNK10btBoxShape11getNumEdgesEv,b8,__ZN31btDefaultCollisionConfiguration17getStackAllocatorEv
54392 ,b8,__ZNK15btTriangleShape36getNumPreferredPenetrationDirectionsEv,b8,__ZNK21btCollisionDispatcher15getNumManifoldsEv,b8,__ZNK10btBoxShape36getNumPreferredPenetrationDirectionsEv,b8,__ZN21btCollisionDispatcher26getInternalManifoldPointerEv,b8,__ZNK15btTriangleShape14getNumVerticesEv
54393 ,b8,__ZNK10btBoxShape12getNumPlanesEv,b8,__ZNK23btDiscreteDynamicsWorld12getWorldTypeEv,b8,__ZNK21btConvexInternalShape15getLocalScalingEv,b8,__ZN28btHashedOverlappingPairCache18hasDeferredRemovalEv,b8,__ZN28btHashedOverlappingPairCache23getOverlappingPairArrayEv
54394 ,b8,__ZN16btDbvtBroadphase23getOverlappingPairCacheEv,b8,__ZN23btDiscreteDynamicsWorld19getConstraintSolverEv,b8,__ZNKSt9bad_alloc4whatEv,b8,__ZNK16btDbvtBroadphase23getOverlappingPairCacheEv,b8,__ZNK21btCollisionDispatcher23getInternalManifoldPoolEv,b8,__ZNK10btBoxShape7getNameEv,b8,__ZN31btDefaultCollisionConfiguration16getSimplexSolverEv,b8,__ZNK17btCollisionObject28calculateSerializeBufferSizeEv,b8,__ZL14btAllocDefaultj,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8];
54395 var FUNCTION_TABLE_viiiiffffiif = [b9,b9];
54396 var FUNCTION_TABLE_fiii = [b10,b10,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdder15addSingleResultE_1RNS_17LocalConvexResultEb,b10,__ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb,b10,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder215addSingleResultERNS_14LocalRayResultEb,b10,__ZN34btClosestNotMeConvexResultCallback15addSingleResultERN16btCollisionWorld17LocalConvexResultEb,b10,b10,b10,b10,b10,b10,b10];
54397 var FUNCTION_TABLE_viiif = [b11,b11,__ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResult15addContactPointERK9btVector3SA_f,b11,__ZN22SphereTriangleDetectorC2EP13btSphereShapeP15btTriangleShapef,b11,__ZN16btManifoldResult15addContactPointERK9btVector3S2_f,b11,__ZN24btPerturbedContactResult15addContactPointERK9btVector3S2_f,b11,__ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResult15addContactPointERKS8_SG_f,b11,__ZN16btPointCollector15addContactPointERK9btVector3S2_f,b11,b11,b11];
54398 var FUNCTION_TABLE_fiiiiiiiiiii = [b12,b12,__ZN35btSequentialImpulseConstraintSolver10solveGroupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAllocP12btDispatcher,b12];
54399 var FUNCTION_TABLE_fiifii = [b13,b13,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitE_0RK9btVector3fii,b13,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitERK9btVector3fii,b13,b13,b13];
54400 var FUNCTION_TABLE_iii = [b14,b14,__ZN19btSingleRayCallback7processEPK17btBroadphaseProxy,b14,__ZL21btAlignedAllocDefaultji,b14,__ZN11btRigidBody24checkCollideWithOverrideEP17btCollisionObject,b14,__ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallback14processOverlapER16btBroadphasePair,b14,__ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode
54401 ,b14,__ZN21btCollisionDispatcher26allocateCollisionAlgorithmEi,b14,__ZL8pointCmpRKN20btConvexHullInternal7Point32ES2_,b14,__ZN21btCollisionDispatcher26getManifoldByIndexInternalEi,b14,__ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallback14processOverlapER16btBroadphasePair,b14,__ZN17btCollisionObject24checkCollideWithOverrideEPS_
54402 ,b14,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEENK15LocalInfoAdder214needsCollisionEP17btBroadphaseProxy,b14,__ZNK34btClosestNotMeConvexResultCallback14needsCollisionEP17btBroadphaseProxy,b14,__ZN23btCollisionPairCallback14processOverlapER16btBroadphasePair,b14,__ZN21btSingleSweepCallback7processEPK17btBroadphaseProxy,b14,__ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy,b14,__ZN6btDbvt8ICollide7DescentEPK10btDbvtNode,b14,__ZN23btDiscreteDynamicsWorld13getConstraintEi,b14,__ZNK23btDiscreteDynamicsWorld13getConstraintEi,b14,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfENK14LocalInfoAdder14needsCollisionE_1P17btBroadphaseProxy,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14];
54403 var FUNCTION_TABLE_iiii = [b15,b15,__ZN21btCollisionDispatcher14getNewManifoldEPvS0_,b15,__ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv,b15,__ZNK21btConvexInternalShape9serializeEPvP12btSerializer,b15,__ZN21btCollisionDispatcher14needsCollisionEP17btCollisionObjectS1_,b15,__ZN28btHashedOverlappingPairCache18addOverlappingPairEP17btBroadphaseProxyS1_
54404 ,b15,__ZN28btHashedOverlappingPairCache8findPairEP17btBroadphaseProxyS1_,b15,__ZNK16btCollisionShape9serializeEPvP12btSerializer,b15,__ZN21btCollisionDispatcher13needsResponseEP17btCollisionObjectS1_,b15,__ZNK11btRigidBody9serializeEPvP12btSerializer,b15,__ZN31btDefaultCollisionConfiguration31getCollisionAlgorithmCreateFuncEii,b15,__ZNK17btCollisionObject9serializeEPvP12btSerializer,b15,b15,b15,b15,b15,b15,b15,b15,b15];
54405 var FUNCTION_TABLE_fif = [b16,b16,__ZNK16btCollisionShape27getContactBreakingThresholdEf,b16];
54406 var FUNCTION_TABLE_viiiiiiii = [b17,b17,__ZN31btConvexPlaneCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_bii,b17];
54407 var FUNCTION_TABLE_vifi = [b18,b18,__ZNK15btTriangleShape21calculateLocalInertiaEfR9btVector3,b18,__ZNK23btPolyhedralConvexShape21calculateLocalInertiaEfR9btVector3,b18,__ZNK13btSphereShape21calculateLocalInertiaEfR9btVector3,b18,__ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3,b18,b18,b18,b18,b18,b18,b18];
54408 var FUNCTION_TABLE_viiiiii = [b19,b19,__ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,b19,__ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,b19,__ZN34btSphereTriangleCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_b,b19,__ZN16btDbvtBroadphase7rayTestERK9btVector3S2_R23btBroadphaseRayCallbackS2_S2_,b19,__ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,b19,__ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback13ProcessIslandEPP17btCollisionObjectiPP20btPersistentManifoldii,b19,b19,b19];
54409 var FUNCTION_TABLE_iiiiiiiiii = [b20,b20,__ZN16btDbvtBroadphase11createProxyERK9btVector3S2_iPvssP12btDispatcherS3_,b20];
54410 var FUNCTION_TABLE_viffiii = [b21,b21];
54411 var FUNCTION_TABLE_iiiiiii = [b22,b22,__ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE,b22,__ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE,b22,__ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE,b22];
54412 var FUNCTION_TABLE_fiiiiiiiiii = [b23,b23,__ZN35btSequentialImpulseConstraintSolver28solveGroupCacheFriendlySetupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc,b23,__ZN35btSequentialImpulseConstraintSolver33solveGroupCacheFriendlyIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc,b23,__ZN35btSequentialImpulseConstraintSolver29solveGroupCacheFriendlyFinishEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc,b23];
54413 var FUNCTION_TABLE_fiiiii = [b24,b24,__ZN32btSphereSphereCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b24,__ZN26btBoxBoxCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b24,__ZN31btConvexPlaneCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b24,__ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b24,__ZN28btCompoundCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b24,__ZN23btConvexConvexAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b24,__ZN16btEmptyAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b24,__ZN34btSphereTriangleCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b24,b24,b24,b24,b24,b24,b24,b24,b24,b24,b24,b24,b24,b24,b24];
54414 var FUNCTION_TABLE_iiiiiiiiiiii = [b25,b25,__ZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc,b25,__ZN30btGjkEpaPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc,b25,b25,b25];
54415 var FUNCTION_TABLE_vifii = [b26,b26];
54416 var FUNCTION_TABLE_fi = [b27,b27,__ZNK13btSphereShape9getMarginEv,b27,__ZNK16btCollisionShape20getAngularMotionDiscEv,b27,__ZNK21btConvexInternalShape9getMarginEv,b27];
54417 var FUNCTION_TABLE_viiiiiiiiii = [b28,b28,__ZN35btSequentialImpulseConstraintSolver45solveGroupCacheFriendlySplitImpulseIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc,b28];
54418 var FUNCTION_TABLE_viiiifffffif = [b29,b29];
54419 var FUNCTION_TABLE_viiiiiffii = [b30,b30,__ZN17btGjkPairDetectorC2EPK13btConvexShapeS2_iiffP22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver,b30];
54420 var FUNCTION_TABLE_iifif = [b31,b31,__ZN23btDiscreteDynamicsWorld14stepSimulationEfif,b31];
54421 var FUNCTION_TABLE_iiiii = [b32,b32,__ZN28btCompoundCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,__ZN31btConvexPlaneCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,__ZN16btEmptyAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,__ZN21btCollisionDispatcher13findAlgorithmEP17btCollisionObjectS1_P20btPersistentManifold,b32,__ZN34btSphereTriangleCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_
54422 ,b32,__ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,__ZN32btSphereSphereCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,__ZN33btConvexConcaveCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,__ZN26btBoxBoxCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,__ZN28btCompoundCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,__ZN28btHashedOverlappingPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher,b32,__ZN23btConvexConvexAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,b32,b32,b32,b32,b32,b32];
54423 var FUNCTION_TABLE_viii = [b33,b33,__ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNodeS2_,b33,__ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResult20setShapeIdentifiersBEii,b33,__ZNK15btTriangleShape37localGetSupportingVertexWithoutMarginERK9btVector3,b33,__ZNK10btBoxShape32getPreferredPenetrationDirectionEiR9btVector3,b33,__ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3_
54424 ,b33,__ZNK15btTriangleShape32getPreferredPenetrationDirectionEiR9btVector3,b33,__ZN28btHashedOverlappingPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher,b33,__ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResult20setShapeIdentifiersBEii,b33,__ZNK13btSphereShape37localGetSupportingVertexWithoutMarginERK9btVector3,b33,__ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo
54425 ,b33,__ZN25btSimulationIslandManager21updateActivationStateEP16btCollisionWorldP12btDispatcher,b33,__ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher,b33,__ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResult20setShapeIdentifiersAEii,b33,__ZNK10btBoxShape16getPlaneEquationER9btVector4i,b33,__ZNK15btTriangleShape9getVertexEiR9btVector3
54426 ,b33,__ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii,b33,__ZN16btPointCollector20setShapeIdentifiersAEii,b33,__ZNK13btConvexShape31localGetSupportVertexNonVirtualERK9btVector3,b33,__ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3,b33,__ZN23btConvexConvexAlgorithm10CreateFuncC2EP22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver
54427 ,b33,__ZNK23btPolyhedralConvexShape37localGetSupportingVertexWithoutMarginERK9btVector3,b33,__ZN16btBoxBoxDetectorC2EP10btBoxShapeS1_,b33,__ZNK13btSphereShape24localGetSupportingVertexERK9btVector3,b33,__ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher,b33,__ZN16btPointCollector20setShapeIdentifiersBEii
54428 ,b33,__ZN16btManifoldResult20setShapeIdentifiersAEii,b33,__ZNK10btBoxShape9getVertexEiR9btVector3,b33,__ZN18btConstraintSolver12prepareSolveEii,b33,__ZN16btDbvtBroadphase12destroyProxyEP17btBroadphaseProxyP12btDispatcher,b33,__ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf
54429 ,b33,__ZN28btHashedOverlappingPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher,b33,__ZNK10btBoxShape37localGetSupportingVertexWithoutMarginERK9btVector3,b33,__ZN27btContinuousConvexCollisionC2EPK13btConvexShapePK18btStaticPlaneShape,b33,__ZN23btDiscreteDynamicsWorld13addConstraintEP17btTypedConstraintb,b33,__ZN16btManifoldResult20setShapeIdentifiersBEii
54430 ,b33,__ZNK10btBoxShape24localGetSupportingVertexERK9btVector3,b33,__ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallback11processNodeEii,b33,__ZN16btManifoldResultC2EP17btCollisionObjectS1_,b33,__ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3,b33,__ZN12btConvexCast10CastResult13reportFailureEii,b33,__ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3,b33,__ZNK16btDbvtBroadphase17getBroadphaseAabbER9btVector3S1_,b33,__ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResult20setShapeIdentifiersAEii,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33];
54431 var FUNCTION_TABLE_viifi = [b34,b34];
54432 var FUNCTION_TABLE_v = [b35,b35,v____cxa_pure_virtual__wrapper,b35];
54433 var FUNCTION_TABLE_viif = [b36,b36,__ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef,b36];
54434 var FUNCTION_TABLE_iiif = [b37,b37,__ZNK15btTriangleShape8isInsideERK9btVector3f,b37,__ZNK10btBoxShape8isInsideERK9btVector3f,b37,b37,b37];
54435 var FUNCTION_TABLE_fiiifii = [b38,b38,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitERK9btVector3SG_fii,b38,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitE_0RK9btVector3SG_fii,b38,b38,b38];
54436 var FUNCTION_TABLE_viiii = [b39,b39,__ZN22btSubsimplexConvexCastC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolver,b39,__ZThn4_N17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii,b39,__ZNK15btTriangleShape8getPlaneER9btVector3S1_i,b39,__ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss,b39,__ZNK13btSphereShape7getAabbERK11btTransformR9btVector3S4_
54437 ,b39,__ZN16btDbvtBroadphase8aabbTestERK9btVector3S2_R24btBroadphaseAabbCallback,b39,__ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3,b39,__ZN17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii,b39,__ZNK10btBoxShape7getEdgeEiR9btVector3S1_,b39,__ZNK15btTriangleShape7getEdgeEiR9btVector3S1_
54438 ,b39,__ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,b39,__ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,b39,__ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii,b39,__ZNK23btPolyhedralConvexShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i,b39,__ZN18btConstraintSolver9allSolvedERK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc
54439 ,b39,__ZN24btConvexTriangleCallback15processTriangleEP9btVector3ii,b39,__ZNK13btSphereShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i,b39,__ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallback15processTriangleEP9btVector3ii,b39,__ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4_,b39,__ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii
54440 ,b39,__ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,b39,__ZN21btCollisionDispatcher25dispatchAllCollisionPairsEP22btOverlappingPairCacheRK16btDispatcherInfoP12btDispatcher,b39,__ZNK10btBoxShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i,b39,__ZNK10btBoxShape7getAabbERK11btTransformR9btVector3S4_,b39,__ZNK15btTriangleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i
54441 ,b39,__ZN15btGjkConvexCastC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolver,b39,__ZNK16btDbvtBroadphase7getAabbEP17btBroadphaseProxyR9btVector3S3_,b39,__ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBodyss,b39,__ZNK21btConvexInternalShape7getAabbERK11btTransformR9btVector3S4_,b39,__ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE
54442 ,b39,__ZNK10btBoxShape8getPlaneER9btVector3S1_i,b39,__ZNK15btTriangleShape16getPlaneEquationEiR9btVector3S1_,b39,__ZNK15btTriangleShape7getAabbERK11btTransformR9btVector3S4_,b39,__ZN17DebugDrawcallback15processTriangleEP9btVector3ii,b39,__ZN23btDiscreteDynamicsWorld18addCollisionObjectEP17btCollisionObjectss,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39];
54443 return { _strlen: _strlen, _free: _free, _main: _main, __GLOBAL__I_a: __GLOBAL__I_a, _memset: _memset, _malloc: _malloc, _memcpy: _memcpy, _llvm_uadd_with_overflow_i64: _llvm_uadd_with_overflow_i64, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, setThrew: setThrew, setTempRet0: setTempRet0, setTempRet1: setTempRet1, setTempRet2: setTempRet2, setTempRet3: setTempRet3, setTempRet4: setTempRet4, setTempRet5: setTempRet5, setTempRet6: setTempRet6, setTempRet7: setTempRet7, setTempRet8: setTempRet8, setTempRet9: setTempRet9, dynCall_iiiiiiii: dynCall_iiiiiiii, dynCall_vif: dynCall_vif, dynCall_viifii: dynCall_viifii, dynCall_viiiii: dynCall_viiiii, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_viiifii: dynCall_viiifii, dynCall_vifiii: dynCall_vifiii, dynCall_ii: dynCall_ii, dynCall_viiiiffffiif: dynCall_viiiiffffiif, dynCall_fiii: dynCall_fiii, dynCall_viiif: dynCall_viiif, dynCall_fiiiiiiiiiii: dynCall_fiiiiiiiiiii, dynCall_fiifii: dynCall_fiifii, dynCall_iii: dynCall_iii, dynCall_iiii: dynCall_iiii, dynCall_fif: dynCall_fif, dynCall_viiiiiiii: dynCall_viiiiiiii, dynCall_vifi: dynCall_vifi, dynCall_viiiiii: dynCall_viiiiii, dynCall_iiiiiiiiii: dynCall_iiiiiiiiii, dynCall_viffiii: dynCall_viffiii, dynCall_iiiiiii: dynCall_iiiiiii, dynCall_fiiiiiiiiii: dynCall_fiiiiiiiiii, dynCall_fiiiii: dynCall_fiiiii, dynCall_iiiiiiiiiiii: dynCall_iiiiiiiiiiii, dynCall_vifii: dynCall_vifii, dynCall_fi: dynCall_fi, dynCall_viiiiiiiiii: dynCall_viiiiiiiiii, dynCall_viiiifffffif: dynCall_viiiifffffif, dynCall_viiiiiffii: dynCall_viiiiiffii, dynCall_iifif: dynCall_iifif, dynCall_iiiii: dynCall_iiiii, dynCall_viii: dynCall_viii, dynCall_viifi: dynCall_viifi, dynCall_v: dynCall_v, dynCall_viif: dynCall_viif, dynCall_iiif: dynCall_iiif, dynCall_fiiifii: dynCall_fiiifii, dynCall_viiii: dynCall_viiii };
54444 };
54445
54446 var ffis = { "abort": abort, "assert": assert, "asmPrintInt": asmPrintInt, "asmPrintFloat": asmPrintFloat, "min": Math_min, "invoke_iiiiiiii": invoke_iiiiiiii, "invoke_vif": invoke_vif, "invoke_viifii": invoke_viifii, "invoke_viiiii": invoke_viiiii, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_viiifii": invoke_viiifii, "invoke_vifiii": invoke_vifiii, "invoke_ii": invoke_ii, "invoke_viiiiffffiif": invoke_viiiiffffiif, "invoke_fiii": invoke_fiii, "invoke_viiif": invoke_viiif, "invoke_fiiiiiiiiiii": invoke_fiiiiiiiiiii, "invoke_fiifii": invoke_fiifii, "invoke_iii": invoke_iii, "invoke_iiii": invoke_iiii, "invoke_fif": invoke_fif, "invoke_viiiiiiii": invoke_viiiiiiii, "invoke_vifi": invoke_vifi, "invoke_viiiiii": invoke_viiiiii, "invoke_iiiiiiiiii": invoke_iiiiiiiiii, "invoke_viffiii": invoke_viffiii, "invoke_iiiiiii": invoke_iiiiiii, "invoke_fiiiiiiiiii": invoke_fiiiiiiiiii, "invoke_fiiiii": invoke_fiiiii, "invoke_iiiiiiiiiiii": invoke_iiiiiiiiiiii, "invoke_vifii": invoke_vifii, "invoke_fi": invoke_fi, "invoke_viiiiiiiiii": invoke_viiiiiiiiii, "invoke_viiiifffffif": invoke_viiiifffffif, "invoke_viiiiiffii": invoke_viiiiiffii, "invoke_iifif": invoke_iifif, "invoke_iiiii": invoke_iiiii, "invoke_viii": invoke_viii, "invoke_viifi": invoke_viifi, "invoke_v": invoke_v, "invoke_viif": invoke_viif, "invoke_iiif": invoke_iiif, "invoke_fiiifii": invoke_fiiifii, "invoke_viiii": invoke_viiii, "_llvm_lifetime_end": _llvm_lifetime_end, "_cosf": _cosf, "_fabsf": _fabsf, "_sysconf": _sysconf, "___cxa_throw": ___cxa_throw, "_atexit": _atexit, "_abort": _abort, "_fprintf": _fprintf, "_llvm_eh_exception": _llvm_eh_exception, "_printf": _printf, "_acosf": _acosf, "_fflush": _fflush, "__reallyNegative": __reallyNegative, "_sqrtf": _sqrtf, "_llvm_pow_f32": _llvm_pow_f32, "___setErrNo": ___setErrNo, "_fwrite": _fwrite, "_send": _send, "_write": _write, "_exit": _exit, "_atan2f": _atan2f, "___cxa_pure_virtual": ___cxa_pure_virtual, "___cxa_is_number_type": ___cxa_is_number_type, "_time": _time, "__formatString": __formatString, "___cxa_does_inherit": ___cxa_does_inherit, "___cxa_guard_acquire": ___cxa_guard_acquire, "__ZSt9terminatev": __ZSt9terminatev, "_gettimeofday": _gettimeofday, "___cxa_find_matching_catch": ___cxa_find_matching_catch, "_sinf": _sinf, "___assert_func": ___assert_func, "__ZSt18uncaught_exceptionv": __ZSt18uncaught_exceptionv, "_pwrite": _pwrite, "___cxa_call_unexpected": ___cxa_call_unexpected, "_sbrk": _sbrk, "___cxa_guard_abort": ___cxa_guard_abort, "___cxa_allocate_exception": ___cxa_allocate_exception, "___errno_location": ___errno_location, "___gxx_personality_v0": ___gxx_personality_v0, "_llvm_lifetime_start": _llvm_lifetime_start, "_fmod": _fmod, "___cxa_guard_release": ___cxa_guard_release, "__exit": __exit, "___resumeException": ___resumeException, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "cttz_i8": cttz_i8, "ctlz_i8": ctlz_i8, "NaN": NaN, "Infinity": Infinity, "__ZTVN10__cxxabiv117__class_type_infoE": __ZTVN10__cxxabiv117__class_type_infoE, "__ZTVN10__cxxabiv120__si_class_type_infoE": __ZTVN10__cxxabiv120__si_class_type_infoE, "___dso_handle": ___dso_handle };
54447
54448 // Stress-test re-linking by linking once before the "real" one.
54449 var throwAway = asmModule(this, ffis, new ArrayBuffer(4*4096));
54450
54451 var asm = asmModule(this, ffis, buffer);
54452 var _strlen = Module["_strlen"] = asm["_strlen"];
54453 var _free = Module["_free"] = asm["_free"];
54454 var _main = Module["_main"] = asm["_main"];
54455 var __GLOBAL__I_a = Module["__GLOBAL__I_a"] = asm["__GLOBAL__I_a"];
54456 var _memset = Module["_memset"] = asm["_memset"];
54457 var _malloc = Module["_malloc"] = asm["_malloc"];
54458 var _memcpy = Module["_memcpy"] = asm["_memcpy"];
54459 var _llvm_uadd_with_overflow_i64 = Module["_llvm_uadd_with_overflow_i64"] = asm["_llvm_uadd_with_overflow_i64"];
54460 var runPostSets = Module["runPostSets"] = asm["runPostSets"];
54461 var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = asm["dynCall_iiiiiiii"];
54462 var dynCall_vif = Module["dynCall_vif"] = asm["dynCall_vif"];
54463 var dynCall_viifii = Module["dynCall_viifii"] = asm["dynCall_viifii"];
54464 var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"];
54465 var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"];
54466 var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"];
54467 var dynCall_viiifii = Module["dynCall_viiifii"] = asm["dynCall_viiifii"];
54468 var dynCall_vifiii = Module["dynCall_vifiii"] = asm["dynCall_vifiii"];
54469 var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"];
54470 var dynCall_viiiiffffiif = Module["dynCall_viiiiffffiif"] = asm["dynCall_viiiiffffiif"];
54471 var dynCall_fiii = Module["dynCall_fiii"] = asm["dynCall_fiii"];
54472 var dynCall_viiif = Module["dynCall_viiif"] = asm["dynCall_viiif"];
54473 var dynCall_fiiiiiiiiiii = Module["dynCall_fiiiiiiiiiii"] = asm["dynCall_fiiiiiiiiiii"];
54474 var dynCall_fiifii = Module["dynCall_fiifii"] = asm["dynCall_fiifii"];
54475 var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"];
54476 var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"];
54477 var dynCall_fif = Module["dynCall_fif"] = asm["dynCall_fif"];
54478 var dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = asm["dynCall_viiiiiiii"];
54479 var dynCall_vifi = Module["dynCall_vifi"] = asm["dynCall_vifi"];
54480 var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"];
54481 var dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = asm["dynCall_iiiiiiiiii"];
54482 var dynCall_viffiii = Module["dynCall_viffiii"] = asm["dynCall_viffiii"];
54483 var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = asm["dynCall_iiiiiii"];
54484 var dynCall_fiiiiiiiiii = Module["dynCall_fiiiiiiiiii"] = asm["dynCall_fiiiiiiiiii"];
54485 var dynCall_fiiiii = Module["dynCall_fiiiii"] = asm["dynCall_fiiiii"];
54486 var dynCall_iiiiiiiiiiii = Module["dynCall_iiiiiiiiiiii"] = asm["dynCall_iiiiiiiiiiii"];
54487 var dynCall_vifii = Module["dynCall_vifii"] = asm["dynCall_vifii"];
54488 var dynCall_fi = Module["dynCall_fi"] = asm["dynCall_fi"];
54489 var dynCall_viiiiiiiiii = Module["dynCall_viiiiiiiiii"] = asm["dynCall_viiiiiiiiii"];
54490 var dynCall_viiiifffffif = Module["dynCall_viiiifffffif"] = asm["dynCall_viiiifffffif"];
54491 var dynCall_viiiiiffii = Module["dynCall_viiiiiffii"] = asm["dynCall_viiiiiffii"];
54492 var dynCall_iifif = Module["dynCall_iifif"] = asm["dynCall_iifif"];
54493 var dynCall_iiiii = Module["dynCall_iiiii"] = asm["dynCall_iiiii"];
54494 var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"];
54495 var dynCall_viifi = Module["dynCall_viifi"] = asm["dynCall_viifi"];
54496 var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"];
54497 var dynCall_viif = Module["dynCall_viif"] = asm["dynCall_viif"];
54498 var dynCall_iiif = Module["dynCall_iiif"] = asm["dynCall_iiif"];
54499 var dynCall_fiiifii = Module["dynCall_fiiifii"] = asm["dynCall_fiiifii"];
54500 var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"];
54501 Runtime.stackAlloc = function(size) { return asm['stackAlloc'](size) };
54502 Runtime.stackSave = function() { return asm['stackSave']() };
54503 Runtime.stackRestore = function(top) { asm['stackRestore'](top) };
54504 // TODO: strip out parts of this we do not need
54505 //======= begin closure i64 code =======
54506 // Copyright 2009 The Closure Library Authors. All Rights Reserved.
54507 //
54508 // Licensed under the Apache License, Version 2.0 (the "License");
54509 // you may not use this file except in compliance with the License.
54510 // You may obtain a copy of the License at
54511 //
54512 // http://www.apache.org/licenses/LICENSE-2.0
54513 //
54514 // Unless required by applicable law or agreed to in writing, software
54515 // distributed under the License is distributed on an "AS-IS" BASIS,
54516 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
54517 // See the License for the specific language governing permissions and
54518 // limitations under the License.
54519 /**
54520 * @fileoverview Defines a Long class for representing a 64-bit two's-complement
54521 * integer value, which faithfully simulates the behavior of a Java "long". This
54522 * implementation is derived from LongLib in GWT.
54523 *
54524 */
54525 var i64Math = (function() { // Emscripten wrapper
54526 var goog = { math: {} };
54527 /**
54528 * Constructs a 64-bit two's-complement integer, given its low and high 32-bit
54529 * values as *signed* integers. See the from* functions below for more
54530 * convenient ways of constructing Longs.
54531 *
54532 * The internal representation of a long is the two given signed, 32-bit values.
54533 * We use 32-bit pieces because these are the size of integers on which
54534 * Javascript performs bit-operations. For operations like addition and
54535 * multiplication, we split each number into 16-bit pieces, which can easily be
54536 * multiplied within Javascript's floating-point representation without overflow
54537 * or change in sign.
54538 *
54539 * In the algorithms below, we frequently reduce the negative case to the
54540 * positive case by negating the input(s) and then post-processing the result.
54541 * Note that we must ALWAYS check specially whether those values are MIN_VALUE
54542 * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as
54543 * a positive number, it overflows back into a negative). Not handling this
54544 * case would often result in infinite recursion.
54545 *
54546 * @param {number} low The low (signed) 32 bits of the long.
54547 * @param {number} high The high (signed) 32 bits of the long.
54548 * @constructor
54549 */
54550 goog.math.Long = function(low, high) {
54551 /**
54552 * @type {number}
54553 * @private
54554 */
54555 this.low_ = low | 0; // force into 32 signed bits.
54556 /**
54557 * @type {number}
54558 * @private
54559 */
54560 this.high_ = high | 0; // force into 32 signed bits.
54561 };
54562 // NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the
54563 // from* methods on which they depend.
54564 /**
54565 * A cache of the Long representations of small integer values.
54566 * @type {!Object}
54567 * @private
54568 */
54569 goog.math.Long.IntCache_ = {};
54570 /**
54571 * Returns a Long representing the given (32-bit) integer value.
54572 * @param {number} value The 32-bit integer in question.
54573 * @return {!goog.math.Long} The corresponding Long value.
54574 */
54575 goog.math.Long.fromInt = function(value) {
54576 if (-128 <= value && value < 128) {
54577 var cachedObj = goog.math.Long.IntCache_[value];
54578 if (cachedObj) {
54579 return cachedObj;
54580 }
54581 }
54582 var obj = new goog.math.Long(value | 0, value < 0 ? -1 : 0);
54583 if (-128 <= value && value < 128) {
54584 goog.math.Long.IntCache_[value] = obj;
54585 }
54586 return obj;
54587 };
54588 /**
54589 * Returns a Long representing the given value, provided that it is a finite
54590 * number. Otherwise, zero is returned.
54591 * @param {number} value The number in question.
54592 * @return {!goog.math.Long} The corresponding Long value.
54593 */
54594 goog.math.Long.fromNumber = function(value) {
54595 if (isNaN(value) || !isFinite(value)) {
54596 return goog.math.Long.ZERO;
54597 } else if (value <= -goog.math.Long.TWO_PWR_63_DBL_) {
54598 return goog.math.Long.MIN_VALUE;
54599 } else if (value + 1 >= goog.math.Long.TWO_PWR_63_DBL_) {
54600 return goog.math.Long.MAX_VALUE;
54601 } else if (value < 0) {
54602 return goog.math.Long.fromNumber(-value).negate();
54603 } else {
54604 return new goog.math.Long(
54605 (value % goog.math.Long.TWO_PWR_32_DBL_) | 0,
54606 (value / goog.math.Long.TWO_PWR_32_DBL_) | 0);
54607 }
54608 };
54609 /**
54610 * Returns a Long representing the 64-bit integer that comes by concatenating
54611 * the given high and low bits. Each is assumed to use 32 bits.
54612 * @param {number} lowBits The low 32-bits.
54613 * @param {number} highBits The high 32-bits.
54614 * @return {!goog.math.Long} The corresponding Long value.
54615 */
54616 goog.math.Long.fromBits = function(lowBits, highBits) {
54617 return new goog.math.Long(lowBits, highBits);
54618 };
54619 /**
54620 * Returns a Long representation of the given string, written using the given
54621 * radix.
54622 * @param {string} str The textual representation of the Long.
54623 * @param {number=} opt_radix The radix in which the text is written.
54624 * @return {!goog.math.Long} The corresponding Long value.
54625 */
54626 goog.math.Long.fromString = function(str, opt_radix) {
54627 if (str.length == 0) {
54628 throw Error('number format error: empty string');
54629 }
54630 var radix = opt_radix || 10;
54631 if (radix < 2 || 36 < radix) {
54632 throw Error('radix out of range: ' + radix);
54633 }
54634 if (str.charAt(0) == '-') {
54635 return goog.math.Long.fromString(str.substring(1), radix).negate();
54636 } else if (str.indexOf('-') >= 0) {
54637 throw Error('number format error: interior "-" character: ' + str);
54638 }
54639 // Do several (8) digits each time through the loop, so as to
54640 // minimize the calls to the very expensive emulated div.
54641 var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 8));
54642 var result = goog.math.Long.ZERO;
54643 for (var i = 0; i < str.length; i += 8) {
54644 var size = Math.min(8, str.length - i);
54645 var value = parseInt(str.substring(i, i + size), radix);
54646 if (size < 8) {
54647 var power = goog.math.Long.fromNumber(Math.pow(radix, size));
54648 result = result.multiply(power).add(goog.math.Long.fromNumber(value));
54649 } else {
54650 result = result.multiply(radixToPower);
54651 result = result.add(goog.math.Long.fromNumber(value));
54652 }
54653 }
54654 return result;
54655 };
54656 // NOTE: the compiler should inline these constant values below and then remove
54657 // these variables, so there should be no runtime penalty for these.
54658 /**
54659 * Number used repeated below in calculations. This must appear before the
54660 * first call to any from* function below.
54661 * @type {number}
54662 * @private
54663 */
54664 goog.math.Long.TWO_PWR_16_DBL_ = 1 << 16;
54665 /**
54666 * @type {number}
54667 * @private
54668 */
54669 goog.math.Long.TWO_PWR_24_DBL_ = 1 << 24;
54670 /**
54671 * @type {number}
54672 * @private
54673 */
54674 goog.math.Long.TWO_PWR_32_DBL_ =
54675 goog.math.Long.TWO_PWR_16_DBL_ * goog.math.Long.TWO_PWR_16_DBL_;
54676 /**
54677 * @type {number}
54678 * @private
54679 */
54680 goog.math.Long.TWO_PWR_31_DBL_ =
54681 goog.math.Long.TWO_PWR_32_DBL_ / 2;
54682 /**
54683 * @type {number}
54684 * @private
54685 */
54686 goog.math.Long.TWO_PWR_48_DBL_ =
54687 goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_16_DBL_;
54688 /**
54689 * @type {number}
54690 * @private
54691 */
54692 goog.math.Long.TWO_PWR_64_DBL_ =
54693 goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_32_DBL_;
54694 /**
54695 * @type {number}
54696 * @private
54697 */
54698 goog.math.Long.TWO_PWR_63_DBL_ =
54699 goog.math.Long.TWO_PWR_64_DBL_ / 2;
54700 /** @type {!goog.math.Long} */
54701 goog.math.Long.ZERO = goog.math.Long.fromInt(0);
54702 /** @type {!goog.math.Long} */
54703 goog.math.Long.ONE = goog.math.Long.fromInt(1);
54704 /** @type {!goog.math.Long} */
54705 goog.math.Long.NEG_ONE = goog.math.Long.fromInt(-1);
54706 /** @type {!goog.math.Long} */
54707 goog.math.Long.MAX_VALUE =
54708 goog.math.Long.fromBits(0xFFFFFFFF | 0, 0x7FFFFFFF | 0);
54709 /** @type {!goog.math.Long} */
54710 goog.math.Long.MIN_VALUE = goog.math.Long.fromBits(0, 0x80000000 | 0);
54711 /**
54712 * @type {!goog.math.Long}
54713 * @private
54714 */
54715 goog.math.Long.TWO_PWR_24_ = goog.math.Long.fromInt(1 << 24);
54716 /** @return {number} The value, assuming it is a 32-bit integer. */
54717 goog.math.Long.prototype.toInt = function() {
54718 return this.low_;
54719 };
54720 /** @return {number} The closest floating-point representation to this value. */
54721 goog.math.Long.prototype.toNumber = function() {
54722 return this.high_ * goog.math.Long.TWO_PWR_32_DBL_ +
54723 this.getLowBitsUnsigned();
54724 };
54725 /**
54726 * @param {number=} opt_radix The radix in which the text should be written.
54727 * @return {string} The textual representation of this value.
54728 */
54729 goog.math.Long.prototype.toString = function(opt_radix) {
54730 var radix = opt_radix || 10;
54731 if (radix < 2 || 36 < radix) {
54732 throw Error('radix out of range: ' + radix);
54733 }
54734 if (this.isZero()) {
54735 return '0';
54736 }
54737 if (this.isNegative()) {
54738 if (this.equals(goog.math.Long.MIN_VALUE)) {
54739 // We need to change the Long value before it can be negated, so we remove
54740 // the bottom-most digit in this base and then recurse to do the rest.
54741 var radixLong = goog.math.Long.fromNumber(radix);
54742 var div = this.div(radixLong);
54743 var rem = div.multiply(radixLong).subtract(this);
54744 return div.toString(radix) + rem.toInt().toString(radix);
54745 } else {
54746 return '-' + this.negate().toString(radix);
54747 }
54748 }
54749 // Do several (6) digits each time through the loop, so as to
54750 // minimize the calls to the very expensive emulated div.
54751 var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 6));
54752 var rem = this;
54753 var result = '';
54754 while (true) {
54755 var remDiv = rem.div(radixToPower);
54756 var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt();
54757 var digits = intval.toString(radix);
54758 rem = remDiv;
54759 if (rem.isZero()) {
54760 return digits + result;
54761 } else {
54762 while (digits.length < 6) {
54763 digits = '0' + digits;
54764 }
54765 result = '' + digits + result;
54766 }
54767 }
54768 };
54769 /** @return {number} The high 32-bits as a signed value. */
54770 goog.math.Long.prototype.getHighBits = function() {
54771 return this.high_;
54772 };
54773 /** @return {number} The low 32-bits as a signed value. */
54774 goog.math.Long.prototype.getLowBits = function() {
54775 return this.low_;
54776 };
54777 /** @return {number} The low 32-bits as an unsigned value. */
54778 goog.math.Long.prototype.getLowBitsUnsigned = function() {
54779 return (this.low_ >= 0) ?
54780 this.low_ : goog.math.Long.TWO_PWR_32_DBL_ + this.low_;
54781 };
54782 /**
54783 * @return {number} Returns the number of bits needed to represent the absolute
54784 * value of this Long.
54785 */
54786 goog.math.Long.prototype.getNumBitsAbs = function() {
54787 if (this.isNegative()) {
54788 if (this.equals(goog.math.Long.MIN_VALUE)) {
54789 return 64;
54790 } else {
54791 return this.negate().getNumBitsAbs();
54792 }
54793 } else {
54794 var val = this.high_ != 0 ? this.high_ : this.low_;
54795 for (var bit = 31; bit > 0; bit--) {
54796 if ((val & (1 << bit)) != 0) {
54797 break;
54798 }
54799 }
54800 return this.high_ != 0 ? bit + 33 : bit + 1;
54801 }
54802 };
54803 /** @return {boolean} Whether this value is zero. */
54804 goog.math.Long.prototype.isZero = function() {
54805 return this.high_ == 0 && this.low_ == 0;
54806 };
54807 /** @return {boolean} Whether this value is negative. */
54808 goog.math.Long.prototype.isNegative = function() {
54809 return this.high_ < 0;
54810 };
54811 /** @return {boolean} Whether this value is odd. */
54812 goog.math.Long.prototype.isOdd = function() {
54813 return (this.low_ & 1) == 1;
54814 };
54815 /**
54816 * @param {goog.math.Long} other Long to compare against.
54817 * @return {boolean} Whether this Long equals the other.
54818 */
54819 goog.math.Long.prototype.equals = function(other) {
54820 return (this.high_ == other.high_) && (this.low_ == other.low_);
54821 };
54822 /**
54823 * @param {goog.math.Long} other Long to compare against.
54824 * @return {boolean} Whether this Long does not equal the other.
54825 */
54826 goog.math.Long.prototype.notEquals = function(other) {
54827 return (this.high_ != other.high_) || (this.low_ != other.low_);
54828 };
54829 /**
54830 * @param {goog.math.Long} other Long to compare against.
54831 * @return {boolean} Whether this Long is less than the other.
54832 */
54833 goog.math.Long.prototype.lessThan = function(other) {
54834 return this.compare(other) < 0;
54835 };
54836 /**
54837 * @param {goog.math.Long} other Long to compare against.
54838 * @return {boolean} Whether this Long is less than or equal to the other.
54839 */
54840 goog.math.Long.prototype.lessThanOrEqual = function(other) {
54841 return this.compare(other) <= 0;
54842 };
54843 /**
54844 * @param {goog.math.Long} other Long to compare against.
54845 * @return {boolean} Whether this Long is greater than the other.
54846 */
54847 goog.math.Long.prototype.greaterThan = function(other) {
54848 return this.compare(other) > 0;
54849 };
54850 /**
54851 * @param {goog.math.Long} other Long to compare against.
54852 * @return {boolean} Whether this Long is greater than or equal to the other.
54853 */
54854 goog.math.Long.prototype.greaterThanOrEqual = function(other) {
54855 return this.compare(other) >= 0;
54856 };
54857 /**
54858 * Compares this Long with the given one.
54859 * @param {goog.math.Long} other Long to compare against.
54860 * @return {number} 0 if they are the same, 1 if the this is greater, and -1
54861 * if the given one is greater.
54862 */
54863 goog.math.Long.prototype.compare = function(other) {
54864 if (this.equals(other)) {
54865 return 0;
54866 }
54867 var thisNeg = this.isNegative();
54868 var otherNeg = other.isNegative();
54869 if (thisNeg && !otherNeg) {
54870 return -1;
54871 }
54872 if (!thisNeg && otherNeg) {
54873 return 1;
54874 }
54875 // at this point, the signs are the same, so subtraction will not overflow
54876 if (this.subtract(other).isNegative()) {
54877 return -1;
54878 } else {
54879 return 1;
54880 }
54881 };
54882 /** @return {!goog.math.Long} The negation of this value. */
54883 goog.math.Long.prototype.negate = function() {
54884 if (this.equals(goog.math.Long.MIN_VALUE)) {
54885 return goog.math.Long.MIN_VALUE;
54886 } else {
54887 return this.not().add(goog.math.Long.ONE);
54888 }
54889 };
54890 /**
54891 * Returns the sum of this and the given Long.
54892 * @param {goog.math.Long} other Long to add to this one.
54893 * @return {!goog.math.Long} The sum of this and the given Long.
54894 */
54895 goog.math.Long.prototype.add = function(other) {
54896 // Divide each number into 4 chunks of 16 bits, and then sum the chunks.
54897 var a48 = this.high_ >>> 16;
54898 var a32 = this.high_ & 0xFFFF;
54899 var a16 = this.low_ >>> 16;
54900 var a00 = this.low_ & 0xFFFF;
54901 var b48 = other.high_ >>> 16;
54902 var b32 = other.high_ & 0xFFFF;
54903 var b16 = other.low_ >>> 16;
54904 var b00 = other.low_ & 0xFFFF;
54905 var c48 = 0, c32 = 0, c16 = 0, c00 = 0;
54906 c00 += a00 + b00;
54907 c16 += c00 >>> 16;
54908 c00 &= 0xFFFF;
54909 c16 += a16 + b16;
54910 c32 += c16 >>> 16;
54911 c16 &= 0xFFFF;
54912 c32 += a32 + b32;
54913 c48 += c32 >>> 16;
54914 c32 &= 0xFFFF;
54915 c48 += a48 + b48;
54916 c48 &= 0xFFFF;
54917 return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32);
54918 };
54919 /**
54920 * Returns the difference of this and the given Long.
54921 * @param {goog.math.Long} other Long to subtract from this.
54922 * @return {!goog.math.Long} The difference of this and the given Long.
54923 */
54924 goog.math.Long.prototype.subtract = function(other) {
54925 return this.add(other.negate());
54926 };
54927 /**
54928 * Returns the product of this and the given long.
54929 * @param {goog.math.Long} other Long to multiply with this.
54930 * @return {!goog.math.Long} The product of this and the other.
54931 */
54932 goog.math.Long.prototype.multiply = function(other) {
54933 if (this.isZero()) {
54934 return goog.math.Long.ZERO;
54935 } else if (other.isZero()) {
54936 return goog.math.Long.ZERO;
54937 }
54938 if (this.equals(goog.math.Long.MIN_VALUE)) {
54939 return other.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO;
54940 } else if (other.equals(goog.math.Long.MIN_VALUE)) {
54941 return this.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO;
54942 }
54943 if (this.isNegative()) {
54944 if (other.isNegative()) {
54945 return this.negate().multiply(other.negate());
54946 } else {
54947 return this.negate().multiply(other).negate();
54948 }
54949 } else if (other.isNegative()) {
54950 return this.multiply(other.negate()).negate();
54951 }
54952 // If both longs are small, use float multiplication
54953 if (this.lessThan(goog.math.Long.TWO_PWR_24_) &&
54954 other.lessThan(goog.math.Long.TWO_PWR_24_)) {
54955 return goog.math.Long.fromNumber(this.toNumber() * other.toNumber());
54956 }
54957 // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.
54958 // We can skip products that would overflow.
54959 var a48 = this.high_ >>> 16;
54960 var a32 = this.high_ & 0xFFFF;
54961 var a16 = this.low_ >>> 16;
54962 var a00 = this.low_ & 0xFFFF;
54963 var b48 = other.high_ >>> 16;
54964 var b32 = other.high_ & 0xFFFF;
54965 var b16 = other.low_ >>> 16;
54966 var b00 = other.low_ & 0xFFFF;
54967 var c48 = 0, c32 = 0, c16 = 0, c00 = 0;
54968 c00 += a00 * b00;
54969 c16 += c00 >>> 16;
54970 c00 &= 0xFFFF;
54971 c16 += a16 * b00;
54972 c32 += c16 >>> 16;
54973 c16 &= 0xFFFF;
54974 c16 += a00 * b16;
54975 c32 += c16 >>> 16;
54976 c16 &= 0xFFFF;
54977 c32 += a32 * b00;
54978 c48 += c32 >>> 16;
54979 c32 &= 0xFFFF;
54980 c32 += a16 * b16;
54981 c48 += c32 >>> 16;
54982 c32 &= 0xFFFF;
54983 c32 += a00 * b32;
54984 c48 += c32 >>> 16;
54985 c32 &= 0xFFFF;
54986 c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;
54987 c48 &= 0xFFFF;
54988 return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32);
54989 };
54990 /**
54991 * Returns this Long divided by the given one.
54992 * @param {goog.math.Long} other Long by which to divide.
54993 * @return {!goog.math.Long} This Long divided by the given one.
54994 */
54995 goog.math.Long.prototype.div = function(other) {
54996 if (other.isZero()) {
54997 throw Error('division by zero');
54998 } else if (this.isZero()) {
54999 return goog.math.Long.ZERO;
55000 }
55001 if (this.equals(goog.math.Long.MIN_VALUE)) {
55002 if (other.equals(goog.math.Long.ONE) ||
55003 other.equals(goog.math.Long.NEG_ONE)) {
55004 return goog.math.Long.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE
55005 } else if (other.equals(goog.math.Long.MIN_VALUE)) {
55006 return goog.math.Long.ONE;
55007 } else {
55008 // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.
55009 var halfThis = this.shiftRight(1);
55010 var approx = halfThis.div(other).shiftLeft(1);
55011 if (approx.equals(goog.math.Long.ZERO)) {
55012 return other.isNegative() ? goog.math.Long.ONE : goog.math.Long.NEG_ONE;
55013 } else {
55014 var rem = this.subtract(other.multiply(approx));
55015 var result = approx.add(rem.div(other));
55016 return result;
55017 }
55018 }
55019 } else if (other.equals(goog.math.Long.MIN_VALUE)) {
55020 return goog.math.Long.ZERO;
55021 }
55022 if (this.isNegative()) {
55023 if (other.isNegative()) {
55024 return this.negate().div(other.negate());
55025 } else {
55026 return this.negate().div(other).negate();
55027 }
55028 } else if (other.isNegative()) {
55029 return this.div(other.negate()).negate();
55030 }
55031 // Repeat the following until the remainder is less than other: find a
55032 // floating-point that approximates remainder / other *from below*, add this
55033 // into the result, and subtract it from the remainder. It is critical that
55034 // the approximate value is less than or equal to the real value so that the
55035 // remainder never becomes negative.
55036 var res = goog.math.Long.ZERO;
55037 var rem = this;
55038 while (rem.greaterThanOrEqual(other)) {
55039 // Approximate the result of division. This may be a little greater or
55040 // smaller than the actual value.
55041 var approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber()));
55042 // We will tweak the approximate result by changing it in the 48-th digit or
55043 // the smallest non-fractional digit, whichever is larger.
55044 var log2 = Math.ceil(Math.log(approx) / Math.LN2);
55045 var delta = (log2 <= 48) ? 1 : Math.pow(2, log2 - 48);
55046 // Decrease the approximation until it is smaller than the remainder. Note
55047 // that if it is too large, the product overflows and is negative.
55048 var approxRes = goog.math.Long.fromNumber(approx);
55049 var approxRem = approxRes.multiply(other);
55050 while (approxRem.isNegative() || approxRem.greaterThan(rem)) {
55051 approx -= delta;
55052 approxRes = goog.math.Long.fromNumber(approx);
55053 approxRem = approxRes.multiply(other);
55054 }
55055 // We know the answer can't be zero... and actually, zero would cause
55056 // infinite recursion since we would make no progress.
55057 if (approxRes.isZero()) {
55058 approxRes = goog.math.Long.ONE;
55059 }
55060 res = res.add(approxRes);
55061 rem = rem.subtract(approxRem);
55062 }
55063 return res;
55064 };
55065 /**
55066 * Returns this Long modulo the given one.
55067 * @param {goog.math.Long} other Long by which to mod.
55068 * @return {!goog.math.Long} This Long modulo the given one.
55069 */
55070 goog.math.Long.prototype.modulo = function(other) {
55071 return this.subtract(this.div(other).multiply(other));
55072 };
55073 /** @return {!goog.math.Long} The bitwise-NOT of this value. */
55074 goog.math.Long.prototype.not = function() {
55075 return goog.math.Long.fromBits(~this.low_, ~this.high_);
55076 };
55077 /**
55078 * Returns the bitwise-AND of this Long and the given one.
55079 * @param {goog.math.Long} other The Long with which to AND.
55080 * @return {!goog.math.Long} The bitwise-AND of this and the other.
55081 */
55082 goog.math.Long.prototype.and = function(other) {
55083 return goog.math.Long.fromBits(this.low_ & other.low_,
55084 this.high_ & other.high_);
55085 };
55086 /**
55087 * Returns the bitwise-OR of this Long and the given one.
55088 * @param {goog.math.Long} other The Long with which to OR.
55089 * @return {!goog.math.Long} The bitwise-OR of this and the other.
55090 */
55091 goog.math.Long.prototype.or = function(other) {
55092 return goog.math.Long.fromBits(this.low_ | other.low_,
55093 this.high_ | other.high_);
55094 };
55095 /**
55096 * Returns the bitwise-XOR of this Long and the given one.
55097 * @param {goog.math.Long} other The Long with which to XOR.
55098 * @return {!goog.math.Long} The bitwise-XOR of this and the other.
55099 */
55100 goog.math.Long.prototype.xor = function(other) {
55101 return goog.math.Long.fromBits(this.low_ ^ other.low_,
55102 this.high_ ^ other.high_);
55103 };
55104 /**
55105 * Returns this Long with bits shifted to the left by the given amount.
55106 * @param {number} numBits The number of bits by which to shift.
55107 * @return {!goog.math.Long} This shifted to the left by the given amount.
55108 */
55109 goog.math.Long.prototype.shiftLeft = function(numBits) {
55110 numBits &= 63;
55111 if (numBits == 0) {
55112 return this;
55113 } else {
55114 var low = this.low_;
55115 if (numBits < 32) {
55116 var high = this.high_;
55117 return goog.math.Long.fromBits(
55118 low << numBits,
55119 (high << numBits) | (low >>> (32 - numBits)));
55120 } else {
55121 return goog.math.Long.fromBits(0, low << (numBits - 32));
55122 }
55123 }
55124 };
55125 /**
55126 * Returns this Long with bits shifted to the right by the given amount.
55127 * @param {number} numBits The number of bits by which to shift.
55128 * @return {!goog.math.Long} This shifted to the right by the given amount.
55129 */
55130 goog.math.Long.prototype.shiftRight = function(numBits) {
55131 numBits &= 63;
55132 if (numBits == 0) {
55133 return this;
55134 } else {
55135 var high = this.high_;
55136 if (numBits < 32) {
55137 var low = this.low_;
55138 return goog.math.Long.fromBits(
55139 (low >>> numBits) | (high << (32 - numBits)),
55140 high >> numBits);
55141 } else {
55142 return goog.math.Long.fromBits(
55143 high >> (numBits - 32),
55144 high >= 0 ? 0 : -1);
55145 }
55146 }
55147 };
55148 /**
55149 * Returns this Long with bits shifted to the right by the given amount, with
55150 * the new top bits matching the current sign bit.
55151 * @param {number} numBits The number of bits by which to shift.
55152 * @return {!goog.math.Long} This shifted to the right by the given amount, with
55153 * zeros placed into the new leading bits.
55154 */
55155 goog.math.Long.prototype.shiftRightUnsigned = function(numBits) {
55156 numBits &= 63;
55157 if (numBits == 0) {
55158 return this;
55159 } else {
55160 var high = this.high_;
55161 if (numBits < 32) {
55162 var low = this.low_;
55163 return goog.math.Long.fromBits(
55164 (low >>> numBits) | (high << (32 - numBits)),
55165 high >>> numBits);
55166 } else if (numBits == 32) {
55167 return goog.math.Long.fromBits(high, 0);
55168 } else {
55169 return goog.math.Long.fromBits(high >>> (numBits - 32), 0);
55170 }
55171 }
55172 };
55173 //======= begin jsbn =======
55174 var navigator = { appName: 'Modern Browser' }; // polyfill a little
55175 // Copyright (c) 2005 Tom Wu
55176 // All Rights Reserved.
55177 // http://www-cs-students.stanford.edu/~tjw/jsbn/
55178 /*
55179 * Copyright (c) 2003-2005 Tom Wu
55180 * All Rights Reserved.
55181 *
55182 * Permission is hereby granted, free of charge, to any person obtaining
55183 * a copy of this software and associated documentation files (the
55184 * "Software"), to deal in the Software without restriction, including
55185 * without limitation the rights to use, copy, modify, merge, publish,
55186 * distribute, sublicense, and/or sell copies of the Software, and to
55187 * permit persons to whom the Software is furnished to do so, subject to
55188 * the following conditions:
55189 *
55190 * The above copyright notice and this permission notice shall be
55191 * included in all copies or substantial portions of the Software.
55192 *
55193 * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
55194 * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
55195 * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
55196 *
55197 * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
55198 * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
55199 * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
55200 * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
55201 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
55202 *
55203 * In addition, the following condition applies:
55204 *
55205 * All redistributions must retain an intact copy of this copyright notice
55206 * and disclaimer.
55207 */
55208 // Basic JavaScript BN library - subset useful for RSA encryption.
55209 // Bits per digit
55210 var dbits;
55211 // JavaScript engine analysis
55212 var canary = 0xdeadbeefcafe;
55213 var j_lm = ((canary&0xffffff)==0xefcafe);
55214 // (public) Constructor
55215 function BigInteger(a,b,c) {
55216 if(a != null)
55217 if("number" == typeof a) this.fromNumber(a,b,c);
55218 else if(b == null && "string" != typeof a) this.fromString(a,256);
55219 else this.fromString(a,b);
55220 }
55221 // return new, unset BigInteger
55222 function nbi() { return new BigInteger(null); }
55223 // am: Compute w_j += (x*this_i), propagate carries,
55224 // c is initial carry, returns final carry.
55225 // c < 3*dvalue, x < 2*dvalue, this_i < dvalue
55226 // We need to select the fastest one that works in this environment.
55227 // am1: use a single mult and divide to get the high bits,
55228 // max digit bits should be 26 because
55229 // max internal value = 2*dvalue^2-2*dvalue (< 2^53)
55230 function am1(i,x,w,j,c,n) {
55231 while(--n >= 0) {
55232 var v = x*this[i++]+w[j]+c;
55233 c = Math.floor(v/0x4000000);
55234 w[j++] = v&0x3ffffff;
55235 }
55236 return c;
55237 }
55238 // am2 avoids a big mult-and-extract completely.
55239 // Max digit bits should be <= 30 because we do bitwise ops
55240 // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
55241 function am2(i,x,w,j,c,n) {
55242 var xl = x&0x7fff, xh = x>>15;
55243 while(--n >= 0) {
55244 var l = this[i]&0x7fff;
55245 var h = this[i++]>>15;
55246 var m = xh*l+h*xl;
55247 l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);
55248 c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
55249 w[j++] = l&0x3fffffff;
55250 }
55251 return c;
55252 }
55253 // Alternately, set max digit bits to 28 since some
55254 // browsers slow down when dealing with 32-bit numbers.
55255 function am3(i,x,w,j,c,n) {
55256 var xl = x&0x3fff, xh = x>>14;
55257 while(--n >= 0) {
55258 var l = this[i]&0x3fff;
55259 var h = this[i++]>>14;
55260 var m = xh*l+h*xl;
55261 l = xl*l+((m&0x3fff)<<14)+w[j]+c;
55262 c = (l>>28)+(m>>14)+xh*h;
55263 w[j++] = l&0xfffffff;
55264 }
55265 return c;
55266 }
55267 if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) {
55268 BigInteger.prototype.am = am2;
55269 dbits = 30;
55270 }
55271 else if(j_lm && (navigator.appName != "Netscape")) {
55272 BigInteger.prototype.am = am1;
55273 dbits = 26;
55274 }
55275 else { // Mozilla/Netscape seems to prefer am3
55276 BigInteger.prototype.am = am3;
55277 dbits = 28;
55278 }
55279 BigInteger.prototype.DB = dbits;
55280 BigInteger.prototype.DM = ((1<<dbits)-1);
55281 BigInteger.prototype.DV = (1<<dbits);
55282 var BI_FP = 52;
55283 BigInteger.prototype.FV = Math.pow(2,BI_FP);
55284 BigInteger.prototype.F1 = BI_FP-dbits;
55285 BigInteger.prototype.F2 = 2*dbits-BI_FP;
55286 // Digit conversions
55287 var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
55288 var BI_RC = new Array();
55289 var rr,vv;
55290 rr = "0".charCodeAt(0);
55291 for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
55292 rr = "a".charCodeAt(0);
55293 for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
55294 rr = "A".charCodeAt(0);
55295 for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
55296 function int2char(n) { return BI_RM.charAt(n); }
55297 function intAt(s,i) {
55298 var c = BI_RC[s.charCodeAt(i)];
55299 return (c==null)?-1:c;
55300 }
55301 // (protected) copy this to r
55302 function bnpCopyTo(r) {
55303 for(var i = this.t-1; i >= 0; --i) r[i] = this[i];
55304 r.t = this.t;
55305 r.s = this.s;
55306 }
55307 // (protected) set from integer value x, -DV <= x < DV
55308 function bnpFromInt(x) {
55309 this.t = 1;
55310 this.s = (x<0)?-1:0;
55311 if(x > 0) this[0] = x;
55312 else if(x < -1) this[0] = x+DV;
55313 else this.t = 0;
55314 }
55315 // return bigint initialized to value
55316 function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
55317 // (protected) set from string and radix
55318 function bnpFromString(s,b) {
55319 var k;
55320 if(b == 16) k = 4;
55321 else if(b == 8) k = 3;
55322 else if(b == 256) k = 8; // byte array
55323 else if(b == 2) k = 1;
55324 else if(b == 32) k = 5;
55325 else if(b == 4) k = 2;
55326 else { this.fromRadix(s,b); return; }
55327 this.t = 0;
55328 this.s = 0;
55329 var i = s.length, mi = false, sh = 0;
55330 while(--i >= 0) {
55331 var x = (k==8)?s[i]&0xff:intAt(s,i);
55332 if(x < 0) {
55333 if(s.charAt(i) == "-") mi = true;
55334 continue;
55335 }
55336 mi = false;
55337 if(sh == 0)
55338 this[this.t++] = x;
55339 else if(sh+k > this.DB) {
55340 this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;
55341 this[this.t++] = (x>>(this.DB-sh));
55342 }
55343 else
55344 this[this.t-1] |= x<<sh;
55345 sh += k;
55346 if(sh >= this.DB) sh -= this.DB;
55347 }
55348 if(k == 8 && (s[0]&0x80) != 0) {
55349 this.s = -1;
55350 if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;
55351 }
55352 this.clamp();
55353 if(mi) BigInteger.ZERO.subTo(this,this);
55354 }
55355 // (protected) clamp off excess high words
55356 function bnpClamp() {
55357 var c = this.s&this.DM;
55358 while(this.t > 0 && this[this.t-1] == c) --this.t;
55359 }
55360 // (public) return string representation in given radix
55361 function bnToString(b) {
55362 if(this.s < 0) return "-"+this.negate().toString(b);
55363 var k;
55364 if(b == 16) k = 4;
55365 else if(b == 8) k = 3;
55366 else if(b == 2) k = 1;
55367 else if(b == 32) k = 5;
55368 else if(b == 4) k = 2;
55369 else return this.toRadix(b);
55370 var km = (1<<k)-1, d, m = false, r = "", i = this.t;
55371 var p = this.DB-(i*this.DB)%k;
55372 if(i-- > 0) {
55373 if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }
55374 while(i >= 0) {
55375 if(p < k) {
55376 d = (this[i]&((1<<p)-1))<<(k-p);
55377 d |= this[--i]>>(p+=this.DB-k);
55378 }
55379 else {
55380 d = (this[i]>>(p-=k))&km;
55381 if(p <= 0) { p += this.DB; --i; }
55382 }
55383 if(d > 0) m = true;
55384 if(m) r += int2char(d);
55385 }
55386 }
55387 return m?r:"0";
55388 }
55389 // (public) -this
55390 function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }
55391 // (public) |this|
55392 function bnAbs() { return (this.s<0)?this.negate():this; }
55393 // (public) return + if this > a, - if this < a, 0 if equal
55394 function bnCompareTo(a) {
55395 var r = this.s-a.s;
55396 if(r != 0) return r;
55397 var i = this.t;
55398 r = i-a.t;
55399 if(r != 0) return (this.s<0)?-r:r;
55400 while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;
55401 return 0;
55402 }
55403 // returns bit length of the integer x
55404 function nbits(x) {
55405 var r = 1, t;
55406 if((t=x>>>16) != 0) { x = t; r += 16; }
55407 if((t=x>>8) != 0) { x = t; r += 8; }
55408 if((t=x>>4) != 0) { x = t; r += 4; }
55409 if((t=x>>2) != 0) { x = t; r += 2; }
55410 if((t=x>>1) != 0) { x = t; r += 1; }
55411 return r;
55412 }
55413 // (public) return the number of bits in "this"
55414 function bnBitLength() {
55415 if(this.t <= 0) return 0;
55416 return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));
55417 }
55418 // (protected) r = this << n*DB
55419 function bnpDLShiftTo(n,r) {
55420 var i;
55421 for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];
55422 for(i = n-1; i >= 0; --i) r[i] = 0;
55423 r.t = this.t+n;
55424 r.s = this.s;
55425 }
55426 // (protected) r = this >> n*DB
55427 function bnpDRShiftTo(n,r) {
55428 for(var i = n; i < this.t; ++i) r[i-n] = this[i];
55429 r.t = Math.max(this.t-n,0);
55430 r.s = this.s;
55431 }
55432 // (protected) r = this << n
55433 function bnpLShiftTo(n,r) {
55434 var bs = n%this.DB;
55435 var cbs = this.DB-bs;
55436 var bm = (1<<cbs)-1;
55437 var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;
55438 for(i = this.t-1; i >= 0; --i) {
55439 r[i+ds+1] = (this[i]>>cbs)|c;
55440 c = (this[i]&bm)<<bs;
55441 }
55442 for(i = ds-1; i >= 0; --i) r[i] = 0;
55443 r[ds] = c;
55444 r.t = this.t+ds+1;
55445 r.s = this.s;
55446 r.clamp();
55447 }
55448 // (protected) r = this >> n
55449 function bnpRShiftTo(n,r) {
55450 r.s = this.s;
55451 var ds = Math.floor(n/this.DB);
55452 if(ds >= this.t) { r.t = 0; return; }
55453 var bs = n%this.DB;
55454 var cbs = this.DB-bs;
55455 var bm = (1<<bs)-1;
55456 r[0] = this[ds]>>bs;
55457 for(var i = ds+1; i < this.t; ++i) {
55458 r[i-ds-1] |= (this[i]&bm)<<cbs;
55459 r[i-ds] = this[i]>>bs;
55460 }
55461 if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs;
55462 r.t = this.t-ds;
55463 r.clamp();
55464 }
55465 // (protected) r = this - a
55466 function bnpSubTo(a,r) {
55467 var i = 0, c = 0, m = Math.min(a.t,this.t);
55468 while(i < m) {
55469 c += this[i]-a[i];
55470 r[i++] = c&this.DM;
55471 c >>= this.DB;
55472 }
55473 if(a.t < this.t) {
55474 c -= a.s;
55475 while(i < this.t) {
55476 c += this[i];
55477 r[i++] = c&this.DM;
55478 c >>= this.DB;
55479 }
55480 c += this.s;
55481 }
55482 else {
55483 c += this.s;
55484 while(i < a.t) {
55485 c -= a[i];
55486 r[i++] = c&this.DM;
55487 c >>= this.DB;
55488 }
55489 c -= a.s;
55490 }
55491 r.s = (c<0)?-1:0;
55492 if(c < -1) r[i++] = this.DV+c;
55493 else if(c > 0) r[i++] = c;
55494 r.t = i;
55495 r.clamp();
55496 }
55497 // (protected) r = this * a, r != this,a (HAC 14.12)
55498 // "this" should be the larger one if appropriate.
55499 function bnpMultiplyTo(a,r) {
55500 var x = this.abs(), y = a.abs();
55501 var i = x.t;
55502 r.t = i+y.t;
55503 while(--i >= 0) r[i] = 0;
55504 for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);
55505 r.s = 0;
55506 r.clamp();
55507 if(this.s != a.s) BigInteger.ZERO.subTo(r,r);
55508 }
55509 // (protected) r = this^2, r != this (HAC 14.16)
55510 function bnpSquareTo(r) {
55511 var x = this.abs();
55512 var i = r.t = 2*x.t;
55513 while(--i >= 0) r[i] = 0;
55514 for(i = 0; i < x.t-1; ++i) {
55515 var c = x.am(i,x[i],r,2*i,0,1);
55516 if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {
55517 r[i+x.t] -= x.DV;
55518 r[i+x.t+1] = 1;
55519 }
55520 }
55521 if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);
55522 r.s = 0;
55523 r.clamp();
55524 }
55525 // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
55526 // r != q, this != m. q or r may be null.
55527 function bnpDivRemTo(m,q,r) {
55528 var pm = m.abs();
55529 if(pm.t <= 0) return;
55530 var pt = this.abs();
55531 if(pt.t < pm.t) {
55532 if(q != null) q.fromInt(0);
55533 if(r != null) this.copyTo(r);
55534 return;
55535 }
55536 if(r == null) r = nbi();
55537 var y = nbi(), ts = this.s, ms = m.s;
55538 var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus
55539 if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
55540 else { pm.copyTo(y); pt.copyTo(r); }
55541 var ys = y.t;
55542 var y0 = y[ys-1];
55543 if(y0 == 0) return;
55544 var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);
55545 var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;
55546 var i = r.t, j = i-ys, t = (q==null)?nbi():q;
55547 y.dlShiftTo(j,t);
55548 if(r.compareTo(t) >= 0) {
55549 r[r.t++] = 1;
55550 r.subTo(t,r);
55551 }
55552 BigInteger.ONE.dlShiftTo(ys,t);
55553 t.subTo(y,y); // "negative" y so we can replace sub with am later
55554 while(y.t < ys) y[y.t++] = 0;
55555 while(--j >= 0) {
55556 // Estimate quotient digit
55557 var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);
55558 if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out
55559 y.dlShiftTo(j,t);
55560 r.subTo(t,r);
55561 while(r[i] < --qd) r.subTo(t,r);
55562 }
55563 }
55564 if(q != null) {
55565 r.drShiftTo(ys,q);
55566 if(ts != ms) BigInteger.ZERO.subTo(q,q);
55567 }
55568 r.t = ys;
55569 r.clamp();
55570 if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder
55571 if(ts < 0) BigInteger.ZERO.subTo(r,r);
55572 }
55573 // (public) this mod a
55574 function bnMod(a) {
55575 var r = nbi();
55576 this.abs().divRemTo(a,null,r);
55577 if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);
55578 return r;
55579 }
55580 // Modular reduction using "classic" algorithm
55581 function Classic(m) { this.m = m; }
55582 function cConvert(x) {
55583 if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
55584 else return x;
55585 }
55586 function cRevert(x) { return x; }
55587 function cReduce(x) { x.divRemTo(this.m,null,x); }
55588 function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
55589 function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
55590 Classic.prototype.convert = cConvert;
55591 Classic.prototype.revert = cRevert;
55592 Classic.prototype.reduce = cReduce;
55593 Classic.prototype.mulTo = cMulTo;
55594 Classic.prototype.sqrTo = cSqrTo;
55595 // (protected) return "-1/this % 2^DB"; useful for Mont. reduction
55596 // justification:
55597 // xy == 1 (mod m)
55598 // xy = 1+km
55599 // xy(2-xy) = (1+km)(1-km)
55600 // x[y(2-xy)] = 1-k^2m^2
55601 // x[y(2-xy)] == 1 (mod m^2)
55602 // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
55603 // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
55604 // JS multiply "overflows" differently from C/C++, so care is needed here.
55605 function bnpInvDigit() {
55606 if(this.t < 1) return 0;
55607 var x = this[0];
55608 if((x&1) == 0) return 0;
55609 var y = x&3; // y == 1/x mod 2^2
55610 y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4
55611 y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8
55612 y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16
55613 // last step - calculate inverse mod DV directly;
55614 // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
55615 y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits
55616 // we really want the negative inverse, and -DV < y < DV
55617 return (y>0)?this.DV-y:-y;
55618 }
55619 // Montgomery reduction
55620 function Montgomery(m) {
55621 this.m = m;
55622 this.mp = m.invDigit();
55623 this.mpl = this.mp&0x7fff;
55624 this.mph = this.mp>>15;
55625 this.um = (1<<(m.DB-15))-1;
55626 this.mt2 = 2*m.t;
55627 }
55628 // xR mod m
55629 function montConvert(x) {
55630 var r = nbi();
55631 x.abs().dlShiftTo(this.m.t,r);
55632 r.divRemTo(this.m,null,r);
55633 if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);
55634 return r;
55635 }
55636 // x/R mod m
55637 function montRevert(x) {
55638 var r = nbi();
55639 x.copyTo(r);
55640 this.reduce(r);
55641 return r;
55642 }
55643 // x = x/R mod m (HAC 14.32)
55644 function montReduce(x) {
55645 while(x.t <= this.mt2) // pad x so am has enough room later
55646 x[x.t++] = 0;
55647 for(var i = 0; i < this.m.t; ++i) {
55648 // faster way of calculating u0 = x[i]*mp mod DV
55649 var j = x[i]&0x7fff;
55650 var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;
55651 // use am to combine the multiply-shift-add into one call
55652 j = i+this.m.t;
55653 x[j] += this.m.am(0,u0,x,i,0,this.m.t);
55654 // propagate carry
55655 while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }
55656 }
55657 x.clamp();
55658 x.drShiftTo(this.m.t,x);
55659 if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
55660 }
55661 // r = "x^2/R mod m"; x != r
55662 function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
55663 // r = "xy/R mod m"; x,y != r
55664 function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
55665 Montgomery.prototype.convert = montConvert;
55666 Montgomery.prototype.revert = montRevert;
55667 Montgomery.prototype.reduce = montReduce;
55668 Montgomery.prototype.mulTo = montMulTo;
55669 Montgomery.prototype.sqrTo = montSqrTo;
55670 // (protected) true iff this is even
55671 function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }
55672 // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
55673 function bnpExp(e,z) {
55674 if(e > 0xffffffff || e < 1) return BigInteger.ONE;
55675 var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
55676 g.copyTo(r);
55677 while(--i >= 0) {
55678 z.sqrTo(r,r2);
55679 if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
55680 else { var t = r; r = r2; r2 = t; }
55681 }
55682 return z.revert(r);
55683 }
55684 // (public) this^e % m, 0 <= e < 2^32
55685 function bnModPowInt(e,m) {
55686 var z;
55687 if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
55688 return this.exp(e,z);
55689 }
55690 // protected
55691 BigInteger.prototype.copyTo = bnpCopyTo;
55692 BigInteger.prototype.fromInt = bnpFromInt;
55693 BigInteger.prototype.fromString = bnpFromString;
55694 BigInteger.prototype.clamp = bnpClamp;
55695 BigInteger.prototype.dlShiftTo = bnpDLShiftTo;
55696 BigInteger.prototype.drShiftTo = bnpDRShiftTo;
55697 BigInteger.prototype.lShiftTo = bnpLShiftTo;
55698 BigInteger.prototype.rShiftTo = bnpRShiftTo;
55699 BigInteger.prototype.subTo = bnpSubTo;
55700 BigInteger.prototype.multiplyTo = bnpMultiplyTo;
55701 BigInteger.prototype.squareTo = bnpSquareTo;
55702 BigInteger.prototype.divRemTo = bnpDivRemTo;
55703 BigInteger.prototype.invDigit = bnpInvDigit;
55704 BigInteger.prototype.isEven = bnpIsEven;
55705 BigInteger.prototype.exp = bnpExp;
55706 // public
55707 BigInteger.prototype.toString = bnToString;
55708 BigInteger.prototype.negate = bnNegate;
55709 BigInteger.prototype.abs = bnAbs;
55710 BigInteger.prototype.compareTo = bnCompareTo;
55711 BigInteger.prototype.bitLength = bnBitLength;
55712 BigInteger.prototype.mod = bnMod;
55713 BigInteger.prototype.modPowInt = bnModPowInt;
55714 // "constants"
55715 BigInteger.ZERO = nbv(0);
55716 BigInteger.ONE = nbv(1);
55717 // jsbn2 stuff
55718 // (protected) convert from radix string
55719 function bnpFromRadix(s,b) {
55720 this.fromInt(0);
55721 if(b == null) b = 10;
55722 var cs = this.chunkSize(b);
55723 var d = Math.pow(b,cs), mi = false, j = 0, w = 0;
55724 for(var i = 0; i < s.length; ++i) {
55725 var x = intAt(s,i);
55726 if(x < 0) {
55727 if(s.charAt(i) == "-" && this.signum() == 0) mi = true;
55728 continue;
55729 }
55730 w = b*w+x;
55731 if(++j >= cs) {
55732 this.dMultiply(d);
55733 this.dAddOffset(w,0);
55734 j = 0;
55735 w = 0;
55736 }
55737 }
55738 if(j > 0) {
55739 this.dMultiply(Math.pow(b,j));
55740 this.dAddOffset(w,0);
55741 }
55742 if(mi) BigInteger.ZERO.subTo(this,this);
55743 }
55744 // (protected) return x s.t. r^x < DV
55745 function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); }
55746 // (public) 0 if this == 0, 1 if this > 0
55747 function bnSigNum() {
55748 if(this.s < 0) return -1;
55749 else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0;
55750 else return 1;
55751 }
55752 // (protected) this *= n, this >= 0, 1 < n < DV
55753 function bnpDMultiply(n) {
55754 this[this.t] = this.am(0,n-1,this,0,0,this.t);
55755 ++this.t;
55756 this.clamp();
55757 }
55758 // (protected) this += n << w words, this >= 0
55759 function bnpDAddOffset(n,w) {
55760 if(n == 0) return;
55761 while(this.t <= w) this[this.t++] = 0;
55762 this[w] += n;
55763 while(this[w] >= this.DV) {
55764 this[w] -= this.DV;
55765 if(++w >= this.t) this[this.t++] = 0;
55766 ++this[w];
55767 }
55768 }
55769 // (protected) convert to radix string
55770 function bnpToRadix(b) {
55771 if(b == null) b = 10;
55772 if(this.signum() == 0 || b < 2 || b > 36) return "0";
55773 var cs = this.chunkSize(b);
55774 var a = Math.pow(b,cs);
55775 var d = nbv(a), y = nbi(), z = nbi(), r = "";
55776 this.divRemTo(d,y,z);
55777 while(y.signum() > 0) {
55778 r = (a+z.intValue()).toString(b).substr(1) + r;
55779 y.divRemTo(d,y,z);
55780 }
55781 return z.intValue().toString(b) + r;
55782 }
55783 // (public) return value as integer
55784 function bnIntValue() {
55785 if(this.s < 0) {
55786 if(this.t == 1) return this[0]-this.DV;
55787 else if(this.t == 0) return -1;
55788 }
55789 else if(this.t == 1) return this[0];
55790 else if(this.t == 0) return 0;
55791 // assumes 16 < DB < 32
55792 return ((this[1]&((1<<(32-this.DB))-1))<<this.DB)|this[0];
55793 }
55794 // (protected) r = this + a
55795 function bnpAddTo(a,r) {
55796 var i = 0, c = 0, m = Math.min(a.t,this.t);
55797 while(i < m) {
55798 c += this[i]+a[i];
55799 r[i++] = c&this.DM;
55800 c >>= this.DB;
55801 }
55802 if(a.t < this.t) {
55803 c += a.s;
55804 while(i < this.t) {
55805 c += this[i];
55806 r[i++] = c&this.DM;
55807 c >>= this.DB;
55808 }
55809 c += this.s;
55810 }
55811 else {
55812 c += this.s;
55813 while(i < a.t) {
55814 c += a[i];
55815 r[i++] = c&this.DM;
55816 c >>= this.DB;
55817 }
55818 c += a.s;
55819 }
55820 r.s = (c<0)?-1:0;
55821 if(c > 0) r[i++] = c;
55822 else if(c < -1) r[i++] = this.DV+c;
55823 r.t = i;
55824 r.clamp();
55825 }
55826 BigInteger.prototype.fromRadix = bnpFromRadix;
55827 BigInteger.prototype.chunkSize = bnpChunkSize;
55828 BigInteger.prototype.signum = bnSigNum;
55829 BigInteger.prototype.dMultiply = bnpDMultiply;
55830 BigInteger.prototype.dAddOffset = bnpDAddOffset;
55831 BigInteger.prototype.toRadix = bnpToRadix;
55832 BigInteger.prototype.intValue = bnIntValue;
55833 BigInteger.prototype.addTo = bnpAddTo;
55834 //======= end jsbn =======
55835 // Emscripten wrapper
55836 var Wrapper = {
55837 abs: function(l, h) {
55838 var x = new goog.math.Long(l, h);
55839 var ret;
55840 if (x.isNegative()) {
55841 ret = x.negate();
55842 } else {
55843 ret = x;
55844 }
55845 HEAP32[tempDoublePtr>>2] = ret.low_;
55846 HEAP32[tempDoublePtr+4>>2] = ret.high_;
55847 },
55848 ensureTemps: function() {
55849 if (Wrapper.ensuredTemps) return;
55850 Wrapper.ensuredTemps = true;
55851 Wrapper.two32 = new BigInteger();
55852 Wrapper.two32.fromString('4294967296', 10);
55853 Wrapper.two64 = new BigInteger();
55854 Wrapper.two64.fromString('18446744073709551616', 10);
55855 Wrapper.temp1 = new BigInteger();
55856 Wrapper.temp2 = new BigInteger();
55857 },
55858 lh2bignum: function(l, h) {
55859 var a = new BigInteger();
55860 a.fromString(h.toString(), 10);
55861 var b = new BigInteger();
55862 a.multiplyTo(Wrapper.two32, b);
55863 var c = new BigInteger();
55864 c.fromString(l.toString(), 10);
55865 var d = new BigInteger();
55866 c.addTo(b, d);
55867 return d;
55868 },
55869 stringify: function(l, h, unsigned) {
55870 var ret = new goog.math.Long(l, h).toString();
55871 if (unsigned && ret[0] == '-') {
55872 // unsign slowly using jsbn bignums
55873 Wrapper.ensureTemps();
55874 var bignum = new BigInteger();
55875 bignum.fromString(ret, 10);
55876 ret = new BigInteger();
55877 Wrapper.two64.addTo(bignum, ret);
55878 ret = ret.toString(10);
55879 }
55880 return ret;
55881 },
55882 fromString: function(str, base, min, max, unsigned) {
55883 Wrapper.ensureTemps();
55884 var bignum = new BigInteger();
55885 bignum.fromString(str, base);
55886 var bigmin = new BigInteger();
55887 bigmin.fromString(min, 10);
55888 var bigmax = new BigInteger();
55889 bigmax.fromString(max, 10);
55890 if (unsigned && bignum.compareTo(BigInteger.ZERO) < 0) {
55891 var temp = new BigInteger();
55892 bignum.addTo(Wrapper.two64, temp);
55893 bignum = temp;
55894 }
55895 var error = false;
55896 if (bignum.compareTo(bigmin) < 0) {
55897 bignum = bigmin;
55898 error = true;
55899 } else if (bignum.compareTo(bigmax) > 0) {
55900 bignum = bigmax;
55901 error = true;
55902 }
55903 var ret = goog.math.Long.fromString(bignum.toString()); // min-max checks should have clamped this to a range goog.math.Long can handle well
55904 HEAP32[tempDoublePtr>>2] = ret.low_;
55905 HEAP32[tempDoublePtr+4>>2] = ret.high_;
55906 if (error) throw 'range error';
55907 }
55908 };
55909 return Wrapper;
55910 })();
55911 //======= end closure i64 code =======
55912 // === Auto-generated postamble setup entry stuff ===
55913 function ExitStatus(status) {
55914 this.name = "ExitStatus";
55915 this.message = "Program terminated with exit(" + status + ")";
55916 this.status = status;
55917 };
55918 ExitStatus.prototype = new Error();
55919 ExitStatus.prototype.constructor = ExitStatus;
55920 function exit(status) {
55921 ABORT = true;
55922 EXITSTATUS = status;
55923 STACKTOP = initialStackTop;
55924 // exit the runtime
55925 exitRuntime();
55926 // TODO We should handle this differently based on environment.
55927 // In the browser, the best we can do is throw an exception
55928 // to halt execution, but in node we could process.exit and
55929 // I'd imagine SM shell would have something equivalent.
55930 // This would let us set a proper exit status (which
55931 // would be great for checking test exit statuses).
55932 // https://github.com/kripken/emscripten/issues/1371
55933 // throw an exception to halt the current execution
55934 throw new ExitStatus(status);
55935 }
55936 Module['exit'] = Module.exit = exit;
55937 function abort(text) {
55938 if (text) {
55939 Module.print(text);
55940 Module.printErr(text);
55941 }
55942 ABORT = true;
55943 EXITSTATUS = 1;
55944 throw 'abort() at ' + (new Error().stack);
55945 }
55946 Module['abort'] = Module.abort = abort;
55947
55948 var initialStackTop;
55949 var calledMain = false;
55950 Module['callMain'] = Module.callMain = function callMain(args) {
55951 assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)');
55952 assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called');
55953 args = args || [];
55954 ensureInitRuntime();
55955 var argc = args.length+1;
55956 function pad() {
55957 for (var i = 0; i < 4-1; i++) {
55958 argv.push(0);
55959 }
55960 }
55961 var argv = [allocate(intArrayFromString("/bin/this.program"), 'i8', ALLOC_NORMAL) ];
55962 pad();
55963 for (var i = 0; i < argc-1; i = i + 1) {
55964 argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL));
55965 pad();
55966 }
55967 argv.push(0);
55968 argv = allocate(argv, 'i32', ALLOC_NORMAL);
55969 initialStackTop = STACKTOP;
55970 try {
55971 var ret = Module['_main'](argc, argv, 0);
55972 // if we're not running an evented main loop, it's time to exit
55973 if (!Module['noExitRuntime']) {
55974 exit(ret);
55975 }
55976 }
55977 catch(e) {
55978 if (e instanceof ExitStatus) {
55979 // exit() throws this once it's done to make sure execution
55980 // has been stopped completely
55981 return;
55982 } else if (e == 'SimulateInfiniteLoop') {
55983 // running an evented main loop, don't immediately exit
55984 Module['noExitRuntime'] = true;
55985 return;
55986 } else {
55987 throw e;
55988 }
55989 } finally {
55990 calledMain = true;
55991 }
55992 }
55993 function runBullet() {
55994 assertEq(printedOutput, "");
55995 assertEq(runDependencies > 0, false);
55996 preRun();
55997 assertEq(runDependencies > 0, false);
55998 ensureInitRuntime();
55999 preMain();
56000 Module['callMain']([]);
56001 postRun();
56002
56003 // This is a canned demo which prints the final positions of all the objects.
56004 assertEq(printedOutput, "world pos = 2.00,10.00,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.99,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.98,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.97,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.96,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.94,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.92,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.90,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.88,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.85,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.82,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.78,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.75,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.71,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.67,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.62,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.57,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.52,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.47,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.42,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.36,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.30,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.23,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.17,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.10,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.02,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.95,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.87,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.79,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.71,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.62,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.53,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.44,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.35,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.25,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.15,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.05,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.94,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.83,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.72,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.61,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.49,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.37,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.25,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.13,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.00,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,6.87,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,6.73,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,6.60,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,6.46,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,6.32,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,6.17,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,6.03,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,5.88,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,5.72,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,5.57,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,5.41,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,5.25,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,5.08,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,4.92,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,4.75,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,4.58,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,4.40,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,4.22,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,4.04,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,3.86,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,3.67,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,3.48,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,3.29,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,3.10,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,2.90,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,2.70,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,2.50,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,2.29,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,2.08,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,1.87,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,1.66,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,1.44,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,1.22,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,1.00,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,0.77,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,0.55,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,0.32,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,0.08,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-0.15,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-0.39,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-0.63,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-0.88,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-1.13,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-1.38,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-1.63,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-1.88,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-2.14,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-2.40,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-2.67,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-2.93,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-3.20,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-3.48,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-3.75,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.03,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.31,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.59,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.88,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.17,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.13,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.10,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.08,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.05,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.03,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.01,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.99,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.98,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.97,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.96,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.95,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.95,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.95,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.95,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.96,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.97,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.98,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.99,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00");
56005 printedOutput = "";
56006
56007 // Let the caller decide what should have happened.
56008 return {
56009 asmJSValidated: isAsmJSModule(asmModule) && isAsmJSFunction(asm._main),
56010 loadedFromCache: isAsmJSModule(asmModule) && isAsmJSModuleLoadedFromCache(asmModule)
56011 }
56012 }

mercurial