Home | History | Annotate | Download | only in Thumb2
      1 ; RUN: llc < %s -march=arm   -mcpu=cortex-a8 -O0 -filetype=obj -o %t.o
      2 ; RUN: llc < %s -march=thumb -mcpu=cortex-a8 -O0 -filetype=obj -o %t.o
      3 ; RUN: llc < %s -march=arm   -mcpu=cortex-a8 -O2 -filetype=obj -verify-machineinstrs -o %t.o
      4 ; RUN: llc < %s -march=thumb -mcpu=cortex-a8 -O2 -filetype=obj -verify-machineinstrs -o %t.o
      5 target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
      6 target triple = "thumbv7-apple-ios"
      7 
      8 ; This function comes from the Bullet test.  It is quite big, and exercises the
      9 ; constant island pass a bit.  It has caused failures, including
     10 ; <rdar://problem/10670199>
     11 ;
     12 ; It is unlikely that this code will continue to create the exact conditions
     13 ; that broke the arm constant island pass in the past, but it is still useful to
     14 ; force the pass to split basic blocks etc.
     15 ;
     16 ; The run lines above force the integrated assembler to be enabled so it can
     17 ; catch any illegal displacements.  Other than that, we depend on the constant
     18 ; island pass assertions.
     19 
     20 %class.btVector3 = type { [4 x float] }
     21 %class.btTransform = type { %class.btMatrix3x3, %class.btVector3 }
     22 %class.btMatrix3x3 = type { [3 x %class.btVector3] }
     23 %class.btCapsuleShape = type { %class.btConvexInternalShape, i32 }
     24 %class.btConvexInternalShape = type { %class.btConvexShape, %class.btVector3, %class.btVector3, float, float }
     25 %class.btConvexShape = type { %class.btCollisionShape }
     26 %class.btCollisionShape = type { i32 (...)**, i32, i8* }
     27 %class.RagDoll = type { i32 (...)**, %class.btDynamicsWorld*, [11 x %class.btCollisionShape*], [11 x %class.btRigidBody*], [10 x %class.btTypedConstraint*] }
     28 %class.btDynamicsWorld = type { %class.btCollisionWorld, void (%class.btDynamicsWorld*, float)*, void (%class.btDynamicsWorld*, float)*, i8*, %struct.btContactSolverInfo }
     29 %class.btCollisionWorld = type { i32 (...)**, %class.btAlignedObjectArray, %class.btDispatcher*, %struct.btDispatcherInfo, %class.btStackAlloc*, %class.btBroadphaseInterface*, %class.btIDebugDraw*, i8 }
     30 %class.btAlignedObjectArray = type { %class.btAlignedAllocator, i32, i32, %class.btCollisionObject**, i8 }
     31 %class.btAlignedAllocator = type { i8 }
     32 %class.btCollisionObject = type { i32 (...)**, %class.btTransform, %class.btTransform, %class.btVector3, %class.btVector3, %class.btVector3, i8, float, %struct.btBroadphaseProxy*, %class.btCollisionShape*, %class.btCollisionShape*, i32, i32, i32, i32, float, float, float, i8*, i32, float, float, float, i8, [7 x i8] }
     33 %struct.btBroadphaseProxy = type { i8*, i16, i16, i8*, i32, %class.btVector3, %class.btVector3 }
     34 %class.btDispatcher = type { i32 (...)** }
     35 %struct.btDispatcherInfo = type { float, i32, i32, float, i8, %class.btIDebugDraw*, i8, i8, i8, float, i8, float, %class.btStackAlloc* }
     36 %class.btIDebugDraw = type { i32 (...)** }
     37 %class.btStackAlloc = type opaque
     38 %class.btBroadphaseInterface = type { i32 (...)** }
     39 %struct.btContactSolverInfo = type { %struct.btContactSolverInfoData }
     40 %struct.btContactSolverInfoData = type { float, float, float, float, float, i32, float, float, float, float, float, i32, float, float, float, i32, i32 }
     41 %class.btRigidBody = type { %class.btCollisionObject, %class.btMatrix3x3, %class.btVector3, %class.btVector3, float, %class.btVector3, %class.btVector3, %class.btVector3, %class.btVector3, %class.btVector3, %class.btVector3, %class.btVector3, float, float, i8, float, float, float, float, float, float, %class.btMotionState*, %class.btAlignedObjectArray.22, i32, i32, i32 }
     42 %class.btMotionState = type { i32 (...)** }
     43 %class.btAlignedObjectArray.22 = type { %class.btAlignedAllocator.23, i32, i32, %class.btTypedConstraint**, i8 }
     44 %class.btAlignedAllocator.23 = type { i8 }
     45 %class.btTypedConstraint = type { i32 (...)**, %struct.btTypedObject, i32, i32, i8, %class.btRigidBody*, %class.btRigidBody*, float, float, %class.btVector3, %class.btVector3, %class.btVector3 }
     46 %struct.btTypedObject = type { i32 }
     47 %class.btHingeConstraint = type { %class.btTypedConstraint, [3 x %class.btJacobianEntry], [3 x %class.btJacobianEntry], %class.btTransform, %class.btTransform, float, float, float, float, float, float, float, float, float, float, float, float, float, i8, i8, i8, i8, i8, float }
     48 %class.btJacobianEntry = type { %class.btVector3, %class.btVector3, %class.btVector3, %class.btVector3, %class.btVector3, float }
     49 %class.btConeTwistConstraint = type { %class.btTypedConstraint, [3 x %class.btJacobianEntry], %class.btTransform, %class.btTransform, float, float, float, float, float, float, float, float, %class.btVector3, %class.btVector3, float, float, float, float, float, float, float, float, i8, i8, i8, i8, float, float, %class.btVector3, i8, i8, %class.btQuaternion, float, %class.btVector3 }
     50 %class.btQuaternion = type { %class.btQuadWord }
     51 %class.btQuadWord = type { [4 x float] }
     52 
     53 @_ZTV7RagDoll = external unnamed_addr constant [4 x i8*]
     54 
     55 declare noalias i8* @_Znwm(i32)
     56 
     57 declare i32 @__gxx_personality_sj0(...)
     58 
     59 declare void @_ZdlPv(i8*) nounwind
     60 
     61 declare %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3*, float*, float*, float*) unnamed_addr inlinehint ssp align 2
     62 
     63 declare void @_ZSt9terminatev()
     64 
     65 declare %class.btTransform* @_ZN11btTransformC1Ev(%class.btTransform*) unnamed_addr ssp align 2
     66 
     67 declare void @_ZN11btTransform11setIdentityEv(%class.btTransform*) ssp align 2
     68 
     69 declare void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform*, %class.btVector3*) nounwind inlinehint ssp align 2
     70 
     71 declare i8* @_ZN13btConvexShapenwEm(i32) inlinehint ssp align 2
     72 
     73 declare void @_ZN13btConvexShapedlEPv(i8*) inlinehint ssp align 2
     74 
     75 declare %class.btCapsuleShape* @_ZN14btCapsuleShapeC1Eff(%class.btCapsuleShape*, float, float)
     76 
     77 declare %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform*) nounwind inlinehint ssp align 2
     78 
     79 define %class.RagDoll* @_ZN7RagDollC2EP15btDynamicsWorldRK9btVector3f(%class.RagDoll* %this, %class.btDynamicsWorld* %ownerWorld, %class.btVector3* %positionOffset, float %scale) unnamed_addr ssp align 2 {
     80 entry:
     81   %retval = alloca %class.RagDoll*, align 4
     82   %this.addr = alloca %class.RagDoll*, align 4
     83   %ownerWorld.addr = alloca %class.btDynamicsWorld*, align 4
     84   %positionOffset.addr = alloca %class.btVector3*, align 4
     85   %scale.addr = alloca float, align 4
     86   %exn.slot = alloca i8*
     87   %ehselector.slot = alloca i32
     88   %offset = alloca %class.btTransform, align 4
     89   %transform = alloca %class.btTransform, align 4
     90   %ref.tmp = alloca %class.btVector3, align 4
     91   %ref.tmp97 = alloca %class.btVector3, align 4
     92   %ref.tmp98 = alloca float, align 4
     93   %ref.tmp99 = alloca float, align 4
     94   %ref.tmp100 = alloca float, align 4
     95   %ref.tmp102 = alloca %class.btTransform, align 4
     96   %ref.tmp107 = alloca %class.btVector3, align 4
     97   %ref.tmp108 = alloca %class.btVector3, align 4
     98   %ref.tmp109 = alloca float, align 4
     99   %ref.tmp110 = alloca float, align 4
    100   %ref.tmp111 = alloca float, align 4
    101   %ref.tmp113 = alloca %class.btTransform, align 4
    102   %ref.tmp119 = alloca %class.btVector3, align 4
    103   %ref.tmp120 = alloca %class.btVector3, align 4
    104   %ref.tmp121 = alloca float, align 4
    105   %ref.tmp122 = alloca float, align 4
    106   %ref.tmp123 = alloca float, align 4
    107   %ref.tmp125 = alloca %class.btTransform, align 4
    108   %ref.tmp131 = alloca %class.btVector3, align 4
    109   %ref.tmp132 = alloca %class.btVector3, align 4
    110   %ref.tmp133 = alloca float, align 4
    111   %ref.tmp134 = alloca float, align 4
    112   %ref.tmp135 = alloca float, align 4
    113   %ref.tmp137 = alloca %class.btTransform, align 4
    114   %ref.tmp143 = alloca %class.btVector3, align 4
    115   %ref.tmp144 = alloca %class.btVector3, align 4
    116   %ref.tmp145 = alloca float, align 4
    117   %ref.tmp146 = alloca float, align 4
    118   %ref.tmp147 = alloca float, align 4
    119   %ref.tmp149 = alloca %class.btTransform, align 4
    120   %ref.tmp155 = alloca %class.btVector3, align 4
    121   %ref.tmp156 = alloca %class.btVector3, align 4
    122   %ref.tmp157 = alloca float, align 4
    123   %ref.tmp158 = alloca float, align 4
    124   %ref.tmp159 = alloca float, align 4
    125   %ref.tmp161 = alloca %class.btTransform, align 4
    126   %ref.tmp167 = alloca %class.btVector3, align 4
    127   %ref.tmp168 = alloca %class.btVector3, align 4
    128   %ref.tmp169 = alloca float, align 4
    129   %ref.tmp170 = alloca float, align 4
    130   %ref.tmp171 = alloca float, align 4
    131   %ref.tmp173 = alloca %class.btTransform, align 4
    132   %ref.tmp179 = alloca %class.btVector3, align 4
    133   %ref.tmp180 = alloca %class.btVector3, align 4
    134   %ref.tmp181 = alloca float, align 4
    135   %ref.tmp182 = alloca float, align 4
    136   %ref.tmp183 = alloca float, align 4
    137   %ref.tmp186 = alloca %class.btTransform, align 4
    138   %ref.tmp192 = alloca %class.btVector3, align 4
    139   %ref.tmp193 = alloca %class.btVector3, align 4
    140   %ref.tmp194 = alloca float, align 4
    141   %ref.tmp195 = alloca float, align 4
    142   %ref.tmp196 = alloca float, align 4
    143   %ref.tmp199 = alloca %class.btTransform, align 4
    144   %ref.tmp205 = alloca %class.btVector3, align 4
    145   %ref.tmp206 = alloca %class.btVector3, align 4
    146   %ref.tmp207 = alloca float, align 4
    147   %ref.tmp208 = alloca float, align 4
    148   %ref.tmp209 = alloca float, align 4
    149   %ref.tmp212 = alloca %class.btTransform, align 4
    150   %ref.tmp218 = alloca %class.btVector3, align 4
    151   %ref.tmp219 = alloca %class.btVector3, align 4
    152   %ref.tmp220 = alloca float, align 4
    153   %ref.tmp221 = alloca float, align 4
    154   %ref.tmp222 = alloca float, align 4
    155   %ref.tmp225 = alloca %class.btTransform, align 4
    156   %i = alloca i32, align 4
    157   %hingeC = alloca %class.btHingeConstraint*, align 4
    158   %coneC = alloca %class.btConeTwistConstraint*, align 4
    159   %localA = alloca %class.btTransform, align 4
    160   %localB = alloca %class.btTransform, align 4
    161   %ref.tmp240 = alloca %class.btVector3, align 4
    162   %ref.tmp241 = alloca %class.btVector3, align 4
    163   %ref.tmp242 = alloca float, align 4
    164   %ref.tmp243 = alloca float, align 4
    165   %ref.tmp244 = alloca float, align 4
    166   %ref.tmp247 = alloca %class.btVector3, align 4
    167   %ref.tmp248 = alloca %class.btVector3, align 4
    168   %ref.tmp249 = alloca float, align 4
    169   %ref.tmp250 = alloca float, align 4
    170   %ref.tmp251 = alloca float, align 4
    171   %ref.tmp266 = alloca %class.btVector3, align 4
    172   %ref.tmp267 = alloca %class.btVector3, align 4
    173   %ref.tmp268 = alloca float, align 4
    174   %ref.tmp269 = alloca float, align 4
    175   %ref.tmp270 = alloca float, align 4
    176   %ref.tmp273 = alloca %class.btVector3, align 4
    177   %ref.tmp274 = alloca %class.btVector3, align 4
    178   %ref.tmp275 = alloca float, align 4
    179   %ref.tmp276 = alloca float, align 4
    180   %ref.tmp277 = alloca float, align 4
    181   %ref.tmp295 = alloca %class.btVector3, align 4
    182   %ref.tmp296 = alloca %class.btVector3, align 4
    183   %ref.tmp297 = alloca float, align 4
    184   %ref.tmp298 = alloca float, align 4
    185   %ref.tmp299 = alloca float, align 4
    186   %ref.tmp302 = alloca %class.btVector3, align 4
    187   %ref.tmp303 = alloca %class.btVector3, align 4
    188   %ref.tmp304 = alloca float, align 4
    189   %ref.tmp305 = alloca float, align 4
    190   %ref.tmp306 = alloca float, align 4
    191   %ref.tmp324 = alloca %class.btVector3, align 4
    192   %ref.tmp325 = alloca %class.btVector3, align 4
    193   %ref.tmp326 = alloca float, align 4
    194   %ref.tmp327 = alloca float, align 4
    195   %ref.tmp328 = alloca float, align 4
    196   %ref.tmp331 = alloca %class.btVector3, align 4
    197   %ref.tmp332 = alloca %class.btVector3, align 4
    198   %ref.tmp333 = alloca float, align 4
    199   %ref.tmp334 = alloca float, align 4
    200   %ref.tmp335 = alloca float, align 4
    201   %ref.tmp353 = alloca %class.btVector3, align 4
    202   %ref.tmp354 = alloca %class.btVector3, align 4
    203   %ref.tmp355 = alloca float, align 4
    204   %ref.tmp356 = alloca float, align 4
    205   %ref.tmp357 = alloca float, align 4
    206   %ref.tmp360 = alloca %class.btVector3, align 4
    207   %ref.tmp361 = alloca %class.btVector3, align 4
    208   %ref.tmp362 = alloca float, align 4
    209   %ref.tmp363 = alloca float, align 4
    210   %ref.tmp364 = alloca float, align 4
    211   %ref.tmp382 = alloca %class.btVector3, align 4
    212   %ref.tmp383 = alloca %class.btVector3, align 4
    213   %ref.tmp384 = alloca float, align 4
    214   %ref.tmp385 = alloca float, align 4
    215   %ref.tmp386 = alloca float, align 4
    216   %ref.tmp389 = alloca %class.btVector3, align 4
    217   %ref.tmp390 = alloca %class.btVector3, align 4
    218   %ref.tmp391 = alloca float, align 4
    219   %ref.tmp392 = alloca float, align 4
    220   %ref.tmp393 = alloca float, align 4
    221   %ref.tmp411 = alloca %class.btVector3, align 4
    222   %ref.tmp412 = alloca %class.btVector3, align 4
    223   %ref.tmp413 = alloca float, align 4
    224   %ref.tmp414 = alloca float, align 4
    225   %ref.tmp415 = alloca float, align 4
    226   %ref.tmp418 = alloca %class.btVector3, align 4
    227   %ref.tmp419 = alloca %class.btVector3, align 4
    228   %ref.tmp420 = alloca float, align 4
    229   %ref.tmp421 = alloca float, align 4
    230   %ref.tmp422 = alloca float, align 4
    231   %ref.tmp440 = alloca %class.btVector3, align 4
    232   %ref.tmp441 = alloca %class.btVector3, align 4
    233   %ref.tmp442 = alloca float, align 4
    234   %ref.tmp443 = alloca float, align 4
    235   %ref.tmp444 = alloca float, align 4
    236   %ref.tmp447 = alloca %class.btVector3, align 4
    237   %ref.tmp448 = alloca %class.btVector3, align 4
    238   %ref.tmp449 = alloca float, align 4
    239   %ref.tmp450 = alloca float, align 4
    240   %ref.tmp451 = alloca float, align 4
    241   %ref.tmp469 = alloca %class.btVector3, align 4
    242   %ref.tmp470 = alloca %class.btVector3, align 4
    243   %ref.tmp471 = alloca float, align 4
    244   %ref.tmp472 = alloca float, align 4
    245   %ref.tmp473 = alloca float, align 4
    246   %ref.tmp476 = alloca %class.btVector3, align 4
    247   %ref.tmp477 = alloca %class.btVector3, align 4
    248   %ref.tmp478 = alloca float, align 4
    249   %ref.tmp479 = alloca float, align 4
    250   %ref.tmp480 = alloca float, align 4
    251   %ref.tmp498 = alloca %class.btVector3, align 4
    252   %ref.tmp499 = alloca %class.btVector3, align 4
    253   %ref.tmp500 = alloca float, align 4
    254   %ref.tmp501 = alloca float, align 4
    255   %ref.tmp502 = alloca float, align 4
    256   %ref.tmp505 = alloca %class.btVector3, align 4
    257   %ref.tmp506 = alloca %class.btVector3, align 4
    258   %ref.tmp507 = alloca float, align 4
    259   %ref.tmp508 = alloca float, align 4
    260   %ref.tmp509 = alloca float, align 4
    261   store %class.RagDoll* %this, %class.RagDoll** %this.addr, align 4
    262   store %class.btDynamicsWorld* %ownerWorld, %class.btDynamicsWorld** %ownerWorld.addr, align 4
    263   store %class.btVector3* %positionOffset, %class.btVector3** %positionOffset.addr, align 4
    264   store float %scale, float* %scale.addr, align 4
    265   %this1 = load %class.RagDoll*, %class.RagDoll** %this.addr
    266   store %class.RagDoll* %this1, %class.RagDoll** %retval
    267   %0 = bitcast %class.RagDoll* %this1 to i8***
    268   store i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTV7RagDoll, i64 0, i64 2), i8*** %0
    269   %m_ownerWorld = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 1
    270   %1 = load %class.btDynamicsWorld*, %class.btDynamicsWorld** %ownerWorld.addr, align 4
    271   store %class.btDynamicsWorld* %1, %class.btDynamicsWorld** %m_ownerWorld, align 4
    272   %call = call i8* @_ZN13btConvexShapenwEm(i32 56)
    273   %2 = bitcast i8* %call to %class.btCapsuleShape*
    274   %3 = load float, float* %scale.addr, align 4
    275   %mul = fmul float 0x3FC3333340000000, %3
    276   %4 = load float, float* %scale.addr, align 4
    277   %mul2 = fmul float 0x3FC99999A0000000, %4
    278   %call3 = invoke %class.btCapsuleShape* @_ZN14btCapsuleShapeC1Eff(%class.btCapsuleShape* %2, float %mul, float %mul2)
    279           to label %invoke.cont unwind label %lpad
    280 
    281 invoke.cont:                                      ; preds = %entry
    282   %5 = bitcast %class.btCapsuleShape* %2 to %class.btCollisionShape*
    283   %m_shapes = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    284   %arrayidx = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes, i32 0, i32 0
    285   store %class.btCollisionShape* %5, %class.btCollisionShape** %arrayidx, align 4
    286   %call5 = call i8* @_ZN13btConvexShapenwEm(i32 56)
    287   %6 = bitcast i8* %call5 to %class.btCapsuleShape*
    288   %7 = load float, float* %scale.addr, align 4
    289   %mul6 = fmul float 0x3FC3333340000000, %7
    290   %8 = load float, float* %scale.addr, align 4
    291   %mul7 = fmul float 0x3FD1EB8520000000, %8
    292   %call10 = invoke %class.btCapsuleShape* @_ZN14btCapsuleShapeC1Eff(%class.btCapsuleShape* %6, float %mul6, float %mul7)
    293           to label %invoke.cont9 unwind label %lpad8
    294 
    295 invoke.cont9:                                     ; preds = %invoke.cont
    296   %9 = bitcast %class.btCapsuleShape* %6 to %class.btCollisionShape*
    297   %m_shapes12 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    298   %arrayidx13 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes12, i32 0, i32 1
    299   store %class.btCollisionShape* %9, %class.btCollisionShape** %arrayidx13, align 4
    300   %call14 = call i8* @_ZN13btConvexShapenwEm(i32 56)
    301   %10 = bitcast i8* %call14 to %class.btCapsuleShape*
    302   %11 = load float, float* %scale.addr, align 4
    303   %mul15 = fmul float 0x3FB99999A0000000, %11
    304   %12 = load float, float* %scale.addr, align 4
    305   %mul16 = fmul float 0x3FA99999A0000000, %12
    306   %call19 = invoke %class.btCapsuleShape* @_ZN14btCapsuleShapeC1Eff(%class.btCapsuleShape* %10, float %mul15, float %mul16)
    307           to label %invoke.cont18 unwind label %lpad17
    308 
    309 invoke.cont18:                                    ; preds = %invoke.cont9
    310   %13 = bitcast %class.btCapsuleShape* %10 to %class.btCollisionShape*
    311   %m_shapes21 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    312   %arrayidx22 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes21, i32 0, i32 2
    313   store %class.btCollisionShape* %13, %class.btCollisionShape** %arrayidx22, align 4
    314   %call23 = call i8* @_ZN13btConvexShapenwEm(i32 56)
    315   %14 = bitcast i8* %call23 to %class.btCapsuleShape*
    316   %15 = load float, float* %scale.addr, align 4
    317   %mul24 = fmul float 0x3FB1EB8520000000, %15
    318   %16 = load float, float* %scale.addr, align 4
    319   %mul25 = fmul float 0x3FDCCCCCC0000000, %16
    320   %call28 = invoke %class.btCapsuleShape* @_ZN14btCapsuleShapeC1Eff(%class.btCapsuleShape* %14, float %mul24, float %mul25)
    321           to label %invoke.cont27 unwind label %lpad26
    322 
    323 invoke.cont27:                                    ; preds = %invoke.cont18
    324   %17 = bitcast %class.btCapsuleShape* %14 to %class.btCollisionShape*
    325   %m_shapes30 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    326   %arrayidx31 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes30, i32 0, i32 3
    327   store %class.btCollisionShape* %17, %class.btCollisionShape** %arrayidx31, align 4
    328   %call32 = call i8* @_ZN13btConvexShapenwEm(i32 56)
    329   %18 = bitcast i8* %call32 to %class.btCapsuleShape*
    330   %19 = load float, float* %scale.addr, align 4
    331   %mul33 = fmul float 0x3FA99999A0000000, %19
    332   %20 = load float, float* %scale.addr, align 4
    333   %mul34 = fmul float 0x3FD7AE1480000000, %20
    334   %call37 = invoke %class.btCapsuleShape* @_ZN14btCapsuleShapeC1Eff(%class.btCapsuleShape* %18, float %mul33, float %mul34)
    335           to label %invoke.cont36 unwind label %lpad35
    336 
    337 invoke.cont36:                                    ; preds = %invoke.cont27
    338   %21 = bitcast %class.btCapsuleShape* %18 to %class.btCollisionShape*
    339   %m_shapes39 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    340   %arrayidx40 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes39, i32 0, i32 4
    341   store %class.btCollisionShape* %21, %class.btCollisionShape** %arrayidx40, align 4
    342   %call41 = call i8* @_ZN13btConvexShapenwEm(i32 56)
    343   %22 = bitcast i8* %call41 to %class.btCapsuleShape*
    344   %23 = load float, float* %scale.addr, align 4
    345   %mul42 = fmul float 0x3FB1EB8520000000, %23
    346   %24 = load float, float* %scale.addr, align 4
    347   %mul43 = fmul float 0x3FDCCCCCC0000000, %24
    348   %call46 = invoke %class.btCapsuleShape* @_ZN14btCapsuleShapeC1Eff(%class.btCapsuleShape* %22, float %mul42, float %mul43)
    349           to label %invoke.cont45 unwind label %lpad44
    350 
    351 invoke.cont45:                                    ; preds = %invoke.cont36
    352   %25 = bitcast %class.btCapsuleShape* %22 to %class.btCollisionShape*
    353   %m_shapes48 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    354   %arrayidx49 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes48, i32 0, i32 5
    355   store %class.btCollisionShape* %25, %class.btCollisionShape** %arrayidx49, align 4
    356   %call50 = call i8* @_ZN13btConvexShapenwEm(i32 56)
    357   %26 = bitcast i8* %call50 to %class.btCapsuleShape*
    358   %27 = load float, float* %scale.addr, align 4
    359   %mul51 = fmul float 0x3FA99999A0000000, %27
    360   %28 = load float, float* %scale.addr, align 4
    361   %mul52 = fmul float 0x3FD7AE1480000000, %28
    362   %call55 = invoke %class.btCapsuleShape* @_ZN14btCapsuleShapeC1Eff(%class.btCapsuleShape* %26, float %mul51, float %mul52)
    363           to label %invoke.cont54 unwind label %lpad53
    364 
    365 invoke.cont54:                                    ; preds = %invoke.cont45
    366   %29 = bitcast %class.btCapsuleShape* %26 to %class.btCollisionShape*
    367   %m_shapes57 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    368   %arrayidx58 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes57, i32 0, i32 6
    369   store %class.btCollisionShape* %29, %class.btCollisionShape** %arrayidx58, align 4
    370   %call59 = call i8* @_ZN13btConvexShapenwEm(i32 56)
    371   %30 = bitcast i8* %call59 to %class.btCapsuleShape*
    372   %31 = load float, float* %scale.addr, align 4
    373   %mul60 = fmul float 0x3FA99999A0000000, %31
    374   %32 = load float, float* %scale.addr, align 4
    375   %mul61 = fmul float 0x3FD51EB860000000, %32
    376   %call64 = invoke %class.btCapsuleShape* @_ZN14btCapsuleShapeC1Eff(%class.btCapsuleShape* %30, float %mul60, float %mul61)
    377           to label %invoke.cont63 unwind label %lpad62
    378 
    379 invoke.cont63:                                    ; preds = %invoke.cont54
    380   %33 = bitcast %class.btCapsuleShape* %30 to %class.btCollisionShape*
    381   %m_shapes66 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    382   %arrayidx67 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes66, i32 0, i32 7
    383   store %class.btCollisionShape* %33, %class.btCollisionShape** %arrayidx67, align 4
    384   %call68 = call i8* @_ZN13btConvexShapenwEm(i32 56)
    385   %34 = bitcast i8* %call68 to %class.btCapsuleShape*
    386   %35 = load float, float* %scale.addr, align 4
    387   %mul69 = fmul float 0x3FA47AE140000000, %35
    388   %36 = load float, float* %scale.addr, align 4
    389   %mul70 = fmul float 2.500000e-01, %36
    390   %call73 = invoke %class.btCapsuleShape* @_ZN14btCapsuleShapeC1Eff(%class.btCapsuleShape* %34, float %mul69, float %mul70)
    391           to label %invoke.cont72 unwind label %lpad71
    392 
    393 invoke.cont72:                                    ; preds = %invoke.cont63
    394   %37 = bitcast %class.btCapsuleShape* %34 to %class.btCollisionShape*
    395   %m_shapes75 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    396   %arrayidx76 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes75, i32 0, i32 8
    397   store %class.btCollisionShape* %37, %class.btCollisionShape** %arrayidx76, align 4
    398   %call77 = call i8* @_ZN13btConvexShapenwEm(i32 56)
    399   %38 = bitcast i8* %call77 to %class.btCapsuleShape*
    400   %39 = load float, float* %scale.addr, align 4
    401   %mul78 = fmul float 0x3FA99999A0000000, %39
    402   %40 = load float, float* %scale.addr, align 4
    403   %mul79 = fmul float 0x3FD51EB860000000, %40
    404   %call82 = invoke %class.btCapsuleShape* @_ZN14btCapsuleShapeC1Eff(%class.btCapsuleShape* %38, float %mul78, float %mul79)
    405           to label %invoke.cont81 unwind label %lpad80
    406 
    407 invoke.cont81:                                    ; preds = %invoke.cont72
    408   %41 = bitcast %class.btCapsuleShape* %38 to %class.btCollisionShape*
    409   %m_shapes84 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    410   %arrayidx85 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes84, i32 0, i32 9
    411   store %class.btCollisionShape* %41, %class.btCollisionShape** %arrayidx85, align 4
    412   %call86 = call i8* @_ZN13btConvexShapenwEm(i32 56)
    413   %42 = bitcast i8* %call86 to %class.btCapsuleShape*
    414   %43 = load float, float* %scale.addr, align 4
    415   %mul87 = fmul float 0x3FA47AE140000000, %43
    416   %44 = load float, float* %scale.addr, align 4
    417   %mul88 = fmul float 2.500000e-01, %44
    418   %call91 = invoke %class.btCapsuleShape* @_ZN14btCapsuleShapeC1Eff(%class.btCapsuleShape* %42, float %mul87, float %mul88)
    419           to label %invoke.cont90 unwind label %lpad89
    420 
    421 invoke.cont90:                                    ; preds = %invoke.cont81
    422   %45 = bitcast %class.btCapsuleShape* %42 to %class.btCollisionShape*
    423   %m_shapes93 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    424   %arrayidx94 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes93, i32 0, i32 10
    425   store %class.btCollisionShape* %45, %class.btCollisionShape** %arrayidx94, align 4
    426   %call95 = call %class.btTransform* @_ZN11btTransformC1Ev(%class.btTransform* %offset)
    427   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %offset)
    428   %46 = load %class.btVector3*, %class.btVector3** %positionOffset.addr, align 4
    429   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %offset, %class.btVector3* %46)
    430   %call96 = call %class.btTransform* @_ZN11btTransformC1Ev(%class.btTransform* %transform)
    431   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %transform)
    432   store float 0.000000e+00, float* %ref.tmp98, align 4
    433   store float 1.000000e+00, float* %ref.tmp99, align 4
    434   store float 0.000000e+00, float* %ref.tmp100, align 4
    435   %call101 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp97, float* %ref.tmp98, float* %ref.tmp99, float* %ref.tmp100)
    436   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp, float* %scale.addr, %class.btVector3* %ref.tmp97)
    437   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %transform, %class.btVector3* %ref.tmp)
    438   call void @_ZNK11btTransformmlERKS_(%class.btTransform* sret %ref.tmp102, %class.btTransform* %offset, %class.btTransform* %transform)
    439   %m_shapes103 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    440   %arrayidx104 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes103, i32 0, i32 0
    441   %47 = load %class.btCollisionShape*, %class.btCollisionShape** %arrayidx104, align 4
    442   %call105 = call %class.btRigidBody* @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(%class.RagDoll* %this1, float 1.000000e+00, %class.btTransform* %ref.tmp102, %class.btCollisionShape* %47)
    443   %m_bodies = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    444   %arrayidx106 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies, i32 0, i32 0
    445   store %class.btRigidBody* %call105, %class.btRigidBody** %arrayidx106, align 4
    446   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %transform)
    447   store float 0.000000e+00, float* %ref.tmp109, align 4
    448   store float 0x3FF3333340000000, float* %ref.tmp110, align 4
    449   store float 0.000000e+00, float* %ref.tmp111, align 4
    450   %call112 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp108, float* %ref.tmp109, float* %ref.tmp110, float* %ref.tmp111)
    451   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp107, float* %scale.addr, %class.btVector3* %ref.tmp108)
    452   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %transform, %class.btVector3* %ref.tmp107)
    453   call void @_ZNK11btTransformmlERKS_(%class.btTransform* sret %ref.tmp113, %class.btTransform* %offset, %class.btTransform* %transform)
    454   %m_shapes114 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    455   %arrayidx115 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes114, i32 0, i32 1
    456   %48 = load %class.btCollisionShape*, %class.btCollisionShape** %arrayidx115, align 4
    457   %call116 = call %class.btRigidBody* @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(%class.RagDoll* %this1, float 1.000000e+00, %class.btTransform* %ref.tmp113, %class.btCollisionShape* %48)
    458   %m_bodies117 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    459   %arrayidx118 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies117, i32 0, i32 1
    460   store %class.btRigidBody* %call116, %class.btRigidBody** %arrayidx118, align 4
    461   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %transform)
    462   store float 0.000000e+00, float* %ref.tmp121, align 4
    463   store float 0x3FF99999A0000000, float* %ref.tmp122, align 4
    464   store float 0.000000e+00, float* %ref.tmp123, align 4
    465   %call124 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp120, float* %ref.tmp121, float* %ref.tmp122, float* %ref.tmp123)
    466   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp119, float* %scale.addr, %class.btVector3* %ref.tmp120)
    467   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %transform, %class.btVector3* %ref.tmp119)
    468   call void @_ZNK11btTransformmlERKS_(%class.btTransform* sret %ref.tmp125, %class.btTransform* %offset, %class.btTransform* %transform)
    469   %m_shapes126 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    470   %arrayidx127 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes126, i32 0, i32 2
    471   %49 = load %class.btCollisionShape*, %class.btCollisionShape** %arrayidx127, align 4
    472   %call128 = call %class.btRigidBody* @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(%class.RagDoll* %this1, float 1.000000e+00, %class.btTransform* %ref.tmp125, %class.btCollisionShape* %49)
    473   %m_bodies129 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    474   %arrayidx130 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies129, i32 0, i32 2
    475   store %class.btRigidBody* %call128, %class.btRigidBody** %arrayidx130, align 4
    476   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %transform)
    477   store float 0xBFC70A3D80000000, float* %ref.tmp133, align 4
    478   store float 0x3FE4CCCCC0000000, float* %ref.tmp134, align 4
    479   store float 0.000000e+00, float* %ref.tmp135, align 4
    480   %call136 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp132, float* %ref.tmp133, float* %ref.tmp134, float* %ref.tmp135)
    481   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp131, float* %scale.addr, %class.btVector3* %ref.tmp132)
    482   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %transform, %class.btVector3* %ref.tmp131)
    483   call void @_ZNK11btTransformmlERKS_(%class.btTransform* sret %ref.tmp137, %class.btTransform* %offset, %class.btTransform* %transform)
    484   %m_shapes138 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    485   %arrayidx139 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes138, i32 0, i32 3
    486   %50 = load %class.btCollisionShape*, %class.btCollisionShape** %arrayidx139, align 4
    487   %call140 = call %class.btRigidBody* @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(%class.RagDoll* %this1, float 1.000000e+00, %class.btTransform* %ref.tmp137, %class.btCollisionShape* %50)
    488   %m_bodies141 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    489   %arrayidx142 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies141, i32 0, i32 3
    490   store %class.btRigidBody* %call140, %class.btRigidBody** %arrayidx142, align 4
    491   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %transform)
    492   store float 0xBFC70A3D80000000, float* %ref.tmp145, align 4
    493   store float 0x3FC99999A0000000, float* %ref.tmp146, align 4
    494   store float 0.000000e+00, float* %ref.tmp147, align 4
    495   %call148 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp144, float* %ref.tmp145, float* %ref.tmp146, float* %ref.tmp147)
    496   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp143, float* %scale.addr, %class.btVector3* %ref.tmp144)
    497   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %transform, %class.btVector3* %ref.tmp143)
    498   call void @_ZNK11btTransformmlERKS_(%class.btTransform* sret %ref.tmp149, %class.btTransform* %offset, %class.btTransform* %transform)
    499   %m_shapes150 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    500   %arrayidx151 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes150, i32 0, i32 4
    501   %51 = load %class.btCollisionShape*, %class.btCollisionShape** %arrayidx151, align 4
    502   %call152 = call %class.btRigidBody* @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(%class.RagDoll* %this1, float 1.000000e+00, %class.btTransform* %ref.tmp149, %class.btCollisionShape* %51)
    503   %m_bodies153 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    504   %arrayidx154 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies153, i32 0, i32 4
    505   store %class.btRigidBody* %call152, %class.btRigidBody** %arrayidx154, align 4
    506   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %transform)
    507   store float 0x3FC70A3D80000000, float* %ref.tmp157, align 4
    508   store float 0x3FE4CCCCC0000000, float* %ref.tmp158, align 4
    509   store float 0.000000e+00, float* %ref.tmp159, align 4
    510   %call160 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp156, float* %ref.tmp157, float* %ref.tmp158, float* %ref.tmp159)
    511   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp155, float* %scale.addr, %class.btVector3* %ref.tmp156)
    512   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %transform, %class.btVector3* %ref.tmp155)
    513   call void @_ZNK11btTransformmlERKS_(%class.btTransform* sret %ref.tmp161, %class.btTransform* %offset, %class.btTransform* %transform)
    514   %m_shapes162 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    515   %arrayidx163 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes162, i32 0, i32 5
    516   %52 = load %class.btCollisionShape*, %class.btCollisionShape** %arrayidx163, align 4
    517   %call164 = call %class.btRigidBody* @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(%class.RagDoll* %this1, float 1.000000e+00, %class.btTransform* %ref.tmp161, %class.btCollisionShape* %52)
    518   %m_bodies165 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    519   %arrayidx166 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies165, i32 0, i32 5
    520   store %class.btRigidBody* %call164, %class.btRigidBody** %arrayidx166, align 4
    521   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %transform)
    522   store float 0x3FC70A3D80000000, float* %ref.tmp169, align 4
    523   store float 0x3FC99999A0000000, float* %ref.tmp170, align 4
    524   store float 0.000000e+00, float* %ref.tmp171, align 4
    525   %call172 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp168, float* %ref.tmp169, float* %ref.tmp170, float* %ref.tmp171)
    526   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp167, float* %scale.addr, %class.btVector3* %ref.tmp168)
    527   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %transform, %class.btVector3* %ref.tmp167)
    528   call void @_ZNK11btTransformmlERKS_(%class.btTransform* sret %ref.tmp173, %class.btTransform* %offset, %class.btTransform* %transform)
    529   %m_shapes174 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    530   %arrayidx175 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes174, i32 0, i32 6
    531   %53 = load %class.btCollisionShape*, %class.btCollisionShape** %arrayidx175, align 4
    532   %call176 = call %class.btRigidBody* @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(%class.RagDoll* %this1, float 1.000000e+00, %class.btTransform* %ref.tmp173, %class.btCollisionShape* %53)
    533   %m_bodies177 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    534   %arrayidx178 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies177, i32 0, i32 6
    535   store %class.btRigidBody* %call176, %class.btRigidBody** %arrayidx178, align 4
    536   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %transform)
    537   store float 0xBFD6666660000000, float* %ref.tmp181, align 4
    538   store float 0x3FF7333340000000, float* %ref.tmp182, align 4
    539   store float 0.000000e+00, float* %ref.tmp183, align 4
    540   %call184 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp180, float* %ref.tmp181, float* %ref.tmp182, float* %ref.tmp183)
    541   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp179, float* %scale.addr, %class.btVector3* %ref.tmp180)
    542   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %transform, %class.btVector3* %ref.tmp179)
    543   %call185 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %transform)
    544   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call185, float 0.000000e+00, float 0.000000e+00, float 0x3FF921FB60000000)
    545   call void @_ZNK11btTransformmlERKS_(%class.btTransform* sret %ref.tmp186, %class.btTransform* %offset, %class.btTransform* %transform)
    546   %m_shapes187 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    547   %arrayidx188 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes187, i32 0, i32 7
    548   %54 = load %class.btCollisionShape*, %class.btCollisionShape** %arrayidx188, align 4
    549   %call189 = call %class.btRigidBody* @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(%class.RagDoll* %this1, float 1.000000e+00, %class.btTransform* %ref.tmp186, %class.btCollisionShape* %54)
    550   %m_bodies190 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    551   %arrayidx191 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies190, i32 0, i32 7
    552   store %class.btRigidBody* %call189, %class.btRigidBody** %arrayidx191, align 4
    553   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %transform)
    554   store float 0xBFE6666660000000, float* %ref.tmp194, align 4
    555   store float 0x3FF7333340000000, float* %ref.tmp195, align 4
    556   store float 0.000000e+00, float* %ref.tmp196, align 4
    557   %call197 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp193, float* %ref.tmp194, float* %ref.tmp195, float* %ref.tmp196)
    558   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp192, float* %scale.addr, %class.btVector3* %ref.tmp193)
    559   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %transform, %class.btVector3* %ref.tmp192)
    560   %call198 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %transform)
    561   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call198, float 0.000000e+00, float 0.000000e+00, float 0x3FF921FB60000000)
    562   call void @_ZNK11btTransformmlERKS_(%class.btTransform* sret %ref.tmp199, %class.btTransform* %offset, %class.btTransform* %transform)
    563   %m_shapes200 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    564   %arrayidx201 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes200, i32 0, i32 8
    565   %55 = load %class.btCollisionShape*, %class.btCollisionShape** %arrayidx201, align 4
    566   %call202 = call %class.btRigidBody* @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(%class.RagDoll* %this1, float 1.000000e+00, %class.btTransform* %ref.tmp199, %class.btCollisionShape* %55)
    567   %m_bodies203 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    568   %arrayidx204 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies203, i32 0, i32 8
    569   store %class.btRigidBody* %call202, %class.btRigidBody** %arrayidx204, align 4
    570   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %transform)
    571   store float 0x3FD6666660000000, float* %ref.tmp207, align 4
    572   store float 0x3FF7333340000000, float* %ref.tmp208, align 4
    573   store float 0.000000e+00, float* %ref.tmp209, align 4
    574   %call210 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp206, float* %ref.tmp207, float* %ref.tmp208, float* %ref.tmp209)
    575   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp205, float* %scale.addr, %class.btVector3* %ref.tmp206)
    576   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %transform, %class.btVector3* %ref.tmp205)
    577   %call211 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %transform)
    578   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call211, float 0.000000e+00, float 0.000000e+00, float 0xBFF921FB60000000)
    579   call void @_ZNK11btTransformmlERKS_(%class.btTransform* sret %ref.tmp212, %class.btTransform* %offset, %class.btTransform* %transform)
    580   %m_shapes213 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    581   %arrayidx214 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes213, i32 0, i32 9
    582   %56 = load %class.btCollisionShape*, %class.btCollisionShape** %arrayidx214, align 4
    583   %call215 = call %class.btRigidBody* @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(%class.RagDoll* %this1, float 1.000000e+00, %class.btTransform* %ref.tmp212, %class.btCollisionShape* %56)
    584   %m_bodies216 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    585   %arrayidx217 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies216, i32 0, i32 9
    586   store %class.btRigidBody* %call215, %class.btRigidBody** %arrayidx217, align 4
    587   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %transform)
    588   store float 0x3FE6666660000000, float* %ref.tmp220, align 4
    589   store float 0x3FF7333340000000, float* %ref.tmp221, align 4
    590   store float 0.000000e+00, float* %ref.tmp222, align 4
    591   %call223 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp219, float* %ref.tmp220, float* %ref.tmp221, float* %ref.tmp222)
    592   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp218, float* %scale.addr, %class.btVector3* %ref.tmp219)
    593   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %transform, %class.btVector3* %ref.tmp218)
    594   %call224 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %transform)
    595   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call224, float 0.000000e+00, float 0.000000e+00, float 0xBFF921FB60000000)
    596   call void @_ZNK11btTransformmlERKS_(%class.btTransform* sret %ref.tmp225, %class.btTransform* %offset, %class.btTransform* %transform)
    597   %m_shapes226 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 2
    598   %arrayidx227 = getelementptr inbounds [11 x %class.btCollisionShape*], [11 x %class.btCollisionShape*]* %m_shapes226, i32 0, i32 10
    599   %57 = load %class.btCollisionShape*, %class.btCollisionShape** %arrayidx227, align 4
    600   %call228 = call %class.btRigidBody* @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(%class.RagDoll* %this1, float 1.000000e+00, %class.btTransform* %ref.tmp225, %class.btCollisionShape* %57)
    601   %m_bodies229 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    602   %arrayidx230 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies229, i32 0, i32 10
    603   store %class.btRigidBody* %call228, %class.btRigidBody** %arrayidx230, align 4
    604   store i32 0, i32* %i, align 4
    605   br label %for.cond
    606 
    607 for.cond:                                         ; preds = %for.inc, %invoke.cont90
    608   %58 = load i32, i32* %i, align 4
    609   %cmp = icmp slt i32 %58, 11
    610   br i1 %cmp, label %for.body, label %for.end
    611 
    612 for.body:                                         ; preds = %for.cond
    613   %59 = load i32, i32* %i, align 4
    614   %m_bodies231 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    615   %arrayidx232 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies231, i32 0, i32 %59
    616   %60 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx232, align 4
    617   call void @_ZN11btRigidBody10setDampingEff(%class.btRigidBody* %60, float 0x3FA99999A0000000, float 0x3FEB333340000000)
    618   %61 = load i32, i32* %i, align 4
    619   %m_bodies233 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    620   %arrayidx234 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies233, i32 0, i32 %61
    621   %62 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx234, align 4
    622   %63 = bitcast %class.btRigidBody* %62 to %class.btCollisionObject*
    623   call void @_ZN17btCollisionObject19setDeactivationTimeEf(%class.btCollisionObject* %63, float 0x3FE99999A0000000)
    624   %64 = load i32, i32* %i, align 4
    625   %m_bodies235 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    626   %arrayidx236 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies235, i32 0, i32 %64
    627   %65 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx236, align 4
    628   call void @_ZN11btRigidBody21setSleepingThresholdsEff(%class.btRigidBody* %65, float 0x3FF99999A0000000, float 2.500000e+00)
    629   br label %for.inc
    630 
    631 for.inc:                                          ; preds = %for.body
    632   %66 = load i32, i32* %i, align 4
    633   %inc = add nsw i32 %66, 1
    634   store i32 %inc, i32* %i, align 4
    635   br label %for.cond
    636 
    637 lpad:                                             ; preds = %entry
    638   %67 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
    639           cleanup
    640   %68 = extractvalue { i8*, i32 } %67, 0
    641   store i8* %68, i8** %exn.slot
    642   %69 = extractvalue { i8*, i32 } %67, 1
    643   store i32 %69, i32* %ehselector.slot
    644   invoke void @_ZN13btConvexShapedlEPv(i8* %call)
    645           to label %invoke.cont4 unwind label %terminate.lpad
    646 
    647 invoke.cont4:                                     ; preds = %lpad
    648   br label %eh.resume
    649 
    650 lpad8:                                            ; preds = %invoke.cont
    651   %70 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
    652           cleanup
    653   %71 = extractvalue { i8*, i32 } %70, 0
    654   store i8* %71, i8** %exn.slot
    655   %72 = extractvalue { i8*, i32 } %70, 1
    656   store i32 %72, i32* %ehselector.slot
    657   invoke void @_ZN13btConvexShapedlEPv(i8* %call5)
    658           to label %invoke.cont11 unwind label %terminate.lpad
    659 
    660 invoke.cont11:                                    ; preds = %lpad8
    661   br label %eh.resume
    662 
    663 lpad17:                                           ; preds = %invoke.cont9
    664   %73 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
    665           cleanup
    666   %74 = extractvalue { i8*, i32 } %73, 0
    667   store i8* %74, i8** %exn.slot
    668   %75 = extractvalue { i8*, i32 } %73, 1
    669   store i32 %75, i32* %ehselector.slot
    670   invoke void @_ZN13btConvexShapedlEPv(i8* %call14)
    671           to label %invoke.cont20 unwind label %terminate.lpad
    672 
    673 invoke.cont20:                                    ; preds = %lpad17
    674   br label %eh.resume
    675 
    676 lpad26:                                           ; preds = %invoke.cont18
    677   %76 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
    678           cleanup
    679   %77 = extractvalue { i8*, i32 } %76, 0
    680   store i8* %77, i8** %exn.slot
    681   %78 = extractvalue { i8*, i32 } %76, 1
    682   store i32 %78, i32* %ehselector.slot
    683   invoke void @_ZN13btConvexShapedlEPv(i8* %call23)
    684           to label %invoke.cont29 unwind label %terminate.lpad
    685 
    686 invoke.cont29:                                    ; preds = %lpad26
    687   br label %eh.resume
    688 
    689 lpad35:                                           ; preds = %invoke.cont27
    690   %79 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
    691           cleanup
    692   %80 = extractvalue { i8*, i32 } %79, 0
    693   store i8* %80, i8** %exn.slot
    694   %81 = extractvalue { i8*, i32 } %79, 1
    695   store i32 %81, i32* %ehselector.slot
    696   invoke void @_ZN13btConvexShapedlEPv(i8* %call32)
    697           to label %invoke.cont38 unwind label %terminate.lpad
    698 
    699 invoke.cont38:                                    ; preds = %lpad35
    700   br label %eh.resume
    701 
    702 lpad44:                                           ; preds = %invoke.cont36
    703   %82 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
    704           cleanup
    705   %83 = extractvalue { i8*, i32 } %82, 0
    706   store i8* %83, i8** %exn.slot
    707   %84 = extractvalue { i8*, i32 } %82, 1
    708   store i32 %84, i32* %ehselector.slot
    709   invoke void @_ZN13btConvexShapedlEPv(i8* %call41)
    710           to label %invoke.cont47 unwind label %terminate.lpad
    711 
    712 invoke.cont47:                                    ; preds = %lpad44
    713   br label %eh.resume
    714 
    715 lpad53:                                           ; preds = %invoke.cont45
    716   %85 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
    717           cleanup
    718   %86 = extractvalue { i8*, i32 } %85, 0
    719   store i8* %86, i8** %exn.slot
    720   %87 = extractvalue { i8*, i32 } %85, 1
    721   store i32 %87, i32* %ehselector.slot
    722   invoke void @_ZN13btConvexShapedlEPv(i8* %call50)
    723           to label %invoke.cont56 unwind label %terminate.lpad
    724 
    725 invoke.cont56:                                    ; preds = %lpad53
    726   br label %eh.resume
    727 
    728 lpad62:                                           ; preds = %invoke.cont54
    729   %88 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
    730           cleanup
    731   %89 = extractvalue { i8*, i32 } %88, 0
    732   store i8* %89, i8** %exn.slot
    733   %90 = extractvalue { i8*, i32 } %88, 1
    734   store i32 %90, i32* %ehselector.slot
    735   invoke void @_ZN13btConvexShapedlEPv(i8* %call59)
    736           to label %invoke.cont65 unwind label %terminate.lpad
    737 
    738 invoke.cont65:                                    ; preds = %lpad62
    739   br label %eh.resume
    740 
    741 lpad71:                                           ; preds = %invoke.cont63
    742   %91 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
    743           cleanup
    744   %92 = extractvalue { i8*, i32 } %91, 0
    745   store i8* %92, i8** %exn.slot
    746   %93 = extractvalue { i8*, i32 } %91, 1
    747   store i32 %93, i32* %ehselector.slot
    748   invoke void @_ZN13btConvexShapedlEPv(i8* %call68)
    749           to label %invoke.cont74 unwind label %terminate.lpad
    750 
    751 invoke.cont74:                                    ; preds = %lpad71
    752   br label %eh.resume
    753 
    754 lpad80:                                           ; preds = %invoke.cont72
    755   %94 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
    756           cleanup
    757   %95 = extractvalue { i8*, i32 } %94, 0
    758   store i8* %95, i8** %exn.slot
    759   %96 = extractvalue { i8*, i32 } %94, 1
    760   store i32 %96, i32* %ehselector.slot
    761   invoke void @_ZN13btConvexShapedlEPv(i8* %call77)
    762           to label %invoke.cont83 unwind label %terminate.lpad
    763 
    764 invoke.cont83:                                    ; preds = %lpad80
    765   br label %eh.resume
    766 
    767 lpad89:                                           ; preds = %invoke.cont81
    768   %97 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
    769           cleanup
    770   %98 = extractvalue { i8*, i32 } %97, 0
    771   store i8* %98, i8** %exn.slot
    772   %99 = extractvalue { i8*, i32 } %97, 1
    773   store i32 %99, i32* %ehselector.slot
    774   invoke void @_ZN13btConvexShapedlEPv(i8* %call86)
    775           to label %invoke.cont92 unwind label %terminate.lpad
    776 
    777 invoke.cont92:                                    ; preds = %lpad89
    778   br label %eh.resume
    779 
    780 for.end:                                          ; preds = %for.cond
    781   %call237 = call %class.btTransform* @_ZN11btTransformC1Ev(%class.btTransform* %localA)
    782   %call238 = call %class.btTransform* @_ZN11btTransformC1Ev(%class.btTransform* %localB)
    783   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localA)
    784   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localB)
    785   %call239 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localA)
    786   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call239, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
    787   store float 0.000000e+00, float* %ref.tmp242, align 4
    788   store float 0x3FC3333340000000, float* %ref.tmp243, align 4
    789   store float 0.000000e+00, float* %ref.tmp244, align 4
    790   %call245 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp241, float* %ref.tmp242, float* %ref.tmp243, float* %ref.tmp244)
    791   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp240, float* %scale.addr, %class.btVector3* %ref.tmp241)
    792   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localA, %class.btVector3* %ref.tmp240)
    793   %call246 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localB)
    794   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call246, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
    795   store float 0.000000e+00, float* %ref.tmp249, align 4
    796   store float 0xBFC3333340000000, float* %ref.tmp250, align 4
    797   store float 0.000000e+00, float* %ref.tmp251, align 4
    798   %call252 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp248, float* %ref.tmp249, float* %ref.tmp250, float* %ref.tmp251)
    799   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp247, float* %scale.addr, %class.btVector3* %ref.tmp248)
    800   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localB, %class.btVector3* %ref.tmp247)
    801   %call253 = call noalias i8* @_Znwm(i32 780)
    802   %100 = bitcast i8* %call253 to %class.btHingeConstraint*
    803   %m_bodies254 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    804   %arrayidx255 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies254, i32 0, i32 0
    805   %101 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx255, align 4
    806   %m_bodies256 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    807   %arrayidx257 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies256, i32 0, i32 1
    808   %102 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx257, align 4
    809   %call260 = invoke %class.btHingeConstraint* @_ZN17btHingeConstraintC1ER11btRigidBodyS1_RK11btTransformS4_b(%class.btHingeConstraint* %100, %class.btRigidBody* %101, %class.btRigidBody* %102, %class.btTransform* %localA, %class.btTransform* %localB, i1 zeroext false)
    810           to label %invoke.cont259 unwind label %lpad258
    811 
    812 invoke.cont259:                                   ; preds = %for.end
    813   store %class.btHingeConstraint* %100, %class.btHingeConstraint** %hingeC, align 4
    814   %103 = load %class.btHingeConstraint*, %class.btHingeConstraint** %hingeC, align 4
    815   call void @_ZN17btHingeConstraint8setLimitEfffff(%class.btHingeConstraint* %103, float 0xBFE921FB60000000, float 0x3FF921FB60000000, float 0x3FECCCCCC0000000, float 0x3FD3333340000000, float 1.000000e+00)
    816   %104 = load %class.btHingeConstraint*, %class.btHingeConstraint** %hingeC, align 4
    817   %105 = bitcast %class.btHingeConstraint* %104 to %class.btTypedConstraint*
    818   %m_joints = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
    819   %arrayidx261 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints, i32 0, i32 0
    820   store %class.btTypedConstraint* %105, %class.btTypedConstraint** %arrayidx261, align 4
    821   %m_ownerWorld262 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 1
    822   %106 = load %class.btDynamicsWorld*, %class.btDynamicsWorld** %m_ownerWorld262, align 4
    823   %107 = bitcast %class.btDynamicsWorld* %106 to void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)***
    824   %vtable = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)**, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*** %107
    825   %vfn = getelementptr inbounds void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vtable, i64 10
    826   %108 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vfn
    827   %m_joints263 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
    828   %arrayidx264 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints263, i32 0, i32 0
    829   %109 = load %class.btTypedConstraint*, %class.btTypedConstraint** %arrayidx264, align 4
    830   call void %108(%class.btDynamicsWorld* %106, %class.btTypedConstraint* %109, i1 zeroext true)
    831   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localA)
    832   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localB)
    833   %call265 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localA)
    834   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call265, float 0.000000e+00, float 0.000000e+00, float 0x3FF921FB60000000)
    835   store float 0.000000e+00, float* %ref.tmp268, align 4
    836   store float 0x3FD3333340000000, float* %ref.tmp269, align 4
    837   store float 0.000000e+00, float* %ref.tmp270, align 4
    838   %call271 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp267, float* %ref.tmp268, float* %ref.tmp269, float* %ref.tmp270)
    839   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp266, float* %scale.addr, %class.btVector3* %ref.tmp267)
    840   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localA, %class.btVector3* %ref.tmp266)
    841   %call272 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localB)
    842   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call272, float 0.000000e+00, float 0.000000e+00, float 0x3FF921FB60000000)
    843   store float 0.000000e+00, float* %ref.tmp275, align 4
    844   store float 0xBFC1EB8520000000, float* %ref.tmp276, align 4
    845   store float 0.000000e+00, float* %ref.tmp277, align 4
    846   %call278 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp274, float* %ref.tmp275, float* %ref.tmp276, float* %ref.tmp277)
    847   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp273, float* %scale.addr, %class.btVector3* %ref.tmp274)
    848   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localB, %class.btVector3* %ref.tmp273)
    849   %call279 = call noalias i8* @_Znwm(i32 628)
    850   %110 = bitcast i8* %call279 to %class.btConeTwistConstraint*
    851   %m_bodies280 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    852   %arrayidx281 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies280, i32 0, i32 1
    853   %111 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx281, align 4
    854   %m_bodies282 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    855   %arrayidx283 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies282, i32 0, i32 2
    856   %112 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx283, align 4
    857   %call286 = invoke %class.btConeTwistConstraint* @_ZN21btConeTwistConstraintC1ER11btRigidBodyS1_RK11btTransformS4_(%class.btConeTwistConstraint* %110, %class.btRigidBody* %111, %class.btRigidBody* %112, %class.btTransform* %localA, %class.btTransform* %localB)
    858           to label %invoke.cont285 unwind label %lpad284
    859 
    860 invoke.cont285:                                   ; preds = %invoke.cont259
    861   store %class.btConeTwistConstraint* %110, %class.btConeTwistConstraint** %coneC, align 4
    862   %113 = load %class.btConeTwistConstraint*, %class.btConeTwistConstraint** %coneC, align 4
    863   call void @_ZN21btConeTwistConstraint8setLimitEffffff(%class.btConeTwistConstraint* %113, float 0x3FE921FB60000000, float 0x3FE921FB60000000, float 0x3FF921FB60000000, float 1.000000e+00, float 0x3FD3333340000000, float 1.000000e+00)
    864   %114 = load %class.btConeTwistConstraint*, %class.btConeTwistConstraint** %coneC, align 4
    865   %115 = bitcast %class.btConeTwistConstraint* %114 to %class.btTypedConstraint*
    866   %m_joints287 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
    867   %arrayidx288 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints287, i32 0, i32 1
    868   store %class.btTypedConstraint* %115, %class.btTypedConstraint** %arrayidx288, align 4
    869   %m_ownerWorld289 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 1
    870   %116 = load %class.btDynamicsWorld*, %class.btDynamicsWorld** %m_ownerWorld289, align 4
    871   %117 = bitcast %class.btDynamicsWorld* %116 to void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)***
    872   %vtable290 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)**, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*** %117
    873   %vfn291 = getelementptr inbounds void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vtable290, i64 10
    874   %118 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vfn291
    875   %m_joints292 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
    876   %arrayidx293 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints292, i32 0, i32 1
    877   %119 = load %class.btTypedConstraint*, %class.btTypedConstraint** %arrayidx293, align 4
    878   call void %118(%class.btDynamicsWorld* %116, %class.btTypedConstraint* %119, i1 zeroext true)
    879   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localA)
    880   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localB)
    881   %call294 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localA)
    882   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call294, float 0.000000e+00, float 0.000000e+00, float 0xC00F6A7A20000000)
    883   store float 0xBFC70A3D80000000, float* %ref.tmp297, align 4
    884   store float 0xBFB99999A0000000, float* %ref.tmp298, align 4
    885   store float 0.000000e+00, float* %ref.tmp299, align 4
    886   %call300 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp296, float* %ref.tmp297, float* %ref.tmp298, float* %ref.tmp299)
    887   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp295, float* %scale.addr, %class.btVector3* %ref.tmp296)
    888   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localA, %class.btVector3* %ref.tmp295)
    889   %call301 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localB)
    890   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call301, float 0.000000e+00, float 0.000000e+00, float 0xC00F6A7A20000000)
    891   store float 0.000000e+00, float* %ref.tmp304, align 4
    892   store float 0x3FCCCCCCC0000000, float* %ref.tmp305, align 4
    893   store float 0.000000e+00, float* %ref.tmp306, align 4
    894   %call307 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp303, float* %ref.tmp304, float* %ref.tmp305, float* %ref.tmp306)
    895   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp302, float* %scale.addr, %class.btVector3* %ref.tmp303)
    896   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localB, %class.btVector3* %ref.tmp302)
    897   %call308 = call noalias i8* @_Znwm(i32 628)
    898   %120 = bitcast i8* %call308 to %class.btConeTwistConstraint*
    899   %m_bodies309 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    900   %arrayidx310 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies309, i32 0, i32 0
    901   %121 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx310, align 4
    902   %m_bodies311 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    903   %arrayidx312 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies311, i32 0, i32 3
    904   %122 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx312, align 4
    905   %call315 = invoke %class.btConeTwistConstraint* @_ZN21btConeTwistConstraintC1ER11btRigidBodyS1_RK11btTransformS4_(%class.btConeTwistConstraint* %120, %class.btRigidBody* %121, %class.btRigidBody* %122, %class.btTransform* %localA, %class.btTransform* %localB)
    906           to label %invoke.cont314 unwind label %lpad313
    907 
    908 invoke.cont314:                                   ; preds = %invoke.cont285
    909   store %class.btConeTwistConstraint* %120, %class.btConeTwistConstraint** %coneC, align 4
    910   %123 = load %class.btConeTwistConstraint*, %class.btConeTwistConstraint** %coneC, align 4
    911   call void @_ZN21btConeTwistConstraint8setLimitEffffff(%class.btConeTwistConstraint* %123, float 0x3FE921FB60000000, float 0x3FE921FB60000000, float 0.000000e+00, float 1.000000e+00, float 0x3FD3333340000000, float 1.000000e+00)
    912   %124 = load %class.btConeTwistConstraint*, %class.btConeTwistConstraint** %coneC, align 4
    913   %125 = bitcast %class.btConeTwistConstraint* %124 to %class.btTypedConstraint*
    914   %m_joints316 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
    915   %arrayidx317 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints316, i32 0, i32 2
    916   store %class.btTypedConstraint* %125, %class.btTypedConstraint** %arrayidx317, align 4
    917   %m_ownerWorld318 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 1
    918   %126 = load %class.btDynamicsWorld*, %class.btDynamicsWorld** %m_ownerWorld318, align 4
    919   %127 = bitcast %class.btDynamicsWorld* %126 to void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)***
    920   %vtable319 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)**, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*** %127
    921   %vfn320 = getelementptr inbounds void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vtable319, i64 10
    922   %128 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vfn320
    923   %m_joints321 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
    924   %arrayidx322 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints321, i32 0, i32 2
    925   %129 = load %class.btTypedConstraint*, %class.btTypedConstraint** %arrayidx322, align 4
    926   call void %128(%class.btDynamicsWorld* %126, %class.btTypedConstraint* %129, i1 zeroext true)
    927   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localA)
    928   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localB)
    929   %call323 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localA)
    930   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call323, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
    931   store float 0.000000e+00, float* %ref.tmp326, align 4
    932   store float 0xBFCCCCCCC0000000, float* %ref.tmp327, align 4
    933   store float 0.000000e+00, float* %ref.tmp328, align 4
    934   %call329 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp325, float* %ref.tmp326, float* %ref.tmp327, float* %ref.tmp328)
    935   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp324, float* %scale.addr, %class.btVector3* %ref.tmp325)
    936   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localA, %class.btVector3* %ref.tmp324)
    937   %call330 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localB)
    938   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call330, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
    939   store float 0.000000e+00, float* %ref.tmp333, align 4
    940   store float 0x3FC7AE1480000000, float* %ref.tmp334, align 4
    941   store float 0.000000e+00, float* %ref.tmp335, align 4
    942   %call336 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp332, float* %ref.tmp333, float* %ref.tmp334, float* %ref.tmp335)
    943   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp331, float* %scale.addr, %class.btVector3* %ref.tmp332)
    944   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localB, %class.btVector3* %ref.tmp331)
    945   %call337 = call noalias i8* @_Znwm(i32 780)
    946   %130 = bitcast i8* %call337 to %class.btHingeConstraint*
    947   %m_bodies338 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    948   %arrayidx339 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies338, i32 0, i32 3
    949   %131 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx339, align 4
    950   %m_bodies340 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    951   %arrayidx341 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies340, i32 0, i32 4
    952   %132 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx341, align 4
    953   %call344 = invoke %class.btHingeConstraint* @_ZN17btHingeConstraintC1ER11btRigidBodyS1_RK11btTransformS4_b(%class.btHingeConstraint* %130, %class.btRigidBody* %131, %class.btRigidBody* %132, %class.btTransform* %localA, %class.btTransform* %localB, i1 zeroext false)
    954           to label %invoke.cont343 unwind label %lpad342
    955 
    956 invoke.cont343:                                   ; preds = %invoke.cont314
    957   store %class.btHingeConstraint* %130, %class.btHingeConstraint** %hingeC, align 4
    958   %133 = load %class.btHingeConstraint*, %class.btHingeConstraint** %hingeC, align 4
    959   call void @_ZN17btHingeConstraint8setLimitEfffff(%class.btHingeConstraint* %133, float 0.000000e+00, float 0x3FF921FB60000000, float 0x3FECCCCCC0000000, float 0x3FD3333340000000, float 1.000000e+00)
    960   %134 = load %class.btHingeConstraint*, %class.btHingeConstraint** %hingeC, align 4
    961   %135 = bitcast %class.btHingeConstraint* %134 to %class.btTypedConstraint*
    962   %m_joints345 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
    963   %arrayidx346 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints345, i32 0, i32 3
    964   store %class.btTypedConstraint* %135, %class.btTypedConstraint** %arrayidx346, align 4
    965   %m_ownerWorld347 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 1
    966   %136 = load %class.btDynamicsWorld*, %class.btDynamicsWorld** %m_ownerWorld347, align 4
    967   %137 = bitcast %class.btDynamicsWorld* %136 to void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)***
    968   %vtable348 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)**, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*** %137
    969   %vfn349 = getelementptr inbounds void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vtable348, i64 10
    970   %138 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vfn349
    971   %m_joints350 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
    972   %arrayidx351 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints350, i32 0, i32 3
    973   %139 = load %class.btTypedConstraint*, %class.btTypedConstraint** %arrayidx351, align 4
    974   call void %138(%class.btDynamicsWorld* %136, %class.btTypedConstraint* %139, i1 zeroext true)
    975   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localA)
    976   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localB)
    977   %call352 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localA)
    978   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call352, float 0.000000e+00, float 0.000000e+00, float 0x3FE921FB60000000)
    979   store float 0x3FC70A3D80000000, float* %ref.tmp355, align 4
    980   store float 0xBFB99999A0000000, float* %ref.tmp356, align 4
    981   store float 0.000000e+00, float* %ref.tmp357, align 4
    982   %call358 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp354, float* %ref.tmp355, float* %ref.tmp356, float* %ref.tmp357)
    983   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp353, float* %scale.addr, %class.btVector3* %ref.tmp354)
    984   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localA, %class.btVector3* %ref.tmp353)
    985   %call359 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localB)
    986   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call359, float 0.000000e+00, float 0.000000e+00, float 0x3FE921FB60000000)
    987   store float 0.000000e+00, float* %ref.tmp362, align 4
    988   store float 0x3FCCCCCCC0000000, float* %ref.tmp363, align 4
    989   store float 0.000000e+00, float* %ref.tmp364, align 4
    990   %call365 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp361, float* %ref.tmp362, float* %ref.tmp363, float* %ref.tmp364)
    991   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp360, float* %scale.addr, %class.btVector3* %ref.tmp361)
    992   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localB, %class.btVector3* %ref.tmp360)
    993   %call366 = call noalias i8* @_Znwm(i32 628)
    994   %140 = bitcast i8* %call366 to %class.btConeTwistConstraint*
    995   %m_bodies367 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    996   %arrayidx368 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies367, i32 0, i32 0
    997   %141 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx368, align 4
    998   %m_bodies369 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
    999   %arrayidx370 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies369, i32 0, i32 5
   1000   %142 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx370, align 4
   1001   %call373 = invoke %class.btConeTwistConstraint* @_ZN21btConeTwistConstraintC1ER11btRigidBodyS1_RK11btTransformS4_(%class.btConeTwistConstraint* %140, %class.btRigidBody* %141, %class.btRigidBody* %142, %class.btTransform* %localA, %class.btTransform* %localB)
   1002           to label %invoke.cont372 unwind label %lpad371
   1003 
   1004 invoke.cont372:                                   ; preds = %invoke.cont343
   1005   store %class.btConeTwistConstraint* %140, %class.btConeTwistConstraint** %coneC, align 4
   1006   %143 = load %class.btConeTwistConstraint*, %class.btConeTwistConstraint** %coneC, align 4
   1007   call void @_ZN21btConeTwistConstraint8setLimitEffffff(%class.btConeTwistConstraint* %143, float 0x3FE921FB60000000, float 0x3FE921FB60000000, float 0.000000e+00, float 1.000000e+00, float 0x3FD3333340000000, float 1.000000e+00)
   1008   %144 = load %class.btConeTwistConstraint*, %class.btConeTwistConstraint** %coneC, align 4
   1009   %145 = bitcast %class.btConeTwistConstraint* %144 to %class.btTypedConstraint*
   1010   %m_joints374 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
   1011   %arrayidx375 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints374, i32 0, i32 4
   1012   store %class.btTypedConstraint* %145, %class.btTypedConstraint** %arrayidx375, align 4
   1013   %m_ownerWorld376 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 1
   1014   %146 = load %class.btDynamicsWorld*, %class.btDynamicsWorld** %m_ownerWorld376, align 4
   1015   %147 = bitcast %class.btDynamicsWorld* %146 to void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)***
   1016   %vtable377 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)**, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*** %147
   1017   %vfn378 = getelementptr inbounds void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vtable377, i64 10
   1018   %148 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vfn378
   1019   %m_joints379 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
   1020   %arrayidx380 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints379, i32 0, i32 4
   1021   %149 = load %class.btTypedConstraint*, %class.btTypedConstraint** %arrayidx380, align 4
   1022   call void %148(%class.btDynamicsWorld* %146, %class.btTypedConstraint* %149, i1 zeroext true)
   1023   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localA)
   1024   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localB)
   1025   %call381 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localA)
   1026   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call381, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
   1027   store float 0.000000e+00, float* %ref.tmp384, align 4
   1028   store float 0xBFCCCCCCC0000000, float* %ref.tmp385, align 4
   1029   store float 0.000000e+00, float* %ref.tmp386, align 4
   1030   %call387 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp383, float* %ref.tmp384, float* %ref.tmp385, float* %ref.tmp386)
   1031   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp382, float* %scale.addr, %class.btVector3* %ref.tmp383)
   1032   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localA, %class.btVector3* %ref.tmp382)
   1033   %call388 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localB)
   1034   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call388, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
   1035   store float 0.000000e+00, float* %ref.tmp391, align 4
   1036   store float 0x3FC7AE1480000000, float* %ref.tmp392, align 4
   1037   store float 0.000000e+00, float* %ref.tmp393, align 4
   1038   %call394 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp390, float* %ref.tmp391, float* %ref.tmp392, float* %ref.tmp393)
   1039   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp389, float* %scale.addr, %class.btVector3* %ref.tmp390)
   1040   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localB, %class.btVector3* %ref.tmp389)
   1041   %call395 = call noalias i8* @_Znwm(i32 780)
   1042   %150 = bitcast i8* %call395 to %class.btHingeConstraint*
   1043   %m_bodies396 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
   1044   %arrayidx397 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies396, i32 0, i32 5
   1045   %151 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx397, align 4
   1046   %m_bodies398 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
   1047   %arrayidx399 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies398, i32 0, i32 6
   1048   %152 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx399, align 4
   1049   %call402 = invoke %class.btHingeConstraint* @_ZN17btHingeConstraintC1ER11btRigidBodyS1_RK11btTransformS4_b(%class.btHingeConstraint* %150, %class.btRigidBody* %151, %class.btRigidBody* %152, %class.btTransform* %localA, %class.btTransform* %localB, i1 zeroext false)
   1050           to label %invoke.cont401 unwind label %lpad400
   1051 
   1052 invoke.cont401:                                   ; preds = %invoke.cont372
   1053   store %class.btHingeConstraint* %150, %class.btHingeConstraint** %hingeC, align 4
   1054   %153 = load %class.btHingeConstraint*, %class.btHingeConstraint** %hingeC, align 4
   1055   call void @_ZN17btHingeConstraint8setLimitEfffff(%class.btHingeConstraint* %153, float 0.000000e+00, float 0x3FF921FB60000000, float 0x3FECCCCCC0000000, float 0x3FD3333340000000, float 1.000000e+00)
   1056   %154 = load %class.btHingeConstraint*, %class.btHingeConstraint** %hingeC, align 4
   1057   %155 = bitcast %class.btHingeConstraint* %154 to %class.btTypedConstraint*
   1058   %m_joints403 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
   1059   %arrayidx404 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints403, i32 0, i32 5
   1060   store %class.btTypedConstraint* %155, %class.btTypedConstraint** %arrayidx404, align 4
   1061   %m_ownerWorld405 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 1
   1062   %156 = load %class.btDynamicsWorld*, %class.btDynamicsWorld** %m_ownerWorld405, align 4
   1063   %157 = bitcast %class.btDynamicsWorld* %156 to void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)***
   1064   %vtable406 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)**, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*** %157
   1065   %vfn407 = getelementptr inbounds void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vtable406, i64 10
   1066   %158 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vfn407
   1067   %m_joints408 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
   1068   %arrayidx409 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints408, i32 0, i32 5
   1069   %159 = load %class.btTypedConstraint*, %class.btTypedConstraint** %arrayidx409, align 4
   1070   call void %158(%class.btDynamicsWorld* %156, %class.btTypedConstraint* %159, i1 zeroext true)
   1071   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localA)
   1072   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localB)
   1073   %call410 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localA)
   1074   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call410, float 0.000000e+00, float 0.000000e+00, float 0x400921FB60000000)
   1075   store float 0xBFC99999A0000000, float* %ref.tmp413, align 4
   1076   store float 0x3FC3333340000000, float* %ref.tmp414, align 4
   1077   store float 0.000000e+00, float* %ref.tmp415, align 4
   1078   %call416 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp412, float* %ref.tmp413, float* %ref.tmp414, float* %ref.tmp415)
   1079   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp411, float* %scale.addr, %class.btVector3* %ref.tmp412)
   1080   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localA, %class.btVector3* %ref.tmp411)
   1081   %call417 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localB)
   1082   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call417, float 0.000000e+00, float 0.000000e+00, float 0x3FF921FB60000000)
   1083   store float 0.000000e+00, float* %ref.tmp420, align 4
   1084   store float 0xBFC70A3D80000000, float* %ref.tmp421, align 4
   1085   store float 0.000000e+00, float* %ref.tmp422, align 4
   1086   %call423 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp419, float* %ref.tmp420, float* %ref.tmp421, float* %ref.tmp422)
   1087   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp418, float* %scale.addr, %class.btVector3* %ref.tmp419)
   1088   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localB, %class.btVector3* %ref.tmp418)
   1089   %call424 = call noalias i8* @_Znwm(i32 628)
   1090   %160 = bitcast i8* %call424 to %class.btConeTwistConstraint*
   1091   %m_bodies425 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
   1092   %arrayidx426 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies425, i32 0, i32 1
   1093   %161 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx426, align 4
   1094   %m_bodies427 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
   1095   %arrayidx428 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies427, i32 0, i32 7
   1096   %162 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx428, align 4
   1097   %call431 = invoke %class.btConeTwistConstraint* @_ZN21btConeTwistConstraintC1ER11btRigidBodyS1_RK11btTransformS4_(%class.btConeTwistConstraint* %160, %class.btRigidBody* %161, %class.btRigidBody* %162, %class.btTransform* %localA, %class.btTransform* %localB)
   1098           to label %invoke.cont430 unwind label %lpad429
   1099 
   1100 invoke.cont430:                                   ; preds = %invoke.cont401
   1101   store %class.btConeTwistConstraint* %160, %class.btConeTwistConstraint** %coneC, align 4
   1102   %163 = load %class.btConeTwistConstraint*, %class.btConeTwistConstraint** %coneC, align 4
   1103   call void @_ZN21btConeTwistConstraint8setLimitEffffff(%class.btConeTwistConstraint* %163, float 0x3FF921FB60000000, float 0x3FF921FB60000000, float 0.000000e+00, float 1.000000e+00, float 0x3FD3333340000000, float 1.000000e+00)
   1104   %164 = load %class.btConeTwistConstraint*, %class.btConeTwistConstraint** %coneC, align 4
   1105   %165 = bitcast %class.btConeTwistConstraint* %164 to %class.btTypedConstraint*
   1106   %m_joints432 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
   1107   %arrayidx433 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints432, i32 0, i32 6
   1108   store %class.btTypedConstraint* %165, %class.btTypedConstraint** %arrayidx433, align 4
   1109   %m_ownerWorld434 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 1
   1110   %166 = load %class.btDynamicsWorld*, %class.btDynamicsWorld** %m_ownerWorld434, align 4
   1111   %167 = bitcast %class.btDynamicsWorld* %166 to void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)***
   1112   %vtable435 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)**, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*** %167
   1113   %vfn436 = getelementptr inbounds void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vtable435, i64 10
   1114   %168 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vfn436
   1115   %m_joints437 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
   1116   %arrayidx438 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints437, i32 0, i32 6
   1117   %169 = load %class.btTypedConstraint*, %class.btTypedConstraint** %arrayidx438, align 4
   1118   call void %168(%class.btDynamicsWorld* %166, %class.btTypedConstraint* %169, i1 zeroext true)
   1119   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localA)
   1120   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localB)
   1121   %call439 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localA)
   1122   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call439, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
   1123   store float 0.000000e+00, float* %ref.tmp442, align 4
   1124   store float 0x3FC70A3D80000000, float* %ref.tmp443, align 4
   1125   store float 0.000000e+00, float* %ref.tmp444, align 4
   1126   %call445 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp441, float* %ref.tmp442, float* %ref.tmp443, float* %ref.tmp444)
   1127   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp440, float* %scale.addr, %class.btVector3* %ref.tmp441)
   1128   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localA, %class.btVector3* %ref.tmp440)
   1129   %call446 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localB)
   1130   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call446, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
   1131   store float 0.000000e+00, float* %ref.tmp449, align 4
   1132   store float 0xBFC1EB8520000000, float* %ref.tmp450, align 4
   1133   store float 0.000000e+00, float* %ref.tmp451, align 4
   1134   %call452 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp448, float* %ref.tmp449, float* %ref.tmp450, float* %ref.tmp451)
   1135   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp447, float* %scale.addr, %class.btVector3* %ref.tmp448)
   1136   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localB, %class.btVector3* %ref.tmp447)
   1137   %call453 = call noalias i8* @_Znwm(i32 780)
   1138   %170 = bitcast i8* %call453 to %class.btHingeConstraint*
   1139   %m_bodies454 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
   1140   %arrayidx455 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies454, i32 0, i32 7
   1141   %171 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx455, align 4
   1142   %m_bodies456 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
   1143   %arrayidx457 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies456, i32 0, i32 8
   1144   %172 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx457, align 4
   1145   %call460 = invoke %class.btHingeConstraint* @_ZN17btHingeConstraintC1ER11btRigidBodyS1_RK11btTransformS4_b(%class.btHingeConstraint* %170, %class.btRigidBody* %171, %class.btRigidBody* %172, %class.btTransform* %localA, %class.btTransform* %localB, i1 zeroext false)
   1146           to label %invoke.cont459 unwind label %lpad458
   1147 
   1148 invoke.cont459:                                   ; preds = %invoke.cont430
   1149   store %class.btHingeConstraint* %170, %class.btHingeConstraint** %hingeC, align 4
   1150   %173 = load %class.btHingeConstraint*, %class.btHingeConstraint** %hingeC, align 4
   1151   call void @_ZN17btHingeConstraint8setLimitEfffff(%class.btHingeConstraint* %173, float 0xBFF921FB60000000, float 0.000000e+00, float 0x3FECCCCCC0000000, float 0x3FD3333340000000, float 1.000000e+00)
   1152   %174 = load %class.btHingeConstraint*, %class.btHingeConstraint** %hingeC, align 4
   1153   %175 = bitcast %class.btHingeConstraint* %174 to %class.btTypedConstraint*
   1154   %m_joints461 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
   1155   %arrayidx462 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints461, i32 0, i32 7
   1156   store %class.btTypedConstraint* %175, %class.btTypedConstraint** %arrayidx462, align 4
   1157   %m_ownerWorld463 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 1
   1158   %176 = load %class.btDynamicsWorld*, %class.btDynamicsWorld** %m_ownerWorld463, align 4
   1159   %177 = bitcast %class.btDynamicsWorld* %176 to void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)***
   1160   %vtable464 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)**, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*** %177
   1161   %vfn465 = getelementptr inbounds void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vtable464, i64 10
   1162   %178 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vfn465
   1163   %m_joints466 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
   1164   %arrayidx467 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints466, i32 0, i32 7
   1165   %179 = load %class.btTypedConstraint*, %class.btTypedConstraint** %arrayidx467, align 4
   1166   call void %178(%class.btDynamicsWorld* %176, %class.btTypedConstraint* %179, i1 zeroext true)
   1167   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localA)
   1168   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localB)
   1169   %call468 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localA)
   1170   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call468, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00)
   1171   store float 0x3FC99999A0000000, float* %ref.tmp471, align 4
   1172   store float 0x3FC3333340000000, float* %ref.tmp472, align 4
   1173   store float 0.000000e+00, float* %ref.tmp473, align 4
   1174   %call474 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp470, float* %ref.tmp471, float* %ref.tmp472, float* %ref.tmp473)
   1175   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp469, float* %scale.addr, %class.btVector3* %ref.tmp470)
   1176   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localA, %class.btVector3* %ref.tmp469)
   1177   %call475 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localB)
   1178   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call475, float 0.000000e+00, float 0.000000e+00, float 0x3FF921FB60000000)
   1179   store float 0.000000e+00, float* %ref.tmp478, align 4
   1180   store float 0xBFC70A3D80000000, float* %ref.tmp479, align 4
   1181   store float 0.000000e+00, float* %ref.tmp480, align 4
   1182   %call481 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp477, float* %ref.tmp478, float* %ref.tmp479, float* %ref.tmp480)
   1183   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp476, float* %scale.addr, %class.btVector3* %ref.tmp477)
   1184   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localB, %class.btVector3* %ref.tmp476)
   1185   %call482 = call noalias i8* @_Znwm(i32 628)
   1186   %180 = bitcast i8* %call482 to %class.btConeTwistConstraint*
   1187   %m_bodies483 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
   1188   %arrayidx484 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies483, i32 0, i32 1
   1189   %181 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx484, align 4
   1190   %m_bodies485 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
   1191   %arrayidx486 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies485, i32 0, i32 9
   1192   %182 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx486, align 4
   1193   %call489 = invoke %class.btConeTwistConstraint* @_ZN21btConeTwistConstraintC1ER11btRigidBodyS1_RK11btTransformS4_(%class.btConeTwistConstraint* %180, %class.btRigidBody* %181, %class.btRigidBody* %182, %class.btTransform* %localA, %class.btTransform* %localB)
   1194           to label %invoke.cont488 unwind label %lpad487
   1195 
   1196 invoke.cont488:                                   ; preds = %invoke.cont459
   1197   store %class.btConeTwistConstraint* %180, %class.btConeTwistConstraint** %coneC, align 4
   1198   %183 = load %class.btConeTwistConstraint*, %class.btConeTwistConstraint** %coneC, align 4
   1199   call void @_ZN21btConeTwistConstraint8setLimitEffffff(%class.btConeTwistConstraint* %183, float 0x3FF921FB60000000, float 0x3FF921FB60000000, float 0.000000e+00, float 1.000000e+00, float 0x3FD3333340000000, float 1.000000e+00)
   1200   %184 = load %class.btConeTwistConstraint*, %class.btConeTwistConstraint** %coneC, align 4
   1201   %185 = bitcast %class.btConeTwistConstraint* %184 to %class.btTypedConstraint*
   1202   %m_joints490 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
   1203   %arrayidx491 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints490, i32 0, i32 8
   1204   store %class.btTypedConstraint* %185, %class.btTypedConstraint** %arrayidx491, align 4
   1205   %m_ownerWorld492 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 1
   1206   %186 = load %class.btDynamicsWorld*, %class.btDynamicsWorld** %m_ownerWorld492, align 4
   1207   %187 = bitcast %class.btDynamicsWorld* %186 to void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)***
   1208   %vtable493 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)**, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*** %187
   1209   %vfn494 = getelementptr inbounds void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vtable493, i64 10
   1210   %188 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vfn494
   1211   %m_joints495 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
   1212   %arrayidx496 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints495, i32 0, i32 8
   1213   %189 = load %class.btTypedConstraint*, %class.btTypedConstraint** %arrayidx496, align 4
   1214   call void %188(%class.btDynamicsWorld* %186, %class.btTypedConstraint* %189, i1 zeroext true)
   1215   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localA)
   1216   call void @_ZN11btTransform11setIdentityEv(%class.btTransform* %localB)
   1217   %call497 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localA)
   1218   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call497, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
   1219   store float 0.000000e+00, float* %ref.tmp500, align 4
   1220   store float 0x3FC70A3D80000000, float* %ref.tmp501, align 4
   1221   store float 0.000000e+00, float* %ref.tmp502, align 4
   1222   %call503 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp499, float* %ref.tmp500, float* %ref.tmp501, float* %ref.tmp502)
   1223   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp498, float* %scale.addr, %class.btVector3* %ref.tmp499)
   1224   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localA, %class.btVector3* %ref.tmp498)
   1225   %call504 = call %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform* %localB)
   1226   call void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3* %call504, float 0.000000e+00, float 0x3FF921FB60000000, float 0.000000e+00)
   1227   store float 0.000000e+00, float* %ref.tmp507, align 4
   1228   store float 0xBFC1EB8520000000, float* %ref.tmp508, align 4
   1229   store float 0.000000e+00, float* %ref.tmp509, align 4
   1230   %call510 = call %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3* %ref.tmp506, float* %ref.tmp507, float* %ref.tmp508, float* %ref.tmp509)
   1231   call void @_ZmlRKfRK9btVector3(%class.btVector3* sret %ref.tmp505, float* %scale.addr, %class.btVector3* %ref.tmp506)
   1232   call void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform* %localB, %class.btVector3* %ref.tmp505)
   1233   %call511 = call noalias i8* @_Znwm(i32 780)
   1234   %190 = bitcast i8* %call511 to %class.btHingeConstraint*
   1235   %m_bodies512 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
   1236   %arrayidx513 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies512, i32 0, i32 9
   1237   %191 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx513, align 4
   1238   %m_bodies514 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 3
   1239   %arrayidx515 = getelementptr inbounds [11 x %class.btRigidBody*], [11 x %class.btRigidBody*]* %m_bodies514, i32 0, i32 10
   1240   %192 = load %class.btRigidBody*, %class.btRigidBody** %arrayidx515, align 4
   1241   %call518 = invoke %class.btHingeConstraint* @_ZN17btHingeConstraintC1ER11btRigidBodyS1_RK11btTransformS4_b(%class.btHingeConstraint* %190, %class.btRigidBody* %191, %class.btRigidBody* %192, %class.btTransform* %localA, %class.btTransform* %localB, i1 zeroext false)
   1242           to label %invoke.cont517 unwind label %lpad516
   1243 
   1244 invoke.cont517:                                   ; preds = %invoke.cont488
   1245   store %class.btHingeConstraint* %190, %class.btHingeConstraint** %hingeC, align 4
   1246   %193 = load %class.btHingeConstraint*, %class.btHingeConstraint** %hingeC, align 4
   1247   call void @_ZN17btHingeConstraint8setLimitEfffff(%class.btHingeConstraint* %193, float 0xBFF921FB60000000, float 0.000000e+00, float 0x3FECCCCCC0000000, float 0x3FD3333340000000, float 1.000000e+00)
   1248   %194 = load %class.btHingeConstraint*, %class.btHingeConstraint** %hingeC, align 4
   1249   %195 = bitcast %class.btHingeConstraint* %194 to %class.btTypedConstraint*
   1250   %m_joints519 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
   1251   %arrayidx520 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints519, i32 0, i32 9
   1252   store %class.btTypedConstraint* %195, %class.btTypedConstraint** %arrayidx520, align 4
   1253   %m_ownerWorld521 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 1
   1254   %196 = load %class.btDynamicsWorld*, %class.btDynamicsWorld** %m_ownerWorld521, align 4
   1255   %197 = bitcast %class.btDynamicsWorld* %196 to void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)***
   1256   %vtable522 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)**, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*** %197
   1257   %vfn523 = getelementptr inbounds void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vtable522, i64 10
   1258   %198 = load void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)*, void (%class.btDynamicsWorld*, %class.btTypedConstraint*, i1)** %vfn523
   1259   %m_joints524 = getelementptr inbounds %class.RagDoll, %class.RagDoll* %this1, i32 0, i32 4
   1260   %arrayidx525 = getelementptr inbounds [10 x %class.btTypedConstraint*], [10 x %class.btTypedConstraint*]* %m_joints524, i32 0, i32 9
   1261   %199 = load %class.btTypedConstraint*, %class.btTypedConstraint** %arrayidx525, align 4
   1262   call void %198(%class.btDynamicsWorld* %196, %class.btTypedConstraint* %199, i1 zeroext true)
   1263   %200 = load %class.RagDoll*, %class.RagDoll** %retval
   1264   ret %class.RagDoll* %200
   1265 
   1266 lpad258:                                          ; preds = %for.end
   1267   %201 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
   1268           cleanup
   1269   %202 = extractvalue { i8*, i32 } %201, 0
   1270   store i8* %202, i8** %exn.slot
   1271   %203 = extractvalue { i8*, i32 } %201, 1
   1272   store i32 %203, i32* %ehselector.slot
   1273   call void @_ZdlPv(i8* %call253) nounwind
   1274   br label %eh.resume
   1275 
   1276 lpad284:                                          ; preds = %invoke.cont259
   1277   %204 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
   1278           cleanup
   1279   %205 = extractvalue { i8*, i32 } %204, 0
   1280   store i8* %205, i8** %exn.slot
   1281   %206 = extractvalue { i8*, i32 } %204, 1
   1282   store i32 %206, i32* %ehselector.slot
   1283   call void @_ZdlPv(i8* %call279) nounwind
   1284   br label %eh.resume
   1285 
   1286 lpad313:                                          ; preds = %invoke.cont285
   1287   %207 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
   1288           cleanup
   1289   %208 = extractvalue { i8*, i32 } %207, 0
   1290   store i8* %208, i8** %exn.slot
   1291   %209 = extractvalue { i8*, i32 } %207, 1
   1292   store i32 %209, i32* %ehselector.slot
   1293   call void @_ZdlPv(i8* %call308) nounwind
   1294   br label %eh.resume
   1295 
   1296 lpad342:                                          ; preds = %invoke.cont314
   1297   %210 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
   1298           cleanup
   1299   %211 = extractvalue { i8*, i32 } %210, 0
   1300   store i8* %211, i8** %exn.slot
   1301   %212 = extractvalue { i8*, i32 } %210, 1
   1302   store i32 %212, i32* %ehselector.slot
   1303   call void @_ZdlPv(i8* %call337) nounwind
   1304   br label %eh.resume
   1305 
   1306 lpad371:                                          ; preds = %invoke.cont343
   1307   %213 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
   1308           cleanup
   1309   %214 = extractvalue { i8*, i32 } %213, 0
   1310   store i8* %214, i8** %exn.slot
   1311   %215 = extractvalue { i8*, i32 } %213, 1
   1312   store i32 %215, i32* %ehselector.slot
   1313   call void @_ZdlPv(i8* %call366) nounwind
   1314   br label %eh.resume
   1315 
   1316 lpad400:                                          ; preds = %invoke.cont372
   1317   %216 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
   1318           cleanup
   1319   %217 = extractvalue { i8*, i32 } %216, 0
   1320   store i8* %217, i8** %exn.slot
   1321   %218 = extractvalue { i8*, i32 } %216, 1
   1322   store i32 %218, i32* %ehselector.slot
   1323   call void @_ZdlPv(i8* %call395) nounwind
   1324   br label %eh.resume
   1325 
   1326 lpad429:                                          ; preds = %invoke.cont401
   1327   %219 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
   1328           cleanup
   1329   %220 = extractvalue { i8*, i32 } %219, 0
   1330   store i8* %220, i8** %exn.slot
   1331   %221 = extractvalue { i8*, i32 } %219, 1
   1332   store i32 %221, i32* %ehselector.slot
   1333   call void @_ZdlPv(i8* %call424) nounwind
   1334   br label %eh.resume
   1335 
   1336 lpad458:                                          ; preds = %invoke.cont430
   1337   %222 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
   1338           cleanup
   1339   %223 = extractvalue { i8*, i32 } %222, 0
   1340   store i8* %223, i8** %exn.slot
   1341   %224 = extractvalue { i8*, i32 } %222, 1
   1342   store i32 %224, i32* %ehselector.slot
   1343   call void @_ZdlPv(i8* %call453) nounwind
   1344   br label %eh.resume
   1345 
   1346 lpad487:                                          ; preds = %invoke.cont459
   1347   %225 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
   1348           cleanup
   1349   %226 = extractvalue { i8*, i32 } %225, 0
   1350   store i8* %226, i8** %exn.slot
   1351   %227 = extractvalue { i8*, i32 } %225, 1
   1352   store i32 %227, i32* %ehselector.slot
   1353   call void @_ZdlPv(i8* %call482) nounwind
   1354   br label %eh.resume
   1355 
   1356 lpad516:                                          ; preds = %invoke.cont488
   1357   %228 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
   1358           cleanup
   1359   %229 = extractvalue { i8*, i32 } %228, 0
   1360   store i8* %229, i8** %exn.slot
   1361   %230 = extractvalue { i8*, i32 } %228, 1
   1362   store i32 %230, i32* %ehselector.slot
   1363   call void @_ZdlPv(i8* %call511) nounwind
   1364   br label %eh.resume
   1365 
   1366 eh.resume:                                        ; preds = %lpad516, %lpad487, %lpad458, %lpad429, %lpad400, %lpad371, %lpad342, %lpad313, %lpad284, %lpad258, %invoke.cont92, %invoke.cont83, %invoke.cont74, %invoke.cont65, %invoke.cont56, %invoke.cont47, %invoke.cont38, %invoke.cont29, %invoke.cont20, %invoke.cont11, %invoke.cont4
   1367   %exn = load i8*, i8** %exn.slot
   1368   %sel = load i32, i32* %ehselector.slot
   1369   %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
   1370   %lpad.val526 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
   1371   resume { i8*, i32 } %lpad.val526
   1372 
   1373 terminate.lpad:                                   ; preds = %lpad89, %lpad80, %lpad71, %lpad62, %lpad53, %lpad44, %lpad35, %lpad26, %lpad17, %lpad8, %lpad
   1374   %231 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)
   1375           catch i8* null
   1376   call void @_ZSt9terminatev() noreturn nounwind
   1377   unreachable
   1378 }
   1379 
   1380 declare void @_ZmlRKfRK9btVector3(%class.btVector3* noalias sret, float*, %class.btVector3*) inlinehint ssp
   1381 
   1382 declare %class.btRigidBody* @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(%class.RagDoll*, float, %class.btTransform*, %class.btCollisionShape*) ssp align 2
   1383 
   1384 declare void @_ZNK11btTransformmlERKS_(%class.btTransform* noalias sret, %class.btTransform*, %class.btTransform*) inlinehint ssp align 2
   1385 
   1386 declare void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3*, float, float, float) ssp align 2
   1387 
   1388 declare void @_ZN11btRigidBody10setDampingEff(%class.btRigidBody*, float, float)
   1389 
   1390 declare void @_ZN17btCollisionObject19setDeactivationTimeEf(%class.btCollisionObject*, float) nounwind ssp align 2
   1391 
   1392 declare void @_ZN11btRigidBody21setSleepingThresholdsEff(%class.btRigidBody*, float, float) nounwind ssp align 2
   1393 
   1394 declare %class.btHingeConstraint* @_ZN17btHingeConstraintC1ER11btRigidBodyS1_RK11btTransformS4_b(%class.btHingeConstraint*, %class.btRigidBody*, %class.btRigidBody*, %class.btTransform*, %class.btTransform*, i1 zeroext)
   1395 
   1396 declare void @_ZN17btHingeConstraint8setLimitEfffff(%class.btHingeConstraint*, float, float, float, float, float) ssp align 2
   1397 
   1398 declare %class.btConeTwistConstraint* @_ZN21btConeTwistConstraintC1ER11btRigidBodyS1_RK11btTransformS4_(%class.btConeTwistConstraint*, %class.btRigidBody*, %class.btRigidBody*, %class.btTransform*, %class.btTransform*)
   1399 
   1400 declare void @_ZN21btConeTwistConstraint8setLimitEffffff(%class.btConeTwistConstraint*, float, float, float, float, float, float) nounwind ssp align 2
   1401