40c086:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c08a:	8b 45 0c             	mov    0xc(%ebp),%eax
40c08d:	8b 00                	mov    (%eax),%eax
40c08f:	8b 00                	mov    (%eax),%eax
40c091:	8b 40 48             	mov    0x48(%eax),%eax
40c094:	f0 ff 00             	lock incl (%eax)
40c097:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c09e:	e8 12 00 00 00       	call   0x40c0b5
40c0a3:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c0a6:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c0ad:	59                   	pop    %ecx
40c0ae:	5f                   	pop    %edi
40c0af:	5e                   	pop    %esi
40c0b0:	5b                   	pop    %ebx
40c0b1:	c9                   	leave
40c0b2:	c2 0c 00             	ret    $0xc
40c0b5:	8b 45 10             	mov    0x10(%ebp),%eax
40c0b8:	ff 30                	push   (%eax)
40c0ba:	e8 15 1f 00 00       	call   0x40dfd4
40c0bf:	59                   	pop    %ecx
40c0c0:	c3                   	ret
40c0c1:	6a 08                	push   $0x8
40c0c3:	68 28 01 42 00       	push   $0x420128
40c0c8:	e8 d3 7d ff ff       	call   0x403ea0
40c0cd:	8b 45 08             	mov    0x8(%ebp),%eax
40c0d0:	ff 30                	push   (%eax)
40c0d2:	e8 b5 1e 00 00       	call   0x40df8c
40c0d7:	59                   	pop    %ecx
40c0d8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c0dc:	8b 45 0c             	mov    0xc(%ebp),%eax
40c0df:	8b 00                	mov    (%eax),%eax
40c0e1:	8b 00                	mov    (%eax),%eax
40c0e3:	8b 48 48             	mov    0x48(%eax),%ecx
40c0e6:	85 c9                	test   %ecx,%ecx
40c0e8:	74 18                	je     0x40c102
40c0ea:	83 c8 ff             	or     $0xffffffff,%eax
40c0ed:	f0 0f c1 01          	lock xadd %eax,(%ecx)
40c0f1:	75 0f                	jne    0x40c102
40c0f3:	81 f9 f0 12 42 00    	cmp    $0x4212f0,%ecx
40c0f9:	74 07                	je     0x40c102
40c0fb:	51                   	push   %ecx
40c0fc:	e8 9e e6 ff ff       	call   0x40a79f
40c101:	59                   	pop    %ecx
40c102:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c109:	e8 12 00 00 00       	call   0x40c120
40c10e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c111:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c118:	59                   	pop    %ecx
40c119:	5f                   	pop    %edi
40c11a:	5e                   	pop    %esi
40c11b:	5b                   	pop    %ebx
40c11c:	c9                   	leave
40c11d:	c2 0c 00             	ret    $0xc
40c120:	8b 45 10             	mov    0x10(%ebp),%eax
40c123:	ff 30                	push   (%eax)
40c125:	e8 aa 1e 00 00       	call   0x40dfd4
40c12a:	59                   	pop    %ecx
40c12b:	c3                   	ret
40c12c:	6a 08                	push   $0x8
40c12e:	68 48 01 42 00       	push   $0x420148
40c133:	e8 68 7d ff ff       	call   0x403ea0
40c138:	8b 45 08             	mov    0x8(%ebp),%eax
40c13b:	ff 30                	push   (%eax)
40c13d:	e8 4a 1e 00 00       	call   0x40df8c
40c142:	59                   	pop    %ecx
40c143:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c147:	6a 00                	push   $0x0
40c149:	8b 45 0c             	mov    0xc(%ebp),%eax
40c14c:	8b 00                	mov    (%eax),%eax
40c14e:	ff 30                	push   (%eax)
40c150:	e8 0d 02 00 00       	call   0x40c362
40c155:	59                   	pop    %ecx
40c156:	59                   	pop    %ecx
40c157:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c15e:	e8 12 00 00 00       	call   0x40c175
40c163:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c166:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c16d:	59                   	pop    %ecx
40c16e:	5f                   	pop    %edi
40c16f:	5e                   	pop    %esi
40c170:	5b                   	pop    %ebx
40c171:	c9                   	leave
40c172:	c2 0c 00             	ret    $0xc
40c175:	8b 45 10             	mov    0x10(%ebp),%eax
40c178:	ff 30                	push   (%eax)
40c17a:	e8 55 1e 00 00       	call   0x40dfd4
40c17f:	59                   	pop    %ecx
40c180:	c3                   	ret
40c181:	6a 08                	push   $0x8
40c183:	68 08 01 42 00       	push   $0x420108
40c188:	e8 13 7d ff ff       	call   0x403ea0
40c18d:	8b 45 08             	mov    0x8(%ebp),%eax
40c190:	ff 30                	push   (%eax)
40c192:	e8 f5 1d 00 00       	call   0x40df8c
40c197:	59                   	pop    %ecx
40c198:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c19c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c19f:	8b 41 04             	mov    0x4(%ecx),%eax
40c1a2:	8b 00                	mov    (%eax),%eax
40c1a4:	ff 30                	push   (%eax)
40c1a6:	8b 01                	mov    (%ecx),%eax
40c1a8:	ff 30                	push   (%eax)
40c1aa:	e8 b3 01 00 00       	call   0x40c362
40c1af:	59                   	pop    %ecx
40c1b0:	59                   	pop    %ecx
40c1b1:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c1b8:	e8 12 00 00 00       	call   0x40c1cf
40c1bd:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c1c0:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c1c7:	59                   	pop    %ecx
40c1c8:	5f                   	pop    %edi
40c1c9:	5e                   	pop    %esi
40c1ca:	5b                   	pop    %ebx
40c1cb:	c9                   	leave
40c1cc:	c2 0c 00             	ret    $0xc
40c1cf:	8b 45 10             	mov    0x10(%ebp),%eax
40c1d2:	ff 30                	push   (%eax)
40c1d4:	e8 fb 1d 00 00       	call   0x40dfd4
40c1d9:	59                   	pop    %ecx
40c1da:	c3                   	ret
40c1db:	8b ff                	mov    %edi,%edi
40c1dd:	55                   	push   %ebp
40c1de:	8b ec                	mov    %esp,%ebp
40c1e0:	83 ec 14             	sub    $0x14,%esp
40c1e3:	8b 45 08             	mov    0x8(%ebp),%eax
40c1e6:	33 c9                	xor    %ecx,%ecx
40c1e8:	41                   	inc    %ecx
40c1e9:	6a 43                	push   $0x43
40c1eb:	89 48 18             	mov    %ecx,0x18(%eax)
40c1ee:	8b 45 08             	mov    0x8(%ebp),%eax
40c1f1:	c7 00 d0 a1 41 00    	movl   $0x41a1d0,(%eax)
40c1f7:	8b 45 08             	mov    0x8(%ebp),%eax
40c1fa:	89 88 50 03 00 00    	mov    %ecx,0x350(%eax)
40c200:	8b 45 08             	mov    0x8(%ebp),%eax
40c203:	59                   	pop    %ecx
40c204:	6a 05                	push   $0x5
40c206:	c7 40 48 f0 12 42 00 	movl   $0x4212f0,0x48(%eax)
40c20d:	8b 45 08             	mov    0x8(%ebp),%eax
40c210:	66 89 48 6c          	mov    %cx,0x6c(%eax)
40c214:	8b 45 08             	mov    0x8(%ebp),%eax
40c217:	66 89 88 72 01 00 00 	mov    %cx,0x172(%eax)
40c21e:	8d 4d ff             	lea    -0x1(%ebp),%ecx
40c221:	8b 45 08             	mov    0x8(%ebp),%eax
40c224:	83 a0 4c 03 00 00 00 	andl   $0x0,0x34c(%eax)
40c22b:	8d 45 08             	lea    0x8(%ebp),%eax
40c22e:	89 45 f0             	mov    %eax,-0x10(%ebp)
40c231:	58                   	pop    %eax
40c232:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c235:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c238:	8d 45 f8             	lea    -0x8(%ebp),%eax
40c23b:	50                   	push   %eax
40c23c:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c23f:	50                   	push   %eax
40c240:	8d 45 ec             	lea    -0x14(%ebp),%eax
40c243:	50                   	push   %eax
40c244:	e8 26 fe ff ff       	call   0x40c06f
40c249:	8d 45 08             	lea    0x8(%ebp),%eax
40c24c:	89 45 f4             	mov    %eax,-0xc(%ebp)
40c24f:	8d 4d ff             	lea    -0x1(%ebp),%ecx
40c252:	6a 04                	push   $0x4
40c254:	8d 45 0c             	lea    0xc(%ebp),%eax
40c257:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c25a:	58                   	pop    %eax
40c25b:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c25e:	89 45 f0             	mov    %eax,-0x10(%ebp)
40c261:	8d 45 ec             	lea    -0x14(%ebp),%eax
40c264:	50                   	push   %eax
40c265:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c268:	50                   	push   %eax
40c269:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c26c:	50                   	push   %eax
40c26d:	e8 0f ff ff ff       	call   0x40c181
40c272:	c9                   	leave
40c273:	c3                   	ret
40c274:	8b ff                	mov    %edi,%edi
40c276:	55                   	push   %ebp
40c277:	8b ec                	mov    %esp,%ebp
40c279:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40c27d:	74 12                	je     0x40c291
40c27f:	ff 75 08             	push   0x8(%ebp)
40c282:	e8 0e 00 00 00       	call   0x40c295
40c287:	ff 75 08             	push   0x8(%ebp)
40c28a:	e8 10 e5 ff ff       	call   0x40a79f
40c28f:	59                   	pop    %ecx
40c290:	59                   	pop    %ecx
40c291:	5d                   	pop    %ebp
40c292:	c2 04 00             	ret    $0x4
40c295:	8b ff                	mov    %edi,%edi
40c297:	55                   	push   %ebp
40c298:	8b ec                	mov    %esp,%ebp
40c29a:	8b 45 08             	mov    0x8(%ebp),%eax
40c29d:	83 ec 10             	sub    $0x10,%esp
40c2a0:	8b 08                	mov    (%eax),%ecx
40c2a2:	81 f9 d0 a1 41 00    	cmp    $0x41a1d0,%ecx
40c2a8:	74 0a                	je     0x40c2b4
40c2aa:	51                   	push   %ecx
40c2ab:	e8 ef e4 ff ff       	call   0x40a79f
40c2b0:	8b 45 08             	mov    0x8(%ebp),%eax
40c2b3:	59                   	pop    %ecx
40c2b4:	ff 70 3c             	push   0x3c(%eax)
40c2b7:	e8 e3 e4 ff ff       	call   0x40a79f
40c2bc:	8b 45 08             	mov    0x8(%ebp),%eax
40c2bf:	ff 70 30             	push   0x30(%eax)
40c2c2:	e8 d8 e4 ff ff       	call   0x40a79f
40c2c7:	8b 45 08             	mov    0x8(%ebp),%eax
40c2ca:	ff 70 34             	push   0x34(%eax)
40c2cd:	e8 cd e4 ff ff       	call   0x40a79f
40c2d2:	8b 45 08             	mov    0x8(%ebp),%eax
40c2d5:	ff 70 38             	push   0x38(%eax)
40c2d8:	e8 c2 e4 ff ff       	call   0x40a79f
40c2dd:	8b 45 08             	mov    0x8(%ebp),%eax
40c2e0:	ff 70 28             	push   0x28(%eax)
40c2e3:	e8 b7 e4 ff ff       	call   0x40a79f
40c2e8:	8b 45 08             	mov    0x8(%ebp),%eax
40c2eb:	ff 70 2c             	push   0x2c(%eax)
40c2ee:	e8 ac e4 ff ff       	call   0x40a79f
40c2f3:	8b 45 08             	mov    0x8(%ebp),%eax
40c2f6:	ff 70 40             	push   0x40(%eax)
40c2f9:	e8 a1 e4 ff ff       	call   0x40a79f
40c2fe:	8b 45 08             	mov    0x8(%ebp),%eax
40c301:	ff 70 44             	push   0x44(%eax)
40c304:	e8 96 e4 ff ff       	call   0x40a79f
40c309:	8b 45 08             	mov    0x8(%ebp),%eax
40c30c:	ff b0 60 03 00 00    	push   0x360(%eax)
40c312:	e8 88 e4 ff ff       	call   0x40a79f
40c317:	83 c4 24             	add    $0x24,%esp
40c31a:	8d 45 08             	lea    0x8(%ebp),%eax
40c31d:	89 45 f4             	mov    %eax,-0xc(%ebp)
40c320:	8d 4d ff             	lea    -0x1(%ebp),%ecx
40c323:	6a 05                	push   $0x5
40c325:	58                   	pop    %eax
40c326:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c329:	89 45 f0             	mov    %eax,-0x10(%ebp)
40c32c:	8d 45 f8             	lea    -0x8(%ebp),%eax
40c32f:	50                   	push   %eax
40c330:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c333:	50                   	push   %eax
40c334:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c337:	50                   	push   %eax
40c338:	e8 84 fd ff ff       	call   0x40c0c1
40c33d:	6a 04                	push   $0x4
40c33f:	8d 45 08             	lea    0x8(%ebp),%eax
40c342:	89 45 f4             	mov    %eax,-0xc(%ebp)
40c345:	8d 4d ff             	lea    -0x1(%ebp),%ecx
40c348:	58                   	pop    %eax
40c349:	89 45 f0             	mov    %eax,-0x10(%ebp)
40c34c:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c34f:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c352:	50                   	push   %eax
40c353:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c356:	50                   	push   %eax
40c357:	8d 45 f8             	lea    -0x8(%ebp),%eax
40c35a:	50                   	push   %eax
40c35b:	e8 cc fd ff ff       	call   0x40c12c
40c360:	c9                   	leave
40c361:	c3                   	ret
40c362:	8b ff                	mov    %edi,%edi
40c364:	55                   	push   %ebp
40c365:	8b ec                	mov    %esp,%ebp
40c367:	56                   	push   %esi
40c368:	8b 75 08             	mov    0x8(%ebp),%esi
40c36b:	83 7e 4c 00          	cmpl   $0x0,0x4c(%esi)
40c36f:	74 28                	je     0x40c399
40c371:	ff 76 4c             	push   0x4c(%esi)
40c374:	e8 4d 3c 00 00       	call   0x40ffc6
40c379:	8b 46 4c             	mov    0x4c(%esi),%eax
40c37c:	59                   	pop    %ecx
40c37d:	3b 05 b4 23 42 00    	cmp    0x4223b4,%eax
40c383:	74 14                	je     0x40c399
40c385:	3d 28 12 42 00       	cmp    $0x421228,%eax
40c38a:	74 0d                	je     0x40c399
40c38c:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40c390:	75 07                	jne    0x40c399
40c392:	50                   	push   %eax
40c393:	e8 63 3a 00 00       	call   0x40fdfb
40c398:	59                   	pop    %ecx
40c399:	8b 45 0c             	mov    0xc(%ebp),%eax
40c39c:	89 46 4c             	mov    %eax,0x4c(%esi)
40c39f:	5e                   	pop    %esi
40c3a0:	85 c0                	test   %eax,%eax
40c3a2:	74 07                	je     0x40c3ab
40c3a4:	50                   	push   %eax
40c3a5:	e8 d4 39 00 00       	call   0x40fd7e
40c3aa:	59                   	pop    %ecx
40c3ab:	5d                   	pop    %ebp
40c3ac:	c3                   	ret
40c3ad:	8b ff                	mov    %edi,%edi
40c3af:	53                   	push   %ebx
40c3b0:	57                   	push   %edi
40c3b1:	ff 15 28 90 41 00    	call   *0x419028
40c3b7:	8b f8                	mov    %eax,%edi
40c3b9:	a1 20 12 42 00       	mov    0x421220,%eax
40c3be:	83 f8 ff             	cmp    $0xffffffff,%eax
40c3c1:	74 1a                	je     0x40c3dd
40c3c3:	50                   	push   %eax
40c3c4:	e8 c9 e6 ff ff       	call   0x40aa92
40c3c9:	85 c0                	test   %eax,%eax
40c3cb:	74 0b                	je     0x40c3d8
40c3cd:	8d 58 01             	lea    0x1(%eax),%ebx
40c3d0:	f7 db                	neg    %ebx
40c3d2:	1b db                	sbb    %ebx,%ebx
40c3d4:	23 d8                	and    %eax,%ebx
40c3d6:	eb 7a                	jmp    0x40c452
40c3d8:	a1 20 12 42 00       	mov    0x421220,%eax
40c3dd:	6a ff                	push   $0xffffffff
40c3df:	50                   	push   %eax
40c3e0:	e8 ec e6 ff ff       	call   0x40aad1
40c3e5:	85 c0                	test   %eax,%eax
40c3e7:	75 04                	jne    0x40c3ed
40c3e9:	33 db                	xor    %ebx,%ebx
40c3eb:	eb 65                	jmp    0x40c452
40c3ed:	56                   	push   %esi
40c3ee:	68 64 03 00 00       	push   $0x364
40c3f3:	6a 01                	push   $0x1
40c3f5:	e8 48 e3 ff ff       	call   0x40a742
40c3fa:	8b f0                	mov    %eax,%esi
40c3fc:	59                   	pop    %ecx
40c3fd:	59                   	pop    %ecx
40c3fe:	85 f6                	test   %esi,%esi
40c400:	75 11                	jne    0x40c413
40c402:	33 db                	xor    %ebx,%ebx
40c404:	53                   	push   %ebx
40c405:	ff 35 20 12 42 00    	push   0x421220
40c40b:	e8 c1 e6 ff ff       	call   0x40aad1
40c410:	53                   	push   %ebx
40c411:	eb 1f                	jmp    0x40c432
40c413:	56                   	push   %esi
40c414:	ff 35 20 12 42 00    	push   0x421220
40c41a:	e8 b2 e6 ff ff       	call   0x40aad1
40c41f:	85 c0                	test   %eax,%eax
40c421:	75 17                	jne    0x40c43a
40c423:	33 db                	xor    %ebx,%ebx
40c425:	53                   	push   %ebx
40c426:	ff 35 20 12 42 00    	push   0x421220
40c42c:	e8 a0 e6 ff ff       	call   0x40aad1
40c431:	56                   	push   %esi
40c432:	e8 68 e3 ff ff       	call   0x40a79f
40c437:	59                   	pop    %ecx
40c438:	eb 17                	jmp    0x40c451
40c43a:	68 b4 23 42 00       	push   $0x4223b4
40c43f:	56                   	push   %esi
40c440:	e8 96 fd ff ff       	call   0x40c1db
40c445:	6a 00                	push   $0x0
40c447:	e8 53 e3 ff ff       	call   0x40a79f
40c44c:	83 c4 0c             	add    $0xc,%esp
40c44f:	8b de                	mov    %esi,%ebx
40c451:	5e                   	pop    %esi
40c452:	57                   	push   %edi
40c453:	ff 15 88 90 41 00    	call   *0x419088
40c459:	85 db                	test   %ebx,%ebx