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
5target 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"
6target 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
55declare noalias i8* @_Znwm(i32)
56
57declare i32 @__gxx_personality_sj0(...)
58
59declare void @_ZdlPv(i8*) nounwind
60
61declare %class.btVector3* @_ZN9btVector3C1ERKfS1_S1_(%class.btVector3*, float*, float*, float*) unnamed_addr inlinehint ssp align 2
62
63declare void @_ZSt9terminatev()
64
65declare %class.btTransform* @_ZN11btTransformC1Ev(%class.btTransform*) unnamed_addr ssp align 2
66
67declare void @_ZN11btTransform11setIdentityEv(%class.btTransform*) ssp align 2
68
69declare void @_ZN11btTransform9setOriginERK9btVector3(%class.btTransform*, %class.btVector3*) nounwind inlinehint ssp align 2
70
71declare i8* @_ZN13btConvexShapenwEm(i32) inlinehint ssp align 2
72
73declare void @_ZN13btConvexShapedlEPv(i8*) inlinehint ssp align 2
74
75declare %class.btCapsuleShape* @_ZN14btCapsuleShapeC1Eff(%class.btCapsuleShape*, float, float)
76
77declare %class.btMatrix3x3* @_ZN11btTransform8getBasisEv(%class.btTransform*) nounwind inlinehint ssp align 2
78
79define %class.RagDoll* @_ZN7RagDollC2EP15btDynamicsWorldRK9btVector3f(%class.RagDoll* %this, %class.btDynamicsWorld* %ownerWorld, %class.btVector3* %positionOffset, float %scale) unnamed_addr ssp align 2 {
80entry:
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
281invoke.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
295invoke.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
309invoke.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
323invoke.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
337invoke.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
351invoke.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
365invoke.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
379invoke.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
393invoke.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
407invoke.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
421invoke.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
607for.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
612for.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
631for.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
637lpad:                                             ; 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
647invoke.cont4:                                     ; preds = %lpad
648  br label %eh.resume
649
650lpad8:                                            ; 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
660invoke.cont11:                                    ; preds = %lpad8
661  br label %eh.resume
662
663lpad17:                                           ; 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
673invoke.cont20:                                    ; preds = %lpad17
674  br label %eh.resume
675
676lpad26:                                           ; 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
686invoke.cont29:                                    ; preds = %lpad26
687  br label %eh.resume
688
689lpad35:                                           ; 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
699invoke.cont38:                                    ; preds = %lpad35
700  br label %eh.resume
701
702lpad44:                                           ; 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
712invoke.cont47:                                    ; preds = %lpad44
713  br label %eh.resume
714
715lpad53:                                           ; 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
725invoke.cont56:                                    ; preds = %lpad53
726  br label %eh.resume
727
728lpad62:                                           ; 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
738invoke.cont65:                                    ; preds = %lpad62
739  br label %eh.resume
740
741lpad71:                                           ; 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
751invoke.cont74:                                    ; preds = %lpad71
752  br label %eh.resume
753
754lpad80:                                           ; 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
764invoke.cont83:                                    ; preds = %lpad80
765  br label %eh.resume
766
767lpad89:                                           ; 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
777invoke.cont92:                                    ; preds = %lpad89
778  br label %eh.resume
779
780for.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
812invoke.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
860invoke.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
908invoke.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
956invoke.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
1004invoke.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
1052invoke.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
1100invoke.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
1148invoke.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
1196invoke.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
1244invoke.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
1266lpad258:                                          ; 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
1276lpad284:                                          ; 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
1286lpad313:                                          ; 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
1296lpad342:                                          ; 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
1306lpad371:                                          ; 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
1316lpad400:                                          ; 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
1326lpad429:                                          ; 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
1336lpad458:                                          ; 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
1346lpad487:                                          ; 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
1356lpad516:                                          ; 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
1366eh.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
1373terminate.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
1380declare void @_ZmlRKfRK9btVector3(%class.btVector3* noalias sret, float*, %class.btVector3*) inlinehint ssp
1381
1382declare %class.btRigidBody* @_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(%class.RagDoll*, float, %class.btTransform*, %class.btCollisionShape*) ssp align 2
1383
1384declare void @_ZNK11btTransformmlERKS_(%class.btTransform* noalias sret, %class.btTransform*, %class.btTransform*) inlinehint ssp align 2
1385
1386declare void @_ZN11btMatrix3x311setEulerZYXEfff(%class.btMatrix3x3*, float, float, float) ssp align 2
1387
1388declare void @_ZN11btRigidBody10setDampingEff(%class.btRigidBody*, float, float)
1389
1390declare void @_ZN17btCollisionObject19setDeactivationTimeEf(%class.btCollisionObject*, float) nounwind ssp align 2
1391
1392declare void @_ZN11btRigidBody21setSleepingThresholdsEff(%class.btRigidBody*, float, float) nounwind ssp align 2
1393
1394declare %class.btHingeConstraint* @_ZN17btHingeConstraintC1ER11btRigidBodyS1_RK11btTransformS4_b(%class.btHingeConstraint*, %class.btRigidBody*, %class.btRigidBody*, %class.btTransform*, %class.btTransform*, i1 zeroext)
1395
1396declare void @_ZN17btHingeConstraint8setLimitEfffff(%class.btHingeConstraint*, float, float, float, float, float) ssp align 2
1397
1398declare %class.btConeTwistConstraint* @_ZN21btConeTwistConstraintC1ER11btRigidBodyS1_RK11btTransformS4_(%class.btConeTwistConstraint*, %class.btRigidBody*, %class.btRigidBody*, %class.btTransform*, %class.btTransform*)
1399
1400declare void @_ZN21btConeTwistConstraint8setLimitEffffff(%class.btConeTwistConstraint*, float, float, float, float, float, float) nounwind ssp align 2
1401