40c132:	0f 85 30 8a 01 00    	jne    0x424b68
40c138:	e8 f3 00 00 00       	call   0x40c230
40c13d:	c7 47 6c 00 00 00 00 	movl   $0x0,0x6c(%edi)
40c144:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40c14b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c14e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c155:	59                   	pop    %ecx
40c156:	5f                   	pop    %edi
40c157:	5e                   	pop    %esi
40c158:	5b                   	pop    %ebx
40c159:	8b e5                	mov    %ebp,%esp
40c15b:	5d                   	pop    %ebp
40c15c:	c3                   	ret
40c15d:	50                   	push   %eax
40c15e:	ff 15 0c 30 45 00    	call   *0x45300c
40c164:	e9 d5 fe ff ff       	jmp    0x40c03e
40c169:	8b 01                	mov    (%ecx),%eax
40c16b:	51                   	push   %ecx
40c16c:	8b 70 08             	mov    0x8(%eax),%esi
40c16f:	8b ce                	mov    %esi,%ecx
40c171:	ff 15 c4 12 45 00    	call   *0x4512c4
40c177:	ff d6                	call   *%esi
40c179:	e9 98 fc ff ff       	jmp    0x40be16
40c17e:	8b 01                	mov    (%ecx),%eax
40c180:	51                   	push   %ecx
40c181:	8b 70 08             	mov    0x8(%eax),%esi
40c184:	8b ce                	mov    %esi,%ecx
40c186:	ff 15 c4 12 45 00    	call   *0x4512c4
40c18c:	ff d6                	call   *%esi
40c18e:	e9 91 fc ff ff       	jmp    0x40be24
40c193:	8b 01                	mov    (%ecx),%eax
40c195:	51                   	push   %ecx
40c196:	8b 70 08             	mov    0x8(%eax),%esi
40c199:	8b ce                	mov    %esi,%ecx
40c19b:	ff 15 c4 12 45 00    	call   *0x4512c4
40c1a1:	ff d6                	call   *%esi
40c1a3:	e9 8a fc ff ff       	jmp    0x40be32
40c1a8:	cc                   	int3
40c1a9:	cc                   	int3
40c1aa:	cc                   	int3
40c1ab:	cc                   	int3
40c1ac:	cc                   	int3
40c1ad:	cc                   	int3
40c1ae:	cc                   	int3
40c1af:	cc                   	int3
40c1b0:	8b ff                	mov    %edi,%edi
40c1b2:	55                   	push   %ebp
40c1b3:	8b ec                	mov    %esp,%ebp
40c1b5:	8b 51 04             	mov    0x4(%ecx),%edx
40c1b8:	83 fa ff             	cmp    $0xffffffff,%edx
40c1bb:	0f 85 b6 89 01 00    	jne    0x424b77
40c1c1:	b8 02 00 00 80       	mov    $0x80000002,%eax
40c1c6:	5d                   	pop    %ebp
40c1c7:	c2 04 00             	ret    $0x4
40c1ca:	8b ff                	mov    %edi,%edi
40c1cc:	55                   	push   %ebp
40c1cd:	8b ec                	mov    %esp,%ebp
40c1cf:	6a ff                	push   $0xffffffff
40c1d1:	68 0b 2c 42 00       	push   $0x422c0b
40c1d6:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40c1dc:	50                   	push   %eax
40c1dd:	a1 54 02 45 00       	mov    0x450254,%eax
40c1e2:	33 c5                	xor    %ebp,%eax
40c1e4:	50                   	push   %eax
40c1e5:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c1e8:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40c1ee:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40c1f2:	74 1d                	je     0x40c211
40c1f4:	a1 80 0b 45 00       	mov    0x450b80,%eax
40c1f9:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
40c1fd:	74 12                	je     0x40c211
40c1ff:	ff 75 08             	push   0x8(%ebp)
40c202:	6a 00                	push   $0x0
40c204:	ff 70 04             	push   0x4(%eax)
40c207:	ff 15 70 10 45 00    	call   *0x451070
40c20d:	85 c0                	test   %eax,%eax
40c20f:	74 0d                	je     0x40c21e
40c211:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c214:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c21b:	59                   	pop    %ecx
40c21c:	c9                   	leave
40c21d:	c3                   	ret
40c21e:	ff 15 54 10 45 00    	call   *0x451054
40c224:	eb eb                	jmp    0x40c211
40c226:	cc                   	int3
40c227:	cc                   	int3
40c228:	cc                   	int3
40c229:	cc                   	int3
40c22a:	cc                   	int3
40c22b:	cc                   	int3
40c22c:	cc                   	int3
40c22d:	cc                   	int3
40c22e:	cc                   	int3
40c22f:	cc                   	int3
40c230:	8b ff                	mov    %edi,%edi
40c232:	55                   	push   %ebp
40c233:	8b ec                	mov    %esp,%ebp
40c235:	56                   	push   %esi
40c236:	8b 75 08             	mov    0x8(%ebp),%esi
40c239:	57                   	push   %edi
40c23a:	83 cf ff             	or     $0xffffffff,%edi
40c23d:	f0 0f c1 7e 04       	lock xadd %edi,0x4(%esi)
40c242:	4f                   	dec    %edi
40c243:	74 08                	je     0x40c24d
40c245:	8b c7                	mov    %edi,%eax
40c247:	5f                   	pop    %edi
40c248:	5e                   	pop    %esi
40c249:	5d                   	pop    %ebp
40c24a:	c2 04 00             	ret    $0x4
40c24d:	85 f6                	test   %esi,%esi
40c24f:	74 f4                	je     0x40c245
40c251:	8b 06                	mov    (%esi),%eax
40c253:	53                   	push   %ebx
40c254:	6a 01                	push   $0x1
40c256:	8b 58 0c             	mov    0xc(%eax),%ebx
40c259:	81 fb 10 70 41 00    	cmp    $0x417010,%ebx
40c25f:	0f 85 27 89 01 00    	jne    0x424b8c
40c265:	8b ce                	mov    %esi,%ecx
40c267:	e8 a4 ad 00 00       	call   0x417010
40c26c:	5b                   	pop    %ebx
40c26d:	eb d6                	jmp    0x40c245
40c26f:	6a 08                	push   $0x8
40c271:	b8 26 2c 42 00       	mov    $0x422c26,%eax
40c276:	e8 f2 33 01 00       	call   0x41f66d
40c27b:	8b f9                	mov    %ecx,%edi
40c27d:	8b 47 04             	mov    0x4(%edi),%eax
40c280:	85 c0                	test   %eax,%eax
40c282:	0f 85 15 89 01 00    	jne    0x424b9d
40c288:	83 7f 30 00          	cmpl   $0x0,0x30(%edi)
40c28c:	75 08                	jne    0x40c296
40c28e:	33 c0                	xor    %eax,%eax
40c290:	e8 a6 33 01 00       	call   0x41f63b
40c295:	c3                   	ret
40c296:	83 67 30 00          	andl   $0x0,0x30(%edi)
40c29a:	eb f2                	jmp    0x40c28e
40c29c:	cc                   	int3
40c29d:	cc                   	int3
40c29e:	cc                   	int3
40c29f:	cc                   	int3
40c2a0:	8b ff                	mov    %edi,%edi
40c2a2:	55                   	push   %ebp
40c2a3:	8b ec                	mov    %esp,%ebp
40c2a5:	83 ec 0c             	sub    $0xc,%esp
40c2a8:	53                   	push   %ebx
40c2a9:	8b d9                	mov    %ecx,%ebx
40c2ab:	56                   	push   %esi
40c2ac:	57                   	push   %edi
40c2ad:	8b 03                	mov    (%ebx),%eax
40c2af:	8b 70 18             	mov    0x18(%eax),%esi
40c2b2:	81 fe 60 3c 41 00    	cmp    $0x413c60,%esi
40c2b8:	0f 85 9a 89 01 00    	jne    0x424c58
40c2be:	80 7b 20 00          	cmpb   $0x0,0x20(%ebx)
40c2c2:	74 10                	je     0x40c2d4
40c2c4:	8d 4b 08             	lea    0x8(%ebx),%ecx
40c2c7:	e8 d4 f8 ff ff       	call   0x40bba0
40c2cc:	84 c0                	test   %al,%al
40c2ce:	0f 84 58 89 01 00    	je     0x424c2c
40c2d4:	8b 73 24             	mov    0x24(%ebx),%esi
40c2d7:	85 f6                	test   %esi,%esi
40c2d9:	0f 84 8a 89 01 00    	je     0x424c69
40c2df:	8b 45 08             	mov    0x8(%ebp),%eax
40c2e2:	8b 08                	mov    (%eax),%ecx
40c2e4:	3b 0e                	cmp    (%esi),%ecx
40c2e6:	75 48                	jne    0x40c330
40c2e8:	8b 7e 0c             	mov    0xc(%esi),%edi
40c2eb:	8d 4b 24             	lea    0x24(%ebx),%ecx
40c2ee:	89 7d f8             	mov    %edi,-0x8(%ebp)
40c2f1:	85 ff                	test   %edi,%edi
40c2f3:	75 49                	jne    0x40c33e
40c2f5:	ff 4b 28             	decl   0x28(%ebx)
40c2f8:	8d 45 ff             	lea    -0x1(%ebp),%eax
40c2fb:	50                   	push   %eax
40c2fc:	56                   	push   %esi
40c2fd:	e8 be 00 00 00       	call   0x40c3c0
40c302:	8b f0                	mov    %eax,%esi
40c304:	8b 03                	mov    (%ebx),%eax
40c306:	8b 78 1c             	mov    0x1c(%eax),%edi
40c309:	81 ff 90 3c 41 00    	cmp    $0x413c90,%edi
40c30f:	0f 85 5e 89 01 00    	jne    0x424c73
40c315:	83 c3 08             	add    $0x8,%ebx
40c318:	80 7b 18 00          	cmpb   $0x0,0x18(%ebx)
40c31c:	74 07                	je     0x40c325
40c31e:	53                   	push   %ebx
40c31f:	ff 15 40 11 45 00    	call   *0x451140
40c325:	5f                   	pop    %edi
40c326:	8b c6                	mov    %esi,%eax
40c328:	5e                   	pop    %esi
40c329:	5b                   	pop    %ebx
40c32a:	8b e5                	mov    %ebp,%esp
40c32c:	5d                   	pop    %ebp
40c32d:	c2 04 00             	ret    $0x4
40c330:	73 6f                	jae    0x40c3a1
40c332:	8b 76 04             	mov    0x4(%esi),%esi
40c335:	85 f6                	test   %esi,%esi
40c337:	75 ab                	jne    0x40c2e4
40c339:	e9 2b 89 01 00       	jmp    0x424c69
40c33e:	8b 47 04             	mov    0x4(%edi),%eax
40c341:	89 45 f4             	mov    %eax,-0xc(%ebp)
40c344:	8d 45 ff             	lea    -0x1(%ebp),%eax
40c347:	50                   	push   %eax
40c348:	56                   	push   %esi
40c349:	e8 72 00 00 00       	call   0x40c3c0
40c34e:	ff 4b 28             	decl   0x28(%ebx)
40c351:	8d 43 24             	lea    0x24(%ebx),%eax
40c354:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40c358:	74 40                	je     0x40c39a
40c35a:	39 75 f4             	cmp    %esi,-0xc(%ebp)
40c35d:	8b cf                	mov    %edi,%ecx
40c35f:	0f 94 c2             	sete   %dl
40c362:	88 55 fe             	mov    %dl,-0x2(%ebp)
40c365:	85 c9                	test   %ecx,%ecx
40c367:	74 31                	je     0x40c39a
40c369:	8d 4d ff             	lea    -0x1(%ebp),%ecx
40c36c:	51                   	push   %ecx
40c36d:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40c370:	84 d2                	test   %dl,%dl
40c372:	74 32                	je     0x40c3a6
40c374:	ff 77 08             	push   0x8(%edi)
40c377:	51                   	push   %ecx
40c378:	8b c8                	mov    %eax,%ecx
40c37a:	e8 c1 9e 00 00       	call   0x416240
40c37f:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c382:	8b 78 0c             	mov    0xc(%eax),%edi
40c385:	8b cf                	mov    %edi,%ecx
40c387:	89 7d f8             	mov    %edi,-0x8(%ebp)
40c38a:	85 c9                	test   %ecx,%ecx
40c38c:	75 25                	jne    0x40c3b3
40c38e:	8a 55 fe             	mov    -0x2(%ebp),%dl
40c391:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40c395:	8d 43 24             	lea    0x24(%ebx),%eax
40c398:	75 cb                	jne    0x40c365
40c39a:	33 f6                	xor    %esi,%esi
40c39c:	e9 63 ff ff ff       	jmp    0x40c304
40c3a1:	8b 76 08             	mov    0x8(%esi),%esi
40c3a4:	eb 8f                	jmp    0x40c335
40c3a6:	ff 77 04             	push   0x4(%edi)
40c3a9:	51                   	push   %ecx
40c3aa:	8b c8                	mov    %eax,%ecx
40c3ac:	e8 3f 12 01 00       	call   0x41d5f0
40c3b1:	eb cc                	jmp    0x40c37f
40c3b3:	39 47 04             	cmp    %eax,0x4(%edi)
40c3b6:	0f 94 c2             	sete   %dl
40c3b9:	88 55 fe             	mov    %dl,-0x2(%ebp)
40c3bc:	eb d3                	jmp    0x40c391
40c3be:	cc                   	int3
40c3bf:	cc                   	int3
40c3c0:	8b ff                	mov    %edi,%edi
40c3c2:	55                   	push   %ebp
40c3c3:	8b ec                	mov    %esp,%ebp
40c3c5:	83 ec 08             	sub    $0x8,%esp
40c3c8:	8b 45 0c             	mov    0xc(%ebp),%eax
40c3cb:	53                   	push   %ebx
40c3cc:	56                   	push   %esi
40c3cd:	8b 75 08             	mov    0x8(%ebp),%esi
40c3d0:	8b d9                	mov    %ecx,%ebx
40c3d2:	57                   	push   %edi
40c3d3:	c6 00 01             	movb   $0x1,(%eax)
40c3d6:	8b 56 04             	mov    0x4(%esi),%edx
40c3d9:	8b 7e 08             	mov    0x8(%esi),%edi
40c3dc:	8b 4e 0c             	mov    0xc(%esi),%ecx
40c3df:	89 55 fc             	mov    %edx,-0x4(%ebp)
40c3e2:	89 7d f8             	mov    %edi,-0x8(%ebp)
40c3e5:	85 d2                	test   %edx,%edx
40c3e7:	75 5f                	jne    0x40c448
40c3e9:	85 c9                	test   %ecx,%ecx
40c3eb:	75 47                	jne    0x40c434
40c3ed:	85 d2                	test   %edx,%edx
40c3ef:	0f 85 8f 01 00 00    	jne    0x40c584
40c3f5:	8b c7                	mov    %edi,%eax
40c3f7:	89 03                	mov    %eax,(%ebx)
40c3f9:	85 d2                	test   %edx,%edx
40c3fb:	0f 85 c4 00 00 00    	jne    0x40c4c5
40c401:	85 ff                	test   %edi,%edi
40c403:	0f 85 96 01 00 00    	jne    0x40c59f
40c409:	8b 43 08             	mov    0x8(%ebx),%eax
40c40c:	8b 40 04             	mov    0x4(%eax),%eax
40c40f:	85 c0                	test   %eax,%eax
40c411:	0f 84 5f 81 01 00    	je     0x424576
40c417:	56                   	push   %esi
40c418:	6a 00                	push   $0x0
40c41a:	50                   	push   %eax
40c41b:	ff 15 70 10 45 00    	call   *0x451070
40c421:	85 c0                	test   %eax,%eax
40c423:	0f 84 31 81 01 00    	je     0x42455a
40c429:	33 c0                	xor    %eax,%eax
40c42b:	5f                   	pop    %edi
40c42c:	5e                   	pop    %esi
40c42d:	5b                   	pop    %ebx
40c42e:	8b e5                	mov    %ebp,%esp
40c430:	5d                   	pop    %ebp
40c431:	c2 08 00             	ret    $0x8
40c434:	39 71 04             	cmp    %esi,0x4(%ecx)
40c437:	75 6c                	jne    0x40c4a5
40c439:	85 d2                	test   %edx,%edx
40c43b:	0f 85 4a 01 00 00    	jne    0x40c58b
40c441:	8b c7                	mov    %edi,%eax
40c443:	89 41 04             	mov    %eax,0x4(%ecx)
40c446:	eb b1                	jmp    0x40c3f9
40c448:	85 ff                	test   %edi,%edi
40c44a:	74 9d                	je     0x40c3e9
40c44c:	8b 47 04             	mov    0x4(%edi),%eax
40c44f:	85 c0                	test   %eax,%eax
40c451:	0f 85 90 00 00 00    	jne    0x40c4e7
40c457:	8b 46 10             	mov    0x10(%esi),%eax
40c45a:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c45d:	89 47 10             	mov    %eax,0x10(%edi)
40c460:	85 c9                	test   %ecx,%ecx
40c462:	75 53                	jne    0x40c4b7
40c464:	89 3b                	mov    %edi,(%ebx)
40c466:	8b 46 04             	mov    0x4(%esi),%eax
40c469:	39 77 0c             	cmp    %esi,0xc(%edi)
40c46c:	0f 85 84 00 00 00    	jne    0x40c4f6
40c472:	85 c0                	test   %eax,%eax
40c474:	74 03                	je     0x40c479
40c476:	89 78 0c             	mov    %edi,0xc(%eax)
40c479:	8b 46 08             	mov    0x8(%esi),%eax
40c47c:	85 c0                	test   %eax,%eax
40c47e:	74 03                	je     0x40c483
40c480:	89 78 0c             	mov    %edi,0xc(%eax)
40c483:	8b 46 04             	mov    0x4(%esi),%eax
40c486:	89 47 04             	mov    %eax,0x4(%edi)
40c489:	8b 46 0c             	mov    0xc(%esi),%eax
40c48c:	89 47 0c             	mov    %eax,0xc(%edi)
40c48f:	8d 45 fc             	lea    -0x4(%ebp),%eax
40c492:	ff 75 0c             	push   0xc(%ebp)
40c495:	8b cb                	mov    %ebx,%ecx
40c497:	ff 77 04             	push   0x4(%edi)
40c49a:	50                   	push   %eax
40c49b:	e8 50 11 01 00       	call   0x41d5f0
40c4a0:	e9 64 ff ff ff       	jmp    0x40c409
40c4a5:	85 d2                	test   %edx,%edx
40c4a7:	0f 85 e8 00 00 00    	jne    0x40c595
40c4ad:	8b c7                	mov    %edi,%eax
40c4af:	89 41 08             	mov    %eax,0x8(%ecx)
40c4b2:	e9 42 ff ff ff       	jmp    0x40c3f9
40c4b7:	39 71 04             	cmp    %esi,0x4(%ecx)
40c4ba:	0f 84 bc 00 00 00    	je     0x40c57c
40c4c0:	89 79 08             	mov    %edi,0x8(%ecx)
40c4c3:	eb a1                	jmp    0x40c466
40c4c5:	8b 46 0c             	mov    0xc(%esi),%eax
40c4c8:	8b cb                	mov    %ebx,%ecx
40c4ca:	ff 75 0c             	push   0xc(%ebp)
40c4cd:	89 42 0c             	mov    %eax,0xc(%edx)
40c4d0:	8b 46 10             	mov    0x10(%esi),%eax
40c4d3:	89 42 10             	mov    %eax,0x10(%edx)
40c4d6:	8d 45 fc             	lea    -0x4(%ebp),%eax
40c4d9:	ff 72 08             	push   0x8(%edx)
40c4dc:	50                   	push   %eax
40c4dd:	e8 5e 9d 00 00       	call   0x416240
40c4e2:	e9 22 ff ff ff       	jmp    0x40c409