40c213:	a1 08 85 43 00       	mov    0x438508,%eax
40c218:	33 c5                	xor    %ebp,%eax
40c21a:	50                   	push   %eax
40c21b:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c21e:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40c224:	8b 09                	mov    (%ecx),%ecx
40c226:	85 c9                	test   %ecx,%ecx
40c228:	74 10                	je     0x40c23a
40c22a:	8b 01                	mov    (%ecx),%eax
40c22c:	51                   	push   %ecx
40c22d:	8b 70 08             	mov    0x8(%eax),%esi
40c230:	8b ce                	mov    %esi,%ecx
40c232:	ff 15 20 a5 43 00    	call   *0x43a520
40c238:	ff d6                	call   *%esi
40c23a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c23d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c244:	59                   	pop    %ecx
40c245:	5e                   	pop    %esi
40c246:	c9                   	leave
40c247:	c3                   	ret
40c248:	8b ff                	mov    %edi,%edi
40c24a:	55                   	push   %ebp
40c24b:	8b ec                	mov    %esp,%ebp
40c24d:	6a ff                	push   $0xffffffff
40c24f:	68 6e e2 41 00       	push   $0x41e26e
40c254:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40c25a:	50                   	push   %eax
40c25b:	56                   	push   %esi
40c25c:	a1 08 85 43 00       	mov    0x438508,%eax
40c261:	33 c5                	xor    %ebp,%eax
40c263:	50                   	push   %eax
40c264:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c267:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40c26d:	8b 09                	mov    (%ecx),%ecx
40c26f:	85 c9                	test   %ecx,%ecx
40c271:	75 0e                	jne    0x40c281
40c273:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c276:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c27d:	59                   	pop    %ecx
40c27e:	5e                   	pop    %esi
40c27f:	c9                   	leave
40c280:	c3                   	ret
40c281:	8b 01                	mov    (%ecx),%eax
40c283:	51                   	push   %ecx
40c284:	8b 70 08             	mov    0x8(%eax),%esi
40c287:	8b ce                	mov    %esi,%ecx
40c289:	ff 15 20 a5 43 00    	call   *0x43a520
40c28f:	ff d6                	call   *%esi
40c291:	eb e0                	jmp    0x40c273
40c293:	6a 08                	push   $0x8
40c295:	b8 99 e2 41 00       	mov    $0x41e299,%eax
40c29a:	e8 6f eb 00 00       	call   0x41ae0e
40c29f:	8b 3d 38 8a 43 00    	mov    0x438a38,%edi
40c2a5:	33 c0                	xor    %eax,%eax
40c2a7:	8b 35 00 8f 43 00    	mov    0x438f00,%esi
40c2ad:	39 47 7c             	cmp    %eax,0x7c(%edi)
40c2b0:	0f 85 cc 00 00 00    	jne    0x40c382
40c2b6:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c2b9:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c2bc:	89 45 f0             	mov    %eax,-0x10(%ebp)
40c2bf:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c2c2:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40c2c6:	8b 57 04             	mov    0x4(%edi),%edx
40c2c9:	8d 4f 54             	lea    0x54(%edi),%ecx
40c2cc:	50                   	push   %eax
40c2cd:	8d 45 ec             	lea    -0x14(%ebp),%eax
40c2d0:	50                   	push   %eax
40c2d1:	e8 17 fe ff ff       	call   0x40c0ed
40c2d6:	89 87 80 00 00 00    	mov    %eax,0x80(%edi)
40c2dc:	85 c0                	test   %eax,%eax
40c2de:	0f 88 87 00 00 00    	js     0x40c36b
40c2e4:	ff 75 f0             	push   -0x10(%ebp)
40c2e7:	8b 45 08             	mov    0x8(%ebp),%eax
40c2ea:	8b d6                	mov    %esi,%edx
40c2ec:	ff 75 ec             	push   -0x14(%ebp)
40c2ef:	ff 77 04             	push   0x4(%edi)
40c2f2:	8b 48 04             	mov    0x4(%eax),%ecx
40c2f5:	e8 6c b2 00 00       	call   0x417566
40c2fa:	89 87 80 00 00 00    	mov    %eax,0x80(%edi)
40c300:	85 c0                	test   %eax,%eax
40c302:	78 67                	js     0x40c36b
40c304:	ff 75 ec             	push   -0x14(%ebp)
40c307:	8d 5f 70             	lea    0x70(%edi),%ebx
40c30a:	8b cb                	mov    %ebx,%ecx
40c30c:	e8 a8 00 00 00       	call   0x40c3b9
40c311:	ff 75 f0             	push   -0x10(%ebp)
40c314:	8d 4f 64             	lea    0x64(%edi),%ecx
40c317:	e8 9d 00 00 00       	call   0x40c3b9
40c31c:	8b 4f 64             	mov    0x64(%edi),%ecx
40c31f:	85 c9                	test   %ecx,%ecx
40c321:	74 6d                	je     0x40c390
40c323:	8b 31                	mov    (%ecx),%esi
40c325:	8d 47 78             	lea    0x78(%edi),%eax
40c328:	50                   	push   %eax
40c329:	68 60 3f 40 00       	push   $0x403f60
40c32e:	51                   	push   %ecx
40c32f:	8b 0e                	mov    (%esi),%ecx
40c331:	ff 15 20 a5 43 00    	call   *0x43a520
40c337:	ff 16                	call   *(%esi)
40c339:	8b 4f 64             	mov    0x64(%edi),%ecx
40c33c:	8d 47 68             	lea    0x68(%edi),%eax
40c33f:	50                   	push   %eax
40c340:	68 40 3f 40 00       	push   $0x403f40
40c345:	51                   	push   %ecx
40c346:	8b 31                	mov    (%ecx),%esi
40c348:	8b 0e                	mov    (%esi),%ecx
40c34a:	ff 15 20 a5 43 00    	call   *0x43a520
40c350:	ff 16                	call   *(%esi)
40c352:	8b 4f 64             	mov    0x64(%edi),%ecx
40c355:	8d 47 6c             	lea    0x6c(%edi),%eax
40c358:	50                   	push   %eax
40c359:	68 50 3f 40 00       	push   $0x403f50
40c35e:	8b 31                	mov    (%ecx),%esi
40c360:	51                   	push   %ecx
40c361:	8b 0e                	mov    (%esi),%ecx
40c363:	ff 15 20 a5 43 00    	call   *0x43a520
40c369:	ff 16                	call   *(%esi)
40c36b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40c36e:	c7 47 7c 01 00 00 00 	movl   $0x1,0x7c(%edi)
40c375:	e8 85 fe ff ff       	call   0x40c1ff
40c37a:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40c37d:	e8 c6 fe ff ff       	call   0x40c248
40c382:	8b 87 80 00 00 00    	mov    0x80(%edi),%eax
40c388:	e8 4f ea 00 00       	call   0x41addc
40c38d:	c2 08 00             	ret    $0x8
40c390:	8b 0b                	mov    (%ebx),%ecx
40c392:	85 c9                	test   %ecx,%ecx
40c394:	74 d5                	je     0x40c36b
40c396:	8b 31                	mov    (%ecx),%esi
40c398:	8d 47 78             	lea    0x78(%edi),%eax
40c39b:	50                   	push   %eax
40c39c:	68 60 3f 40 00       	push   $0x403f60
40c3a1:	51                   	push   %ecx
40c3a2:	8b 0e                	mov    (%esi),%ecx
40c3a4:	ff 15 20 a5 43 00    	call   *0x43a520
40c3aa:	ff 16                	call   *(%esi)
40c3ac:	8b 0b                	mov    (%ebx),%ecx
40c3ae:	8d 47 74             	lea    0x74(%edi),%eax
40c3b1:	50                   	push   %eax
40c3b2:	68 d0 3e 40 00       	push   $0x403ed0
40c3b7:	eb a5                	jmp    0x40c35e
40c3b9:	8b ff                	mov    %edi,%edi
40c3bb:	55                   	push   %ebp
40c3bc:	8b ec                	mov    %esp,%ebp
40c3be:	53                   	push   %ebx
40c3bf:	56                   	push   %esi
40c3c0:	57                   	push   %edi
40c3c1:	8b 7d 08             	mov    0x8(%ebp),%edi
40c3c4:	8b d9                	mov    %ecx,%ebx
40c3c6:	85 ff                	test   %edi,%edi
40c3c8:	74 10                	je     0x40c3da
40c3ca:	8b 07                	mov    (%edi),%eax
40c3cc:	57                   	push   %edi
40c3cd:	8b 70 04             	mov    0x4(%eax),%esi
40c3d0:	8b ce                	mov    %esi,%ecx
40c3d2:	ff 15 20 a5 43 00    	call   *0x43a520
40c3d8:	ff d6                	call   *%esi
40c3da:	8b 03                	mov    (%ebx),%eax
40c3dc:	85 c0                	test   %eax,%eax
40c3de:	0f 85 3c 3f 01 00    	jne    0x420320
40c3e4:	89 3b                	mov    %edi,(%ebx)
40c3e6:	8b c7                	mov    %edi,%eax
40c3e8:	5f                   	pop    %edi
40c3e9:	5e                   	pop    %esi
40c3ea:	5b                   	pop    %ebx
40c3eb:	5d                   	pop    %ebp
40c3ec:	c2 04 00             	ret    $0x4
40c3ef:	83 61 04 00          	andl   $0x0,0x4(%ecx)
40c3f3:	8d 51 10             	lea    0x10(%ecx),%edx
40c3f6:	83 62 0c 00          	andl   $0x0,0xc(%edx)
40c3fa:	8d 42 04             	lea    0x4(%edx),%eax
40c3fd:	89 00                	mov    %eax,(%eax)
40c3ff:	89 02                	mov    %eax,(%edx)
40c401:	8b c1                	mov    %ecx,%eax
40c403:	89 52 08             	mov    %edx,0x8(%edx)
40c406:	c7 41 0c b8 10 40 00 	movl   $0x4010b8,0xc(%ecx)
40c40d:	83 61 20 00          	andl   $0x0,0x20(%ecx)
40c411:	c7 01 a8 10 40 00    	movl   $0x4010a8,(%ecx)
40c417:	c2 04 00             	ret    $0x4
40c41a:	e8 09 00 00 00       	call   0x40c428
40c41f:	c7 01 bc 10 40 00    	movl   $0x4010bc,(%ecx)
40c425:	8b c1                	mov    %ecx,%eax
40c427:	c3                   	ret
40c428:	33 d2                	xor    %edx,%edx
40c42a:	c7 01 bc 10 40 00    	movl   $0x4010bc,(%ecx)
40c430:	89 51 08             	mov    %edx,0x8(%ecx)
40c433:	33 c0                	xor    %eax,%eax
40c435:	89 41 04             	mov    %eax,0x4(%ecx)
40c438:	b8 00 20 00 00       	mov    $0x2000,%eax
40c43d:	89 51 0c             	mov    %edx,0xc(%ecx)
40c440:	89 51 10             	mov    %edx,0x10(%ecx)
40c443:	89 51 24             	mov    %edx,0x24(%ecx)
40c446:	89 51 28             	mov    %edx,0x28(%ecx)
40c449:	89 51 2c             	mov    %edx,0x2c(%ecx)
40c44c:	89 51 30             	mov    %edx,0x30(%ecx)
40c44f:	89 51 34             	mov    %edx,0x34(%ecx)
40c452:	89 51 38             	mov    %edx,0x38(%ecx)
40c455:	89 51 3c             	mov    %edx,0x3c(%ecx)
40c458:	89 41 40             	mov    %eax,0x40(%ecx)
40c45b:	89 41 44             	mov    %eax,0x44(%ecx)
40c45e:	8d 41 5c             	lea    0x5c(%ecx),%eax
40c461:	c7 41 48 c0 d4 01 00 	movl   $0x1d4c0,0x48(%ecx)
40c468:	89 41 50             	mov    %eax,0x50(%ecx)
40c46b:	c7 41 54 21 00 00 00 	movl   $0x21,0x54(%ecx)
40c472:	89 51 58             	mov    %edx,0x58(%ecx)
40c475:	66 89 10             	mov    %dx,(%eax)
40c478:	8b c1                	mov    %ecx,%eax
40c47a:	c7 41 4c c4 10 40 00 	movl   $0x4010c4,0x4c(%ecx)
40c481:	c3                   	ret
40c482:	83 21 00             	andl   $0x0,(%ecx)
40c485:	8b c1                	mov    %ecx,%eax
40c487:	c3                   	ret
40c488:	8b ff                	mov    %edi,%edi
40c48a:	55                   	push   %ebp
40c48b:	8b ec                	mov    %esp,%ebp
40c48d:	51                   	push   %ecx
40c48e:	53                   	push   %ebx
40c48f:	8b 1d 00 8f 43 00    	mov    0x438f00,%ebx
40c495:	57                   	push   %edi
40c496:	8b 3d 1c 8a 43 00    	mov    0x438a1c,%edi
40c49c:	85 db                	test   %ebx,%ebx
40c49e:	74 2a                	je     0x40c4ca
40c4a0:	85 ff                	test   %edi,%edi
40c4a2:	74 2d                	je     0x40c4d1
40c4a4:	8b 07                	mov    (%edi),%eax
40c4a6:	56                   	push   %esi
40c4a7:	57                   	push   %edi
40c4a8:	8b 70 04             	mov    0x4(%eax),%esi
40c4ab:	8b ce                	mov    %esi,%ecx
40c4ad:	ff 15 20 a5 43 00    	call   *0x43a520
40c4b3:	ff d6                	call   *%esi
40c4b5:	8b 4b 0c             	mov    0xc(%ebx),%ecx
40c4b8:	85 c9                	test   %ecx,%ecx
40c4ba:	0f 85 75 3e 01 00    	jne    0x420335
40c4c0:	89 7b 0c             	mov    %edi,0xc(%ebx)
40c4c3:	33 c0                	xor    %eax,%eax
40c4c5:	5e                   	pop    %esi
40c4c6:	5f                   	pop    %edi
40c4c7:	5b                   	pop    %ebx
40c4c8:	c9                   	leave
40c4c9:	c3                   	ret
40c4ca:	b8 0a 00 00 80       	mov    $0x8000000a,%eax
40c4cf:	eb f5                	jmp    0x40c4c6
40c4d1:	b8 03 40 00 80       	mov    $0x80004003,%eax
40c4d6:	eb ee                	jmp    0x40c4c6
40c4d8:	6a 10                	push   $0x10
40c4da:	b8 be e2 41 00       	mov    $0x41e2be,%eax
40c4df:	e8 93 e9 00 00       	call   0x41ae77
40c4e4:	8b d9                	mov    %ecx,%ebx
40c4e6:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40c4e9:	85 db                	test   %ebx,%ebx
40c4eb:	74 49                	je     0x40c536
40c4ed:	33 ff                	xor    %edi,%edi
40c4ef:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c4f2:	8b 35 3c 1a 40 00    	mov    0x401a3c,%esi
40c4f8:	8b ce                	mov    %esi,%ecx
40c4fa:	6a 10                	push   $0x10
40c4fc:	89 3b                	mov    %edi,(%ebx)
40c4fe:	89 7d e8             	mov    %edi,-0x18(%ebp)
40c501:	ff 15 20 a5 43 00    	call   *0x43a520
40c507:	ff d6                	call   *%esi
40c509:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c50c:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40c510:	85 c0                	test   %eax,%eax
40c512:	74 0a                	je     0x40c51e
40c514:	51                   	push   %ecx
40c515:	8b c8                	mov    %eax,%ecx
40c517:	e8 21 00 00 00       	call   0x40c53d
40c51c:	8b f8                	mov    %eax,%edi
40c51e:	8b c7                	mov    %edi,%eax
40c520:	89 3b                	mov    %edi,(%ebx)
40c522:	f7 d8                	neg    %eax
40c524:	1b c0                	sbb    %eax,%eax
40c526:	25 f2 ff f8 7f       	and    $0x7ff8fff2,%eax
40c52b:	05 0e 00 07 80       	add    $0x8007000e,%eax
40c530:	e8 a7 e8 00 00       	call   0x41addc
40c535:	c3                   	ret
40c536:	b8 03 40 00 80       	mov    $0x80004003,%eax
40c53b:	eb f3                	jmp    0x40c530
40c53d:	6a 04                	push   $0x4
40c53f:	b8 e1 e2 41 00       	mov    $0x41e2e1,%eax
40c544:	e8 c5 e8 00 00       	call   0x41ae0e
40c549:	8b f1                	mov    %ecx,%esi
40c54b:	89 75 f0             	mov    %esi,-0x10(%ebp)
40c54e:	33 c0                	xor    %eax,%eax
40c550:	89 46 04             	mov    %eax,0x4(%esi)
40c553:	89 46 0c             	mov    %eax,0xc(%esi)
40c556:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c559:	8b 3d 6c 8a 43 00    	mov    0x438a6c,%edi
40c55f:	c7 06 e0 10 40 00    	movl   $0x4010e0,(%esi)
40c565:	8b 07                	mov    (%edi),%eax
40c567:	8b 58 04             	mov    0x4(%eax),%ebx
40c56a:	81 fb 90 c5 40 00    	cmp    $0x40c590,%ebx
40c570:	0f 85 e5 3d 01 00    	jne    0x42035b
40c576:	8b cf                	mov    %edi,%ecx
40c578:	e8 13 00 00 00       	call   0x40c590
40c57d:	8b c6                	mov    %esi,%eax
40c57f:	e8 58 e8 00 00       	call   0x41addc
40c584:	c2 04 00             	ret    $0x4
40c587:	cc                   	int3
40c588:	cc                   	int3
40c589:	cc                   	int3
40c58a:	cc                   	int3
40c58b:	cc                   	int3
40c58c:	cc                   	int3
40c58d:	cc                   	int3
40c58e:	cc                   	int3
40c58f:	cc                   	int3
40c590:	33 c0                	xor    %eax,%eax
40c592:	40                   	inc    %eax
40c593:	f0 0f c1 41 08       	lock xadd %eax,0x8(%ecx)
40c598:	40                   	inc    %eax
40c599:	c3                   	ret
40c59a:	8b ff                	mov    %edi,%edi
40c59c:	55                   	push   %ebp
40c59d:	8b ec                	mov    %esp,%ebp
40c59f:	8b 55 08             	mov    0x8(%ebp),%edx
40c5a2:	56                   	push   %esi
40c5a3:	8b f1                	mov    %ecx,%esi
40c5a5:	89 16                	mov    %edx,(%esi)
40c5a7:	85 d2                	test   %edx,%edx
40c5a9:	74 19                	je     0x40c5c4
40c5ab:	8b 02                	mov    (%edx),%eax
40c5ad:	57                   	push   %edi
40c5ae:	52                   	push   %edx
40c5af:	8b 78 04             	mov    0x4(%eax),%edi
40c5b2:	81 ff d0 c5 40 00    	cmp    $0x40c5d0,%edi
40c5b8:	0f 85 ae 3d 01 00    	jne    0x42036c
40c5be:	e8 0d 00 00 00       	call   0x40c5d0
40c5c3:	5f                   	pop    %edi
40c5c4:	8b c6                	mov    %esi,%eax
40c5c6:	5e                   	pop    %esi
40c5c7:	5d                   	pop    %ebp
40c5c8:	c2 04 00             	ret    $0x4
40c5cb:	cc                   	int3
40c5cc:	cc                   	int3
40c5cd:	cc                   	int3
40c5ce:	cc                   	int3
40c5cf:	cc                   	int3
40c5d0:	8b ff                	mov    %edi,%edi
40c5d2:	55                   	push   %ebp
40c5d3:	8b ec                	mov    %esp,%ebp
40c5d5:	56                   	push   %esi
40c5d6:	57                   	push   %edi
40c5d7:	8b 7d 08             	mov    0x8(%ebp),%edi
40c5da:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
40c5df:	83 c7 04             	add    $0x4,%edi
40c5e2:	8b 17                	mov    (%edi),%edx
40c5e4:	3b d6                	cmp    %esi,%edx
40c5e6:	74 1a                	je     0x40c602