40c16e:	5e                   	pop    %esi
40c16f:	c3                   	ret
40c170:	8b ff                	mov    %edi,%edi
40c172:	55                   	push   %ebp
40c173:	8b ec                	mov    %esp,%ebp
40c175:	56                   	push   %esi
40c176:	8b 75 08             	mov    0x8(%ebp),%esi
40c179:	83 c9 ff             	or     $0xffffffff,%ecx
40c17c:	8b 06                	mov    (%esi),%eax
40c17e:	f0 0f c1 08          	lock xadd %ecx,(%eax)
40c182:	75 15                	jne    0x40c199
40c184:	57                   	push   %edi
40c185:	bf 60 60 42 00       	mov    $0x426060,%edi
40c18a:	39 3e                	cmp    %edi,(%esi)
40c18c:	74 0a                	je     0x40c198
40c18e:	ff 36                	push   (%esi)
40c190:	e8 ae 2b 00 00       	call   0x40ed43
40c195:	59                   	pop    %ecx
40c196:	89 3e                	mov    %edi,(%esi)
40c198:	5f                   	pop    %edi
40c199:	5e                   	pop    %esi
40c19a:	5d                   	pop    %ebp
40c19b:	c2 04 00             	ret    $0x4
40c19e:	68 30 d1 41 00       	push   $0x41d130
40c1a3:	68 b0 d0 41 00       	push   $0x41d0b0
40c1a8:	e8 fd 54 00 00       	call   0x4116aa
40c1ad:	59                   	pop    %ecx
40c1ae:	59                   	pop    %ecx
40c1af:	c3                   	ret
40c1b0:	8b ff                	mov    %edi,%edi
40c1b2:	55                   	push   %ebp
40c1b3:	8b ec                	mov    %esp,%ebp
40c1b5:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
40c1b9:	74 12                	je     0x40c1cd
40c1bb:	83 3d 1c 73 42 00 00 	cmpl   $0x0,0x42731c
40c1c2:	74 05                	je     0x40c1c9
40c1c4:	e8 a2 5b 00 00       	call   0x411d6b
40c1c9:	b0 01                	mov    $0x1,%al
40c1cb:	5d                   	pop    %ebp
40c1cc:	c3                   	ret
40c1cd:	68 30 d1 41 00       	push   $0x41d130
40c1d2:	68 b0 d0 41 00       	push   $0x41d0b0
40c1d7:	e8 36 55 00 00       	call   0x411712
40c1dc:	59                   	pop    %ecx
40c1dd:	59                   	pop    %ecx
40c1de:	5d                   	pop    %ebp
40c1df:	c3                   	ret
40c1e0:	8b ff                	mov    %edi,%edi
40c1e2:	55                   	push   %ebp
40c1e3:	8b ec                	mov    %esp,%ebp
40c1e5:	8b 4d 10             	mov    0x10(%ebp),%ecx
40c1e8:	8b 45 0c             	mov    0xc(%ebp),%eax
40c1eb:	81 e1 ff ff f7 ff    	and    $0xfff7ffff,%ecx
40c1f1:	23 c1                	and    %ecx,%eax
40c1f3:	56                   	push   %esi
40c1f4:	8b 75 08             	mov    0x8(%ebp),%esi
40c1f7:	a9 e0 fc f0 fc       	test   $0xfcf0fce0,%eax
40c1fc:	74 24                	je     0x40c222
40c1fe:	85 f6                	test   %esi,%esi
40c200:	74 0d                	je     0x40c20f
40c202:	6a 00                	push   $0x0
40c204:	6a 00                	push   $0x0
40c206:	e8 3e 5e 00 00       	call   0x412049
40c20b:	59                   	pop    %ecx
40c20c:	59                   	pop    %ecx
40c20d:	89 06                	mov    %eax,(%esi)
40c20f:	e8 bf 2a 00 00       	call   0x40ecd3
40c214:	6a 16                	push   $0x16
40c216:	5e                   	pop    %esi
40c217:	89 30                	mov    %esi,(%eax)
40c219:	e8 f8 29 00 00       	call   0x40ec16
40c21e:	8b c6                	mov    %esi,%eax
40c220:	eb 1a                	jmp    0x40c23c
40c222:	51                   	push   %ecx
40c223:	ff 75 0c             	push   0xc(%ebp)
40c226:	85 f6                	test   %esi,%esi
40c228:	74 09                	je     0x40c233
40c22a:	e8 1a 5e 00 00       	call   0x412049
40c22f:	89 06                	mov    %eax,(%esi)
40c231:	eb 05                	jmp    0x40c238
40c233:	e8 11 5e 00 00       	call   0x412049
40c238:	59                   	pop    %ecx
40c239:	59                   	pop    %ecx
40c23a:	33 c0                	xor    %eax,%eax
40c23c:	5e                   	pop    %esi
40c23d:	5d                   	pop    %ebp
40c23e:	c3                   	ret
40c23f:	6a 08                	push   $0x8
40c241:	68 e0 3e 42 00       	push   $0x423ee0
40c246:	e8 85 c7 ff ff       	call   0x4089d0
40c24b:	e8 b9 25 00 00       	call   0x40e809
40c250:	8b 70 0c             	mov    0xc(%eax),%esi
40c253:	85 f6                	test   %esi,%esi
40c255:	74 1e                	je     0x40c275
40c257:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c25b:	8b ce                	mov    %esi,%ecx
40c25d:	ff 15 50 c2 41 00    	call   *0x41c250
40c263:	ff d6                	call   *%esi
40c265:	eb 07                	jmp    0x40c26e
40c267:	33 c0                	xor    %eax,%eax
40c269:	40                   	inc    %eax
40c26a:	c3                   	ret
40c26b:	8b 65 e8             	mov    -0x18(%ebp),%esp
40c26e:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c275:	e8 81 00 00 00       	call   0x40c2fb
40c27a:	cc                   	int3
40c27b:	8b ff                	mov    %edi,%edi
40c27d:	55                   	push   %ebp
40c27e:	8b ec                	mov    %esp,%ebp
40c280:	51                   	push   %ecx
40c281:	ff 75 08             	push   0x8(%ebp)
40c284:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40c28b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40c28e:	e8 b0 2a 00 00       	call   0x40ed43
40c293:	59                   	pop    %ecx
40c294:	c9                   	leave
40c295:	c3                   	ret
40c296:	8b ff                	mov    %edi,%edi
40c298:	55                   	push   %ebp
40c299:	8b ec                	mov    %esp,%ebp
40c29b:	5d                   	pop    %ebp
40c29c:	e9 42 47 00 00       	jmp    0x4109e3
40c2a1:	8b ff                	mov    %edi,%edi
40c2a3:	55                   	push   %ebp
40c2a4:	8b ec                	mov    %esp,%ebp
40c2a6:	8b 55 08             	mov    0x8(%ebp),%edx
40c2a9:	56                   	push   %esi
40c2aa:	85 d2                	test   %edx,%edx
40c2ac:	74 11                	je     0x40c2bf
40c2ae:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c2b1:	85 c9                	test   %ecx,%ecx
40c2b3:	74 0a                	je     0x40c2bf
40c2b5:	8b 75 10             	mov    0x10(%ebp),%esi
40c2b8:	85 f6                	test   %esi,%esi
40c2ba:	75 17                	jne    0x40c2d3
40c2bc:	c6 02 00             	movb   $0x0,(%edx)
40c2bf:	e8 0f 2a 00 00       	call   0x40ecd3
40c2c4:	6a 16                	push   $0x16
40c2c6:	5e                   	pop    %esi
40c2c7:	89 30                	mov    %esi,(%eax)
40c2c9:	e8 48 29 00 00       	call   0x40ec16
40c2ce:	8b c6                	mov    %esi,%eax
40c2d0:	5e                   	pop    %esi
40c2d1:	5d                   	pop    %ebp
40c2d2:	c3                   	ret
40c2d3:	57                   	push   %edi
40c2d4:	8b fa                	mov    %edx,%edi
40c2d6:	2b f2                	sub    %edx,%esi
40c2d8:	8a 04 3e             	mov    (%esi,%edi,1),%al
40c2db:	88 07                	mov    %al,(%edi)
40c2dd:	47                   	inc    %edi
40c2de:	84 c0                	test   %al,%al
40c2e0:	74 05                	je     0x40c2e7
40c2e2:	83 e9 01             	sub    $0x1,%ecx
40c2e5:	75 f1                	jne    0x40c2d8
40c2e7:	5f                   	pop    %edi
40c2e8:	85 c9                	test   %ecx,%ecx
40c2ea:	75 0b                	jne    0x40c2f7
40c2ec:	88 0a                	mov    %cl,(%edx)
40c2ee:	e8 e0 29 00 00       	call   0x40ecd3
40c2f3:	6a 22                	push   $0x22
40c2f5:	eb cf                	jmp    0x40c2c6
40c2f7:	33 f6                	xor    %esi,%esi
40c2f9:	eb d3                	jmp    0x40c2ce
40c2fb:	e8 a9 55 00 00       	call   0x4118a9
40c300:	85 c0                	test   %eax,%eax
40c302:	74 08                	je     0x40c30c
40c304:	6a 16                	push   $0x16
40c306:	e8 e3 55 00 00       	call   0x4118ee
40c30b:	59                   	pop    %ecx
40c30c:	f6 05 40 60 42 00 02 	testb  $0x2,0x426040
40c313:	74 22                	je     0x40c337
40c315:	6a 17                	push   $0x17
40c317:	ff 15 5c c1 41 00    	call   *0x41c15c
40c31d:	85 c0                	test   %eax,%eax
40c31f:	74 05                	je     0x40c326
40c321:	6a 07                	push   $0x7
40c323:	59                   	pop    %ecx
40c324:	cd 29                	int    $0x29
40c326:	6a 01                	push   $0x1
40c328:	68 15 00 00 40       	push   $0x40000015
40c32d:	6a 03                	push   $0x3
40c32f:	e8 36 27 00 00       	call   0x40ea6a
40c334:	83 c4 0c             	add    $0xc,%esp
40c337:	6a 03                	push   $0x3
40c339:	e8 f2 f7 ff ff       	call   0x40bb30
40c33e:	cc                   	int3
40c33f:	8b ff                	mov    %edi,%edi
40c341:	55                   	push   %ebp
40c342:	8b ec                	mov    %esp,%ebp
40c344:	5d                   	pop    %ebp
40c345:	e9 9c 29 00 00       	jmp    0x40ece6
40c34a:	8b ff                	mov    %edi,%edi
40c34c:	55                   	push   %ebp
40c34d:	8b ec                	mov    %esp,%ebp
40c34f:	81 ec 84 04 00 00    	sub    $0x484,%esp
40c355:	a1 18 60 42 00       	mov    0x426018,%eax
40c35a:	33 c5                	xor    %ebp,%eax
40c35c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c35f:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40c363:	8b 45 10             	mov    0x10(%ebp),%eax
40c366:	53                   	push   %ebx
40c367:	8b 5d 14             	mov    0x14(%ebp),%ebx
40c36a:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
40c370:	75 18                	jne    0x40c38a
40c372:	e8 5c 29 00 00       	call   0x40ecd3
40c377:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40c37d:	e8 94 28 00 00       	call   0x40ec16
40c382:	83 c8 ff             	or     $0xffffffff,%eax
40c385:	e9 1b 01 00 00       	jmp    0x40c4a5
40c38a:	85 db                	test   %ebx,%ebx
40c38c:	74 04                	je     0x40c392
40c38e:	85 c0                	test   %eax,%eax
40c390:	74 e0                	je     0x40c372
40c392:	56                   	push   %esi
40c393:	57                   	push   %edi
40c394:	ff 75 1c             	push   0x1c(%ebp)
40c397:	8d 8d 7c fb ff ff    	lea    -0x484(%ebp),%ecx
40c39d:	e8 a8 06 00 00       	call   0x40ca4a
40c3a2:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c3a5:	8d bd 90 fb ff ff    	lea    -0x470(%ebp),%edi
40c3ab:	33 c0                	xor    %eax,%eax
40c3ad:	33 d2                	xor    %edx,%edx
40c3af:	ab                   	stos   %eax,%es:(%edi)
40c3b0:	ab                   	stos   %eax,%es:(%edi)
40c3b1:	ab                   	stos   %eax,%es:(%edi)
40c3b2:	ab                   	stos   %eax,%es:(%edi)
40c3b3:	8b c1                	mov    %ecx,%eax
40c3b5:	8b bd a0 fb ff ff    	mov    -0x460(%ebp),%edi
40c3bb:	83 e0 02             	and    $0x2,%eax
40c3be:	89 85 8c fb ff ff    	mov    %eax,-0x474(%ebp)
40c3c4:	0b c2                	or     %edx,%eax
40c3c6:	89 bd 90 fb ff ff    	mov    %edi,-0x470(%ebp)
40c3cc:	89 9d 94 fb ff ff    	mov    %ebx,-0x46c(%ebp)
40c3d2:	89 95 98 fb ff ff    	mov    %edx,-0x468(%ebp)
40c3d8:	75 0a                	jne    0x40c3e4
40c3da:	88 95 9c fb ff ff    	mov    %dl,-0x464(%ebp)
40c3e0:	85 ff                	test   %edi,%edi
40c3e2:	75 07                	jne    0x40c3eb
40c3e4:	c6 85 9c fb ff ff 01 	movb   $0x1,-0x464(%ebp)
40c3eb:	ff 75 20             	push   0x20(%ebp)
40c3ee:	8d 85 90 fb ff ff    	lea    -0x470(%ebp),%eax
40c3f4:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
40c3fa:	8d 85 80 fb ff ff    	lea    -0x480(%ebp),%eax
40c400:	50                   	push   %eax
40c401:	ff 75 18             	push   0x18(%ebp)
40c404:	8d 85 a0 fb ff ff    	lea    -0x460(%ebp),%eax
40c40a:	ff 75 0c             	push   0xc(%ebp)
40c40d:	51                   	push   %ecx
40c40e:	50                   	push   %eax
40c40f:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
40c415:	e8 f4 05 00 00       	call   0x40ca0e
40c41a:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40c41e:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
40c424:	e8 c2 08 00 00       	call   0x40cceb
40c429:	8b f0                	mov    %eax,%esi
40c42b:	85 ff                	test   %edi,%edi
40c42d:	74 51                	je     0x40c480
40c42f:	8b 45 08             	mov    0x8(%ebp),%eax
40c432:	83 e0 01             	and    $0x1,%eax
40c435:	83 c8 00             	or     $0x0,%eax
40c438:	74 1c                	je     0x40c456
40c43a:	85 db                	test   %ebx,%ebx
40c43c:	75 04                	jne    0x40c442
40c43e:	85 f6                	test   %esi,%esi
40c440:	75 74                	jne    0x40c4b6
40c442:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
40c448:	3b c3                	cmp    %ebx,%eax
40c44a:	75 2e                	jne    0x40c47a
40c44c:	85 f6                	test   %esi,%esi
40c44e:	78 30                	js     0x40c480
40c450:	3b f3                	cmp    %ebx,%esi
40c452:	76 2c                	jbe    0x40c480
40c454:	eb 60                	jmp    0x40c4b6
40c456:	8b 85 8c fb ff ff    	mov    -0x474(%ebp),%eax
40c45c:	83 c8 00             	or     $0x0,%eax
40c45f:	74 51                	je     0x40c4b2
40c461:	85 db                	test   %ebx,%ebx
40c463:	74 1b                	je     0x40c480
40c465:	85 f6                	test   %esi,%esi
40c467:	79 07                	jns    0x40c470
40c469:	33 c0                	xor    %eax,%eax
40c46b:	66 89 07             	mov    %ax,(%edi)
40c46e:	eb 10                	jmp    0x40c480
40c470:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
40c476:	3b c3                	cmp    %ebx,%eax
40c478:	74 4e                	je     0x40c4c8
40c47a:	33 c9                	xor    %ecx,%ecx
40c47c:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
40c480:	8d 8d e4 fb ff ff    	lea    -0x41c(%ebp),%ecx
40c486:	e8 52 06 00 00       	call   0x40cadd
40c48b:	80 bd 88 fb ff ff 00 	cmpb   $0x0,-0x478(%ebp)
40c492:	74 0d                	je     0x40c4a1
40c494:	8b 8d 7c fb ff ff    	mov    -0x484(%ebp),%ecx
40c49a:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
40c4a1:	5f                   	pop    %edi
40c4a2:	8b c6                	mov    %esi,%eax
40c4a4:	5e                   	pop    %esi
40c4a5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c4a8:	33 cd                	xor    %ebp,%ecx
40c4aa:	5b                   	pop    %ebx
40c4ab:	e8 45 c7 ff ff       	call   0x408bf5
40c4b0:	c9                   	leave
40c4b1:	c3                   	ret
40c4b2:	85 db                	test   %ebx,%ebx
40c4b4:	75 05                	jne    0x40c4bb
40c4b6:	83 ce ff             	or     $0xffffffff,%esi
40c4b9:	eb c5                	jmp    0x40c480
40c4bb:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
40c4c1:	3b c3                	cmp    %ebx,%eax
40c4c3:	75 b5                	jne    0x40c47a
40c4c5:	6a fe                	push   $0xfffffffe
40c4c7:	5e                   	pop    %esi
40c4c8:	33 c0                	xor    %eax,%eax
40c4ca:	66 89 44 5f fe       	mov    %ax,-0x2(%edi,%ebx,2)
40c4cf:	eb af                	jmp    0x40c480
40c4d1:	8b ff                	mov    %edi,%edi
40c4d3:	55                   	push   %ebp
40c4d4:	8b ec                	mov    %esp,%ebp
40c4d6:	81 ec 84 04 00 00    	sub    $0x484,%esp
40c4dc:	a1 18 60 42 00       	mov    0x426018,%eax
40c4e1:	33 c5                	xor    %ebp,%eax
40c4e3:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c4e6:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40c4ea:	8b 45 10             	mov    0x10(%ebp),%eax
40c4ed:	53                   	push   %ebx
40c4ee:	8b 5d 14             	mov    0x14(%ebp),%ebx
40c4f1:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
40c4f7:	75 18                	jne    0x40c511
40c4f9:	e8 d5 27 00 00       	call   0x40ecd3
40c4fe:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40c504:	e8 0d 27 00 00       	call   0x40ec16
40c509:	83 c8 ff             	or     $0xffffffff,%eax
40c50c:	e9 1b 01 00 00       	jmp    0x40c62c
40c511:	85 db                	test   %ebx,%ebx
40c513:	74 04                	je     0x40c519
40c515:	85 c0                	test   %eax,%eax
40c517:	74 e0                	je     0x40c4f9
40c519:	56                   	push   %esi
40c51a:	57                   	push   %edi
40c51b:	ff 75 1c             	push   0x1c(%ebp)
40c51e:	8d 8d 7c fb ff ff    	lea    -0x484(%ebp),%ecx
40c524:	e8 21 05 00 00       	call   0x40ca4a
40c529:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c52c:	8d bd 90 fb ff ff    	lea    -0x470(%ebp),%edi
40c532:	33 c0                	xor    %eax,%eax
40c534:	33 d2                	xor    %edx,%edx
40c536:	ab                   	stos   %eax,%es:(%edi)
40c537:	ab                   	stos   %eax,%es:(%edi)
40c538:	ab                   	stos   %eax,%es:(%edi)