40e10c:	8b 0d b4 16 41 00    	mov    0x4116b4,%ecx
40e112:	89 08                	mov    %ecx,(%eax)
40e114:	e8 57 07 00 00       	call   0x40e870
40e119:	83 3d 50 13 41 00 00 	cmpl   $0x0,0x411350
40e120:	75 0c                	jne    0x40e12e
40e122:	68 70 e8 40 00       	push   $0x40e870
40e127:	ff 15 ec 21 41 00    	call   *0x4121ec
40e12d:	59                   	pop    %ecx
40e12e:	e8 2a 09 00 00       	call   0x40ea5d
40e133:	33 c0                	xor    %eax,%eax
40e135:	c3                   	ret
40e136:	cc                   	int3
40e137:	cc                   	int3
40e138:	cc                   	int3
40e139:	cc                   	int3
40e13a:	cc                   	int3
40e13b:	cc                   	int3
40e13c:	cc                   	int3
40e13d:	cc                   	int3
40e13e:	cc                   	int3
40e13f:	cc                   	int3
40e140:	a1 bc 16 41 00       	mov    0x4116bc,%eax
40e145:	68 90 13 41 00       	push   $0x411390
40e14a:	ff 35 b8 16 41 00    	push   0x4116b8
40e150:	a3 90 13 41 00       	mov    %eax,0x411390
40e155:	68 84 13 41 00       	push   $0x411384
40e15a:	68 80 13 41 00       	push   $0x411380
40e15f:	68 7c 13 41 00       	push   $0x41137c
40e164:	ff 15 38 21 41 00    	call   *0x412138
40e16a:	83 c4 14             	add    $0x14,%esp
40e16d:	a3 88 13 41 00       	mov    %eax,0x411388
40e172:	c3                   	ret
40e173:	6a 0c                	push   $0xc
40e175:	68 b8 02 41 00       	push   $0x4102b8
40e17a:	e8 f9 08 00 00       	call   0x40ea78
40e17f:	33 db                	xor    %ebx,%ebx
40e181:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40e184:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
40e18a:	8b 70 04             	mov    0x4(%eax),%esi
40e18d:	8b fb                	mov    %ebx,%edi
40e18f:	ba 1c 17 41 00       	mov    $0x41171c,%edx
40e194:	8b ce                	mov    %esi,%ecx
40e196:	33 c0                	xor    %eax,%eax
40e198:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
40e19c:	85 c0                	test   %eax,%eax
40e19e:	74 18                	je     0x40e1b8
40e1a0:	3b c6                	cmp    %esi,%eax
40e1a2:	75 07                	jne    0x40e1ab
40e1a4:	33 f6                	xor    %esi,%esi
40e1a6:	46                   	inc    %esi
40e1a7:	8b fe                	mov    %esi,%edi
40e1a9:	eb 10                	jmp    0x40e1bb
40e1ab:	68 e8 03 00 00       	push   $0x3e8
40e1b0:	ff 15 08 21 41 00    	call   *0x412108
40e1b6:	eb d7                	jmp    0x40e18f
40e1b8:	33 f6                	xor    %esi,%esi
40e1ba:	46                   	inc    %esi
40e1bb:	39 35 20 17 41 00    	cmp    %esi,0x411720
40e1c1:	75 0a                	jne    0x40e1cd
40e1c3:	6a 1f                	push   $0x1f
40e1c5:	e8 94 06 00 00       	call   0x40e85e
40e1ca:	59                   	pop    %ecx
40e1cb:	eb 3a                	jmp    0x40e207
40e1cd:	39 1d 20 17 41 00    	cmp    %ebx,0x411720
40e1d3:	75 2c                	jne    0x40e201
40e1d5:	89 35 20 17 41 00    	mov    %esi,0x411720
40e1db:	68 d8 16 40 00       	push   $0x4016d8
40e1e0:	68 cc 16 40 00       	push   $0x4016cc
40e1e5:	e8 02 01 00 00       	call   0x40e2ec
40e1ea:	59                   	pop    %ecx
40e1eb:	59                   	pop    %ecx
40e1ec:	85 c0                	test   %eax,%eax
40e1ee:	74 17                	je     0x40e207
40e1f0:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40e1f7:	b8 ff 00 00 00       	mov    $0xff,%eax
40e1fc:	e9 db 00 00 00       	jmp    0x40e2dc
40e201:	89 35 78 13 41 00    	mov    %esi,0x411378
40e207:	39 35 20 17 41 00    	cmp    %esi,0x411720
40e20d:	75 1b                	jne    0x40e22a
40e20f:	68 c8 16 40 00       	push   $0x4016c8
40e214:	68 b4 16 40 00       	push   $0x4016b4
40e219:	e8 52 08 00 00       	call   0x40ea70
40e21e:	59                   	pop    %ecx
40e21f:	59                   	pop    %ecx
40e220:	c7 05 20 17 41 00 02 	movl   $0x2,0x411720
40e227:	00 00 00
40e22a:	85 ff                	test   %edi,%edi
40e22c:	75 09                	jne    0x40e237
40e22e:	33 c0                	xor    %eax,%eax
40e230:	b9 1c 17 41 00       	mov    $0x41171c,%ecx
40e235:	87 01                	xchg   %eax,(%ecx)
40e237:	83 3d 2c 17 41 00 00 	cmpl   $0x0,0x41172c
40e23e:	74 23                	je     0x40e263
40e240:	68 2c 17 41 00       	push   $0x41172c
40e245:	e8 86 06 00 00       	call   0x40e8d0
40e24a:	59                   	pop    %ecx
40e24b:	85 c0                	test   %eax,%eax
40e24d:	74 14                	je     0x40e263
40e24f:	53                   	push   %ebx
40e250:	6a 02                	push   $0x2
40e252:	53                   	push   %ebx
40e253:	8b 35 2c 17 41 00    	mov    0x41172c,%esi
40e259:	8b ce                	mov    %esi,%ecx
40e25b:	ff 15 10 22 41 00    	call   *0x412210
40e261:	ff d6                	call   *%esi
40e263:	ff 35 84 13 41 00    	push   0x411384
40e269:	ff 35 80 13 41 00    	push   0x411380
40e26f:	ff 35 7c 13 41 00    	push   0x41137c
40e275:	e8 92 7a ff ff       	call   0x405d0c
40e27a:	83 c4 0c             	add    $0xc,%esp
40e27d:	a3 74 13 41 00       	mov    %eax,0x411374
40e282:	83 3d 8c 13 41 00 00 	cmpl   $0x0,0x41138c
40e289:	75 36                	jne    0x40e2c1
40e28b:	50                   	push   %eax
40e28c:	ff 15 40 21 41 00    	call   *0x412140
40e292:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40e295:	8b 01                	mov    (%ecx),%eax
40e297:	8b 00                	mov    (%eax),%eax
40e299:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40e29c:	51                   	push   %ecx
40e29d:	50                   	push   %eax
40e29e:	e8 0b 05 00 00       	call   0x40e7ae
40e2a3:	59                   	pop    %ecx
40e2a4:	59                   	pop    %ecx
40e2a5:	c3                   	ret
40e2a6:	8b 65 e8             	mov    -0x18(%ebp),%esp
40e2a9:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e2ac:	a3 74 13 41 00       	mov    %eax,0x411374
40e2b1:	83 3d 8c 13 41 00 00 	cmpl   $0x0,0x41138c
40e2b8:	75 07                	jne    0x40e2c1
40e2ba:	50                   	push   %eax
40e2bb:	ff 15 44 21 41 00    	call   *0x412144
40e2c1:	83 3d 78 13 41 00 00 	cmpl   $0x0,0x411378
40e2c8:	75 0b                	jne    0x40e2d5
40e2ca:	ff 15 50 21 41 00    	call   *0x412150
40e2d0:	a1 74 13 41 00       	mov    0x411374,%eax
40e2d5:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40e2dc:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e2df:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e2e6:	59                   	pop    %ecx
40e2e7:	5f                   	pop    %edi
40e2e8:	5e                   	pop    %esi
40e2e9:	5b                   	pop    %ebx
40e2ea:	c9                   	leave
40e2eb:	c3                   	ret
40e2ec:	8b ff                	mov    %edi,%edi
40e2ee:	55                   	push   %ebp
40e2ef:	8b ec                	mov    %esp,%ebp
40e2f1:	56                   	push   %esi
40e2f2:	8b 75 08             	mov    0x8(%ebp),%esi
40e2f5:	33 c0                	xor    %eax,%eax
40e2f7:	3b 75 0c             	cmp    0xc(%ebp),%esi
40e2fa:	73 1e                	jae    0x40e31a
40e2fc:	57                   	push   %edi
40e2fd:	85 c0                	test   %eax,%eax
40e2ff:	75 18                	jne    0x40e319
40e301:	8b 3e                	mov    (%esi),%edi
40e303:	85 ff                	test   %edi,%edi
40e305:	74 0a                	je     0x40e311
40e307:	8b cf                	mov    %edi,%ecx
40e309:	ff 15 10 22 41 00    	call   *0x412210
40e30f:	ff d7                	call   *%edi
40e311:	83 c6 04             	add    $0x4,%esi
40e314:	3b 75 0c             	cmp    0xc(%ebp),%esi
40e317:	72 e4                	jb     0x40e2fd
40e319:	5f                   	pop    %edi
40e31a:	5e                   	pop    %esi
40e31b:	5d                   	pop    %ebp
40e31c:	c3                   	ret
40e31d:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
40e322:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
40e329:	75 55                	jne    0x40e380
40e32b:	8b 0d 3c 00 40 00    	mov    0x40003c,%ecx
40e331:	81 b9 00 00 40 00 50 	cmpl   $0x4550,0x400000(%ecx)
40e338:	45 00 00
40e33b:	75 43                	jne    0x40e380
40e33d:	0f b7 81 18 00 40 00 	movzwl 0x400018(%ecx),%eax
40e344:	ba 0b 01 00 00       	mov    $0x10b,%edx
40e349:	66 3b c2             	cmp    %dx,%ax
40e34c:	74 1f                	je     0x40e36d
40e34e:	ba 0b 02 00 00       	mov    $0x20b,%edx
40e353:	66 3b c2             	cmp    %dx,%ax
40e356:	75 28                	jne    0x40e380
40e358:	83 b9 84 00 40 00 0e 	cmpl   $0xe,0x400084(%ecx)
40e35f:	76 1f                	jbe    0x40e380
40e361:	33 c0                	xor    %eax,%eax
40e363:	39 81 f8 00 40 00    	cmp    %eax,0x4000f8(%ecx)
40e369:	0f 95 c0             	setne  %al
40e36c:	c3                   	ret
40e36d:	83 b9 74 00 40 00 0e 	cmpl   $0xe,0x400074(%ecx)
40e374:	76 0a                	jbe    0x40e380
40e376:	33 c0                	xor    %eax,%eax
40e378:	39 81 e8 00 40 00    	cmp    %eax,0x4000e8(%ecx)
40e37e:	eb e9                	jmp    0x40e369
40e380:	33 c0                	xor    %eax,%eax
40e382:	c3                   	ret
40e383:	cc                   	int3
40e384:	cc                   	int3
40e385:	cc                   	int3
40e386:	cc                   	int3
40e387:	cc                   	int3
40e388:	cc                   	int3
40e389:	cc                   	int3
40e38a:	cc                   	int3
40e38b:	cc                   	int3
40e38c:	cc                   	int3
40e38d:	cc                   	int3
40e38e:	cc                   	int3
40e38f:	cc                   	int3
40e390:	e8 30 06 00 00       	call   0x40e9c5
40e395:	e9 d9 fd ff ff       	jmp    0x40e173
40e39a:	ff 25 dc 21 41 00    	jmp    *0x4121dc
40e3a0:	3b 0d 54 13 41 00    	cmp    0x411354,%ecx
40e3a6:	75 03                	jne    0x40e3ab
40e3a8:	c2 00 00             	ret    $0x0
40e3ab:	e9 2c 01 00 00       	jmp    0x40e4dc
40e3b0:	6a 14                	push   $0x14
40e3b2:	68 d8 02 41 00       	push   $0x4102d8
40e3b7:	e8 bc 06 00 00       	call   0x40ea78
40e3bc:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
40e3c0:	a1 28 17 41 00       	mov    0x411728,%eax
40e3c5:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40e3c8:	83 f8 ff             	cmp    $0xffffffff,%eax
40e3cb:	75 16                	jne    0x40e3e3
40e3cd:	ff 75 08             	push   0x8(%ebp)
40e3d0:	8b 35 80 21 41 00    	mov    0x412180,%esi
40e3d6:	8b ce                	mov    %esi,%ecx
40e3d8:	ff 15 10 22 41 00    	call   *0x412210
40e3de:	ff d6                	call   *%esi
40e3e0:	59                   	pop    %ecx
40e3e1:	eb 54                	jmp    0x40e437
40e3e3:	6a 08                	push   $0x8
40e3e5:	e8 1b 07 00 00       	call   0x40eb05
40e3ea:	59                   	pop    %ecx
40e3eb:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e3ef:	a1 28 17 41 00       	mov    0x411728,%eax
40e3f4:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40e3f7:	a1 24 17 41 00       	mov    0x411724,%eax
40e3fc:	89 45 e0             	mov    %eax,-0x20(%ebp)
40e3ff:	8d 45 e0             	lea    -0x20(%ebp),%eax
40e402:	50                   	push   %eax
40e403:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40e406:	50                   	push   %eax
40e407:	ff 75 08             	push   0x8(%ebp)
40e40a:	e8 02 07 00 00       	call   0x40eb11
40e40f:	83 c4 0c             	add    $0xc,%esp
40e412:	8b f0                	mov    %eax,%esi
40e414:	89 75 dc             	mov    %esi,-0x24(%ebp)
40e417:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40e41a:	89 0d 28 17 41 00    	mov    %ecx,0x411728
40e420:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40e423:	89 0d 24 17 41 00    	mov    %ecx,0x411724
40e429:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40e430:	e8 15 00 00 00       	call   0x40e44a
40e435:	8b c6                	mov    %esi,%eax
40e437:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e43a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e441:	59                   	pop    %ecx
40e442:	5f                   	pop    %edi
40e443:	5e                   	pop    %esi
40e444:	5b                   	pop    %ebx
40e445:	c9                   	leave
40e446:	c3                   	ret
40e447:	8b 75 dc             	mov    -0x24(%ebp),%esi
40e44a:	6a 08                	push   $0x8
40e44c:	e8 ba 06 00 00       	call   0x40eb0b
40e451:	59                   	pop    %ecx
40e452:	c3                   	ret
40e453:	8b ff                	mov    %edi,%edi
40e455:	55                   	push   %ebp
40e456:	8b ec                	mov    %esp,%ebp
40e458:	ff 75 08             	push   0x8(%ebp)
40e45b:	e8 50 ff ff ff       	call   0x40e3b0
40e460:	f7 d8                	neg    %eax
40e462:	59                   	pop    %ecx
40e463:	1b c0                	sbb    %eax,%eax
40e465:	f7 d8                	neg    %eax
40e467:	48                   	dec    %eax
40e468:	5d                   	pop    %ebp
40e469:	c3                   	ret
40e46a:	ff 25 e4 21 41 00    	jmp    *0x4121e4
40e470:	ff 25 d8 21 41 00    	jmp    *0x4121d8
40e476:	cc                   	int3
40e477:	cc                   	int3
40e478:	cc                   	int3
40e479:	cc                   	int3
40e47a:	cc                   	int3
40e47b:	cc                   	int3
40e47c:	cc                   	int3
40e47d:	cc                   	int3
40e47e:	cc                   	int3
40e47f:	cc                   	int3
40e480:	ff 25 64 21 41 00    	jmp    *0x412164
40e486:	cc                   	int3
40e487:	cc                   	int3
40e488:	cc                   	int3
40e489:	cc                   	int3
40e48a:	cc                   	int3
40e48b:	cc                   	int3
40e48c:	cc                   	int3
40e48d:	cc                   	int3
40e48e:	cc                   	int3
40e48f:	cc                   	int3
40e490:	8b ff                	mov    %edi,%edi
40e492:	55                   	push   %ebp
40e493:	8b ec                	mov    %esp,%ebp
40e495:	56                   	push   %esi
40e496:	8b f1                	mov    %ecx,%esi
40e498:	ff 15 60 21 41 00    	call   *0x412160
40e49e:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40e4a2:	74 07                	je     0x40e4ab
40e4a4:	56                   	push   %esi
40e4a5:	e8 c0 ff ff ff       	call   0x40e46a
40e4aa:	59                   	pop    %ecx
40e4ab:	8b c6                	mov    %esi,%eax
40e4ad:	5e                   	pop    %esi
40e4ae:	5d                   	pop    %ebp
40e4af:	c2 04 00             	ret    $0x4
40e4b2:	8b ff                	mov    %edi,%edi
40e4b4:	55                   	push   %ebp
40e4b5:	8b ec                	mov    %esp,%ebp
40e4b7:	6a 00                	push   $0x0
40e4b9:	ff 15 78 20 41 00    	call   *0x412078
40e4bf:	ff 75 08             	push   0x8(%ebp)
40e4c2:	ff 15 74 20 41 00    	call   *0x412074
40e4c8:	68 09 04 00 c0       	push   $0xc0000409
40e4cd:	ff 15 dc 20 41 00    	call   *0x4120dc
40e4d3:	50                   	push   %eax
40e4d4:	ff 15 e0 20 41 00    	call   *0x4120e0
40e4da:	5d                   	pop    %ebp
40e4db:	c3                   	ret
40e4dc:	8b ff                	mov    %edi,%edi
40e4de:	55                   	push   %ebp
40e4df:	8b ec                	mov    %esp,%ebp
40e4e1:	81 ec 24 03 00 00    	sub    $0x324,%esp
40e4e7:	a3 98 14 41 00       	mov    %eax,0x411498
40e4ec:	89 0d 94 14 41 00    	mov    %ecx,0x411494
40e4f2:	89 15 90 14 41 00    	mov    %edx,0x411490
40e4f8:	89 1d 8c 14 41 00    	mov    %ebx,0x41148c
40e4fe:	89 35 88 14 41 00    	mov    %esi,0x411488
40e504:	89 3d 84 14 41 00    	mov    %edi,0x411484
40e50a:	66 8c 15 b0 14 41 00 	data16 mov %ss,0x4114b0
40e511:	66 8c 0d a4 14 41 00 	data16 mov %cs,0x4114a4
40e518:	66 8c 1d 80 14 41 00 	data16 mov %ds,0x411480
40e51f:	66 8c 05 7c 14 41 00 	data16 mov %es,0x41147c
40e526:	66 8c 25 78 14 41 00 	data16 mov %fs,0x411478
40e52d:	66 8c 2d 74 14 41 00 	data16 mov %gs,0x411474
40e534:	9c                   	pushf
40e535:	8f 05 a8 14 41 00    	pop    0x4114a8
40e53b:	8b 45 00             	mov    0x0(%ebp),%eax