96516e:	ff b6 70 11 00 00    	push   0x1170(%esi)
965174:	e8 aa a2 ac ff       	call   0x42f423
965179:	50                   	push   %eax
96517a:	68 80 eb d5 00       	push   $0xd5eb80
96517f:	e8 86 0e aa ff       	call   0x40600a
965184:	59                   	pop    %ecx
965185:	59                   	pop    %ecx
965186:	33 c9                	xor    %ecx,%ecx
965188:	8b f0                	mov    %eax,%esi
96518a:	8b 45 c4             	mov    -0x3c(%ebp),%eax
96518d:	51                   	push   %ecx
96518e:	51                   	push   %ecx
96518f:	6a 10                	push   $0x10
965191:	ff 70 20             	push   0x20(%eax)
965194:	89 88 70 11 00 00    	mov    %ecx,0x1170(%eax)
96519a:	ff 15 20 40 d8 00    	call   *0xd84020
9651a0:	89 35 c8 ea d7 00    	mov    %esi,0xd7eac8
9651a6:	33 c0                	xor    %eax,%eax
9651a8:	e9 58 04 00 00       	jmp    0x965605
9651ad:	8b 7d d4             	mov    -0x2c(%ebp),%edi
9651b0:	8b cf                	mov    %edi,%ecx
9651b2:	50                   	push   %eax
9651b3:	e8 83 ec a9 ff       	call   0x403e3b
9651b8:	89 45 d4             	mov    %eax,-0x2c(%ebp)
9651bb:	8b 08                	mov    (%eax),%ecx
9651bd:	8b 71 38             	mov    0x38(%ecx),%esi
9651c0:	8b ce                	mov    %esi,%ecx
9651c2:	e8 9e 74 ac ff       	call   0x42c665
9651c7:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
9651ca:	ff d6                	call   *%esi
9651cc:	85 c0                	test   %eax,%eax
9651ce:	0f 84 fe fe ff ff    	je     0x9650d2
9651d4:	8b 45 d4             	mov    -0x2c(%ebp),%eax
9651d7:	8b 00                	mov    (%eax),%eax
9651d9:	8b 70 38             	mov    0x38(%eax),%esi
9651dc:	8b ce                	mov    %esi,%ecx
9651de:	e8 82 74 ac ff       	call   0x42c665
9651e3:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
9651e6:	ff d6                	call   *%esi
9651e8:	3b 45 14             	cmp    0x14(%ebp),%eax
9651eb:	0f 85 e1 fe ff ff    	jne    0x9650d2
9651f1:	ff 75 cc             	push   -0x34(%ebp)
9651f4:	8b 45 d4             	mov    -0x2c(%ebp),%eax
9651f7:	ff 75 c8             	push   -0x38(%ebp)
9651fa:	83 c0 54             	add    $0x54,%eax
9651fd:	50                   	push   %eax
9651fe:	ff 15 08 3d d8 00    	call   *0xd83d08
965204:	85 c0                	test   %eax,%eax
965206:	0f 84 c6 fe ff ff    	je     0x9650d2
96520c:	0f b7 4d cc          	movzwl -0x34(%ebp),%ecx
965210:	0f b7 45 c8          	movzwl -0x38(%ebp),%eax
965214:	c1 e1 10             	shl    $0x10,%ecx
965217:	0b c8                	or     %eax,%ecx
965219:	51                   	push   %ecx
96521a:	6a 00                	push   $0x0
96521c:	68 01 02 00 00       	push   $0x201
965221:	ff 77 20             	push   0x20(%edi)
965224:	ff 15 20 40 d8 00    	call   *0xd84020
96522a:	33 c0                	xor    %eax,%eax
96522c:	40                   	inc    %eax
96522d:	e9 d3 03 00 00       	jmp    0x965605
965232:	33 c0                	xor    %eax,%eax
965234:	89 45 dc             	mov    %eax,-0x24(%ebp)
965237:	89 45 e0             	mov    %eax,-0x20(%ebp)
96523a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
96523d:	89 45 e8             	mov    %eax,-0x18(%ebp)
965240:	39 05 c8 ea d7 00    	cmp    %eax,0xd7eac8
965246:	0f 84 8b 01 00 00    	je     0x9653d7
96524c:	8b 77 20             	mov    0x20(%edi),%esi
96524f:	50                   	push   %eax
965250:	e8 22 b8 ab ff       	call   0x420a77
965255:	56                   	push   %esi
965256:	8d 48 1c             	lea    0x1c(%eax),%ecx
965259:	e8 fd a2 aa ff       	call   0x40f55b
96525e:	85 c0                	test   %eax,%eax
965260:	75 1a                	jne    0x96527c
965262:	8b 77 20             	mov    0x20(%edi),%esi
965265:	50                   	push   %eax
965266:	e8 0c b8 ab ff       	call   0x420a77
96526b:	56                   	push   %esi
96526c:	8d 48 38             	lea    0x38(%eax),%ecx
96526f:	e8 e7 a2 aa ff       	call   0x40f55b
965274:	85 c0                	test   %eax,%eax
965276:	0f 84 5b 01 00 00    	je     0x9653d7
96527c:	8b 07                	mov    (%edi),%eax
96527e:	8d 4d dc             	lea    -0x24(%ebp),%ecx
965281:	51                   	push   %ecx
965282:	8b b0 d4 01 00 00    	mov    0x1d4(%eax),%esi
965288:	8b ce                	mov    %esi,%ecx
96528a:	e8 d6 73 ac ff       	call   0x42c665
96528f:	8b cf                	mov    %edi,%ecx
965291:	ff d6                	call   *%esi
965293:	89 45 cc             	mov    %eax,-0x34(%ebp)
965296:	85 c0                	test   %eax,%eax
965298:	0f 84 39 01 00 00    	je     0x9653d7
96529e:	50                   	push   %eax
96529f:	68 a8 ed d5 00       	push   $0xd5eda8
9652a4:	e8 61 0d aa ff       	call   0x40600a
9652a9:	8b f0                	mov    %eax,%esi
9652ab:	8b 45 d8             	mov    -0x28(%ebp),%eax
9652ae:	89 45 f4             	mov    %eax,-0xc(%ebp)
9652b1:	8b 45 d0             	mov    -0x30(%ebp),%eax
9652b4:	59                   	pop    %ecx
9652b5:	89 45 f8             	mov    %eax,-0x8(%ebp)
9652b8:	8d 45 f4             	lea    -0xc(%ebp),%eax
9652bb:	59                   	pop    %ecx
9652bc:	50                   	push   %eax
9652bd:	8b 45 cc             	mov    -0x34(%ebp),%eax
9652c0:	89 75 c4             	mov    %esi,-0x3c(%ebp)
9652c3:	ff 70 20             	push   0x20(%eax)
9652c6:	ff 15 f4 3c d8 00    	call   *0xd83cf4
9652cc:	ff 75 f8             	push   -0x8(%ebp)
9652cf:	8d 45 dc             	lea    -0x24(%ebp),%eax
9652d2:	ff 75 f4             	push   -0xc(%ebp)
9652d5:	50                   	push   %eax
9652d6:	ff 15 08 3d d8 00    	call   *0xd83d08
9652dc:	85 c0                	test   %eax,%eax
9652de:	74 64                	je     0x965344
9652e0:	85 f6                	test   %esi,%esi
9652e2:	74 18                	je     0x9652fc
9652e4:	8b 06                	mov    (%esi),%eax
9652e6:	8b b0 4c 04 00 00    	mov    0x44c(%eax),%esi
9652ec:	8b ce                	mov    %esi,%ecx
9652ee:	e8 72 73 ac ff       	call   0x42c665
9652f3:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
9652f6:	ff d6                	call   *%esi
9652f8:	85 c0                	test   %eax,%eax
9652fa:	74 20                	je     0x96531c
9652fc:	8b 07                	mov    (%edi),%eax
9652fe:	8b b0 cc 01 00 00    	mov    0x1cc(%eax),%esi
965304:	8b ce                	mov    %esi,%ecx
965306:	e8 5a 73 ac ff       	call   0x42c665
96530b:	8b cf                	mov    %edi,%ecx
96530d:	ff d6                	call   *%esi
96530f:	85 c0                	test   %eax,%eax
965311:	75 09                	jne    0x96531c
965313:	50                   	push   %eax
965314:	50                   	push   %eax
965315:	6a 10                	push   $0x10
965317:	e9 05 ff ff ff       	jmp    0x965221
96531c:	81 7d 08 04 02 00 00 	cmpl   $0x204,0x8(%ebp)
965323:	74 0d                	je     0x965332
965325:	81 7d 08 05 02 00 00 	cmpl   $0x205,0x8(%ebp)
96532c:	0f 85 f8 fe ff ff    	jne    0x96522a
965332:	83 bf 6c 11 00 00 00 	cmpl   $0x0,0x116c(%edi)
965339:	0f 84 eb fe ff ff    	je     0x96522a
96533f:	e9 62 fe ff ff       	jmp    0x9651a6
965344:	85 f6                	test   %esi,%esi
965346:	0f 84 8b 00 00 00    	je     0x9653d7
96534c:	8b 06                	mov    (%esi),%eax
96534e:	8b b0 4c 04 00 00    	mov    0x44c(%eax),%esi
965354:	8b ce                	mov    %esi,%ecx
965356:	e8 0a 73 ac ff       	call   0x42c665
96535b:	8b 7d c4             	mov    -0x3c(%ebp),%edi
96535e:	8b cf                	mov    %edi,%ecx
965360:	ff d6                	call   *%esi
965362:	85 c0                	test   %eax,%eax
965364:	75 71                	jne    0x9653d7
965366:	8b 07                	mov    (%edi),%eax
965368:	8b b0 40 04 00 00    	mov    0x440(%eax),%esi
96536e:	8b ce                	mov    %esi,%ecx
965370:	e8 f0 72 ac ff       	call   0x42c665
965375:	8b cf                	mov    %edi,%ecx
965377:	ff d6                	call   *%esi
965379:	ff 77 20             	push   0x20(%edi)
96537c:	ff 15 30 40 d8 00    	call   *0xd84030
965382:	50                   	push   %eax
965383:	e8 06 04 ac ff       	call   0x42578e
965388:	50                   	push   %eax
965389:	68 80 eb d5 00       	push   $0xd5eb80
96538e:	e8 77 0c aa ff       	call   0x40600a
965393:	8b f0                	mov    %eax,%esi
965395:	59                   	pop    %ecx
965396:	59                   	pop    %ecx
965397:	85 f6                	test   %esi,%esi
965399:	74 3c                	je     0x9653d7
96539b:	8b 45 d8             	mov    -0x28(%ebp),%eax
96539e:	8b ce                	mov    %esi,%ecx
9653a0:	89 45 c8             	mov    %eax,-0x38(%ebp)
9653a3:	8b 45 d0             	mov    -0x30(%ebp),%eax
9653a6:	89 45 cc             	mov    %eax,-0x34(%ebp)
9653a9:	8d 45 c8             	lea    -0x38(%ebp),%eax
9653ac:	50                   	push   %eax
9653ad:	e8 a7 14 ad ff       	call   0x436859
9653b2:	85 c0                	test   %eax,%eax
9653b4:	0f 84 ec fd ff ff    	je     0x9651a6
9653ba:	7e 1b                	jle    0x9653d7
9653bc:	83 f8 02             	cmp    $0x2,%eax
9653bf:	0f 8e c3 00 00 00    	jle    0x965488
9653c5:	83 f8 03             	cmp    $0x3,%eax
9653c8:	0f 84 d8 fd ff ff    	je     0x9651a6
9653ce:	83 f8 05             	cmp    $0x5,%eax
9653d1:	0f 84 cf fd ff ff    	je     0x9651a6
9653d7:	e8 92 63 ad ff       	call   0x43b76e
9653dc:	8b f8                	mov    %eax,%edi
9653de:	85 ff                	test   %edi,%edi
9653e0:	0f 84 d6 00 00 00    	je     0x9654bc
9653e6:	8b 0f                	mov    (%edi),%ecx
9653e8:	8b b1 cc 01 00 00    	mov    0x1cc(%ecx),%esi
9653ee:	8b ce                	mov    %esi,%ecx
9653f0:	e8 70 72 ac ff       	call   0x42c665
9653f5:	8b cf                	mov    %edi,%ecx
9653f7:	ff d6                	call   *%esi
9653f9:	85 c0                	test   %eax,%eax
9653fb:	0f 85 bb 00 00 00    	jne    0x9654bc
965401:	8b 07                	mov    (%edi),%eax
965403:	8b b0 dc 01 00 00    	mov    0x1dc(%eax),%esi
965409:	8b ce                	mov    %esi,%ecx
96540b:	e8 55 72 ac ff       	call   0x42c665
965410:	8b cf                	mov    %edi,%ecx
965412:	ff d6                	call   *%esi
965414:	6a 00                	push   $0x0
965416:	f7 d8                	neg    %eax
965418:	6a 00                	push   $0x0
96541a:	1b f6                	sbb    %esi,%esi
96541c:	6a 10                	push   $0x10
96541e:	ff 77 20             	push   0x20(%edi)
965421:	46                   	inc    %esi
965422:	89 75 d4             	mov    %esi,-0x2c(%ebp)
965425:	ff 15 20 40 d8 00    	call   *0xd84020
96542b:	ff 15 48 40 d8 00    	call   *0xd84048
965431:	50                   	push   %eax
965432:	e8 57 03 ac ff       	call   0x42578e
965437:	85 c0                	test   %eax,%eax
965439:	74 1b                	je     0x965456
96543b:	68 b0 e9 d5 00       	push   $0xd5e9b0
965440:	8b c8                	mov    %eax,%ecx
965442:	e8 48 48 ac ff       	call   0x429c8f
965447:	85 c0                	test   %eax,%eax
965449:	74 0b                	je     0x965456
96544b:	8b 8b b0 00 00 00    	mov    0xb0(%ebx),%ecx
965451:	e8 d3 b8 ab ff       	call   0x420d29
965456:	85 f6                	test   %esi,%esi
965458:	8b 75 d8             	mov    -0x28(%ebp),%esi
96545b:	74 62                	je     0x9654bf
96545d:	ff 75 d0             	push   -0x30(%ebp)
965460:	56                   	push   %esi
965461:	ff 15 28 3e d8 00    	call   *0xd83e28
965467:	50                   	push   %eax
965468:	e8 21 03 ac ff       	call   0x42578e
96546d:	50                   	push   %eax
96546e:	68 28 a1 c4 00       	push   $0xc4a128
965473:	e8 92 0b aa ff       	call   0x40600a
965478:	59                   	pop    %ecx
965479:	59                   	pop    %ecx
96547a:	85 c0                	test   %eax,%eax
96547c:	74 06                	je     0x965484
96547e:	83 78 20 00          	cmpl   $0x0,0x20(%eax)
965482:	75 3b                	jne    0x9654bf
965484:	33 ff                	xor    %edi,%edi
965486:	eb 3a                	jmp    0x9654c2
965488:	6a 00                	push   $0x0
96548a:	6a 00                	push   $0x0
96548c:	6a 10                	push   $0x10
96548e:	ff 76 20             	push   0x20(%esi)
965491:	ff 15 20 40 d8 00    	call   *0xd84020
965497:	8b 8b b0 00 00 00    	mov    0xb0(%ebx),%ecx
96549d:	e8 87 b8 ab ff       	call   0x420d29
9654a2:	e9 83 fd ff ff       	jmp    0x96522a
9654a7:	83 f8 01             	cmp    $0x1,%eax
9654aa:	74 05                	je     0x9654b1
9654ac:	83 f8 02             	cmp    $0x2,%eax
9654af:	75 0b                	jne    0x9654bc
9654b1:	6a 00                	push   $0x0
9654b3:	6a 00                	push   $0x0
9654b5:	6a 10                	push   $0x10
9654b7:	ff 77 20             	push   0x20(%edi)
9654ba:	eb d5                	jmp    0x965491
9654bc:	8b 75 d8             	mov    -0x28(%ebp),%esi
9654bf:	8b 7d d4             	mov    -0x2c(%ebp),%edi
9654c2:	81 7d 08 a5 00 00 00 	cmpl   $0xa5,0x8(%ebp)
9654c9:	0f 85 34 01 00 00    	jne    0x965603
9654cf:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
9654d5:	85 c0                	test   %eax,%eax
9654d7:	74 03                	je     0x9654dc
9654d9:	8b 40 20             	mov    0x20(%eax),%eax
9654dc:	39 45 14             	cmp    %eax,0x14(%ebp)
9654df:	0f 85 1e 01 00 00    	jne    0x965603
9654e5:	8b cb                	mov    %ebx,%ecx
9654e7:	e8 c1 07 ab ff       	call   0x415cad
9654ec:	85 c0                	test   %eax,%eax
9654ee:	0f 84 0f 01 00 00    	je     0x965603
9654f4:	51                   	push   %ecx
9654f5:	51                   	push   %ecx
9654f6:	8b 4d d0             	mov    -0x30(%ebp),%ecx
9654f9:	8b c4                	mov    %esp,%eax
9654fb:	89 48 04             	mov    %ecx,0x4(%eax)
9654fe:	8b cb                	mov    %ebx,%ecx
965500:	89 30                	mov    %esi,(%eax)
965502:	e8 82 0c ac ff       	call   0x426189
965507:	83 f8 02             	cmp    $0x2,%eax
96550a:	74 18                	je     0x965524
96550c:	83 f8 03             	cmp    $0x3,%eax
96550f:	74 13                	je     0x965524
965511:	83 f8 08             	cmp    $0x8,%eax
965514:	74 0e                	je     0x965524
965516:	83 f8 09             	cmp    $0x9,%eax
965519:	74 09                	je     0x965524
96551b:	83 f8 14             	cmp    $0x14,%eax
96551e:	0f 85 df 00 00 00    	jne    0x965603
965524:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
96552a:	6a 00                	push   $0x0
96552c:	ff 70 20             	push   0x20(%eax)
96552f:	ff 15 8c 3e d8 00    	call   *0xd83e8c
965535:	50                   	push   %eax
965536:	e8 21 4f aa ff       	call   0x40a45c
96553b:	8b f0                	mov    %eax,%esi
96553d:	85 f6                	test   %esi,%esi
96553f:	0f 84 be 00 00 00    	je     0x965603
965545:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
965549:	0f 84 b4 00 00 00    	je     0x965603
96554f:	ff 76 04             	push   0x4(%esi)
965552:	ff 15 d8 3f d8 00    	call   *0xd83fd8
965558:	85 c0                	test   %eax,%eax
96555a:	0f 84 a3 00 00 00    	je     0x965603
965560:	6a 00                	push   $0x0
965562:	68 30 f0 00 00       	push   $0xf030
965567:	ff 76 04             	push   0x4(%esi)
96556a:	ff 15 0c 40 d8 00    	call   *0xd8400c
965570:	6a 00                	push   $0x0
965572:	68 20 f1 00 00       	push   $0xf120
965577:	ff 76 04             	push   0x4(%esi)
96557a:	ff 15 0c 40 d8 00    	call   *0xd8400c
965580:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
965586:	ff 70 20             	push   0x20(%eax)
965589:	ff 15 88 3e d8 00    	call   *0xd83e88
96558f:	85 c0                	test   %eax,%eax
965591:	74 09                	je     0x96559c
965593:	6a 03                	push   $0x3
965595:	68 30 f0 00 00       	push   $0xf030
96559a:	eb 1a                	jmp    0x9655b6
96559c:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
9655a2:	ff 70 20             	push   0x20(%eax)
9655a5:	ff 15 b0 3f d8 00    	call   *0xd83fb0
9655ab:	85 c0                	test   %eax,%eax
9655ad:	75 10                	jne    0x9655bf
9655af:	6a 03                	push   $0x3
9655b1:	68 20 f1 00 00       	push   $0xf120
9655b6:	ff 76 04             	push   0x4(%esi)
9655b9:	ff 15 0c 40 d8 00    	call   *0xd8400c
9655bf:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
9655c5:	85 c0                	test   %eax,%eax
9655c7:	74 03                	je     0x9655cc
9655c9:	8b 40 20             	mov    0x20(%eax),%eax
9655cc:	6a 00                	push   $0x0
9655ce:	50                   	push   %eax
9655cf:	6a 00                	push   $0x0
9655d1:	ff 75 d0             	push   -0x30(%ebp)
9655d4:	ff 75 d8             	push   -0x28(%ebp)
9655d7:	68 00 01 00 00       	push   $0x100